Software Open Source
Sin duda, el software Open Source, esto es, el software que tiene el código
fuente disponible para hacer modificaciones, mejoras y adaptaciones, tiene
grandes ventajas para las empresas (The Gartner Group,"Web Site Deployment and Operations",
January 1999; Jupiter Research, "B2B Infrastructure Practices", June 2000;
Forrester Research, "Ringing Up Web Store Costs", August 1999; eFaber, "Uso del Open Source en la
Empresa", Noviembre 2001).
Cada vez son más las empresas que se dan
cuenta de estas ventajas y utilizan este tipo de software por su:
- Menor coste de mantenimiento. Al disponer del código fuente de los
programas, se pueden desarrollar mejoras sin necesidad de adquirir nuevas
versiones o volver a encargar el proyecto de software a una consultora. La
inversión hecha por la empresa queda asegurada y no sometida a los avatares de
la empresa desarrolladora, que como en tantos casos ha sucedido, se niega a
hacer actualizaciones o declara el producto obsoleto.
- Mayor seguridad. Muchos dispositivos de seguridad esconden su
debilidad ocultando el código que la garantiza. Cuando el supuesto mecanismo
de seguridad falla, no hay manera de corregirlo hasta que los fabricantes de las
rutinas cerradas deciden arreglarlo, ocultando nuevamente la solución. Al estar
el código fuente disponible, es mucho más fácil encontrar los fallos de
seguridad y corregirlos. Una de las razones por las que a mucha gente no le
gusta enseñar el código, no es porque tenga algún secreto, sino porque le da
vergüenza enseñarlo. El código abierto permite al cliente percibir
la calidad del producto en sus interiores y también garantiza que no hay en su
interior ningún "caballo de Troya" que pudiera comprometer su seguridad.
- Tiempos de desarrollo menores. Se puede desarrollar a partir de
mucho código Open Source ya desarrollado. De manera que el tiempo de desarrollo
de variaciones y personalizaciones es mucho más corto que si se tuviera
que empezar desde cero. Además, el desarrollo se hace partiendo de software
probado y sólido, con lo que resulta mucho más seguro que si se hubiese
empezado todo el código desde el principio.
- Bajo coste. Las herramientas Open Source tienen precios muy
asequibles siendo algunas gratuitas. Esto hace que en el precio de venta al
público de cualquier aplicación realizada con ellas la proporción del coste
asignado a la personalización y adaptación a los deseos del cliente respecto
al coste de las herramientas sea muy diferente a la que se hubiese alcanzado de
emplear herramientas de fuente cerrada. De modo que, al mismo tiempo que podemos
ofrecer precios razonables, también podemos permitirnos el lujo de dedicar la
mayor parte de nuestra actividad a una adaptación precisa a los deseos del
cliente.
Linux, el sistema operativo
Linux es un sistema operativo muy estable, escalable, seguro y que consume
pocos recursos. Además, tiene la ventaja de que su coste es prácticamente nulo
y de que está mantenido por una comunidad de
desarrolladores y colaboradores muy activa. Para
una empresa, instalar Linux en sus servidores, sin necesidad de mantenimiento,
para determinadas tareas, como servidores de ficheros, servidores web, proxys,
firewalls, servicios de correo, etc, puede suponer un importante ahorro de
costes y una mejora de la velocidad de la red en general. Linux cada vez está
más preparado para actuar en un entorno gráfico atractivo y dispone de
programas como WordPerfect o el nuevo StarOffice gratuitos y de calidad
equivalente a Ms Office. Como ventaja adicional, tiene la gestión remota de
todas las máquinas, facilidad de personalización (limitar sólo la ejecución de
ciertas aplicaciones, realizar backups nocturnos), mantener la misma
configuración se acceda desde el ordenador que se acceda, etc. Todo esto, unido a
un menor consumo de recursos y mayor estabilidad que clientes Windows.
AOLserver, el servidor web
El servidor web AOLserver es utilizado por
la compañía America On Line, AOL, para
servir sus páginas. Esta compañía es, entre otras cosas, el mayor proveedor de
Internet del mundo (con más de 20 millones de hits diarios). Si ellos utilizan
este servidor, no hace falta decir que es capaz de soportar cargas más que
considerables. El mismo software se utiliza en photo.net, el mayor foro mundial
sobre fotografía, y que ha llegado a recibir 1.000.000 hits por día. Sin
embargo, una de las propiedades más importantes de AOLserver es que
implementa un manera muy rápida y fiable de comunicarse con una base de datos,
lo que hace que lo consideremos muy adecuado para nuestro trabajo. Este
servidor de páginas web está muy bien documentado, pero, además, AOL ha
decidido ofrecer este servidor con su código libre, lo que nos asegura que
no tendremos problemas de soporte y calidad.
PostgreSQL y Oracle, las bases de datos
PostgreSQL es ampliamente considerada
la mejor base de datos de código abierto del mundo. Su solidez y robustez
radican básicamente en el cumplimiento del test ACID:
- Atomicity: Las transacciones se ejecutan completamente o se anulan,
sin correr el riesgo de que un imprevisto en mitad del proceso
pueda dejar el resultado en un estado no autoconsistente.
- Consistency: La base de datos siempre se transofrma de un estado
válido a otro estado válido.
- Isolation: Los resultados de las diferentes transacciones son
invisibles hasta que estén completamente acabadas.
- Durability: Una vez acabadas las operaciones sobre los datos,
éstos tiene que "sobrevivir" a posibles fallos en el sistema de ficheros.
Además PostgreSQL utiliza el llamado Multi-Version Concurrency Control
(MVCC) para manejar los accesos a la base de datos, lo que permite a diferentes
usuarios realizar consultas simultáneamente sin necesidad de esperar a que uno
de los procesos termine para empezar el siguiente, lo cual agiliza enormemente
su ejecución.
Para ciertos casos concretos, consideramos también la opción de utilizar
Oracle que, aunque es un producto de código
cerrado, su calidad y rapidez de ejecución justifican el precio de sus
licencias.
Web Frameworks: Ruby on Rails y OpenACS
Ruby on Rails
Ruby on Rails es una plataforma
escrita en Ruby y basada en el patrón MVC (Model-View-Controler) sobre la
que fundamentar desarrollos de aplicaciones web. La principal ventaja de este
Framework es que proporciona una base muy sólida donde los componentes
básicos de la aplicación están perfectamente cohesionados y optimizados, lo
cual permite construir aplicaciones enfocándose exclusivamente en
el producto final y en las necesidades específicas de cada caso.
Por otro lado, Ruby on Rails ofrece una integración sin parangón con librerías
Javascript como XHR,
Prototype y Scriptaculous
que permiten desarrollar aplicaciones con notables mejoras en la experiencia de usuario
sin necesidad de sacrificar la usabilidad ni la accesibilidad de la misma.
Open Architecture Community System (OpenACS), el servidor de aplicaciones
Teniendo como origen el desarrollo de
photo.net, se creó un
conjunto de herramientas completamente modulares orientadas a dar servicios de
colaboración a través de Internet. Estas
herramientas se conocen con el nombre de
ArsDigita Community System (ACS) cuando la base de datos utilizada es
Oracle, y OpenACS cuando la base de datos
es PostgreSQL. Es por tanto una base extensible sobre la que poder crear sitios web
totalmente personalizados.
Una buena documentación es fundamental y los diferentes módulos
de ACS no sólo están perfectamente documentados, sino que detrás de ellos
existe una comunidad vibrante de desarrolladores y usuarios que continuamente
revisan y documentan el código. Varios servicios de gran importancia en Internet
están basados en ACS, entre ellos el sistema Global Development Gateway Web del
Banco Mundial y la intranet del departamento de ventas de Siemens que engloba
10.000 empleados en 35 países.
Otras herramientas en las que eFaber tiene experiencia
Además de la tecnología que más arriba proponemos como modo más fiable de implantar
servicios en Internet, eFaber tiene acumulada una gran experiencia adicional,
adquirida a lo largo de muchos años de trabajo, con otras herramientas diferentes. En
definitiva, los miembros de nuestro equipo han trabajado con:
Sistemas Operativos:
- Unix: HP-UX, IRIX, Solaris, Digital Unix/OSF/Tru64 Unix, Linux, FreeBSD
- Mac OS X
- PalmOS
- MS DOS/Windows
- Mumps
Lenguajes:
- C, C++, Fortran
- Python, Perl, Tcl/tk, PHP, awk, sed
- Java
- Pascal y Delphi
- Clipper 5, Basic, dBase (DOS), Visual Objects (Windows)
- Lenguaje ensamblador x86
- HTML, DHTML, XML, WML, SQL
Redes:
- Administración de redes TCP/IP en redes de tamaño medio de diferentes servicios:
web, ftp, email, news, sistemas de seguridad (ssh,pgp), sistemas de backup, etc
- Redes de tipo IPX (Novel Netware) y SMB/NetBIOS (MS Windows)
- Diseño, desarrollo y mantenimiento de sofisticados servidores Web.
Otros:
- Experiencia en el desarrollo e instalación de sistemas de clústeres y cálculos
en paralelo (PVM, MPI)
- Bases de datos SQL: Oracle, Postgres, Interbase, mSQL, mySQL, Access, dBase, Paradox
- Experiencia en programación de dispositivos PDA y desarrollo de servicos WAP
- Conocimiento profundo del hardware de PC y redes, y experiencia en su implantación
y mantenimiento