PARTE 11. Web Services



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

Seminario di Sistemi Distribuiti RPC su SOAP

Web Service Architecture

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

Reti di Telecomunicazione Lezione 6

Introduzione alle applicazioni di rete

Un introduzione ai Web service

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

Sistemi informativi secondo prospettive combinate

Introduzione a Service Oriented Architecture e Web Service

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

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

Architetture Informatiche. Dal Mainframe al Personal Computer

Reti di Telecomunicazione Lezione 8

Architetture Informatiche. Dal Mainframe al Personal Computer

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

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

Presentazione di Cedac Software

Database. Si ringrazia Marco Bertini per le slides

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

fornitore di servizi utente all interazione tra utenti e sistemi

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

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

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

1 Vincenzo de Stefano SAP e Servizi Web

Dal protocollo IP ai livelli superiori

Reti di Calcolatori. Il Livello delle Applicazioni

Gestione Richieste Patenti Web

Network Services Location Manager. Guida per amministratori di rete

Lezione 1 Introduzione

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Architetture Applicative

Lo scenario: la definizione di Internet

Il Protocollo HTTP e la programmazione di estensioni Web

Distributed Object Computing

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Protocolli applicativi: FTP

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

Università Politecnica delle Marche. Progetto Didattico

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

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

Sistemi centralizzati e distribuiti

Dispensa di database Access

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

Ministero del Lavoro e delle Politiche Sociali

Versione 1. (marzo 2010)

JNDI. Massimo Merro Programmazione di Rete 214 / 229

Specifiche tecniche e funzionali del Sistema Orchestra

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

MANUALE UTENTE FORMULA PEC

B.P.S. Business Process Server ALLEGATO C10

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

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

OmniAccessSuite. Plug-Ins. Ver. 1.3

EXPLOit Content Management Data Base per documenti SGML/XML

Una minaccia dovuta all uso dell SNMP su WLAN

ESERCITAZIONE Semplice creazione di un sito Internet

Standard di comunicazione

Groups vs Organizational Units. A cura di Roberto Morleo

IBM Software Demos The Front-End to SOA

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano.

Lezione 1. Introduzione e Modellazione Concettuale

Capitolo 4 Pianificazione e Sviluppo di Web Part

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

Firewall applicativo per la protezione di portali intranet/extranet

Gestione del workflow

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB

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

Software per Helpdesk

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

Simple & Efficient.

Ente Ospedaliero Specializzato in Gastroenterologia "Saverio de Bellis" Istituto di Ricovero e Cura a Carattere Scientifico

Modelli e Sistemi di Elaborazione Peer-to-Peer

Concetti di base di ingegneria del software

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Strutturazione logica dei dati: i file

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Protocolli e architetture per WIS

Approccio stratificato

Internet e posta elettronica. A cura di Massimiliano Buschi

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Organizzazione degli archivi

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

Si applica a: Windows Server 2008

lem logic enterprise manager

Транскрипт:

PARTE 11 Web Services

Parte 11 Modulo 1: Motivazioni

Il miraggio dell informatica moderna Integrazione delle applicazioni Interoperabilità In pratica, ogni meccanismo che consenta a diversi sistemi software di condividere, scambiarsi o aggregare informazioni I Web services costituiscono l ultimo tentativo (in ordine di tempo) per riuscire nell intento Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.3

Sistemi di una tipica azienda Un sistema gestisce materials requirement planning (MRP) Un altro sistema gestisce il controllo del magazzino Un terzo sistema gestisce il processo di distribuzione Un altro gestisce gli ordini dei clienti Un altro tiene traccia delle informazioni sui clienti Nel frattempo, un sistema completamente differente è utilizzato per stimare le previsioni di vendita Alcuni ricevono ordini via Web o addirittura effettuano transazioni economiche via rete e allora tutto si complica Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.4

Motivazioni per l integrazione Scambiarsi dati e condividere informazioni tra queste applicazioni è fondamentale per i processi che gestiscono il business di aziende o di enti pubblici Senza questo scambio continuo, il processo si interrompe E se si interrompe, si perdono soldi Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.5

Hershey s nightmare Hershey: azienda leader USA nella produzione di cioccolata e altri prodotti dolciari Nel 1999, ha speso 112 M$ in un progetto di integrazione che coinvolgeva software di SAP, Manugistics e Siebel Primo errore: un progetto di 4 anni in 30 mesi Nel periodo di Halloween i primi problemi: 25% in più di prodotti nei magazzini invenduti Perdita del fatturato del 19% nel quarto trimestre Nuovo progetto (senza Web services): OK nel 2002 Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.6

