IBM TRAINING
B13
Web Services for Dummies
Hilon Potter
Orlando, FL
IBM Corporation 2006 1
RETURN TO INDEX
Agenda
So what are we talking about
Web Services Standards
The basics of Web Services
SOA What?
2
What is ..
a service? service orientation?
A way of integrating your
A repeatable business as linked
business task e.g., services
check customer credit; and the outcomes that
open new account they bring
service oriented a composite
architecture (SOA)? application?
An IT architectural A set of related &
style that supports integrated services that
service orientation support a business
process built on an SOA
3
Have you heard about Mashups
4
Web Services: Key Functions
Service Broker
Owns a searchable repository of service descriptions
Service Providers publish their services to the broker
Service requesters access broker to find services
Service Provider Service Requester
Owns a group of services A client that requires a service
Provides applications as Web Service Finds a matching service
Publishes their services Invokes the service
J2EE Standards: JSR 101, JSR 109
Web Services Gateway, UDDI
5
A quick mention about Standards
When you read about standards related to
Web Services, they usually use acronyms that start
with WS, So:
WS-Security
WS-Policy
WS-I Basic Profile
WS-TX (WS Transactions)
Each one will define a specific area of the web
services space.
Most of these relate to the SOAP component.
6
On Demand Operating Environment Standards
SQL 2003
Key: IBM Spec SDO spec STANDARD XQuery
JSR-114 JDBC rowset
CC/PP JSR-168 Portlet JSR-47 Logging API
JSR-225 XQJ
VoiceXML XForms
JSR-235 SDO
WSRP
OGSA JSR-73 Data Mining
Application Services
DMTF-CIM User User Business Business Information
R
Interaction Process Function Common
Access Management
SE
Services
WSDM Mngmt Of WS Services Services Services Services
rm
Services
U
WSDM Mngmt Using WS
fo
BPM Enterprise Service Bus
at
WSDM CBE
Pl
Infrastructure Services
SS
ic s
M
rv nes
E
es Utility Business Services
I-R
N
SI
Se usi
UDDI 1.0 & UDDI 2.0 Service Level Automation and Orchestration
D
U
O
B
Resource Virtualization Services
WS-ServiceGroup
WS-Coordination
WS-MetadataExchange
ODOE
WS-Notification
Web Services Profiles
WS-AtomicTransaction
Legacy
WS-Business Activity
a t rm
Common Web Services
WS-Resource Lifetime
rm
Pl fo
Web Services
y la t
fo
Web Services Description
og A P
WSDL 1.1 & WSDL 2.0 J2EE Policies
hn SO
WS-BaseFaults Web Services Base Protocol
WS-Addressing
ol
WS-Policy Non-Web Services Web Services
c
Te
BPEL4WS
WS-Security 1.0 Non XML XML
WS-SecureConversation
WS-Trust
J2EE 1.4 SOAP 1.1 & SOAP 1.2 XML 1.0 & XML 1.1 WS-SecurityPolicy WS-I Basic Profile 1.0 & 1.1
WS-Federation
JSR-3 (JMX) MTOM and XOP Namespaces 1.0 & 1.1 XACML WS-I Attachments Profile 1.0
SAML 1.0 & SAML 2.0
JSR-77 SOAP with Attachments XML Schema 1.0 & 1.1 WS-Agreement WS-I Simple SOAP Binding
WS-ReliableMessaging
XML C14N Profile 1.0
WS-Resource Properties
XSL 1.0 WS-I Basic Security Profile 1.0
7
Web Services
Say you were a store that wanted to sell pencils on the network but you
didn't want to setup the payment process. So you need to find someone
that will process the payments for you. In this case you'd be a Service
Requester. Your online application would have to
Lookup the name and location of the service you need to use
Say your a bank and you want to provide a service to anyone who needs to
accept payments, but you don't want to tie your service directly to anyone.
In this case you'd be a Service Provider. You would have to
Build you service and register it for someone to lookup
Both of the above need a middle man to handle the directory and support
the registration of services and the lookup. This would be the Service
Broker. You would have to
Make your service available to the providers and requesters
Each of these three services requires a set of standards and definitions that is
commonly called Web Services. Some development groups are using parts of the
standard, i.e. XML or SOAP over HTTP and they say they are using Web Services
8
Web Services: What Does It Take?
A structured way for exchanging information
XML - Extensible Markup Language
Provides a platform/vendor neutral way to structure data
A service access protocol
SOAP - Simple Object Access Protocol
Provides a platform/vendor neutral application communication protocol
A way to describe services
WSDL - Web Services Description Language
Uses XML to describe a Web service
A way to advertise and find out about available services
UDDI - Universal Discovery Description and Integration
A structured directory or registry used for publishing and finding a Web
Service
9
So what is used for Standards based Web
Services
WSDL -Web Services Description Language
Describes the interface to the Service in a XML tagged language
Describes the location and port type
Usually generated at the end of the service development cycle
Can be registered in a UDDI registry for easy access
If the Service is registered in a UDDI, the developer can look it up using the
development environment and import it.
Can be sent to a developer that wants to use the service
The developer imports the WSDL into the development tool WSAD (WebSphere Studio
Application Developer)
Externalizes the service interface and decouples the requester from the
service. The requester only needs to have the WSDL. WSDL can be
looked up.
A lot of Businesses are using WSDL for both web services and
for defining interfaces for local calls within a component
architecture model, but theyre not using UDDI.
10
Cont.
SOAP -Simple Object Access Protocol
Not necessarily Simple
Think of SOAP as the message or payload and there
can be different transport protocols, usually HTTP or
JMS (MQ).
A purist will say it needs to be HTTP to meet the current standards.
Some customers use XML/HTTP instead of
SOAP/HTTP and refer to it as Web Services.
Some customers use SOAP, some use XML, and
some use both
11
Cont.
UDDI -Universal Description Discovery and
Integration protocol
Not just a standard or protocol, but a registry.
A place where you can register a service if you are a provider and a
place to do a lookup if you are a requester.
You can use internal or external UDDI registrys.
They can be used only during development for cataloging and retrieving
service definitions, or can be used during production runtime for
dynamic discovery.
If you dont use a UDDI, how do you
Control versions of the WSDL floating around?
Handle version control?
Where do you store all the current WSDL related to available services?
I have not really seen a big business use UDDI in production,
yet
12
Sample WSDL for Google
13
Sample WSDL for Google
Bindings and transport
Inputs and Outputs
14
Time out for performance
Interpretation and parsing
Java is an interpreted language.
SOAP is a parsed message.
XML is a parsed protocol.
Using UDDI dynamic lookup is not a cheap processes.
None of this is free, it costs in cycles to do it all.
It may be easier for the developer and improve their
development time, but it directly affects the performance
characteristics of an application.
Its a tradeoff. How much of a performance hit can you afford to
improve developer productivity and improve reuse.
15
What are some Businesss doing, cont
XML or SOAP over HTTP
As an example Banks have rewritten teller based applications to
issue service requests from .NET clients to WebSphere front
ends to existing IMS or CICS transactions.
No UDDI involved
WSDL is sent to developers
MQ is still heavily used
Normal MQ message format (no XML or SOAP), into CICS
MDBs used in WebSphere
Used as a migration to Web Services (Phase 1)
16
So what is an SOA
SOA (Service Oriented Architecture) A system for linking
resources on demand. In an SOA, resources are made available to other
participants in the network as independent services that are accessed in a
standardized way. This provides for more flexible loose coupling of
resources than in traditional systems architectures.
This is not new
Businesss have been separating components in their application
architectures for years.
Everything from DB2 stored procedures to load libraries, DLLs etc.
The concept of reusable Services maybe new, but it is an evolution of
abstraction, making a transaction, business logic, or function available
to multiple clients, and simplifying the use of the service.
17
SOA is the next stage of integration Business
Process
Management
Services
(SOA)
EAI
FLEXIBILITY
Message
Processing
Sub-routines Remote
& Object
Remote Invocation
Procedure
Calls
Monolithic
Architectures
Pre 50s 70s - 80s - Mid 90s to
- 60s mid 80s Mid 90s Early 00s
Late 90s Today Future
18
What is an Enterprise Service Bus?
An Enterprise Service Bus (ESB) is a flexible connectivity
infrastructure for integrating applications and services.
An ESB powers your SOA by reducing the number, size, and complexity of interfaces.
An ESB performs the following
between requestor and service
ROUTING messages
between services
CONVERTING transport
protocols between requestor
and service
TRANSFORMING message
formats between requestor
and service
HANDLING business events
Shape = Protocol
from disparate sources Color = Data type
19
SOA in action
Case Study: Procure to Pay Process
Division
20
SOA in action
Case Study: Procure to Pay Process
Customer
Division
Change: Customer Order Entry
21
SOA in action
Case Study: Procure to Pay Process
Customer
Division
Shared
Service
Supplier
Outsourced
Change: Collections Outsourced
22
Business Process Choreography
Process Container
Process
GUI Invoke
Invoke Invoke Invoke
Invoke
Activity Implementations
23
So how does this relate to WebSphere?
The SOA Foundation builds on and extends the WebSphere Core
WebSphere is the heart of IBMs SOA Core Foundation
Process:
WebSphere Integration Developer
WebSphere Process Server
Rational Application Developer
WebSphere ESB & Message Broker
Workplace Designer
WebSphere Partner Gateway & Adapters
People:
WebSphere Portal
WebSphere Everyplace Deployment
Workplace Collaboration Services
Information:
WebSphere Information Integrator
Application Infrastructure:
WebSphere Application Server & XD
WebSphere Business Modeler
Rational Software Architect
WebSphere Business Monitor
Tivoli Composite Application Manager
Tivoli Identity & Access Manager
24
Inhibitors to Web Services and SOA
People Roles within the corporation
From Architects thru support
Process
At times the business does not really understand their complete
business process?
Funding
If the first set of reusable services cost 1.5 times what it would cost for
the same thing, non-service based, what business unit will fund it?
because thats where the application funding is
Governance
Internal standards
If all the vendors, delivered all the technology today, to support what SOA
promises, would you be ready?
25
Questions?
26
Quick Glossary
HTTP (HyperText Transfer Protocol) The Web's communication standard.
Stabilized at HTTP/1.1, it defines the universal mechanism for exchanging
application-level messages between Web devices. All web services run over HTTP.
URI (Uniform Resource Identifier) The address of an Internet resource. A URI is the unique
name used to access the resource. It is not necessarily a specific file location (it may be a
call to an application or a database, for example), which is why it is preferred over the
similar acronym URL (Uniform Resource Locator).
XML (eXtensible Markup Language) The data tagging language of web services. XML is
not so much a language as a standardized set of rules for adding structure to any form of
data using a system of markup tags. Anyone can create their own markup vocabulary
(called an XML Schema), and XML ensures that the structure will be intelligible to anyone
else who consults the XML Schema document. More importantly, referring to an XML
Schema enables XML-aware software to automatically manipulate the data without
needing advance knowledge of the structure.
loose coupling The friction-free linking enabled by web services (or any SOA). Loosely
coupled services, even if they use incompatible system technologies, can be joined
together on demand to create composite services, or disassembled just as easily into their
functional components. Participants must establish a shared semantic framework to
ensure messages retain a consistent meaning across participating services.
Copied from [Link]
27
Quick Glossary (Cont.
SOAP (Simple Object Access Protocol) The standard for web services messages. Based
on XML, SOAP defines an envelope format and various rules for describing its contents.
Seen (with WSDL and UDDI) as one of the three foundation standards of web services, it
is the preferred protocol for exchanging web services, but by no means the only one;
proponents of REST say that it adds unnecessary complexity.
UDDI (Universal Description, Discovery and Integration protocol) A directory model for web
services. UDDI is a specification for maintaining standardized directories of information
about web services, recording their capabilities, location and requirements in a universally
recognized format. Seen (with SOAP and WSDL) as one of the three foundation standards
of web services, UDDI is currently the least used of the three.
WSDL (Web Services Description Language) The standard format for describing a web
service. Expressed in XML, a WSDL definition describes how to access a web service and
what operations it will perform. Usually pronounced "whizz-dul" (to rhyme with 'whistle'),
WSDL is seen (with SOAP and UDDI) as one of the three foundation standards of web
services.
Copied from [Link] 28
RETURN TO INDEX