A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo OCW 2013
|
|
- Andrea Carrasco Contreras
- hace 6 años
- Vistas:
Transcripción
1 4.3: Computación distribuida: Java RMI A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo OCW 2013
2 Indice RMI: Introducción Construcción de aplicaciones RMI Dfii Definir Interfaz remota Implementar interfaz remota: Clase remota Registrar objeto clase remota Localizar y ejecutar objeto remoto Arquitectura RMI Ejemplo Conexión entre nivel de presentación, lógica del negocio y nivel de datos Evolución del sistema 105
3 Introducción a RMI RMI (Remote Method Invocation) Es un API, Conjunto de interfaces, clases y métodos que permiten desarrollar en Java aplicaciones distribuidas de manera sencilla Equivalente a RPC (Remote Procedure Call) Existen otros estándares como CORBA Permite desarrollar aplicaciones distribuidas usando distintos Lenguajes de Programación 106
4 Introducción a RMI Clase Cliente1... Clase ClienteN... EN NODOS CLIENTE Clase GestorBilletes - listabilletes: Vector - maxbilletes: int + getgestor(): GestorBilletes + getbillete(nom: String): int // Dev. nº billete asignado o -1 si no hay -- Clase con 1 sola instancia (Singleton) -- El método static getgestor() la devuelve EN NODO SERVIDOR En una arquitectura distribuida no se puede hacer lo siguiente: GestorBilletes g = GestorBilletes.getGestor(); return g.getbillete("kepa t Sola"); Ya que GestorBilletes es un objeto de la máquina virtual remota 107
5 Construcción aplicaciones RMI Para construir una aplicación Cliente/Servidor donde un cliente acceda a un servicio remoto (clase remota) usando RMI hay que: 1.- Definir la interfaz remota 2.- Implementar la interfaz remota (clase remota) 3.- Registrar un objeto de la clase remota 4.- Localizar y ejecutar el objeto remoto 108
6 1. Definir la interfaz remota Cliente1... Cliente2... Interfaz GestorBilletes + getbillete(nom: String): int // Dev. nº billete asignado o -1 si no hay -- INTERFAZ REMOTA RMI permite invocar a un objeto remoto Para ello hay que definir una interfaz remota Así, un cliente puede hacer lo siguiente: GestorBilletes g; // Código para obtener la dirección del // objeto remoto y dejarlo en g return g.getbillete( Kepa Sola ); 109
7 1. Definir la interfaz remota // GestorBilletes.java import java.rmi.*; public interface GestorBilletes extends Remote { public int getbillete(string g nom) throws RemoteException; } Interfaz java.rmi.remote -- INTERFAZ REMOTA Interfaz GestorBilletes + getbillete(nom: String): int -- INTERFAZ REMOTA La interfaz extiende java.rmi.remote Todos los métodos deben lanzar java.rmi.remoteexception 110
8 2. Implementar la Interfaz Remota La clase Remota Clase java.rmi.server.unicastremoteobject Interfaz java.rmi.remote -- CLASE REMOTA extiende -- INTERFAZ REMOTA extiende Clase ServidorGestorBilletes + getbillete(nom: String): int -- CLASE REMOTA implementa Interfaz GestorBilletes + getbillete(nom: String): int -- INTERFAZ REMOTA El servidor implementa la interfaz remota Extiende java.rmi.server.unicastremoteobject 111
9 2. Implementar la Interfaz Remota La clase Remota // ServidorGestorBilletes.java a import java.rmi.*; import java.rmi.server.unicastremoteobject; import java.util.*; public class ServidorGestorBilletes extends UnicastRemoteObject implements GestorBilletes{ private Vector listabilletes = new Vector(); private static int maxbills = 50; public ServidorGestorBilletes() throws RemoteException{} public int getbillete(string nom) throws RemoteException{ //lógica de negocio num=9999; // Devuelve siempre el billete return num; } 112
10 3. Registrar un objeto de la clase remota Se crea un registro en el servidor (en ( el main () la misma clase que el objeto u otra distinta) java.rmi.registry.locateregistry.createregistry(numpuerto); registry createregistry(numpuerto); main() de Se crea un objeto de la clase remota ServidorGestorBilletes objetoservidor = new ServidorGestorBilletes(); Se crea un nombre para ese servicio String servicio = "rmi://localhost:1099//gestorbilletes"; // si 1099 es numpuerto Se registra ese servicio con ese nombre Naming.rebind(servicio,objetoServidor) 113
11 3. Registrar un objeto de la clase remota Ejemplo class ServidorRemoto public static void main(string[] args) { //Falta el java.policy try { java.rmi.registry.locateregistry.createregistry(1099); registry createregistry(1099); } catch (Exception e) {System.out.println( Rmiregistry ya lanzado +e.tostring());} } try { ServidorGestorBilletes objetoservidor = new ServidorGestorBilletes(); 3 String servicio = "//localhost/gestorbilletes"; // "//localhost:numpuerto/nombreservicio" // Registrar el servicio remoto 4 Naming.rebind(servicio,objetoServidor); } catch (Exception e) {System.out.println("Error al lanzar el servidor");}
12 3. Registrar un objeto de la clase remota El registrador: r RMIRegistry java.rmi.registry.locateregistry.createregistry(p) Crea el proceso rmiregistry en el puerto p. El rmiregistry lanzado no acaba aunque acabe el servidor RMI Lanza una excepción si el puerto está ocupado try { java.rmi.registry.locateregistry.createregistry(1099); } catch (Exception e) {System.out.println( println( Rmiregistry ya lanzado +e.tostring());} Código que lanza el rmiregistry y controla la excepción que se puede levantar al reejecutar varias veces el servidor RMI Parar el rmiregistry:unicastremoteobject.unexportobject(registry, true); 115
13 4. Localizar y ejecutar el objeto remoto Clase java.rmi.server.unicastremoteobject Interfaz java.rmi.remote -- CLASE REMOTA -- INTERFAZ REMOTA extiende Clase ServidorGestorBilletes + getbillete(nom: String): int -- CLASE REMOTA implementa extiende Interfaz GestorBilletes + getbillete(nom: String): int -- INTERFAZ REMOTA El cliente busca el objeto remoto, a partir del nombre lógico Pide al servidor que ejecute los métodos que desee usa Clase Cliente ges : GestorBilletes -- CLASE CLIENTE 116
14 4. Localizar y ejecutar el objeto remoto import java.rmi.*; public class Cliente { public static void main(string[] args) { // Falta gestion java.policy 1 GestorBilletes objremoto; String nomserv = "rmi://localhost/gestorbilletes"; // "rmi://direccionip:numpuerto/nombreservicio" try { 2 objremoto = (GestorBilletes)Naming.lookup(nomServ); int b = objremoto.getbillete(args[0]); 3 if (b==-1) System.out.println("No hay billetes"); else System.out.println("Obtenido : "+b); } catch (Exception e) { System.out.println("Error... t tl ");}} }} 117
15 Arquitectura RMI objremoto.getbillete("koldo") RETURN: 5 Máquina virtual java CLIENTE Máquina virtual java SERVIDOR objservidor.getbillete("koldo") t ld Se desea conseguir que lo que se le pida al sea ejecutado por el en otra máquina virtual Java 118
16 Arquitectura RMI Cliente Maquina virtual java Cliente RED Maquina virtual java Servidor Objeto Stub ServidorGestorBilletes (impl. Skeleton ServidorGestorBilletes (impl. GestorBilletes) Stub ServidorGestorBilletes: Representante del objeto ServidorGestorBilletes en el cliente Skeleton ServidorGestorBilletes: Representante del objeto ServidorGestorBilletes en el servidor NOTA: Los objetos Stub, Skeleton y el objeto remoto comparten la misma interfaz POR LO TANTO: hay yq que asegurarse de que las clases STUB y la INTERFAZ REMOTA están accesibles en el cliente (copiándolas en el mismo, por ejemplo) 119
17 Arquitectura RMI: Objetos Stub y Skeleton Programa Cliente Programa Servidor call return call return Stub Skeleton Nivel de Referencia Remota Nivel de Transporte Nivel Nve de Referencia Remota Nivel de Transporte Conexión TCP/IP Los objetos Stub y Skeleton eto se encargan de realizar a la conexión y del paso de parámetros y resultados 120
18 Arquitectura RMI: Objetos Stub y Skeleton En principio, i i los stubsy tb los skeleton klt se pasan los objetos enviados como parámetros y los resultados REALIZANDO UNA COPIA DE SUS VALORES (y de los objetos incluidos en ellos, recursivamente). No se pasan referencias a un objeto remoto. Para ello, se usan los mecanismos de serialización de Java POR LO TANTO: las clases de los objetos que se pasen por parámetro en métodos remotos deben implementar la interfaz Serializable 121
19 Arquitectura RMI: Generación de stubs y skeletons El STUB y SKELETON están asociados a la interfaz remota y a la clase remota GestorBilletes.java GestorBilletes.class Stub ServidorGestorBilletes.java ServidorGestorBilletes.class Skeleton Cuando se compilan se añaden el Stub y el Skeleton a las clases correspondientes(jdk6.0) Nota: se generaban explícitamente como clases independientes usando la herramienta RMIC EL STUB: GestorBilletes.class tiene que quedar disponible para la máquina cliente.
20 Arquitectura RMI Relación entre Stub y Skeleton rmiregistry rebind (Servidor) java.rmi.registry.locateregistry.createregistry(p) GestorBilletes objetoservidor =new ServidorGestorBilletes(); String nombreservicio = //localhost/gestorbilletes ; // //localhost:numeropuerto/nombreservicio ; // Registrar servicio i remoto Naming.rebind(nombreServicio,objetoServidor); GestorBilletes.class (STUB) Instancia Lógica de Negocio ServidorGestorBilletes Skeleton Clase Clase de acceso a la Logica Remota Stub
21 Arquitectura RMI Relación entre Stub y Skeleton rmiregistry lookup (Cliente) GestorBilletes t objetoremoto t = (GestorBilletes)Naming.lookup( rmi://ip_servidor/gestorbilletes ); en puerto 1099, por defecto El método lookup, devuelve del registro una instancia de acceso a la lógica remota(stub). Esta instancia será la responsable de comunicarse (a través del Skeleton) con el objeto servidor. puerto 1099 Maquina virtual Java ubicada en IP_Servidor RMIREGISTRY GestorBilletes Naming.rebind( //localhost/gestorbilletes,objetoservidor); / en puerto 1099, por defecto 124
22 Arquitectura RMI Gestor de seguridad d Un programa Java debe especificar un gestor de seguridad que determine su política de seguridad. Algunas operaciones requieren que exista dicho gestor. En concreto, las de RMI. RMI sólo cargará una clase Serializable desde otra máquina si hay un gestor de seguridad que lo permita Se puede establecer un gestor de seguridad por defecto para RMI de la siguiente manera: System.setSecurityManager( new RMISecurityManager()); 125
23 Arquitectura RMI Gestor de seguridad El gestor de seguridad por defecto de RMI utiliza una política muy restrictiva. Sólo se pueden ejecutar STUBs del CLASSPATH local Se puede cambiar, indicando otro fichero de política de seguridad: System.setProperty(" ("java.security.policy", c:\\mipath\\java.policy"); Contenido del fichero java.policy java.policy: grant { permission java.security.allpermission; a.secu e ss }; 126
24 Arquitectura RMI Gestor de seguridad d También se puede indicar para cada ejecución cuál es la política de seguridad (esto es, usar la opción -Djava.security.policy = fichero_políticaseguridad) O bien, el fichero java.policy, hay dejarlo en un directorio concreto, conocido por la máquina virtual. De esa manera, todas las aplicaciones lanzadas con esa máquina virtual usarán dicha política de seguridad Si la máquina virtual que se ejecuta es esta: DIRECTORIO_JDK_O_JRE\bin\java.exe El fichero java.policy hay que dejarlo en DIRECTORIO_JDK_O_JRE\lib\security 127
25 import java.rmi.*; import java.sql.*; Ejemplo: Servidor Remoto accede a BD import java.rmi.server.unicastremoteobject; i t t import java.util.*; public class ServidorGestorBilletesBD extends UnicastRemoteObject implements GestorBilletes { private static Connection conexion; private static Statement sentencia; public ServidorGestorBilletesBD() throws RemoteException{ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); sun.jdbc.odbc.jdbcodbcdriver conexion=drivermanager.getconnection("jdbc:odbc:bill"); sentencia=conexion.createstatement(); conexion.setautocommit(false);// Habrá que hacer COMMITs } catch(exception e) { System.out.println( Error: "+e.tostring());} } public int getbillete(string nom) throws RemoteException {.. 128
26 Ejemplo: Servidor Remoto accede a BD // Método main de ServidorGestorBilletesBD.java public static void main(string[] args) { System.setProperty("java.security.policy,"F:\\iso\\java.policy"); System.setSecurityManager(new RMISecurityManager()); try { java.rmi.registry.locateregistry.createregistry(1099); } catch (Exception e) {System.out.println( Rmiregistry ya lanzado +e.tostring());} try { ServidorGestorBilletesBD objetoservidor = new ServidorGestorBilletesBD(); String maquina = "//localhost/"; // o bien el nombre IP: //sisd00.si.ehu.es/ String servicio = "gestorbilletes"; String servicioremoto i = maquina+servicio; i i // Registrar el servicio remoto Naming.rebind(servicioRemoto,objetoServidor); }catch (Exception e) {System.out.println("Error: "+e.tostring());} }} 129
27 Conexión entre nivel de presentación, lógica del negocio y datos Hst Hasta ahora hr hemos hms considerado nsidrd que en el lni nivel ld de presentación, el objeto con la lógica del negocio se encuentra en un atributo (de tipo interface Java) Utilizando RMI se puede seguir con esa misma idea, pero en este caso la interfaz es remota En vez de asignarle al objeto de presentación, el objeto con la lógica del negocio se puede hacer que sea el objeto de presentación quien lo busque (usando lookup). Cambiar la lógica del negocio consiste en sustituir un objeto por otro en el servidor. 130
28 RMIREGISTRY y ServidorGestorBilletesBD en la misma máquina (IPServidor), pero cada uno en DISTINTAS MÁQUINAS VIRTUALES JAVA RmiRegistry está escuchando en un puerto (1099) objremoto:servidorgestorbillet esbd mainservidorgestorbilletesbd new Mirar métodos de LocateRegistry.createRegistry Naming exportobject(puertoanonimo) (1) Rmiregistry i rebind("localhost:1099/gestorbilletes",objremoto) getref() : PedirBillete Naming lookup("rmi://ipservidor:1099/gestorbilletes") stub getbillete("pepe") numbilleteparapepe SOCKET("IPservidor",1099,"gestorBilletes") (5) (6) PresentacionRemoto en otra máquina A. Goñi. Dpto. LSI, UPV/EHU SOCKET(stub) stub: ServidorGestorBilletesBD _Stub referenciaaobjremoto (2) (3) SOCKET("localhost",1099, gestorbilletes,stub) new(referenciaaobjremoto) stub: ServidorGestorBilletesBD _Stub (4) () Se pasa el objeto STUB serializado, El cliente cargará dinámicamente la clase ServidorGestorBilletesBD_Stub SOCKET("IPServidor", PuertoAnonimo,"gestorBilletes","getBillete","Pepe") SOCKET(numBilleteParaPepe) (7) (1) Se debe lanzar el RMIREGISTRY PARA QUE FUNCIONE RMI (2) Se debe haber generado el STUB (con RMIC, para versiones anteriores a JDK 6) (3) La clase STUB debe estar accesible en el CLASSPATH del SERVIDOR (4) Se debe permitir el USO DE SOCKETS (POLÍTICA DE SEGURIDAD) (5) La clase STUB debe estar accesible en el CLASSPATH del CLIENTE, o bien, se debe lanzar indicando de dónde descargarlo (CODEBASE) 131 (6) Se debe permitir la DESCARGA DINÁMICA DE CLASES (POLÍTICA DE SEGURIDAD) (7) Los parámetros y resultados de los métodos remotos deben ser de clases SERIALIZABLES
29 ARQUITECTURA FÍSICA EN 2 NIVELES: Interface LogicaNegocio CLIENTE GORDO / SERVIDOR FLACO hacerx( ) hacery( ) Clase Presentacion usa logne: LogicaNegocio setlogicanegocio (l: LogicaNegocio) // Permite cambiar lógica // negocio en tº ejecuc. clase LogicaNegocioConcreta // i tº j hacerx( ) // Implementaciones hacery( ) // llaman al nivel de // datos (usan JDBC) -- En esta clase se llama -- a la lógica del negocio: Por ej.: logne.hacerx( ) CREAR LA INTERFAZ GRÁFICA Y ASIGNAR LÓGICA DEL NEGOCIO: Presentacion p = new Presentacion(); p.setlogicanegocio(new LogicaNegocioConcreta()); p.setvisible(true); 132
30 ARQUITECTURA FÍSICA EN 3 NIVELES usando RMI Interface LogicaNegocio Clase Presentacion logne: LogicaNegocio usa hacerx( ) hacery( ) interfaz Remota setlogicanegocio (String nomserv) // Por ejemplo aquí se // puede asignar a logne clase LogicaNegocioConcreta // d i l N hacerx( ) // Implementaciones hacery( ) // llaman al nivel de // datos (usan JDBC) -- En esta clase se llama -- a la lógica del negocio: Por ej.: logne.hacerx( ) -- Para asignar la lógica -- del negocio se usa Naming.lookup y NomServ -- La lógica del negocio se crea -- y se exporta usando: Naming.rebind y dando un nombre de servicio: NomServ 133
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
Más detallesIngenierí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
Más detallesJAVA 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
Más detallesModelo 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
Más detalles1. 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
Más detallesLlamada 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:
Más detallesJava 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
Más detallesDISEÑ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 (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
Más detallesJAVA - 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
Más detallesen 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
Más detallesPrá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
Más detalles5.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
Más detallesSistemas 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
Más detallesArquitectura 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
Más detallesPROGRAMACION 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
Más detallesRMI [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
Más detallesJava 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.
Más detallesCAPITULO 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
Más detallesInteracció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
Más detallesCONTENIDO. 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
Más detallesTema 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
Más detallesRemote 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
Más detallesRemote Method Invocation (RMI)
Que deseamos hacer con objetos remotos Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. Cliente Result = Obj.method1(val1) Servidor Def Obj { int method1(int v) { string
Más detallesPROGRAMACION 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
Más detallesFSD 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
Más detallesSistemas 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.
Más detallesPrá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
Más detallesRMI 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
Más detallesEl sueño de todo sistema distribuido
Cómputo Distribuido Mediante RMI (Remote Method Invocation) ) Modelo de objetos Modelo de objetos en sistemas distribuidos El sueño de todo sistema distribuido Máquina A Máquina B Máquina C Lo ideal sería
Más detallesUna 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
Más detallesTEMA 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
Más detallesIntroducción Descripción del servicio
507953 1 Contenido Contenido Cambios Introducción Descripción del servicio Introducción Arquitectura Paso a paso Capa de negocio Adapter Interface Service Proxy Fichero de propiedades Despliegue del servicio
Más detallesSISTEMAS 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.
Más detallesRemote 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)
Más detallesPROGRAMACION 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
Más detallesTutorJava recomienda...
TutorJava recomienda... Invocación Remota de Métodos (RMI) Autor-Traductor: Juan Antonio Palos (Ozito) Puedes encontrar la Version Original en Ingles en ( http://java.sun.com) Leer comentarios (0) Escribir
Más detallesSistemas 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 mcfp@it.uc3m.es RMI (Remote Method Invocation) Concepto
Más detallesVII.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
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesInvocación de Métodos Remotos: prácticas de laboratorio
Invocación de Métodos Remotos: prácticas de laboratorio Coromoto León Hernández, Gara Miranda Valladares Dpto. de Estadística, Investigación Operativa y Computación Universidad de La Laguna c/astrofísico
Más detallesPráctica 5: Common Object Request Broker Architecture CORBA
Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker
Más detallesTema 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
Más detalles'HVDUUROORGH$SOLFDFLRQHV FRQ-DYD50,
'HVDUUROORGH$SOLFDFLRQHV FRQ-DYD50, /DERUDWRULRGH,QJHQLHUtDGHO6RIWZDUH &RQWHQLGR Antecedentes Introducción a los Sistemas Distribuidos Sockets RPC Java RMI Características Modelo de Objetos Distribuidos
Más detallesFRAMEWORK 2 Recepción de SMS
FRAMEWORK 2 Versión 1.1 Área de Integración y Arquitectura de Aplicaciones Hoja de Control Título Documento de Referencia Responsable FW2_MUS_Recepcion_SMS Área de Integración y Arquitectura de Aplicaciones
Más detallesCapa de Gestión de Datos. Persistencia Bases de Datos - JDBC
Capa de Gestión de Datos Persistencia Bases de Datos - JDBC Persistencia - Ficheros Persistencia - Serialización 1 Persistencia Las instancias y objetos de las clases sólo existen mientras se ejecuta el
Más detallesPráctica sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
Más detallesCORBA 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......................................
Más detallesUniversidad Politécnica de Valencia
Universidad Politécnica de Valencia Facultad de Informática Proyecto Final de Carrera Acceso a datos multimedia utilizando los métodos de invocación remota (RMI) de Java Director proyecto: D. Pietro Manzoni.
Más detallesINTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Índice Paso de parámetros en tiempo de ejecución Métodos static Atributos static Try-catch-finally Throws/throw 2 Paso de
Más detallesCaracterísticas generales del lenguaje Java. María a Consuelo Franky
Características generales del lenguaje Java María a Consuelo Franky 1 Temario ❶ Historia del desarrollo de Java ❷ Ventajas sobre otros lenguajes O.O. ❸ applets vs. aplicaciones ❹ Vistazo global a las características
Más detallesINGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2002
INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2002 NOMBRE: GRUPO: 1.- (0,5 ptos.) (Tiempo estimado: 10 ) Enuncia cuáles son las interfaces que se tienen que definir para desarrollar
Más detallesComponentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina
Componentes Distribuidos EJBs Ing. Cesar Julio Bustacara Medina Introducción La Clase del Bean Contiene la lógica del Enterprise Bean. Es una clase Java pública, que implementa los métodos de negocios
Más detallesBase de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos
Base de Datos JDBC Unidad: 1 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Repaso clase anterior Sentencias preparadas PreparedStatement
Más detalles1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos
Tema 9. Paradigmas Avanzados de computación distribuida 1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos Tema 9 Paradigmas Avanzados de Computación Distribuida
Más detallesSISTEMAS DISTRIBUIDOS
Sesión 6: Java RMI. Primeros pasos SISTEMAS DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA UNED Índice Proyecto básico. Chat abierto. Servicios que ofrece el servidor: Escribir mensaje: escribir(mensaje)
Más detallesSolución Examen Junio 2007 (a) Ejercicio GeoTaxi (1h 20 min.) Diagrama de Casos de Uso y. Casos de uso (2,5 puntos) Modelo de Dominio (1,5 puntos)
Solución Examen Junio 2007 (a) Ejercicio GeoTaxi (1h 20 min.) Diagrama de Casos de Uso y Casos de uso (2,5 puntos) Modelo de Dominio (1,5 puntos) 1 Actores OPERADOR CLIENTE TAXISTA 2 Actor Cliente Identificarse
Más detallesPrimera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.
Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun
Más detallesIntroducció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
Más detalles- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo
- Introdución a Java - Breve historia de Java - Características del lenguaje Java - Estructura del JDK 1.6 - Documentación del API (JavaDoc) - Instalar y configurar el ambiente de desarrollo - La variable
Más detallesJava en 2 horas. Rodrigo Santamaría
+ Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión
Más detalles1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
Más detallesJAVA 7 Los fundamentos del lenguaje Java
Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado
Más detallesArquitectura Centrada en la Web para el Control y Monitoreo de Funcionalidad Domótica
Arquitectura Centrada en la Web para el Control y Monitoreo de Funcionalidad Domótica E. Echeverría; T. Ballari; H. Molina; E. Wainerman; L. Olsina GIDIS - Dpto. de Computación, Facultad de Ingeniería,
Más detallesLABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)
LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I) SEPARACIÓN DEL NIVEL DE PRESENTACIÓN Y LÓGICA DE NEGOCIO MEDIANTE EL USO DE INTERFACES JAVA 1. OBJETIVO Los objetivos de este laboratorio
Más detallesLABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)
LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I) SEPARACIÓN DEL NIVEL DE PRESENTACIÓN Y LÓGICA DE NEGOCIO MEDIANTE EL USO DE INTERFACES JAVA 1. OBJETIVO Los objetivos de este laboratorio
Más detallesConceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Más detallesReutilización de software
Reutilización de software A nivel de clase: Clases y algoritmos JGL A nivel de diseño Patrones de diseño A nivel de arquitectura Arquitectura J2EE 1 Aplicaciones Web Servidor Introducción a la arquitectura
Más detallesTEMA 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
Más detallesGESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Más detallesSockets 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
Más detallesclass Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }
REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)
Más detallesSistemas de colas de mensajes
Tema 9. Paradigmas Avanzados de computación distribuida 1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos Sistemas de colas de mensajes Tema 9 Paradigmas Avanzados
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesSockets. 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
Más detallesPuertos (Breve repaso) No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables Reconfigurables
CNTENID: TEMA 7: aso de Mensajes con MI Conceptos de rogramación n Distribuida Conceptos de rogramación Distribuida emote Method Invocation (MI) en Java El Nivel de esguardos La esponsable de que Todo
Más detallesUniversidad ORT - Arquitectura de Software. Requisitos
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación
Más detallesSISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo
SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo AGENDA El modelo Cliente Servidor. Introducción a RMI Practica Cliente Servidor utilizando RMI. Modelo Cliente Servidor El modelo Cliente Servidor
Más detallesPráctica 5: Callbacks RMI.
Práctica 5: Callbacks RMI. Ejercicio 1. (Será realizado en la Sala de Computo) El siguiente ejercicio describe los pasos a seguir para aplicar el mecanismo Callback con Java RMI. En este ejercicio se requiere
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesProgramación Orientada a Objetos, 3 er curso Ejercicios resueltos
Programación Orientada a Objetos, 3 er curso Ejercicios resueltos 1. Cómo es posible crear objetos de una clase cuyos constructores son todos privados? a) Definiendo un método estático público en la clase
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia
Más detallesFederico 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
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesIntroducción Entorno de ejecución Referencias Descripción del servicio
507953 1 Contenido Contenido Cambios Introducción Entorno de ejecución Referencias Descripción del servicio Introducción Arquitectura Paso a paso Interface Service Proxy Fichero de propiedades Despliegue
Más detallesUniversidad Don Bosco. Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC
Universidad Don Bosco CICLO: 01/2010 Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC Protección de miembros de la clase ->El principio de ocultación de información se
Más detallesHerramientas Concurrentes en JAVA
Herramientas Concurrentes en JAVA David Jesús Horat Flotats ÍNDICE 1. Introducción n a Java 2. Herramientas Concurrentes en Java 3. Lectores Escritores (2º) 4. Filósofos comensales 5. Chat usando RMI 6.
Más detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesPackages, Classpath y
Packages, Classpath y utilidad JAR Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear e importar packages Conocer
Más detallesVariables De Entorno Para Configuración
Variables De Entorno Para Configuración Rev. Fecha Descripción 1.0 20/10/2009 Versión inicial Documento: Ficheros relacionados: Preparado por: Revisado por: Aprobado por: Variables De Entorno Para Configuración
Más detallesUnidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Más detallesJava en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría
Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas
Más detallesServicios Web: Concepto
Servicios Web y RMI http://www.it.uc3m.es/pedmume/ Servicios Web: Concepto Uso más habitual de un servidor es dar una respuesta al usuario de una determinada página (PHP, ASP, J2EE ). Las páginas están
Más detallesJava Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Más detallesSerialización de datos en C# en Binario, Soap y Xml
Serialización de datos en C# en Binario, Soap y Xml Quizás muchos desarrolladores hayan escuchado hablar del termino serializar la información y no saber de que se trata. Pues bien, resulta que la serialización
Más detallesServicios web con SOAP y Eclipse
PRÁCTICA 8 Servicios web con SOAP y Eclipse E l objetivo de esta práctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La práctica está estructurada en tres partes según se
Más detalles1. Aplicaciones del J2SE SDK1.4.2 de Sun.
Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura
Más detallesNORMAS PARA LA ENTREGA DE LOS LABORATORIOS
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Bases de Datos I - Laboratorio # 5 - SQL 3: Conexión de Programas Java con DBMS Entrega: Sábado, 29 de Noviembre de 2014 NORMAS PARA
Más detallesRepaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
Más detallesCliente/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
Más detalles