P1 - dia/UPM

Examen Final de Sistemas Distribuidos 3 de septiembre de 2004 ... a) Obtener el
stub de la tupla (unServicio, objetoRemoto) de la tabla que mantiene ...

Part of the document


E. U. de Informática Departamento de Informática Aplicada
Examen Final de Sistemas Distribuidos 3 de septiembre de 2004
Apellidos
...........................................................................
.....................................
Nombre
...........................................................................
.......................................
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
ServidorDeNombres.java
. Cliente, se refiere al código recogido en el fichero
ClienteDeNombres.java
. Objeto miServicio es una instancia de la clase
ServicioDeNombresImpl.java 1) El servidor:
a) Solo puede programarse para crear un único objeto del servicio de
nombres, porque no se debe permitir tener tablas con servicios
duplicados.
b) Controla el ciclo de vida de miServicio, ya que lo crea, lo exporta,
lo registra en el servicio de nombres Naming y lo destruye.
c) Debe salvar automáticamente en disco el contenido de la tabla de los
servicios para que no se pierdan.
2) Si inicialmente el cliente realiza con éxito la operación
Naming.bind("unServicio", objetoRemoto) y miServicio.bind("unServicio",
objetoRemoto)obtendrá como resultado de ésta última:
a) La excepción RemoteException si se produce un error de transmisión.
b) La excepción AlreadyBoundException ya que dicho servicio existe en el
servicio de nombres.
c) La excepción AccessException ya que un cliente no puede modificar o
dar de alta un servicio en el servicio de nombres.
3) El efecto de realizar la operación miServicio.lookup("unServicio") con
éxito es:
a) Obtener el stub de la tupla (unServicio, objetoRemoto) de la tabla que
mantiene miServicio.
b) Obtener el stub de la tupla ("unServicio", objetoRemoto) de la tabla
que mantiene el servidor.
c) Obtener el stub de la tupla ("unServicio", objetoRemoto) de la tabla
que se mantiene en ServicioDeNombres_Impl.
4) En el cliente, cuando se realiza con éxito la operación
miServicio.rebind("unServicio", objetoRemoto) es cierto que:
a) Previamente se ha obtenido la referencia remota de miServicio
solicitándolo a Registry o a Naming.
b) Previamente se ha obtenido la referencia remota de miServicio
solicitándolo a ServicioDeNombresImpl.
c) Previamente se ha obtenido la referencia remota de miServicio
solicitándolo a ServidorDeNombres.
5) En cuanto a los servicios registry, Naming y miServicio, es cierto que:
a) Son servicios cuya interfaz y funcionalidad son iguales, de tal manera
que se podría sustituir la implementación real de Naming por la de
registry.
b) Solo se puede sustituir la implementación real de Registry por la de
servicioDeNombresImpl.
c) Los tres servicios pueden mantener interamente tablas con el mismo
contenido.
6) En el cliente, cuando se realiza la operación miServicio.list() es
cierto que:
a) Si se produce un error en la transmisión, el cliente nunca se entera.
b) Si se devuelve una lista vacía se produce la excepción
NullPointerException.
c) Le puede llegar una excepción, aunque en la implementación de este
método no se generan explícitamente excepciones.
7) En el cliente, cuando se realiza la operación
Naming.lookup("unServicio") es cierto que se busca la referencia remota
de "unServicio" en:
a) En la tabla hash que mantiene el servicio Registry.
b) En la tabla hash que mantiene el objeto miServicio.
c) En la tabla hash que mantiene la clase miServicio_Impl.
8) En cuanto a la semántica de entrega de este servicio, se puede decir
que:
a) La operación rebind es idempotente.
b) La operación bind es idempotente.
c) La operación unbind es idempotente.
9) Es necesario usar el compilador de interfaces rmic para generar el
fichero de stub ServicioDeNombresImpl_Stub que debe estar accesible:
a) Sólo al cliente.
b) Solo al servidor.
c) Al cliente y al servidor.
10) En cuando a la práctica propuesta, se puede decir que:
a) Se ha propuesto un solo servidor del que existen múltiples
implementaciones, una por cada alumno que ha entregado la práctica.
b) Se ha propuesto una sola práctica, de la que existen múltiples
interfaces, una por cada alumno que ha entregado la práctica.
c) Se ha propuesto una única interfaz de servicio con diferentes nombres
que deben registrarse, para que cada alumno pueda probar su práctica
en el servicio de nombres Naming o Registry.
----------------------- Nº Orden
S. D.