PDF de programación - Slashcode: Un servidor de aplicaciones libre

Imágen de pdf Slashcode: Un servidor de aplicaciones libre

Slashcode: Un servidor de aplicaciones libregráfica de visualizaciones

Publicado el 30 de Abril del 2019
525 visualizaciones desde el 30 de Abril del 2019
46,1 KB
9 paginas
Creado hace 23a (01/01/2001)
Slashcode: Un servidor de

aplicaciones libre
Alvaro del Castillo San Félix
Desarrollador y admin de software libre

Barrapunto.com

[email protected]

http://mi.barrapunto.com/acs

Slashcode, más conocido como slash, es la herramienta que se creó originalmente para
dar servicio en Slashdot.org, uno de los primeros weblog que apareció en la red.

El éxito del sitio rápidamente hizo evolucionar el software que lo sostenía y, al apoyar
con fuerza Slashdot el software libre, las circunstancias obligaron a que slash fuera
publicado en una primera versión 0.1, que cuenta la leyenda sólo su creador, Rob
Malda, fue capaz de instalar.

A lo largo de esta presentación iremos cubriendo los distintos aspectos de slash, su
evolución, sus múltiples puntos fuertes y algún problema que aún tiene, como su
laboriosa instalación

Una de las necesidades fundamentales ha sido la de tener un rendimiento excepcional,
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.

slash ha sido un software que ha evolucionado con fuerza y más desde que VA Linux se
hizo cargo de él. En la actualidad hay un gran equipo de hackers de Perl y Apache que
han logrado construir una sólida arquitectura extensible, algo que ha culminado en
slash 2.0 conocido como "Bender".

En la actualidad, slash ha logrado 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, así como el desarrollo de plugins.

1

Durante esta ponencia se va a presentar la arquitectura de slash 2.0 y se va a mostrar
como se desarrolla un plugin o extensión dentro de la nueva arquitectura.

Slashcode: Un servidor de aplicaciones libre

1. ¿Por qué hablar de slash?

slash es el software que hace ya funcionar a decenas de sitios en la red, entre ellos
Slashdot y Barrapunto.

slash es un software que lleva ya varios años desarrollándose, probándose en entorno en
producción y demostrando una escaldabilidad y robustez que le ponen al mismo nivel
que muchas soluciones comerciales para montar comunidades virtuales en la red

slash utiliza la licencia GPL para cubrir su código, tiene una amplia comunidad de
desarrolladores y usuarios a su alrededor y está respaldado por una de las compañías
principales dentro del mundo del software libre: VA Linux.

2. Breve historia de slash: Slashdot y
Barrapunto

Slashdot nació de la mano de Rob Malda como la consecución de una serie de ideas
que venían oyéndose en la red: sitios interactivos, comunidades virtuales, noticias,
weblog ... Rob Malda logró captar todas estas ideas y sintetizarlas en slashdot, un sitio
que resumía noticias aparecidas sobre tecnología en otros sitios de la red, y que poco a
poco fue cobrando mucha fuerza en la red.

La actualización diaria de noticias, la forma de presentar la información, la navegación
histórica por todo lo públicado, las búsquedas en los contenidos, las URL únicas por
artículo y la posibilidad de realimentar el sitio con noticias y comentarios por parte de
los usuarios fueron claves en su éxito.

En 1999, y tras una visita en la que se conoció Gildot, se decidió lanzar el proyecto
Barrapunto que, basado en el software de slashdot y tomando parte de sus ideas, se ha
convertido en el centro de noticias de software libre y tecnología en español de la red.

Barrapunto ha ido evolucionando con el código de slash hasta el punto de llegar a
colaborar con el desarrollo actual de slash. En la actualidad Barrapunto ha migrado a la
última versión de slash, la 2.0, y ya prepara la migración a 2.2 que será la plataforma

2

estable para el desarrollo de aplicaciones basadas en slash, y que hace ya funcionar a
Slashdot.

Slashcode: Un servidor de aplicaciones libre

3. Arquitectura básica: Perl (mod_perl) y
Apache

