Slashcode: Un servidor de aplicaciones libre

Alvaro del Castillo San Félix

Desarrollador y admin de software libre
Barrapunto.com

    acs@barrapunto.com
    http://mi.barrapunto.com/acs
  


Tabla de contenidos
Slashcode: Perl + Apache, un decisión acertada
Slashcode 2.0: Arquitectura de publicación/servicios web
Slashcode 2.0: Extensión a través de plugins
Slashcode 2.0: Hacia la web semántica
Referencias

Slashcode es la herramienta creado inicialmente para dar servicio en Slashdot.org. La necesidad fundamental era la de tener un buen rendimiento para ser capaz de servir los millones de páginas mensuales que soporta Slashdot. Por ello, se eligió como entorno de desarrollo a Apache en conjunción con mod_perl algo que ha permitido en la actualidad servir más de un millón y medio de páginas diarias al día. Slashcode ha sido un software que ha evolucionado con fuerza y más desde que VA Linux se hizo cargo de él y puso a un gran equipo de hackers de Perl y Apache a construir una sólida arquitetcura extensible, proceso que ha culminado con slashcode 2.0 conocido como "Bender", proceso que le ha llevado a convertirse en un servidor de aplicaciones muy potente, con gran rendimiento, fácilmente extensible y con licencia GPL. En esta presentación analizaremos la evolución de slashcode y presentaremos la nueva arquitectura de slashcode 2.0, asi como el desarrollo de plugins.

Slashcode: Perl + Apache, un decisión acertada

A pesar de la fama de lenguaje para tareas sencillas y orientadas al procesamiento de cadenas, Perl es un lenguaje muy maduro que tiene más de una década a sus espaldas de evolución. Muestra de su madurez es la gran comunidad de desarrolladores que tiene a su alrededor y de sitios desde los que se apoya el lenguaje, asi como la apuesta de O'Reilly por este lenguaje. Es un lenguaje de desarrollo rápido que una vez se supera la primera curva de aprendizaje es un lenguaje muy productivo con características avanzadas en campos como la orientación a objetos.

Perl es, depués de C, el lenguaje que mejor se integra con Apache gracias a mod_perl, un gran trabajo de integración de Apache y Perl en el que se na cubierto dos frentes: mostrar la API de Apache a Perl a través de una interfaz orientada a objetos que permite el desarrollo de módulos de Apache desde Perl e incluir dentro de Apache el entorno de ejecución de Perl, con lo que no es necesario que con cada petición de programa Perl se cargue el entorno de ejecución, es decir, el interprete de Perl. La API de Perl a Apache permite acceder a todas las fases en las que una petición de una URI es atendida en el servidor Apache, lo que permite un control total sobre como el servidor Apache presta servicios.

El gran rendimiento de mod_perl se logra manteniendo en memoria compilado todo el código Perl de las librerías que se va cargando. De esta forma, llamadas repetidas a funciones ya cargadas provocan llamadas a código precompilado en memoria por lo que su ejecución es muy rápida. De esta forma es posible el servir páginas dinámicas con unos rendimientos muy altos.