200 likes | 277 Views
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. eXtensible Markup Language (XML) Simple Object Access Protocol (SOAP)
E N D
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 • 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
Standards for Web Services Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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 • Machine processible • Generall, comprehensible (easier debugging), though verbose and arcane Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
XML Basics and Namespaces <?xml version="1.0"?> <!– not part of the document per se --> <arbitrary:elemZxmlns="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"/> <!– cfarbitrary:elemA --> </arbitrary:elemZ> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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 • 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
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
Basic Profile (BP 1.0) • Standard of standards: • 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
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
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 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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 and 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
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
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
WSDL Data Model Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
UDDI: Universal Description, Discovery, and Integration • UDDI is itself 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
Yellow, Green, and White Pages in UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Data Model for UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
WSDL UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 2 Summary The main triad of Web services standards • Bring together well-known ideas from distributed computing • 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