SlideShare ist ein Scribd-Unternehmen logo
1 von 28
ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE DELL'INFORMAZIONE IMPLEMENTAZIONE DI UN SISTEMA DI TIPI PER JOLIE Relatore Chiar.mo Prof. Zavattaro Gianluigi Correlatori Dr. Guidi Claudio Dott. Montesi Fabrizio Controrelatore Chiar.mo Prof. Maniezzo Vittorio Presentata da Ciotti Elvis
Sommario presentazione ,[object Object],[object Object],[object Object],[object Object]
[object Object],Web Services ,[object Object],[object Object],[object Object],[object Object],[object Object],WS-BPEL B C
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Java Orchestration Language Interpreter Engine Alcune caratteristiche Progetto europeo SENSORIA, Università di Bologna http://jolie.sourceforge.net/
Primitive di comunicazione B NOTIFICATION ONE WAY <xml …> …. </xml> <xml …> …. </xml> A RETE SOLICIT RESPONSE REQUEST RESPONSE C <xml …> …. </xml> <xml …> …. </xml> D RETE <xml …> FAULT </xml> <xml …> FAULT </xml> <xml …> …. </xml> <xml …> …. </xml> ,[object Object],[object Object],[object Object],[object Object]
ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine > Rappresentazione XML Codice JOLIE
ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine > Rappresentazione XML Codice JOLIE
ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine > Rappresentazione XML Codice JOLIE
ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine > Rappresentazione XML Codice JOLIE
ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine > Rappresentazione XML Codice JOLIE invio con notification inviaOrdine @ ServizioOrdini (  ordine  )
In questa tesi… ,[object Object],[object Object]
Introduzione sistema di tipi  1) Sintassi per la definizione dei tipi dei messaggi  TYPE_DECLARATION   NATIVE_YPE SUB_TYPE_LIST_N TYPE_LIST_N SUBTYPE CARDINALITY   type id:  NATIVE_YPE   SUB_TYPE_LIST_N void | string | int | double | any | undefined {  SUBTYPE   TYPE_LIST_N  } | { ? } |  Є ,  SUBTYPE   TYPE_LIST_N  | Є .id  CARDINALITY :  NATIVE_YPE   SUB_TYPE_LIST_N   | .id  CARDINALITY : idTypeDeclared [ NUMBER ,  NUMBER ] | [ NUMBER , *] | * | ? |  Є
Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type  ORDINE_TYPE : void {   .cliente: string   .articoli: void {   .prodotto[1,*]: string {   .qta: int }   }   .altre_info: any {?} }   < ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine >
Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type  ORDINE_TYPE : void {   .cliente: string   .articoli: void {   .prodotto[1,*]: string {   .qta: int }   }   .altre_info: any {?} }   < ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine >
Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type  ORDINE_TYPE : void {   .cliente: string   .articoli: void {   .prodotto[1,*]: string {   .qta: int }   }   .altre_info: any {?} }   < ordine >    <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   <qta> 3 </qta>   </prodotto>   </articoli> </ ordine >
Introduzione sistema di tipi 2) Algoritmo di controllo conformità messaggio al tipo dichiarato < ordine >  20081218A12   <cliente> Mario Rossi </cliente>   <articoli>   <prodotto>   a128   <qta> 1 </qta>   </prodotto>   <prodotto>   b131   ???     </prodotto>   <data>2008/12/18</data>   </articoli> </ ordine > type  ORDINE_TYPE : void {   .cliente: string   .articoli: void {   .prodotto[1,*]: string {   .qta: int }   }   .altre_info: any {?} }
Introduzione sistema di tipi 3) Associazione tipi alle operazioni outputPort  OrdiniServicePort  {    Location: “http://xyz:2002”   Protocol: soap   OneWay: inviaOrdine   RequestResponse:   opRR   throws fault1  fault2  } (  ORDINE_TYPE  ) (  TIPO1  )(  TIPO2  ) ( TIPO3 )  ( TIPO4 )
Introduzione sistema di tipi 4) Controlli nelle operazioni a tempo di esecuzione A B NOTIFICATION ONE WAY RETE <ordine> … </ordine> <ordine> … </ordine> ricezione effettiva solo se il messaggio è conforme al tipo locale Invio effettivo solo se il messaggio è conforme al tipo locale TypeMismatch
Introduzione sistema di tipi 3) Controlli nelle operazioni   a tempo di esecuzione A B SOLICIT  RESPONSE REQUEST RESPONSE RETE Invio effettivo solo se il messaggio è conforme al tipo locale Ricezione effettiva solo se il messaggio è conforme al tipo locale Ricezione effettiva solo se il messaggio è conforme al tipo locale Se il messaggio creato non è conforme al tipo locale: invio fault <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> TypeMismatch IOFault TypeMismatch Received TypeMismatch
SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI  ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … - TIPI - ASSOCIAZIONI TIPI-OPERAZIONI
SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI  ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … - ESISTENZA TIPI - CARDINALITA’
SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI  ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … OGGETTI DICHIARAZIONI TIPO INSERITI NELLE OPERAZIONI
SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI  ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … COMPONENTE CONTROLLO CONFORMITA’ CONTROLLI IN/OUT OPERAZIONI
Introduzione sistema di tipi Demo: gestore sessioni esami DATABASE CORSI E VOTI DATABASE ACCOUNTS GESTORE  SESSIONI D’ESAME PROFESSORE 1 PROFESSORE N ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],STUDENTE 1 STUDENTE M … … sessione sessione … sessione sessione …
Esportazione WSDL <wsdl:definitions ..> <wsdl:types> … </wsdl:types> <wsdl:message…> … <wsdl:message…> <wsdl:portType …>   <wsdl:operation…>   …   </wsdl:operation…>    <wsdl:input … /> <wsdl:output … /> </wsdl:portType …> outpuPort outPort {    Location:…   Protocol: soap{   .schema=“file.xsd” ...   } OneWay:   op1 } … TRASFORMATORE JOLIE -> WSDL DICHIARAZIONI  XML Schema  ESTERNE Codice JOLIE del servizio Documento WSDL
Esportazione WSDL <wsdl:definitions ..> <wsdl:types> … </wsdl:types> <wsdl:message…> … <wsdl:message…> <wsdl:portType …>   <wsdl:operation…>   …   </wsdl:operation…>    <wsdl:input … /> <wsdl:output … /> </wsdl:portType …> outpuPort outPort {    Location:…   Protocol: soap{   .schema=“file.xsd” ...   } OneWay:   op1 } … TRASFORMATORE JOLIE -> WSDL DICHIARAZIONI  XML Schema  ESTERNE Codice JOLIE del servizio Documento WSDL ESPORTAZIONE TIPI -> XSD type  TIPO1  {...} outpuPort outPort {    Location: ...   Protocol: soap  OneWay:   op1( TIPO1 ) } …
Conclusioni ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Con questa tesi si è introdotto un sistema di tipi per JOLIE che permette la dichiarazione dei tipi  dei messaggi ed effettua dei controlli in ingresso e uscita dalle operazioni, in modo che le operazioni inviino e ricevano messaggi conformi ai relativi tipi dichiarati. E’ stato anche modificato lo strumento per la creazione di documenti WSDL descriventi servizi JOLIE, inserendo l’esportazione dei tipi dichiarati in formato XSD nelle relative operazioni.
[object Object],Grazie dell’attenzione

