|
DESARROLLO DE
UN SERVIDOR WEB DE INFORMES DE AVANCE DE PROYECTOS
M. Gutiérrez1,
L.A. González2, A. Morón2,
F.A. Rivera1
1 Área de Ingeniería
de Organización, Universidad Carlos III de Madrid.
2 DISAM - Ingeniería
de Sistemas y Automática, Universidad Politécnica
de Madrid.
RESUMEN
Desde el punto de vista
de la gestión de proyectos, el espectacular crecimiento
de Internet ha traído consigo interesantes posibilidades,
destacando las relacionadas con los proyectos de colaboración
realizados por equipos dispersos y con la gestión a distancia
de proyectos. Dentro de las segundas, se expone el desarrollo
de un prototipo informático con la funcionalidad básica
de permitir la consulta a través de Internet del estado
de avance de un proyecto. Se parte de que la aplicación
tenga las características fundamentales de ser de implantación
rápida y de bajo coste, abierta e integrable con los
sistemas existentes y proporcionar seguridad de los datos. Su
utilidad es doble: por un lado, se pueden generar informes para
los clientes, que cada día tienen más exigencias
en este sentido; por otra parte, un responsable de proyecto
puede consultar el estado actualizado de los proyectos a su
cargo desde prácticamente cualquier lugar y en cualquier
instante, sin implicar a más personas en el proceso.
1. INTRODUCCIÓN
En los últimos años,
los distintos sectores empresariales se han visto y se están
viendo afectados en mayor o menor medida, por el espectacular
crecimiento de Internet, tanto en posibilidades ofrecidas como
en infraestructuras desarrolladas. El ámbito de la ingeniería
de proyectos no es una excepción [Deng et al 2001] y,
dentro de él, en el área de gestión de
proyectos en particular, se puede destacar especialmente la
repercusión en la gestión de proyectos de colaboración
realizados por equipos dispersos [Ly 1997] y, en menor medida,
en la gestión a distancia de proyectos (como ejemplo,
http://www.primavera.com/products/sure_featspecs.html).
En relación directa
con este último punto, se recoge a continuación
nuestra experiencia en el desarrollo de un prototipo informático
de soporte al seguimiento a distancia de proyectos. Su funcionalidad
básica es la de permitir la consulta a través
de Internet del estado de avance un proyecto, con un doble objetivo:
- Satisfacer la creciente necesidad de
los clientes de tener un acceso fácil e inmediato a
los informes de avance. En muchos casos, el proyecto es para
el cliente una actividad dentro de un proyecto de mayor envergadura.
- Facilitar a los responsables el seguimiento
de los proyectos a su cargo, posibilitándoles la consulta
de su estado de avance desde cualquier lugar y en cualquier
instante, sin implicar a más personas en el proceso.
Tras esta introducción,
en el segundo apartado se comienza exponiendo un estudio de
las causas por las que no son muchas las empresas que sacan
partido de las posibilidades de Internet para la gestión
de proyectos, a partir del cual se inducen las características
básicas que debe tener un desarrollo en este área
para resultar de utilidad. Se sigue con la especificación
de los requisitos funcionales fundamentales, para continuar
en los sucesivos apartados con el esquema clásico de
ingeniería del software. Finalmente se presentan las
conclusiones fundamentales del trabajo.
2. ANÁLISIS DE
REQUISITOS
Estudio previo
Para prestar soporte a las
nuevas posibilidades que aporta Internet, las empresas desarrolladoras
de software de gestión de proyectos, bien las han ido
incorporando paulatinamente a sus herramientas o bien han desarrollado
aplicaciones informáticas específicas, como se
recoge en [Maitra 2000]. Por su parte, las empresas de ingeniería
presentan una gran variedad en lo que se refiere al soporte
informático de la gestión de proyectos, no siendo
muchas las que aprovechan las nuevas funcionalidades. Del estudio
de esta situación, surgen tres características
de partida que debe tener un desarrollo como el planteado para
resultar de utilidad:
- Implantación rápida
y de bajo coste. El cambio continuo generado por la sucesión
de avances tecnológicos provoca incertidumbre e incluso
desconfianza en las nuevas tecnologías, de manera que
la tendencia generalizada ha sido la de esperar y adoptar
progresivamente las tecnologías aparentemente más
estables. Hay que reparar en el coste asociado a la adaptación
a los cambios, tanto de adquisición de software, como
de formación de usuarios y cambio de procesos. De esta
manera, aunque un paquete de software incorpore en una nueva
versión las funcionalidades mencionadas, hay una resistencia
a la actualización, que es mayor si la nueva versión
no es del software en uso.
- Aplicación abierta fácilmente
integrable con los sistemas existentes. La aparición
y extensión de los sistemas ERP (Enterprise Resource
Planning) no ha conseguido en muchas empresas evitar que diversos
sistemas de información y aplicaciones específicas
convivan sin una integración efectiva. Sin embargo,
en esa diversidad y de forma natural, los datos necesarios
para mostrar un sencillo informe de avance deben estar almacenados
o pueden ser extraídos a una base de datos.
- Seguridad de los datos: Hay una
importante reticencia a utilizar Internet en tareas de gestión,
debida al miedo a que los datos puedan sean consultados por
usuarios no autorizados.
Requisitos funcionales
Según se mencionó
en la Introducción, la funcionalidad básica de
la aplicación es la de permitir la consulta a través
de Internet del estado de avance un proyecto. A partir de ella
y complementando las características recién descritas,
se pueden señalar los requisitos funcionales (RF) principales
del desarrollo. Conviene destacar el último punto en
cuanto a que son muchos los paquetes de gestión de proyectos
que ya incorporan la posibilidad de publicación web de
informes de avance, pero son estáticos, previamente archivados.
- RF1: El usuario, con el único
requerimiento de un navegador corriente, accederá a
través de una página web a un formulario en
el que se identificará y solicitará el informe
de un proyecto.
- RF2: Habrá una validación
de la información introducida por el usuario.
- RF3: Si la validación resulta
positiva, se le proporcionará un informe de avance
del proyecto solicitado en el que se incluirá un diagrama
de Gantt.
- RF4: El informe se construirá
en tiempo real, a partir de la información almacenada
en la base de datos de la compañía.
3. DISEÑO
Diseño funcional
En la Figura 1 se muestra
el diseño funcional del servidor de informes. Inicialmente
el usuario se conecta a una página web, en la que rellena
un formulario con la información relativa a su autentificación
y la solicitud del proyecto a consultar. Se procede a una validación
y, caso de resultar positiva, se realiza una consulta a la base
de datos para obtener la información pertinente. Dinámicamente
se construye el contenido de una nueva página web y se
lanza la ejecución del dibujo del diagrama de Gantt con
el estado de avance y la planificación prevista del proyecto
solicitado.
Arquitectura
Para la arquitectura de
la aplicación se planteó la alternativa entre
el modelo cliente/servidor de dos capas y el de tres capas,
tomando la decisión de adoptar esta última, en
línea con la tendencia actual. Es un modelo más
versátil —la capa intermedia puede dar servicio a más
de una aplicación— y con mayor modularidad —cada capa
puede ser cambiada independientemente si se conservan las interfases—.
Por otra parte permite al administrador del sistema tener un
completo control, al residir el núcleo de la misma en
los computadores corporativos y no permitiendo al usuario conectar
directamente con la base de datos, sino sólo recibir
la información demandada en caso de ser validado. Proporciona
una gran flexibilidad, pudiendo integrarla fácilmente
con otras aplicaciones.
Herramientas de desarrollo
Se desechó de entrada
la técnica HTML/CGI (Common Gateway Interface) por sus
limitaciones gráficas, de seguridad y por la rigidez
que impone para hacer consultas a bases de datos. Se encontró
en las herramientas de Java una solución que satisfacía
las necesidades tanto para el desarrollo de la capa del cliente
como para la capa intermedia. Java es un lenguaje de alto nivel
con una notable librería de clases dentro de su versión
estándar, y por tanto fácil y potente para el
desarrollo. Destaca por sus características de portabilidad,
ya que en principio asegura una ejecución igual en cualquier
plataforma que cuente con una máquina virtual Java, algo
fundamental en entornos heterogéneos como Internet.
Por otra parte, proporciona
la poderosa interfaz de comunicación con bases de datos
JDBC (Java Data Base Connectivity) [White et al. 1999], en cierto
modo inspirada en el protocolo ODBC (Open DataBase Connectivity)
de Microsoft, en el sentido de que trata de acceder a cualquier
fuente de datos aparentemente del mismo modo. Es muy sencilla
de utilizar, pues cuenta con una interfase de alto nivel y a
diferencia de C++ no necesita que se especifique totalmente
cómo es la fuente de datos. Para la capa intermedia se
optó por la nueva tecnología Java Server Pages
(JSP) [Fields y Kolb 2000], que permite reducir fuertemente
los tiempos de desarrollo. Se basa en automatizar la tecnología
de los Servlets, y generar los mismos en tiempo de ejecución,
con lo que se eleva el nivel de abstracción y la facilidad
de uso.
Sin embargo, actualmente,
Java adolece de algunos puntos débiles, como son la elevada
exigencia que impone a los servidores de aplicaciones, tanto
en cantidad de memoria RAM como en velocidad de proceso. Este
punto puede resultar crítico en algunas aplicaciones
(una demora de unos segundos no es admisible en control de procesos
en tiempo real), pero no lo es en el caso que nos ocupa.
Diseño técnico
La Figura 2 muestra el diseño
de la aplicación mediante un diagrama de despliegue hecho
de acuerdo a la metodología UML, que se ha seguido en
el desarrollo (Unified Modeling Language) [Booch et al. 1998].
En el diagrama se pone de manifiesto la arquitectura de tres
capas empleada y la distribución de cada módulo
software junto al hardware involucrado, y se acompaña
de un diagrama de bloques que detalla el acceso a los datos.
- La aplicación del cliente
es un navegador (browser) corriente dotado de una máquina
virtual Java. Esto supone unos requerimientos mínimos
para el usuario. La responsabilidad de la comunicación
con el servidor Web corre a cargo del navegador, vía
TCP/IP, y con HTTP en la capa de aplicación de la comunicación.
- En la capa intermedia se encuentra
un servidor Web, destacando el requisito de que provea de
soporte para las páginas JSP. En el mercado existen
varias alternativas para este software externo, entre las
que se elige primar los de difusión gratuita (Jakarta
Software Foundation, jakarta.apache.org): el servidor Apache
para dar servicio a las páginas estáticas y
el servidor Tomcat para las páginas JSP o los servlets.
El motivo de no utilizar únicamente el segundo, obedece
a la propia recomendación de las especificaciones donde
se advierte de su bajo rendimiento para dar soporte a páginas
web estáticas (como HTML). Por su parte, el componente
ConsultorBean se encarga de la interacción con la base
de datos: validación de acceso y retirada de información.
- En la tercera capa (servidor)
se encuentra el servidor de bases de datos, al que se accede
desde la intranet corporativa local. Es importante recalcar
que en él reside el mecanismo de seguridad de los datos.
En el caso de este proyecto se ha utilizado el servidor Oracle
8, aunque esta elección no supone restricción
alguna, ya que la utilización de otro servidor únicamente
implicaría configurar los drivers JDBC correspondientes.
4. IMPLEMENTACIÓN
Todas las consideraciones
del diseño se han llevado a la práctica, verificando
la viabilidad y la funcionalidad de la propuesta. Es importante
señalar que las interfases gráficas se han realizado
con la librería básica de Java y presentan un
aspecto aún muy pobre, si bien incluyen la información
esencial en cuanto a fechas y estado de avance. En la figura
4 se muestra la pantalla con el diagrama de Gantt generado en
tiempo real tras haber validado el acceso. Se ha añadido
la utilidad de poder hacer ampliaciones y disminuciones de la
escala del gráfico, así como de mostrar las fechas
al pasar el puntero del ratón sobre la barra que representa
una actividad. Igualmente, si parte de las actividades estuviera
realizada o en curso, aparecería la barra correspondiente
en color rojo o en combinación rojo/verde proporcionalmente
al estado de avance.
CONCLUSIONES
Dentro de las posibilidades
que ofrece Internet para la gestión de proyectos, se
ha presentado el desarrollo de una sencilla aplicación
informática que permite consultar informes de avance
generados en tiempo real, incluyendo un diagrama de Gantt. Se
ha llevado a cabo de manera que se añade la utilidad
a las ya disponibles en la empresa, sin tener que cambiar de
software de gestión y con una utilización escasa
de recursos y tiempo. La viabilidad de la propuesta ha quedado
demostrada con la realización de un prototipo, en el
que queda como trabajo futuro la mejora de las interfases gráficas.
Desde el punto de vista funcional, encontramos que puede resultar
de utilidad tanto para los clientes, que cada día tienen
más exigencias en este sentido, como para los propios
responsables de proyecto. En cuanto al punto de vista técnico,
la arquitectura de 3 capas resulta idónea, tanto por
flexibilidad como por seguridad, y el empleo de las herramientas
de Java satisfactorio para los fines planteados, destacando
las facilidades del acceso a base de datos mediante Java Data
Base Connect y la eficiencia de las Java Server Pages para el
desarrollo.
REFERENCIAS
Booch G., Rumbaugh J., Jacobson
I. (1998). UML User Guide. Addison-Wesley.
Deng Z, Li H., Tam C, Shen
Q., Love P. (2001). "An application of the Internet-based
project management system". Automation in Construction,
vol. 10, no. 2; pp. 239-46.
Ly, E. (1997). "Distributed
Java applets for project management on the Web". IEEE
Internet Computing, vol. 1, no. 3; pp. 21-26.
Maitra, A. K. (2000). Internet
Solutions for Project Managers. John Wiley & Sons.
White S., Fisher M., Cattell
R., Hamilton G., Hapner M. (1999). JDBC API tutorial and
reference: universal data access for the Java 2 platform.
Addison-Wesley.
Fields D.K. y Kolb M.A.
(2000). Web Development with Java Server Pages. Manning.
CORRESPONDENCIA
Miguel Gutiérrez.
mgfernan@ing.uc3m.es
Escuela Técnica Superior.
Universidad Carlos III de Madrid.
Avenida de la Universidad,
30. 28911 Leganés (Madrid).
|