Standards for Technology in Automotive Retail

 Home -  News Feed 

2.3. Java

Java is an extremely prolific language and there are a number of web services frameworks to choose from.   Each framework fits a particular need for implementing web services. The wide variety of frameworks is both an advantage and a disadvantage for those trying to choose what framework to use. The advantage is that the developer has a large selection of frameworks and features from which to choose. The disadvantage is that it can be difficult to determine which framework fits a project’s particular needs. This section will briefly describe the most popular frameworks, and where one can find more detailed information regarding each.

2.3.1. Java Web Services

The Java Web Services Developer's Pack (JWSDP) is a framework stack maintained at the Sun Developer's Network (Sun).  Its purpose is to provide the necessary tools and frameworks for implementing secure and reliable web services using the java runtime.  The frameworks included are:

  • JAX-WS – Implements the base Web Services specifications, such as, SOAP, WS-I Basic Profile 1.1, WS-I Attachments Profile 1.0, WS-I Simple SOAP Binding Profile 1.0, and WS-Addressing 1.0

  • JAXB – This is a data binding framework for XML.  It creates Java class objects for reading and writing XML files.

  • WSIT – Extends the JAX-WS framework, so that it web services created with JAX-WS can interoperability with the Windows Communication Framework.  It uses both JAXB and JAX-WS.

  • JAXP – A standardized API implemented by many XML parsers used for reading and writing XML files using either SAX or W3C DOM.

  • XWSS - XML and Web Services Security is a framework for implementing the various WS-Security specifications. This includes SAML, X509a, and Username and Password.

Unlike the Apache Axis 2 framework which allows for plugging in your own data banding framework, the Web Services Developer pack only directly supports the JAXB framework.  It may be possible to get the other frameworks to work with it but that is beyond the scope of this document.

2.3.2. Apache Axis 1.4

Apache Axis 1.4 is the redesign and re-implementation of the Apache SOAP framework.  It is widely used and provides support for both a wide variety of SOAP design patterns.   Its sole goal is to implement support for the World Wide Web Consortium's SOAP specification.    It is still widely used but is also limited in its support for more current Web Services specifications.

2.3.3. Apache Axis 2

Apache Axis 2 is a redesign of the Apache Axis 1.4 framework.  It has been redesigned to allow a plug-in architecture to support many of the new web services specifications.   Apache Axis 2 also allows you to choose and implement a variety of XML Data Binding frameworks instead of being locked into one particular framework.    The following are some of the plug-ins that extend Apache Axis 2:

  • Apache Sandesha2 – Implements the WS-ReliableMessaging specification.

  • Apache Kandula2 – Implements the WS-Coordination specification.

  • Apache Rampart – Implements the WS-Security specification including the WS-SecurityPolicy specification.  Like the XWSS framework, this implements support for XML Security, Username and Password, and XML Signature.

  • WS- Addressing support is built into the Apache Axis 2.

  • Apache WSS4J – Implements the OASIS Web Services Security Specification.

Apache Axis 2 is where the new development is heading at the Apache Foundation for web services.  Its plug-in architecture allows it to easily evolve and adapt to the changing web services specifications (apache).

2.3.4. XML RPC

XML RPC was one of the first specifications implemented.  Both Sun and Apache have implementations of the specification, and XML RPC is supported on a wide variety of platforms.   However, even though XML RPC is still widely used, it is not recommended for STAR implementations as it doesn't have support for many of the security related features STAR Web Services require.   The specification can be found at the XML RPC homepage (xmlrpc).