Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires...

128
Arquitectura Orientada a Arquitectura Orientada a Servicios (SOA) Servicios (SOA) Billy Reynoso Billy Reynoso Universidad de Buenos Aires Universidad de Buenos Aires [email protected] [email protected]

Transcript of Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires...

Page 1: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

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

Billy ReynosoBilly ReynosoUniversidad de Buenos AiresUniversidad de Buenos [email protected]@microsoft.com.ar

Page 2: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ObjetivosObjetivosComprender el estilo de arquitectura más Comprender el estilo de arquitectura más adecuado para soluciones de integraciónadecuado para soluciones de integraciónCaracterizar SOA (una iniciativa de industria) en Caracterizar SOA (una iniciativa de industria) en términos formalestérminos formalesEstablecer relación con estilos arquitectónicos Establecer relación con estilos arquitectónicos de mayor grado de semejanzade mayor grado de semejanzaAnalizar puntualmente la relación entre SOA y Analizar puntualmente la relación entre SOA y Web ServicesWeb Services

SOA como arquitectura, WS como implementaciónSOA como arquitectura, WS como implementación

Identificar los recursos de estado de arte para la Identificar los recursos de estado de arte para la realización de esta arquitecturarealización de esta arquitecturaSuministrar referencias de utilidad académicaSuministrar referencias de utilidad académica

Page 3: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

AgendaAgendaSOA en la industria - Muestreo SOA en la industria - Muestreo DefinicionesDefinicionesContexto de situación y antecedentes Contexto de situación y antecedentes Principales conceptos Principales conceptos SOA como Estilo de ArquitecturaSOA como Estilo de ArquitecturaRelaciones de SOA con Web Services Relaciones de SOA con Web Services Diferencias con Objetos o Componentes Diferencias con Objetos o Componentes distribuidosdistribuidosDistintas concepciones: IBM, Rational, Sun, Distintas concepciones: IBM, Rational, Sun, Microsoft, RESTMicrosoft, RESTPerspectivas: SOA & Grid Computing - SOA & Perspectivas: SOA & Grid Computing - SOA & Semantic WebSemantic WebRecursos de SOARecursos de SOAConclusiones, referencias y recursosConclusiones, referencias y recursos

Page 4: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA en la industria - SOA en la industria - MuestreoMuestreo““La recompensa potencial [de SOA] es enorme para La recompensa potencial [de SOA] es enorme para

las empresas que entiendan esta evolución y se las empresas que entiendan esta evolución y se muevan hacia estas arquitecturas. ... La tecnología muevan hacia estas arquitecturas. ... La tecnología de computación distribuida de computación distribuida promete ser lo promete ser lo suficientemente flexible y elegante para responder a suficientemente flexible y elegante para responder a las necesidades de negocios y proporcionar la las necesidades de negocios y proporcionar la agilidad de negocios que las compañías han agilidad de negocios que las compañías han anhelado tanto tiempoanhelado tanto tiempo, pero siempre ha estado , pero siempre ha estado fuera de alcance”. [fuera de alcance”. [The Rational EdgeThe Rational Edge, 2004], 2004]““La mejor soluciónLa mejor solución a la integración de negocios...” a la integración de negocios...” [Annraí O’Toole, Cape Clear][Annraí O’Toole, Cape Clear]““SOA ha surgido como SOA ha surgido como la mejor manerala mejor manera de afrontar el de afrontar el desafío de hacer más con menos recursos. Promete desafío de hacer más con menos recursos. Promete hacer la re-utilización y la integración mucho más hacer la re-utilización y la integración mucho más fáciles, ayudando a reducir el tiempo de desarrollo y fáciles, ayudando a reducir el tiempo de desarrollo y aumentando la agilidad organizacional. No aumentando la agilidad organizacional. No sorprendentemente, el 80% de las organizaciones de IT sorprendentemente, el 80% de las organizaciones de IT están implementando aplicaciones usando SOA con están implementando aplicaciones usando SOA con web services subyacentes. SOA proporciona web services subyacentes. SOA proporciona mayor mayor flexibilidadflexibilidad para afrontar los cambios tanto en el para afrontar los cambios tanto en el ambiente de negocios como en la infraestructuraambiente de negocios como en la infraestructura tecnológica”. [M7 Corporation]tecnológica”. [M7 Corporation]

Page 5: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA en la industria - SOA en la industria - MuestreoMuestreo

““SOA es la próxima ola de desarrollo de aplicaciones. Es SOA es la próxima ola de desarrollo de aplicaciones. Es más rápida, mejor y más baratamás rápida, mejor y más barata” [Michael Pallos, 2001]” [Michael Pallos, 2001]““Comprender el rol y el significado de SOA, más allá del Comprender el rol y el significado de SOA, más allá del hypehype simplista, simplista, es imperativo para cualquier arquitecto de es imperativo para cualquier arquitecto de software empresarialsoftware empresarial. ... Hacia 2008, SOA y Web Services . ... Hacia 2008, SOA y Web Services serán implementados juntos en más del 75% de los serán implementados juntos en más del 75% de los proyectos que utilicen SOA y Web Services (probabilidad proyectos que utilicen SOA y Web Services (probabilidad 0.7)” [Gartner, 2003]0.7)” [Gartner, 2003]““Hacia 2008, más del 75% de los paquetes de aplicación Hacia 2008, más del 75% de los paquetes de aplicación de ese entonces serán nativamente SOA o expondrán de ese entonces serán nativamente SOA o expondrán interfaces SOA a través de una capa de envoltura de interfaces SOA a través de una capa de envoltura de interfaces (probabilidad 0.8)” [Gartner, 2003]interfaces (probabilidad 0.8)” [Gartner, 2003]““Hacia 2008, SOA será Hacia 2008, SOA será la práctica prevalentela práctica prevalente de de ingeniería de software, acabando con los 40 años de ingeniería de software, acabando con los 40 años de dominación de las arquitecturas monolíticas (probabilidad dominación de las arquitecturas monolíticas (probabilidad 0.7)” [Gartner, 2003]0.7)” [Gartner, 2003]““Giga recomienda a los arquitectos considerar SOA como Giga recomienda a los arquitectos considerar SOA como la la prioridad número unoprioridad número uno en sus esfuerzos de en sus esfuerzos de planeamiento arquitectónico” [Giga planeamiento arquitectónico” [Giga IT Trends 2003: IT Trends 2003: Application architecture and designApplication architecture and design]]

