La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tecnologie per e-service

Presentazioni simili


Presentazione sul tema: "Tecnologie per e-service"— Transcript della presentazione:

1 Tecnologie per e-service
Web services

2 Sommario Web service Service oriented architecture SOAP UDDI WSDL

3 Virtual Enterprise: Scenario

4 Conseguenze Si possono... I servizi vanno da
...dare in outsourcing „servizi“ (es. dove non si è competitivi) ...offrire „servizi“ (es. Guadagnare con funzioni e servizi effettuate per altri) I servizi vanno da ...funzioni semplici... ...a processi di business completi, cioè funzioni complesse

5 Contesto Introduzione SOC
Service-Oriented Computing Realizzare applicazioni distribuite collaborative inter aziendali Servizi: “Component capable of performing a task” (W3C) Qualcosa che ha dei parametri in ingresso ed in uscita Realizzazione tramite architettura SOA

6 O.K., Ma come accedere ai servizi?
I firewalls sono ostacoli per l‘accesso ai servizi Ampia varietà di linguaggi di programmazione, paradigmi di programmazione, ambienti, ... rendono difficile l‘orchestrazione Serve un meccanismo di invocazione generale!

7 Web services Servizi che possono essere chiamati da altri programmi in rete Decentralizzazione dell’elaborazione (Sun, 1990) Def: Web Service: raccolta di funzioni packaged e pubblicate in rete per essere utilizzate da altri programmi client i dati vengono scambiati tra le applicazioni in maniera standardizzata (testuale attraverso XML)

8 Vantaggi interfacciamento a un web service di un partner:
non è necessario conoscere niente di quello che sta dal suo lato, si devono esclusivamente chiedere a lui i parametri per connettersi a quel particolare web service che serve senza preoccuparsi della piattaforma hardware, del linguaggio di programmazione o del pacchetto applicativo usato.

9 Esempio B2C Prenotazioni aeree
Si vuole prenotare un viaggio con soggiorno in albergo Situazione tradizionale Airline.com HTTP Server Hotel.com HTTP Server Client

10 Problemi L’utente deve più volte interagire con i server e cercare di trovare la combinazione giusta di voli A/R e alberghi Tempo perso Processo a volte lungo Interfacce web non standard Problemi di comunicazione

11 Soluzione web services
Fornire all’utente un servizio Web Input: Intervallo di arrivo, partenza Categoria di albergo (tipo di stanza etc. etc.) Output Prenotazione Booking Web server

12 Soluzione web services
Al posto del HTTP server della compagnia aerea Web Server Input Data e luogo di partenza Data e luogo di arrivo Output Schedule costi Airline.com Web Server

13 Soluzione Web Services
Al posto del HTTP server dell’hotel Web Server Input Data di arrivo Data di partenza Tipo di stanza Output Tipologia di stanza costi Hotel.com Web Server

14 Soluzione Web Services
Airline.com Web Server Booking Web server Hotel.com HTTP Server

15 Soluzione Web Service Il booking web server cerca un primo possibile schedule dialogando con il web server della compagnia aerea In base allo schedule il web server dialoga con l’hotel per trovare la stanza Se non esiste soluzione si cambia schedule e così via Al client finale solo due tipi di risposta Schedule e la prenotazione Impossibile completare il servizio.

16 Vantaggi L’utente vede solo i risultati finali Interoperabilità
I web server dialogano usando degli standard Automazione La comunicazione è automatica Generalità Il server booking può dialogare con QUALSIASI web server di compagnie aeree e hotel che realizzino l’interfaccia descritta precedentemente.

17 Problematiche Linguaggi di descrizione delle interfacce e del comportamento di un servizio rivolto a chi realizza e pubblica il servizio Rivolto a chi lo cerca e utilizza; Componenti per la memorizzazione e il reperimento di servizi Interrogabili secondo diversi criteri Linguaggi di specifica per la conversazione tra diversi servizi Linguaggi di specifica di composizione di servizi a valore aggiunto partendo da servizi di base Per ogni problema sono stati proposti diversi standard

18 Ciclo di vita I 4 problemi indicati precedentemente rispecchiano il seguente ciclo di vita

19 Service Oriented Architecture (SOA)

20 Ingredienti Descrizione servizi (WSDL)
Archivio servizi (registry, UDDI) Meccanismi di invocazione (SOAP)

21 WSDL

