Examen Junio2009
Examen Junio2009
Examen Junio2009
Apellidos:
Nombre:
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.
} //end interface
b. (1 punto) Completar el fichero con la implementación:
import java.rmi.*;
import java.rmi.server.*;
/**
*/
} // 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);
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.
try {
= ( ) Naming.lookup(URLRegistro);
} // end try
catch (Exception 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.*;
}
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
};
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?.
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.