1 / 39

Basic Standards for Web Services SOAP WSDL UDDI

Basic Standards for Web Services SOAP WSDL UDDI. Highlights. eXtensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Directory Services Universal Description, Discovery, and Integration (UDDI). Basic Profile (BP 1.0).

Télécharger la présentation

Basic Standards for Web Services SOAP WSDL UDDI

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. Basic Standards for Web Services SOAP WSDL UDDI

  2. Highlights • eXtensible Markup Language (XML) • Simple Object Access Protocol (SOAP) • Web Services Description Language (WSDL) • Directory Services • Universal Description, Discovery, and Integration (UDDI) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  3. Basic Profile (BP 1.0) • The Web Services Interoperability Organization (WS-I) has specified the following Basic Profile version 1.0: • SOAP 1.1 • HTTP 1.1 • XML 1.0 • XML Schema Parts 1 and 2 • UDDI Version 2 • WSDL 1.1 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  4. Standards for Web Services Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  5. SOAP • SOAP is acronym for Simple Object Access Protocol • SOAP is a communication protocol • SOAP is designed to communicate via Internet • SOAP can extend HTTP for XML messaging • SOAP provides data transport for Web services • SOAP can exchange complete documents or call a remote procedure • SOAP can be used for broadcasting a message • SOAP is platform and language independent • SOAP is the XML way of defining what information gets sent and how Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  6. SOAP (Simple Object Access Protocol) • Used to exchange messages via HTTP, SMTP, and SIP (Session Initiation Protocol for Internet telephony) • Originally designed for remote-procedure calls (RPC) • Works through firewalls on port 80 • Character-based, so easy to encrypt/decrypt and thus easy to secure • Inefficient due to character, not binary, data and large headers • Does not describe bidirectional or n-party interaction Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  7. Web Services: Basic Architecture Service Broker Registry; well-known Publish or announce (WSDL) Find or discover (UDDI) Service Provider Service Requestor Bind or invoke (SOAP) Not well-known Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  8. Describing a Service • Namee.g., GetTemperature • Types of Input Parameterse.g., (String, String) • Types of Output Parameterse.g., Integer Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  9. SOAP architecture • An Envelope element that identifies the XML document as a SOAP message (mandatory) • A Header element that contains header information (optional) • A Body element that contains call and response information (mandatory) • A Fault element containing errors and status information (optional) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  10. SOAP Envelope (1) • The SOAP envelope indicates the start and the end of the message. • The SOAP envelope solves the problem of knowing when you're done receiving a message and are ready to process it. • Every SOAP message has a root Envelope element. • Envelope element is mandatory part of SOAP Message. • Every Envelope element must contain exactly one Body element. • If an Envelope contains a Header element, it must contain no more than one, and it must appear as the first child of the Envelope, before the Body.

  11. SOAP Envelope (2) • The envelope changes when SOAP versions change. • The SOAP envelope is specified using the ENV namespace prefix and the Envelope element. • The optional SOAP encoding is also specified using a namespace name and the optional encodingStyle element, which could also point to an encoding style other than the SOAP one. • A v1.1-compliant SOAP processor will generate a fault when receiving a message containing the v1.2 envelope namespace. • A v1.2- compliant SOAP processor generates a VersionMismatch fault if it receives a message that does not include the v1.2 envelope namespace. Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  12. <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> ... Message information goes here ... </SOAP-ENV:Envelope> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  13. Ex. SOAP Request POST /temp HTTP/1.1 Host: www.socweather.com Content-Type: text/xml; charset="utf-8" Content-Length: xxx SOAPAction: "http://www.socweather.com/temp" <!-- Above: HTTP headers and a blank line. --> <!—These comments below: an XML document --> <?xml version=“1.0”?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTemp xmlns:m="http://www.socweather.com/temp.xsd"> <m:City>Honolulu</m:City> <m:When>now</m:When> </m:GetTemp> </env:Body> </env:Envelope> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  14. Ex. SOAP Response HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: xxx SOAPAction: "http://www.socweather.com/temp" <?xml version="1.0"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTempResponse xmlns:m="http://www.socweather.com/temp.xsd"> <m:DegreesCelsius>30</m:DegreesCelsius> </m:GetTempResponse> </env:Body> </env:Envelope> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  15. SOAP Fault • The SOAP fault mechanism returns specific information about the error, including a predefined code, a description, the address of the SOAP processor that generated • A SOAP Message can carry only one fault block • Fault element is an optional part of SOAP Message • For the HTTP binding, a successful response is linked to the 200 to 299 range of status codes; • SOAP fault is linked to the 500 to 599 range of status codes. Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  16. Fault example <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode xsi:type="xsd:string"> SOAP-ENV:Client </faultcode> <faultstring xsi:type="xsd:string"> Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at /usr/local/ActivePerl-5.6/lib/ site_perl/5.6.0/SOAP/Lite.pm line 1555. </faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  17. WSDL: Web Services Description Language • Describes a programmatic interface to a Web service, including • Definitions of data types • Input and output message formats • The operations provided by the service • Network addresses • Protocol bindings Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  18. WSDL structure <definitions><types>  definition of types........</types><message>  definition of a message....</message><portType>  definition of a port.......</portType><binding>  definition of a binding....</binding></definitions> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  19. A WSDL document describes a web service using these major elements: Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  20. WSDL Ports • The <portType> element is the most important WSDL element. • It describes a web service, the operations that can be performed, and the messages that are involved. • The <portType> element can be compared to a function library (or a module, or a class) in a traditional programming language. • WSDL Messages • The <message> element defines the data elements of an operation. • Each message can consist of one or more parts. The parts can be compared to the parameters of a function call in a traditional programming language. • WSDL Types • The <types> element defines the data types that are used by the web service. • For maximum platform neutrality, WSDL uses XML Schema syntax to define data types. • WSDL Bindings • The <binding> element defines the message format and protocol details for each port. Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  21. WSDL example <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> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  22. portType Operations Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  23. <?xml version="1.0"?> <!-- the root element, wsdl:definitions, defines a set of --> <!-- related services --> <wsdl:definitions name="Temperature" targetNamespace="http://www.socweather.com/schema" xmlns:ts="http://www.socweather.com/TempSvc.wsdl" xmlns:tsxsd="http://schemas.socweather.com/TempSvc.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <!-- wsdl:types encapsulates schema definitions of --> <!-- communication types; here using xsd --> <wsdl:types> <!-- all type declarations are expressed in xsd --> <xsd:schema targetNamespace="http://namespaces.socweather.com" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

  24. <!-- xsd def: GetTemp [City string, When string] --> <xsd:element name="GetTemp"> <xsd:complexType> <xsd:sequence> <xsd:element name="City" type="string"/> <xsd:element name="When" type="string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- xsd def: GetTempResponse [DegreesCelsius integer] --> <xsd:element name="GetTempResponse"> <!-- XML Schema entry as above --> </xsd:element> <!-- xsd def: GetTempFault [errorMessage string] --> <xsd:element name="GetTempFault"> <!-- XML Schema entry as above --> </xsd:element> </xsd:schema> </wsdl:types>

  25. <!-- wsdl:message elements describe potential transactions --> <!-- Most messages, as here, have only one part. Multiple --> <!-- parts provide a way to aggregate complex messages --> <!-- request GetTempRequest is of type GetTemp --> <wsdl:message name="GetTempRequest"> <wsdl:part name="body" element="tsxsd:GetTemp"/> </wsdl:message> <!-- response GetTempResponse is of type GetTempResponse --> <wsdl:message name="GetTempResponse"> <wsdl:part name="body" element="tsxsd:GetTempResponse"/> </wsdl:message> <!-- wsdl:portType describes messages in an operation --> <wsdl:portType name="GetTempPortType">

  26. <!-- wsdl:operation describes the entire protocol from --> <!-- input to output or fault --> <wsdl:operation name="GetTemp"> <!-- The order input preceding output indicates the --> <!-- request-response operation type --> <wsdl:input message="ts:GetTempRequest"/> <wsdl:output message="ts:GetTempResponse"/> <wsdl:fault message="ts:GetTempFault"/> </wsdl:operation> </wsdl:portType> <!-- wsdl:binding specifies a serialization protocol --> <wsdl:binding name="TempSvcSoapBinding" type="ts:GetTempPortType">

  27. <!-- leverage off soap:binding document style --> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <!-- semi-opaque container of network transport details --> <!-- classed by soap:binding above @@@ --> <wsdl:operation name="GetTemp"> <soap:operation soapAction="http://www.socweather.com/TempSvc"/> <!-- further specify that the messages in the --> <!-- wsdl:operation "GetTemp" use SOAP? @@@ --> <wsdl:input> <soap:body use="literal" namespace="http://schemas.socweather.com/TempSvc.xsd"/> </wsdl:input>

  28. <!-- As above for wsdl:output and wsdl:fault --> </wsdl:operation> </wsdl:binding> <!-- wsdl:service names a new service "TemperatureService" --> <wsdl:service name="TemperatureService"> <wsdl:documentation>socweather.com temperature service </wsdl:documentation> <!-- connect it to the binding "TempSvcSoapBinding" above --> <wsdl:port name="GetTempPort" binding="ts:TempSvcSoapBinding"> <!-- give the binding a network address --> <soap:address location="http://www.socweather.com/TempSvc"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

  29. WSDL Data Model Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  30. Directory Services • Support discovery: enable applications, agents, Web service providers, Web service requestors, people, objects, and procedures to locate each other • White pages – entries found by name • Yellow pages – entries found by characteristics and capabilities • A basic directory might be a simple database (passive) or a broker/facilitator (active, that provides alerts and recruits participants) • UDDI – both white pages and yellow pages, but passive Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  31. UDDI: Universal Description, Discovery, and Integration • UDDI is a Web service that is based on SOAP and XML • UDDI registers • tModels: technical descriptions of a service’s behavior • businessEntities: describes the specifications of multiple tModels Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  32. Yellow, Green, and White Pages in UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  33. Data Model for UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  34. businessEntity data structure: <businessEntity businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40" operator="http://www.ibm.com" authorizedName="John Doe"> <name>Acme Company</name> <description> We create cool Web services </description> <contacts> <contact useType="general info"> <description>General Information</description> <personName>John Doe</personName> <phone>(123) 123-1234</phone> <email>jdoe@acme.com</email> </contact> </contacts> <businessServices> ... </businessServices>

  35. <identifierBag> <keyedReferencetModelKey="UUID:8609C81E-EE1F-4D5A-B202-3EB13AD01823" name="D-U-N-S" value="123456789" /> </identifierBag> <categoryBag> <keyedReferencetModelKey="UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" name="NAICS" value="111336" /> </categoryBag> </businessEntity> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  36. businessService data structure <businessService serviceKey="uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A" businessKey="uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40"> <name>Hello World Web Service</name> <description>A friendly Web service</description> <bindingTemplates> ... </bindingTemplates> </businessService> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  37. bindingTemplate Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  38. WSDL  UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

  39. Chapter 2 Summary The main triad of Web services standards • Bring together well-known ideas • SOAP: object access and messaging • WSDL: based on CORBA IDL • UDDI: based on directories • Provide necessary functionality for interoperation • Are complicated in their details • Meant for tool vendors rather than programmers • Increasingly hidden by tools Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

More Related