jueves, 10 de julio de 2008

[WCF] El ABC de WCF

Bueno... segundo post de la serie de WCF, donde sigo con la introducción.
En el primer post vimos que WCF era la nueva api de comunicaciones del Framework 3, orientada a servicios y con vocación de convertirse en la API de comunicaciones definitiva.

Bueno, desarrollar en WCF, consiste básicamente en hacer servidores que exponen servicios y clientes que los consumen. La relación entre un cliente y un servicio es un fiel reflejo de la vida real... veamos, podemos ver un cliente como alguien muy enamorado de la chica de sus sueños. Al final nuestro enamorado se decide lanzar a la dificil tarea de conquistar a su dama.... aaahhh.... el romanticismo....


Ante tan árdua tarea, seguro que te van a asaltar las siguientes dudas:
  1. Donde vive?
  2. Cómo hablarle?? Prefiere a los románticos, a los que van de duros o tiene debilidad por los tímidos y calladitos?
  3. Qué decirle?? Probablemente la clave entre el éxito y el fracaso está en este punto.... Quien no ha estropeado un largo trabajo de conquista con una frase que, digamos... no tocaba.
Pues como si un Don Juan cualquiera se tratase, esas tres dudas, el Donde, el Cómo y el Qué, son los tres datos que todo cliente necesita para poder consumir un servicio:
  1. Donde está? Es decir, en que URI se localiza?
  2. Cómo hablarle? Es decir, que protocolo usar? Qué codificación de datos?
  3. Qué decirle? Es decir, qué métodos se pueden invocar del servicio? Cual es su interfaz?
A las respuestas a esas tres cuestiones (fundamentales), se las conoce como el ABC de WCF, no sólo porque sean realmente lo básico (que lo son) de WCF si no porque:
  1. Donde está un servició es su dirección. En inglés Address.
  2. Como hablarle es el enlace a usar. En inglés Binding.
  3. Qué  le podemos decir es el contrato  del servicio. En inglés Contract (esa era fácil).
Address, BInding y Contract, ABC, esos tres puntos son los que tenemos que tener siempre en mente. De hecho la suma de los tres es lo que se llama un Endpoint.
En WCF los servicios pueden tener uno o varios endpoints, y los clientes cuando quieren consumir un servicio, pueden escojer a través de que endpoint quieren hacerlo.

Parad atención al tema de que un servicio puede tener más de un endpoint... por ejemplo, podría tener dos endpoints con el mismo contrato pero con direcciones y bindings distintos... Un binding podria ser acceder al servicio a través de http usando soap y el otro binding podria ser usando msmq con codificación binaria... El servicio es el mismo, solo cambia el protocolo y la codificación de datos a usar (y la URI de nuestro servicio). Cuando el cliente quiere consumir este servicio decide si quiere (generalmente si puede xD) hacerlo usando http y soap, o bien usa msmq y datos binarios. Pero de nuevo el cliente es el mismo.


Y cuando digo mismo, quiero decir eso: mismo. El mismo código. El mismo programa. La misma clase.


Esa es la clave de WCF. Por eso se dice que unifica a todas las APIs anteriores.


En la próxima entrega... empezaremos ya a ver código de como hacer un servicio en WCF!


2 comentarios:

Nicolas dijo...

jej en si. espero el articulo que le sigue a este :p

segui compartiendo que es importante y ademas es entendible!

gracias nuevamente!

epna dijo...

Muy buenas!

Me encanta que te guste la serie dedicada a WCF! Para esto escribo el blog!!!

Un abrazo y gracias por leerme ;-)