Sie sind auf Seite 1von 4

1. Se tiene una aplicacin con soporte para clientes Sun RMI y servidores.

Dentro de esta aplicacin el servidor Sun RMI requiere interoperar con


objetos remotos implementados en el lenguaje de programacin C++.
Argumente si es viable o no realizar dicha interoperacin, y si es viable
describa que se debe hacer.
Rta: Sun RMI se basa en la plataforma Java para permitir la
implementacin de aplicaciones distribuidas. El cliente y servidor son
objetos Java. Esta es una limitante de Sun RMI. Para llenar esta
limitante Sun RMI lanza la solucin Sun RMIIIOP. Usando RMIIIOP, los
servidores Sun RMI pueden comunicarse con clientes CORBA
implementados en cualquier lenguaje. RMIIIOP se construye
bsicamente sobre Java IDL. Usando la opcin -iiop en el compilador
rmic se pueden obtener los stubs IIOP, y los IDL. De esta manera se
logra que implementaciones Java IDL puedan comunicarse con
sistemas implementados en otros lenguajes de programacin
diferentes de Java. Por tanto es viable realizar la interaccin
cliente(C++) y servidor (Java) usando la solucin RMIIIOP.
2.a. En RMI un desarrollador de una aplicacin distribuida define
invocaciones de mtodos remotos en tiempo de compilacin. Si se desea
crear una nueva modalidad de invocacin de mtodos remotos en la cual
se puedan descubrir dichos mtodos y posteriormente ensamblar
invocaciones a esos mtodos, en tiempo de ejecucin. Que debera tener
RMI para poder realizar este nuevo mtodo de invocacin?.
Rta: Un componente de la arquitectura RMI que est directamente
relacionado con los mtodos remotos es la interfaz. Para que los
mtodos de una interfaz remota estn disponibles para ser invocados
remotamente, estos deben ser implementados. Un objeto remoto es
un objeto que implementa los mtodos de una interfaz. Para crear
esta nueva modalidad de invocacin se debera crear un almacn
donde se despositen las interfaces de los objetos remotos
disponibles. Y se debera adicionar un API que permita tener la
funcionalidad para consultar al depsito de interfaces de los mtodos
ofrecidos.
2.b. RMI soporta paso de objetos por valor o por referencia? Describa de
forma clara como realiza el soporte de dicho modo de manejo.Rta: Java
soporta el paso de objetos por valor. El paso de objetos por valor se
basa en el uso del concepto de Serializacin para el paso de
objetos a travs de la red. Mediante esta facilidad brindada por el
lenguaje Java, objetos de todo tipo, tanto objetos nativos como
aquellos definidos por el usuario pueden ser transferidos de forma
totalmente transparente al programador.

3.a. Porque RMI provee transparencia de acceso pero no transparencia de


localizacin? (justifique su respuesta).Rta: RMI provee transparencia de
acceso por que la invocacin de mtodos de objetos se utiliza tanto
para acceder a objetos remotos como a objetos locales. RMI no
provee transparencia de localizacin por que las conexiones en RMI
son punto a punto, se requiere conocer la ubicacin del servidor, el
cliente debe indicar la localizacin del servidor explcito.
3.b. Como logra RMI el control de las ejecucin de los objetos remotos?
(Justifique su respuesta).
Rta: RMI extiende la filosofa de seguridad de Java a la hora de
controlar la ejecucin de las clases. El concepto de SandBox o caja
de arena, se extiende a la programacin distribuida mediante el uso
de un Security Manager que controla la descarga y funcionamiento de
las clases provenientes de la red. Es obligatorio en cualquier
implementacin RMI crear una instancia del Security Manager que
nos va a garantizar un nivel de seguridad similar al que tiene los
applets.
4.a. RMI maneja comunicaciones punto a punto, o comunicacin multicast
(uno a muchos)?. Como modificara la arquitectura de RMI para soportar el
tipo de comunicacin que no es soportado?
Rta: La capa de referencias remotas define y soporta la semntica de
invocacin de las conexiones RMI. Existe una manera para que los
clientes para conectarse a la implementacin de un servicio remoto:
mediante una conexin unicast, punto a punto. En esta capa se
podra adicionar otro tipo de semntica de conexin por ejemplo con
multicast, mediante esta adicin un proxy podra enviar una solicitud
de mtodo a mltiples implementaciones simultneamente y acepta
la primera respuesta, esto mejorara el tiempo de respuesta y
posiblemente la disponibilidad.
4.b. Una versin de instalacin del paquete Java carece del servicio de
nombrado. Si un desarrollador desea realizar una aplicacin distribuida
usando esta versin de instalacin de Java, es viable que usando esta
versin de instalacin de la plataforma Java, pueda obtener una
implementacin Java RMI exitsa?(Justifique su respuesta).Rta: Un
mecanismo de nombrado usado por Java RMI para alcanzar objetos
remotos es mediante URLs. Una peticin en formato URL es enviada
al Servicio de Nombrado, dicha peticin es procesada y el alcance del
objeto remoto es llevado a cabo. La plataforma Java brinda a RMI una
flexible y lgica modalidad de servicio de nombrado: JNDI (Java
Naming and Directory Service). JNDI puede ser utilizado en RMI para
alcanzar recursos remotos.

