Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno LEZIONE N. 14 Web Services SOAP WSDL UDDI CE-CREAM SRM Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 5
Web services (4/4) protocol stack Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 8
SOAP (3/4) SOAP message Griglie computazionali - a.a. 2008-09 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,...) Griglie computazionali - a.a. 2008-09 10
SOAP request SOAP response Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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) Griglie computazionali - a.a. 2008-09 14
WSDL (4/6) Esempio: HelloService.wsdl definitions message (segue) Griglie computazionali - a.a. 2008-09 15
WSDL (5/6) porttype operation patterns supportati (segue) Griglie computazionali - a.a. 2008-09 16
WSDL (6/6) binding service Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 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 Griglie computazionali - a.a. 2008-09 19
UDDI (3/7) data model Griglie computazionali - a.a. 2008-09 20
UDDI (4/7) businessentity Griglie computazionali - a.a. 2008-09 21
UDDI (5/7) businessservice bindingtemplate tmodel Griglie computazionali - a.a. 2008-09 22
UDDI (6/7) inquiry API Griglie computazionali - a.a. 2008-09 23
UDDI (7/7) publishing API Griglie computazionali - a.a. 2008-09 24
BES Basic Execution Service In ambito OGF (Open Grid Forum) è stata definita la versione 1.0 dell interfaccia per l interazione con le risorse computazionali. Basic Execution Service (BES) definisce le specifiche di un servizio al quale i client possono sottomettere richieste per inizializzare monitorare ed eseguire il management di computational activities. Tale specifica definisce un modello estendibile per le suddette attività, un information model e due porttypes; BES-Management e BES-Factory. Griglie computazionali - a.a. 2008-09 25
BES Basic Execution Service BES-Management definisce le operazioni necessarie per il management del servizio BES stesso. BES-Factory definisce le operazioni di initiating, monitoring, and managing e l accesso alle informazioni relative al servizio Griglie computazionali - a.a. 2008-09 26
BES-OGSA Open Grid Service Architecture Griglie computazionali - a.a. 2008-09 27
CE-CREAM CREAM CREAM (Computing Resource Execution And Management) è un servizio leggero che implementa tutte le operazioni di livello Computing Element (CE). Presenta una WebService-based interface, è implementato come una estensione Java-Axis servlet (sviluppato all interno dell Apache Tomcat container) L obiettivo è garantire l interoperabilità con client scritti in vari tipi di linguaggio e operanti su differenti computer platform. L interfaccia CREAM è definita usando Web Service Description Language (WSDL); ognuno può generare il proprio client CREAM semplicemente. Griglie computazionali - a.a. 2008-09 28
CE-CREAM CREAM IL CE CREAM SUPPORTA Job Submission Support for batch and MPI jobs Support for bulk jobs being integrated Manual and automatic proxy delegation Job Cancellation Job Info with configurable level of verbosity and filtering based on submission time and/or job status Job List Job Suspension and Resume GSI based authentication VOMS based authorization Job Purge for terminated jobs Possibility (for admin) to disable new submissions Griglie computazionali - a.a. 2008-09 29
CE-CREAM CREAM CREAM può essere usato Dal Workload Management System (WMS), tramite il servizio ICE (Interface to CREAM Environment). Da un generico client, ad esempio un software di livello utente che sottomette job direttamente verso il CREAM CE. Tramite C++ command line interface e Java clients. Griglie computazionali - a.a. 2008-09 30
CE-CREAM CREAM Griglie computazionali - a.a. 2008-09 31
CE-CREAM CREAM Griglie computazionali - a.a. 2008-09 32
BES-enable CREAM L interfaccia legacy del CE CREAM non è attualmente BES-compliant. Un prototipo BES/JSDL-enabled CREAM è stato sviluppato nell ambito del progetto OMII-EU project. Il servizio CREAM-BES espone due interfacce WSDL separate, una con la "legacy CREAM interface, e l altra BES/JSDL compliant. Entrambe le interfacce possono essere utilizzate contemporaneamente. Griglie computazionali - a.a. 2008-09 33
BES-enable CREAM Griglie computazionali - a.a. 2008-09 34
BES-CREAM Vs Legacy CREAM Griglie computazionali - a.a. 2008-09 35
SRM Storage Resource Manager Griglie computazionali - a.a. 2008-09 36
SRM Storage Resource Manager Data Transfer Functions Griglie computazionali - a.a. 2008-09 37
SRM WSDL INTERFACE </wsdl:documentation> <wsdl:types> <schema targetnamespace="http://srm.lbl.gov/storageres ourcemanager" xmlns="http://www.w3.org/2001/xmlschema"> <import namespace="http://schemas.xmlsoap.org/soap/enc oding/"/> <simpletype name="tfilestoragetype"> <restriction base="xsd:string"> <enumeration value="volatile"/> <enumeration value="durable"/> <enumeration value="permanent"/> </restriction> </simpletype> <simpletype name="tfiletype"> <restriction base="xsd:string"> <enumeration value="file"/> <enumeration value="directory"/> <enumeration value="link"/> </restriction> </simpletype> <simpletype name="tretentionpolicy"> <restriction base="xsd:string"> <enumeration value="replica"/> <enumeration value="output"/> <enumeration value="custodial"/> </restriction> </simpletype> Griglie computazionali - a.a. 2008-09 38
SRM WSDL INTERFACE <wsdl:message name="srmmkdirrequest"> <wsdl:part name="srmmkdirrequest" type="impl:srmmkdirrequest"/> </wsdl:message> <wsdl:message name="srmmkdirresponse"> <wsdl:part name="srmmkdirresponse" type="impl:srmmkdirresponse"/> </wsdl:message> Griglie computazionali - a.a. 2008-09 39
SRM WSDL INTERFACE <wsdl:operation name="srmmkdir"> <wsdl:input message="impl:srmmkdirrequest" name="srmmkdirrequest"/> <wsdl:output message="impl:srmmkdirresponse" name="srmmkdirresponse"/> </wsdl:operation> <wsdl:operation name="srmrmdir"> <wsdl:input message="impl:srmrmdirrequest" name="srmrmdirrequest"/> <wsdl:output message="impl:srmrmdirresponse" name="srmrmdirresponse"/> </wsdl:operation> Griglie computazionali - a.a. 2008-09 40
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 BES-CREAM http://www.ogf.org/ogf23/materials/1317/ogf23-2-4-glite.pdf Griglie computazionali - a.a. 2008-09 41