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 A portType describes an abstract set

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

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