Introduzione a Service Oriented Architecture e Web Service

Похожие документы
Introduzione ai Web Services Alberto Polzonetti

Un introduzione ai Web service

Definizione di Web service (2) Un introduzione ai Web service. Caratteristiche dei Web service. Valeria Cardellini Università di Roma Tor Vergata

Web Service Architecture

Web Services Security

1 Vincenzo de Stefano SAP e Servizi Web

Seminario di Sistemi Distribuiti RPC su SOAP

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

fornitore di servizi utente all interazione tra utenti e sistemi

SOA e Web Service SISTEMI INFORMATIVI MODULO II. Corso di Sistemi Informativi Modulo II A. A

Ministero del Lavoro e delle Politiche Sociali

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP

Architetture orientate ai servizi

Introduzione alle applicazioni di rete

Modelli per la descrizione di protocolli

Siti web centrati sui dati (Data-centric web applications)

Web service. A cura di Azzurra Ragone

PARTE 11. Web Services

Architetture Informatiche. Dal Mainframe al Personal Computer

Applicazioni web centrati sui dati (Data-centric web applications)

Client e Server comunicano tramite il protocollo SOAP.

Architetture Informatiche. Dal Mainframe al Personal Computer

JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa

Reti di Telecomunicazione Lezione 6

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Approfondimento. Web Services

Il Web-Service SDMX dell ISTAT

Integration Software S.r.l.

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket.

B.P.S. Business Process Server ALLEGATO C10

Lezione 1 Introduzione

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Web Service SOAP e WSDL. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com

Gestione Richieste Patenti Web

Protocolli applicativi: FTP

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

Presentazione di Cedac Software

DOCFINDERWEB SERVICE E CLIENT

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Lezione 1. Introduzione e Modellazione Concettuale

Simple & Efficient.

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Telecomunicazione Lezione 8

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Web Service medra per la gestione DOI

Standard di comunicazione

Modelli e Sistemi di Elaborazione Peer-to-Peer

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Cenni di programmazione distribuita in C++ Mauro Piccolo

Lo scenario: la definizione di Internet

Architetture software

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Groups vs Organizational Units. A cura di Roberto Morleo

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Una metodologia per la specifica di software basato su componenti

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Interoperabilità e cooperazione applicativa tra sistemi informativi

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Sistemi Operativi. Conclusioni e nuove frontiere

SVI Nuovo Sistema Revisioni

Sicurezza e Gestione delle Reti (di telecomunicazioni)

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited

TCP/IP: INDIRIZZI IP SIMBOLICI

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Approccio stratificato

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Composizione e Coreografia di Web Services

Reti e Internet: introduzione

Firewall applicativo per la protezione di portali intranet/extranet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Modellazione dei dati in UML

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Corso di Amministrazione di Reti A.A. 2002/2003

Introduzione ai Web Services. Tito Flagella

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

JNDI. Massimo Merro Programmazione di Rete 214 / 229

