Web Services:
The Next Horizon for e-business Architecture Overview
Ryoo, JungHyung
e-business Architect
Developer Relations, IBM Korea
[email protected]
What's Driving e-Businesses?
An Explosion of Access Points
? a trillion connected devices
? a billion connected people
? a million connected e-businesses
An Explosion of Transactions
"Transaction Volumes will Grow by A
Factor of 50 in the next 5 years" - Forrester 1/99
An Explosion of Data
"today 0% of electronic data is accessible through the internet. Internet Accessible Data Can Grow by A Factor of 10,000!"
Rethinking IT
Both external market and internal organizational pressures are provoking businesses to reassess their IT approaches
New Market threats & opportunities
A New Web Model
Until now, the Web has provided for
? browsing of linked documents
? manually-initiated purchases and transactions
? downloading files
? all of this is manual, by way of a browser
Web Services is a new model for using the Web
? transactions initiated automatically by a program, not necessarily using a browser
? can be described, published, discovered, and invoked dynamically in a distributed computing environment
? new ways of using the web: intelligent agents, marketplaces, auctions
? all built on XML!
What are Web Services?
Simply put, web services are applications that interact with each other using Web standards
?
Self-describing, self-contained modular applications
?
Platform & implementation neutral
?
Based on open standards for description, discovery &
invocation
?
Programmatically connect business processes together
?
Typically transactional, requiring integration with existing
systems
What are Web Services?
The next evolution of e-business
? publishing of business functions to the Web
? universal access to these functions
A natural extension to the client-server model
? transaction model for e-business
? invoke methods on remote objects (SOAP)
? directory of available services and service providers, using SOAP lookup (UDDI)
? standard description languages based on XML for services and service providers (WSDL, WDS) e-business is driving the merging of Web, IT & Object technologies to form the foundation for Web Services
How fast is this happening?
? Record setting pace for adoption of XML &
Web services-based infrastructure
? Business Mandate open standards fueling business
Web Services and their Value
Web Services
Applications which interact with each other using Web standards
Businesses benefit by using Web Services to:
? Connect applications to applications in other businesses quickly and easily
? Establish interaction with marketplaces more efficiently
? Deliver business functions to a broader set of customers and partners
? Pursue new business models by combining applications in new dynamic ways
Examples of Web Services
Business Information with rich content
? weather reports
? news feed
? airline schedules
? stock quotes
Transactional Web Services for B2B or B2C
? airline reservations
? rental car agreements
Business Process Externalization
? business linkages at a workflow level
? allows complete integration at a process level
? credit check
? credit card validation
? request for quote
? auctions
? supply chain mangement
? purchase order
A Virtual Application Model Scenario
Gourmet-to-Go Portal Application
Customer Order/Inquiry
Menu Suggestions
Wine Recommendations
Country Produce
Best Cuts Market
Delivery
Service
Aggregator (Public or
e-Market UDDI registry)
Small Business to Enterprise Scenario
Textiles
eMarketplace
CottonMarket.com
Locate (Find) wholesalers doing business in a specialty area or geography
Clothing Co.
Access (Bind)and electronically connect with wholesalers through an e-Marketplace
Extend processes to leverage complementary business services
Value -added Services (via UDDI)
Integrateservices to automate selection of suppliers
Best Woolens Inc.
Zipper It!
Fasteners
Vivid Dyes Inc.
Universal Business Registry (UDDI)
Register (Publish) your business for expanded reach
Business Registrations
Web Service Components
Service Provider
? provides e-business services
? publishes availability of these services through a registry
Service Broker
? provides support for publishing and locating services
? like telephone yellow pages
Service Requestor
? locates required services via the Service Broker
? binds to services via Service Provider
Web Service Operations
Publish/Unpublish
? Service Providers advertise the availability of their
service to one or more service brokers, or to
remove the advertisement of their service.
Find
? Service Requestors query Service Brokers to discover a set of services that it can interact with
to provide a solution.
Bind
? Service Requestors negotiate with Service Providers to access and invoke e-business services.
Web Services: Base Technologies
SOAP - Simple Object Access Protocol
? an XML protocol to invoke a "function" on a server to perform a given operation
? request message is sent by service requestor
? response message may be sent by service provider
? May be an asynchronous message <---> notification UDDI - Universal Description, Discovery, Integration
? UDDI servers act as a directory of available services and service providers
? A SOAP application used to update and query a registry for services
WSDL - Web Services Description Language
? an XML vocabulary to describe service interfaces
SOAP
XML Protocol
for Web Services
SOAP 1.0: David Weiner of Userland, Microsoft
? SOAP 1.0 was specific to COM and HTTP
SOAP 1.1 (April 23, 2000) included contributions from IBM, Lotus, UserLand (originator of XML-RPC) and DevelopMentor
? sends XML-formatted messages over HTTP (or other protocols)
? completely vendor-neutral
? works with any programming language, object model, operating system, or platform
? May be synchronous or asynchronous
Services-Oriented Architecture Protocol
SOAP:
Simple Object Access Protocol
Why SOAP?
Hooking up objects
? XML-RPC++
? IIOP/DCOM--
Services on the web
? Model
? Wire Format
Exploit Internet protocols and standards
? XML
? HTTP
? Namespaces
SOAP v1.1 - May, 2000 Design Principles
?KISS
?Vendor neutral
?Any language, object model, platform...
?Scriptable
?Firewall friendly
?Flexible layering....substitutable:
? Transport bindings
? Language bindings
? Data encodings
But - It's Not THAT Simple!
Two Basic Access Mechanisms:
? SOAP RPC
? Simple Request-Response protocol
? Based on the SOAP Call object
? Lower-level SOAP methods build and send messages
? SOAP Messaging
? Send or process a SOAP message
? Maybe respond to it (now or later)
? Can be used for asynchronous processing
? Based on the SOAP Message object
? Allows finer grin of control over what is being transmitted
? User directly invokes lower-level SOAP APIs to build the SOAP message and send it
SOAP Message structure
Request and Response messages
? Request invokes a method on a remote object
? Response returns result of running the method SOAP defines an "envelope"
? "envelope" wraps the message itself
? message is a different vocabulary
? namespace prefix is used to distinguish the two parts
vocabularySOAP
application-specific message vocabulary
message
envelopeSOAP
A SOAP Request Message
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://{soaporg}/envelope/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"
SOAP-ENV:encodingStyle=
"http://{soaporg}/encoding/">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> SOAP envelope
message
A SOAP Request Message
SOAP Envelope Namespace for
wrapping messages
<SOAP-ENV:Envelope>
xmlns:SOAP-ENV="http://{soaporg}/envelope/"
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"
SOAP-ENV:encodingStyle=
"http://{soaporg}/encoding/">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
message namespace
A SOAP Request Message
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://{soaporg}/envelope/"
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"
SOAP-ENV:encodingStyle=
"http://{soaporg}/encoding/"
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Data model and encoding
for the parameters
A SOAP Response Message
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://{soaporg}/envelope/"
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI"
SOAP-ENV:encodingStyle=
"http://{soaporg}/encoding/">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Result returned in Body
SOAP envelope message
Service Provider
?
SOAP hides the service implementation from requester
ServerSOAP ServerHTTP
EJB? Corba? Cobol?
standard XML request/response messages
? SOAP envelope
? industry-specific message content Service
Requestor
Apache SOAP 2.2
SOAP4J posted to IBM alphaWorks, April 2000
Contributed by IBM to the Apache Software Foundation, June 2000 Apache SOAP v2.2:
? Solid SOAP v1.1 implementation, supporting HTTP and SMTP protocols
? platform-independent Java
? Free download from xml.apache.org/soap with source
? Under development by IBM and others SOAP distribution includes:
? User's Guide
? API documentation
? a tool for debugging SOAP
? three samples
SOAP and Standardization
SOAP was submitted to W3C for consideration as a standard (June? 2000)
? W3C has formed a working group called "XML Protocol".
? The group is considering what SOAP offers as input to the process
? The XML Protocol specification may or may not be SOAP at its heart, yet the problems SOAP solves are the important
requirements of XML Protocol.
Industry-specific SOAP messages will start a new round of vocabulary standards work
SOAP Summary
Universal service access protocol Technical features
? Structured envelope for XML messages
? Headers...message path
? Simple support for RPC or general messaging
? Data model and encodings
Basis for more sophisticated protocols
Submitted to W3C for consideration as a standard
UDDI:
Universal Description, Discovery,
and Integration
What is UDDI?
Universal Description, Discovery, and Integration
A project to speed interoperability and adoption for web services
? Standards-based specifications for service description and discovery
? Shared operation of a web-based business registry
? Partnership among industry and business leaders - more than 70 companies have signed up so far
? Copyright 2000 by Ariba, Inc., International Business Machines
Broader B2B
Smarter Search
Easier Aggregation
A mid-sized manufacturer needs to create 400 online relationships with customers, each with their own set of standard and protocols
A flower shop in Australia wants to be “plugged in” to every marketplace in the world, but doesn’t know how
A B2B marketplace cannot get catalog data for relevant
suppliers in its industry, along with connections to shippers, insurers, etc.
Describe Services
Discover Services
Integrate them
Together
Problems UDDI Solves
Copyright 2000 by Ariba, Inc., International Business Machines
UDDI v1 Implementation
Flower Shops
Marketplaces
UDDI Business Registry
? Programmatic descriptions of web services
? Programmatic descriptions of businesses and the services they support
? Programming model, schema, and platform agnostic
? Uses XML, HTTP, and SOAP
? Free on the Internet
? Copyright 2000 by Ariba, Inc., International Business Machines Corporation and Microsoft Corporation. All Rights Reserved.
Manufacturers
c
How UDDI v1 Works
UBR assigns a programmatically unique identifier to each service and business registration
3.
Businesses populate the registry with descriptions of the services they support
2.
Marketplaces, search engines, and business apps query the registry to discover services at other companies
4.
UDDI Business Registry
5.
Business Registrations
Service Type Registrations
SW companies,
standards bodies, and programmers populate the registry with
descriptions of different types of services
1.
Business uses this data to facilitate easier
integration with each other over the Web
? Copyright 2000 by Ariba, Inc., International Business Machines
Registry Data
?
Businesses register
public information about themselves
?
Standards bodies,
programmers, businesses register information
about their service types
White Pages White
Pages
Yellow Pages Green Pages
Service Type Registrations
? Copyright 2000 by Ariba, Inc., International Business Machines
White Pages:
Information about a Service Provider
?
Business Name
?
Text Description
? list of multi-language text strings
?
Contact info
? names, phone numbers, fax numbers, web sites…
?
Known Identifiers
? list of identifiers that a business may be known by - DUNS, Thomas, other
? Copyright 2000 by Ariba, Inc., International Business Machines
Yellow Pages:
business categories
3 standard taxonomies in V1
? Industry: NAICS (Industry codes - US Govt.)
? Product/Services: UN/SPSC (ECMA)
? Location: Geographical taxonomy
Implemented as name-value pairs to allow any valid taxonomy identifier to be attached to the business white page
? Copyright 2000 by Ariba, Inc., International Business Machines
Green Pages
how to bind to service provider
Technical info about services, specified by a business: how to "do e-commerce" with them
? references to specifications for Web services
? support for pointers to various file and URL based discovery mechanisms if required
Nested model
? Business processes
? Service descriptions
? Binding information
Programming/platform/implementation agnostic Services can also be categorized
? Copyright 2000 by Ariba, Inc., International Business Machines
SydneyNet.com
Harbour Metals creates online website with local ASP
1.
Consumers and
businesses discover
Harbour Metals and do business with it
4.
ASP registers Harbour Metals with UBR
2.
Marketplaces and search engines query UBR, cache
Harbour Metals data, and bind to its services
3.
UDDI Registry
? Copyright 2000 by Ariba, Inc., International Business Machines
UDDI at Work
Registry Operation
?
Peer nodes (websites)
?
Companies register with any node
?
Registrations replicated on a daily basis
?
Complete set of “registered” records available at all nodes
?
Common set of SOAP APIs supported by all nodes
?
Compliance enforced by business contract
IBM
Ariba
Microsoft other
other UDDI.org
queries
? Copyright 2000 by Ariba, Inc., International Business Machines
UDDI and SOAP
User
Create, View,
Update, and Delete registrations
UDDI Registry Node
ServerHTTP SOAP Server SOAP RequestUDDI
DirectoryB2B SOAP RequestUDDI
SOAP ResponseUDDI
Implementation- neutral
? Copyright 2000 by Ariba, Inc., International Business Machines
Registry APIs
(SOAP Messages)
Inquiry API Find things
? find_business
? find_service
? find_binding
? find_tModel
Get Details about things
? get_businessDetail
? get_serviceDetail
? get_bindingDetail
? get_tModelDetail
Publishers API Save things
? save_business
? save_service
? save_binding
? save_tModel Delete things
? delete_business
? delete_service
? delete_binding
? delete_tModel security…
? get_authToken
? discard_authToken
? Copyright 2000 by Ariba, Inc., International Business Machines
UDDI Roadmap
Taxonomies3 More
Taxonomies Custom Taxonomies Business Units Corporations Associations
Descriptions of
Services Layered
Services Workflow
V1 V2 V3
Sept 2000 March 2001 December 2001
? Copyright 2000 by Ariba, Inc., International Business Machines
UDDI Resources
Visit http://uddi.org for:
? Executive White Paper
? Technical White Paper
? UDDI Overview Presentation
(from which much of this section was taken)
? UDDI Programmer's API Specification
? UDDI Data Structure Reference
? UDDI XML schema
? News Releases
? Frequently Asked Questions
See also: http://ibm.com/services/uddi
WSDL:
Describing Services and Service
Providers
WSDL: Web Services Description Language
?This is an XML Vocabulary, similar in purpose to IDL.
?It contains operational information about the service
? service interface
? implementation details
? access protocol
? contact endpoints
?WSDL is the convergence of separate definition efforts of IBM and Microsoft
?WSDL was submitted to the W3C in February with a total of 25 co-submitters.
WSDL
XML language for describing Web services
? As set of endpoints operating on messages
? Operations and messages are described abstractly
? Then bound to concrete network protocol and message format to create an endpoint
Functional description of network accessible services
? IDL description
? Protocol and deployment details WSDL V1.1 Specification
? http://www.w3c.org/TR/wsdl
WSDL Usage Scenarios
As IDL, allows tools to generate client access code for a service
? Web Services Toolkit, IBM WSDE
Standardized service interface descriptions
? Allows advertisement and dynamic discovery of services
? Enables dynamic binding to service
? Complements UDDI registry
WSDL Document
Client
Application Code
WebSphere App Server
Part of IBM Web
Services Toolkit Code
Generator
WSDL Speeds Implementation
Back-end Processes
App-specific code (you add this)
Service Proxy
Service
Implementation Template
WSDL Usage
? Two types of WSDL service description documents
? Service Interface
? Service Implementation
? Service Interface
? Abstract, reusable service definition
? Represents a type of service that can be implemented
? Elements: types, message, portType, binding
? Service Implementation
? Implementation of one or more service interfaces
? Contains the endpoint reference
? Elements: import and service
WSDL Service Interface
<?xml version="1.0"?>
<definitions name="StockQuoteService-interface"
...
<message name="SymbolRequest">
<part name="symbol" type="xsd:string"/>
</message>
<message name="QuoteResponse">
<part name="quote" type="xsd:string"/>
</message>
<portType name="StockQuoteService">
<operation name="getQuote">
<input message="tns:SymbolRequest"/>
<output message="tns:QuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteServiceBinding” type="tns:StockQuoteService">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getQuote">
<soap:operation soapAction="http://www.getquote.com/GetQuote"/>
<input>
<soap:body use="encoded" namespace="urn:live-stock-quotes”
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="urn:live-stock-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
</definitions>
<?xml version="1.0"?>
<definitions name="StockQuoteService"
targetNamespace="http://www.getquote.com/StockQuoteService"
xmlns:interface="http://www.getquote.com/StockQuoteService-interface"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<import namespace="http://www.getquote.com/StockQuoteService-interface"
location="http://localhost:80/services/sqs-interface.wsdl"/>
<service name="StockQuoteService">
<documentation>Stock Quote Service</documentation>
<port name=”localhost" binding="interface:StockQuoteServiceBinding">
<soap:address
location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
. . .
</service>
</definitions>
WSDL Service Implementation
WSDL Resources
Specification: visit
http://ibm.com/software/developer/library/w- wsdl.html?dwzone=web
...or visit ibm.com/developer and search for WSDL WSDL Toolkit on ibm.com/alphaworks
? A set of tools that allow developers to generate client and server code from a WSDL document
WSDL Resources
Specification: visit
http://ibm.com/software/developer/library/w- wsdl.html?dwzone=web
...or visit ibm.com/developer and search for WSDL WSDL Toolkit on ibm.com/alphaworks
? A set of tools that allow developers to generate client and server code from a WSDL document
Web Services Toolkit (WSTK) on ibm.com/alphaworks
? demos, papers, developer tools for experimenting with Web Services
Web Services Toolkit
IBM's Web Services Toolkit
An implementation of the Web Services architecture for creating, locating and invoking web services
Several useful papers on Web Services
Can be used with Apache Tomcat, IBM WebSphere Application Server, or Embedded WebSphere (included)
Needs only a JDK to run
Available for free download from ibm.com/alphaworks
WSTK Contents
Web Services Toolkit contains:
? A Web Services programming tutorial
? IBM’s SOAP implementation (now Apache's)
? Technology Demos and Libraries:
? UDDI4J
? WSDL4J
? AXIS
? Several Web Services papers and specifications
? A Web Services Creation Wizard for assisting in encapsulating legacy code as web services
? A Client Proxy Generator
? A sample application called Gourmet2Go
? Many smaller samples
? XKMS
? HTTPR
? WS4B
What's Next?
IBM's UDDI Registry is up and running
? visit ibm.com/services/uddi
Private UDDI Registry Preview is Available
? http://www.alphaworks.ibm.com/tech/UDDIreg New Standards and Tools for
? Reliable Message Delivery over Internet Protocols
? Secure Message Delivery
? Work Flow Processing and Management
Web Services features are beginning to roll out in fully supported IBM products
? WebSphere
? WebSphere Studio
? WebSphere Business Integrator
? DB2 Universal Database
? MQ Series Lotus
Web Services: Summary
Web services is an e-business evolution
? describe, discover, integrate services
? increase market reach, syndicate assets, decrease connection costs
? Large role for e-marketplaces, portals, xSPs Open standards is a requirement
? Build on current B2B standards stack
? IBM leads adoption of emerging standards
? Platform-neutral claims get put to the test Get started now with IBM
? WebSphere platform meets requirements
? Web Services Toolkit
? jStart Web services consulting
? Partnerships with the early adopters
Questions?
ibm.com /alphaworks
site for free emerging tools and technologies from IBM ibm.com/developer/xml
XML Zone on developerWorks - resources for customers and developers on the use of XML
xml.apache.org
open source XML tools from Apache Software Foundation www.w3.org
XML base technical standards xml.org
XML standard vocabularies repository xml.org/xmlorg_news/index.shtml
new and news (the Cover pages) ebxml.org
electronic business in XML initiative
Demos - Later Today
Web Services Toolkit V2.4 Available on Alphaworks
? Docs, Whitepapers, and more
WebSphere Studio Application Developer (WSAD) Available From WebSphere Site
? ibm.com/software/webservers/studio/preregister.html
? Future direction of VisualAge for Java