5.a. En una aplicacin distribuida donde se han definido y compilado las


interfaces, se han compilado las clases cliente y servidoras, se utilizan tres
mquinas donde se hace la siguientes distribucin de cdigos de la
aplicacin: mquina1: almacenan las clases del cliente, mquina2: se
almacenan las clases stub, y en la mquina3: almacenan las clases
servidoras. Que mecanismo (s) usa RMI para que la aplicacin se ejecute?
Rta: La novedad en el contexto planteado radica en la ubicacin de
los stubs en un sitio diferente al del cliente. El stub en RMI es un
objeto, el cual es invocado bajo demanda, por tanto como cualquier
otro objeto requiere que se tenga un soporte para descargar su clase.
Para realizar la descarga dinmica del stub tres mecanismos son
requeridos 1-descargador de clases Java, 2-un gestor de seguridad y
3-un mecanismo de Serializacin para transmitir las clases.
5.b. Un servidor Java RMI con pocos recursos computacionales (memoria,
cpu, capacidad de almacenamiento, etc.), soporta 120 servicios. Desde el
punto de vista del usuario estos servicios estn activos todo el tiempo.
Como ha logrado el desarrollador dar esta sensacin de disponibilidad de
servicios?
Rta: Los objetos remotos tpicamente son instancias de la clase
java.rmi.UnicastRemoteObject. Este tipo de objetos remotos estn
disponibles y activos todo el tiempo aun cuando no existan clientes
ejecutndose. Cuando se tiene un escenario donde el nmero de
objetos remotos es alto, o los recursos usados por ellos en el
servidor es alto se recurre al concepto de Activacin de objetos. En la
activacin de objetos se permite que los objetos remotos sean
ejecutados con base a la necesidad. El objeto no se ejecuta hasta que
remotamente sea alcanzado, va la invocacin de uno de sus
mtodos. Desde el punto de vista del cliente los mecanismo de
activacin son transparentes, el cliente no es conciente de lo que
esta sucediendo en el lado del servidor para el existen una serie de
servicios disponibles para su uso.
1a) En una aplicacin para un sistema Java RMI se implementa el cliente
como un Applet y se usa la configuracin 'Dynamic clientside'.
En el cliente, quien limita la carga de las clases? El Gestor de Seguridad
de RMI o el Gestor de Seguridad Java? (Justifique su respuesta).
Rta:
En este caso existen dos tipos de clases que se java los maneja de
manera diferente: los Applets y las clases convencionales con RMI.
Para el caso de los Applets para su ejecucin es necesaria la
intervencin de un navegador el cual controla la carga, con respecto
a la seguridad mediante el securityManager de java, y para las clases

convencionales con RMI, en presencia del uso de carga dinmica, el


