As depicted in the picture, FEEP Enablement IoT Platform Sofia2 (aka Sofia2) is supporting different flows of information (Social Media Flow, ioT Flow and Big Data Flow) by use of the modules included in the platform. These different information flows are described in the diagram, showing:
· From the data sources of information (left side of the diagram).
· To the visualization and publication of data (right side of the diagram).
· Going through different stages such as ingestion, process, storage and analysis.
These are the modules required in order to support IoT systems, providing the capability to manage great volume of information, generated in a short time with different sensors and devices involved as a source or destination of the information.
· SDK: Sofia2 platform providesa tool’s set for the developer to be able to code in a simple way the client side of the sensors integration with the platform (as possible source or destination). In order to do this, there are different APIs available for a complete set of programming languages and communication protocols:
- Protocols: MQTT, MQTTS, REST, Web sockets, WS …
· Sofia2 Control Panel: The platform includes a complete administration and configuration console that controls all the elements and modules of the platform. All the modules are configured and operated from this module and any specific configuration is stored in the BDC (Configuration Data Base) included in Sofia2-repository. This central console is accessible for different user roles, having each one of them specific permissions according to the role definition.
· IoT Gateway: It is an abstraction layer of the communication protocol SSAP (Smart Space Access Protocol) that can understand the communication protocols such as MQTT, MQTTS, web sockets, WS, REST… New protocols can be easily added thanks to the deployment of ad-hoc plugins.
Thanks to this abstraction capability, the information managed in following platform layers is fully agnostic of the technology used by the sensor or device for its transmission, allowing the management of the data from a semantic point of view.
· Semantic broker: Platform module that is in charge of the reception, process and storage of the information sent by any of the possible sources (applications, sensors, devices…), operating as an Interoperability Bus. This layer will check the compliance of the data received with syntactic and semantic definitions (stored in the platform by means of the ‘ontologies’ json schemas). It will be able to identify which is the type of data (ontology) received and apply the security defined for it.
This module is also allowing the deployment of ad-hoc plugins in order to modify or add new functionality in an easy way.
· Process: The information received or stored in the platform can be processed in real time by two different engines according to the rules defined: Sofia2-Rules (ITTT engine) and Sofia2-CEP (Complex Event Process engine)
· Sofia2 Storage: Theinformation can be storage in three different repositories, according to the lifecycle and structure of the data:
- Real Time Data Base (BDTR): Ready for the on time storage and access of the data.
- Historical Data Base (BDH): Optimized for Big Data Management.
- Staging Area (HDFS): Data Lake for not structured or semi structured data
· Sofia2 API Management: Information managed by the platform can be published as REST API using this module. It is also allowing searching, subscribing, versioning and lifecycle management of each one of the APIS created on it. This module can also configure the access to external REST Services, thus creating a single access point for the internal and external APIS.
· Holistic Viewer: Advancedvisualization module that stands on top of different possible engines. It is focused on providing an integral and interactive visualization for the management of any geo-located information stored. Its multimedia and visualization capabilities facilitate the creation of interactive dashboards.
Big Data Modules:
These modules give an added value to the platform for the big data real time processing and analytics. Integration capabilities with other BI tools, reporting, visualization, life cycle management of analytical models, massive ingestion and machine learning drives the users of the platform from the Internet of Things to the Analytics of Things.
· Sofia2 Dataflow: Focused on the definition of a pipeline for streams of data ingestion in real time, including the concatenation of different actions through a visual interface. Each dataflow defined must include one single entry point, as many as required transformation nodes and at least one destination for the result of the process.
· Sofia2 Notebooks: Easy and interactive tool for analytical process of heterogeneous sources of information. We can load information from the Staging Area using Spark libraries, load data on Hive tables, launch queries or execute complex machine learning process using Spark Mllib. This module can combine Scala, SparkSQL, Hive, R, Shell or other code language in one single analytic process, together with HTML content or Angular reactive directives, allowing real time interactions with a powerful interface. You have all this in a shared and multiuser environment.
· Sofia2 ML: Enables you tomodel and apply in a simple and visual way, different learning techniques, to be pointed out the following:
· Sofia2 Datalink: Interface with other analytical products, enabling standard JDBC, ODBC, REST and an abstraction layer that allows the use of SQL sentences, no matter what is the source of the queried information. Thus the traditional integration at data level is facilitated with any of the sofia2 repositories (Historical, Real Time or Staging), being possible even combines several of them in one single query.