PDF de programación - Cherokee Web server

Imágen de pdf Cherokee Web server

Cherokee Web servergráfica de visualizaciones

Actualizado el 11 de Abril del 2020 (Publicado el 14 de Abril del 2017)
524 visualizaciones desde el 14 de Abril del 2017
72,3 KB
5 paginas
Creado hace 18a (01/01/2003)
Cherokee Web server

Alvaro Lpez Ortega

Madrid
Espaæa

[email protected]

Cherokee es un proyecto que implementa una librera para poder dotar a toda clase de aplicaciones de
servicios web de una forma fÆcil y rÆpida. En su desarrollo se realiza un esfuezo especial en mantener
un core reducido - de forma que se pueda utilizar en sistemas empotrados - e implementar todas las
funcionalidades como mdulos cargables en tiempo de ejecucin. De igual forma, la alta eciencia y una
arquitectura lo sucientemente exible como para poder escalar a servidores SMP son caractersticas de
Cherokee que pueden suponer un paso adelante respecto a los servidores web libres existentes.

1. Introduccin
Desde hace aæos, la tecnologa que rodea la web tiene una importancia grandsima. Alrededor de esta tecnologa
se han producido grandes batallas; en unos casos por pura y sana competencia con productos que implementan una
funcionalidad similar y en otros por el interØs de romper los estÆndares. Sin ninguna duda, el vencedor indiscutible
de esta batalla es Apache, un servidor web libre, que a da de hoy utiliza casi el 65% de los servidores en Internet.
Cherokee es otro servidor web. Se trata de un proyecto que desarrolla una nueva implementacin de este tipo de
aplicacin, con una serie de caractersticas y funcionalidades concretas. El n œltimo del proyecto no es clonar ni
imitar las funcionalidades de Apache, trabajo que sera sumamente complejo e innecesario, sino hacer un servidor
con unas caractersticas de las que Apache carece debido a su diseæo original.
Las funcionalidades de Apache son muchas y a estas hay que sumarle las que aportan los mdulos y extensiones.
El resultado es el que conocemos, Apache es un servidor web que puede hacer casi cualquier cosa con una exi-
bilidad y velocidad razonables. Ahora bien, todas estas caracteristicas positivas tienen un coste: que en algunos
casos se trata de un servidor lento, que no fue diseæado como un servidor para ser empotrado, etc.
En el diseæo de Cherokee se han tenido en cuenta todos estos puntos en los que creamos que Apache aqueaba.
Se ha puesto especial interØs en los tres puntos siguientes: velocidad, exibilidad y capacidad de ser empotrado.
La velocidad es un punto bÆsico en Cherokee. En el œltimo benchmark realizado hasta el momento
(http://www.alobbs.com/news/104), Cherokee fue cinco veces mÆs rÆpido que Apache. Este es un punto
importante a tener en cuenta para la eleccin del software de un sitio web con mucho trÆco (por ejemplo, un
servidor de banners). Posiblemente, gracias al cambio de software, se aplace la necesidad de actualizacin del
hardware del servidor.
El segundo de los puntos en los que se ha hecho especial Ønfasis en el diseæo de Cherokee es la exibilidad. En este
respecto Cherokee dispone de un sistema para la carga dinÆmica de mdulos (como el soporte mod_* de Apache)

ISBN 84-88783-66-3 '2003

21

Cherokee Web server

tanto para handlers como encoders y sistema de logging. Siempre que se han aæadido nuevas funcionalidades,
se ha hecho de la forma mÆs modular posible: a da de hoy, prÆcticamente cualquier nueva caracterstica serÆ
implementada como un mdulo cargable que Cherokee utilizarÆ o no dependiendo de la conguracin de este.
La œltima caracterstica que se cuida con gran interØs en el desarrollo de Cherokee es la capacidad para
ser empotrado dentro de otras aplicaciones. Todo el cdigo con la lgica del servidor se encuentra en
una librera dinÆmica que puede utilizar cualquier aplicacin. El API de esta librera es muy sencillo;
bÆsicamente permite crear, congurar y ejecutar de diferentes formas objetos "servidor". Existe una aplicacin
(http://freshmeat.net/projects/gnome-cheroke) para GNOME2 que implementa un servidor web personal
(http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=gnome-network) basÆndose en la librera de
Cherokee.

2. Cherokee para los usuarios
A da de hoy, Cherokee tiene tanto ventajas como inconvenientes para los usuarios. Hay que tener en cuenta que
se trata de un software que actualmente sigue en desarrollo y que hay funcionalidades no terminadas sobre las
que se continua trabajando. Por otro lado, se trata de un proyecto con mÆs de dos aæos de vida y presenta algunas
grandes ventajas sobre otras opciones.
El principal inconveniente que tiene Cherokee hoy en da desde el punto de vista de un usuario nal es la necesidad
de un par de mdulos importantes para servir contenidos dinÆmicos: PHP y Python.

Nota: Este artculo estÆ escrito en Septiembre del 2003, en estos momentos ya hay trabajo realizado en la
implementacin de ambos mdulos. Es probable que para la fecha de la celebracin del congreso al que va
dirigido el paper (III Jornadas Andaluzas de Software Libre) ambos mdulos estØn terminados, probados y
funcionando.

Por otro lado, tambiØn existen ventajas para los usuarios nales. La velocidad para servir las pÆginas se plantea
como la principal de ellas; crea menos carga en mÆquinas pequeæas o desde otro punto de vista, admite mÆs
peticiones por segundo en mÆquinas que funcionen al limite.
Otra ventaja a tener en cuenta es que al tratarse de un servidor pensado para ser empotrado, es posible desarrollar
sencillas interfaces grÆcas con las que recubrirlo para que el usuario nal trabaje con una herramienta mucho
mÆs amigable y no con cheros de texto con muchas sentencias que es posible que no entienda. GNOME-Network
utiliza actualmente libcherokee para implementar su aplicacin de servidor web personal.
Por œltimo, Cherokee al igual que Apache, pero al contrario que al gran mayoria de servidores web libres, escala
a servidor SMP y mÆquinas con hyperthreading. La implementacin del servidor tiene una visin doble: por
una parte realiza servicio de peticiones mediante time-slices, pero por la otra es capaz de manejar mÆs de un
thread y en cada uno de ellos, de nuevo, volver a procesar conexiones mediante comparticin de tiempo. De esta
forma Cherokee escala a mÆquinas con mÆs de un procesador y al mismo tiempo mantiene el rendimiento de los
servidores basados en select() o poll().
Respecto a la implementacin de time-slice de Cherokee, soporta poll(), epoll() (GNU/Linux 2.6.0 o superior) y
emulacin de poll() mediante select() para los sistemas en los que no existe funcin poll() en el sistema (MacOS
X, por ejemplo).

22

Figura 1. Benchmark, Cherokee 0.4.3

Cherokee Web server

3. Caractersticas principales
La librera de cherokee, libcherokee, implementa las caractersticas bÆsicas de un servidor web, permitiendo
cargar desde mdulos muchas otras. Esta arquitectura modular ha sido elegida para permitir cargar y ejecutar
œnicamente las partes y funcionalidades que sean necesarias en cada caso concreto. De esta forma, se ahorran
recursos, se aumenta la seguridad (menos cdigo en ejecucin implica menos posibilidad de existir un bug en Øl)
y se disminuye ligeramente la carga del servidor web.
Hay tres grandes grupos de mdulos cargables: handlers, encoders, validators. Los handlers son manejadores de
peticiones. Cuando el servidor procesa una peticin, decide que clase de manajedor debe de utilizar para responder
a dicha peticin. Dependiendo de el mdulo, la respuesta serÆ una u otra. Cherokee incorpora el concepto de
asociacin de manejadores a directorios, de forma que el usuario puede denir que manejador desea utilizar en
cada uno de los directorios servidos por web. Actualmente, se distribuyen los siguientes manejadores dentro del
paquete principal de Cherokee:

1. le: Sirve cheros al cliente
2. dirlist: Construye una pÆgina con lista de los cheros contenidos en un directorio
3. redir: Redirecciona peticiones
4. nn: Basado en el algoritmo de "Near Neighbors" atiende las peticiones recibidas con una respuesta simple

positiva

5. gnomevfs: Utiliza las librera de GNOME-VFS para atender las peticiones, de forma que es posible que sea
el servidor web el que exporte cheros localizados en ubicaciones accesibles bajo otros protocolos: NNTP,

23

Cherokee Web server

FTP, HTTP (en este caso trabajara de proxy), etc.

Los encoders por su parte, son mdulos que implementan una funcionalidad de conversin de la informacin que
se va a enviar a los clientes. Actualmente, el encoder mÆs œtil es el de GZip. Este mdulo comprime la informacin
que se sirve antes de enviarla a los clientes, ahorrando ancho de banda y acelerando la transmisin.
Los validadores son los mdulos que implementan posibles formas de validar a los usuarios. En el momento de
escribir este artculo (Septiembre 2003) se encuentran en desarrollo. Cherokee implementa mdulos para validar
con LDAP, PAM y htpasswd.
Todos los mdulos son congurables en tiempo de ejecucin, normalmente mediante cadenas de texto que procesa
libcherokee.

4. Cherokee para el desarrollador
Desde el punto de vista de un desarrollador, Cherokee proporciona la librera (libcherokee.so) con la que dotar de
las aplicaciones de servicios web. Para que un programa proporcione esta clase de servicios, lo œnico que tiene
que hacer es linkar junto con esta librera y aæadir un par de fragmentos de cdigo adicionales.

1. La instanciacin de un nuevo objeto servidor y la conguracin de este.
2. El manejador (handler)
  • Links de descarga
http://lwp-l.com/pdf2782

Comentarios de: Cherokee Web server (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