WEB SERVICES. MIDDLEWARE nel supporto a sistemi

Documenti analoghi
fornitore di servizi utente all interazione tra utenti e sistemi

Corso di Architetture Distribuite e Servizi di Rete. Web Services. Antonio Corradi & Paolo Bellavista. Web Services

Service Oriented Architectures (SOA)

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

Introduzione ai Web Services Alberto Polzonetti

Laboratorio di RETI DI CALCOLATORI

Seminario di Sistemi Distribuiti RPC su SOAP

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

Web Services Security

PARTE 11. Web Services

Introduzione a Service Oriented Architecture e Web Service

Servizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf

Architetture orientate ai servizi

Approfondimento. Web Services

Introduzione ai Web Services. Tito Flagella

WSDL. Ing. dell Informazione Gestione dei Servizi Telematici Federica Paganelli 1

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

1 Vincenzo de Stefano SAP e Servizi Web

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

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

Progetto SIRPE De-materializzazione delle prescrizioni. Servizi personalizzati della CIL

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

Tecniche Multimediali

Seminario di Sistemi Distribuiti: RPC su SOAP

Creare client statici

INFORMATICA. Prof. MARCO CASTIGLIONE. Istituto Tecnico Statale Tito Acerbo - PESCARA

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

L uso delle tecnologie informatiche per il trattamento dell informazione e della comunicazione archivistica

Service Oriented Architecture and Web Services

Framework. Impianti Informatici. Web application - tecnologie

Web Services. [Papazoglou] Papazoglou, Web Services Principles and Technology, 2008

Corso di Applicazioni Telematiche

Comunicazione Digitale

UDDI e WSDL: navigare sicuri nel mare dei Web. Col passare del tempo, la rete delle reti

Web Service Architecture

Appendice D. D. Web Services

Modelli per la descrizione di protocolli

Integration Software S.r.l.

Le tecnologie software Internet

Interoperabilità e cooperazione applicativa tra sistemi informativi

Ministero del Lavoro e delle Politiche Sociali

UNIVERSITA DEGLI STUDI DI NAPOLI. Federico II. Web Services

Web services. 25/01/10 Web services

Master Interoperabilità A.A Presentazione Lavoro Pratico 1 Interoperabilità Tecnologica (Prof. Roberto Beraldi) Maccaroni Danilo

Web service. A cura di Azzurra Ragone

Semantic Web. Semantic Web. Il Semantic Web: una semplice estensione. Il Web oggi. Il Semantic Web. Semantic Web

Le Reti Informatiche

QUALIFICAZIONE DELLA PORTA DI DOMINIO

SVI Nuovo Sistema Revisioni

Client e Server comunicano tramite il protocollo SOAP.

Classificazione dei Web Services

SOAP e Web Services. SOAP: introduzione

automation using workflow technology and web services Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3,

2 Reti di Calcolatori XML

Corso di Applicazioni Telematiche

I servizi del SITR-IDT

Griglie computazionali LEZIONE N. 14. Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno

Web Services e Grid Services. OGSA e WSRF. Sommario. Page 1

Web Services e Grid Services. OGSA e WSRF

WebServices. Distribuire una computazione. Sistemi che usano RPC Sun RPC RPC. Il Web usato dai programmi. Vincenzo Gervasi

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Le caratteristiche di interoperabilità del Terrapack 32 M

Service Oriented Architectures e Web Services

Un glossario degli standard di e-business: dall XML ai DTD, dall UDDI all ebxml

AVVISO DI PAGAMENTO. Descrizione del documento e schema XML. WebEDI Scambio elettronico documenti. AVVISO DI PAGAMENTO.doc

Simple & Efficient.

COME FARE PER. ARMONIZZARE IL SITO COL SISTEMA DI GESTIONE DOCUMENTALE DELL ENTE

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

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

APPENDICE C extensible Markup Language

egovernment Stefano Bucci Un infrastruttura aperta per l integrazione e la cooperazione tra amministrazioni Sales Consultant Manager

RILEVAZIONE PRESENZE SPECIFICHE TECNICHE COLLOQUIO

Composizione e Coreografia di Web Services

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Internet (- working). Le basi.

SISTEMI OPERATIVI DISTRIBUITI

Parte II.4 World Wide Web

XML. XML è contemporaneamente: XML non è:

SOAP e i Web Services

Programmazione in Ambienti Distribuiti A.A Il web è costituito da:

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

Comunicazione nel tempo

extensible Markup Language

