Transcript Document

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  It’s 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).

– ● Publish and discover.

SOAP (Simple Object Access Protocol).

– ● 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 3. Discover Web Service 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:   Sun’s JAX-RPC (Java API for XML-RPC) in WSDP.

Apache’s SOAP-RPC (Apache SOAP 2.3 ships with WAS5)  APIs for Message-based Web Services:   Sun’s JAXM (Java API for XML Messaging) in WSDP.

Apache’s SOAP-Message.

 APIs for publishing and discovering Web Services:   Sun’s JAXR(Java API for XML Registry) in WSDP.

IBM’s UDDI4J.

JAXR – Java API for XML Registry

 Enables Java programs to access XML registries.

 JAXR provider: – Accesses XML registry.

– A façade to a registry provider.

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

– Perform queries and update UDDI registries.

 Sun’s 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 (WS Inspection) – Workflows – Web Services Gateway – Web Services Security

Web Services Invocation Framework

 Web Services Invocation Framework (WSIF) – A framework for the simple Services over a Java API.

invocation of Web – 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) – ● XML-based Flow Definition Markup Language (FDML) – ● 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 Internet-based), 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: "" Sales

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 Toronto Sales

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 businessService bindingTemplat e publisherAsserti on tModel name, contact, identification description, category (1..n) name description description Name description reference Name Description URL pointer to specification

UDDI4J

 IBM’s 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.

2.

3.

4.

5.

Create a Web Project Create/Import a resource from which to create a web service (Java Bean, EJB, DADX document, …) Create a Web Service using Web Service Wizard Publish a Business Entity, if required Publish the Web Service

Creating a Web Service from a Java Bean

 Typical steps: 1.

2.

Create/Import Java Bean into Web Project Generate binding WSDL document using Web Service Wizard 3.

4.

5.

Deploy Web Service to a Web Server Generate client proxy Generate sample client application  Then publish, discover and use web service

… from an EJB

 Typical steps: 1.

2.

Create a Web Project Create/Import EJBs into an EJB Project belonging to the same Enterprise Application Project as the Web Project  3.

Update project dependencies … then it’s “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 façade 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 EJB’s – Regular WSAD cannot do top-down for EJB’s I.e. cannot create EJB’s from WSDL.

… from XML schema

 Generate Java Bean from XML schema 1.

2.

Create any project that works with Java source code (Java, EJB, Web, …) Create/Import XML schema in the project 3.

4.

5.

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.