| Construcción de Servicios Web con JAX-WS |
| Paso 1: Fundamentos |
Para muchos expertos los Servicios Web abanderan la próxima revolución en Internet. La clave está en crear una Web tan rica en funcionalidad como lo es la Web actual con la información.
Los Servicios Web proveen un flexible y a la vez robusto mecanismo de integración entre Sistemas heterogéneos que se utilizan para exponer diferentes funcionalidades de componentes software a aplicaciones externas
- un Servicio Web es un componente de aplicación que puede ser accedido utilizando protocolos Web estándares
- estos estándares provocan la eliminación de muchas barreras de integración entre plataformas heterogéneas
- por tanto, cualquier plataforma puede construir y consumir Servicios Web de cualquier otra plataforma sin importar el lenguaje y el Sistema Operativo sobre el que corre el Servicio Web
Si somos proveedores de Servicios Web, tendríamos que
- decidir que funcionalidad queremos exponer como un Servicio
- implementar el Servicio que ofrecemos
- describir el Servicio que ofrecemos
- publicar la descripción
- informar a los consumidores directos de nuestro Servicio Web o simplemente esperar a que lo descubran
Si por el contrario somos consumidores de Servicios Web, tendríamos que
- encontrar un Servicio que nos interese
- obtener la descripción
- conectar el Servicio Web a nuestra aplicacíon
- utilizar el Servico cuando nuestra aplicación se ejecuta
Estos son los protocolos, tecnologías y estándares más importantes utilizados por los Servicios Web
- SOAP (Simple Object Access Protocol)
- es un protocolo ligero y sencillo basado en XML
- permite el intercambio de información entre dos Sistemas a través de los sobres SOAP
- el contenido de estos sobres pueden ser llamadas RPC (Remote Procedure Calls) o cualquier otro contenido que se puede adjuntar con el protolo MIME (Multipurpose Internet Mail Extensions) utilizado desde ya hace varios años por el correo electrónico para adjuntar ficheros
- viaja a través del protocolo HTTP
- esto permite el acceso libre a través de los proxis
- WSDL (Web Services Description Language)
- es un documento XML con un vocabulario particular para definir Servicios Web
- un documento WSDL actúa como un contrato entre el cliente y el Servicio Web para una comunicación efectiva entre las dos partes
- por ejemplo si creamos un Servicio Web que muestre el valor de unas acciones en particular de la bolsa tenemos que crear un documento WSDL en el Servidor que presta el Servicio
- el cliente
- obtiene una copia de este documento
- comprende el contrato
- crea una solicitud Web basada en el contrato y
- lanza la solicitud utilizando un puerto HTTP
- el servidor
- por su parte valida la solicitud y si ve que es correcta entonces la ejecuta devolviendo al cliente el valor de las acciones que ha solicitado
- UDDI (Universal Description, Discovery and Integration)
- es un registro común donde se registran los Servicios Web para que los clientes potenciales los encuentren
- el registro alberga información
- sobre las empresas
- como sus nombres, actividad económica, zona geográfica o personas de contacto
- y sobre los distintos Servicios Web
- como la URL donde pueden encontrarlos
- proporciona funciones de búqueda como por ejemplo sobre actividades económicas o localizaciones geográficas
Java utiliza la tecnología JAX-WS (Java API for XML Web Services ) para
- construir Servicios Web y
- crear el código de acceso a Servicios Web desde clientes utilizando llamadas RPC (Remote Procedure Calls)
- este tipo de llamadas permiten a los clientes ejecutar métodos en otros Sistemas de forma remota
JAX-WS realiza de forma transparente las llamadas y respuestas a través de mensajes SOAP.
Un cliente crea un proxy (es decir un Objeto local que representa el Servicio) y seguidamente invoca a los métodos del proxy.