Remoting.Net
Michel Rener
TEMARIO
¿Qué es una Aplicación Distribuida?
¿Qué es una Aplicación basada en Cliente/Servidor?
¿Qué es la Tecnología de Objetos Distribuidos?
¿Qué es Remoting.Net? Utilización de Interfaces dentro de Remoting.Net Marshalling Server-Activated Objects
¿Qué es una Aplicación Distribuida?
Una aplicación distribuida es aquella en la cual el procesamiento de la misma se encuentra dividido entre dos o más máquinas. La división del procesamiento implica que los datos involucrados también se encuentran distribuidos en diferentes máquinas.
¿Qué es una Aplicación basada en
Cliente/Servidor?Arquitectura que consta de un componente Cliente que requiere servicios de un componente Servidor.
Componente Cliente: responsable de la capa de presentación-Interfaz de Usuario.
Componente Servidor: responde a las peticiones del Cliente por medio (por ejemplo) de la interacción con BD, Sistemas de Archivos, etc.
¿Qué es la tecnología de Objetos Distribuidos?
Se puede realizar una distinción entre dos tipos de Objetos: Objetos locales: son aquellos que residen en la
computadora sobre la cual se está trabajando Objetos remotos: son aquellos que residen en otra
computadora perteneciente a la red
La tecnología de Objetos Distribuidos permite que los Objetos remotos aparenten ser locales y sean tratados como tales.
¿Qué es Remoting.Net?
“Es una tecnología OO que facilita el desarrollo de aplicaciones distribuidas utilizando MS VisualStudio.Net. Provee una poderosa manera de utilizar Objetos remotos como si los mismos existiesen localmente por medio de Interfaces”.
¿Qué es una Interfaz?
Colección de operaciones que permiten describir el comportamiento de una Clase, un Componente u otra Entidad.
La misma no indica como deben implementarse las operaciones.
La/s Clase/s que la realizan se encargan de la implementación.
Representación de Interfaz en UML
Utilización de Interfaces dentro de Remoting.NetEn el contexto de Remoting.Net, las Interfaces cumplen la función de un “contrato” alcanzado entre el Cliente y el Servidor.Provee el contacto entre los anteriores y les permite interactuar sin ningún tipo de inconvenientes.La Interfaz se comporta como una “versión simbólica” del Objeto remoto que reside en el Servidor y el Cliente accede por medio de la misma.
Marshalling
Remoting.Net crea un Objeto en el componente Servidor disponible para ser utilizado en el componente Cliente, esto es denominado marshalling.
Se pueden identificar dos procedimientos fundamentales:
Marshal-By-ValueMarshal-By-Reference
Marshal-By-Value Marshal-By-Reference
El componente Servidor crea una copia del estado del Objeto existente en el mismo y transfiere dicha copia al componente Cliente, quien crea un nuevo Objeto basado en tal estado
El componente Cliente crea un representante (proxy) del Objeto real existente en el Servidor y utiliza dicho representante para acceder al Objeto. El manejo de los representantes es por medio de Interfaces.
Marshal-By-ValueMarshal-By-Value
Marshal-By-ReferenceMarshal-By-Reference
Marshal-By-Value Marshal-By-Reference
Cualquier cambio realizado en el Objeto Servidor no afectará la estructura del Objeto Cliente.
Cualquier cambio realizado en el Objeto Servidor afectará al Cliente.
Marshal-By-Value Marshal-By-Reference
Para implementarlo se debe hacer que la Clase deseada implemente la Interfaz Iserializable ó utilice el atributo [Serializable]
[Serializable]
Class NombreClaseSerializable
{
-------------
-------------
}
Para implementarlo se debe hacer que la Clase deseada herede de System.MarshalByRefObject
Class NombreClase : MarshalByRefObject
{
---------------------------------
--------------------------------
}
Server-Activeted Objects
Características: Objetos que residen en el componente Servidor No son creados cuando el Cliente utiliza el
operador newnew El tiempo de vida de los mismos es gerenciado
por el Servidor, no es el Cliente quien gobierna También denominados “Objetos bien conocidos”
(Well Known ObjectsWell Known Objects)
Server-Activated Objects (cont.)
Remoting.Net permite dos modelos de “Objetos bien conocidos”: SingleCallSingleton
SingleCall Mode
La infraestructura Remoting.Net construye una nueva instancia de un Objeto remoto por cada invocación a método que el Cliente realice. Luego de obtenido el retorno del método, el Objeto Servidor se encuentra disponible para ser tomado por el Garbage Collector.
SingleCall Mode
Singleton Mode
La infraestructura Remoting.Net construye una nueva instancia de un Objeto remoto en el momento que el Cliente realiza una invocación a método y el mismo no existe. En caso contrario, no se construye la nueva instancia y se utiliza la existente.
Singleton Mode
Cierre
Remoting.Net: permite manejar dos canales de
comunicación: TCP/HTTP.en el framework 2003 existen altos niveles
de seguridad para la transferencia de datos.
Bibliografía y Sitios
“Microsoft .Net Remoting”, Scott McLean, James Naftel.
“Writing for Advanced .Net Remoting Clients”, David Talbot.
http://www.eggheadcafe.com
http://developer.com/net/vb/article.php
http://msdn.Microsoft.com
PREGUNTAS????