web services. definizione di web service un servizio web è un'interfaccia che descrive una...
TRANSCRIPT
![Page 1: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/1.jpg)
Web Services
![Page 2: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/2.jpg)
Definizione di Web Service
“Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante messaggistica XML [WSCA10].”
“Per Web Service si intende un servizio riutilizzabile che può essere richiamato attraverso tecnologie Internet (come HTTP, FTP o IMAP) e che dialoga in XML.”
![Page 3: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/3.jpg)
Vantaggi dei Web Services
• accoppiamento debole (“loosely coupled”)
– disaccoppiamento tra client e server
– non servono tecnologie specifiche di interfaccia con la rete (e.g. CORBA, DCOM) sul lato client o server
• “platform neutral”
– interoperabilità tra client e server indipendente dalle piattaforme
• interoperabili attraverso Internet
– basati su SOAP, HTTP e XML
• descrivibili mediante XML
– WSDL
![Page 4: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/4.jpg)
UtilitàI Web Services possono essere utilizzati: nelle applicazioni B2B per interfacciare
diversi partner commerciali, nelle applicazioni B2C per fornire servizi
all'utente finale.
Es: un servizio che fornisce le quotazioni di
borsa un servizio di traduzione da una lingua ad
un'altra
![Page 5: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/5.jpg)
Struttura dei Web ServicesSi possono distinguere varie componenti:
(Universal Definition and Discovery Interface) registro che permette la pubblicazione e la successiva ricerca dei servizi.(Web Services Definition Language) strumento per la definizione dei servizi, definiscono le interfacce e le modalità di colloquio.(Simple Object Access Protocol) protocollo a basso livello per la comunicazione di messaggi XML
Protocolli di trasporto nativi di Internet (http, ftp, altro)
![Page 6: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/6.jpg)
Tipologie di interazione con i servizi
Le tipologie di interazione che possono essere descritte da WSDL sono molteplici:
ONE-WAY – il client invia semplicemente al servizio un messaggio, è una sorta di notifica.
REQUEST-RESPONSE – a una richiesta del client il server fornisce una risposta.
SOLICIT-RESPONSE – il servizio esegue una notifica al client e quest’ultimo gli invia un messaggio di risposta.
NOTIFICATION – prevede l’invio di messaggi dal servizio al client senza risposta da parte di quest’ultimo.
![Page 7: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/7.jpg)
WSDL: Web Services Description Language
WSDL è un formato XML per la descrizione di servizi di rete.
Le specifiche di WSDL definiscono la struttura di un
documento XML che contiene:
le definizioni dei messaggi di input/output di un determinato servizio le relazioni tra questi, ovvero le operazioni che si possono compiere il collegamento fisico ad un determinato “end-point” che costituisce il punto di fornitura fisico del servizio web.
![Page 8: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/8.jpg)
<wsdl:definitions targetNamespace="http://localhost:8080/axis/CiaoATutti.jws"><!-- WSDL created by Apache Axis version: 1.2beta
Built on Jun 23, 2004 (05:03:42 CEST) -->
<wsdl:message name="ciaoRequest"></wsdl:message>
<wsdl:message name="ciaoResponse">
<wsdl:part name="ciaoReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="CiaoATutti">
<wsdl:operation name="ciao">
<wsdl:input message="impl:ciaoRequest" name="ciaoRequest"/>
<wsdl:output message="impl:ciaoResponse" name="ciaoResponse"/>
</wsdl:operation>
</wsdl:portType>
Esempio di WSDL (1)
contiene la struttura dei messaggi di scambio del servizio
Definisce le operazioni esposte, per ogni funzione è definito il messaggio di input ed output
![Page 9: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/9.jpg)
Esempio di WSDL (2)<wsdl:binding name=“CiaoMondoSoapBinding" type="impl:CiaoMondo">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ciao"><wsdlsoap:operation soapAction=""/>
<wsdl:input name="ciaoRequest"><wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/>
</wsdl:input>
<wsdl:output name="ciaoResponse"><wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/CiaoMondo.jws" use="encoded"/>
</wsdl:output></wsdl:operation>
</wsdl:binding>
<wsdl:service name="CiaoMondoService"><wsdl:port binding="impl:CiaoMondoSoapBinding" name="CiaoMondo">
<wsdlsoap:address location="http://localhost:8080/axis/CiaoMondo.jws"/>
</wsdl:port></wsdl:service>
</wsdl:definitions>
contiene il collegamento tra il portType e l’end-point fisico in termini di protocollo di comunicazione, ad esempio SOAP
contiene la definizione del servizio in termini della sua descrizione e della posizione fisica
![Page 10: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/10.jpg)
SOAP: Simple Object Access Protocol
SOAP è un protocollo leggero per lo scambio di informazioni in un ambiente distribuito e decentrato.
Le specifiche di SOAP descrivono principalmente la struttura dei documenti XML utilizzati per lo scambio di informazioni.
Le specifiche SOAP, inizialmente proposte da Microsoft, sono state condivise da IBM e sottoposte al W3C per la standardizzazione.
![Page 11: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/11.jpg)
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv = http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body> <ciaoResponse
soapenv:encodingStyle="http://...<ciaoReturn xsi:type="xsd:string">
Ciao a tutti</ciaoReturn>
</ciaoResponse> </soapenv:Body>
</soapenv:Envelope>
Esempio di risposta SOAP
SOAP:Envelope, è la “busta” che contiene tutte le informazioni.
SOAP:Body – contiene il messaggio vero e proprio espresso in qualche tipo di codifica, per esempio l’encoding SOAP
![Page 12: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/12.jpg)
Cosa è necessario…Per implementare un webservice ed utilizzarlo sono necessari i seguenti componenti:
Lato server:
Application Web Server – Apache TomcatSOAP Engine – Apache Axis
Lato Client:
BrowserJAX-RPC Client
![Page 13: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/13.jpg)
Apache AxisAxis è un SOAP engine
E’ un framework con cui costruire dei processori SOAP sia lato server che client
La versione 1.1 è una stabile ed affidabile base su cui implementare dei Java Web Services
Può essere usato come server stand-alone o come plug-in per servlet engine
![Page 14: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/14.jpg)
Apache AxisLe specifiche JAX-RPC sono la base su cui sono sviluppati i client che usano Axis
L’endpoint è un URL che punta ad un server che processa messaggi SOAP
Ci sono due modi per usare JAX-RPC per collegarsi ad un endpoint SOAP:
Usare java.xml per comporre a mano il messaggio SOAP
Usare Axis per creare una classe wrapper per il web service
![Page 15: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/15.jpg)
Schema Globale
![Page 16: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/16.jpg)
Un esempio di WSDLnome del servizio
punto di contatto
formato input
formato output
nome della funzione
specifica della funzione
![Page 17: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/17.jpg)
Un esempio di messaggiorichiesta di un servizio via HTTP
POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "http://example.org/2001/06/quotes"
<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" > <env:Body> <m:GetLastTradePrice env:encodingStyle="http://www.w3.org/2001/06/soap-encoding" xmlns:m="http://example.org/2001/06/quotes"> <symbol>DIS</symbol> </m:GetLastTradePrice> </env:Body> </env:Envelope>
SOAP Envelope
SOAP Body
nome del servizio
parametri in input
HTTP Header
![Page 18: Web Services. Definizione di Web Service Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5542eb4c497959361e8b976c/html5/thumbnails/18.jpg)
Un esempio di messaggiorisposta da un servizio via HTTP
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn
<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" > <env:Body> <m:GetLastTradePriceResponse env:encodingStyle="http://www.w3.org/2001/06/soap-encoding" xmlns:m="http://example.org/2001/06/quotes"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </env:Body></env:Envelope>
SOAP Envelope
SOAP Body
risposta del servizio
output del servizio
HTTP Header