TEMA 7: Paso de Mensajes con RMI

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 7: Paso de Mensajes con RMI"

Transcripción

1 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 rmic Arquitectura Completa de una Aplicación Evoluciones Reseñables BIBLIOGRAFÍA: [Eck02] Eckel, B. Piensa en Java. Prentice Hall, [Hil00] Hilderink et al. Communicating Threads for Java. Draft. [Vin97] Vinoski, S. CORBA: Integrating Diverse IEEE Communications Magazine, vol. 35, nº 2, February, [Gro01] Grosso, W. Java RMI. O Reilly,

2 Conceptos de Programación n Distribuida No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables Reconfigurables 2

3 Modelos de Programación n Distribuida Modelo de Paso de Mensajes Operaciones send y receive Modelo RPC Stubs de cliente y servidor Visión en Java es RMI Modelos de Objetos Distribuidos DCOM de Microsoft Jini de Sun CORBA de OMG 3

4 Modelo de Paso de Mensajes Mecanismo para comunicar y sincronizar entidades concurrentes que no pueden o no quieren compartir memoria Llamadas send y receive Tipología de las llamadas: Bloqueadas-No bloqueadas Almacenadas-No almacenadas (en buffer) Fiables-No Fiables En Unix: Pipes con y sin nombre En Java: Sockets: Clases Socket y ServerSocket Canales: CTJ (Communicating Threads for Java) 4

5 Modelo General SOLICITUD CLIENTE RESPUESTA SERVIDOR NUCLEO NUCLEO RED 5

6 Puertos (Breve repaso) El protocolo TCP (y también UDP) utilizan los puertos para hacer llegar los datos de entrada a un proceso concreto que se ejecuta en una máquina CLIENTE P U E R T O SERVIDOR TCP/UDP 6

7 CLIENTE P U E R T O SERVIDOR Solicitud de conexión CLIENTE P U E R T O P U E R T O SERVIDOR PUERTO 7

8 Modelo Remote Procedure Call (RPC) Mayor nivel de abstracción Llamadas a procedimiento local o remoto indistintamente Necesita de stubs/skeletons ( OCULTAMIENTO!) Registro del servicio (Servidor de Nombres) En Unix: Biblioteca rpc.h Representación estándar XDR Automatización parcial: especificación-compilador rpcgen En Java: Objetos remotos. Serialización Paquete java.rmi Automatización parcial: interfaz-compilador rmic 8