Weitere ähnliche Inhalte

Ähnlich wie Tesi sistema di tipi jolie

Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
Sandro Marcon
 
Itacom meeting 2010 arezzo
Itacom  meeting 2010 arezzoItacom  meeting 2010 arezzo
Itacom meeting 2010 arezzo
3Service Srl
 

Ähnlich wie Tesi sistema di tipi jolie (20)

Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
TopBuyer - il software per approvigionamento elettronico
TopBuyer - il software per approvigionamento elettronicoTopBuyer - il software per approvigionamento elettronico
TopBuyer - il software per approvigionamento elettronico
 
TopBuyer - il software per approvvigionamento elettronico
TopBuyer - il software per approvvigionamento elettronicoTopBuyer - il software per approvvigionamento elettronico
TopBuyer - il software per approvvigionamento elettronico
 
Cerved - The Italian Business Graph: a Story of Tech & data-driven Innovation
Cerved - The Italian Business Graph: a Story of Tech & data-driven InnovationCerved - The Italian Business Graph: a Story of Tech & data-driven Innovation
Cerved - The Italian Business Graph: a Story of Tech & data-driven Innovation
 
Luca Masini: Introduzione a GWT 2.0
Luca Masini: Introduzione a GWT 2.0Luca Masini: Introduzione a GWT 2.0
Luca Masini: Introduzione a GWT 2.0
 
