windows communication foundation (wcf)

27
Desarrollo de Aplicaciones en Entorno .Net El apasionante viaje al WCF. Windows Communication Foundation Universidad Pontificia de Salamanca Máster en Ingeniería del Software Curso 2011/12

Upload: juan-carlos-perez-pardo

Post on 12-Jun-2015

1.855 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Windows Communication Foundation (WCF)

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

Page 2: Windows Communication Foundation (WCF)

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

Page 3: Windows Communication Foundation (WCF)

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

Page 4: Windows Communication Foundation (WCF)

¿Quién Soy?

Juan Carlos Pé[email protected]/perezpardojc

www.linkedin.com/in/jcperezdoteu

Page 5: Windows Communication Foundation (WCF)

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

Page 6: Windows Communication Foundation (WCF)

Nube de Tags.

Desarrollo de Aplicaciones en Entorno .Net

62011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 7: Windows Communication Foundation (WCF)

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

Page 8: Windows Communication Foundation (WCF)

Agenda.

• Antes y Ahora.

Desarrollo de Aplicaciones en Entorno .Net

82011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 9: Windows Communication Foundation (WCF)

WCF – Antes y ahora

Desarrollo de Aplicaciones en Entorno .Net

92011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 10: Windows Communication Foundation (WCF)

WCF – Antes y ahora

Desarrollo de Aplicaciones en Entorno .Net

102011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 11: Windows Communication Foundation (WCF)

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

Page 12: Windows Communication Foundation (WCF)

Agenda.

• ¿Qué es?

Desarrollo de Aplicaciones en Entorno .Net

122011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 13: Windows Communication Foundation (WCF)

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

Page 14: Windows Communication Foundation (WCF)

Agenda.

• Fundamentos.

Desarrollo de Aplicaciones en Entorno .Net

142011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 15: Windows Communication Foundation (WCF)

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.

Page 16: Windows Communication Foundation (WCF)

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.

Page 17: Windows Communication Foundation (WCF)

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

Page 18: Windows Communication Foundation (WCF)

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.

Page 19: Windows Communication Foundation (WCF)

Agenda.

• Arquitectura.

Desarrollo de Aplicaciones en Entorno .Net

192011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 20: Windows Communication Foundation (WCF)

WCF – Arquitectura I…

Desarrollo de Aplicaciones en Entorno .Net

202011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid

Page 21: Windows Communication Foundation (WCF)

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

Page 22: Windows Communication Foundation (WCF)

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

Page 23: Windows Communication Foundation (WCF)

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

Page 24: Windows Communication Foundation (WCF)

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

Page 25: Windows Communication Foundation (WCF)

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

Page 26: Windows Communication Foundation (WCF)

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

Page 27: Windows Communication Foundation (WCF)

WCF – Gracias…

Desarrollo de Aplicaciones en Entorno .Net

272011,José Javier Gómez – Juan Carlos PérezUniversidad Pontificia de Salamanca en Madrid