The first version of the BRAIN-IoT architecture has been recently issued. The process used for software architecture design is based on ISO/IEC/IEEE 42010:2011 “Systems and software engineering – Architecture description”. Such a standard establishes a methodology for the Architectural Description (AD) of software-intensive systems. The IEEE 42010:2011 standard extensively uses viewpoints and views to document different aspects of a software system allowing to focus on specific concerns and issues, while at the same time ensuring an overall consistency of the architecture design. This approach has been validated in several success cases, showing a higher quality of produced artefacts and outcome specification with respect to less-structured approaches trying to tackle all issues in a single pass. Viewpoints are collections of patterns, templates and conventions for constructing one type of view. One example is the functional viewpoint (and therefore the functional view) which contains all functions that the system should perform, the responsibilities and interfaces of the functional elements and the relationship between them.
BRAIN-IoT looks at heterogeneous IoT scenarios where instances of IoT architectures can be built dynamically combining and federating a distributed set of IoT Platforms and IoT Things, which provide IoT Services.
The enabling functionalities are made available in the BRAIN-IoT Marketplaces and/or in Local Repositories in the form of Service models, i.e. Service Descriptions, and Software implementations of reusable components, i.e. Artifacts. Concerning the Artifacts, the ones supporting smart control features are particularly relevant for the BRAIN-IoT challenging scenarios encompassing heterogeneous sensors and actuators autonomously cooperating in complex, dynamic tasks, possibly across different IoT Platforms. BRAIN-IoT will then develop a library of Artifacts implementing algorithms promoting collaborative context-based behaviours, control solutions based on Machine Learning Control, real-time data analysis and knowledge extraction techniques.
At the right of the functional architecture are represented the building blocks that might take part of the IoT federated platform providing the IoT Services, more specifically:
- IoT Things – i.e. physical Devices and Gateways. It represents all physical world IoT devices with sensing or actuating capabilities, computing devices and includes complex subsystems such as autonomous robots and critical control devices. It is worth observing that BRAIN-IoT specifically aims to support the integration into an IoT environment of devices and subsystems with actuation features that could possible give rise to critical situations and require the implementation of distributed processing approaches
- IoT Platforms – instances of software components which can be classified in:
- Existing third-party services accessible through open interfaces and offering data or various functionalities including data storage, data statistics and analytics, data visualization;
- Instances of open IoT platforms whose configuration and functionalities can be dynamically updated. BRAIN-IoT will support different existing IoT Platforms including e.g., ALMANAC, sensiNact, VIRTUS, SICA (supported by consortium partners) as well as FIWARE and SOFIA.
All the above IoT building blocks can be described by a set of open and extendable semantic and behavioural models. This actually allows moving toward an easier, automated and dynamic integration within the BRAIN-IoT environment of new and existing IoT Services, provided by IoT Things and IoT Platforms available for traditional IoT applications. In fact, BRAIN-IoT defines a new meta-language, namely the IoT Modelling Language (IoT-ML), which is used to describe the above set of models, enabling the formal description of IoT Instances i.e., how a given set of IoT Things and Platforms are interconnected with each other and federated. IoT-ML is based on existing solutions provided by OMG and W3C. To this aim, BRAIN-IoT provides a Modelling Tool to design the architecture of IoT instances and the logics for the orchestration of the IoT Services, available in the Marketplace. The Modelling Tool is also used to develop, automatically generating the source code from the model, novel smart control features, which are not already available in the Marketplace, and that could possibly be published as Artifact in the BRAIN-IoT Marketplace.
The BRAIN-IoT Fabric is instead in charge of offering the capabilities needed to support the dynamic composition of a given set of IoT building blocks into a specific IoT Instance. The vision is to progress from the fog computing paradigm and create distributed IoT Micro-cloud environments hosting IoT Services and advertising their runtime capabilities. The resulting Micro-cloud environments are enhanced with management capabilities that allow search and discovery operations and their dynamic federation to form a specific IoT instance. The interoperability with the relevant IoT Platforms and Things is established by a specific type of Artifact, which is called Edge Node. An Edge Node is responsible for the implementation of the communication stack which enables the communication with the IoT Services w.r.t. the communication protocol, the information model and the API to be used. These Nodes are dynamically fetched from the Marketplace and deployed through the Fabric in such a way to set up a dependable and efficient federated IoT architecture instance. These capabilities pave the way toward highly dynamic scenarios where IoT Services can be composed and dynamically distributed between the edge and the cloud depending on variable requirements, modelled leveraging on the Modelling Tool, and where IoT Instances can be fully reconfigured adding/removing runtime new IoT building blocks from the federation. All the described management capabilities will base on relevant industry standards i.e., W3C Web of Things, OSGi and Docker. The orchestration process is conceived in such a way that it is possible to instantiate and/or link new and third-party IoT Services made available from the BRAIN-IoT Marketplace.
A server for Authentication, Authorization and Accounting for the overall distributed fog environment and an approach for end-to-end security for IoT data-flows are present to guarantee the protection of exchanged data and the authorized access to the Marketplaces.