febrero 2003 - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

febrero 2003

Description:

febrero 2003 – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 58
Provided by: catherin87
Category:
Tags: febrero | moa

less

Transcript and Presenter's Notes

Title: febrero 2003


1
Forum de Desarrolladores Corporativos SERVICIOS
WEB XML EN .NETY cómo cambian la manera de
diseñar aplicaciones
Patrocinado por
2
Servicios Web XMLy como cambian la manera de
diseñar aplicacionesCatherine HellerSenior
ConsultantMicrosoft Developer Services
3
Conocimientos previos
  • Conocimientos básicos de
  • .NET Framework
  • Servicios Web
  • SOAP
  • Aplicaciones distribuidas

4
Ideas clave...
  • Servicios Web fachada (o façade)
  • Servicios Web débilmente acoplados
  • 3. Servicios Web en plena ebullición
  • Hoy punto-a-punto
  • Mañana extremo-a-extremo
  • Y si no estás haciendo Servicios Web,
  • empezad ya! ?

pueden ser débilmente acoplados
5
Agenda
  • Servicios Web XML y su contexto
  • Diseño de Servicios Web XML
  • Consumo de Servicios Web XML
  • GXA y WSE

6
Agenda
  • Servicios Web XML y su contexto
  • Repaso de Servicios Web XML
  • Arquitectura orientada a Servicios
  • Escenarios de uso
  • Diseño de Servicios Web XML
  • Consumo de Servicios Web XML
  • GXA y WSE

7
Servicio Web XML
  • Lógica de aplicación
  • Consumidores programas, no usuarios
  • Protocolos estándar
  • XML, SOAP, WSDL, (UDDI)
  • Basado en mensajes
  • Interoperabilidad entre sistemas heterogéneos

8
Servicios Web XMLLa pila básica de protocolos
Publicar, buscar servicios UDDI
Descripción de servicios WSDL
Interacción de servicios SOAP
Formato de datos universal XML
Comunicaciones ubicuas Internet
9
Estándares Situación actual(febrero 2003)
  • XML
  • XML 1.0 W3C Recommendation
  • XML Schema 1.0 W3C Recommendation
  • SOAP
  • SOAP 1.1 W3C Note
  • SOAP 1.2 W3C Candidate Recommendation
  • WSDL
  • WSDL 1.1 W3C Note
  • WSDL 1.2 W3C Working Draft
  • UDDI
  • UDDI v2, v3 OASIS Committee Specification

10
Service-Oriented Architecture(SOA)
  • Aspectos de una SOA...
  • Distintas organizaciones/departamentos
  • Redes, a veces poco fiables
  • Separación por distintos firewalls

11
Vista interna de un Servicio (1)
Mensaje
Servicio
Lógica
Estado
Políticas
12
Vista interna de un Servicio (2)
Service Façade
Mensaje
Lógica de negocio
Acceso a datos
Datos
Servicio
13
Características de un Servicio
  • Basado en mensajes
  • Datos
  • Invocados de forma remota
  • Viaje i/v debería amortizarse
  • Interfaces de grano grueso (course-grained)
  • Representan dominios de negocio, no entidades
  • Débilmente acoplado (loosely-coupled)

14
Loosely Coupled - Qué significa?
  • Acoplamiento (coupling)...
  • Grado de dependencia entre elementos
  • Entre fuerte ? débil
  • Y siempre con respecto a algún aspecto de la
    relación entre elementos
  • Cuanto menor acoplamiento, mayor coste
  • Tiempo de desarrollo, rendimiento, complejidad

15
Tipos de dependencias (1)
  • Dependencias en tiempo de desarrollo
  • Qué necesito para compilar
  • Cuándo tengo que recompilar
  • Dependencias en tiempo de despliegue
  • Qué necesito desplegar
  • Cuándo necesito re-distribuir

16
Tipos de dependencias (2)
  • Dependencias en tiempo de ejecución
  • Cuándo se ejecuta (asíncrono vs. síncrono)
  • Cómo se ejecuta (dependencia del modelo de
    programación, middleware, etc)
  • Dónde se ejecuta (transparencia de ubicación)

17
Servicios Web XML -Escenarios de uso
  • Entre organizaciones (Extranet)
  • B2B
  • Web Component Libraries/Internet
  • Entre sistemas (Intranet)
  • EAI
  • Entre capas de una aplicación distribuida
  • Cliente Windows Forms
  • Cliente .NET Compact Framework
  • Fachada de componentes de negocio
  • Peer-to-Peer

