Web Services - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Web Services

Description:

White Pages. contains business name, text description, contact info and other related info. ... Green Pages. contains information about how to invoke the ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 39
Provided by: sent
Category:
Tags: pages | services | web | white

less

Transcript and Presenter's Notes

Title: Web Services


1
Web Services
  • Senthilanand Chandrasekaran
  • Advisor Dr. John A. Miller
  • Computer Science Department
  • The University of Georgia

2
Topical 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)

3
Introduction
  • 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

4
Why 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/
5
Web 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.)

6
Simple 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
7
Web 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

8
Web Service Description (WSDL)
Abstract Description
Concrete Description
9
Web 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
10
SOAP (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

11
Invocation
  • 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

12
Java Web Service Invocation
13
Invocation 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
14
Dynamic 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
15
UDDI (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.

16
UDDI
  • 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

17
UDDI
  • 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
18
UDDI
  • 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

19
Example of a Business/Service Registration
Source www.uddi.org/pubs/UDDI_Overview_Presentat
ion.ppt
20
How 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
21
Web 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)
22
Web Service Deployment
  • Java Program (Application)

23
Web 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
24
Web 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

25
Web 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
26
Web 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

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

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

29
BPEL4WS
  • 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.

30
BPEL4WS (contd.)
  • Example BPEL4WS process

Amt 10000
Risk Assessment Service
Loan Approval Service
riskmed, high
Receive
Amt
Cust. Id, Loan Amt.
risklow
approved
Approval Message
Reply
Approval Message
31
BPEL4WS Process
32
BPEL4WS Process
33
Challenges 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

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

37
Summary
  • 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

38
References
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com