Open Source SOA

         Lenin David Lozano
Consultor Especialista en Arquitectura
         Procesix Colombia
                2010
•   Que es SOA
•   Componentes en SOA
•   SOA Open Source
•   Iniciativa SOA de Eclipse
• Por qué SOA y no BPM?
•   Inflexibilidad
•   Acoplamiento fuerte
•   Costos altos por los cambios
•   Muy poco reuso

• Si nada cambia, no hay problema
    – Pero…. “Lo única cosa constante, es el cambio”.


• Que hacer?
    – Crear servicios reusables
    – Promover el bajo acoplamiento
• Partir la definición
     – Arquitectura.
     – Orientado a Servicios.
• Existen muchas definiciones acerca de la “orientación por
  servicios”.
• Igual que siempre se busca: Separación de intereses.
• Existe una diferencia, y es la forma como la separación
  se logra.
• Va mas allá de la tecnología y las soluciones de
  automatización.


30 de noviembre de 2011   Arquitecturas Orientadas a Servicios   7
• SOA entrega los beneficios de la descomposición
  funcional.
• Como con la bicicleta, se pueden comprar partes de
  diferentes proveedores y armarla según nuestras
  necesidades.




30 de noviembre de 2011   Arquitecturas Orientadas a Servicios   8
• Cada quien propone una nueva definición de SOA. Por
  eso es posible decir que no hay una oficial.
• OASIS(Modelo de Referencia): “Paradigma para
  organizar y utilizar características distribuidas que pueden
  estar bajo el control de diferentes dominios. Esta provee
  una manera uniforme de ofrecer, descubrir, interactuar y
  usar características para producir efectos deseados
  consistentes a precondiciones y expectativas medibles.”
     – Necesidades del negocio vs Capacidad de IT.
• Algunos ven SOA desde un punto de vista tecnológico y
  otros lo ven desde un punto de vista de negocio.


30 de noviembre de 2011   Arquitecturas Orientadas a Servicios   9
• Basado en un estilo
                                                        arquitectónico Broker.
                                                      • Interacción entre:
                                                             – Proveedor de Servicio
                                                             – Consumidor de Servicio
                                                             – Broker de Servicios




30 de noviembre de 2011   Arquitecturas Orientadas a Servicios                          10
30 de noviembre de 2011   Arquitecturas Orientadas a Servicios   11
• Cuando se habla de SOA existe un glosario de términos
  que pueden abrumar a las organizaciones.

• Cada elemento en la infraestructura SOA cumple su rol
  para habilitar tecnológicamente BPM.
• Realmente no es un componente de SOA, es parte del
  ciclo de BPM.
• Se realiza por medio de herramientas CAD.
• Por lo general se modela usando BPMN
• Permiten traducción a BPEL, XPDL, JPDL
• Un servicio es una tarea REPETIBLE que realiza por una
  persona o un grupo de personas para el beneficio de otro.
• Tecnológicamente hablando
   – Es igual que la definición de COMPONENTE (Quien se
     atreve?)
   – Un mecanismo que permite la invocación en una manera
     distribuida
   – Un mecanismo para realizar introspección dinámica de las
     interfaces
   – No se comparte estado entre servicios
   – Invocación Asíncrona.
   – Protocolo estándar para envío de mensajes.
• Habilitadores tecnológicos de la computación distribuida…
   – WTF?
• Son los que permiten la exposición de los casos de uso o
  funcionalidades para que sean usados remotamente.
• Se aplica una arquitectura RPC
• Son heterogéneos.
   –   XML sobre HTTP
   –   Web Services
   –   RMI/IIOP
   –   DCOM
   –   COM+
   –   Rosetta
   –   Cobol Adapters
   –   Screen Scrappers
• Conjunto de componentes que interconectan capas de
  negocio con servicios de integración:
   –   Enrutamiento de datos
   –   Transformación de datos
   –   Transformación de protocolos
   –   Mapeo de servicios
   –   Procesamiento de mensajes
   –   Gestión de transacciones
   –   Seguridad
   –   Alertamiento
• Aplicación del patrón BROKER
• Lógicas de Decisión
   – Políticas, requerimientos y condicionales que son usados
     para determinar acciones tácticas que se dan en
     aplicaciones.
   – Silogismos

• BRMS
   – Business Rules Management System
   – Se usa para definir, monitorear y ejecutar las reglas de
     negocio que son usadas por un sistema en una
     organización.
   – Motores de Inferencia.
   – Sistemas Expertos.
