Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Open Development
1. OPENDEVELOPMENT
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
Unmodelloideale
percostruireun
prodotto
enterprise.
Immagini tratte da chromasia.com
2. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
http://www.melconway.com/research/committees.html
LEGGEDICONWAY
“OGNIORGANIZZAZIONECHEPROGETTAUNSISTEMA,
PRODURRA’INEVITABILMENTEUNDESIGNCHERISPECCHIA
LASTRUTTURADICOMUNICAZIONE
DELL’ORGANIZZAZIONESTESSA”
3. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
QUALESTRUTTURADICOMUNICAZIONE(COLLABORAZIONE)
DEVEAVEREUN’ORGANIZZAZIONEPERCREAREUN
PRODOTTOAPERTO,MODULARE,ESTENDIBILE?
4. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. OBIETTIVO comune
2.DECISIONI Condivisione dei criteri decisionali
3.WORKSPACE Condivisione dello spazio di lavoro
4.INFORMAZIONI Scambio dinamico delle informazioni
5.PARALLELIZZAZIONE
COLLABORAZIONECARATTERISTICHEDIUNMODELLOCHEFUNZIONA
5. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. OBIETTIVO comune
2.DECISIONI Condivisione dei criteri decisionali
3.WORKSPACE Condivisione dello spazio di lavoro
4.INFORMAZIONI Scambio dinamico delle informazioni
5.PARALLELIZZAZIONE
6. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
3COMPONENTIOPENSOURCE-OPENSTANDARDS-OPENARCHITECTURE
7. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1.OPENSOURCE
8. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. piùUTENTIETEROGENEI
2.piùOCCHIPUNTATI
3.piùCASID’USO
4.piùIDEE
5.
120PROGETTI 330MEMBRI
2500COMMITTER
NOF-2-F(oquasi) NESSUNUFFICIO
3TB/ggditrafficoweb
444liste 2500+email/gg
+RISORSE
più1
9. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. piùUTENTIETEROGENEI
2.piùOCCHIPUNTATI
3.piùCASID’USO
4.piùIDEE
5.
120PROGETTI 330MEMBRI
2500COMMITTER
NOF-2-F(oquasi) NESSUNUFFICIO
3TB/ggditrafficoweb
444liste 2500+email/gg
+RISORSE
più1
10. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. piùUTENTIETEROGENEI
2.piùOCCHIPUNTATI
3.piùCASID’USO
4.piùIDEE
5.
120PROGETTI 330MEMBRI
2500COMMITTER
NOF-2-F(oquasi) NESSUNUFFICIO
3TB/ggditrafficoweb
444liste 2500+email/gg
+RISORSE
+1
11. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
120PROGETTI 330MEMBRI
2500COMMITTER
NOF-2-F(oquasi) NESSUNUFFICIO
3TB/ggditrafficoweb
444liste 2500+email/gg
+RISORSE
1.000.000-ESIMOCOMMIT - SETTEMBRE2010
12. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. VISIONE
2.AGGIORNAMENTI
3.AIUTO
4.ARCHIVI
WORKSPACECONDIVISO
13. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. VISIONE
2.AGGIORNAMENTI
3.AIUTO
4.ARCHIVI
WORKSPACECONDIVISO
14. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CODICE
TEST
BACHI
DECISIONI
MAILINGLIST
ISSUETRACKER
BLOG
INFORMAZIONIDINAMICHE
15. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CODICE
TEST
BACHI
DECISIONI
MAILINGLIST
ISSUETRACKER
BLOG
INFORMAZIONIDINAMICHE
16. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
2.OPENSTANDARDS
17. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
OBIETTIVOCOMUNE
18. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
OBIETTIVOCOMUNE
19. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
JCR✴ Implementation independent
✴ bi-directional access to a Content Repository
✴ Nodes & properties in rich data types
✴ Everything is content
✴ NoSQL
OBIETTIVOCOMUNE
20. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
JCR
OBIETTIVOCOMUNE
21. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
JCR
OBIETTIVOCOMUNE
22. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
OBIETTIVOCOMUNE
23. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
OBIETTIVOCOMUNE
24. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
JSOP✴ Serialization to JSON (opt YAML, XML)
✴ GET (batch/hierarchical)
✴ PUT (batch/hierarchical)
✴ PATCH (JSON diff cont type)
✴ Support for binary as multipart
OBIETTIVOCOMUNE
25. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
Request:
GET /myfolder.4.json HTTP/1.1
Response:
{
"createdBy" : "uncled",
"name" : "myfolder",
"id" : "50d9317a-3a95-401a-9638-333a0dbf04bb"
"type" : "folder"
"child1" :
{
"grandchild11" :
{
"depth3" :
{
"depth4 : { ... }
}
}
}
}
JSOP
OBIETTIVOCOMUNE
26. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
PUT /myfolder HTTP/1.1
{
"createdBy" : "uncled",
"name" : "myfolder",
"id" : "50d9317a-3a95-401a-9638-333a0dbf04bb"
"type" : "folder"
"child1" :
{
"grandchild11" :
{
"depth3" :
{
"depth4 : { ... }
}
}
}
}
JSOP
OBIETTIVOCOMUNE
27. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
PATCH /myfolder HTTP/1.1
+newdoc : { "type" : "document", "createdBy" : "me" }
-olddoc
>movingdoc : /otherfolder/mydocument
^lastModifiedBy : "me"
JSOP
OBIETTIVOCOMUNE
28. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. PATTERNDICOMUNICAZIONE
2.REGOLEARCHITETTURALI
3.INTERFACCECOMUNI
http
jcr
json
jsop
cmis
URI
OBIETTIVOCOMUNE
29. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
3.OPENARCHITECTURE
30. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
31. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
OSGI
32. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
OSGI✴OSGI migliora la modularità
✴Codice meglio strutturato
✴Servizi dinamici
✴Plugins
✴Isolare il codice legacy
33. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
34. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
35. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
REST✴ Client-Server
✴ Stateless
✴ Cachable
✴ Layered systems
✴ Uniform interface
36. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
REST
✴Scalabilità
✴Generalizzazione delle interfacce
✴Deployment indipendente delle componenti
✴Intermediazioni (-latenza, +security, -legacy)
37. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
OBIETTIVOCOMUNE
1. Il RIUSOrichiede STRUTTUREPULITE
2.PIU’CASID’USOrichiedono GENERALIZZAZIONE
3.ESTENDIBILITA’richiede MODULARIZZAZIONE
REST
OSGI
38. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
UNESEMPIO:CRXjackrabbit,felix,sling / HTTP,JCR,JSON / OSGI,REST
39. OSGIframework (felix)
JCRrepository (jackrabbit)
JCR api
Applicationframework (sling)
HTTP
CRX,architettura(semplificata)- instile‘chifacosa’
‣ manages bundles as app components
‣ provides system services to bundles
‣ stores the content
‣ processes HTTP requests in a RESTful way
specification implementation
architectural style
40. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
0.CLOSEDSOURCE
1. OPENRELEASES Codice aperto.
2.OPENDEVELOPMENT Workspace aperto.
3.OPENCOMMUNITY Perdita del controllo.
4.OPENCORE+CLOSEDLAYERS
MODELLIDIAPERTURATRATTODAJUKKAZ.WORDPRESS.COM
41. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
0.CLOSEDSOURCE
1. OPENRELEASES Codice aperto.
2.OPENDEVELOPMENT Workspace aperto.
3.OPENCOMMUNITY Perdita del controllo.
4.OPENCORE+CLOSEDLAYERS
42. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
0.CLOSEDSOURCE
1. OPENRELEASES Codice aperto.
2.OPENDEVELOPMENT Workspace aperto.
3.OPENCOMMUNITY Perdita del controllo.
4.OPENCORE+CLOSEDLAYERS
43. Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CRXdownload
http://bit.ly/crx-download
paolo.mottadelli@adobe.com