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:

  1. 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.
  2. 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.
  3. 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.

  1. 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.
  2. 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.
  3. 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).