MINER – Measurement Infrastructure for Network Research
MINER is a programmable software platform that supports users in conducting distributed experiments. So far, MINER has been primarily used for performance evaluation in computer networks. However, the platform can be equally applied to conduct distributed experiments that are not related to network measurements.
Performance evaluation and testing often requires the orchestrated use of a set of tools in distributed locations. By tool we mean an arbitrary entity that performs some kind of activity, e.g. configuration of a component of the system under test, active traffic generation, passive monitoring, etc. A profound evaluation requires the analysis of a significant number of different configurations and naturally all experiments need to be stored persistently. Ideally, the complete set of experiments can be repeated at a later time with (virtually) no human effort.
The ‘manual’ execution of such experiments is a tedious task. The user has to handle the large diversity related to the configuration of tools and their results. In some way it must be ensured that all tools are available at the measurement points, that they initialize correctly, and that errors arising during the execution are handled gracefully. Without any form of a supporting command and control system the user needs to carry out many (error prone) execution steps and with each new experiment most of this work has to be repeated. This approach clearly fails to scale well.
Overview
The main objective of MINER is to support users in the task of carrying out distributed experiments in communication networks. To this end, MINER is a programmable platform that significantly simplifies the orchestrated usage of arbitrary tools via a unified application programming interface (API).
The infrastructure enables a user to:
- specify experiments, so called MINER scenarios;
- schedule the execution of scenarios;
- retrieve results and associated logs of scenario executions.
The API is tool-agnostic in the sense that the interface to configure a tool and retrieve its results is unified among all MINER tools. MINER does not reinvent the wheel by re-implementing existing tool functionality. Instead, a core concept of MINER is to integrate existing tools. Therefore, MINER provides a tool integration API that enables the development of a MINER tool which wraps an existing tool executable. The MINER tool can then be plugged into the MINER platform.