JAX-RPC:
JAX-RPC is a specification that is developing through the Java Community Process (JCP). It aims to provide a JCP-sanctioned standard set of Java APIs for both a client-side and server-side programming model.
These APIs leveerage interoperable communications within Java applications with a protocol design center based on, but not limited to, SOAP. It covers the following areas:
- A Java code generation model for client-side stubs and server-side tie classes, based on a set of conversions for mapping WSDL to Java and Java to WSDL.
- An API for dynamic SOAP-RPC and a Call interface that is conveptually similar to Apache SOAP. Call semantics include synchronous invoke and synchronous invoke/one-way. JAX-RPC does not address asynchronous invocation in its 1.0 rendition. A true asynchronous model would require callbacks (onmessage, etc). The one-way invocation model defined in the API is considered synchronous.
- A model for definining a service, registering it, and invoking it within the J2EE and J2SE environments. This model covers typical J2EE/J2SE deployment issues such as creating deployment descriptions and packaging Web Application Archive (WAR) files.
- A binding to SOAP, including SOAP Fault handling through Java exceptions and HeaderFault processing.
- Type mapping between Java and XML datatypes.
- A service-side invocation handler mechanism used to chain together service method invocations.
- A reference implementation (RI) that provides a runtime implementation and a code generation tool, xrpcc.
- A serialization framework for marshalline and unmarshalling data between Java and XML based on soap-encoding rules. The RI from Sun includes an implementation of this framework.
JAX-RPC Client Invocation Models
JAX-PRC defines three different client models used to invoke a remote method: one static model and two dynamical models. The statically difined stub model is typically based on a code generation tool. The dynamic proxy invocation mdoel is based on building a proxy object dynamically using the reflection APIs (java.lang.reflect). The Dynamic Invocation Interface (DII) is based on a Call object simliar to the Apache SOAP Call interface.