18
Agenda
  • Servicios Web XML y su contexto
  • Diseño de Servicios Web XML
  • Consumo de Servicios Web XML
  • GXA y WSE
  • Servicios Web XML y su contexto
  • Diseño de Servicios Web XML
  • Fachadas
  • Estilos de interfaces y extensibilidad
  • Interoperabilidad
  • Síncrono vs. asíncrono
  • Tipos de datos problemáticos
  • Servicios Web y .NET Remoting
  • Consumo de Servicios Web XML
  • GXA y WSE

19
Patrón Facade (GOF)
unified interface to a set of interfaces
  • Provide a unified interface to a set of
    interfaces. Facade defines a higher-level
    interface that makes the subsystem easier
    to use.
  • Proporcionar una interfaz unificada a un
    conjunto de interfaces. Facade define una
    interfaz de mas alto nivel que facilita el uso de
    un subsistema
  • Design Patterns. Elements of Reusable
    Object-Oriented Software
  • Erich Gamma, Richard Helm, Ralph Johnson, John
    Vlissides
  • Addison-Wesley 1995

makes the subsystem easier to use
20
Por qué utilizar fachadas
  • Independizar (desacoplar) el cliente
  • Reducir dependencias en tiempo de desarrollo y/o
    despliegue
  • Facilitar la implementación de los clientes

21
Servicios Web como fachadas
  • No implementar lógica en .asmx
  • Desviar llamadas a los componentes de negocio
  • Diseñar pensando en el tipo de cliente

22
Estilos de interfaces
  • RPC-centric
  • int Add(int X, int Y)
  • Alta granularidad de parámetros
  • Fuertemente tipado
  • (Raw) XML-centric
  • string Add(string Args)
  • XmlNode Add(XmlElement Args)
  • Entrada/salida basada en XML
  • No tipado (similar a Variant/IDispatch)
  • Document-centric
  • AddResponse Add(AddRequest Args)
  • Entrada/salida basada en tipos estructurados
  • Fuertemente tipado

xsdstring
xsdany
23
Extensibilidad
  • Cambios comunes en una interfaz
  • Nuevos elementos
  • Servicio Web, método, parámetro
  • Modificación de elementos
  • Cambio de tipo de parámetro y/o valor de
    retorno
  • Eliminación de elementos
  • Servicio Web, método, parámetro

24
ExtensibilidadLecciones aprendidas... (1)
  • Parámetros no recibidos son inicializados con su
    valor por defecto
  • Reference type null
  • Numérico 0
  • Boolean false
  • Parámetros no esperados son ignorados
  • void Method(int P1, string P2,
  • XmlAnyNode XmlNode ExtraParams)

25
ExtensibilidadLecciones aprendidas... (2)
  • xxxSpecified
  • Controla la serialización/deserialización de un
    campo/propiedad
  • Campo de tipo bool que se asocia a un campo xxx
  • Permite que un value type sea opcional (minOccurs
    0)

26
ExtensibilidadLecciones aprendidas... (3)
  • Parámetros de entrada/salida (valor de retorno)
  • Tipos estructurados (clases)
  • Para poder recibir múltiples tipos
  • XmlElement(typeof(...))
  • Para poder devolver múltiples tipos
  • return XmlElement(typeof(...))
  • Operaciones
  • Métodos virtuales (jerarquía de clases
    petición/respuesta)

27
Interoperabilidad Posibles incompatibilidades (1)
  • WSDL
  • 307324 HOW TO Integrate a .NET Client with an
    Apache SOAP 2.2 XML Web Service
  • http//support.microsoft.com/default.aspx?scidk
    b3Ben-us3B307324
  • 307318 HOW TO Integrate a SOAP Toolkit Client
    with an Apache SOAP 2.2 XML Web Service
  • http//support.microsoft.com/default.aspx?scidkb
    3Ben-us3B307318
  • 307279 HOW TO Integrate an Apache SOAP 2.2
    Client with a SOAP Toolkit XML Web Service
  • http//support.microsoft.com/default.aspx?scidkb
    3Ben-us3B307279
  • 308438 HOW TO Integrate a PERL/SOAP Lite Client
    with a SOAP Toolkit or .NET XML Web Service
  • http//support.microsoft.com/default.aspx?scidkb
    3Ben-us3B308438
  • 308466 HOW TO Integrate an Apache SOAP 2.2
    Client with a .NET XML Web Service
  • http//support.microsoft.com/default.aspx?scidkb
    3Ben-us3B308466

