Introducción a Remoting

Slides:



Advertisements
Presentaciones similares
Web Services.
Advertisements

APLICACIONES DISTRIBUIDAS
Introducción a C#.
Características Generales y Entornos de Desarrollo
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
LEgo Java Operating System (LeJOS)
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Práctica II: Java RMI.
SERVIDOR DNS Y WINS INTEGRANTES: Farroñan Beltran Brenher
Servicios Web.
Los servicios de red son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red son instalados en uno o.
Introducción a Programación Concurrente
"java del lado del servidor" Servlet y JSP Java Server Pages.
Acceso a datos y paso de datos entre capas
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Investigación Servidor de Aplicaciones WebSphere
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
TIPOS DE SERVIDORES 4/2/2017 3:29 PM
Objetos Distribuidos – Aplicaciones RMI
Interacción Persona Ordenador
Primer Programa en JAVA
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Universidad de La Coruña Escuela Universitaria Politécnica Control de Procesos por Computador Diego Cabaleiro 24 de Noviembre 2009.
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
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.
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Alberto Guirao Rico Jesús Barahona Esteve.
Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz.
Invocación de Métodos Remotos RMI: Remote Method Invocation
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
Introducción a la Programación. Lenguaje de Máquina.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Sintaxis de C# (Declaraciones y Tipos)
JAVA RMI The Java Remote Method Invocation ELO330 – Programación de Sistemas Cesar Vásquez I
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
RMI Remote Method Invocation 2da. Clase del 19 de Junio
 SSH (Secure Shell) es un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente.
REMOTING by Juan Martínez Gil.
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
Java Media Framework. Sergio Catalán Osorio & Christian Nievas Grondona. Programación de Sistemas 2003.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
En este capitulo se analizo la relación entre cliente y servidor de red habituales, como: HTTP FTP DNS DHCP Correo Electrónico INTRODUCCIÓN.
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Puertos de un servidor web
INTEGRANTES : Selvin Rivas José Vásquez Francisco Pérez J’ Alberto Patal.
File Transfer Protocol.
Michael Ángelo De Lancer Franco  Son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red.
¿Qué es. NET Remoting? Servicios Web que utiliza entorno remoto que se puede ejecutar en cualquier aplicación.
¿Cómo funciona Internet?
QUE ES EL TELNET El protocolo Telnet es un protocolo de Internet estándar que permite conectar terminales y aplicaciones en Internet.
.Net Remoting Conceptos que debemos Conocer Dominio de una Aplicación
Clases “ Es una Abstracción de un elemento del mundo real ”
MODELO TCP/IP.
En informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol)
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
.NET Remoting. 2 Índice Introducción Introducción ¿Qué es.NET Remoting? ¿Qué es.NET Remoting? ¿Por qué utilizar.NET Remoting? ¿Por qué utilizar.NET Remoting?
Transcripción de la presentación:

Introducción a Remoting

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

Introducción 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.

.NET Remoting: definiciones 1 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.

NET Remoting: definiciones 2 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.

Introducción Remoting permite utilizar objetos o valores entre distintos application domains utilizando distintos protocolos

.NET Remoting: Sinks

.Net Remoting: Cliente 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.

.Net Remoting: Servidor 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

Objetos remotos Tipos MarshalByRef MarshalByVal 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

Activación y Ejecució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

Ejemplo Cliente Servidor Cliente.exe Servidor.exe TiposCompartidos.dll

Aplicación de ejemplo 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)

Remoting: desarrollo 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

Creando “Remotable Type” El tipo que se va a consumir remotamente debe heredar de MarshalByRefObject El resto… es como una clase tradicional

LibMat.cs 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;

Crear la aplicación de Servidor 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

Listener.cs 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(); }

Listener.exe.config <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="Singleton” type=“LibMat, MathLibrary” objectUri="MathLibrary.rem"/> </service> <channels> <channel ref="http" port="8989"/> </channels> </application> </system.runtime.remoting> </configuration>

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

Client.cs 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(); }

Ejecutar la aplicación Ejecutar Listener.exe Ejecutar Cliente.exe

.NET Remoting: alojamiento 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...

.NET Remoting: servicios del canal 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.

Client-side remoting 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

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