FEEP IoT&Big Data Platform Sofia2 (also known as Sofia2 IoT Platform) release 3.4 is now available.
This release is available on the experimentation platform Sofia2 CloudLab
(FEEP IoT & Big Data Platform Sofia2 is a building block of the FEEP Enablement Platform by Minsait)
The release includes several new features and improvements. These are the most relevant among them:
It represents a collaborative environment where the Space creator can add users, create different profile (virtual roles) and share elements with these profiles (Ontologies, reports, dashboards, notebooks, pipelines …). The creator can also upload an associated HTML5 website. It is also possible to run a Node-red instance on a specific Space domain
From now on, it will be possible to have all project’s elements unified under the same project. This features helps one-on-one association between your IoT verticals (smart irrigation, smart waste management …) and your projects on the platform. In addition, thanks to the multi-tenant support released also today, each project is managed as a different tenant.
Node-RED support as a visual flow engine
The platform allows now for visual creation and edition of IoT flows through Node-RED. Node-RED is a widespread tool for visual flow edition and engine.
It has become a standard when creating IoT flows, partially thanks to the great amount of components to create IoT applications in a quick and easy way. Besides, we have developed several Node-RED components enabling easy communication with Sofia2 Platform. This release also gives the user the option of creating dashboards with Node-RED.
Node-RED flows can be triggered either by event (Ontology’s instance) or by scheduling, in the same fashion you can trigger now rules using Sofia2’s rules engine and CEP rules.
Node-RED integration in Sofia2 is compliant with the new multi-tenant focus. Thus, every Space acts a separated Tenant, meaning that there will be an instance for each group so the flows defined for these groups do not interfere with other flows.
When trying out this new feature on the experimentation environment, please keep in mind your Node-RED instance will be up & running for 10 minutes.
This post gives a deeper dive on how to use Node-RED in Sofia2: Demo Node-RED & Twitter.
Node-RED suite includes a node called “Freeboard”. This node lets the user build dashboards directly from a JSON. Just place this node next to the node providing the values to represent, and then you will be prompted with an admin console where you will be able to design your own JSON-based dashboard.
Once you are done editing, you can save it and then you will have two different ways to view your dashboard:
- By using the administration console from the Freeboard node and loading the JSON file generated upon saving.
- By copying the URL generated upon dashboard saving. This URL may be accessed from any browser/device.
SSAP Protocol extension with new messages LOG, ERROR, STATUS and COMMAND
The SSAP protocol has been extended with these new messages:
LOG and ERROR: These messages can now be sent to the platform from any device or system (ThinKP). Messages are stored in the platform and can be queried and filtered by their corresponding ThinKP using many different criteria.
STATUS: Platform’s clients may now report their statuses to Sofia2. Again, this messages will be stored and will serve as base to keep track of clients’ statuses.
COMMAND: This messages provides the platform’s broker (SIB) with a tool to send commands to one or many ThinKPs. First command availbale will be the STATUS command. This command polls the remote ThinKP for its status.
You may find these messages within the Java API, but they are also available through the api rest .
Device Management UI integrated within the Control Panel
A new Device Management UI has been created and is now available on the Web Console. These new screens associate the new SSAP messages (LOG, INFO, STATUS and COMMAND), and integrate their content into valuable information for operation purposes.
Sofia2 Applications Guided Creation Wizard
Within the continuous improvements of usability in the platform, has been created an assistant that guides in the whole process of creating a System built on Sofia2.
This wizard will allow us to follow step by step the project creation, ontologies, dashboards, APIs… until we can build a complete application.
Taking advantage of the semantic capabilities of Sofia2 ontologies and APIs, an OpenData viewer has been made available to allows us to find public information about the platform according to its categorization:
You can view these DataSets, and in addition, you can rate them.
You can access this functionality in this url.
Sofia2 Bots Platform
Under ‘BOTS’ option menu, a first version of Bots support creation within Sofia2 has been made available.
This version allows:
- Create Knowledge Bases: They represent specific areas, such as Tourism, Customer Service, Greetings… Knowledge bases can be created with various technologies (engines) such as scripting engines or NLP engines. In the experiment environment you can create bases on Rivescript language. Knowledge bases can be private (user-only) or public.
- Create Bots: To each Bot you can associate one or several knowledge bases. A Bot can be private or public. The Bot is multichannel and supports interaction via web, mobile, Twitter, Telegram, Slack, Facebook…An URL is available at experimental environment so it can be embedded in other systems.
Here is an example of conversation:
This demonstrator has been created for didactic purposes (try different options in the scripting language), so your answers are limited.
MultiStore: Kudu Support
Sofia2 is multistore, or in other words, Sofia2 is a platform that is independent of the selected data repository, supporting various storage technologies that can be configured according to the use case.
In this release, support has been added to Apache Kudu, Kudu is an open-source solution created by Cloudera that aims to support mixed workloads: real-time and analytics, and for that it combines quick insertions/updates with an efficient scanning mechanism on a single layer of storage.
With the use of Kudu, the difference between RTDB and HDB is diluted, allowing storage on a single layer of storage and simplifying the architecture of mixed applications.
As an example we will define an ontology with the following fields:
Through the ontology crud we insert data into this ontology, and from the RTDB & HDB console we can obtain the data in two different formats: table formato or JSON format.
Both are shown below:
Virtual Roles and Extended User
These two new concepts allow us to delegate authentication and authorization of our IoT solutions on the mechanisms offered by the platform.
Virtual Role is associated with a Space/Project and allows you to create different profiles you can manage from “My Space”. For example if you create a waste management system, you may be interested in creating the contractor, manager, citizen, auditor role…
In addition, now the platform allows to configure attributes that are managed of a user, so that without any programming you will be able to manage additional attributes to those managed by the platform, such as their location, professional category, telephone…
An example of this functionality can be seen in the following image, in which the fields Company, Employee Code, Date of Entry and Reason have been added
Now, If we log in with this created user, the platform will give us the data related to this one, which will include the extended data:
The Platform allows the deployment and operation in multitenant mode. In this way, on a single installation, we can manage several tenants from the console itself (through a new role). Tenants don’t share resources, and even within a single installation, different engines can be configured according to the tenant (for example one tenant uses MongoDB as RTDB and another uses Kudu).
When we log in to the platform this will inform us wich Tenant is using. By default, if a user does not belong to a specific tenant it will indicate that it belongs to the Tenant Default.
The new role, called Infrastructure Manager, will have the ability to create and manage all Tenant. Platform administrators can only manage the tenants to which they belong.
A Tenant consists of an Identifier, and a Configuration Database configuration and Real-time Database. Finally, the assignment of users to the tenant is done at the Group level, so that all users belonging to a group, will become members of the Tenant to which the Group is assigned.
Improvements in Dashboards
Numerous visual enhancements have been added in this release to create more sophisticated dashboards.
So I can easily create dashboards like this (try it here)
The most important improvements and innovations are:
- Restyling the gadget Table
- New Gadget multi: allows in a single gadget to see 1.2, 3 or 4 values in the form of bar, line, discrete, foot.
- Carrousel type gadget: allows you to display various images
- Creation of gadgets from the dashboard itself
- Customizing dashboard colors using Custom Style
- New dashboard distributions
Exporting queries from DBH
Now you can download your HDB queries from the RTDB & HDB Console to a XSL, XML or CSV file,
New workshops and webcasts available
In order to ease the learning curve on the platform’s capabilities, and together with the 3.4 release, new workshops and webcasts have been produced. You can get to this extensive material from either our Blog or our Youtube channel.