Sofia2 IoT Platform vs ThingWorx IoT Platform. Primeros pasos (I. Registro y Login. Modelado de datos)

sofia2vsThingWorx

 

Anteriormente hemos realizado comparativas entre diferentes plataformas IoT:

El objetivo de este post es realizar una comparativa de uso de dos plataformas IoT como son Sofia2 y ThingWorx. Para ello, realizaremos un hands on siguiendo un flujo sencillo IoT en el que simularemos un edificio que dispone de dispositivos para la lectura de consumo energético y temperatura. Para terminar, crearemos un cuadro de mando para visualizar esta información.

Con el fin de conseguir una mejor comprensión de esta comparativa, estructuraremos los pasos a seguir, comunes a las dos plataformas, en 4 posts:

  1. Registro y Login. Modelado de datos
  2. Conecta tu dispositivo
  3. Simular datos de entrada
  4. Crear Aplicaciones

 

Hoy empezamos con la primera parte. Manos a la obra!

 

Registro y Login

 

Sofia2 IoT Platform

 

Comenzaremos por acceder al Panel de Control de Sofia2. Si estamos en la Plataforma de Experimentación y no tenemos usuario, pulsaremos en Crear una cuenta nueva

registoSofia2

 

Una vez hecho el LOGIN si nuestro rol es USUARIO: RolUsuario    solicitaremos el pasoacc para poder crear Ontologías.

PasoAColaborador

 

Una gran ventaja que ofrece Sofia2 Iot Platform es que podremos usar el entorno de experimentación de forma gratuita sin límite de tiempo.

 

 

ThingWorx Iot Platform

 

Para crear una cuenta en esta plataforma debemos ir a su web y pulsar en Sign Up y rellenar su formulario.

SignUp

 

Recibiremos un email donde tendremos que pinchar en el enlace para logarnos y, una vez logados pincharemos en la pestaña superior derecha:

thingg

 

Pulsaremos en Create Foundation Server, y en unos minutos, el servidor se creará. Posteriormente, tendremos que pulsar en Launch Foundation Server para lanzar el servidor y poder usar ThingWorx.

 

Este entorno lo tendremos disponible de forma gratuita durante 30 días.

thing30dias

 

 

Modelado de datos

 

Sofia2 IoT Platform

 

Creando Ontologías

 

La plataforma Sofia2 funciona en torno a los datos enviados por los dispositivos o aplicaciones conectados. Cualquier evento, medida, comando… se gestiona en la plataforma como una entidad, que es almacenada, puede ser consultada y además puede desencadenar ciertas acciones (notificaciones, ejecución de reglas/flujos…).

 

La Plataforma sofia2 gestiona dos tipos de entidades:

 

  • Assets. Un asset es todo elemento (físico o virtual) capaz de generar o consumir información de carácter sensorial y gestionarla a través de la Plataforma Sofia2
  • Ontologías. Los assets generan información y dicha información se modela por medio de ontologías en la Plataforma

 

Una Ontología representa el Modelo de Dominio que maneja un ThinKP: Un Dispositivo (en terminología Sofia2 hablamos de KP: Knowledge Processor o de ThinKP por la unión de Thing + KP) representa a cada uno de los elementos que interactúan con la plataforma, bien publicando, o bien consumiendo información. Un ThinKP puede representar desde un dispositivo sencillo (un Arduino o un iBeacon) a un Gateway (una Raspberry) o un Sistema Empresarial (Backend Java). Un ThinKP puede manejar una o varias Ontologías.

 

Las Ontologías se representan en JSON y pueden representar un modelo básico (como si fuera una Tabla) o un modelo complejo con relaciones (como si tuviésemos un conjunto de tablas relacionadas). Cuando un Dispositivo (ThinKP) envía una medida hablamos de Instance (Instancia de Ontología). Las Ontologías pueden crearse de diversas formas: visualmente en un diagrama de clases UML, a través de un esquema JSON o XML, campo a campo o a partir de un CSV/XLS.

 

Por lo tanto, una Ontología tiene los siguientes propósitos:

 

  • Definir semánticamente el tipo de datos, con sus atributos y restricciones.
  • Definir el soporte físico (Colecciones, Tablas…) para el almacenamiento de datos tanto en base de datos de tiempo real como en histórico.
  • Definir las reglas de seguridad en el acceso a la información contenida en la ontología.

 

Para conocer con más detalle las Ontologías, tenemos a nuestra disposición los siguientes documentos:

 

 

En la consola de administración de Sofia2 existen diferentes alternativas para crear una ontología. En este caso utilizaremos la opción de Crear ontología paso a paso.

 

  1. Entramos en la consola de administración y seleccionaremos Ontologías > Crear Ontología

crearOntologia0

 

2. A continuación Creación Paso a Paso. Modelaremos una ontología para simular un edificio inteligente y los datos de iluminación y temperatura que recogerá. Para ello queremos disponer de los atributos:

Propiedad Tipo de dato
SmartBuildingId string
address string
city string
state string
zip string
geometry object
lightID string
watts integer
thermostatID string
temperature integer

 

3. Escribiremos SmartBuildingVVC (SmartBuilding + nuestras iniciales) en el campo Nombre, la marcaremos como Activa, le daremos una descripción y palabras clave en Meta_inf:

CrearOntologia1

 

4. A continuación pulsaremos en Selección Plantilla y elegiremos la plantilla SmartBuildingBasic perteneciente a la Categoría Smart Building:

CrearOntologia2

 