• Motor de Orquestación de Procesos.
• Encargado de la ejecución secuencial de tareas de
  negocio implementadas por aplicaciones.
   – Solo aplicaciones?????
   – BPEL4People


• Por lo general interpretan un lenguaje de ejecución de
  procesos
   – BPEL
   – XPDL
   – JPDL
• Portales y Frameworks de portales

• Ofrecen un esquema de integración de la vista.
• Táctica de Usabilidad – One Single View.

• Los portales o frameworks de portales son la parte final de la
  infraestructura SOA.
• Conceptualmente es lo mas difícil de entender.
• Permiten el ofrecimiento de SERVICIOS desde diferentes
  aplicaciones en una sola aplicación de usuario final por medio
  de PORTLETS.
• Potenciado con RIA (Rich Internet Applications).
• Mashups???
• Business Activity Monitoring (BAM) es un termino acuñado por
  Gartner.
• También conocido como Procesamiento Complejo de Eventos (CEP)
   – “Tecnología de software que habilita a las aplicaciones para que
     monitoreen varios canales de comunicación de datos, analizarlos
     en términos de KPI que son expresadas en reglas de eventos, y
     actúan sobre oportunidades y amenazas en tiempo
     real, potencialmente por la creación de eventos derivados o
     reenviando eventos”.
• Otra forma de hacer inteligencia de negocio.
• Habilitador para la toma de decisiones en tiempo real.
• Prueba antes de comprar
   – Prototipos antes de gastar grandes sumas de dinero.
• Bajo costo de inicio
   – El costo de las herramientas puedes ser altísimo.
• Soporte efectivo al costo
   – El soporte Open Source es sustancialmente menor.
• Core competente.
   – Los componentes comerciales muchas veces son creados
     a partir de componentes dispersos.


• Por la gente, para la gente.
• Existen muchas herramientas gratis para esta parte del
  BPM.