Annamaria D'urzo - I sistemi informatici SITIC SIGIS Output-CN
Annamaria D'urzo - I sistemi informatici SITIC SIGIS Output-CNAnnamaria D'urzo - I sistemi informatici SITIC SIGIS Output-CN
Annamaria D'urzo - I sistemi informatici SITIC SIGIS Output-CN
 
Oracle contract by desing la gestione errori
Oracle contract by desing la gestione erroriOracle contract by desing la gestione errori
Oracle contract by desing la gestione errori
 
TAcTis
TAcTisTAcTis
TAcTis
 
Presentazione ifm
Presentazione ifmPresentazione ifm
Presentazione ifm
 
Itacom meeting 2010 arezzo
Itacom  meeting 2010 arezzoItacom  meeting 2010 arezzo
Itacom meeting 2010 arezzo
 
09 API V8 for Dummies
09 API V8 for Dummies09 API V8 for Dummies
09 API V8 for Dummies
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRS
 
Smau padova 17 aprile 2014
Smau padova   17 aprile 2014Smau padova   17 aprile 2014
Smau padova 17 aprile 2014
 
C6 Sql2
C6 Sql2C6 Sql2
C6 Sql2
 
Figure dal libro Facile da Usare
Figure dal libro Facile da UsareFigure dal libro Facile da Usare
Figure dal libro Facile da Usare
 
3pl
3pl3pl
3pl
 
Crouzet Automation - em4 Guida alla scelta
Crouzet Automation - em4 Guida alla sceltaCrouzet Automation - em4 Guida alla scelta
Crouzet Automation - em4 Guida alla scelta
 
Lezione07
Lezione07Lezione07
Lezione07
 
COLLABORARE COL FORNITORE: LA SFIDA "POSSIBILE" DELLA SUPPLY CHAIN DEL FUTURO
COLLABORARE COL FORNITORE: LA SFIDA "POSSIBILE" DELLA SUPPLY CHAIN DEL FUTUROCOLLABORARE COL FORNITORE: LA SFIDA "POSSIBILE" DELLA SUPPLY CHAIN DEL FUTURO
COLLABORARE COL FORNITORE: LA SFIDA "POSSIBILE" DELLA SUPPLY CHAIN DEL FUTURO
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
 

Mehr von Elvis London (15)

S.P.R.I.Te. magazine n.5
S.P.R.I.Te. magazine n.5S.P.R.I.Te. magazine n.5
S.P.R.I.Te. magazine n.5
 
S.P.R.I.Te. magazine n.2
S.P.R.I.Te. magazine n.2S.P.R.I.Te. magazine n.2
S.P.R.I.Te. magazine n.2
 
S.P.R.I.Te. magazine n.1
S.P.R.I.Te. magazine n.1S.P.R.I.Te. magazine n.1
S.P.R.I.Te. magazine n.1
 
