viernes, 17 de abril de 2009

Java Business Integration, JBI. (2)

Modelo de Componentes.

BPEL Service Engine (SE).
Acerca de BPEL SE.
El BPEL SE proporciona servicios en tiempo de ejecución para el despliegue de procesos BPEL. El BPEL SE, se usa para ejecutar WS-BPEL 2.0 (o simplemente BPEL) compatible con los procesos de negocios. WS-BPEL 2.0 (Web Service Business Process Execution Language) es un lenguaje basado en XML usado para desarrollar Procesos de Negocio.
Los procesos de negocios típicamente implican el intercambio, o la orquestación, de mensajes entre los procesos y otros servicios conocidos como Partner Service (Proveedor de Servicio). El contrato entre un proceso de negocio y un proveedor de servicio se describe utilizando WSDL 1.1. El intercambio de mensajes entre un proceso de negocio y un proveedor de servicios es envuelto en los mensajes de un WSDL 1.1, tal como lo define un la especificación JBI, y el enrutamiento vía el NMR (Normalized Message Router) de JBI. El NMR interactua con servicios web externos, no residentes en la JVM local, vinculados por intermedio del Binding Components (BC). El BC es el responsable de encapsular los detalles específicos del protocolo utilizado. Las transacciones entre el BPEL SE, se colocan como un EJB o un componente Web que se manejan atreves del Java EE SE.
EL WS-BPEL 2.0 utiliza las especificaciones XML: WSDL 1.1, XML Schema 1.0, XPath 1.0 y XSLT 1.0. Hay que tener en cuenta que la especificación JBI está destinada a WSDL 2.0 y WSDL 1.1 quedara asumida por esta nueva versión. El BPEL SE soporta operaciones one-way, request-response (como se define en el WSDL 1.1), dentro de estado, de larga duración que involucran la interacción de dos o más partes. Asincrónico request-response se realiza mediante dos operaciones one-way, uno aplicado por un proveedor de servicio (Partner), el otro aplicado por el proceso de negocio utilizando una correlación.

JMS BC.
Acerca de JMS BC.
JBI es una arquitectura flexible y extensible que permite que los componentes JMS Binding Component utilicen el modelo de mensajería que separa los consumidores de servicios de proveedores de servicios. Este modelo de mensajería define el uso de WSDL, para describir las operaciones expuestas por el Binding Component. El WSDL se utiliza también para definir el nivel de transporte de los Binding para obtener las operaciones de los servicios en tiempo de diseño, se configura un JMS Binding Component para utilizar los elementos JMS extensibles en el WSDL.
La especificación JBI incluye un modelo que describe un intercambio de mensajes entre los mensajes de consumidores y mensajes de proveedores.
En un flujo de mensaje outbound, el JMS BC actúa como un proveedor de servicios. El JMS BC recibe un mensaje normalizado desde el Normalized Message Router (NMR), que convierte este mensaje a un mensaje JMS y luego envía el mensaje a un destino JMS.
En un flujo de mensaje inbound, el JMS BC actúa como un proxy de los consumidores, el JMS BC convierte el JMS mensaje este recibido desde un servicio JMS a un mensaje normalizado, y luego envía el mensaje normalizado como parte del intercambio de mensaje a otro componente quien haya solicitado el servicio.
El siguiente diagrama ilustra la relación entre el JMS Binding Componet y el JBI runtime enviroment, el tiempo de diseño (Netbeans) y otros componentes de JBI System Management.



Características de JMS BC.
Las características del JMS BC incluyen:
• Envíos de inbound y outbund de mensajes JMS (texto, binarios, xml).
• Recibo automático tipo acknowledgement de mensajes JMS inbound.
• Recepción batch de mensajes JMS inbound.
• Recepción inbound de mensajes JMS a través de un filtro de selección.
• Mapeo inbound de las propiedades JMS para las partes del mensaje normalizado NMR.
• Mapeo de las partes del mensaje NMR a mensajes JMS outbound.
• Normalización y des normalización de mensajes JMS y de las partes del mensaje en el WSDL.
• Invoca a operaciones request-response.
• Búsquedas JNDI a conection factories.
• Sincronización y concurrencia en modo CC.

Java Business Integration, JBI. (1)