Cualquier desarrollo basado en software libre para el web tiene como primera opción
en la actualidad el servidor de web Apache. El disponer del 60% de cuota de mercado
es una clara muestra de la gran aceptación que ha tenido, con una Fundación detrás
apoyada por empresas como IBM, y con un contínuo desarrollo. En los próximos
meses culminará con la versión 2.0 de Apache, que solventará algunos problemas de
rendimiento debido a su arquitectura basada en procesos, y que seguro, marcará un
antes y un después en el desarrollo de aplicaciones para Internet.

Junto con Apache tenemos a mod_perl y con éste, a Perl el cual 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.

3

4. Problemas con slashcode pre 2.0

Slashcode: Un servidor de aplicaciones libre

La versión 1.0 de slash tenía el problema de ser una evolución natural de las primeras
versiones de slash, con alguna pequeña reorganización en el código y la introducción
de nuevos servicios. Pero en esencia, se basaba en la misma arquitectura que nació de
un proyecto en desarrollo contínuo y regido por las necesidades del día a día de
Slashdot. Los principales problemas que comenzaron a ser serios obstáculos en el
desarrollo de slash fueron:

• El código HTML que se mostraba al usuario del sitio aparecía repartido por varios
servlets Perl (cgis deasrrollados en Perl) así como en alguna librería e incluso en la
base de datos. La lógica de visualización y del programa estaban mezcladas.

• No existía una interfaz clara de acceso a base de datos, apareciendo peticiones SQL

en el código, peticiones además dependientes de MySQL.

• Existía una gran librería en la que se metía toda la lógica del código, dificultando su

evolución y mantenimiento.

• La idea de separa de forma clara las capas de visualización, acceso a datas y lógica

de la aplicación se hizo cada vez más fuerte y, tras la publicación de la última versión
1.x de slash se tomó la determinación de llevar a cabo una gran transformación del
sistema, utilizando un sistema de plantillas, creando una API de acceso a datos, y
diviendo la gran librerías Slash.pm en varias librerías que resumían distintas partes
de la lógica del sistema. A esta nueva versión se la llamó Bender y es slash 2.0, de la
que vamos a hablar en la ponencia.

5. Sistema de publicación y servicios web

slash es un software que ha sufrido una gran evolución a lo largo del tiempo, algo que
se nota en lo bien que está organizado el software, el código fuente, las tablas de SQL y
todos los elementos que lo forman. Incluso a nivel de documentación, gran parte de las
librerías están documentadas, así como las distintas utilidades que forman el sistema.
El software dispone de múltiples herramientas de apoya para facilitar las labores de
administración haciendo que todo el entorno sea muy sencillo de mantener.

El núcleo de slash lo forman un conjunto de librerías comúnes. En el siguiente gráfico
podemos observar dicha organización tras la última restructuración de las mismas en
slash 2.2, versión conocida como Fry, y que se usa actualmente en Slashdot.

4

Figura 1. Organización de las librerías de slash

Slashcode: Un servidor de aplicaciones libre

Como vemos en la figura, aparecen cláramente separadas las librerías de acceso a base
de datos (Slash::DB), de visualización de datos al usuario (Slash::Display) y de lógica
de funcionamiento del sistema (Slash y Slash::Utility). Podemos también citar a
Slash::Apache, una unión íntima entre Apache y Perl, que permite desde los módulos
Perl controlar con gran detalle el funcionamiento de Apache.

Slash::DB define una interfaz de acceso a base de datos, que debe ser implementada
para todas las bases de datos con las que se quiere que el sistema funcione. En la
actualidad sólo MySQL tiene un soporte completo, aunque tanto Postgres como Oracle
tienen ya versiones bastante avanzadas.

Slash::Display hace uso intensivo del Template Toolkit, un sistema de plantilla para
Perl que ha buscado como objetivos ser extensibles y tener un gran rendimiento. Todo
el HTML que se ve en el sistema slash está basado en estas plantillas, no apareciendo

5

Slashcode: Un servidor de aplicaciones libre

nada de este código dentro de los servlets Perl o las librerías de Slash. Es sin duda el
subsistema más potente de slash y donde se ha invertido un enorme trabajo.

Slash y Slash::Utility cont
  • Links de descarga
http://lwp-l.com/pdf15809

Comentarios de: Slashcode: Un servidor de aplicaciones libre (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad