Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SOA
Escuela de Postgrado
Introducción a SOA
La Flexibilidad del Negocio Depende de la Flexibilidad de TI
La Arquitectura de TI actual es el principal obstáculo
Complejidad
3
Retos del Negocio
5
¿Por dónde empezar?
6
Escuela de Postgrado
SOA: “Cambiando las reglas de juego”
Tal como el concepto de Internet, SOA tiene el potencial para alterar la manera en que se
desarrollan las empresas en el mercado, ya sea en competencia o colaboración.
7
Evolución de las Arquitecturas de TI
Incrementando Modularidad para Lograr Flexibilidad
Servicios
(SOA) Qué viene luego?
Gestión de
Procesos del
Negocio
EAI
FLEXIBILIDAD
Procesamiento
basado en
Mensajes
Invocación de
Subrutinas
Objetos
&
Remotos
Llamadas a
Procedimientos
Remotos
Arquitecturas
Monolíticas
10
Separación de Preocupaciones
¿Qué es una aplicación?
11
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
12
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
Lógica
Datos
13
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
Lógica
Datos
Lógica
Integración
14
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
Lógica
Datos
Lógica
Integración
Lógica
Procesos
15
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
Lógica
Datos
Lógica
Integración
Lógica
Procesos
Reglas
Negocio
16
Separación de Preocupaciones
¿Qué es una aplicación? Lógica Interacción
Usuario
Lógica
Datos
Lógica
Integración
Lógica
Procesos
Reglas
Negocio
Lógica
Monitoreo &
Gestión
17
Los Cimientos de SOA
Lógica
Interacción Lógica Lógica Lógica Reglas Lógica Servicios
Usuario Datos Integración Procesos Negocio Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Bus Servicios Empresariales
Servicios Infraestructura
23
Los Cimientos de SOA
Lógica Lógica Lógica Reglas Lógica Servicios
Datos Integración Procesos Negocio Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Interacción
Usuario
Servicios Infraestructura
24
Los Cimientos de SOA
Lógica Lógica Reglas Lógica Servicios
Integración Procesos Negocio Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Lógica
Interacción
Datos
Usuario
Servicios Infraestructura
25
Los Cimientos de SOA
Lógica Reglas Lógica Servicios
Procesos Negocio Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Lógica
Interacción
Datos
Usuario
Servicios Infraestructura
26
Los Cimientos de SOA
Reglas Lógica Servicios
Negocio Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Lógica Lógica
Interacción
Procesos Datos
Usuario
Servicios Infraestructura
27
Los Cimientos de SOA
Lógica Servicios
Seguridad Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
Servicios Infraestructura
28
Los Cimientos de SOA
Servicios
Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
29
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
30
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
31
Los Cimientos de SOA
Modelador Negocio
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
32
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
33
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
34
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
35
Los Cimientos de SOA
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Lógica
Reglas Lógica Lógica
Interacción
Negocio Procesos Datos
Usuario
36
Cada uno de los productos juega un rol clave para entregar la plataforma …
Servicios TI
Servicios Interacción Servicios Proceso
Desarrollo
Servicios Información
Servicios
Gestión
Bus Servicios Empresariales
Servicios Infraestructura
37
SOA en Acción – es Todo sobre el Negocio
División
38
SOA en Acción – es Todo sobre el Negocio
Cliente
División
División
Servicios
Compartidos
División
Servicios
Compartidos
Proveedor
División
Servicios
Compartidos
Proveedor
Tercerizado
División
Servicios
Compartidos
Proveedor
Tercerizado
División
Servicios
Compartidos
Proveedor
Tercerizado
Consumidor
Consumer
funciones del negocio Arquitectura Procesos Negocio
Estandarización
Usas estándares abiertos de la
industria para comunicar y
coordinar entre componentes
Valor: Independencia de la Service Architecture
Arquitectura Servicios
Proveedor
Provider
Gestión Procesos del Negocio
Orquestar componentes de
negocio estándar (servicios) en
procesos de negocio Arquitectura Componentes
A
Valor: Correspondencia uno-a-
uno con el negocio, TI se
convierte en el habilitador del
cambio
46
Fases del Ciclo de Vida de SOA
Ensamblar los
componentes necesarios
Especialista
de Integración
para soportar los procesos
optimizados Administrador
de Sistemas
Desplegar los
procesos
optimizados en su
Analista de entorno operativo
Negocio
Modelar y analizar
los procesos de
negocio de
principio a fin Operador de
Sistemas
Gestionar los
procesos
Controlar los
desplegados
procesos para
alinear TI con el Operador
Centro de del Negocio
negocio
Excelencia
48
Escuela de Postgrado
Los Puntos de Entrada a SOA Definen la Forma de Empezar
Ya sea Centrado en el Negocio u Orientado a TI
Habilitar la interacción
humana y de procesos con
Entregar información
confiable en el
1 niveles de servicio consistentes
50
Escuela de Postgrado
¿Por qué importa la Gobernabilidad en SOA?
51
Resumen
52
Fundamentos SOA
• Terminología y conceptos.
Escuela de Postgrado
Objetivos y Beneficios Estratégicos
Escuela de Postgrado
Los siete objetivos estratégicos de SOA
• Incrementar la interoperabilidad.
• Incrementar la federación.
• Incrementar el ROI.
Escuela de Postgrado
Los siete objetivos y beneficios estratégicos SOA
Escuela de Postgrado
Objetivos estratégicos y objetivos tácticos
• Todos los objetivos son estratégicos debido a que proveen beneficios a largo
plazo para la TI de la empresa.
Escuela de Postgrado
Incrementar la interoperabilidad
Escuela de Postgrado
Incremento de la interoperabilidad
• Esto significa que los servicios deben ser diseñados para ser compatibles e
interoperables, independientemente de cuando y por quien fueron desarrollados.
Escuela de Postgrado
Incrementar la interoperabilidad
Escuela de Postgrado
Incrementar la federación
Escuela de Postgrado
Incremento de la Federación
Escuela de Postgrado
Incrementar las opciones de diversificación de
fabricantes y vendedores de software
• Esto puede conseguirse por diseñar SOA de manera alineada pero también
neutral a fabricantes y vendedores de software, definiendo los servicios con
niveles adecuados de abstracción.
Escuela de Postgrado
Incrementar las opciones de diversificación de
fabricantes y vendedores de software
Escuela de Postgrado
Incrementar el alineamiento entre negocio y
tecnología
Escuela de Postgrado
Incrementar el alineamiento entre negocio y
tecnología
Escuela de Postgrado
Incrementar el alineamiento entre negocio y tecnología
Escuela de Postgrado
Incrementar el ROI
Escuela de Postgrado
Incrementar el ROI
Escuela de Postgrado
Incrementar la agilidad de la organización
Escuela de Postgrado
Incrementar la agilidad de la organización
Escuela de Postgrado
Reducir la carga de TI
La aplicación consistente de SOA resulta en una TI con:
Una TI con estas características puede beneficiar a una organización a través del
incremento en la rapidez de respuesta y efectividad en costos.
Esto tiene varias vertientes: reducir el gasto y la redundancia de programas y
aplicaciones, reducción del coste operacional. En definitiva, hacer del desarrollo de
software algo más racional y eficiente.
Escuela de Postgrado
Reducir la carga de TI
Escuela de Postgrado
Terminología y Conceptos
Escuela de Postgrado
SOA
Escuela de Postgrado
SOA
Otra definición:
SOA es un modelo de arquitectura tecnológica distribuida con diversas
características que soportan la realización de orientación a servicios.
• Es centrada en la empresa
• Es centrada en la composición
Escuela de Postgrado
Impulsada por el negocio
Escuela de Postgrado
Impulsada por el negocio
Escuela de Postgrado
Neutral a los fabricantes y vendedores de
software
Las arquitecturas tecnológicas
basadas en fabricantes están
generalmente limitadas a la
hoja de ruta de su plataforma.
Escuela de Postgrado
Centrada en el negocio
Escuela de Postgrado
Centrada en el negocio
Escuela de Postgrado
Centrada en la composición
• Una arquitectura tecnológica orientada a servicios debe ser
centrada en la composición en soporte de servicios que
puedan ser usados en una variedad de diferentes
composiciones.
Escuela de Postgrado
Centrada en la Composición
Escuela de Postgrado
Tipos de Arquitectura Orientada a Servicios
Escuela de Postgrado
Orientación a Servicios
La orientación a servicios es un paradigma de diseño que
conduce a la creación de unidades de lógica de solución que
son individualmente formados de manera que puedan ser
colectivamente y repetidamente utilizadas en apoyo del
cumplimiento de un conjunto específico de objetivos
estratégicos y beneficios asociados con SOA y computación
orientada a servicios.
Escuela de Postgrado
Orientación a Servicios
Escuela de Postgrado
Orientación a Servicios
Escuela de Postgrado
Servicios
Escuela de Postgrado
Servicios
• Los servicios son los bloques de construcción básicos de una
plataforma de computación orientada a servicios.
Escuela de Postgrado
Servicios
Entre las principales características de los servicios se pueden indicar
las siguientes:
• Granularidad.
• Diseño de contratos.
• Seguridad.
• Gobierno.
Escuela de Postgrado
Contratos de Servicio
Escuela de Postgrado
Contratos de Servicio
• Un contrato de servicio puede estar además constituido por un
«Acuerdo de niveles de servicio» (Service Level Agreement o
SLA) que describe características adicionales de calidad del
servicio, comportamiento y limitaciones.
Escuela de Postgrado
Contratos de Servicio
• Para la orientación a servicios, el diseño y estandarización del
contrato de servicio es de suma importancia, al punto que
existe un principio de diseño dedicado a la definición
estandarizada de contratos llamado «Estandarización de
Contratos de Servicio».
Escuela de Postgrado
Consumidores de Servicio
• Cuando un programa invoca e interactúa con un servicio es
calificado como consumidor de servicio.
Escuela de Postgrado
Consumidores de Servicio
Cualquier programa de software capaz de invocar e interactuar con un
servicio puede ser considerado un consumidor de servicio.
Escuela de Postgrado
Capacidades de Servicio
• Un servicio puede tener una o más capacidades.
Escuela de Postgrado
Capacidades de Servicio
• Para mantener el rendimiento del servicio lo mejor posible,
tenemos que evaluar la capacidad del servicio en términos de
alta disponibilidad, rendimiento y consumo de recursos.
• Por otra parte, cuando los servicios evolucionan y se
expanden, también tenemos que definir la capacidad de la
plataforma, incluido el bus de servicios empresariales, la
mensajería del bus, y otras plataformas de apoyo como la
base de datos.
• La planificación de la capacidad de un sistema basado en
SOA es un paso obligatorio para mantener el sistema
funcionando de la mejor forma. Se trata de dos actividades
principales que son la planificación de la capacidad de los
servicios, y la planificación de la capacidad de la plataforma.
Escuela de Postgrado
Composición de Servicios
• Una composición de servicios es un conjunto de servicios
colectivamente integrados para automatizar una particular
tarea o proceso de negocios.
Escuela de Postgrado
Composición de Servicios
• La composición de servicios es muy importante para el éxito
de una iniciativa SOA porque los beneficios estratégicos de
incremento del ROI e incremento de la agilidad de la
organización dependen de la habilidad para componer y
recomponer servicios.
Escuela de Postgrado
Composición de Servicios
• Service Composition (composición de servicios) es un término
que describe la manera de como enlazar servicios. El término
también se denomina Web Service Composition.
• Se distinguen dos maneras de combinar servicios: orquestación y
coreografía.
• Una composición de servicios puede contener los dos tipos. Estas
dos son formas estáticas de componer servicios, porque la
secuencia de la ejecución está determinada en algún archivo.
• Existe también la idea de componer servicios de forma dinámica
sin determinar toda la ejecución antes. Si la descripción de los
servicios contiene su semántica en forma procesable para
máquinas, un proceso podría decidir cual servicio invoca después
de que haya empezado.
Escuela de Postgrado
Composición de Servicios
Escuela de Postgrado
Composición de Servicios
Entre los puntos comunes de diseño de composición de servicios
tenemos:
• Transacciones cross-servicios
• Requerimientos de seguridad
• Evitar la transformación
• Demandas de performance
Escuela de Postgrado
Inventario de Servicios
• Un inventario de servicios es una colección de servicios
complementarios independientemente estandarizados y
gobernados dentro de un límite que representa una empresa
en su totalidad o bien un segmento significativo de una
empresa.
Escuela de Postgrado
Inventario de Servicios
• Idealmente todos los servicios son creados como parte del
mismo inventario de servicios de la empresa.
Escuela de Postgrado
Inventario de Servicios de Dominio
Múltiples inventarios de
servicios pueden ser creados
para una empresa.
Escuela de Postgrado
Inventario de Servicios
El diseño de un inventario de servicios comúnmente incluye:
• Ámbito y límites
• Estandarización de servicios
• Escalabilidad
• Plataformas de ejecución
• Infraestructura
• Gobierno
Escuela de Postgrado
Inventario de Servicios
• Los objetivos estratégicos y beneficios de la computación orientada a
servicios son realizados dentro de los límites de un inventario de
servicios.
Escuela de Postgrado
Computación Orientada a Servicios
• La emergencia de la Computación Orientada a Servicios (del
inglés Service - Oriented Computing) como un nuevo
paradigma de computación sitúa a los servicios como
componentes de software fundamentales, expuestos a través
de interfaces en red, neutrales a plataformas y lenguajes de
programación, y que permiten la composición de aplicaciones
distribuidas, posiblemente complejas, a partir de componentes
débilmente acoplados.
• La Computación Orientada a Servicios conlleva la promesa
visionaria de reducir la complejidad y los costes del software,
acelerar el time-to-market, mejorar la fiabilidad y aumentar la
accesibilidad de los usuarios a los servicios ofrecidos por la
empresa y el gobierno.
Escuela de Postgrado
Computación Orientada a Servicios
• Para hacer realidad la promesa SOC se requiere del diseño
de Arquitecturas Orientadas a Servicios (SOA) y del desarrollo
del correspondiente middleware que permita el desarrollo de
aplicaciones distribuidas más sencillas y baratas para soportar
prácticamente cualquier proceso de negocio en cualquier
estructura organizativa o contexto de usuario.
• Los últimos avances en Cloud Computing han mostrado el
potencial de desarrollar la orientación a servicios hasta límites
insospechados. Con una tecnología de servicios y de
plataforma cada vez más poderosa y sofisticada, las
soluciones orientadas a servicios pueden alojarse,
virtualizarse, distribuirse y escalarse a niveles sin
precedentes.
Escuela de Postgrado
Computación Orientada a Servicios
La computación orientada a servicios esencialmente representa un tipo
especializado de computación distribuida.
Escuela de Postgrado
Ciclo de vida de la entrega de servicios
(Service Delivery Lifecycle)
Escuela de Postgrado
Delivery de Proyectos SOA
Previo al comienzo de una iniciativa SOA, un enfoque de
delivery del proyecto necesita ser elegido para organizar mejor
todo el ciclo de vida.
Escuela de Postgrado
Fases Principales del Ciclo de Vida de Delivery
de Servicios
• Análisis Orientado a Servicios
• Modelado de Servicios
• Desarrollo de Servicios
• Implementación de Servicios
Escuela de Postgrado
Ciclo de Análisis de Inventario de Servicios
El análisis del inventario
de servicios como parte
del enfoque top-down
consiste de un ciclo
iterativo durante el cual
el modelo de inventario
de servicio es
incrementalmente
definido como resultado
de sucesivas iteraciones
de pasos que incluyen el
análisis orientado a
servicios.
Escuela de Postgrado
Análisis Orientado a Servicios
• SOA hace énfasis en una relación directa entre el análisis
de inteligencia de negocios y los servicios que finalmente
representan e implementan la lógica de negocios.
Escuela de Postgrado
Modelado de Servicios
• El modelado de
servicios es la parte de
la fase de análisis en la
que los servicios y sus
capacidades son
conceptualizados
previamente a su
definición y desarrollo
físico real.
• Los servicios
conceptualizados son
llamados servicios
candidatos
Escuela de Postgrado
Enfoque Centrado en el Negocio
• Gran parte del modelado de servicio está enfocado en la
encapsulación y abstracción de la lógica de negocios.
Escuela de Postgrado
Proceso de Diseño Orientado a Servicios
Escuela de Postgrado
Diseño – Primero el Contrato
Escuela de Postgrado
Evitando la transformación
• Uno de los objetivos principales del diseño orientado a servicios. Es el
evitar el uso de tecnologías de transformación en soporte del fomento
de la interoperabilidad por defecto.
Escuela de Postgrado
Gobierno del Inventario de Servicios
El gobierno puede incluir muchas cosas, sin embargo desde una
perspectiva de delivery, la eventual carga que requiere la fase de
gobierno de servicios es una consideración primaria.
Escuela de Postgrado
Gobierno del Inventario de Servicios
• Cada estrategia
tiene sus ventajas
y desventajas.
• La clave es
siempre tomar en
cuenta la carga de
gobierno cuando
se elige un
enfoque.
Escuela de Postgrado
Conceptos de
tecnología SOA
Escuela de Postgrado
XML – Una Breve Historia
Escuela de Postgrado
XML – Introducción
Escuela de Postgrado
XML – Introducción
• XML es metadata.
• Un documento XML
contiene datos
reales y la
metadata XML que
describe los datos.
Escuela de Postgrado
XML – Conceptos Básicos
• Al igual que HTML, XML fue desarrollado por el World Wide Web
Consortium (W3C).
Escuela de Postgrado
XML – Conceptos Básicos
HTML
<b>Luis</b>
Sabemos que “Luis“ está en negrita debido al tag <b> pero
no sabemos que significado tiene la data
XML
<nombre>Luis</nombre>
Sabemos que “Luis“ representa un nombre debido al tag
<nombre>
Escuela de Postgrado
XML – Conceptos Básicos
Escuela de Postgrado
XML Schema Definition
Language (XML Schema)
Escuela de Postgrado
XML Schema – Introducción
Escuela de Postgrado
XML Schema – Introducción
• Estructuras.
• Reglas de
validación.
• Restricciones en
los tipos de datos
• Relaciones entre
los elementos.
Escuela de Postgrado
XML Schema – Introducción
• Los esquemas XML son comparables a modelos de datos de bases de
datos, y los documentos XML comparables a registros de bases de datos
• A diferencia de la
representación de
datos en BD
relacionales, los
documentos XML
necesitan estar
basados en un tipo
de estructura de
árbol o directorio
Escuela de Postgrado
XML Schema – Introducción
Escuela de Postgrado
XML Schema – Introducción
• XML es usado intrínsecamente por muchas especificaciones
de servicios web para definir los modelos de datos por los
correspondientes lenguajes de especificación.
• Los esquemas XML son usados también junto con WSDL para
establecer el modelo de datos para los contratos de los
servicios web basados en SOAP.
Escuela de Postgrado
XML Schema – Introducción
• Un esquema XML
usualmente existe
como un archivo
separado en el
cual el modelo de
datos para un tipo
específico
(vocabulario) de
documento XML
es definido.
Escuela de Postgrado
XML Schema – Introducción
• Múltiples documentos XML pueden enlazarse o apuntar a la
misma definición de esquema XML.
Escuela de Postgrado
XML Schema – Tipos
Escuela de Postgrado
XML Schema – Tipos
• Elementos definidos dentro de esquemas XML que contienen
elementos hijos o atributos tienen tipos complejos.
Escuela de Postgrado
XML Schema – Tipos
Escuela de Postgrado
XML Schema – Namespaces
• Los namespaces son una parte importante de los lenguajes
basados en XML que esencialmente establecen un medio de
creación de identificadores únicos.
• Cada lenguaje XML (incluyendo XML Schema, WSDL, SOAP, WS-
Addressing, WS-BPEL, etc.) tiene un namespace predefinido
asociado con el.
• De esta manera, cuando estos elementos son mezclados unos con
otros en el mismo documento XML, el entorno de ejecución puede
determinar a cual lenguaje pertenece cada elemento.
• Como resultado, múltiples elementos dentro del mismo
documento XML pueden ser parseados y validados usando
diferentes procesadores.
Escuela de Postgrado
XML Schema – Namespaces
Escuela de Postgrado
XML Schema – Namespaces
• Los esquemas XML también proveen soporte para namespaces que
permiten a los autores de los esquemas diferenciar entre vocabularios
XML similares.
Escuela de Postgrado
XML Schema – Conceptos Básicos
• Una definición de esquema XML es
capaz de contener múltiples
documentos de esquema.
Escuela de Postgrado
XML Schema – Conceptos Básicos
Cada esquema puede ser dinámicamente
extendido con constructores
suplementarios.
Escuela de Postgrado
XML Schema – Conceptos Básicos
Retos comunes con esquemas XML y SOA:
Escuela de Postgrado
XSLT, XQuery y XPath
Escuela de Postgrado
XSLT
Escuela de Postgrado
XSLT
Escuela de Postgrado
XSLT
Escuela de Postgrado
XSLT
Escuela de Postgrado
XSLT
Escuela de Postgrado
XSLT
• Aunque XSLT es una tecnología probada y establecida usada para
posibilitar la interoperabilidad, es una tecnología que tratamos de
evitar utilizar cuando diseñamos servicios para SOA.
Escuela de Postgrado
XQuery
• La especificación XQuery
establece un lenguaje de
consulta de datos
completo, diseñado
específicamente para
documentos XML.
• XQuery es a
documentos XML lo
que SQL es a bases de
datos relacionales.
• Alguna sintaxis XQuery
es derivada de SQL.
Escuela de Postgrado
XPath
• Los elementos o valores de los elementos dentro de los documentos
pueden ser buscados y filtrados usando funciones XPath.
Escuela de Postgrado
XPath
Escuela de Postgrado
Servicios basados en Web y
Arquitectura Distribuida
Tradicional
Escuela de Postgrado
Nomenclatura de Servicios basados en Web
Escuela de Postgrado
Servicios basados en Web y Arquitectura Distribuida
Tradicional
En las soluciones distribuidas tradicionales:
Escuela de Postgrado
Servicios basados en Web y Arquitectura Distribuida Tradicional
• Al igual que los componentes, los servicios basados en Web
son unidades auto contenidas de lógica de solución capaces
de ser compuestas.
• Al igual que los componentes, los servicios basados en Web
pueden ser desarrollados usando tecnología propietaria y la
lógica de solución subyacente puede o no ser basada en
componentes.
• A diferencia de los componentes, los servicios basados en
Web son frecuentemente diseñados para comunicarse con
tecnologías no propietarias basadas en estándares de la
industria
Escuela de Postgrado
Servicios basados en Web y Arquitectura Distribuida Tradicional
Escuela de Postgrado
Servicios basados en Web y Arquitectura Distribuida Tradicional
Los protocolos RPC posibilitan la comunicación remota de componentes a
través del uso de proxy stubs que representan componentes remotos en
servidores locales.
Escuela de Postgrado
Servicios basados en Web y Arquitectura Distribuida Tradicional
• Al igual que los componentes, los servicios basados en Web
son capaces de comunicarse a través de los límites de los
servidores.
• A diferencia de los componentes, los servicios basados en
Web generalmente no usan API’s propietarias o tecnologías
RPC para comunicación remota.
• Los servicios
basados en
Web confían
en el
intercambio de
datos definido
por sus
contratos de
servicio.
Escuela de Postgrado
Servicios basados en Web y SOA
Escuela de Postgrado
Servicios basados en Web y SOA
• Los servicios basados en Web pueden ser diseñados para
usarse dentro de soluciones distribuidas tradicionales o como
extensiones de ellas.
• O pueden ser diseñados para usarse en soluciones
orientadas a servicios.
• Esta flexibilidad es una de las razones que han hecho tan
populares y tan usados a los servicios basados en Web.
• Esto también revela el hecho que el mero uso de
servicios basados en Web no resulta en soluciones
orientadas a servicios.
Escuela de Postgrado
Servicios como Componentes
• SOA como un modelo arquitectural es neutral a cualquier
plataforma tecnológica.
• Esencialmente cualquier implementación tecnológica que
pueda ser usada para crear sistemas distribuidos puede ser
adecuada para orientación a servicios
• Medios de implementación comunes para construir servicios
son:
• Componentes
• Servicios Web (o servicios Web basados en SOAP)
• Servicios REST
Escuela de Postgrado
Servicios como Componentes
Escuela de Postgrado
Servicios como Componentes
• Con componentes el contrato de servicio es físicamente acoplado a la lógica de solución.
• Con servicios Web basados en SOAP y servicios REST, el contrato es físicamente
desacoplado. Esto puede ser beneficioso para la aplicación de orientación a servicios.
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
Un proveedor de servicios puede ser accedido por una variedad
de consumidores de servicios.
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
• Un mensaje puede ser procesado por múltiples programas intermediarios de
ruteo y procesamiento antes de llegar a su destino final.
• La ruta que un mensaje toma es el message path.
• Un message path puede ser predeterminado o ser determinado dinámicamente
en tiempo de ejecución.
• Los intermediarios son programas que realizan tareas de procesamiento
intermedio.
• Existen dos tipos de intermediarios:
• Agentes de servicio
• Servicios intermediarios
Escuela de Postgrado
Roles de los Servicios
Los agentes de servicio existen como programas ligeros conducidos por
eventos que automáticamente interceptan y procesan mensajes.
Escuela de Postgrado
Roles de los Servicios
Los intermediarios
son servicios que
transitan entre los
roles de
proveedor de
servicios y
consumidor de
servicios.
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Roles de los Servicios
• Un Initial sender es
siempre un
consumidor de
servicios.
• Un ultimate receiver
es siempre un
proveedor de
servicios.
• Un intermediario
nunca es un initial
sender ni un ultimate
receiver.
Escuela de Postgrado
Roles de los Servicios
Escuela de Postgrado
Visión General de Servicios Web
Escuela de Postgrado
Servicios Web – Un poco de Historia
Escuela de Postgrado
Servicios Web – Un poco de Historia
• Después que SOAP estuvo en uso, la industria empezó a reconocer
el potencial del intercambio de datos estandarizado basado en Web.
Escuela de Postgrado
Servicios Web – Un poco de Historia
• Una de las primeras iniciativas en soporte de servicios Web fue el Web Service
Description Language (WSDL), también desarrollado por el W3C.
• WSDL estableció un medio estandarizado de expresar una interface técnica
basada en mensajería (o un contrato técnico) vía el lenguaje XML.
Escuela de Postgrado
Servicios Web – Un poco de Historia
Escuela de Postgrado
Servicios Web – Un poco de Historia
Escuela de Postgrado
La Primera Generación, El Framework de Servicios Web
• WSDL, SOAP y UDDI
establecieron la primera
generación del framework
de servicios Web basado
en SOAP.
• Aunque su comunicación
no propietaria hizo
fascinantes a los servicios
web basados en SOAP,
este framework fue
relativamente primitivo,
adoleciendo de
características esenciales
de QoS .
Escuela de Postgrado
La capa de Servicios Web
Los servicios Web introducen contratos técnicos que están generalmente
basados en el uso de XML Schema
La capa de
servicios Web
por lo tanto es
construida sobre
la capa de
representación
XML de los datos
establecida por
los esquemas
XML.
Escuela de Postgrado
Servicios Web basados en SOAP
• Un servicio Web basado en SOAP es una solución lógica que tiene una
definición de WSDL publicada y que intercambia mensajes que cumplen
con el protocolo SOAP.
Escuela de Postgrado
Servicios Web y Organizaciones de
Estándares
Escuela de Postgrado
Servicios Web y Organizaciones de Estándares
• Las organizaciones de estándares son responsables por desarrollar
especificaciones dentro de los estándares de la industria.
• Las tres principales organizaciones de estándares que influencian el
framework de servicios Web son:
• W3C
• OASIS
• WS-I
• Estas organizaciones están formadas por miembros comprendidos
principalmente de representantes de proveedores.
Escuela de Postgrado
Servicios Web y Organizaciones de Estándares
World Wide Web Consortium (W3C)
• Entre sus contribuciones más destacadas están: XML, XML Schema, Xquery,
XML Encription, XML Signature, Xpath, XSLT, WSDL, SOAP, WS-CDL, WS-
Addressing, WSA
Escuela de Postgrado
Servicios Web y Organizaciones de Estándares
Organization for the Advancement of Structured Information Standards
(OASIS)
Escuela de Postgrado
Servicios Web y Organizaciones de Estándares
The Web Services Interoperability Organization (WS-I)
Escuela de Postgrado
Contratos de Servicios Web
Escuela de Postgrado
Contratos de Servicios Web
Escuela de Postgrado
Contratos de Servicios Web
• Un WSDL definition es un
documento XML.
• Un WSDL definition
consiste de una
descripción abstracta y
una descripción concreta.
Escuela de Postgrado
Contratos de Servicios Web
Escuela de Postgrado
Contratos de Servicios Web
Escuela de Postgrado
Contratos de Servicios Web
• Los WSDL’s confían en los XML schemas para definir los tipos usados por los
mensajes de entrada y salida.
Escuela de Postgrado
Contratos de Servicios Web
• Esquemas XML centrados en la entidad pueden ser
diseñados para representar grupos de información específica
que corresponden a modelos de entidad de negocio.
Escuela de Postgrado
Mensajería de Servicios Web
Escuela de Postgrado
Mensajería de Servicios Web
• Los servicios Web confían solamente en mensajes como medio de
intercambiar información.
Escuela de Postgrado
Mensajería de Servicios Web
• Un mensaje SOAP es un documento XML que esencialmente
actúa como un contenedor estandarizado diseñado para
transportar data XML.
• La estructura
del contenido
del mensaje es
fijada por
definiciones de
XML schema.
Escuela de Postgrado
Mensajería de Servicios Web
• Un mensaje SOAP es
estructurado como un documento
sobre que contiene una sección
de cabecera opcional y una
sección requerida llamada
cuerpo.
Escuela de Postgrado
Mensajería de Servicios Web
Escuela de Postgrado
Mensajería de Servicios Web
Escuela de Postgrado
Descubrimiento de Servicios Web
Escuela de Postgrado
Descubrimiento de Servicios Web
Escuela de Postgrado
Descubrimiento de Servicios Web
Los registros públicos permiten al dueño del proveedor de servicios registrar sus
servicios para ser descubiertos por otras organizaciones.
Los registros privados permiten a una organización establecer un repositorio central de
servicios para soportar el descubrimiento dentro de la empresa.
Escuela de Postgrado
Descubrimiento de Servicios Web
• Los registros UDDI son documentos XML que esencialmente contienen meta
información descubrible acerca de los servicios.
Escuela de Postgrado
Anatomía de Servicios Web
Escuela de Postgrado
Anatomía de Servicios Web
• Desde una perspectiva de implementación, un servicio Web consiste de
diferentes partes físicas que colectivamente cumplen los requerimientos
de procesamiento asociados con su rol.
Escuela de Postgrado
Anatomía de Servicios Web
Escuela de Postgrado
Anatomía de Servicios Web
• Una representación
física de un servicio Web
actuando como un
proveedor de
servicios.
Escuela de Postgrado
Anatomía de Servicios Web
• Una representación
física de un servicio
Web actuando
como un
consumidor de
servicios.
• Nótese que el
proxy se refiere a
un proxy del
servicio.
Escuela de Postgrado
Tecnologías WS-*
Escuela de Postgrado
Introducción a WS-*
Escuela de Postgrado
Introducción a WS-*
Escuela de Postgrado
Introducción a WS-*
• Message Exchange Patterns
• Service Activities
• Coordination (WS-Coordination)
• Orchestration (WS-BPEL)
• Addressing (WS-Addressing)
• Policies (WS-Policy)
• Security (WS-Security)
Escuela de Postgrado
Actividades de Servicio
Escuela de Postgrado
Actividades de Servicio
Escuela de Postgrado
Actividades de Servicio
• Mientras que los MEP’s son patrones en tiempo de diseño, las actividades de
servicio representan escenarios en tiempo de ejecución .
Escuela de Postgrado
Actividades de Servicio
Escuela de Postgrado
Actividades de Servicio
Las actividades complejas involucran más de dos servicios (y MEP’s) como
parte de una composición de servicios.
Estos tipos de actividades más elaborados frecuentemente requieren el uso
de extensiones WS-*, especialmente las asociadas con la administración de
actividades.
Escuela de Postgrado
Actividades de Servicio
Las actividad
complejas son
bastante comunes
en soluciones
orientadas a
servicios y confían
en la habilidad de
los servicios Web
para actuar como
miembros
efectivos de
composiciones.
Escuela de Postgrado
Actividades de Servicio
Escuela de Postgrado
Coordinación
(WS-Coordination)
Escuela de Postgrado
Coordinación (WS-Coordination)
Escuela de Postgrado
Coordinación (WS-Coordination)
• La duración de la actividad.
Escuela de Postgrado
Coordinación (WS-Coordination)
• WS-Coordination es una especificación que presenta un modelo de servicio
coordinador genérico.
Escuela de Postgrado
Coordinación (WS-Coordination)
Escuela de Postgrado
Coordinación (WS-Coordination)
Un servicio de
coordinación
gestiona la
interacción entre
el servicio de
aplicación y los
servicios
participantes.
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-
BusinessActivity)
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Las transacciones participantes votan sobre el resultado de la
transacción atómica pero un participante vota por abortar.
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Debido a que un voto por abortar fue recibido, el servicio
coordinador aborta la transacción y notifica a todos los
participantes a hacer rollback a los cambios.
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Escuela de Postgrado
Transacciones
(WS-AtomicTransaction y WS-BusinessActivity)
Una actividad de
servicio manejada por
WS-BusinessActivity
puede encapsular
una o más
transacciones
atómicas.
Escuela de Postgrado
Orquestación (WS-BPEL)
Escuela de Postgrado
Orquestación (WS-BPEL)
• La orquestación emergió desde la era de Enterprise
Application Integration (EAI) como una forma de
middleware.
Escuela de Postgrado
Orquestación (WS-BPEL)
Una arquitectura hub and spoke en la cual la plataforma de orquestación
establece un hub que se convierte en un punto de contacto primario para
aplicaciones dispares.
Escuela de Postgrado
Orquestación (WS-BPEL)
Escuela de Postgrado
Orquestación (WS-BPEL)
• El Web Service Business Process Execution
Language (WS-BPEL) proporciona una forma de
expresar lógica de proceso de negocios siendo un
estándar de la industria.
Escuela de Postgrado
Orquestación (WS-BPEL)
• La definición de los procesos WS-BPEL pueden también
ser encapsulados y expuestos como servicios Web.
Escuela de Postgrado
Addressing
(WS-Addressing)
Escuela de Postgrado
Addressing (WS-Addressing)
• La especificación WS-Addressing provee características
para el ruteo de mensajes basado en un estándar de la
industria vía un conjunto de cabeceras SOAP
predefinidas.
Escuela de Postgrado
Addressing (WS-Addressing)
Endpoints References (EPR’s) permite definir detalles adicionales
relativos al contrato del servicio Web (endpoint).
Un uso común
de EPR’s es
dirigir mensajes
a instancias de
servicio a través
del uso de
identifica dores
especiales.
Escuela de Postgrado
Addressing (WS-Addressing)
• Las cabeceras MI son usadas para equipar mensajes con ruteo auto gobernado y
detalles de procesamiento (el cual puede incluir EPR’s).
• Las cabeceras MI brindan a la mensajería SOAP algo similar a lo que una hoja de
embarque brinda a los procesos de embarque.
Escuela de Postgrado
Mensajería Confiable
(WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
Escuela de Postgrado
Mensajería Confiable (WS-RM)
El InOrder delivery
assurance es
usado para
garantizar que los
mensajes son
entregados en una
secuencia
específica.
Escuela de Postgrado
Políticas
(WS-Policy)
Escuela de Postgrado
Políticas (WS-Policy)
• El WS-Policy framework proporciona un conjunto de
especificaciones que definen el ensamble y estructura de los
documentos de descripción de políticas.
Escuela de Postgrado
Políticas (WS-Policy)
Escuela de Postgrado
Políticas (WS-Policy)
• Policy assertions pueden ser agrupadas en policy alternatives.
• Cada policy alternative representa una aceptable combinación de
policy assertions.
• Esto da a un proveedor de servicio la habilidad de ofrecer a los
consumidores opciones de políticas.
Escuela de Postgrado
Políticas (WS-Policy)
WS-Policy definitions pueden ser compartidas por diversas definiciones de
WSDL permitiendo la creación de policy assertions globales o específicas
a un dominio.
Escuela de Postgrado
Seguridad
(WS-Security)
Escuela de Postgrado
Seguridad (WS-Security)
Escuela de Postgrado
Políticas (WS-Policy)
La seguridad en
la capa de
transporte es
frecuentemente
insuficiente
cuando existen
intermediarios
debido a que el
mensaje no está
protegido
mientras es
procesado por
intermediarios.
Escuela de Postgrado
Políticas (WS-Policy)
Escuela de Postgrado
Enterprise Service Bus (ESB)
Escuela de Postgrado
Enterprise Service Bus (ESB)
Escuela de Postgrado
Enterprise Service Bus (ESB)
Un ESB comúnmente debe proporcionar:
• Encolamiento asíncrono
• Enrutamiento Intermedio
• Mensajería confiable
• Centralización de políticas
• Centralización de reglas
• Mensajería conducida por eventos
• Transformación de formatos de datos (Service Broker)
• Transformación de modelos de datos (Service Broker)
• Protocol bridging (Service Broker)
Escuela de Postgrado
Enterprise Service Bus (ESB)
Los items de la lista anterior están relacionados a la funcionalidad del Service
Broker, pues ellos pueden llevar a cabo funciones de transformación y bridging.
Por ejemplo:
Escuela de Postgrado
Enterprise Service Bus (ESB)
• Un mensaje pasando
por varios pasos de
procesa miento
ejecutados por un ESB.
• El mensaje es primero
transforma do por un
Service Broker y luego
es ruteado dinámica
mente y finalmente
grabado en una cola
antes de ser entregado.
Escuela de Postgrado
Diseño y Arquitectura SOA
Los 8 principios de diseño SOA
1.- Contrato de Servicios Estandarizados
Escuela de Postgrado
De este modo, todo consumidor de los servicios accederá mediante el
contrato, logrando la independencia entre el consumidor y la
implementación del propio servicio. Con esto se evita el manejo incorrecto
de los datos, se evita trabajo innecesario en la invocación entre estos
servicios y también se pone de manifiesto que la existencia de un modelo
de datos a nivel de servicio es una de las primeras necesidades que se
debe tener en cuenta.
2.- Bajo Acoplamiento
• Por otro lado, estos servicios reutilizables deben estar diseñados de manera tal
que su solución lógica sea independiente de cualquier proceso de negocio o
tecnología en particular.
Con este principio se busca reducir las posibilidades de duplicación de
lógica. Si un servicio que ya existe en un contexto funcional se ajusta a la
nueva lógica reutilizable, en lugar de crear un nuevo servicio, dicha lógica
debe formar parte del servicio existente.
5.- Autonomía
Este principio nos dice que todo Servicio debe tener su propio entorno de ejecución.
De esta manera el servicio es totalmente independiente y nos podemos asegurar
que así podrá ser reutilizable desde el punto de vista de la plataforma de ejecución.
6.- No estado
Un servicio no debe guardar ningún tipo de información. El tratamiento de una gran
información de estado afectaría gravemente a la escalabilidad del servicio,
poniendo en riesgo su disponibilidad. Idealmente, todos los datos que necesita el
servicio para trabajar deben provenir directamente de los parámetros de entrada.
7.- Descubrimiento
• Todo servicio debe poder
ser descubierto de
alguna forma para que
pueda ser utilizado,
consiguiendo así evitar
la creación accidental de
servicios que
proporcionen las mismas
funcionalidades.
• En el caso de los
Servicios Web, el
descubrimiento se
logrará publicando los
interfaces de los
servicios en registros
UDDI.
8.- Composición
• Este principio nos dice que todo servicio debe estar construido de tal
manera que pueda ser utilizado para construir servicios genéricos de
mayor complejidad, el cual estará compuesto de servicios de menor nivel.
• En el caso de los Servicios Web, esto se logrará mediante el uso de los
protocolos para orquestación (WS-BPEL) y coreografía (WS-CDL).
• El concepto de desarrollo de software a partir de componentes existentes
independientemente fomenta el concepto de composición. Por ello el
concepto de composición es heredado por la orientación a servicios, por
lo que un proceso de negocio está automatizado mediante la
combinación de múltiples servicios.
• Sin embargo, dentro de la orientación a servicios es mayor el enfoque en
la creación de servicios que se pueden componer y recomponer dentro
de múltiples soluciones para proporcionar la agilidad prometida por la
SOA.
Como resultado de este énfasis, algunas pautas son requeridas para el desarrollo
de servicios que pueden ser efectivamente agregados en varias soluciones.
Modelos de referencia útiles para
adoptar SOA
Modelo conceptual o glosario
• Debido al frenesí que desde los primeros años 2000 ha habido sobre SOA
y WS-*, existen muchos puntos de confusión al respecto.
Escuela de Postgrado
Patrones de Intercambio de Mensajes
Escuela de Postgrado
Patrones de Intercambio de Mensajes
• Message exchange patterns (MEPs) representan un conjunto
de plantillas que proporcionan secuencias ya trazadas para el
intercambio de mensajes.
Escuela de Postgrado
Patrones de Intercambio de Mensajes
Escuela de Postgrado
Patrones de Intercambio de Mensajes
Escuela de Postgrado
Servicios REST
Escuela de Postgrado
Servicios REST
• REST (Representational State Transfer) originado en una disertación de Roy
Fielding en el año 2000.
• Los servicios REST se comunican usando métodos HTTP, tales como GET, PUT,
POST, DELETE, HEAD, OPTIONS.
• No obstante cada servicio REST puede ser diseñado para soportar sólo un
subconjunto de los métodos HTTP disponibles.
Escuela de Postgrado
Servicios REST
Escuela de Postgrado
Servicios REST
• Cuando los servicios REST intercambian datos, las cabeceras
HTTP pueden ser usadas para llevar meta información, tal como
tokens de autenticación, códigos de respuesta, información de
errores.
Escuela de Postgrado
Servicios REST
• Los servicios REST pueden aprovechar características de
caching provistas por HTTP a fin de diferir y hacer persistente
alguna forma de datos de estado.
Escuela de Postgrado
Servicios REST
• Existen diseños candidatos de patrones de diseño SOA
actualmente en desarrollo:
• Alternative Format
• Entity Linking
• Layered Redirect
• Transport Caching
• Uniform Contract
• Idempotent Capability
Escuela de Postgrado