The IoT Lab platform architecture is illustrated below.
The main architectural components of the IoT Lab platform are grouped into following functional units corresponding to the IoT-A Architecture Reference Model:
Here is provided a description of each functional unit and their belonging components as well as communication/interaction interfaces.
This unit includes several functional components:
User profile and identity management: An identity management scheme is implemented with a role-based authentication and authorisation policy. In this scheme, individual identifiers (username and password) are assigned to all the types of users of the platform that are used for their authentication, authorization and management of privileges across the platform. The access rights differ from user to user, depending on the role of the user. The existing roles for the IoT Lab platform are the following (Crowd participants (mobile app), researchers, testbed owners, sponsors, charity, platform administrator).
Security and Privacy framework: The identities of the users are protected against various privacy risks by means of specific measures taken within the context of the overall security of the platform.
The privacy of user participants is a high priority for the IoT Lab. The implementation is based on the privacy by design approach, where all data/information provided by the users are anonymised, by default, and thus cannot be linked to them later.
To reduce the effects of risks on users and platform, a number of security measures have been undertaken at different levels across the IoT Lab system (security of servers, data storage security, network security, security at the application level including secure communication)
Incentives framework: The purpose of this component is to increase the number of participants and their motivation for participating in the research process. IoT Lab adopted "Social Good Business Approach" which allows its community members to allocate the points/credits collected by participating in the experiment to a charity of their choice, out of a list that is provided by the platform.
Diagram below depicts performance of the incentives framework as implemented within the IoT Lab platform showing the typical interaction between involved actors/entities namely sponsors, experimenters (researchers), participants and the IoT Lab platform. In the diagram, the Sponsor finds a research he or she is interested in and supports it by giving a defined contribution. They also have the choice of sponsoring a researcher instead and give them the freedom to fund their current or future researches with the funds provided. By using the IoT Lab platform, the Sponsor indicates details about his or her contribution and the platform creates the budget for the research and informs the researcher about the details. In this way, the researcher defines or allocates the budget by specifying within the platform the type of actions the participants should perform in order to be given a specific credit. During the research execution and while the crowd is providing data, the IoT Lab collects information about participants’ contribution and assigns them points for performing certain actions. The number of points for specific actions are set by the platform admin.
Reputation Framework: In order to motivate and engage a large number of users to participate in the research process, reputation mechanisms have been developed that can provide more information and statistics about the researchers, participants and the platform performance itself. The main purpose of this component is to monitor the user activity and then estimate the user rating in a semi-automatic way. The reliability rate of the users is calculated for both investigators and participants through different functions and mechanisms.
This unit is responsible for storing the information about resources and monitoring their status and availability.
Resource Directory component, represented by a SQL database and its HTTP Wrapper, maintains description of all resources available in the IoT Lab platform; their type, the way to access them or interact with them. It also includes the information on entities and their roles (e.g. testbed provider, researcher, participant, etc.), ongoing research projects and their leaders, status of experiments and participants involved.
SFA Wrap interface, as a Fed4FIRE enabler, is used to virtualise static resources of our testbeds whilst the global SFA Wrapper wrapped around the database is used to advertise all integrated resources (static, portable, mobile and crowdsourced resources) to third party entities.
All the information stored in the Resource Directory can be accessed by authorised entities using the corresponding APIs. Implemented APIs provide also the advanced functions such as resource filtering based on different criteria (resource type, etc.).
A validation Deamon (resources monitor) keeps the real-time information on availability of resources in the system.
Resource discovery mechanism able to announce the available resources on testbeds is accomplished by the Update and Population Daemons.
The experiment management unit controls the functioning of two tools, namely the IoT interaction tools and Crowd interaction tools. All the components in the Experiment Manager are accessible through the Experiment Manager RESTful API. The status for each of these tools and their corresponding components are provided below.
IoT interaction tools: The purpose of this tool is to enable conduction of experiments involving resources such as sensors and actuators on static and portable/mobile testbeds or on smart-phone devices that can reliably describe a high number of envisaged scenarios.
Crowd interaction tools: The purpose of this tool is to enable interaction with the crowd through surveys enabling the collection of the crowd knowledge, opinions and information on a specific subject specified in a survey.
Users of IoT Lab platform can access the platform and its functionalities in two ways, using web or mobile application.
Web app user interface: This component enables the IoT Lab user to interact with the IoT Lab platform (TBaaS) through the Web GUI. It is meant to be used by users having different roles such as: IoT Lab researchers, platform administrators, testbed owners and sponsors.
The list of functionalities implemented per each role is:
Mobile app user interface: This component enables the IoT Lab user to interact with the IoT Lab platform (TBaaS) through the mobile app GUI as a participant.
These are the functionalities for the end-user participant:
Various testbeds have been federated and integrated within the platform and all planned architectural components have been implemented enabling the fully supported experimentation through both crowd and IoT interactions.
Integrated testbeds include:
All registered resources are stored in a SQL database.