clase soa
DESCRIPTION
TRANSCRIPT
ARQUITECTURA ORIENTADA A SERVICIOS (SOA)
CONCEPTOS BÁSICOS
• INGENIERÍA DE SOFTWARE• DISCIPLINAS DE INGENIERÍA DE SOFTWARE• DISEÑO DE SOFTWARE• PARADIGMAS DE DISEÑO• SOA
Ingeniería de Software
Definición 1:Ingeniería del Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software [Zelkovits, 1978].
Definición 2:Ingeniería del Software es la aplicación practica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación necesaria requerida para desarrollar, operar(funcionar) y mantenerlos [Bohem, 1976].
Definición 3:Ingeniería del Software trata del establecimiento de los principios y métodos de la Ingeniería a fin de obtener software de modo rentable que sea fiable y trabaje en máquinas reales [Bauer, 1972].
Un Modelo para procesos de Ingeniería de SW
Disciplinas y Enfoque Iterativo de RUP
Diseño de Software
• Después de comprender los requerimientos, el diseño es el MAPA de cómo construir el sistema
• Un principio de diseño es un lineamiento de diseño comúnmente aceptado que cuando se aplica resulta en características específicas de diseño
• Un paradigma de diseño representa un conjunto de principios de diseño complementarios que colectivamente se aplican para soportar objetivos comunes
• Un patrón de diseño identifica un problema común y proporciona una solución recomendada
• Un estándar de diseño es una convención interna y específica para una organización, para regir sus diseños
Paradigmas de Diseño
Design Paradigm
Design Characteristics
Design Principles
Best Practices Design Standards
Results in theCreaton of specific
Result in theCreation of specific
Is comprised of multiple
Support theRealization of
Support the use of
Design Paradigm
Design StandardsDesign
PatternsBest Practices
Contribute tothe successfulrealization of
Paradigmas de Diseño
• Bajo Nivel (Binario)– Bulbos, Tarjetas perforadas
• Bajo Nivel (Ensamblador)– Mnemónicos para funciones– Direcciones de memoria con
etiquetas.
10100001111101010101
Paradigmas de Diseño
Lenguajes Procedurales• Uso de vocabulario relativo al
problema en resolución• Describen paso-a-paso el
procedimiento EXACTO para resolver un problema.
• La realidad debe modelarse con base en las capacidades del lenguaje.
• Difícil de comprender para no-programadores.
• COBOL, FORTRAN, ALGOL, BASIC
Ejemplo:
Paradigmas de Diseño
Lenguajes Orientados a Objetos• Los datos y los métodos para
manipularlos se encapsulan en una unidad conceptual llamada objeto.
• Permiten modelar la realidad, adaptando el código a la misma.
• La syntaxis es my natural y comprensible incluso para no programadores.
• Grandes capacidades de reuso de código, agilidad para desarrollar y aplicar cambios.
• JAVA, .NET
Ejemplo:
¿Y SOA?
• También es un paradigma de diseño• Pero se orienta a la organización y al
NEGOCIO, no al paradigma de programación.
Imperativos de Negocio…….La Tormenta Perfecta
Presiones Competitivas
Presiones Regulatorias
Poder del Cliente
Sobrecarga de Información
La FuerzaCambiante de Trabajo
Imperativos y Facilitadores de Negocio…….La Tormenta Perfecta
Presiones Competitivas
Presiones Regulatorias
Poder del Cliente
Sobrecarga de Información
La FuerzaCambiante de Trabajo
SOA
Ambientes deDesarrollo
Orientados alNegocio
Web 2.0/Rápido Desarrollo de
Aplicaciones
Metadatos/Semántica
CómputoSocial
¿Por qué SOA?
SOA abarca 9 de las 10 Principales Prioridades de la Administración
de TI
SOA abarca 9 de las 10 Principales Prioridades de la Administración
de TI
El Problema de la Alineación
Lo que explica la Línea de Negocio
Lo que explica la Línea de Negocio
Lo que entiende el Gerente de Proyecto
Lo que entiende el Gerente de Proyecto
Lo que diseña el Analista de Negocios
Lo que diseña el Analista de Negocios
Lo que interpreta el desarrollador de TI
Lo que interpreta el desarrollador de TI
Lo que describe el CIO al negocio
Lo que describe el CIO al negocio
Cómo se documenta el
proyecto
Cómo se documenta el
proyecto
Lo que realmente se utiliza
Lo que realmente se utiliza
Lo que el presupuesto puede
comprar
Lo que el presupuesto puede
comprar
El soporte proporcionado
El soporte proporcionado
Lo que realmente quería el trabajador
del proceso
Lo que realmente quería el trabajador
del proceso
Nueva Aplicación
Nueva Aplicación
Nueva Aplicación
Requerimientos, o
portunidades, e
tc. actuales.
La Evolución de la Industria del Software
Construir Comprar Componer
Sistemas Centrales•Pagos corporativos•Manejo de Quejas•Sistema de facturación
Infraestructura de Negocio•Automatización de Procesos•SOA y Gobernabilidad•Integración•Modernización
•Servicios Web •Integración
1970 1990 200019801960 2010
Foco en TI
2020
Sistemas de Soporte•RH•Nómina•CRM
Definición de Arquitectura Orientada al Servicio
(SOA – Service Oriented Architecture)
¡No Se Puede Definir SOA Sin Analogías!
¿Qué es un Servicio?
¿Cómo lo Obtengo?
¿Qué es lo importante?– Capacidades Distribuidas – Granular – realizar una unidad de trabajo– Confiabilidad y Calidad de Servicio– Acoplada Libremente – ninguna suposición acerca de las necesidades de la otra parte– Facilidad de uso basada en minimizar las dependencias artificiales
Elementos de SOA
• SOA está diseñada para soportar lógica orientada a servicios compuesta de servicios y composiciones de servicios, agrupados en un inventario global de servicios.
Is designed tosupport the creationand evolution of a
Service Oriented Architecture
Service inventory
ServiceComposition
Is designedto support the
implementation of
draw from the
Service-OrientedSolution Logic
Can be
Comprised of
Service OrientationDesign Paradigm
Services
Is primarily
distinguished by
Provides principles
that shape thedesign of
Are comprised
of
Provides principles
thart shape the
design of
Is comprised of
Is comprisedof standardized
Is designed tosupport the
Implementation of
Más Conceptos de SOA
• Una composición de servicios está formada por servicios que se asocian para proporcionar funcionalidad requerida para automatizar un proceso o tarea de negocio específicos.
• La orientación a servicios define los servicios como “recursos empresariales agnósticos”, lo que implica que un servicio puede ser invocado por múltiples consumidores, involucrando incluso al servicio en diferentes composiciones.
• Una colección de servicios estandarizados es la base para el inventario de servicios que puede ser administrado independientemente en un ambiente aislado.
• Se pueden automatizar múltiples procesos de negocio creando composiciones que usan servicios agnósticos tomados del inventario.
• Un inventario de servicios establece un pool de servicios, muchos de los cuales serán diseñados deliberadamente para reusarse en múltiples composiciones.
Servicios, Composiciones e Inventario
Ventajas Operativas de SOA
Business Analyst
BusinessModels and
requirementsBusiness analyst Architect
Business analyst hands overBusiness documentation
to architect
Architect
Architect interprets business models and requirements and designs business automation
system.
Business Analyst
BusinessModels and
requirements
Business Analyst Architect
Business analyst and architect define conceptual design together to ensure accurate representation of business
logic
Architect finalizes Physical design
Traditional projects
SOA projects
Restricciones Arquitectónicas de SOA
¬ Un conjunto pequeño de interfaces simples y ubicuas ¬ Las interfaces deberían estar universalmente disponibles para
todos los proveedores y consumidores¬ Únicamente se encuentra codificada la semántica genérica en la
interface – la semántica específica de las aplicaciones en los mensajes
¬ Mensajes descriptivos, es decir, los mensajes no prescriben ningún comportamiento del sistema , o sólo lo hacen en forma mínima
¬ Un esquema limita el formato, el vocabulario y la estructura de los mensajes
¬ Un esquema extensivo permite nuevas versiones de los servicios que serán introducidos sin romper los servicios existentes
Arquitectura Orientada al Servicio
“SOA es un estilo arquitectónico cuyo objetivo es lograr un acoplamiento libre entre los agentes de software interactuantes. Un servicio es una unidad de trabajo realizado por
un proveedor de servicios para alcanzar los resultados finales deseados para un consumidor de servicios. Tanto el proveedor como el consumidor son papeles
desempeñados por agentes de software en representación de sus propietarios”. “http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html
Consumidor
ServicioProveedor Consumidor
Consumidor
Definición de SOA
“La Arquitectura Orientada al Servicio es un paradigma para la organización y utilización de capacidades distribuidas que pueden estar bajo el control de
diferentes dominios de propiedad. Proporciona un medio uniforme para ofrecer, descubrir, interactuar con y
utilizar capacidades para producir efectos deseados consistentes con condiciones previas y expectativas
deseadas.”
Comité Técnico del Modelo de Referencia OASIS SOA
SOA: Ofreciendo Resultados De Abajo Hacia Arriba
Fundamento de una Arquitectura
Mainframe
Servidor de Aplicaciones Web
SOA
Ad
min
istr
aci
ón
y C
ont
rol
Agilidad y Libertad
Dependiente Interdependiente
Independiente
Servicios Web Punto a Punto
Codependiente
El Valor Real de“SOA”
¿Por qué SOA es tan Valiosos para los Negocios?
Valor
Costo
Tiempo
Desperdicio
¬ Se generan resultados y se construyen capacidades que crean el máximo valor para los elementos constitutivos del negocio.
¬ Se gasta menos en materiales y mano de obra y se maximiza el ROI directo.
¬ Se llega más rápido al objetivo; se reducen los costos de oportunidad y se genera un nuevo valor y momentum más pronto.
¬ Se reutiliza todo aquello que sea útil; no se pierde nada del valor; se apalancan los activos existentes.
Generar Valor con SOA
¬ Eficiencia a través de la automatización y la coordinación mejorada¬ Eficiencia centrándose en la creación de valor¬ Agilidad de negocio – implementación del cambio al momento del
negocio¬ Productividad de TI – desde el sostenimiento hasta las nuevas
capacidades¬ Transparencia operacional mejorada¬ Colaboración mejorada¬ Productividad y satisfacción mejoradas del trabajador¬ Apalancamiento en capacidades existentes – “Leave and Layer”¬ Desarrollo de una cultura orientada al desempeño y la mejora¬ Desarrollo de una organización alineada¬ Facilitan los negocios
Aspectos de una Arquitectura Orientada al Servicio
SOA es una estrategia para facilitar un Valor de Negocio
¬No se trata sólo de una “tecnología”. Entender SOA es un compromiso con la organización, el proceso y la tecnología
SOA implica construir aplicaciones a partir de partes
¬Un enfoque de componentes muy parecido a Corba o DCOM
¬A diferencia de Corba o DCOM, SOA se basa en estándares y tiene un soporte masivo de la industria
Uno de los pricipales valores de SOA se advierte en el concepto de re-utilización
¬La reutilización de servicios internos o externos acelera el rendimiento de la inversión que se haga en cualquier estrategia de SOA
Seminario Básico de BPM + SOA | Página 31
¿Por qué Gobernabilidad?
Legacy Finanzas CRM CadenadeSumi-nistro
• Las ERPs se dividen en partes • Las Aplicaciones Previas se
convierten en Servicios
• Los sistemas complejos se rompen en piezas de servicio
• Los módulos se conectan de acuerdo a las necesidades del negocio
¡SOA no administrado es demasiado complejo!
Seminario Básico de BPM + SOA | Página 32
¿Por qué Gobernabilidad?
La Gobernabilidad proporciona¬ Autoridades y responsabilidades¬ Reglas claras y refuerzo de reglas¬ Transparencia organizacional y técnica
La Gobernabilidad SOA permite¬ Dominar la complejidad de TI¬ Soportar el cambio del proceso del
negocio
La Gobernabilidad SOA ahorra tiempo y dinero a los negocios
Integración de Legados
Datos delCliente
Interacción del Cliente
Historia delPedido
Polìtica dePedidos Envío
Orquestación de Servicio de Negocio Información del
ClienteAdministración de
PedidosCompensación de
Pedidos
CRM ERPDatos del Cliente Pedidos Logística
Aplicaciones Compuestas
Procesos de Negocio
ObtenerDatos
VerificarDetalles
CapturarPedido
Revisar Pedido
AprobarPedido
IniciarEnvío
Administración de Pedidos
El Concepto SOA
MONITOREO & ANÁLISIS
GOBERNABILIDAD
Area
Crítica
Do
min
io d
e lo
s A
nal
ista
s d
e
Neg
oci
oD
om
inio
de
los
A
rqu
itec
tos
y
Des
arro
llad
ore
s
BPM + SOA Basics Seminar | Page 34
Las 10 Mejores Prácticas de SOA
1. Entender el Proceso
2. Entender sus datos
3. ¡Gobernar primero!
4. Solicitar la validación de terceros
5. Construir un caso de negocio enfocado al valor
6. No (siempre) llamarlo SOA
7. Foco en el negocio y en el suceso urgente
8. La reutilización no es el único beneficio
9. Empezar con poco….pensar en grande
10. Promover una cultura de compartir
GRACIAS