• Depende de la notación o lenguaje para escogerla.
• Ingeniería Directa para llegar a BPEL o XPDL.
• Existen herramientas Online.

   –   Intalio Designer (http://www.intalio.com/bpms/designer)
   –   Bizagi Process Modeler (http://www.bizagi.com)
   –   Together XPDL Workflow Editor (http://www.together.at)
   –   Eclipse BPEL Designer
• Java Business Integration
• Un estándar Java para SOA.
• Permite tener Integración de Aplicaciones de Negocio.
   –   Arquitectura basada en plugins
   –   Modelo de mensajería
   –   Gestión de Componentes
   –   Roles
   –   Modelo de Componentes
• Motor       de     Web        Services   de     Apache
  (http://ws.apache.org/axis2/).

• Sucesor de Apache Axis.
• Se implementa con componentes en C y en Java.
   –   Soporte de SOAP 1.1 y 1.2 y WS tipo REST.
   –   Soporte WS-*
   –   Velocidad en procesamiento de XML
   –   Web Services Asíncronos
   –   Multiples esquemas de transporte (SMTP, FTP, MOM,
       HTTP)
• Java EE Connector Architecture.
• Permite la conexión de Servidores de Aplicaciones y
  Sistemas de Información Empresarial para crear EAI.
• JCA es genérico para la conexión con sistemas legados.
• Provee
   – Gestión de transacciones.
   – Gestión de la conexión.
   – Gestión de seguridad.




                                 Copyright Imagen: Oracle
• Java Messaging Services

• Permite la creación de servicios asíncronos por medio de
  un esquema de publicación – suscripción.
• Combina SOA con EDA
• Construido sobre JBI para la integración.
• Liviano - Clustering
• Soporte de Spring Integrado.
• Puede ser usado embebido en una APP o como un ESB
  stand-alone.
• Usa ActiveMQ                            Copyright Imagen: Apache

• Se puede usar como base
    –   Jboss
    –   Tomcat
    –   Oracle
    –   Glassfish
• Basado en OpenESB.
• Usa un núcleo basado en JBI.
• Ofrece una arquitectura de bajo acoplamiento que
  permite el cambio del ESB mas fácilmente.
• Herramientas de diseño
• Herramientas de ejecución

• JEE Compatible
• Clustering
• Web Services .NET 3.0
• ESB con arquitectura extensible bajo el modelo de
  plugins de Jboss.
    – Permite la integración de servicios de infraestructura.
•   Kernel JMX                           Copyright Imagen: Redhat
•   Clustering
•   BPEL 2.0
•   WS-*
    – SOAP 1.2
    – WSDL 1.1
• Es una plataforma de integración de reglas de negocio
• Creado por Jboss – Redhat.

• Ofrece
   –   Suite de Gestión de Reglas de Negocio
   –   Gestión de Flujos de Reglas de Negocio
   –   Motor de Inferencia
   –   Razonamiento temporal y procesamiento de eventos.
• Plataforma integral para gestión de procesos de negocio.
• Incorpora:
   –   Diseñador BPMN
   –   ESB
   –   ECM
   –   Portal (XHTML)
   –   BAM
   –   BRE
   –   Human Workflow (Tempo)
• Componente de la plataforma BPM de JBoss
• Motor de ejecución de procesos de negocio que se puede
  ejecutar embebido en una aplicación o stand-alone
• Soporta el control del flujo transaccional en Java.
• Soporte de JPDL pero traducido desde BPMN.
• Orchestration Director Engine (http://ode.apache.org/).
• Permite la ejecución de procesos de negocio usando WS-
  BPEL.
• Soporta BPEL 2.0 y BPEL 1.1
• Comunicación por 2 capas
   – Axis 2
   – JBI (Se basa en ServiceMix)
• Soporte de REST
• Despliegue en caliente de procesos
• Dashboards
   – Monitoreo de datos de servicios
   – Monitoreo de datos de mediación
   – Analisis de servicios
   – Analisis de mediaciones
• Trabajan basados en Gadgets.
• Portal de integración web creado por Jboss.
• Permite la visualización de información proveniente de
  diversas fuentes de información en una sola vista.

• Video Promo
• Misión
  – Entregar una plataforma   SOA   integrada   para   los
    desarrolladores.
• Proveer un framework SOA extensible.
• 3 Estándares relevantes
   – SCA
      • Modelo de programación, formato de descripción
   – JBI
      • Enrutamiento de mensaje, abstracción del mensaje
   – OSGi
      • Modelo de componentes
• SOA no es nuevo
• No es un elefante blanco (aunque en el gobierno lo
  pueden tomar así… afirmación personal irresponsable)
• SOA no es solo Web Services.
• SOA es un cambio en la manera de pensar.

• No se puede hacer SOA siendo desarrollador… FALSO.
• Solo se puede hacer SOA comprando grandes paquetes..
  FALSO.

• Lo mas importante… NO ES UNA SOLUCION AL
  HAMBRE Y LA PAZ DEL MUNDO..
SOA Open Source

SOA Open Source

  • 1.
    Open Source SOA Lenin David Lozano Consultor Especialista en Arquitectura Procesix Colombia 2010
  • 2.
    Que es SOA • Componentes en SOA • SOA Open Source • Iniciativa SOA de Eclipse
  • 3.
    • Por quéSOA y no BPM?
  • 6.
    Inflexibilidad • Acoplamiento fuerte • Costos altos por los cambios • Muy poco reuso • Si nada cambia, no hay problema – Pero…. “Lo única cosa constante, es el cambio”. • Que hacer? – Crear servicios reusables – Promover el bajo acoplamiento
  • 7.
    • Partir ladefinición – Arquitectura. – Orientado a Servicios. • Existen muchas definiciones acerca de la “orientación por servicios”. • Igual que siempre se busca: Separación de intereses. • Existe una diferencia, y es la forma como la separación se logra. • Va mas allá de la tecnología y las soluciones de automatización. 30 de noviembre de 2011 Arquitecturas Orientadas a Servicios 7
  • 8.
    • SOA entregalos beneficios de la descomposición funcional. • Como con la bicicleta, se pueden comprar partes de diferentes proveedores y armarla según nuestras necesidades. 30 de noviembre de 2011 Arquitecturas Orientadas a Servicios 8
  • 9.
    • Cada quienpropone una nueva definición de SOA. Por eso es posible decir que no hay una oficial. • OASIS(Modelo de Referencia): “Paradigma para organizar y utilizar características distribuidas que pueden estar bajo el control de diferentes dominios. Esta provee una manera uniforme de ofrecer, descubrir, interactuar y usar características para producir efectos deseados consistentes a precondiciones y expectativas medibles.” – Necesidades del negocio vs Capacidad de IT. • Algunos ven SOA desde un punto de vista tecnológico y otros lo ven desde un punto de vista de negocio. 30 de noviembre de 2011 Arquitecturas Orientadas a Servicios 9
  • 10.
    • Basado enun estilo arquitectónico Broker. • Interacción entre: – Proveedor de Servicio – Consumidor de Servicio – Broker de Servicios 30 de noviembre de 2011 Arquitecturas Orientadas a Servicios 10
  • 11.
    30 de noviembrede 2011 Arquitecturas Orientadas a Servicios 11
  • 12.
    • Cuando sehabla de SOA existe un glosario de términos que pueden abrumar a las organizaciones. • Cada elemento en la infraestructura SOA cumple su rol para habilitar tecnológicamente BPM.
  • 13.
    • Realmente noes un componente de SOA, es parte del ciclo de BPM. • Se realiza por medio de herramientas CAD. • Por lo general se modela usando BPMN • Permiten traducción a BPEL, XPDL, JPDL
  • 14.
    • Un servicioes una tarea REPETIBLE que realiza por una persona o un grupo de personas para el beneficio de otro. • Tecnológicamente hablando – Es igual que la definición de COMPONENTE (Quien se atreve?) – Un mecanismo que permite la invocación en una manera distribuida – Un mecanismo para realizar introspección dinámica de las interfaces – No se comparte estado entre servicios – Invocación Asíncrona. – Protocolo estándar para envío de mensajes.
  • 15.
    • Habilitadores tecnológicosde la computación distribuida… – WTF? • Son los que permiten la exposición de los casos de uso o funcionalidades para que sean usados remotamente. • Se aplica una arquitectura RPC • Son heterogéneos. – XML sobre HTTP – Web Services – RMI/IIOP – DCOM – COM+ – Rosetta – Cobol Adapters – Screen Scrappers
  • 16.
    • Conjunto decomponentes que interconectan capas de negocio con servicios de integración: – Enrutamiento de datos – Transformación de datos – Transformación de protocolos – Mapeo de servicios – Procesamiento de mensajes – Gestión de transacciones – Seguridad – Alertamiento • Aplicación del patrón BROKER
  • 17.
    • Lógicas deDecisión – Políticas, requerimientos y condicionales que son usados para determinar acciones tácticas que se dan en aplicaciones. – Silogismos • BRMS – Business Rules Management System – Se usa para definir, monitorear y ejecutar las reglas de negocio que son usadas por un sistema en una organización. – Motores de Inferencia. – Sistemas Expertos.
  • 18.
    • Motor deOrquestación de Procesos. • Encargado de la ejecución secuencial de tareas de negocio implementadas por aplicaciones. – Solo aplicaciones????? – BPEL4People • Por lo general interpretan un lenguaje de ejecución de procesos – BPEL – XPDL – JPDL
  • 19.
    • Portales yFrameworks de portales • Ofrecen un esquema de integración de la vista. • Táctica de Usabilidad – One Single View. • Los portales o frameworks de portales son la parte final de la infraestructura SOA. • Conceptualmente es lo mas difícil de entender. • Permiten el ofrecimiento de SERVICIOS desde diferentes aplicaciones en una sola aplicación de usuario final por medio de PORTLETS. • Potenciado con RIA (Rich Internet Applications). • Mashups???
  • 20.
    • Business ActivityMonitoring (BAM) es un termino acuñado por Gartner. • También conocido como Procesamiento Complejo de Eventos (CEP) – “Tecnología de software que habilita a las aplicaciones para que monitoreen varios canales de comunicación de datos, analizarlos en términos de KPI que son expresadas en reglas de eventos, y actúan sobre oportunidades y amenazas en tiempo real, potencialmente por la creación de eventos derivados o reenviando eventos”. • Otra forma de hacer inteligencia de negocio. • Habilitador para la toma de decisiones en tiempo real.
  • 22.
    • Prueba antesde comprar – Prototipos antes de gastar grandes sumas de dinero. • Bajo costo de inicio – El costo de las herramientas puedes ser altísimo. • Soporte efectivo al costo – El soporte Open Source es sustancialmente menor. • Core competente. – Los componentes comerciales muchas veces son creados a partir de componentes dispersos. • Por la gente, para la gente.
  • 23.
    • Existen muchasherramientas gratis para esta parte del BPM. • Depende de la notación o lenguaje para escogerla. • Ingeniería Directa para llegar a BPEL o XPDL. • Existen herramientas Online. – Intalio Designer (http://www.intalio.com/bpms/designer) – Bizagi Process Modeler (http://www.bizagi.com) – Together XPDL Workflow Editor (http://www.together.at) – Eclipse BPEL Designer
  • 24.
    • Java BusinessIntegration • Un estándar Java para SOA. • Permite tener Integración de Aplicaciones de Negocio. – Arquitectura basada en plugins – Modelo de mensajería – Gestión de Componentes – Roles – Modelo de Componentes
  • 25.
    • Motor de Web Services de Apache (http://ws.apache.org/axis2/). • Sucesor de Apache Axis. • Se implementa con componentes en C y en Java. – Soporte de SOAP 1.1 y 1.2 y WS tipo REST. – Soporte WS-* – Velocidad en procesamiento de XML – Web Services Asíncronos – Multiples esquemas de transporte (SMTP, FTP, MOM, HTTP)
  • 26.
    • Java EEConnector Architecture. • Permite la conexión de Servidores de Aplicaciones y Sistemas de Información Empresarial para crear EAI. • JCA es genérico para la conexión con sistemas legados. • Provee – Gestión de transacciones. – Gestión de la conexión. – Gestión de seguridad. Copyright Imagen: Oracle
  • 27.
    • Java MessagingServices • Permite la creación de servicios asíncronos por medio de un esquema de publicación – suscripción.
  • 28.
    • Combina SOAcon EDA • Construido sobre JBI para la integración. • Liviano - Clustering • Soporte de Spring Integrado. • Puede ser usado embebido en una APP o como un ESB stand-alone. • Usa ActiveMQ Copyright Imagen: Apache • Se puede usar como base – Jboss – Tomcat – Oracle – Glassfish
  • 29.
    • Basado enOpenESB. • Usa un núcleo basado en JBI. • Ofrece una arquitectura de bajo acoplamiento que permite el cambio del ESB mas fácilmente. • Herramientas de diseño • Herramientas de ejecución • JEE Compatible • Clustering • Web Services .NET 3.0
  • 30.
    • ESB conarquitectura extensible bajo el modelo de plugins de Jboss. – Permite la integración de servicios de infraestructura. • Kernel JMX Copyright Imagen: Redhat • Clustering • BPEL 2.0 • WS-* – SOAP 1.2 – WSDL 1.1
  • 31.
    • Es unaplataforma de integración de reglas de negocio • Creado por Jboss – Redhat. • Ofrece – Suite de Gestión de Reglas de Negocio – Gestión de Flujos de Reglas de Negocio – Motor de Inferencia – Razonamiento temporal y procesamiento de eventos.
  • 32.
    • Plataforma integralpara gestión de procesos de negocio. • Incorpora: – Diseñador BPMN – ESB – ECM – Portal (XHTML) – BAM – BRE – Human Workflow (Tempo)
  • 33.
    • Componente dela plataforma BPM de JBoss • Motor de ejecución de procesos de negocio que se puede ejecutar embebido en una aplicación o stand-alone • Soporta el control del flujo transaccional en Java. • Soporte de JPDL pero traducido desde BPMN.
  • 34.
    • Orchestration DirectorEngine (http://ode.apache.org/). • Permite la ejecución de procesos de negocio usando WS- BPEL. • Soporta BPEL 2.0 y BPEL 1.1 • Comunicación por 2 capas – Axis 2 – JBI (Se basa en ServiceMix) • Soporte de REST • Despliegue en caliente de procesos
  • 35.
    • Dashboards – Monitoreo de datos de servicios – Monitoreo de datos de mediación – Analisis de servicios – Analisis de mediaciones • Trabajan basados en Gadgets.
  • 36.
    • Portal deintegración web creado por Jboss. • Permite la visualización de información proveniente de diversas fuentes de información en una sola vista. • Video Promo
  • 37.
    • Misión – Entregar una plataforma SOA integrada para los desarrolladores.
  • 38.
    • Proveer unframework SOA extensible. • 3 Estándares relevantes – SCA • Modelo de programación, formato de descripción – JBI • Enrutamiento de mensaje, abstracción del mensaje – OSGi • Modelo de componentes
  • 39.
    • SOA noes nuevo • No es un elefante blanco (aunque en el gobierno lo pueden tomar así… afirmación personal irresponsable) • SOA no es solo Web Services. • SOA es un cambio en la manera de pensar. • No se puede hacer SOA siendo desarrollador… FALSO. • Solo se puede hacer SOA comprando grandes paquetes.. FALSO. • Lo mas importante… NO ES UNA SOLUCION AL HAMBRE Y LA PAZ DEL MUNDO..