Windows Communication Foundation (WCF) es una plataforma de mensajería de .NET que permite el desarrollo rápido de sistemas distribuidos y aplicaciones basadas en servicios. WCF se basa en .NET 2.0 y se incluye en Windows Vista. Los desarrolladores pueden crear aplicaciones con WCF en Visual Studio 2005 para Windows XP, Windows Vista y Windows Server 2003.
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
WCF, .NET Remoting y CORBA
1. NET Remoting Windows CommunicationFoundation o WCF (también conocido como Indigo), es la nueva plataforma de mensajería que forma parte de la API de la Plataforma .NET3.0 (antes conocida como WinFX, y que no son más que extensiones para la version 2.0). Se encuentra basada en la Plataforma .NET 2.0 y de forma predeterminada se incluye en el Sistema Operativo Microsoft Windows Vista. Fue creado con el fin de permitir una programación rápida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (también conocido como SOA), con una API simple; y que puede ejecutarse en una máquina local, una LAN, o sobre la Internet en una forma segura. Desarrollando con WCF Los desarrolladores pueden crear aplicaciones utilizando WCF, y aunque inicialmente fue desarrollado para este Sistema Operativo, también puede ser utilizado en Windows XP y Windows 2003 Server. Esto debido a una decisión tomada por Microsoft, para permitir su utilización por la mayor parte de desarrolladores que trabajan sobre la línea de productos relacionados con la tecnología .NET. Es posible crear aplicaciones basadas en WCF utilizando Microsoft Visual Studio 2005 en su entorno de desarrollo integrado. Microsoft ha liberado un paquete de extensiones y un Kit de Desarrollo que puede ser utilizado con esta tecnología y otras que se incluyen en la Plataforma .NET v3.0. El conjunto de clases .NET que conforman la API de WCF, están basados en la Plataforma .NET 2.0 y son de libre distribución. El compilador de Visual Studio, puede ser combinado con un IDE gratuito, alguna solución para programación gratuita para desarrolladores no-profesionales o estudiantes, en el caso que prefieran no desarrollar con ediciones gratuitas o Express de Visual Studio 2005.
2. CORBA CORBAEncomputación, CORBA (CommonObjectRequestBrokerArchitecture — arquitectura común de intermediarios en peticiones a objetos); es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos. CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida. En un sentido general, CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información. CORBA utiliza un lenguaje de definición de interfaces (IDL) para especificar las interfaces con los servicios que los objetos ofrecerán. CORBA puede especificar a partir de este IDL, la interfaz a un lenguaje determinado, describiendo cómo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. Implementaciones estándar existen para Ada, C, C++, Smalltalk, Java, Python, Perl y Tcl.
3. NET Remoting .NetRemoting es una tecnología propietaria de Microsoft que permite crear aplicaciones distribuidas. Una de las principales características es la capacidad para poder trabajar desde una máquina con los objetos en memoria de la máquina Remota. Proceso de comunicación entre aplicaciones Se debe crear el objeto que se va a utilizar de forma remota. Uno dominio de aplicación (Servidor) para recibir solicitudes. Uno dominio de aplicación (Cliente) para enviar solicitudes para el objeto mencionado.