Servidor Apache

El servidor HTTP Apache
Información sobre la plantilla
CreadorTim Berners Lee

El servidor HTTP Apache. Una de las aplicaciones estrella del mundo del Software libre, ya que es el servidor web de mayor implantación según la encuesta que realiza en tiempo real Netcraft:server-survey-august:03. Así, en mayo de 1999 el 57% de los servidores web corrían bajo apache, mientras que en mayo de 2003 el porcentaje ha aumentado hasta el 68%. Apache está disponible para todos los sabores de UNIX (BSD, GNU/Linux, Solaris,...), Microsoft Windows y otras plataformas minoritarias.


Desarrollo

El servidor HTTP Apache es el proyecto central dentro de los muchos que gestiona la Apache Software Foundation. El diseño modular de Apache ha permitido que exista una serie de proyectos satélite -algunos incluso más grandes en tamaño que el propio Apache- alrededor de Apache.

De esta forma, el servidor HTTP Apache contiene el núcleo del sistema con las funcionalidades básicas, mientras las funcionalidades adicionales las aportan los diferentes módulos.

Los módulos más conocidos son Mod perl (un intérprete del lenguaje de guión Perl empotrado en el servidor web) y Yakarta (un potente servidor de aplicaciones). En los siguientes párrafos, se va a describir solamente el proceso de desarrollo seguido para el servidor HTTP, sin tener en cuenta los demás módulos, que pueden tener modelos parecidos o no.

El desarrollo del servidor HTTP Apache se fundamenta en el trabajo de un reducido grupo de desarrolladores denominado Apache Group. El Apache Group lo constituyen aquellos desarrolladores que han colaborado durante un periodo prolongado de tiempo, generalmente más de seis meses.

Después de ser nominado de un miembro del Apache Group para formar parte del mismo, se vota entre todos los miembros del Apache Group. En sus comienzos, el Apache Group constaba de ocho desarrolladores, luego de doce y en la actualidad cuenta con 25 personas.

Sobre el Apache Group recae la responsabilidad de la evolución del servidor web y, por tanto, las decisiones puntuales de desarrollo en cada momento. Hay que diferenciar al Apache Group del núcleo de desarrolladores (Core group) activo en cada momento. El carácter voluntario de la mayoría de los desarrolladores hace que sea improbable que todos los que componen el Apache Group puedan estar activos todo el tiempo, por lo que el core se define como aquéllos que en un espacio de tiempo pueden ocuparse de las tareas en Apache. En líneas generales, las decisiones que han de tomar los desarrolladores pertenecientes al núcleo se limitan a votar la inclusión de código -aunque esto se reserve en realidad sólo para grandes cambios- y para cuestiones de diseño. Por otra parte, en general suelen tener derecho de escritura en el repositorio CVS, por lo que sirven como puerta de entrada del código asegurando que sea correcto y su calidad.

Radiografía de Apache

Las cifras que se exponen a continuación corresponden a la versión del servidor HTTP Apache tal y como se podía descargar del servidor CVS del proyecto Apache el 18 de abril de 2003.

No se han tenido en cuenta ninguno de los numerosos módulos con los que cuenta el proyecto Apache. Como se puede observar, Apache es un proyecto relativamente pequeño en comparación con los demás casos de estudios considerados en este capítulo. Aunque se ha comentado con anterioridad en este capítulo, es importante hacer hincapié en la modularidad de Apache que permite precisamente esto: que el núcleo sea pequeño y manejable.

El repositorio CVS del proyecto Apache que contiene el núcleo del servidor web y muchos módulos adicionales alberga en total más de cuatro millones de líneas de código fuente, una cifra ligeramente inferior a proyectos como KDE y GNOME. La versión 1.3 de Apache contaba con poco más de 85.000 líneas de código fuente, una cifra que según el modelo COCOMO requeriría un esfuerzo de desarrollo de 20 desarrolladores a tiempo completo en media durante un año y medio.

El coste total del proyecto rondaría entonces los cuatro millones de dólares. En la elaboración del servidor web de Apache se cuentan hasta 60 commiters diferentes, mientras que el número de desarrolladores que han aportado se calcula que ronda los 400.

Análisis y Lenguaje de Programación

Análisis de Apache. Página Web http://www.apache.org
Inicio del proyecto 1995
Licencia Apache Free Software License
Versión analizada 2.2.4
Líneas de código fuente 225.065
Número de ficheros 2.807
Estimación de coste 7.971.958 $
Estimación de tiempo de ejecución 2,52 años (30,27 meses)
Estimación de número medio de desarrolladores 23,4
Número aproximado de desarrolladores 60 commiters (400 desarrolladores)
Herramientas de ayuda al desarrollo CVS, listas de correo, sistema de notificación de errores
Apache 1.3 está escrito casi íntegramente en el lenguaje C, siendo la presencia de otros lenguajes de programación escasa, sobre todo si tenemos en cuenta que la gran mayoría de las líneas escritas en el segundo lenguaje, shell, corresponden a ficheros de configuración y de ayuda a la compilación.

Lenguajes de programación utilizados en Apache

Lenguaje de programación Líneas de código Porcentaje
C 208866 92.8%
Shell 12796 5.69%
Perl 1649 0.73%
Awk 874 0.39%

Fuente