Cos è un Web Service? Qualcosa che ha a che fare con - il Web Insieme di Risorse Web, dove una risorsa è qualsiasi oggetto identificabile con un URL - un Service Un applicazione che espone le proprie funzionalità mediante una Application Programming Interface (API). In altre parole, una risorsa progettata per essere usufruita da un software e non da un uomo Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.7

Altri aspetti correlati I Web Services come tecnologia per realizzare Service Oriented Architecture (SOA) Utility computing E-business on demand Outsourcing (verso data center) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.8

Service-Oriented Architecture (SOA) Fondamento per la maggior parte dei middleware Caratteristica principale separazione dell interfaccia dall implementazione Metafora dell automobile Un client non ha bisogno di conoscere i dettagli implementativi per usare i servizi di una SOA Attivare e sfruttare servizi remoti su di un altro server da parte di un software richiede tecnologie molto più complesse di quelle relative al Web dove l interazione è fatta da un uomo Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.9

Web services (una definizione) Un Web service è un applicazione che fornisce una Web API (Application Programming Interface), che a sua volta consente alle applicazioni di comunicare utilizzando XML e il Web I Web service usano il Web per realizzare l integrazione di applicazioni eterogenee operanti su piattaforme eterogenee Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.10

A favore e contro E una nuova forma di middleware, basata su principi innovativi rispetto al passato E la tecnologia che ci consentirà di portare a pieno compimento l e-business E yet another tecnologia per il calcolo distribuito che fallirà così come hanno fallito le altre (non per motivi tecnologici, ma a causa di strategie aziendali in competizione) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.11

Ci sono altri prodotti? Message-oriented middleware (MOM) IBM WebSphereMQ Microsoft MQ Sonic Software SonicMQ Prodotti proprietari: non standard, costi di licenze, non comunicano tra di loro RPC middleware (client/server, sincrono) Distributed Computing Environment (DCE RPC) Microsoft RPC, Microsoft DCOM (*) CORBA (*) Java RMI Standard industriali, ma un RPC non interagisce con un altro RPC. Serve lo stesso sistema da entrambe le parti. Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.12

Leader di mercato prima dei Web services Microsoft DCOM CORBA Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.13

CORBA Vers. 1.1 introdotta nel 1991 dall Object Management Group (OMG) Definisce l Interface Definition Language (IDL) e l Application Programming Interfaces (API) che consente l interazione a oggetti client/server all interno di una specifica implementazione di un Object Request Broker (ORB) Un oggetto CORBA è presentato al mondo esterno da un interfaccia con un insieme di metodi L ORB è il middleware che definisce e stabilisce le relazioni requestor-provider tra oggetti distribuiti Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.14

CORBA 2.0 CORBA 2.0, adottato nel 1994, mirava all interoperabilità specificando come possono interagire ORB di produttori differenti Un ORB riceve un messaggio per invocare uno specifico metodo per un oggetto registrato. L ORB intercetta il messaggio ed è responsabile per: trovare un oggetto che possa gestire la richiesta passargli i parametri invocare il suo metodo restituire i risultati In teoria, il nodo requestor non deve conoscere altri dettagli sul provider oltre all interfaccia dell oggetto: dove l oggetto si trova, il suo linguaggio di programmazione, il suo sistema operativo, ecc. Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.15

Microsoft DCOM DCOM è l estensione distribuita del modello Microsoft COM (Component Object Model), che costruisce un livello per remote procedure call ad oggetti (ORPC) al di sopra di DCE RPC Un server COM può creare istanze di oggetti di classi multiple. Un oggetto COM può supportare interfacce multiple, ciascuna rappresentante una vista o un comportamento differente di un oggetto Un interfaccia è costituita da un insieme di metodi Un client COM interagisce con un oggetto COM acquisendo un puntatore ad una delle interfacce dell oggetto e invocando metodi mediante quel puntatore, come se l oggetto risiedesse nello spazio di indirizzamento del client Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.16

Stile RPC object-oriented (simile per tutti) Client Server Client Procedure() argomenti risultati Client Stub Called Procedure Server Stub Network transport Network Transport RETE Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.17

