OPENDEVELOPMENT
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
Unmodelloideale
percostruireun
prodotto
enterprise.
Immagini tratte da chromasia.com
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”
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
QUALESTRUTTURADICOMUNICAZIONE(COLLABORAZIONE)
DEVEAVEREUN’ORGANIZZAZIONEPERCREAREUN
PRODOTTOAPERTO,MODULARE,ESTENDIBILE?
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
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
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
3COMPONENTIOPENSOURCE-OPENSTANDARDS-OPENARCHITECTURE
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1.OPENSOURCE
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
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
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
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
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. VISIONE
2.AGGIORNAMENTI
3.AIUTO
4.ARCHIVI
WORKSPACECONDIVISO
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
1. VISIONE
2.AGGIORNAMENTI
3.AIUTO
4.ARCHIVI
WORKSPACECONDIVISO
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CODICE
TEST
BACHI
DECISIONI
MAILINGLIST
ISSUETRACKER
BLOG
INFORMAZIONIDINAMICHE
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CODICE
TEST
BACHI
DECISIONI
MAILINGLIST
ISSUETRACKER
BLOG
INFORMAZIONIDINAMICHE
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
2.OPENSTANDARDS
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
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
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
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
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
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
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
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
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
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
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
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
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
3.OPENARCHITECTURE
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
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
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
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
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
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
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)
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
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
UNESEMPIO:CRXjackrabbit,felix,sling / HTTP,JCR,JSON / OSGI,REST
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
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
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
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
Open Development // un modello ideale per costruire un prodotto enterprise Paolo Mottadelli // Adobe
CRXdownload
http://bit.ly/crx-download
paolo.mottadelli@adobe.com

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) JCRapi 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