Analisi,Studio e Sperimentazione di Tecnologie Web Service

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

Definizione e realizzazione di un modello architetturale per la gestione della transazionalità in processi di business distribuiti. Edoardo Di Lorenzo

Specifiche tecniche per il controllo e la trasmissione telematica delle pratiche di Comunicazione Unica

Stack protocolli TCP/IP

Prof. Paolo Nesi Ing. Antonio Cappuccio

ASSEGNAZIONE FABBISOGNO

Mediasoft snc. Classi documentali. Allegato al manuale di Conservazione sostitutiva. Versione del 2 novebre 2015

Web Service. Massimo Martinelli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services Dogane LINEE GUIDA

Università degli Studi di Roma "Tor Vergata" Facoltà di Scienze MFN

Transcript:

WEB SERVICES Differenza tra Servizi Web e Web Services da una parte i servizi Web si ottengono in un sistema integrato facendo computazione via Web dall altra i Web services sono una specifica diversa e precisa per ottenere a livello Web tutto quello che si può ottenere a livello di linguaggio di programmazione e di computazione Stiamo considerando un ambito HTML-compatibile in più assumendo di usare strumenti che tengano in conto alcune estensioni come XML (extensible Markup Language) Web Services 1 MIDDLEWARE nel supporto a sistemi MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte Fornitura di servizi in ambiente distribuito pervasivo e ubiquo Sempre più servizi intesi come sistemi o framework per la integrazione e composizione di oggetti distribuiti -sicurezza -eterogeneità Web Services 2

MIDDLEWARE ad OGGETTI MIDDLEWARE diffusi basati Modello Cliente-Servitore RPC (Remote Procedure Call) Attualmente: CORBA, DCOM Web Services 3 CORBA Interazione sincrona Ambiente standard basato su componenti multilinguaggio e multi-architettura eterogenei MIDDLEWARE ad OGGETTI Applicazione Server Applicazione Client Integrazione di sistemi e strumenti esistenti SKELETON ORB ORB come BUS di interconnessione STUB ORB Apertura di connessioni con ambienti esterni IIOP TCP/IP IIOP TCP/IP Web Services 4

COM e DCOM Interazione sincrona Ambiente basato su componenti multilinguaggio proprietario Integrazione di sistemi e strumenti esistenti MIDDLEWARE ad OGGETTI STUB Applicazione Server Applicazione Client PROXY Apertura di connessioni con ambienti esterni Channel RPC runtime COM Library COM Library Channel RPC runtime TCP/IP TCP/IP Web Services 5 Web Services come organizzazione MIDDLEWARE come organizzazione per la fruizione di servizi (Richiedente/Provider e Broker) in ambito Web-compatibile Servizi offerti dal Provider Richiesti quando e se necessario su bisogno dal Client Esposti da appositi sistemi di nomi broker definiti ad-hoc Web Services 6

Web Services come protocolli Web Services come MIDDLEWARE di Integrazione(?) SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language) UDDI insieme con altre estensioni (Universal Discovery, Description and Integration) Per ottenere la possibilità di interoperare come usando la programmazione ma attraverso il Web Web Services 7 Web Services: : Protocolli SOAP Protocollo di comunicazione per la interazione sia C/S sia richiesta o risposta WSDL dialetto XML per la descrizione dei servizi che si possono richiedere ed ottenere UDDI Sistema di nomi per esportare ed importare le proprietà dei servizi disponibili insieme con altre estensioni Web Services 8

MIDDLEWARE e SICUREZZA I firewall tendono a introdurre vincoli nel passaggio di funzionalità e a bloccare richieste di operazioni insicure Fornitura di servizi WEB in ambiente distribuito deve passare anche attraverso le politiche di sicurezza di qualunque sistema (eterogeneità) e di qualunque gestione di sicurezza Web Services 9 SICUREZZA ed ETEROGENEITÀ Potere richiedere qualunque servizio da qualunque piattaforma e per qualunque tecnologia realizzativa Fornitura di servizi WEB attraverso protocolli standard Protocolli di trasporto (SOAP) Protocolli di descrizione (metalivello WSDL e di nomi UDDI) Web Services 10