Denominazioni a confronto Architett. RPC Client Stub Server Stub CORBA Stub Skeleton DCOM Proxy Stub Web services Service Proxy Service Implementation Template Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.18

Piccole differenze impattano sull interoperabilità DCOM e CORBA hanno molte similitudini Entrambi i protocolli usano endpoint identifier per individuare un certo oggetto all interno del middleware lato server Entrambi usano method identifiers per determinare la signature del metodo da invocare Tre differenze sostanziali impediscono l interoperabilità 1. Supporto per interfacce multiple per un oggetto In CORBA, l identificatore di interfaccia è implicito perché viene supportata una sola interfaccia per un oggetto In DCOM è possibile supportare interfacce multiple per ciascun oggetto Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.19

Piccole differenze impattano sull interoperabilità (2) 2. Naming degli endpoint di comunicazione Nei protocolli ORPC, è necessaria una rappresentazione di un endpoint ORPC per comunicare i riferimenti agli oggetti CORBA/IIOP usa Interoperable Object Reference (IOR), che contiene informazioni sugli indirizzi in un formato portabile che ogni prodotto CORBA può tradurre in un oggetto endpoint DCOM usa il formato OBJREF, che combina riferimenti distribuiti con l identificazione dell oggetto endpoint Purtroppo, IOR non interagisce con OBJREF, causando problemi di interoperabilità tra applicazioni CORBA e DCOM 3. Formato dei valori dei parametri DCOM usa Network Data Representation (DR) IIOP/GIOP usa Common Data Representation (CDR) Piccole differenze tra questi formati li rendono incompatibili Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.20

Difetti di CORBA e DCOM Sebbene CORBA e DCOM siano stati implementati su varie piattaforme, la realtà è che ogni soluzione costruita al di sopra di questi middleware è dipendente dalla implementazione di un singolo venditore Applicazioni DCOM tutti i nodi che operano all interno dell applicazione distribuita, devono utilizzare qualche versione di Windows e relativi linguaggi/tecnologie Applicazioni CORBA tutti i nodi devono eseguire lo stesso prodotto ORB. Vi sono casi di ORB di produttori diversi che interoperano, ma questa interoperabilità non si estende ai servizi di alto livello: Gestione della sicurezza Gestione delle transazioni Impossibilità di ottimizzazioni Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.21

CORBA: i veri motivi del fallimento L Object Management Group (OMG) e i suoi più di 700 membri hanno provato a definire come i venditori avrebbero dovuto progettare i cosiddetti object request brokers (ORB) in modo da raggiungere la piena interoperabilità Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.22

CORBA: i veri motivi del fallimento (2) In realtà, la maggior parte dei venditori era in competizione per la realizzazione di implementazioni di ORB differenti Infatti, il loro vero obiettivo era quello di vendere la propria soluzione ad entrambe le parti delle applicazioni distribuite: nodi requestor nodi provider Così non c era alcuna vera motivazione, dal punto di vista delle prospettive del business, per raggiungere la piena interoperabilità multipiattaforma. (Raggiungibile, invece, dal punto di vista tecnologico e scientifico) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.23

Perché dell insuccesso Middleware tradizionale non supporta l eterogeneità non funziona su scala geografica Internet non è pervasivo è difficile da usare è costoso ha costi di manutenzione oltraggiosi ha connessioni fragili e difficili da riutilizzare Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.24

Perché i Web services dovrebbero avere successo dove tanti hanno fallito Uso di Internet e del Web per comunicare (invece di protocolli ad hoc o proprietari) Uso di XML (extensible Markup Language), text-based, comprensibile da applicazioni scritte in qualsiasi linguaggio Sono indipendenti dalle piattaforme e dai linguaggi con cui sono implementate le applicazioni Sono pervasivi perché utilizzano protocolli standard (Web e XML) o specifiche accettate anche a livello di W3C Eliminazione dei costi e dei problemi di gestione di licenze diverse, in quanto basati su principi di public domain software Uso di open standard Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.25

Perché i Web services dovrebbero avere successo dove tanti hanno fallito (2) Estensione dell interoperabilità oltre la propria Intranet aziendale Grazie all uso di HTTP, si possono attraversare i firewall funzionano sia a livello di LAN sia a livello di WAN funzionano sia all interno di una Intranet sia all esterno supportano l interoperabilità tra applicazioni eterogenee (ad oggi) non richiedono licenze; il guadagno è sul valore aggiunto dei servizi realizzati Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.26

Parte 11 Modulo 2: Definizioni

