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

Implementación de un chat 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

Objetivo

Se trata de implementar un chat distribuido. La aplicación cliente/servidor estará formada por un servidor que contiene en un objeto CORBA información sobre los clientes conectados al chat, y varios clientes que hablarán entre ellos.

Cada vez que un cliente envíe un mensaje al servidor, éste lo enviará al resto de clientes.

Los clientes obtendrán del servidor una referencia del objeto CORBA y a continuación lo usarán para enviar los mensajes del chat.

Los clientes se registrarán sus objetos CORBA en el servidor, para que éste les envíe los mensajes de los otros clientes, indicando los nicks de los que los escriben.

Con motivo de jugar con la interoperabilidad que es inherente a la especificación CORBA a partir de la versión 2, se habrán de implementar 2 objetos CORBA y sus correspondientes procesos clientes tanto en Java como en C++. El servidor únicamente tendrá que implementarse en Java.

Estructura

El sistema distribuido consiste de los siguientes elementos:

  • Un objeto Chat CORBA implementado por un objeto Java.
  • Un proceso servidor en Java que se encargue de crear el objeto Chat CORBA y hacerlo accesible a los clientes almacenando su referencia en el servicio de nombres.
  • Un proceso cliente implementado en Java que envíe mensajes al resto de clientes, consiguiendo su referencia a través del servicio de nombres.
  • Un proceso cliente implementado en C++ que envíe mensajes al resto de clientes, consiguiendo su referencia a través del servicio de nombres.

Los procesos clientes y servidores deberán ejecutar en la misma o en distintas máquinas. El código deberá introducirse dentro de secciones try-catch por las posibles excepciones que pueden producirse como consecuencia del fallo de alguna de las operaciones sobre los objetos ORB.

Estructura del sistema de ficheros

  1. Crear un directorio llamado DAD_PRAC2_2011 con tres subdirectorios llamados ServidorJava, ClienteJava y ClienteCplusplus. Dentro de cada uno de ellos debe de definirse cada una de las clases y objetos anteriormente enumerados.
  2. En el directorio DAD_PRAC2_2011 debe estar el fichero memoria.pdf con la memoria y documentación asociada a la parte de la práctica.

Recursos

OmniORB-4.1.4 –> Contiene códigos de ejemplo en omniORB-4.1.4/src/examples/. También disponibles en /opt/APPS/omniORB-4.1.4/src/examples, en las aulas del laboratorio.
chat.idl
Makefile de ejemplo para generar los ficheros correspondientes al cliente C++ (Antes de usarlo añadir al .bashrc: export LD_LIBRARY_PATH=/opt/omniORB-4.1.4/lib:$LD_LIBRARY_PATH)
Fichero de configuración que le indica al cliente en c++ dónde encontrar el servidor de nombres (En este caso: servidor –> localhost; puerto –> 2029 ; contexto raiz –> NameService). Para que el cliente c++ pueda usarlo, añadir al .bashrc:

export OMNIORB_CONFIG=<path_donde_esté_el_fichero_cfg>/sample.cfg

Para los procesos Java, es necesario utilizar la distribución 1.6 de javac y java.

Reutilizar Curso
Descargar este curso