.NET Remoting es un componente creado por Microsoft . API para la comunicación entre procesos . Implementación de Microsoft del protocolo SOAP ( servicios web ). Lanzado en 2002 con la versión 1.0 de .NET Framework . Es una de una serie de tecnologías de Microsoft que comenzó en 1990 con la primera versión de OLE para Windows de 16 bits . Los pasos intermedios en el desarrollo de tales tecnologías fueron COM , lanzado en 1993 y finalizado en 1995 bajo el nombre COM-95, DCOM, lanzado en 1997 (y rebautizado como ActiveX), y COM+ con su Microsoft Transaction Server (MTS), lanzado en 2000 [1] . Por el momento, .NET Remoting ha sido reemplazado por WCF , que forma parte de .NET Framework 3.0 .
Al igual que todos los miembros de esta familia y tecnologías similares, como CORBA y RMI , la característica de .NET Remoting es la siguiente: con el soporte de la infraestructura de .NET Remoting, el proceso cliente envía un mensaje al proceso servidor y recibe una respuesta. [2] [3] .
.NET Remoting permite que una aplicación cree un objeto (llamado objeto remoto ) disponible dentro de los límites remotos y ubicado en el dominio de la aplicación dentro de un proceso, en otro proceso que se ejecuta en esa computadora o incluso en otra computadora conectada por una red [4 ] . El proceso de .NET Remoting contiene un detector de solicitudes para un objeto en el dominio de la aplicación del servidor . En el lado del cliente, cualquier solicitud a un objeto remoto es enrutada por el tiempo de ejecución de .NET Remoting a través de objetos Channelque son contenedores para las instalaciones de la capa de transporte, como secuencias TCP , secuencias HTTP y canalizaciones con nombre . Como resultado, las solicitudes de código de cliente a objetos remotos no son diferentes de las llamadas locales y, al crear una instancia del objeto deseado Channel, una aplicación de .NET Remoting se puede transferir a otro protocolo de comunicación sin volver a compilar. El propio tiempo de ejecución realiza los pasos de serialización y cálculo de referencias de objetos en el entorno entre los dominios de aplicación del cliente y del servidor [4] .
.NET Remoting hace que la referencia al objeto remoto (remotable) esté disponible para la aplicación cliente, que luego reenvía las solicitudes a la instancia del objeto remoto como si fuera un objeto local [4] . Sin embargo, la ejecución real del código tiene lugar en el lado del servidor. El objeto remoto tiene identificadores en forma de URL de activación . Dependiendo de la configuración del proceso del servidor, se crea una instancia del objeto remoto al conectarse utilizando los datos de la URL [5] en el momento de crear un enlace al objeto remoto o en el momento del primer acceso al objeto remoto. El tiempo de ejecución de .NET Remoting crea un agente de escucha para un objeto cuando el servidor registra un canal que se usará para conectarse al objeto remoto. En el lado del cliente, el marco de .NET Remoting crea un objeto de marcador de posición ( proxy), que es una pseudoinstancia del objeto que se reemplaza. No implementa la funcionalidad de un objeto remoto, pero proporciona una interfaz similar, redirigiendo todas las solicitudes al objeto del servidor y devolviendo los resultados al cliente. Como consecuencia, el marco de .NET Remoting necesita tener metadatos que describan la interfaz pública del objeto remoto para crear un proxy. Esto se puede hacer vinculando estáticamente al ensamblado que contiene los metadatos en el momento de la compilación, o recuperando dinámicamente los metadatos en forma de WSDL o un formato patentado desarrollado por Microsoft.
Durante la ejecución de la consulta, todas las llamadas de método dirigidas al objeto, incluido el identificador de método y los parámetros pasados, se serializan en un flujo de bytes y se pasan a través de un canal de comunicación específico del protocolo al objeto proxy receptor en el lado del servidor (" serializado "). . La transferencia se produce escribiendo datos en la entrada de transporte del canal [5] . En el lado del servidor, el proxy lee el flujo de datos de la salida de la canalización y realiza una llamada de bean remota en nombre del cliente. Los resultados se serializan y pasan a través de una canalización al cliente, donde el proxy lee el resultado y lo pasa a la aplicación que llama [5] .
Si un objeto remoto necesita proporcionar una devolución de llamada a un objeto de cliente, el objeto de devolución de llamada del cliente debe estar marcado como remoto y la infraestructura de .NET Remoting debe configurarse para crear un agente de escucha para él [5] . El servidor puede conectarse a él por otro canal o por uno existente, si la conexión en la que se basa admite comunicación bidireccional [5] . Un canal puede estar compuesto por varios objetos de canal, quizás incluso con diferentes mecanismos de transporte. Así, un sistema basado en .NET Remoting puede consistir en varios subsistemas conectados por redes heterogéneas conectadas entre sí, incluyendo Internet [5]
.RED | |
---|---|
Implementaciones | |
Arquitectura | |
Infraestructura | |
Idiomas de Microsoft | |
Otros idiomas | |
Fundamentos de Windows | |
Componentes | |
comparaciones |
|
Tecnologías futuras | |
Recursos informativos |