arquitectura orientada a servicios (soa) diego gonzález - cto [email protected] hernán de lahitte...

28
Arquitectura Arquitectura Orientada a Servicios Orientada a Servicios (SOA) (SOA) Diego González - CTO Diego González - CTO [email protected] [email protected] Hernán de Lahitte Hernán de Lahitte - arquitecto - arquitecto Herná[email protected] Herná[email protected]

Upload: rufino-borja

Post on 03-Jan-2015

53 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Arquitectura Orientada a Arquitectura Orientada a Servicios (SOA)Servicios (SOA)

Diego González - CTODiego González - [email protected]@lagash.com

Hernán de LahitteHernán de Lahitte - arquitecto - arquitectoHerná[email protected]á[email protected]

Page 2: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

AgendaAgenda

Orígenes de SOAOrígenes de SOA

Principios fundamentalesPrincipios fundamentales

Diseño de aplicacionesDiseño de aplicaciones

ImplementacionesImplementacionesTecnologíasTecnologías

FrameworksFrameworks

ProyectosProyectos

Page 3: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Orígenes de SOAOrígenes de SOA

Arquitectura de aplicaciones Arquitectura de aplicaciones distribuidasdistribuidas

Cliente-ServidorCliente-ServidorSeparación del origen de datosSeparación del origen de datos

Modelo tres capasModelo tres capasObjetos distribuidosObjetos distribuidos

Arquitectura de Web ServicesArquitectura de Web ServicesModelo Modelo statelessstateless

Nuevos lenguajes de programación Nuevos lenguajes de programación Utilización de patrones de diseñoUtilización de patrones de diseño

Page 4: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Orígenes de SOAOrígenes de SOA

Integración de aplicacionesIntegración de aplicacionesReutilización limitada de funcionalidadReutilización limitada de funcionalidad

Distintas plataformasDistintas plataformas

Distintos lenguajesDistintos lenguajes

Limitaciones técnicas de integración Limitaciones técnicas de integración entre plataformasentre plataformas

TransaccionesTransacciones

SeguridadSeguridad

HerramientasHerramientas

Futuro desafío en el diseño de Futuro desafío en el diseño de aplicacionesaplicaciones

Composición integral de aplicacionesComposición integral de aplicaciones

Page 5: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Orígenes de SOAOrígenes de SOA

Requerimientos no funcionales que Requerimientos no funcionales que aplican a toda la organizaciónaplican a toda la organización

AdministraciónAdministración

MonitoreoMonitoreo

SeguridadSeguridad

MetadatosMetadatos

Aparición de Aparición de AAspect spect OOriented riented PProgrammingrogramming

Proponiendo el concepto Proponiendo el concepto Cross-Cutting Cross-Cutting ConcernsConcerns

Intercepción como base de la Intercepción como base de la extensibilidadextensibilidad

Page 6: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Orígenes de SOAOrígenes de SOA

Objetos distribuidosObjetos distribuidosHan demostrado necesitar mucho más Han demostrado necesitar mucho más desarrollo teóricodesarrollo teórico

Tiempo de vidaTiempo de vida

Circulación de referenciasCirculación de referencias

Diversidad de tecnologíasDiversidad de tecnologíasEstándares muy dependientes de la Estándares muy dependientes de la plataformaplataforma

Dificultad para acordar alcancesDificultad para acordar alcancesQuien se encarga de Quien se encarga de

SeguridadSeguridad

TransaccionesTransacciones

Page 7: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Orientación a serviciosOrientación a servicios

Centrado en el concepto de servicioCentrado en el concepto de servicioLas aplicaciones exponen y consumen Las aplicaciones exponen y consumen serviciosservicios

Un servicio esUn servicio esUnidad atómica de funcionalidad Unidad atómica de funcionalidad reutilizablereutilizable

Definen claramente su interfazDefinen claramente su interfaz

Requerimientos no funcionales son Requerimientos no funcionales son independientes de la plataformaindependientes de la plataforma

Page 8: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Leyes (Leyes (tenetstenets) de SOA) de SOA

Limites explícitosLimites explícitosQué hace y que no hace un servicio?Qué hace y que no hace un servicio?

Servicios autónomosServicios autónomosAutocontenidos e independientes de Autocontenidos e independientes de otros serviciosotros servicios

Interfaz como esquema y no como Interfaz como esquema y no como clasesclases

Exponer sus requerimientos como Exponer sus requerimientos como estructura de datos y contratosestructura de datos y contratos

Compatibilidad basada en políticasCompatibilidad basada en políticasQué requiere de quien lo consume?Qué requiere de quien lo consume?

Page 9: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

No leyes de SOANo leyes de SOA

Invocación puede ser sincrónica o Invocación puede ser sincrónica o asincrónicaasincrónica