Транскрипт:

Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Introduzione a Service Oriented Architecture e Web Service Corso di Sistemi Distribuiti e Cloud Computing A.A. 2013/14 Valeria Cardellini Service Oriented Architecture Service Oriented Architecture (SOA): paradigma architetturale per progettare sistemi sw distribuiti lascamente accoppiati Definizione Open Group: stile architectutturale che supporta l orientamento a servizi Definizione OASIS: paradigma per l organizzazione e l utilizzazione di risorse distribuite che possono essere sotto il controllo di domini di proprietà differenti. Fornisce un mezzo uniforme per offrire, scoprire, interagire ed usare le capacità di produrre gli effetti voluti in modo consistente con presupposti e aspettative misurabili Proprietà (secondo W3C, http://www.w3.org/tr/ws-arch/) Vista logica Orientamento ai messaggi e alla descrizione Granularità dei servizi, orientamento alla rete, neutralità della piattaforma 1

Service Oriented Architecture (2)! Tre entità che interagiscono tra loro! Service requestor o consumer: richiede l esecuzione di un servizio! Service provider: implementa il servizio e lo rende disponibile! Service registry: offre un servizio di pubblicazione e di ricerca di servizi disponibili 2 SOA!= Web Service! SOA: paradigma architetturale! Web service: principale implementazione di SOA! Ma è possibile implementare SOA anche in Java, C#, Java EE, CORBA, DCOM, 3

Definizione di Web service! Definizione tratta dal tutorial introduttivo dell IBM Web Services - The Web's next revolution Si focalizza sull integrazione dei Web service in Internet e sulle interazioni con i sistemi sw in essa operanti Web services are a new breed of Web application. They are self-contained, self-describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions that can be anything from simple requests to complicated business processes. A sample Web service might provide stock quotes or process credit card transactions. Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service. 4 Definizione di Web service (2)! Definizione fornita dal W3C http://www.w3.org/tr/ws-arch/ Si focalizza sulla definizione del contesto tecnologico nel quale operano i Web service e sugli standard da utilizzare A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. 5

Definizione di Web service (3) In definitiva, possono essere visti come una tecnologia basata su standard aperti per favorire l'integrazione e l'interoperabilità di applicazioni, che permette di esporle come pacchetti auto-contenuti ed auto-descritti L accesso ad applicazioni basate su Web service è reso facile dal fatto che possono essere pubblicate, trovate ed invocate sul Web 6 Web service! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Un client non sa quale linguaggio di programmazione, sistema operativo, è stato usato Non possono essere inviati o ricevuti dati binari (ma ci sono eccezioni) <name>character data </ name><cost>123.45</ cost> <response>character data </response> 7

Web service (2)! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Un Web service deve descrivere se stesso: quali tipi di richieste può soddisfare, quali sono i parametri di input ed output, quale è il trasporto What information do you need? 2 arguments: (1) Item name (2) Quantity 8 Web service (3)! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Un Web service deve indicare ad un registro di servizi dove è localizzato Here I am Where is a service that I can use to find airline flight schedules? 9

Web service (4)! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Un potenziale client deve trovare il Web service in un registro di servizi Here I am Where is a service that I can use to find airline flight schedules? 10 Web service (5)! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Le operazioni invocabili ed i loro parametri di input ed output devono essere noti <name>character data </ name><cost>123.45</ cost> <response>character data </response> API nota 11

Web service (6)! Componente software indipendente dalla piattaforma e dall implementazione che può essere: Descritto usando un linguaggio di descrizione del servizio Pubblicato in un registro di servizi Scoperto mediante un meccanismo standard (a runtime o a tempo di progetto) Invocato su rete mediante un API Composto con altri servizi Il servizio può a sua volta essere un client di un altro servizio <name>character data </ name><cost>123.45</ cost> <response>character data </response> 12 Classificazione dei servizi Servizi semplici Livello di composizione Servizi composti Servizi stateless Gestione dello stato Servizi stateful Modello di comunicazione Servizi sincroni Servizi asincroni 13

Web service stack! Architettura definita su sei livelli principali BPEL, BPMN, UDDI WSDL SOAP HTTP Service Integration Service Discovery Service Publication Service Description XML-based messaging Transport 14 Perché XML e Web service?! I Web service si basano sul linguaggio XML perché indipendente da linguaggi, applicazioni e piattaforme specifiche! XML garantisce Ricchezza espressiva Estendibilità Portabilità Facilità di comprensione! Gli schemi XML possono essere validati da entrambe le parti che comunicano 15

Web service interaction 16 BPEL, BPMN, UDDI WSDL SOAP HTTP Service Integration Service Discovery Service Publication Service Description XML-based messaging Transport 17

Simple Object Access Protocol (SOAP)! E un semplice protocollo basato su XML e progettato per lo scambio di informazioni da parte di applicazioni indipendentemente dal protocollo di trasporto utilizzato (HTTP, SMTP, FTP, IIOP, MQ, )! E il protocollo utilizzato dai Web Service per lo scambio di messaggi! Protocollo one-way e asincrono, ma utilizzato per realizzare RPC sul Web 18 SOAP processing model! SOAP definisce un processing model distribuito al quale partecipano: SOAP message SOAP sender SOAP receiver SOAP intermediary! Il SOAP processing model specifica in che modo un SOAP receiver processa un SOAP message Si applica ad ogni singolo messaggio, isolato da tutti gli altri 19

SOAP processing model (2)! Nel processare un messaggio SOAP, un nodo SOAP agisce in uno o più SOAP role! Ciascun role è identificato da un URI chiamato SOAP role name! I ruoli assunti da un nodo non possono variare all atto di processare un messaggio 20 Struttura del messaggio SOAP! Envelope: contenitore delle diverse parti di un messaggio! Body (obbligatorio): parte centrale del messaggio, contiene il dato del messaggio vero e proprio! Può opzionalmente contenere una sotto-parte chiamata SOAP Fault! Header (opzionale): informazioni addizionali al messaggio, divise in blocchi, per i diversi attori coinvolti SOAP Envelope SOAP Header(opz.) Header Block 1 Header Block N SOAP Body (obbligatorio)! I contenuti di ogni parte non sono specificati in SOAP 21

Struttura del messaggio SOAP (2) <?xml version= 1.0 encoding= UTF-8 > <env:envelope xmlns:env= http://www.w3.org/2003/05/soapenvelope > <env:header> <!-- optional --> <!-- Content of header goes here --> </env:header> <env:body> <! Payload or Fault element goes here --> </env:body> </env:envelope> 22 Uno scambio di messaggi SOAP Messaggio di richiesta <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:s="http://www.w3.org/2003/05/soapenvelope"> <S:Body> <ns2:sum xmlns="http://it.testws.echows/xsd" xmlns:ns2="http://it.testws.echows"> <ns2:a>4</ns2:a> <ns2:b>5</ns2:b> </ns2:sum> </S:Body> </S:Envelope> 23

Uno scambio di messaggi SOAP (2) Messaggio di risposta <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://www.w3.org/ 2003/05/soap-envelope"> <soapenv:body> <ns:sumresponse xmlns:ns="http:// it.testws.echows"> <ns:return>9</ns:return> </ns:sumresponse> </soapenv:body> </soapenv:envelope> 24 Gestione degli errori: SOAP fault! SOAP fornisce un modello per gestire situazioni di errore nell elaborazione di un messaggio! L elemento Body ha un sottoelemento particolare (Fault) in cui specificare le informazioni sull errore verificatosi! L elemento Fault contiene:! faultcode: codice che identifica il fault! faultstring: stringa che descrive il fault! detail (opzionale): informazioni applicative specifiche! faultactor (opzionale): identifica il SOAP processor che ha generato l errore 25

Sample SOAP request-response for creating an S3 bucket SOAP Request SOAP Response <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soapenvelope" soap:encodingstyle= "http://www.w3.org/2001/12/soap-encoding"> <soap:body> <CreateBucket xmlns="http:// doc.s3.amazonaws.com/2010-03-15"> <Bucket>SampleBucket</Bucket> <AWSAccessKeyId> 1B9FVRAYCP1VJEXAMPLE= </AWSAccessKeyId> <Timestamp>2010-03-15T14:40:00.165Z </Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE =</Signature> </CreateBucket> </soap:body> </soap:envelope> <soap:envelope xmlns:soap="http://www.w3.org/2003/05/ soap-envelope" soap:encodingstyle= "http://www.w3.org/2001/12/soap-encoding"> <soap:body> <CreateBucket xmlns="http:// doc.s3.amazonaws.com/2010-03-15"> <Bucket>SampleBucket</Bucket> <AWSAccessKeyId>1B9FVRAYCP1VJEXAMP LE= </AWSAccessKeyId> <Timestamp>2010-03-15T14:40:00.165Z </Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE =</Signature> </CreateBucket> </soap:body> </soap:envelope> Copyright 2012, Elsevier Inc. All rights reserved. 1-26 26 BPEL, BPMN, UDDI WSDL SOAP HTTP Service Integration Service Discovery Service Publication Service Description XML-based messaging Transport 27

Web Service Description Language (WSDL)! Un file WSDL è un tipo di documento XML contenente informazioni sul relativo Web service La descrizione della sua interfaccia Dettagli amministrativi per la sua invocazione! Quando un service requestor vuole usare un Web service Individua il servizio (ad es. tramite UDDI) Richiede il file WSDL Analizza il file WSDL per determinare La locazione del Web service Le operazioni offerte ed i relativi parametri di input ed output Come accedere alle operazioni Crea una richiesta SOAP Invia la richiesta SOAP al Web service 28 WSDL (2) WSDL è un linguaggio basato su XML per definire e descrivere Web service Versioni: WSDL 1.1 e WSDL 2.0 Descrive un Web service fornendo le informazioni necessarie per sviluppare client che intendano utilizzarlo in base alla sintassi XML Un file WSDL specifica la locazione (URL) del Web service e le operazioni offerte, mediante: Una descrizione astratta di una classe di servizi Un insieme di descrizioni di servizi concreti, conformi alla descrizione astratta 29

WSDL 1.1: parte astratta! La parte astratta di un descrittore WSDL specifica:! Un insieme (opzionale) di tipi (types): nuovi tipi XML schema che potranno essere usati nella specifica! Un insieme di messaggi (message): descrizioni astratte (tipi e nomi) dei dati scambiati con il Web service (eventualmente usando i tipi sopra definiti)! Un insieme di operazioni (operation): descrizioni astratte delle azioni supportate da un Web service! Uno o più port type (porttype): insiemi di operazioni correlate dal punto di vista applicativo 30 WSDL 1.1: parte concreta! La parte concreta di un descrittore WSDL specifica: binding: il particolare protocollo di comunicazione per un certo porttype; è possibile specificare diversi binding per lo stesso porttype (es. su HTTP, SMTP ecc.) port: modulo concreto costituito da: un porttype: interfaccia e specifica del servizio un binding: come funziona il servizio un indirizzo URL: dove trovare il servizio service: fornitore di servizio concreto formato da un insieme di port 31

Struttura di un file WSDL 1.1 <definitions> <types> i tipi di dato che verranno trasmessi </types> <message> i messaggi scambiati(messaggi di input, messaggi di output, messaggi di errore) </message> <porttype> le operazioni (funzioni) supportate </porttype> <binding> come si scambiano i messaggi (dettagli SOAP) </binding> <service> dove trovare il servizio </service> </definitions> 32 Tipi di operazioni WSDL! Una operazione (operation) può essere:! one-way: il Web service riceve un messaggio (input message)! request-response: il Web service riceve una richiesta (input message) e restituisce la risposta relativa (output message)! solicit-response: il Web service invia un messaggio (output message) e riceve una risposta (input message)! notification: il Web service invia un messaggio (output message) 33

Esempio: servizio di dizionario <message name= gettranslationrequest > <part name= word type= xs:string /> </message> <message name= gettranslationresponse > <part name= value type= xs:string /> </message> Request-response operation <porttype name= dictionaryservice > <operation name= gettranslation > <input message= gettranslationrequest /> <output message= gettranslationresponse /> </operation> altre operation </porttype> 34 Riferimento al porttype <binding type= dictionaryservice name= bind1 > <soap:binding transport= http://schemas.xmlsoap.org/soap/http /> <operation> <soap:operation soapaction= http://webml.org/ gettransl /> <input> <soap:body use= literal /> </input> <output> <soap:body use="encoded" namespace="urn:encname" encodingstyle="http://schemas.xmlsoap.org/ soap/encoding/"/> </output> </operation> </binding> Esempio (2) - SOAP binding SOAP su HTTP Eventuale tipo di encoding 35

Esempio (3) - endpoint <service name="dictservice"> <port name="dictionaryservice binding="bind1"> porttype binding <soap:address location="http://www.dict.com/serv"/> </port> </service> endpoint Per un altro esempio: file WSDL di Amazon S3 http://s3.amazonaws.com/doc/2006-03-01/amazons3.wsdl 36 From WSDL 1.1 to WSDL 2.0 37

BPEL, BPMN, Service Integration UDDI WSDL SOAP HTTP Service Discovery Service Publication Service Description XML-based messaging Transport 38 Universal Description Discovery Integration Universal Description, Discovery, Integration (UDDI): servizio di directory basato su XML che permette ai service provider di rendere pubblica la presenza dei Web service offerti e ai service requestor di localizzare i Web service Senza UDDI, due applicazioni possono comunicare solo se già si conoscono, conoscono i servizi offerti e la loro localizzazione E un servizio globale condiviso tra server differenti sparsi in tutto il mondo, anche se non organizzati secondo una struttura gerarchica Diversi server possono condividere dati mediante un protocollo di replicazione! Si basa su SOAP per la trasmissione dei messaggi! L adozione di UDDI non è stata ampia 39

Interazione con UDDI! UDDI definisce un API standard per la pubblicazione e la scoperta delle informazioni nei service directory! Due azioni principali Registrazione da parte del provider Scoperta da parte del requestor requestor find UDDI publish provider 40