Horde (software)

Horde
Horde

Versiones:
3.3.7


Horde es un Framework libre escrito en PHP, para el desarrollo de aplicaciones colaborativas (Groupware) basadas en la Web. El Proyecto de la Horde se trata de crear aplicaciones de alta calidad de código abierto, basado en PHP y el Marco de la Horde.

El Proyecto Horde

Sse compone de unas bibliotecas (el mencionado Horde Framework) que proporcionan funcionalidades básicas (autenticación, gestión de preferencias, interfaz gráfica, etc) y que funciona como nexo de unión entre distintas aplicaciones de usuario, que son gestionadas como sub-proyectos independientes.

Actualmente Horde proyecto cuenta con muchas aplicaciones, algunas ya preparadas para la empresa y desplegadas en entornos exigentes, y algunos de los emocionantes nuevos en proceso de desarrollo.

El Código

El desarrollo del marco y las aplicaciones es un proceso comunitario, con las aportaciones tanto de desarrolladores individuales y las corporaciones. Los miembros del Equipo Central son las personas que participan activamente en el desarrollo en el diseño y la codificación del marco y las aplicaciones.

Las aplicaciones están bajo varias licencias de código abierto, sobre todo bajo la Licencia Pública GNU. El Marco de la Horda en sí, a partir de la versión 2.0, se distribuye bajo la licencia LGPL.

Las aplicaciones de la Horda están escritos en PHP, un lenguaje de scripts diseñados explícitamente para ser incluido en páginas web. PHP puede ser integrado directamente en el servidor web, con plugins para no sólo del servidor Apache, pero también de IIS, Sun Web, etc

PHP se encuentra actualmente en la versión 5, con muchas mejoras incluyendo un nuevo modelo de objetos, la mejora de XML y soporte de servicios web. Módulos Horda debería funcionar en cualquier plataforma que pueda ejecutar PHP (incluso como un cgi), asumiendo todos los módulos de apoyo necesarios (IMAP, por ejemplo) están presentes.

Objeto de Proyecto

El objetivo del proyecto es crear aplicaciones sólidas, basadas en estándares, multiplataforma y de fácil acceso para cualquier usuario, independientemente de su idioma o localización.

En la actualidad, IMP (el más importante subproyecto Horde y origen del mismo) es uno de los sistemas Webmail más populares en Internet.

