Este documento describe conceptos clave de SOA y arquitectura orientada a servicios. Explica los componentes de una infraestructura SOA como servicios web, ESB, BPM y portales. También discute herramientas open source para implementar SOA como Apache Axis2, ServiceMix, JBoss y Eclipse. El objetivo es proveer una plataforma SOA integrada para desarrolladores.
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 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
8. • 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
9. • 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
10. • 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
11. 30 de noviembre de 2011 Arquitecturas Orientadas a Servicios 11
12. • 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.
13. • 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
14. • 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.
15. • 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
16. • 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
17. • 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.
18. • 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
19. • 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???
20. • 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.
21.
22. • 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.
23. • 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
24. • 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
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 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
27. • Java Messaging Services
• Permite la creación de servicios asíncronos por medio de
un esquema de publicación – suscripción.
28. • 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
29. • 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
30. • 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
31. • 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.
32. • Plataforma integral para gestión de procesos de negocio.
• Incorpora:
– Diseñador BPMN
– ESB
– ECM
– Portal (XHTML)
– BAM
– BRE
– Human Workflow (Tempo)
33. • 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.
34. • 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
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 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
37. • Misión
– Entregar una plataforma SOA integrada para los
desarrolladores.
38. • 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
39. • 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..