22 Come definire nuovi servizi?
Riferimenti a modelli definiti da altri (= tModels) ...ma se voglio pubblicare i miei servizi es. Semplici funzioni utili a altri o processi di business completi che offro a altri ...senza creare uno standard! Abbiamo bisogno di un linguaggio per secificare i servizi e descrivere come gli altri possono collegarsi a esso! WSDL (Web Services Description Language)

23 WSDL Ingredients Supports Port Type Operation How to invoke Formats &
Protocols Input & Output Binding Message How to encode Implements Provides Port Service

24 Port Types: Graphical Representation
Request -Response o2 o2 Solicit -Response pt o3 One-Way o4 Notification

25 Rendere disponibili i servizi
Binding Formats & Protocols How to invoke How to encode Message Operation Port Type Input & Output Supports (Widely Accepted) Abstract Service How To Do Business With Me 1. 3. What Business You Can Do With Me 2. Port Service Implements Provides

26 WSDL WSDL propone una struttura in cui:
l’entità types permette di definire un tipo di dato utilizzato nel resto della descrizione; l’entità message i messaggi trasmessi; l’entità portType definisce un servizio in termini di operazioni (operation) messe a disposizione; l’entità port ridefinisce le operation di una portType legandole ad una particolare tecnologia di comunicazione; l’entità service definisce il Web Service realmente fruibile come insieme di port.

27 WSDL - message <message name="CalcolaICIRequest">
<part name="sup" type="float" /> <part name="tipo" type="string" /> </message> <message name="CalcolaICIResponse"> <part name="risultato" type="float" />

28 WSDL portType e operation
<portType name="pRagioneria"> <operation name="CalcolaICI"> <input message="CalcolaICIRequest" /> <output message="CalcolaICIResponse" /> </operation> </portType>

29 WSDL - binding <!-- estratto dal file WSDL del servizio Ragioneria--> <binding name="RagioneriaHttpGet" type="pRagioneria"> <http:binding verb="GET" /> <operation name="CalcolaICI"> <http:operation location="/CalcolaICI" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="risultato" /> </output> </operation> </binding> <binding name="RagioneriaHttpPost" type="pRagioneria"> <http:binding verb="POST" /> <mime:content type="application/x-www-form- urlencoded" />

30 Rendere disponibili i servizi
Binding Formats & Protocols How to invoke How to encode Message Operation Port Type Input & Output Supports (Widely Accepted) Abstract Service How To Do Business With Me 1. 3. What Business You Can Do With Me 2. Port Service Implements Provides

31 Tipi di documenti WSDL

32 Struttura WSDL

33 UDDI

34 Repositories e registries
systems storing and managing e-Service specifications e-service providers Alcune iniziative UDDI

35 UDDI (Universal Description, Discovery & Integration)
accesso alla descrizione di servizi, di tipologie di servizi e di fornitori di servizi secondo una struttura dati ben definita; astrazione dalla tecnologia utilizzata nella realizzazione del servizio; la ricerca di un servizio secondo differenti chiavi di ricerca (tassonomie) Ricerca sia da utente che da programma Repository disponibile globalmente UDDI (Universal Description, Discovery & Integration)

36 Business Registrations
How UDDI Works Marketplaces, search engines, and business apps query the registry to discover services at other companies 3. SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services 1. Businesses populate the registry with descriptions of the services they support 2. Service Type Registrations Business uses this data to facilitate easier integration with each other over the Web 4. Business Registrations UDDI

37 How to do business with me
Registry Data White Pages Who am I? Businesses register public information about themselves Yellow Pages What do I offer? Green Pages How to do business with me Standards bodies, Programmers, Businesses register information about their Service Types („tModels“) Service Type Registrations

38 Standard: UDDI metodologia di ricerca possiede una forte analogia con quella offerta dagli elenchi telefonici Struttura del registro pagine bianche Nome azienda Descrizione testuale del servizio Lista multi lingua del servizio Dati di contatto Nome, numero di telefono, web site … Identificatori conosciuti

39 Standard: UDDI Registro pagine gialle Categorie di Business
3 tassonomie standard nella versione 1.0 Industria: Prodotti/servizi Localizazione geografica Coppie nome, valore per associazione con le pagine bianche possibile eseguire ricerche basate su: l’ambito in cui si colloca il servizio; la localizzazione geografica dei fornitori; l’ambito in cui si colloca il fornitore del servizio.

40 Standard: UDDI Modello nidificato
Pagine verdi Insieme di informazioni che le aziende usano per descrivere come sia possibile fare e-commerce insieme Create sulla base delle informazioni legate alla tecnologia Possibile trovare informazioni legate alla tipologia del servizio secondo criteri legati alla tipologia di invocazione, ai protocolli utilizzati e alle caratteristiche tecniche del servizio. Modello nidificato Processi di business Descrizione del servizio Informazioni sulla comunicazione I Servizi possono essere organizzati come un albero

