Вы находитесь на странице: 1из 34

Web Services Development in WebSphere

v5
by
Tapas Banerjee
CEO, Web Age Solutions Inc.

What are Web Services?


Applications that can be published, located

and invoked programmatically over the Web.


XML-based (XML-in, XML-out).
Self-contained functions that can be used

individually to provide services.


Good applications:

Business Information.

Business Integration

Business Process Externalization.

Service Oriented Architecture


A service-oriented architecture is created by

services communicating with each other

The SOA architecture allows

Different systems and programming languages to


talk to each other

Describes the service interface clearly

Allows search for needed services

Its made up of - service provider, service

broker and service requestor

Web Services implement this architecture

Web Services Supporting


Architecture Standards
Web Services rely on:

XML (eXtensible Markup Language).

UDDI (Universal Description Discovery and


Integration).

SOAP (Simple Object Access Protocol).

Publish and discover.


Query UDDI, binding and use of services.

WSDL (Web Services Description Language).

Describe the interfaces of Web Services.

The Functions and Information


Flow
Service Broker

UDDI Registry
2. Assign a unique ID and
populate the registry

Service Provider

Service Consumer
1. Publish

Web Service

3. Discover

4. Request/Response via SOAP

Client

Web Services
Programming Model

RPC-based:

Service-specific.
Synchronous model.
Similar to RMI and DCOM.

Message-based:

Document-driven.
Asynchronous model.

Web Services
Programming APIs

APIs for RPC-based Web Services:

APIs for Message-based Web Services:

Suns JAX-RPC (Java API for XML-RPC) in WSDP.


Apaches SOAP-RPC (Apache SOAP 2.3 ships with
WAS5)

Suns JAXM (Java API for XML Messaging) in WSDP.


Apaches SOAP-Message.

APIs for publishing and discovering Web


Services:

Suns JAXR(Java API for XML Registry) in WSDP.


IBMs UDDI4J.

JAXR
Java API for XML Registry
Enables Java programs to access XML

registries.
JAXR provider:

Accesses XML registry.

A faade to a registry provider.

JAXR client:

A client program that accesses an XML registry using JAXR API.

Perform queries and update UDDI registries.

Suns registry browser

Included in WSDP download.

Is a JAXR client with GUI.

Allows to publish and search XML registries.

Other Web Services Concepts


Several other important Web Services

concepts:

Web Services Invocation Framework

Web Services Inspection Language (WSInspection)

Workflows

Web Services Gateway

Web Services Security

Web Services Invocation


Framework
Web Services Invocation Framework

(WSIF)

A framework for the simple invocation of


Web Services over a Java API.

Allows for maximum flexibility and late


(even runtime) binding for clients

Web Services Inspection


Language (WS Inspection)
A complementary technology to UDDI
A service discovery mechanism
XML-based model for building a list of

references to existing Web Service


descriptors

Workflow and Web Services


A Workflow description allows a process

to be described as a sequence of
discrete events (e.g. service calls)
A workflow engine can then parse the

workflow description and execute the


sequence automatically
Defines a business process

Workflow Languages
There are three web services workflow

languages:

Web Services Flow Language (WSFL)

Flow Definition Markup Language (FDML)

XML-based
Similar to WSFL, but with extensions

Business Process Execution Language For


Web Services (BPEL4WS)

A meeting of IBM's WSFL and Microsoft's XLANG

Web Services Gateway


(WSGW)
The WSGW acts as an additional layer

between a web service client, and a


web service provider
Server side
Allows for better control over web

service communication

The Gateway Administrative


Console

Security Needs
Since web services are inherently
network based (and typically Internetbased), security is crucial
Additionally, web service
communication can be compromised at
many levels

SOAP HTTP Request Example


POST /SampleWebServiceWeb/servlet/rpcrouter HTTP/1.0
Host: localhost:9080
Content-Type: text/xml; charset=utf-8
Content-Length: 526
SOAPAction: ""
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:findDepartmentByName
xmlns:ns1="http://tempuri.org/webservice.ejb.EmployeeDirectory" SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<departmentName xsi:type="xsd:string">Sales</departmentName>
</ns1:findDepartmentByName>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP HTTP Response Example


HTTP/1.1 200 OK
Server: WebSphere Application Server/5.0
Set-Cookie: JSESSIONID=000050K5KBO5DKK1CC4A2J2VKIY:-1;Path=/
Cache-Control: no-cache="set-cookie,set-cookie2"
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Content-Type: text/xml; charset=utf-8
Content-Length: 659
Content-Language: en-US
Connection: close
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:findDepartmentByNameResponse xmlns:ns1="http://tempuri.org/webservice.ejb.EmployeeDirectory"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xmlns:ns2="http://bean.webservice/" xsi:type="ns2:Department">
<location xsi:type="xsd:string">Toronto</location>
<name xsi:type="xsd:string">Sales</name>
</return>
</ns1:findDepartmentByNameResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Different SOAP
Implementations
SOAP4J - A Java reference implementation of

the SOAP 1.1 specification. It now became