Definizioni di Web services Definizione ufficiale del W3C (http://www.w3.org/tr/ws-arch/) A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols. Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.28

Definizione di Web services (2) Definizione IBM 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. Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.29

Parte 11 Modulo 3: Caratteristiche operative

Caratteristiche dei Web services Rappresentano una soluzione per permettere la comunicazione tra applicazioni in ambito Web L idea su cui si basano è quella di fornire un linguaggio ed una piattaforma comune a sistemi differenti Sono una combinazione di diversi standard tecnologici Sono basati su standard aperti (XML, HTTP, SOAP, ) che permettono a chiunque di utilizzarli Sono accessibili mediante un interfaccia standard Permettono a sistemi eterogenei di lavorare insieme per realizzare il Web computing Programmazione con componenti distribuite sul Web Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.31

Stack UDDI WSDL SOAP XML (tipicamente) HTTP Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.32

Operazioni Web services Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.33

Operazioni Web services (2) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Un client non può specificare quale linguaggio, sistema operativo o tipo di computer è stato usato Dati binari non possono essere inviati o ricevuti (ma ci sono eccezioni) <name>character data </name><cost>123.45</cost> <response>character data </response> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.34

Operazioni Web services (3) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Un Web service deve descrivere se stesso: quali tipi di richieste possono essere fatte, quali sono gli argomenti, quale è il trasporto What information do you need? 2 arguments: (1) Item name (2) Quantity Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.35

Operazioni Web services (4) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Un Web service deve indicare ad un registro di servizi dove è localizzato (una sorta di pagine gialle ) Here I am Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.36

Operazioni Web services (5) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti 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? Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.37

Operazioni Web services (6) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Gli argomenti ed i tipi di dato restituiti devono essere noti API nota <name>character data </name><cost>123.45</cost> <response>character data </response> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.38

Operazioni Web services (7) Componenti software indipendenti dalla piattaforma e dall implementazione che possono essere: Descritti usando un linguaggio di descrizione del servizio Pubblicati in un registro di servizi Scoperti mediante un meccanismo standard (a runtime o a tempo di progetto) Invocati mediante un API, solitamente tramite la rete Composti con altri servizi Il servizio può a sua volta essere un client <name>character data </name><cost>123.45</cost> <response>character data </response> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.39

Possibili applicazioni Informazioni con contenuto ricco Previsioni del tempo Notiziari Orari (effettivi) treni e aerei Ambito di borsa Verifica su conto corrente Validazione carta di credito Aste on-line Servizi transazionali per B2B Prenotazioni on-line Contratti auto a nolo Gestione della supply chain Acquisizione e gestione ordini Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.40

ma soprattutto è indispensabile per Esternalizzazione del processo produttivo o gestionale ( outsourcing ) L ambito è prevalentemente o esclusivamente B2B All interno della stessa azienda (decentralizzata) o tra aziende partner Consente una piena integrazione a livello di processi aziendali Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.41

Parte 11 Modulo 4: Tecnologie dei Web service

Tecnologie del Web TCP/IP HTTP HTML XML Caratteristiche comuni? Standard aperti Indipendenti dalla piattaforma (Java) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.43

Tecnologie dei Web services Tecnologie cruciali XML SOAP Tecnologie per service discovery UDDI WSDL Le 3 nuove tecnologie Importanti (W3C) (WSIL) Caratteristiche comuni? Standard aperti Indipendenti dalla piattaforma Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.44

Componenti dei Web services Service requestor (o service user): richiede l esecuzione di un Web service Service provider: fornisce servizi e soddisfa le richieste per Web service che gli arrivano Discovery agency (o service broker): repository mediante cui è resa pubblica e individuabile la descrizione di un Web service (Service Broker) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.45

Operazioni principali Publish/Unpublish: pubblicizzare o rimuovere un Web service da parte del service provider verso il service broker Find: il service requestor effettua una richiesta per un Web service al service broker, che restituisce il risultato migliore Bind+Interact: service requestor e service provider contrattano per il Web service e, dopo accordo, interagiscono Il client cerca i dettagli sul servizio in una directory di servizi Il servizio è pubblicato in una directory di servizi Il client interagisce con il servizio Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.46

Tecnologie dei Web Services Il service provider costruisce e definisce il servizio usando WSDL Web Services Description Language (WSDL) http://www.w3.org/tr/wsdl.html Il service provider registra il servizio mediante UDDI Universal Description Discovery and Integration (UDDI) http://www.uddi.org/ Il service requestor trova il servizio cercando in un registro UDDI Il service requestor si collega al Web service fornito dal service requestor ed invoca le sue operazioni mediante il protocollo SOAP Simple Object Access Protocol (SOAP) http://www.w3.org/tr/soap12-part0/ Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.47

Tecnologie dei Web Services WSDL, UDDI WSDL, UDDI SOAP Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.48

Tecnologie dei Web services XML HTTP SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language) UDDI (Universal Description, Discovery, Integration) WSIL (Web Services Inspection Language) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.49