28
Interoperabilidad Posibles incompatibilidades (2)
  • Estilo de mensaje (Document vs. Rpc)
  • ASP.NET utiliza estilo Document por defecto
  • Especificación explícita...
  • SoapDocumentServiceAttribute / SoapRpcServiceAttri
    bute
  • SoapDocumentMethodAttribute / SoapRpcMethodAttribu
    te
  • Representación de parámetros (Literal vs.
    Encoded)
  • ASP.NET utiliza Literal por defecto
  • Especificación explícita
  • SoapDocumentService(UseSoapBindingUse.Encoded)
  • SoapDocumentMethod(UseSoapBindingUse.Encoded)

29
Interoperabilidad Posibles incompatibilidades (3)
  • Algunos tipos de datos
  • Por ejemplo, DataSet
  • Protocol bindings (Http-Get, Http-Post)

ltsystem.webgt ltwebServicesgt ltprotocolsgt
ltadd name"HttpSoap"/gt
ltremove name"HttpPost"/gt ltremove
name"HttpGet"/gt ltadd
name"Documentation"/gt lt/protocolsgt
lt/webServicesgt ltsystem.webgt
30
Interoperabilidad - Recursos
  • Web Services Interoperability Organization
  • http//www.ws-i.org
  • SoapBuilders Interoperability Lab
  • Round 1 http//www.xmethods.net/ilab
  • Round 2 http//www.whitemesa.com/interop.htm
  • Interop Results for ASP.NET
  • http//mssoapinterop.org/results/resaspx.xml

31
Síncrono vs. asíncrono
  • Síncrono
  • Se espera durante toda la ejecución
  • Se obtiene la respuesta al finalizar la ejecución
  • Asíncrono
  • Solo se inicia la ejecución
  • Se obtiene la respuesta en otro momento, mediante
    algún mecanismo de notificación y/o solicitud

Con respecto a qué...?
32
Síncrono vs. asíncrono
  • Con respecto a...
  • Thread
  • Comunicaciones
  • Proceso
  • Usuario/cliente

33
Síncrono vs. asíncrono
Con respecto a thread
Cliente
Servidor
Aplicación
Servicio Web
UI
Method
1
2
34
Síncrono vs. asíncrono
Con respecto a thread
Cliente
Servidor
Aplicación
Servicio Web
UI
Method
1
2
Asíncrono
1
Síncrono
2
35
Síncrono vs. asíncrono
Con respecto a thread
Cliente
Servidor
Aplicación
Servicio Web
UI
BeginMethod
1
EndMethod
2
Síncrono
1
Asíncrono
2
36
Métodos Web asíncronos
  • Pareja de métodos BeginXXX/EndXXX

WebMethod public string Method(int Param) ...
WebMethod public IAsyncResult
BeginMethod(int Param, AsyncCallback cb,
object o) ... WebMethod public string
EndMethod(IAsyncResult cb) ...
  • Server-Side Asynchronous Web Methods
  • http//msdn.microsoft.com/library/en-us/dnservice
    /html/service10012002.asp

37
Procesos de larga duración
  • Procesos interactivos
  • Larga duración gt 8-10 segundos
  • Evitar al menos la congelación del UI
  • Procesos semi-interactivos
  • Se da por hecho la disponibilidad del
    destinatario
  • Larga duración gt 30 segundos
  • Procesos desatendidos
  • Larga duración horas, días, semanas
  • Se necesita infraestructura adicional (como MSMQ,
    BizTalk, etc.)

38
Tipos de datos (1)
  • Tipos no serializables por el XmlSerializer
  • Clases que implementan IDictionary (como
    Hashtable)
  • Clases sin constructor por defecto
  • Propiedades de tipo interfaz
  • System.Data.SqlTypes, IntPtr
  • Propiedades decoradas con atributos de seguridad
    declarativas

39
Tipos de datos (2)
  • DataSet
  • No es interoperable
  • ArrayList
  • Utilizar atributos para tipar
  • Array de clases
  • Problemas con data binding
  • DateTime
  • Formato fijo yyyy-MM-ddTHHmmss.fffffffzzzzzz
  • TimeSpan
  • Exponer como string

40
Servicios WebASMX o Remoting?
  • No utilizar Remoting para implementar Servicios
    Web
  • Basado en el sistema de tipos del CLR
  • No entiende XSD (como un sistema de tipos)
  • No puede utilizar Session State
  • Modelo de activación inapropiado
  • Permite pasar objetos por referencia
  • No contemplado en toolkits (WSE)

41
Agenda
  • Repaso de Servicios Web XML y GXA
  • Diseñando Servicios Web XML
  • Consumo de Servicios Web XML
  • Web Services Enhancements (WSE)

42
Clientes de un Servicio Web
  • Aplicación rica (Smart Client)
  • Windows Forms
  • .NET Compact Framework
  • Office (Web Service Toolkit)
  • Aplicación Web
  • Sistema externo