MIDDLEWARE infrastruttura di sistema Uso di protocolli e strumenti Web compatibili HTML considerato e usato come linguaggio di presentazione XML extensible Markup Language Linguaggio di markup aperto Basato su puro testo Con informazioni di tipo strutturale (semantica?) Derivato da SGML (Standard Generalized Markup Language ) Web Services 11 XML come linguaggio di descrizione specializzabile per settori specifici XML Definire differenti layout (compatibili con differenti dispositivi) Definizione di nuovi TAG applicativi Separazione del contenuto dalla rappresentazione Strutturazione gerarchica delle informazioni Generare la grammatica per validare dei dati XML XML - metalinguaggio Interoperabile e Orientato al Web Compatibile con SGML Integrabile con strumenti esistenti Semplicità e con opzioni semplificabili Facile da usare e con vincoli per la specifica Web Services 12

XML possibilità di uso XML come linguaggio di descrizione specializzabile per settori specifici XML Interoperabile e Orientato al Web e inserito come completamento ad HTML Uso di tag per definire entità e sottoentità <Fatture> <Nome>Antonio</Nome> <Cognome>Corradi</Cognome> <Numero>12222</Numero> <Via>Strada</Via> <Ncivico>123</Ncivico> <CAP>40121</CAP> <Citta>Bologna</Citta>... </Fatture> Web Services 13 XML e HTML XML linguaggio di descrizione di un linguaggio oggetto HTML come il linguaggio descritto XML come metalinguaggio estendibile e descrittivo HTML come linguaggio senza grosse capacità di astrazione Due ruoli separati: XML metalinguaggio (livello di presentazione OSI) opzionale HTML come parte descritta da XML I file possono essere composti da XML per dare struttura e da HTML che si adegua alla organizzazione determinata Anche separati, purché collegabili, tra di loro Web Services 14

XML possibilità di uso XML e HTML insieme in un documento Web Services 15 XML possibilità di uso XML per riferire la intestazione e dettagli sulle informazioni (per la parte HTML o documento oggetto) DTD Document Type Definition o XML StyleSheet per considerare gli attributi ed elementi dei dati da descrivere e potere generare la necessaria validazione Documento vero e proprio con gli elementi XML molto appoggiato dai comitati del W3C http://www.w3.org/ http://www.w3schools.com/ Web Services 16