Interacción orientada a mensajesInteracción orientada a mensajes

Transparencia de ubicación de Transparencia de ubicación de serviciosservicios

Catálogo de serviciosCatálogo de servicios

Page 10: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Modelo de Dominio/TablaModelo de Dominio/Tabla

Una interfaz por delante del modelo Una interfaz por delante del modelo de dominio.de dominio.

Producto

Cliente

Factura

ItemFactura

Aplicación

FacturarFacturar

ObtenerFacturaci

ón

ObtenerFacturaci

ón

Page 11: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

VentajasVentajas

Fuerte separación entre capas o Fuerte separación entre capas o loosely coupled applicationsloosely coupled applications

Separación tecnológicaSeparación tecnológica

Declaración de los requerimientos no Declaración de los requerimientos no funcionalesfuncionales

Administración unificadaAdministración unificadaCon una única herramienta que Con una única herramienta que administra serviciosadministra servicios

Transparencia de locaciónTransparencia de locación

Reusabilidad simplificadaReusabilidad simplificada

Page 12: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

VentajasVentajas

Exposición de servicios granatizadosExposición de servicios granatizadosEn lugar de exponer clases o interfaces En lugar de exponer clases o interfaces que pueden ser “mal usadas”que pueden ser “mal usadas”

Agregación de serviciosAgregación de serviciosUn servicio puede agregar a otros Un servicio puede agregar a otros servicios para garantizar atomicidadservicios para garantizar atomicidad

Composición de lógica de negocioComposición de lógica de negocioIntercepción como base de la Intercepción como base de la extensibilidadextensibilidad

Buenos niveles de escalabilidadBuenos niveles de escalabilidad

Paralelismo en el desarrolloParalelismo en el desarrollo

Page 13: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

RequerimientosRequerimientos

Definición de servicios independientemente de la Definición de servicios independientemente de la implementación, ubicación o usoimplementación, ubicación o usoImplementación y provisión de servicios como Implementación y provisión de servicios como proveedorproveedorLocalización y uso de servicios como consumidorLocalización y uso de servicios como consumidorComposición de servicios a partir de otros Composición de servicios a partir de otros servicios y relglas de negocioservicios y relglas de negocio

Servicios internos y externosServicios internos y externos

Soporte de interacción sincrónica y asincrónicaSoporte de interacción sincrónica y asincrónicaOrquestación de UI basadas en servicios y reglas Orquestación de UI basadas en servicios y reglas de ngociode ngocioSoporte para múltiples formas de interacción Soporte para múltiples formas de interacción humanahumanaTransformación de datos automáticos entre Transformación de datos automáticos entre distintas estructuras de datos.distintas estructuras de datos.Soporte para simulación, prueba y depuración de Soporte para simulación, prueba y depuración de serviciosservicios

Page 14: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Diseño de aplicaciones Diseño de aplicaciones SOASOA

Identificación de serviciosIdentificación de serviciosIdentificar los procesos a partir de los Identificar los procesos a partir de los casos de usocasos de uso

Definir los servicios que se utilizan Definir los servicios que se utilizan durante los procesos detectadosdurante los procesos detectados

Determinar una jerarquía de servicios en Determinar una jerarquía de servicios en función de la reusabilidad interna y función de la reusabilidad interna y externaexterna

Crear servicios externos que componen Crear servicios externos que componen servicios internosservicios internos

Evitar la proliferación de serviciosEvitar la proliferación de serviciosLimitar los servicios a los requeridos por los Limitar los servicios a los requeridos por los procesosprocesos

Page 15: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Diseño de aplicaciones Diseño de aplicaciones SOASOA

Categorización de serviciosCategorización de serviciosUnaUna

ProcessProcessActivityActivityEntityEntityInfraestructureInfraestructure

XWIF Service ModelXWIF Service ModelUtility serviceUtility serviceBusiness serviceBusiness serviceController serviceController serviceProxy serviceProxy serviceWrapper serviceWrapper serviceCoordination service (for atomic transactions)Coordination service (for atomic transactions)Process serviceProcess serviceCoordination service (for business activities)Coordination service (for business activities)

Page 16: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Categorización de serviciosCategorización de serviciosClientes o agentesClientes o agentes

Entity Entity ServicesServices

Activity Activity ServicesServices

Process Process ServicesServices

DatosDatos ComponenteComponentePartnerPartner LegacyLegacy

Infra

stru

ctu

re

Infra

stru

ctu

re

Serv

ices

Serv

ices

Page 17: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Diseño de aplicaciones Diseño de aplicaciones SOASOA

Diseño de los mensajesDiseño de los mensajesUna vez definidos los servicios ajustar los Una vez definidos los servicios ajustar los mensajes utilizadosmensajes utilizados

