20
Progetto realizzato da: Progetto realizzato da: Francesco Seccia Matr. 666784 Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109 Marco Spinelli Matr. 667109

Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

Embed Size (px)

Citation preview

Page 1: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

Progetto realizzato da:Progetto realizzato da:

Francesco Seccia Matr. 666784Francesco Seccia Matr. 666784

Marco Spinelli Matr. 667109Marco Spinelli Matr. 667109

Page 2: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

2

Motivazioni alla base dell’asincronismoMotivazioni alla base dell’asincronismo

Web Services asincroniWeb Services asincroni

Metodi di correlazione asincronaMetodi di correlazione asincrona

Pattern asincroni sempliciPattern asincroni semplici

Pattern asincroni complessiPattern asincroni complessi

Implementazione dei pattern asincroniImplementazione dei pattern asincroni

ConclusioniConclusioni

Page 3: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

3

Necessità di latenza temporaleNecessità di latenza temporale

Funzioni complesse non sempre garantiscono risposte istantanee (Sincrone)

Privatezza della logica interna di businessPrivatezza della logica interna di business

Disaccoppiamento dell’interazione non solo temporale ma anche funzionale

Costi ed efficienzaCosti ed efficienza

Maggiore scalabilità (il sistema può essere progettato in funzione del carico medio e non di quello di picco)

Maggiore affidabilità (Es. E-Mail)

AccessibilitàAccessibilità

Si risolve il problema della caduta di connettività

Si consente un accesso affidabile anche a dispositivi che non presentano una connessione “always on” (Es. dispositivi Wireless)

Page 4: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

4

Sistemi software progettati per supportare interazioni di Sistemi software progettati per supportare interazioni di interoperabilità asincrone macchina-macchina su una reteinteroperabilità asincrone macchina-macchina su una rete

Problemi da affrontareProblemi da affrontare

Lunga persistenza delle informazioni inerenti allo stato della chiamata

Correlazione tra richieste e risposte

Page 5: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

5

Correlazione a livello di trasportoCorrelazione a livello di trasporto

Esistono protocolli di trasporto che supportano nativamente l’asincronismo (a differenza di HTTP)

Mette a disposizione meccanismi per recuperare lo stato e i messaggi di risposta

Implementazione di client e server più semplici

Problemi:Problemi:

Non esiste un protocollo standard

Relega l’utilizzo dei WS a un ambito chiuso (Scarsa interoperabilità)

Correlazione tramite semantica applicativaCorrelazione tramite semantica applicativa

Correlazione implicita all’interno dei dati applicativi

Problemi:Problemi:

La struttura dei dati applicativi deve essere condivisa tra cliente e fornitore

I formati dei codici potrebbero non essere adatti per l’implementazione

Non esiste separazione tra dati applicativi e problemi di implementazione

Page 6: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

6

Correlazione tramite meta-dati di conversazioneCorrelazione tramite meta-dati di conversazione

I meta-dati sono dati “ausiliari” di supporto al workframe, utilizzati per effettuare la correlazione

Obiettivi:Obiettivi:

Gestione della conversazione tramite info che descrivono i servizi da chiamare e l’ordine di tali chiamate

Memorizzazione e data warehousing di messaggi, operazioni e conversazioni tra WS

Problema:Problema:

Mancanza di standardizzazione

Page 7: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

7

Correlazione tramite meta-dati di conversazioneCorrelazione tramite meta-dati di conversazione

Tramite il “Contesto di conversazione”“Contesto di conversazione”

Facile estrapolazione dei Facile estrapolazione dei dati applicatividati applicativi

Solo ConversationID per la Solo ConversationID per la correlazionecorrelazione

Basso Overhead dovuto ai Basso Overhead dovuto ai meta-datimeta-dati

Possibile mismatch delle Possibile mismatch delle risposterisposte

Page 8: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

8

Correlazione tramite meta-dati di conversazioneCorrelazione tramite meta-dati di conversazione

Tramite il “Contesto dell’operazione”“Contesto dell’operazione”

Tramite “Tutti i meta-dati di conversazione”“Tutti i meta-dati di conversazione”

Si implementa l’intera struttura di meta-dati

Ha lo stesso potere espressivo della tipologia precedente

Aggiunge Overhead senza un beneficio reale

Massimo potere espressivoMassimo potere espressivo

Risolve il problema del Risolve il problema del mismatchmismatch

Carico maggiore per il Carico maggiore per il sistemasistema

Page 9: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

9

““Polling” patternPolling” pattern

Request-response di invio della richiesta

Request-response per sollecitare la risposta

Estrema semplicità (Thin client)Estrema semplicità (Thin client)

Basato su tecnologie e Modus Basato su tecnologie e Modus Operandi collaudateOperandi collaudate

Bassa efficienzaBassa efficienza

Ritardo della notificaRitardo della notifica

Page 10: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

10

““Callback” patternCallback” pattern

Richiesta con identificativo e indirizzo di ritorno

Risposta inviata all’indirizzo di ritorno

Alta efficienzaAlta efficienza

Possibilità di “P2P”Possibilità di “P2P”

Possibilità di specificare Possibilità di specificare l’indirizzo di ritornol’indirizzo di ritorno

Il client deve pubblicare un Il client deve pubblicare un servizio che accetta chiamateservizio che accetta chiamate

Standard non ancora consolidatiStandard non ancora consolidati

Page 11: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

11

““Callback” pattern con AcknowledgementCallback” pattern con Acknowledgement

Ogni operazione coinvolta è bidirezionale

Vantaggi del “Callback” Vantaggi del “Callback” tradizionaletradizionale