41 tModel

42 Example of a Registration
Frank Leymann businessEntity TB993… Frank‘s Flowershop “Flowers for the world!“ contacts businessServices identifierBag categoryBag Boeblingen, Germany businessService Key Name Description BindingTemplates 23T701e54683nf… Online catalog “Website where you can … keyedReference DFE-2B… DUNS 45231 EE123… NAICS 02417 BindingTemplate 5E2D412E5-44EE-… tModelInstanceDetails tModelKeys tModelInstanceInfo 4453D6FC-223C-3ED0…

43 Registry Operation queries IBM Ariba other UDDI.org other Microsoft
Peer nodes (websites) Companies register with any node Registrations replicated on a daily basis Complete set of “registered” records available at all nodes Common set of SOAP APIs supported by all nodes Compliance enforced by business contract queries IBM Ariba other UDDI.org other Microsoft

44 Architettura generale UDDI

45 SOAP

46 SOAP: Simple Object Access Protocol
Fornire un (Object) RPC su Internet Interoperabilità tra un ampio numero di programi su un ampio numero di piattaforme Differenti linguaggi e paradigmi di programmazione, e di ambienti operativi Rendere i programmi esistenti disponibili a un numero elevato di utenti Utilizzare ove possibile la tecnologia esistente Uso di HTTP e XML („XML as HTTP payload“) HTTP come RPC transport XML come RPC encoding scheme Nessuna API SOAP speciale, nessun ORB SOAP

47 HTTP POST: Invoking Code
POST /myFunctions/reverse HTTP/1.1 Host: Content-Type: text/plain Content-Length: 12  Hello, World A simple RPC Client Server Run Program 200 OK Content-Type: text/plain Content-Length: 12 dlroW ,olleH

48 Tunneling The Firewall
RMI Client HTTP IIOP

49 Approfondimenti

50 Example <?xml version="1.0"?>
<definitions name="StockQuote" xmlns:tns=http://leymann.com/stockquote.wsdl xmlns:xsd="http://leymann.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="GetLastTradePriceRequest"> <part name="tickerSymbol" element="xsd:string"/> <part name="time" element="xsd:timeInstant"/> </message> <message name="GetLastTradePriceResponse"> <part name="result" type="xsd:float"/> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="GetLastTradePriceRequest"/> <output message="GetLastTradePriceResponse"/> </operation> </portType> ...

51 Example <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://leymann.com/GetLastTradePrice"/> <input> <soap:body use="encoded" namespace="http://leymann.com/stockquote" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> </output> ...

52 Example <service name="StockQuoteService">
<documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://leymann.com/stockquote"/> </port> </service>

53 SOAP Request/Response Structure
Object ID (Which object?) Status Code (Did it work?) Interface ID (Which interface?) Extension Headers (What has been forgotten to be build into the protocol?) Endpoint Reference Method ID (Which method?) Parameter (Out and inout parms) Extension Headers (What has been forgotten to be build into the protocol?) Parameter (In and inout parms)

54 SOAP Endpoint Reference
IP Host Address 80 TCP Port No /StockServer/getLastTradePrice Object Endpoint ID POST /StockServer HTTP/1.1 Host: Content-Type: text/xml; charset=„utf-8“ Content-Length: nnnn <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> ... 

55 A Simple SOAP RPC Method Name Input Parameter
POST /StockQuote HTTP/1.1 Host: 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:GetLastTradePrice xmlns:m="Some-URI"> <tickerSymbol>DIS</ tickerSymbol > </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Method Name Input Parameter

56 A Simple SOAP Response Standard Suffix 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"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Standard Suffix

57 SOAP Header Protocol Extensions POST /StockQuote HTTP/1.1
Host: Content-Type: text/xml; charset="utf-8„ Content-Length: nnnn SOAPAction: „Some-URI“  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Header> <t:Transaction xmlns:t="some-URI, SOAP-ENV:mustUnderstand="1"> 5 </t:Transaction> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DEF</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Protocol Extensions

58 Bibliografia Conallen, Building Web Applications with UML, Addison Wesley Professional; 2nd edition (October, 2002, vers. Ital. Nov. 2003) P. Plebani, Web service: tecnologie e piattaforme. Rapporto Fondazione Tronchetti Provera, 2002


Scaricare ppt "Tecnologie per e-service"

Presentazioni simili


Annunci Google