Examen Junio2009

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Aplicaciones Distribuidas

Examen ordinario de Junio


24 de Junio de 2009

Apellidos:

Nombre:

1. Supongamos que estamos desarrollando una aplicación cliente/servidor capaz de


proporcionar la fecha y hora actual al cliente mediante el API de RMI.

La fecha y hora actual que debe proporcionar el servidor, puede ser generada

java.util
Class Date
public Date()

Allocates a Date object and initializes it so that it represents the time at which it was
allocated, measured to the nearest millisecond.

public String toString()

Converts this Date object to a String of the form:

dow mon dd hh:mm:ss zzz yyyy

usando la clase de Java Date:

a. (1 punto) Completar la definición de la interfaz remota:


import java.rmi.*;

public interface DaytimeInterface extends Remote {

} //end interface
b. (1 punto) Completar el fichero con la implementación:

import java.rmi.*;

import java.rmi.server.*;

/**

* This class implements the remote interface DaytimeInterface.

*/

} // end class
c. (1 punto) Supongamos que el siguiente fragmento de código aparece en el servidor
para exportar la implementación del objeto: proporcionar la sentencia que falta
para declarar la referencia a exportedObj y asignarle un valor.

startRegistry(RMIPortNum);

// declara aquí la referencia a exportedObj y asígnale un valor

registryURL = "rmi://rmi.usc.es:12345/daytime";

Naming.rebind(registryURL, exportedObj);

d. (1 punto) Enumera los ficheros que deben de estar presentes en la parte del
cliente en tiempo de ejecución.
(2 puntos) Completar el código para el programa cliente. El programa puede asumir
que el registro RMI se ejecuta en rmi.usc.es en el puerto 12345.

public class DaytimeClient {

public static void main(String args[ ]) {

try {

String URLRegistro = “rmi://rmi.usc.es:12345/daytime”;

= ( ) Naming.lookup(URLRegistro);

} // end try

catch (Exception e) {

System.out.println("Exception in DaytimeClient: " + e);

} //end main

}//end class
e. (1 punto) Supongamos que deseamos que los clientes sean capaces de registrarse
para callback, de forma que cada vez que un cliente contacta con el servidor de
tiempo, todos los clientes registrados reciben el tiempo enviado a ese cliente.
Escribe la interfaz remota del cliente que permitiría dicho callback.

f. (1 punto) Reescribe la interfaz remota del servidor que permitiría dicho callback –
no es necesario contemplar la eliminación de un registro de callback.

import java.rmi.*;

public interface DaytimeInterface extends Remote {

}
h. (1 punto) Describe con palabras los cambios que serían necesarios en la
implementación del servidor para acomodar las callbacks.
2. (1 punto) En el primer apartado del ejercicio anterior, describe como sería el
archivo idl si pretendiésemos realizar la aplicación utilizando CORBA.

module DayTimeApp

interface

};

3. (1 punto) ¿Qué es un IOR y para qué sirve?.

4. (1 punto) ¿Qué diferencias (si hay algunas) hay entre una aplicación P2P y un
sistema multiagente?.

5. (1 punto) ¿Para qué sirve el método block() de la clase Behaviour en Jade?. ¿Se
puede usar indistintamente los métodos block() y blockingReceive() dentro de un
comportamiento?. Explicar por qué.
6. (1 punto) Cuando usamos Jess en JADE, normalmente utilizamos una instancia de
la clase Jess.Rete para ejecutar la base de reglas dentro de un comportamiento de
JADE. ¿Por qué normalmente no se utiliza directamente el método run de la clase
Jess.Rete sin argumentos y normalmente se le pasa un valor numérico entero?.
¿Qué significado tiene dicho valor numérico?.

Ejemplo de código dentro de un comportamiento:

x = new jess.Rete();

x.run(1);

7. (1 punto) Indica cuáles son las principales características que hacen que un
programa se convierta en un agente.

También podría gustarte