3 \section introduccion Introducción.
5 \subsection herramientas Herramientas Utilizadas.
6 Aquí tenemos un listado de las herramientas y bibliotecas que estamos
7 utilizando a fin de poder luego documentar de manera correcta los
8 requerimientos para instalar y ejecutar el programa, las versiones y los
9 programas utilizados durante el desarrollo.
10 - Glade2: Editor RAD para crear interfaces de usuario.
11 [http://glade.gnome.org/]
12 - GCC (3.2.x): Compilador C/C++.
14 - VIM: Editor de texto utilizado para programar.
16 - Doxygen: Generador de documentación y referencias cruzadas.
17 [http://www.stack.nl/~dimitri/doxygen/]
18 - Subversion: Es un SCM (Source Code Manager) que permite trabajar
19 con versiones concurrentes en un repositorio de código fuente de
21 [http://subversion.tigris.org/]
22 - LyX: Procesador de texto WYIWYM (What You See Is What You Mean)
23 para hacer documentos técnicos fácilmente.
25 - Mailman: Manejador de listas de correo.
26 [http://www.gnu.org/software/mailman/]
28 [http://www.gnu.org/software/make/]
30 [http://www.gnu.org/software/automake/]
32 [http://www.gnu.org/software/autoconf/]
34 \subsection bibliotecas Bibliotecas Utilizadas.
35 - Gtkmm ( >= 2.0.0): Warper a C++ de la biblioteca Gtk+
36 [http://www.gtkmm.org/]
37 - Glademm ( >= 2.0.0): Para cargar archivos XML con la UI
38 [http://www.gtkmm.org/]
39 - Glibmm ( >= 2.0.0): Funciones de threads y otras básicas.
40 [http://www.gtkmm.org/]
41 - sigc++ ( >= 1.2.5): Sistema de señales para C++
42 [http://libsigc.sourceforge.net/]
43 - libxml2 ( >= 0.15.0): Parser de XML.
45 - libxm++ ( >= 0.15.0): Wrapper de libxml2 para C++.
46 [http://libxmlplusplus.sourceforge.net/]
47 - socket++ ( >= 1.12.10): Wrapper de socket portables en C++ streams
48 [http://members.aon.at/hstraub/linux/socket++/]
50 \subsection requerimientos Requerimientos de Hardware y SO.
51 PlaQui fue desarrollado bajo Debian GNU/Linux sid (http://www.debian.org/),
52 pero debería andar en cualquier GNU/Linux e incluso probablemente en otros
53 Unixes (e incluso podría llegar a andar en WIN32). La versión para el
54 usuario (binaria y sin símbolos para depurar) requiere menos de 2MB de
55 espacio en disco. Para compilarlo (con símbolos para depurar) puede
56 necesitar más de 80MB.
58 \subsubsection requerimientos_minimos Requerimientos mínimos.
59 Esta es la mínima configuración en la que fue probado.
60 - Procesador: Pentium 75MHz
61 - Memoria RAM (física y virtual): 32MB
63 \subsubsection requerimientos_recomendados Requerimientos recomendados.
64 - Procesador: PII 400 Mhz
67 \section instalacion Instalación.
68 El programa se divide en 4 módulos:
69 - \ref page_model "Modelo": es el módulo que se encarga de la simulación y el modelo
70 \c físico de la planta (es una biblioteca).
71 - \ref page_server "Servidor": es la infrastructura de red. Comprende tanto
72 el servidor como el cliente en cuando al manejo de la red (es una
73 biblioteca y un programa).
74 - \ref page_client "Cliente": es el cliente gráfico que permite ver la simulación (es un
76 - \ref page_constructor "Constructor": es el programa para diseñar la planta química
77 que será simulada por el modelo en el servidor (es un programa).
79 La instalación puede realizarse de dos formas: instalando módulo por
80 módulo o instalando todos los módulos a la vez.
82 \subsection instalacion_global Instalación Global.
83 Para instalar todos los programas es sencillo.
84 -# Descomprimir el paquete:
85 \verbatim tar -xvzf plaqui-proyect.tar.gz \endverbatim
86 -# Entrar al directorio del proyecto:
87 \verbatim cd plaqui \endverbatim
88 -# Inicializar el proyecto:
89 \verbatim aclocal && autoconf && automake -a \endverbatim
90 -# Configurar la compilación del proyecto (generalmente basta con):
91 \verbatim ./configure \endverbatim
92 Esto lo instala por defecto en <tt>/usr/local</tt>, se puede
93 especificar otra ruta con la opcion <tt>--prefix</tt>. También se
94 puede compilar en modo de depuración con la opción
95 <tt>--enable-debug</tt>. Para más opciones hacer
96 <tt>./configure --help</tt>.
97 -# Compilar el proyecto:
98 \verbatim make \endverbatim
99 -# Instalar el proyecto:
100 \verbatim make install \endverbatim
102 \note Para realizar el último paso, dependiendo de si usó la
103 opción <tt>--prefix</tt> o no, es posible que necesite
104 permisos de superusuario (<tt>root</tt>).
106 \subsection instalacion_por_partes Instalación Por Partes.
107 El procedimiento es muy similar al anterior:
108 -# Descomprimir el paquete:
109 \verbatim tar -xvzf plaqui-proyect.tar.gz \endverbatim
110 -# Entrar al directorio del módulo [Módulo]:
111 \verbatim cd plaqui/[Módulo] \endverbatim
112 -# Inicializar el módulo:
113 \verbatim aclocal && autoconf && automake -a \endverbatim
114 -# Configurar la compilación del módulo (generalmente basta con):
115 \verbatim ./configure \endverbatim
116 -# Compilar el módulo:
117 \verbatim make \endverbatim
118 -# Instalar el módulo:
119 \verbatim make install \endverbatim
121 \note Para realizar el último paso, dependiendo de si usó la
122 opción <tt>--prefix</tt> o no, es posible que necesite
123 permisos de superusuario (<tt>root</tt>).
125 \section mainpage_server Puesta en marcha del servidor.
127 \subsection mainpage_server_uso_inicio Inicio del servidor.
128 Para iniciar el servidor es necesario disponer de un archivo XML de
129 planta (por ejemplo, generado por el \ref page_constructor "Constructor").
131 Invocación del servidor:
132 \verbatim ./plaqui-server [archivo] [puerto] \endverbatim
134 Ambos argumentos son opcionales. El primero, <tt>[archivo]</tt>, es la
135 ubicación del archivo con la descripción de la planta a simular (por omisión
136 <tt>planta.xml</tt>). El segundo, <tt>[puerto]</tt>, es el puerto en el cual
137 se van a atender las peticiones al servidor (por omisión 7522).
139 \subsubsection mainpage_server_log Guardar la salida del servidor en un archivo.
140 Para guardar la salida del servidor en un archivo puede ejecutar:
141 \verbatim ./plaqui-server [archivo] [puerto] > [archivo] \endverbatim
142 Esto guardará sólo los mensajes comunes pero los mensajes de error
143 seguirán apareciendo por pantalla. Para guardar todo en un archivo:
144 \verbatim ./plaqui-server [archivo] [puerto] 2>&1 > [archivo] \endverbatim
145 Si quiere guardar sólo los errores en un archivo, puede hacer:
146 \verbatim ./plaqui-server [archivo] [puerto] 2> [archivo] \endverbatim
148 \subsubsection mainpage_server_background Correr el servidor en segundo plano.
149 Para correr el servidor en segundo plano puede ejecutar:
150 \verbatim ./plaqui-server [archivo] [puerto] & \endverbatim
151 Esto puede combinarse con los comandos las formas de ejecución
152 detalladas en \ref mainpage_server_log.
154 \subsection mainpage_server_uso_estado Estado del servidor.
155 Mientras el servidor se ejecuta, va imprimiendo en la salida estándar su
156 estado. Se imprime cada vez que llega una conexión entrante y cada vez que
159 Otro tipo de información del estado del servidor puede ser obtenida desde
160 el \ref page_client "cliente" a través del comando <tt>/server/info</tt>.
162 \note Los errores se imprimen en la salida de error, no en la salida
165 \subsection mainpage_server_uso_fin Finalización del servidor.
166 Hay varias formas de finalizar el servidor:
167 - Enviando una señal de interrupción (<tt>SIGINT</tt>), por ejemplo,
168 presionando la combinación de teclas <tt>CTRL-C</tt>.
169 - Enviando una señal de salida (<tt>SIGQUIT</tt>) o de terminación
170 (<tt>SIGTERM</tt>), por ejemplo, a través del comando
172 - Enviando un comando <tt>/server/stop</tt> desde un
173 \ref page_client "cliente".
175 Cualquiera de estos métodos es válido y finaliza el servidor de forma
180 /** \namespace PlaQui
182 Diseñador, simulador y controlador de plantas químicas distribuido.
184 El Programa se divide en 4 módulos. Los módulo que se comportan como
185 biblioteca compartida tienen a su vez un espacio de nombres (namespace)
186 anidado: PlaQui::Model y PlaQui::Server.