Capire l importanza delle tecnologie Una definizione essenziale (da parte di IBM) per comprendere il significato e l importanza di tante sigle è la seguente Un Web service è un oggetto SOAP integrato con una descrizione WSDL. La directory UDDI e tutte le altre tecnologie sono opzionali Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.50

Protocolli per Web services Web Service Requestor Find a Service http://www.uddi.org Link per individuare un servizio Discovery http://yourservice.com HTML con link a WSDL Come parliamo? (WSDL) http://yourservice.com/?wsdl Restituisce descrizione di un servizio (XML) Interazioni (SOAP) http://yourservice.com/svc1 Restituisce la risposta per un servizio (XML) UDDI Web Service Provider Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.51

Tecnologie in sintesi Alla base dello stack dei Web service, c è il protocollo HTTP, un protocollo RPC-like che è semplice, diffuso, aperto e firewall-friendly Poi, c è un linguaggio comune per la rappresentazione dei dati, XML, che è altrettanto diffuso e aperto SOAP è un protocollo di scambio messaggi basato su HTTP e su XML che sono indipendenti dalle piattaforme, dai sistemi operativi e dai linguaggi. SOAP supporta sia un modello a scambio di messaggi sia un modello di comunicazione request/response Come CORBA e DCOM, anche i Web services richiedono un Interface Description language (IDL): viene usato WSDL, che è un linguaggio descrittivo dei servizi basato su XML. WDSL definisce sia l interfaccia dei servizi sia le caratteristiche implementative Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.52

Parte 11 Modulo 4a: XML

XML XML: extensible Markup Language E un (meta-)linguaggio flessibile utilizzato per la rappresentazione di documenti o dati strutturati di qualunque tipo Un documento XML è, in realtà, una gerarchia di elementi XML Un elemento rappresenta una parte di informazione (es., nome) Ciascun elemento può essere strutturato in sottoelementi (es., nome e cognome) Un elemento viene identificato tra <tag>. Es. del nome: <name>marco</name> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.54

Come HTML, più di HTML XML Come HTML, usa i tag per identificare gli elementi Il vocabolario dei tag dell HTML è standard e fissato A differenza di HTML dove i tag sono specificati, in XML è possibile definire qualsiasi tag sia necessario per l applicazione, attribuendogli un significato XML è un meta-linguaggio di markup Usa un formato auto-descrittivo: un documento XML fornisce informazioni complete sui valori dei campi associati ai vari tag Descrive un documento: non specifica cosa significa, né come visualizzarlo (XML separa il contenuto dalla presentazione) Grazie a XSLT (Style Sheet) è possibile trasformare un documento XML in documenti di diversi formati, quali HTML, WirelessML (WML), VoiceXML, ecc. Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.55

Esempio XML: descrizione aule <?xml version="1.0"?> <rooms> <room name= FA-2A"> <capacity>80</capacity> <equipmentlist> <equipment>proiettore</equipment> <equipment>microfono</equipment> </equipmentlist> </room> <room name= FA-2X"> <capacity>50</capacity> <equipmentlist /> <features> <feature>senza finestre</feature> </features> </room> </rooms> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.56

XML e Web services I Web services si basano su XML perché è indipendente da linguaggi, applicazioni e piattaforme specifiche XML garantisce Ricchezza espressiva Estendibilità ( ricordare la X ) Portabilità Facilità di comprensione Gli schemi XML possono essere convalidati da entrambe le parti che comunicano Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.57

Parte 11 Modulo 4b: SOAP

SOAP Simple Object Access Protocol (Service-Oriented Application Protocol) Specifico protocollo di comunicazione tra Web service basato su XML per la descrizione dei messaggi utilizza principalmente HTTP come protocollo di trasporto, ma può usare anche altri (SMTP, ecc.) Permette alle applicazioni distribuite di invocare servizi remoti (ovvero metodi su oggetti remoti) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.59

