]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
Se agrega la propuesta en bruto de la estructura del server.
authorLeandro Lucarella <llucax@gmail.com>
Thu, 16 Oct 2003 04:04:48 +0000 (04:04 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 16 Oct 2003 04:04:48 +0000 (04:04 +0000)
docs/server.txt [new file with mode: 0644]

diff --git a/docs/server.txt b/docs/server.txt
new file mode 100644 (file)
index 0000000..771296a
--- /dev/null
@@ -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 <exclusa1> de la planta <archivo>:
+                       GET /archivo/set/exclusa1?cerrar HTTP/1.0
+               Pone el <caudal> de <canio1> en 3 l/s:
+                       GET /archivo/set/canio1?caudal=3 HTTP/1.0
+               Comienza la simulación de la planta <archivo>:
+                       GET /archivo/start HTTP/1.0
+               Empieza a transmitir a host:port la simulación de la planta <archivo>:
+                       GET /archivo/connect?host=localhost&port=1234 HTTP/1.0
+               Deja de transmitir a host:port la simulación de la planta <archivo>:
+                       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 :)