Page 6: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 7: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Contexto de situación y Contexto de situación y antecedentesantecedentes

Evolución de la arquitectura:Evolución de la arquitectura:

Mon

olít

ico

Est

ruct

urad

o

Cli

ent/

Ser

ver

3-T

ier,

N

-Tie

r

Obj

etos

di

stri

buid

os

Com

pone

ntes

Web

Ser

vice

s

Ser

vici

os

Abstracción

Vertical Horizontal Ecosistema

Page 8: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

PropiedadesPropiedades 

  ProgramaciónEstructurada

Objetos Componentes Servicios

Granularidad Muy fina Fina Intermedia Gruesa

Contrato Definido Privado/Publico Publico Publicado

Reusabilidad Baja Baja Intermedia Alta

Acoplamiento Fuerte Fuerte Débil Muy débil

DependenciasTiempo de

CompilaciónTiempo de

CompilaciónTiempo de

Compilación Run-Time

Ámbito deComunicación

Intra-Aplicación

Intra-Aplicación

Inter-Aplicaciones Inter-Empresas

Page 9: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

HistoriaHistoriaSOA no se deriva de una propuesta SOA no se deriva de una propuesta académicaacadémicaNo hay technical reports de SOA en No hay technical reports de SOA en SEISEIService-oriented architectureService-oriented architecture fue fue descripta por primera vez por descripta por primera vez por Gartner en 1996 Gartner en 1996

SSA SSA Research Note Research Note SPA-401-068, 12 SPA-401-068, 12 de abril, “‘Service Oriented’ de abril, “‘Service Oriented’ Architectures, Part 1” y SSA Architectures, Part 1” y SSA Research Research Note Note SPA-401-069, 12 de abril, SPA-401-069, 12 de abril, “‘Service Oriented’ Architectures, Part “‘Service Oriented’ Architectures, Part 2”2”

Web Services surgen con mayor Web Services surgen con mayor fuerza hacia el 2000.fuerza hacia el 2000.

Page 10: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

HistoriaHistoria

XML Web Services®XML Web Services®SOA = SOA = XML+SOAP+WSDL+UDDI+BusXML+SOAP+WSDL+UDDI+BusSOAP 1.0 - Específico de SOAP 1.0 - Específico de MS+DevelopmentorMS+Developmentor

XML + HTTPXML + HTTP

SOAP 1.1 - MS+IBM+LotusSOAP 1.1 - MS+IBM+LotusBindings de transporte para no-HTTPBindings de transporte para no-HTTP

SOAP 1.2 - W3C.org (ya no es más SOAP 1.2 - W3C.org (ya no es más acrónimo)acrónimo)

Page 11: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA - DefinicionesSOA - DefinicionesW3C: “Conjunto de componentes que pueden W3C: “Conjunto de componentes que pueden ser invocados, cuyas descripciones de ser invocados, cuyas descripciones de interfaces se pueden publicar y descubrir”interfaces se pueden publicar y descubrir”CBDI rechaza esa definición:CBDI rechaza esa definición:

Los componentes pueden no ser conjuntosLos componentes pueden no ser conjuntosLa definición sólo considera los componentes y no La definición sólo considera los componentes y no la práctica o ella práctica o el arte de construir la arquitectura arte de construir la arquitectura

CBDI: “CBDI: “Estilo resultante de políticas, prácticas Estilo resultante de políticas, prácticas y frameworksy frameworks que permiten que la que permiten que la funcionalidad de una aplicación se pueda funcionalidad de una aplicación se pueda proveer y consumir como conjuntos de proveer y consumir como conjuntos de servicios, con una granularidad relevante servicios, con una granularidad relevante para el consumidor. Los servicios pueden para el consumidor. Los servicios pueden invocarse, publicarse y descubrirse y están invocarse, publicarse y descubrirse y están abstraídos de su implementación utilizando abstraídos de su implementación utilizando una sola forma estándar de interface”una sola forma estándar de interface”

Page 12: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA - DefinicionesSOA - Definiciones

““Infraestructura de alto nivel basada en Infraestructura de alto nivel basada en best best practicespractices y patrones para crear soluciones y patrones para crear soluciones basadas en servicios, de alta cohesión y bajo basadas en servicios, de alta cohesión y bajo acoplamiento” (Geniant®).acoplamiento” (Geniant®).““Estilo arquitectónico apto para implementar Estilo arquitectónico apto para implementar bajo acoplamiento entre agentes. Los bajo acoplamiento entre agentes. Los agentes son proveedores y consumidores de agentes son proveedores y consumidores de servicios, que son la unidad de trabajo”. (Hao servicios, que son la unidad de trabajo”. (Hao He).He).““Una arquitectura de aplicación en la cual Una arquitectura de aplicación en la cual todas las funciones se definen como servicios todas las funciones se definen como servicios independientes con interfaces invocables independientes con interfaces invocables bien definidas, que pueden ser llamadas en bien definidas, que pueden ser llamadas en secuencias definidas para formar procesos de secuencias definidas para formar procesos de negocios” (IBM).negocios” (IBM).