SOAP Un Service requestor può utilizzare un servizio remoto in maniera trasparente e senza conoscerne i dettagli implementativi L applicazione client deve solo utilizzare le specifiche di chiamata per il servizio remoto passandogli solo i parametri Caratteristiche del protocollo SOAP Serializzazione specificata Indipendente dalla piattaforma Robusto e flessibile Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.60

Motivazioni per SOAP Per l interoperabilità di applicazioni distribuite è necessario utilizzare chiamate a procedura remota (RPC) tra oggetti distribuiti (come, ad esempio, DCOM e CORBA) PROBLEMA: Le chiamate RPC non possono essere adattate facilmente ad Internet Esistono problemi di sicurezza per RPC La maggior parte dei firewall e dei proxy server sono impostati per bloccare questo tipo di traffico Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.61

Motivazioni per SOAP (2) HTTP non è progettato per funzionalità RPC classiche non è efficiente come i protocolli delle vecchie RPC Tuttavia, è supportato da tutti i Web browser e server è basato su un meccanismo request/response (che serve a SOAP) e soprattutto è l unico vero protocollo firewall-friendly Scelta Usare HTTP come protocollo di trasporto principale (anche se non ci sono controindicazioni a usarne altri) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.62

Struttura del messaggio SOAP Envelope Definisce il contenuto del messaggio Header (opzionale) Contiene informazioni, estensioni Buon posto per la sicurezza Body Contienechiamate e risposte SOAP Envelope SOAP Header SOAP Body Payload Document(s) SOAP Fault Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.63

Struttura del messaggio SOAP (2) SOAP Message HTTP Headers SOAP Envelope SOAP Header SOAP Body Payload Document(s) SOAP Fault Il messaggio SOAP Standard HTTP e SOAP HTTP Header <Envelope> Info globali <Header> Tag per racchiudere gli Header (opzionale) <Body>: il contenitore attraverso cui viene spedita la parte importante di informazioni tra applicazioni Documento XML Encoded SOAP Message Name e Dati (contiene la chiamata al metodo remoto) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.64

Esempio messaggio SOAP: richiesta <SOAP-ENV:Envelope xmlns:soap-env= "http://www.w3.org/2001/06/soap-envelope" SOAP-ENV:encodingStyle= "http://www.w3.org/2001/06/soap-encoding"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <param>dis</param> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> DATA MODEL E ENCODING PER I PARAMETRI Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.65

Esempio messaggio SOAP: richiesta <SOAP-ENV:Envelope xmlns:soap-env= "http://www.w3.org/2001/06/soap-envelope" SOAP-ENV:encodingStyle= "http://www.w3.org/2001/06/soap-encoding"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <param>dis</param> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ENVELOPE Equivalente a: MESSAGE GetLastTradePrice(DIS) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.66

Esempio messaggio SOAP: risposta <SOAP-ENV:Envelope xmlns:soap-env= "http://www.w3.org/2001/06/soap-envelope" SOAP-ENV:encodingStyle= "http://www.w3.org/2001/06/soap-encoding"> <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <Price>154</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.67

Esempio architettura SOAP Applicazione VisualBasic Applicazione Java Invoice VB-Structure SOAP client Invoice Java-Structure SOAP Server SOAP Message Per l applicazione client è come effettuare una chiamata di procedura su di un modulo remoto senza doversi proccupare dei dettagli tecnologici sottostanti Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.68

SOAP a confronto Un messaggio SOAP è in pratica una richiesta/risposta HTTP che rispetta lo schema e le regole di encoding dei parametri SOAP (descritti mediante XML) Un endpoint SOAP è un URL che identifica un destinatario per l invocazione di un metodo Come CORBA, anche SOAP non richiede che uno specifico oggetto sia legato ad un determinato endpoint. Al contrario, spetta al programmatore decidere come mappare l identificatore di un oggetto di un endpoint nel corrispondente oggetto dal lato server Lo spazio dei nomi URI che definisce i nomi dei metodi in SOAP è funzionalmente equivalente all interfaccia ID che definiva i nomi dei metodi in DCOM o CORBA Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.69

Perché SOAP ha speranza di successo Altre tecnologie distribuite non sono riuscite ad imporsi in Internet perché richiedono interfacce interdipendenti, e quindi avevano un intrinseca difficoltà di diffusione Esempi RMI richiede Java ad entrambi gli endpoint CORBA richiede ORB compatibili ad entrambi gli endpoint DCOM richiede Windows ad entrambi gli endpoint Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.70