A partir de la version 2.0, Horde se libera bajo la licencia LGPL (http://www.horde.org/licenses/lgpl.php). El resto de aplicaciones o sub-proyectos lo están bajo diferentes licencias Open Source, siendo GPL la más habitual.

Entre los proyectos Horde se encuentran:

  • Horde - Se trata del framework sobre el que trabajan el resto de aplicaciones. Es el único módulo no opcional del sistema Horde.
  • IMP - Sistema Webmail que permite el acceso a buzones POP3 o IMAP.
  • MIMP - Derivativo de IMP, con un interfaz mínimo para hacerlo usable en dispositivos móviles.
  • DIMP - Derivativo de IMP, con interfaz basado en AJAX, con el objeto de hacerlo más dinámico y rápido.
  • Ingo - Sistema de gestión y aplicación de reglas de filtrado de correo.
  • Sork - Conjunto de utilidades para el sistema Webmail que permiten al usuario funciones como el cambio de contraseña, redirecciones, respuestas automáticas tipo "fuera de la oficina", etc.
  • Turba - Agenda de contactos.
  • Mnemo - Gestor de notas.
  • Kronolith - Gestión de agendas y calendarios con funciones de grupo.
  • Gollem - Gestor de archivos con posibilidad de usar un SGBD como en:backend
  • Nag - Gestor de listas de tareas.
  • Trean - Gestor de favoritos.

Adicionalmente, el Proyecto Horde ha desarrollado dos herramientas para la gestión del proyecto, cuyas posibilidades de uso van mucho más allá del ámbito de Horde:

  • Chora - Interfaz al sistema CVS de código fuente del proyecto.
  • Whups - Sistema de gestión de incidentes basado en boletines.

Entre los estandares a los que se adhiere de forma explícita el proyecto Horde se encuentran:

Horde es neutral en cuanto a la tecnología utilizada en el en:backend:

En cuanto a la internacionalización del proyecto, se logra utilizando Unicode y juegos de caracteres estandar. En la actualidad, el proyecto se encuentra disponible en 39 idiomas.

Historia del proyecto

Chuck Hagenbuch desarrolló IMP 1.0 en el verano de 1998 para proporcionar un servicio de acceso WEB al correo electrónico a la asociación estudiantil del Williams College, de la cuál era miembro. Su creación fue anunciada en Freshmeat, un lugar de referencia que publica noticias relativas a proyectos de Software libre, y en pocos meses su base de usuarios aumentó de forma masiva.

A pesar de su éxito, IMP sufría graves carencias (documentación, seguimiento de estándares, gestión de sesiones, templates, etc) y su rápido crecimiento exigió una urgente reorganización del código. Dicho rediseño tuvo en cuenta la separación del código estrictamente relacionado con el servicio Webmail, y el resto, compuesto por las bibliotecas que proporcionan funcionalidades más generales, como la gestión de configuraciones, preferencias, etc.

  • Como resultado se lanzó Horde 1.0, coincidiendo con el lanzamiento de IMP 2.0, que aun no era completamente usable sin éste.
  • Horde 1.2 e IMP 2.2 no supusieron grandes cambios a excepción de la incorporación de PHPLIB, una biblioteca externa, ya en desuso, para la gestión de sesiones.
  • Horde 1.2 coincidió con el lanzamiento de PHP 4, una nueva versión del lenguaje en que esta escrito Horde e IMP, que ya incorporaba soporte nativo de sesiones, de forma que se hacía innecesario ninguna biblioteca externa.
  • Horde 1.3 dio paso a Horde 2.0 en 2001 tras dos años de desarrollo. Para entonces, el equipo de desarrolladores ya era un núcleo estable, con la incorporación de Jan Schneider, Jon Parise y Michael Slusarz, y buena parte de los sub-proyectos, como Turba y Kronolith, se consolidaron.

La versión 3.0 de Horde se lanzó a finales de 2003, e incluyó como novedad el rediseño de las bibliotecas con estilo PEAR, un formato que las hace compatibles con el repositorio más popular de módulos para PHP, al estilo de CPAN para PERL, que permitirá a otros muchos proyectos aprovechar parte del trabajo ya realizado. También se hacen públicos el sistema de gestión de código CVS vía web y el gestor de bugs e incidentes utilizados por el proyecto.

En el caso del Framework, el número de líneas de código aumenta en un factor de 10, así como el número de sub-proyectos registrados en el CVS, que pasan de 6 a 45.

Desarrollo del proyecto

El equipo de desarrolladores del proyecto organizan el trabajo de programación alrededor de un sistema CVS, en que el que varias personas tienen permisos de escritura, en todas, o en alguna rama, dependiendo de su implicación a nivel global o únicamente en algún sub-proyecto.

El acceso, en modo lectura, al servidor CVS es abierto. Adicionalmente, se generan diariamente distribuciones nocturnas a partir de la última versión del CVS, de forma que cualquiera pueda probar fácilmente las últimas inclusiones en el mismo.

Paralelamente, existen listas de correo de coordinación, en la que participan activamente los miembros del equipo principal, así como otros muchos colaboradores esporádicos.

Por otra parte, el Proyecto Horde ha participado en las ediciones de 2005 y 2006 de la iniciativa “Summer of Code” patrocinada por Google, que proporciona financiación, en forma de becas a estudiantes, para la colaboración en determinados proyectos de Software libre.

Estructuras organizativas/asociativas o de decisión

El llamado Core Team está formado en la actualidad por Chuck Hagenbuch, Jan Schneider, Michael Slusarz, Jon Parise, Eric Rostetter, Marcus I. Ryan, Anil Madhavapeddy y Rich Lafferty. Sus labores no comprenden únicamente la programación de los distintos módulos, sino que también aportan su trabajo en el campo de la documentación, el soporte a usuarios y el mantemiento del sitio web del proyecto.

Ellos son los que se encargan de tomar las decisiones importantes y velar por el espíritu y objetivos del proyecto.

Industria relacionada

El carácter no comercial del proyecto lo acompaña desde sus inicios en una asociación estudiantil, y su desarrollo siempre ha venido facilitado por la colaboración de la comunidad del Software libre. En cualquier caso, el propio proyecto siempre ha visto con buenos ojos la posibilidad de ofrecer servicios de soporte de pago y consultoría tanto en cuestiones de instalación como de personalización, y para ello ha dispuesto una página en la web del proyecto que facilita la información de contacto con el Core Team, y adicionalmente, lista las empresas o individuos certificados por ellos para tales labores.

En general, la inclusión en dicha lista se basa en las contribuciones realizadas al proyecto.

Por otra parte, y como modelo de negocio adicional, en este caso para la comunidad, se establece una página con 'recompensas' ofrecidas por empresas o individuos interesados en alguna funcionalidad concreta, a las que cualquiera puede concurrir.

Estado actual

En la actualidad Horde, principalmente unido al servicio Webmail IMP, se encuentra implantado en muchas universidades e ISPs. Algunos ejemplos de organizaciones usando Horde:

  • SAPO Mail (ISP Portugués): 1.65M usuarios
  • University of Michigan: 113.000 usuarios
  • Versatel.nl: 250.000 usuarios
  • NetCologne: 200.000 usuarios
  • Greenpeace International
  • University of Colorado
  • Facultad de Ciencias, Universidad Nacional Autonoma de México
  • Facultad de Ingeniería, Universidad de Buenos Aires
  • Facultad de Ingeniería, UdeLaR (Uruguay)
  • Universidad de San Carlos, Guatemala
  • Universidad Carlos III de Madrid,España
  • Universidad Rey Juan Carlos de Madrid, España
  • Caja Rural San José de Almassora (CaixAlmassora)
  • Instituto de Investigaciones Marinas y Costeras - INVEMAR (Colombia)
  • Red Informática del Ministerio de Educación de Cuba (RIMED)
  • Universidad de Cantabria, España
  • Fundación Universidad del Norte, Colombia
  • Universidad de las Ciencias Informáticas - Cuba

El desarrollo continúa y nuevas propuestas para lo que será Horde 4.0 se vienen discutiendo en las listas de correo de desarrollo.

Radiografía

Nada mejor que unas cuantas cifras para hacerse idea del volumen del proyecto.

Lenguajes de programación utilizados en el Proyecto Horde
Lenguaje Líneas de código  %
PHP 120.608 99.93%
sh 73 0.06%
perl 17 0.01%

Aplicando el modelo COCOMO al código del proyecto a través de la herramienta SLOCCount, de David A. Wheeler, se obtiene la siguiente tabla

Estado actual del Proyecto Horde
Página web http://www.horde.org
Inicio del proyecto 1.998
Versión analizada Horde Groupware Webmail Edition 1.0 – RC1 - [[2006|Noviembre 2.006]]
Líneas de código fuente 120.608
Esfuerzo estimado de desarrollo (persona/año - persona/mes) 30,68 - 368,13
Estimación de tiempo (años) 1,97
Estimación de número de desarrolladores en paralelo 15,59
Coste total estimado 4,144,066 $ - algo más de 3 millones de €

Notas:

  • Para el estudio del código fuente se ha utilizado el “empaquetado” denominado Horde Groupware Webmail Edition que comprende el framework Horde, así como los sub-proyectos más populares: IMP, Ingo, Kronolith, Turba, Nag and Mnemo. No se han tenido en cuenta las bibliotecas PEAR incluidas en el mismo, dado que provienen de proyectos y esfuerzos diferentes.
  • A la hora de estimar el coste total del proyecto se ha tomado como referencia un sueldo medio de $56,286 al año y un factor de corrección de 2,4, que proporcionaría una cifra más real, teniendo en cuenta los gastos (local, teléfono, ordenadores, etc) en los que incurre una empresa para emplear a dichos trabajadores.

Instalación

El único requisito para la utilización de Horde es PHP. Se soportan la versión 4 o 5. Si se desea utilizar IMP, se ha de disponer del módulo IMAP de PHP.

Para su instalación se puede optar por descargar por separado desde la página del proyecto el paquete Horde (obligatorio) y los paquetes de los sub-proyectos deseados, o mucho más sencillo, utilizar la suite Horde Groupware Webmail Edition que agrupa en una sola distribución los paquetes más populares. También existe la posibilidad de utilizar la suite Horde Groupware Edition, similar al anterior pero sin incluir IMP, más orientado a actividades de Groupware o trabajo colaborativo.

Para la configuración y puesta en marcha es recomendable seguir las instrucciones accesibles desde la página web de cada uno de los sub-proyectos.

Empresas que usan el proyecto Horde

Enlaces externos