Architect Academy Webcast - PowerPoint PPT Presentation

1 / 121
About This Presentation
Title:

Architect Academy Webcast

Description:

Webcast #1: Qu es la Arquitectura de Software? ... Etc tera... Grid Standards. OGSI. Extensi n de WSDL. WS-Resource. WS-ResourceLifetime ... – PowerPoint PPT presentation

Number of Views:164
Avg rating:3.0/5.0
Slides: 122
Provided by: Bil593
Category:

less

Transcript and Presenter's Notes

Title: Architect Academy Webcast


1
Architect AcademyWebcast 3Arquitectura para
distribución y agregación Services Oriented
Architecture (SOA)
  • Billy ReynosoUniversidad de Buenos
    Airesbillyr_at_microsoft.com.ar

2
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

3
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

4
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

5
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í 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

6
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

7
Contexto 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
8
Propiedades
 
9
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 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)

10
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

11
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).

12
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.

13
SOA 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

14
Principales conceptos
  • CBDI - Perspectivas arquitectónicas
  • Aplicación - Servicio - Componente

15
Implementaciones RPC
  • WS no requiere despliegue
  • WS no requiere clientes específicos, ni drivers
  • SOA se redefine como paso de mensajes, no RPC

16
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.

17
(No Transcript)
18
(No Transcript)
19
(No Transcript)
20
(No Transcript)
21
(No Transcript)
22
Demo 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)
70
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)

71
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

72
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

73
Estándares SOA Web Serviceshttp//WS-I.ORG
74
Framework de SOA
75
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

76
SOA vs Objetos y Componentes distribuidos
77
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?

78
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

79
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 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

80
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

81
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

82
SOA 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)

83
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

84
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

85
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)

86
Innovaciones tecnológicas de impacto
arquitectónicoWeb Services Enhancements
87
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

88
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)

89
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

90
Confianza (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
91
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

Requerimiento de SCT
Emisor delServicioy el Token
Cliente
SCT emitido al cliente
Series de mensajes firmados con el SCT emitido
92
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
  • ltautoIssueSCT enabledtrue /gt

93
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 ltOrgt, ltExactlyOnegt, etc
  • WSE proporciona un Framework de Policy con
    soporte del lado del que envía y del que recibe

94
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

95
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
  • ...

96
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...

97
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

98
Agregar Restricciones a diagrama lógico
99
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

100
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

101
Recursos
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)
112
Referencias
113
Referencias
114
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

115
Referencias
  • 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)
119
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

120
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)

121
Preguntas?
  • Billyr_at_microsoft.com.arhttp//www.microsoft.com/s
    panish/msdn/arquitectura
Write a Comment
User Comments (0)
About PowerShow.com