El otro día volvía de Alicante tras realizar la travesía a nado Sta. Faz, y me encontré con que el tren tenía pantallas individuales situadas en el reposacabezas del asiento siguiente.
Como buen informático, me puse a curiosear a ver qué ofrecía aquello. Estaba todo vacío menos las películas, de entre las que escogí una comedia. Emparejé mis auriculares inalámbricos (una de las comodidades del sistema, la otra era un enchufe USB para cargar el móvil) y me puse a disfrutarla.
Todo fue bien... hasta que pasaron 10', dejamos las inmediaciones de Madrid, en donde apareció un círculo que daba vueltas. Pensé que se habría quedado sin cobertura momentáneamente, así que apliqué la tercera ley de la ingeniería informática...
# | Leyes de la ingeniería informática |
---|---|
1 | Si funciona, no lo toques... |
2 | Si funciona, no lo toques, ¡pero ni de coña! |
3 | ¿Has probado a apagarlo, y volver a encenderlo? |
...es decir, pulsé en el botón de atrás
, y volví a seleccionar la misma película. Nada, ningún éxito. Y después salí de la sección de películas, y escogí Mapa, que debería mostrarme la posición del tren dentro del país. La pantalla del vagón la mostraba perfectamente. Pero al entrar en aquella sección apareció el fatídico mensaje de error: Net ERROR
.
Al cabo de cierto tiempo pasó una auxiliar de la compañía, y le pregunté por qué la película no funcionaba (en estos casos oculto lo mejor que puedo mi condición de informático), y me respondió que no les habían cargado las películas. A mi vez respondí con extrañeza que estaba viendo una, y ella repuso con amabilidad y empatía que "tocaría algún botón, y a ver que pasa".
Pues no pasó nada. Lástima.
Este fastidio me puso a pensar en lo mal que se diseñan y se escalan los sistemas informáticos hoy en día. ¿Qué es lo que tiene que plantearse un ingeniero informático para diseñar un sistema?
¿Es apropiado automatizar este proceso?
Lo primero que debemos plantearnos es si una solución informática es lo más adecuado; ¿aporta algo sobre la solución existente? Por ejemplo, pensemos en un autobús donde se quiere reproducir una película en una pantalla central. Será más sencillo un reproductor de vídeo que un ordenador, que no aportaría nada más que aumentar las posibilidades de fallo.
Exactamente igual que si queremos reproducir un vídeo de promoción en nuestro escaparate: un reproductor de vídeo será más confiable y simple que un ordenador, proporcionando la misma funcionalidad.
¿A qué escala debe plantearse el proyecto?
Es aquí donde veo la mayoría de problemas. Con el abaratamiento de los PC, te encuentras muchas veces con que aquellos terminales que deberían ser simples autómatas programables, son PC completos, y peor todavía, con Windows. Windows está pensado como Sistema Operativo de consumo para usuarios finales, no como un Sistema Operativo para sistemas empotrados.
Así, los PC han sustituido a los autómatas programables, una especie de microordenador que se programa en un ensamblador sencillo. Tiene entradas y salidas digitales y anlógicas, y múltiples periféricos conectables (lectores de códigos de barras, por ejemplo).
Lo más extendido hoy en día que se parece a un autómata programable es una placa Arduino, aunque estas son algo más complejas, pero mucho más comunes.
Imaginemos un aparcamiento subterráneo. Anteriormente, lo que tenías en la barrera era un autómata programable, que subía y bajaba la barrera con esta conectada a una de sus salidas. Hoy en día, te encuentras con que es un pequeño ordenador con Windows. ¿Que cómo lo sé? Pues porque ocasionalmente aparecen las famosas actualizaciones con eso de que o se actualiza o se muere.
Un PC, de por sí, no tiene salidas para poder levantar una barrera, probablemente habrá que conectar un conversor USB/Serie. El PC estará conectado mediante una red al servidor central, lo que presenta múltiples vías de ataque. Muchas desventajas.
Entre las ventajas, tenemos un desarrollo sencillo, ya que la máquina de desarrollo y la de producción serán similares.
Esto se aplica también a esas pantallas que podemos ver en cualquier estación de autobuses o trenes; cada pantalla parece estar gestionada por un pequeño PC, cuando solo sería necesario tirar cable de vídeo desde el servidor.
En cualquier caso, elijamos la solución que elijamos, siempre podemos realizar una configuración más exhaustiva. Para este tipo de terminales, desactivar las notificaciones y planificar un horario de madrugada para la instalación de actualizaciones sería mucho más adecuado que dejarlo con la configuración de stock.
Pero entonces... ¿cómo funcionan las pantallas de RENFE?
La peor posibilidad es que cada pantalla se conecte mediante su conexión de red por tarjeta SIM 4G a la central, y entonces comenzar el streaming. Uno por cada asiento. Esto me lo planteo porque mi pantalla era incapaz de mostrar el mapa, y en cambio en la pantalla general del vagón se mostraba perfectamente.
Me gustaría pensar, en su lugar, que se conectan a un servidor por vagón o por tren, y que este, mediante una conexión de red por tarjeta SIM 4G a la central, proporciona las películas a cada asiento.
¿Es esta solución apropiada? Si no hay cobertura en todo el recorrido de la vía (y se ve que no la hay), entonces no. Sería más apropiado cargar las películas mediante un pendrive o cualquier otro medio de almacenamiento en el servidor, y punto.
Top comments (4)
Esa tercera ley funciona para todo :)
¿Sabes que la popularización de esa frase la hicieron los de los IT Crowd (los informáticos), no?
imdb.com/es-es/title/tt0487831/
Nooo...No tenia ni idea de esa serie :)
¡¡Qué!! ¡Tienes que verla! ¡Pero ya!