Title: Architect Academy Webcast
1Architect AcademyWebcast 3Arquitectura para
distribución y agregación Services Oriented
Architecture (SOA)
- Billy ReynosoUniversidad de Buenos
Airesbillyr_at_microsoft.com.ar
2Roadmap
- 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
3Objetivos
- 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
4Agenda
- 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
5La 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í OToole, 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
6La 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
7Contexto de situación y antecedentes
- Evolución de la arquitectura
Ecosistema
Vertical
Horizontal
3-Tier, N-Tier
Objetos distribuidos
Estructurado
Monolítico
Client/Server
Servicios
Componentes
Web Services
Abstracción
8Propiedades
9Historia
- 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 XMLSOAPWSDLUDDIBus
- SOAP 1.0 - Específico de MSDevelopmentor
- XML HTTP
- SOAP 1.1 - MSIBMLotus
- Bindings de transporte para no-HTTP
- SOAP 1.2 - W3C.org (ya no es más acrónimo)
10SOA - 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
11SOA - 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).
12SOA - 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.
13SOA como Estilo de Arquitectura
- 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
- 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
14Principales conceptos
- CBDI - Perspectivas arquitectónicas
- Aplicación - Servicio - Componente
15Implementaciones RPC
- WS no requiere despliegue
- WS no requiere clientes específicos, ni drivers
- SOA se redefine como paso de mensajes, no RPC
16Componentes 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.
17(No Transcript)
18(No Transcript)
19(No Transcript)
20(No Transcript)
21(No Transcript)
22Demo Drilldown
23(No Transcript)
24(No Transcript)
25(No Transcript)
26(No Transcript)
27(No Transcript)
28(No Transcript)
29(No Transcript)
30(No Transcript)
31(No Transcript)
32(No Transcript)
33(No Transcript)
34(No Transcript)
35(No Transcript)
36(No Transcript)
37(No Transcript)
38(No Transcript)
39(No Transcript)
40(No Transcript)
41(No Transcript)
42(No Transcript)
43(No Transcript)
44(No Transcript)
45(No Transcript)
46(No Transcript)
47(No Transcript)
48(No Transcript)
49(No Transcript)
50(No Transcript)
51(No Transcript)
52(No Transcript)
53(No Transcript)
54(No Transcript)
55(No Transcript)
56(No Transcript)
57(No Transcript)
58(No Transcript)
59(No Transcript)
60(No Transcript)
61(No Transcript)
62(No Transcript)
63(No Transcript)
64(No Transcript)
65(No Transcript)
66(No Transcript)
67(No Transcript)
68(No Transcript)
69(No Transcript)
70SOA 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)
71SOA 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
72Está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
73Estándares SOA Web Serviceshttp//WS-I.ORG
74Framework de SOA
75SOA 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
76SOA vs Objetos y Componentes distribuidos
77SOA 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?
78SOA 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
79SOA 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 Fells PocketSoap, Systinets WASP,
IBMs Emerging Technologies Toolkit, Microsofts
Web Services Enhancements (WSE). - Sistemas de integración de empresas como Artix y
DocSOAP proporcionan desarrollo de web services
que no requieren web servers
80SOA 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
81SOA 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
82SOA Semantic Web (1/3)
- Semantic Web
- Propuesta por Sir Tim Berners-Lee
- Creador 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)
83SOA 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
84SOA 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
85Recursos 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)
86Innovaciones tecnológicas de impacto
arquitectónicoWeb Services Enhancements
87Web 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
88Drilldown 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)
89Trust
- 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
90Confianza (Trust)
Token Issuer
- Diversos modelos para emitir tokens
- El cliente obtiene token de una fuente bien
conocida - El servicio obtiene un token para el cleinte
- Etc
Client
Service
Token Issuer
Token Issuer 2
Token Issuer 1
Client
Service
Client
Service
91Conversació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
Requerimiento de SCT
Emisor delServicioy el Token
Cliente
SCT emitido al cliente
Series de mensajes firmados con el SCT emitido
92Creando 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
- ltautoIssueSCT enabledtrue /gt
93Drilldown 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 ltOrgt, ltExactlyOnegt, etc
- WSE proporciona un Framework de Policy con
soporte del lado del que envía y del que recibe
94Facilidades 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
95Recursos 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
- ...
96Desarrollo 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...
97Deployment 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
98Agregar Restricciones a diagrama lógico
99Diseñ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
100Conclusiones
- 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
101Recursos
102(No Transcript)
103(No Transcript)
104(No Transcript)
105(No Transcript)
106(No Transcript)
107(No Transcript)
108(No Transcript)
109(No Transcript)
110(No Transcript)
111(No Transcript)
112Referencias
113Referencias
114Referencias
- 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
115Referencias
- Werner Vogels - Web services are not distributed
objects. Http//weblogs.cs.cornell.edu/AllThingsD
istributed/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!!
116(No Transcript)
117(No Transcript)
118(No Transcript)
119Referencias
- 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
120Architect 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)
121Preguntas?
- Billyr_at_microsoft.com.arhttp//www.microsoft.com/s
panish/msdn/arquitectura