## 6 Matching User Preferences to Network Response
### Deploying Solution to the Network  
Switching between solutions during runtime allows the framework to direct and carry out network changes where necessary achieving full network control with complete autonomy. There are two possible techniques that can facilitate this without requiring either network downtime and human involvement, or additional hardware infrastructure in the network:  
* Switching between solutions, each present on all nodes at all times using a **single binary**. * Reprogramming the **running binary** on each node in the network as necessary. The new binary contains the chosen communications solution to be used in the network. Figure 9 shows a representation of single binary and multiple binary solution programs. Each node in the network can run a single binary at any given time. Both solutions have associated benefits and disadvantages with their use. **Single binary. ** This technique requires all solutions, that may be used by the framework, to be present on a single binary which is run on all nodes in the network. The binary will then contain one communication solution which is currently being used and a number of other solutions which are not in use as per Figure 8(a). A node can change between solutions by passing messages between modules on the node itself. Switching between solutions requires little communication overhead or network downtime. When the network manager wishes to change communication solution it simply sends a message to all nodes in the network. The nodes can then switch between the onboard solutions. An additional framework is necessary to facilitate switching between solutions in a single binary. The main disadvantage of the single binary technique, however, is the increased memory footprint of the program inducing additional memory requirements on the nodes in the network. As more solutions are added to the program, the memory requirements are increased which may prove prohibitive for many node types. \begin{table}
\begin{tabular}{c c c c} \hline \hline  & \multicolumn{3}{c}{**Preference C**} \\ \hline
**Solution** & **Criteria** & **Weighting Criteria** & **Solution Score** \\ \hline \multirow{4}{*}{ETX-NH} & Reliability & 0.6 \(\times\) 2 = 1.2 & \(-\)2.6 \\  & Latency & 0.8 \(\times\) (\(-\)12) = \(-\)9.6 & \\  & Efficiency & 0.4 \(\times\) 3.5 = 1.4 & \\  & Stability & 0.3 \(\times\) 14.5 = 4.4 & \\ \hline \multirow{4}{*}{ETX} & Reliability & 0.6 \(\times\) 2 = 1.2 & 2.5 ✓ \\  & Latency & 0.8 \(\times\) (\(-\)2) = \(-\)1.6 & \\  & Efficiency & 0.4 \(\times\) 6.5 = 2.6 & \\  & Stability & 0.3 \(\times\) 1 = 0.3 & \\ \hline \multirow{4}{*}{ETT} & Reliability & 0.6 \(\times\) (\(-\)4) = \(-\)2.4 & 0.1 \\  & Latency & 0.8 \(\times\) 14 = 11.2 & \\ \cline{1-1}  & Efficiency & 0.4 \(\times\) (\(-\)10)= \(-\)4 & \\ \cline{1-1}  & Stability & 0.3 \(\times\) (\(-\)15.5) = \(-\)4.7 & \\ \hline \hline \end{tabular} \(\checkmark\) Winning solution.  
\end{table} 
Table 8: Solution scores after weighting for preference C. \begin{table}
\begin{tabular}{c c c c} \hline \hline  & **Pref. A** & **Pref. B** & **Pref. C** \\ \hline Reliability & 100 & 90 & 60 \\ Latency & 100 & 70 & 80 \\ Efficiency & 100 & 20 & 40 \\ Stability & 100 & 20 & 30 \\ \hline \hline \end{tabular}
\end{table} 
Table 9: Three preference models used for weighting criteria. **Multiple Binaries. ** A more traditional approach involves using a single communication solution per program binary as shown in Figure 9b. Each program binary has a memory footprint capable of fitting most node types. When a change of solution is required, a new program binary is distributed throughout the network. Each node switches the running binary to the new binary implementing the required communication solution. This allows a greater number and disparity of solutions to be available for use by the framework in the network. When the network manager chooses a solution to implement it must compile the application and chosen solution into a single binary which can be run on the node.