Title: Web Services
1Web Services
- Senthilanand Chandrasekaran
- Advisor Dr. John A. Miller
- Computer Science Department
- The University of Georgia
2Topical Outline
- Introduction
- What is a Web Service?
- Why Web Services
- CORBA vs Web Services
- Description
- WSDL (Web Service Description Language)
- Invocation
- SOAP (Simple Object Access Protocol)
- Discovery
- UDDI (Universal Description, Discovery and
Integration)
- Composition
- BPEL4WS (Business Process Execution Language for
Web Service)
3Introduction
- What is a Web Service?
- A Web service is a software application
identified by a URI, whose interfaces and
binding are capable of being defined, described
and discovered by XML artifacts and supports
direct interactions with other software
applications using XML based messages via
Internet-based protocols. (W3C definition) - Web services are self contained, self-describing,
modular applications that can be published,
located, and invoked across the Web. (Tidwell,
IBM, 2001) - Web service applications are encapsulated,
loosely coupled Web components that can bind
dynamically to each other. (Curbera, IBM, 2001)
- - An association between an Interface, a
concrete protocol and a data format
4Why Web services?
Feature
CORBA
Web Services
Data Model
Object Model
SOAP Message exchange model
Client Server Coupling
Tight Coupling
Loose Coupling
Parameter Passing
Pass by reference/value
Pass by value only
1.Static Runtime type checking (Regular) 2. R
untime type checking only (DII)
RunTime type checking only
Type Checking
State
Stateful
- Stateless, Uncorrelated (Web Services)
- Stateful (Web Process)
Firewall Traversal
Work in Progress
Uses HTTP port 80
CORBA naming/trading Service
Service Discovery
UDDI
1-way, 2-way sync 2-way async
2-way sync (Web Services) 1-way, 2-way sync, 2-wa
y async
(Web Process)
Communication Mode
Source http//www2002.org/CDROM/alternate/395/
5Web Service How They Work?
SOAP Messages
Requestor
(http transport)
SOAP Client
Endpoint
Web Service Provider
- Components required
- Software which needs to be exposed as a Web
service
- A SOAP Server (Apache Axis, SOAPLite, etc.)
- HTTP Server (if HTTP is used as the transport
level protocol)
- SOAP Client (Apache Axis, SOAPLite etc.)
6Simple Web Service Invocation
Service Requestor
Remote Web Service Repository (Web Sites)
2
Manual Web Service Lookup
HTTP GET
3
WSDL File
Write Client Code
1
Remote Web service
4
SOAP Request
Invoke Web Service
Publish Web Service
5
SOAP Response
WSDL - Web Service Description
SOAP - Web Service Message Protocol
7Web Service Description
- Why describe Web services?
- A service requestor needs to analyze a service
for his requirements
- A Web service needs to provide the following
information
- the operations it supports
- the transport and messaging protocols on which it
supports those operations
- the network endpoint of the Web service
- Languages such as WSDL, DAML-S, RDF can be used
for describing Web services
- WSDL describes the syntactic information of a
service
- DAML-S and RDF describe the syntactic as well
as the semantic information
8Web Service Description (WSDL)
Abstract Description
Concrete Description
9Web Service Message Protocol - SOAP
- SOAP is an XML Messaging Protocol
- that allows software running on disparate
operating systems, running in different
environments to
- make Remote Procedure Calls (RPC).
Header
Body
10SOAP (contd.)
- Available popular SOAP Implementations
(ToolKits)
- Apache SOAP/AXIS for Java
- SOAPLite for Perl
- Microsoft .NET for C
- SOAP can be used in a variety of ways
- over HTTP, SMTP, FTP, MQSeries, Jabber, etc.
- SOAP over HTTP is the most prevalent form of Web
service communication
11Invocation
- Perl and other scripting languages like Python
are very concise in the size of the Web service
invocation code
- For Java, Apache Axis creates a Service and Call
object and initializes them with appropriate
values to invoke a Web service.
- Perl Web Service Invocation
12Java Web Service Invocation
13Invocation of Web Services
Interface Specification
ServiceType
Port Type1
Port Type2
operation1 operation2
operation1 operation2
Requestor
Port1
RPC to Message
Web Service
Port2
Request Message
Port3
Implementation
Message Protocol
Format2 (SOAP)
Format1 (SOAP)
Transport1 (HTTP)
Transport2 (SMTP)
Messaging
14Dynamic Service Invocation
Service Requestor
2
Remote UDDI Web Service (Registry)
SOAP Request
Automated Web Service Lookup
3
WSDL(s)
Automatic Service Selection
(SOAP Response)
1
Dynamic Client Code Generation
Remote Web service
4
SOAP Request
Publish Web Service
Web Service Invocation
5
SOAP Response
UDDI Universal Description, Discovery and
Integration
15UDDI (Universal Description, Discovery and
Integration)
- UDDI serves as a Business and services registry
and are essential for dynamic usage of Web
services
- UDDI APIs
- Publication API - Authenticated set of operations
that allow organizations to publish businesses,
services, service type specifications
- Inquiry API - Non authenticated public set of
operations that allows users to extract
information out of the UDDI registry.
16UDDI
- UDDI classifies businesses and services according
to standard taxonomies
- Why Classification ?
- Searches based on keywords alone, could return a
large set of hits for a particular search
- Classification of services and businesses allows
to perform better searches
- Registry Data
- White Pages
- Yellow Pages
- Green Pages
- ServiceType Registrations
17UDDI
- White Pages
- contains business name, text description, contact
info and other related info.
-
- contains classification information about the
business entity and types of the services the
entity offers.
- e.g. a business entity could have itself
classified as a sports equipment manufacturer and
also as a skateboard manufacturer.
- Green Pages
- contains information about how to invoke the
offered services.
- If a business entity were to offer its catalog
online, its Green
- pages entry would have a reference to its
catalog URL
White Pages
Yellow Pages
Green Pages
18UDDI
- Service Types
- Reusable, abstract definitions of services (
abstract part of WSDL)
- that are defined by industry groups and
standard bodies.
- These reusable abstractions are referred to as
Technology Models
- The UDDI data structure corresponding to this is
called TModels
- TModels
- Any abstract concept can be registered within
UDDI as a TModel.
- e.g. If you define a new WSDL port type, you can
define a TModel that represents the port type
within the UDDI
19Example of a Business/Service Registration
Source www.uddi.org/pubs/UDDI_Overview_Presentat
ion.ppt
20How UDDI Works ?
1.
SW companies, standards bodies, and programmers
populate the registry with descriptions of differ
ent types of services
UDDI Business Registry
Service Type Registrations
Source www.uddi.org/pubs/UDDI_Overview_Presentat
ion.ppt
21Web Service Deployment
ServiceProvider
Write Application
Deploy Application As Service
Remote UDDI Web Service Registry
1
WSDL File Generation and Registration
WSDL
SOAP Request
Start Listener
WSDD - Web Service Deployment Descriptor
(not an internet standard)
22Web Service Deployment
- Java Program (Application)
23Web Service Deployment
- Install the Apache Axis (SOAP Server) in the
machine which serves as the host of the service.
- Deploying the Service
- Register with SOAP
- server details about which
- code to execute when a
- particular type of SOAP
- message is received
- java org.apache.axis.client.AdminClient
- deploy.wsdd
Deploy.wsdd
SOAP Manager
Apache AXIS
24Web Service Deployment
- Start the HTTP daemon
- Automatic Generation of WSDL file
- http///axis/services/?wsdl
- http//atlanta.cs.uga.edu8080/axis/services/SendM
ail?wsdl
- Registration of the service with the UDDI could
be done via toolkits e.g.UDDI4J
25Web Service Composition
Service Requestor
Compose Abstract Process
Remote Web Service Repository (Web Sites/UDDI)
2
SOAP Request
Search for Services
SOAP Response
3
Make Concrete Process
Remote Web service
SOAP Request / Response
1
4
Remote Web service
Publish Web Service
Execute Process
Remote Web service
BPEL4WS Business Process Execution Language
for Web Service
26Web Service Composition (contd.)
- Composition of individual Web services to obtain
a Web process
- is called Service Composition
- Why do we need to compose services ?
- Individual services offer only limited
capabilities.
- To realize the full potential of Web services
model, we aggregate existing services to create
new functionality Web processes.
- Types
- Dynamic Composition
- Static Composition
27Static vs. Dynamic Composition
- Static composition
- In this type of composition, the services are
fixed during design time
- This type is more suitable if the partner or
alliances involved in the process are
predetermined and are to be rarely changed
- Dynamic composition
- Services are decided at runtime, when the process
is executed
- Provides flexibility for modifying, extending and
adapting the operations of the software at
runtime
- There is no binding to any particular service
provider
28Composition Standards
- WSFL, XLANG, BPEL4WS and DAML-S are some of the
XML based languages that have been proposed for
specifying Web service composition
- DAML-S is unique in these languages, as it uses
ontologies in describing services, which allows
efficient discovery of services semantically at
run time - BPEL4WS (a merged version of XLANG and WSFL) is
the newly proposed Web service composition
language
29BPEL4WS
- BPEL4WS replaces WSFL and XLANG by combining and
extending the functions of both
- A BPEL4WS process is defined in the abstract by
referencing only the portTypes of the services
involved in the process and not their actual
deployments. - BPEL4WS supports both synchronous and
asynchronous message exchanges within stateful
and long-running interactions
- Maintenance of the state of a business process
requires the use of state variables called
containers.
30BPEL4WS (contd.)
Amt 10000
Risk Assessment Service
Loan Approval Service
riskmed, high
Receive
Amt
Cust. Id, Loan Amt.
risklow
approved
Approval Message
Reply
Approval Message
31BPEL4WS Process
32BPEL4WS Process
33Challenges in Composition
- Discovery of Web services
- Inter-operability of the composed Web services
- Execution of the composed process
- Reliability, Transactions, Security aspects of
the composed process
-
34Discovery of Services
- Key word based search
- Services could be searched for in UDDI registries
by providing keywords describing the service
needs.
- UDDI uses the classification of services, to
provide efficient searches.
- As searching UDDI is based on keywords and
classifications, the resulting services might not
match the service requirements
- Ontology based search
- If services are described using ontologies, then
searching based on ontologies could yield better
results.
35 Inter-operability of Services
- Structural and Semantic heterogeneity (Cardoso,
2002) existing between different Web services
need to resolved.
- Structural heterogeneity
- Need to handle data mapping, for propagating data
from one service to another
- How to automate this data mapping ?
- Semantic heterogeneity
- Need to understand the meaning of the terms
employed in the interface descriptions of the
services and resolve the differences
36 Execution of Composed Service
- A composed process can be enacted in two ways
- 1. Centralized manner
- controller based Execution
- has the disadvantage of having a single
controller coordinating the entire process
Execution e.g., eFlow system
- 2. Distributed manner
- There is no controller involved, execution is
based on coordination of service providers
- complex to implement
37Summary
- Web services
- Is an e-business evolution
- Represent a great opportunity for
- Easier reuse of software components
- Distributed application Integration
- Helps cut down on application development time
and expense
- Still an evolving technology and standards need
to be developed to fully utilize its potential
-
38References
- 1. Web Services A New Paradigm for Distributed
Computing
- http//www.therationaledge.com/content/sep_01/f_w
ebServices_jb.html
- 2. UDDI Overview www.uddi.org/pubs/UDDI_Overview_
Presentation.ppt
- 3. Web Services A New Paradigm for Distributed
Computing
- www.therationaledge.com/content/sep_01/f_webServic
es_jb.html
- 4. Reinventing the Wheel? CORBA vs. Web Services
- http//www2002.org/CDROM/alternate/395/
- 5. Supercharging WSDL with RDF,
- http//www-106.ibm.com/developerworks/library
/ws-rdf/
- 6. J . Cardoso, and A. Sheth, Semantic
e-Workflow Composition, in Journal of
Intelligent Information Systems (submitted),
2002.