You are on page 1of 7

Arquitectura orientada a servicios

1
Arquitectura orientada a servicios
La 'Arquitectura Orientada a Servicios' (en ingls Service Oriented Architecture), es un paradigma de arquitectura
para disear y desarrollar sistemas distribuidos. Las soluciones SOA han sido creadas para satisfacer los objetivos
de negocio las cuales incluyen facilidad y flexibilidad de integracin con sistemas legados, alineacin directa a los
procesos de negocio reduciendo costos de implementacin, innovacin de servicios a clientes y una adaptacin gil
ante cambios incluyendo reaccin temprana ante la competitividad.
[1]
Permite la creacin de sistemas de informacin altamente escalables que reflejan el negocio de la organizacin, a su
vez brinda una forma bien definida de exposicin e invocacin de servicios (comnmente pero no exclusivamente
servicios web), lo cual facilita la interaccin entre diferentes sistemas propios o de terceros.
SOA define las siguientes capas de software:
Aplicaciones bsicas - Sistemas desarrollados bajo cualquier arquitectura o tecnologa, geogrficamente
dispersos y bajo cualquier figura de propiedad;
De exposicin de funcionalidades - Donde las funcionalidades de la capa aplicativa son expuestas en forma de
servicios (generalmente como servicios web);
De integracin de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a
procesos empresariales internos o en colaboracin;
De composicin de procesos - Que define el proceso en trminos del negocio y sus necesidades, y que vara en
funcin del negocio;
De entrega - donde los servicios son desplegados a los usuarios finales.
SOA proporciona una metodologa y un marco de trabajo para documentar las capacidades de negocio y puede dar
soporte a las actividades de integracin y consolidacin.
Origen
Los modelos de desarrollo han ido evolucionando con el paso de los aos. En los aos 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.
[2]
Aunque la arquitectura orientada a servicios no es un concepto nuevo, fue descrita por primera vez por Gartner en
1996, se ha visto aumentada su aparicin en la actualidad, en gran medida por el aumento de uso de servicios web.
La llegada de los servicios web, la arquitectura 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 tecnologa
utilizada y por tanto no depende de los servicios web, aunque estos no popularizan.
[3]
Terminologa
Arquitectura orientada a servicios
2
Trmino Definicin / Comentario
Servicio Una funcin sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s) respuesta(s) mediante una interfaz bien
definida. Los servicios pueden tambin ejecutar unidades discretas de trabajo como seran editar y procesar una transaccin. Los
servicios no dependen del estado de otras funciones o procesos. La tecnologa concreta utilizada para prestar el servicio no es parte
de esta definicin. Existen servicios asncronos en los que una solicitud a un servicio crea, por ejemplo, un archivo, y en una segunda
solicitud se obtiene ese archivo.
Orquestacin Secuenciar los servicios y proveer la lgica adicional para procesar datos. No incluye la presentacin de los datos. Coordinacin.
Sin estado No mantiene ni depende de condicin pre-existente alguna. En una SOA los servicios no son dependientes de la condicin de ningn
otro servicio. Reciben en la llamada toda la informacin que necesitan para dar una respuesta. Debido a que los servicios son "sin
estado", pueden ser secuenciados (orquestados) en numerosas secuencias (algunas veces llamadas tuberas o pipelines) para realizar
la lgica del negocio.
Proveedor La funcin que brinda un servicio en respuesta a una llamada o peticin desde un consumidor.
Consumidor La funcin que consume el resultado del servicio provisto por un proveedor
Principios
No hay estndares en relacin a la composicin 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:
Contrato de servicios estandarizados - Los servicios adhieren a un acuerdo de comunicacin, segn se define
en conjunto con uno o ms documentos de descripcin de servicios.
Acoplamiento dbil de sistemas - Los servicios mantienen una relacin que minimiza las dependencias y slo
requiere que mantengan un conocimiento de uno al otro.
Abstraccin de servicios - Ms all de las descripciones del contrato de servicios, los servicios ocultan la lgica
a los dems.
Reutilizacin de servicios - La lgica se divide en servicios con la intencin de promover la reutilizacin.
Autonoma de servicios - Los servicios tienen control sobre la lgica que encapsulan, desde una perspectiva de
diseo y ejecucin.
Servicios aptridas - Los servicios minimizan el consumo de recursos aplazando la gestin de la informacin de
estado cuando sea necesario.
Descubrimiento de servicios - Los servicios se complementan con los metadatos mediante los cuales se pueden
descubrir e interpretar la eficacia.
Composicin de servicios - Servicios estn compuestos por partes eficazmente, independientemente del tamao
y la complejidad de la composicin.
Granularidad de servicios - Una consideracin de diseo para proporcionar un mbito ptimo y un correcto
nivel granular de la funcionalidad del negocio en una operacin de servicio.
La normalizacin de servicios - Los servicios se descomponen a un nivel de forma normal para minimizar la
redundancia. En algunos casos, los servicios se desnormalizan para fines especficos, como la optimizacin del
rendimiento, el acceso y agregacin.
Optimizacin de servicios - Los servicios de alta calidad son preferibles a los de baja calidad.
Relevancia de servicios - La funcionalidad se presenta en un nivel de granularidad reconocido por el usuario
como un servicio significativo.
Encapsulacin de servicios - Muchos servicios estn consolidados para el uso de SOA. A menudo, estos
servicios no fueron planificados para estar en un SOA.
Transparencia de ubicacin de servicios - Se refiere a la capacidad de un consumidor de servicios para invocar
a un servicio independientemente de su ubicacin en la red. Esto tambin reconoce la propiedad de
descubrimiento (uno de los principios fundamentales de SOA) y el derecho de un consumidor para acceder al
Arquitectura orientada a servicios
3
servicio. A menudo, la idea de la virtualizacin de servicios tambin se refiere a la transparencia de ubicacin.
Aqu es donde el consumidor simplemente llama a un servicio lgico, mientras que un SOA habilita la ejecucin
del componente de la infraestructura, normalmente un bus de servicios, que mapea este servicio lgico y llama al
servicio fsico.
SOA y los Web Services
Hay que tener cuidado cuando se manejan estos trminos y no confundirlos. Web Services engloba varias
tecnologas, incluyendo XML, SOAP, WSDL, UDDIlos cuales permiten construir soluciones de programacin
para mensajes especficos y para problemas de integracin de aplicaciones
[4]
.
En cambio SOA es una arquitectura de aplicacin en la cual todas las funciones estn definidas como servicios
independientes con interfaces invocables que pueden ser llamados en secuencias bien definidas para formar los
procesos de negocio.
En SOA la clave est en la interfaz puesto que define los parmetros requeridos y la naturaleza del resultado. Esto
significa que define la naturaleza del servicio y no la tecnologa utilizada. Esta funcin permite realizar dos de los
puntos crticos: los servicios son realmente independientes y pueden ser manejados.
WS es el estndar apoyado por la industria (Microsoft, IBM, BEA, Oracle, Sun y otros), por empresas de distintos
rubros, no tecnolgicas (Ford, United Airlines, KPMG, Daimler-hrysler), agrupadas en un comit conocido como
Web Services Interoperability, o WS-I. Este organismo tiene por principal objetivo asegurar que los grupos de
trabajo que definen las especificaciones sobre WS utilizan estndares adecuados, a la vez que monitoriza el avance
de sus trabajos; no define ni desarrolla estndares
[5]
.
Diseo y desarrollo de SOA
La metodologa de modelado y diseo para aplicaciones SOA se conoce como anlisis y diseo orientado a
servicios. La arquitectura orientada a servicios es tanto un marco de trabajo para el desarrollo de software como un
marco de trabajo de implementacin. Para que un proyecto SOA tenga xito los desarrolladores de software deben
orientarse ellos mismos a esta mentalidad de crear servicios comunes que son orquestados por clientes o middleware
para implementar los procesos de negocio. El desarrollo de sistemas usando SOA requiere un compromiso con este
modelo en trminos de planificacin, herramientas e infraestructura.
Cuando la mayora de la gente habla de una arquitectura orientada a servicios estn hablando de un juego de
servicios residentes en Internet o en una intranet, usando servicios web. Existen diversos estndares relacionados a
los servicios web. Incluyen los siguientes:
Arquitectura orientada a servicios
4
Elementos de un SOA, by Dirk Krafzig, Karl Banke, and Dirk Slama
[6]
XML
HTTP
SOAP
REST
WSDL
UDDI
Hay que considerar, sin embargo, que
un sistema SOA no necesariamente
utiliza estos estndares 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 mayora de las definiciones de SOA identifican la utilizacin de
Servicios Web (empleando SOAP y WSDL) en su implementacin, no obstante se puede implementar SOA
utilizando cualquier tecnologa basada en servicios.
Lenguajes de alto nivel
Los lenguajes de alto nivel como BPEL o WS-Coordination llevan el concepto de servicio un paso adelante al
proporcionar mtodos de definicin y soporte para flujos de trabajo y procesos de negocio.
Diferencias con otras arquitecturas
Al contrario de las arquitecturas orientado a objetos, las SOAs estn formadas por servicios de aplicacin dbilmente
acoplados y altamente interoperables. Para comunicarse entre s, estos servicios se basan en una definicin formal
independiente de la plataforma subyacente y del lenguaje de programacin (p.ej., WSDL). La definicin de la
interfaz encapsula (oculta) las particularidades de una implementacin, lo que la hace independiente del fabricante,
del lenguaje de programacin o de la tecnologa de desarrollo (como Plataforma Java o Microsoft .NET). Con esta
arquitectura, se pretende que los componentes de software desarrollados sean muy reutilizables, ya que la interfaz se
define siguiendo un estndar; as, un servicio C# podra ser usado por una aplicacin Java. En este sentido, ciertos
autores definen SOA como una Sper-Abstraccin.
[citarequerida]
.
Beneficios
El gran beneficio de SOA es la agilidad que proporciona a las organizaciones que la usan. Las caractersticas propias
de SOA permiten a las organizaciones la capacidad de controlar un problema de forma general, permitiendo una
respuesta ms rpida y eficaz y por tanto adaptarse de la mejor forma a los cambios.
[7]
Otra de sus ventajas es la independencia de las plataformas e infraestructuras tecnolgicas, lo que le permite
integrarse con sistemas y aplicaciones diferentes de forma sencilla. Gracias a esta independencia SOA es su
arquitectura flexible que permite la reutilizacin de las tecnologas existentes. As que, una empresa no necesita
realizar un cambio integral para adoptar SOA.
[8]
Los beneficios que puede obtener una organizacin que adopte SOA son:
Mejora en los tiempos de realizacin de cambios en procesos
Facilidad para evolucionar a modelos de negocios basados en tercerizacin
Arquitectura orientada a servicios
5
Facilidad para abordar modelos de negocios basados en colaboracin con otros entes (socios, proveedores)
- facilita la integracin de sistemas y aplicaciones diferentes, lo cual mejora la comunicacin y la capacidad de
respuesta con sistemas externos.
Poder para reemplazar elementos de la capa aplicativa SOA sin disrupcin en el proceso de negocio
Facilidad para la integracin de tecnologas dismiles
Mejora en la toma de decisiones - la organizacin dispone de mayor informacin y ms actualizada, lo que le
permite una respuesta rpida y eficaz cuando surgen problemas o cambios
Aplicaciones flexibles - la orientacin a servicios permite desarrollar aplicaciones con independencia de las
plataformas y lenguajes de programacin que realizan los procesos.
Aplicaciones reutilizables y adaptables - permite que las aplicaciones existentes para ser reutilizadas y
adaptadas a nuevos entornos con facilidad. As conseguimos optimizar los recursos empleados en su desarrollo.
Reduccin de costes - el coste de ampliar o crear nuevos servicios se reduce considerablemente tanto en
aplicaciones nuevas como ya existentes.
Riesgo de migracin - al adaptar SOA a partir de una tecnologa existente se siguen utilizando los componentes
existentes, por lo que se reduce el riesgo de introducir fallos.
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.
[9]
Mito Realidad
SOA es una tecnologa SOA es una filosofa de diseo independiente de cualquier proveedor, producto, tecnologa o industria. Las
necesidades de SOA varan de una compaa a otra, por tanto la adquisicin de una arquitectura SOA de otra
compaa no ser la solucin apropiada para su propia compaa
SOAs requieren de servicios web SOA se puede realizar a travs de servicios web pero los servicios web no son un requisito necesario para
implementar SOA
SOA es nuevo y revolucionario EDI, CORBA y DCOM son ejemplos conceptuales de orientacin de servicios
SOA garantiza la alineacin de TI y
el negocio
SOA no es una metodologa
Una arquitectura de referencia SOA
reduce riesgo de implementacin
No hay dos SOAs iguales. Una arquitectura de referencia SOA puede no ofrecer la mejor solucin para su
organizacin
SOA requiere una revisin completa
de la tecnologa y procesos de
negocios
SOA debe ser gradual y construirse sobre sus inversiones actuales
Necesitamos construir una SOA SOA es un medio, no un fin
Centrarse en la entrega de una solucin, no en crear una arquitectura SOA. SOA es un medio para la entrega de su
solucin y no debe ser su objetivo final.
Arquitectura orientada a servicios
6
Literatura
Norbert Bieberstein et al. Service-Oriented Architecture Compass, Pearson 2006, ISBN 0-13-187002-5
[10]
Eben Hewitt. Java SOA Cookbook, 1st Edition, O'reilly 2009
[11] SEI - Evaluating a Service Oriented Architecture
[12]
Referencias
[1] http:/ / resources. sei. cmu. edu/ library/ asset-view.cfm?assetid=8443
[2] http:/ / msdn. microsoft. com/ en-us/ library/ bb833022.aspx
[3] http:/ / upcommons.upc.edu/ pfc/ bitstream/ 2099. 1/ 12312/ 1/
ESTUDIO_DE_ARQUITECTURAS_DE_REDES_ORIENTADAS_A_SERVICIO. pdf
[4] Kishore Channabasavaiah and Kerrie Holley, IBM Global Services, and Edward M. Tuggle, Jr., IBM Software Group, On demand operating
environment solutions: Migrating to a service-oriented architecture, white paper, April 2004.
[5] ARQ-RFC Pautas y recomendaciones para SOA v.091, July 2006
[6] Enterprise SOA. Prentice Hall, 2005
[7] http:/ / www. ilustrados.com/ tema/ 12463/ Arquitectura-software-Arquitectura-orientada-servicios. html
[8] http:/ / upcommons.upc.edu/ pfc/ bitstream/ 2099. 1/ 12312/ 1/
ESTUDIO_DE_ARQUITECTURAS_DE_REDES_ORIENTADAS_A_SERVICIO. pdf
[9] http:/ / msdn. microsoft. com/ en-us/ library/ bb833022.aspx
[10] http:/ / search. barnesandnoble. com/ booksearch/ isbnInquiry. asp?z=y& endeca=1& isbn=0131870025& itm=1
[11] http:/ / shop. oreilly.com/ product/ 9780596520731. do
[12] http:/ / resources.sei. cmu. edu/ library/ asset-view. cfm?assetid=8443
Enlaces externos
WSO2 Project (http:/ / wso2. org/ )
soaAgenda: artculos sobre SOA, BPM, y Ajax (http:/ / www. soaAgenda. com/ )
OASIS - Modelo de referencia para SOA (http:/ / docs. oasis-open. org/ soa-rm/ v1. 0/ soa-rm. pdf), (Ingls)
Mule - SimphonySoft (http:/ / mule. codehaus. org)
Kumbia Enterprise Framework (http:/ / www. loudertechnology. com/ site/ projects/
kumbia_enterprise_framework): Arquitectura SOA en PHP y BPM
SOPERA - Open Source SOA (http:/ / www. sopera. de/ en/ products/ sopera-at-a-glance/ )
Pensando en SOA (blog dedicado a SOA, Gobierno SOA, Servicios Web, REST ,etc.) (http:/ / pensandoensoa.
com/ )
Por qu SOA? (http:/ / blogs. tecsisa. com/ ?p=101)
Introduccin a los Servicios Web en Java (http:/ / www. davidmarco. es/ archivo/ tutorial-serviciosweb)
SEI - Evaluating a Service Oriented Architecture (http:/ / resources. sei. cmu. edu/ library/ asset-view.
cfm?assetid=8443)
Fuentes y contribuyentes del artculo
7
Fuentes y contribuyentes del artculo
Arquitectura orientada a servicios Fuente: http://es.wikipedia.org/w/index.php?oldid=74223207 Contribuyentes: Al Lemos, Alhen, Alvaro qc, Andres.hevia, Antonorsi, Avh, BioPupil, Bogart
NSSME, Carlos.sanchez.moreno, Cesar.obach, Cespinel, Controller7, Davidmarco, Diamondland, Diegusjaimes, Dwilches, El Pantera, Ezarate, Ferto, GermanX, HUB, HnZeKtO, Ialad, Isha,
Jaime Agudo, Jarisleif, Jesuja, Jkbw, Jugones55, Jvlivs, Leonpolanco, Logan Romero, LuisFausto, Macarrones, Maldoror, Matdrodes, Mikel Gmez, Muro de Aguas, Oblongo, Pablo323,
Pedroqtc, Piotr Zerynger, Q2, Risoto2000, Roberpl, RoyFocker, Sandralvaro, Sonett72, Tano4595, Tomatejc, Vaalt, Venturasr, Xhomet, Yoryo 77, Zanaqo, 174 ediciones annimas
Fuentes de imagen, Licencias y contribuyentes
File:SOA Elements.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:SOA_Elements.png Licencia: Creative Commons Attribution 2.5 Contribuyentes: Florian Lindner
(designer)
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

You might also like