1 / 37

Core Web Services Standards

Core Web Services Standards. (Simplified) Web Service Architecture. 1. Service Registers PUBLISH. 3. Client calls Service BIND. 2. Client Request Service Location FIND. Registry. Service Client. Web Service. SOAP (Simple Object Access Protocol). SOAP.

feo
Download Presentation

Core Web Services Standards

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. Core Web Services Standards

  2. (Simplified) Web Service Architecture • 1. Service Registers • PUBLISH • 3. Client calls Service • BIND • 2. Client Request Service Location • FIND • Registry Service Client Web Service

  3. SOAP (Simple Object Access Protocol)

  4. SOAP Simple Object Access Protocol Wire protocol similar to IIOP for CORBA JRMP for RMI XML is used for data encoding “text” based protocol vs. “binary” protocol Supports XML-based RPC

  5. What SOAP is Not Not a component model So it will not replace objects and components, i.e. EJB, JavaBeans Not a programming language So it will not replace Java Not a solution for all So it will not replace other distributed computing technologies such as RMI

  6. What does SOAP Define? Message Envelope Encoding Rules RPC Convention Binding with underlying protocols

  7. SOAP Message Format SOAP Message SOAP Envelope Primary MIME part (text/xml) SOAP Header Header Entry Header Entry Attachment SOAP Body Attachment Body Entry Body Entry Attachment

  8. SOAP Message Envelope Encoding information Header Optional Could contain context knowledge Security Transaction Body RPC methods and parameters Contains application data

  9. SOAP Encoding Rules of expressing application-defined data types in XML Based on W3C XML Schema Simple values Built-in types from XML Schema, Part 2 (simple types, enumerations, arrays of bytes) Compound values Structs, arrays, complex types

  10. SOAP RPC Request Example <SOAP-ENV:Envelope xmlns:SOAP-ENV="…" SOAP-ENV:encodingStyle="…"> <SOAP-ENV:Header> <!-- Optional context information --> </SOAP-ENV:Header> <SOAP-ENV:Body><m:GetLastTradePrice xmlns:m=“some_URI">     <tickerSymbol>SUNW</tickerSymbol>   </m:GetLastTradePrice></SOAP-ENV:Body> </SOAP-ENV:Envelope>

  11. SOAP RPC Response Example <SOAP-ENV:Envelopexmlns:SOAP-ENV="…" SOAP-ENV:encodingStyle="…"> <SOAP-ENV:Header> <!-- Optional context information --> </SOAP-ENV:Header> <SOAP-ENV:Body><m:GetLastTradePriceResponse xmlns:m=“some_URI">     <price>30.5</price>  </m:GetLastTradePriceResponse></SOAP-ENV:Body> </SOAP-ENV:Envelope>

  12. SOAP RPC Information needed for a method call: The URI of the target object <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

  13. SOAP RPC Information needed for a method call: The URI of the target object Method name <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

  14. SOAP RPC Information needed for a method call: The URI of the target object Method name Parameters <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

  15. Quick WSDL Tutorial

  16. What is WSDL? XML language for describing web services Web service is described as A set of communication endpoints (ports) Endpoint is made of two parts Abstract definitions of operations and messages Concrete binding to networking protocol (and corresponding endpoint address) and message format Why this separation? Enhance reusability (as we will see in UDDI reference to WSDL document)

  17. Why WSDL? Enables automation of communication details between communicating partners Machines can read WSDL Machines can invoke a service defined in WSDL Discoverable through registry Arbitration 3rd party can verify if communication conforms to WSDL

  18. WSDL Document Example Simple service providing stock quotes A single operation called GetLastTradePrice Deployed using SOAP 1.1 over HTTP Request takes a ticker symbol of type string Response returns price as a float

  19. Types Message Operation Port Type Binding Port Service WSDL Elements

  20. WSDL Elements Types Data type definitions Used to describe exchanged messages Uses W3C XML Schema as canonical type system

  21. WSDL Example: Types <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/”> <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"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types>

  22. WSDL Elements Messages Abstract, typed definitions of data being exchanged Operations Abstract description of an action Refers to an input and/or output messages Port type Collection of operations Abstract definition of a service

  23. Example: Messages, Operation, Port type <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> <!-- More operations --> </portType>

  24. WSDL Elements Binding Concrete protocol and data format for a particular Port type Protocol example: SOAP 1.1 over HTTP or SOAP 1.1 over SMTP Port Defines a single communication endpoint Endpoint address for binding URL for HTTP, email address for SMTP Service Aggregate set of related ports

  25. Example: Binding, Port, Service <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operationname="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service>

  26. UDDI

  27. Service Architecture • 1. Service Registers • PUBLISH • 3. Client calls Service • BIND • 2. Client Request Service Location • FIND • UDDI Registry Service Client Web Service UDDI defines a way to publish and find information about Web services.

  28. UDDI (Universal Description, Discovery and Integration) “White pages” address, contact, and known identifiers “Yellow pages” industrial categorizations Industry: NAICS (Industry codes - US Govt.) Product/Services: UN/SPSC (ECMA) Location: Geographical taxonomy “Green pages” technical information about services

  29. Other Web Services Standards

  30. ebXML A global electronic market place where enterprises of any size, anywhere can: Find each other electronically Conduct business through exchange of XML based business messages

  31. More Web Services Standards Security XML Signature, XML Encryption, XKMS, XACML, SAML, Liberty, WS-Security Transaction BTP, WS-Transaction Business collaboration and choreography ebXML BPSS, ebXML CPP/CPA, BPML, WSFL, XLANG, WSCI, BPEL4WS

  32. More Web Services Standards Business Language UBL (Universal Business Language) Component model WSIA (Web Services for Interactive Application) Portal WSRP (Web Services for Remote Portals)

  33. What Is a Web Service? A set of endpoints (ports) operating on messages Ports are operating within a container Container provides runtime environment Contract for runtime environment are specified in JAX-RPC, EJB 2.1, JSR 109 Service is described in WSDL document and published to a registry WSDL specifies a contract between service provider and client

  34. Web Service Component and Container Container vs. Component model Web services components get executed within a container Components are portable (under J2EE 1.4) Web service components Web-tier (Servlet-based endpoint) EJB-tier (Stateless session bean-based endpoint)

  35. Web Service Components Web services components Source: Web Services for J2EE (JSR 109), V1.0

  36. Summary

  37. Summary Web services provides a new paradigm for program to program communication Comprehensive set of Java APIs for Web Services are now available! J2EE is the platform of choice for Web services

More Related