1 / 20

Web Service Definition Language

Web Service Definition Language. Web Service Definition Language ( WSDL ). What is a web service? [ F. Leymann 2003 ] A piece of code that can communicate with other pieces of code via the Internet

murrell
Download Presentation

Web Service Definition Language

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 Service Definition Language

  2. Web Service Definition Language (WSDL) • What is a web service? [F. Leymann 2003] • A piece of code that can communicate with other pieces of code via the Internet • Can hide “middleware ideosynchracies” (underlying component model, invocation protocol etc.) as far as possible • WSDL defines • What the service is – interface • Access specification – how • Location of the service – where Web Services: WSDL

  3. Ingredients of WSDL Interface Supports Port Type Operation How to invoke Formats & Protocols Input & Output Binding Message How to encode Accessspecification Implements Provides Port Service Endpoints Web Services: WSDL

  4. Web Services Definition Language (WSDL) • Traditional I/O signatures • Peer-to-peer: web service can act as client or server • Proactive : send request send request, block till response • Reactive : receive request receive request, send response bill_payment out: bill in: payment order bill order Supplier’ Supplier receipt payment receipt • Port: mechanism to cluster operations • Port as unit of interoperation between services Web Services: WSDL

  5. Main Structure of WSDL <definitions namespace = “http://… ”> <types> XML schema types </type> <message> definition of a message </message> <portType> a set of operations </portType> <binding> communication protocols </binding> <service> a list of binding and ports </service> </definitions> Web Services: WSDL

  6. Types • <types> define data types used in defining messages • XML Schema, DTD, and etc. • XML Schema must be supported by any vendor of WSDL conformant products Web Services: WSDL

  7. Type Examples <types> <schema targetNamespace=“http://example.com/stockquote.xsd” xmlns=“http://www.w3.org/2000/10/XMLSchema”> <element name=“TradePriceRequest”> <complexType> <all> <element name=“tickerSymbol” type=“string“ minOccur = “1” maxOccur=“10”/> <element name = “payment”> <complexType> <choice> <element name = “account” type=“string” /> <element name = “creditcard” type=“string” /> </choice> </complexType> </element> </all> </complexType> </element> </schema> </types> Web Services: WSDL

  8. WSDL Messages • A <message> element defines the data elements of an operation • Each message can be the input or output of an operation, and may consist of one or more parts • A part resembles a parameter of a function Web Services: WSDL

  9. Message Examples <message name=“GetLastTradePriceInput”> <part name=“body” element="TradePriceRequest"/> </message> <message name=“GetLastTradePriceOutput”> <part name=“body” element=“TradePrice” /> </message> Web Services: WSDL

  10. WSDL Ports • The <portType> element is the most important WSDL element: it defines • a web service • the operations that can be performed, and • the messages that are involved • The <port> defines the connection point to a web service, an instance of <portType> • It can be compared to a function library (or a module, or a class) in a traditional programming language • Each operation can be compared to a function in a traditional programming language Web Services: WSDL

  11. <portType name=“StockQuotePortType”> <operation name=“GetLastTradePrice”> <input message=“tns:GetLastTradePriceInput” /> <output message=“tns:GetLastTradePriceOutput” /> </operation> </portType> Web Services: WSDL

  12. Operation Types • The request-response type is the most common operation type, but WSDL defines four types: • One-way: The operation can receive a message but will not return a response • Request-response: The operation can receive a request and will return a response • Solicit-response: The operation can send a request and will wait for a response • Notification: The operation can send a message but will not wait for a response • WSDL 1.2 adds: request – multiple response Web Services: WSDL

  13. One-Way Operation <message name=“newTermValues”> <part name=“term” type=“xs:string” /> <part name=“value” type=“xs:string” /> </message> <portType name=“glossaryTerms”> <operation name=“setTerm”> <input name=“newTerm” message=“newTermValues” /> </operation> </portType > Web Services: WSDL

  14. Request-Response Operation <message name="getTermRequest"> <part name="term" type="xs:string"/></message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation></portType> Web Services: WSDL

  15. One-way and Notification Example <portType name=“RegisterPort"> <operation name=“register"> <input name=“customerInfo“ message=“RegInfo"/> </operation> <operation name = “register Response”> <output name = “response” message=“ResponseInfo”/> </operation> </portType > Web Services: WSDL

  16. Binding • Binding defines how message are transmitted, and the location of the service • <binding> element has two attributes: • type: the port type • name: name of the binding • <soap:binding> has two attributes: • style: either “document” or “rpc” • transport: protocol to use, e.g., “http” Web Services: WSDL

  17. Binding Example <binding name="StockQuoteSoapBinding“ type="tns:StockQuotePortType"> <soap:binding style=“document” transport=“http://schemas.xmlsoap.org/soap/http” /> <operation name="GetLastTradePrice"> <soap:operation soapAction=“http://example.com/GetLastTradePrice” /> <input> <soap:body use=“literal” /> </input> <output> <soap:body use=“literal” /> </output> </operation> </binding> Web Services: WSDL

  18. <binding name="StockQuoteSoapBinding“ type="tns:StockQuotePortType"> <soap:binding style="document“ transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <input> <soap:body use=“encoded” encodingStyle=“http://schemas.xmlsoap.org/ soap/encoding/” /> </input> <output> … </output> </operation> </binding> Web Services: WSDL

  19. Services <service name=“StockQuoteService”> <documentation> My first service </documentation> <port name=“StockQuotePort” binding=“tns:StockQuoteBinding”> <soap:address location=“http://example.com/stockquote” /> </port> </service> Web Services: WSDL

  20. Summary • WSDL provides a practical framework for defining • Services: functions and input/output • Bindings using SOAP (document style or PRC style) • Service entry points • Many WSDL services exist (www.xmethods.com), e.g., • http://soap.achchex.com/exec/btrnsoap.dll/wsdl/IBTRNSOAP Web Services: WSDL

More Related