Please enable JavaScript.
Coggle requires JavaScript to display documents.
Web Services (Tecnologia Middleware a Servizi (Interoperabilità tra…
Web Services
Tecnologia Middleware a Servizi
Sviluppo e integrazione di applicazioni distribuite
Web Services tecnologia dominante
Interoperabilità tra sistemi diversi
Grado in cui più sistemi in grado di scambiarsi informazioni tramite interfacce
Direttamente o indirettamente
Interpretare correttamente i dati scambiati
Rendere servizi disponibili da parte di altri sistemi (Google Maps)
Progettazione
Interfacce dei servizi
Descritte in maniera opportuna (sintassi e semantica)
Per semantica si intende il contratto tra il provider e il requester riguardo lo scopo dell'interazione, a differenza della descrizione che definisce il meccanismo di interazione con un servizio
Indipendente dalle tecnologie con cui sono realizzati gli utilizzatori
Il meccanismo dello scambio dei messaggi è descritto nel Web Service Description WSD
Il WSD è la specifica dell'interfaccia del servizio scritta in WSDL, processabile dalle macchine.
Definisce il formato dei messaggi, tipo dei dati, il protocollo di trasporto, il formato di trasporto serializzato tra requester agent e provider agent. è quindi una forma di agreement sul meccanismo di interazione di servizi
Scoperta servizi
Identità
Locazione
Interfaccia
Gestione richieste e risposte
Possibilità invocazione servizi
Comporre servizi
Comporre servizi per crearne degli altri
Funzionalità fornite sulla base di standard (standard principali SOAP e REST)
Forniscono servizi a client software su protocolli web facendo riferimento a standard tecnologica, indipendenti dalle piattaforme
Componibilità
Integrazione di business per creare processi per creare processi più complessi
Utilizzabile da applicazioni distribuite
Web Service implementati da "agent" per inviare e ricevere messaggi
Forniscono funzionalità fornite da Provider
Il Requestor è la persona o l'entità che vuole utilizzare il Web Service
Modello generale per utilizzare un web service
1) Il requester e il provider si "conoscono"
2) Si accordano sulla descrizione del servizio e la semantica
3) Il provider e il requester realizzano la semantica e la descrizione
4) Il requester e il provider realizzano lo scambio di messaggi
Architettura orientata ai Servizi SOA
Un servizio in una SOA è una funzionalità di business richiamata dai consumatori tramite interfaccia
Possiede 4 modelli
Policy Model
Resource Oriented Model
Discovery: vengono ricercate le descrizioni dei servizi. Può essere seguita da un agent o da un end-user, utilizzando un discovery service
Discovery service: è un servizio utilizzato per pubblicare e ricercare descrizioni su criteri semantici o funzionali
Dinamico: il requester agent può interagire direttamente con il discovery service per trovare l'agent appropriato
Statico: un utente può interagire con il discovery agent direttamente con il browser
Identifier: è un nome non ambiguo per una risorsa (ad esempio URI). Viene utilizzato per identificare una risorsa
Representation: informazioni sullo stato di una risorsa.
Risorsa: possiede un identificatore, 0 o + representation, 0o + descrizioni. è posseduta da persone o organizzazioni.
Descrizione: deve essere processabile da una macchina. La descrizione è utilizzata all'interno del discovery service per permettere agli agenti di ricercare le risorse. Altre informazioni sono la locazione, come accedervi e policy esistenti. Possono esserci anche informazioni su come invocare il servizio
Message Oriented Model
Focalizza sui messaggi, sulla loro struttura e il loro trasporto, senza basarsi sul loro significato
Indirizzo: informazione necessaria al meccanismo di trasporto per spedire un messaggio
Un indirizzo può essere una URI (nell'HTTP)
Può essere contenuto nell'Envelope di un messaggio
Concetti chiave
Agent invia e riceve messaggi
Struttura messaggi composta da header e body e il meccanismo usato per spedirli
Un messaggio è l'unità basica scambiata tra web service all'interno del contesto dei Web Service
Un messaggio può essere descritto tramite il Service description Language
Un messaggio ha un mittente ed un destinatario
Il messaggio può passare attraverso diversi intermediari e il destinatario può anche non essere a conoscenza di questi passaggi
Un messaggio possiede un identificatore
Un messaggio possiede un body, 0 o più header, contenuti all'interno di un envelope
Il body contiene le informazioni che il messaggio vuole trasmettere, come un documento, nome di un metodo invocato e relativi parametri
L'intestazione header contiene metadati e altre informazioni non funzioni, come credenziali di autenticazione oppure id di transazione
L'header può essere processato indipendentemente dal body
L'envelope è la struttura che incapsula le parti di componenti dei messaggi
Può contenere informazioni per spedire messaggi, normalmente inserite all'interno di un documento WSDL
Altre informazioni metadata sono utilizzate per l'autenticazione o la qualità del servizio
Può avere associato una delivery policy
Ruoli addizionali: policy e il modello utilizzato per governare i messaggi
Le delivery policy sono relative alla spedizione dei messaggi
Message Exchange Pattern
Descrive un pattern per lo scambio dei messaggi
Descrive le relazioni temporali, causali, sequenziali etc di più messaggi in conformità del pattern
Differenza tra MEP e Choreography: insoluta, di base si può considerare un MEP come un pattern atomico e la choreography una composizione di pattern
Service Oriented Model
Focus sul servizio e le azioni relative. Senza il modello dei messaggi non si può definire il servizio (non vale il viceversa)
Action: nel SOA è l'azione eseguita da un agente (ad esempio ricezione ed invio messaggi)
Agente: un programma che lavora per conto di una persona o un'organizzazione
Choreography: definisce una sequenza e le condizioni sotto le quali agenti indipendenti scambiano messaggi
Capability: Feature o funzionalità richiesta da un agent
Possiede un URI
Descrizione di una sua semantica
Goal State
Provider Agent: è il Web service che realizza uno o più servizi
Requester entity: persona o organizzazione che vuole utilizzare il servizio
Service: è una risorsa astratta che rappresenta una funzionalità
Service description: contiene i dettagli delle interfacce e potenzialmente il comportamento voluto del servizio: tipi di dati, operazioni, informazioni sul protocollo di trasport e indirizzo
Interfaccia di un servizio: definisce i differenti tipi di messaggi che un servizio invia e riceve, insieme al pattern di scambio messaggi
Servizio intermediario: servizio che filtra i messaggi e li invia ad altri servizi
Semantica di un servizio: rappresenta il comportamento voluto di un servizio. è un contratto tra il provider e il requester
Service Task: è una azione o combinazione di azioni associate ad un goal state
Concetti chiave
Realizzato da un agente e usato da un altro agente
I servizi sono mediati tramite i messaggi scambiati tra agenti del richiedente e agenti del fornitore
Offrono servizi al mondo reale
Fanno utilizzo di meta dati, che sono la proprietà chiave della SOA
Metadati per descrivere interfacce, trasporto vincolato alla semantica del servizio e restrizioni sulla policy