What is JibxSoap?

JibxSoap is a SOAP web services framework built around JiBX data binding. It provides the same advantages of flexibility and performance to developers implementing web services as the base JiBX project does for ordinary XML data binding. JibxSoap is designed around the latest web services interoperability recommendations, which lets it provide these advantages while still allowing for very easy configuration and deployment.

Many other SOAP web services frameworks are available for Java, including the popular Apache Axis implementation of the JAX-RPC standard for web services in Java. JibxSoap differs from these other frameworks in that it's designed from the start to support document/literal (doc/lit) web services rather than the older rpc/encoded (rpc/enc) style. This is an important distinction - the rpc/enc approach allows developers to easily expose simple method calls as web services, but creates problems for interoperability, especially with more complex data structures. Because of these problems, rpc/enc has been effectively deprecated by recommendations such as the Web Services Interoperability Organization's Basic Profile (WS-I BP), and replaced by the doc/lit approach.

The doc/lit approach to web services focuses on the actual XML data being exchanged. Rather than model method calls with parameters encoded in XML, the doc/lit approach uses W3C XML Schema definitions to fix the XML data formats. It's up to the participants in a web services interaction to process the XML payload of doc/lit SOAP messages in whatever manner is appropriate to their needs.

This focus on the XML formats is what allows JibxSoap to apply the power of JiBX data binding to doc/lit web services. JiBX is designed to support fast and flexible conversions between XML and Java objects. With doc/lit web services the contents of SOAP messages are just XML document fragments, which can be converted to and from Java objects using JiBX just the same as any other XML. All that's needed to support this is a framework that handles the SOAP wrappers and actual transport, which is what JibxSoap provides.

In benchmark tests to date JibxSoap performs at least 3 to 5 times faster than either the JAX-RPC reference implementation or the Apache Axis implementation for doc/lit web services (and up to 20 times faster than Apache Axis rpc/enc web services). You can view the details of some performance tests as related to the author's presentation on Cleaning up SOAP.

The current Alpha 0.2a release of JibxSoap is a long-delayed update which fixes several minor problems and provides compatibility with the JiBX 1.1.X framework. Despite the Alpha release status, JibxSoap is in use by a number of organizations for deployed Web services. JiBX is also usable for web services as part of the Apache Axis2 web services framework. Some samples and documentation for working with JiBX are included in the Axis2 distributions. You can also see the JiBX Axis2 wiki page for the latest code and examples. As JibxSoap matures, it is expected to provide a higher-performance alternative to Axis2, though probably without the complete stack of WS-* modules available as add-ons to Axis2.