Está en la página 1de 2

Arquitectura SOA: Los Servicios (I).

Introducción

Hoy vamos a hablar de los Servicios, la base sobre la que se construye una arquitectura SOA.
En este artículo presentamos una introducción a los conceptos fundamentales de los servicios.

Definición

En una arquitectura SOA la funcionalidad de la aplicación está expuesta a través de una colección
de servicios. Estos servicios son independientes y encapsulan tanto la lógica de negocio como los
datos asociados .

Desde una perspectiva empresarial, los servicios son activos independientes que se corresponden
con actividades comerciales reconocibles o funciones comerciales del mundo real y que son
accesibles de acuerdo con las políticas que se hayan establecido para los mismo.

Desde un punto de vista técnico podemos decir que se trata de componentes autónomos de grano
grueso, con interfaces bien definidas (contratos de servicio) y con una clara separación entre su
interface pública y su implementación privada interna.

Los servicios interactúan entre sí a través de mensajes, con un esquema que define su formato, un
contrato para definir sus intercambios y la definición de una política de cómo deben ser
intercambiados .

Aplicaciones como conjunto de Servicios.

El primer paso en cualquier proyecto de SOA es identificar claramente los problemas


críticos para el negocio o desafíos.
Los servicios incluirán los procesos de negocio y serán publicados para su consumo por parte de
usuarios, sistemas u otros servicios.
Los servicios pueden utilizar otros servicios para cumplir sus funciones, serán en este caso
servicios compuestos de otros servicios.
La creación de grandes aplicaciones será un proceso iterativo de incluir nuevos servicios y
publicarlos.

En la terminología SOA componer nuevos servicios basándonos en los ya existente se llama


Orquestación (Orchestration) al igual que en una orquesta iremos combinando instrumentos para
realizar tareas más complejas.

La importancia del contrato

Las aplicaciones SOA publican sus servicios y no saben quien los va a usar ni donde, estando
fuera del control de la aplicación. Publican un contrato (interface) que se mantendrá constante a lo
largo del ciclo de vida del servicio. El ciclo de vida de un servicio diferencia entre los servicios en
producción y en desarrollo, para los servicios en producción nunca se modificará su interface sino
que en su lugar el servicio se marcará como en desuso y se notificará a sus consumidores que hay
una nueva versión del servicio disponible que deberán usar.

Es fundamental la separación entre la interface y la implementación. El usuario de un servicio sólo


necesita (y debe) conocer la interface. La implementación puede cambiar a lo largo del tiempo sin
que para ello deba afectar a sus consumidores .
Servicios Web

Como comentamos en nuestra introducción a SOA, un error muy común es confundir servicios,
componentes que forman una arquitectura SOA, con servicios web. Los servicios web son una
forma de implementar estos servicios, pero no es obligatorio que los servicios estén implementados
como servicios web aunque sí es lo más común.
En nuestro próximo artículo vamos a profundizar en los servicios web como forma más habitual de
implementar los servicios de una arquitectura SOA, haciendo referencia a las dos formas más
habituales de servicios web (SOAP y RESTFUL) y las principales diferencias entre ellas.

También podría gustarte