Modelo de datos unificados

En AggreGate, cada dispositivo u objeto del sistema se representa como un llamado contexto dentro de una estructura jerárquica de contextos. Cada contexto incluye un conjunto de variables, funciones y eventos. Un contexto también contiene metadatos que describen los elementos de datos disponibles en él. Esta tecnología patentada se llama normalización de objetos.

Modelo de datos unificados en AggreGate

Algunos paralelos existen con la programación orientada a objetos:

  • Las variables admiten operaciones de lectura y escritura
  • Las funciones se pueden ejecutar pasando valores de entrada y recopilando la salida
  • Es posible suscribirse a eventos y recibir sus instancias de forma asincrónica

Árbol de contexto

Todos los contextos de un Servidor AggreGate habitan en una estructura jerárquica llamada árbol de contexto. En este árbol, cada contexto tiene un nombre, es decir, su ID único dentro de su jerarquía y una ruta/path, que es la ID única del contexto dentro del servidor.

Dado que todos los contextos implementan la interfaz unificada, pueden interoperar dentro del árbol de contexto del servidor, ofreciendo un nivel de flexibilidad sin precedentes.

La arquitectura distribuida amplía la interoperación en toda la red, permitiendo que diferentes servidores intercambien partes de sus árboles de contexto.

Arbol de contexto de un Servidor AggreGate
Variable lectura/escritura Llamada de funcion Generacion de evento

Tablas de datos

Para aún más unificación, cada parte de los datos de contexto dentro de AggreGate comparte un sólo tipo de datos llamado tabla de datos:

  • Los valores de las variables de contexto son tablas de datos
  • Cada función de contexto obtiene una tabla de datos de entrada y devuelve una tabla de datos de salida
  • Cada instancia del evento de contexto tiene una tabla de datos asociados con datos específicos del evento

Las tablas son lo suficientemente flexibles como para contener cualquier tipo de datos:

  • Los valores escalares (números, cadenas, fechas, etc.) están representados por tablas unicelulares
  • Las matrices están representadas por tablas de columna única
  • Las estructuras están representadas por tablas de una sola fila
  • Los flujos se manejan como tablas especiales de longitud ilimitada
  • Y, finalmente, los datos tabulares se almacenan "tal cual"

Cada tabla de datos tiene un formato específico que describe campos de tabla y propiedades generales.

Las celdas de las tablas de datos pueden contener tablas anidadas, lo que permite utilizar una sola tabla de nivel superior para representar un objeto de cualquier complejidad.

Tabla de datos
Procedimientos de UI

Acciones

Los contextos del servidor también se definen como acciones que representan operaciones ejecutables por humanos. Existe una diferencia clave entre las acciones de contexto y las funciones de contexto: a diferencia de las funciones, las acciones pueden interactuar con un usuario generando algún resultado o solicitando la entrada de datos.

Las acciones interactúan con el usuario utilizando los procedimientos de UI. Cada acción es una combinación de procedimientos de interfaz de usuario y operaciones de datos del lado del servidor.

Normalización del dispositivo

Los controladores y agentes crean una presentación normalizada de varios dispositivos de hardware y fuentes de datos. En este caso, las variables son configuraciones internas del dispositivo, las funciones son operaciones que el dispositivo puede realizar y los eventos son notificaciones que el dispositivo puede enviar para informar al servidor de los cambios detectados en las condiciones de operación internas o externas.

Prácticamente cualquier dispositivo u objeto del sistema se puede describir como un conjunto de variables, funciones y eventos. Por ejemplo, un tanque de agua inteligente controlado remotamente puede tener una variable de "nivel de agua" para reflejar la cantidad actual de agua en el tanque y "activar / desactivar la válvula" para controlar la válvula que deja entrar el agua al tanque. Este tanque de agua inteligente también puede generar una serie de eventos, como "casi vacío", "casi lleno" y "desbordamiento".

Presentacion normalizada de los dispositivos y fuentes de datos