La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción Elementos de.Net Remoting Aplicación de ejemplo.

Presentaciones similares


Presentación del tema: "Introducción Elementos de.Net Remoting Aplicación de ejemplo."— Transcripción de la presentación:

1

2 Introducción Elementos de.Net Remoting Aplicación de ejemplo

3 Tecnología de objetos distribuidos sucesora de DCOM. Objetivo: crear herramientas que faciliten la distribución de la aplicación en red de forma transparente. Framework variado y extensible para que los objetos de distintos dominios de aplicaciones, procesos y equipos se puedan comunicar sin problemas. Ideas fundamentales encontradas ya en CORBA o Java RMI, aunque la combinación final es algo diferente.

4 Un AppDomain es el entorno donde se ejecuta la aplicación, por lo que la comunicación se dará entre distintos AppDomains, siendo un AppDomain el cliente y otro el servidor. Un canal es la forma de ordenar, formatear o transmitir mensajes a través de AppDomains, de forma que nosotros podamos decir que queremos transmitir un mensaje bien por medio de un protocolo de transporte como el TCP o de aplicación como pudiese ser el HTTP o cualquier canal implementado por la arquitectura.

5 Un proxy es un objeto que se encarga de abstraer la comunicación entre cliente/servidor de forma que los objetos de otro AppDomain (remotos) parezcan locales. Un sumidero (sink) es capaz de recibir mensajes de Remoting (IMessage), tratarlos y enviarlos al siguiente sumidero en la cadena de comunicación.

6 Remoting permite utilizar objetos o valores entre distintos application domains utilizando distintos protocolos

7

8 Si se configura el cliente correctamente, podemos crear nuevas instancias de un objeto remoto: utilizando la sentencia new, recibiendo una referencia al objeto que reside en el servidor y ejecutando métodos/propiedades como si el objeto estuviese en el mismo proceso.

9 El servidor necesita publicar un objeto Escuchar en un canal TCP o HTTP Tener un servicio con un nombre (Ej:ServicioMat) El cliente se conecta al ServicioMat utilizando un canal soportado y recibe una instancia El cliente se conecta a un servidor en un puerto El cliente especifica el objeto que desea Ejemplo: Conectar al servicioMat en el servidor X utilizando el protocolo HTTP en el puerto 80

10 Tipos MarshalByRef Referencia en el cliente, objeto en el servidor MarshalByVal El cliente tiene una copia del objeto Deben ser objetos serializables (ISerializable), ya que el objeto entero debe viajar al cliente

11 Activación Por Servidor SingleCall (Se instancia por cada llamada) Singleton (todos los clientes usan la misma instancia) Por Cliente Leasing Ejecución Síncrona Asíncrona Con o sin retorno

12 Cliente Servidor Cliente.exe Servidor.exe TiposCompartidos.dll

13 El objeto remoto expone 2 métodos para sumar o restar 2 números Debemos Tener una implementacion de un tipo remoto Un Application domain host que escuche Un Application domain cliente que invoque Configurar el sistema de remoting en cada parte del sistema (cliente y servidor)

14 Escribir los componentes que se desea acceder remotamente y compilarlos en una dll (shared assembly) Escribir un componente ejecutable que oficie de host de los objetos anteriores Escribir los clientes que llamen al servidor

15 El tipo que se va a consumir remotamente debe heredar de MarshalByRefObject El resto… es como una clase tradicional

16 using System; public class LibMat : MarshalByRefObject { private int resultado; public int Sumar(int num1, int num2) { resultado = num1 + num2; return resultado; } public int Restar(int num1, int num2) { resultado = num1 - num2; return resultado; }

17 La aplicación deberá escuchar las peticiones de los clientes para permitir crear los objetos remotos Deberá Elegir y Registrar el canal (objeto que manejará los protocolos de red y los formatos de serialización) Registrar el componente de tipos remotos en.Net Remoting

18 using System; using System.Runtime.Remoting; public class Listener { public static void Main() { RemotingConfiguration.Configure("Listener.exe.config"); Console.WriteLine (Escuchando peticiones. Enter para salir..."); Console.ReadLine(); }

19

20 Crear el ejecutable Listener.exe y referenciar a la dll de tipos LibMat.dll

21 using System; using System.Runtime.Remoting; public class Cliente { public static void Main() {RemotingConfiguration.Configure("Cliente.exe.config"); MathLibrary lib = new MathLibrary(); Console.WriteLine("Número 1:"); string num1 = Console.ReadLine(); Console.WriteLine(Número 2:"); string num2 = Console.ReadLine(); Console.WriteLine(lib.Sumar(Convert.ToInt16(num1),Convert.ToInt16(num2 )).ToString()); Console.WriteLine (Enter para salir..."); Console.ReadLine(); }

22 Ejecutar Listener.exe Ejecutar Cliente.exe

23 Los objetos de servicios remotos.NET se pueden alojar en: Un ejecutable administrado: cualquier archivo.NET EXE normal o en un servicio administrado. IIS (Internet Information Server): los objetos reciben los mensajes a través del canal HTTP. Se debe crear una raíz virtual, en la que se copiará"remoting.config. El ejecutable o la DLL que contiene el objeto remoto se debe colocar en el directorio bin, en el directorio al que señala la raíz de IIS. Servicios de componentes.NET: para aprovechar los diferentes servicios de COM+, tales como las transacciones, JIT, la agrupación de objetos, etc...

24 System.Runtime.Remoting.Channels. Facilitan el medio de transporte necesario para establecer estas comunicaciones. Canales HTTP (protocolo SOAP) y TCP (carga binaria). Se pueden conectar (a través de IChannel) utilizando canales personalizados en los que se puede escribir para permitir la integración de aplicaciones muy diversas.

25 Client calls method on TransparentProxy TransparentProxy builds message Stack frame to message TransparentProxy passes msg to RealProxy RealProxy forwards msg to envoy sink(s) Last envoy sink forwards msg to context sink(s) Last context sink forwards msg to channel sink(s) Channel sinks turn message into a byte stream Last channel sink sends byte stream to server

26 Tx Sink Envoy Sink Envoy Sink Server object Envoy Sinks Message Transport Sink Channel Sink Channel Sink Channel Transport Sink Channel Sink Channel Sink Channel Transparent Proxy Real Proxy Context Sinks Client-side Server-side Message Formatter Sink Tx Sink …


Descargar ppt "Introducción Elementos de.Net Remoting Aplicación de ejemplo."

Presentaciones similares


Anuncios Google