Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación...

24
Remoting.Net Michel Rener

Transcript of Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación...

Page 1: 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.

Remoting.Net

Michel Rener

Page 2: 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.

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

Page 3: 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.

¿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.

Page 4: 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.

¿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.

Page 5: 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.
Page 6: 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.

¿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.

Page 7: 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.

¿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”.

Page 8: 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.

¿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.

Page 9: 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.

Representación de Interfaz en UML

Page 10: 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.

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.

Page 11: 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.

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

Page 12: 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.

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.

Page 13: 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.

Marshal-By-ValueMarshal-By-Value

Marshal-By-ReferenceMarshal-By-Reference

Page 14: 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.

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.

Page 15: 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.

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

{

---------------------------------

--------------------------------

}

Page 16: 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.

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)

Page 17: 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.

Server-Activated Objects (cont.)

Remoting.Net permite dos modelos de “Objetos bien conocidos”: SingleCallSingleton

Page 18: 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.

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.

Page 19: 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.

SingleCall Mode

Page 20: 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.

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.

Page 21: 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.

Singleton Mode

Page 22: 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.

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.

Page 23: 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.

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

Page 24: 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.

PREGUNTAS????