Saltar al contenido

2

Nada que ver con UAV's, la última tendencia en robótica consiste en utilizar computación en nube para hacer parte de los cálculos y operaciones de un robot. Siguiendo un artículo de microsiervos, he llegado a una explicación muy buena en el ieee automaton. La idea es utilizar computación en nube para realizar los cálculos más pesados y complejos, utilizando tanto la potencia como los datos masivos almacenados en servidores remotos. Cuando un robot se encuentre con un objeto desconocido, podría enviar una imagen del mismo a un servidor que identificará el objeto comparándolo con miles de modelos en su base de datos y recibir una descripción, un modelo 3d, etc. De una manera similar a google goggles y google translate que ya funcionan de esta manera.

¿Dónde encaja este tipo de computación en la arquitectura de un robot? En la parte de planificación, que puede recurrir a la nube para procesar información pesada o desconocida. Pero la parte reactiva también podría beneficiarse de la conexión a internet. ¿Qué tal una biblioteca de comportamientos reactivos? Es lo que en microsiervos comparan con la escena de Matrix de aprender "kung fu". Descargando los comportamientos necesarios, un robot siempre podrá activar los más adecuados a su entorno y a la tarea que esté realizando. Un ejemplo sencillo: un siguelineas puede convertirse en luchador de sumo, descargando de internet  los comportamientos apropiados para cada tarea y activándolos cuando los necesite.

Hay algunos peligros en este planteamiento ¿Qué pasa cuando el robot se queda sin conexión a internet? El sistema debería funcionar correctamente y siempre debería tener comportamientos adecuados para seguir funcionando sin peligro de que el robot termine descontrolado. Por el lado de la seguridad informática, habrá que evitar que se puedan cargar comportamientos peligrosos como "matar a todos los humanos".

Es un paradigma prometedor, hablan incluso de una "app store" para robots, en la que se podrán comprar aplicaciones para nuestro robot. Pero es más prometedora la idea de aplicar esta nube a electrodomésticos y aparatos inteligentes conectados a internet, enlazando con el concepto de el internet de las cosas.

Son dos temas que nada tienen que ver, pero que me parecen interesantes porque es la línea tecnológica por la que parece que deben ir las aplicaciones de internet.

Rodolfo Carpintier, en una entrada de su blog habla de que hay tecnologías que necesitan tiempo para despuntar. Dejando de lado la discusión sobre las inversiones en tecnología y el horizonte temporal, creo que es curioso comparar dos tecnologías como saas y la web semántica. Un amigo de Rodolfo habla de cómo desde hace 10 años (y probablemente más, cómo apuntan algunos comentarios) hay empresas que hacen saas y no han tenido éxito hasta ahora. La web semántica lleva también 10 años de promesas, entonces ¿es el momento de empezar a ver empresas que trabajen en la web semántica que tengan éxito?

Creo que hablando desde una perspectiva tecnológica, no es lo mismo. Hay que analizar cada caso por separado. En el caso de saas, un factor clave es el ancho de banda y la velocidad de procesamiento de los ordenadores. Mientras la velocidad de procesamiento era mucho mayor que el ancho de banda (en terminos relativos, no absolutos, no hablo de comparar MHz con GHz), las aplicaciones tenían más sentido como aplicaciones de escritorio. Mientras el coste de un ordenador era mucho menor que el de un servidor/mainframe, tenía sentido tener un ordenador en casa. Al cambiar esta relación, debido a que Google redujo drásticamente el coste de sus datacenter (de nuevo, de forma relativa, lo hizo hasta el punto de poder ofrecer servicios saas gratuitos como gmail), ha cambiado el paradigma.

Es decir que la promesas del saas no se ha podido realizar hasta que cambió la relación de coste de procesamiento y ancho de banda. Si esta relación vuelve a cambiar (superprocesadores baratísimos, que cualquier persona pueda mantener en casa) es posible tengamos de nuevo el paradigma antiguo, aunque en mi opinión es difícil que volvamos atrás.

¿Qué sucede con la web semántica? Creo que en general parte de una premisa errónea: etiquetar la web para que los ordenadores sean capaces de procesar sus datos. Pero ¿quién tiene que hacer el esfuerzo de etiquetar la web? La línea a seguir no es etiquetar la web, sino desarrollar algoritmos más inteligentes capaces de entender la web existente. Eso es lo que hizo google: al dar tanta o más importancia a los enlaces a una página que al propio contenido de la página, su algoritmo, sin hacer ningún cambio en la web existente, se volvió más inteligente que la competencia.

Si entendemos la web semántica cómo algo más abstracto, cómo la aplicación de algoritmos de inteligencia artificial a la web, entonces estoy de acuerdo, es lo que quiero decir con desarrollar algoritmos más inteligentes.

1

En unas declaraciones recientes, Richard Stallman avisa de que el cloud computing es una trampa. Hay parte de verdad en esta advertencia, pero no debemos cogerla cómo una negación del cloud computing.

