architect academy webcast #3: arquitectura para distribución y agregación: services oriented...

121
Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires [email protected]

Upload: loida-muriel

Post on 03-Jan-2015

1 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Architect AcademyWebcast #3:

Arquitectura para distribución y agregación: Services Oriented Architecture (SOA)

Billy ReynosoUniversidad de Buenos [email protected]

Page 2: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Roadmap

Webcast #1: ¿Qué es la Arquitectura de Software?

Webcast #2: Drilldown en Estilos de Arquitectura de Software

Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA)

Webcast #4: Diseñando la arquitectura

Page 3: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Objetivos

Propósito de la serie de Webcasts:

• Comprender la teoría y orientar la práctica de la Arquitectura de Software

• Vincular concepciones de la academia y la industria

• Relacionar los principios teóricos con herramientas y ambientes Microsoft

Propósito de la sesión de hoy:

• Comprender el estilo de arquitectura más adecuado para soluciones de integración

• Comprender puntualmente la relación entre SOA y Web Services

SOA como arquitectura, WS como implementación

• Establecer las perspectivas y los recursos de estado de arte para la realización de esta arquitectura

Page 4: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Agenda

La explosión de SOA - Muestreo

Definiciones

Contexto de situación y antecedentes

Principales conceptos

SOA como Estilo de Arquitectura

Relaciones de SOA con Web Services

Diferencias con Objetos o Componentes distribuidos

Distintas concepciones: IBM, Rational, Sun, Microsoft, REST

Perspectivas: SOA & Grid Computing - SOA & Semantic Web

Recursos de SOA en .NET

Conclusiones y referencias

Page 5: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

La explosión de SOA - Muestreo

“La recompensa potencial [de SOA] es enorme para las empresas que entiendan esta evolución y se muevan hacia estas arquitecturas. ... La tecnología de computación distribuida promete ser lo suficientemente flexible y elegante para responder a las necesidades de negocios y proporcionar la agilidad de negocios que las compañías han anhelado tanto tiempo, pero siempre ha estado fuera de alcance”. [The Rational Edge, 2004]

“La mejor solución a la integración de negocios...” [Annraí O’Toole, Cape Clear]

“SOA ha surgido como la mejor manera de afrontar el desafío de hacer más con menos recursos. Promete hacer la re-utilización y la integración mucho más fáciles, ayudando a reducir el tiempo de desarrollo y aumentando la agilidad organizacional. No sorprendentemente, el 80% de las organizaciones de IT están implementando aplicaciones usando SOA con web services subyacentes. SOA proporciona mayor flexibilidad para afrontar los cambios tanto en el ambiente de negocios como en la infraestructura tecnológica”. [M7 Corporation]

Page 6: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

La explosión de SOA - Muestreo

“SOA es la próxima ola de desarrollo de aplicaciones. Es más rápida, mejor y más barata” [Michael Pallos, 2001]

“Comprender el rol y el significado de SOA, más allá del hype simplista, es imperativo para cualquier arquitecto de software empresarial. ... Hacia 2008, SOA y Web Services serán implementados juntos en más del 75% de los proyectos que utilicen SOA y Web Services (probabilidad 0.7)” [Gartner, 2003]

“Hacia 2008, más del 75% de los paquetes de aplicación de ese entonces serán nativamente SOA o expondrán interfaces SOA a través de una capa de envoltura de interfaces (probabilidad 0.8)” [Gartner, 2003]

“Hacia 2008, SOA será la práctica prevalente de ingeniería de software, acabando con los 40 años de dominación de las arquitecturas monolíticas (probabilidad 0.7)” [Gartner, 2003]

“Giga recomienda a los arquitectos considerar SOA como la prioridad número uno en sus esfuerzos de planeamiento arquitectónico” [Giga IT Trends 2003: Application architecture and design]

Page 7: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Contexto de situación y antecedentes

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: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Propiedades 

  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: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Historia

Service-oriented architecture (SOA) fue descripta por primera vez por Gartner en 1996

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

Web Services surgen con mayor fuerza hacia el 2000.

XML Web Services®

SOA = XML+SOAP+WSDL+UDDI+Bus

SOAP 1.0 - Específico de MS+Developmentor

• XML + HTTP

SOAP 1.1 - MS+IBM+Lotus

• Bindings de transporte para no-HTTP

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

Page 10: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA - Definiciones

W3C: “Conjunto de componentes que pueden ser invocados, cuyas descripciones de interfaces se pueden publicar y descubrir”

CBDI rechaza esa definición:

• Los componentes pueden no ser conjuntos

