Principios SOA
Principios SOA
Principios SOA
Mentoring
Services
Francisco Fagas
Microsoft MVP ALM
Arquitecto SOA
6/23/2014
Mentoring
Services
Qu es Arquitectura de Software?
Qu es Arquitectura de Software?
Programacin en capas
Uso de Web Services
Varias capas fsicas Servidores
Es una forma de
pensar
6/23/2014
Arquitectura de Software
La arquitectura de software, tiene que ver con el diseo y la
implementacin de estructuras de software de alto nivel. Es el
resultado de ensamblar un cierto nmero de elementos
arquitectnicos de forma adecuada para satisfacer la mayor
funcionalidad y requerimientos de desempeo de un sistema,
as como requerimientos no funcionales, como la confiabilidad,
escalabilidad, portabilidad, y disponibilidad.
Evolucin
Aplicaciones
Monolticas
Aplicaciones
Componentizadas
Integracin de
Aplicaciones
heterogneas
Integracin de
Aplicaciones
Externas
Servicios
6/23/2014
Mentoring
Services
Arquitectura
distribuida
Arquitectura Local
EIA
SOA
Computacin en la
nube
6/23/2014
Evolucin de la arquitectura de TI
1970s a
med 1980s
Pre 1950s
a 1960s
Arquitecturas
Monolticas
Sub-rutinas
/Remote
Procedure
Calls
1980s a
mid 1990s
Invocacin de
Objetos
Remotos
Med 1990s a
early 2000s
Message
Processing
Late 1990s
Enterprise
Application
Integration
(EAI)
Hoy
Services
(SOA)
Horizontal
Ecosistema
Abstraccin
6/23/2014
Propiedades
Programacin
Estructurada
Objetos
Componentes
Servicios
Granularidad
Muy fina
Fina
Intermedia
Gruesa
Contrato
Definido
Privado/Publico
Publico
Publicado
Reusabilidad
Baja
Baja
Intermedia
Alta
Acoplamiento
Fuerte
Fuerte
Dbil
Muy dbil
Dependencias
Tiempo de
Compilacin
Tiempo de
Compilacin
Tiempo de
Compilacin
Run-Time
mbito de
Comunicacin
Intra-Aplicacin
IntraAplicacin
InterAplicaciones
Inter-Empresas
Esquema
A
6/23/2014
Arquitectura Local
Caractersticas
Reutilizacin en un solo dominio de
negocio
Bajo nivel de componentizacin
Sin Gobernabilidad
Arquitectura Local
Cliente
Servidor Web
Cliente
Pginas
Lgica de Negocios
Acceso a Datos
Pginas
Lgica de Negocios Cliente
Cliente
Sin
reutilizacin
Acceso a Datos
6/23/2014
Arquitectura Distribuida
Caractersticas
Permite reutilizacin dentro de la
organizacin
Facilita la composicin de aplicaciones
Reutilizacin de workflows y servicios
Alta Gobernabilidad
Arquitectura Distribuida
Cliente
Cliente
Servidor de Aplicaciones
Cliente
Lgica de Negocios
Servidor Web
Cliente
Pginas
BPM
Acceso a Datos
Servicios
Reutilizacin
Servicios
Workflows
Registro
Retorno
Cliente
Cuenta
Consulta
Lgica de Negocios
Arquitectura Distribuida
6/23/2014
Producto
Cmo lo implemento?
Productos a utilizar
Windows Server 2008 R2 o superior
IIS 7+
WAS Windows Process Activation Service
Windows AppFabric
WCF Windows Comunication Foundation
WF Workflow Foundation
Visual Studio
6/23/2014
SOA
Caractersticas
Reutilizacin a nivel inter empresarial
Facilita el mantenimiento
Permite desarrollar nuevas caractersticas
de forma rpida
Gobernabilidad Extensa
SOA - ESB
A
10
6/23/2014
Cmo lo implemento?
Productos a utilizar
Biztalk Server
Windows Server 2008 R2
IIS 7+
WCF
Arquitectura Distribuida
.NET
Arquitectura de Integracin
.NET
App Legacy
App Legacy
App Legacy
Se complementan
11
6/23/2014
Y la computacin en la nube?
Caractersticas
Reutilizacin del Hardware
Reduccin del riesgo
Reduccin de los costos
Cloud Computing
Cloud Computing
Consumo
9
8
7
6
5
4
3
2
1
0
Hardware Necesario
Hardware Subutilizado
Hardware ptimo
Consumo
12
6/23/2014
13
6/23/2014
Enterprise ServiceEnterprise
Bus
Service Bus
Relay Services
Permite interconectar clientes con
servicios on premises
Forma segura de exponer servicios
14
6/23/2014
Azure
Connect
Cliente
Servicio
Cmo lo implemento?
Productos a utilizar
Windows Azure
Azure Connect
Azure AppFabric
Windows Server 2008 R2+
WCF
Visual Studio
15
6/23/2014
Mentoring
Services
Definicin de SOA
Qu es SOA?
entonces SOA es
Implementar usando Web Services?
Integracin??
Entonces tiene que ser una estrategia de TI?
Una situacin que tristemente ocurre:
Desarrollador: Jefe!, ya tenemos listo el Web Service!
Jefe: Ah muy bien!!, entonces con eso ya tenemos
implementado SOA?
16
6/23/2014
Qu es SOA?
Desarrollador:
Qu es SOA?
Nueva generacin de la computacin distribuida.
Brinda beneficios estratgicos a las organizaciones.
SOA es un estilo de arquitectura que enfatiza
el uso de servicios de red, seguros, compartibles,
que realizan tareas atmicas y desacoplados
para incrementar la flexibilidad del negocio de
una manera interoperable y agnstica tecnolgicamente.
17
6/23/2014
Qu es SOA?
Es un concepto de arquitectura de software que define la
utilizacin de servicios para dar soporte a los requisitos del
negocio.
Es una estrategia de TI que organiza funciones contenidas en las
aplicaciones empresariales, en servicios interoperables basados
en estndares que pueden combinarse rpidamente para
satisfacer las necesidades del negocio.
Organiza las funciones contenidas en aplicaciones empresariales
convirtindolas en servicios.
Qu es SOA?
Se aproxima a la estrategia de negocio de la empresa
Es un compromiso organizacional, que permite adoptar las
premisas de este paradigma y enmarcarlas dentro de la
estrategia de la empresa.
Implica un cambio de mentalidad tanto en las lneas directivas
como de las reas operativas de la empresa.
18
6/23/2014
Roles
Negocios
Arquitectura
Implantacin
Operaciones
Procesos de negocio
Un proceso de negocio es un conjunto de
actividades que generan un valor para la
empresa
La orientacin SOA permite modelar un
proceso como una orquestacin de
servicios
19
6/23/2014
BPM
Business Process Management
El BPM son las actividades que tienen como
objetivo el anlisis, diseo, ejecucin y
monitorizacin de los procesos de negocio
BPM
Caractersticas de BPM
Debe permitir gestionar el ciclo de vida de los
servicios
Simular procesos de negocio
Monitorizar KPIs de los procesos de negocio
Agilidad en el cambio de los procesos
20
6/23/2014
BPM
Relacin BPM, SOA y Web Services
Los Web Services son la tecnologa ms
adecuada para implementar arquitecturas SOA
Las arquitecturas SOA representan
adecuadamente procesos de negocio
El BPM permite la implantacin de un proceso
de negocio usando una arquitectura SOA.
BPM
Cmo genera valor el BPM?
La tecnologa debe dar soporte a los procesos
de negocio.
El mercado actual es muy cambiante. Los
cambios en los procesos deben ser rpidos
El BPM permite ver los procesos como una
sucesin funcionalidades atmicas.
Consecuencia: Es fcil y rpido cambiar los
procesos de negocio Ventaja competitiva
21
6/23/2014
BPM
Cmo empezar a utilizar BPM?
Empezar por un proceso que funcione mal
Intentar que la lgica de negocio cubra distintos
actores tanto internos como externos
BPM
Puntos clave de xito
22
6/23/2014
BAM
Business Activity Monitoring
Son las actividades que van a permitir controlar
los procesos de negocio (monitorizacin).
Sus funciones principales son:
Seguimiento del proceso
Detectar cuellos de botella
Aumentar la capacidad de reaccin ante problemas
BAM
Qu debe hacer la monitorizacin?
La monitorizacin con BAM debe tener una
orientacin hacia el proceso de negocio.
Debe generar alarmas ante las KPI definidas para
el proceso de negocio.
Debe dar informacin en tiempo real y agregada
La informacin generada debe permitir la
mejora continua
23
6/23/2014
BPEL
Business Process Execution Language
Es el lenguaje mquina que permite la
implementacin del BPM.
BPEL
Qu aporta?
Es la unin entre negocio y tecnologa
Al ser un estndar usado por los fabricantes:
Permite elegir entre distintas plataformas
Permite la interoperabilidad
Fomenta la competitividad y la mejora de las
plataformas
24
6/23/2014
BPMN
Business Process Modeling Notation.
Modelado de procesos
Es el lenguaje del consultor de negocio.
Se usa para representar el proceso de negocio.
El modelo ser traducido posteriormente a
lenguaje mquina(BPEL) para ser ejecutado.
Ojo: Hay una tendencia a usar UML 2.0+ en vez
de BPMN.
25
6/23/2014
BPEL
SOA
BAM
Mentoring
Services
26
6/23/2014
Reducir la carga de TI
Estratgico vs Tctico
Todos los objetivos son estratgicos en naturaleza, Objetivos
estratgicos brindado beneficios a largo plazo.
En comparacin, objetivos tcticos se basan en requerimientos
inmediatos a corto plazo.
Una caracterstica distintiva con la computacin orientada a
servicios es su naturaleza estratgica.
En contraste a la naturaleza tctica del desarrollo de
aplicaciones basadas en silos.
27
6/23/2014
28
6/23/2014
sin la necesidad de
integracin
Incrementar Federacin
Federacin es la unificacin de ambientes separados
permitiendo a esos ambientes ser independientemente
gobernado.
SOA tiene como objetivo establecer una perspectiva federada
de una empresa a travs de la amplia difusin de los servicios de
implementacin estandarizada y componibles.
Cada servicio establece una interfaz tcnica estandarizada o
endpoint que representa un segmento de la empresa expresada
de una manera consistente.
29
6/23/2014
Incrementar Federacin
endpoint
perspectiva de
30
6/23/2014
31
6/23/2014
Incrementar ROI
ROI ( Retorno de la Inversin) representa el valor tangible y y el
ahorro de costes que ofrece algo en comparacin con el costo de
producir y gobernar.
La computacin orientada a servicios fomenta la creacin de lgica
de negocio agnstica- lgica que es agnstico a cualquier propsito
y, por tanto, de mltiples usos.
Tcnicas de diseo que se originaron con el diseo de productos
comerciales se aplican para convertir lgica agnstica en lgica
altamente reutilizable completamente capaz de aprovechar la
interoperabilidad intrnseca para proporcionar un mayor ROI.
32
6/23/2014
Incrementar ROI
33
6/23/2014
Reducir la carga de TI
La aplicacin consistente de una orientacin de servicios da como
resultado una TI con:
Reduccin de desperdicios y redundancia
Reduccin del tamao y costo operacional
Reduccin de gastos generales relacionados con gobernabilidad
y evolucin
Tal IT puede beneficiar a una organizacin a travs de un
aumento espectacular en la capacidad de respuesta y la
rentabilidad.
34
6/23/2014
Reducir la carga de TI
Incrementar
Federacin
Incrementar
Interoperabilidad
Intrnseca
Incrementar
Diversidad de
Vendors
Incrementar
Alineacin de
Negocio y
tecnologa
Incrementar
ROI
Incrementar
Agilidad
Organizacional
Reducir la
carga de TI
Objetivos estratgicos
35
6/23/2014
Mentoring
Services
Conceptos y terminologa
Objetivos
estratgicos
Soporta
Influye
Establece
Principios
de diseo
Se fundamenta
SOA
Son launidadde
Servicio
Sonaplicadosa
Ayudaa realizar
Define
Soporta
Modelode
arquitectura
Patrones
Soporta
Soporta
36
6/23/2014
Caractersticas de SOA
Business-Driven
Vendor-Neutral
Enterprise-Centric
Composition- Centric
37
6/23/2014
38
6/23/2014
Orientacin a Servicios
La orientacin a servicios es un paradigma de diseo destinado
a la creacin de unidades lgicas de solucin que se da forma
individual para que puedan ser utilizados de manera colectiva y
en repetidas ocasiones en apoyo de la realizacin de un
conjunto especfico de objetivos estratgicos y beneficios
asociados a SOA y la computacin orientada a servicios .
Lgica de Solucin diseada de acuerdo con la orientacin a
servicios puede ser calificado con orientado a servicio", y la
unidad de la lgica solucin orientada a servicios se denominan
servicios.
Orientacin a Servicios
Orientacin a servicios es un enfoque de diseo (o paradigma
de diseo) utilizado para construir soluciones orientadas a
servicios.
El resultado de la aplicacin de la orientacin a servicios es la
creacin de caractersticas de diseo especficas, los cuales
fomentan la consecucin de los objetivos estratgicos asociados
a la computacin orientada a servicios.
Un correcto entendimiento de orientacin a servicios es
requerido para construir soluciones orientadas a servicios.
39
6/23/2014
Orientacin a Servicios
Orientacin a Servicios
El paradigma del diseo orientado a servicios ha sido
influenciado por algunas plataformas de diseo e innovaciones
tecnolgicas.
40
6/23/2014
Servicios
Un Servicio es la ms
fundamental unidad de lgica
orientada a servicios.
Es un contenedor de una o
varias capacidades.
Diseado con capacidades
reutilizables.
Servicios como: Web Services,
Components, REST Services.
Servicios
Componentes de granularidad gruesa llamados servicios.
Cada servicio expone procesos y comportamientos a travs de contratos.
41
6/23/2014
Servicios
Los problemas comunes de diseo de servicios incluyen:
Granularidad
Diseo de contratos
Diseo agnstico vs no agnstico
Encapsulacin legacy
Seguridad
Gobernabilidad
Servicios Agnsticos
El objetivo principal de la orientacin a servicios es producir una
gran cantidad de servicios con un contexto funcional agnstico.
42
6/23/2014
Contratos de Servicios
El contrato expresa informacin acerca del servicio, sus capacidades y
tipos de datos.
Un servicio consumidor debe cumplir con los requerimientos expuestos
en el contrato.
La parte fundamental del contrato del servicio es su interface tcnica.
El contrato del servicio se puede complementar con un documento de
SLA que describa informacin adicional como QoS, caractersticas y
limitaciones.
El cmo se diseen y existan fsicamente los servicios depende sobre qu
tecnologa es utilizada para crear el servicio.
Consumidores de Servicio
Cuando un programa invoca e interacta con un servicio este es
etiquetado como un consumidor de servicio.
Es importante entender que este trmino se refiere a un rol de
ejecucin temporal asumido por el programa al tiempo que est
invocando a un servicio para intercambiar informacin.
Un consumidor de servicio puede o no puede ser otro servicio.
La capacidad de que un servicio invoque ( consuma) otro
servicio es la forma bsica de composicin de servicio.
43
6/23/2014
Consumidores de Servicio
Capacidades de Servicio
Cada Servicio tiene asignado su propio contexto
funcional y tiene un conjunto de funciones
relacionadas a este contexto.
Purchase Order
oSubmitOrder
oCheckOrderStatus
oChangeOrder
oCancelOrder
44
6/23/2014
Capacidades de Servicio
Un Servicio puede tener uno o ms capacidades.
Las capacidades de un servicio son expresadas en el contrato
del servicio.
Un consumidor de servicio puede invocar una capacidad
especfica.
El trmino capacidad de servicio es comnmente utilizado
cuando el servicio es primeramente modelado.
Composicin de Servicios
Una composicin de servicios es un agregado de los servicios
colectivamente compuestas para automatizar una tarea o proceso
de negocio en particular.
Para calificar como un composicin, al menos, dos servicios que
participan adems de un iniciador de la composicin que tenga
que estar presente. de otro modo, la interaccin de servicios slo
representa un cambio de punto a punto.
45
6/23/2014
Composicin de Servicios
La composicin de servicios es muy importante para el xito de
una iniciativa SOA porque los beneficios estratgicos de
incrementar ROI y agilidad organizacional confan en la
habilidad de componer y recomponer servicios.
Composicin de Servicios
La composicin de servicios
confa en la habilidad de un
Servicio de consumir otros
servicios.
46
6/23/2014
Composicin de Servicios
Consideraciones
47
6/23/2014
Inventario de Servicios
Un inventario de servicios es una coleccin estandarizada y
gobernada de forma independiente de los servicios
complementarios dentro de un lmite que representa la empresa o
un segmento significativo.
Cuando una organizacin tiene mltiples inventarios de servicios,
este trmino se califica adems como inventario de servicios de
dominio.
Inventario de Servicios
Idealmente, todos los servicios son entregados como parte del
mismo inventario de servicios empresarial.
En entornos ms grandes, la estandarizacin en toda la empresa
puede ser inalcanzable. En este caso puede ser necesario formar
inventarios de servicio de dominio.
Planos de inventarios Servicio suelen definirse con antelacin
como parte de la fase de anlisis por adelantado.
Parte de esta fase de anlisis se centra en evitar el solapamiento
entre los servicios de inventario en un esfuerzo por lograr la
normalizacin del servicio.
48
6/23/2014
Normalizacin de Servicios
49
6/23/2014
Task
Alcance
Entity
Estandarizacin
Utility
Escalabilidad
Plataformas de ejecucin
Infraestructura
Gobernabilidad
Re-Composicin dinmica
Servicios agnsticos dentro de un inventario de servicios estn
constantemente disponibles para la composicin repetida.
50
6/23/2014
51
6/23/2014
Mentoring
Services
52
6/23/2014
Orientacin a Servicios
Los ocho principales principios de
diseo orientado a servicios son:
Contrato de Servicio estandarizado
Servicio de bajo acoplamiento
Abstraccin de servicio
Reusabilidad de servicio
Autonoma de servicios
Servicios sin estado
Descubrimiento de servicios
Composicin de servicios
53
6/23/2014
Servicio de bajo
acoplamiento
Los contratos de servicios imponen
requisitos de bajo consumo de
acoplamiento y son ellos mismos se
desacopla de su entorno.
54
6/23/2014
Abstraccin de servicio
Los contratos de servicio
contienen nicamente las
informaciones esenciales
acerca de los servicios, se
limita a lo que se publica en
los contratos de servicios.
Reusabilidad de servicio
Servicios contienen y
expresan la lgica agnstico y
pueden ser posicionados
como recursos empresariales
reutilizables.
55
6/23/2014
Autonoma de servicios
Autonoma en un nivel de
servicio plantea caractersticas
de diseo clave que son
especialmente relevantes
cuando los servicios
individuales se ensamblan en
composiciones complejas. En
este ejemplo los servicios
dentro de una jerarqua de
composicin se identifican de
acuerdo con sus respectivos
modelos de servicio.
56
6/23/2014
Descubrimiento de servicios
La aplicacin de este
principio de diseo da como
resultado la mejora de la
capacidad de descubrimiento
de un servicio y la
interpretacin como
resultado del aumento de la
calidad de las
comunicaciones de todo el
servicio de informacin de
metadatos publicados.
Composicin de Servicios
El principio de diseo de composicin
de servicio ayuda a determinar cmo
llevar a cabo una separacin de
intereses en favor de la orientacin a
servicios.
Los servicios que resultan de la
descomposicin de la lgica ilustrada
solucin se montan para resolver el
Problema A. Sin embargo, el beneficio
ltimo y estratgico viene con la
posibilidad de recomponer
continuamente estos servicios para
ayudar a resolver los problemas
adicionales en el futuro.
57
6/23/2014
Management
Transactions (WS-Tx)
Security (WS-SEC)
Estandares de Infraestructura
Ingresos y Utilidades
Visin Estratgica
Adopcin Incremental
Time
Visin estratgica
Definicin de Direccin del negocio y de TI que pueden ser usados como una gua para la toma de decisiones, venta interna
organizacional y estndares de adopcin
Planes de Proyectos
Proyectos de implantacin para alcanzar las necesidades inmediatas de los motores de negocio actuales
58
6/23/2014
Dominio de Capacidad
Servicios de
Funcin de
Negocios
Servicios de
Informacin
Servicios
comunes de TI
Servicios de
Infraestructura
Discreto
Integracin
Parcial
Integracin
de la Empresa
Colaboracin de los
Socios
Colaboracin
Dinmica delos
socios de negocios
Scope of Services
Determinar
estado futuro
Evaluar estado
actual
Identificar las
capacidades
requeridas e
iniciativas
Desarrollar los
Roadmaps
Silo
Vista de Negocio Orientado a
Funciones
Integrado
Componentizado
Servicios
Servicios
Compuestos
Servicios
Virtualizados
Servicios
Dinmicamente
Re-Configurables
Orientado a
Funciones
Orientado a
Funciones
Orientado a
Servicios
Orientado a
Servicios
Orientado a
Servicios
Orientado a
Servicios
Gobernabilidad de
TI Ad hoc
Gobernabilidad de
TI Ad hoc
Gobernabilidad
emergente de SOA
Alineamiento de la
gobernabilidad de
TI y SOAt
Alineamiento de la
gobernalibilidad de
TI y SOA
Alineamiento de la
Gobernabilidad de
TI y SOA
Modelamiento
Orientado a
Objetos
Desarrollo basado
en componentes
Modelamiento
orientado a
servicios
Modelamiento
Orientado a
Servicios
Modelamiento
orientado a
Servicios
Modelamiento
orientado a la
Gramtica
Aplicaciones Mdulos
Objetos
Componentes
Servicios
Integracin de
procesos via
servicios
Integracin de
procesos via
servicios
Ensamblaje
dinmico de la
aplicacin
Arquitectura
Arquitectura Monoltica
Arquitectura por
capas
Arquitectura por
componentes
SOA Emergente
SOA
Arquitectura
reconfigurable
dinmicamente
Plataforma
Especfica
Plataforma
Especfica
Plataforma
Especfica
Plataforma
Especfica
Plataforma
Neutral
Sensar y responder
dinmicamente
Organizacin Gobernabilidad de
TI Ad hoc
Diseo y anlisis
Mtodos estructurado
Plataforma
Infraestructura Especfica
Nivel 1
Nivel 2
Nivel 3
Nivel 4
Nivel 5
Nivel 6
Nivel 7
59
6/23/2014
Preparacin Organizacional
Soporte y auspicio ejecutivo
Habilidades
Preparacin operacional
Mentoring
Services
60
6/23/2014
XML - Historia
XML proviene de un lenguaje inventado por IBM en los aos
setenta, llamado GML (Generalized Markup Language)
Este lenguaje gust a la ISO, por lo que en 1986 trabajaron para
normalizarlo, creando SGML (Standard Generalized Markup
Language), capaz de adaptarse a un gran abanico de
problemas. A partir de l se han creado otros sistemas para
almacenar informacin.
61
6/23/2014
XML - Introduccin
Es un lenguaje de marcas desarrollado por el World Wide Web
Consortium (W3C) utilizado para almacenar datos en forma
legible.
Es la forma ms comn de representacin de datos para SOA.
XML - Introduccin
XML es metadata.
Un document XML contiene
la data y XML metadata que
describe la data.
62
6/23/2014
63
6/23/2014
Recursos Recomendados
Service-Oriented Architecture Tomas Erl
www.whatissoa.com
www.soa-manifiesto.org
www.soa-manifiesto.com
64