S.P.R.I.Te. magazine n.8
S.P.R.I.Te. magazine n.8S.P.R.I.Te. magazine n.8
S.P.R.I.Te. magazine n.8
 
S.P.R.I.Te. magazine n.7
S.P.R.I.Te. magazine n.7S.P.R.I.Te. magazine n.7
S.P.R.I.Te. magazine n.7
 
S.P.R.I.Te. magazine n.6
S.P.R.I.Te. magazine n.6S.P.R.I.Te. magazine n.6
S.P.R.I.Te. magazine n.6
 
S.P.R.I.Te. magazine n.4
S.P.R.I.Te. magazine n.4S.P.R.I.Te. magazine n.4
S.P.R.I.Te. magazine n.4
 
Sicurezza smartcard
Sicurezza smartcardSicurezza smartcard
Sicurezza smartcard
 
Lezionidifoggiano
LezionidifoggianoLezionidifoggiano
Lezionidifoggiano
 
Comprate1cane
Comprate1caneComprate1cane
Comprate1cane
 
Andareinvacanza
AndareinvacanzaAndareinvacanza
Andareinvacanza
 
Ogg vorbis
Ogg vorbisOgg vorbis
Ogg vorbis
 
Sicurezza smartcard
Sicurezza smartcardSicurezza smartcard
Sicurezza smartcard
 
Lean startup
Lean startupLean startup
Lean startup
 
London Underground
London UndergroundLondon Underground
London Underground
 

