lunes, 5 de diciembre de 2011

Aplicaciones móviles versus cloud computing: ¿son las aplicaciones un avance o una regresión?

Las aplicaciones móviles están en la cresta de la ola. Se crean cientos de nuevas aplicaciones, se habla de ellas, se las ve como el paradigma de la nueva computación móvil, cada empresa parece querer disponer de la suya...

El atractivo y posibilidades de estas aplicaciones móviles es evidente pero ¿son realmente un avance tan prodigioso? ¿cambian radicalmente la forma de entender el software o la manera en que nos relacionamos con la tecnología? ¿Es realmente un nuevo paradigma? ¿Cómo se relacionan con otro paradigma emergente, el de la computación en la nube o cloud computing?

Cuando me aparto ligeramente del entusiasmo de lo novedoso y del 'buzz' que lo rodea, contemplo las aplicaciones móviles y me recuerda mucho a lo que ocurrió, o está ocurriendo, con el software de ordenadores fijos. Y, en concreto, este 'boom' de las aplicaciones móviles me recuerda mucho a lo que ocurrió, allá por los años 80 y 90 con la generación vertiginosa de software para ordenadores personales.

Se venía en aquel entonces de un modelo de computación basado en grandes ordenadores centrales, en los conocidos mainframes. Un modelo de computación en el que toda la potencia de cálculo, todos los algoritmos, todos los programas, todo el almacenamiento, se encontraba en el ordenador central. El usuario disponía de un terminal 'tonto' con funciones de entrada y salida de datos simples y con unas capacidades gráficas realmente limitadas.

El ordenador personal cambió radicalmente ese panorama. En poco tiempo, los usuarios disponían de ordenadores baratos y asequibles que, sin embargo, añadían unas nada desdeñables capacidades de computación y almacenamiento, y una interfaz de usuario muchísimo más amigable, rica y atractiva.

Como consecuencia de ello, se desarrollaron centenares, o miles, de aplicaciones para el ordenador personal, desplazando una parte importante de la computación y almacenamiento desde el ordenador central hasta el ordenador personal.

Las tendencias, sin embargo, van ahora en la dirección contraria. La amplia difusión de Internet, el aumento generalizado del ancho de banda en el acceso así como el fortalecimiento de las infraestructuras de almacenamiento y computación centralizadas en los grandes proveedores, está conduciendo a modelos del tipo cloud computing en que el ordenador personal, si bien conservando toda su capacidad gráfica, devuelve al ordenador central, en este caso no tanto un ordenador cuanto una nube que incluye una compleja infraestructura de servidores y elementos de red, las responsabilidades de almacenamiento y algoritmia.

¿Qué ocurre con el entorno móvil?

Los terminales móviles, inicialmente pensados para comunicaciones móviles de voz, han sufrido una evolución vertiginosa en sus capacidades de interfaz, de computación y de almacenamiento. Los modernos smartphones y las tablets son auténticos ordenadores portátiles y su uso para comunicaciones de voz comienza a ser secundario frente a sus posibilidades en comunicación de datos, en acceso a Internet y en ejecución de todo tipo de software y utilidades.

Como en su momento ocurrió con el ordenador personal, hemos descubierto unas nuevas capacidades de computación que, no sólo son personales sino que, además, nos acompañan a todas partes. Y fascinados por esas nuevas posibilidades, nos lanzamos a construir software especializado para móviles, desplazando las capacidades de computación desde los elementos centrales, ya sea red o servidores, hacia el terminal.

Pero ¿no es esto una suerte de regresión? ¿No estamos repitiendo la historia de los ordenadores personales? ¿No deduciremos, dentro de unos años, no muchos, que debemos devolver las capacidades de computación a los elementos centrales y utilizar un modelo de cloud computing donde el terminal sólo actúa de mero elemento de acceso e interfaz, y la lógica y los datos se encuentran en la nube?

Bueno, creo que algo de eso hay, puede que mucho, pero se precisa alguna matización previa.

Las nuevas aplicaciones móviles han surgido en un entorno nuevo, diferente a aquel en que triunfaron los ordenadores personales, y presentan, por ello, algunas características diferenciales.

Por una parte, las aplicaciones móviles están siempre conectadas. Al contrario de lo que sucedió con la explosión de las aplicaciones de ordenador personal, las nuevas aplicaciones móviles están pensadas y sólo tienen sentido en su mayor parte, como aplicaciones conectadas, en red. En ese sentido, y aunque sólo sea parcialmente, ya se acercan desde su origen a un modelo cloud, no estando en su mayoría concebidas con un modelo stand-alone.

Por otra parte, la movilidad aporta dos factores adicionales que deben tenerse en cuenta.

Por un lado, la geolocalización. El hecho de que los equipos móviles incluyan de serie la geolocalización, la identificación inequívoca de nuestra posición en cualquier punto del planeta, aporta unas posibilidades diferenciales para funciones como, por ejemplo, el marketing móvil geolocalizado que precisan de la colaboración activa del terminal. Bien es cierto que la geolocalización, aunque depende del terminal, de su posición y de que comunique esa posición, podría gestionarse igualmente de forma centralizada sin necesidad de aplicaciones pero, de alguna forma, desplaza 'poder' hacia el terminal.

Por otra parte, el terminal móvil es ubicuo, nos acompaña siempre, a donde quiera que estemos. Las aplicaciones pueden sacar ventaja de esa particularidad, llevando cualquier funcionalidad a donde quiera que el usuario desee, funcionalidades que pueden incluir comunicación, pero que también pueden limitarse a un mero juego al que acudir en momentos de aburrimiento en cualquier circunstancia y lugar.

Con todo y esas evidentes particularidades, conectividad permanente, geolocalización y ubicuidad, no existe ninguna argumentación definitiva para justificar que el software se desplace desde la nube hacia el terminal y no al contrario. Es muy probable que, aparte de la simple fascinación por el terminal y las aplicaciones, lo único que pueda justificar el desplazamiento de la lógica hacia el terminal sean, o bien que existan capacidades de procesamiento o interfaz que sólo se puedan obtener mediante aplicaciones, o bien que existan motivos económicos que hagan más favorable utilizar aplicaciones en lugar de trabajar en la nube. Podríamos, quizá, también considerar aspectos relacionados con la privacidad y la seguridad que se cuentan entre las habituales objeciones al cloud computing.

Con todo ello, parece que en la medida que el cloud computing sea un modelo de éxito para la computación 'habitual', aquella ligada a un puesto de trabajo, también lo debería de ser para la computación móvil. Al fin y al cabo, y como hemos dicho, los smartphones y tablets no son a estas alturas más que otro tipo de ordenador que ya no se concibe sin conectividad casi permanente.

Creo que sólo es necesario progresar un poco más en las interfaces de usuario móvil, en la conectividad de datos móviles en banda ancha, en las aplicaciones clientes universales (como navegadores o escritorios remotos) y el panorama de la computación móvil será similar al de la computación fija. Y si el cloud computing tiene sentido y triunfa en la computación fija, también lo hará en la móvil, y si por el contrario fracasa en la computación fija, igualmente sucederá con la móvil.

Pero en esto, como ocurre en cualquier predicción sobre tecnología, sólo el tiempo, los usuarios y los mercados darán la razón a quien corresponda.