Page 13: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA - DefinicionesSOA - Definiciones

MITRE:MITRE:Una aplicación SOA es una colección de serviciosUna aplicación SOA es una colección de serviciosUn servicio es la unidad atómica de una SOAUn servicio es la unidad atómica de una SOALos servicios encapsulan procesos de negociosLos servicios encapsulan procesos de negociosLos proveedores de servicios se registran solosLos proveedores de servicios se registran solosUn servicio involucra: Un servicio involucra: Find, Bind, ExecuteFind, Bind, Execute

Las instancias más conocidas son los web servicesLas instancias más conocidas son los web servicesGartner: Gartner:

““SOA es una arquitectura de software que comienza SOA es una arquitectura de software que comienza con una definición de interface y construye toda la con una definición de interface y construye toda la topología de la aplicación como una topología de topología de la aplicación como una topología de interfaces, implementaciones y llamados a interfaces, implementaciones y llamados a interfaces. interfaces. Sería mejor llamada “arquitectura Sería mejor llamada “arquitectura orientada a interfaces”.orientada a interfaces”. SOA es una relación de SOA es una relación de servicios y consumidores de servicios, ambos servicios y consumidores de servicios, ambos suficientemente amplios para representar una suficientemente amplios para representar una función de negocios completa”.función de negocios completa”.

Page 14: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA como Estilo de SOA como Estilo de ArquitecturaArquitectura

Estilos de Flujo de Estilos de Flujo de DatosDatos

Tubería y filtrosTubería y filtros

Estilos Centrados en Estilos Centrados en DatosDatos

Arquitecturas de Arquitecturas de Pizarra o RepositorioPizarra o Repositorio

Estilos de Llamada y Estilos de Llamada y RetornoRetorno

Model-View-Controller Model-View-Controller (MVC)(MVC)Arquitecturas en CapasArquitecturas en CapasArquitecturas Arquitecturas Orientadas a ObjetosOrientadas a ObjetosArquitecturas Basadas Arquitecturas Basadas en Componentesen Componentes

Estilos de Código Estilos de Código MóvilMóvil

Arquitectura de Arquitectura de Máquinas VirtualesMáquinas Virtuales

Estilos heterogéneosEstilos heterogéneosSistemas de control de Sistemas de control de procesosprocesosArquitecturas Basadas Arquitecturas Basadas en Atributosen Atributos

Estilos Peer-to-PeerEstilos Peer-to-PeerArquitecturas Basadas Arquitecturas Basadas en Eventosen EventosArquitecturas Arquitecturas Orientadas a ServiciosOrientadas a ServiciosArquitecturas Basadas Arquitecturas Basadas en Recursosen Recursos

Page 15: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA como Estilo de SOA como Estilo de ArquitecturaArquitecturaComponente: ServicioComponente: ServicioConectores: Antes, RPC – Ahora, paso Conectores: Antes, RPC – Ahora, paso de mensajesde mensajesConfiguración: DistribuidoConfiguración: DistribuidoConstraint: Bajo acoplamiento, Constraint: Bajo acoplamiento, independencia de modelo de independencia de modelo de programación, independencia de programación, independencia de plataforma, transporte y protocolo plataforma, transporte y protocolo por acuerdo de industriapor acuerdo de industria

Page 16: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Principales conceptosPrincipales conceptos

CBDI - Perspectivas CBDI - Perspectivas arquitectónicasarquitectónicas

Aplicación - Servicio - ComponenteAplicación - Servicio - Componente

Page 17: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Implementaciones RPCImplementaciones RPC

DCOM CORBA JAVA RMI WS

Protocolo RPC RPC IIOP IIOP o JRMP SOAP

Formatomensaje

NDR CDR JavaSerializationFormat

XML 1.0Namespaces

Descripción IDL OMG IDL Java WSDL

Descubrimiento Registry Naming Service RMI Registry oJNDI

UDDI

Marshalling Type LibraryMarshaller

Serialization

•WS no requiere despliegueWS no requiere despliegue•WS no requiere clientes específicos, ni WS no requiere clientes específicos, ni driversdrivers•SOA se redefine como paso de mensajes, no RPCSOA se redefine como paso de mensajes, no RPC

Page 18: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Componentes de SOAComponentes de SOA

Servicios: Entidades lógicas - Contratos definidos por una Servicios: Entidades lógicas - Contratos definidos por una o más interfaces públicas.o más interfaces públicas.Service provider: Entidad de software que implementa Service provider: Entidad de software que implementa una especificación de servicio.una especificación de servicio.Service consumer (o requestor): Entidad de software que Service consumer (o requestor): Entidad de software que llama a un service provider. Tradicionalmente se lo llama llama a un service provider. Tradicionalmente se lo llama “cliente”. Puede ser una aplicación final u otro servicio.“cliente”. Puede ser una aplicación final u otro servicio.Service locator: Tipo específico de service provider que Service locator: Tipo específico de service provider que actúa como registry y permite buscar interfaces de actúa como registry y permite buscar interfaces de service service providers y sus ubicaciones.providers y sus ubicaciones.Service broker: Tipo específico de serviceService broker: Tipo específico de serviceprovider que puede pasar requerimientosprovider que puede pasar requerimientosde servicios a otros service providers.de servicios a otros service providers.

Page 19: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 20: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 21: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 22: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 23: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 24: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Demo & DrilldownDemo & Drilldown

