"Un servicio Web XML puede ser
utilizado internamente por una aplicación o bien ser expuesto de forma externa
en Internet por varias aplicaciones. Dado que a través de una interfaz estándar
es posible el acceso a un servicio Web XML, éste permite el funcionamiento de
una serie de sistemas heterogéneos como un conjunto integrado."
Modelos de desarrollo
El hecho de poder comunicar componentes
de software entre sí tiene una enorme importancia. Hasta no hace tantos años
era muy típico hacer aplicaciones de una sola pieza,
"monolíticas":
Aplicación "monolítica" aunque distribuida
Estos programas podían acceder a un
sistema gestor de datos a través de la red, pero toda la lógica del flujo de
datos, la seguridad y las interacciones con las personas se encontraban en el
ordenador del usuario en forma de un gran ejecutable
Una metodología de desarrollo mucho
mejor aunque más laboriosa a la hora de programar es el modelo Cliente-Servidor
en tres capas:
Aplicación Cliente Servidor en tres capas
En este modelo toda la lógica de los
datos, su validación, los permisos, etc., residen en un servidor intermedio y
son utilizados por todos los clientes a través de una red. En este caso en el
ordenador del usuario lo único que hay es una capa de presentación que se ocupa
básicamente de recoger y recibir datos, es decir, actúa de intermediario entre
el usuario y las reglas de negocio residentes en la capa intermedia.
La arquitectura de desarrollo
en n-capas (n-tier que dicen los anglosajones) lleva el
concepto cliente-servidor un paso hacia adelante, dividiendo la capa intermedia
en muchas otras capas especializadas cada una de las cuales puede residir en un
servidor diferente:
Arquitectura de desarrollo basada en componentes
En este modelo existe una gran variedad
de componentes especializados en tareas específicas como la validación de
datos, la autenticación y seguridad o el acceso a datos. Dichos componentes
deben trabajar unos con otros como piezas de un mecanismo, gestionando la
información que circula entre el usuario y el servidor de datos.
La belleza de este modelo radica en que
cada uno de ellos (o cada grupo de ellos) puede residir en un servidor
diferente, siendo transparente su ubicación para los clientes que los utilizan.
El concepto de Arquitectura
Orientada a Servicios o SOA se basa en el uso de este
tipo de componentes que suplen las necesidades de una o varias aplicaciones,
son independientes entre sí y trabajan independientemente del sistema operativo
o la plataforma.
Comunicación entre componentes
Servicios y protocolos específicos orientados a
la interacción distribuida de componentes:
• DCOM (Distributed Common Object Model), la propuesta
de Microsoft, ligada a sus sistemas Windows. Se trata de algo más que un
protocolo de invocación remota de procedimientos (RPC) ya que su última
encarnación, COM+, incluye servicios avanzados para balanceado de carga,
gestión de transacciones o llamadas asíncronas. Los parámetros son transmitidos
a través de la red mediante un formato binario propio llamado NDR (Network Data Representation).
• RMI (Remote Method Invocation), es la metodología de
llamada remota a procedimientos de Java. No se centra en la definición de
interfaces para compatibilidad binaria de componentes, ni en otros conceptos
avanzados, y se basa en la existencia de un cliente y un servidor que actúan de
intermediarios entre los componentes que se quieren comunicar. Es una
tecnología bastante simple que es fácil de utilizar para aplicaciones básicas.
• CORBA (Common Object Request Broker Architecture). Se
trata de una serie de convenciones que describen cómo deben comunicarse
los distintos componentes, cómo deben transferir los datos de las llamadas y
sus resultados o cómo se describen las interfaces de programación de los
componentes para que los demás sepan cómo utilizarlos. Fue desarrollado por el
OMG (Object Management Group)
en la segunda mitad de la década de los '90 y es el modelo que más éxito ha
tenido en el mundo UNIX. Su método de empaquetado y transmisión de datos a
través de la red se llama CDR (Common
Data representation).
SOAP
Gracias a los Servicios Web se derriban las antiguas divisiones
resultantes de los modelos de componentes descritos, y la integración de las
aplicaciones, la ubicuidad de sus componentes y su reutilización a través de la
red se convierten en una realidad.
La tecnología que está detrás de todo ello se llama SOAP (Simple Object Access Protocol)
describe un concepto tecnológico basado en la sencillez y
la flexibilidad que hace uso de tecnologías
y estándares comunes para
conseguir las promesas de la ubicuidad de los servicios, la transparencia de
los datos y la independencia de la plataforma que según hemos visto, se hacen
necesarios en las aplicaciones actuales.
Ejemplo de Servicio Web:
En este enlace se puede descargar el ejemplo de Servicio Web: Servicio web