Su nombre, Melissa, no está inspirado en una mujer sino en un virus que causó grandes estragos en el año 2000 si mal no recuerdo. Antes de llamarse asÃ, se llamó SERVER1 y esto fue poco antes de 1999, cuando comencé a poner en práctica la idea de tener un "server" en casa.
La idea en sà ha demostrado con creces su utilidad y es por eso que la he mantenido por más de seis años. Más sobre esto, en mi artÃculo Los beneficios de un network casero.
En su última morfologÃa, Melissa llegó a tener tres discos duros: En uno residÃa el sistema operativo y los programas instalados (que no eran muchos). En el otro (de gran capacidad) se almacenaban todos los datos. El tercero, de igual capacidad que el anterior, servÃa de respaldo a aquel, ya que todas las noches una tarea automática del sistema se ocupaba de hacer el traspaso de contenido de uno a otro.
Es una arquitectura muy conveniente que me permitÃa dormir en paz, sabiendo que todos mis datos estaban siendo respaldados automáticamente. A su vez, la concentración de datos en Melissa me permitÃa tener acceso a los mismos desde diferentes puntos de mi casa, por ejemplo desde mi "developer machine" y también desde la sala donde tengo un PC para los visitantes. Además, Melissa me servÃa de "Print Server" ya que el único printer que poseo, estaba conectado a ella.
Pero un buen dÃa, y esto fue recientemente, se me ocurrió que Melissa deberÃa ser algo más que un almacén de ficheros. Entonces desarrollé una aplicación que me permitÃa organizar todos mis datos (contactos, documentos, notas, fotografÃas, etc.) en un database y a través de una interfaz coherente. La idea es que Melissa no deberÃa ser un PC lleno de datos y una cierta aplicación para manejarlos, sino una especie de "PDA gigante", una especie de "cajita de información", con una única interfaz hacia el usuario que le diera la personalidad de un dispositivo inmutable y no de un alterable PC.
Tuve muchas dudas sobre la tecnologÃa a emplear. El entorno Web es muy ágil para el desarrollo de una aplicación de database, pero presenta limitaciones con las que no siempre he estado satisfecho. No obstante, necesitaba desarrollar la aplicación con rapidez y un poco a regañadientes, la escribà utilizando PHP con un MySQL database en el fondo, tecnologÃas estas que no solo son Web sino además "open source", nativas del entorno UNIX, aunque yo obviamente utilicé versiones Windows. La elección se basó en la esperanza en que algún dÃa Melissa serÃa una máquina Linux y no Windows.
El diseño de la aplicación, que en un inicio llamé "Melissa UI", fue todo un reto para mÃ. En primer lugar debÃa tener una arquitectura modular, pues la pretensión de manejar toda mi información personal a través de ella, la convierte en una aplicación "siempre en crecimiento". Pero al mismo tiempo, todos estos módulos deberÃan estar interconectados entre sÃ, de modo que el usuario siempre pudiera establecer relaciones entre datos manejados por diferentes módulos, por ejemplo, adjuntar al record de Juan Pérez un documento que contiene su currÃculum vitae.
Asà pues, surgieron los siguientes principios de diseño:
- Un modulo principal llamado Core, que ofrece servicios comunes al resto de los módulos.
- Modulos independientes (uno por cada tipo de información), los cuales son TOTALMENTE independientes entre sÃ, es decir, si uno de ellos se retira, el sistema continúa funcionando normalmente. Esto implica que ningún módulo puede conocer ABSOLUTAMENTE nada de las interioridades de los demás.
- Todo dato puede ser relacionado con otro bajo el control del usuario. La funcionalidad necesaria para lograrlo, debe ser un servicio del Core.
- El Core también debe proveer un mecanismo para búsqueda global, la cual retorna una lista de records encontrado por módulo. (La implementación de esto fue un verdadero reto porque parecÃa chocar con el principio de total independencia de los módulos, pero finalmente pude hacerlo).
- Un sistema de seguridad basado en "pertenencia de la información" y no en "niveles de acceso". Aún cuando el sistema es para mi uso personal exclusivamente, dejo abierta una ventana para futuros usuarios.
El resultado fue una aplicación muy útil que me permite mantener mi información organizada y asequible. Hay que decir que gran parte del tiempo tuve que emplearlo en importar un gran volumen de datos que ya existÃan en aplicaciones anteriores. El tiempo de desarrollo ha sido asombrosamente breve: me tomó apenas dos semanas desarrollar el Core y menos de una semana por módulo.
Todo marchaba bien hasta que alguien me sugirió la idea de colocar a Melissa UI en la Internet. Hay que decir que ya estaba expuesta a la Internet a través de mi router... la nueva idea consistÃa en ponerla "en" la Internet.
No era difÃcil en realidad, ya que como dije, la aplicación estuvo concebida desde un inicio para entorno UNIX. Una cosa sà me limitaba: el inmenso volumen de ficheros binarios como documentos y fotos, unos 7 GB en total. No hay servicio de hosting que yo pueda pagar que me ofrezca esa capacidad de disco duro.
La solución vino de un producto de reciente aparición en el mercado, el "Network Drive". Estos aparatos son especies de "External Hard Drives", pero en lugar de tener una interfaz USB ó Fire Wire, la tienen ethernet. La idea es que uno conecte el Network Drive en el Network Local y se comunique con él vÃa TCP/IP, cual si este fuese un PC.
Lo que yo compré no fue exactamente un Network Drive sino un "Network Storage Link". No viene con ningún disco duro sino con dos puertos USB para que uno conecte allà un external hard drive cualquiera. Posee un FTP Server de modo que uno pude transferir ficheros al hard drive conectado, usando este protocolo.
Lo que hice pues, fue colocar este dispositivo en mi network casero y exponerlo a la Internet a través del router en el puerto 21. La aplicación Melissa UI fue colocada en un web hosting (es decir, en la Internet) y modificada ligeramente en cuanto al manejo de ficheros binarios (fotos y documentos). Ahora la aplicación (renombrada "Melissa Online") se comunica directamente con mi Network Drive vÃa FTP a través de la Internet.
Para minimizar problemas de conectividad, Melissa Online mantiene un "Cache" de los ficheros a medida que los sube al hsoting. La primera vez que el usuario los utiliza, Melissa Online los trae vÃa FTP desde el Network Drive y los deposita en el Cache... y allà permanecen de modo que cuando el usuario los requiere por segunda vez, ya no tiene que sufrir el tiempo de subida ni arriesgarse a que dicha subida no tenga éxito por problemas de conectividad. No obstante el usuario tiene la opción de removerlos del Cache a voluntad, lo cual es recomendable si se trata de información confidencial.
Como mencioné al principio, Melissa Online fue puesta en servicio el dÃa 1ro. de Mayo, de modo que solo tiene 18 dÃas de existencia. No obstante, en tan poco tiempo ha demostrado su inmensa utilidad. Su desarrollo continúa y continuará por mucho tiempo seguramente. Ya dije que esta es una aplicación "siempre en crecimiento".
Tengo que confesar, sin embargo, que el hecho de que Melissa haya dejado de ser un PC o algo tangible, me da un poco de tristeza. Por seis años Melissa me ha acompañado, siempre despierta y siempre susurrando sus abanicos a media noche, cuando el silencio hace más evidente su electrónica respiración. Ahora he de imaginar que Melissa está en el Cielo, cuidando mis datos con el mismo celo de siempre, intangible pero eternamente viva... es por eso que no me he atrevido a llamarla de otro modo sino por su eterno y querido nombre de Melissa.