control de la carga a nivel de seguridad la realiza el
RMISecurityManager.
a) Describa como es el modelo de objetos definido en CORBA?
Rta: En el modelo de objetos de CORBA, los clientes no
necesariamente deben ser objetos, este puede ser cualquier
programa que enve mensajes de peticin a objetos remotos y recibe
las respuestas. Los objetos remotos son llamados CORBA objects.
Un CORBA Object implementa una interface IDL, tiene una referencia
a objetos remotos y es capaz de responder a invocaciones de sus
mtodos de su interface IDL. Un CORBA Object puede ser
implementado en un lenguaje orientado o no orientado a objetos. Ya
que el lenguaje de implementacin tendr diferentes nociones de
clase o ninguna nocin de clase, el concepto de clase no existe en
CORBA. Por lo tanto las clases no pueden ser definidas en CORBA
IDL, lo cual significa que instancias de clases no pueden ser pasadas
como argumentos. Sin embargo estructuras de datos de diferentes
tipos y de arbitraria complejidad pueden ser pasadas como
argumentos.
b)Explique como se realiza el paso de objetos locales en Java RMI de
Sun.
Rta:
Los objetos locales en Java RMI son pasados por valor, pues no tiene
sentido pasar una referencia remota local por que los objetos(local y
remoto) estn ubicados en diferentes JVMs y por lo tanto no
comparten el mismo espacio de memoria (heap). Similarmente
cuando se retorna un objeto local una copia de todo el objeto local es
pasado al objeto llamante. Ya que Java RMI debe enviar el objeto
referenciado y los objetos que este referencia, es necesario que el
objeto local implemente la interface java.io.Serializable o
java.io.Externalizable para permitir la transformacin del(los)
objeto(s) en un formato lineal para que pueda ser enviado por la red.
Los objetos serializados pueden ser deserializados en memoria de la
JVM remota y dejarlos listos para ser usados por el programa Java.

b) Indique cuales son las clases e instrucciones que se deben usar cuando
se desea lanzar el N_S de RMI usando programacin.
Rta:
Para poder manejar la creacin, localizacin del N_S en RMI esta
definida la clase LocateRegistry que pertenece al paquete
java.rmi.registry. Esta clase implementa 7 mtodos estticos, siendo
los ms relevantes:
public static Registry createRegistry(int port) : Crea un objeto tipo
RegistryImpl definiendole a port como nmero de puerto.
public Registry getRegistry(String host): Trata de establecer una
conexin con un objeto tipo RegisryImpl alojado en la mquina con
nombre host. Si el registro existe retorna a stub de dicho objeto.
Suponiendo que por lnea de comandos en el argumento 2 se pasa el
nombre del host, las instrucciones para lanzar el N_S por
programacin sera:
if(LocateRegistry.getRegistry(args[1])==NULL)
LocateRegistry.createRegistry(NumeroPuert.intValue());
else
System.out.println(El N_S ya existe en el sistema);
b) Si en un sistema basado en Java RMI en el lado cliente se cuenta con
un objeto remoto, como se pasa dicho objeto desde el cliente al servidor?
Y si en el lado servidor se cuenta con un objeto local, como se pasa dicho
objeto del servidor al cliente?
Rta:
Java RMI soporta el paso de tres tipos de parmetros: datos
primitivos, objetos locales y objetos remotos. Los objetos primitivos
y los objetos locales son pasados por valor, para enviar un objeto
local es necesario que la clase de este objeto implemente la interface
java.io.serializable, de esta manera el sistema RMI puede transmitir a
dicha clase como un flujo de bytes; los objetos remotos son pasados
por referencia, mediante la actuacin del stub en representacin de
este. Por tanto para este caso el objeto remoto es pasado por
'referencia' y el objeto local es pasado por valor.
b) De acuerdo Jon Siegel: Describa cual es el aporte que la inclusin de
MOF le di a CORBA?
Rta:
MOF (Meta Object Facility) proporciona un repositorio estndar para
metadatos. Definido en trminos de un metamodelo y un conjunto de
interfaces, permite la computacin basada en componentes desde el
modelado, el diseo hasta la implementacin en tiempo de ejecucin.
Mediante el metamodelo el sistema puede analizar la

metainformacin de los componentes, habilitando y facilitando el uso


compartido de sus componentes en ambientes hetereogneos. El
metamodelo puede apoyar la introspeccin,es decir permitir el
autoanlisis de los objetos remotos, lo que permite el intercambio de
componentes bajo entornos distribuidos hetereogneos y la
evolucin del ciclo de vida de dichos objetos remotos.
b) Describa el modelo de componentes de CORBA?
Rta:
El modelo de componentes de CORBA extiende el modelo de objetos
de CORBA para incluir nuevas facilidades para los Sistemas
Distribuidos. Se incluye la especificacin para Mltiples interfaces
por Objeto, Paso de objetos por valor y el Servicio de Mensajera. En
el nuevo modelo se especifica la relacin entre un componente y un
conjunto de interfaces. Los componentes tienen identidades de
instancias y propiedades que son una vista externa de un estado
abstracto de un componente y que pueden ser usados para
personalizar el componente y que soporten mecanismos de
notificacin y validacin cuando los valores de una propiedad
cambian. Los componentes soportaran otros modelos de
componentes existentes
5. a) Describa las propiedades del sistema que usa Java RMI para que la
invocacin dinmica se realice exitosamente.
Rta:
ser configurada es la variable CLASSPATH, de esta manera se le
indica al cargador de clases de java donde debe buscar las clases
que debe cargar.java.rmi.server.codebase: Esta especifica la
URL(file://,ftp://, http://) desde donde las clases pueden ser
alcanzadas. Si un objeto local es pasado como un parmetro de un
mtodo o como un tipo de retorno, la JVM del cliente necesitar
cargar los archivos class para ese
objeto.java.rmi.server.useCodebaseOnly: Esta porpiedad es usada
para notificar al cliente que esta cargara las clases solo desde la
ubicacin indicada por la propiedad codebase.Debe ser fijada, con el
fin de proteger al programa de descargar cdigo inseguro en
java.security.policy. Una instancia de tipo RMISecurityManager
controla la descarga de clases de acuerdo a los permisos del archivo
definido en la propiedad policy.

b) De acuerdo a Steve Vinoski cuales son los servicios que proporciona un


