viernes, 12 de abril de 2013

WCF - Windows Communication Foundation

Windows Communication Foundation  es un marco de trabajo para aplicaciones orientadas a servicios. WCF es un producto Microsoft  que se incluye en el .NET Framework desde la versión 3.0. Está diseñado bajo un modelo unificado de programación y tiene por objetivo que los desarrollares puedan trabajar con distintos tipos de aplicaciones distribuidas sin tener que aprender distintos tipos de programación. Todo ello,  es posible gracias a que WCF tiene una arquitectura orienta a servicios (SOA), la cual logra unificar varios modelos de comunicación disponibles en versiones anteriores de .NET (Servicios web, DCOM+, Remoting, MSMQ, ASMX, WSE).  Asimismo, podemos agregar que WCF es un conjunto de librerías que provee el .NET Framework para la construcción de aplicaciones orientadas a servicios.



Tecnologías que abarca WCF



Características de WCF
WCF está compuesto por:
Clientes: Aplicaciones que inician la comunicación.
Servicios: Aplicaciones que esperan los mensajes de los clientes y responden a los mismos. Estos mensajes son enviados entre endpoints (lugar donde un mensaje es enviado o recibido).

Un servicio expone uno o más application endpoints y un cliente genera un endpoint compatible con uno de los endpoints del servicio dado.Esta combinacón entre servicio y cliente compatible conforman un communication stack.
Para la creación de un servicio se deben de seguir 5 pasos:
  1. Definir el contrato.
  2. Implementar el contrato.
  3. Configurar el servicio.
  4. Diseñar una aplicación hosting del servicio.
  5. Diseñar una aplicación cliente del servicio.



Ventajas de WCF
  •  Facilidad de creación de servicios web interoperables y aplicaciones que hagan uso de los mismos.
  •  Encapsula y simplifica el desarrollo de aplicaciones soportadas por las diversas tecnologías distribuidas.
  •  Permite el desarrollo de aplicaciones .NET capaces de interoperar con aplicaciones desarrolladas con otras tecnologías (J2EE, SAP).
  •  Promueve bajo acoplamiento entre las aplicaciones.
  • Permite el envío de datos asíncronos de un extremo del servicio a otro. Estos mensajes pueden desde un carácter que se envía como XML o complejos como una secuencia de datos binarios.
  • Utiliza un motor de socialización predeterminado para convertir los datos en XML  y viceversa.
  • Los mensajes pueden enviarse con cualquiera de los protocolos y codificaciones integradas (HTTP y WWW, TCP)
  •  Compatible con Ajax y REST.
  • Contine una extensión para formatos XML concretos:  ATOM(RSS);
  • Formatos que no son XML: JSON.
Desventajas de WCF:
  • Seguridad del nivel de mensaje. Debido a que, utiliza la especificación ws-security para proteger los mensajes creando así cierta dependencia que afecta la interoperabilidad, rendimiento y transmisión de mensajes.
  • La curva de aprendizaje es alta.
  • Tecnología propietaria.

Ejemplos de uso de WCF:
  • Servicio seguro para procesar transacciones comerciales.
  • Servicio de reportes con diferentes tecnologías y ubicación.
  • Un servicio de chat.
 Diferencia entre WCF y Web Services

WCF Web Services
Se aloja en el entorno windows Independiente de la plataforma y lenguaje
Puede ser utilizado por diferentes plataformas No se preocupa de la aplicación consumidora
Tiene restricciones en el protocolo HTTP
Sesiones están explícitamente definidos y cerrados desde las aplicaciones del lado del cliente No mantiene los valores de sesión por defecto. Se crea una nueva instancia del web services en cada llamada.
Permite ocultar los detalles de un error y sólo mostrar la información necesaria. Maneja los errores en ambos sentidos: los objetos de excepción y errores SOAP. Las excepciones no controladas se devuelven al cliente como un elemento SOAP en formato XML. Esta puede ser visualizada luego de ser deserializada en el lado del cliente.
Puede ser alojado en: Self hosting, Windows Service, IIS y WAS Se aloja en IIS


Este resumen no fue inspiración, todo estuvo basado en la lectura de las siguientes páginas:







No hay comentarios: