El Proyecto Apache es un esfuerzo de desarrollo de software en colaboración destinado a crear un servidor HTTP (servidor Web) robusto, comparable a los comerciales y con muchas características y que permita disponer gratuitamente de su código fuente. El proyecto está gestionado conjuntamente por un grupo de voluntarios diseminados por todo el mundo, usando Internet para comunicarse, planear y desarrollar el proyecto Apache y la documentación correspondiente. Estos voluntarios son conocidos como el Grupo Apache (Apache Group). Además, cientos de usuarios contribuyen al proyecto con ideas, código y documentación (Apache, 2005).
En febrero de 1995, el servidor más popular en la Web era el HTTP DAEMON de dominio público desarrollado por Rob McCool de la National Center for Supercomputing Applications (NCSA), de la Universidad de Illinois en Urbana-Champaign. Sin embargo, el desarrollo de este httpd se detuvo tras la marcha de Rob de la NCSA a mediados de 1994 y muchos Web master desarrollaron entonces sus propias extensiones y corrigieron errores que se daban en la distribución. Un pequeño grupo de estos Web master se contactaron vía e-mail y decidieron unirse y coordinar sus cambios (a modo de parches) (Apache, 2005).
Utilizando como base httpd 1.3 de NCSA, el grupo Apache añadió todas las correcciones de errores y la mejoras que consideraron oportunas, realizaron pruebas al resultado en sus propios servidores e hicieron oficialmente público la versión 0.6.2 de Apache en abril de 1995. Por pura coincidencia NCSA empezó de nuevo su propio desarrollo en el mismo período y Brandon Long y Beth Frank del Equipo de Desarrollo de la NCSA se unieron a la lista en marzo como miembros honorarios, de modo que los dos proyectos pudieran compartir ideas y soluciones (Apache, 2005).
El proyecto Apache es una "meritocracia", es decir, cuanto más trabajo haya hecho usted, más se le permite hacer. Los fundadores del grupo pusieron las normas originales, pero pueden ser cambiadas por votación de los miembros activos. Hay un grupo de personas que tiene cuentas dentro del servidor (hyperreal.com) y pueden acceder al repositorio CVS. Todo el mundo tiene acceso a las "fotos" del CVS. Los cambios en el código son propuestos en la lista de correo y generalmente votados por los miembros activos. Son necesarios tres +1 (aceptación) y no -1 (rechazo, veto) para llevar a cabo cambios en el código durante el ciclo de una versión. La documentación suele ser la primera en ser aprobada y después los cambios a medida que vayan siendo necesarios. Los conflictos se resuelven por la votación de la mayoría (Apache, 2005).
Apache existe para proporcionar una implementación del protocolo HTTP suficientemente robusto y comparable a los que tienen un carácter comercial. Debe permanecer como una plataforma sobre la cual individuos o
instituciones puedan construir sistemas fiables, tanto para propósitos experimentales como para propósitos de misión crítica. En Apache tienen la idea de que las herramientas de publicación en línea deberían estar en las manos de todo el mundo y las compañías de software harían dinero proporcionando servicios de valor agregado, tales como módulos especializados o soporte, entre otras cosas (Apache, 2005).
Más aún, Apache es un ente orgánico: aquellos que se benefician de él usándolo, a menudo aportan cosas como mejoras, corrección de errores y soporte para otros usuarios en los grupos de noticias. La cantidad de esfuerzo hecho por cualquier individuo particular es a veces pequeño, pero el producto resultante es muy fuerte. Se puede argumentar entonces que la fuerza de Apache le viene del hecho de que es gratuito y que si fuera "no gratuito" sufriría tremendamente, aún si el dinero fuera gastado en un equipo de desarrollo que trabajara día y noche para Apache (Apache, 2005).
Apache quiere que su servidor Web se utilice ampliamente; por grandes compañías, pequeñas, en los centros de investigación, escuelas, por cualquier persona individualmente, en intranets, en cualquier parte. Más aún, esto puede significar que compañías que se permiten pagar software comercial sin condenarse por ello, puedan darse un "paseo gratis" utilizando Apache. Seríamos aún más felices si algunas compañías de software comercial abandonaran sus planes de desarrollo de su propio servidor HTTP y utilizaran Apache como base de su desarrollo, mientras mantuvieran las atribuciones que se describen en la “LICENSE” (licencia de Apache) (Apache, 2005).
La Licencia actual de Apache es la 2.0 aprobada por al ASF en 2004, las metas de esta licencia son el reducir el número de preguntas frecuentes (FAQ), permitir a la licencia de ser re-usable sin ser modificada por algún otro proyecto (incluyendo proyectos que no son de la ASF), permitir a la licencia ser utilizada como referencia en lugar de ser listada en cada archivo (Apache, 2005).
Estas licencias nos ayudan a alcanzar nuestra meta de proporcionar productos de software confiable y duradero mediante el desarrollo de colaboración de software Open Source. En todos los casos, los contribuidores conservan el completo derecho de utilizar sus contribuciones originales para cualquier otro propósito fuera de Apache mientras que proporcionen al ASF (Apache Software Foundation), sus proyectos y el derecho de distribuir y de construir sobre su trabajo dentro de Apache (Apache, 2005).
El la figura 2, podemos observar el uso de los diferentes servidores Web, en la figura 3 podemos observar la participación de mercado que tienen los servidores Web, en la tabla 2 observamos el crecimiento de los servidores Web por porcentaje, en la figura 4 observamos como es la participación de mercado de los servidores Web en México, y en la grafica 5 observamos una grafica histórica sobre la participación de mercado de los servidores Web en México.
Figura 2 Software Utilizado en Servidores [Fuente: (Netcraft, 2006)]
Market Share for Top Servers Across All Domains August 1995 - November 2006
Figura 3 Comparación de mercado de servidores [Fuente: (Netcraft, 2006)]
Market Share Change (Total servers: 19,342)
Server1 February Count February % January Count January % Change Apache 12,518 64.72% 12,396 64.55% +0.17% Microsoft 5,134 26.54% 5,148 26.81% -0.27% Zeus 22 0.11% 21 0.11% +0.00% WebSTAR 69 0.36% 71 0.37% -0.01%
Netscape 259 1.34% 268 1.40% -0.06%
WebSite 76 0.39% 75 0.39% +0.00%
Other 1,264 6.54% 1,224 6.37% +0.17%
Tabla 2 Comparación de mercado de Servidores Web en México [Fuente: (Security, 2006)
1
Servers are ordered according to their global market share.
Figura 4 Porcentaje de Servidores Web en México [Fuente: (Security, 2006)]
Figura 5 Histórico de Servidores Web en México [Fuente: (Security, 2006)]
2.7.2 Mozilla FireFox
El Proyecto Mozilla tiene como objetivo mantener la elección y la innovación en Internet. Para conseguirlo, el Proyecto Mozilla produce y proporciona el producto Mozilla, el conjunto de aplicaciones Web como Firefox y de correo electrónico Thunderbird ganador de numerosos premios, así como otros productos y tecnologías, como Bugzilla (Proyecto, 2006).
Hasta el 14 de abril de 2003, Firefox fue conocido como Phoenix (ave fénix), pero debido a problemas legales por coincidir con el nombre del desarrollador de BIOS Phoenix Technologies, el nombre debió ser cambiado a Firebird (ave de fuego) (Proyecto, 2006).
Firefox es uno de los mejores browsers que existen en el mercado, con una ventaja, contiene los métodos de desarrollo de Open Source y esto les permite hacer un producto a una velocidad impresionante y con menos defectos que los programas desarrollados por métodos tradicionales (Proyecto, 2006).
¿Por qué se ha elegido una estructura legal sin ánimo de lucro?
Mozilla necesita la colaboración de voluntarios para ayudar a distribuir y mejorar los productos basados en el proyecto Mozilla. A la vista del espíritu del software libre, Mozilla planea reinvertir todo el dinero obtenido por la asociación en su desarrollo, como establece la estructura legal de la asociación. Por lo tanto, toda la energía y el dinero puestos en el proyecto por los voluntarios no beneficiarán a los accionistas, ya que una asociación no tiene tales personas, y no permite que se compartan los ingresos. (Proyecto, 2006)
Tabla de Estadísticas de Navegadores mes a mes
2006 IE6 IE5 Ffox Moz N7 O8 O7
February 60.5% 5.8% 25.4% 2.9% 0.4% 1.4% 0.1%
January 61.3% 5.5% 25.0% 3.1% 0.4% 1.4% 0.2%
2005 IE6 IE5 Ffox Moz N7 O8 O7
December 61.5% 6.5% 24.0% 2.7% 0.4% 1.3% 0.2% November 62.7% 6.2% 23.6% 2.8% 0.4% 1.3% 0.2% October 67.5% 6.0% 19.6% 2.6% 0.4% 1.2% 0.2% September 69.8% 5.7% 18.0% 2.5% 0.4% 1.0% 0.2% August 68.4% 6.3% 18.9% 2.4% 0.4% 0.8% 0.3% July 67.9% 5.9% 19.8% 2.6% 0.5% 0.8% 0.4% June 65.0% 6.8% 20.7% 2.9% 0.6% 0.7% 0.5% May 64.8% 6.8% 21.0% 3.1% 0.7% 0.7% 0.6% April 63.5% 7.9% 20.9% 3.1% 0.9% 0.4% 1.0% March 63.6% 8.9% 18.9% 3.3% 1.0% 0.3% 1.6% February 63.9% 9.5% 17.9% 3.3% 1.0% 1.7% January 64.8% 9.7% 16.6% 3.4% 1.1% 1.9% IE Internet Explorer
Ffox Firefox (identified as Mozilla before 2005)
Moz Mozilla
O Opera
AOL America Online (based on both Internet Explorer and Mozilla)
Tabla 3 Estadísticas de uso de Navegador [Fuente: (Browser, 2006)]
2.7.3 OPENOFFICE
OpenOffice.org (no OpenOffice, debido a una disputa de marcas), es un proyecto basado Open Source para crear una suite ofimática. Es multiplataforma, existe entre otros para Microsoft Windows, GNU/Linux, Solaris y Mac OS X (About, 2006).
OpenOffice deriva a su vez de una versión comercial, StarOffice de Sun Microsystems todavía existente. Las versiones más recientes de StarOffice están basadas en el código base de OpenOffice.org; de forma similar a la relación existente entre Netscape Navigator y Mozilla. La última versión, la 2.0.1, fue liberada el 21 de diciembre de 2005 (About, 2006).
Está diseñado para competir con el líder en el mercado, Microsoft Office, por lo que tiene un cierto aire similar. Es bastante compatible con los formatos de archivo de Microsoft Office, ya que puede leer directamente los archivos creados con dicha suite ofimática, aunque tiene su propio formato de archivos basado en el estándar XML, desde la versión 2.0 el formato de archivo nativo es OpenDocument. En este formato los datos se comprimen en formato ZIP resultando en archivos de menor tamaño que sus equivalentes de Microsoft Office. Actualmente hay disponible un visor llamado Visioo-Writer para el formato OpenDocument de forma que no sea necesaria la instalación de una suite ofimática para la visualización de los documentos (About, 2006).
Herramientas Incluidas:
• Writer, un procesador de texto. • Calc, para manejar hojas de cálculos. • Impress para presentaciones visuales,
• Draw, para dibujos, con posibilidad de exportar al formato estándar SVG.
• Base, un programa de base de datos similar a Microsoft Access. • Math editor para fórmulas matemáticas.
• Editor HTML, para la creación de HTML.
PDF y Flash
A partir de la versión 1.1 se permite la exportación de documentos a PDF y presentaciones de Impress a Macromedia Flash (SWF). (About, 2006). Seguridad
Al 24 de febrero de 2006, el sitio de seguridad Secunia informa de que hay cero defectos de seguridad por solucionar (About, 2006).
Secunia es una compañía danesa que provee servicios computacionales de seguridad, mejor conocido por buscar vulnerabilidades en más de 8,000 piezas de software y sistemas operativos (http://secunia.com/).
2.7.4 MySQL
MySQL es uno de los Sistemas administradores de bases de datos más populares desarrolladas bajo la filosofía de Open Source, esta base de datos de MySQL se ha convertido en la base de datos Open Source más popular del mundo, debido a su funcionamiento rápido y constante, alta confiabilidad y facilidad de empleo.
MySQL no es solamente la base de datos Open Source mas utilizada del mundo, también se convierte en la base de datos de preferencia por la nueva generación de aplicaciones desarrolladas en LAMP (Linux, Apache, MySQL, Perl/PHP/Phyton), MySQL puede ser ejecutada en más de 20 plataformas incluyendo Linux, Windows, OS/X, HP-UX, AIX, Netware, entre otros (MySQL, 2006).
La desarrolla y mantiene la empresa MySQL AB pero puede utilizarse gratuitamente y su código fuente está disponible (MySQL, 2006).
Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas Web con contenido dinámico, justamente por su simplicidad; aquellos elementos faltantes fueron llenados por la vía de las aplicaciones que la utilizan.
Poco a poco los elementos faltantes en MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de Open Source.
Entre las características disponibles en las últimas versiones se puede destacar (MySQL, 2006).:
• Amplio subconjunto del lenguaje SQL.
• Disponibilidad en gran cantidad de plataformas y sistemas.
• Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.
• Transacciones y claves foráneas. • Conectividad segura.
• Replicación.
• Búsqueda e indexación de campos de texto.
La licencia GPL de MySQL obliga a distribuir cualquier producto derivado (aplicación) bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero no desea distribuirlo bajo licencia GPL, puede
adquirir la licencia comercial de MySQL que le permite hacer justamente eso (MySQL, 2006), en la figura 6 podemos observar el uso de SQL en el mercado.
Figura 6 Uso de Bases de Datos [Fuente: (Relational, 2004)]
2.7.5 PHP
PHP fue originalmente diseñado en Perl, seguidos por la escritura de un grupo de CGI, (Common Gateway Interface, CGI especifica un estándar para transferir datos entre el cliente y el programa.) binarios escritos en el lenguaje C por el programador Danés-Canadiense Rasmus Lerdorf en el año 1994.
El 8 de junio del 1995 fue publicado "Personal Home Page Tools" luego de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.
PHP es un lenguaje de programación usado generalmente para la creación de páginas para sitios Web. PHP ("PHP: Hypertext Preprocessor", inicialmente PHP Tools, o, Personal Home Page Tools) es un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web, y últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica (Información, 2006).
Los principales usos del PHP son los siguientes:
• Programación de páginas Web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.
• Programación en consola, al estilo de Perl, en Linux, Windows y Macintosh.
• Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (GIMP Tool Kit), que permite
desarrollar aplicaciones de escritorio tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS X.
Ventajas de PHP
• La principal ventaja se basa en ser un lenguaje multiplataforma.
• Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad.
• Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML
• Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).
• Posee una muy buena documentación en su página oficial.
• Es Libre, por lo que se presenta como una alternativa de fácil acceso para todos.
• Permite las técnicas de Programación Orientada a Objetos.
En la figura 7 podemos observar el uso del PHP dentro de las páginas Web
Tabla de Estadísticas de uso de Sistemas Operativos
A continuación se muestra el porcentaje de uso de los sistemas operativos, por mes.
2006 WinXP W2000 Win98 WinNT W2003 Linux Mac
January 72.3% 13.1% 2.4% 0.3% 1.7% 3.3% 3.5%
2005 WinXP W2000 Win98 WinNT W2003 Linux Mac
December 71.6% 13.6% 2.6% 0.3% 1.7% 3.2% 3.3% November 71.0% 14.6% 2.7% 0.4% 1.7% 3.3% 3.3% October 70.2% 15.0% 2.8% 0.4% 1.6% 3.3% 3.2% September 69.2% 15.8% 3.2% 0.5% 1.7% 3.3% 3.1% August 66.3% 17.5% 3.2% 0.6% 1.7% 3.3% 2.9% July 65.3% 17.7% 3.9% 0.6% 1.6% 3.5% 3.0% June 64.9% 19.1% 3.6% 0.7% 1.5% 3.5% 3.0% May 64.5% 19.4% 3.9% 0.8% 1.4% 3.3% 2.9% April 64.0% 19.7% 4.1% 0.8% 1.4% 3.3% 2.9% March 63.1% 20.2% 4.7% 0.9% 1.4% 3.2% 3.0% February 62.0% 21.1% 5.1% 0.9% 1.3% 3.2% 2.9% January 61.3% 21.6% 5.3% 1.0% 1.2% 3.2% 2.8%
Tabla 4 Estadísticas de uso de Sistemas Operativos [Fuente: (Browser, 2006)]
2.7.6 GIMP
Gimp es un acrónimo de GNU Image Manipulation Program (GNU programa de manipulación de imagen), es un software libremente distribuido y se pueden realizar tareas como: procesar gráficos y fotografías digitales, la creación de gráficos y logos, cambio de tamaño y recorte de fotografías, el cambio de colores, la combinación de imágenes usando un paradigma de capas, la eliminación de elementos no deseados de las imágenes y la conversión entre distintos formatos de imágenes; también se puede utilizar el GIMP para crear sencillas imágenes animadas. GIMP puede ser ejecutado en diferentes sistemas operativos como, Linux, Windows (98, NT, 2000, XP), Mac OS X, entre otros (Brief, 2006).
GIMP se inició como un proyecto realizado por dos estudiantes de Berkeley en el años de 1995 para una clase de ciencias computacionales. Spencer Kimball y Peter Mattis decidieron que realizarían un programa de manipulación de imágenes, a realizar un compilador, aún y cuando ninguno de los dos tuviera experiencia en el área de artes gráficas, pero para ellos era un programa más interesante. Así Spencer y Peter empezaron el programa general de manipulación de imagen o GIMP y trabajaron por 9 – 10 meses
antes de permitir que alguien lo probara. En su primera versión del software ya tenían un producto funcional (Brief, 2006).
El resultado fue un software de manipulación de imágenes, Un programa que por lo menos disminuiría la necesidad de usar software comercial bajo “Windows” o “Macintosh”, Un software que proveería las ventajas que se han perdido en las otras herramientas de manipulación de imagen. Un Software que ayudaría a mantener la tradición de usos excelentes y libres de aplicaciones UNIX (Brief, 2006).
La versión 0.54 liberada en Febrero de 1996 tuvo un mayor impacto como un verdadero software libre de manipulación de imagen. Este fue el primer software libre que podría competir con las grandes empresas de software comerciales del mismo tipo (Brief, 2006).
En la versión 0.54 GIMP tenía un sistema de Plug-in, así los desarrolladores podrían hacer programas separados para agregar funcionalidad al GIMP sin afectar cosa alguna en la distribución principal. Tenía algunas herramientas básicas para realizar el dibujo, y operaciones de canal. Tenía también una característica de “deshacer” (Undo), característica que no fue encontrada en ningún programa conocido de manipulación de imagen. GIMP fue protegido y publicado bajo la licencia GPL (Brief, 2006).
La biblioteca de controles gráficos GTK, desarrollada para GIMP, dio origen al entorno de ventanas de GNOME. (Brief, 2006)
Gnome es un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnología X Window y se encuentra disponible actualmente en más de 35 idiomas. Forma parte oficial del proyecto GNU (Brief, 2006).
GTK+ es un grupo importante de bibliotecas o rutinas para desarrollar interfaces gráficas de usuario (GUI), GTK+ es la abreviatura de GIMP toolkit. (Brief, 2006)
GTK+ se ha diseñado para permitir programar con lenguajes como C, C++, Perl o Python (Brief, 2006).
GIMP es también conocido por ser quizás la primera gran aplicación libre para usuarios finales. Trabajos anteriores, como GCC, el núcleo de Linux, etc. eran principalmente herramientas de programadores para programadores. GIMP es considerado por algunos como una prueba de que el proceso de desarrollo de software Open Source puede crear aplicaciones que los usuarios no avanzados puedan usar productivamente. De esta forma, abrió el camino a otros proyectos como KDE, GNOME, Mozilla Firefox, OpenOffice.org y otras aplicaciones posteriores (Brief, 2006),
GCC significa GNU Compiler Collection y es un conjunto de compiladores creados por el proyecto GNU. GCC es software libre y lo distribuye la FSF (Free Software Foundation) bajo la licencia GPL. Estos
compiladores se consideran estándar para los sistemas operativos similares a UNIX de código abierto y también para algunos sistemas operativos propietarios derivados de ellos, como Mac OS X (Brief, 2006).
2.7.7 MONO
Mono provee el software necesario para desarrollar y ejecutar clientes de .NET y aplicaciones de servidor en Linux, Solaris, Mac OS X, Windows, y Unix. Patrocinados por Novell (http://www.novell.com), el proyecto de Open Source Mono tiene una comunidad muy activa y entusiasta y se está posicionando para ser la opción líder en el desarrollo de aplicaciones en Linux (Basics, 2006).
El proyecto Mono tiene como objetivo crear una implementación libre de algunas herramientas y parte de la arquitectura de .NET (propuesta por Microsoft) (Basics, 2006).
Mono posee importantes componentes para desarrollar software:
• Una máquina virtual de lenguaje común de infraestructura (CLI) que contiene un cargador de clases, un compilador en tiempo de ejecución (JIT), y unas rutinas de recolección de memoria.
• Una biblioteca de clases que puede funcionar en cualquier lenguaje que funcione en el CLR (Common Language Runtime).
• Un compilador para el lenguaje C#, MonoBasic (la versión para mono de Visual Basic), Java y Python.
• El CLR y el Sistema de tipos común (CTS) permite que la aplicación y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para "byte code".
Esto significa por ejemplo, que si defines una clase que haga una manipulación algebraica en C#, esa clase puede ser reutilizada en cualquier lenguaje que soporte el "CLI". Puede crear una clase en C#, una subclase en C++.
Hoy en día en el proyecto MONO se le da mantenimiento al core VM, compilador en tiempo de ejecución (JIT), librerías de clase, y las librerías para proveer compatibilidad con Microsoft.NET (ADO.NET, ASP.NET, y Windows Forms) (Basics, 2006).
2.7.8 Qcad
El proyecto QCad tuvo sus inicios en octubre de 1999 y actualmente