jueves, 21 de mayo de 2015

Proyecto Kinect: uso de Windows Communication Foundation (WCF)

WCF es un conjunto de librerías que provee Microsoft en el framework .NET para la construcción de aplicaciones orientadas a servicios.

Su objetivo básico es el de unificar las comunicaciones. No importa que nuestra aplicación distribuida se comunique a través de TCP en unos servicios, en otros en SOAP y en otros en REST, WCF da soporte a los anteriores protocolos, permitiendo que el código de la aplicación desarrollada sea independiente del protocolo que se vaya a utilizar.

WCF consigue dicha independencia realizando una separación entre operaciones y datos. Establece un contrato a través de una interfaz, y ésta a su vez será implementada por una clase.

El servicio se compone a grandes rasgos de:
  • Contrato de servicio (ServiceContract): expone una operación que nuestro servicio web es capaz de ejecutar. Se corresponde con una interfaz.
  • Contrato de operación (OperationContract): expone el método que va a ser incluido en el ServiceContract y que será ofrecido al exterior para su uso por parte de los clientes.
  • Contrato de datos (DataContract): implementa un tipo de dato que el servicio web será capaz de manejar. Generalmente, será el tipo de dato que manejará el contrato de servicio.
  • Datos de miembro (DataMember): es el atributo que será enviado al cliente como parte del DataContract. No se enviarán los atributos que no tengan esta anotación.
  • Implementación del servicio: implementará la interfaz correspondiente al contrato de servicio, haciendo uso del contrato de datos para intercambiar la información.
Un ejemplo de las partes en que se compone WCF viene expuesto en el siguiente esquema:

Esquema de relaciones entre los componentes de WCF
En el esquema anterior se puede ver el contrato de servicio (ServiceContract) que contiene la interfaz (IServiceContract) con todos los contratos de operación (OperationContract). Dicha interfaz es implementada, y a su vez, hace uso del contrato de datos (DataContract). En el ejemplo, el tipo de dato es Paciente que es enviado para uso de las OperationContract.

El uso de WCF en este proyecto y no de otra tecnología de servicios se debe a la facilidad e independencia con la que trabaja a la hora de realizar el despliegue de servicios web. Dicho lo cual en el esquema anterior es posible ver con un simple golpe de vista las relaciones existentes entre los componentes de WCF.

En el siguiente post hablaré de Windows Presentation Foundation (WPF).

¡Saludos!

Álvaro Alcolea

No hay comentarios:

Publicar un comentario

Añade un comentario