Articulo de referencia

Remoting de .NET

.NET Remoting es una interfaz de programación de aplicaciones (API) de Microsoft para la comunicación entre procesos, lanzada en 2002 con la versión 1.0 de .NET Framework . Es u...

.NET Remoting es una interfaz de programación de aplicaciones (API) de Microsoft para la comunicación entre procesos, lanzada en 2002 con la versión 1.0 de .NET Framework . Es una de una serie de tecnologías de Microsoft que comenzaron en 1990 con la primera versión de Object Linking and Embedding (OLE) para Windows de 16 bits . Los pasos intermedios en el desarrollo de estas tecnologías fueron Component Object Model (COM), lanzado en 1993 y actualizado en 1995 como COM-95, Distributed Component Object Model (DCOM), lanzado en 1997 (y renombrado como ActiveX ), y COM+ con su Microsoft Transaction Server (MTS), lanzado en 2000. [ 1 ] Ahora ha sido reemplazado por Windows Communication Foundation (WCF), que forma parte de .NET Framework 3.0 .

Al igual que sus tecnologías hermanas y similares, como la Arquitectura de Agente de Solicitudes de Objetos Comunes (CORBA) y la invocación remota de métodos (RMI) de Java, .NET Remoting es complejo, pero su esencia es sencilla. Con la ayuda del sistema operativo y los agentes de red, un proceso cliente envía un mensaje a un proceso servidor y recibe una respuesta. [ 2 ] [ 3 ]

Descripción general

.NET Remoting permite que una aplicación ponga un objeto (denominado objeto remoto ) a disposición a través de límites de acceso remoto , que incluyen diferentes dominios de aplicación , procesos o incluso diferentes equipos conectados por una red. [ 4 ] El entorno de ejecución de .NET Remoting aloja el oyente para las solicitudes al objeto en el dominio de aplicación de la aplicación del servidor. En el lado del cliente, cualquier solicitud al objeto remoto es reenviada por el entorno de ejecución de .NET Remoting a través de Channelobjetos que encapsulan el modo de transporte real, incluidos flujos TCP , flujos HTTP y tuberías con nombre . Como resultado, al instanciar Channellos objetos adecuados, una aplicación .NET Remoting puede admitir diferentes protocolos de comunicación sin necesidad de recompilarla. El propio entorno de ejecución gestiona la serialización y la serialización de objetos entre los dominios de aplicación del cliente y del servidor. [ 4 ]

.NET Remoting pone a disposición de una aplicación cliente una referencia a un objeto remoto, que luego instancia y utiliza dicho objeto como si fuera local. [ 4 ] Sin embargo, la ejecución real del código se produce en el servidor. Un objeto remoto se identifica mediante URL de activación y se instancia mediante una conexión a la URL. [ 5 ] El entorno de ejecución de Remoting crea un oyente para el objeto cuando el servidor registra el canal utilizado para conectarse a él. En el lado del cliente, la infraestructura de Remoting crea un proxyobjeto que actúa como una pseudoinstanciación del objeto remoto. Este objeto no implementa la funcionalidad del objeto remoto, pero presenta una interfaz similar. Por lo tanto, la infraestructura de Remoting necesita conocer de antemano la interfaz pública del objeto remoto. Cualquier llamada a método realizada contra el objeto, incluyendo la identidad del método y los parámetros pasados, se serializa en un flujo de bytes y se transfiere a través de un protocolo de comunicación dependiente Channela un objeto proxy receptor en el servidor (" serializado "), escribiendo en el receptor de transporte del canal. [ 5 ] En el lado del servidor, el proxy lee el flujo del sumidero y realiza la llamada al objeto remoto en nombre del cliente. Los resultados se serializan y se transfieren a través del sumidero al cliente, donde el proxy lee el resultado y se lo entrega a la aplicación que realiza la llamada. [ 5 ] Si el objeto remoto necesita realizar una devolución de llamada a un objeto cliente para algunos servicios, la aplicación cliente debe marcarlo como remoto y tener un host de tiempo de ejecución de remoto que oiga para él. [ 5 ] El servidor puede conectarse a él a través de un Canal diferente, o a través del ya existente si la conexión subyacente admite comunicación bidireccional. [ 5 ] Un canal puede estar compuesto por varios objetos Canal diferentes, posiblemente con diferentes transportes heterogéneos. Por lo tanto, el remoto también puede funcionar a través de sistemas separados por una interconexión de redes heterogéneas, incluida Internet. [ 5 ] La seguridad de tipos es aplicada por CTS y el tiempo de ejecución de .NET Remoting. Las llamadas a métodos remotos son inherentemente síncronas; las llamadas asíncronas se pueden implementar utilizando bibliotecas de subprocesos. La autenticación y el control de acceso se pueden implementar para los clientes mediante el uso de canales personalizados o alojando los objetos remotos en IIS y luego utilizando el sistema de autenticación de IIS. [ 6 ]

Referencias

  1. Hoja de ruta de la tecnología de software (2001). "Modelo de objetos componentes y capacidades relacionadas" . Instituto de Ingeniería de Software Carnegie-Mellon. Archivado del original el 15 de mayo de 2008.
  2. McLean, Scott; Naftel, James; Kim, Williams (2002). Microsoft .NET Remoting . Microsoft Press. ISBN 9780585476445.
  3. ^ Pisón, Ingo; Szpuszta, Mario (2005). Comunicación remota .NET avanzada . Presione. ISBN 9781590594179.
  4. 1 2 3 "Descripción general de .NET Remoting" . Consultado el 23 de octubre de 2007 .
  5. 1 2 3 4 5 6 "Arquitectura de .NET Remoting" . Consultado el 23 de octubre de 2007 .
  6. "Seguridad" . MSDN . 12 de octubre de 2006. Consultado el 23 de octubre de 2007 .
  • Sitio web oficial
  • Migración de .NET Remoting a WCF