jueves, mayo 17, 2018

El primer dispositivo IoT de la historia fue una máquina de Coca-Cola

A raíz de un comentario en el artículo sobre el primer ordenador personal de la historia publicado en este mismo blog, donde hicimos una broma sobre que el Altair 8800 era el primer dispositivo IoT, nos hemos acordado de una curiosa historia que habla de la primera máquina que podríamos definir con ese término. Bueno, en este caso Internet aún estaba en su primera fase en la que se denominaba Arpanet (¿entonces la podríamos llamar AoT?) … y el primer dispositivo que digamos era “algo cotidiano” con conexión a dicha red, fue nada más y nada menos que una máquina de refrescos.

Figura 1: El primer dispositivo IoT de la historia fue una máquina de Coca-Cola

El departamento de las ciencias de la computación de la super conocida Universidad de Carnegie Mellon allá por los años 70’s, mantenía una máquina de Coca-Cola que vendía las botellas (eran las de cristal con la forma característica de la marca) 10 céntimos más baratas que cualquier otra máquina en el campus. Como los programadores “de verdad” no funcionan sin cafeína ;) dicha máquina era muy popular entre todos ellos.

Figura 2: Máquina dispensadora y botellas de Coca-Cola de los años 70

A mediados de los 70’s, con la expansión de dicho departamento, la nueva localización de las oficinas de los empleados se situaba lejos de la habitación de los terminales, que, de forma estratégica, era donde se ubicaba la máquina de Coca-Cola. Tener que ir hasta la donde estaba la máquina y ver que, o no había refrescos o bien la acababan de reponer (los reponedores de la máquina eran voluntarios del campus los cuales no tenían ningún calendario establecido, incluso había un manual de cómo se debía reponer), y por lo tanto no estaban lo suficientemente frías, era algo que un ingeniero no podía permitirse.

Un día, un par de empleados decidieron que había que buscar una solución a este gran problema. Y claro está, pasaba por utilizar la electrónica y la informática. Por lo tanto, decidieron instalar micro interruptores en cada una de las seis bandejas de la máquina, de forma que pudieran determinar el número de latas en cada una de ellas. Luego conectaron los micro interruptores a la red local del departamento por Ethernet hasta el servidor principal, que por aquella época era el clásico PDP-10.

También crearon un pequeño programa que informaba, a través de los datos facilitados por los micro interruptores, del estado de las bandejas y por lo tanto del número de latas de la máquina. Pero no sólo informaba si una columna estaba vacía, sino que además era capaz de comprobar si las botellas estaban frías.

Figura 3: Ordenador PDP-10 con 6 módulos de memoria

Todo esto era posible ya que el programa tenía un registro de cuándo la máquina de Coca-Cola fue recargada por última vez y además en qué bandeja. Con esta información el programa era capaz de informar sobre qué columna tenía botellas frías y cuáles no, en base a cuando fue recargada por última vez. Cuando una columna estaba vacía, mostraba el mensaje “EMPTY”, si la columna había sido recargada hacía más de tres horas, mostraba el mensaje “COLD”. En caso contrario, mostraba el tiempo que había transcurrido desde la última recarga, por ejemplo: 1h 3m.

Inicialmente este estado de la máquina de Coca-Cola sólo se podía consultar desde el servidor al que estaba conectado, es decir, sólo aquellos que tuvieran acceso a dicha máquina podían hacerlo, pero el resto de la gente del resto del campus también quería poder consultar el estado de la máquina mientras estaban conectados otros servidores.

Para ello utilizaron el protocolo finger de UNIX el cual fue modificado para informar del estado de dicha máquina, permitiendo así la consulta no sólo desde otros servidores del campus, sino desde cualquier ordenador conectado dentro del campus. Pero más tarde a principio de los años 80, la máquina se conectó a Arpanet, es decir, Internet, llegando a ser accesible a más localizaciones repartidas por todo EEUU.

Figura 4: Estado de Aparnet (más tarde Internet) en octubre de 1980

El comando finger (llamado igual que el protocolo) era un servicio presente en servidores de la época que proveían información sobre los usuarios del sistema, si estaban activos y desde dónde estaban conectados, entre otras cosas (comando que en su día fue muy usado, y “abusado”).

Para consultar el estado de la máquina de Coca-Cola, sólo había que ejecutar el siguiente comando: finger coke@cmua. CMUA era el nombre del servidor al que estaba conectada la máquina y coke era un usuario ficticio en el sistema, el cual respondía con el estado de la máquina de refrescos. Los datos que devolvía este comando eran algo parecido a esto:
> EMPTY EMPTY 1h 3m 
> COLD COLD 1h 4m
El programa de la máquina de Coca-Cola se utilizó durante más de una década e incluso fue re-escrito para Unix VAX. El fin de la máquina llegó cuando Coca-Cola cambió el formato de las botellas retornables por otro menos glamuroso y además no retornable. La vieja máquina no aceptaba este nuevo formato y esto sumado a los cambios realizados por la marca en los diferentes sabores, hicieron que nadie del departamento tuviera ganas de nuevo de cablearla y conectarla de nuevo a la red, al menos por ahora.

De todas formas, la máquina de Coca-Cola estuvo conectada a Arpanet hasta finales de los años 80 y luego, tanto ella como el servidor del departamento, fueron reemplazados. En 1992, los ingenieros decidieron conectar otra vez esta nueva máquina a Internet, pero además, también aprovecharon para conectar no sólo la nueva máquina, sino también una máquina de M&Ms que se encontraba justo al lado de la de refrescos.

Figura 5: Foto no confirmada de una máquina de mediados de los 90
junto a otra de golosinas, en teoría, conectadas a Internet

En ambos, casos la técnica de conexión que usaron fue totalmente distinta, mucho más actualizada a la que originalmente fue usada con la máquina de Coca-Cola. Esta vez no eran micro-interruptores, utilizaban sensores ópticos y la interfaz de conexión estaba conectada a un IBM PC-XT con el nombre COKE.LABS.CS.CMU.EDU con la dirección IP 128.2.209.43. Más adelante incluso llegó a tener su página web en la que se podía consultar incluso los horarios de carga (eso sí, de 2007):

Figura 6: Página web de la máquina de Coca-Cola

La idea gusto mucho, tanto que incluso otras universidades se unieron al proyecto. Este es un listado de algunas de ellas que siguieron la moda de conectar las máquinas de refrescos (la de Rochester incluso mostraba un gráfico del estado de la máquina):
>* Carnegie Mellon University coke and M&M machine (Fixed!)

>* Cocacola and Pepsi at Columbia University

>* University of Wisconsin (appears to be just a maintennance account, not a > real coke-machine-on-the-net)

>* UC Berkeley

>* Rochester Institute of Technology, Computer Science House

> * Soda machine status

> * stock details

> * graphical display and coke temperatures

>* University of Western Australia

>* Coffee machine (Cambridge)
Por lo tanto, creemos que estas evidencias son suficientes para demostrar que una máquina de refrescos fue el primer dispositivo de lo que hoy se conoce como el Internet de las Cosas o Internet of Things (IoT).

Autores:

Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

Rafael Troncoso (@tuxotron) es DevOps Tech Lead en USCIS/DHS, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

2 comentarios:

Santux dijo...

Amo este tipo de cosas

Federico Jose Femia dijo...

Muy bueno

Entrada destacada

Mi conferencia en X1Red+Segura en vídeo: Datos en tiempos de Cambridge Analytica

Ayer sábado tuve la oportunidad de participar una vez en las jornadas de X1Red+Segura que se organizaron en las instalaciones de la Unive...

Entradas populares