Connecting with Java Web services
BEA WebLogic, IBM WebSphere, JBoss, and Sybase EAServer plug in to the next wave of Web appsFollow @infoworld
See correction below
Web services promise a brave new world of easy software integration using XML and the Web. Because they’re based on XML, Web services have the potential to serve as platform-independent glue between applications coded in different programming languages and running on disparate operating systems. Many describe this ability as the Holy Grail of distributed computing. Not even Java in its purest form can match the ease of integration and distributed data interchange that Web services offer.
IT organizations have no shortage of ways to implement Web services. Open source offers dozens of tools to do it, including Apache, Perl, Python, and PHP. Microsoft provides the .Net framework. And Java shops, of course, can implement Web services on the same platform they’re using to run their current Web applications, the J2EE application server.
For Java developers the evolution to Web services simply seems the next logical step. Not surprisingly, then, commercial J2EE platform vendors have also jumped on the bandwagon, weaving special Web services capabilities into their development tools and application servers. How important are these features in smoothing the creation and deployment of Web services? How real are their advantages over open source? Which J2EE application server is the best platform for Web services?
To find out, we rounded up the two leading commercial J2EE servers, BEA Systems’ WebLogic and IBM’s WebSphere, plus a solid also-ran, Sybase’s EAServer, and the most popular open source J2EE server, JBoss, and we put them to the test. Deploying Web services on each of these platforms, we evaluated their related management capabilities as well as their support for the core Web services standards, SOAP, XML-RPC (Remote Procedure Call), WSDL, and UDDI. We also looked for flexible configuration and a set of features, such as support for JMX (Java Management eXtensions), JNDI (Java Naming and Directory Interface), JMS (Java Messaging Service), and JTA (Java Transaction API), that we would expect in any enterprise-class Java platform.
In our test scenario, we implemented a multitier supply chain composed of four Web services. One service allowed a retail customer to buy a product from a retailer. A second service allowed the retailer, in turn, to purchase wholesale goods from a supplier. A third allowed the wholesaler to purchase raw materials from a parts supplier. Finally, a fourth service allowed all of these parties to track their shipments. We coded all of the business logic in Java, and created adapters to implement each component as a Web service.
The chief benefit of Web services is flexibility — allowing application logic to be changed without altering the service interface and disrupting business partners. Deploying, modifying, redeploying, and ensuring that your Web services are always available are the key ingredients of a successful Web services recipe. Therefore, our test focused on how smoothly our four solutions handled these tasks. For more details, see the “How We Tested” sidebar that accompanies this article at infoworld.com/testcenter.
The Open Source Alternative
To compete with the commercial contenders, our open source solution would need several elements. We chose JBoss 3.2.1 as our application server because it’s generally considered the most popular and most feature-rich open source J2EE application server available. Apache Tomcat 5.0 served as our servlet engine, and Apache Axis as the SOAP implementation.