Platform Components
UI Symbol represent a module has a configuration user interface embedded in the Control Panel.
In this view, we are representing the technical modules of the platform. These modules are:
ACQUISITON LAYER:
Digital Broker: this Broker allows devices, systems, applications, websites and mobile applications to communicate with the platform through one of the supported protocols. It also offers APIs in different languages.
Kafka Server: the platform integrates a Kafka cluster that allows for communication with systems using this exchange protocol, usually because they handle a large volume of information and need a low latency.
DataFlow: this component allows you to configure streaming data streams from a web interface. These flows are made up of one origin (which can be files, databases, TCP services, HTTP, queues, ... or the IoT Broker platform ), one or more transformations (processors in Python, Groovy, Javascript, ...) and one or more destinations (the same options as the origin).
Digital Twin Broker: this Broker allows communication between the Digital Twins and the platform, and with each other. It supports REST and Web Sockets as protocols
Video Broker: allows to connect to cameras via WebRTC protocol, and to process the video stream associating it to an algorithm (people detection, OCR,etc.).
KNOWLEDGE LAYER
Semantic Information Broker: once the information is acquired, it reaches this module, that:
validates whether the Broker client has permissions to perform that operation (insert, query, ...) or not, and
gives semantic content to the received information, validating whether the sent information corresponds with this semantics (ontology) or not.
Semantic Data Hub: this module acts as a persistence hub. Through the Query Engine, it allows to persist and consult on the underlying database where the ontology is stored, where this components supports MongoDB, Elasticsearch, relational databases, Graph databases,...
Streaming Engines: supported by:
Flow Engine: this engine allows creating process flows, both visually and easily. It is built on Node-network. A separate instance is created for each user.
Digital Twin Orchestrator: the platform allows for the communication between Digital Twins to be orchestrated visually through the same FlowEngine engine. This orchestration creates a bidirectional communication with the Digital Twins.
Rules Engine: allows you to define business rules from a web interface that can be applied to data entry or scheduled
SQL Streaming Engine: allows to define complex streams as data arrives in a SQL-like language
Data Grid: this internal component acts as a distributed cache as well as an internal communication queue between modules.
Notebooks: this module offers a multi-language web interface so that the Data Scientist team can easily create models and algorithms with their favorite languages (Spark, Python, R, SQL, Tensorflow ...).
PUBLICATION LAYER:
API Manager: this module allows you to visually create APIs on the ontologies managed by the platform. It also offers an API Portal for the consumption of the APIs, and a Gateway API to invoke the APIS.
Dashboard Engine: this engine allows to create, visually and without programming, complete dashboards on the information (ontologies stored in the platform), and then make them available for consumption outside or inside the platform.
MANAGEMENT LAYER:
Control Panel: the platform offers a complete web console allowing for a visual management of the platform's elements using a web-based interface. This entire configuration is stored in a configuration database. It offers a REST API to manage all these concepts and a monitoring console to show each module's status.
Access Manager: allows to define how to authenticate and autorize users defining Realms with contains roles, users directory (LDAP,...), protocols (OAuth2,...)
Caas Console: allows to manager from a web console all the modules deployed (as Docker containers orchestrated by Kubernetes), including version updates and rollback, number of containers, scalability rules,...
SUPPORT LAYER:
MarketPlace: allows to define assets generated into the platform (APIs, dashboards, algorythms, models, rules,...) and publish in order other users can use it, free or paid)
GIS Viewers: from the console you can create GIS layers (from ontologies, WMS services, KML, images) and GIS viewers (currently under Cesium technology) from these layers managed by the platform
Open Data Portal: platform includes a CKAN Portal connected with the platform so that the ontologies can be published as datasets or datasets can be exported to ontologies to be processed with the rest of the pieces of the platform
Files Manager: this utility allows you to upload and manage files from web console or REST API. These files are then managed with the platform's security.
WebApps Server: the platform allows you to serve Web applications (HTML + JS) uploaded through the web console of the platform.
Config Management: this utility allows you to manage configurations (in YAML format) of the applications of the platform by environments
Main technologies
Module | Technology |
---|---|
Base Technology | Java >8 Spring Boot 2.X |
Control Panel | Spring Boot over Thymeleaf. |
Semantic Data Hub | MongoDB as reference implementation for online storage. HIVE+Impala as reference implementation for historical and analytics storage. ElasticSearch supported. Relational Databases supported. |
DataFlow | Streamsets (and some components) integrated on platform |
FlowEngine | Configuration and development on Node-red (components, multitenant,...). |
IoT Broker | Spring Boot development |
Brokers | Kafka for high performance streaming. MQTT Moquette for bidirectional communication. WebSockets for web communication. Other protocols supported: AMQP, JMS, ... |
Notebooks | Configuration and Interpreter on Apache Zeppelin |
DataGrid & Caché | Hazelcast |
Digital Twin | Implementation on Web of Things Mozilla standard. |
API Manager | Development on Spring Boot + Integration with Gravitee |
Dashboard Engine | Angular + Gridster as the engine. eCharts as library for gadgets. |
Identity Manager | Reference Implementation: Development over Spring Cloud Security Advanced Implementacion: Integration with Keycloak |
Deployment | Containerized modules on Docker Orchestrated by Kubernetes Managed by CaaS Rancher or OpenShift |