The WebSphere® web services zone contains articles, tutorials, code samples, roadmaps, and many other resources to help you develop, test, deploy, and use web services. This page gives you a high-level overview of how WebSphere supports web services.
What are web services in WebSphere?
Several WebSphere products provide web services functionality. Primary among them is WebSphere Application Server (hereafter called Application Server) and the web services gateway component of WebSphere Application Server Network Deployment. Some of the others are the CICS® Transaction Server V3.1 for z/OS®, which can provide and consume WS-I compliant web services, WebSphere Message Broker, which provides support for SOAP messages, and WebSphere Business Integration Server, which provides web services connectivity through one of its many adapters. This article focuses specifically on the web services functionality provided by WebSphere Application Server.
Applications deployed to an application server can leverage its built in web services support to expose services to remote consumers in an industry-standard way. These applications can also discover and invoke services provided by other applications implemented in different technologies.
What are the requirements for using web services with WebSphere?
The basic requirements for running web services on WebSphere are the same as for any other application. However, web services technologies are advancing rapidly and have changed considerably over the past four years during which WebSphere has been providing them. Also, because web services are a distributed technology, they impose requirements on both the consumer and provider. The Web Services Interoperability (WS-I) organization has defined some combinations of protocol versions into profiles to assist web services consumers and providers in determining compatibility. Different versions of WebSphere have different levels of support for web services when acting as a consumer or provider. Broadly, the support can be categorized into three groups: Pre-WebSphere 5.0.2, WebSphere 5.0.2 through WebSphere 5.1 and WebSphere 6.
- Overview: This version of Web services was introduced in Application Server V4 and provided in Application Server V5. Although WebSphere shipped with what is now the Apache SOAP implementation, if you're implementing web services with these versions of WebSphere, you should consider using the Apache Axis implementation.
- Web services stack: Apache SOAP
- Interoperability: Because this version of the web services stack in WebSphere did not conform to any WS-I profiles, use of this web services stack should be limited to communication with other pre-WebSphere V5.0.2 implementations, or only after thorough testing with a different implementation. Limited interoperability with other vendor stacks is possible.
- Tooling: To build web services consumers and providers for this version of WebSphere you'll want to use Rational Application Developer V5 or later.
WebSphere 5.0.2 through WebSphere 5.1
- Overview: These WebSphere versions benefited from the second generation of IBM web services stacks.
- Web services stack: IBM JAX-RPC 1.0 stack
- Interoperability: Because this version of the web services stack in WebSphere conformed to WS-I basic profile V1, basic interoperability with web services implementations from other vendors is possible. Limited web services security interoperability is possible.
- Tooling: To build web services consumers and providers for this version of WebSphere use Rational Application Developer V5.12 or later.
- Overview: The web services support in WebSphere V6 is the third generation of the IBM web services stack and supports many of the latest standards governing the area.
- Web services stack: IBM JAX-RPC 1.1 stack
- Interoperability: Because this version of the web services stack in WebSphere conformed to WS-I basic profile version 1.1, WS-Security with UsernameToken and X509 token support, WS-AtomicTransaction and WS-Addressing, reasonable interoperability with web services implementations from other vendors is possible. Web services security interoperability is possible.
- Tooling: To build Web services consumers and providers for this version of WebSphere, use Rational® Application Developer Version 6 or later.
How can I build web services consumer and provider applications to deploy into WebSphere?
You can build web services client applications to deploy to WebSphere using the command line tools that ship with WebSphere itself (WSDL2Java) or other tooling of your choice, but the most productive way to build application code to deploy to WebSphere is to use the appropriate offering from the Rational Software Development Platform. The Rational software development products are based on Eclipse 3.0 and provide a comprehensive application development environment for creating and maintaining J2EE-compliant enterprise application systems. This development environment includes many features not available in Eclipse.
Following are some of the functions provided:
Create service provider
Use Rational Application Developer tools to create, deploy, test, and publish web services bottom-up from existing Javabeans, enterprise beans, DADX files, and URLs, and top-down from WSDL. Wizards support the automatic generation of additional artifacts, such as a JavaBean proxy to easily access the web service, and a test client.
The Rational tools also include a WSDL editor to facilitate the development of web services using the best practice of defining the types and interface in WSDL first and generating the Java artifacts from the WSDL.
Create service consumer
Use the web services client wizard or command line tools to create a client for any web service. Only the WSDL file is needed to create a Web service client.
Secure the client
The web service wizards and deployment descriptor editors help you configure Web services security (WS-Security) for the WebSphere Application Server environment.
Run web services
Run web services provider and consumer components in various WebSphere Application Server versions, Tomcat, and other test environments. The deployment and administration for the WebSphere test environment is integrated into Application Developer.
Test web services
Test web services running locally or remotely. For local tests, you can use the WebSphere test environment. The WebSphere test environment contains a complete WebSphere Application Server runtime environment. Rational Application Developer provides different functions to test web services.
Discover web services
Browse Universal Description, Discovery, and Integration (UDDI) registries or Web Services Inspection Language (WSIL) sites to find web services for integration. The Web Services Explorer provides the necessary functions to discover a web service.
Publish web services
Publish web services to a UDDI V2 or V3 Business Registry, using the Web Services Explorer.
Generate JavaBean and EJB skeletons from WSDL files. This can be helpful during the development and test phase of a project. For example, when the service is defined (WSDL), but not running at the service provider site, and the client needs to be tested, you can create a test service provider to emulate the provider.
Validate web services
Use the WSDL and DADX validators to check for structural and semantic problems in these types of files. This feature is useful in checking that a service WSDL file from a service provider is valid.
Different WS-I profile compliance tests and levels can be defined for the web services development environment. Rational Application Developer can check compliance for the Simple SOAP Basic 1.0 and the Attachment Profile 1.0.
When web services are created or changed, the WS-I compliance tester will analyze the service, and depending on the configuration, ignore, suggest, or require profile compliance. You can define this in the web service preferences.
Work with WSDL files
Rational Application Developer provides wizards and functions to help you work with WSDL files:
- Use the graphical editor to create a WSDL file from a template and to add WSDL elements (service, port, port types, messages).
- Create WSDL documentation; this creates HTML documentation for the WSDL file, similar to a JavaDoc document.
- Validate the WSDL file for WS-I compliance.
Navigate Web services
Rational Application Developer now organizes web services together in a web services group in the Project Explorer, which makes is easier to find and work with web services.
The table below shows the web services-related technologies and specifications supported in Rational Application Developer V6.
|Technology or specification||Version or level supported|
|HTTP/HTTPS||1.0 and 1.1|
|UDDI||2.0 and 3.0|
|WS-Security||OASIS Standard 1.0|
|WS-I Basic Profile||1.1.2|
|WS-I Simple SOAP Binding Profile||1.0.3|
|WS-I Attachments Profile||1.0|
|JAX-RPC||1.0 for J2EE 1.3|
1.1 for J2EE 1.4
|Web Services for J2EE||WSEE 1.0 (JSR 109)
for J2EE 1.3|
WSEE 1.1 (JSR 921) for J2EE 1.4
Rational Application Developer supports three web service provider runtime environments:
- WebSphere runtime environment
This is the recommended runtime environment for production use. Only the WebSphere runtime environment is full supported by IBM. It includes specialized serializers and deserializers for complex objects, JSR 109 support for enterprise web services (EJBs), and SOAP over JMS support.
- IBM SOAP runtime environment
This was the only supported runtime environment in previous releases of WebSphere Studio Application Developer (V5 and earlier). It should be used only for backward compatibility. It supports Apache SOAP 2.3. Currently, DB2 web services from SQL statements (DADX files) still require the SOAP runtime.
- Apache Axis 1.0 runtime
This is the third version of the Apache SOAP implementation. Apache Axis evolved from the Apache SOAP implementation (which began as IBM SOAP4J). The Apache Axis runtime is not recommended for WebSphere production environments, but can be used for Apache Tomcat servers.
Where can I get more information about WebSphere web services?
The developerWorks WebSphere web services zone provides developers with hundreds of resources to help them get started with WebSphere web services.
For information about the WebSphere family of products supporting web services, refer to http://www.ibm.com/software/websphere/.
For IBM Rational product information, refer to http://www.ibm.com/software/rational/.
For information about the Web Services Interoperability organization, refer to the Web Services Interoperability page.