Glosario de Windows Communication Foundation

Se definen los siguientes términos de Windows Communication Foundation (WCF).

Términos

Término Definición

dirección

Especifica la ubicación donde se reciben los mensajes. Se especifica como un identificador uniforme de recursos (URI). La parte del esquema URI nombra el mecanismo de transporte que se ha de utilizar para alcanzar la dirección, por ejemplo HTTP y TCP. La parte jerárquica del URI contiene una ubicación única cuyo formato depende del mecanismo de transporte. La dirección del extremo le permite crear direcciones únicas de extremos para cada extremo de un servicio o, bajo ciertas condiciones, compartir una dirección en los extremos.

extremo de la aplicación

Un extremo expuesto por la aplicación y que corresponde a un contrato de servicios implementado por la aplicación.

comportamiento

Un comportamiento es un componente que controla varios aspectos del tiempo de ejecución de un servicio, un extremo, una operación determinada o un cliente. Los comportamientos están agrupados en función del ámbito: los comportamientos comunes afectan globalmente a todos los extremos, los comportamientos de servicios sólo afectan a los aspectos relacionados con servicios, los comportamientos de extremos sólo afectan a las propiedades relacionadas con los extremos y los comportamientos de operaciones afectan a las operaciones determinadas.

enlace

Un enlace define cómo se comunica un extremo con el mundo. Consta de un conjunto de componentes llamados elementos de enlace que se "apilan" uno sobre el otro para crear la infraestructura de comunicaciones. Como mínimo, un enlace define el transporte (como HTTP o TCP) y la codificación utilizada (por ejemplo, de texto o binaria). Un enlace puede contener elementos de enlace que especifican detalles, por ejemplo los mecanismos de seguridad utilizados para proteger los mensajes o el patrón de mensaje utilizado por un extremo.

elemento de enlace

Un elemento de enlace representa una parte determinada del enlace, por ejemplo un transporte, una codificación, una implementación de un protocolo del nivel de infraestructura (como WS‑ReliableMessaging), o cualquier otro componente de la pila de comunicaciones.

canal

Un canal es una implementación concreta de un elemento de enlace. El enlace representa la configuración, y el canal es la implementación asociada a esa configuración. Por consiguiente, hay un canal asociado a cada elemento de enlace. Los canales se apilan uno sobre otro para crear la implementación concreta del enlace: la pila de canales.

aplicación cliente

Una aplicación cliente es un programa que intercambia mensajes con uno o más extremos. La aplicación cliente comienza creando de una instancia de un cliente de WCF y llamando a los métodos del cliente de WCF. Es importante tener en cuenta que una aplicación individual puede ser tanto un cliente como un servicio.

codificación

Permite al desarrollador mantener un control estricto sobre todos los componentes del servicio o cliente. Cualquier ajuste realizado mediante la configuración puede inspeccionarse y, si fuera necesario, puede invalidarse mediante el código. El control de una aplicación puede realizarse mediante codificación, configuración o a mediante una combinación de ambas.

configuración

La configuración tiene la ventaja de que permite a alguien que no sea el programador (por ejemplo, un administrador de redes) establecer parámetros de servicio y de cliente después de que el código se haya escrito y sin necesidad de volver a compilar. La configuración no sólo permite establecer valores como las direcciones de los extremos, sino que también proporciona un control adicional al permitir la agregación de extremos, enlaces y comportamientos. El control de una aplicación puede realizarse mediante configuración, mediante codificación o mediante una combinación de ambas.

contrato

Un contrato es una especificación de compatibilidad para el tipo determinado de contrato que es. Por ejemplo, un contrato de servicio es una especificación para un grupo de operaciones. En WCF, los contratos tienen una jerarquía que se refleja en los objetos de descripción que se encuentran en el espacio de nombres System.ServiceModel.Description. Un contrato de servicio es el ámbito de contrato más grande en WCF. Cada operación de servicio de un contrato de servicio tiene un contrato de operación, que especifica los mensajes, incluidos los de error, que la operación puede intercambiar y en qué dirección. Cada mensaje de una operación tiene un contrato de mensaje, una especificación para la estructura de la envoltura de mensajes SOAP, y cada contrato de mensaje tiene un contrato de datos, que especifica las estructuras de datos contenidas en los mensajes.

contrato de datos

Los tipos de datos que utiliza un servicio se deben describir en metadatos para permitir a otros que interoperen con el servicio. Las descripciones de los tipos de datos se conocen como el contrato de datos, y los tipos se pueden utilizar en cualquier parte de un mensaje, por ejemplo, como parámetros o tipos de valores devueltos. Si el servicio sólo utiliza tipos simples, no hay necesidad de utilizar explícitamente contratos de datos.

