Introducción a Windows Communication Foundation
PARTE 3
Comportamiento de los servicios en tiempo de ejecución
(Service Behavior)
Representa las distintas características de ejecución del servicio y se especifica como parámetros del contrato, en archivos de configuración o mediante la codificación. Permite manejo de errores, diferentes formas de instanciación y manejo de concurrencia entre otras particularidades.
- Instanciación: determina como se instancian las clases que implementan un contrato.
o Singleton: una instancia atiende a todos los clientes.
o Por llamada: se crea una instancia de clase por cada mensaje de petición y luego se destruye.
o Sesión privada: se crea una instancia de clase por cada solicitud de un cliente.
o Sesión compartida: idem anterior pero los clientes pueden compartir una instancia.
- Concurrencia: como se relacionan las instancias con los Threads.
o Simple: especifica que el código del objeto servicio no puede ser ejecuto por más de un thread al mismo tiempo.
o Múltiple: especifica que el código del objeto servicio puede ser ejecutado por múltiples threads al mismo tiempo por lo que se deben establecer mecanismos de exclusión mutua.
o Reentrante:
- Throlling: define condiciones de performance del servicio.
- Manejo de Errores: los errores pueden ser procesados por el programador o por el framework. También se puede reportar errores al cliente.
- Metadata: establece la publicación de los metadatos que brindan la descripción del servicio.
- Tiempo de vida: un servicio puede controlar el tiempo de vida de las sesiones de un cliente, especificando las operaciones de inicio y fin de sesión.
- Seguridad: establece la confidencialidad e integridad de los mensajes, autenticación, autorización, auditoría y detección de reintentos.
- Transacciones: el programador especifica si un servicio aceptará transacciones y el cliente controla el alcance y el tiempo de vida de una transacción.
Descripción del servicio
Un servicio puede informar al entorno sus capacidades y los requerimientos necesarios para poder interactuar con él y utiliza las siguientes especificaciones:
- Web Services Description Language (WSDL): formato que describe lo que puede hacer el servicio, como accederlo y donde se ubica.
- XML Schema (XSD): formato que describe estructuras complejas que se pasan en los mensajes.
- WS-Policy: formato usado para describir las políticas del servicio. (Seguridad, Sesión, Disponibilidad)
- WS-MetaDataExchange (o WS-MEX): protocolo de acceso para solicitar la descripción del servicio.
Otras características
En esta parte enumeramos rápidamente algunos otros puntos de interés como ser Seguridad, Administración ,etc.
Lo estándares de Web Service soportados son:
- XML, XSD, XPath, SOAP, WSDL.
- WS-* architecture: WS-Addressing, WS-Policy, WS-Security, WS-Trust, WS-SecureConversation, WS-ReliableMessaging, WS-AtomicTransaction, WS-Coordination, WS-Policy, and MTOM.
Seguridad:
- Autenticación disponible:
o Usuario anónimo
o Credenciales
o Certificados (X.509 certificates)
o Windows (Kerberos and NTLM)
o User/Pass personalizados
· Confidencialidad de los mensajes:
o SSL
Administración y diagnóstico de servicios:
- End-to-end tracing: crea un registro de las actividades de los programas de WCF.
- Messaging logging: registra los mensajes enviados y recibidos.
- SvcTraceViewer: es una herramienta que incorpora el SDK 3.0 que permite revisar el End-to-end tracing y el Message logging.
- Windows Management Instrumentation: permite monitorear y controlar los programas de WCF en tiempo de ejecución.
- Windows Performance Counters: permite obtener estadísticas del comportamiento de los programas de WCF.
- SvcConfigEditor: es una herramienta que brinda una interfaz gráfica para editar archivos de configuración.

Service Configuration Editor