1 / 18

Web Services

Web Services. Definizione di Web Service. “Un servizio web è un'interfaccia che descrive una collezione di operazioni, accessibili attraverso una rete mediante messaggistica XML [WSCA10].”

Download Presentation

Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web Services

  2. 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.”

  3. 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 Vantaggi dei Web Services

  4. 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

  5. (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) Si possono distinguere varie componenti: Struttura dei Web Services

  6. 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.

  7. 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.

  8. 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 • <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>

  9. 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 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>

  10. 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.

  11. Esempio di risposta SOAP SOAP:Body – contiene il messaggio vero e proprio espresso in qualche tipo di codifica, per esempio l’encoding SOAP SOAP:Envelope, è la “busta” che contiene tutte le informazioni. <?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>

  12. Cosa è necessario… • Per implementare un webservice ed utilizzarlo sono necessari i seguenti componenti: • Lato server: • Application Web Server – Apache Tomcat • SOAP Engine – Apache Axis • Lato Client: • Browser • JAX-RPC Client

  13. Apache Axis • Axis è 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

  14. Apache Axis • Le 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

  15. Schema Globale

  16. nome del servizio punto di contatto formato input formato output nome della funzione specifica della funzione Un esempio di WSDL

  17. SOAP Envelope HTTP Header SOAP Body nome del servizio parametri in input Un esempio di messaggio 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> • richiesta di un servizio via HTTP

  18. SOAP Envelope HTTP Header SOAP Body risposta del servizio output del servizio Un esempio di messaggio 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> • risposta da un servizio via HTTP

More Related