Como hacer aplicaciones clientes de SOAComo hacer aplicaciones clientes de SOANo asumir conectividad contínua ni servicios No asumir conectividad contínua ni servicios relacionados (seguridad, transacciones)relacionados (seguridad, transacciones)MappingMapping

Mensajes y entidadesMensajes y entidades

Diseñando interfaces de usuario SOADiseñando interfaces de usuario SOASoporada por servicios de UISoporada por servicios de UISolo interactúa con el servidor cuando finaliza Solo interactúa con el servidor cuando finaliza la operación.la operación.Coarse-Grained interactionCoarse-Grained interaction..

Page 18: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Migrando aplicaciones a Migrando aplicaciones a SOASOA

Considerar una arquitectura con Considerar una arquitectura con concepto de serviciosconcepto de servicios

Migrando componentesMigrando componentesCOMCOM

.Net.Net

Migrando ASP.NETMigrando ASP.NETWebServicesWebServices

WebApplicationsWebApplications

Migrando aplicaciones WinFormsMigrando aplicaciones WinForms

Page 19: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Migrando de aplicaciones SOAMigrando de aplicaciones SOA

Orientación a Orientación a FuncionesFunciones

Creada para durarCreada para durar

Ciclos de desarrollo Ciclos de desarrollo prolongadosprolongados

DesdeDesde HaciaHaciaOrientación a Orientación a Procesos Procesos

Creada para el Creada para el cambiocambio

Desarrollo e Desarrollo e implantación implantación incremental y en incremental y en paraleloparalelo

Silos de AplicacionesSilos de Aplicaciones

Acoplamiento FuerteAcoplamiento Fuerte

Orientación a Orientación a ObjetosObjetos

Implementación Implementación ConocidaConocida

Soluciones Soluciones OrquestadasOrquestadas

Acoplamiento DébilAcoplamiento Débil

Orientación a Orientación a MensajesMensajes

AbstracciónAbstracción

Page 20: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Ciclo de vida de Ciclo de vida de aplicacionesaplicaciones

Como se llega a SOAComo se llega a SOAIntegración de aplicacionesIntegración de aplicaciones

Nueva aplicación con nueva arquitecturaNueva aplicación con nueva arquitectura

Nueva interfaz para una aplicación Nueva interfaz para una aplicación existenteexistente

Mantenimiento de aplicacionesMantenimiento de aplicacionesLas aplicaciones cambianLas aplicaciones cambian

Exponer servicios evita “mal uso” de las Exponer servicios evita “mal uso” de las clasesclases

Constante reutilización de serviciosConstante reutilización de servicios

Page 21: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

ImplementaciónImplementación

FrameworksFrameworksASMXASMX

Formato nativo .Net para exposición de Formato nativo .Net para exposición de WebServicesWebServices

Totalmente integrado con Visual Studio .NETTotalmente integrado con Visual Studio .NET

Soporta únicamente HTTP (IIS + ASP.NET)Soporta únicamente HTTP (IIS + ASP.NET)

WSEWSEPermite crear servicios o clases Permite crear servicios o clases proxyproxy a a servicios remotosservicios remotos

Fácilmente extensible e interceptableFácilmente extensible e interceptable

No asume protocolo HTTPNo asume protocolo HTTP

Page 22: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

ImplementaciónImplementación

ProductosProductosBizTalkBizTalk

Si bien está más orientado a la integración Si bien está más orientado a la integración de aplicacionesde aplicaciones

Es un Es un hubhub de mensajes extensible de mensajes extensible

FrameworksFrameworksEDRAEDRA

MBIMBI

FABRIQFABRIQ

Page 23: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

¿Que es EDRA ¿Que es EDRA (Shadowfax)(Shadowfax)??

Es una Es una Guía de ArquitecturaGuía de Arquitectura para para estandarizar el desarrollo de estandarizar el desarrollo de sistemas sistemas distribuidosdistribuidos

Es un Es un Framework de AplicacionesFramework de Aplicaciones Extensible el cual incorpora recursos Extensible el cual incorpora recursos de la plataforma; ASP.NET-WS, MSMQ, de la plataforma; ASP.NET-WS, MSMQ, Enterprise Services, Remoting, WSE Enterprise Services, Remoting, WSE

Es una Es una Implementación de ReferenciaImplementación de Referencia que usa el Framework en un modelo que usa el Framework en un modelo bancariobancario

Es una iniciativa (PAG) apoyada en un Es una iniciativa (PAG) apoyada en un fuerte feedback de la comunidad y la fuerte feedback de la comunidad y la industriaindustria

Page 24: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

¿Que es MBI?¿Que es MBI?