adaptador de objetos?.
Rta:
-Creacin de los objetos CORBA y las referencias de los objetos.
-Demultiplexacin de las peticiones hechas a cada objeto CORBA.
-Despachado de las peticiones a los servant apropiados
-Activacin y desactivacin de los objetos CORBA.
b) En un sistema basado en Java IDL(Sun) se presentan 2 fallos. Indique el tipo especfico
de excepcin que el sistema lanza ante las siguientes fallas:
- Cuando la clase stub no es encontrada.
- Cuando la conexin con el host servidor es rechazada.

Rta:
-StubNotFoundException: Se lanza esta excepcin cuando para un
objeto remoto exportado, su clase stub valida no puede ser
encontrada.
-ConnectException: Se lanza esta excpecin cuando ante un llamado
de una operacin remota se presenta un rechazo conexin a un
servidor remoto.
b) (C: 0.5) Describa como es el modelo de distribucin definido en CORBA?

Rta:
La base del modelo de distribucin CORBA es el lenguaje OMG IDL,
gracias a ello es posible definir tipos y operaciones, donde esta meta
informacin puede ser compartida a toda la red mediante un IR. Por
otro lado se define el GIOP, donde se especifican todos los aspectos
de interoperabiliad: definicin de mensaje, CDR para los tipos IDL,
gracias a todos estos aspectos el alcance de CORBA es vasto,
pudiendo interoperar con otros sistemas basados en otros
protocolos de bajo y alto nivel. Una instancia de un objeto CORBA es
representada por un IOR, otro aspecto relevante para conseguir la
interoperabilidad. Por otro lado la semntica de manejo de mensaje
se extiende incluyendo semntica sincrnica diferida, asincrnico
etc, aspectos usados en la DII.
4.a) Cuales objetos remotos (O1,O2, O3 y O4) podra implementar en un
sistema Java RMI, cuyas caractersticas deseadas de dichos objetos
seran las siguientes: Los objetos remotos: O1 y O3 conservan su
estado as el sistema se reinicie, y son creados la primera vez que el
sistema se ejecuta. O2 y O4 se crean siempre y cuando se solicite sus
servicios y su estado se afecta cuando el sistema se reinicia. (Justifique su
respuesta).
Rta:Los objetos 01 y O3 se pueden implementar como objetos de tipo
Activable, por tanto son persistentes y se crean cuando el sistema se

inicia, para guardar su estado y as conservar su estado as el


sistema se reinicie.Los objetos 02 y 04 no se pueden implementar
pues RMI no posee soportes para crear objetos no persistentes
cuando sean solicitados por el usuario.
INVOCACIONES:
SS
CIS
DSI
SS
DII
DSI

(Repositorio de Interfaces: es necesario para la invocacin


dinmica)
(Repositorio de Implementaciones: es necesario para los dos
tipos de invocacin, sin l no se puede realizar ninguna de las
dos).
(NamingService: necesario para la invocacin estatica, para poder
obtenerla referencia remota del servicio que se desea utilizar,no es
necesario para la invocacin dinmica)
*El servicio de consultas provee operaciones de consulta sobre
colecciones de objetos. Las consultas son basadas en predicados y
puede retornar colecciones de objetos. Ellos pueden ser
especificados usando objetos derivados de SQL y/o otros estilos de
objetos de lenguajes de consulta. La fuente y resultado de la
coleccin puede ser tipada. La coleccin fuente puede ser
especificada por el cliente o puede ser el resultado de una consulta
previa.

Das könnte Ihnen auch gefallen