Agradecimientos
Prefacio
Sobre este libro
Desarrollo de la obra
Convenciones y descargas
Código fuente
Autor en línea
Acerca de la ilustración de la portada
Parte I. Historia y principios
1. Fundamentos de la arquitectura SOA
Repaso a la historia de la computación distribuida
Problemas relacionados con las soluciones basadas en llamadas RPC
Fundamentos del estilo de mensaje del protocolo SOAP
La aparición de la arquitectura SOA
Los servicios Web como solución para implantar SOA
Fundamentos de las características principales de SOA
Interfaz o contrato de servicios
Transparencia del servicio
Acoplamiento bajo del servicio y ausencia de estado
Composición de servicios
Registro de servicios y su publicación
Tecnologías de la plataforma SOA
Gestión de procesos de negocios BPM
Gestión de la toma de decisiones empresariales
Bus de servicio de empresa
Procesador de flujos de eventos
El servicio de mensajería de Java (JMS)
El registro
Componentes de servicio y su composición
Mediación de servicios Web
Un modelo maduro para arquitecturas SOA
Resumen
2. Definición de la plataforma SOA de software libre
Evaluación de productos de software libre
Elección de la solución BPM
Criterio de evaluación para productos BPM
Productos BPM de software libre
Selección de una solución BPM apropiada
Fundamentos de JBoss jBPM
Selección de una solución de toma de decisiones de nivel empresarial
Criterios de evaluación de productos EDM
Productos EDM de software libre
Selección del sistema EDM
Fundamentos de JBoss Rules (Drools)
Selección de un bus ESB
Criterio de evaluación de productos ESB
Productos ESB de software libre
Selección del bus ESB
Fundamentos de Synapse como producto ESB ligero
Selección de una solución ESP
¿En qué consiste el procesamiento de flujos de eventos?
Fundamentos de Esper
Selección de una solución para el registro
Criterios de evaluación de productos de registro
Productos de software libre
Selección del sistema de registro
Fundamentos del Registro de WSO2
Selección de un entorno de componentes de servicio y servicios compuestos
Fundamentos de la arquitectura SCA
Fundamentos de Apache Tuscany
Selección de una solución para la mediación de servicios Web
Resumen
Parte II. Ensamblaje de componentes y servicios
3. Creación de servicios usando Apache Tuscany
¿Qué son los componentes de servicios y las composiciones?
El modelo de ensamblaje SCA
Fundamentos de los archivos de servicios compuestos
Configuración de los componentes
Definición de servicios
Manejo de las propiedades
Opciones de implementación
Uso de referencias para la asignación de dependencias
Definición de las vinculaciones disponibles
Resumen
4. Características avanzadas de la arquitectura SCA
Configuración utilizando tipos de componentes
Modelos de interacción SCA
Uso de conversaciones
Fundamentos de las retro llamadas
Soporte de los lenguajes de script
Creación del componente en Ruby
Creación de la interfaz java utilizando el método Ruby
Modificación de la clase de implementación del servicio
Modificación del ensamblaje del servicio compuesto
Conceptos avanzados de Tuscany y SCA
Despliegue en un entorno de producción
Fundamentos de SDO
Funcionalidades SDO avanzadas
Resumen
Parte III. Gestión de procesos de negocio
5. Introducción a jBPM
Gestión BPM: El ingrediente secreto de la arquitectura SOA
Historia y visión general de JBoss jBPM
Desarrollo del ciclo de vida de un proceso jBPM
Programación orientada a grafos y jBPM
Fundamentos de los nodos
Tipo de nodo: Nodo
Tipo de nodo: Nodo de tarea
Tipo de nodo: Estado
Tipo de nodo: Correo electrónico
Tipo de nodo: Decisión
Tipo de nodo: Bifurcación/unión
Uso de las transiciones
Fundamentos del uso de acciones
Instanciación de las propiedades de las clases de acción
Uso de expresiones de acciones
Uso de eventos para capturar los cambios en el ciclo de vida de un proceso
Gestión del contexto utilizando variables
Variables de proceso
Variables locales
Resumen
6. Tareas jBPM
¿Qué son las tareas?
Gestión de tareas utilizando la consola jBPM
Configuración del elemento task
Gestión de usuarios de las tareas
Actores y asignaciones de tareas
Fundamentos de swimlanes
Fundamento del uso de temporizadores
Controladores de tareas
Uso del API para el desarrollo de tareas
Identificación de los procesos dentro de una instancia jBPM
Identificación de las instancias de proceso en ejecución para un determinado proceso
Búsqueda de tareas abiertas dentro de la instancia de un proceso
Búsqueda de todas las tareas asignadas a un usuario
Búsqueda del conjunto de tareas para un determinado actor
Tareas completadas
Resumen
7. Funcionalidades avanzadas de jBPM
Funcionalidades empresariales de jBPM relevantes
Súper estados como agrupación de nodos
Uso de subprocesos para gestionar la complejidad
Gestión de excepciones
Script con BeanShell
Registro de auditoría
Fundamentos de las continuaciones asíncronas
Integración con SCA/SDO
Uso de un cliente SCA para la integración de servicios
Habilitación de servicios jBPM
Desarrollo de la operación ListProcesses del servicio
Desarrollo del servicio CreateProcessInstance
Resumen
Parte IV. Procesamiento, integración y mediación en los flujos de eventos
8. Manejo de eventos complejos mediante Esper
Eventos de negocio dentro de las empresas
Fundamentos sobre eventos
Diferencias entre monitorización BAM y procesamiento ESP
Arquitectura dirigida por eventos y Arquitectura SOA
¿Qué es Esper?
Primeros pasos con Esper
¿Qué son los objetos de eventos?
Definición y registro de sentencias de consulta
Especificación de suscriptores
Opciones de configuración
Fundamentos del lenguaje EPL
Eventos de consulta
Uso de variables
Fundamentos de las vistas de Esper
Creación de nuevos flujos de eventos utilizando ventanas con nombre
Funcionalidades avanzadas de Esper
Extensión del lenguaje mediante funciones
Uso de patrones de eventos
Uso de JDBC para establecer conexiones remotas
Servicios Web de Esper
Creación de un framework y de sus componentes
Creación de un servicio Esper y de un gestor de sesiones
Desarrollo del servicio compuesto SCA
Prueba de los servicios Web mediante la herramienta de prueba soapUI
Resumen
9. Integración empresarial y buses ESB
Relación entre buses ESB y la arquitectura SOA
Historia de los buses ESB
Funcionalidades ESB centrales
Uso apropiado de un bus ESB
Uso inapropiado de los buses ESB
Fundamentos de Apache Synapse
Adaptadores de protocolos
Middleware Orientado a Mensajes
Mensajería basada en XML
Enrutamiento inteligente y distribución
Transformación de mensajes
Tarea
La Arquitectura Orientada a Servicios (SOA) es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. SOA facilita la interacción entre diferentes sistemas tanto propios como de terceros, y puede dar soporte a actividades de integración y consolidación. A diferencia de la arquitectura basada en objetos, consigue que los componentes de software desarrollados sean reutilizables.
Este manual le proporcionará los conocimientos necesarios sobre los fundamentos y características esenciales de SOA. Aprenderá a utilizar lenguajes de script como JRuby o Groovy para construir componentes, y a combinar servicios creados con Apache Tuscane para completar un proceso de negocio.