From: Leandro Lucarella Date: Thu, 16 Oct 2003 04:04:48 +0000 (+0000) Subject: Se agrega la propuesta en bruto de la estructura del server. X-Git-Tag: svn_import~427 X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/commitdiff_plain/25cdb3937f63bd731a0068493df697040d7e1f4e?ds=sidebyside Se agrega la propuesta en bruto de la estructura del server. --- diff --git a/docs/server.txt b/docs/server.txt new file mode 100644 index 0000000..771296a --- /dev/null +++ b/docs/server.txt @@ -0,0 +1,45 @@ +vim: set ts=4 sw=4 tw=80: +$Id$ + +Propuesta de servidor v0.1: + +El servidor estará dividido en 2 modulos que provean 2 servicios diferentes: +1) Módulo de control. + El módulo de control se basa en el protocolo TCP y se encarga de listar + los archivos de planta disponibles en el servidor, permitiendo cambiar + las propiedades de cada uno y conocer su estado en términos generales + (si se está simulando o no). Todo lo que sean comandos (abrir una + exclusa, llenar un tanque, etc) se realizan a través de este módulo. + El protocolo que maneja este modulo es un HTTP simplificado. Se aceptan + comandos simples (en un principio solo GET) a través de URLs. + Ejemplos: + Obtiene lista de archivos: + GET / HTTP/1.0 + Cierra la de la planta : + GET /archivo/set/exclusa1?cerrar HTTP/1.0 + Pone el de en 3 l/s: + GET /archivo/set/canio1?caudal=3 HTTP/1.0 + Comienza la simulación de la planta : + GET /archivo/start HTTP/1.0 + Empieza a transmitir a host:port la simulación de la planta : + GET /archivo/connect?host=localhost&port=1234 HTTP/1.0 + Deja de transmitir a host:port la simulación de la planta : + GET /archivo/disconnect?host=localhost&port=1234 HTTP/1.0 + + Los datos que envía este módulo están en formato XML, preferentemente con + un archivo de transformación XSLT (o como se llame :) para que pueda ser + visto en un browser cualquiera (que soporte esto, como Mozilla). + +2) Módulo de simulación: + Este módulo se encarga de transmitir la simulación en tiempo real por UDP + (como si fuera un video). Comienza luego de que el módulo de control recibe + una petición de transmisión (con connect) y continúa transmitiendo (en un + thread propio) hasta que recibe un disconnect. Envia un archivo XML con el + estado de la planta. + En este caso no tiene sentido la XSLT porque no hay browsers HTTP que usen + UDP :). + +Opcionalmente se puede hacer un módulo de simulación sobre TCP, que sólo envíe +el estado actual de la planta en ese instante, o directamente implementarlo como +un comando del módulo de control para poder verlo en un browser. Aunque esto ya +sería más un cliente que un servidor :)