Pernici Barbara Politecnico di Milano [email protected] Master Universitario di II livello...
-
Upload
settimio-lanza -
Category
Documents
-
view
220 -
download
6
Transcript of Pernici Barbara Politecnico di Milano [email protected] Master Universitario di II livello...
Pernici BarbaraPernici BarbaraPolitecnico di Milano
[email protected]://www.elet.polimi.it/people/pernici
Master Universitario di II livello in Tecnologia dell'InformazioneMaster Universitario di II livello in Tecnologia dell'Informazione
13 novembre 200313 novembre 2003
ICT ICT CCenter of enter of EExcellence xcellence FFor or RResearch, esearch, IInnovation, nnovation, EEducation, and life-long ducation, and life-long LLearningearning
Politecnico di MilanoPolitecnico di Milano
Tecnologie per e-serviceTecnologie per e-service
Web servicesWeb services
SommarioSommario
Web service Service oriented architecture SOAP UDDI WSDL
Virtual Enterprise: ScenarioVirtual Enterprise: Scenario
WFMS 1
WFMS 2
Browser
MessageQueuing
AnyCommunication
SOAP, WSDL,UDDI,...
HTTP,IIOP,...
Customer
Your Company
Supplier
ConseguenzeConseguenze
Si possono... ...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
ContestoContesto
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
O.K., Ma come accedere ai O.K., Ma come accedere ai servizi?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!
Web servicesWeb 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)
VantaggiVantaggi
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.
Esempio B2CEsempio B2C
Prenotazioni aeree Si vuole prenotare un viaggio con soggiorno in
albergo Situazione tradizionale
Airline.com HTTP Server
Hotel.com HTTP Server
Client
ProblemiProblemi
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
Soluzione web servicesSoluzione 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
Soluzione web servicesSoluzione 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
Soluzione Web ServicesSoluzione 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
Soluzione Web ServicesSoluzione Web Services
Hotel.com HTTP Server
Airline.com Web Server
Booking Web server
Soluzione Web ServiceSoluzione 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.
VantaggiVantaggi
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.
ProblematicheProblematiche
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
Ciclo di vitaCiclo di vita
I 4 problemi indicati precedentemente rispecchiano il seguente ciclo di vita
Service Oriented Architecture Service Oriented Architecture (SOA)(SOA)
IngredientiIngredienti
Descrizione servizi (WSDL) Archivio servizi (registry, UDDI) Meccanismi di invocazione (SOAP)
WSDLWSDL
Come definire nuovi servizi?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!
WSDL(Web Services Description Language)
Abbiamo bisogno di un linguaggio per secificare i servizie descrivere come gli altri possono collegarsi a esso!
WSDL IngredientsWSDL Ingredients
Message
OperationPort Type
Port
Binding
Service
Input & Output
Supports
Formats &Protocols
How to in
voke
How to encode
Implements
Provides
o3o3
o4o4
pt
Port Types: Graphical Port Types: Graphical RepresentationRepresentation
Request
-Response
One-Way
Notification
o1o1o1
o2o2o2o2
-Response
Solicit
Rendere disponibili i serviziRendere disponibili i servizi
Message
OperationPort Type
Input & Output
Supports
Binding
Formats &Protocols
How to in
voke
How to encode
Port Service
Implements
Provides
HowTo Do
BusinessWith Me
(WidelyAccepted)AbstractService
WhatBusiness
You Can DoWith Me
1.
2.
3.
WSDLWSDL
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.
WSDL - messageWSDL - message
<message name="CalcolaICIRequest">
<part name="sup" type="float" />
<part name="tipo" type="string" />
</message>
<message name="CalcolaICIResponse">
<part name="risultato" type="float" />
</message>
WSDL portType e operationWSDL portType e operation
<portType name="pRagioneria">
<operation name="CalcolaICI">
<input message="CalcolaICIRequest" />
<output message="CalcolaICIResponse" />
</operation>
</portType>
WSDL - bindingWSDL - 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" /> <operation name="CalcolaICI">
<http:operation location="/CalcolaICI" /><input> <mime:content type="application/x-www-
form- urlencoded" /></input><output> <mime:mimeXml part="risultato" /></output>
</operation></binding>
Rendere disponibili i serviziRendere disponibili i servizi
Message
OperationPort Type
Input & Output
Supports
Binding
Formats &Protocols
How to in
voke
How to encode
Port Service
Implements
Provides
HowTo Do
BusinessWith Me
(WidelyAccepted)AbstractService
WhatBusiness
You Can DoWith Me
1.
2.
3.
Tipi di documenti WSDLTipi di documenti WSDL
Struttura WSDLStruttura WSDL
UDDIUDDI
Repositories e registriesRepositories e registries
systems storing and managing e-Service specifications e-service providers
Alcune iniziative UDDI
UDDIUDDI
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)
How UDDI WorksHow UDDI Works
UDDI
Marketplaces, search engines, and business apps query the registry to discover services at other companies
3.
Service TypeRegistrations
SW companies, standards bodies, and programmers populate the registry withdescriptions of different types of services
1.
BusinessRegistrations
Business uses this data to facilitate easier integration with each other over the Web
4.Businesses populate the registry withdescriptions of the services they support
2.
Registry DataRegistry Data
Businesses register public informationabout themselves
WhitePages
YellowPages
GreenPages
Service TypeRegistrations
Who am I?
What do Ioffer?
How to dobusiness with me
• Standards bodies, Programmers, Businesses register information about their Service Types(„tModels“)
Standard: UDDIStandard: 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
Standard: UDDIStandard: 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.
Standard: UDDIStandard: UDDI
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
tModeltModel
Example of a RegistrationExample of a Registration
businessEntityTB993… Frank‘s Flowershopwww.Frank-Flower.com“Flowers for the world!“contactsbusinessServicesidentifierBagcategoryBag
+49-7031-163998Boeblingen, [email protected]
Frank Leymann
businessServiceKeyNameDescriptionBindingTemplates
businessService
23T701e54683nf…Online catalog“Website where you can …BindingTemplates
BindingTemplate5E2D412E5-44EE-…http://www.flowers.de/flowerCattModelInstanceDetails
tModelInstanceInfo
4453D6FC-223C-3ED0…
http://www.rosetta.net/catalogPIP
keyedReference
DFE-2B…DUNS45231
keyedReference
EE123…NAICS02417
tModelKeys
IBM
Ariba
Microsoftother
other
Registry OperationRegistry Operation
Peer nodes (websites) Companies register
with any node Registrations replicated
on a daily basis Complete set of
“registered” recordsavailable at all nodes
Common set ofSOAP APIs supportedby all nodes
Compliance enforced bybusiness contract UDDI.org
queries
Architettura generale UDDIArchitettura generale UDDI
SOAPSOAP
SOAP: Simple Object Access SOAP: Simple Object Access ProtocolProtocol
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
HTTP POST: Invoking CodeHTTP POST: Invoking Code
Client Server
POST /myFunctions/reverse HTTP/1.1Host: www.Frank-Leymann.comContent-Type: text/plainContent-Length: 12
Hello, World
200 OKContent-Type: text/plainContent-Length: 12 dlroW ,olleH
RunProgram
A simpleRPC
Tunneling The FirewallTunneling The Firewall
Client
RMI
IIOP
HTTP
ApprofondimentiApprofondimenti
ExampleExample
<?xml version="1.0"?><definitions name="StockQuote" xmlns:tns=http://leymann.com/stockquote.wsdlxmlns: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"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="GetLastTradePriceRequest"/> <output message="GetLastTradePriceResponse"/> </operation> </portType> ...
ExampleExample
<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><soap:body use="encoded" namespace="http://leymann.com/stockquote" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output> ...
ExampleExample
<service name="StockQuoteService"><documentation>My first service</documentation><port name="StockQuotePort"
binding="tns:StockQuoteSoapBinding"><soap:address
location="http://leymann.com/stockquote"/></port></service>
SOAP Request/Response StructureSOAP Request/Response Structure
Object ID(Which object?)
Interface ID(Which interface?)
Method ID(Which method?)
Extension Headers(What has been forgotten
to be build into the protocol?)
Parameter(In and inout parms)
Request
Status Code(Did it work?)
Response
Extension Headers(What has been forgotten
to be build into the protocol?)
Parameter(Out and inout parms)E
nd
poi
nt
Ref
eren
ce
SOAP Endpoint ReferenceSOAP Endpoint Reference
POST /StockServer HTTP/1.1Host: 209.111.234.34Content-Type: text/xml; charset=„utf-8“Content-Length: nnnn<SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI">
...
/StockServer/getLastTradePrice
Object Endpoint ID
80
TCP Port No
209.111.234.34
IP Host Address
A Simple SOAP RPCA Simple SOAP RPC
POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-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>
MethodName
Input Parameter
A Simple SOAP ResponseA Simple SOAP Response
HTTP/1.1 200 OKContent-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>
StandardSuffix
SOAP HeaderSOAP Header
POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8„Content-Length: nnnnSOAPAction: „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>
ProtocolExtensions
BibliografiaBibliografia
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