Вы находитесь на странице: 1из 28

Arquitectura Orientada a

Servicios (SOA)
Diego Gonzlez - CTO
diegog@lagash.com
Hernn de Lahitte - arquitecto
Hernn@lagash.com

Agenda
Orgenes de SOA
Principios fundamentales
Diseo de aplicaciones
Implementaciones
Tecnologas
Frameworks
Proyectos

Orgenes de SOA
Arquitectura de aplicaciones
distribuidas
Cliente-Servidor
Separacin del origen de datos

Modelo tres capas


Objetos distribuidos

Arquitectura de Web Services


Modelo stateless

Nuevos lenguajes de programacin


Utilizacin de patrones de diseo

Orgenes de SOA
Integracin de aplicaciones
Reutilizacin limitada de funcionalidad
Distintas plataformas
Distintos lenguajes

Limitaciones tcnicas de integracin


entre plataformas
Transacciones
Seguridad
Herramientas

Futuro desafo en el diseo de


aplicaciones

Orgenes de SOA
Requerimientos no funcionales que
aplican a toda la organizacin
Administracin
Monitoreo
Seguridad
Metadatos

Aparicin de Aspect Oriented


Programming
Proponiendo el concepto Cross-Cutting
Concerns

Orgenes de SOA
Objetos distribuidos
Han demostrado necesitar mucho ms
desarrollo terico
Tiempo de vida
Circulacin de referencias

Diversidad de tecnologas
Estndares muy dependientes de la
plataforma
Dificultad para acordar alcances
Quien se encarga de
Seguridad
Transacciones

Orientacin a servicios
Centrado en el concepto de servicio
Las aplicaciones exponen y consumen
servicios

Un servicio es
Unidad atmica de funcionalidad
reutilizable
Definen claramente su interfaz
Requerimientos no funcionales son
independientes de la plataforma

Leyes (tenets) de SOA


Limites explcitos
Qu hace y que no hace un servicio?

Servicios autnomos
Autocontenidos e independientes de
otros servicios

Interfaz como esquema y no como


clases
Exponer sus requerimientos como
estructura de datos y contratos

Compatibilidad basada en polticas

No leyes de SOA
Invocacin puede ser sincrnica o
asincrnica
Interaccin orientada a mensajes
Transparencia de ubicacin de
servicios
Catlogo de servicios

Modelo de Dominio/Tabla
Una interfaz por delante del modelo
de dominio.
Producto
Aplicacin

Facturar

Cliente

Obtener
Facturaci
n

ItemFactura
Factura

Ventajas
Fuerte separacin entre capas o
loosely coupled applications
Separacin tecnolgica
Declaracin de los requerimientos no
funcionales

Administracin unificada
Con una nica herramienta que
administra servicios

Transparencia de locacin
Reusabilidad simplificada

Ventajas
Exposicin de servicios granatizados
En lugar de exponer clases o interfaces
que pueden ser mal usadas

Agregacin de servicios
Un servicio puede agregar a otros
servicios para garantizar atomicidad

Composicin de lgica de negocio


Intercepcin como base de la
extensibilidad

Buenos niveles de escalabilidad

Requerimientos
Definicin de servicios independientemente de la
implementacin, ubicacin o uso
Implementacin y provisin de servicios como
proveedor
Localizacin y uso de servicios como consumidor
Composicin de servicios a partir de otros
servicios y relglas de negocio
Servicios internos y externos

Soporte de interaccin sincrnica y asincrnica


Orquestacin de UI basadas en servicios y reglas
de ngocio
Soporte para mltiples formas de interaccin
humana
Transformacin de datos automticos entre
distintas estructuras de datos.

Diseo de aplicaciones
SOA
Identificacin de servicios
Identificar los procesos a partir de los
casos de uso
Definir los servicios que se utilizan
durante los procesos detectados
Determinar una jerarqua de servicios en
funcin de la reusabilidad interna y
externa
Crear servicios externos que componen
servicios internos

Evitar la proliferacin de servicios


Limitar los servicios a los requeridos por los

Diseo de aplicaciones
SOA
Categorizacin de servicios
Una
Process
Activity
Entity
Infraestructure

XWIF Service Model


Utility service
Business service
Controller service
Proxy service
Wrapper service
Coordination service (for atomic transactions)
Process service

Categorizacin de servicios
Clientes o agentes

Datos

ComponentePartner

Legacy

Infrastructure Servi

Process
Services
Activity
Services
Entity
Services

Diseo de aplicaciones
SOA
Diseo de los mensajes
Una vez definidos los servicios ajustar los
mensajes utilizados

Como hacer aplicaciones clientes de SOA


No asumir conectividad contnua ni servicios
relacionados (seguridad, transacciones)
Mapping
Mensajes y entidades

