Usted está aquí: Inicio Ingeniería Informática Desarrollo de Aplicaciones Distribuidas Prácticas Implementación de un servicio de eventos en CORBA

Implementación de un servicio de eventos en CORBA

Acciones de Documento
  • Vista de contenidos
  • Marcadores (bookmarks)
  • Exportación de LTI
Autores: Alejandro Calderon Mateos, David Expósito Singh, Javier García Blas, Laura Prada

Objetivo

El objetivo del servidor es enviar información acerca de su estado a dos clientes (denominados monitorizadores). El esquema de comunicación a utilizar es un canal de eventos.

Con el fin de simplificar el diseño, el servidor únicamente tiene dos objetos tipo Vector denominados: Vector LISTA_A,LISTA_B; Estos elementos almacenan un nuevo valor numérico aleatorio con un periodo de TA y TB segundos. Adicionalmente, cada TM segundos se debe notificar a los dos clientes el número total de elementos que contiene el servidor. El alumno debe implementar un canal de eventos utilizando uno de los siguientes protocolos de comunicación:

  • CONSUMIDOR PUSH – PROVEEDOR PUSH
  • CONSUMIDOR PULL – PROVEEDOR PULL
  • CONSUMIDOR PULL – PROVEEDOR PUSH

Notar que en función del protocolo empleado, es el servidor o los clientes quien aporta/solicita una nueva notificación en el canal de eventos. El cliente de monitorización debe volcar a pantalla la información recibida por el servidor. Los parámetros TA,TB y TM son especificados por el usuario.

Estructura

El sistema distribuido consiste de tres elementos:

  • Un canal de eventos.
  • Un servidor que juega el papel de suministrador al canal de eventos.
  • Dos clientes que representan los consumidores.

 

Figura Práctica 4

 

Para realizar esta práctica es necesario implementar 3 clases:

  • CLASE SERVIDOR

Contiene un único objeto con los siguientes elementos: Dos elementos tipo Vector que almacenan el resultado numérico asociado a la ejecución de cada servicio. Estos elementos son: Vector LISTA_A,LISTA_B; También debe contener el siguiente método: Enviar_evento(int num_elementos) num_elementos es el número de elementos en LISTA_A + LISTA_B

  • CLASE CLIENTE_M

Contiene un único objeto que con el siguiente método: Recibir_evento(int num_elementos) El resultado recibido es mostrado en pantalla.

  • CLASE CANAL_EVENTOS

Configuración

Para emplear el servicio de eventos es necesario modificar el CLASSPATH añadiendo los siguientes directorios:

                 export CLASSPATH= /opt/JacORB_2.3.0_beta2/lib/jacorb.jar:/opt/JacORB_2.3.0_beta2/lib/idl.jar:.

También es necesario utilizar la distribución 1.6 de javac y java.

Estructura del sistema de ficheros

  1. Crear un directorio llamado DAD_PRAC2 con tres subdirectorios llamados Servidor, Cliente y CanalEventos. Dentro de cada uno de ellos debe de definirse cada una de las clases anteriormente enumeradas.
  2. En el directorio DAD_PRAC2 debe estar el fichero memoria.pdf con la memoria y documentación asociada a la parte de la práctica.

Código de ayuda

Ejemplo de canal de eventos o /opt/JacORB_2.3.0_beta2/demo/event

Reutilizar Curso
Descargar este curso