Por un lado, es innegable que se trata de un término comercial. Como dice Stallman es un nombre nuevo a algo antiguo. Por otra parte, creo que necesitamos nombres nuevos cuando cambia algún aspecto antiguo. Dónde antes teníamos software embebido para terminales móviles, software de escritorio y programación web, ahora tenemos aplicaciones en nube. El objetivo debe ser unificar la programación en la medida de lo posible, la aplicación es única. Por ejemplo, el dúo outlook + blackberry, por mucha integración que haya no es comparable a acceder a gmail desde cualquier dispositivo.

Por otra parte, el miedo a la pérdida de privacidad es una cuestión de confianza, las empresas deben demostrar a los clientes que son dignas de su confianza.

Pero cuando Stallman habla de trampa, se refiere a que el software no es modificable, no sabemos que procesamiento de nuestros datos se estarán haciendo. Esto es un peligro inerente al software propietario y es independiente de si un software se usa en nube, en escritorio o en web. La solución es sencilla: frente a blogger, tenemos wordpress. Uno es cerrado y no sabemos cómo se manipulan nuestros datos, el otro es abierto y tenemos acceso al código fuente.

El peligro no es la nube, sino el software propietario. Al igual que linux se extendió lo suficientemente en un momento en que microsoft dominaba el mercado, surgirá la correspondiente aplicación libre en caso de que lo necesitemos.

Sobre la computación en nube, es muy difícil jugar a futurólogo, simplemente se trata de la tendencia actual, pero no implica que en el futuro esto no cambie.

Es posible que en el futuro aparezca una nueva tecnología, llamemoslo el cisne negro, que nos hará cambiar de opinión y presentará las siguientes características:

  • impredecible: nada anterior permite predecir al cisne negro. Todas las previsiones actuales se basan en lo que ya existe.
  • gran impacto: su aparición tiene un impacto importante. Normalmente una reducción de precio o un aumento de calidad o valor manteniendo el mismo precio.
  • retrospectiva: todo el mundo puede explicarlo "a posteriori" y parece sencillo de predecir y lógico.

Teniendo en cuenta estas características, ¿no son parecidos el "cloud computing", al modelo "cliente/servidor" y al mismísimo "terminal tonto"? Todos fueron impredecibles, todos tuvieron un gran impacto (en el desarrollo tecnológico) y todos se pudieron explicar a posteriori.

¿Qué es lo que podemos hacer mientras esperamos al siguiente cisne? Observar lo que ya existe e intentar prever su crecimiento. Como dice O'Reilly, observar al alpha geek, el futuro ya está aquí, sólo que no está lo suficientemente distribuido.

Otro argumento en contra de la computación en red, es el argumento de que los terminales tontos ya se inventaron y fracasaron. Pero esto no es cierto, los terminalos tontos fueron un éxito en su momento. Simplemente fueron reemplazados por otras tecnologías propiciadas por un cambio en el entorno:

  • Un terminal tonto, al menos al inicio, no era ni siquiera un ordenador, llevaba la electrónica justa para acceder a un ordenador central y mostrar una consola que ejecutaba en el ordenador central.
  • El motivo de los terminales tontos era compartir recursos, un ordenador era muy caro y la ventaja de las terminales tontas era permitir el acceso de varias personas a un carísimo ordenador central.
  • La arquitectura de PC's surgió por un efecto imprevisto: el abaratamiento de los PC's. En cada escritorio se podía tener un ordenador muy potente a un precio razonable, ya no había necesidad de compartir el ordenador central. Al menos para aplicaciones como procesadores de textos, hojas de cálculo, etc.
  • La web surgió como nuevo modelo de comunicación, compartir información entre pc's usando un protocolo sencillo. Su uso se popularizó cuando el acceso a internet se abarató.
  • La nueva arquitectura en la nube no persigue abaratar costes como los terminales tontos, ni centralizar la información en un sólo lugar. La idea principal es permitir el acceso desde múltiples localizaciones y desde múltiples terminales. Aunque también se basa en el abaratamiento tanto de los PC's, como de los servidores, como en el abaratamiento de las comunicaciones.

Una aplicación que refleja los cambios de modelo de arquitectura es el correo electrónico. Inicialmente había que usar pine en terminales tontos, de ahí se pasó a usar outlook en un modelo cliente servidor y actualmente usamos gmail al que se puede acceder desde la nube (terminales móviles, pc's y/o cualquier cosa que interprete html + javascript).

Por eso no creo que se pueda comparar la arquitectura de terminales tontos con la arquitectura de nube. Cada tipo de arquitectura surge como respuesta a unas condiciones económicas y de mercado distintas. Actualmente es barato tener ordenadores en todas partes, con comunicaciones baratas de banda ancha. Casi es lógico que aparezcan arquitecturas en nube.