extremo

Un extremo es una construcción en la que se envían o reciben mensajes (o ambos). Está compuesto por una ubicación (una dirección) que define a dónde se pueden enviar mensajes, una especificación del mecanismo de comunicación (un enlace) que describe cómo se deberían enviar los mensajes y una definición de un conjunto de mensajes que se pueden enviar o recibir (o ambos) en esa ubicación (un contrato de servicio) que describe qué mensajes se pueden enviar. Un servicio de WCF se expone al mundo como una colección de extremos.

contrato de error

Un contrato de error puede estar asociado a una operación de servicio para denotar errores que se pueden devolver al llamador. Una operación puede tener cero o más errores asociados a ella. Estos errores son errores de SOAP que se modelan como excepciones en el modelo de programación. La excepción se convierte en un error de SOAP que se puede enviar a continuación al cliente.

hospedaje

Un servicio debe hospedarse en algún proceso. Un host es una aplicación que controla la duración del servicio. Los servicios pueden autohospedarse o pueden ser administrados mediante un proceso de hospedaje.

proceso de hospedaje

Un proceso de hospedaje es una aplicación diseñada para hospedar servicios. Entre ellos se incluyen Internet Information Services (IIS), Windows Activation Services (WAS) y Windows Services. En estos escenarios hospedados, el host controla la duración del servicio. Por ejemplo, mediante IIS puede configurar un directorio virtual que contenga el ensamblado del servicio y el archivo de configuración. Cuando se recibe un mensaje, IIS inicia el servicio y controla su duración.

operación de inicio

Una operación a la que se llama como la primera operación de una sesión nueva. Las operaciones que no son de inicio sólo pueden llamarse después de que se haya llamado, al menos, a una operación de inicio.

modelo de creación de instancias

Un servicio tiene un modelo de creación de instancias. Hay tres modelos de creación de instancias: "único" en el que un objeto CLR único repara todos los clientes; "por llamada", en el que un nuevo objeto CLR se crea para administrar cada llamada de cliente; y "por sesión", en la que se crea un conjunto de objetos CLR, uno para cada sesión individual. La elección de un modelo de creación de instancias depende de los requisitos de aplicación y el patrón de uso esperado del servicio.

mensaje

Un mensaje es una unidad autónoma de datos que puede constar de varias partes, incluyendo un cuerpo y encabezados.

contrato de mensaje

Un contrato de mensaje describe el formato de un mensaje. Por ejemplo, declara si los elementos del mensaje deberían ir en encabezados en lugar de en el cuerpo, qué nivel de seguridad debería aplicarse a qué elementos del mensaje, etc.

modo de seguridad de mensajes

El modo de seguridad del mensaje especifica que la seguridad se proporciona mediante la implementación de una o más de las especificaciones de seguridad. Cada mensaje contiene los mecanismos necesarios para proporcionar seguridad durante el tránsito y permitir que los receptores detecten la alteración y descifren los mensajes. En este sentido, la seguridad se encapsula dentro de cada mensaje, con lo que se proporciona una seguridad de extremo a extremo en varios saltos. Dado que la información de seguridad se convierte en parte del mensaje, también es posible incluir varios tipos de credenciales con el mensaje (denominadas notificaciones). Este enfoque también tiene la ventaja de permitir al mensaje viajar de manera segura sobre cualquier transporte, incluyendo varios transportes entre su origen y destino. La desventaja de este enfoque consiste en que emplea mecanismos criptográficos complejos, lo que afecta al rendimiento.

metadatos

Los metadatos de un servicio describen las características del servicio que tiene que comprender una entidad externa para comunicarse con el servicio. La herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) puede utilizar los metadatos para generar un cliente de WCF y la configuración complementaria que puede utilizar una aplicación para interactuar con el servicio. Los metadatos expuestos por el servicio incluyen documentos de esquema XML, que definen el contrato de datos del servicio, y documentos WSDL, que describen los métodos del servicio. Cuando se habilita, WCFG genera automáticamente los metadatos del servicio mediante la inspección del servicio y sus extremos. Para publicar metadatos desde un servicio, se ha de habilitar explícitamente el comportamiento de los metadatos.

contrato de operación

Un contrato de operación define los parámetros y el tipo de valor devuelto de una operación. Al crear una interfaz que define el contrato de servicio, se significa un contrato de operación mediante la aplicación del atributo T:System.ServiceModel.OperationContractAttribute a cada definición de método que forma parte del contrato. Las operaciones se pueden modelar para que acepten un único mensaje y devuelvan también un único mensaje, o para que acepten un conjunto de tipos y devuelvan un tipo. En el último caso, el sistema determina el formato de los mensajes que se intercambian para esa operación.

