This preview shows page 1. Sign up to view the full content.
Unformatted text preview: Web Services Protocols
Dr. Atanu Rakshit
Email: [email protected]
[email protected] Enterprise Application Integration
Enterprise List of References ‘Enterprise Application Integration’ by David S.
Linthicum, Addison-Wesley, 1999
‘Enterprise Application Integration’ by W. A. Ruh,
F. X. Maginnis, W. J. Brown, Wiley, 2000
URL: www.eai.ittoolbox.com www.eaijournal.com
www.eaijournal.com EAI – Course Outline
EAI EAI – An Overview
Data Level EAI
Application Interface Level EAI
Method Level EAI
User Interface Level EAI
The EAI Process Methodology
EAI and Middleware EAI – Course Outline
EAI Transactional Middleware and EAI
Messaging Oriented EAI
Distributed Objects and EAI
Database Oriented Middleware and EAI
Java Middleware and EAI
XML and EAI
E – Business and EAI
Process Automation and EAI
Future Trends in EAI Web Services Protocols
An Road Map
Road Part I: Introduction to Web Services What is a Web Service?
Impact / Architectural Overview Part II: Web Service Protocols XML-RPC and SOAP
WSDL and UDDI Part I:
Today, the principal use of the World Wide Web is for
interactive access to documents and applications. In
almost all cases, such access is by human users,
typically working through web browsers…
The Web can grow significantly in power and scope if
it is extended to support communication between
applications, from one program to another.
-- From the W3C XML Protocol Working Group
Charter What is a Web
Service? What is a Web Service?
What A Web Service is any service that: Is available over the Internet or private (intranet)
Uses a standardized XML messaging system
Is not tied to any one operating system or
programming A Basic Web Service
XML Computer A:
Windows 2000 Computer B:
Linux XML Messaging
XML There are several
alternatives for XML
messaging: XML Remote
transported over HTTP
transported Any of these options
are XML-RPC SOAP HTTP POST/GET
XML Document Web Services Defined
Web Although not required, a web service may also
have two additional (and desirable) properties:
have a web service should be self describing.
a web service should be discoverable.
discoverable Web Services: Self Describing
Self If you publish a new web service, you should also
publish a public interface to the service.
At a minimum, you should include human-readable
documentation so that others can easily integrate your
If you have created a SOAP service, you should also
include a public interface written in a common XML
grammar. Web Services: Discoverable
Discoverable If you create a web service, there should be a
relatively simple mechanism to publish this
Likewise, interested parties should be able to
easily discover your service.
The discovery service could be completely
decentralized or completely centralized.
decentralized Web Services: Summary
Web To summarize, a complete web service is any
service Is available over the Internet or private (intranet)
Uses a standardized XML messaging system
Is not tied to any one operating system or
Is self-describing via a common XML grammar
Is discoverable via a simple find mechanism What Are Web Services?
Service #1 Web
Service #2 Web site
Client (Web User) Local Web
Service #3 Standard HTTP
Using SOAP over
HTTP Internet The Impact of
Web Web Services in Action
Web To understand the impact of web services,
consider basic e-commerce functionality.
For example, Amazon sells books through its
web Customers can purchase books and check on order
status. The Web Today: Human Centric
HTTP GET: “What
is the status of
my order?” Web
with HTML Page:
“Leaving the warehouse
at 3 pm today.” This illustrates a human-centric web, where humans are the primary actors
initiating web requests.
It also represents the primary model on which most of the web operates
today. Web Services: Application-Centric Web
Web With web services, we move from a humancentric web to an application-centric web.
In other words, conversations between
applications occur as easily as conversations
between web browsers and servers.
between The Application-Centric Web
XML Request: “What
is the status of
my order?” Web
users XML Response:
“Leaving the warehouse
at 3 pm today.” On to
other applications The order status is now a web service.
Applications can therefore connect to the order status service
directly. Application-Centric Web
Application-Centric There are numerous areas where an
application-centric web would be extremely
helpful: credit card verification
single sign-on registration
calendar, email, etc. The Semantic Web
The Tim Berners Lee, the original inventor of the WWW,
is now arguing for a Semantic Web.
Berners Lee: The next stage is development of the
Web is the Semantic Web.
The Semantic Web vision is also application centric.
Berners Lee has also argued that web services are in
fact an actualization of the Semantic Web Vision.
fact Haven’t we seen this before?
Haven’t An application-centric web is not a new notion.
For years, developers have created
For CGI applications, Java Servlets and CORBA applications
designed primarily for use by other applications. The crucial difference is that most of these systems
consisted of ad-hoc solutions.
With web services, we have the promise of some
Standardization will lower the barrier to application
integration. The Long-term Vision: Automated Web
The In the long-term, web services offer the promise of
the automated Web.
“Just-in-time” integration: If services are easily discoverable, self-describing, and
stick to common standards, it is possible to automate
application For example, consider a company, Mega Electric
(ME) that wants to buy parts from Widgets,Inc.
(ME) ME wants to automatically integrate inventory with
Widgets, Inc. order status service.
Widgets, Just-In-Time Integration
Discover Services Service
Registry Retrieve Service
Application Widgets Inc. Server
Service Description 3
Service Order Status Service Hype Vs Reality
Hype How close are we to creating “Just-in-time”
Currently, only some processes can be automated: automatic registry query automatic invocation of service
However, no mechanism exists for automating business
relationships. no mechanism exists for evaluating the quality of
services. Industry Landscape
Industry Many companies are investing heavily in web services.
Currently many competing frameworks for building web
Three main contenders: Microsoft .NET
IBM Web Services
Sun Open Net Environment (ONE), Java All frameworks share a commitment to the same web services
Standardization The World Wide Web Consortium is heavily involved in
standardizing web services.
standardizing SOAP is the first specification to be standardized.
http://www.w3c.org/2002/ws/ Web Services Interoperability Organization (WSI) Industry organization
Designed to speed up the standardization/compliance process.
http://www.ws-i.org/ Web Services
Architecture Web Service Architecture
There are two ways to view the web service
architectural 1) 2) Examine individual roles of each web service
Examine the emerging web service protocol
stack. Web Service Roles
Web Three major roles in web services: Service Provider: provider of the web service.
Service Requestor: any consumer of the web
Service Registry: logically centralized directory of
services. Web Service Roles
Invoke Service Service
Provider Web Service Protocol Stack
Web Service transport: responsible for transporting messages. Examples: HTTP, BEEP (Blocks
Extensible Exchange Protocol)
Extensible XML messaging: responsible for encoding messages in common XML
format. Examples: XML-RPC, SOAP Service Description: responsible for describing an interface to a specific
web Example: WSDL Service Discovery: responsible for centralizing services into a common
search Web Service Protocol Stack
Discovery UDDI Description WSDL XML Messaging XML-RPC, SOAP, Custom XML
Transport HTTP, SMTP, FTP, BEEP Part II:
Messaging Option 1: XML-RPC
Option XML-RPC: protocol that uses XML messages to
perform Remote Procedure Calls (RPC.)
Platform independent; diverse applications can talk
to each other.
XML-RPC is the easiest way to get started with web
services. Simpler than SOAP
Simpler data structures for transmitting data. XML-RPC Example
XML-RPC Here is a sample XML-RPC request to a
weather <?xml version="1.0" encoding="ISO-8859-1"?>
“Give me the current weather conditions
in zip code: 10016.” XML-RPC Example
XML-RPC Here is a sample Weather response:
<?xml version="1.0" encoding="ISO-8859-1"?>
“Current temperature is 65 degrees” Option 2: SOAP
Option SOAP: used to stand for “Simple Object
XML-Based protocol for exchanging
information between computers.
Currently a formal recommendation of the
World Wide Web Consortium (W3C.)
World SOAP Message Format
Header (Optional) Body (Required) Fault (Optional: Response only) SOAP 1.1 Example
SOAP Here is a sample SOAP request to a weather
service: <?xml version='1.0' encoding='UTF-8'?>
</SOAP-ENV:Envelope> SOAP 1.1 Example:
SOAP Here is a sample SOAP response: <?xml version='1.0' encoding='UTF-8'?>
</SOAP-ENV:Envelope> WSDL & UDDI
WSDL WSDL: Web Service Description Language.
WSDL is an XML grammar for specifying an
interface for a web service.
Specifies location of web service
methods that are available by the web service
data type information for all XML messages WSDL is commonly used to describe SOAP services. WSDL In a Nutshell
<definitions>: Root WSDL Element
<types>: What data types will be transmitted?
<message>: What messages will be transmitted?
<portType>: What operations (functions) will be supported?
<binding>: What SOAP specific details are there?
<service>: Where is the service located? WSDL Excerpt: Weather Service
<part name="zipcode" type="xsd:string"/>
<part name="temperature" type="xsd:int"/>
</portType> WSDL Excerpt: Weather Service
<documentation>WSDL File for
</definitions> So What?
So Given a WSDL file, a developer can
immediately figure out how to connect to the
Eases overall integration process.
Better yet, with WSDL tools, you can
automate the integration…
automate WSDL Invocation Tools
WSDL For example, IBM has a tool called Web
Services Invocation Framework (WSIF).
Given a WSDL file, the tool will automatically
invoke the service.
A number of other tools from Microsoft,
GLUE, and open source projects also do this.
GLUE, WSIF: Example
WSIF: Invoke WSIF with the Weather WSDL File; specify method name and zip
code java clients.DynamicInvoker
getWeather generates the following output: Reading WSDL document from
Preparing WSIF dynamic invocation
Executing operation getWeather
UDDI UDDI: Universal Description, Discovery and
Currently represents the discovery layer in the
Originally created by Microsoft, IBM and
Technical specification for publishing and
finding businesses and web services.
finding UDDI: Two Parts
UDDI: Part I: Technical specification specification for building a distributed directory of businesses and
services. XML format for specifying businesses and services. API for querying/publishing to the registry.
Part II: Implementation UDDI Business Registry, fully operational implementation of the
specification. Businesses can publish services here. Businesses can discover services here. Currently maintained by IBM, Microsoft, etc. What is UDDI? Universal Description Discovery and Integration Industry-wide initiative supporting web services Specifications Schemas for service description Schemas for business (service implementers)
description Developed on industry standards (XML, HTTP,
TCP/IP, Applies equally to XML and non-XML web services Implementation Public web service registry and development
resources What Problems Do We Solve?
Aggregation Web Service
Visibility An organization needs to
create 400 electronic
partners, each with its
own standards and
Services A small business wants to
be “plugged in” to every
marketplace in the world,
but doesn’t know how
Services A B2B marketplace cannot
get catalog data for
relevant suppliers in its
industry, along with
connections to shippers,
Provide a standards-based
profile for all electronic
services that are provided.
Includes web sites, other
Accessibility UDDI Registry Entries
UDDI Standards Bodies,
specifications for their
Service Service providers register
precise information about
themselves and their Web
services Business name
General business description Contact info Any number of languages
Names, phone numbers,
fax numbers, web sites, etc. Known identifiers List of unique identifiers for a business
D-U-N-S, Thomas, domain name, stock ticker
symbol, other Business categories 3 base taxonomies in V1
Industry: NAICS (Industry codes - US Govt.) Product/Services: UNSPSC (ECCMA) Location: Geographical taxonomy (ISO 3166) …easy extension in upcoming releases New set of information businesses use to
describe how to “do e-commerce” with them Nested model
Business process (functional) Service specifications (technical) Binding information (implementation) Programming/platform/
Services can also be categorized How UDDI Works
Software companies, standards
bodies, and developers populate
the registry with descriptions
(specifications) of types of services
(specifications) 1. 4.
2. Marketplaces, search
engines, and business
applications query the registry
to discover services at other
companies and to facilitate
integration UDDI Registry Implementers
and the services
they Implementations 3. Service Types 5. UDDI Registry assigns a programmatically unique
identifier to each service and registration Large businesses apply
the same architecture
internally Public Registry Operation
Public Peer registry nodes (websites)
with any node
on a daily basis
Complete set of
available at all nodes
Common set of
SOAP APIs supported
by all nodes
by business contract
All technologies applied Interoperability
verified constantly Developers
queries UDDI.org Microsoft End Users HP (planned) UDDI Roadmap
V1 V2 V3 “Registration” “Integration” “Aggregation” September
2001 Ongoing Industry
Body All Together
Now! Using the Protocols Together
Step 1: Find Services via UDDI
Retrieve Service Description File:
WSDL or XML-RPC Instructions Step 2:
Step 3: Create XML-RPC or SOAP Client Step 4: Invoke Remote Service Q&A
Q&A Thank You ...
View Full Document
This note was uploaded on 07/15/2011 for the course ECO 2023 taught by Professor Mr.raza during the Summer '10 term at FAU.
- Summer '10