Page 25: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 26: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 27: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 28: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 29: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 30: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 31: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 32: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 33: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 34: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 35: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 36: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 37: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 38: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 39: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 40: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 41: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 42: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 43: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 44: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 45: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 46: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 47: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 48: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 49: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 50: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 51: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 52: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 53: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 54: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 55: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 56: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 57: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 58: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 59: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 60: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 61: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 62: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 63: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 64: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 65: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 66: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 67: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 68: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 69: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 70: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 71: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 72: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA y Web ServicesSOA y Web ServicesWeb services: Diferentes definiciones en W3C Web services: Diferentes definiciones en W3C Web Services Architecture Working GroupWeb Services Architecture Working Group

W3C: “Una aplicación identificada por un URI, cuyas W3C: “Una aplicación identificada por un URI, cuyas interfaces y interfaces y bindingbinding se pueden definir, describir y se pueden definir, describir y descubrir mediante artefactos XML, que soporta descubrir mediante artefactos XML, que soporta interacciones usando mensajes basados en XML via interacciones usando mensajes basados en XML via protocolos de web”protocolos de web”

SOA es históricamente anterior (no por SOA es históricamente anterior (no por mucho)mucho)Un web service es SOA si:Un web service es SOA si:

Las interfaces se basan en protocolos de web Las interfaces se basan en protocolos de web (HTTP, SMTP, FTP)(HTTP, SMTP, FTP)A excepción de los A excepción de los attachmentsattachments, los mensajes se , los mensajes se basan en XMLbasan en XML

Dos estilos de web service: SOAP y RESTDos estilos de web service: SOAP y RESTREST es anti-RPC (más sobre esto luego)REST es anti-RPC (más sobre esto luego)SOAP puede interpretarse en términos de mensajes SOAP puede interpretarse en términos de mensajes o de RPC (Don Box)o de RPC (Don Box)

Page 73: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA y Web ServicesSOA y Web Services

CBDI: CBDI: SOA es más amplio. Los web SOA es más amplio. Los web services son sólo una interface services son sólo una interface programática en conformidad con los programática en conformidad con los protocolos WS-*protocolos WS-*Puede haber SOA sin WS (ej. REST)Puede haber SOA sin WS (ej. REST)Los web services proporcionan Los web services proporcionan independencia de plataforma, bajo independencia de plataforma, bajo acoplamiento, auto-descripción y acoplamiento, auto-descripción y descubrimientodescubrimientoLos web services no son parte Los web services no son parte obligatoria de SOA, pero son una obligatoria de SOA, pero son una implementación adecuadaimplementación adecuada

Page 74: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Estándares primarios - Estándares primarios - WSDLWSDL

XML que describe serviciosXML que describe serviciosPropuesto por Microsoft e IBM y Propuesto por Microsoft e IBM y presentado a W3C por 25 empresas presentado a W3C por 25 empresas (número máximo admitido)(número máximo admitido)Define Define data typesdata types pasados en pasados en mensajes, operaciones a realizar y mensajes, operaciones a realizar y mapeado de los mensajes sobre mapeado de los mensajes sobre transportes de redtransportes de redPuede haber algunas discrepancias Puede haber algunas discrepancias entre diferentes implementaciones, entre diferentes implementaciones, debido a que es extensibledebido a que es extensible

Page 75: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Estándares SOA & Web Estándares SOA & Web ServicesServiceshttp://WS-I.ORGhttp://WS-I.ORG

Page 76: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Framework de SOAFramework de SOA

BPEL4WS – Reemplaza a XLANG (MS) y a lenguajes de workflowBPEL4WS – Reemplaza a XLANG (MS) y a lenguajes de workflowde IBMde IBM

Page 77: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Estilo RESTEstilo RESTREST - REpresentational State Transfer (Roy Fielding, REST - REpresentational State Transfer (Roy Fielding, 2000)2000)SOA sin Web Services, ni SOAP ni RPCSOA sin Web Services, ni SOAP ni RPCArquitectura con modelo de datos (recursos, URIs y Arquitectura con modelo de datos (recursos, URIs y representaciones XML)representaciones XML)Composición de diversos estilos: repositorio replicado, Composición de diversos estilos: repositorio replicado, cachecache, cliente-servidor, sistema en capas, sistema sin , cliente-servidor, sistema en capas, sistema sin estado, máquina virtual, código a demanda e interfaz estado, máquina virtual, código a demanda e interfaz uniformeuniforme

Page 78: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Modelo RESTModelo REST

Una aplicación REST transfiere Una aplicación REST transfiere representaciones entre componentes usando representaciones entre componentes usando conectoresconectoresComponentes: incluyen agentes de usuario Componentes: incluyen agentes de usuario (Mozilla, cURL) y servidores de origen (Mozilla, cURL) y servidores de origen (Apache, IIS)(Apache, IIS)Los componentes de REST obedecen estas Los componentes de REST obedecen estas restricciones:restricciones:

las interaciones son las interaciones son statelessstatelesslos recursos se identifican mediante URIslos recursos se identifican mediante URIsno hay tal cosa como servicios no hay tal cosa como servicios ni objetosni objetos, sólo , sólo recursosrecursosno se permite el paso de no se permite el paso de cookiescookies y se propone el y se propone el reemplazo de MIME reemplazo de MIME (Multipurpose Internet Mail Extensions)(Multipurpose Internet Mail Extensions) por su discrepancia arquitectónica con la semántica de por su discrepancia arquitectónica con la semántica de HTTPHTTPhypermedia es la máquina de estado de la aplicaciónhypermedia es la máquina de estado de la aplicación

no hay necesidad de no hay necesidad de toolkitstoolkits: sólo URIs y XML: sólo URIs y XML

Page 79: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOAP SOAP versusversus REST RESTPolémica sobre el estilo dominante en Polémica sobre el estilo dominante en SOA.SOA.

Abundancia de pullas:Abundancia de pullas:““Give SOAP a REST” - “Otra vez SOAP” Give SOAP a REST” - “Otra vez SOAP” - “REST could burst the SOAP bubble”, - “REST could burst the SOAP bubble”, “Slippery SOAP”“Slippery SOAP”

