POLITECNICO DI MILANO Corso di Laurea in Ingegneria Informatica Modelli per la descrizione di protocolli asincroni basati sull usouso di servizi Web Relatore: Prof. Stefano Ceri Correlatori: Ing. Marco Brambilla Ing. Christina Tziviskou Tesi di Laurea di: Giuseppe Guglielmetti
Modelli per la descrizione di protocolli asincroni basati sull uso di servizi Web Sommario Obbiettivi Protocolli applicativi Pattern Meccanismi di acknowledge Pattern di comunicazione Pattern in WebML Demo Conclusioni e sviluppi futuri
Obbiettivi Analisi dei principali standard inerenti protocolli asincroni con uso di WebService. Estrazione di pattern comuni dai differenti standard applicativi. Modellazione concettuale dei pattern nel linguaggio WebML. Realizzazione di un applicazione dimostrativa.
Web Services e asincronismo Servizio o applicazione fruibile da altre applicazioni in modo remoto e automatico su piattaforma Web. Descritto da interfaccia standard (WSDL). Standard per scambio di messaggi (SOAP), formato dati (XML), pubblicazione. (UDDI). In ambiente business, è fondamentale l accoppiamento lasco e quindi interazioni i i asincrone. Vantaggi: Migliore gestione delle risorse in presenza di latenza temporale Maggiore privatezza della logica interna di business Minori costi e maggiore efficienza Maggiore accessibilità
WebML (Web Modeling Language) WebML (Web Modeling Language) è un linguaggio concettuale per la specifica e la progettazione di applicazioni Web data-intensive. Structure + Composition + Navigation + Presentation entities, relationships units, pages, links site views styles navigation + structure composition user models presentation
Web Services in WebML Primitive per rappresentare nel modello WebML chiamate e pubblicazioni di Web Services. One-way service operation Op. name Notification service operation Op. name Synchronous request-response service operation Op. name Synchronous solicit-response service operation Op. name Asynchronous request-response service operation Op. name Asynchronous solicit-response service operation Op. name Conv. name Conv. name Conv. name Conv. name Conv. name Conv. name Meccanismo di base delle interazioni. Invocazione Pubblicazione
Correlazione in WebML WebML utilizza i meta-dati di conversazione definiti tramite uno schema E-R. Message Instance Content 1:1 1:1 In Out Operation Instance 0:1 TimeStamp 0:1 PartOf Conversation Instance Participation 1:1 1:N TimeStamp 1:1 1:N Status Name Passwd User 1:1 1:1 1:1 MsgType OpType 0:N 0:N MessageType In OperationType 1:1 0:1 OpName Name PortName Format Out Binding 1:1 0:1 ServiceName NetworkAddress Timeout ConvType 0:N Conversation PartOf Type Name 1:1 1:N Timeout
Protocolli applicativi Nell analisi sono stati considerati vari protocolli tra cui RosettaNet definisce standard per lo scambio di documenti di business concentrandosi su Processi di business Formato dei dati Servizi di messaggistica. Electronic Business using extensible Markup Language (ebxml) comprende varie specifiche che standardizzano come scambiare messaggi di business come comunicare dati con terminologia comune come definire e memorizzare i processi di business. ASAP protocollo dedicato ai Web Service Asincroni fornisce un modo per creare, far partire, monitorare e controllare una istanza di un Web Service asincrono.
Pattern Due aspetti ortogonali tra loro Meccanismi di acknowledge Pattern di interazione Ad ogni pattern è possibile applicare i diversi meccanismi di acknowledge.
Pattern: meccanismi di acknowledge Request senza acknowledge Request con acknowledge sincrono Request con acknowledge asincrono
Pattern di interazione Callback Publish Subscribe Polling Request-Response Agent-Service-Service Callback Factory Publish Subscribe Factory
Esempi di pattern asincroni(1): Callback Invia una richiesta non bloccante La risposta è inviata in seguito da parte di chi ha ricevuto la richiesta. Service Requester Service Provider Request with CID Response with CID
Esempi di pattern asincroni(2): Callback factory Invia una richiesta non bloccante, con conferma di ricezione. La risposta è inviata in seguito da una istanza di servizio creata ad hoc per l elaborazione della stessa. Service Requester Service Provider- factory Service Provider - instance Request Create Acknowledge Response Acknowledge
Confronto protocolli È possibile confrontare onta i protocolli sulla base dei pattern che coprono, al netto del rumore degli acknowledge. Callback Publish Subscribe Polling RosettaNet xcbl ebxml IHE OGSA ASAP + + + + + - - - + - + - - - + - - - Request Response + - - - - - Agent - Service Service Callback Factory - - - - + + Publish - Subscribe Factory - - - - + -
Pattern in WebML: meccanismi di acknowledge Request senza acknowledge Request con acknowledge sincrono Request con acknowledge asincrono
Esempi di pattern in WebML(1): Callback Service Requester Input - parametri espliciti - XML document Input - parametri espliciti - XML document Send Request Accept Response Ok Ko Invio ok Errore di trasporto Operazioni Invia la richiesta tramite un servizio One-way Pubblica un altro servizio One-way per ricevere la risposta Service Provider Input - parametri espliciti - XML document Link da applicazione Coupling risposta Accept Request Send Response Ok Ko Operazioni WebML Invio ok Errore di trasporto Pubblica un servizio One-way per ricevere le richieste Quando la risposta è pronta viene spedita tramite un altro servizio ii One-way
Esempi di pattern in WebML(2): Callback factory Invia la richiesta tramite un servizio Request-Response asincrono Pubblica un servizio Solicit- Response asincrono per ricevere la risposta Service Provider - factory Dati di richiesta - parametri espliciti - XML document Accept Request Crea nuova istanza Conferma ricezione e CID Pubblica un servizio Solicit- Response asincrono per ricevere la richiesta e crea la nuova it istanza Service Provider - instance Creazione Coupling risposta Send Response Ok Ko Conferma Errore di chiamata Invia la risposta tramite un servizio Request-Response asincrono
Demo Travel Agency User Travel Agency Manager
Conclusioni Analisi i e comparazione di standard d di comunicazione asincrona in differenti ambiti applicativi. Astrazione e formalizzazione di pattern. Implementazione con successo dei pattern nel linguaggio WebML con generazione automatica degli applicativi.
Sviluppi futuri Semplificare l accesso al contesto e ai dati di conversazione. Capacità di gestire nei dettagli i messaggi SOAP. Capacità di creare istanze di Web Service on demand. Implementazione completa dello standard ASAP in WebML.
Fine Grazie per l attenzione
Esempi di pattern asincroni(2): Publish Subscribe Iscriversi a un servizio. Le informazioni sono inviate con cadenza regolare a chi si è iscritto. Service Requester Service Provider Request with CID Response with CID
Esempi di pattern asincroni(3): Polling con acknowledge Invia una richiesta non bloccante, con conferma di ricezione, ripetuta a intervalli regolari. La risposta è inviata in seguito da parte di chi ha ricevuto la richiesta. Client Service Provider Request Reply with CID Request with CID Response