¿En qué medida se utilizan las bases de datos en sistemas embebidos?

Depende de lo que quiera decir con un sistema integrado. A veces las personas piensan, por ejemplo, en un dispositivo Android o iOS como un sistema integrado. En esos entornos, SQLite es bastante común. Pero si quisieras, ¡podrías ejecutar Oracle o una pila completa de Hadoop en dicho dispositivo! Tenga en cuenta que Android es Linux y Java, e iOS es BSD unix, y muchos de estos dispositivos tienen cientos de gigabytes de almacenamiento e incluso gigabytes de RAM, más como una computadora portátil o incluso un nodo de servidor montado en bastidor que como un automóvil, una alarma antirrobo o un marcapasos.

Ahora, si está hablando de dispositivos profundamente integrados, ejecutando un RTOS, o en el metal desnudo, las bases de datos son bastante poco comunes. en qué mundo, incluso 16K de RAM o 64K de flash es un verdadero lujo, y cosas como las bases de datos generalmente usan memoria dinámica y otras prácticas riesgosas que a menudo se consideran demasiado poco confiables para estas aplicaciones: por ejemplo, la falta de memoria dinámica significa que no hay pérdidas de memoria. A menudo, ese tipo de dispositivo transferirá cualquier requisito de funcionalidad similar a la de una base de datos a un servidor conectado.

Pero cada vez más bastiones de código incrustado están cayendo en la avalancha de sistemas operativos de estilo de escritorio debido a las demandas de las pilas de redes y las GUI. mi auto, mi entrenador elíptico e incluso el monitor de mi compañero se estrellaron y requirieron reiniciar recientemente, y se alega que al menos un incidente ocurrió cuando un barco militar quedó paralizado por un error de Windows.

Se usan mucho, especialmente a medida que se conectan más dispositivos embebidos en red. Una ironía de los dispositivos integrados en red es que cuanto más se conectan en red, más necesitan almacenamiento en el dispositivo y almacenamiento en caché, además de estar interesados ​​en los datos de otros dispositivos.

De hecho, trabajé en un motor de base de datos de dispositivos pequeños, DeviceSQL, que es arquitectónicamente similar a SQLite, pero está diseñado para dispositivos muy pequeños.

Las bases de datos se usan en dispositivos integrados para muchos de los mismos propósitos que se usan en sistemas más grandes:

  • Administrar almacenes de datos relativamente complejos.
  • Almacenamiento en caché (particularmente importante en sistemas de dispositivos pequeños).
  • Recuperación, tolerancia a fallas e integridad transaccional. Estos son sorprendentemente importantes en los sistemas embebidos, que tienden a estar en entornos menos permisivos que los mundos más grandes de estilo de TI con redundancia y copias de seguridad.

En los sistemas embebidos, hay sistemas mini-relacionales (DeviceSQL es un administrador de datos relacionales que puede ejecutarse en sistemas de 16 bits), administradores de datos de estilo NoSQL (Berkeley DB y muchos otros) y numerosas soluciones “caseras”.

En términos de sistemas embebidos en red, tiene arreglos cliente-servidor (que es lo que la mayoría de la gente piensa en estos sistemas), y el intercambio de datos entre pares. Peer-to-peer generalmente se realiza con consultas de estilo REST que son atendidas directamente por la aplicación: la mayoría de los entornos integrados no pueden permitirse los servidores web solo para atender llamadas de interfaz. Cliente-servidor, el arreglo típico para cosas como aplicaciones de teléfonos inteligentes, generalmente se realiza con una API de datos intermedios que se usa para dialogar entre la aplicación y el servidor, y la API se traduce en llamadas al almacén de datos del servidor mediante una capa de diálogo .

El mundo de los sistemas integrados varía drásticamente, desde pequeños dispositivos utilizados para sensores integrados (todavía se utilizan procesadores de 4 bits en estos mundos) hasta sistemas bastante potentes que son tan potentes como las computadoras de uso general, pero se utilizan para un propósito especial en particular y no es necesario admitir el uso de “propósito general” o los sistemas operativos de propósito general. Todos estos tienen necesidades de gestión de datos.

¿Se refiere a una base de datos integrada (integrada) en una aplicación, o integrada en un dispositivo que contiene software incorporado?

No tengo una encuesta de la industria frente a mí ni nada, pero algunas aplicaciones necesitan esa funcionalidad y una base de datos como SQLite puede integrarse con bastante facilidad.

Lo mismo es cierto para dispositivos con software incorporado; se necesitaría un dispositivo de almacenamiento persistente de lectura / escritura adecuado. Deben considerarse operaciones como realizar copias de seguridad.

More Interesting

Después de hacer proyectos en controladores de 8 bits, ¿qué tema debo seguir para mejorar mis habilidades integradas?

¿Por qué los programadores integrados a menudo pagan menos que los desarrolladores web?

Estoy persiguiendo BTech en ingeniería electrónica y de comunicación. Estoy buscando el mejor instituto para hacer entrenamiento de verano en sistemas integrados. ¿Cuál es el mejor instituto en Delhi para la capacitación en sistemas integrados?

¿Puedo codificar en Python en lugar de C / C ++ para un área de investigación de sistemas integrados?

¿Cuál es su opinión sobre la generación del procesador x86 (486)? ¿Se puede usar como un dispositivo IoT y competir en un microcontrolador de segmento pequeño?

¿La desinstalación de una impresora eliminará el firmware que se descargó?

¿Qué tipo de entorno habrá en las empresas relacionadas con los sistemas integrados?

¿Qué debo aprender para sobresalir en la programación integrada?

Cómo usar protocolos SPI con 2 pines solo en lugar de 4

¿Cómo escribir una aplicación en Embedded C?

Aprendí C, microcontroladores y C ++. ¿Qué debo hacer después de trabajar en sistemas integrados? ¿Debo aprender Java?

Cómo aprender C incrustado sin ir a ningún instituto de capacitación

¿Alguien podría sugerirme algún buen mini proyecto en el microcontrolador PIC 18?

Cómo crear mi propio software de grabación de microcontroladores como Flash Magic o la utilidad flash de Philips

¿Cómo podemos programar los microcontroladores PIC usando una placa Arduino?