Chapter 2: Basic Standards for Web Services Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005 Highlights of this Chapter Chapter 2 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 2 Standards for Web Services ebXML Registries UDDI ebXML CPA OWL-S Service Model OWL-S Service WSCL Profile OWL-S Service Grounding OWL RDF Chapter 2 PSL BPEL4WS BPML WS-AtomicTransaction and WSXLANG BusinessActivity WS-Reliable WS-Coordination Messaging WS-Security WSCL WS-Policy WSDL SOAP BTP WSCI ebXML BPSS Discovery (not selection) Contracts and agreements Process and workflow orchestrations QoS: Transactions QoS: Choreography QoS: Conversations ebXML QoS: Service CPP descriptions and bindings ebXML messaging Messaging XML, DTD, and XML Schema Encoding HTTP, FTP, SMTP, SIP, etc. Transport Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 3 Markup History None, e.g., CSV Ad hoc tags SGML (Standard Generalized Markup L): complex, few reliable tools HTML (HyperText ML): simple, unprincipled, mixes structure and display XML (eXtensible ML): simple, yet extensible subset of SGML to capture new vocabularies Chapter 2 Machine processible General, comprehensible (easier debugging), though verbose and arcane Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 4 XML Basics and Namespaces <?xml version="1.0"?> <!– not part of the document per se --> <arbitrary:elemZ xmlns="http://one.default.namespace/if-needed" xmlns:arbitrary="http://wherever.it.might.be/arbit-ns" xmlns:random="http://another.one/random-ns"> <arbitrary:elemA attr1="v1" attr2="v2"> Optional text also known as PCDATA <arbitrary:elemB attr1="v1" attr2="v2" /> </arbitrary:elemA> <random:simpleElem/> <!– abbreviate start and end --> <random:elemA attr3="v3"/> <!– cf arbitrary:elemA --> </arbitrary:elemZ> Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 5 XML Schema Grammar (data definition language) for specifying valid documents Uses same syntax as regular XML documents: verbose and difficult to read Provides local scoping of subelement names Incorporates namespaces Types Chapter 2 Primitive (built-in): string, integer, float, date, … simpleType constructors: list, union Restrictions: intervals, lengths, enumerations, regex patterns, Flexible ordering of elements Key and referential integrity constraints Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 6 Web Services: Basic Architecture Service Broker Publish or announce (WSDL) Service Provider Not well-known Chapter 2 Registry; well-known Find or discover (UDDI) Bind or invoke (SOAP) Service Requestor Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 7 Basic Profile (BP 1.0) Standard of standards: Chapter 2 SOAP 1.1 HTTP 1.1 XML 1.0 XML Schema Parts 1 and 2 UDDI Version 2 WSDL 1.1 Web Services Interoperability Organization (WS-I) Newer versions in progress Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 8 Describing a Service Name e.g., GetTemperature Types of Input Parameters e.g., (String, String) Types of Output Parameters e.g., Integer Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 9 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 symmetric or multiparty interactions Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 10 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 onwards: 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> Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 11 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> Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 12 WSDL: Web Services Description Language Describes a programmatic interface to a Web service, including Chapter 2 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 13 definitions targetNamespace=thisNamespace xmins:tns=thisNamespace WSDL Data Model types message name=in message name=out portType name=foo operation input message=tns:in output message=tns:out binding name=foobar type=tns:foo [binding information] Types contains data type definitions Messages consist of one or more parts A portType describes an abstract set of operations A binding describes a concrete set of formats and protocols for the foo portTypes service name=foobar Service Port name=foobarPort binding=tns:foobar [endpoint information] Chapter 2 A port describes an implementation of the foobar binding Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 14 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 attributes 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 Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 15 UDDI: Universal Description, Discovery, and Integration UDDI is itself a Web service that is based on SOAP and XML UDDI registers Chapter 2 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 16 Yellow, Green, and White Pages in UDDI businessEntity -businessKey : string(idl) -name : string(idl) -description : string(idl) -URL : string(idl) -contacts : contact -businessServices : businessService -identifierBag : keyedReference -categoryBag : keyedReference 1 contact -phone : string(idl) -address : string(idl) businessService * keyedReference -serviceKey : string(idl) -tModelKey : string(idl) -name : string(idl) -description : string(idl) -bindingTemplates -tModelKey : string(idl) -keyName : string(idl) -keyValue : string(idl) Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 17 businessEntity: Information about the party who publishes information about a service tModel: Descriptions of specifications for services or value sets. Basis for technical fingerprints businessEntities contain businessServices businessService: Descriptive information about a particular family of technical services bindingTemplates contain references to tModels. These references designate the interface specifications for a service businessServices contain bindingTemplates bindingTemplate: Technical information about a service entry point and implementation specs Chapter 2 Data Model for UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 18 WSDL UDDI WSDL UDDI Service Implementation <import> <service> BusinessEntity BusinessService <port> <port> BindingTemplate BindingTemplate Service Interface <types> <message> <portType> tModel <binding> Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 19 Chapter 2 Summary The main triad of Web services standards Bring together well-known ideas from distributed computing Chapter 2 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, not programmers Increasingly hidden by tools Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 20
© Copyright 2026 Paperzz