REST enfatiza el papel de los REST enfatiza el papel de los intermediarios: caches, proxies, intermediarios: caches, proxies, gateways, etcgateways, etcREST es adecuado para transferencias y REST es adecuado para transferencias y transformaciones simples. Transacciones transformaciones simples. Transacciones complejas requieren sin duda SOAP.complejas requieren sin duda SOAP.No hay herramientas para implementar No hay herramientas para implementar REST rigurosamente; sí en cambio las REST rigurosamente; sí en cambio las hay para SOAP RPC.hay para SOAP RPC.Idem en relación con middlewaresIdem en relación con middlewares

Page 80: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOAP vs RESTSOAP vs REST80 implementaciones independientes de SOAP 1.1 80 implementaciones independientes de SOAP 1.1 en 2002 – Centenares a fines de 2005en 2002 – Centenares a fines de 2005ebXML adoptó SOAP como protocolo de baseebXML adoptó SOAP como protocolo de baseSOAP incorporó ideas de ebXML a través de WS-*SOAP incorporó ideas de ebXML a través de WS-*

Integridad de mensajes, no-repudio, mensajería Integridad de mensajes, no-repudio, mensajería confiable, flujo de procesos de negocios, negociación de confiable, flujo de procesos de negocios, negociación de protocolosprotocolos

SOAP puede alcanzar mejor performance porque SOAP puede alcanzar mejor performance porque puede ser puede ser statefulstateful y no tiene que trasmitir y no tiene que trasmitir información de estado.información de estado.A la larga el comité de WSA en W3C no optó entre A la larga el comité de WSA en W3C no optó entre REST y SOAP, sino que reformuló SOAP 1.2 REST y SOAP, sino que reformuló SOAP 1.2 adoptando ideas de RESTadoptando ideas de REST““Intercambio asincrónico de documentos” ha Intercambio asincrónico de documentos” ha ganado ganado mindsharemindshare a expensas de “RPC” a expensas de “RPC”““Web services como objetos distribuidos” tiene Web services como objetos distribuidos” tiene cada vez menoscada vez menos adeptosadeptosDTD y tecnologías similares han sido eliminadasDTD y tecnologías similares han sido eliminadas

Page 81: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA vs Objetos y Componentes SOA vs Objetos y Componentes distribuidosdistribuidos

Los componentes ofrecían Los componentes ofrecían reutilización, pero también reutilización, pero también acoplamiento relativamente alto.acoplamiento relativamente alto.Las tecnologías seguían siendo Las tecnologías seguían siendo propietarias. propietarias.

““Aún cuando CORBA era un esfuerzo Aún cuando CORBA era un esfuerzo ostensiblemente basado en estándares, ostensiblemente basado en estándares, en la práctica se debía trabajar con una en la práctica se debía trabajar con una única implementación comercial de la única implementación comercial de la especificación” [especificación” [The Rational EdgeThe Rational Edge]]

El mercado de componentes no se El mercado de componentes no se desarrolló como se había previstodesarrolló como se había previsto

Page 82: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA vs Objetos y SOA vs Objetos y Componentes distribuidosComponentes distribuidos

Servicios APIs Beneficios

Pocas interacciones, degrano grueso

Muchas interacciones,de grano fino

Se requiere menoscomunicación y haymenos sobrecarga

Cada interacción es lamisma

Cada interacción esdiferente

Más fácil deimplementar ycambiar

Cada interacción es unpaso en un proceso denegocios. No hayprocesos o estados demás bajo nivel.

Muchas interaccionespara completar unproceso de negocios.Muchos procesos oestados intermedios.

Menos complejidadcuando el consumidoro el proveedor debencambiar. Sólo serequiere acordarprocesos o estados anivel de negocios.

Page 83: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Perspectiva académica : Perspectiva académica : SOA vs Objetos y Componentes SOA vs Objetos y Componentes distribuidosdistribuidos

Werner Vogels (Cornell University): Web Werner Vogels (Cornell University): Web Services y SOA no son objetos distribuidos.Services y SOA no son objetos distribuidos.

Los web services no requieren Los web services no requieren tecnología de objetos distribuidostecnología de objetos distribuidosEl intercambio de documentos es un El intercambio de documentos es un concepto muy distinto a la instanciación concepto muy distinto a la instanciación de un objeto, la invocación de un de un objeto, la invocación de un método de una instancia, la recepción método de una instancia, la recepción del resultado de la invocación y la del resultado de la invocación y la liberación final de la instancia.liberación final de la instancia.Otros errores:Otros errores:

El debugging de web services es imposible...El debugging de web services es imposible...

Page 84: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Perspectiva académica : Perspectiva académica : SOA vs Objetos y Componentes SOA vs Objetos y Componentes distribuidosdistribuidos

Werner Vogels - Otros errores:Werner Vogels - Otros errores:““Web services son sólo RPC para Web services son sólo RPC para Internet”Internet”

En SOAP 1.2 En SOAP 1.2 RPC/encodedRPC/encoded es opcional, y es opcional, y se favorece se favorece document/literaldocument/literal

La interacción sincrónica en La interacción sincrónica en wide areawide area no es escalable, la coordinación de no es escalable, la coordinación de versiones será siempre versiones será siempre complicadísimacomplicadísima

““Se requiere HTTP para tener Se requiere HTTP para tener servicios”servicios”

Soporte de protocolos diversos desde Soporte de protocolos diversos desde WSE y en .NET Framework 2WSE y en .NET Framework 2

Page 85: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Perspectiva académica : Perspectiva académica : SOA vs Objetos y Componentes SOA vs Objetos y Componentes distribuidosdistribuidos

