You are on page 1of 20

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)

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 2
Standards for Web Services
ebXML Discovery (not
UDDI
Registries selection)
ebXML Contracts and
CPA agreements
OWL-S Service Process and workflow
BPEL4WS BPML
Model orchestrations
WS-AtomicTransaction and WS-
BTP QoS: Transactions
XLANG
BusinessActivity
OWL-S Service
WSCL WS-Reliable
WS-Coordination QoS: Choreography
Profile Messaging ebXML
WSCI
OWL-S Service BPSS
WS-Security WSCL QoS: Conversations
Grounding
ebXML QoS: Service
OWL PSL WS-Policy WSDL
CPP descriptions and bindings
ebXML
RDF SOAP
messaging Messaging
XML, DTD, and XML Schema Encoding
HTTP, FTP, SMTP, SIP, etc. Transport

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 3
Markup and Metadata 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
 Generally, comprehensible (easier debugging),
though verbose and arcane

Chapter 2 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:toptag xmlns="http://one.default.namespace/if-needed"
xmlns:arbitrary="http://wherever.it.might.be/arbit-ns"
xmlns:random="http://another.one/random-ns">
<arbitrary:atag attr1="v1" attr2="v2">
Optional text also known as PCDATA
<arbitrary:btag attr1="v1" attr2="v2" />
</arbitrary:atag>
<random:simple_tag/> <!– abbreviate start and end -->
<random:atag attr3="v3"/> <!– compare arbitrary:atag -->
</arbitrary:toptag>

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
 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

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 6
Web Services: Basic Architecture

Service Registry; well-known


Broker

Publish or Find or
announce discover
(WSDL) (UDDI)

Service Bind or Service


Provider invoke Requestor
Not well-known (SOAP)

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 7
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

Chapter 2 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 bidirectional or n-party interaction

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 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>

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
 Definitions of data types
 Input and output message formats
 The operations provided by the service
 Network addresses
 Protocol bindings

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 13
definitions
targetNamespace=thisNamespace
xmins:tns=thisNamespace

types Types contains data type definitions


message name=in Messages consist of one or more parts
message name=out

WSDL portType name=foo

Data
A portType describes an abstract set
operation of operations
input message=tns:in
output message=tns:out

Model A binding describes a concrete set of


binding name=foobar formats and protocols for the foo
type=tns:foo portTypes
[binding information]

service name=foobar Service

Port name=foobarPort A port describes an implementation


binding=tns:foobar of the foobar binding
[endpoint information]

Chapter 2 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 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
Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 15
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

Chapter 2 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) contact
-URL : string(idl) -phone : string(idl)
-contacts : contact -address : string(idl)
-businessServices : businessService
-identifierBag : keyedReference
-categoryBag : keyedReference 1

businessService
-serviceKey : string(idl)
* -tModelKey : string(idl)
-name : string(idl)
-description : string(idl)
keyedReference -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 tModel: Descriptions of specifications
a service for services or value sets. Basis for
technical fingerprints

businessEntities contain
businessServices

bindingTemplates contain references


businessService: Descriptive to tModels. These references
information about a particular family of designate the interface specifications
technical services for a service

businessServices contain
bindingTemplates

bindingTemplate: Technical
information about a service entry point
Data Model
for UDDI
and implementation specs

Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 18
WSDL  UDDI
WSDL UDDI
Service Implementation
BusinessEntity
<import>

<service>
BusinessService
<port>

<port>
BindingTemplate

BindingTemplate

Service Interface

<types>
<message>
tModel
<portType>
<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
 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
Chapter 2 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns 20

You might also like