Академический Документы
Профессиональный Документы
Культура Документы
Resumen.
Este trabajo aborda un estudio de las distintas arquitecturas de
integracin existente. Se pretende profundizar en el anlisis y
estudio de la arquitectura orientada a servicios (Service
Oriented Architecture SOA por sus siglas en ingls) como
estrategia ms eficiente para la lograr una solucin de
integracin exponiendo sus caractersticas fundamentales. Se
realiza el estudio de la categora de software ESB (Enterprise
Service Buses) para la implementacin de la arquitectura
orientada a servicios y su comparacin con la arquitectura
EAI (Enterprise Application Integration por sus siglas en
ingls) a travs de los EAI brokers. Se analiza la relacin
existente entre BPM (Business Process Management por sus
siglas en ingls) y SOA. Y se caracterizan los estndares
BPEL para la orquestacin de servicios y JBI como propuesta
para la estandarizacin de los componentes en un ESB.
II. ARQUITECTURA ORIENTADA A SERVICIOS (SOA) El servicio proveedor debe recordar el nombre de Bruce
para responder la segunda pregunta, lo cual introduce un
La arquitectura orientada a servicios se refiere a la elemento de complejidad en la implementacin del servicio y
capacidad de implementar una arquitectura que est soportada lo obliga a depender del otro servicio. La conversacin debe
por la creacin de servicios que satisfagan los requerimientos ser redefinida de la forma siguiente: [4]
del usuario.
Solicitante: Cual es el balance de la cuenta de Bruce?
SOA es una plataforma que permite construir sistemas Proveedor: $x
distribuidos que ofrezcan funcionalidades en la forma de Solicitante: Y cual es lmite de crdito de la cuenta de
servicios orientados al usuario final de la aplicacin. Puede Bruce?
estar basado en Web services para implementar las Proveedor: $y
caractersticas fundamentales de la arquitectura pero puede La granularidad de los servicios constituye otro aspecto a la
construirse a travs de otras tecnologas. hora de disear un servicio. Por granularidad se entiende el
Sin embargo la implementacin ms recomendada es a nivel de desmembramiento en funcionalidades de un caso de
uso o proceso de negocio que expone un servicio. [5] El uso
CCIA2008 3
comunicacin de un servicio con el resto y la mediacin entre La transformacin XML es una funcionalidad del ESB que
esta interfaz y el proveedor real del servicio. Consta de cuatro incorpora motores de transformacin y parseadores de
aspectos: MOM (Message Oriented Middleware por sus siglas mensajes que permiten la transformacin de los mensajes. En
en ingls), Servicios Web (Web Services por sus siglas en muchas ocasiones el formato de salida de un servicio no
ingls), enrutamiento inteligente basado en contenido y corresponde con el formato de entrada del siguiente servicio y
transformacin de datos XML(eXtensible Markup Language se hace necesaria la incorporacin de un mecanismo que
por sus siglas en ingls).[8] transforme el mensaje de acuerdo al formato deseado. De
forma general esta transformacin se hace a travs de un
La tecnologa MOM es una parte clave de la arquitectura XSLT (Extensible Stylesheet Language Transformations por
ESB pues provee el soporte que el ESB necesita para enrutar sus siglas en ingls) que se le aplica al mensaje para obtener el
los mensajes dentro y fuera del entorno empresarial. MOM es formato de salida deseado. [10]. El ESB contiene servicios de
una tecnologa que consiste en la transmisin de datos entre transformacin para ejecutar estas funciones.
aplicaciones usando un canal de comunicacin que lleva
unidades de informacin autocontenidas (mensajes). En un El ESB permite la definicin de servicios independientes de
ambiente de comunicacin basado en la tecnologa MOM los la plataforma. Se encarga de definir una interfaz para el
mensajes pueden ser enviados y recibidos asincrnicamente o servicio y de la comunicacin de esta interfaz con la
sincrnicamente. Esta tecnologa proporciona un mtodo plataforma de implementacin del servicio. Incorpora
fiable de almacenamiento y reenvo de manera que se capacidades de registro de servicios con el objetivo de
garantiza la calidad de la entrega en caso de fallos en la red. controlar los servicios disponibles lo cual fomenta la
[9] reutilizacin. Posee alta extensibilidad, o sea puede soportar
servicios implementados en diferentes mbitos como J2EE,
El enrutamiento inteligente basado en contenido es una C++ y .Net. Permite la definicin de coreografas de servicios
funcin que cumple el ESB para hacer llegar el mensaje con los disponibles en el bus con el objetivo de dar repuesta a
enviado hacia su destino. En un ESB los datos son enviados funcionalidades complejas del proceso de negocio. Posee
entre los puntos finales (endpoints) a travs del uso de mecanismos de monitorizacin de la calidad y disponibilidad
mensajes. Como endpoints se puede entender cualquier de los servicios registrados, as como integridad transaccional
componente de software que est en el lado de una cuando una funcionalidad involucra la ejecucin de varios
comunicacin ya sea un servicio o una aplicacin. Existen servicios. [7]
dos tipos de enrutamiento. En el primer caso el mensaje con
una peticin de servicio llega al Bus y este lo hace llegar a su Muchos ESB se basan en un patrn de intercambio de
destino. En el segundo caso el mensaje que llega al Bus puede mensajes (MEP por sus siglas en ingls) sncrono, el usuario
poseer informacin en su contenido que haga que el Bus deba lanza una peticin y espera por una respuesta del cliente,
intervenir para ejecutar reglas de negocio o informacin como es el caso de SOAP sobre HTTP, sin embargo para la
acerca del itinerario que debe seguir el mensaje a travs del integracin de aplicaciones empresariales con un determinado
ESB para llegar a su destino. [7] nivel de complejidad en sus procesos de negocio en muchos
casos se hace necesario esperar tiempos prolongados por la
Los servicios Web constituyen un producto de software que respuesta del servicio lo que introduce la comunicacin
rene un conjunto de protocolos y estndares que se utilizan asncrona, MEP asncrono, este patrn asncrono se puede
para lograr la comunicacin entre aplicaciones sobre una red implementar a travs de SOA con JMS(Java Message
con independencia de la plataforma. Los estndares utilizados System por sus siglas en ingls).[7]
son los siguientes: XML, SOAP (Simple Object Access
Protocol por sus siglas en ingls), WSDL (Web Services El mayor beneficio que aporta la implantacin de un ESB
Description Languages por sus siglas en ingls), UDDI es la racionalizacin que hace de los activos tecnolgicos en la
(Universal Description, Discovery and Integration por sus empresa. Luego de resolver los problemas de compatibilidad
siglas en ingls). Ms adelante se explicar el funcionamiento entre el ESB y el sistema que lo proporciona, los servicios son
y el papel que cada estndar juega en la tecnologa. Debido a expuestos una vez y pueden ser reutilizados todas las veces
que los estndares utilizados son abiertos, o sea Open Source, necesarias para satisfacer las funcionalidades de los procesos
las diferentes plataformas pueden acceder a sus de negocio.
especificaciones de forma gratuita y desarrollar productos que
se basen en ellos. Varias compaas han desarrollado IV. TOPOLOGAS ESB
componentes de software basados en estos estndares como
por ejemplo Microsoft Corp. con su .Net y Sun Microsystem El uso de los ESB para la implementacin de una
con J2EE. Este hecho fomenta la interoperabilidad, pues las arquitectura SOA ofrece dos posibilidades de diseo desde el
aplicaciones comienzan a incorporar un lenguaje comn para punto de vista de la distribucin de los nodos [11]:
comunicarse.
CCIA2008 5
1. ESB unificado escalabilidad que un broker EAI. Esto permite que los ESB
2. ESB distribuido puedan ser usados para modelar aplicaciones en un entorno
distribuido. [3,13]
El ESB unificado es la implementacin de diseo que se
muestra en la figura 3. En esta implementacin todas las reas La arquitectura de un broker EAI es anterior al surgimiento
de negocio registran servicios en un ESB nico. En este tipo de SOA por tanto debe adaptarse para ofrecer una
de topologa los diferentes departamentos o reas de negocio implementacin orientada a servicios a diferencia de los ESB
se integran de forma central, elemento que les quita un poco que son desde su surgimiento orientados a servicios y por
de flexibilidad; sin embargo con este tipo de diseo se lleva tanto permiten explotar todos los beneficios de esta
un control de todos los servicios existentes lo cual permite tecnologa. [3,13]
aplicar las estrategias de reutilizacin. Tambin la
monitorizacin y administracin del servidor se simplifica Por tanto se considera que para la implementacin de una
pues todos los servicios estn registrados en un nico punto. arquitectura orientada a servicios un ESB sera la solucin
ms ptima.
En el caso de la topologa de ESB distribuido este diseo le
ofrece ms flexibilidad a los departamentos para que
orquesten sus propios servicios. Se debe tener en cuenta que VI. IMPLEMENTANDO SOA A TRAVS WEB SERVICES
en este tipo de diseo contaremos con un conjunto de ESB
funcionando al unsono y registrando servicios. Se hace La solucin de implementar SOA utilizando Web services
necesario contar con un mecanismo que muestre los servicios es una de las estrategias ms recomendada. El uso de Web
actualmente activos con el objetivo de favorecer la Services tiene como funcin fundamental la de lograr el
reutilizacin y no caer en redundancias. Si en un servicio se intercambio de informacin entre aplicaciones con
produce algn cambio este debe ser notificado a todos los independencia de la plataforma y basado en estndares
ESB que hagan uso de l. Los mtodos de comunicacin entre abiertos (por estndares abiertos se entiende la definicin de
los ESB deben garantizar la fiabilidad de los datos. [11,12] estndares que son publicados bajo licencias gratuitas). Con el
uso de los servicios web las aplicaciones pueden compartir
Este diseo distribuido se utiliza de acuerdo a la informacin con otras a travs de Internet de forma que el
complejidad existente en las reas de negocio. Si los procesos servicio se publica una vez y este puede ser accedido tantas
que se deben automatizar se bifurcan en complejos procesos veces sea necesario lo cual fomenta la integracin.
en cada departamento se debe pensar en esta solucin
teniendo en cuenta los elementos antes mencionados. La "Un Web Service es un componente de software que se
comunica con otras aplicaciones codificando los mensaje en
solucin de un ESB unificado se puede utilizar cuando la
XML y enviando estos mensaje a travs de protocolos
complejidad es menor y se debe tener en cuenta que con esta
estndares de Internet tales como el Hypertext Transfer
solucin la monitorizacin se simplifica y se tiene ms control
Protocol (HTTP) Intuitivamente un Web Service es similar a
sobre la reutilizacin de los servicios; sin embargo con el un sitio web que no cuenta con un interfaz de usuario y que da
diseo distribuido aumentan los aspectos a controlar pero se servicio a las aplicaciones en vez de a las personas. Un Web
explotan todas las posibilidades de este tipo de arquitectura . Service, en vez de obtener solicitudes desde el navegador y
[11,12] retornar paginas web como respuesta, lo que hace es recibir
solicitudes a travs de un mensaje formateado en XML desde
una aplicacin, realiza una tarea y devuelve un mensaje de
V. COMPARACIN ENTRE ESB Y EAI BROKERS respuesta tambin formateado en XML.[14]
Los ESB, como implementacin mas extensiva de SOA y
los EAI brokers, como categora de software que implementa Funcionamiento
la arquitectura EAI , surgieron con el objetivo de fomentar la
integracin y la interoperabilidad entre aplicaciones. La
El objetivo del uso de los web services es exponer una
diferencia fundamental es acerca de los costes de implantacin funcionalidad a travs de una red con el objetivo de que otras
debido a que la mayora de las soluciones EAI usan formatos aplicaciones hagan uso del servicio que se expone. Para que
propietarios para su funcionamiento interno a diferencia del las aplicaciones puedan conocer los servicios existentes estos
ESB el cual tiene implementaciones basadas en estndares deben publicarse en algn registro desde el cual puedan ser
abiertos. Esto permite que los costes de implantacin de un localizados por las aplicaciones. Este proceso de
ESB sean ms bajos que los EAI. [3,13] descubrimiento se hace a travs del estndar UDDI. Luego de
que la aplicacin ha localizado el servicio debe obtener una
Las topologas de los brokers EAI tienen una arquitectura descripcin del mismo para poder utilizarlo. La descripcin se
centralizada, los ESB aunque pueden tener una topologa especifica a travs del estndar WSDL el cual proporciona
unificada pueden ser implementados con una arquitectura informacin acerca de la interfaz del servicio. Una vez que el
distribuida. Por tanto la arquitectura ESB tiene una mayor cliente se ha informado acerca de la descripcin se dispone a
CCIA2008 6
utilizar el servicio y para esto el cliente y el servidor deben ser proporcionada por el usuario.
definir un formato de mensaje estndar para establecer la 3. Definicin de los procesos automatizables, con esta
comunicacin: SOAP(Simple Object Access Protocol) . Este funcionalidad se establecen las conexiones entre las
protocolo define el formato del mensaje y XML es el estndar reas de negocio, los sistemas involucrados y los
escogido para codificar los mensajes. De esta forma para la actores.
comunicacin entre la aplicacin cliente y el servidor ambos 4. Ejecucin de procesos; con esta funcionalidad se
intercambian mensajes XML con un formato de mensaje puede llevar a cabo la comunicacin real con los
especificado por SOAP. Una vez que se han especificado los sistemas que representan los procesos de negocio.
mensajes estos deben viajar por algn protocolo de transporte 5. Monitorizacin desde el punto de vista del negocio
como por ejemplo http o smtp para llegar a su destino. De esta (Business Activity Monitoring BAM).
forma se puede apreciar que los webservices son una ptima
solucin para la comunicacin entre aplicaciones pues hacen Los productos disponibles en el mercado se pueden dividir
uso de estndares para su funcionamiento. [15] en los que proporcionan solo la diagramacin de los procesos
a nivel de negocio; los que permiten la ejecucin y
monitorizacin de los procesos y aquellos que cumplen ambas
VII. BPM (BUSINESS PROCESS MANAGEMENT) funciones. [2]
La necesidad de garantizar una interaccin adecuada y
eficiente (en tiempo de diseo) entre los servicios que se En general los productos BPM han surgido para centrar la
exponen en un ESB introduce el tema de BPM. La adopcin atencin del desarrollo de software en la gestin de los
de una herramienta BPM permite que los analistas de negocio procesos de negocio, dndole a esta rea el papel rector de la
participen activamente en el diseo de los procesos que luego elaboracin del software.
sern automatizados a travs de una arquitectura SOA. En la
etapa de diseo los analistas pueden monitorizar y optimizar el Sinergia entre BPM y SOA
proceso de forma que cuando estos procesos se conviertan en
colaboraciones de servicios representen eficientemente la Las reas de negocio con el objetivo de automatizar los
funcionalidad que se requiere de ellos. Los productos BPM y procesos deben apoyarse en el rea de TI(Tecnologas de la
sus conceptos asociados pueden proporcionar la tecnologa Informacin). En muchos casos la solucin es la compra de
necesaria para que los usuarios de negocio puedan definir, algn producto de software, la adaptacin de alguna
simular y monitorizar procesos, reduciendo as los problemas herramienta open source o el desarrollo de un software que
de comunicacin entre las reas de negocio y el rea de satisfaga los objetivos a la medida. Esto en la mayora de los
tecnologa () ser el rea de tecnologa quien se encargar casos requiere de un gasto de tiempo en un entorno dinmico
de conectar las actividades del proceso con sistemas y roles donde nuevos requerimientos y reajustes pueden surgir
concretos para su automatizacin. Es en esta conexin donde rpidamente. Con el objetivo de adaptarse ofreciendo una
las arquitecturas orientadas a servicios pueden ser de gran solucin viable y que consuma el menor tiempo posible ha
ayuda, racionalizando los sistemas (y los servicios asociados) surgido la unin de estas dos tecnologas BPM y SOA.
que tendrn que ser utilizados por los procesos, permitiendo
la automatizacin gil de los procesos definidos por las reas Con el empleo de BPM podemos representar nuestros
de negocio.[2] procesos de negocio. Esta representacin permite la
optimizacin de los procesos y brinda una visibilidad general
Los productos BPM son una categora de software que del funcionamiento de las reas. Cada proceso de negocio
realiza un nfasis en la definicin y diagramacin de los representado se divide en pequeas partes o actividades
procesos de negocio con el objetivo de que el desarrollo del independientes entre si. La implementacin de estas
software est orientado hacia la optimizacin de los procesos actividades como servicios independientes usando SOA nos
de negocio. Estos productos incorporan el uso de estndares lo permite implementar esta sinergia. La adopcin de SOA nos
cual hace posible la interoperabilidad. Con el uso de facilita la comunicacin con sistemas subyacentes. De esta
herramientas generadoras de cdigo apoyadas en el diseo forma las reas de negocio perfeccionan los procesos a travs
permiten reducir el tiempo de codificacin del software e de BPM e implementan las soluciones tecnolgicas a travs de
incrementan el anlisis, evaluacin y monitorizacin desde el la creacin de servicios los cuales al contar con una nica
punto de vista del negocio. [2] interfaz pueden irse mejorando continuamente. Las
capacidades para la integracin entre aplicaciones y la
Los productos BPM ofrecen diferentes funcionalidades: reutilizacin que proporciona SOA nos permiten acortar el
tiempo de desarrollo de soluciones tecnolgicas que a la larga
1. Diagramacin de los procesos de negocio, redundarn en mayor eficiencia en la produccin y
acompaados con su documentacin. Este diseo no mantenimiento de software. [16]
permite directamente su automatizacin.
2. Simulacin y anlisis de procesos permitiendo definir
para cada actividad aspectos relacionados con el
rendimiento. La informacin para la simulacin debe
CCIA2008 7
VIII. BPEL. UN LENGUAJE DE ORQUESTACIN publica en el bus. Bajo un contenedor BPEL se pueden alojar
Lenguaje de Ejecucin de Procesos de Negocio (Business tantos procesos como se desee. Esto facilita la reutilizacin de
Process Execution Language BPEL por sus siglas en ingls) los servicios as como provee un entorno flexible para el
es un lenguaje creado con el objetivo de representar los desarrollo de soluciones tecnolgicas. [19]
servicios web con una lgica de negocio que responda a los
procesos que se desean automatizar. [17] Entre las principales caractersticas estn [19]:
Es un lenguaje creado por BEA Systems, IBM y Microsoft y 1. Permite la representacin de procesos ejecutables a
actualmente se encuentra en revisin bajo OASIS travs de la descripcin del comportamiento de un
(Organization for the Advancement of Structured Information elemento en un flujo de negocio especfico.
Standards por sus siglas en ingls) .Se codifica en XML y se 2. Permite la representacin de procesos abstractos a
desarroll a partir de WSDL y XLANG, dos estndar que travs de la diagramacin de los mensajes
estn basados en la descripcin de servicios web. intercambiados entre los diferentes servicios web
envueltos en la ejecucin del proceso de negocio.
Es un lenguaje de orquestacin a travs del cual un analista de 3. Con l se pueden representar expresiones y
negocio puede representar el comportamiento de un flujo de consultas (queries) en mltiples lenguajes. Soporta
negocio determinado a travs de elementos que se XPath 1.0
relacionan. Los elementos a travs de los cuales se ejecuta el 4. Incluye elementos de programacin estructurada
flujo son los servicios web y la forma en que estn como "if-then-elseif-else", "while", "sequence"
organizados es la lgica BPEL. En esencia es un documento (posibilita la ejecucin de comandos en orden) y
XML donde se representa la lgica de un proceso de negocio "flow" (posibilita la ejecucin de comandos en
a travs de la organizacin de servicios web. paralelo).
5. Se pueden representar instancias de procesos y
Para la ejecucin de un proceso BPEL este requiere de un mensajes.
motor BPEL, el cual le proporcione un ptimo control sobre la 6. Permite la recuperacin del estado del proceso frente
ejecucin del proceso. Usualmente los motores proveen el a fallos y condiciones excepcionales.
control sobre las instancias que se estn ejecutando y sobre su
finalizacin. Pueden controlar procesos asncronos o sea que
requieran largos periodos de espera permitiendo su En la figura siguiente se puede apreciar la integracin entre las
monitorizacin. De esta forma usando un motor BPEL se tecnologas BPM, BPEL y ESB. Con BPM los analistas de
pueden desplegar todos los procesos de forma centralizada negocio modelan, documentan y simulan los procesos a
facilitando su administracin. [18] automatizar, con la ayuda del lenguaje de ejecucin de
procesos BPEL exportan estos modelos a un formato
Algunos de los motores mas populares estn basados en Java comprensible para que sea interpretado por el orquestador de
EE, entre los que se incluyen Oracle BPEL Process Manager, servicios de un ESB el cual permite ejecutar colaboraciones de
IBM WebSphere Business Integration Server Foundation, servicios que le aportan al ESB mayor capacidad funcional
BEA WebLogic Integration y AquaLogic. Tambin hay al para ejecutar los procesos de negocio.
menos cuatro motores de cdigo abierto disponibles:
ActiveBPEL Engine, FiveSight PXE, Bexee y Apache Agila.
[18]