The Java Web Services Developer Pack (Java WSDP) has evolved into an integrated toolkit for developing, building, testing, and deploying web Services, as well as web and XML-based applications. The current version of Java WSDP, 1.2, contains the latest versions of Java and XML technologies for building reliable and secure web services. It has added new features, fixed bugs from earlier releases, and made developing and deploying web services easier. More importantly, Java WSDP 1.2 is implementing cutting-edge industrial technologies such as the XML Web Services Security (XML Signature) and Web Services Interoperability (WS-I) Basic Profile.
This article provides a quick overview, highlights the new features, and provides a description of the technologies that are now part of Java WSDP 1.2.
The Java Web Services Developer Pack (Java WSDP) is an integrated toolkit that allows Java developers to develop, test, and deploy web Services quickly and easily. The Java WSDP 1.2 is an all-in-one download containing key technologies, tools, and APIs that simplify web services development using the Java 2 Platform.
The Java WSDP provides implementations of web services standards including the web services Description Markup Language (WSDL), the Simple Object Access Protocol (SOAP), and the Universal Description, Discovery and Integration (UDDI). In addition, it provides implementations for web application development such as JavaServer Pages (JSP Pages), the JSP Standard Tag Library (JSTL), and JavaServer Faces (JSF). It is worth noting that despite the fact that the Java WSDP emphasizes web services, the Pack is an integrated toolkit that allows Java developers to develop and deploy not only web services, but also web and XML-based applications. All these applications use technologies that are common to all of them, and so are bundled together.
The Java WSDP 1.2 incorporates the following technologies and tools:
Note: JAXR-RPC and SAAJ have new version numbers (1.1 and 1.2, respectively) because they have been revised to include support for the Web Services Interoperability (WS-I) and the Web Services Interoperability Basic Profile (WSI-BP). Please see below for more information on the WS-I and WS-I BP.
Note: The Java API for Messaging (JAXM 1.1.2) is not bundled as part of the Java WSDP 1.2. It is available as a separate package and can be downloaded from here.
The Web Services Interoperability Organization (WS-I) is an open, industry organization committed to promoting interoperability among web services based on common, industry-accepted definitions and related XML standards support. Membership in WS-I is open to all organizations interested in promoting interoperability among web services and contributing to the development of WS-I.org. Members, however, are required to pay annual membership fees and sign membership agreements.
WS-I is producing a set of deliverables to help developers build and deploy interoperable web services. In addition, it aims to provide implementation guidance and education to help customers with web services adoption. More importantly, it promotes consistent and reliable interoperability among web services across platforms, applications, and programming languages. This is because without industry-accepted guidelines, interoperability between web services will be reduced and this would limit the growth and promise of web services.
One way to achieve this is through testing implementations and guidelines that can help developers in checking whether their web services satisfy the interoperability requirements. In addition, web services profiles can help by grouping key web services standards to simplify implementation and promote interoperability. The aim is really to ensure that web services implementations conform to a commonly accepted set of basic standards.
The first thing that may come to your mind now might be: why isn't an effort like this coming from OASIS or W3C? Well, these organizations are engaged in developing specifications around web services. A third party is needed for industry alignment and agreements on groupings of specifications to provide interoperability and direction. This third party is the WS-I organization, which brings the work of multiple standards together for the purpose of providing conformance around web services.
One of the deliverables of WS-I is profiles. A profile contains a list of named and versioned web services specifications at specific levels together with a set of implementation and interoperability guidelines recommending how the specifications should be used to develop interoperable web services.
The core set of specifications that are used to describe, publish, enable discovery, and invoke web services are the Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and Universal Description Discovery and Integration (UDDI). All of these specifications are based on XML and XML schema. If you have been keeping up with these core specifications, you would know that it is difficult to determine which products support which levels (or versions) of the specifications. This task becomes harder when you want to ensure that your web services are interoperable. WS-I addresses this need through Profiles.
The first profile is the WS-I Basic Profile 1.0, which includes XML Schema 1.0, SOAP 1.1, WSDL 1.1, and UDDI 2.0. This profile attempts to improve interoperability within its scope which is bounded by the specification referenced by it.
It is worth noting that WS-I makes available some testing tools that are designed to help developers determine whether their web services conform to the Basic Profile. The current version ( Beta Release 3 Version 0.96) tests for version 1.0 of the Basic Profile.
JAX-RPC 1.1 provides support for the WS-I Basic Profile 1.0 (approved DRAFT version) by including the following features:
wscompilehas the option "
f:wsi", which can be used to verify that a WSDL is WS-I compliant and/or generates classes needed by JAX-RPC services and clients that are WS-I compliant.
For code examples of WS-I compliant clients and services, see
<PathToYourInstallation>/jwstutorial12/examples/jaxrpc/advanced of your Java WSDL tutorial installation.
Security can be provided at two levels:
Both of these security solutions are needed. For example, the XML Digital Signature enables you to verify the identity of the message but anyone who picks up the XML document can see its contents. The transport-level security (using SSL for example) can be used to encrypt the actual contents of the document.
Java WSDP 1.2 provides a framework with a JAX-RPC application developer is able to sign and verify SOAP messages. This framework implements portions of the OASIS Web Services Security Working DRAFT.
Note that the message-level security solution provided in Java WSDP 1.2 is based on non-standard Java APIs, which may change with new revisions. The Java standard for XML Digital Signatures is now part of the Java Community Process (JCP) under JSR-105, XML Digital Signature APIs.
For code sample, examples are provided to illustrate how a JAX-RPC developer can use the XML and Web Services Security framework. The examples can be found at
<PathToyourJWSDP1.2Installation>/xws-security/samples/ directory. Note that in Java WSDP 1.2, the default trust-store which is bundled with the pack is the only certificate that will be accepted for signing and verifying requests and responses. The trust-store contains the certificates for both, the client and server.
Note: If you have tried using the JAX-RPC JARs in Applets or WebStart applications, they won't work. They will need to be signed to be usable. You can sign the JARs yourself for now.
At JavaOne 2003, Sun announced Fast Web Services as a way to investigate methods for improving performance using encoding mechanisms other than XML. Also, Sun Microsystems is participating in the StAX expert group ( JSR 173). This parser will be used when it is ready and this will lead to some gain in performance.
The source for Java technology collaboration website, or java.net, has a number of interesting projects going on, some of which are related to web services and XML (WS and XML), and you should get involved. For example, the WS and XML Community (at java.net) has created a new JAXB, SAAJ, and JAX-RPC projects that aim to provide Implementations for these technologies. Sun Microsystems will contribute the source code for the Reference Implementations. You are encouraged to participate in such projects.
It is worth noting that technologies, such JAX-RPC 1.1, SAAJ 1.2, and others are being folded into J2EE 1.4 and Sun ONE Application Server 8 (S1AS 8).Conclusion
The Java Web Services Developer Pack 1.1 (Java WSDP 1.1) is an integrated toolkit that enables Java developers to easily develop, test, and deploy Web Services as well as Web and XML-based applications. If you wish to learn more about Java Web Services and get a flavor for the effort involved in developing them, I'd recommend you turn to the Java Web Services Tutorial. And, if you like to meet and listen to the experts, JavaOne 2003 has a complete track on Web Services featuring exciting technical sessions for novice, intermediate and advanced developers as well as managers.
Special thanks to Anita Jindal and Rajiv Mordani of Sun Microsystems, whose feedback helped me improve this article.
Have a question about programming? Use Java Online Support.