Chapter 2: Basic Standards for Web Services
Download
Report
Transcript Chapter 2: Basic Standards for Web Services
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 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
Chapter 2
Machine processible
Generally, 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: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
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)
The Web Services Interoperability
Organization (WS-I) has specified the
following Basic Profile version 1.0:
Chapter 2
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
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
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 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
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
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 rather than
programmers
Increasingly hidden by tools
Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
20