enfoque de soa como proyecto -...
TRANSCRIPT
Enfoque de SOA como Proyecto
David Alejandro Uribe Pardo, [email protected]
Pontificia Universidad Javeriana
348 5400 Ext: 8909
Bogotá D.C.
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 2Ing. David Uribe, PMP
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 3Ing. David Uribe, PMP
Project Charter
XXIX Salón de
Informática -
Agosto'2009 4Ing. David Uribe, PMP
Acta de Inicio del Proyecto
Necesidades del Negocio Necesidades comerciales
Demanda del mercado
Avance Tecnológico
Requisito Legal
Regulación del Gobierno
¿Qué le Interesa a la Alta Gerencia?
XXIX Salón de
Informática -
Agosto'2009 5Ing. David Uribe, PMP
¿Qué le Interesa a la Alta Gerencia?
XXIX Salón de
Informática -
Agosto'2009 6Ing. David Uribe, PMP
•Reducir gastos de integración
•Incrementar reutilización de activos
•Incrementar agilidad de negocio
•Reducir riesgos de negocio
Costos de Integración
XXIX Salón de
Informática -
Agosto'2009 7Ing. David Uribe, PMP
CRM
Paquete
Contable
Sitio
e-commerce
ERP
Proveedor
Externo
Proveedor
Externo
$
$
$
$$$
$
$
$
$
$
$
$
$
•Alto acoplamiento
•Plataformas, formatos, lenguajes y APIs específicos
•Altos impactos en los cambios
Costos de Integración con SOA
XXIX Salón de
Informática -
Agosto'2009 8Ing. David Uribe, PMP
CRMPaquete
Contable
Sitio
e-commerce
ERP
Proveedor
Externo
Proveedor
Externo
•Bajo acoplamiento (granuralidad de servicios)
•Interfaces estándar
•Bajos impactos en los cambios
Adaptador
Orquestación
Servicios de Negocio
Servicios de Aplicaciones
Adaptadores
Aplicaciones y Repositorios
Incremento en la Reutilización de Activos
XXIX Salón de
Informática -
Agosto'2009 9Ing. David Uribe, PMP
Aunque la inversión inicial en SOA es significativa, el
verdadero valor se ve con la posterior reutilización
repetida de activos
SOA gasta más en configurar soluciones que desarrollar
funcionalidad (time to market)
SOA hace más por menos reutilizando inversiones en
tecnología existentes
Composite Applications = 10% Nuevo + 90% Existente
SOA es una fábrica de servicios
Incremento en la Reutilización de Activos
XXIX Salón de
Informática -
Agosto'2009 10Ing. David Uribe, PMP
“I can guarantee there’s a cheaper way (than SOA) to
build your next product, but there’s no cheaper way to
build your next 20 products”
Christohper Corwhurst
Vicepresidente de Thomson Learning
Incremento en la Agilidad de Negocio
XXIX Salón de
Informática -
Agosto'2009 11Ing. David Uribe, PMP
Sistema Contable
envía la factura al cliente,
registra el ingreso
Sitio
e-commerce
toma la orden
Sistema de Bodega
despacha la orden
Exportar orden
Importar orden
Exportar orden
Importar ordenExporta el resultado de
la validación del crédito
•¿Dónde está el proceso de negocio?
$
$
$
Incremento en la Agilidad de Negocio
XXIX Salón de
Informática -
Agosto'2009 12Ing. David Uribe, PMP
Sistema
Contable
Sitio
e-commerce
Sistema de
Bodega
Crear orden
Despachar orden
Consultar estado orden
Iniciar Proceso
Proceso de Negocio
Servicios
Incremento en la Agilidad de Negocio
XXIX Salón de
Informática -
Agosto'2009 13Ing. David Uribe, PMP
¿Crédito
Suficiente?
Si No
Sistema
Contable
Sitio
e-commerce
Sistema de
Bodega
Validar crédito
Despachar orden
Consultar estado orden
Iniciar Proceso
Crear orden
Proceso de Negocio
Servicios
Reducción de Riesgos de Negocio
XXIX Salón de
Informática -
Agosto'2009 14Ing. David Uribe, PMP
SOA reduce los riesgos operacionales
Para cambios o nuevas competencias solo se tocan ciertos
componentes
Las capas de SOA permiten probar de manera aislada y
enfocarse en procesos o servicios que cambian
SOA reduce el riesgo de cumplimiento de regulaciones
Reducción de Riesgos Cumplimiento de Regulaciones
XXIX Salón de
Informática -
Agosto'2009 15Ing. David Uribe, PMP
Transformador
de códigos
Nuevo Código SF -> Código Interno
Código Interno -> Nuevo Código SF
Proceso de
negocio
original
Retorno de la Inversión (ROI) en SOA
XXIX Salón de
Informática -
Agosto'2009 16Ing. David Uribe, PMP
En SOA se categorizan 3 marcos de tiempo
ROI Táctico (corto plazo - ahorros)
Licencias middleware, costos de mantenimiento y configuración,
tiempo de desarrollo
ROI Operacional (mediano plazo - reutilización)
Componentes, reglas de negocio, servicios, procesos
Se calcula directamente o iterativamente (60% - 80%)
ROI Estratégico (largo plazo - agilidad)
Ingresos nuevos productos y servicios, tiempos en procesos de
negocio, tiempos en cumplimientos regulatorios, ahorros en multas
y costos legales
ROI Táctico
XXIX Salón de
Informática -
Agosto'2009 17Ing. David Uribe, PMP
Se reduce a sumar ahorros
Reducción en costos de licencias middleware
Reducción en tiempos de desarrollo
Reducción en costos de mantenimiento
ROI Operacional (Cálculo Iterativo)
XXIX Salón de
Informática -
Agosto'2009 18Ing. David Uribe, PMP
El Dr Jeffrey Poulin en su libro “Measuring Software
Reuse” dice:
El costo de hacer un componente reutilizable tiene un costo
del 60% sobre el desarrollo normal
El reutilizar un componente tiene un ahorro del 80%
Costo sin
Reuso
Costo
Acumulado
sin Reuso
Impacto de
Reuso
Costo
Actividad
Costo
Acumulado Total Ahorro
Desarrollo Inicial $ 10,000,000 $ 10,000,000 60% $ 16,000,000 $ 16,000,000 $ (6,000,000)
Primer reuso $ 10,000,000 $ 20,000,000 -80% $ 2,000,000 $ 18,000,000 $ 2,000,000
Segundo reuso $ 10,000,000 $ 30,000,000 -80% $ 2,000,000 $ 20,000,000 $ 10,000,000
Tercer reuso $ 10,000,000 $ 40,000,000 -80% $ 2,000,000 $ 22,000,000 $ 18,000,000
ROI Operacional (Cálculo Directo)
XXIX Salón de
Informática -
Agosto'2009 19Ing. David Uribe, PMP
David Linthicum en eBizq define una fórmula directa
Variables:
Costo del desarrollo de los servicios (SDC)
Costo por función (CPF) – Function Points, Object Points o
Líneas de Código
Número de Servicios Reusables (NRS) – Todos los servicios
creados
Factor de Complejidad del Servicio (SCF) – Promedio del
número de CPFs de cada servicio
Grado de Reutilización (DR) – Porcentaje en términos de
operaciones
ROI = SDC- NRS * DR * SCF * CPF
ROI Estratégico
XXIX Salón de
Informática -
Agosto'2009 20Ing. David Uribe, PMP
Incluye
Costos legales y multas evitadas por responder rápidamente
a cambios regulatorios
Ingresos generados por la creación rápida de nuevos
servicios y/o manipulación de servicios existentes
Ahorros en costos de mantenimiento de sistemas de
información
Identificar a los Interesados
XXIX Salón de
Informática -
Agosto'2009 21Ing. David Uribe, PMP
Todas las personas en la organización impactadas en el
proyecto
Se analizan
Intereses
Involucramiento
Impacto en el éxito del proyecto
Interesados en SOA
XXIX Salón de
Informática -
Agosto'2009 22Ing. David Uribe, PMP
TOGAF y el “SOA Source Book” definen los siguientes:
Funciones Corporativas: Alta Gerencia, Seguridad de la Empresa, PMO, QA,
Administrativa, RRHH
Usuarios Finales - Ejecutivos, Gerencias, Expertos de dominios de negocio y
dueños de la información
Organización del Proyecto- Ejecutivos, Gerencias, Expertos Funcionales de
Procesos de Negocio, Especialistas de Producto (Productos de Infraestructura
SOA), and Especialistas Técnicos (Diseñadores, Desarrolladores y
Probadores de la Solución SOA y de los Servicios)
Operaciones de Sistemas – Gerencia de IT, Mesa de Servicio, Dirección de
Aplicaciones (Gerentes de la Operación de los Servicios, Gerentes del
Catálogo de Servicios), Dirección de Infraestructura, and Dirección de
Comunicaciones
Externos – Proveedores, Entes Reguladores
Preocupaciones de los Interesados
XXIX Salón de
Informática -
Agosto'2009 23Ing. David Uribe, PMP
Costos y ROI del de los sistemas operacionales Operaciones de Sistema - Dirección de Aplicaciones
Uso de las aplicaciones Organización del Proyecto – Especialistas Técnicos y de Producto
Operaciones de Sistema - Dirección de Aplicaciones
Uso de Infraestructura Organización del Proyecto – Especialistas Técnicos y de Producto
Operaciones de Sistema - Dirección de Infraestructura
Funcionalidad de los componentes de servicio Organización del Proyecto – Especialistas Técnicos
Operaciones de Sistema - Dirección de Aplicaciones
Tecnología de los componentes de servicio Funciones Corporativas- QA
Organización del Proyecto – Especialistas Técnicos y de Producto
Como los servicios contribuyen a los procesos de
negocio
Usuarios Finales - Gerencias, Expertos de dominios de negocio
Organización del Proyecto - Expertos Funcionales de Procesos de
Negocio y Especialistas Técnicos
Como estan desarrollados los servicios (incluyendo
composición e implementación basada en modelos)
Organización del Proyecto – Especialistas Técnicos
Operaciones de Sistema - Dirección de Aplicaciones
e Infraestructura
Servicios contratados Funciones Corporativas- QA y Administrativa
Organización del Proyecto – Especialistas de Producto
Agilidad del Procesode de Negocio Usuarios Finales - Ejecutivos, Gerencias, Expertos de dominios de
negocio
Organización del Proyecto - Expertos Funcionales de Procesos de
Negocio y Especialistas Técnicos
Cómo están integrados los servicios Organización del Proyecto – Especialistas Técnicos
Operaciones de Sistema - Dirección de Aplicaciones, Infraestructura
y Comunicaciones
Preocupaciones de los Interesados
XXIX Salón de
Informática -
Agosto'2009 24Ing. David Uribe, PMP
Qué infraestructura es necesaria Funciones Corporativas- QA y Administrativa
Operaciones de Sistema - Dirección de Aplicaciones, Infraestructura
y Comunicaciones
Desempeño de los servicios Organización del Proyecto – Especialistas Técnicos y de Producto
Operaciones de Sistema – Gerencia de IT, Dirección de
Aplicaciones, Infraestructura y Comunicaciones
Cómo la identidad del usiario y el acceso será
manejada por los servicios
Funciones Corporativas - Seguridad
Usuarios Finales- Expertos de Dominio de Negocio y Dueños de la
Información
Project Organization – Expertos Funcionales de Procesos de
Negocio y Especialistas Técnicos
Operaciones de Sistema – Gerencia de IT
Cómo se manejan los servicios, composiciones y
componentes de servcio
Operaciones de Sistema – Gerencia de IT
Los datos son usados por los servicios Usuarios Finales- Expertos de Dominio de Negocio y Dueños de la
Información
Organización del Proyecto – Especialistas Técnicos y de Producto
Operaciones de Sistema - Dirección de Aplicaciones
Como se representa la información como datos Organización del Proyecto – Especialistas Técnicos y de Producto
Operaciones de Sistema - Dirección de Aplicaciones, Infraestructura
y Comunicaciones
Funciones Corporativas - QA
Solución y ciclo de vida de sevicio y manejo de
protafolio
Funciones Corporativas – PMO y QA
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 25Ing. David Uribe, PMP
Definición de Alcance
¿Qué se va hacer?
Entregables
Riesgos
Supuestos
Restricciones
XXIX Salón de
Informática -
Agosto'2009 26Ing. David Uribe, PMP
Madurez de SOA para definir el Alcance
XXIX Salón de
Informática -
Agosto'2009 27Ing. David Uribe, PMP
Estrategias de Implementación de SOA
Top-Down
Se parte de los procesos de negocio para identificar los
servicios
Bottom-Up
Se crean servicios de acuerdo a las necesidades
principalmente de integración (SOI)
Ágil
Una combinación de las dos anteriores en donde se ejecutan
proyectos Bottom-Up con posteriores validaciones frente al
negocio
XXIX Salón de
Informática -
Agosto'2009 28Ing. David Uribe, PMP
Estrategias de Implementación de SOA
Pros Contras
Top-Down • Alta calidad
• Reusabilidad y
Adaptabilidad Maximizada
• Tiempo y Dinero
• Resultados a largo plazo
Bottom-Up • Resuelve rápidamente
problemas de integración
de una manera estándar
• No es una estrategia
• Posibilidad de servicios
innecesarios para el
negocio
• Llegar a implementar SOA
desde SOI puede implicar
mucho retrabajos
Ágil • Cumple requerimientos
inmediatos sin poner en
peligro la integridad de los
negocios
• Requiere retrabajos pero a
menor escala
XXIX Salón de
Informática -
Agosto'2009 29Ing. David Uribe, PMP
¿Qué le Interesa a la Alta Gerencia?
XXIX Salón de
Informática -
Agosto'2009 30Ing. David Uribe, PMP
Divide el Alcance y Vencerás
XXIX Salón de
Informática -
Agosto'2009 31Ing. David Uribe, PMP
Establecimiento de una organización de gobierno SOA
Modelado de uno o varios procesos de negocio Au
tom
atiza
ción
de u
n p
roceso
de n
egocio
específico
Identificación de servicios de todos los procesos de negocio
modelados
Implementación de un grupo de servicios identificados
SOA
Proyectos SOA y Proyectos de Desarrollo
XXIX Salón de
Informática -
Agosto'2009 32Ing. David Uribe, PMP
Desarrollo
Análisis de Requerimientos de lo que se va a
desarrollar
Diseño de los que se va a
desarrollarDesarrollar
Probar los que se desarrolló
Desplegar lo que se desarrolló
Análisis de un Negocio
(Procesos)
Diseño de Procesos de
Negocio
Identificación de Servicios que Soportan el
negocio
Desarrollar los Procesos
Probar los procesos
Desplegar los procesos
Descubrimiento
• Definir Requerimientos
• Identificar Procesos de Negocio
Retiro
• Modificar servicios y procesos dependientes
El Ciclo de Vida de SOA
XXIX Salón de
Informática -
Agosto'2009 33Ing. David Uribe, PMP
Desarrollo
del Servicio
Implementación
• Implementación del Servicio
• Implementación del Proceso
• Pruebas
Despliegue
• Control de configuraciones y versionamiento
• Configuración del sistema y el servicio
• Registro de Servicio
Monitoreo
• Identificar y monitorear (KPI)
• Reportes de desempeño del proceso y el servicio
Análisis y Diseño
• Identificación de Servicios e Interfaces
• Modelado de Procesos
Metodologías de Proyectos SOA
XXIX Salón de
Informática -
Agosto'2009 34Ing. David Uribe, PMP
Modelado de Procesos (BPM)
Arquitectura Empresarial
Arquitecturas de Solución
Análisis y Diseño Orientado a Objetos
Análisis y Diseño Orientado a Servicios (SOAD)
XXIX Salón de
Informática -
Agosto'2009 35Ing. David Uribe, PMP
Análisis Diseño Desarrollo
Negocio
Arquitectura
Aplicación
Modelado de Procesos (BPM)
Arquitectura Empresarial
Arquitecturas de Solución
Análisis y Diseño Orientado a Objetos
SOAD
Análisis y Diseño Orientado a Servicios (SOAD)
XXIX Salón de
Informática -
Agosto'2009 36Ing. David Uribe, PMP
1. Requerimientos y Modelado de Proceso
2. Identificación y Especificación de
Servicio
3. Implementación de Servicio
4. Implementación de Proceso
Pruebas y Monitoreo en Tiempo de
Ejecución
SOAD y el Ciclo de Vida de SOA
XXIX Salón de
Informática -
Agosto'2009 37Ing. David Uribe, PMP
Descubrimiento Análisis Implementación Monitoreo Retiro
Requerimientos y Modelado de Procesos
Identificación de Servicios
Implementación de Servicios
Implementación de Procesos
Ciclo de Vida SOA
SOAD
• Definir Requerimientos
• Identificar Procesos de Negocio
• Identificación de Servicios e Interfaces
• Modelado de Procesos
• Implementación del Servicio
• Implementación del Proceso
• Pruebas
• Control de configuraciones y versionamiento
• Configuración del sistema y el servicio
• Registro de Servicio
• Modificar servicios y procesos dependientes
XXIX Salón de
Informática -
Agosto'2009 38Ing. David Uribe, PMP
Plan de Recursos Humanos
Roles
Responsabilidades
Habilidades
Comunicaciones
El Equipo del Proyecto
Roles en Proyectos SOA
Gerente de Proyecto
Responsable de administrar el proyecto y del éxito o fracaso
del mismo
En SOA, el PM necesita planear en ciclos de entrega cortos
para el desarrollo e implementación de servicios
Debe interactuar con varios proveedores de servicio para
identificar el uso de recursos y definir SLAs
Analista de Negocio
Además de identificar requerimientos de negocio, es
responsable de crear un modelo empresarial basado en
componentes de negocio (servicios)
XXIX Salón de
Informática -
Agosto'2009 39Ing. David Uribe, PMP
Roles en Proyectos SOA
Arquitecto
Define el diseño técnico del proyecto. Además, se involucra
en la creación del Modelo de Gobierno SOA y asegurar el
cumplimiento de sus políticas
Desarrollador
Diseño detallado de los componentes del proyecto y
construye servicios y lógica de negocio
Especialista de Seguridad
Defina las guía de seguridad y como éstas se implementan.
En SOA, utiliza la especificación WS-Security
XXIX Salón de
Informática -
Agosto'2009 40Ing. David Uribe, PMP
Roles en Proyectos SOA
Service Deployer, Release Administrator
Se encarga del despliegue del servicio en los ambientes
(Application Servers)
Generación de código de despliegue (stubs, skeleton)
Tester de Integración SOA
Hacer pruebas de integración, carga y aceptación
Define los casos de prueba para verificar la interoperabilidad
entre servicios
Se asegura que la aplicación haga lo que debe hacer
XXIX Salón de
Informática -
Agosto'2009 41Ing. David Uribe, PMP
Roles en Proyectos SOA
Configuration Manager
Responsable del control y administración de todos los
cambios de los servicios y los procesos
Mantiene y comunica las versiones de los servicios y
procesos
DBA
Administrar Bases de Datos (no cambia)
Administrador de Sistema En aplciaciones n-tier, administra los middleware (application servers)
Administra motores BPM y ESB
XXIX Salón de
Informática -
Agosto'2009 42Ing. David Uribe, PMP
XXIX Salón de
Informática -
Agosto'2009 43Ing. David Uribe, PMP
Planificación de la gestión
Identificación
Análisis cualitativo y cuantitativo
Planificación de respuesta a los riesgos
Monitorear y controlar los riesgos
Gerencia de Riesgos
Gestión de Riesgos en Proyectos SOA
Se debe hacer una evaluación de los riesgos de acuerdo
a los siguientes criterios
Conocimiento de Procesos de Negocio
Financiación
Seguridad SOA
Migración a SOA
Habilidades y Conocimientos existentes
Identificación de Servicios
Tecnologías a utilizar
Plataformas a utilizar
XXIX Salón de
Informática -
Agosto'2009 44Ing. David Uribe, PMP
Gestión de Riesgos en Proyectos SOA
La evaluación de los riesgos ayuda a identificar los
gaps y los controles a diferentes niveles (negocio y
técnico)
Acciones preventivas se pueden definir para disminuir
los gaps y mitigar los riesgos
Las mejoras deberían hacerse incrementalmente de una
manera planeada
XXIX Salón de
Informática -
Agosto'2009 45Ing. David Uribe, PMP
Riesgos y Retos en Proyectos SOA
Identificar y reutilizar sin repetir funcionalidad
Decidir cuáles servicios van a ser desarrollados y su
método
Implementar políticas de los servicios (seguridad)
Administración y control de cambios sobre los servicios
Correspondencia con diseño y mejores prácticas
Asegurarse que los servicios y procesos sean extensibles
Monitorear el desempeño y funcionamiento de los servicios
Entrenamiento del equipo de desarrollo en las nuevas
tecnologías (Negocio, Integración, SOAD, Testing)
XXIX Salón de
Informática -
Agosto'2009 46Ing. David Uribe, PMP
Riesgos y Retos en Proyectos SOA
Los estándares aún están emergiendo
Las soluciones SOA del mercado no es consistente.
Soporte propietario adicional y sus propios estándares
Estudiar una metodología de desarrollo SOAD y
adoptarla
XXIX Salón de
Informática -
Agosto'2009 47Ing. David Uribe, PMP
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 48Ing. David Uribe, PMP
XXIX Salón de
Informática -
Agosto'2009 49Ing. David Uribe, PMP
Se compone de los procesos realizados para completar
el trabajo de finido a fin de cumplir las
especificaciones del mismo
Implica
Coordinar personas y recursos
Integrar y realizar las actividades del proyecto de acuerdo
con el plan
Dirigir y Administrar la Ejecución del Proyecto
Análisis y Diseño Orientado a Servicios (SOAD)
XXIX Salón de
Informática -
Agosto'2009 50Ing. David Uribe, PMP
1. Requerimientos y Modelado de Proceso
2. Identificación y Especificación de
Servicio
3. Implementación de Servicio
4. Implementación de Proceso
Pruebas y Monitoreo en Tiempo de
Ejecución
1. Levantamiento de Requerimientos y Modelado de
Proceso
En SOAD el énfasis está en los Procesos de Negocio
(en OOAD, el énfasis está en los casos de uso)
Documentar el Proceso de Negocio. Es buena práctica
usar el mismo formato de Casos de Uso
Esta es una tarea que debe realizarse por un Analista de
Procesos o el dueño del proceso
El documento de proceso de negocio captura la interacción
entre negocios o diferentes sistemas (AS-IS) dentro de un
negocio
XXIX Salón de
Informática -
Agosto'2009 51Ing. David Uribe, PMP
1. Levantamiento de Requerimientos y Modelado de
Proceso
Crear Diagrama del Proceso de Negocio
Una notación fácil para los dueños de los procesos: BPMN,
Diagramas de Flujo, BPEL gráfico (no estándar), etc.
Herramienta que exporte a BPEL (estándar)
Ejecutar simulaciones para estimar tiempos y costos de
ejecutar el proceso
Entregables
Documento de Proceso de Negocio
Diagrama de Proceso de Negocio
Documento BPEL
XXIX Salón de
Informática -
Agosto'2009 52Ing. David Uribe, PMP
Mejores Prácticas para el Modelado de Negocio
Un arquitecto de negocio o alguien con buen conocimiento del
dominio debería documentar el negocio
Documentar el negocio consume tiempo, reservar el suficiente
Seguir los formatos de Casos de Uso, esto lo hace entendible
Un proceso de negocio se ejecutará como una nueva pieza de
software. Este invocará operaciones de servicios externos. Estos
servicios ya podrían existir como sistemas legados.
Aprovéchelos!!!
Use una herramienta de modelado de procesos que exporte a
BPEL. Esto agiliza la interacción con la gente técnica
XXIX Salón de
Informática -
Agosto'2009 53Ing. David Uribe, PMP
2. Identificación de Servicios
Mapear actividades de los procesos de negocio a operaciones de
servicios
Etapas
Identificación de servicios lógicos que soporten el proceso y creación o
modificación de contratos de servicios. Analistas de Negocio o
Arquitectos
Especificación de interfaces de servicios (WSDL). Arquitectos o
Diseñadores
Decisiones Arquitectónicas
Entregables
Modelo de Servicios
WSDLs
XXIX Salón de
Informática -
Agosto'2009 54Ing. David Uribe, PMP
Modelo de Servicios – RUP SOMA
XXIX Salón de
Informática -
Agosto'2009 55Ing. David Uribe, PMP
Modelo de
Servicios
Portafolio de Servicios
Jerarquía de Servicios
Exposición de Servicios
Dependencia de Servicios
Composición y Flujo de Servicios
Requerimientos no funcionales de Servicios
Mensajes de Servicios
Decisiones de Manejo de Sesión de Servicios
Decisiones de Realización
Identificación
Especificación
Realización
Aspectos más relevantes del Modelo de Servicios
Requerimientos no Funcionales
Disponibilidad (p.e. MTBF (Mean Time Between Failures),
MTTR (Mean Time To Repair))
Ventana de tiempo operativa (¿Existe algún tiempo en que el
servicio no se espera que sirva?)
Tiempo de Respuesta
Pico de carga (Peak throughput) (Cuántos requests puede
recibir el servicio por unidad de tiempo)
XXIX Salón de
Informática -
Agosto'2009 56Ing. David Uribe, PMP
Aspectos más relevantes del Modelo de Servicios
Decisiones Arquitectónicas ¿Cómo se publicarán los descriptores de los servicios?
¿Cómo se expondrán los servicios? (p.e. Web services)
¿Cómo se formarán los mensajes ? (p.e., XML, AS2, CORBA, propietario, …)
¿Cómo y dónde se efectuará la transformación de los mensajes?
¿Cómo se reforzará la seguridad al nivel de la interfaz de servicio?
Nomenclaturas
División de responsabilidad entre el ESB y los componentes empresariales
XXIX Salón de
Informática -
Agosto'2009 57Ing. David Uribe, PMP
Mejores Prácticas en el Modelado de Servicios
Un servicio debería encapsular tanta complejidad y detalles como sea posible El consumidor debería completar una tarea con un mínimo de llamados a
operaciones
El formato de los mensajes debería simple (no corto)
Las operaciones de los servicios deberían agruparse de la misma manera en que lo hacen las entidades que los servicios representan en el mundo real.
Los tipos de los mensajes a este nivel son genéricos; esto reduce las transformaciones. Pero no exagere, guarde un equilibrio
Mantenga no solo un catálogo de servicios sino de tipos de datos, mapeos e interfaces
XXIX Salón de
Informática -
Agosto'2009 58Ing. David Uribe, PMP
3. Implementación del Servicio
Seleccionar un servicio específico del paso anterior
Tomar decisión de implementación (Arquitecto o Diseñadores)
¿El servicio será soportado por un ser humano (tarea) o un sistema?
Definición de datos de entrada y salida de la tarea
Si será soportado por un sistema, ¿la funcionalidad ya existe?
Cuando la funcionalidad ya existe (Bottom-Up)
Modelar el mapeo de datos
Documentar protocolos de transformación
Diseñar Web Services “Wrapper” si es necesario
Cuando la funcionalidad se debe desarrollar (Top-Down)
Desarrollar casos de uso describiendo como las operaciones se implementarán
Diseñar (Identificar Clases)
Implementación del servicio y pruebas unitarias (Desarrollador)
XXIX Salón de
Informática -
Agosto'2009 59Ing. David Uribe, PMP
3. Implementación del Servicio
Entregables
Documento de Casos de Uso
Documentos técnicos
Tareas Humanas
Documento de entradas y salidas de tarea
Servicio Existente
Documento de protocolo de transformación de datos
Diseño del Web Service “Wrapper”
Servicio a Desarrollar
Diseño (Diagrama de Clases, Secuencia, Implementación, etc)
Componentes del Servicio Implementado
XXIX Salón de
Informática -
Agosto'2009 60Ing. David Uribe, PMP
Mejores Prácticas para Implementar Servicios
Un servicio puede ser implementado usando muchas tecnologías
diferentes
Usar web services en la mayoría de los casos (Independiente del S.O.,
facilidad en configuración de firewalls y balanceo de cargas
En Bottom-Up, utilizar herramientas provistas por los dueños
de los sistemas legados sin gastar mucho tiempo
Clases o APIs expuestas que puedan ser invocadas por un Web Service
Adapatadores existentes en el mercado
Screen Scrapping
XXIX Salón de
Informática -
Agosto'2009 61Ing. David Uribe, PMP
Mejores Prácticas para Implementar Servicios
En Top-Down, usar formatos de datos genéricos para disminuir
los mapeos
Guardar información de estados en una base de datos para
ejecutar un servicio en múltiples máquinas
XXIX Salón de
Informática -
Agosto'2009 62Ing. David Uribe, PMP
4. Implementación del Proceso
Cada actividad es ejecutada como una invocación de
una operación de servicio. (BPEL)
Para aquellos servicios que solo tienen una interfaz
orientada a los datos, exportar los datos del procesos
(publicar un mensaje, guardar en BD, generar archivo
plano, etc.)
Ejecutar el proceso en un ambiente de pruebas
Entregables:
BPEL del proceso y modulo de despliegue
Documentación de proceso actualizada
XXIX Salón de
Informática -
Agosto'2009 63Ing. David Uribe, PMP
Mejores Prácticas en Implementación de Procesos
Un buen proceso tiene los siguientes atributos
Automatización: Puede automatizar lo que antes se hacía
manualmente para la integración de varios sistemas
Encapsula Complejidad: El proceso se enfoca en
integración
Flexibilidad: Rapidez de modificación al re-ordenar
actividades o agregar nuevas (Agilidad)
Adaptabilidad: Facilidad de agregar nuevos sistemas al
proceso. El ESB se encarga de las transformaciones de los
datos
XXIX Salón de
Informática -
Agosto'2009 64Ing. David Uribe, PMP
Mejores Prácticas en Implementación de Procesos
Evaluar siempre el uso de mensajería asíncrona en lugar de SOAP/HTTP para asegurar la entrega (sistemas externos)
Usar formatos de datos canónicos para las variables de estado del proceso
Usar esquemas de publish/suscribe para facilitar el adicionar o remover servicios que estén interesados en el mismo evento
Adicionar flujos de manejo de error
Establecer límites de tiempo para las actividades que necesitan esperar mucho tiempo
Adicionar múltiples fuentes de datos Cuando el proceso encuentra una de las fuentes, el proceso
continúa (Clustering)
XXIX Salón de
Informática -
Agosto'2009 65Ing. David Uribe, PMP
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 66Ing. David Uribe, PMP
Control de Calidad
XXIX Salón de
Informática -
Agosto'2009 67Ing. David Uribe, PMP
Se monitorean y registran los resultados de la ejecución
de actividades de calidad, a fin de evaluar el
desempeño y recomendar cambios necesarios
Equipo específico para esta tarea
Las pruebas tradicionales de SW
y las pruebas SOA
SW Tradicional
El software por lo general usa el
mismo lenguaje e IDE
Los datos de entrada no requieren
preparación
Ambientes de prueba disponibles
Comunicación síncrona
(frameworks)
SOA
Integra sistemas legados y COTS
Los datos de prueba deben ser
creados en múltiples aplicaciones.
(Mucha más gente involucrada)
No todas las aplicaciones tienen
ambiente de pruebas
Comunicación asíncrona. Cada
response necesita correlacionarse
con su request, errores difíciles de
encontrar
XXIX Salón de
Informática -
Agosto'2009 68Ing. David Uribe, PMP
¿Qué se prueba en SOA?
XXIX Salón de
Informática -
Agosto'2009 69Ing. David Uribe, PMP
GUI
Procesos de Negocio
Mapeo de Datos
Servicios
Adaptadores y Componentes
Aplicaciones
Flujo de datos
Pruebas UnitariasPruebas de Integración
Pruebas No Funcionales
Partes de un Framework para Pruebas
Generador – Genera los datos de entrada
Ingresado en el repositorio de datos
Capturado de un sistema real
Aleatoriamente a partir del esquema de datos
Verificador – Valida el resultado
Validar la salida de la operación
Validar el estado interno (BD) de la aplicación
Stub – Simulación de una parte del sistema que no está
siendo probada o no está disponible
XXIX Salón de
Informática -
Agosto'2009 70Ing. David Uribe, PMP
G
V
S
Escenarios de Pruebas Unitarias
XXIX Salón de
Informática -
Agosto'2009 71Ing. David Uribe, PMP
Aplicación
Adaptador
G V
S
Aplicación
Adaptador
G
V Aplicación
Adaptador
G1 G2 V
Aplicación
Adaptador
G
V
G V
Mapeo de datos
G
Actividad
1
Actividad
2
AplicaciónAdapt
Pruebas de Integración
Servicios
Nuevo código (SO y ESB igual a producción)
Adaptador (Instalar aplicación)
Procesos de Negocio
Involucrar a los dueños de los procesos
Conectividad Proceso de Negocio – Servicios
URL de Web Services
Firewalls
Colas de Mensajes
Repositorios
Adaptadores y puntas
Por cada servicio, configurar adaptador (URLs, usuarios, passwords)
Por cada punta asegurarse que sean ambientes de pruebas
Instalar las aplicaciones de tareas e interacciones con los procesosXXIX Salón de
Informática -
Agosto'2009 72Ing. David Uribe, PMP
Pruebas No Funcionales
Pruebas de Desempeño
Pruebas de Seguridad
Pruebas de Interoperabilidad
Pruebas de persistencia de estados de los procesos
Pruebas de versiones de procesos
XXIX Salón de
Informática -
Agosto'2009 73Ing. David Uribe, PMP
Pruebas de Desempeño
Dos tipo de pruebas de desempeño para SOA
Tiempo de respuesta de un componente bajo una dura carga activa (operaciones
de servicios invocadas al tiempo)
Resistencia para encontrar memory leaks y otros problemas de recursos
Stress de Servicios
Medir tiempo promedio de respuesta de las operaciones y verificar que no hayan
errores funcionales por el stress
Herramientas automáticas
Números de invocaciones realistas
Stress de Procesos de Negocio
De acuerdo a la vida real
No necesariamente se necesitan las mismas condiciones de máquina que en
producción, solo se tiene que reducir la carga activa de manera apropiada
XXIX Salón de
Informática -
Agosto'2009 74Ing. David Uribe, PMP
Pruebas de Seguridad
La seguridad debe estar implementada para las pruebas de
integración , desempeño e interoperabilidad
Probar los ataques convencionales
Probar en bajo los mismo productos de producción (AS,
ESB, BPM), ya que aún se tienen muchos estándares
propietarios y problemas de interoperabilidad
Tener claro, cada elemento de la seguridad del mensaje
Cifrado
Firma digital
Autenticación
SSLXXIX Salón de
Informática -
Agosto'2009 75Ing. David Uribe, PMP
Pruebas de Interoperabilidad
Pueden haber muchos ESBs y BPMs involucrados
Siempre verificar temas de interoperabilidad entre
marcas, lenguajes y sistemas operativos
(virtualizaciones)
Dejar muy claras las plataformas involucradas
Estas pruebas siempre se deben hacer cuando llegan
nuevos consumidores de servicios
XXIX Salón de
Informática -
Agosto'2009 76Ing. David Uribe, PMP
Pruebas de Persistencia de Estados de Procesos
(Tolerancia a Fallos)
Los proceso internamente manejan información de estado que
controla el flujo de los mismos
Siempre viene como entrada del proceso o como salida de una llamada a
una operación de un servicio
Los procesos pueden ser muy largos y sus instancias pueden ser
detenidas intencionalmente o por caídas del sistema
Cuando se restablece el sistema, el proceso debe volver al punto en
donde iba
La mayoría de BPMs soportan esto, pero a veces los servicios
involucrados pueden alterar el resultado.
XXIX Salón de
Informática -
Agosto'2009 77Ing. David Uribe, PMP
Pruebas de Versionamiento de Procesos
Una instancia de proceso puede ejecutarse durante
mucho tiempo
Si se despliega una nueva versión del proceso, las
instancias antiguas deberían mantener el código
anterior
Especificar cuántas versiones del proceso pueden
existir al tiempo
La mayoría de BPMs soportan esto, pero a veces los
servicios involucrados pueden alterar el resultado.
XXIX Salón de
Informática -
Agosto'2009 78Ing. David Uribe, PMP
Grupos de Procesos de la Gerencia de Proyectos
XXIX Salón de
Informática -
Agosto'2009 79Ing. David Uribe, PMP
Gobierno SOA
XXIX Salón de
Informática -
Agosto'2009 80Ing. David Uribe, PMP
SOA puede expandirse a través de toda la empresa, interviniendo en tecnología, actores y recursos.
Es necesario tener procesos y controles para el desarrollo, despliegue, versionamiento y retiro de servicios para evitar: Duplicación de servicios
Servicios indeseados (servicios indocumentados sin control)
Gobierno SOA
XXIX Salón de
Informática -
Agosto'2009 81Ing. David Uribe, PMP
ITIL (Information Technology Infrastructure Library): es un marco de trabajo de las mejores prácticas destinadas a facilitar la entrega de servicios de tecnologías de la información de alta calidad
El gobierno SOA se construye sobre el gobierno de IT (Tarea fundamental de un arquitecto)
Define procesos y procedimientos para la administración de los servicios
Establece políticas para los estándares de los servicios y formatos de los mensajes
Proveer documentación y recursos de entrenamiento para asegurar un enfoque común de la visión de SOA a través de todos los implicados
Modelo Gobierno SOA
XXIX Salón de
Informática -
Agosto'2009 82Ing. David Uribe, PMP
Equipo de Gobierno de Negocio
Equipo Líder(Gobierno SOA)
Equipo de Iniciativa Equipo de Iniciativa Equipo de Iniciativa
Equipo de
Proyecto
Equipo de
Proyecto
Equipo de
Proyecto
Equipo de
Proyecto
Líder de
Negocio
Líder
Técnico
Líder de
Negocio
Líder
Técnico
Líder de
Negocio
Líder
Técnico
COE(Definiciones)
Dominio 1
Ejec Neg, Ejec IT
Dominio 2
Ejec Neg, Ejec IT
Dueños de Líneas de Negocio
Erl, Thomas: “Service-Oriented Architecture (SOA): Concepts,
Technology, and Design”. Prentice Hall, 2005.
“A Guide To The Project Management Body of Knowledge”.
Project Management Institute. 4th Edition, 2008
“SOA Immersion for EDS”. Web Age Solutions, 2007.
“SOA Course Introduction”. Electronic Data Systems, 2007.
“SOA Source Book”. Open Group, 2009
Referencias