Introducción a WCF - Parte 2

por Maxi Guillén - Daniel Laco  9. febrero 2007

 Introducción a Windows Communication Foundation PARTE 2

Algunos Conceptos de WCF

Servicio: es un programa que expone sus capacidades a través de una colección de Endpoints y su descripción.

Descripciones del servicio: se publican utilizando WSDL, XSD, WS-Policy y WS-MetaDataExchange.

Cliente: es un programa que intercambia mensajes con uno o más Endpoints y también puede exponer sus propios Endpoints. Un cliente debe conocer la Dirección, el Contrato y el Binding de un servicio para poder comunicarse con el.

Mensaje: representa unidad de intercambio de datos entre un Cliente y un Servicio.

 

Podemos encontrar los siguientes patrones:

  • Simplex: mensajes de una sola vía donde no se espera respuesta alguna.
  • Duplex: mensajes de dos vías de modo asíncrono.
  • Request-Reply: mensajes de dos vías de modo síncrono, es decir se envía el mensaje y se aguarda por la respuesta.

 

 

 

Patrones de mensajes

 

Intermediario: la comunicación entre un cliente y un servicio puede pasar a través de otro programa, denominado servicio intermediario, que debería ser desconocido para el cliente. Este servicio no consume mensajes y es simplemente un punto por el que atraviesan los mensajes en su viaje desde el cliente hasta el servicio de destino. Las Tareas útiles que pueden realizar son:

 

  • Gateway: para hacer de puente entre redes.
  • Ruteo: permite dirigir un mensaje a uno de varios servicios de destino.
  • Firewall: puede prevenir que ciertos mensajes lleguen a un servicio.
  • Monitoreo de actividad.

 

Ejemplo de intermediario

 

La Estructura de un Servicio

 

Un servicio se accede a travéz de un Endpoint (Punto de Conexión) que es el medio a través del cual interactúa con su entorno. Esá¡ formado por una dirección, un enlace y un contrato, lo que se llama habitualmente el ABC (Address, Binding, Contract) del servicio.

  • Address: es la dirección de red del Endpoint. (URI: http://localhost:8080/CalculadoraService/)

o URI (Unifrom Resource Identifier): es una forma de especificar una la dirección de un recurso, esá¡ formada por un protocolo (Http, net.TCP, net.Pipe, net.msmq) seguido del nombre del host, puerto y path: Protoclo://Host [:Puerto][/path/[.../]]

  • Binding: especifica como un servicio se comunica con el entorno. Permite crear un stack de características para el canal de comunicaciones acorde a los requerimientos del servicio (El canal no se abre hasta que el servicio reciba el primer mensaje). Permite definir:

o El medio de transporte (HTTP, TCP, MSMQ, etc)

o La codificación de los datos (texto, MTOM, binario)

o La seguridad requerida (HTTP, SOAP, Windows NTLM/Kerberos, user/pass, etc)

o La confiabilidad de las comunicaciones (sesión)

o El patrón de mensajes (Simplex, Duplex o Request-Reply)

o La interoperabilidad deseada (Basic WS 1° generacion, WS-*, .Net, MSMQ)

 

 

Características de un canal de comunicaciones

  • Contract: es una colección de operaciones, especifica lo que el Endpoint puede comunicar al entorno. Los tipos de contratos que podemos especificar son:

o Service Contract: es una interfaz que implementa un servicio (Se publica utilizando WSDL). El Operation Contract son los métodos que forman parte de la interfaz, y que podrán ser accedidos por los clientes del servicio.

o Data Contract: define las clases y estructuras complejas que puede retornar o recibir un servicio. Es implícito si el tipo de dato es serializable, es decir el tipo de dato se puede pasar directamente sin declararlo en el contrato. Es explícito en caso contrario y se debe especificar en un data contract (Serializacion/descerializacion) (Se publica utilizando un XML Schema). El Member Contract son los atributos o propiedades del objeto que forma parte de un data contract y podrán ser serializados.

o Message Contract: especifica la estructura, cabecera y cuerpo, del mensaje SOAP. (Message Header y MessageBody). Nos permite definir si un atributo de una clase va viaja en la cabecera o en el cuerpo de un mensaje.

Los tipos de bindings disponibles:

 

Binding

Intero-perabilidad

Seguridad

(Default)

Sesión

Transacción

(Default)

Duplex

Codificación

BasicHttpBinding

Basic Profile 1.1

(Ninguno),

Transporte,

Mensaje, Mixto

No

No

n/a

Texto, (MTOM)

WSHttpBinding

WS

Transporte,

(Mensaje),

Mixto

Si

(No)

Si

n/a

Texto, (MTOM)

WSDualHttpBinding

WS

(Mensaje),

Ninguno

Si

(No)

Si

Si

Texto, (MTOM)

WSFederationHttpBinding

WS - Federation

(Mensaje),

Mixto,

Ninguno

 

(No)

Si

No

Texto, (MTOM)

NetTcpBinding

.Net

(Transporte),

Mensaje,

Ninguno,Mixto

SI

(No)

Si

Si

Binaria

NetNamedPipeBinding

.Net

(Transporte),

Mensaje,

Ninguno,Ambos

Si

(No)

Si

Si

Binaria

NetMsmqBinding

.Net

Ninguno,(Transporte)

No

(No)

Si

No

-

NetPeerTcpBinding

Peer

Mensaje,

(Transporte),

Ambos

No

(No)

Si

-

MsmqIntegrationBinding

MSMQ

(Transporte)

No

(No)

Si

n/a

-

Tags:

WCF

Agregar comentario

  Country flag

biuquote
  • Comentario
  • Vista previa
Loading

Acerca de los Autores

Este es el blog del equipo de VEMN SA 
Presentaremos temas que nos parezcan de interés sobre tecnología .NET, Procesos y Metodologías y todo aquello relacionado con el proceso de desarrollo de Software

Month List

BlogRoll

Download OPML file OPML