Data Models (Modelos de datos) en Onesait Platform
Interfaz de usuario: 6.1.0-Warcraft
Introducción
En la Plataforma, la entidad del modelo de datos la denominamos símplemente como Entidad, aunque inicialmente la llamábamos «Ontología». Estas Entidades van a permitir modelar desde conceptos sencillos como una medida o un registro, a conceptos complejos como una organización. Estas Entidades se definen en el formato JSON + JSON-Schema.
Origen de las Ontologías
El concepto de Ontología -actualmente Entidades, recordamos- prviene del proyecto europeo I+D SOFIA del que se origina la plataforma Sofia2, que usaba como modelos de datos Ontologías RDF/OWL, conforme los principios de la web semántica.
Cuando en el año 2013 Indra considera evolucionar SOFIA para crear una plataforma empresarial (Sofia2), que pueda usarse en proyectos productivos y complejos, se realiza un análisis y pruebas empíricas sobre Sofia2, y se concluye que la tecnología subyacente a las ontologías tradicionales modeladas en OWL no escala conforme a las necesidades de los proyectos IoT y Big Data.
Tras considerar diversas opciones, se consideró que JSON + JSON Schema era la mejor propuesta de presente y futuro.
Un poco de historia: modelo de datos de Sofia2
Para conocer mejor cómo funcionan los modelos de datos en Onesait Platform, es interesante echar un ojo atrás y analizar el modelo de datos que había previamente en la plataforma Sofia2, en donde aunque el concepto clave del modelo de datos era la Ontología, existían a su vez otros conceptos importantes a considerar, como el de «Plantilla» y la de «Instancia de la Ontología».
Veamos en qué consisten:
| Modelo de datos o Plantilla | Ontología | Instancia de Ontología |
---|---|---|---|
Representa | Plantilla, bien creada por un Administrador, o bien creada conforme a un estándar concreto (como FIWARE Data Model), que permite que las Ontologías se creen. | Entidad que representa un concepto sobre el que trabaja la Plataforma. | Es un registro concreto de la entidad que define la Ontología. |
Ejemplos | Plantilla definiendo los atributos de calidad medioambiental ,conforme el FIWARE Data Model. |
|
|
Formatos | JSON-Schema | JSON-Schema | JSON |
¿Dónde están? | No se almacena, es una definición. | Independiente del motor de persistencia elegido: en un modelo relacional representan una tabla, en una BD NoSQL tipo documental una colección de documentos, etc. | Independiente del motor de persistencia elegido: en un modelo relacional representan un registro, en una BD NoSQL tipo documental un documento concreto, etc. |
Modelos de datos en el Control Panel de Onesait Platform
Nuestro actual modelo de datos es una evolución natural del modelo de Sofia2, en el que conservamos los conceptos como la plantilla o las instancias. En este caso, el concepto de modelo de datos representa una plantilla sobre la que luego podrán crearse las Entidades.
Es por ello que la creación de las plantillas queda restringido a aquellos usuarios que tengan un rol de tipo «Administrador».
Para visualizar los disintos modelos de datos disponibles, desde el Control Panel de la Plataforma navegaremos hasta el menú Administración > Gestión de Plantillas (Data Models):
Se nos mostrará entonces un listado con los modelos de datos existentes, en donde podremos ver su nombre, el propietario, el tipo de plantilla, las etiquetas de categorización y las fechas de creación y edición.
Para analizar una de las plantillas de modelos de datos, únicamente tendremos que pulsar en el botón de «Mostrar» (icono con el ojo) situado en la parte derecha de cada plantilla.
Se mostrará entonces la información general de la plantilla del modelo de datos, así como el esquema JSON:
Entidades y modelos de datos
Las Entidades son el concepto clave del modelo de datos, así como también del funcionamiento completo de la Plataforma, ya que sobre estas se desencadenan el resto de procesos, como por ejemplo:
Reglas: las cuales se aplican ante la llegada de una instancia de Entidad (o bien planificadas), y permite acceder a los atributos de las Entidades para actuar en base a esta.
Dashboards: los paneles de mando se construyen, bien representando en tiempo real las instancias que van llegando a la Plataforma, o bien a través de una consulta que se realice sobre estas (DataSources, API REST, etc.).
Analítica: los modelos de Machine Learning típicamente se realizan sobre las Entidades almacenadas en la infraestructura Big Data de la Plataforma (BDH)
Las Entidades pueden ser creadas por usuarios que tengan roles de «Desarrollador» o «Analista», así como los de tipo «Administrador». A la hora de crear estas Entidades, contamos con diversos mecanismos que nos van a facilitar el trabajo y que os explicamos a continuación:
Instancias de Entidad
Como ya se ha indicado, una instancia de Entidad representa un momento y posición concreto dentro de una Entidad.
La Plataforma ofrece diversas herramientas para acceder a las instancias, siendo la herramienta de consultas la más usadas por los desarrolladores, ya que permite a través de un asistente generar consultas rápidamente sobre las Entidades, tanto en SQL como en nativo, obteniendo el resultado de la consulta en formato JSON, el cual podremos descargar en nuestro local tanto en JSON como en formato CSV.
Otra opción que disponemos para ver el contenido de una Entidad es mediante las herramientas de CRUD de Entidades, en donde visualizaremos los registros existentes:
Desde el CRUD de Entidades vamos a poder editar los registros de manera sencilla. Esto no es práctico cuando se tienen miles de registros, pero para una corrección rápida resulta muy útil.