WCF - Arquitectura

WCF tiene una arquitectura en capas que ofrece un amplio soporte para desarrollar varias aplicaciones distribuidas. La arquitectura se explica a continuación en detalle.

Contratos

La capa de contratos está justo al lado de la capa de aplicación y contiene información similar a la de un contrato del mundo real que especifica la operación de un servicio y el tipo de información accesible que generará. Los contratos son básicamente de cuatro tipos que se describen brevemente a continuación:

  • Service contract - Este contrato proporciona información al cliente y al mundo exterior sobre las ofertas del punto final y los protocolos que se utilizarán en el proceso de comunicación.

  • Data contract- Los datos intercambiados por un servicio se definen mediante un contrato de datos. Tanto el cliente como el servicio deben estar de acuerdo con el contrato de datos.

  • Message contract- Un contrato de datos está controlado por un contrato de mensajes. Principalmente realiza la personalización del tipo de formato de los parámetros del mensaje SOAP. Aquí, debe mencionarse que WCF emplea el formato SOAP con fines de comunicación. SOAP significa Protocolo simple de acceso a objetos.

  • Policy and Binding- Existen ciertas condiciones previas para la comunicación con un servicio, y dichas condiciones están definidas por la política y el contrato vinculante. Un cliente debe seguir este contrato.

Tiempo de ejecución del servicio

La capa de tiempo de ejecución del servicio está justo debajo de la capa de contratos. Especifica los diversos comportamientos del servicio que se producen durante el tiempo de ejecución. Hay muchos tipos de comportamientos que pueden someterse a configuración y entrar en el tiempo de ejecución del servicio.

  • Throttling Behavior - Gestiona el número de mensajes procesados.

  • Error Behavior - Define el resultado de cualquier ocurrencia de error de servicio interno.

  • Metadata Behavior - Especifica la disponibilidad de metadatos para el mundo exterior.

  • Instance Behavior - Define la cantidad de instancias que deben crearse para que estén disponibles para el cliente.

  • Transaction Behavior - Permite un cambio en el estado de la transacción en caso de cualquier falla.

  • Dispatch Behavior - Controla la forma en que la infraestructura de WCF procesa un mensaje.

  • Concurrency Behavior - Controla las funciones que se ejecutan en paralelo durante una comunicación cliente-servidor.

  • Parameter Filtering - Presenta el proceso de validación de parámetros a un método antes de que sea invocado.

Mensajería

Esta capa, compuesta por varios canales, se ocupa principalmente del contenido del mensaje que se comunicará entre dos puntos finales. Un conjunto de canales forma una pila de canales y los dos tipos principales de canales que componen la pila de canales son los siguientes:

  • Transport Channels - Estos canales están presentes en la parte inferior de una pila y son responsables de enviar y recibir mensajes mediante protocolos de transporte como HTTP, TCP, Peer-to-Peer, Named Pipes y MSMQ.

  • Protocol Channels - Presentes en la parte superior de una pila, estos canales, también conocidos como canales en capas, implementan protocolos a nivel de cable modificando los mensajes.

Activación y alojamiento

La última capa de la arquitectura WCF es el lugar donde los servicios se alojan realmente o se pueden ejecutar para que el cliente acceda fácilmente. Esto se hace mediante varios mecanismos que se describen brevemente a continuación.

  • IIS- IIS son las siglas de Internet Information Service. Ofrece una gran cantidad de ventajas al utilizar el protocolo HTTP por parte de un servicio. Aquí, no es necesario tener el código de host para activar el código de servicio; en cambio, el código de servicio se activa automáticamente.

  • Windows Activation Service- Esto se conoce popularmente como WAS y viene con IIS 7.0. Tanto la comunicación basada en HTTP como no HTTP es posible aquí mediante el uso de protocolos TCP o Namedpipe.

  • Self-hosting- Este es un mecanismo mediante el cual un servicio WCF se autohospeda como una aplicación de consola. Este mecanismo ofrece una flexibilidad asombrosa en términos de elegir los protocolos deseados y establecer su propio esquema de direccionamiento.

  • Windows Service - Alojar un servicio WCF con este mecanismo es ventajoso, ya que los servicios permanecen activados y accesibles para el cliente debido a que no hay activación en tiempo de ejecución.