Perché SOAP ha speranza di successo SOAP è una scelta neutrale, indipendente dalla piattaforma: Utilizza un semplice formato XML Non ha restrizioni sulle tecnologie implementative agli endpoint Le implementazioni sono free, alcune open-source Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.71

Attuali supporti per SOAP Apache supporta SOAP La piattaforma Microsoft.NET supporta SOAP IBM WebSphere supporta SOAP J2EE è compatibile con SOAP Sun ONE è compatibile con SOAP Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.72

Parte 11 Modulo 4c: WSDL

Descrizione dei servizi Una volta che un Web service è in esecuzione, come fanno i client a sapere quale tipo di messaggio inviare per la richiesta? SOAP è soltanto il formato di una envelope Occorre dire al client quale tipo di messaggio XML può inserire nel body WSDL (Web Services Description Language) è un dialetto XML che consente di descrivere i Web services e di pubblicarli WSDL è un altro tipo di documento XML che specifica esattamente il formato dei messaggi di richiesta e di risposta Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.74

WSDL WSDL è un tipo di documento scritto in XML contenente informazioni che servono per creare un contratto di Web service Un documento WSDL descrive: Quale funzionalità è offerta da un Web service La semantica dell interfaccia (come comunicare e anche eventuali dettagli amministrativi per la chiamata ad un Web service) Dove reperire il Web service Alcune parti di WSDL sono molto simili a IDL (Interface Description Language) di CORBA e DCOM Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.75

Cosa descrive WSDL? Le operazioni o metodi che sono forniti dal servizio Dettagli sui formati dei dati e sui protocolli necessari per accedere al servizio Schema XML Dettagli sulla locazione del servizio Variano a secondo del protocollo di trasmissione usato Ad esempio, URL, indirizzo di e-mail, Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.76

Uso di WSDL Quando un requestor vuole usare un Web service Individua il servizio mediante UDDI (o WSIL) Richiede il file WSDL Analizza il documento WSDL per determinare Locazione del servizio Chiamate dei metodi ed i parametri Come accedere ai metodi Altre info eventuali Crea una richiesta SOAP Invia la richiesta SOAP al servizio Tutto questo processo può essere automatizzato via software senza interazioni con utenti (persone) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.77

Architettura di WSDL WSDL descrive i Web services iniziando con i messaggi che possono essere scambiati tra il service requestor ed il service provider I messaggi sono descritti prima in modo astratto; solo in seguito vengono aggiunte informazioni pratiche sui protocolli di rete ed i formati dei messaggi Un messaggio consiste in un insieme di elementi tipati operation: uno scambio di messaggi porttype: un insieme di operation Un service rappresenta l implementazione di un servicetype e contiene un insieme di port, dove ogni port è l implementazione di un porttype e include tutti i dettagli necessari per realizzare la comunicazione Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.78

Descrizione di un servizio Un documento WSDL è formato essenzialmente da 7 elementi, ciascuno dei quali corrisponde ad una parte dell applicazione Messages Operations porttypes Types Bindings Ports Services Descrizione astratta Descrizione pratica WSDL definisce prima gli elementi astratti e poi le implementazioni specifiche degli elementi La versione astratta del servizio è generalizzabile, flessibile e facilmente estendibile Le specifiche sono definite solo in ognuno degli elementi che costituiscono il servizio Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.79

Parti di un documento WSDL types Tipo di dato in un messaggio Definito usando XML Schema messages Cosa viene effettivamente inviato tra requestor e provider Può essere un messaggio di input, output o fault operation Specifica i nomi delle operazioni, gli input e output E costituito da messaggi porttype Un port type è un insieme di operazioni astratte e di messaggi con un identificativo univoco Di solito uno per documento WSDL Corrisponde al servizio stesso Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.80

Parti di un documento WSDL (2) binding Fornisce i dettagli per l implementazione delle operazioni contenute in un porttype Specifica il protocollo di trasporto e di codifica dei dati (HTTP, SOAP, SMTP, FTP, ) port Specifica l indirizzo di rete del servizio con cui effettuare la connessione service Un insieme di porte correlate Permette di raggruppare tutti i porttype, in modo che sia immediatamente leggibile e comprensibile per un utente quali sono i port supportati da un determinato servizio Ad esempio, tutte le porte associate ad una transazione che richiede più passi Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.81

