Professional Documents
Culture Documents
Esta basado en el diseño de servicios que reflejan las actividades del negocio en el
mundo real, estas actividades hacen parte de los procesos de negocio de la compañía.
Preparado para ser usado en composiciones: Los servicios pueden hacer parte
de una composición sin importar el tamaño y complejidad de la misma.[9]
Origen
Los modelos de desarrollo han ido evolucionando con el paso de los años. En los años 80
aparecieron los modelos orientados a objetos, en los 90 aparecieron los modelos basados en
componentes y en la actualidad han aparecido los modelos orientados a servicios. 1
Aunque la arquitectura orientada a servicios no es un concepto nuevo (si bien fue descrita por
primera vez por Gartner hasta en 1996), sí se ha visto incrementada su presencia en la
actualidad, en gran medida debido al aumento de uso de servicios web. Con la llegada de
éstos, la arquitectura SOA ha hecho que el desarrollo de software orientado a servicios sea
factible. Aunque los servicios web usan con frecuencia SOA, SOA es neutral e independiente
de la tecnología utilizada y por tanto no depende de los servicios web, aunque estos la
popularizan.2
Terminología
Término Definición / Comentario
Servicio Una función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve
una(s) respuesta(s) mediante una interfaz bien definida. Los servicios pueden también
ejecutar unidades discretas de trabajo como serían editar y procesar una transacción.
Los servicios no dependen del estado de otras funciones o procesos. La tecnología
concreta utilizada para prestar el servicio no es parte de esta definición. Existen
servicios asíncronos en los que una solicitud a un servicio crea, por ejemplo, un
archivo, y en una segunda solicitud se obtiene ese archivo.
Orquestació Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye
n la presentación de los datos. Coordinación.
Sin estado No mantiene ni depende de condición pre-existente alguna. En una SOA los servicios
no son dependientes de la condición de ningún otro servicio. Reciben en la llamada
toda la información que necesitan para dar una respuesta. Debido a que los servicios
son "sin estado", pueden ser secuenciados (orquestados) en numerosas secuencias
(algunas veces llamadas tuberías o pipelines) para realizar la lógica del negocio.
Proveedor La función que brinda un servicio en respuesta a una llamada o petición desde un
consumidor.
Consumidor La función que consume el resultado del servicio provisto por un proveedor
Principios
No hay estándares en relación a la composición exacta de una arquitectura orientada a
servicios, aunque muchas fuentes de la industria han publicado sus propios principios.
Algunos de los principios publicados son los siguientes:
Acoplamiento débil de sistemas: los servicios mantienen una relación que minimiza
las dependencias y sólo requiere que mantengan un conocimiento de uno al otro.
Abstracción de servicios: más allá de las descripciones del contrato de servicios, los
servicios ocultan la lógica a los demás.
Autonomía de servicios: los servicios tienen control sobre la lógica que encapsulan,
desde una perspectiva de diseño y ejecución.
Optimización de servicios: los servicios de alta calidad son preferibles a los de baja
calidad.
Capas de softwares
SOA define las siguientes capas de software:
Cuando la mayoría de la gente habla de una arquitectura orientada a servicios están hablando
de un juego de servicios residentes en Internet o en una intranet, usando servicios web.
Existen diversos estándares relacionados a los servicios web; incluyendo los siguientes:
XML
HTTP
SOAP
REST
WSDL
UDDI
Hay que considerar, sin embargo, que un sistema SOA no necesariamente utiliza estos
estándares para ser "Orientado a Servicios" pero es altamente recomendable su uso.
En un ambiente SOA, los nodos de la red hacen disponibles sus recursos a otros participantes
en la red como servicios independientes a los que tienen acceso de un modo estandarizado.
La mayoría de las definiciones de SOA identifican la utilización de servicios
web (empleando SOAP y WSDL) en su implementación, no obstante se puede implementar
SOA utilizando cualquier tecnología basada en servicios.
Mitos y realidades
Hay varios mitos asociados a SOA que son importantes entender antes de profundizar en el
tema. La siguiente tabla describe algunos de los principales mitos que rodean a SOA y los
hechos que ayudan a desacreditarlos.10
Mito Realidad
SOA es una tecnología SOA es una filosofía de diseño independiente de cualquier proveedor,
producto, tecnología o industria. Las necesidades de SOA varían de una
compañía a otra, por tanto la adquisición de una arquitectura SOA de otra
compañía no será la solución apropiada para su propia compañía
Las SOA requieren de SOA se puede realizar a través de servicios web pero los servicios web
servicios web no son un requisito necesario para implementar SOA
Una arquitectura de No hay dos SOA iguales. Una arquitectura de referencia SOA puede no
referencia SOA reduce
riesgo de implementación ofrecer la mejor solución para su organización
SOA requiere una revisión SOA debe ser gradual y construirse sobre sus inversiones actuales
completa de la tecnología
y procesos de negocios
Centrarse en la entrega de una solución, no en crear una arquitectura SOA. SOA es un medio
para la entrega de su solución y no debe ser su objetivo final.
Véase también
Back office
Oficina de servicios
Scrum
Bibliografía
Norbert Bieberstein et al. Service-Oriented Architecture Compass, Pearson 2006, ISBN
0-13-187002-5