Esta pequeña explicación va dirigida a todas las personas que están interesadas en comprender un poco del mundo de SOA enfocado a la SOA Suite de Oracle la cual es una de las plataformas lideres del mercado.
Hoy en día los sistemas de información generan una gran cantidad de información mediante la operación del día a día. Estos sistemas generalmente están comunicados con otros sistemas o módulos para compartir o extraer información. Esta comunicación entre sistemas es llamado “Integraciones” y son muy importantes ya que de no existir los sistemas no se podrían comunicar y se generaría un caos.
Un ejemplo claro de integración:
Imagínate un sistema de punto de venta en donde se capturan las ventas diarias, se cobra y se consulta inventario. El punto de venta cada vez que realiza una venta tiene que descontar del almacén las unidades vendidas las cuales el Sistema de Almacén resta y lleva la cuenta para hacer los pedidos cuando la existencia esta bajando. Por otra parte las vendedoras consultan el inventario para saber si algún producto lo aun lo tiene en existencia y poder dar cotizaciones a los clientes.
Al finalizar el día todas las ventas se van al sistema de contabilidad para hacer las pólizas contables.
Si nos damos cuenta el sistema de ventas necesita una “Integración” constante con el sistema de Almacén ya que desde allí consulta la existencia pero también la modifica cuando venden.
Al final del día el sistema se tiene que “Integrar” con el sistema de contabilidad para realizar las pólizas.
Hora imaginemos que estas integraciones no existieran!!, Te imaginas como se pudiera operar si esta comunicación con los sistemas no se pudiera dar o no fuera eficiente?
SOA Composite
Bien un composite es donde diseñamos a un alto nivel la integración o Integraciones las cuales serán expuestas como servicios para que los sistemas los consuman y logren la integración.
Una composición SOA se divide en tres secciones:
- Exposed Services: En esta sección describimos la forma en que expondremos los servicios ante los consumidores(Aplicaciones), esta sección podemos exponer WebServices, EJB, Servicios HTTP, Sockets los cuales sirven para que los clientes puedan iniciar la integración bajo demanda, pero también existen métodos que hacen que muestra integración se ejecutaba bajo algún evento en especial como por ejemplo, Colas de mensaje(Queue) JMS, Base de datos(Poolling), B2B. En resumen esta sección representa la entrada de la integración y el inicio de su ejecución.
- External References: En esta sección ponemos los servicios externos que requeriremos para que nuestra integración se pueda realizar. Aquí podemos poner WebServices, Base de datos, HTTP, Colas de mensaje, B2B,etc.
- Components: Aquí es donde se programa las acciones a seguir para que nuestra integración realice lo que esperamos, A qui podemos poner BPEL, Human Task, Business Rules,BPM las cuales son componentes diseñados para atacar diferentes problemáticas.
Un composite para la integración del sistema de punto de ventas y almacén se vería algo a sí
Fig.1: Composite para integrar Punto de venta con Almacén.
En la figura anterior podemos ver que tenemos dos servicios del lado izquierdo los cuales representa los servicios que estamos exponiendo para ser consumidos por el Punto de venta.
En medio vemos dos BPEL(En Azul) los cuales se encargan de Orquestar las acciones necesarias para realizar la operación deseada.
Y del lado derecho tenemos el WebService que expone el almacén, el cual tiene las operaciones consultaExistencia y actualizarExistencia necesarias para realizar la integración.
Por ultimo les dejo esta liga donde donde podrán encontrar mucha mas información de lo que es un Composite
http://docs.oracle.com/cd/E14571_01/integration.1111/e10223/arch_02.htm
Muy buen artículo.
Saludos.
Muchas gracias Fredy
Muchas gracias Oscar, excelente y fácil explicación de entender para iniciarse en las definiciones y herramientas Oracle.
Gracias Galo, me alegra que te haya sido de utilidad 🙂
Saludos, muchas gracias por compartir tus conocimientos, yo estoy aprendiendo porque en mi trabajo usamos soluciones de Oracle, por favor sigue compartiendo más información.
Hola Richard, gracias por tu comentario, veré que puedo escribir en el futuro 🙂