The MIOT-Nodes are deployed on our campus in a planned but non-regular topology. We have different types of nodes as elabored on the hardware page.
As depicted in the figure above, our general system setup is a three tier based architecture. The stationary mesh routers create the core backbone network and represent tier 1. Tier 2 comprises the mesh clients connected with the mesh backbone. These clients are regarded as mobile and may offer a routing service, depending on the experiment. Tier 3 encompasses the sensor nodes which are connected by wire to a mesh router or mesh client. A subset of these sensor nodes may also be operated independently of the mesh routers in order to create a mobile and dynamic topology.
Two different kinds of software are needed to operate the MIOT-Testbed. The operating system of the mesh routers provides hardware abstraction and allows the execution of programs for experiments. In order to minimize the number of constraints of experiments, a customizable and open operating system is needed for the mesh routers. Linux fits our needs as it is already used in our day-to-day research. We make use of the most recent kernel and driver versions and try to keep up with the developments of the community.
The testbed server is the central entity in the MIOT-Testbed and provides various services for the MIOT-Nodes. It hosts the file systems which are mounted by the mesh routers via network file system (NFS), using their Ethernet connection. Additionally, the testbed server several Docker containers. Among others there runs a PostgreSQL database, which is used to store logging data and measurement results obtained from experiments. Next to these infrastructural services, the server hosts the management software that enables convenient handling of the whole MIOT-Testbed and simplifies the execution of scheduled experiments. It consists of a web based application, implemented in Java. A detailed description of the managment framework is available here.