Diseando interfaces de usuario SOA


Soporada por servicios de UI
Solo interacta con el servidor cuando finaliza la
operacin.
Coarse-Grained interaction.

Migrando aplicaciones a
SOA
Considerar una arquitectura con
concepto de servicios
Migrando componentes
COM
.Net

Migrando ASP.NET
WebServices
WebApplications

Migrando aplicaciones WinForms

Migrando de aplicaciones SOA


Desde
Orientacin a
Funciones
Creada para durar
Ciclos de desarrollo
prolongados

Silos de Aplicaciones
Acoplamiento Fuerte
Orientacin a
Objetos
Implementacin
Conocida

Hacia

Orientacin a
Procesos
Creada para el cambio
Desarrollo e
implantacin
incremental y en
paralelo
Soluciones
Orquestadas
Acoplamiento Dbil
Orientacin a
Mensajes
Abstraccin

Ciclo de vida de
aplicaciones
Como se llega a SOA
Integracin de aplicaciones
Nueva aplicacin con nueva arquitectura
Nueva interfaz para una aplicacin
existente

Mantenimiento de aplicaciones
Las aplicaciones cambian
Exponer servicios evita mal uso de las
clases
Constante reutilizacin de servicios

Implementacin
Frameworks
ASMX
Formato nativo .Net para exposicin de
WebServices
Totalmente integrado con Visual Studio .NET
Soporta nicamente HTTP (IIS + ASP.NET)

WSE
Permite crear servicios o clases proxy a
servicios remotos
Fcilmente extensible e interceptable
No asume protocolo HTTP

Implementacin
Productos
BizTalk
Si bien est ms orientado a la integracin de
aplicaciones
Es un hub de mensajes extensible

Frameworks
EDRA
MBI
FABRIQ

Que es EDRA
(Shadowfax)?
Es una Gua de Arquitectura para
estandarizar el desarrollo de sistemas
distribuidos
Es un Framework de Aplicaciones
Extensible el cual incorpora recursos
de la plataforma; ASP.NET-WS, MSMQ,
Enterprise Services, Remoting, WSE
Es una Implementacin de Referencia
que usa el Framework en un modelo
bancario
Es una iniciativa (PAG) apoyada en un

Que es MBI?
MBI es un framework para crear, ejecutar
y mantener aplicaciones corporativas
basadas en plataforma Microsoft.NET
Resuelve escenarios recurrentes de una empresa
corporativa
Es una arquitectura de referencia para la
construccin de aplicaciones
Incorpora mejores prcticas de Microsoft
Corporation
Arquitectura de integracin comn a todos los
Portfolios de Soluciones
Reduccin de costos de desarrollo y
mantenimiento

Shadowfax + MBI = MBI


3.0
Definicin
Implementacin prescriptiva de
Shadowfax
Revisada por el equipo de PAG de Microsoft
Corp.

MBI 3.0 complementa a Shadowfax en


escenarios que Shadowfax an no
resuelve
MBI 3.0 implementa como componente
central a Shadowfax
MBI & Shadowfax proveen el contexto
adecuado para la construccin de
aplicaciones orientadas a servicios

Que es FABRIQ?
Q.NET + EntServices + WSE + SOA + HPC + Agent
Arquitectura para el desarrollo de aplicaciones SOA en .Net
de alta performance soportado sobre un modelo de redes de
colas distribuidas interconectadas .
Una aplicacin que utiliza las mejores prcticas de WSE 2.0
Un frmework agil para la implementacin de agentes
Para
Permitir la adopcin de modelos asincrnicos de computacin a
la comunidad de desarrolladores y arquitectos.
Mejorar el camino hacia Indigo para la comunidad .Net.

Desarrollado por
Arvindra Sehmi, MS EMEA, DPE Project Lead
Clemens Vasters, newtelligence AG Architect Lead
Eugenio Pace, MS Argentina, MCS Development Lead

Mas informacin
SOA
http://msdn.microsoft.com/architecture
http://msdn.microsoft.com/practices
http://msdn.microsoft.com/webservices

EDRA (Shadowfax)
http://workspaces.gotdotnet.com/shadowfx
http://channel9.msdn.com/wiki/default.aspx/Ch
annel9.ShadowfaxWiki

MBI 3.0
http://www.gotdotnet.com/Community/Workspa
ces/workspace.aspx?id=49485933-6169-4571987f-7865087b09c6

Shadowfax + MBI 3.0


http://weblogs.asp.net/hernandl

Mas informacin
http://msdn.microsoft.com/architectur
e
http://msdn.microsoft.com/practices
http://msdn.microsoft.com/webservice
s

Вам также может понравиться