## 3 A Framework for Evaluation and Modelling  
As well as presenting a framework for consistent evaluation of communication solutions, it presents a system for autonomous monitoring and solution selection within a deployment. The framework aims to reduce the need for extensive knowledge and experience in IoT communications when developing applications for the IoT platform. It reduces the need for manually testing a network when choosing an appropriate communication solution for a deployment. By creating a layer of abstraction from the network the framework assumes management of the communication layers allowing a developer to build applications without exposure to these lower layers. The developer simply provides the requirements desired for the application and the framework implements a solution which best fulfils these requirements. The framework is able to monitor the network environment and choose, from a library, the communication solutions which will best facilitate the application requirements within the given environment. The solution is chosen automatically without extensive testing on the particular deployment and without human oversight. A key aspect of the framework lies in how it can ascertain the response, in terms of network performance, of a solution given a certain environment during runtime. The framework relies on pre-built models to establish the expected performance of a solution in a given environment. These models are based on data gained from prior testing of the solutions, which may not necessarily have been conducted on the environment in question. Each communication solution is first tested using equivalent evaluation methods in order to determine how each responds over a range of network characteristic features. This implies that the same evaluation metrics and network characterisation features must be used for all testing procedures. From this data, a model is built for each solution that predicts the performance, in terms of the evaluation metrics, of the solution within any deployment from which these features can be measured. In this article a set of the networks physical features: scale, density, size, and channel quality are used as as the basis of the performance model. A discussion on these features and their effect on the response of a solution is presented in Section 4.1. The benefit of these models allows pre-testing of the solutions which can then be used in real time over a wide range of deployment types without explicit testing in the specific deployment. A network manager dictates the necessary tasks required for network control. This includes network probing to ascertain the physical features of the network, comparing expected response with application requirements and controlling network state. These tasks require additional processing power. The network manager resides at the root of the network as shown in Figure 1.  
It is important to note that the framework takes a macroscopic perspective of network control. Unlike other network control systems it does not engage in route dynamics and repair or indeed network level scheduling. Instead the framework uses and implements entire protocol changes to the network to best fulfil application requirements. A functional block diagram showing work flow and processes undertaken within the framework is shown in Figure 2.  
The processes in the framework include:  
**1. Harvesting features from the deployment. ** This process includes probing of the network and gathering of physical features to the network manager most often at the _root_. The process begins with a single packet sent by the network manager to all nodes in the network identifying the desire for physical network information. Each node to receive this packet sends a beacon to its neighbours requesting a reply packet. From the reply packets the node generates a neighbour list including the physical channel indicator.