Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005.

Similar presentations


Presentation on theme: "CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005."— Presentation transcript:

1 CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005

2 Chapter 6: Basic Web Services Technology* Web Services: Concepts, Architectures and Applications G. Alonso et. al. Springer Verlag * Pictures and graphics in this presentation were provided by the authors of the book shown above.

3 Basic Web Services Technology SOAP – Simple Object Access Protocol WSDL – Web Services Description Language UDDI – Universal Description, Discovery and Integration

4 service provider service requestor application object (client) application object (service provider) SOAP-based middleware SOAP messages exchanged on top of, HTTP, SMTP, or other transport converts procedure calls to/from XML messages sent through HTTP or other protocols. Copyright Springer Verlag Berlin Heidelberg 2004 Web Services exchange SOAP messages Figure 6.1.

5 service provider service requestor application object (client) application object (service provider) stubskeleton WSDL of service provider WSDL compiler (server side) WSDL compiler (client side) SOAP-based middleware SOAP messages Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.2. Role of WSDL Specifications

6 service descriptions SOAP-based middleware UDDI registry service provider service requestor application object (client) application object (service provider) stubskeleton SOAP-based middleware SOAP messages (to look for services) SOAP messages (to publish service description) Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.3. Web Services using UDDI

7 Goals of SOAP A one-way message format in XML A set of conventions that allows SOAP to be used to simulate RPC A set of rules for what recipients of SOAP messages should do A specification on how such messages can be transported

8 SOAP envelope SOAP header header block SOAP body body block Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.4. Schematic Representation of SOAP Message

9 SOAP envelope SOAP body PurchaseOrder document -product item -quantity SOAP envelope SOAP body Acknowledgement document -order id SOAP envelope SOAP body method name orderGoods input parameter 1 product item input parameter 2 quantity SOAP envelope SOAP body method return return value order id (a) Document-style interaction (b) RPC-style interaction Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.5. SOAP Interaction Styles

10 … <ProductItem name=“…” type=“…” make=“…” /> … Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.6. Different Ways to Encode Same Information

11 <t:transactionID xmlns:t="http://intermediary.example.com/procurement" env:role="http://www.w3.org/2002/06/soap-envelope/role/next" env:mustUnderstand="true" > 57539 <m:orderGoods env:encodingStyle="http://www.w3.org/2002/06/soap-encoding" xmlns:m="http://example.com/procurement"> ACME Softener 35 header body blocks envelope Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.7. A Sample SOAP message that supports RPC-style interaction

12 service provider SOAP engine service implementation (other tiers) HTTP engine service requestor HTTP engine client implementation (other tiers) SOAP engine Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.8. An RPC call using SOAP over HTTP

13 service requestor client implementation HTTP engine client stub SOAP engine invokes the service as a local call invoke SOAP engine to prepare SOAP message packages SOAP into HTTP and passes it to an HTTP client that sends it to the provider service provider service implementation HTTP server server stub SOAP router invokes the local procedure of the service implementation the router parses the message, identifies the appropriate stub, and delivers the parsed message passes the content of the HTTP message to the router Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.9. A simple implementation of SOAP

14 Other Aspects of SOAP Asynchronous SOAP  To support B2B interactions  To support batch interactions  Implementations can use SMTP, threading, message queues etc. Binary Data and SOAP  Performance overhead for putting everything as XML-tagged data  Push for a “blob” type.  Sample effort (not a standard yet): Direct Internet Message Encapsulation (DIME)

15 WSDL specification abstract part types messages operations port types concrete part bindings services and ports Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.10. WSDL Service Specification ~ Class ~ Methods RPC or Document HTTP?

16 <definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> port and service binding operation and port type messages abstract part concrete part Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.11. WSDL Service Specification

17 service provider service requestor application object (client) application object (service provider) stubskeleton WSDL of service provider WSDL compiler (server side) WSDL compiler (client side) SOAP-based middleware SOAP messages WSDL generator 1 2 Copyright Springer Verlag Berlin Heidelberg 2004 Figure 6.12. Using WSDL


Download ppt "CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005."

Similar presentations


Ads by Google