JBI (Java Business Integration es una especificación desarrollada bajo la JCP y es un estándar basado en Java con el objetivo de abordar actividades para el desarrollo de Integración de Aplicaciones Empresariales (EAI, Enterprise Application Integration) y B2B (Business two Buiness) basados en los paradigmas y principios de la Orientación a Servicios (SOA). La referencia de JBI versión 2.0 en la JCP es el JSR-312.


Mediador basado en la Arquitectura.
JBI define una arquitectura basado en plug-in donde los servicios pueden ser conectados dentro del entorno JBI en tiempo de ejecución. JBI proporciona interfaces bien definidas para los servicios que interactúen con en un entorno JBI en tiempo de ejecución. Los servicios requieren ser expuestos por intermedio de una interfaz en el JBI runtime para que puedan ser ruteados los mensajes. El entorno de ejecución de JBI actúa como mediador entre los servicios que están deployados en el entorno.



El núcleo principal JBI runtime comprende de los siguientes componentes dentro de la misma JVM:
• Framework de Componente: Permite el deployment de diferentes tipos de componentes en el JBI runtime.
• Normalized Message Route: Permite un mecanismo estándar de intercambio de mensajes entre los servicios.
• Framework de Gestión: El framework de gestión permite el deploy, gestión y monitoreo de los componentes en tiempo de ejecución y está basado en JMX.

Modelo de Componentes.
JBI define dos tipos de componentes en el entorno de ejecución:
Service Engine (SE).
Son componentes responsables para la implementación de aplicaciones de lógica de negocios y otros servicios. Los componentes SE internamente pueden ser utilizadas en diferentes tecnologías y principios de diseño. Los componentes SE pueden ser tan simples como un componente que proporciona un servicio de bajo nivel como la transformación de datos y la traducción o algo más sofisticado, como por ejemplo un BPEL que contiene modelos de procesos de negocio.
Binding Component.
Son componentes que principalmente se utiliza para proveer un nivel de transporte a los servicios que están deployados en el JBI runtime. Los BC pueden ser de diferentes tipos e incluyen:
• Permite la comunicación remota con algún sistema externo usando protocolos de transporte estándar.
• Habilitar en la Maquina Virtual la invocación de dos servicios deployados en la misma Maquina Virtual.
• Habilita la comunicación entre servicios utilizando el estándar WS-I (Web Service Interoperability).
Un aspecto clave de JBI es el desacople entre el Service Engine (SE) y los Binding Component (BC) de modo que la lógica de negocio no es dependiente de los detalles de la infraestructura para invocar y/o consumir los servicios. Esto promueve una arquitectura flexible y extensible. Ambos componentes SE y BC de JBI pueden ser consumidores de servicios o proveedores de servicios.
Ambos componentes SE y BC proveen de interfaces para el JBI runtime para aceptar mensajes desde el JBI runtime.

Glassfish ESB V2.

Glassfish Enterprise Service Bus es un ligero y ágil plataforma de Bus de Servicios, basado en el proyecto Open Source openESB incluyendo todo los paquetes e innovación del proyecto, con el objetivo de ser un Enterprise Service Bus de clase mundial Glassfish ESB actualmente proporciona de una flexible y extensible plataforma para la construcción y deployment de aplicaciones SOA y soluciones de integración.

La plataforma consiste de un núcleo para el runtime de aplicaciones, componentes, herramientas para el tiempo de diseño y soporte por Sun Microsystem.
El núcleo de runtime está disponible de diversas formas, por ejemplo, cubicarse como un servidor independiente o con un servidor de aplicaciones.

La versión disponible para descargar y desarrollar desde el sitio de Sun contiene:
• Glassfish Application Server 9.1 v2.
• Open ESB Core Component V2.
• Java Business Integration (JBI) service engine.
• Java Business Integration (JBI) Binding component.
• Java Business Integration (JBI) component tooling.
• Sun JMS IQ Manager.
• Netbeans IDE 6.1.

Arquitectura.



Características.
Características de Glassfish Application Server.
• Full compatible con Java Enterprise Edition.
• Clustering para escalabilidad y alta disponibilidad.
• Fácil para mejorar el rendimiento.
• Fundación Open Source, Glassfish Application Server está basado en el proyecto Glassfish.
• Sofisticada Administración.
• Soporte integrado para el desarrollo.
• Interoperabilidad con Web Service .Net 3.0.
• Update center.
• Mejora la productivdad.