• La definición sólo considera los componentes y no la práctica o el arte de construir la arquitectura

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

Page 11: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA - Definiciones

“Infraestructura de alto nivel basada en best practices y patrones para crear soluciones basadas en servicios, de alta cohesión y bajo acoplamiento” (Geniant®).

“Estilo arquitectónico apto para implementar bajo acoplamiento entre agentes. Los agentes son proveedores y consumidores de servicios, que son la unidad de trabajo”. (Hao He).

“Una arquitectura de aplicación en la cual todas las funciones se definen como servicios independientes con interfaces invocables bien definidas, que pueden ser llamadas en secuencias definidas para formar procesos de negocios” (IBM).

Page 12: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA - Definiciones MITRE:

• Una aplicación SOA es una colección de servicios

• Un servicio es la unidad atómica de una SOA

• Los servicios encapsulan procesos de negocios

• Los proveedores de servicios se registran solos

• Un servicio involucra: Find, Bind, Execute

• Las instancias más conocidas son los web services

Gartner:

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

Page 13: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA como Estilo de Arquitectura

Estilos de Flujo de Datos

• Tubería y filtros

Estilos Centrados en Datos

• Arquitecturas de Pizarra o Repositorio

Estilos de Llamada y Retorno

• Model-View-Controller (MVC)

• Arquitecturas en Capas

• Arquitecturas Orientadas a Objetos

• Arquitecturas Basadas en Componentes

Estilos de Código Móvil

• Arquitectura de Máquinas Virtuales

Estilos heterogéneos

• Sistemas de control de procesos

• Arquitecturas Basadas en Atributos

Estilos Peer-to-Peer

• Arquitecturas Basadas en Eventos

• Arquitecturas Orientadas a Servicios

• Arquitecturas Basadas en Recursos

Page 14: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Principales conceptos

CBDI - Perspectivas arquitectónicas

• Aplicación - Servicio - Componente

Page 15: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Implementaciones 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 despliegue•WS no requiere clientes específicos, ni drivers•SOA se redefine como paso de mensajes, no RPC

Page 16: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Componentes de SOA Servicios: Entidades lógicas - Contratos definidos por una o más

interfaces públicas.

Service provider: Entidad de software que implementa una especificación de servicio.

Service consumer (o requestor): Entidad de software que llama a un service provider. Tradicionalmente se lo llama “cliente”. Puede ser una aplicación final u otro servicio.

Service locator: Tipo específico de service provider que actúa como registry y permite buscar interfaces de service providers y sus ubicaciones.

Service broker: Tipo específico de serviceprovider que puede pasar requerimientosde servicios a otros service providers.

Page 17: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 18: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 19: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 20: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 21: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 22: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Demo & Drilldown

Page 23: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 24: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 25: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 26: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 27: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 28: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 29: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 30: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 31: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 32: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 33: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 34: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 35: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 36: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 37: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 38: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 39: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 40: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 41: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 42: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 43: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 44: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 45: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 46: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 47: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 48: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 49: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 50: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 51: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 52: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 53: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 54: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 55: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 56: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 57: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 58: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 59: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 60: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 61: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 62: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 63: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 64: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 65: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 66: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 67: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 68: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 69: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 70: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA y Web Services

Web services: Diferentes definiciones en W3C Web Services Architecture Working Group

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

SOA es históricamente anterior (no por mucho)

Un web service es SOA si:

• Las interfaces se basan en protocolos de web (HTTP, SMTP, FTP)

• A excepción de los attachments, los mensajes se basan en XML

Dos estilos de web service: SOAP y REST

• REST es anti-RPC (más sobre esto luego)

• SOAP puede interpretarse en términos de mensajes o de RPC (Don Box)

Page 71: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA y Web Services

CBDI:

• SOA es más amplio. Los web services son sólo una interface programática en conformidad con los protocolos WS-*

• Puede haber SOA sin ws (ej. REST)

• Los web services proporcionan independencia de plataforma, bajo acoplamiento, auto-descripción y descubrimiento

• Los web services no son parte obligatoria de SOA, pero son una implementación adecuada

Page 72: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Estándares primarios - WSDL

XML que describe servicios

Propuesto por Microsoft e IBM y presentado a W3C por 25 empresas (número máximo admitido)

Define data types pasados en mensajes, operaciones a realizar y mapeado de los mensajes sobre transportes de red

Puede haber algunas discrepancias entre diferentes implementaciones, debido a que es extensible

Page 73: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

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

Page 74: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Framework de SOA

Page 75: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA vs Objetos y Componentes distribuidos

Los componentes ofrecían reutilización, pero también acoplamiento relativamente alto.