XML Document Type Definition DTD Document Type Definition La descrizione del DTD permette l uso degli operatori per definire la struttura in modo regolare: * ripetizione di un elemento (zero, o più volte) + almeno una ripetizione (una o più)? una o nessuna ripetizioni, sequenza di elementi Oltre a molte altre possibilità di definizioni ulteriori di attributi, sempre per una identificazione più flessibile della struttura Non usando XML e senza tipi di dati Web Services 17 XML Document Type Definition DTD Document Type Definition il DTD definisce la struttura di un documento e rende agevole la interoperabilità di documenti XML (con lo stesso DTD) <?xml version="1.0"?> <!DOCTYPE Fatture [ <!ELEMENT Fatture (Cliente, Ordine*)*> <!ELEMENT Cliente (Nome, Cognome, Numero, Via, Ncivico, CAP, Citta,..., Ultimo)> <!ELEMENT Nome(#PCDATA)> <!ELEMENT Cognome (#PCDATA)> <!ELEMENT Numero (#PCDATA)>... <!ELEMENT Ultimo (#PCDATA)> <!ELEMENT Ordine (Numero, Prodotto, quantità,..., Ultimo)> ]> Web Services 18

XML Document Type Definition XML Schema Per superare problemi di DTD in caso si vogliano descrivere strutture diverse da quelle di un documento regolare La descrizione dello schema permette un riferimento a tipi che si possono anche definire e di cui si possono stabilire regole determinando anche necessità o meno di ordine di campi usando XML e con tipi di dati Web Services 19 XML Schema <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="fatture" type= "FattureType"/> <xsd:complextype name="fatturetype"> <xsd:sequence> <xsd:element name="nome" type="xsd:string" minoccurs="0" maxoccurs="1"/> <xsd:element name="cognome" type="xsd:string" minoccurs="1" maxoccurs= "1"/> <xsd:element name="numero" type="xsd:string" minoccurs="0" maxoccurs="unbounded"/> <xsd:element name="cap" type="xsd:string" minoccurs="0" maxoccurs="1"/> <xsd:element name="citta" type="xsd:string" minoccurs="1" maxoccurs="1"/>... <xsd:element name= "Ultimo" type="xsd:string" minoccurs= "0" maxoccurs="1"/> </xsd:sequence> </xsd:complextype> </xsd:schema> XML Stylesheet Web Services 20

XML Stylesheet XSL StyleSheet (Extensible Stylesheet Language) - XSLT documenti linguaggio per trasformare XML - XPath linguaggio per definire parti di documenti XML - XSL-FO (Formatting Object) linguaggio per formattare documenti XML <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/2000/xsl/transform"> <xsl:template match="/"> <html><body> <h2>fatture</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">nome</th> <th align="left">cognome</th> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet> Web Services 21 XML e HTML XML vs. HTML elementi XML: <?xml version="1.0"?> <!DOCTYPE Contabilità SYSTEM "Fatture.dtd"> <Fatture> <Nome>Antonio</Nome> <Cognome>Corradi</Cognome> <Numero>12222</Numero> <Via>Strada</Via> <Ncivico>123</Ncivico> <CAP>40121</CAP> <Citta>Bologna</Citta>... <Ultimo_elemento>Fine</Ultimo_elemento> </Fatture> HTML: <font size="12">antonio Corradi</font> <b>via Strada 123, 40121 Bologna</b> Web Services 22

XML vs. HTML attributi XML - schemi XML: <?xml version="1.0"?> <!DOCTYPE Contabilità SYSTEM Fattura.dtd"> <Fattura> <Cliente Nome="Antonio" Cognome="Corradi" Numero="12222" Via="Strada" Ncivico="123" CAP="40121" Citta="Bologna"... Ultimo_attributo="Ultimo"/> </Fattura> Web Services 23 XML vantaggi XML permette di conferire una struttura ad informazioni che sono tipicamente non strutturate (non significato) XML si aggiunge in modo indolore ai formati HTML cui si giustappone anche per documenti esistenti XML permette di omettere le informazioni di struttura (se esistenti e note) XML permette di riferire e considerare strumenti esterni per la validazione, trattamenti, e gestione del documento XML permette di riferire con tecniche di imbustamento documenti oggetto per un facile riferimento a strutture ripetute XML si è affermato come uno standard per la apertura di Servizi Web ad un uso generalizzato Web Services 24

SOAP (SIMPLE OBJECT ACCESS PROTOCOL) Protocollo SOAP In risposta alla necessità di lavorare con protocolli Web ma a livello di progetto di componenti e operazioni Soluzione per introdurre parametri e valori nei messaggi e per l'invocazione remota di oggetti basati su tecnologie Web IPOTESI di PROGETTO - Uso di XML per serializzazione dei dati - HTTP come protocollo di trasporto Esempio <SOAP-ENV:Envelope> <SOAP-ENV:Body> <m:getlasttradeprice> <symbol>mot</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web Services 25 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) Protocollo SOAP <SOAP-ENV:Envelope> Header <SOAP-ENV:Body> Payload <m:getlasttradeprice> <symbol>mot</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web Services 26

SOAP (SIMPLE OBJECT ACCESS PROTOCOL) Protocollo SOAP Envelope incapsula il contenuto del messaggio Header destinato a contenere informazioni aggiuntive Informazioni accessorie di sicurezza Body incapsula le richieste e le risposte (in genere, il messaggio da comunicare) Fault incapsula eventuali casi distinti di errore ed eccezione Web Services 27 SOAP e COMPUTAZIONE: esempio Un semplice esempio: un applicazione finanziaria (client) colloquia con un servizio che fornisce in tempo reale le quotazioni di borsa Questa interazione prevede la richiesta dell ultima quotazione di una determinata azione e la risposta dal server Schema del colloquio: L applicazione cliente costruisce una richiesta in XML usando la sintassi definita da SOAP L applicazione cliente trasmette la richiesta ad un server Web usando HTTP Il server riceve ed interpreta la richiesta trasformandola in un comando che viene passato ad un applicazione sul server (ad esempio) L applicazione sul server riceve il comando e ricava dal proprio database l informazione richiesta L applicazione sul server crea una risposta, sempre in formato XML e la restituisce al server Web Il server Web la restituisce all applicazione client come risposta HTTP Web Services 28

SOAP e XML (request( request) <POST /StockQuote/HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset= utf-8 Content-Length: nnnn SOAPAction: Some-URI Possibilità di spazi di nomi differenti <SOAP-ENV:Envelope xmlns:soap-env= http://schemas.xmlsoap.org/soap/envelope/ SOAP_ENV:encodingStyle= http://schemas.xmlsoap.org/soap/encoding/> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m= Some-URI > <symbol>mot</symbol> </m: GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web Services 29 SOAP e XML (response( response) <HTTP/1.1 200 OK Content-Type: text/xml; charset= utf-8 Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env= http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle= http://schemas.xmlsoap.org/soap/encoding/ > <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m= Some-URI > <Pricel>34.5</Price> </m: GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web Services 30

SOAP (SIMPLE OBJECT ACCESS PROTOCOL) Protocollo SOAP Con il protocollo riusciamo a lavorare come per RPC veicolate attraverso il protocollo HTTP Tendiamo quindi a mandare messaggi e ricevere risposte (inserendo informazioni come da linguaggio di programmazione) Per raggiungere la indipendenza dalle diverse realizzazioni dei servizi che stiamo richiedendo e dalla eterogeneità delle diverse architetture Usando il protocollo non ci accorgiamo di quali server stiamo richiedendo anche se ci muoviamo a livello applicativo molto alto (e con poca efficienza) Web Services 31 SOAP Protocollo per comunicare dati: - Serializzando i dati in modo specifico (indipendentemente dalla piattaforma) - Operazioni leggere, robuste e flessibili (?) - Supporto per tutte le architetture (.NET, J2EE, IBM WebSphere, Sun ONE) Web Services 32

Torniamo alla definizione iniziale Web Services Web Services Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: descritti usando un linguaggio di descrizione del servizio (WSDL) pubblicati in un registro di servizi (UDDI) scoperti mediante una politica definita e meccanismi standard di discovery (a runtime o a tempo di progetto) invocati mediante un API remota, solitamente tramite la rete (SOAP) composti con altri servizi vedi http://www.w3.org/2002/ws/ Web Services 33 Web Services: : WSDL Per i WS, oltre alla comunicazione dobbiamo anche considerare la possibilità di descrivere il servizio WSDL (Web Services Description Language) Una proposta di dialetto XML per descrivere Web Services e per pubblicarli specificando esattamente il formato dei messaggi di richiesta e di risposta in modo portabile e standard WDSL si occupa di specificare: cosa un servizio può fare (richieste, risposte e parametri) dove risiede come invocarlo Web Services 34

WSDL Se si vuole usare un Web service non noto si richiede il file WSDL si analizza il documento WSDL per determinare locazione del servizio chiamate dei metodi con i parametri come accedere ai metodi si crea una richiesta SOAP si invia la richiesta SOAP al servizio e si attende la risposta La logica è quella di avere il massimo del supporto e della facilità nel procedere, fino alla completa automazione da parte di un middleware Alcune parti di WSDL sono molto simili a IDL Web Services 35 ARCHITETTURA DI WSDL WSDL descrive i Web Services iniziando con i messaggi da scambiare tra service Requestor e Provider I messaggi sono descritti a partire da una prospettiva astratta e poi in forma più concreta (protocollo e formato) Un messaggio consiste in una collezione di elementi tipati Uno scambio di messaggi è definito operation Una collezione di operation è definita un porttype Un service rappresenta l implementazione di un porttype e contiene una collezione di port Una port è l implementazione concreta del servizio e include tutti i dettagli concreti necessari al verificarsi della comunicazione Un binding il legame per richiedere le operazioni concrete astratti concreti Web Services 36

SERVIZIO in WSDL Un documento WSDL è formato da questi elementi in corrispondenza ad una parte dell applicazione Parti astratte Messages, Operations, porttypes Parti concrete Types, Bindings, Ports, Services WSDL definisce gli elementi astratti prima e poi le controparti concrete La versione astratta del servizio è generalizzabile, flessibile e facilmente estendibile Le specifiche concrete sono definite solo in ognuno degli elementi costituenti il servizio Web Services 37 Parti Astratte in WSDL messages informazione effettivamente inviata tra requestor e provider, con la possibile qualificazione del messaggio di input, output, o fault operation specifica dei nomi delle operazioni, i parametri di input e output e consiste di messaggi porttype Un port type è un insieme di operazioni astratte e di messaggi aventi un identificativo univoco che corrisponde al servizio stesso e che di solito si presenta in modo unico nel documento WSDL Web Services 38

Parti Concrete in WSDL types tipo di dato in un messaggio usando XML Schema (inserita per prima) binding per i dettagli dell implementazione delle operazioni contenute in un porttype Specifica i protocolli concreti: trasporto e codifica dei dati (HTTP, SOAP; SMTP; FTP; ) port per indicare l indirizzo di rete del servizio con cui effettuare la connessione service come una collezione di porte correlate Permette di raggruppare tutti i porttype, in modo che sia visibile quali siano i port supportati da un determinato servizio Ad esempio, tutte le porte associate ad una transazione che richiede più passi Web Services 39 Web Services: : WSDL types Una prima parte del WSDL descrive i tipi necessari per le operazioni <types> <schema> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </complextype> </element> </schema> </types> Web Services 40

WSDL message, operation,, e porttype Troviamo la descrizione dei messaggi e operazioni: <message name="getlasttradepriceinput"> <part name="body" element="xsd1:tradepricerequest"/> </message> <message name="getlasttradepriceoutput"> <part name="body" element="xsd1:tradeprice"/> </message> Ogni operazione è costituita da un messaggio di richiesta e uno di risposta raggruppate in porttype <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype> Web Services 41 WSDL porttype Ogni porttype prevede modalità diverse sincrone e asincrone One_way: l operazione composta da un solo messaggio in ingresso al service provider Request_response: l operazione prevede una risposta del service provider al messaggio del client Solicit_Response: l operazione prevede l attesa da parte del service provider di una risposta sollecitata con una richiesta mandata dal provider al cliente Notification: l operazione è composta da un solo messaggio in uscita al service provider Web Services 42

WSDL binding Il binding come collegamento tra un tipo di operazione (type), un nome di operazione (name) e l azione da eseguire (soapaction): <binding name="stockquotesoapbinding type="tns:stockquoteporttype"> <soap:binding> <operation name="getlasttradeprice > <soap:operation soapaction="http://lia.deis.unibo.it/soap/bin/"/> <input><soap:body use= literal /><input> <output><soap:body use= literal /></output> </operation> </binding> Si riferiscono le implementazioni concrete Web Services 43 WSDL port e service L ultima parte del documento descrive il servizio e l indirizzo Web da utilizzare per accedere: <service name="stockquoteservice"> <documentation> Servizio di quotazione azioni </documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://www.stockquote.com"/> </port> </service> Oltre a ultimi dettagli concreti Web Services 44

Universal Description Discovery & Integration Universal Description Discovery & Integration language (UDDI) Un fornitore di servizi UDDI (IBM, Microsoft, SAP ecc.) gestisce un registro elettronico denominato UBR (UDDI Business Registry) accessibile sia per pubblicare che per rintracciare i Web Services Necessità di sistemi di nomi per ritrovare i Web Services non noti con una suddivsione delle funzioni in: Service Type Registry informazioni sui tipi di servizio tmodel descrizioni delle tipologie dei dati Business Registry informazioni sulle aziende che le forniscono Web Services 45 Universal Description Discovery & Integration Universal Description Discovery & Integration language (UDDI) lo standard UDDI si propone di rintracciare i WS organizzandosi su tre tipi di servizi i cui nomi si ispirano al mondo della telefonia: White pages: permette di trovare un servizio per nome Yellow pages: permette di trovare un servizio per categoria Green Pages: fornisce informazioni tecniche sui servizi offerti da una determinata azienda Web Services 46

Universal Description Discovery & Integration UDDI utilizzato da due classi di utenti Publisher: compagnia che offre Web Services Client: utente o compagnia che ricerca un Web service UDDI è un servizio globale condiviso tra server differenti sparsi in tutto il mondo, anche se non organizzati secondo una struttura gerarchica I diversi server condividono i dati mediante protocolli di replicazione UDDI come un DNS (Domain Name System) con la differenza che il DNS lavora a basso livello e UDDI lavora a livello alto di servizi UDDI si basa su SOAP per la trasmissione dei messaggi Web Services 47 Universal Description Discovery & Integration Universal Description Discovery & Integration language (UDDI) Due azioni principali Registration Discovery La sicurezza è un aspetto fondamentale Problema: un concorrente potrebbe cancellare il servizio di un altro publisher Soluzione: autenticazione dei publisher Ogni server mantiene traccia dei publisher e di cosa sia pubblicato Solo chi ha pubblicato un servizio autorizzato a modifica/cancellazione Web Services 48

Web Services Inspection Language (WSIL) Web Services Inspection Language (WSIL) Con obiettivo simile a UDDI e complementare Informazioni sulla descrizione di un servizio che possono essere distribuite in ogni locazione usando un semplice documento in formato XML Evita una delle attuali difficoltà di UDDI Le entry in un registro UDDI non sono moderate ed un client non può essere sicuro che un servizio appartenga effettivamente al service provider che lo ha pubblicato nel registro UDDI Vantaggi principali decentralizzato, leggero senza focalizzare informazioni di business Utilizza altri meccanismi per la descrizione dei servizi come WSDL (analogamente ad UDDI) Web Services 49 Performance di Web Services Web Services 50

Performance di Web Services Web Services 51