Veremos cómo nos aparecen todas las propiedades que queríamos para modelizar nuestra Ontología. Podremos añadir o quitar cualquiera de estas propiedades con el check que nos aparece en la última columna de la tabla:

CrearOntologia3

 

También podremos añadir nuevas propiedades pulsando en la pestaña Añadir Nuevas Propiedades.

 

5. En la Pestaña Generador Esquema e Instancia JSON pulsaremos en Generar Esquema, con lo que obtendremos el JSON-Schema correspondiente a nuestro modelado de datos:

CrearOntologia4

 

6. Finalmente podemos Generar una Instancia con un dato de ejemplo para el tipo de datos definido por esta ontología, y darla de alta en la plataforma pulsando Crear.

 

Resumen:

 

Al finalizar este paso, habremos dado de alta en Sofia2 una ontología, caracterizada por:

 

  • Definir el tipo de datos SmartBuildingVVC, Que tendrá los atributos definidos anteriormente. De forma que la plataforma admitirá Instancias que contengan datos en formato JSON del tipo: {“SmartBuildingBasic”:{ “SmartBuildingId”:”string”,”address”:”string”,”city”:”string”,”state”:”string”,”zip”:”string”,”geometry”:{“type”:”Point”,”coordinates”:[9,19.3]},”lightID”:”string”,”watts”:1,”thermostatID”:”string”,”temperature”:1}}
  • Definición en Base de datos de tiempo real del soporte de almacenamiento para la ontología. En una instalación de referencia (Con MongoDB como BDTR) esto se materializa en una colección llamada SmartBuildingVVC ¸ que será donde se almacenen en tiempo real los datos.
  • Definición en Base de datos histórica del soporte de almacenamiento de datos históricos para la ontología. En una instalación de referencia (Con Hive sobre Hadoop como BDH) esto se materializa en una tabla Hive llamada SmartBuildingVVC ¸ que será donde se almacenen los datos cuando su ventana de tiempo real finalice.
  • Definición de permisos sobre la ontología. En este caso solo tiene permiso el propietario, ya que fue declarada como privada. No obstante, desde el menú de ontologías, el propietario puede dar permisos (Lectura, Escritura o Total) a usuarios concretos, o a grupos de usuarios con los que tenga proyectos comunes. Para ampliar información, podemos consultar el post Concepto de Space/Proyecto

 

Gráficamente hemos intervenido en los siguientes componentes de la plataforma:

resumen

 

 

ThingWorx

 

En ThingWorx, antes de comenzar a crear entidades en la plataforma, es útil crear etiquetas de modelo (Model Tags) para que pueda exportar y guardar las entidades que ha creado. Las Model Tags son términos utilizados para categorizar y agrupar elementos en toda la plataforma. Estas etiquetas pueden usarse para agrupar, controlar versiones, buscar y migrar entidades. Las etiquetas del modelo consisten en un “vocabulario” y un “término” (vocabulario: término). Por ejemplo, Color: Azul o Departamento: Finanzas.

 

Creando un vocabulario de Model Tag

 

  1. Una vez lanzado el servidor pulsando Launch Foundation Server, nos situaremos sobre la pestaña Model Tags y pulsaremos en +

ModelTag+

 

2. Escribiremos “FoundationQuickstart” en el campo Name y pulsaremos en Save.

 

 

Creando un término de Model Tag

 

  1. Abrimos el vocabulario “FoundationQuickstart” y pulsamos en edit.
  2. Pulsamos en Manage Terms

manageTerms

 

3. Introducimos “Home Application” en el primer campo y pulsamos Add Term.

HomeAplication

 

Con esto ya tendremos creados un vocabulario y un término, ahora crearemos un Thing Template (Modelo de Thing).

 

 

Creando un Thing Template

 

Un Thing Template, nos servirá para modelar los datos, de la misma forma que hicimos al crear una Ontología en Sofia2.

 

  1. Nos situaremos encima de “Thing Templates” y pulsaremos en +

ThingTemplate+

 

2. En el campo Name escribiremos: “HouseGatewayTT

 

3. En el campo Tags pulsaremos en el icono de la varita mágica y seleccionaremos el tag FoundationQuickstart:Home Application

tagss

 

 

4. En el campo Base Thing Template seleccionaremos Generic Thing como modelo.

BaseThingTemplate

 

5. Pulsando ahora en Properties en el menú izquierdo y pulsando en Add My Property empezaremos a introducir los atributos que formarán nuestro esquema. Para ello, introduciremos el nombre (Name), el tipo de dato (Base Type) y seleccionaremos los diferentes aspectos que queremos que tengan. (Persistent: Las propiedades que no son persistentes restablecerán sus valores a su valor predeterminado después de una Thing o reinicio del sistema. Logged: Especifica si el valor de la propiedad debe registrarse automáticamente en un flujo de valores siempre que cambie los datos, en función del tipo de cambio de datos) Pulsamos Done and Add y repetimos estos pasos para cada propiedad. Para la última propiedad, pulsamos Done y luego, Save.

 

Atributos a introducir:

Name Base Type Persistent Logged
HouseId string x
address string x
city string x
state string x
zip string x
house_lat_long location x x
lightID string x x
watts number x x
thermostatID string x x
temperature number x x

 

 

Completamos los campos:

introDatos

 

Con lo que obtendremos:

ThinggggTemplate

Sofia2 IoT Platform vs ThingWorx IoT Platform. Primeros pasos (I. Registro y Login. Modelado de datos)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s