Werner Vogels (cont.)Werner Vogels (cont.)““Se requieren servidores de web para Se requieren servidores de web para tener web services”tener web services”

““Web” debería haberse excluido, dejando Web” debería haberse excluido, dejando simplemente “services”simplemente “services”

Hay herramientas que no requieren Hay herramientas que no requieren servidores de web: Simon Fell’s PocketSoap, servidores de web: Simon Fell’s PocketSoap, Systinet’s WASP, IBM’s Emerging Systinet’s WASP, IBM’s Emerging Technologies Toolkit, Technologies Toolkit, Microsoft’s Web Microsoft’s Web Services Enhancements (WSE).Services Enhancements (WSE).

Sistemas de integración de empresas como Sistemas de integración de empresas como Artix y DocSOAP proporcionan desarrollo de Artix y DocSOAP proporcionan desarrollo de web services que no requieren web serversweb services que no requieren web servers

Page 86: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA & Grid ComputingSOA & Grid Computing

Grid: Modelo de resolución de problemas Grid: Modelo de resolución de problemas usando gran número de computadoras usando gran número de computadoras heterogéneas organizadas en heterogéneas organizadas en clustersclusters2003: alguna convergencia con web 2003: alguna convergencia con web servicesservices

Open Grid Open Grid Service ArchitectureService Architecture (OGSA) (OGSA) implementa fundamentalmente WSDL y SOAP implementa fundamentalmente WSDL y SOAP (Globus Toolkit 3 framework)(Globus Toolkit 3 framework)Textos de Grid mencionan SOA como Textos de Grid mencionan SOA como antecedenteantecedenteAlchemi – Framework para Grid Computing Alchemi – Framework para Grid Computing en .NET, utilizando .NET Remoting y web en .NET, utilizando .NET Remoting y web servicesservices

Page 87: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA & Grid ComputingSOA & Grid Computing

SOA StandardsSOA StandardsWSDLWSDLUDDIUDDIBPELBPELWS-ProfileWS-ProfileWS-SecurityWS-SecurityWS-ChoreographyWS-Choreography

Etcétera…Etcétera…

Grid StandardsGrid StandardsOGSIOGSI

Extensión de WSDLExtensión de WSDL

WS-ResourceWS-ResourceWS-ResourceLifetimeWS-ResourceLifetimeWS-WS-ResourcePropertiesResourcePropertiesWS-WS-RenewableReferencesRenewableReferencesWS-ServiceGroupWS-ServiceGroupWS-BaseFaultsWS-BaseFaults

Page 88: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA & Semantic Web SOA & Semantic Web (1/3)(1/3)

Semantic Web:Semantic Web:Propuesta por Sir Tim Propuesta por Sir Tim Berners-LeeBerners-Lee

Creador del WWW en 1984 y el primer Creador del WWW en 1984 y el primer web site, 1991; fundador de W3C en el web site, 1991; fundador de W3C en el MIT. No royalties!!MIT. No royalties!!Semántica comprensible para máquinas y Semántica comprensible para máquinas y aplicacionesaplicacionesHay una semántica actualmente, pero en Hay una semántica actualmente, pero en realidad opera sobre correspondencias realidad opera sobre correspondencias sintácticas (XML Schemas)sintácticas (XML Schemas)

Page 89: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA & Semantic Web SOA & Semantic Web (2/3)(2/3)

Semantic web utiliza:Semantic web utiliza:XMLXMLXML SchemaXML SchemaRDF (Resource Description RDF (Resource Description Framework)Framework)

Triplas de Sujeto + Predicado + Triplas de Sujeto + Predicado + ObjetoObjeto

RDF Schema - Semántica de RDF Schema - Semántica de generalización y jerarquíageneralización y jerarquíaOWL (Web Ontology Language)OWL (Web Ontology Language)

Extensión de vocabulario de RDFExtensión de vocabulario de RDFCardinalidad, características, Cardinalidad, características, equivalencias, relacionesequivalencias, relaciones

Page 90: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

SOA & Semantic Web SOA & Semantic Web (3/3)(3/3)

En curso: Integración de En curso: Integración de estándares de industria con estándares de industria con investigación académicainvestigación académicaDesarrollos en procesoDesarrollos en proceso

DAML-S - (Darpa Agent Markup DAML-S - (Darpa Agent Markup Language)Language)

Agrega definiciones, pre-condiciones, Agrega definiciones, pre-condiciones, pos-condiciones etc a estándares pos-condiciones etc a estándares usuales SOA (Service Profile); también usuales SOA (Service Profile); también abstracciones de proceso (Service abstracciones de proceso (Service Model) y aspectos técnicos (Service Model) y aspectos técnicos (Service Grounding)Grounding)

SWOBIS = UDDI + ontologíaSWOBIS = UDDI + ontología

Page 91: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Recursos de SOA Recursos de SOA en .NETen .NET

.NET Framework 1.0 (2000).NET Framework 1.0 (2000)XML Schema 1.0, SOAP 1.1, WSDL 1.1, XML Schema 1.0, SOAP 1.1, WSDL 1.1, UDDI 1.0 (idem: J2EE1.4)UDDI 1.0 (idem: J2EE1.4)

.NET Framework 1.1 (2002).NET Framework 1.1 (2002)WS-Security, WS-Routing (HTTP, UDP, WS-Security, WS-Routing (HTTP, UDP, TCP), Direct Internet Message TCP), Direct Internet Message Encapsulation (DIME: soporte binario de Encapsulation (DIME: soporte binario de cualquier tipo y tamaño en un solo cualquier tipo y tamaño en un solo mensaje), WS-Attachments (en formato mensaje), WS-Attachments (en formato DIME)DIME)