Esempio WSDL Definizione di un servizio per informazioni sul valore di azioni Definisce un metodo chiamatogetquote, con l informazione SOAP associata che consente ad un processo di trovare il servizio, invocare un metodo ed elaborare la risposta Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.82

Parte 11 Modulo 4d: UDDI

UDDI: Localizzare un Web service E necessario un archivio per permettere ai Web services di rendere pubblica la loro presenza e per renderli raggiungibili dagli utenti UDDI (Universal Description,Discovery, Integration) è un servizio di directory che permette ai service requestor di localizzare i Web services UDDI può essere considerato come una specie di pagine gialle dei Web services Senza UDDI, due applicazioni potrebbero comunicare solo se già si conoscessero, conoscessero i servizi offerti, la loro localizzazione e le modalità di interazione I servizi sono descritti in formato XML Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.84

UDDI UDDI è utilizzato da due classi di utenti Service Provider: azienda che offre Web services Service Requestor: utente o azienda che ricerca un Web service UDDI è simile al DNS (Domain Name System) La differenza è che DNS lavora ad un livello più basso, perché risolve indirizzi IP, mentre UDDI lavora ad un livello logico più alto perché risolve servizi Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.85

UDDI (2) UDDI è un servizio globale che può essere utilizzato su scale diverse: all interno della stesas organizzazione, oppure condiviso tra server sparsi in tutto il mondo, anche se non organizzati secondo una struttura gerarchica I diversi server condividono i dati mediante un protocollo di replicazione UDDI si basa su XML per la descrizione dei servizi e su SOAP per la trasmissione dei messaggi Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.86

Interazione con UDDI Due azioni principali Registration Discovery client query UDDI publish applicazione La sicurezza è un aspetto fondamentale Problema: un concorrente potrebbe cancellare o modificare (defacement) il servizio di un altro publisher Soluzione: autenticazione dei publisher Ogni server mantiene traccia dei publisher e di cosa hanno pubblicato Solo chi ha pubblicato un servizio è autorizzato a modificarlo o cancellarlo Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.87

Informazioni in UDDI Divise in tre categorie principali (in analogia con gli elenchi del telefono statunitensi ) White pages Contengono informazioni sui contatti e gli indirizzi del service provider Yellow pages Contengono informazioni sui diversi servizi disponibili organizzati per categorie di business, tipo di servizi, Green pages Contengono informazioni sul servizio stesso (possono eventualmente anche contenere il codice WSDL del servizio) Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.88

WSIL Web Services Inspection Language (WSIL) Lo scopo è simile a UDDI Complementare piuttosto che alternativo Informazioni sulla descrizione di un servizio che possono essere distribuite in ogni locazione usando un semplice documento in formato XML Caratteristiche principali: decentralizzato, leggero Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.89

WSIL (2) A differenza di UDDI, non è focalizzato su informazioni di business Utilizza altri meccanismi per la descrizione dei servizi come WSDL (analogamente ad UDDI) 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 Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.90

Parte 11 Modulo 5: Conclusioni

Un ultimo sguardo allo scenario WSDL, UDDI WSDL, UDDI SOAP Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.92

Software per Web services Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.93

Possibili prospettive Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.94

Problemi di sicurezza (enormi!) Sicurezza a livello di scambio di messaggi Affidabilità nelle comunicazioni Possibilità di definire e forzare delle politiche Supporto robusto per l identità digitale Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.95

Standard XML SOAP WSDL UDDI Tecnologie per la sicurezza Controllo accessi e Autorizzazioni XACML SAML Standard di sicurezza XML Digital Signature XML Encryption Sicurezza avanzata WS-* Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.96

Un esempio di Web service Google Web APIs http://www.google.com/apis/ Permette ad applicazioni remote (non ad utenti!) di inviare richieste di ricerca al motore di Google mediante un messaggio SOAP Google esegue la richiesta e restituisce al programma chiamante un documento XML strutturato, contenente il risultato Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.97

Altre informazioni SOAP Version 1.2 Part 0: Primer http://www.w3.org/tr/soap12-part0/ Introduction to WSDL http://www.learnxmlws.com/tutors/wsdl/wsdl.aspx E inoltre http://directory.google.com/top/computers/ Programming/Internet/Web_Services/ Sistemi e Servizi di Rete - LS 2005/2006 Web Services 11.98