Tesi sistema di tipi jolie

  • 1. ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE DELL'INFORMAZIONE IMPLEMENTAZIONE DI UN SISTEMA DI TIPI PER JOLIE Relatore Chiar.mo Prof. Zavattaro Gianluigi Correlatori Dr. Guidi Claudio Dott. Montesi Fabrizio Controrelatore Chiar.mo Prof. Maniezzo Vittorio Presentata da Ciotti Elvis
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine > Rappresentazione XML Codice JOLIE
  • 7. ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine > Rappresentazione XML Codice JOLIE
  • 8. ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine > Rappresentazione XML Codice JOLIE
  • 9. ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine > Rappresentazione XML Codice JOLIE
  • 10. ordine .cliente = “Mario Rossi”; ordine .articoli.prodotto[0] = “a128”; ordine .articoli.prodotto[0].qta = 1; ordine .articoli.prodotto[1] = “b131”; ordine .articoli.prodotto[1].qta = 3; Strutture dati ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine > Rappresentazione XML Codice JOLIE invio con notification inviaOrdine @ ServizioOrdini ( ordine )
  • 11.
  • 12. Introduzione sistema di tipi 1) Sintassi per la definizione dei tipi dei messaggi TYPE_DECLARATION NATIVE_YPE SUB_TYPE_LIST_N TYPE_LIST_N SUBTYPE CARDINALITY type id: NATIVE_YPE SUB_TYPE_LIST_N void | string | int | double | any | undefined { SUBTYPE TYPE_LIST_N } | { ? } | Є , SUBTYPE TYPE_LIST_N | Є .id CARDINALITY : NATIVE_YPE SUB_TYPE_LIST_N | .id CARDINALITY : idTypeDeclared [ NUMBER , NUMBER ] | [ NUMBER , *] | * | ? | Є
  • 13. Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type ORDINE_TYPE : void { .cliente: string .articoli: void { .prodotto[1,*]: string { .qta: int } } .altre_info: any {?} } < ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine >
  • 14. Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type ORDINE_TYPE : void { .cliente: string .articoli: void { .prodotto[1,*]: string { .qta: int } } .altre_info: any {?} } < ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine >
  • 15. Introduzione sistema di tipi Esempio di dichiarazioni di tipo del messaggio “ordine” type ORDINE_TYPE : void { .cliente: string .articoli: void { .prodotto[1,*]: string { .qta: int } } .altre_info: any {?} } < ordine > <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 <qta> 3 </qta> </prodotto> </articoli> </ ordine >
  • 16. Introduzione sistema di tipi 2) Algoritmo di controllo conformità messaggio al tipo dichiarato < ordine > 20081218A12 <cliente> Mario Rossi </cliente> <articoli> <prodotto> a128 <qta> 1 </qta> </prodotto> <prodotto> b131 ??? </prodotto> <data>2008/12/18</data> </articoli> </ ordine > type ORDINE_TYPE : void { .cliente: string .articoli: void { .prodotto[1,*]: string { .qta: int } } .altre_info: any {?} }
  • 17. Introduzione sistema di tipi 3) Associazione tipi alle operazioni outputPort OrdiniServicePort { Location: “http://xyz:2002” Protocol: soap OneWay: inviaOrdine RequestResponse: opRR throws fault1 fault2 } ( ORDINE_TYPE ) ( TIPO1 )( TIPO2 ) ( TIPO3 ) ( TIPO4 )
  • 18. Introduzione sistema di tipi 4) Controlli nelle operazioni a tempo di esecuzione A B NOTIFICATION ONE WAY RETE <ordine> … </ordine> <ordine> … </ordine> ricezione effettiva solo se il messaggio è conforme al tipo locale Invio effettivo solo se il messaggio è conforme al tipo locale TypeMismatch
  • 19. Introduzione sistema di tipi 3) Controlli nelle operazioni a tempo di esecuzione A B SOLICIT RESPONSE REQUEST RESPONSE RETE Invio effettivo solo se il messaggio è conforme al tipo locale Ricezione effettiva solo se il messaggio è conforme al tipo locale Ricezione effettiva solo se il messaggio è conforme al tipo locale Se il messaggio creato non è conforme al tipo locale: invio fault <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> <xml …> <soap…> … </soap> TypeMismatch IOFault TypeMismatch Received TypeMismatch
  • 20. SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … - TIPI - ASSOCIAZIONI TIPI-OPERAZIONI
  • 21. SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … - ESISTENZA TIPI - CARDINALITA’
  • 22. SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … OGGETTI DICHIARAZIONI TIPO INSERITI NELLE OPERAZIONI
  • 23. SCANNER PARSER CONTROLLORE SEMANTICO OOIT BUILDER Introduzione sistema di tipi Modifiche apportate all’architettura JOLIE Codice JOLIE servizio AMBIENTE DI ESECUZIONE GESTORE DELLA COMUNICAZIONE OOIT … op1 opN … … COMPONENTE CONTROLLO CONFORMITA’ CONTROLLI IN/OUT OPERAZIONI
  • 24.
  • 25. Esportazione WSDL <wsdl:definitions ..> <wsdl:types> … </wsdl:types> <wsdl:message…> … <wsdl:message…> <wsdl:portType …> <wsdl:operation…> … </wsdl:operation…> <wsdl:input … /> <wsdl:output … /> </wsdl:portType …> outpuPort outPort { Location:… Protocol: soap{ .schema=“file.xsd” ... } OneWay: op1 } … TRASFORMATORE JOLIE -> WSDL DICHIARAZIONI XML Schema ESTERNE Codice JOLIE del servizio Documento WSDL
  • 26. Esportazione WSDL <wsdl:definitions ..> <wsdl:types> … </wsdl:types> <wsdl:message…> … <wsdl:message…> <wsdl:portType …> <wsdl:operation…> … </wsdl:operation…> <wsdl:input … /> <wsdl:output … /> </wsdl:portType …> outpuPort outPort { Location:… Protocol: soap{ .schema=“file.xsd” ... } OneWay: op1 } … TRASFORMATORE JOLIE -> WSDL DICHIARAZIONI XML Schema ESTERNE Codice JOLIE del servizio Documento WSDL ESPORTAZIONE TIPI -> XSD type TIPO1 {...} outpuPort outPort { Location: ... Protocol: soap OneWay: op1( TIPO1 ) } …
  • 27.
  • 28.