Windows Server 2003Windows Server 2003Device driver HTTP.SYS (modo kernel), Device driver HTTP.SYS (modo kernel), UDDI Server (registrar y publicar web UDDI Server (registrar y publicar web services)services)

Page 92: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Innovaciones tecnológicas Innovaciones tecnológicas de impacto arquitectónico:de impacto arquitectónico:Web Services Web Services EnhancementsEnhancements

Page 93: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Web Services Web Services EnhancementsEnhancementsNo solamente web ni ASP.NET:No solamente web ni ASP.NET:Las aplicaciones se pueden hostear Las aplicaciones se pueden hostear en múltiples ambientesen múltiples ambientesASP.NET, .exe, NT Service, WinForms, etc.ASP.NET, .exe, NT Service, WinForms, etc.

Soporte para múltiples transportesSoporte para múltiples transportesin-process communication (para in-process communication (para testingtesting))TCP puroTCP puroHTTPHTTP

Soporte de operaciones prolongadas Soporte de operaciones prolongadas y complejasy complejas

Page 94: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Drilldown: Mejoras en Drilldown: Mejoras en seguridadseguridad

Políticas de seguridad basadas en Políticas de seguridad basadas en estándares de industriaestándares de industriaTrust Issuing Framework (WS-Trust)Trust Issuing Framework (WS-Trust)Secure Conversation (WS-Secure Conversation (WS-SecureConversation) SecureConversation) Autorización basada en rolesAutorización basada en rolesPolicies de seguridad (WS-Policies de seguridad (WS-SecurityPolicy)SecurityPolicy)

Page 95: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

TrustTrust

Relaciones e identidad: Relaciones e identidad: tokenstokens de de seguridad con firma digitalseguridad con firma digital

¿Cómo pruebo quien soy?¿Cómo pruebo quien soy?¿Quién me puede avalar?¿Quién me puede avalar?¿Cómo sabe usted que puede confiar en ¿Cómo sabe usted que puede confiar en él?él?

WS-Trust define un protocolo para WS-Trust define un protocolo para emitir y obtener tokens de seguridademitir y obtener tokens de seguridad

Page 96: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Confianza (Trust)Confianza (Trust)

Diversos modelos Diversos modelos para emitir para emitir tokenstokens

El cliente obtiene El cliente obtiene token de una token de una fuente bien fuente bien conocidaconocidaEl servicio obtiene El servicio obtiene un token para el un token para el cleintecleinteEtc…Etc…

Client

Token Issuer

Service

Client Service

TokenIssuer 2

TokenIssuer 1

Client

TokenIssuer

Service

Page 97: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Conversación seguraConversación segura

WS-SecureConversation detalla la WS-SecureConversation detalla la forma de emitir un forma de emitir un SecurityContextTokenSecurityContextTokenEn WSE, este token de peso ligero En WSE, este token de peso ligero reemplaza a los tokens que reemplaza a los tokens que requieren proceso intensivorequieren proceso intensivo

ClienteEmisor del

Servicioy el Token

Requerimiento de SCT

SCT emitido al cliente

Series de mensajes firmados con el SCT emitido

Page 98: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Creando conversaciones Creando conversaciones segurasseguras

Los servicios pueden emitir sus Los servicios pueden emitir sus propios SCTspropios SCTsYa no hay necesidad de desplegar Ya no hay necesidad de desplegar emisor de SCTemisor de SCTHay que tocar un elemento de Hay que tocar un elemento de configuraciónconfiguración<autoIssueSCT enabled=true /><autoIssueSCT enabled=true />

Page 99: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Drilldown: Policy Driven Drilldown: Policy Driven ArchitectureArchitectureMás allá de WSDL ¿qué más se requiere Más allá de WSDL ¿qué más se requiere para describir un (web) service?para describir un (web) service?

Requisitos de seguridadRequisitos de seguridadSeguridades de mensaje confiableSeguridades de mensaje confiableManejo de versiones de protocoloManejo de versiones de protocoloEtc…Etc…

Estos y otros atributos de un servicio se Estos y otros atributos de un servicio se pueden describir con WS-Policypueden describir con WS-Policy

Lenguaje basado en XMLLenguaje basado en XMLComplejo: <Or>, <ExactlyOne>, etc…Complejo: <Or>, <ExactlyOne>, etc…

WSE proporciona un Framework de Policy WSE proporciona un Framework de Policy con soporte del lado del que envía y del con soporte del lado del que envía y del que recibeque recibe

Page 100: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Facilidades adicionalesFacilidades adicionales

Varios ejemplosVarios ejemplosSecurity Settings WizardSecurity Settings WizardStandalone Config EditorStandalone Config EditorX509 Certificate Wizard para manejar X509 Certificate Wizard para manejar los certificados propioslos certificados propiosNamespaceNamespace

Viejo: Microsoft.Web.ServicesViejo: Microsoft.Web.ServicesNuevo: Microsoft.Web.ServiceNuevo: Microsoft.Web.Service22

Page 101: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Recursos de SOA en Visual Recursos de SOA en Visual Studio 2005Studio 2005

Team SystemTeam SystemEngineEngine de modelado y herramientas de de modelado y herramientas de framework SOA en Visual Studio 2005framework SOA en Visual Studio 2005Resuelve el problema de Resuelve el problema de roundtrip roundtrip engineeringengineeringIncluye Distributed System DesignersIncluye Distributed System Designers

Application Connection DesignerApplication Connection DesignerClass DesignerClass DesignerLogical Datacenter DesignerLogical Datacenter Designer

......

Page 102: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Desarrollo de SOA en Desarrollo de SOA en Team SystemTeam SystemApplication Connection DesignerApplication Connection Designer

