Introduzione alle griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea in Informatica – III Anno LEZIONE N. 10 • • • • Web Services SOAP WSDL UDDI Introduzione alle griglie computazionali - a.a. 2005-06 1 Introduzione Today, the principal use of the World Wide Web is for interactive access to documents and applications. In almost all cases, such access is by human users, typically working through web browsers, audio players, or other interactive front-end systems. The Web can grow significantly in power and scope if it is extended to support communication between applications, from one program to another. - From the W3C XML Protocol Working Group Charter Introduzione alle griglie computazionali - a.a. 2005-06 2 Web services (1/4) definizione • Un web service e’ un servizio: - disponibile tramite Internet/Intranet che utilizza un sistema standard di messaging basato su XML non legato ad un sistema operativo o linguaggio di programmazione Introduzione alle griglie computazionali - a.a. 2005-06 3 Web services (2/4) proprieta’ aggiuntive - self-describing: descrizione delle caratteristiche offerte tramite una grammatica XML - discoverable: meccanismo di pubblicazione / identificazione di un web service tramite la consultazione di registry dedicati Introduzione alle griglie computazionali - a.a. 2005-06 4 Web services (3/4) architettura • service provider implementa e rende disponibile il web service • service requestor utilizza il web service tramite delle richieste XML • service registry contiene le informazioni su come localizzare web services in base a delle chiavi di ricerca Introduzione alle griglie computazionali - a.a. 2005-06 5 Web services (4/4) protocol stack Introduzione alle griglie computazionali - a.a. 2005-06 6 SOAP (1/4) Simple Object Access Protocol SOAP e’ un protocollo XML-based per l’accesso ai metodi di un oggetto remoto caratteristiche principali - specifica W3C semplicita’ di utilizzo indipendente dal livello di trasporto (HTTP, ...) indipendente dal sistema operativo indipendente dal linguaggio di programmazione Introduzione alle griglie computazionali - a.a. 2005-06 7 SOAP (2/4) La specifica SOAP definisce tre elementi: - SOAP envelope specification definisce le regole per l’incapsulamento dei dati da trasferire, del metodo da invocare, dei parametri e/o valori di ritorno - data encoding rules definisce le regole per la codifica delle strutture dati in un messaggio XML (array, hash table, int, double, float, ...) - RPC convention definisce la convenzione per implementare una RPC call: messaging one-way, messaging two-way Introduzione alle griglie computazionali - a.a. 2005-06 8 SOAP (3/4) SOAP message Introduzione alle griglie computazionali - a.a. 2005-06 9 SOAP (4/4) sezioni di un messaggio SOAP • envelope specifica la versione utilizzata (SOAP 1.1 / SOAP 1.2) • header informazioni application-level (es. firma digitale, numero di account, ...) • body contiene le informazioni relative al metodo da invocare • fault contiene le informazioni inviate dal provider al requestor in caso di errore (es. metodo non esistente, accesso negato, ...) Introduzione alle griglie computazionali - a.a. 2005-06 10 SOAP request SOAP response Introduzione alle griglie computazionali - a.a. 2005-06 11 WSDL (1/6) Web Service Description Language WSDL e’ una specifica che definisce come descrivere i web services tramite una grammatica XML caratteristiche principali - specifica W3C favorisce l’integrazione di servizi Introduzione alle griglie computazionali - a.a. 2005-06 12 WSDL (2/6) La specifica WSDL definisce sei elementi: • definitions root element del documento; specifica il nome del web service e i namespaces utilizzati nel documento • types descrive i tipi di dati utilizzati tramite la specifica XML-schema • messages descrive ciascun messaggio di tipo one-way • portType descrive le operazioni (funzioni) supportate dal web service combinando piu’ one-way message Introduzione alle griglie computazionali - a.a. 2005-06 13 WSDL (3/6) • binding descrive la modalita’ di trasmissione dei messaggi (SOAP, ...) • service descrive l’indirizzo da utilizzare per invocare il web service (URL) Introduzione alle griglie computazionali - a.a. 2005-06 14 WSDL (4/6) Esempio: HelloService.wsdl • definitions • message (segue) Introduzione alle griglie computazionali - a.a. 2005-06 15 WSDL (5/6) • portType operation patterns supportati (segue) Introduzione alle griglie computazionali - a.a. 2005-06 16 WSDL (6/6) • binding • service Introduzione alle griglie computazionali - a.a. 2005-06 17 UDDI (1/7) Universal Description, Discovery and Integration UDDI e’ una specifica che definisce come pubblicare e ricercare dei web service caratteristiche principali - specifica W3C tecnologia orientata all’e-business contributo tecnico di Microsoft e IBM Introduzione alle griglie computazionali - a.a. 2005-06 18 UDDI (2/7) La specifica UDDI consiste in tre parti: • UDDI data model XML schema per le informazioni contenute nel registro UDDI • UDDI API set di metodi per l’interrogazione di un registry e per la pubblicazione di un web service • UDDI cloud services set di “operator sites” che forniscono dei registry UDDI e provvedono alla loro sincronizzazione Introduzione alle griglie computazionali - a.a. 2005-06 19 UDDI (3/7) data model Introduzione alle griglie computazionali - a.a. 2005-06 20 UDDI (4/7) businessEntity Introduzione alle griglie computazionali - a.a. 2005-06 21 UDDI (5/7) businessService bindingTemplate tmodel Introduzione alle griglie computazionali - a.a. 2005-06 22 UDDI (6/7) inquiry API Introduzione alle griglie computazionali - a.a. 2005-06 23 UDDI (7/7) publishing API Introduzione alle griglie computazionali - a.a. 2005-06 24 Riferimenti “Web Services Essentials” Distributed Applications with XML-RPC, SOAP, UDDI and WSDL Ethan Cerami, O’Reilly, 2002 “W3 schools online web tutorials” http://www.w3schools.com “Xmethod services” http://www.xmethods.net Introduzione alle griglie computazionali - a.a. 2005-06 25