Consente la notifica di Consente la notifica di ricezione, rendendo possibile la ricezione, rendendo possibile la verifica di non-ripudiazione verifica di non-ripudiazione ((Fondamentale nel B2BFondamentale nel B2B))

Svantaggi del “Callback” Svantaggi del “Callback” tradizionaletradizionale

Duplicazione del n° di messaggiDuplicazione del n° di messaggi

Page 12: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

12

““Publish-Subscribe” patternPublish-Subscribe” pattern

Il cliente riceve più di una risposta

Può essere esteso con un meccanismo di Acknowledgement

Vantaggi del “Callback” Vantaggi del “Callback” tradizionaletradizionale

Svantaggi del “Callback” Svantaggi del “Callback” tradizionaletradizionale

Page 13: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

13

Pattern “Multi-Attore” Pattern “Multi-Attore” (caso “Callback”)(caso “Callback”)

Interazione contemporanea tra più attori

Anche gli altri pattern possono essere estesi in maniera simile

Page 14: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

14

OASIS ASAP Standard ProposalOASIS ASAP Standard Proposal

Il servizio cliente “Observer” invia una richiesta SOAP al servizio “Factory”

Il servizio “Factory” genera una istanza di servizio di cui si rende noto l’URI

L’istanza del servizio può essere utilizzata o modificata dal client attraverso messaggi SOAP

Page 15: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

15

Utilizzo dei bufferUtilizzo dei buffer

I buffer dei clienti accumulano le richieste di servizio in uscita e le inoltrano secondo una politica FIFO

Il buffer del WS accumulano i Job in ingresso e li mandano in esecuzione secondo una politica FIFO

Risolve problemi di reteRisolve problemi di rete

Risolve problemi di “Busy” Risolve problemi di “Busy” del WSdel WS

Capacità del buffer limitataCapacità del buffer limitata

Costi aggiuntiviCosti aggiuntivi

Page 16: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

16

““Callback” patternCallback” pattern

Pubblica un servizio One-way Pubblica un servizio One-way per ricevere le richiesteper ricevere le richieste

Quando la risposta è pronta Quando la risposta è pronta viene spedita tramite un altro viene spedita tramite un altro servizio One-wayservizio One-way

Invia la richiesta tramite un Invia la richiesta tramite un servizio One-wayservizio One-way

Pubblica un altro servizio Pubblica un altro servizio One-way per ricevere la One-way per ricevere la rispostarisposta

INPUT:• Parametri espliciti• XML Document

Invio OKInvio OK

Errore di trasportoErrore di trasporto

INPUT:• Parametri espliciti• XML Document

INPUT:• Parametri espliciti• XML Document

Link da applicazioneCoupling risposta

Invio OKInvio OK

Errore di trasportoErrore di trasporto

Page 17: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

17

““Publish-Subscribe” patternPublish-Subscribe” pattern

Pubblica un servizio One-Pubblica un servizio One-way per ricevere le way per ricevere le richiesterichieste

Ogni volta che l’informazione Ogni volta che l’informazione è disponibile viene spedita è disponibile viene spedita tramite un altro servizio One-tramite un altro servizio One-wayway

Invia la richiesta tramite un Invia la richiesta tramite un servizio One-wayservizio One-way

Pubblica un altro servizio Pubblica un altro servizio One-way per ricevere le One-way per ricevere le risposte che via via saranno risposte che via via saranno inviateinviate

INPUT:• Parametri espliciti• XML Document

Link da applicazioneCoupling risposta

Invio OKInvio OK

Errore di trasportoErrore di trasporto

Invio OKInvio OK

Errore di trasportoErrore di trasportoINPUT:• Parametri espliciti• XML Document

INPUT:• Parametri espliciti• XML Document

Page 18: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

18

““Polling” patternPolling” pattern

Pubblica un servizio Pubblica un servizio Request-response per Request-response per ricevere le richieste e ricevere le richieste e inviare un msg di inviare un msg di

avvenuta ricezioneavvenuta ricezione

Quando la risposta è pronta Quando la risposta è pronta viene spedita tramite un viene spedita tramite un altro servizio Request-altro servizio Request-response che si occupa response che si occupa anche della confermaanche della conferma

Invia la richiesta e riceve la Invia la richiesta e riceve la conferma tramite un conferma tramite un

servizio Request-responseservizio Request-response

Pubblica un altro servizio Pubblica un altro servizio Request-response per Request-response per ricevere la risposta e dare la ricevere la risposta e dare la confermaconferma

INPUT:• Parametri espliciti• XML Document

INPUT:• CID

INPUT:• Parametri espliciti• XML Document

INPUT:• CID

Page 19: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

19

Mancanza di uno standard universalmente riconosciutoMancanza di uno standard universalmente riconosciuto

Mosaico di proposte indipendenti

Tra le proposte individuate si evidenziano alcune idee chiaveTra le proposte individuate si evidenziano alcune idee chiave

Esistenza di due livelli di asincronismo

A livello di singola chiamata (Asincronismo “in the small”)

A livello del contesto di conversazione (Asincronismo “in the large”)

Le “unit” WebML introdotte coprono ogni possibile tipologia di Le “unit” WebML introdotte coprono ogni possibile tipologia di chiamata asincrona a WSchiamata asincrona a WS

Sviluppi futuri:Sviluppi futuri:

Gestione delle eccezioni e impatto sulle comunicazioni asincrone

Page 20: Progetto realizzato da: Francesco Seccia Matr. 666784 Marco Spinelli Matr. 667109

20

Francesco Seccia Matr. 666784Francesco Seccia Matr. 666784

Marco Spinelli Matr. 667109Marco Spinelli Matr. 667109