Java RMI 2ª PARTE. Factory Pattern para RMI
|
|
|
- Francisco Pinto Hidalgo
- hace 7 años
- Vistas:
Transcripción
1 Java RMI 2ª PARTE Factory Pattern para RMI 1
2 Factory Pattern para RMI Concepto introducido en: Design Patterns, Elements of Reusable Object-Oriented Software. Objeto que controla la creación y/o el acceso a otros objetos. En el contexto de Java RMI: reducción en el número de objetos que es necesario registrar. Grupo de Arquitectura de Computadores 2 Factory Pattern para RMI Ejemplo práctico: la biblioteca. 1. Registro de nuevos usuarios para entrar en la biblioteca. 2. Identificación tarjeta de usuario. 3. Control de préstamo de libros. 4. Reserva de libros para cada usuario. El bibliotecario representa una factoría dado que gestiona el acceso al contenido de la biblioteca. Grupo de Arquitectura de Computadores 3 2
3 Organización interna: Factory Pattern para RMI Hay dos únicas interfaces remotas que entiende el cliente: Factory y Product. FactoryImpl implementa Factory interface. ProductImpl implementa Product interface. Grupo de Arquitectura de Computadores 4 Organización interna: Factory Pattern para RMI Grupo de Arquitectura de Computadores 5 3
4 Organización interna: Factory Pattern para RMI FactoryImpl se registra en el registro RMI. El cliente solicita una referencia a Factory. Rmiregistry devuelve una referencia remota a FactoryImpl. El cliente invoca un método remoto de FactoryImpl para obtener una referencia remota de ProductImpl. FactoryImpl devuelve una referencia remota de un objeto ProductImpl existente o bien uno que acaba de ser creado en función de la petición del cliente. El cliente invoca un método remoto de ProductImpl. Grupo de Arquitectura de Computadores 6 Factory Pattern para RMI El bibliotecario representa un interface remoto con uno o más métodos que devuelven objetos que implementan el interface LibraryCard. El bibliotecario oferta métodos para acceder a los libros. La única implementación registrada en el registro RMI es la clase bibliotecario. Grupo de Arquitectura de Computadores 7 4
5 Estructura interna de RMI Buscar respuesta a: Estructura interna de RMI Quién realmente crea el objeto de stub? El servidor, el cliente o el registro? A qué puerto está escuchando el servidor? Acaso el servidor escucha en el puerto 1099? (puerto por defecto del registro RMI) Cómo sabe el cliente en qué puerto escucha el servidor? Es necesario el registro RMI para hacer funcionar el sistema? Se puede utilizar RMI sin el rmiregistry? Grupo de Arquitectura de Computadores 9 5
6 Estructura interna de RMI Planteamiento inicial: ignorar el registro RMI. Tenemos un servidor y un cliente en máquinas distintas. El servidor extiende java.rmi.server.unicastremoteobject. El cliente quiere ejecutar un método remoto del servidor. Comunicaciones internas mediante sockets. Stubs y Skeletons contienen toda la información concerniente a las comunicaciones. Cliente stub [RED] skeleton Servidor Grupo de Arquitectura de Computadores 10 Estructura interna de RMI Funcionamiento a nivel de sockets: 1. El servidor escucha un puerto. 2. El cliente no sabe en qué maquina y puerto está escuchando el servidor. Pero tiene un objeto stub que tiene esa información. 3. El cliente invoca la función del stub. 4. El stub se conecta al puerto del servido y envía los parámetros siguiendo los siguientes pasos: 1. El cliente se conecta al puerto de escucha del servidor. 2. El servidor acepta la conexión entrante y crea un nuevo socket para gestionar esta única conexión. 3. El antiguo puerto de escucha permanece aguardando posteriores peticiones de otros clientes. Grupo de Arquitectura de Computadores 11 6
7 Estructura interna de RMI 4. La comunicación cliente-servidor se realiza utilizando el nuevo socket. 5. Se realiza el intercambio de los parámetros del método siguiendo un protocolo preestablecido. 6. El protocolo puede ser JRMP (Java Remote Method protocol) o CORBA-compatible RMI-IIOP (Internet Inter-ORB Protocol). 5. El método es ejecutado en el servidor y el servidor es devuelto al cliente vía stub. 6. El stub devuelve el resultado al cliente como si hubiera ejecutado la función localmente. Grupo de Arquitectura de Computadores 12 Estructura interna de RMI Punto2: El cliente no sabe en qué maquina y puerto está escuchando el servidor. Pero tiene un objeto stub que tiene esa información. Pero el puerto asociado a cada objeto remoto del servidor es dinámico!!! Pregunta: Cómo sabe el cliente en qué máquina y puerto está asociado el servidor si éste es dinámico? Bootstrap Problem Grupo de Arquitectura de Computadores 13 7
8 Estructura interna de RMI Es necesario informar al cliente acerca del estado del servidor. Registro RMI: Hashmap de dupletes {etiqueta, Stub_object. Clase java.rmi.naming. Puerto preestablecido (1099 por defecto). Grupo de Arquitectura de Computadores 14 Estructura interna de RMI Ejemplo estructura de un stub: public final class CalcImpl_Stub extends java.rmi.server.remotestub implements Calc, java.rmi.remote { private static final long serialversionuid = 2; private static java.lang.reflect.method $method_add_0; static { try { $method_add_0 = Calc.class.getMethod("add", new java.lang.class[] {int.class, int.class); catch (java.lang.nosuchmethodexception e) { throw new java.lang.nosuchmethoderror( "stub class initialization failed"); // constructors public CalcImpl_Stub(java.rmi.server.RemoteRef ref) { super(ref); // methods from remote interfaces Grupo de Arquitectura de Computadores 15 8
9 Estructura interna de RMI // implementation of add(int, int) public int add(int $param_int_1, int $param_int_2) throws java.rmi.remoteexception try { Object $result = ref.invoke(this, $method_add_0, new java.lang.object[] {new java.lang.integer($param_int_1), new java.lang.integer($param_int_2), L); return ((java.lang.integer) $result).intvalue(); catch (java.lang.runtimeexception e) { throw e; catch (java.rmi.remoteexception e) { throw e; catch (java.lang.exception e) { throw new java.rmi.unexpectedexception("undeclared checked exception", e); Grupo de Arquitectura de Computadores 16 Estructura interna de RMI 1. RMIRegistry se ejecuta en el servidor y es un objeto remoto con un puerto conocido. 2. El servidor se exporta a un puerto anónimo de la máquina servidora. Este puerto es desconocido a los clientes. 3. Cuando se invoca Naming.rebind(), se le pasa la referencia de la implementación del objeto creado. La clase Naming construye un objeto stub y lo asocia al objeto remoto del registro. Los pasos de creación del stub son: 1. Carga la clase CalcImpl_Stub en la JVM. 2. Toma RemoteRef obj de c. RemoteRef ref=c.getref();esta referencia encapsula todos los detalles del servidor, como nombre, dirección y número de puerto asociado. Grupo de Arquitectura de Computadores 17 9
10 Estructura interna de RMI 3. Utiliza este objeto RemoteRef para construir el stub: CalcImpl_Stub stub=new CalcImpl_Stub(ref); 4. Para este objeto stub al RMIRegistry para asociarlo con la etiqueta. 5. RMIRegistry almacena internamente la etiqueta y el objeto stub en un hashmap. 4. Cuando el cliente ejecuta Naming.lookup(), para la etiqueta como parámetro. El RMIRegistry devuelve el stub de vuelta al cliente. 5. Ahora el cliente conoce el nombre del servidor y el puerto de escucha asociado al objeto remoto. El cliente puede invocar al método remoto de su stub para ejecutarlo. Grupo de Arquitectura de Computadores 18 Estructura interna de RMI El registro RMI únicamente se emplea para realizar bootstrapping. Alternativa: desarrollar un esquema de comunicación basado en sockets que serialicen el stub y lo envíe a los clientes. Grupo de Arquitectura de Computadores 19 10
11 1. Control a nivel de red a cerca de cómo se realiza la invocación de métodos remotos. 2. Socket factory: Especifica el formato de comunicación a través de sockets. Controla la creación de sockets. Por parte del cliente: inicio y establecimiento de comunicaciones. Por parte del servidor: mecanismo de escucha y aceptación de peticiones. Grupo de Arquitectura de Computadores 21 11
12 Un socket factory cliente controla la creación de sockets usados para realizar la invocación remota. Un socket factory servidor controla la creación de sockets servidores para recibir invocaciones remotas. El stub remoto para un objeto remoto concreto contiene el socket factory cliente asociado al objeto. Métodos: LocateRegistry.createRegistry LocateRegistry.getRegistry Grupo de Arquitectura de Computadores 22 PASO1: Implementar un ServerSocket y Socket personalizado. Encriptación y desencriptación XOR. XorInputStream.java package examples.rmisocfac; import java.io.*; class XorInputStream extends FilterInputStream { private final byte pattern; public XorInputStream(InputStream in, byte pattern) { super(in); this.pattern = pattern; public int read() throws IOException { int b = in.read(); if (b!= -1) b = (b ^ pattern) & 0xFF; return b; Grupo de Arquitectura de Computadores 23 12
13 XorInputStream.java public int read(byte b[], int off, int len) throws IOException { int numbytes = in.read(b, off, len); if (numbytes <= 0) return numbytes; for(int i = 0; i < numbytes; i++) { b[off + i] = (byte)((b[off + i] ^ pattern) & 0xFF); return numbytes; Grupo de Arquitectura de Computadores 24 XorInputStream.java public int read(byte b[], int off, int len) throws IOException { int numbytes = in.read(b, off, len); if (numbytes <= 0) return numbytes; for(int i = 0; i < numbytes; i++) { b[off + i] = (byte)((b[off + i] ^ pattern) & 0xFF); return numbytes; Grupo de Arquitectura de Computadores 25 13
14 XorOutputStream.java package examples.rmisocfac; import java.io.*; class XorOutputStream extends FilterOutputStream { private final byte pattern; public XorOutputStream(OutputStream out, byte pattern) { super(out); this.pattern = pattern; public void write(int b) throws IOException { out.write((b ^ pattern) & 0xFF); Grupo de Arquitectura de Computadores 26 XorServerSocket.java package examples.rmisocfac; import java.io.*; import java.net.*; class XorServerSocket extends ServerSocket { private final byte pattern; public XorServerSocket(int port, byte pattern) throws IOException { super(port); this.pattern = pattern; public Socket accept() throws IOException { Socket s = new XorSocket(pattern); implaccept(s); return s; Grupo de Arquitectura de Computadores 27 14
15 XorSocket.java package examples.rmisocfac; import java.io.*; import java.net.*; class XorSocket extends Socket { private final byte pattern; private InputStream in = null; private OutputStream out = null; public XorSocket(byte pattern) throws IOException { super(); this.pattern = pattern; Grupo de Arquitectura de Computadores 28 XorSocket.java public XorSocket(String host, int port, byte pattern) throws IOException { super(host, port); this.pattern = pattern; public synchronized InputStream getinputstream() throws IOException { if (in == null) { in = new XorInputStream(super.getInputStream(), pattern); return in; public synchronized OutputStream getoutputstream() throws IOException { if (out == null) { out = new XorOutputStream(super.getOutputStream(), pattern); return out; Grupo de Arquitectura de Computadores 29 15
16 PASO2: Implementar un RMIClientSocketFactory personalizado. package examples.rmisocfac; import java.io.*; import java.net.*; import java.rmi.server.*; public class XorClientSocketFactory implements RMIClientSocketFactory, Serializable { private byte pattern; public XorClientSocketFactory(byte pattern) { this.pattern = pattern; public Socket createsocket(string host, int port) throws IOException { return new XorSocket(host, port, pattern); public int hashcode() { return (int) pattern; public boolean equals(object obj) { return (getclass() == obj.getclass() && pattern == ((XorClientSocketFactory) obj).pattern); Grupo de Arquitectura de Computadores 30 PASO3: Implementar un RMIServerSocketFactory personalizado. package examples.rmisocfac; import java.io.*; import java.net.*; import java.rmi.server.*; public class XorServerSocketFactory implements RMIServerSocketFactory { private byte pattern; public XorServerSocketFactory(byte pattern) { this.pattern = pattern; public ServerSocket createserversocket(int port) throws IOException { return new XorServerSocket(port, pattern); public int hashcode() { return (int) pattern; public boolean equals(object obj) { return (getclass() == obj.getclass() && pattern == ((XorServerSocketFactory) obj).pattern); Grupo de Arquitectura de Computadores 31 16
17 Pasos adicionales: 4. Escribir un servidor que cree un objeto remoto y lo exporte empleando RMIClientSocketFactory and RMIServerSocketFactory. 5. Escribir un cliente que invoque el método remoto. PASO4: Implementar un servidor. Interface package examples.rmisocfac; public interface Hello extends java.rmi.remote { String sayhello() throws java.rmi.remoteexception; Grupo de Arquitectura de Computadores 32 Servidor package examples.rmisocfac; import java.io.*; import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class HelloImpl implements Hello { public HelloImpl() { public String sayhello() { return "Hello World!"; public static void main(string args[]) { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); byte pattern = (byte) 0xAC; Grupo de Arquitectura de Computadores 33 17
18 try { HelloImpl obj = new HelloImpl(); RMIClientSocketFactory csf = new XorClientSocketFactory(pattern); RMIServerSocketFactory ssf = new XorServerSocketFactory(pattern); Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0, csf, ssf); LocateRegistry.createRegistry(2002); Registry registry = LocateRegistry.getRegistry(2002); registry.rebind("hello", stub); System.out.println("HelloImpl bound in registry"); catch (Exception e) { System.out.println("HelloImpl exception: " + e.getmessage()); e.printstacktrace(); static RemoteexportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) Exports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory. Grupo de Arquitectura de Computadores 34 Cliente package examples.rmisocfac; import java.rmi.*; import java.rmi.registry.*; public class HelloClient { public static void main(string args[]) { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); try { Registry registry = LocateRegistry.getRegistry(2002); Hello obj = (Hello) registry.lookup("hello"); String message = obj.sayhello(); System.out.println(message); catch (Exception e) { System.out.println("HelloClient exception: " + e.getmessage()); e.printstacktrace(); Grupo de Arquitectura de Computadores 35 18
19 PASO 1: Compilar las clases remotas interface, client y server javac -d. XorInputStream.java javac -d. XorOutputStream.java javac -d. XorSocket.java javac -d. XorServerSocket.java javac -d. XorServerSocketFactory.java javac -d. XorClientSocketFactory.java javac -d. Hello.java javac -d. HelloClient.java javac -d. HelloImpl.java PASO 2: Ejecutar rmic para generar stubs y skeletons. rmic -d. examples.rmisocfac.helloimpl Grupo de Arquitectura de Computadores 36 PASO 3: Lanzar el servidor java -Djava.security.policy=policy examples.rmisocfac.helloimpl PASO 4: Lanzar el cliente java -Djava.security.policy=policy examples.rmisocfac.helloclient Grupo de Arquitectura de Computadores 37 19
20 Comentarios-dudas frecuentes Diferencias entre: registry.rebind("rmi://localhost/flightservices:1099",new RemoteConnection()"); Y Naming.rebind("rmi://localhost/FlightServices:1099",new RemoteConnection()"); Estructura de Naming.rebind: public static void rebind(string name, Remote obj) throws RemoteException, java.net.malformedurlexception { ParsedNamingURL parsed = parseurl(name); Registry registry = getregistry(parsed);if (obj == null) throw new NullPointerException("cannot bind to null"); registry.rebind(parsed.name, obj); Grupo de Arquitectura de Computadores 39 20
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Contenido Interfaz Implementación Servidor Cliente Puesta en marcha de la aplicación: Compilador
JAVA RMI (REMOTE METHOD INVOCATION)
JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación
en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina
Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera
Invocación de métodos remotos en Java: JAVA - RMI
Diseño Y Aplicaciones de Sistemas Distribuidos Invocación de métodos remotos en Java: JAVA - RMI Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València
Java RMI. Sistemas distribuidos
Java RMI Sistemas distribuidos Entornos orientados a objetos Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí. Un programa solicita servicios invocando los
1. Visión general de RMI
1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina
RMI. Aplicaciones Distribuidas
RMI Aplicaciones Distribuidas Contenido Objetos Distribuidos y RMI. Interface Remota. Clase Implementación. Referencias Remotas. Registro RMI. Paso de parámetros. Descarga dinámica de código. Desarrollo
Código Fuente. Creamos en C:\ una carpeta para ubicar el código fuente del servidor. En mi caso, he creado una carpeta denominada rmi4
EL EJEMPLO El proceso servidor provoca un eco de la entrada de teclado enviada por el proceso cliente. Por sencillez, ejecutaremos tanto el servidor como el cliente en la máquina local. El sistema operativo
Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java
Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases
Objetos Distribuidos
Objetos Distribuidos Objetos Distribuidos Conceptos Estado: encapsula los datos Métodos: operaciones sobre los datos Interfaz: se utiliza para la disponibilidad de los métodos El Estado y la Interfaz se
El servicio de echo en Java-RMI
PRÁCTICA 3 El servicio de echo en Java-RMI E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor echo basada en java-rmi. La práctica tiene dos partes: La primera parte implementa
RMI Remote Method Invocation
2 RMI Remote Method Invocation Dr. Víctor J. Sosa Sosa Introducción La invocación remota de métodos de Java es un modelo de objetos distribuidos, diseñado específicamente para ese lenguaje, por lo que
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones ([email protected]) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
Modelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura
Una introducción a Java RMI
Una introducción a Java RMI César Llamas Bello Estas transparencias no hubieran sido posible sin el tutorial de José M. Vidal Swearingen Engineering Center, University of South Carolina, Columbia Introducción
Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. 1 Paradigmas de desarrollo Desarrollo basado en protocolos Se diseña el protocolo Se elaboran los módulos para manejo
RMI [Remote Method Invocation]
RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams
Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu)
Devoluciones de llamada en RMI (Callbacks) Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu) Devolución de llamadas, introducción Cliente-servidor clásico servidorpasivo Tipo pull.
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI Héctor Pérez 2 MobileTracker: Especificación El computador de la torre de control ejecuta el servicio Follower que registra los
JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005
JAVA - Serializacíon / RMI (C) Philippe Roose - 2004, 2005 Serializar objetos- concepto Desde el JDK 1.1 Serializar objetos permite de escribir un objeto en un fichero como un flujo de octets (archivo
VII.1: RMI: Remote Method Invocation
PROGRAMACION CONCURRENTE Y DISTRIBUIDA VII.1: RMI: Remote Method Invocation Posibilidades que ofrece Java para la comunicación en red: Socket,RMI y URL. 1 Sistemas distribuidos basados en middleware Client
Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos
Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos
Interacción entre Aplicaciones: objetos distribuidos e invocación remota
Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones
Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.
Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
Tema 3. Objetos distribuidos
Tema 3. Objetos distribuidos SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs octubre 2008 FJRP, FMBR 2008/09 ccia SCS 3.1 Modelo de objetos distribuidos Objetivo: Extender
El servicio de echo con sockets
PRÁCTICA 2 El servicio de echo con sockets E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor "echo" basada en sockets TCP pero estructurándola según el modelo de objetos
Práctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es
Object Oriented Middleware: Java RMI
Object Oriented Middleware: Java RMI LSUB GSYC 20 de abril de 2016 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento
FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información
FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de
Invocación remota de métodos. Jorge Iván Meza Martínez
Invocación remota de métodos Jorge Iván Meza Martínez [email protected] Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/58 Contenidos Capas de middleware
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Ejemplo de uso de estrategias de diseño con RMI Héctor Pérez 2 Ejemplo de callback: SwiftEagle shot() setdirection() Target nearnessreport(target,observer) signal? explode() SwiftEagle
CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs
CONTENIDO RMI AVANZADO Carga dinamica de stubs Callbacks Carga dinámica de Stubs Para tener acceso a un objeto remoto mediante RMI, el cliente debe recibir un stub serializado y deserializarlo. El stub
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Aspectos avanzados de RMI Héctor Pérez 2 Objetivos Análisis de un conjunto de estrategias de diseño utilizando RMI que nos pueden servir de guía para el diseño de sistemas distribuidos
1. Introducción. 1.1 Construcción de una aplicación CORBA
1. Introducción 1.1 Construcción de una aplicación CORBA Toda aplicación CORBA empieza con la definición de las interfaces de los objetos que pueden distribuirse. Para ello se utiliza el lenguaje IDL.
Entiendo los métodos de Java equals y hashcode
Todos los días cuando programamos usamos objetos y en muchas ocasiones necesitamos comparar unos con otros. Para ello en muchas ocasiones usamos los métodos de de Java equals y hashcode. Estos métodos
Cliente/Servidor en Java
Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos
TEMA 7: Paso de Mensajes con RMI
CONTENIDO: TEMA 7: Paso de Mensajes con RMI Conceptos de Programación Distribuida Remote Method Invocation (RMI) en Java El Nivel de Resguardos La Responsable de que Todo Funcione: la interfaz El precompilador
Práctica 4: Java Remote Method Invocation (RMI)
Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado
Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda
Desarrollo de Aplicaciones Distribuidas Sockets Daniel Avellaneda Sockets en Java Qué es un Socket Un socket es una abstracción a través de la cual una aplicación pueden mandar y recibir datos. Un socket
HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Una aplicación sencilla con CORBA y Java
Una aplicación sencilla con CORBA y Java Sistemas Distribuidos: Programación con CORBA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Facultad de Informática,
Java RMI. las RPC de Java. Parte II. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte II Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 00 Distribución de clases I Es conveniente distinguir: servidor. Necesarias
PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
Procesamiento distribuido en Java
Diseño Y Aplicaciones de Sistemas Distribuidos Procesamiento distribuido en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Contenidos
Ingeniería del Software Arquitectura Física en 3 niveles
Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Introducción a RMI (Remote Method Invocation) Héctor Pérez 2 Abstracción de comunicaciones en sist. distribuidos proporciona la base para la comunicación programación estructurada
Federico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar
Sockets en Java Prof. Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos situados en diferentes máquinas? Sockets
Tema 4: INVOCACIÓN REMOTA
Tema 4: INVOCACIÓN REMOTA E. U. Informática en Segovia Departamento de Informática Universidad de Valladolid SD_TE04_20050509 EUI-SG/INFOR.UVA.ES 1 4.1 Introducción Invocación remota: integra programas
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor Creación de Sockets Cliente/Servidor Sockets en TCP Sockets en UDP Definición de DAEMON Concepto de Hilos Qué es un socket? Un socket
TEMA 4: PROGRAMACIÓN DISTRIBUIDA
TEMA 4: PROGRAMACIÓN DISTRIBUIDA!" #!$ %! % & '( '')* (+,( -./0%1' 2%1/../ -3% 450 -(.40( %16 2%1/../ -3% /.0-2%..02%% 7-89:08 1! "!;1 %1499: No existe memoria común Comunicaciones No existe un
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos
Universidad de Cantabria [email protected]
Networking Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Aprender los conceptos básicos de redes y su implementación en Java
Sistemas de Información
Sistemas de Información Tecnologías de objetos distribuidos: RMI Agradecimientos: Marisol García Valls, Jesús Villamor Lugo, Simon Pickin de IT/UCIIIM [email protected] RMI (Remote Method Invocation) Concepto
CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción
CORBA desde Java Diego Sevilla Ruiz Sistemas Distribuidos Índice 1. Introducción 1 2. Primeros pasos 1 2.1. Fichero IDL................................... 1 2.2. Cliente......................................
PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Remote Method Invocation (RMI) de Java
Remote Method Invocation (RMI) de Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. Introducción El mecanismo RMI (Remote Method Invocation)
SISTEMAS DISTRIBUIDOS
Sesión 5: Tema 8: Objetos Distribuidos e Invocación Remota. Java RMI SISTEMAS DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA UNED Introducción Índice (1/2) Modelos de programación de aplicaciones distribuidas.
Diseño de tipos Igualdad, representación, código, copia y relación de orden
Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones
Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.
Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN MARTÍN TEXMELUCAN INGENIERÍA EN SISTEMAS COMPUTACIONALES. Sistemas Distribuidos
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN MARTÍN TEXMELUCAN INGENIERÍA EN SISTEMAS COMPUTACIONALES Sistemas Distribuidos PRÀCTICA 3: El servicio de echo en Java-RMI Profesor: Susana Garrido Cortes Alumnos:
Aplicaciones Cliente-Servidor Con Datagramas
Aplicaciones Cliente-Servidor Con Datagramas User Datagram Protocol (UDP) UDP es un protocolo que no garantiza la comunicación entre dos aplicaciones. No está basado en conexión. Envía paquetes de datos
Tema 4. Excepciones en Java
Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Distribución basada en el patrón proxy-servant Héctor Pérez 2 Distribución de aplicaciones basadas en objetos Objetivo: rediseño de una aplicación orientada a objetos para ser
