Siguiente: Tablas de ControlNocat
Subir: Desarrollo del trabajo
Anterior: Asignación de políticas a
  Índice General
Esta es la sección más mecánica del proyecto pero una de las más importantes. Este trabajo es el que
permite que todo lo anterior sea manejable por una tercera persona y proporciona una base
para poder comercializar el producto.
En principio se ha elegido desarrollar esta aplicación sobre un entorno web. Esta elección
se ha producido por varios motivos:
- Facilidad. Facilidad de implementación y de instalación.
- Rapidez. Por la escasez de tiempo del proyecto, ya que tenía un plazo de entrega muy corto.
- Adecuado para la comercialización. El entorno web es muy adecuado para demostraciones del
producto.
La elección del lenguaje de programación para el desarrollo de las páginas fue una difícil disyuntiva.
En principio había tres posibilidades: usar la API C, usar la API DBI o usar la API PHP.
Los puntos tenidos en cuenta para nuestra elección han sido:
- Entorno de ejecución. Nuestro entorno de ejecución es una interfaz Web, por lo tanto,
se puede descartar C, ya que está más orientado a procesos independientes, mientras
que Perl y PHP se adaptan mejor a las aplicaciones Web. Además
Perl o PHP tienen herramientas mucho más potentes para el procesado de texto,
y no hay que preocuparse de la administración de memoria.
Perl proporciona el módulo CGI.pm para realizar páginas de forma dinámica,
y se puede usar la interfaz DBI para interactuar con MySQL.
Por otro lado PHP está diseñado para escribir aplicaciones web, así que este es el entorno
donde mejor se encuentra. Más aún, el acceso a la base de datos es uno de los mayores potenciales de PHP.
- Rendimiento. El rendimiento para nuestra aplicación no es demasiado importante, ya que nuestros
programas para la administración serán ejecutados por un sólo usuario simultáneamente.
No obstante no se debe sobrecargar el servidor ya que estará recibiendo constantemente
peticiones de autenticación. Se puede decir que en la primera parte del proyecto era mucho más importante
el rendimiento, ya que se trataba de programas que se ejecutaban una vez cada minuto, y
peticiones de muchos usuarios que había que atender.
De todas formas nos interesa que el programa funcione rápidamente y
el usuario no tenga que esperar que se carguen las páginas una y
otra vez.
Un programa en C, al ser un lenguaje compilado se ejecuta más rápidamente que los programas
en Perl o PHP que son lenguajes interpretados.
Por otro lado debemos destacar que el rendimiento de lenguajes interpretados en un
contexto Web mejora cuando el intérprete es invocado como un módulo que es parte del mismo servidor
web. En nuestra elección se tendrá esto en cuenta.
- Tiempo de desarrollo. El tiempo de desarrollo juega un papel importante
en la elección del lenguaje, ya que se dispone de poco tiempo para desarrollar este proyecto.
Por este motivo C queda descartado otra vez, ya que se suele tardar más en escribir un programa
compilado que uno interpretado. Dos factores contribuyen a esto. Primero, los lenguajes de
guión tienden a proporcionar construcciones de nivel más alto. Esto nos permite pensar
en un nivel de abstracción más alto, es decir, en lo que queremos más que en los detalles
concernientes a cómo hacerlo.
En segundo lugar, el ciclo de desarrollo tiene menos pasos para lenguajes de
guión. Con C, se recorre el ciclo de compilación-edición habitual según se desarrolla
la aplicación. Cada vez que se modifica el programa debemos recompilarlo. Por
el contrario, con Perl y PHP el ciclo de desarrollo es simplemente edición-prueba.
Además el compilador fuerza a más restricciones en el programa y sigue un proceso
de verificación más estricto.
Una de las ventajas adicionales de Perl es la cantidad
de módulos que hay ya desarrollados que se pueden usar para cualquier funcionalidad.
Además la principal ventaja de Perl en este sentido es que ya se ha estudiado
para realizar la primera parte del proyecto. Esto supone que no
se necesita tiempo extra en documentarse para aprender PHP.
- Portabilidad. La portabilidad es otro punto muy importante en esta
proyecto, ya que en un futuro puede cambiar el motor de base de datos. El
programa está pensado para que funcione sea cual sea el motor utilizado.
En este sentido Perl es el que proporciona una mayor portabilidad, ya que la API DBI
de Perl se trata de una interfaz de base de datos genérica. DBI ofrece una abstracción
por encima del motor de base de datos que se esté utilizando. Por debajo de la DBI
se encuentra el nivel de DBD, que es el controlador de la base de datos propiamente
dicho. A este nivel se proporciona soporte para varios motores de base de datos.
Teniendo en cuenta estos puntos hemos optado por desarrollar
los guiones en Perl, ya que las ventajas que proporciona PHP no se
han considerado superiores a las ventajas que ofrece Perl.
A continuación se irán viendo las diferentes secciones que se han implementado y su funcionalidad.
Subsecciones
Siguiente: Tablas de ControlNocat
Subir: Desarrollo del trabajo
Anterior: Asignación de políticas a
  Índice General
Jesús Martín
2003-09-16