Here is provided a description of each functional unit and their belonging components as well as communication/interaction interfaces.

1 Account & Profile Manager Unit

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.

2 Resource Management Unit

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.

3 Experiment Management Unit

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.

Experiment Composition Module receives a standardised abstract experiment representation and validates the experiment definition so it can be executed by the Experiment Running module.

Experiment Composition and Description module is based on ‘if this then that’ logical expressions that can define how resources will be used in the specific scenario.

Description of the IoT interaction experiment is stored in the SQL database upon launching the experiment.

Experiments are conducted on top of different testbeds.

No testbed or mobile phone offers the capability to have a code/programme running on them. Their functionalities include taking the measurements as defined in the Experiment Composition module and pulling the measurements on demand.

Discovery of new resources is done by the Population Daemon, which takes an RSpec from all testbed resources through the AM of SFA Wrap and then parses it and interacts as necessary with the database. The experiment composition tool gets all active resources directly from the SQL Resource DB.

Reservation and provisioning of testbed resources is performed through the HTTP Wrapper of the SQL database

All data provided by the experiment is collected in the MongoDB.

The experimenter has the option of terminating the experiment.

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.

Participant/Resource Selection Component uses APIs to detect and select available resources in the SQL database that match the specified query. Participant/resource filtering can be done based on socio-economic profile of participants, their geo-location (geo-fencing) or research code entered by the participant if they wish to take part in a specific experiment.

The discovery - creation of new mobile resources is done directly through the SQL database

Crowd Interaction Management Interface handles the interaction with the participants.

All data provided through the survey is saved in LimeSurvey and collected in the MongoDB.

Merging IoT Lab data with LimeSurvey data: Socio-economic profile of end users (if available, since they are optional) participating in surveys can be merged with the corresponding responses saved in LimeSurvey tool.

Exchange of messages between the crowd participant and the researcher is available ensuring the full anonymity of the end user participant.

Notifications can be pushed to crowd participants using different filtering options (e.g. geofencing based, research code based etc).

4 User Interface – End User Application Layer

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:

Researcher:

Registration/login

Research project profile creation

Survey creation

Participants group creation

Pushing survey towards all; a selected group of participants and/or geographic area

Pushing notifications

Select and reserve new resources

Experiment composition and execution at the back end of the platform

Data/results storage in the measurement DB (MongoDB)

Access to results (raw data)

Export of experimental and survey data into excel format where they can be visualised

Update for testbed resources

Platform Admin:

Management of researches, researchers and other users’ accounts

Management of experiments

Management of incentives – platform settings

Testbed Owners:

Management of their testbed resources and reservations

Sponsors:

Money donations to selected researchers or researches

All:

Search for ongoing researches and access to results where provided

Social media share of interesting researches to increase the platform visibility

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:

Validation of terms of use

Personal data protection through anonymisation

Optional socio economic profile

User defined control settings (defining a degree of involvement in the experiment)

5 Testbeds

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.