windows communication foundation (wcf)
TRANSCRIPT
Desarrollo de Aplicaciones en Entorno .Net
El apasionante viaje al WCF.Windows Communication Foundation
Universidad Pontificia de Salamanca
Máster en Ingeniería del SoftwareCurso 2011/12
Desarrollo de Aplicaciones en Entorno .Net
2
Dos hombres y un Destino.
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Desarrollo de Aplicaciones en Entorno .Net
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
3
¿Quién Soy?
Jose Javier Gómez Méndez
Momento Pregunta …
¿Alguien sabe que es WCF?
Desarrollo de Aplicaciones en Entorno .Net
52011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Nube de Tags.
Desarrollo de Aplicaciones en Entorno .Net
62011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Agenda.
• Antes y Ahora.
• ¿Qué es?
• Fundamentos.
• Arquitectura.
• Conclusiones. Desarrollo de Aplicaciones en Entorno .Net
72011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Agenda.
• Antes y Ahora.
Desarrollo de Aplicaciones en Entorno .Net
82011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Antes y ahora
Desarrollo de Aplicaciones en Entorno .Net
92011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Antes y ahora
Desarrollo de Aplicaciones en Entorno .Net
102011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Evolución
Desarrollo de Aplicaciones en Entorno .Net
11
1980s1980s
2000s2000s
1990s1990s
PolimorfismoPolimorfismoEncapsulamientoEncapsulamientoSub ClasesSub Clases
Basado en ComponentesBasado en Componentes
Orientado a ObjetosOrientado a Objetos
Basado en InterfacesBasado en InterfacesCarga DinámicaCarga DinámicaRuntime de MetaDatosRuntime de MetaDatos
Orientado a ServiciosOrientado a ServiciosBasado en mensajesBasado en mensajesSchema+ContractSchema+ContractBinding via PolicyBinding via Policy
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Agenda.
• ¿Qué es?
Desarrollo de Aplicaciones en Entorno .Net
122011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – ¿Que es?• Fue creado con el fin de permitir una programación rápida de sistemas distribuidos y el
desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (también conocido como SOA), con una API simple.
• Integrado en el Framework de .NET desde la versión 3.0
• Permite enviar datos como mensajes asincrónicos de un extremo de servicio a otro.
• Un extremo puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación.
• El otro extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio.
• En RESUMEN, WCF fue diseñado para ofrecer un enfoque manejable para la creación de servicios web y clientes de servicios web.
Desarrollo de Aplicaciones en Entorno .Net
132011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
Agenda.
• Fundamentos.
Desarrollo de Aplicaciones en Entorno .Net
142011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Fundamentos I…
Desarrollo de Aplicaciones en Entorno .Net
152011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
• Mensajería y extremos– Se basa en la noción de comunicación basada en mensajes, y cualquier cosa que se pueda
modelar como un mensaje.
– El modelo distingue entre clientes, que son aplicaciones que inician la comunicación y servicios, que son aplicaciones que esperan a que los clientes se comuniquen con ellos y respondan a esa comunicación.
– Los mensajes se envían entre extremos (Endpoint).
– Un extremo describe de una manera basada en estándar dónde se deberían enviar los mensajes, cómo se deberían enviar y qué aspecto deberían tener los mensajes.
– Un servicio puede exponer esta información como metadatos que los clientes pueden procesar para generar clientes WCF adecuados y pilas de comunicación.
WCF – Fundamentos II…
Desarrollo de Aplicaciones en Entorno .Net
162011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
• Protocolos de comunicaciones– Un elemento requerido de la pila de la comunicación es el protocolo de transporte.
• Comunes: HTTP y TCP • Otros: Message Queue Server (MSMQ)
– Otro elemento necesario en la pila de comunicación es la codificación que especifica cómo se da formato a cualquier mensaje determinado. WCF proporciona las siguientes codificaciones:
• Codificación de texto.• Codificación Mecanismo de optimización de transmisión de mensajes (MTOM). • Codificación binaria para una transferencia eficaz.
• Patrones de mensajes– WCF admite varios patrones de mensajería, incluida la comunicación de solicitud-
respuesta unidireccional y dúplex.
WCF – Fundamentos III…
Desarrollo de Aplicaciones en Entorno .Net
172011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
• ENDPOINT– Se define como un portal para la comunicación con todo el mundo.
– Es un recurso en la red, al cual pueden ser enviados los mensajes.
– Consiste en 3 componentes (el “ABC” de un endpoint):• Addres (dirrección).• Binding (Canal).• Contract (Contrato).
WCF – Fundamentos IV…
Desarrollo de Aplicaciones en Entorno .Net
182011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
• ADDRES – Dirección de la red, donde está alojado el “Endpoint” del servicio.
• BINDING – Define el canal y los parámetros de comunicación.– Consta de:
• Protocolos: TCP, HTTP,MSMQ• Codificación: Texto o binario.• Seguridad: SSL, Seguridad SOAP• Referencia al servicio a exponer
• CONTRACT – Interfaz (Contrato del Servicio)– Define las capacidades ofrecidas por el “Endpoint”– Tipos:
• Contrato de Servicios.• Contrato de Operación.• Contrato de Mensaje.• Contrato de Error.
Agenda.
• Arquitectura.
Desarrollo de Aplicaciones en Entorno .Net
192011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Arquitectura I…
Desarrollo de Aplicaciones en Entorno .Net
202011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Arquitectura II…
Desarrollo de Aplicaciones en Entorno .Net
21
• CONTRATOS– Definen varios aspectos del sistema de mensajes y lo que puede hacer un servicio.– Describe cada parámetro que constituye cada mensaje que un servicio puede crear o utilizar. – Existen 3 tipos de contratos:
• Contrato de datos
• Contrato de mensaje
• Contrato de servicio
– Las directivas y enlaces estipulan las condiciones exigidas para comunicarse con un servicio.
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Arquitectura III…
Desarrollo de Aplicaciones en Entorno .Net
22
• Tiempo de ejecución y servicios
– Permite ejecutar y cargar los servicios.
– Instancia los nuevos servicios.
– Contiene los comportamientos que sólo se producen durante la operación actual del servicio, es decir, los comportamientos en tiempo de ejecución del servicio.
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Arquitectura IV…
Desarrollo de Aplicaciones en Entorno .Net
23
• Mensajería
– Compuesta por canales.
– Un canal es un componente que procesa un mensaje de alguna manera, por ejemplo, autenticando un mensaje.
– Existen 2 tipos de canales:• Canales de transporte -> Leen y escriben mensajes de la red
• Canales de protocolo -> Implementan protocolos de procesamiento de mensajes
– La capa de la mensajería muestra los posibles formatos y modelos de intercambio de los datos.
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Arquitectura V…
Desarrollo de Aplicaciones en Entorno .Net
24
• Activación y Alojamiento
– En su forma final, un servicio es un programa.
– Como otros programas, un servicio se debe ejecutar en un ejecutable. Esto se conoce como un servicio con host propio.
– También se pueden hospedar o ejecutar en un ejecutable administrado por un agente externo, como IIS .
– Los servicios también se pueden ejecutar manualmente como ejecutables (archivos .exe)
– También se puede ejecutar automáticamente como un servicio de Windows.
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Conclusiones…
Desarrollo de Aplicaciones en Entorno .Net
25
• Permite separar claramente el desarrollo de lo que un servicio debe hacer, de las técnicas de comunicaciones, y del lugar donde se hospeda.
• Se puede desarrollar sin tener que estar pensando en las capas de transporte y como se realizará la comunicación.
• Proporciona un único modelo de programación tipado de aplicaciones distribuidas basadas en servicios.
• Encapsula y simplifica el desarrollo de aplicaciones soportadas por las diversas tecnologías distribuidas.
• Permite el desarrollo de aplicaciones .NET capaces de interoperar con aplicaciones desarrolladas con otras tecnologías (J2EE, SAP).
2011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
WCF – Bibliografía…
Desarrollo de Aplicaciones en Entorno .Net
262011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid
• Wikipedia.
• Microsoft.
• http://msdn.microsoft.com
• www.google.com
• www.bing.com
• http://speakingin.net
• Silverlight and WCF for Dummies
• http://blogs.southworks.net
• http://www.slideshare.net
• http://yolopuedohacer.blogspot.com
WCF – Gracias…
Desarrollo de Aplicaciones en Entorno .Net
272011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid