Compartir vía


Arquitectura de Windows Communication Foundation

En el gráfico siguiente se muestran las capas principales de la arquitectura de Windows Communication Foundation (WCF).

Arquitectura de WCF

La arquitectura de WCF

Contratos y descripciones

Los contratos definen varios aspectos del sistema de mensajes. El contrato de datos describe todos los parámetros que componen todos los mensajes que un servicio puede crear o consumir. Los parámetros de mensaje se definen mediante documentos del lenguaje de definición de esquemas XML (XSD), lo que permite que cualquier sistema que comprenda XML procese los documentos. El contrato de mensajes define partes de mensajes específicas mediante protocolos SOAP y permite un control más preciso sobre las partes del mensaje, cuando la interoperabilidad exige dicha precisión. El contrato de servicio especifica las firmas de método reales del servicio y se distribuye como una interfaz en uno de los lenguajes de programación admitidos, como Visual Basic o Visual C#.

Las directivas y enlaces estipulan las condiciones exigidas para comunicarse con un servicio. Por ejemplo, el enlace debe especificar (como mínimo) el transporte usado (por ejemplo, HTTP o TCP) y una codificación. Las directivas incluyen requisitos de seguridad y otras condiciones que deben cumplirse para comunicarse con un servicio.

Tiempo de ejecución de servicio

El nivel de tiempo de ejecución del servicio contiene los comportamientos que se producen solo durante el funcionamiento real del servicio, es decir, los comportamientos en tiempo de ejecución del servicio. La limitación controla cuántos mensajes se procesan, lo que puede variar si la demanda del servicio crece a un límite preestablecido. Un comportamiento de error especifica lo que ocurre cuando se produce un error interno en el servicio, por ejemplo, controlando qué información se comunica al cliente. (Demasiada información puede dar a un usuario malintencionado una ventaja en el montaje de un ataque). El comportamiento de los metadatos rige cómo y si los metadatos están disponibles para el mundo exterior. El comportamiento de la instancia especifica cuántas instancias del servicio se pueden ejecutar (por ejemplo, un singleton especifica solo una instancia para procesar todos los mensajes). El comportamiento de las transacciones habilita la reversión de las operaciones de transacción si se produce un error. El comportamiento de distribución es el control de cómo la infraestructura de WCF procesa un mensaje.

La extensibilidad permite personalizar los procesos en tiempo de ejecución. Por ejemplo, la inspección de mensajes es la instalación para inspeccionar partes de un mensaje y el filtrado de parámetros permite que se produzcan acciones preestablecidas en función de los filtros que actúan en los encabezados de mensaje.

Mensajería

La capa de mensajería se compone de canales. Un canal es un componente que procesa un mensaje de alguna manera, por ejemplo, mediante la autenticación de un mensaje. Un conjunto de canales también se conoce como pila de canales. Los canales funcionan en los mensajes y encabezados del mensaje. Esto es diferente de la capa de ejecución de servicio, que se ocupa principalmente del procesamiento del contenido de los cuerpos del mensaje.

Hay dos tipos de canales: canales de transporte y canales de protocolo.

Los canales de transporte leen y escriben mensajes de la red (o algún otro punto de comunicación con el mundo exterior). Algunos transportes usan un codificador para convertir mensajes (que se representan como conjuntos de información XML) a y desde la representación de flujo de bytes usada por la red. Algunos ejemplos de transportes son HTTP, canalizaciones con nombre, TCP y MSMQ. Algunos ejemplos de codificaciones son XML y binario optimizado.

Los canales de protocolo implementan protocolos de procesamiento de mensajes, a menudo leyendo o escribiendo encabezados adicionales en el mensaje. Algunos ejemplos de estos protocolos son WS-Security y WS-Reliability.

La capa de mensajería ilustra los posibles formatos y patrones de intercambio de los datos. WS-Security es una implementación de la especificación de WS-Security que habilita la seguridad en la capa de mensajes. El canal de mensajería WS-Reliable habilita la garantía de entrega de mensajes. Los codificadores presentan una variedad de codificaciones que se pueden usar para satisfacer las necesidades del mensaje. El canal HTTP especifica que el protocolo de transporte de hipertexto se usa para la entrega de mensajes. El canal TCP especifica de forma similar el protocolo TCP. El canal De flujo de transacciones rige los patrones de mensajes transaccionados. El canal de la canalización con nombre habilita la comunicación entre procesos. El canal MSMQ habilita la interoperación con aplicaciones MSMQ.

Hospedaje y activación

En su forma final, un servicio es un programa. Al igual que otros programas, un servicio debe ejecutarse en un archivo ejecutable. Esto se conoce como un servicio autohospedado .

Los servicios también se pueden hospedar o ejecutar en un archivo ejecutable administrado por un agente externo, como IIS o servicio de activación de Windows (WAS). WAS permite que las aplicaciones WCF se activen automáticamente cuando se implementan en un equipo que ejecuta WAS. Los servicios también se pueden ejecutar manualmente como ejecutables (archivos.exe). Un servicio también se puede ejecutar automáticamente como servicio de Windows. Los componentes COM+ también se pueden hospedar como servicios WCF.

Consulte también