Arquitectura y Desarrollo de Sistemas Distribuidos con CORBA y Java RMI

DYDROR( )C2

IDL Interface Name

Especifica el nombre de las interfaces IDL. Si el ORB tiene una interfaz, el nombre corresponderá al ID del repositorio de interfaces.

Protocol and Address Details

Se especifica el protocolo de transporte y los detalles requeridos de ese protocolo para identificar el servidor. IIOP usa TCP/IP; los detalles del servidor son host y puerto.

Object Key

Identifica el objeto CORBA. Contiene el nombre del adaptador de objetos y el nombre del objeto generado por el OA donde se registró el servant.

JAVAIDLFALLOS

  • Stub no encontrada = StrubNotFound
  • Conexión al servidor rechazada = ConnectException

Invocación en Escenarios CORBA

¿La invocación (dinámica o estática) se puede realizar en los siguientes escenarios CORBA?

  • El cliente usa un ORB basado en la especificación CORBA 2.0, dispone del Repositorio de Interfaces y el servidor usa un ORB basado en el CORBA 2.3 de cuyos elementos no posee el skeleton.

Respuesta:

  • Invocación estática: Se puede realizar a pesar de que no se cuenta con el skeleton, la petición puede ser procesada a través de DSI.
  • Invocación dinámica: Se puede realizar, cuenta con el IR en el lado del cliente y el DSI en el lado del servidor.
  • En el servidor, el servant se implementa por delegación, en un ORB (de la empresa Sun que usa CORBA 1.1) de cuyos elementos no dispone del Repositorio de Implementaciones, el cliente se implementa en un ORB (de la empresa Iona) que usa CORBA 1.1, de cuyos elementos no dispone del Stub.

Respuesta:

  • Invocación estática: No se puede realizar debido a que se tienen ORBs no compatibles, además no se cuenta con el stub.
  • Invocación dinámica: No se puede realizar debido a que se tienen ORBs no compatibles, además no se cuenta con el IR.
  • El sistema usa un ORB 3.0 de cuyos elementos, en el servidor no existe Repositorio de Implementaciones y el servant está implementado por herencia y es persistente.

Respuesta:

  • Invocación estática: No se puede realizar porque en el lado del servidor no se cuenta con el Repositorio de Implementaciones, pues se trata de un servant persistente.
  • Invocación dinámica: No se puede realizar porque en el lado del servidor no se cuenta con el Repositorio de Implementaciones, pues se trata de un servant persistente.
  • El cliente tiene stub, Repositorio de Interfaces y el servidor tiene skeleton, POA, Repositorio de Implementaciones y no se tiene la interfaz del ORB.

Respuesta:

  • Invocación estática: Debido a la ausencia de una ORBI, no se pueden inicializar los objetos CORBA, el C.O, etc., por tanto, no es posible realizar la invocación.
  • Invocación dinámica: Debido a la ausencia de una ORBI, no se pueden inicializar los objetos CORBA, el C.O, etc., por tanto, no es posible realizar la invocación.

Modelo de Distribución en CORBA

Respuesta:

La base del modelo de distribución CORBA es el lenguaje OMG IDL, gracias a ello es posible definir tipos y operaciones, donde esta metainformación puede ser compartida a toda la red mediante un IR. Por otro lado, se define el GIOP, donde se especifican todos los aspectos de interoperabilidad: definición 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 semántica de manejo de mensaje se extiende incluyendo semántica sincrónica diferida, asincrónica, etc., aspectos usados en la DII.

Servicio de Encuesta con Java RMI

Especifique el servicio que se describe en el punto 4 a) usando Java RMI.

Respuesta:


public interface Encuesta extends Remote{
    public boolean aceptaVoto(Voto v) throws RMIException;
    public void actualizarVotos() throws RMIException;
    public Votación leerVotos() throws RMIException;
    /*Para realizar la desconexión de los usuarios es necesario realizar un callback,
     * para ello se implementa la siguiente interface
     */
    public void regCallback(CallbackEncuesta) throws RMIException;
}

public interface CallbackEncuesta extends Remote{
    public void desconectarUsuario() throws RMIException;
}

Modelo de Componentes de CORBA

Respuesta:

El modelo de componentes de CORBA extiende el modelo de objetos de CORBA para incluir nuevas facilidades para los Sistemas Distribuidos. Se incluye la especificación para Múltiples interfaces por Objeto, Paso de objetos por valor y el Servicio de Mensajería. En el nuevo modelo se especifica la relación 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 notificación y validación cuando los valores de una propiedad cambie. Los componentes soportarán otros modelos de componentes existentes.

Sistema de Consultas de Opinión Basado en CORBA 3.0

En un sistema de consultas de opinión, basado en CORBA 3.0, se diseña para soportar la encuesta de sólo un tema. Los entrevistados pueden responder SI o NO o NS/NC. El servant de este sistema, acepta los votos de los usuarios, guarda el recuento de los votos, proporciona el recuento actual a los usuarios que estén interesados y desconecta a los clientes no activos. El sistema usa invocación estática e implementación del servant usando modo BOA. Dibujar la arquitectura CORBA indicando el flujo de la información cuando un usuario introduce un voto al sistema.

Respuesta:

(Diagrama de la arquitectura CORBA – No es posible representarlo en texto)

Aplicación con Java RMI (JDK 1.1)

Si la aplicación del problema 4.a) está basada en Java RMI (con JDK 1.1), dibuje los nodos de esta aplicación que deberían conectarse en este sistema distribuido, teniendo en cuenta que: El cliente usa el Modo de Configuración ‘Dynamic client-side’ y el servidor usa el Modo de Configuración ‘Bootstrapped’. En cada nodo debe indicarse los nombres de los directorios y archivos que usted instalaría para que esta aplicación se ejecute exitosamente. Asumir que el cliente de objetos se denomina ClienteU y el servidor de objetos ServidorU.

Respuesta:

(Diagrama de nodos – No es posible representarlo en texto)

Seguridad en el Lado del Cliente con Java RMI

De acuerdo al problema planteado en el punto 4.b), indique los comandos e instrucciones de código que debería ejecutar en el lado del cliente, para que el aspecto de seguridad se ejecuten satisfactoriamente.

Respuesta:

  • Se debe utilizar un archivo de políticas para configurar las opciones de seguridad que tendrá el C.O y el callback.
  • El C.O debe configurar un gestor de seguridad que utilizará el archivo de políticas.

if (System.getSecurityManager()==null){
    System.setSecurityManager(new RMISecurityManager());
}

  • Lanzar el C.O fijando las propiedades codebase y policy de la máquina virtual.

java -Djava.security.policy=archivoX.policy -Djava.rmi.server.codebase=url_del_sweb cliente.ClienteU

Componentes del Event Header de un Structured Event

De acuerdo al autor George Coulouris, describa los componentes que contiene el event header de un tipo Structured Event.

Respuesta:

Un event header contiene los siguientes campos:

  • Domain type: Se refiere a la definición del dominio.
  • Event type: Categoriza el tipo de evento, únicamente dentro del dominio.
  • Event name: Identifica la instancia específica del evento que está siendo transmitido.
  • Requirements: Contiene una lista de pares usados para especificar requerimientos de un evento recuperado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.