EL API Java para RPC basado en XML (JAX-RPC) hace posible escribir aplicaciones Java que usen XML para hacer llamadas a procedimientos remotos (RPC).
El lenguaje Java ya tiene dos APIs para hacer llamadas a procedimientoa remotos, Java IDL y Java RMI. Los tres tienen un API para empaquetar/desempaquetar argumentos y para transmitir y recibir llamadas a procedimientos. La diferencia es que JAX-RPC est� basado en XML y est� dirigido a servicios Web. Java IDL est� basado en la arquitectura CORBA y usa el "Object Management Groups Interface Definition Language" (OMG IDL). RMI est� basado en RPC donde �mbos m�todos, el llamador y el llamado est�n escritos en lenguaje Java--aunque con RMI sobre IIOP, los m�todos invocados podr�an est�r en otro lenguaje. Sun continuar� soportando CORBA y RMI adem�s de desarrollar JAX-RPC, ya que cada uno sirve a distintas necesidades y tiene su propio conjunto de usuarios.
Todas las variedades de RPC son bastante complejas, implicando el mapeo y el mapeo inverso de los tipos de datos y el empaquetado y desempaquetado de los argumentos. Sin embargo, estos tienen lugar detr�s de la escena y no son visibles para el usuario. JAX-RPC contin�a este modelo, lo que significa que un cliente que est� usando RPC basado en XML desde el lenguaje Java no necesita trabajar con XML o hacer ning�n mapeo directamente.
�Usar JAX-RPC
JAX-RPC hace sencillo el uso de servicios web, y tambi�n facilita el desarrollo de servicios web, especialmente si usamos la plataforma J2EE. Un servicio Web basado en RPC b�sicamente es una colecci�n de procedimientos que pueden ser llamados por un cliente remoto desde Internet. El propio servicio es una aplciaci�n servidora desarrollada sobre un contenedor del lado del servidor que implementa procedimientos que est� disponibles para llamadas de clientes. Por ejemplo, un t�pico servicio Web basado en RPC es un servicio de consulta de stocks que toma una peticion SOAP paar el precio de un material especificado y devuelve el precio mediante SOAP.
Un servicio Web necesita estar disponible para clientes potenciales, lo que puede hacer, por ejemplo, describi�ndose a s� mismo usando el "Web Services Description Language" (WSDL). Un consumidor (un cliente Web) puede entonces buscar el documento WSDL para acceder al servicio. Un consumidor usando el lenguaje Java usa JAX-RPC para enviar su petici�n al servicio, que podr�a o no, estar desarrollado en una plataforma Java. La inversa tambi�n es posible, es decir, un cliente usando otro lenguaje de programaci�n puede enviar su petici�n a un servicio que ha sido definido y desarrollado sobre una plataforma Java.
Aunque JAX-RPC implementa una llamada a procedimiento remoto como una petici�n y una respuesta de mensaje SOAP, un usuario JAX-RPC est� aislado de este nivel de detalle. Por eso, bajo la superficie, JAX-RPC realmente es una forma especializada de mensajer�a SOAP. Por el contrario, JAXM es una forma robusta de mensajer�a SOAP, proporcionando al desarrollador toda su riqueza. La siguiente lista incluye todas las caracter�sticas que JAXM puede proporcionar y que RPC, incluyendo JAX-RPC, generalmente no proporcionan:
- Mensajer�a as�ncrona.
- Enrutar un mensaje a m�s de una parte.
- Realizar mensajer�a con caracter�sticas como la entrega garantizada.
JAX-RPC es la mejor elecci�n para aplicaciones que desean evitar la complejidad de la mensajer�a SOAP y donde la comunicaci�n usando el modelo RPC es una buena idea. Lo importante es que siempre que usemos JAXM o JAX-RPC, podremos hacer mensajer�a XML de forma conveniente usando el lenguaje de programaci�n Java.