the basis of the Apache SOAP 3.x project,
also called Axis.
Apache SOAP 2.3

Ships with WebSphere V5

Important elements are

Rpcrouter and messagerouter servlets

The deployment descriptor

Type mapping registry

What is WSDL?
WSDL is an XML-based language for defining

available Web Services and describing how


to access the services, including URL
endpoint, message format, encoding and
required protocol.
Similar to IDL (Interface Definition Language)

for CORBA, describing the services and how


to use the services
WSDL 1.1 is the current standard.
Tools available to generate WSDL files.

UDDI Data Structure


Five data

structure types:

businessEntity
businessServic
e
bindingTemplat
e
publisherAssert
ion
tModel

<businessEntity>
<businessEntity>
name, contact, identification
name,
contact,category
identification
description,
description, category
<businessService>
(1..n)
<businessService>
name
(1..n)
description
name
description

<publisherAssertion>
Name
description

reference

<bindingTemplate>
<bindingTemplate>

<tModel>
Name
Description
URL pointer
to
specification

UDDI4J
IBMs UDDI4J is a Java-based UDDI

client API.
It provides package/classes for

accessing UDDI registry (publishing


and discovering).
UDDIProxy object is the client side

proxy of the registry.


Program the UDDIProxy for

publishing/discovering services.

Developing Web Services


Generate deployable web service from

Java Bean

DADX (XML/DB2 mapping documents)

Enterprise Java Bean

URL

Generate skeleton Java Bean and sample

application from WSDL document

Web Services Client wizard also creates

Web Service Proxy as Java Bean

Sample JSP-based client application

Overall Workflow
Typical development path
1.

Create a Web Project

2.

Create/Import a resource from which to


create a web service (Java Bean, EJB, DADX
document, )

3.

Create a Web Service using Web Service


Wizard

4.

Publish a Business Entity, if required

5.

Publish the Web Service

Creating a Web Service from a


Java Bean
Typical steps:
1.

Create/Import Java Bean into Web Project

2.

Generate binding WSDL document using Web


Service Wizard

3.

Deploy Web Service to a Web Server

4.

Generate client proxy

5.

Generate sample client application

Then publish, discover and use web

service

from an EJB
Typical steps:
1.

Create a Web Project

2.

Create/Import EJBs into an EJB Project belonging to


the same Enterprise Application Project as the Web
Project

3.

Update project dependencies

then its business as usual


WSAD only generates a Web Service from a

Stateless Session EJB

but that session bean can always use entity beans!

Web Service Development


Phases
Build

May start from Java code, then we generate


WSDL from that

Or start from WSDL and build/morph Java code


to match

Deployment

We can publish using

UDDI, WSIL or E-mailing customers

Run
Management

Different web service creation


paths
From an existing application bottom-up

Most common. We like to expose existing back-end


systems for enterprise integration (EAI) purposes.

From WSDL, generate a completely new

application top-down

This may be due to a new spec imposed by a governing


body

The wizards can create skeleton code from WSDL, we


then fill up the details

Combine independent web services to provide

new functionality. This route is similar to the


faade design pattern.

Different WebSphere products


how do they fare?
There are three products in the WebSphere family

that can be used

WSAD

WSAD IE

WebSphere SDK for web services (WSDK) family

All three can do bottom-up and top-down from

JavaBeans

WSAD IE and WSDK can do bottom-up and top-

down from EJBs

Regular WSAD cannot do top-down for EJBs I.e. cannot


create EJBs from WSDL.

from XML schema


Generate Java Bean from XML schema
1.
2.
3.
4.
5.

Create any project that works with Java


source code (Java, EJB, Web, )
Create/Import XML schema in the project
Start Web Services Wizard
Select Java beans for XML Schema.
Follow instructions to generate Java Beans

Now generate the Web Service from

the new Java Bean

WSDK 5.0
WebSphere SDK for Web Services

Entry level developer kit, free for development

But not for production or deployment

Runs on Windows 2000/XP and Linux

Based on Axis (Apache SOAP engine)

Has embedded application server (mini


WebSphere 5.0) and a private UDDI registry

Supports SOAP 1.1, WSDL 1.1, UDDI 2.0,


JAX_RPC 1.0, WSDL4J, UDDI4J and WS-Security

ETTK (previously called WSTK)


IBM Emerging Technologies Toolkit (previously called

Web Services toolkit)

An IBM alphaworks technology, showcases

technologies to come

Exposes the AXIS programming model


WSTK version 3.2.2 includes

WS-C/WS-Tx for transaction flows between components

Web Services matchmaking engine Businesses submit


advertisements. When a customers search matches an
advertisement, a response is triggered

WSXL For better handshaking of web services with portal


applications

Web Services Deployment in


WebSphere
If you are using WSAD 5, it is same as

deploying an EAR file


If you are using WSAD 4

Export the Web Service as a WAR

Use AAT to create an EAR

Use soapearenabler.bat to add SOAP


services

Summary
We discussed

What are Web Services.

Web Services programming model.

How does a SOAP message look.

Developing Web Services.

Web Service Development Phases.

Вам также может понравиться