Caracas, 12 de Octubre de 2013 Universidad Católica Andrés Bello Escuela de Ingeniería Informática Sistemas Distribuidos Prof. Wílmer Pereira Proyecto 1 (%) Entrega y Recepción de información Una empresa de envío de paquetes desea emular en un sistema distribuido su funcionamiento en el mercado y obtener estadísticas sobre su comportamiento. Esta información les permitirá, a posteriori, tomar decisiones gerenciales tales como: abrir nueva sucursal, contratar nuevos empleados y otras operaciones. A través de entrevistas con los socios y gerentes de la empresa se definieron los procesos de recepción y envíos de paquetes: La empresa tiene un transporte para enviar paquetes e información de control entre sucursales. La información de control es parte de un protocolo de funcionamiento entre las sucursales para coordinar las tareas de envío y recepción de paquetes. Los trayectos entre las sucursales conforman un anillo, es decir, el transporte vuelve al punto de origen después de visitar todas las sucursales. Cada tramo entre sucursales tarda inicialmente al menos 4 segundos y una vez que el transporte está en la sucursal entrega y recibe en 1 segundo cada paquete. En cambio, la información de control siempre tarda en actualizarse 2 segundos. Cada paquete tarda 15 segundos en procesarse una vez descargado del transporte. Sólo se procesan máximo tres paquetes simultáneamente y en caso de tener más deben quedar en una lista de espera de recepción. El transporte soporta máximo 10 paquetes así que si una sucursal no puede colocar un paquete lo deja en una lista de espera de envío hasta que haya espacio en el transporte (longitud máxima 7 paquetes). Cuando el vehículo tiene más de 6 paquetes tarda un segundo más por bulto. Es decir, si tiene 8 paquetes, el trayecto tardará 6 segundos en lugar de 4 segundos. Existe un servidor centralizado que debe recibir información del estado del anillo de sucursales para construir los reportes estadísticos. Ese protocolo se monta sobre una configuración en estrella independiente del anillo entre sucursales. Cada sucursal tiene un límite en la lista de espera de recepción (máximo 5). Cuando se llega a ese límite el transporte debe llevarse el paquete y regresar con el paquete en una próxima oportunidad. El tiempo por defecto en que un paquete sale de la lista de espera debe ser configurable al momento de levantar la sucursal mediante una pregunta por cónsola. Según la información levantada la empresa requiere un sistema distribuido que cumpla con las siguientes características técnicas: Cada sucursal corre en una máquina virtual y al menos una debe estar en Window y otra en Linux. El servidor central estará en Linux. El mínimo son 5 máquinas virtuales: cuatro sucursales y el servidor central. Cada sucursal tiene una cónsola que muestra la información de lo sucedido durante el tránsito del transporte y comunicaciones con el servidor central. Desde esa misma cónsola se puede solicitar un reporte de estadísticas. Deben considerar los tiempos indicados para hacer que la simulación puede ser visualizada progresivamente. Para ello use primitivas del lenguaje que le permitan simular esos tiempos Todas las sucursales tiene dos listas de espera: recepción y envío de paquetes. La lista de recepción es necesaria porque cada sucursales tarda cierto tiempo en procesar varios paquete (deben usar hilos). La lista de envío se mantiene porque el transporte puede estar lleno en cuyo caso la sucursal debe esperar por espacio disponible para poder enviarlo. El protocolo debe estar definido sobre XML y por ende puede usar un parser para extraer la información transmitida entre las sucursales y contra el servidor central. Las estadísticas pueden ser consultadas desde la cónsola de cada sucursal mediante un pequeño menú y los datos que se pueden solicitar son: o Tiempo promedio que tardan los paquetes de una sucursal en llegar a destino o Promedio del tiempo de espera en recepción de paquetes por sucursal o Cantidad de paquetes no aceptados (se quedan en el transporte) por saturación en la lista de espera de recepción por sucursal. También porcentaje del total de no aceptados en recepción con respecto a todos los enviados. o Porcentaje de tiempo en que el transporte circula con su carga máxima o Porcentaje de paquetes que entran al primer intento en el transporte y salen al primer intento del transporte. o Conteo de veces que los paquetes no salen de la lista de espera de envío por saturación del transporte. Dar el promedio … La aplicación puede desarrollarla en el lenguaje que desee aunque si usa Java debe usar como primitivas de comunicación RMI. En caso de seleccionar C usaría RPC. El informe debe contener las características de su diseño, en particular como manejaron el anillo y los diagramas de secuencia que indiquen claramente el protocolo de interacción entre los diferentes actores del sistema. Por ahora no se considerará casos de caída de sucursales ni pérdidas del transporte pero si puede haber otros errores menores que debe considerar su protocolo. Los grupos son de máximo dos personas y la corrección es presencial donde se interrogará a cada miembro del grupo.