Ejercicios de IDL-CORBA: IDL y ORB

 

  1. Construir el código IDL correspondiente a una aplicación distribuida denominada "Secretaria digital", que permite mantener un diario personal de citas. Los usuarios pueden visualizar sus citas diarias, así como crear, editar o borrar citas. Dichas citas pueden incluir reuniones con otros usuarios en lugares específicos, lo cual implica reservar una sala disponible para un día y hora especificadas. Una reunión queda determinada indicando la hora de comienzo (asumiremos que las reuniones durarán una hora máximo), la persona con la que nos vamos a citar, la sala en la que nos vamos a reunir, y el propósito de la reunión. Los nombres de las personas con las que es posible tener una cita se obtienen del servicio de nombres CORBA cuando comienza la aplicación. Cada usuario de la "Secretaria digital" es registrado en el servicio de nombres para que otros usuarios puedan contactar con él.

    Las salas disponibles se obtienen de un proceso servidor separado denominado "Servidor salas" que tiene acceso a todas las salas de un edificio, permitiendo la adición de nuevas salas, así como comprobar las reservas de dicha sala. Cada Servidor de salas registra en el servicio de nombres las salas disponibles en su edificio.

    Finalmente se dispone de un "Servicio de citas" que crea y almacena información sobre las citas. Sus operaciones son accedidas a través de la Secretaria digital.

    Se deben incluir definiciones básicas para el día, hora, meses, años, y fechas (formadas por año, mes, día y hora).

    La interfaz Meeting describe el "Servicio de citas", y debe contener el propósito de la cita, el organizador de la cita, la sala en la que se realiza la cita, y la fecha. Además debe especificar métodos para:


    La interfaz Room proporcionará operaciones para visualizar, realizar y cancelar citas. La realización de citas puede lanzar la excepción "Fecha ya ocupada", y la cancelación de citas puede provocar la excepción "No hay cita en esta fecha".

    La interfaz Building contiene el nombre del edificio y los métodos para crear nuevas salas con un nombre dado, y otra para obtener un listado de salas existentes en el edificio.

    La interfaz DigitalSecretary representa a los usuarios del sistema. Contiene el nombre del usuario, la operacion notificar, que envía un mensaje a un usuario, y la operación invitar, para proponer una cita (el receptor de esta petición puede o no aceptar la cita), puede provocar la excepción "Ya estoy ocupado".