Arquitectura Orientada a
Servicios
M.C. Juan Carlos Olivares Rojas
Morelia, Michoacán, México, Octubre 2008
Disclaimer
El autor es responsable de toda la información
contenida en esta presentación, la cual no
refleja el punto de vista de toda la Línea de
Investigación de Ingeniería de Software.
Parte del material de esta presentación se ha
obtenido de diversas fuentes cada una de las
cuales tiene propiedad intelectual, por lo que en
esta presentación se tiene solamente algunos
derechos reservados.
Agenda
• Introducción
• SOA: una nueva piedra angular en el desarrollo
de software
• Caso Práctico
• Conclusiones
Software Hoy en Día
• Mito: los
programadores de
ahora ya no
programan como los
de antes.
• Herramientas más
fáciles y productivas
• El software es cada
día más complejo
Solución
SOA
Servicio Servicio Servicio
Bus
Servicio Servicio Servicio
Arquitectura del Sistema
Desde el Punto de Vista del Usuario
Arquitectura de una Casa
Planta Alta Planta Baja
Desde el Punto de Vista del Constructor
Arquitectura de Hardware
Arquitectura Windows NT 5.0
Procesos del Sistema Servicios Aplicaciones Subistema de
Entornos
Servicio de
Control de
Gestión Windows
SvcHost.Exe Admon- de Tareas
LSASS
WinMgt.Exe Explorer
WinLogon SpoolSv.Exe
Aplicaciones de los OS/2
User Usuarios
Manejador de Services.Exe POSIX
Mode Sesiones
Subsistema de DLLs Windows DLLs
Hilos de NTDLL.DLL
Sistemas
Kernel
Mode Sistema de Despachador de Sistemas
(interfaces invocables en el modo kernel) Windows
USER,
Manejador E/S GDI
De Configuración
De Plug and Play
Administrador
Administrador
Administrador
Manejador de
De Seguridad
Referencias
Procesos e
Sistema de
De Energía
Monitor de
Llamada a
Caché del
(Registro)
Procesos
Archivos
Memoria
Objetos
Locales
Virtual
Hilos
Manejador del Manejador
Sistema de de Gráficos
Archivos y
Dispositivos
Kernel
Hardware Abstraction Layer (HAL)
Interfaces de Hardware(buses, Dispositivos de E/S , interrupcciones,
intervalos de temporizadores, DMA, control de memoria cache , etc.)
Arquitectura de un Sistema
Arquitectura de Datos
Almacén de Datos en Copo de Nieve
Arquitectura de Software
1970’s 1980’s Mediados1990’s
Antes 1950’s mediados mediados Comienzo Finales Hoy
hasta 1960’s 1980’s 1990’s 2000’s 1990’s
Subrutinas
Invocación de Procesamient Servicios
Arquitecturas /Llamadas a
Objetos o de Web
Monolíticas Procedimient (SOA)
Remotos Mensajes
os Remotos
Mayor Flexibilidad
Línea del Tiempo del Desarrollo de Arquitecturas
Motivación
Casas
Proyecto de PyMES
ARQUITECTURAS SIMPLES
Rentable $
Edificios
Grandes Corporativos
ARQUITECTURAS COMPLEJAS
“Casas de Perros” Mucho $$$$
Proyectos Escolares
SIN ARQUITECTURA
Poco $
Desarrollo de Software en la Academia
Arquitecturas Empresariales Hoy
Accounting Marketing
Product Development Support
Integración Años más Tarde
Accounting Marketing
•Agilidad
•SOA
•Servicios
Enterprise Service Bus Web
Product Development Support
•Middleware
ESB
Servicios
Servicio: Nivel de abstracción
Ejemplo de Servicios en SOA
Cliente
Divisiones
Servicios
Compartidos
Proveedor
Contabilidad
Proceso de Negocio de una Aplicación
¿Qué es SOA?
• “Conjunto de componentes que pueden ser
invocados, cuyas descripciones de interfaces
se pueden publicar y descubrir”
• “SOA es un estilo de arquitectura que
promueve descomponer la lógica funcional de
una aplicación en unidades autónomas
denominadas servicios”
De acuerdo al W3C
Arquitectura de Servicios Web
Publicación
1
del Servicio Proveedor del
Servicio
WSDL
3 4
Directorio de
Servicios UDDI Definición Invocación y
del Servicio respuesta
SOAP
Consumidor el
2
Descubrimiento Servicio
del Servicio
Características de SOA
Sin SOA Con SOA
Orientado a Función Orientado a Procesos
Construido para Durar Construido para
Cambiar
Ciclo de Desarrollos Ciclos de Desarrollo
Largos Incrementales
Aplicaciones Aisladas Aplicaciones
Orquestadas
Fuerte Acoplamiento Bajo Acoplamiento
Orientada a Objetos Orientado a Mensajes
¿Qué es SOA?
CLIENTES GRUPO EJECUTIVO
PORTAL
BAM
Proceso: Gestión
solicitud crédito
BPM
Dashboard,
KPI (Key Performance Indicator)
Crear
SERVICIOS
Realizar Validar Crear Desembolsar
cliente Análisis Riesgo Crédito crédito
crediticio
CRM Crédito Riesgo Core Bancario
EIS
EMPLEADOS
¿Qué es SOA?
Fondo
Adeudos Historial Acceso Cheques Retiro
Multiplataforma
Componetes
de Negocio
Crédito Reutilizables Inversiones
Servicios Reutilizables
Servicio Checa Detección Servicio Cálculo de Checa Servicio Servicio
Clientes Crédito de Fraudes de Acceso Intereses Inversiones Historial Datos
Internet Fuentes de
Información
CRM Bancos Finanzas DWH
Cliente
Ruteo
Servicios de Negocio
Servicios de Negocio
Transacción
Servicios de Negocio
Servicios de Negocio
Orquestación
ESB
Servicios de Negocio
Servicios de Negocio
Seguridad
Servicios de Negocio
Auditoria
Servicios de Negocio
Servicios de Negocio
Otros
Middleware de Servicios
servicios
Administración de
Composición de Aplicaciones
Servicio A (Verificación de Crédito)
Portlet A
Servicio B (Balance de Cuenta)
Portlet B
Portlet C
Servicio C (Verificación de Inventario)
Portlet D
Servicio D
(Colocar una Orden)
Agenda
• Introducción
• SOA: una nueva piedra fundamental en el
desarrollo de software
• Caso Práctico
• Conclusiones
Arquitectura SOA de Oracle
Process Integration Packs
AIA Foundation Pack
SOA Reference SOA Programming Enterprise Business
SOA Governance
Architecture Model Service & Object Library
BPA Suite BAM BI EM
Analyst ORCHESTRATION
ROUTING & Business
Events Analytics System
Tools Monitoring
Monitoring
JDeveloper BPEL Process Manager Web Services
Manager
Native Human Business
BPEL Workflow Rules
App Dev Policies
Framework Enterprise Service Bus
&
Web Center Multi XSLT Security
Protocol Transform Routing
Adapters ODI B2B SES Registry
Apps DB Bulk ELT Partners RFID UDDI
Messaging J2EE Application Server
La Pila de Protocolos WS-*
De acuerdo al W3C
JAVA Integration Server
J2EE + JBI
Arquitectura SOA de IBM
Business Innovation & Optimization Services
Facilitates better decision-making
with real-time business information
Interaction Services Process Services Information Services
Development
Management
IT Service
Services
Enables collaboration Orchestrate and Manages diverse
between people, automate business data and content in a
processes & information processes unified manner
Integrated Enterprise Service Bus: Facilitates communication between services Manage
environment and secure
for design services,
and creation applications
of solution Partner Services Business App Services Access Services &
assets Build on a robust, Facilitates interactions resources
Connect with trading
scaleable, and secure with existing information
partners
services environment and application assets
Infrastructure Services
Optimizes throughput,
availability and performance
Agenda
• Introducción
• SOA: una nueva piedra fundamental en el
desarrollo de software
• Caso Práctico
• Conclusiones
Caso de Uso
Fallecimiento de una Persona
Identificar Servicios
• Alta fallecimiento
• Cerrar Vínculos
• Fin de Trámites
• Fin de Relaciones Laborales
Orquestación del Proceso de
Negocio
Diagrama de Flujo de Trabajo
Parte Práctica
• Consumir/Construir Servicios Distintas
Plataformas
– Java
– .NET
– Office
• Composición de Servicios Web utilizando
NetBeans
– Hola Mundo
Agenda
• Introducción
• SOA: una nueva piedra fundamental en el
desarrollo de software
• Caso Práctico
• Conclusiones
Conclusiones
• SOA no es una moda, es un estilo
arquitectónico que tiene muchos años de
madurez.
• El desarrollo de software es un proceso socio-
tecnológico, por lo que para tener éxito
implantando una Arquitectura Orientada a
Servicios no sólo requiere de tecnologías sino
de personas.
• Se debe pensar en grande pero actuar en
pequeño.
Conclusiones
• Existen actualmente problemas de
interoperabilidad debido a las diferentes
implementaciones de la arquitectura.
• No hay un estándar “de jure” para SOA.
• Puede ser que en el futuro surjan nuevas
arquitecturas más poderosas.
• Se debe tener cuidado en crear arquitecturas
de tipo espagueti.
¿Preguntas?
E-mail: jcolivar@itmorelia.edu.mx
MSN: juancarlosolivares@hotmail.com
Web: http://antares.itmorelia.edu.mx/~jcolivar/
Ubicación: Coordenadas (19.72388, -101.1848) Edificio J