43
Agenda
  • Servicios Web XML y su contexto
  • Diseño de Servicios Web XML
  • Consumo de Servicios Web XML
  • GXA y WSE

44
Dónde estamos?
  • SOAP WSDL
  • Aplicaciones básicas, y punto-a-punto
  • Facilidades comunes
  • Hágaselo vd. mismo

Naming
Management
Monitoring
Eventing
Metering
Authentication
Security
Compensation
Routing
Encryption
Reliable Delivery
Transactions
Signatures
Session/Context Mgmt.
45
Qué es GXA?
  • Global XML Web Services Architecture (GXA) es un
    framework de protocolos para Servicios Web
  • Funcionalidades a nivel de infraestructura
  • Construida sobre la base existente de XML, SOAP,
    XML Schemas y WSDL
  • GXA es un conjunto de especificaciones
  • Específicamente, no es un producto

46
Por qué GXA?
  • Reutilización a nivel de protocolo
  • Encontrar escenarios comunes implementados por
    Servicios Web
  • Generalizarlos, e proporcionar implementaciones
    robustas y optimizadas
  • Por qué especificar?
  • Alto grado de interoperabilidad
  • Aumenta la productividad, con herramientas que se
    encargan de la fontanería

47
Principios de diseño de GXA
  • Propósito general
  • Neutral con respecto al transporte y dominio de
    aplicación
  • Basado en estándares
  • Interoperabilidad entre fabricantes es crítico
  • Federado
  • Sin punto central de administración, control, o
    fallo
  • Modular

48
Especificaciones GXA (1)
  • WS-Routing (octubre 2001)
  • WS-Referral
  • Microsoft
  • WS-Inspection (noviembre 2001)
  • Microsoft, IBM
  • WS-Security (abril 2002)
  • Microsoft, IBM, VeriSign
  • WS-Attachments (junio 2002)
  • DIME (Direct Internet Message Exchange)
  • Microsoft, IBM IETF Internet Draft

49
Especificaciones GXA (2)
  • WS-Transaction (agosto 2002)
  • WS-Coordination
  • Microsoft, IBM, VeriSign
  • BPEL4WS (agosto 2002)
  • Microsoft, IBM, BEA
  • WS-Policy (diciembre 2002)
  • WS-PolicyAttachment
  • WS-PolicyAssertions
  • Microsoft, IBM, BEA, SAP

50
WS-Security
  • Identidad cómo representar un token de seguridad
  • Certificado X.509
  • Ticket Kerberos
  • Claves opacas (por ejemplo, usuario/contraseña)
  • SAML, XrML (WS-Security Profile for XML-Based
    Tokens)
  • Confidencialidad cómo encriptar mensajes SOAP
    con XML-Encrpytion
  • Integridad cómo firmar un mensaje SOAP con
    XML-Signature

51
Roadmap de seguridad
WS-Secure Conversation
WS-Federation
WS- Authorization
WS-SecurityPolicy
WS- Trust
WS- Privacy
WS-Security
SOAP
En fase de definición
Publicada
52
WS-Transactions
  • Depende de WS-Coordination y WS-Security
  • Define dos tipos de transacciones
  • Atomic Transactions
  • Corta duración
  • Basadas en el modelo 2-Phase-Commit
  • Para uso dentro de una organización
  • Business Activities
  • Larga duración

53
www.ws-i.org
  • Iniciativa para Servicios Web XML
  • Más de 100 empresas
  • Interoperabilidad entre plataformas, aplicaciones
    y lenguajes

54
Web Services Enhancements (WSE)
  • Conjunto de clases construidas encima del
    Framework de .NET
  • Implementa...
  • WS-Security
  • WS-Attachments
  • DIME
  • WS-Referral
  • WS-Routing

55
Resumen
  • Servicios Web hoy
  • Pila básica de protocolos
  • Punto-a-punto
  • Criterios de diseño de Servicios Web
  • Patrón façade (gt fachada)
  • Extensibilidad
  • Interoperabilidad
  • Tipos de procesos (larga duración, etc.)
  • Servicios Web mañana
  • GXA
  • Extremo-a-extremo

56
Ideas clave...
  • Servicios Web fachada (o façade)
  • Servicios Web débilmente acoplados
  • 3. Servicios Web en plena ebullición
  • Hoy punto-a-punto
  • Mañana extremo-a-extremo
  • Y si no estás haciendo Servicios Web,
  • empezad ya! ?

pueden ser débilmente acoplados
57
Forum de Desarrolladores Corporativos SERVICIOS
WEB XML EN .NETY cómo cambian la manera de
diseñar aplicaciones
Patrocinado por
Write a Comment
User Comments (0)
About PowerShow.com