Las tecnologías seguían siendo propietarias.

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

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

Page 76: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA vs Objetos y Componentes 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 77: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA vs Objetos y Componentes distribuidos

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

• Los web services no requieren tecnología de objetos distribuidos

• El intercambio de documentos es un concepto muy distinto a la instanciación de un objeto, la invocación de un método de una instancia, la recepción del resultado de la invocación y la liberación final de la instancia.

• Otros errores:

El debugging de web services es imposible...

Demo?

Page 78: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA vs Objetos y Componentes distribuidos

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

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

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

• “Se requiere HTTP para tener servicios”

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

Page 79: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA vs Objetos y Componentes distribuidos

• Werner Vogels (cont.)

• “Se requieren servidores de web para tener web services”

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

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

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

Page 80: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA & Grid Computing Grid: Modelo de resolución de problemas usando gran número de

computadoras heterogéneas organizadas en clusters

2003: alguna convergencia con web services

• Open Grid Service Architecture (OGSA) implementa fundamentalmente WSDL y SOAP (Globus Toolkit 3 framework)

• Textos de Grid mencionan SOA como antecedente

• Alchemi – Framework para Grid Computing en .NET, utilizando .NET Remoting y web services

Page 81: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA & Grid Computing

SOA Standards

WSDL

UDDI

BPEL

WS-Profile

WS-Security

WS-Choreography

Etcétera…

Grid Standards

OGSI

• Extensión de WSDL

WS-Resource

• WS-ResourceLifetime

• WS-ResourceProperties

• WS-RenewableReferences

• WS-ServiceGroup

• WS-BaseFaults

Page 82: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA & Semantic Web (1/3)

Semantic Web:

• Propuesta por Sir Tim Berners-LeeCreador del WWW en 1984 y el primer web site, 1991;

fundador de W3C en el MIT. No royalties!!

Semántica comprensible para máquinas y aplicaciones

Hay una semántica actualmente, pero en realidad opera sobre correspondencias sintácticas (XML Schemas)

Page 83: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA & Semantic Web (2/3)

• Semantic web utiliza:XML

XML Schema

RDF (Resource Description Framework)

Triplas de Sujeto + Predicado + Objeto

RDF Schema - Semántica de generalización y jerarquía

OWL (Web Ontology Language)

Extensión de vocabulario de RDF

Cardinalidad, características, equivalencias, relaciones

Page 84: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

SOA & Semantic Web (3/3)

En curso: Integración de estándares de industria con investigación académica

Desarrollos en proceso

• DAML-S - (Darpa Agent Markup Language)

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

• SWOBIS = UDDI + ontología

Page 85: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Recursos de SOA en .NET

.NET Framework 1.0 (2000)

• XML Schema 1.0, SOAP 1.1, WSDL 1.1, UDDI 1.0 (idem: J2EE1.4)

.NET Framework 1.1 (2002)

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

Windows Server 2003

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

Page 86: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

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

Page 87: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Web Services Enhancements

No solamente web ni ASP.NET:

Las aplicaciones se pueden hostear en múltiples ambientes

ASP.NET, .exe, NT Service, WinForms, etc.

Soporte para múltiples transportes

• in-process communication (para testing)

• TCP puro

• HTTP

Soporte de operaciones prolongadas y complejas

Page 88: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Drilldown: Mejoras en seguridad

Políticas de seguridad basadas en estándares de industria

Trust Issuing Framework (WS-Trust)

Secure Conversation (WS-SecureConversation)

Autorización basada en roles

Policies de seguridad (WS-SecurityPolicy)

Page 89: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Trust

Relaciones e identidad: tokens de seguridad con firma digital

• ¿Cómo pruebo quien soy?

• ¿Quién me puede avalar?

• ¿Cómo sabe usted que puede confiar en él?

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

Page 90: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Confianza (Trust)

Diversos modelos para emitir tokens

• El cliente obtiene token de una fuente bien conocida

• El servicio obtiene un token para el cleinte

• Etc…

Client

Token Issuer

Service

Client Service

TokenIssuer 2

TokenIssuer 1

Client

TokenIssuer

Service

Page 91: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Conversación segura

WS-SecureConversation detalla la forma de emitir un SecurityContextToken

En WSE, este token de peso ligero reemplaza a los tokens que requieren proceso intensivo

ClienteEmisor del

Servicioy el Token

Requerimiento de SCT

SCT emitido al cliente

Series de mensajes firmados con el SCT emitido

Page 92: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Creando conversaciones seguras

Los servicios pueden emitir sus propios SCTs

