Podríamos dividir la aplicación en tres partes:
Realizado en C# 2.0 es el conjunto de clases que implementan los algoritmos de la aplicación. Todos los cálculos de la simulación se realizan en esta parte, que envía los resultados mediante mensajes xml a las páginas cliente a través del servidor de sockets. Es por tanto en aquí donde realmente se está produciendo la simulación, sólo que de manera interna, es decir, sin interfaz gráfica.
-
SERVIDOR DE SOCKETS
Es una aplicación de consola realizada en C# 2.0 bajo la cual se ejecuta la parte del núcleo. Su función es la de servir los sockets XML que conecten la parte cliente (páginas flash) con la parte núcleo correspondiente (herramientas de disco, paginación y planificación).
Básicamente el funcionamiento consiste en lo siguiente: El usuario accede a la página web, ésta pide una conexión al servidor de sockets indicándole el tipo de simulación que precisa (disco, paginación o planificación), si el servidor acepta la solicitud crea un hilo que ejecuta la herramienta correspondiente y le asigna un socket de comunicación con la página. Despúes el servidor se queda a la espera de nuevas peticiones.
-
PÁGINAS CLIENTE (FLASH)
Páginas web realizadas en Macromedia Flash 8 Proffesional. Forman la Interfaz de Usuario de la aplicación. Se conectan con el servidor mediante un recurso de flash que son los XMLSocket. La gran mayoría de operaciones se realizan en el núcleo mientras que estas páginas reciben la salida del mismo y le comunican los cambios de preferencias introducidos por el usuario mediante mensajes XML.
Por tanto todo lo necesario para que la aplicación funcione es un servidor Web y la aplicación "servidor de sockets" ejecutándose en la máquina servidor . Por parte del cliente se requiere únicamente un navegador con los plugin de macromedia flash actualizados.
Toda la parte del núcleo y el servidor está elaborada en C# porque se pretende que esté realizado en un lenguaje consistente, mientras que la parte de la presentación al usuario está elaborada en Flash, aprovechando así las ventajas de riqueza web de este sistema.
Se buscaba así conseguir un acercamiento entre estas dos tecnologías.
La aplicación se ha desarrollado bajo un entorno Windows con Microsoft Visual Studio 2003 e Internet Information Server. Dado que el .Net Framework es independiente de la plataforma se ha conseguido portar la aplicación completa a un entorno Linux con Servidor Apache, utilizando la herramienta Mono que ejecuta el "servidor de sockets" en este entorno. |