seguridad

La seguridad en WCF incluye confidencialidad (cifrado de mensajes para evitar las escuchas no autorizadas), integridad (los recursos para la detección de la alteración del mensaje), autenticación (los recursos para la validación de servidores y clientes) y autorización (el control del acceso a los recursos). Para proporcionar estas funciones, se aprovechan los mecanismos de seguridad existentes, como TLS sobre HTTP (también conocido como HTTPS) o se implementan una o varias de las numerosas especificaciones de seguridad WS-*.

servicio autohospedado

Un servicio autohospedado es aquel que se ejecuta dentro de una aplicación de proceso que creó el desarrollador. El desarrollador controla su duración, establece las propiedades del servicio, abre el servicio (que lo establece en un modo de escucha) y cierra el servicio.

servicio

Un servicio es una construcción que expone uno o más extremos, y en la que cada extremo expone una o más operaciones de servicio.

contrato de servicio

El contrato de servicio une varias operaciones relacionadas en una unidad funcional única. El contrato puede definir ajustes del nivel de servicio, como el espacio de nombres del servicio, un contrato de devolución de llamadas correspondiente y otros ajustes de este tipo. En la mayoría de los casos, el contrato se define creando una interfaz en el lenguaje de programación que prefiera y aplicando el atributo T:System.ServiceModel.ServiceContractAttribute a la interfaz. El código de servicio real se obtiene al implementar la interfaz.

operación de servicio

Una operación de servicio es un procedimiento definido en el código de un servicio que implementa la funcionalidad de una operación. Esta operación se expone a los clientes como métodos en un cliente de WCF. El método puede devolver un valor y tomar un número opcional de argumentos, o no tomar ningún argumento y no devolver ninguna respuesta. Por ejemplo, una operación que funciona como un simple "Hola" se puede utilizar para notificar acerca de la presencia de un cliente y para comenzar una serie de operaciones.

enlaces proporcionados por el sistema

WCF incluye varios enlaces proporcionados por el sistema. Éstas son colecciones de elementos de enlace optimizados para escenarios concretos. Por ejemplo, T:System.ServiceModel.WSHttpBinding está diseñado para ofrecer interoperabilidad con servicios que implementen varias especificaciones WS-*. Estos enlaces ahorran tiempo al presentar sólo las opciones que se pueden aplicar correctamente al escenario en cuestión. Si uno de estos enlaces no cumple sus requisitos, puede crear su propio enlace personalizado.

operación de terminación

Una operación a la que se llama como el último mensaje de una sesión existente. En el caso predeterminado, WCF recicla el objeto de servicio y su contexto después de que se cierre la sesión a la que se asoció el servicio.

modo de seguridad de transporte

La seguridad se puede proporcionar mediante uno de estos tres modos: modo de transporte, modo de seguridad de mensaje y transporte con modo de credencial de mensajes. El modo de seguridad de transporte especifica que los mecanismos de la capa de transporte (como HTTPS) proporcionan confidencialidad, integridad y autenticación. El uso de un transporte como HTTPS en este modo tiene la ventaja de ofrecer un mejor rendimiento. También se entiende bien debido a su predominio en Internet. La desventaja es que este tipo de seguridad se aplica por separado en cada salto en la ruta de comunicación, provocando que la comunicación sea susceptible a un ataque tipo "man in the middle".

transporte con modo de seguridad de credencial de mensajes

Este modo utiliza la capa de transporte para proporcionar la confidencialidad, autenticación e integridad de los mensajes, mientras que cada uno de los mensajes puede contener varias credenciales (notificaciones) requeridas por parte de los receptores del mensaje.

cliente de WCF

Un cliente de WCF es una construcción de aplicación de cliente que expone las operaciones de servicio como métodos (en el lenguaje de programación .NET Framework que prefiera, como Visual Basic o Visual C#). Cualquier aplicación puede hospedar a un cliente de WCF, incluso una aplicación que hospede un servicio. Por tanto, es posible crear un servicio que incluya clientes de WCF de otros servicios. Un cliente de WCF se puede generar automáticamente con la herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) y dirigiéndolo hacia un servicio en ejecución que publique metadatos.

WS-*

Modo abreviado para el creciente conjunto de especificaciones de servicios web (WS) que se implementan en WCF, tales como WS-Security, WS-ReliableMessaging, etc.