cerrar-sesion editar-perfil marker video calendario monitor periodico fax rss twitter facebook google-plus linkedin alarma circulo-derecha abajo derecha izquierda mover-vertical candado usuario email lupa exito mapa email2 telefono etiqueta

3002008090303. Windows Communication Foundation

Escrito por Redacción en Programación
no hay comentarios Haz tu comentario
Imagen de logotipo de facebook Imagen de logotipo de Twitter Imagen de Logotipo de Google+ Imagen de logotipo de Linkedin

Esto no disminuye el grado de flexibilidad de nuestro sistema, sino que ademA?s hace difA�cil la posibilidad de inter-operar con otros sistemas. Cada vez que queramos ofrecer nuestros servicios a otro sistema, es necesario hacer una capa de compatibilidad o adaptador para cada nuevo consumidor. Es un trabajo costoso y lo peor es que no siempre es viable sin haber algA?n cambio en el diseA�o de nuestro sistema; DCOM y Servicios Web son dos tecnologA�as distintas y tienen enfoques distintos. Si esto no fuera suficiente, el puesto en escena de SOA (Service Orientated Arquitectura) o Arquitectura Orientado a Servicios, pone de manifiesto la necesidad de crear sistemas inter-operables.

Nadie puede negar que durante los A?ltimos diez aA�os hayamos pasado por una multitud de tecnologA�as que de alguna manera u otra han intentado facilitar el desarrollo de aplicaciones distribuidas. Sin embargo el problema fundamental de todos ellos es que han sido propietarios. Microsoft diseA�o sus propias tecnologA�as, SUN MICROSYSTEMS las suyas, y entre medio hubo unas cuantas organizaciones a�?sin A?nimos de lucroa�? que intentaron imponer unos estA?ndares (Corba).

Realmente todos han fracasado en que nadie ha querido acogerse a un sistema en concreto. Aunque la puesta en escena de los servicios web si facilitA? y de hecho sigue facilitando la interacciA?n entre sistemas heterogA�neos, sigue influyendo en la arquitectura del sistema. Es decir, no es posible usar .NET Remoting en vez de servicios web sin cambiar muchos aspectos del sistema.

Modelo unificado

PercatA?ndose de esto, asA� como de otros problemas que han ido surgiendo a lo largo del tiempo, Microsoft ideA? Windows Communication Foundation con una nociA?n muy importante en mente: construir una plataforma que permita usar un modelo unificado de comunicaciA?n. De esta forma, se puede desacoplar la tecnologA�a que se utiliza para realizar una comunicaciA?n con la arquitectura del sistema, permitiendo una mayor flexibilidad para inter-operar con diferentes sistemas y la posibilidad de realizar cambios sin modificar el diseA�o del sistema. Esto permite crear sistemas que pueden usar por ejemplo .NET Remoting, Servicios Web o Microsoft Message Queuing (MSQM) de manera transparente, intercambiando un modelo por otro sin modificaciA?n en el cA?digo, o incluso ofrecer la posibilidad de trabajar con varias tecnologA�as a la vez.

Figura 1

Puntos de conexiA?n

A parte de proporcionar un modelo A?nico de comunicaciA?n, uno de los puntos fuertes de WCF es la facilidad que ofrece para trabajar con A�l. Cada servicio WCF expone una serie de operaciones que se definen como parte de lo que se denomina un contrato. AdemA?s del contrato, cada servicio debe publicar informaciA?n sobre que protocolo(s) de comunicaciA?n(es) utiliza para ofrece dichos servicio. Esto se conoce como el binding y define ademA?s una serie de caracterA�sticas tales como si existe encriptaciA?n, autentificaciA?n, fiabilidad, etc. Estos dos factores (contrato y binding), junto a la direcciA?n donde se encuentra el servicio (address) constituyen lo que se denomina un punto de conexiA?n o EndPoint.

Figura 2

Tal como se puede apreciar en la figura 2, un servicio puede exponer uno o mA?s Endpoint, cada una de las cuales a su vez pueden ofrece el mismo contrato con distintos bindings, permitiendo asA� mayor interoperabilidad entre sistemas. Es decir, se puede ofrecer el mismo servicio utilizando por ejemplo el protocolo HTTP y MSMQ de manera transparente a la implementaciA?n del sistema. Esta configuraciA?n se puede hacer de manera flexible mediante XML en ficheros de configuraciA?n.

La figura 3 muestra un ejemplo de un contrato que ofrece una serie de servicios, asA� como su fichero de configuraciA?n correspondiente.

(ServiceContract)

public interface IFacturacion

(OperationContract)

void FacturarProducto(int productoId, decimal precio);

(OperationContract)

int ElementosStock(int productoId);

<system.serviceModel>

<services>

<service name="Facturacion">

<host>

<baseAddresses>

<add baseAddress = "http://localhost:8000/Facturacion" />

baseAddresses>

host>

<endpoint address ="" binding="wsHttpBinding" contract="IFacturacion">

<identity>

<dns value="localhost"/>

identity>

endpoint>

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

service>

services>

Figura 3

Alta versatilidad

Desde un inicio se ha apostado por intentar solucionar el mayor nA?mero de escenarios que se presentan durante el desarrollo de aplicaciones distribuidas. De esta forma, WCF tiene soporte para conceptos como las transacciones, propagaciA?n de excepciones, fiabilidad, seguridad tanto a nivel de confidencialidad como autorizaciA?n y autentificaciA?n, asA� como un sinfA�n de estA?ndares WS* que permite un algo grado de interoperabilidad.

Sin embargo lo mejor de WCF sin lugar a duda es el alto grado de extensibilidad. Basado en un modelo de capas, donde cada una de estas se encarga de diferente operaciones, WCF permite la creaciA?n de bindings a medida que se adaptan a las necesidades de distintos escenarios. De esta manera, si hay alguna funcionalidad que no existe en WCF, hay muy buena posibilidad de que se puede implementar algA?n interfaz u operaciA?n para aA�adirla.

Resumen

Estas caracterA�sticas son las que hacen de WCF una perfecta soluciA?n para implementar aplicaciones distribuidas. El desacoplamiento de la capa de comunicaciA?n del resto del sistema, junto a la versatilidad de WCF para trabajar con distintas tecnologA�as, hace de WCF una soluciA?n muy atractiva tanto para sistemas nuevos como para interactuar con sistemas existentes. 

Etiquetas

Noticias relacionadas

Comentarios

No hay comentarios.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Debes haber iniciado sesión para comentar una noticia.