Resuelve escenarios recurrentes de una empresa Resuelve escenarios recurrentes de una empresa corporativacorporativa

Es una arquitectura de referencia para la Es una arquitectura de referencia para la construcción de aplicacionesconstrucción de aplicaciones

Incorpora mejores prácticas de Microsoft Incorpora mejores prácticas de Microsoft CorporationCorporation

Arquitectura de integración común a todos los Arquitectura de integración común a todos los Portfolios de SolucionesPortfolios de Soluciones

Reducción de costos de desarrollo y Reducción de costos de desarrollo y mantenimientomantenimiento

MBI es un MBI es un frameworkframework para crear, ejecutar para crear, ejecutar y mantener aplicaciones corporativas y mantener aplicaciones corporativas basadas en plataforma Microsoft.NETbasadas en plataforma Microsoft.NET

Page 25: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Shadowfax + MBI = MBI Shadowfax + MBI = MBI 3.03.0

DefiniciónDefiniciónImplementación prescriptiva de Implementación prescriptiva de Shadowfax Shadowfax

Revisada por el equipo de PAG de Microsoft Revisada por el equipo de PAG de Microsoft Corp.Corp.

MBI 3.0 complementa a Shadowfax en MBI 3.0 complementa a Shadowfax en escenarios que Shadowfax aún no escenarios que Shadowfax aún no resuelveresuelve

MBI 3.0 implementa como componente MBI 3.0 implementa como componente central a Shadowfax central a Shadowfax

MBI & Shadowfax proveen el contexto MBI & Shadowfax proveen el contexto adecuado para la construcción de adecuado para la construcción de aplicaciones orientadas a serviciosaplicaciones orientadas a servicios

Page 26: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

¿Que es FABRIQ?¿Que es FABRIQ?

Q.NET + EntServices + WSE + SOA + HPC + AgentQ.NET + EntServices + WSE + SOA + HPC + Agent

Arquitectura para el desarrollo de aplicaciones SOA en .Net Arquitectura para el desarrollo de aplicaciones SOA en .Net de alta performance soportado sobre un modelo de redes de de alta performance soportado sobre un modelo de redes de colas distribuidas interconectadas .colas distribuidas interconectadas .

Una aplicación que utiliza las mejores prácticas de WSE 2.0Una aplicación que utiliza las mejores prácticas de WSE 2.0

Un frámework agil para la implementación de agentesUn frámework agil para la implementación de agentes

ParaParaPermitir la adopción de modelos asincrónicos de computación a Permitir la adopción de modelos asincrónicos de computación a la comunidad de desarrolladores y arquitectos.la comunidad de desarrolladores y arquitectos.

Mejorar el camino hacia Indigo para la comunidad .Net.Mejorar el camino hacia Indigo para la comunidad .Net.

Desarrollado porDesarrollado porArvindra Sehmi, MS EMEA, DPE – Project LeadArvindra Sehmi, MS EMEA, DPE – Project Lead

Clemens Vasters, newtelligence AG – Architect LeadClemens Vasters, newtelligence AG – Architect Lead

Eugenio Pace, MS Argentina, MCS – Development LeadEugenio Pace, MS Argentina, MCS – Development Lead

Page 27: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Mas informaciónMas informaciónSOASOA

http://msdn.microsoft.com/architecturehttp://msdn.microsoft.com/architecturehttp://msdn.microsoft.com/practiceshttp://msdn.microsoft.com/practiceshttp://msdn.microsoft.com/webserviceshttp://msdn.microsoft.com/webservices

EDRA (Shadowfax)EDRA (Shadowfax)http://workspaces.gotdotnet.com/shadowfxhttp://workspaces.gotdotnet.com/shadowfxhttp://channel9.msdn.com/wiki/default.aspx/http://channel9.msdn.com/wiki/default.aspx/Channel9.ShadowfaxWikiChannel9.ShadowfaxWiki

MBI 3.0MBI 3.0http://www.gotdotnet.com/Community/http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=49485933-Workspaces/workspace.aspx?id=49485933-6169-4571-987f-7865087b09c66169-4571-987f-7865087b09c6

Shadowfax + MBI 3.0Shadowfax + MBI 3.0http://weblogs.asp.net/hernandlhttp://weblogs.asp.net/hernandl

Page 28: Arquitectura Orientada a Servicios (SOA) Diego González - CTO diegog@lagash.com Hernán de Lahitte - arquitecto Hernán@lagash.com

Mas informaciónMas información

http://msdn.microsoft.com/http://msdn.microsoft.com/architecturearchitecture

http://msdn.microsoft.com/practiceshttp://msdn.microsoft.com/practices

http://msdn.microsoft.com/http://msdn.microsoft.com/webserviceswebservices