Página Principal
 Ir a la página principal.      
 [Ir >>]
 

  En este número  
   Seguridad Informática: Antivirus OnLine  
   Java: Servicios Web (I)  
   Ocio PC: Un poco de historia  
   Consolas: Wiimote en el PC  
   Análisis: Samsung Omnia  
   Arquitecturas: Patrones de diseño  
   Anunciantes:
  - Grupo SYNCROM
  - Arquitectura, Diseño y Reformas
  - Grupo Soltierra
 
     

  Antivirus   [Entrar]
Sección dedicada a los antivirus y otras amenazas informáticas.
 
  ¿Quieres escribir un artículo?
Si quieres, puedes. Pulsa aquí para ver las condiciones.
 

 

  
 
Java: Servicios Web (I)

Primero fue la programación estructurada, después surgió la programación orientada a objeto y ahora es la programación basada en servicios la que está revolucionando la forma de concebir el software.

En este nuevo paradigma de desarrollo software, la construcción de aplicaciones ya no consiste en crear programas monolíticos que resuelven un problema específico. La idea consiste en disponer de servicios que resuelvan problemas específicos y concretos, de manera que la construcción de una aplicación simplemente se reduzca a la interconexión de estos servicios para implementar un funcionalidad de mayor nivel.

Los servicios Web constituyen una implementación de esta filosofía de programación orientada a servicios en el mundo Web, por ello, en este artículo vamos a analizar el funcionamiento y composición de los servicios Web, así como los estándares en los que se basan.

Introducción a los servicios web
La arquitectura de servicios Web representa un nuevo estilo de programación, basado en la implementación y despliegue de módulos software, conocidos como servicios Web, encargados de ejecutar una determinada operación y que puedan ser reutilizados a través de la Web por otros servicios o aplicaciones.

Es decir, se trata de trasladar la filosofía de la reutilización de código a la Web, de manera que estos módulos de software o servicios puedan ser utilizados por cualquier aplicación, independientemente del lenguaje de programación con que tanto los servicios como las aplicaciones clientes estén implementados.

Esto significa que un servicio Web puede ser implementado con cualquier lenguaje y tecnología de desarrollo existente (Java, C++, .NET,..), no necesitando utilizar tecnologías específicas de ningún fabricante; únicamente se debe tener en cuenta que un servicio Web debe ser implementado de manera que sea compatible con los siguientes estándares:

  • HTTP. Dado que el servicio Web estará publicado en la Red, el acceso al mismo se deberá realizar utilizando el protocolo estándar Web (HTTP).
  • XML. Los servicios Web se comportan igual que los métodos de un objeto, esto es, reciben parámetros en la llamada y devuelven resultados tras su ejecución. Al ser un estándar para representación de datos independiente de plataformas, la utilización de XML como formato de intercambio de datos entre el servicio Web y el cliente permite que ambos se puedan comunicar.

Estándares de la arquitectura de servicios Web
Además de las tecnologías básicas sobre las que se apoyan los servicios Web, XML y http, se han definido una serie de estándares que posibilitan la interacción entre los diferentes roles que forman la arquitectura. Estos estándares son:

  • SOAP. SOAP son las siglas de Simple Object Access Protocol y hace referencia a un protocolo, definido por el W3C, para el intercambio de información entre aplicaciones en un entrono distribuido. SOAP está basado en XML y estable el formato de los documentos XML (mensajes SOAP) que van a ser intercambiados entre el servicio Web y las aplicaciones clientes durante el proceso de comunicación.
  • El siguiente listado nos muestra la estructura de un documento SOAP. Sería en el interior del elemento <body> donde, en la petición al servicio Web, se incluiría el nombre de la operación invocada y los parámetros necesarios para ello, mientras que cuando se trate de una respuesta, se incluirá el resultado de la operación.

  • WSDL. Web Service Description Lenguage es un lenguaje basado en XML que se utiliza para crear la descripción de un servicio Web. En esta descripción se describen las características del servicio Web, como las operaciones que exponen al exterior, parámetros de llamada y tipo de devolución. Los desarrolladores de aplicaciones clientes del servicio Web utilizarán este documento para obtener la información necesaria que les permita invocarlo.

    A continuación se muestra la estructura de un documento WSDL, indicándose los elementos principales y la función de cada uno.

  • UDDI. Universal Description Discovery and Integration proyect) es una especificación que define como publicar y localizar un servicio Web en un registro de servicios, de modo que se pueda ofrecer un mecanismo estándar tanto para la búsqueda de servicios por parte de los clientes, como para la difusión de los mismos por parte de los proveedores de servicios Web.


Estructura de un servicio Web

Desde el punto de vista de su implementación, un servicio Web es básicamente un objeto con una serie de métodos que definen las operaciones que el servicio debe exponer. Para poder comunicar este objeto con el exterior, será necesario además disponer de un módulo software que traduzca las peticiones XML/SOAP procedentes del cliente en llamadas nativas a los métodos del objeto, así como codificar los resultados devueltos por el componente en mensajes XML/SOAP y enviarlos como respuesta al cliente.

En el caso de que el servicio Web esté implementado en Java, el objeto de negocio será un objeto de una clase estándar Java, aunque podría estar implementado también como un EJB de tipo stateless. Por su parte, el módulo adaptador sería implementado mediante un servlet que es el tipo de componente Web encargado del diálogo HTTP con el cliente. El código de este servlet, deberá utilizar algún API (por ejemplo, JAXP) para realizar la manipulación de documentos XML.

Por Antonio Martín.
Profesor de Java de syncrom.com.
Redactor.


 
  << Página anterior      Siguiente página >>               [Todos los números]  

 

  
         
(C) 2009 - Programadores de Hoy