Articulo de referencia

Poliedros (software)

{{Citation | url = http://eecatalog.com/embeddedlinux/2012/10/11/polyhedra-lite-in-memory-relational-database-system-freeware-available-now-from-enea/ | series = Press Release |...

Polyhedra es una familia de sistemas de gestión de bases de datos relacionales ofrecidos por ENEA AB , una empresa sueca . La versión original de Polyhedra (ahora conocida como Polyhedra IMDB) era un sistema de gestión de bases de datos en memoria que podía utilizarse en configuraciones de alta disponibilidad ; en 2006 se introdujo Polyhedra Flash DBMS para permitir el almacenamiento de bases de datos en memoria flash . [ 2 ] Todas las versiones emplean el modelo cliente-servidor para garantizar que los datos estén protegidos de software de aplicación malicioso, y utilizan las mismas interfaces SQL , ODBC y JDBC de tipo 4. Polyhedra está dirigido principalmente al uso embebido por fabricantes de equipos originales (OEM) , y entre los clientes de renombre se incluyen Ericsson , ABB , Emerson , Lockheed Martin , United Utilities y Siemens AG .

Compañía

El desarrollo de Polyhedra fue iniciado en 1991 por Perihelion Technology Ltd, una subsidiaria de Perihelion Software Ltd (PSL); inicialmente, el proyecto tenía el nombre provisional de "Perihelion Application Toolkit", pero pronto se renombró como Polyhedra (utilizando una marca registrada sobrante de otro proyecto de PSL). En 1994, la gerencia adquirió PTL y el nombre de la empresa cambió a Polyhedra plc para coincidir con el nombre del producto. Polyhedra plc fue a su vez adquirida por Enea AB en 2001. [ 3 ] [ 4 ]

Características

Tim King, fundador de Perihelion Software Ltd , desarrolló un sistema de gestión de bases de datos relacionales para datos históricos como parte de su trabajo de doctorado; [ 5 ] Dave Stoneham, quien fundó PTL, había desarrollado previamente un sistema SCADA . Basándose en estas experiencias, Polyhedra se desarrolló originalmente "para llevar los beneficios de la tecnología relacional al mercado de sistemas embebidos". Para ello, debía ocupar poco espacio, ser muy rápido... y evitar la necesidad de sondeo , que perjudica gravemente el rendimiento. En consecuencia, se diseñó desde el principio para:

  • mantener la copia de trabajo de los datos en memoria (aunque ahora existe una variante que guarda los datos en un archivo basado en memoria flash );
  • Utilizar una arquitectura cliente-servidor para proteger los datos de la corrupción causada por código de aplicación malicioso;
  • Disponer de un mecanismo de "consulta activa" para actualizar las aplicaciones cliente cuando se produzcan cambios relevantes en la base de datos;
  • Tienen un modelo de procesamiento muy simple donde una transacción es un cambio de esquema, una consulta o una solicitud de un conjunto de inserciones, actualizaciones y/o eliminaciones; dichas alteraciones pueden expresarse mediante sentencias SQL o actualizando a través de las consultas activas con (junto con las consultas activas) un mecanismo de concurrencia optimista para manejar actualizaciones conflictivas;
  • Cuenta con un mecanismo de herencia de tablas que, combinado con disparadores de base de datos (mediante el lenguaje CL, véase más abajo), permite al diseñador programar la base de datos de forma orientada a objetos. La herencia de tablas también evita o reduce la necesidad de tablas suplementarias cuya clave primaria sea una clave foránea de otra tabla, lo que simplifica muchas consultas y actualizaciones.
  • Disponemos de un módulo Historian [ 6 ] para permitir la captura, el almacenamiento, el archivo y la consulta de grandes volúmenes de datos de series temporales de forma eficiente.

Polyhedra IMDB logra la persistencia de datos mediante el uso de instantáneas y registro de transacciones ; Polyhedra Flash DBMS utiliza paginación en la sombra , con dos niveles de recursión. Además, Polyhedra puede utilizarse en configuraciones de reserva en caliente para una mayor disponibilidad . El modelo transaccional utilizado por todos los productos Polyhedra garantiza atomicidad, consistencia y aislamiento (según lo definen las propiedades ACID ); la durabilidad se aplica en Polyhedra Flash DBMS, mientras que en Polyhedra IMDB los clientes pueden elegir el modelo de durabilidad al emitir sus transacciones.

El sistema de gestión de bases de datos Polyhedra se diferencia fundamentalmente de otros sistemas relacionales debido a su comportamiento activo. Esto se logra mediante dos mecanismos: las consultas activas y el lenguaje de control (LC). Una consulta activa se asemeja a una consulta normal en la que se recuperan o escriben datos, pero en este caso permanece en la base de datos hasta que se cancela explícitamente. Cuando se produce un cambio en los datos que modifica el resultado de la consulta, se notifica a la aplicación. El LC, un lenguaje de script totalmente orientado a objetos que admite encapsulación, ocultación de información y herencia, permite determinar el comportamiento de los datos en la base de datos. Esto significa que se pueden asociar métodos, tanto privados como públicos, a los datos, realizando operaciones sobre ellos sin la intervención de la aplicación. [ 7 ]

Polyhedra no es un sistema de gestión de bases de datos de propósito general, ya que su modelo transaccional restringido no satisface todas las necesidades, y su modelo de tolerancia a fallos se basa en la configuración en espera activa (para minimizar los costes de hardware) en lugar de la agrupación en clústeres (que es mejor para la distribución de carga). Sin embargo, sus limitaciones se convierten en ventajas en entornos embebidos, donde en una aplicación desplegada se prioriza el rendimiento y el coste, en lugar de gestionar patrones de uso que varían continuamente.

La mayoría de los productos de Polyhedra están disponibles para su compra bajo una licencia propietaria , pero en 2012 Enea lanzó Polyhedra Lite bajo una licencia de software libre. [ 1 ]

Historial de lanzamientos

  • En 1991 comenzó el desarrollo.
  • 1993 Polyhedra 1.0 : primer lanzamiento comercial de un sistema de gestión de bases de datos relacionales (RDBMS) en memoria .
  • 1995. Adaptado a Windows y Linux .
  • 1996 Polyhedra 2.0 : se añadieron configuraciones de reserva en caliente para su uso en aplicaciones que requieren alta disponibilidad . Primera adaptación a un RTOS ( pSOS ).
  • 1997 Polyhedra 3.0 : nuevo motor de almacenamiento de datos en memoria, para una mayor eficiencia en espacio y tiempo.
  • 1999 Polyhedra 3.1 : añade nuevos tipos de datos, API ODBC . Puerto OSE .
  • Polyhedra 4.0 (2001) : compatibilidad con JDBC , tipo de índice adicional, réplicas de solo lectura, multihilo.
  • Polyhedra 4.1 (2002 ) : se rediseñó la comunicación cliente-servidor para lograr mejoras sustanciales en el rendimiento, especialmente para las aplicaciones cliente que utilizan la API ODBC (considerada ahora la API "nativa" para todas las plataformas).
  • 2003 Polyhedra 5.0 : UNICODE , migración de esquema ( SQL 'ALTER TABLE' ).
  • 2004 Polyhedra 6.0 : Se reintrodujo la compatibilidad con 64 bits para Linux y Solaris . (Anteriormente había estado disponible en DEC Alpha bajo Digital UNIX hasta que el uso de esa plataforma prácticamente desapareció). Posteriormente, Polyhedra64 se adaptó a Windows x64 .
  • En 2006 se presentó Polyhedra Flash DBMS , basado en una bifurcación del código fuente de Polyhedra IMDB.
  • Polyhedra 7.0 (2007 ): Se unificaron las bases de código de Polyhedra IMDB y Polyhedra Flash DBMS para facilitar el soporte y lograr una mayor compatibilidad de funciones. Además, se mejoró la gestión de recursos y el procesamiento multihilo.
  • Polyhedra 8.0 (2008 ) : Polyhedra Flash DBMS ahora admite configuraciones de reserva en caliente para su uso en aplicaciones que requieren alta disponibilidad , de forma similar a Polyhedra IMDB. Polyhedra 8.1 añadió compatibilidad con Linux/MIPS, la capacidad de monitorizar consultas activas y mejoras en el historiador.
  • Polyhedra 8.2 (2009 ) : Controladores ODBC de Linux e IPv6
  • 2010
  • Polyhedra 8.3 : Algunas mejoras en SQL y salida de datos en tiempo real desde el historiador.
  • Polyhedra 8.4 : mejoras de rendimiento
  • Polyhedra 8.5 (2011) : mejor integración con herramientas de terceros y rendimiento mejorado en Windows. Los servidores réplica se pueden usar en una configuración de distribución para una mejor escalabilidad.
  • 2012 Polyhedra 8.6 : tipo de datos enteros de 64 bits. Polyhedra Lite introdujo: [ 1 ] una versión gratuita y de funcionalidad reducida de Polyhedra32 IMDB, disponible para Windows y para Linux en x86 y Raspberry Pi . [ 8 ]
  • 2013
  • Polyhedra 8.9 (2014 ) : Mejoras en SQL ( GROUP BY y HAVING , DISTINCT, uniones externas ), mejoras de seguridad y copias de seguridad en línea para datos de series temporales.
  • Polyhedra 9.0 (2015) : replicación parcial de bases de datos de solo lectura mediante un mecanismo de suscripción, un proveedor de datos ADO.NET para Polyhedra y mejoras en la API de devolución de llamada propietaria que pueden generar mejoras significativas en el rendimiento.
  • Polyhedra 9.1 (2016 ) : suscripción bidireccional y replicación parcial de tablas, monitorización interna de recursos y un módulo Python DB-API con extensiones para funciones específicas de Polyhedra, como consultas activas.
  • 2017
  • Polyhedra 9.2 : reducción del uso de memoria, API RDI (Remove Device Interface), OPC UA RDI y comando SQL EXPLAIN.
  • Polyhedra 9.3 : replicación iniciada por el servidor.
  • Polyhedra 9.4 (2018 ): API de base de datos integrada e índices limitados basados ​​en funciones SQL.
  • Polyhedra 9.5 (2019 ): Modo de espera de respaldo, interfaz MQTT e interfaz Grafana.
  • Polyhedra 9.6 (2020) : Mejoras en la API REST, el servidor WebSocket y la API de IMDB.
  • Polyhedra 9.7 (2021) : Almacenamiento en caché de BLOB de la API de IMDB, compatibilidad con múltiples bases de datos.
  • Polyhedra 9.8 (2022 ) : Versión de mantenimiento, actualizaciones para las versiones de sistema operativo compatibles.
  • Polyhedra 9.9 (2023 ) : Versión de mantenimiento, actualizaciones para las versiones de sistema operativo compatibles.
  • Polyhedra 9.10 (2024 ) : Versión de mantenimiento, actualizaciones para las versiones de sistema operativo compatibles.
  • Polyhedra 9.11 (2025 ): Compatibilidad con la comunicación entre procesos Linx en modo usuario, actualizaciones para versiones de SO compatibles.

Referencias

  1. 1 2 3 Polyhedra® Lite, sistema de base de datos relacional en memoria, software gratuito disponible ahora en Enea , comunicado de prensa, EECatalog.
  2. Enea anuncia un sistema de gestión de bases de datos relacionales basado en Flash. Archivado el 17 de mayo de 2008 en Wayback Machine.
  3. Business Wire: Enea adquiere Polyhedra
  4. thefreelibrary.com: Enea adquiere la empresa británica Polyhedra: fortalece OSE con tecnología de bases de datos.
  5. Tim King – Página principal
  6. Manejo de datos de series temporales en Polyhedra IMDB , Libro Blanco, Enea.
  7. ^ Aleksandra Tešanović, Dag Nyström, Jörgen Hansson, Christer Norström: Bases de datos integradas para sistemas integrados en tiempo real: un enfoque basado en componentes (2002)
  8. Base de datos relacional gratuita en tiempo real para la Raspberry Pi , foro de Raspberry Pi.
  9. Los sistemas de gestión de bases de datos integrados incorporan bloqueo y eliminaciones en cascada , LinuxGizmos.com.
  10. Enea AB: Enea protege la comunicación entre el servidor de base de datos y las aplicaciones cliente , Noticias regulatorias, Noticias de SPi World.
  • Sitio web oficial