Arquitectura Orientada a Servicios M.C. Juan Carlos Olivares Rojas Morelia, Michoacán, México, Octubre 2008
Arquitectura Orientada a Servicios
M.C. Juan Carlos Olivares Rojas
Morelia, Michoacán, México, Octubre 2008
DisclaimerEl 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
ServicioServicio ServicioServicio ServicioServicio
ServicioServicio ServicioServicio ServicioServicio
BusBus
Solución
SOASOA
Arquitectura del Sistema
Desde el Punto de Vista del Usuario
Arquitectura de una Casa
Desde el Punto de Vista del Constructor
Planta Alta Planta Baja
Arquitectura de Hardware
Arquitectura Windows NT 5.0
Interfaces de Hardware(buses, Dispositivos de E/S , interrupcciones, intervalos de temporizadores, DMA, control de memoria cache , etc.)
Sistema de Despachador de Sistemas
Admon- de Tareas
Explorer
SvcHost.Exe
WinMgt.Exe
SpoolSv.Exe
Servicio de Control de
Gestión
LSASS
Man
ejado
r de
Ob
jetos
WindowsUSER,
GDI
Cach
é del
Sistem
a de
Arch
ivos
Manejador E/S
Subistema de Entornos
Aplicaciones de los Usuarios
Subsistema de DLLs
Procesos del Sistema Servicios Aplicaciones
Hilos de Sistemas
UserMode
KernelMode
NTDLL.DLL
Manejador del Sistema de Archivos y
Dispositivos
WinLogon
Manejador de Sesiones
Services.Exe POSIX
Windows DLLs
Ad
min
istrado
rD
e Plu
g an
d P
lay
Ad
min
istrado
rD
e En
ergía
Mo
nito
r de
Referen
ciasD
e Seg
urid
ad
Mem
oria
Virtu
al
Pro
cesos e
Hilo
s
Llam
ada a
Pro
cesos
Lo
cales Manejadorde Gráficos
Kernel
Hardware Abstraction Layer (HAL)
(interfaces invocables en el modo kernel)
Ad
min
istrado
rD
e Co
nfig
uració
n(R
egistro
)
OS/2
Windows
Arquitectura de un Sistema
Arquitectura de Datos
Almacén de Datos en Copo de Nieve
Arquitectura de Software
Servicios(SOA)
ArquitecturasMonolíticas
Antes 1950’shasta 1960’s
1970’s mediados 1980’s
Mediados1990’sComienzo 2000’s
HoyFinales 1990’s
Subrutinas/Llamadas a
Procedimientos Remotos
Invocación de Objetos Remotos
Procesamiento de Mensajes
Web
1980’s mediados 1990’s
Línea del Tiempo del Desarrollo de Arquitecturas
Mayor Flexibilidad
Motivación
“Casas de Perros”Proyectos EscolaresSIN ARQUITECTURAPoco $
CasasProyecto de PyMESARQUITECTURAS SIMPLESRentable $
EdificiosGrandes CorporativosARQUITECTURAS COMPLEJASMucho $$$$
Desarrollo de Software en la Academia
Arquitecturas Empresariales HoyAccounting Marketing
SupportProduct Development
Accounting Marketing
SupportProduct Development
Integración Años más Tarde
Enterprise Service Bus
•Agilidad
•SOA
•Servicios Web
•Middleware ESB
Servicios
Servicio: Nivel de abstracción
Ejemplo de Servicios en SOA
Contabilidad
ProveedorProveedor
Servicios CompartidosServicios Compartidos
Divisiones
ClienteCliente
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
Proveedor del Servicio
Consumidor el Servicio
Directorio de Servicios
Publicación del Servicio
Descubrimiento del Servicio
Invocación y respuesta
1
3
2
UDDI
4
SOAP
Definición del Servicio
WSDL
Características de SOASin SOA Con SOA
Orientado a Función Orientado a Procesos
Construido para Durar Construido para Cambiar
Ciclo de Desarrollos Largos
Ciclos de Desarrollo Incrementales
Aplicaciones Aisladas Aplicaciones Orquestadas
Fuerte Acoplamiento Bajo Acoplamiento
Orientada a Objetos Orientado a Mensajes
CLIENTES GRUPO EJECUTIVO
Proceso: Gestión solicitud crédito
BPMDashboard,KPI (Key Performance Indicator)
BAM
Crear cliente
RealizarAnálisis crediticio
ValidarRiesgo
CrearCrédito
Desembolsarcrédito
SERVICIOS
RiesgoCréditoCRM Core Bancario
EMPLEADOS
EIS
PORTAL
¿Qué es SOA?
¿Qué es SOA?
Servicios Reutilizables
Crédito Inversiones
CRM
ServicioHistorial
Servicio de Acceso
ChecaCrédito
Detecciónde Fraudes
DWH
ServicioClientes
Servicio Datos
Internet
HistorialAdeudo
s ChequesFondo Retiro
Fuentes de Información
Cálculo de Intereses
ChecaInversiones
Bancos Finanzas
Acceso Multiplataforma
Componetes de Negocio
Reutilizables
ESBClienteAdministración de
servicios
Ruteo Transacción Orquestación Seguridad Auditoria Otros
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Middleware de Servicios
Composición de AplicacionesServicio A (Verificación de Crédito)
Portlet A
Servicio D (Colocar una Orden)
Servicio B (Balance de Cuenta)
Servicio C (Verificación de Inventario)
Portlet B
Portlet C
Portlet D
Agenda• Introducción
• SOA: una nueva piedra fundamental en el desarrollo de software
• Caso Práctico
• Conclusiones
Arquitectura SOA de Oracle
Apps Bulk ELT
Adapters
Partners
B2B
RFID
SES
DB
Multi Protocol Routing
XSLTTransform
Enterprise Service Bus
NativeBPEL
Business Rules
Human Workflow
BPEL Process Manager
ROUTING & ORCHESTRATION
Messaging
UDDI
Policies
Security
Web Services Manager
Registry
Events AnalyticsBusiness
Monitoring System Monitoring
EMBAM BI
App DevFramework
&Web Center
JDeveloper
Analyst Tools
BPA Suite
AIA Foundation PackAIA Foundation Pack
J2EE Application Server
ODI
Process Integration Packs
Enterprise Business Service & Object Library SOA Governance
SOA ReferenceArchitecture
SOA ProgrammingModel
La Pila de Protocolos WS-*
De acuerdo al W3C
JAVA Integration Server
J2EE + JBI
Manages diverse data and content in a
unified manner
Integrated environment for design
and creation of solution
assets
Manage and secure services,
applications &
resources
Facilitates better decision-making with real-time business information
Enables collaboration between people,
processes & information
Orchestrate and automate business
processes
Connect with trading partners
Build on a robust, scaleable, and secure services environment
Facilitates interactions with existing information and application assets
Optimizes throughput, availability and performance
Arquitectura SOA de IBM
Business Innovation & Optimization Services
Dev
elo
pm
ent
Ser
vice
s
Interaction Services Process Services Information Services
Partner Services Business App Services Access Services
Enterprise Service Bus: Facilitates communication between services
IT S
ervi
ceM
anag
emen
t
Infrastructure Services
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
© Bull36
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: [email protected]: [email protected]: http://antares.itmorelia.edu.mx/~jcolivar/
Ubicación: Coordenadas (19.72388, -101.1848) Edificio J