Download P1 - dia/UPM

Document related concepts
no text concepts found
Transcript
E. U. de Informática
Departamento de Informática Aplicada
Examen Final de Sistemas Distribuidos
5 de julio de 2005
Apellidos ................................................................................................................
Nombre ..................................................................................................................
Nº Orden
S. D.
Nº de Matrícula....................
Examen de prácticas (10 puntos)
Tiempo estimado: 20 m
Conteste a cada una de las preguntas siguientes, teniendo en cuenta que cada pregunta tiene solo una opción
válida con valor 1punto. Marque la respuesta elegida rodeándola con un círculo.
La contestación errónea a una pregunta supondrá una penalización de 0’5 puntos.
Las preguntas no contestadas no puntúan.
Considere, al responder a las preguntas, que cuando se habla del:
 Servidor, se refiere al código recogido en el fichero ServidorDeTiempo.java
 Cliente, se refiere al código recogido en el fichero ClienteDeTiempo.java
 Objeto miServicio es una instancia de la clase TiempoRemotoImpl.java
 Servicio se refiere al fichero TiempoRemoto.java
1. El servidor:
a. No puede programarse para crear más de un objeto del servicio de hora simultáneamente.
b. No debe implementar la interfaz TiempoRemoto ya que eso es tarea de la clase
c.
TiempoRemotoImpl.java.
Debe extender la clase UnicastRemoteObject
para hacer que los objetos puedan usarse
remotamente.
2. En relación con el servicio TiempoRemoto es cierto que:
a. El uso de la palabra reservada interface permite definir un servicio remoto.
b. El uso de la palabra reservada interface permite definir un servicio local.
c. El uso de la palabra reservada interface permite implementar la lógica de las operaciones que
componen un servicio.
3. Con respecto a las operaciones que definen un servicio remoto en Java es cierto que:
a. Solo los métodos que quieren controlar los errores internos de ejecución, deben indicar que
pueden elevar la excepción RemoteException.
b. Todos los métodos pueden elevar la excepción RemoteException por tanto deben indicarlo,
aunque no controlen errores internos de ejecución.
c. Es opcional la declaración del uso de la excepción RemoteException, definiéndose solo por
aquellos métodos que quieran controlar los errores de transmisión.
4. Indique dónde debe usarse la siguiente sentencia:
TiempoRemoto tiempoRemoto = new TiempoRemotoImpl();
a. En el cuerpo del cliente, para crear el stub del servicio que quiere usar.
b. En el cuerpo del servidor, para crear un objeto del servicio.
c. En la implementación del servicio, para crear un objeto de este tipo.
5. La sentencia UnicastRemoteObject.unexportObject es necesaria para:
a. Dar de baja un objeto del servicio del servidor de nombres.
b. Dar de baja un objeto en el servicio de nombres, aunque ese objeto puede seguir usándose en la
máquina física donde reside el servidor.
c. Cerrar la comunicación del objeto con el exterior, para no permitir que le lleguen más peticiones.
6. La sentencia rmic –v1.2 debe usarse:
a. Sólo en el lado del servidor.
b. Sólo en el lado del cliente.
c. Tanto en el lado del cliente como en servidor.
7. Con respecto al uso del paquete java.util.Calendar u otro similar de Java, es cierto que:
a. El paquete realiza una llamada a la máquina virtual de Java, la cual realiza una llamada al
sistema operativo local para obtener la hora.
b. El propio paquete internamente calcula la hora sin necesidad de realizar ninguna llamada.
c. La hora del sistema la mantiene la máquina virtual de Java, de tal forma que la ejecución del
mismo programa en máquinas distintas da la misma hora.
8. En cuanto al número de métodos main que deben existir, supuesto que se está ejecutando un cliente y
un servidor de tiempo, es cierto que:
a. Sólo habrá un método main en el programa del cliente.
b. Existirán tres métodos main, uno en el programa cliente, otro en el programa servidor y otro en
la implementación del servicio.
c. Existirán dos métodos main, uno en el programa cliente y otro en el programa servidor.
9. Supóngase que un cliente se está ejecutando en la máquinaA y quiere utilizar el servicio de tiempo que
se está ofreciendo en la máquinaB. Entonces, el cliente deberá usar la sentencia:
a. Naming.lookup(“rmi://máquinaA:1099/TiempoRemoto”)
b. Naming.lookup(“rmi://máquinaB:1099/TiempoRemoto”)
c. Naming.lookup(“rmi://host:1099/TiempoRemoto”)
10. Indique cuál de las siguientes sentencias es la correcta para crear un objeto que soporte el servicio:
a. TiempoRemoto tiempoRemoto = new TiempoRemotoImpl()
b. TiempoRemoto tiempoRemoto = new TiempoRemoto()
c. TiempoRemotoImpl tiempoRemoto = new TiempoRemotoImpl()