9 Llamando a un procedimiento remoto Espacio del usuario Espacio del usuario Programa cliente Programa servidor func() func(void) {//codigo. } OBJETIVOS: 1.Efectuar la llamada como si tuviera carácter local 2.Enmascarar aspectos relativos a comunicaciones 3. Y cómo lograrlo? Host local Host remoto 9

10 Introducción del nivel de stubs Efectúan el marshalling/unmarshalling de parámetros. Bloquean al cliente a la espera del resultado. Transparencia de ejecución remota Interface con el nivel de red. TCP UDP 10

11 Esquema RPC con stubs Proceso Cliente Proceso Servidor Programa Cliente Funciones Servidor callrpc rpcreturn llamada normal return Stub del Cliente Stub del Servidor Servicios de Red Núcleo Cliente RED Servicios de Red Núcleo Servidor 11

12 Y cómo generar los stubs? De forma manual De forma automática Especificación formal de interfaz Software específico rpcgen (C-unix)/rmic (Java) 12

13 Generación automática de stubs Especificación Formal Interface Cliente Ejecutable Precompilador rpcgen o rmic Servidor Ejecutable C O M P I L A R Resguardo Stub Cliente Ficheros compartidos Representación de datos Resguardo Skeleton Servidor C O M P I L A R 13

14 Dinamic Binding Especificación Formal Interface Generador de Resguardos Interfaz del servidor+asa create, read delete, write Res. Del Servidor Read(f,d) Res. Del Cliente CONECTOR SERVIDOR d CLIENTE Petición de asa del servidor Envío de asa 14

15 Breve Nota sobre RPC en C Especificación de la interfaz del servidor remoto en un fichero de especificación.x /*rand.x*/ program RAND_PROG{ version RAND_VER{ void inicia_aleatorio(long)=1; double obtener_aleat(void)=2; }=1; }=0x ; Generación autómática de resguardos: $rpcgen rand.x Distribuir y compilar ficheros entre las máquinas implicadas Necesario utilizar representación XDR. Biblioteca xdr.h 15

16 RMI (Remote Method Invocation) en Java Permite disponer de objetos distribuidos utilizando Java Un objeto distribuido se ejecuta en una JVM diferente o remota Objetivo: lograr una referencia al objeto remoto que permita utilizarlo como si el objeto se estuviera ejecutando sobre la JVM local Es similar a RPC, si bien el nivel de abstracción es más alto Se puede generalizar a otros lenguajes utilizando JNI RMI pasa los parámetros y valores de retorno utilizando serialización de objetos. Objeto Servidor Objeto Cliente JVM 16 JVM

17 RPC versus RMI RPC Carácter y Estructura de diseño procedimental Es dependiente del lenguaje Utiliza la representación externa de datos XDR El uso de punteros requiere el manejo explícito de los mismos NO hay movilidad de código RMI Carácter y Estructura de diseño orientada a objetos Es dependiente del lenguaje Utiliza la serialización de objetos en Java El uso de referencias a objetos locales y remotos es automático El código es móvil, mediante el uso de bytecodes. 17

18 Llamadas locales vs. Llamadas remotas Un objeto remoto es aquél que se ejecuta en una JVM diferente, situada potencialmente en un host distinto. RMI es la acción de invocar a un método de la interfaz de un objeto remoto. //ejemplo de llamada a método local int dato; dato = Suma (x,y); //ejemplo de llamada a método remoto (no completo) IEjemploRMI1 ORemoto = (IEjemploRMI1)Naming.lookup( //sargo:2005/ejemplormi1 ); ORemoto.Suma(x,y); 18

19 Arquitectura RMI Cliente Stub Referencia Remota Transporte Transporte Servidor Skeleton Referencia Remota El servidor debe extender RemoteObject El servidor debe implementar una interfaz diseñada previamente El servidor debe tener como mínimo un constructor (nulo) que lanzará la excepción RemoteException El método main del servidor debe lanzar un gestor de seguridad El método main crea los objetos remotos El compilador de RMI (rmic) genera el stub y el skeleton. Los clientes de objetos remotos se comunican con interfaces remotas (diseñadas antes de ) Los objetos remotos son pasados por referencia Los clientes que llaman a métodos remotos deben manejar excepciones. 19

20 La clase java.rmi.naming public static void bind(string name, Remote obj) public static String[] list(string name) public static Remote lookup(string name) public static void rebind(string name, Remote obj) public static void unbind(string name) 20

21 Cómo lograrlo? public interfaz extends Remote {signaturas métodos} implements resultado Cliente ref.metodo(param) Implementación de la interfaz new referencia a interfaz SERVIDOR lookup Nombre Referencia servicio ref bind ó rebind 21

22 Definir Interfaz Remota implements Implementar Interfaz Remota $ rmic.class Skeleton Stub JVM JVM Implementar Servidor Implementar Cliente 22

23 FASES DE DISEÑO RMI (1-INTERFACE) Escribir el fichero de la interfaz remota. Debe ser public y extender a Remote. Declara todos los métodos que el servidor remoto ofrece, pero NO los implementa. Se indica nombre, parámetros y tipo de retorno. Todos los métodos de la interfaz remota lanzan obligatoriamente la excepción RemoteException El propósito de la interface es ocultar la implementación de los aspectos relativos a los métodos remotos. De esta forma, cuando el cliente logra una referencia a un objeto remoto, en realidad obtiene una referencia a una interfaz. Los clientes envían sus mensaje a los métodos de la interfaz 23

24 EJEMPLO (FICHERO DE INTERFAZ) /**Ejemplo del interfaz remoto para implementar un RMI Antonio Tomeu *Es un servidor remoto aritmético. */ //se importan las clases del paquete rmi import java.rmi.*; //toda interface remota debe extender la clase Remote public interface IEjemploRMI1 extends Remote { //todo metodo de la interfaz remota debe lanzar la //excepcion RemoteException int Suma(int x, int y) throws RemoteException; int Resta(int x, int y) throws RemoteException; int Producto(int x, int y) throws RemoteException; float Cociente(int x, int y) throws RemoteException; } 24

25 FASES DE DISEÑO RMI (2-IMPLEMENTACIÓN) La implementación del servidor es un fichero que realiza la implementación de la interfaz definida previamente. El servidor debe contener una clase que extienda a UnicasRemoteObject. Esa misma clase debe implementar a la interfaz remota (implements) Debe tener un constructor que lance RemoteException. El método main debe lanzar un gestor de seguridad. El método main debe crear los objetos remotos deseados. El método main debe registrar al menos unos de los objetos remotos. 25

26 EJEMPLO (IMPLEMENTACIÓN DE INTERFAZ Y SERVIDOR) /**Ejemplo de implementacion del interfaz remoto para un RMI Antonio Tomeu */ //se importan los paquetes necesarios import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; import java.net.*; //el servidor debe siempre extender a UnicastRemoteObject //el servidor debe simpre implementar la interfaz remota public class EjemploRMI1 extends UnicastRemoteObject implements IEjemploRMI1 { 26

27 //aquí viene la implementación de los métodos que se //declararon en la interfaz public int Suma(int x, int y) throws RemoteException {return x+y;} public int Resta(int x, int y) throws RemoteException {return x-y;} public int Producto(int x, int y) throws RemoteException {return x*y;} public float Cociente(int x, int y) throws RemoteException { if(y == 0) return 1; else return x/y; } //a continuacion viene el codigo del servidor. Hemos optado //por incluirlo de manera conjunta, pero podia haber ido en //un fichero aparte. 27

28 //es necesario que haya un constructor (nulo) como minimo, ya //que debe lanzar RemoteException public EjemploRMI1() throws RemoteException {//super();} //el metodo main siguiente realiza el registro del servicio public static void main(string[] args) throws Exception { //crea e instala un gestor de seguridad que soporte RMI. //el usado es distribuido con JDK. Otros son posibles. System.setSecurityManager( new RMISecurityManager()); //Se crea el objeto remoto. Podriamos crear mas si interesa. EjemploRMI1 ORemoto = new EjemploRMI1(); //Se registra el objeto en la máquina remota. No hay que dar //nombre de host, y se asume el puerto Naming.bind( Servidor",ORemoto); System.out.println("Servidor Remoto Preparado"); } } 28

29 FASES DE DISEÑO RMI (3- Generando STUB Y SKELETON) Fichero de implementación de Interfaz compilado (Imp.class) Compilador de RMI $ rmic imp Fichero de stub (Imp_Stub.class) Fichero de skeleton (Imp_Skel.class) $ rmic vcompat EjemploRMI1 Es necesario que en la máquina remota donde se aloje el servidor se sitúen también los ficheros de stub y skeleton. (Cambios a partir de 1.5) Con todo ello disponible, se lanza el servidor llamando a JVM del host remoto, previo registro en un DNS En nuestro caso, el servidor remoto se activó en hercules.uca.es sobre el puerto $ java EjemploRMI1 & 29

30 FASES DE DISEÑO RMI (4-REGISTRO) Método Naming.bind( Servidor",ORemoto); para registrar el objeto remoto creado requiere que el servidor de nombres esté activo. Dicho servidor se activa con start rmiregistry en Win32 Dicho servidor se activa con rmiregistry & en Unix. Se puede indicar como parámetro el puerto que escucha. Si no se indica, por defecto es el puerto El parámetro puede ser el nombre de un host como en Naming.bind( //sargo.uca.es:2005/servidor",oremoto); 30

31 FASES DE DISEÑO RMI (5-CLIENTE) El objeto cliente procede siempre creando un objeto de interfaz remota. Posteriormente efectúa una llamada al método Naming.lookup cuyo parámetro es el nombre y puerto del host remoto junto con el nombre del servidor. Naming.lookup devuelve una referencia que se convierte a una referencia a la interfaz remota. A partir de aquí, a través de esa referencia el programador puede invocar todos los métodos de esa interfaz remota como si fueran referencias a objetos en la JVM local. 31

32 EJEMPLO (CLIENTE) /**Ejemplo de implementacion de un cliente para RMI Antonio Tomeu */ import java.rmi.*; import java.rmi.registry.*; public class ClienteEjemploRMI1 { public static void main(string[] args) throws Exception { int a = 10; int b = -10; //Se obtiene una referencia a la interfaz del objeto remoto //SIEMPRE debe convertirse el retorno del metodo Naming.lookup //a un objeto de interfaz remoto IEjemploRMI1 RefObRemoto = (IEjemploRMI1)Naming.lookup("//hercules.uca.es/Servidor"); //Llamamos a los metodos del interfaz remoto. System.out.println(RefObRemoto.Suma(a,b)); System.out.println(RefObRemoto.Resta(a,b)); System.out.println(RefObRemoto.Producto(a,b)); System.out.println(RefObRemoto.Cociente(a,b)); } 32 }

33 Distribución de Archivos Cliente Servidor Interfaz.class Cliente.class Implem_Stub.class Interfaz.class Servidor.class Implem_Stub.class Implem_Skel.class NOTA: A PARTIR DE jdk 1.2 LAS CLASES DE SKELETON NO SON NECESARIAS 33

34 EJERCICIO Descargue los ficheros IEjemploRMI1.java, EjemploRMI1.java y ClienteEjemploRMI1.java Siga el guión auxiliar de prácticas (ver bloque del tema actual) y desarrolle la arquitectura en local Distribuya ahora la aplicación con un compañero Escriba una interfaz de operaciones para números complejos, utilizando tipos primitivos, llamada IComplejo.java Impleméntela en Complejo.java Escriba código de servidor y cliente que hagan uso de la misma. Guárdelos en ServerComplejo.java y ClientComplejo.java Distribuya nuevamente la aplicación 34

35 Acuerden una interfaz llamada interfaz_grupo_x.java Un miembro del grupo escribirá el cliente_grupo_java y el otro el servidor_grupo_x.java de manera independiente. Una vez hecho, lancen la arquitectura rmi. Suban el Espacio de los alumnos un fichero rmi_grupo_x.rar que contegan los tres ficheros. 35

36 EVOLUCIONES RESEÑABLES A partir del jdk 1.2 la implementación de RMI no necesita skeletons (con ese nombre tenían poco futuro). El stub estará en ambos lados. Recompile los ejemplos anteriores sin el flag vcompat A partir del jdk 1.5 se incorpora Generación Dinámica de Resguardos 36

37 EJERCICIOS Pruebe los ejemplos anteriores sin skeleton No obstante, necesita el servidor algo a pesar de todo? 37

38 RMI: CARACTERÍSTICAS AVANZADAS Serialización de Objetos Gestión de la Seguridad: policytool Callback de Cliente Descarga Dinámica de Clases 38

39 SERIALIZACIÓN: La interfaz Serializable Serializar un objeto es convertirlo en una cadena de bits, posteriormente restaurada en el objeto original Es útil para enviar objetos complejos en RMI Tipos primitivos se serializan autómaticamente Clases contenedoras también Objetos complejos deben implementar la interfaz Serializable (es un flag) para poder ser serializados 39

40 Ejemplo con serialización de una clase import java.io.*; import java.util.*; public class cuentabanca implements Serializable { int ccc; float saldo; String Titular; public cuentabanca(int codigo, float deposito, String nombre) {ccc = codigo; saldo = deposito; Titular = nombre;} public String tostring() {return("codigo = "+ccc+" saldo= "+saldo+" titular= "+Titular);} } 40

41 Interfaz import java.io.*; import java.rmi.*; public interface intefaz extends Remote { boolean deposito(int codigo, float cantidad) throws RemoteException; boolean reintegro(int codigo, float cantidad) throws RemoteException; String nomtit(int codigo) throws RemoteException; } int codtit(string nom) throws RemoteException; /aquí la serializacion es necesaria*/ cuentabanca [] listado() throws RemoteException; 41

42 Ejemplo completo con serialización (1/4) public class Arbol implements java.io.serializable //convierte a la clase en serializable { public Arbol izq; public Arbol der; public int id; public int nivel; private static int cont = 0; } public Arbol(int l) { id = cont++; nivel = l; if (l > 0) { izq = new Arbol(l-1); der = new Arbol(l-1); } } 42

43 Ejemplo completo con serialización (2/4) //interfaz que transfiere al servidor una instancia de la clase serializable Arbol.java import java.rmi.*; public interface IArbol extends Remote { public void Listado_Remoto (Arbol t, int n) throws RemoteException; } 43

44 Ejemplo completo con serialización (3/4) import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class Serv_arbol extends UnicastRemoteObject implements IArbol { public Serv_arbol()throws RemoteException {super();} public void Listado_Remoto (Arbol t, int n) throws RemoteException { for (int i = 0; i < t.nivel; i++) System.out.print(" "); System.out.println("nodo " + t.id); if (t.nivel <= n && t.izq!= null) Listado_Remoto(t.izq, n); if (t.nivel <= n && t.der!= null) Listado_Remoto(t.der, n); } public static void main(string[] args) throws Exception { Serv_arbol ORemoto = new Serv_arbol(); Naming.bind("Servidor", ORemoto); System.out.println("Servidor Remoto Preparado"); } } 44

45 Ejemplo completo con serialización (4/4) import java.rmi.*; import java.rmi.registry.*; public class Client_arbol { public static void main(string[] args) throws Exception { int niveles = 3; Arbol arb = new Arbol (niveles); //se crea un objeto serializable IArbol RefObRemoto = (IArbol)Naming.lookup("//localhost/Servidor"); RefObRemoto.Listado_Remoto (arb, niveles); //transfiere al objeto //servidor un objeto Arbol //serializado } } 45

46 Ejecución del ejemplo en modo local 46

47 EJERCICIOS Descargue los ficheros contenidos en la subcarpeta Serializacion (carpeta de códigos del tema), compile y pruebe Haga lo propio distribuyendo la aplicación con un compañero 47

48 Gestionando la seguridad: policytool Java tiene en cuenta la seguridad System.setSecurityManager(new RMISecurityManager()); Se ajusta la seguridad: Construyendo un objeto SecurityManager Llamando al método setsecuritymanager (clase System) Clase RMISecurityManager Programador ajusta la seguridad mediante la clase Policy Policy.getPolicy() permite conocer la seguridad actual. Policy.setPolicy() permite fijar nueva política. Seguridad reside en fichero específico. Java2 incorpora una herramienta visual: policytool 48

49 Ajuste de la política de seguridad Crearlas con policytool: ejemplo de fichero.policy /* AUTOMATICALLY GENERATED ON Fri May 28 19:23:13 CEST 2004*/ /* DO NOT EDIT */ grant { permission java.net.socketpermission "*: ", "connect,accept, listen, accept, connect, listen, resolve"; permission java.net.socketpermission "*:80", "connect, accept"; permission java.security.allpermission; }; Activarlas Ejecutar ajustando la política con Java Djava.security=fichero.policy servidor cliente O bien crear objeto RMISecurityManager y ajustar SetSecurityManager sobre el objeto creado. 49

50 CallBack de Cliente Si servidor de RMI debe notificar eventos a clientes, la arquitectura es inapropiada La alternativa estándar es el sondeo (polling) Donde cliente: Iservidor RefRemota= (IServidor) Naming.lookup (URL); while (!(Ref.Remota.Evento.Esperado())){} 50

51 RMI con Polling: Ejemplo de interfaz import java.rmi.*; public interface ejemplopolling extends Remote { public void datoinc() throws RemoteException; public boolean igualdiez() throws RemoteException; //metodo para realizar el sondeo continuo sobre el servidor } 51

52 RMI con Polling: Ejemplo de servidor import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class servpolling extends UnicastRemoteObject implements ejemplopolling { private static int dato = 0; public void datoinc() throws RemoteException {dato++; System.out.println(dato);} public boolean igualdiez() throws RemoteException //metodo para recibir el sondeo {return (dato==10);} public servpolling() throws RemoteException {} } public static void main(string[] args) throws Exception { servpolling contremoto = new servpolling(); Naming.bind("Servidor_Polling", contremoto); System.out.println("Servidor Remoto Preparado"); } 52

53 RMI con Polling: Ejemplo de cliente import java.rmi.*; import java.rmi.registry.*; public class clientpolling { public static void main(string[] args) throws Exception { ejemplopolling RefObRemoto = (ejemplopolling)naming.lookup("//localhost/servidor_polling"); while(!refobremoto.igualdiez()) //lazo de sondeo continuo al sevidor {System.out.println("Incremento remoto del contador"); RefObRemoto.datoInc(); } System.out.print("El contador remoto llego a diez y se sale..."); } } 53

54 Características del CallBack Clientes interesados se registran en un objeto servidor para que les sea notificado un evento Cuando el evento se produce, el objeto servidor notifica al cliente su ocurrencia Qué necesitamos para que funcione? 54

55 Arquitectura RMI para CallBack 55

56 Conclusiones Hay que duplicar la arquitectura Se requieren dos interfaces Habrá dos niveles de stubs Cliente (Stub+Skel) y Servidor (Stub+Skel) Es necesario proveer en el servidor medios para que los clientes registren sus peticiones de callback 56

57 EJERCICIOS Lea el guión de callback de cliente Compile y active el código ejemplo de callback que figura en la subcarpeta callback de la carpeta codigos rmi (utilice stubs y skeletons) Haga lo propio con subcarpeta callback_simpel Distribuya la aplicación con su compañero de grupo 57

58 Descarga Dinámica de Clases Permite cambios libres en el servidor Elimina la necesidad de distribuir (resguardos) si los hay y nuevas clases Dinámicamente, el cliente descarga todas las clases que necesita para desarrollar una RMI válida Mediante HTTP o incluso FTP 58

59 (2)Cliente solicita interfaz vía Naming.lookup Registro de RMI (1) Servidor registra el par (Objeto, nombre) (3)Registro ofrece una referencia remota Cliente de RMI (4)Cliente solicita la clase de stub mediante el codebase Servidor RMI server.codebase= (5)Servidor http devuelve la clase de stub Localización URL http host 59

60 Servidor HTTP para Descarga Dinámica Mini-servidor de HTTP de Sun Clases ClassServer y ClassFileServer Se compilan conjuntamente java ClassFileServer 8080 /rmi/clases Servidor HTTP estándar Apache Otros 60

61 Ejemplo del Servidor Básico de Sun activo en Windows Colocar Resguardos y clases para carga dinámica en /java/rmi Ajustar la propiedad java.rmi.server.codebase 61

62 Novedades a partir de jdk 1.5 Soporta Generación Dinámica de Resguardos Prescinde del generador rmic Pruebe ahora los ejemplos anteriores sin pasar por la etapa de generación de resguardos (rmic) qué observa? 62

Puertos (Breve repaso) No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables Reconfigurables

Puertos (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 detalles

TEMA 4: PROGRAMACIÓN DISTRIBUIDA

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

Más detalles

Modelo de Objetos Distribuidos

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

Más detalles

JAVA RMI (REMOTE METHOD INVOCATION)

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

Más detalles

1. Visión general de RMI

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

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

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:

Más detalles

RMI [Remote Method Invocation]

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

Más detalles

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 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 detalles

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005

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

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

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 (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

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

Más detalles

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

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

Más detalles

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

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

Más detalles

CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs

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

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

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

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

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

Más detalles

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 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 detalles

Tema 3. Objetos distribuidos

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

Más detalles

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 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 detalles

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

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.

Más detalles

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI

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

Más detalles

PROGRAMACION DISTRIBUIDA

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

Más detalles

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET

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

Más detalles

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

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

Más detalles

SISTEMAS DISTRIBUIDOS

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.

Más detalles

Remote Method Invocation (RMI) de Java

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)

Más detalles

Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.

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

Más detalles

Remote Method Invocation (RMI)

Remote 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 detalles

Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu)

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.

Más detalles

El sueño de todo sistema distribuido

El 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 detalles

Práctica 4: Java Remote Method Invocation (RMI)

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

Más detalles

RMI Remote Method Invocation

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

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

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

Más detalles

Una introducción a Java RMI

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

Más detalles

Invocación de Métodos Remotos: prácticas de laboratorio

Invocació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 detalles

Herramientas Concurrentes en JAVA

Herramientas 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 detalles

VII.1: RMI: Remote Method Invocation

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

Más detalles

Tema 4: INVOCACIÓN REMOTA

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

Más detalles

SISTEMAS DISTRIBUIDOS

SISTEMAS 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 detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class 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 detalles

Java en 2 horas. Rodrigo Santamaría

Java 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 detalles

Federico Peinado www.federicopeinado.es

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

Más detalles

TutorJava recomienda...

TutorJava 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 detalles

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets Uso de Sockets Este pequeño manual, le muestra cómo funciona el Socket Server para crear un pequeño servidor web que envía una página HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc..

Más detalles

'HVDUUROORGH$SOLFDFLRQHV FRQ-DYD50,

'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 detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Universidad Politécnica de Valencia

Universidad 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 detalles

Introducción Descripción del servicio

Introducció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 detalles

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

Más detalles

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA Índice 1. Presentación...3 2. Conceptos básicos...4 2.1. TCP...4 2.2.

Más detalles

Las clases Java Socket y ServerSocket

Las clases Java Socket y ServerSocket Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática

Más detalles

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Objetivo Extender a los sistemas distribuidos el mecanismo de llamadas a procedimientos y subrutinas de los lenguajes de programación.

Más detalles

Sistemas de Información

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 mcfp@it.uc3m.es RMI (Remote Method Invocation) Concepto

Más detalles

1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos

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 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 detalles

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V Bibliografía Tema V Tecnología de objetos distribuidos y arquitectura de componentes. Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción

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

Más detalles

CAPÍTULO 4. DISEÑO DEL SOFTWARE PARA LOS SERVICIOS

CAPÍTULO 4. DISEÑO DEL SOFTWARE PARA LOS SERVICIOS CAPÍTULO 4. DISEÑO DEL SOFTWARE PARA LOS SERVICIOS DE SEGURIDAD BAJO JINI Y JAVA Las estrategias de cómputo usadas en un ambiente real varían dependiendo de la compañía o usuario que las implanten en sus

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

Más detalles

Sistemas de colas de mensajes

Sistemas 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 detalles

Repaso 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 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 detalles

1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4. 3.4.1.- Creación de Streams de Entrada...7

1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4. 3.4.1.- Creación de Streams de Entrada...7 1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4 3.1.- INTRODUCCION... 4 3.2.- MODELO DE COMUNICACIONES CON JAVA...5 3.3.- APERTURA DE SOCKETS... 6 3.4.- CREACIÓN DE STREAMS...

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java 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 detalles

Características generales del lenguaje Java. María a Consuelo Franky

Caracterí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 detalles

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA SOCKETS EN JAVA Los sockets son puntos finales de enlaces de comunicaciones entre procesos. Los procesos los tratan como descriptores de ficheros, de forma que se pueden intercambiar datos con otros procesos

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Arquitecturas cliente/servidor

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

Más detalles

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar

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

Más detalles

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx Contenido Middleware: Introducción Definición Genealogía Aplicaciones actuales: Servicios Web Computación

Más detalles

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA Qué es la arquitectura cliente servidor? La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten

Más detalles

Middleware. Introducción: capas de middleware

Middleware. Introducción: capas de middleware Middleware ] Introducción ] Representación externa de datos y empaquetado ] Protocolos de petición respuesta ] Comunicación en grupo ] Comunicación entre objetos distribuidos ] Llamada a un procedimiento

Más detalles

1. Introducción a los Servicios web

1. Introducción a los Servicios web 1. Introducción a los Servicios web Los servicios web son un tipo de middleware mediante el que pueden comunicarse aplicaciones remotas. En esencia, funciona como cualquier otro tipo de middleware (rmi,

Más detalles

Práctica 5: Common Object Request Broker Architecture CORBA

Prá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 detalles

SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo

SISTEMAS 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 detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

2.1 La interfaz de JDBC para el programador de aplicaciones... 3. 2.2 La interfaz JDBC para los controladores JDBC... 5

2.1 La interfaz de JDBC para el programador de aplicaciones... 3. 2.2 La interfaz JDBC para los controladores JDBC... 5 $SpQGLFH& &RQWURODGRUHV-'%& $%'& ( )+*-,/.1032/2465/(7%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%98 8:%;*-32)@0 *A.>BCEDGFH%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%EI

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Networking Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos básicos de redes y su implementación en Java

Más detalles

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014 Ings. Mario Bressano & Miguel Iwanow ENVÍO 01/2014 Introducción al Lenguaje Java Paquetes Un Paquete en Java es un contenedor de clases que permite agrupar

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

Lab 01: Programación de Sockets en TCP

Lab 01: Programación de Sockets en TCP UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO Departamento Académico de Informática REDES Y TELECOMUNICACIONES 2 Lab 01: Programación de Sockets en TCP Ingº Manuel Peñaloza Figueroa Dime y lo olvidaré.

Más detalles

Cliente/Servidor en Java

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

Más detalles

Servicios Web: Concepto

Servicios 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 detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

4 Encuentro Internacional de Computación Aplicada

4 Encuentro Internacional de Computación Aplicada 4 Encuentro Internacional de Computación Aplicada Arquitectura de Objetos Distribuidos utilizando EJBs Omar Gómez omar@cuci.udg.mx Agenda Arquitectura de Objetos Distribuidos Arquitectura J2EE Componentes

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de

Más detalles

RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual

RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual Llamadas a Procedimientos Remotos (RPC) Basado en el libro Internetworking with TCP/IP. Vol III. D. E Comer y D. Stevens Algunas Ilustraciones se tomaron de Practical Unix Programming. K. Robbins y Robbins

Más detalles

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java Qué es? Introducción a es Un lenguaje de programación Un entorno de desarrollo Un entorno de ejecución de aplicaciones Un entorno de despliegue de aplicaciones Utilizado para desarrollar, tanto applets

Más detalles

Programación Orientada a Objetos, 3 er curso Ejercicios resueltos

Programació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 detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. 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 detalles

Programación en Java. Temario. David Contreras Bárcena

Programación en Java. Temario. David Contreras Bárcena Programación en Java David Contreras Bárcena David Contreras Bárcena (ETSI) - Comillas 1 Temario 1. Introducción 1. Lenguaje java 2. Compilador SDK 1.4 3. Sintaxis 4. Tipos de datos 5. Estructuras de Control

Más detalles

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Generación de excepciones.

Más detalles

Práctica sobre compartición de instancias remotas.

Prá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 detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

Más detalles