Drag ExternalDatabase - SetearDrag ExternalDatabase - SetearpropiedadespropiedadesExponer los datos via Web ServiceExponer los datos via Web ServiceInterface (Web Service Endpoint)Interface (Web Service Endpoint)Drag ASP.NET web applicationDrag ASP.NET web applicationpara generar interface visualpara generar interface visual

Listo...Listo...

Page 103: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Deployment de SOADeployment de SOA

Logical Datacenter DesignerLogical Datacenter DesignerDefinir IIS en Zone DesmilitarizadaDefinir IIS en Zone Desmilitarizada(DMZ)(DMZ)En la zona interior, un IIS En la zona interior, un IIS llamado AppServer y una llamado AppServer y una máquina que corremáquina que correSQL ServerSQL ServerConectar medianteConectar medianteConnection ToolConnection Tool

Page 104: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Agregar Restricciones a Agregar Restricciones a diagrama lógicodiagrama lógico

Page 105: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

Diseño con VS 2005 Class Diseño con VS 2005 Class DesignerDesigner

Sincronización de diagrama y códigoSincronización de diagrama y códigoSoporta diagramas similares a Class Soporta diagramas similares a Class Diagram de UML, pero con acceso a Diagram de UML, pero con acceso a métodos, propiedades, etcmétodos, propiedades, etc

Agregar diagrama de claseAgregar diagrama de claseVer Class Details para ver y modificar Ver Class Details para ver y modificar interface de la claseinterface de la claseTambién se pueden tratar clases de También se pueden tratar clases de otros otros assembliesassemblies referenciados referenciados

Page 106: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ConclusionesConclusiones

SOA – El estilo de arquitectura más importante del SOA – El estilo de arquitectura más importante del momento, en desarrollo simultáneo en la momento, en desarrollo simultáneo en la academia y la industriaacademia y la industriaCambio histórico en modelo de diseño, de Cambio histórico en modelo de diseño, de programación y de despliegueprogramación y de desplieguePropiedad del código, control de la facturación por Propiedad del código, control de la facturación por su uso en ambientes de prueba y producciónsu uso en ambientes de prueba y producciónCambios sustanciales en modelo de negociosCambios sustanciales en modelo de negocios

Empresas ofrecen servicios a sus competidoresEmpresas ofrecen servicios a sus competidoresISV ofrecen servicios a otros ISVsISV ofrecen servicios a otros ISVs

Implementación posible de diversos modelos de Implementación posible de diversos modelos de computación distribuida (Pizarra, agentes…)computación distribuida (Pizarra, agentes…)Elaboración académica todavía pendienteElaboración académica todavía pendiente

Page 107: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

RecursosRecursos

Page 108: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 109: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 110: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 111: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 112: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 113: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 114: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 115: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 116: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 117: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 118: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Page 119: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Page 120: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Page 121: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Jason Bloomberg - “The role of the service-Jason Bloomberg - “The role of the service-oriented architect”. The Rational Edge, oriented architect”. The Rational Edge, http://www.therationaledge.com/may_03/f_bloohttp://www.therationaledge.com/may_03/f_bloomberg.jspmberg.jspMarc Brooks (MITRE) - “Service Oriented Marc Brooks (MITRE) - “Service Oriented Architecture and Grid Computing”. http://web-Architecture and Grid Computing”. http://web-services.gov/Brooks32404.pptservices.gov/Brooks32404.pptIan Foster, Carl Kesselman, Jeffrey Nick, Steven Ian Foster, Carl Kesselman, Jeffrey Nick, Steven Tuecke. “Physiology of the grid”. Tuecke. “Physiology of the grid”. http://www.globus.org/research/papers/ogsa.pdhttp://www.globus.org/research/papers/ogsa.pdffBrian Randell, Rockford Lhotka - “Bridge the Brian Randell, Rockford Lhotka - “Bridge the gap between development and operation with gap between development and operation with Whitehorse”. MSDN Magazine, Julio de 2004Whitehorse”. MSDN Magazine, Julio de 2004

Page 122: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Werner Vogels - “Web services are not Werner Vogels - “Web services are not distributed objects”. distributed objects”. Http://weblogs.cs.cornell.edu/AllThingsDiHttp://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000119.html - 2003stributed/archives/000119.html - 2003Luis Felipe Cabrera, Christopher Kurt, Luis Felipe Cabrera, Christopher Kurt, Don Box. “An introduction to the Web Don Box. “An introduction to the Web Service Architecture and its Service Architecture and its specifications”. MSDN Library, Setiembre specifications”. MSDN Library, Setiembre 20042004

Page 123: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 124: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 125: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 126: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

ReferenciasReferencias

Roy Thomas Fielding. “Architectural Roy Thomas Fielding. “Architectural styles and the design of network-based styles and the design of network-based software architectures”. Tesis doctoral, software architectures”. Tesis doctoral, University of California, Irvine, 2000.University of California, Irvine, 2000.

Kevin Mitchell. “A matter of style: Web Kevin Mitchell. “A matter of style: Web Services architectural patterns”. Services architectural patterns”. XML XML Conference & Exposition 2002Conference & Exposition 2002, Baltimore, , Baltimore, 8 al 13 de diciembre de 2002.8 al 13 de diciembre de 2002.

Http://www.ws-i.orgHttp://www.ws-i.orgBilly Reynoso - Documentos de Billy Reynoso - Documentos de arquitectura en arquitectura en http://www.microsoft.com/spanish/msdn/http://www.microsoft.com/spanish/msdn/arquitecturaarquitectura

Page 127: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.
Page 128: Arquitectura Orientada a Servicios (SOA) Billy Reynoso Universidad de Buenos Aires billyr@microsoft.com.ar.

¿Preguntas?¿Preguntas?

[email protected]://www.microsoft.com/spanish/msdn/arquitectura