]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/documentacion.h
Se arregla el bug que hacia que el cliente levante mal archivos XML grandes.
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / documentacion.h
index 87ae0dbd4432bf60bcab8d97d672f9d22a783c34..ea3c53e5dcb0009111bfd86c513ad401c0ca6973 100644 (file)
@@ -57,7 +57,6 @@
                Este módulo está implementado por las clases PlaQui::Server::Transmitter y
                PlaQui::Server::Receiver.
 
-
 \section page_server_protocolo Comandos del Módulo de Control.
        Todos los comandos son rutas de archivos. En un principio no se van a utilizar
        los <em>query string</em> de los datos pasados por GET ni datos adicionales
        caso de la obtención de una planta tiene el mismo formato que el utilizado por el
        Constructor.
 
-\section page_server_uso Modo de uso.
-       \subsection page_server_uso_inicio Inicio del servidor
-               Para iniciar el servidor es necesario disponer de un archivo XML de
-               planta (por ejemplo, generado por el Constructor).
-
-               Invocación del servidor:
-               \verbatim ./plaqui-server [archivo] [puerto] \endverbatim
-
-               Ambos argumentos son opcionales. El primero, <tt>[archivo]</tt>, es la
-               ubicación del archivo con la descripción de la planta a simular (por omisión
-               <tt>planta.xml</tt>). El segundo, <tt>[puerto]</tt>, es el puerto en el cual
-               se van a atender las peticiones al servidor (por omisión 7522).
-
-       \subsection page_server_uso_estado Estado del servidor.
-               Mientras el servidor se ejecuta, va imprimiendo en la salida estándar su
-               estado. Se imprime cada vez que llega una conexión entrante y cada vez que
-               se detecta un error.
-
-               Otro tipo de información del estado del servidor puede ser obtenida desde
-               el cliente a través del comando <tt>/server/info</tt> (ver
-               \ref page_server_protocolo_general).
-
-               \note Los errores se imprimen en la salida de error, no en la salida
-                     estándar.
-
-       \subsection page_server_uso_fin Finalización del servidor.
-               Hay varias formas de finalizar el servidor:
-               - Enviando una señal de interrupción (<tt>SIGINT</tt>), por ejemplo,
-                 presionando la combinación de teclas <tt>CTRL-C</tt>.
-               - Enviando una señal de salida (<tt>SIGQUIT</tt>) o de terminación
-                 (<tt>SIGTERM</tt>), por ejemplo, a través del comando
-                 <tt>kill(1)</tt>.
-               - Enviando un comando <tt>/server/stop</tt> desde un cliente (ver
-                 \ref page_server_protocolo_general).
-
-               Cualquiera de estos métodos es válido y finaliza el servidor de forma
-               correcta.
+\section page_server_implementacion Destalles de la implementación.
+       El servidor se basa en un la clase PlaQui::Server::Runnable que se utiliza para
+       encapsular un hilo de ejecución. De ella derivan todas las demás clases
+       importantes del servidor: PlaQui::Server::TCPServer y PlaQui::Server::Connection.
+       De esta última derivan todas las posibles conexiónes que hay para la comunicación
+       entre el servidor y el cliente: PlaQui::Server::ControlClient,
+       PlaQui::Server::ControlServer, PlaQui::Server::Receiver y
+       PlaQui::Server::Transmitter. Las dos primeras son utilizadas para la conexión
+       de control y las dos segundas para la transmisión del estado de la planta por
+       UDP.
+
+       El protocolo HTTP se encapsula en la clases PlaQui::Sever::HTTPMessage y de ella
+       derivan PlaQui::Sever::HTTPRequest (petición HTTP) y PlaQui::Sever::HTTPResponse
+       (respuesta HTTP). Hay otras clases auxiliares como PlaQui::Sever::HTTPError que
+       encapsula un error HTTP.
+
+       Finalmente, para abstraerse del protocolo HTTP que se usa de transporte, se
+       implementan dos clases: PlaQui::Sever::Command y PlaQui::Sever::Response que
+       representan un comando y una respuestas específicos del servidor PlaQui.
+
+       A continuación se incluye un diagrama de clases para tener una visión más general
+       de las clases más importantes utiilzadas en el servidor:
+               \image html cliente_servidor.png
+               \image latex cliente_servidor.eps "Diagrama de clases." width=14cm
 
 */