XML News from Monday, March 7, 2005

Sun has posted the second early draft review of Java Specification Request 224: Java™ API for XML-Based RPC (JAX-RPC) 2.0. JAX-RPC is a java API for working with SOAP and WSDL based web services. According to the draft,

Since the release of JAX-RPC 1.0, new specifications and new versions of the standards it depends on have been released. JAX-RPC 2.0 relates to these specifications and standards as follows:

JAXB
Due primarily to scheduling concerns, JAX-RPC 1.0 defined its own data binding facilities. With the release of JAXB 1.0[9] there is no reason to maintain two separate sets of XML mapping rules in the Java™ platform. JAX-RPC 2.0 will delegate data binding-related tasks to the JAXB 2.0[10] specification that is being developed in parallel with JAX-RPC 2.0. JAXB 2.0[10] will add support for Java to XML mapping, additional support for less used XML schema constructs, and provide bidirectional customization of Java , XML data binding. JAX-RPC 2.0 will allow full use of JAXB provided facilities including binding customization and optional schema validation.
SOAP 1.2
Whilst SOAP 1.1 is still widely deployed, it’s expected that services will migrate to SOAP 1.2 now that it is a W3C Recommendation. JAX-RPC 2.0 will add support for SOAP 1.2 whilst requiring continued support for SOAP 1.1. WSDL 2.0 The W3C is expected to progress WSDL 2.0[11] to Recommendation during the lifetime of this JSR. JAX-RPC 2.0 will add support for WSDL 2.0 whilst requiring continued support for WSDL 1.1.
WS-I Basic Profile 1.1
JAX-RPC 1.1 added support for WS-I Basic Profile 1.0. WS-I Basic Profile 1.1 is expected to supersede 1.0 during the lifetime of this JSR and JAX-RPC 2.0 will add support for the additional clarifications it provides.
A Metadata Facility for the Java Programming Language (JSR 175)
JAX-RPC 2.0 will define use of Java annotations[12] to simplify the most common development scenarios for both clients and servers. Web Services Metadata for the Java Platform (JSR 181) JAX-RPC 2.0 will align with and complement the annotations defined by JSR 181[13].
Implementing Enterprise Web Services (JSR 109)
The JSR 109[14] defined jaxrpc-mapping-info deployment descriptor provides deployment time Java , WSDL mapping functionality. In conjunction with JSR 181[13], JAX-RPC 2.0 will complement this mapping functionality with development time Java annotations that control Java , WSDL mapping. Web Services Security (JSR 183) JAX-RPC 2.0 will align with and complement the security APIs defined by JSR 183[15].
JAX-RPC 2.0 will improve support for document/message centric usage:
Asynchrony
JAX-RPC 2.0 will add support for client side asynchronous operations.
Non-HTTP Transports
JAX-RPC 2.0 will improve the separation between the XML based RPC frame- work and the underlying transport mechanism to simplify use of JAX-RPC with non-HTTP transports.
Message Access
JAX-RPC 2.0 will simplify client and service access to the messages underlying an exchange.
Session Management
JAX-RPC 1.1 session management capabilities are tied to HTTP. JAX-RPC 2.0 will add support for message based session management.

JAX-RPC 2.0 will also address issues that have arisen with experience of implementing and using JAX-RPC 1.0:

Inclusion in J2SE
JAX-RPC 2.0 will prepare JAX-RPC for inclusion in a future version of J2SE. Application portability is a key requirement and JAX-RPC 2.0 will define mechanisms to produce fully
portable clients.
Handlers
JAX-RPC 2.0 will simplify the development of handlers and will provide a mechanism to allow handlers to collaborate with service clients and service endpoint implementations.
Versioning and Evolution of Web Services
JAX-RPC 2.0 will describe techniques and mechanisms to ease the burden on developers when creating new versions of existing services.
Backwards Compatibility of Binary Artifacts
JAX-RPC 2.0 will not preclude preservation of backwards binary compatibility between JAX-RPC 1.x and 2.0 implementation runtimes.