Ya no hay necesidad de desplegar emisor de SCT

Hay que tocar un elemento de configuración

<autoIssueSCT enabled=true />

Page 93: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Drilldown: Policy Driven Architecture

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

• Requisitos de seguridad

• Seguridades de mensaje confiable

• Manejo de versiones de protocolo

• Etc…

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

• Lenguaje basado en XML

• Complejo: <Or>, <ExactlyOne>, etc…

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

Page 94: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Facilidades adicionales

Varios ejemplos

Security Settings Wizard

Standalone Config Editor

X509 Certificate Wizard para manejar los certificados propios

Namespace

• Viejo: Microsoft.Web.Services

• Nuevo: Microsoft.Web.Service2

Page 95: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Recursos de SOA en Whidbey

Whitehorse

• Engine de modelado y herramientas de framework SOA en Visual Studio 2005

• Resuelve el problema de roundtrip engineering

• Incluye Distributed System Designers

Application Connection Designer

Class Designer

Logical Datacenter Designer

...

Page 96: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Desarrollo de SOA en Whitehorse

Application Connection Designer

• Drag ExternalDatabase - Setearpropiedades

• Exponer los datos via Web ServiceInterface (Web Service Endpoint)

• Drag ASP.NET web applicationpara generar interface visual

Listo...

Page 97: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Deployment de SOA

Logical Datacenter Designer

• Definir IIS en Zone Desmilitarizada(DMZ)

• En la zona interior, un IIS llamado AppServer y una máquina que correSQL Server

• Conectar mediante ConnectionTool

Page 98: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Agregar Restricciones a diagrama lógico

Page 99: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Diseño con VS 2005 Class Designer Sincronización de diagrama y código

Soporta diagramas similares a Class Diagram de UML, pero con acceso a métodos, propiedades, etc

• Agregar diagrama de clase

• Ver Class Details para ver y modificar interface de la clase

• También se pueden tratar clases de otros assemblies referenciados

Page 100: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Conclusiones

SOA – El estilo de arquitectura más importante del momento, en desarrollo simultáneo en la academia y la industria

Cambios en modelode diseño, de programación y de despliegue

Propiedad del código, control de la facturación por su uso en ambientes de prueba y producción

Cambios sustanciales en modelo de negocios

• Empresas ofrecen servicios a sus competidores

• ISV ofrecen servicios a otros ISVs

Page 101: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Recursos

Page 102: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 103: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 104: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 105: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 106: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 107: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 108: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 109: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 110: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 111: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 112: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Referencias

Page 113: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Referencias

Page 114: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Referencias

Jason Bloomberg - “The role of the service-oriented architect”. The Rational Edge, http://www.therationaledge.com/may_03/f_bloomberg.jsp

Marc Brooks (MITRE) - “Service Oriented Architecture and Grid Computing”. http://web-services.gov/Brooks32404.ppt

Ian Foster, Carl Kesselman, Jeffrey Nick, Steven Tuecke. “Physiology of the grid”. http://www.globus.org/research/papers/ogsa.pdf

Brian Randell, Rockford Lhotka - “Bridge the gap between development and operation with Whitehorse”. MSDN Magazine, Julio de 2004

Page 115: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Referencias

Werner Vogels - “Web services are not distributed objects”. Http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000119.html - 2003

Luis Felipe Cabrera, Christopher Kurt, Don Box. “An introduction to the Web Service Architecture and its specifications”. MSDN Library, Setiembre 2004 new!!

Page 116: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 117: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 118: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires
Page 119: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Referencias

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

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

Http://www.ws-i.org

Billy Reynoso - Documentos de arquitectura en http://www.microsoft.com/spanish/msdn/arquitectura

Page 120: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

Architect Academy - Webcast #4

Diseñando la Arquitectura• Problemas y perspectivas del diseño arquitectónico

• Las perspectivas de diseño de la industria y la academia

• La Arquitectura no es modelado en UML

Los límites de UML (2) como lenguaje de modelado arquitectónico

• Vista rápida de los Lenguajes de Descripción de Arquitectura (ADL)

ACME/Armani, Wright, CHAM, ADLs basados en C2 – xADL, Jacal

• Estado de arte del diseño arquitectónico: Sacando provecho de herramientas, patrones y prácticas

• Estudios de casos

• Visión del futuro – Integrando arquitectura, diseño y desarrollo en Visual Studio 2005 (Team System)

Page 121: Architect Academy Webcast #3: Arquitectura para distribución y agregación: Services Oriented Architecture (SOA) Billy Reynoso Universidad de Buenos Aires

¿Preguntas?

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