Comandos
vcCSm: Servidor Central
del Video Club
vcAdmin: Aplicación cliente para la administración
vcUser: Aplicación cliente para
que el usuario interactue con el servidor Central del video Club
vcVRSm: Servidor de Recepción
de Videos
Sintaxis
vcCSm <Puerto para aceptar Usuarios XXX> <Puerto
para acceder a Servidores de recepción YYY> <PUERTO MULTICAST>
<CANAL MULTICAST>
vcAdmin <nombre máquina Servidor Central> <Puerto
para acceder al Servidor Central XXX>
vcUser <nombre máquina Servidor Central> <Puerto
para acceder al Servidor Central XXX>
vcVRSm <Puerto para aceptar al Servidor Central YYY>
Archivos Relacionados: videos.txt
Descripción
a,b,c son Conexiones TCP, d: es datagrama multicast
Servidor Central (video
club Central
Server)
La tarea asume que el servidor central corre practicamente
en forma permanente. Espera por conexiones en el puerto XXX. Inmediatamente
despues de aceptar una conexión, este servidor espera la identificador
del tipo de cliente a través de un primer mensaje remoto. Si el cliente
resulta ser un usuario, el servidor se prepara para aceptar los requerimientos
de un cliente vcUser. Si el cliente resulta ser un administrador,
el servidor procede a aceptar los comandos del cliente vcAdmin
.
Para responder a las consultas de usuarios y administradores,
del cual sólo uno es aceptado por vez, el servidor maneja y actualiza
la información del archivo videos.txt.
Cliente de Administración (v
ideo club A
dministator)
Esta aplicación cliente se conecta al servidor
central al puerto XXX y se identifica como tal. El administrador nos
permite:
1.- Listar los videos disponibles en la "base de datos" (videos.txt) Se
lista:
Número del video
Nombre del Video Duración
2.- Agregar un nuevo video para ser solicitado.
En este caso el cliente le envia todos los datos del nuevo video (nombre,
descripción y su ubicación en el sisyema de archivos del servidor).
3.- Remover un video del sistema. (sólo lo saca de videos.txt y ya
no está disponible una vez removido). Si el video ya había
sido programado para transmisión, tome el camino más simple
segun su implementación; por ejemplo, manteniendo lo ya programado.
Cliente Usuario (video club User)
El vcUser se contacta con el servidor
y las siguientes opciones están disponibles para el usuario:
1.- Listado de videos disponible. Se lista:
Número del video
Nombre del Video Duración
2.- Solicitud de un video. Se ingresa el número del video y el horario
más tardio que toleramos se nos envie el video al servidor vcVRS.
Éste servidor también es especificado por el usuario. El servidor
responde si la programación pudo o no ser satisfecha. Otra responsabilidad
de vcUser es enviar a vcCS la cuenta del usuario cliente, para
su posterior contacto via email.
La máquina receptora del video se especifica a través de su
nombre lógico (ej. mateo.elo.utfsm.cl)
Múltiples usuarios pueden estar ejecutando el cliente vcUser a al
vez.
Servidor de Recepción de Videos (video c
lub Video Receiver Server)
Este servidor corre en forma permanete en distintos lugares.
Su función es la de recibir el video que previamente algún
usuario solicitó. Los videos recibidos se almacenan en el directorio
actual para vcVRS (aquel desde donde se ejecutó). Una
vez trasferido el video desde el servidor central a un (los) servidor(es)
vcVRS, el servidor central envia un correo al (los) usuario(s) solicitante(s)
del video notificando el cumplimiento del requerimiento:
"Su video <nombre del video> ya ha sido depositado en <nombre del
servidor vcVRS>
El archivo videos.txt tiene el siguiente formato:
<Número del video> ^ <nombre del video> ^ <Duración
en minutos> <localización en el sistema de archivos><NewLine>
Protocolo de transferencia de videos entre
vcCS y vcVRS
La transferencia del video entre el servidor
central y los servidores de recepción se efectúa usando UDP
multicast. En cualquier caso la información de control (señalar
inicio de transmisión e información de control sobre el archivo
-su nombre-; y al término información de término de
la transferencia) debe ser transportada a través de una conexión
TCP. Adicionalmente el servidor central notifica usa el canal TCP para informar
al receptor sobre los parámetros (puerto y canal multicast) a ser
usados para la transferencia de los datos (archivo de video). Es así
como el Servidor de Recepción se entera del puerto y canal multicast
a usar.
Dado que la trasmisión de la película se
hace en forma multicast, vcVRS aprovecha de programar en el mismo horario
de bajada a todos los usarios que han solicitado la misma película.
Notas Generales
El diseñador y programdor de esta tarea es libre de utilizar el algoritmo
de satisfacción de los requerimientos que mejor estime conveniete.
Lo fundamental es tener un sistema que funcione aun con un algoritmo simple
de itineración de solicitudes.
vcCS y vcVRS deben transferir archivos reales. Obviamente no se requiere que sean videos, pero debe haber una transferencia real, la cual se asume dura la duración estipulada para el video aun cuando en la práctica pueda ser de mucho menor duración (pero no mayor ducración).