La nube, una vez más, como tecnología y metáfora. Nos brinda recursos para avanzar en un mundo ya crecidito. Nos permite conectarnos, entre nosotros y con nuestro entorno. Nos ayuda a procesar datos de una dimensión gigantesca a una resolución minimísima. Pero la nube, ella sola, es como un cerebro sin oídos, sin nariz, sin ojos. Un ente pensante pero aislado.
Es el Internet of Things, o IoT, quien dota al cerebro de sentidos. Sensores y dispositivos que perciben señales y las envían al córtex. El IoT son todos aquellos dispositivos conectados a la red que miden magnitudes como la temperatura, la humedad o incluso el tráfico, para transmitirlo a los servidores y que ellos se encarguen del trabajo sucio.
En Varsovia, Polonia, tienen un curioso modo de implementar el IoT. Para medir la calidad del agua, utilizan (simpáticas) almejas. Las almejas, y los moluscos en general, tienen una habilidad innata e imbatible para medir la calidad del agua. En caso de que el agua esté contaminada, cierran sus bibalvos. En cuanto se cierran, unos sensores acoplados a las propias almejas notifican al sistema central de la contaminación. ¡Sorprendente!
Ahora, volviendo a la nube. Imaginad ahora a ese pobre servidor, recibiendo datos de tropecientos pequeños y molestos sensores. Ese servidor está cansado, necesita tomarse unos días de motivos personales. ¿La solución? En otro blog de la Cátedra ya hablamos de la computación en el extremo, ¿qué pasaría si parte del procesamiento se pudiera hacer en los propios sensores, en lugar de delegarlo todo a los servidores?
Sin embargo, los sensores y tecnologías del extremo tienen una particularidad: son muy pequeños, tanto en tamaño como en recursos computacionales. Y por desgracia, casi todo lo que se ejecuta en la nube utiliza containers: compartimentos virtuales que incluyen todo lo necesario para ejecutar una aplicación, incluyendo código, librerías y configuraciones. Los containers son pesados (no es raro que midan de decenas de megabytes a gigabytes), demasiado grandes para dispositivos IoT.
Como solución, la computación en el extremo gusta mucho de utilizar WebAssembly (o Wasm). Wasm es una solución más eficiente porque genera código compacto y optimizado, que se ejecuta en entornos de ejecución muy livianos. Gracias a Wasm, incluso dispositivos muy pequeños puedan correr código complejo de manera rápida y segura.
El sistema polaco de calidad de agua es muy rústico en su iteración actual. Las almejas solo nos dan una respuesta mecánica (se cierran); poca información más se puede extraer de ellas. Pero, ¿y si pudiéramos enseñar a las almejas a ejecutar código WebAssembly, para hacerlas listísimas y que pudieran estudiar ellas mismas el agua que filtran? No solo se volverían más inteligentes, podríamos incluso saber de su estado anímico: si están motivadas, si están dispersas o si no se han despertado con el pie izquierdo un lunes por la mañana.
Al final del día, quién no querría ser una almeja.
Leave a Reply