The evolution of the IP-based internet towards the Internet of Things (IoT) has introduced innovations in applications from various domains, such as the smart grid, the building and home automation, the health monitoring and has even boosted a new industrial area, the so-called Industry 4.0 or Industrial IoT (IIoT) 111https://industrial-iot.com/2017/09/iiot-smart-manufacturing/. IoT leverages miniature devices that can exchange data autonomously through wireless communication. These devices, are usually of small size and low cost, and are also supplied with battery power, in order to widen the applicable deployment possibilities. An important challenge related to the use of battery power is that the device lifetime depends solely on the resource demands imposed by the IoT application.
The main difficulty in addressing this challenge is the underlying nature of IoT applications, namely that they are based on web services designed for continuous and long-lived service delivery through IoT devices with limited lifetime . Thus, researchers have focused on mechanisms and protocols for low-power wireless communication, as well as on energy-efficient device hardware design . However, to the best of our knowledge, there is only limited work towards methods and techniques for real-time monitoring and characterization of the energy consumption in IoT devices . The main reason behind this is that such methods usually require direct interaction with the device hardware, which in most cases is not supported by the devices 
. Moreover, the existing analytical methods to estimate energy consumption in resource-constrained devices use the device manufacturer characteristics, which may not be always accurate when compared with measurements taken in the system’s operation environment .
To address these limitations of existing methods and techniques for monitoring the energy consumption of IoT devices, Dunkels et al.  introduced a software-based solution, which is available for IoT applications in the Contiki OS through the powertrace module. Compared to a hardware-oriented approach, powertrace allows deriving a generic and hardware-agnostic model that can be applied to various device types, and enables a fine-grained analysis of the energy consumption at the network-level. However, powertrace can only support energy monitoring for the individual IoT devices, as well as the entire system. A resulting limitation is that powertrace cannot measure nor estimate the energy consumption for the device communication with its connected peripherals (e.g. sensors/actuators). A possible solution to this end should aim towards a proper characterization and assessment of all the parameters and scenarios that are impacting the energy consumption on a system-level, as described in . Specifically, that work focuses on characterizing and estimating energy evolution over time in Wireless Sensor Networks (WSN) through distribution fitting techniques. Distribution fitting is a result of energy profiling in different WSN scenarios; the authors also stress that the analysis and correlation of parameters influencing energy consumption is a fundamental step towards a system design flow.
In this paper, we propose a model-based characterization of energy consumption in IoT systems and in their constituent devices. This is achieved by the progressive development of faithful models at the system-level, which incorporate valid energy profiles for the various system operation scenarios. The models are implemented in the Behavior-Interaction-Priority (BIP) component framework  based on specifications for the functional behavior and energy constraints for the system under design. BIP enables effective semantics-preserving transformations for the system-level models, as well as the simulation and validation of IoT systems in every development stage. The approach supports the system’s validation through Statistical Model Checking (SMC) against the related requirements provided as user input. This results in valuable feedback to the system designer for enhancements concerning: (i) the IoT device lifetime and (ii) the communication/computation energy cost in each IoT device, its sensors/actuators as well as in the overall system.
The approach is illustrated through a Building Management System (BMS) which features several well-known IoT devices, such as the Zolertia Z1 222http://zolertia.sourceforge.net/wiki/images/e/ec/Z1SPDatasheetv1.3.pdf, the Sky mote 333http://www.eecs.harvard.edu/~konrad/projects/shimmer/references/tmote-sky-datasheet.pdf, the OpenMote 444http://openmote.com/ and SimpleLink Sensortag 555http://www.ti.com/ww/en/wirelessconnectivity/sensortag/. To this respect, we provide detailed profiling and characterization of the energy consumption, as well as methods to build efficient IoT applications in BMS systems. Concretely, this paper has the following contributions:
an energy-aware model that allows providing valid bounds for the energy consumption in different device functionalities (e.g. data processing/communication)
a detailed analysis of the parameters that influence energy consumption in IoT systems, as well as the results from their integration into the energy-aware model
a validation technique for energy-consumption and battery lifetime requirements of an application design through SMC
The analysis of parameters that affect energy consumption through our approach allows for obtaining trustworthy design decisions concerning the scenarios that have a predominant effect in the energy efficiency of the IoT devices and the overall system.
The rest of the paper is organized as follows. Section 2 provides a brief introduction in the Contiki IoT ecosystem and the techniques for software-based energy management through the powertrace, as well as in the BIP framework, which is used for rigorous system design. Section 3 illustrates the proposed method for energy-consumption management in IoT systems, which is later used in Section 4 to validate IoT system requirements and provide valid bounds for the lifetime of IoT devices. Finally, Section 5 provides conclusions and perspectives for future work.
2.1 Contiki powertrace
Powertrace  is a Contiki library that allows the annotation of Contiki programs with primitives, for monitoring the energy flow in IoT devices. It identifies four individual operating modes that contribute to a device’s energy consumption:
Low Power (LPM): the device is idle waiting for an event
CPU: the device microcontroller is used for calculations/data processing
Radio transmission (Tx): indicating data transmission
Radio reception (Rx): indicating data reception
The energy consumption varies according to the time that a device remains in each of the above modes. In order to measure this time, the library provides code primitives that can be used for every IoT device type. A data logger is used to store the data, which supports energy analytics. Characteristic examples of such analytics are the duty cycle or the device lifetime. The former refers to the percentage of time that a device remains in one operating mode, whereas the latter refers to the total time duration that a device operates autonomously. The period that powertrace uses to measure and log the data can be configured by the user and has an impact on the performance and accuracy of the mechanism. Finally, the energy calculation in powertrace also supports hardware-specific parameters, such as the real-time timer (RTIMER 666http://anrg.usc.edu/contiki/index.php/Timers#Step5-Introductiontortimer) that is used to measure the hardware clock cycles of the device per second.
2.2 The BIP component framework
BIP (Behavior-Interaction-Priority)  is a highly expressive, component-based framework with rigorous semantic basis. It allows the construction of complex, hierarchically structured models from atomic components, which are characterized by their behavior and interfaces. Such components are transition systems enriched with data. Transitions are used to move from a source to a destination location. Each time a transition is taken, component data (variables) may be assigned with new values, which are computed by user-defined functions (in C/C++). Atomic components are composed by layered application of interactions and priorities. Interactions express synchronization constraints and define the transfer of data between the interacting components. Priorities are used to filter amongst possible interactions and to steer system evolution so as to meet performance requirements, e.g. to express scheduling policies. A set of atomic components can be composed into a generic compound component by the successive application of connectors and priorities.
BIP is supported by a rich toolset including tools that are used to check stochastic systems, through the Statistical Model Checking (SMC) technique. SMC was proposed as a means to cope with the scalability issues in numerical methods for the analysis of stochastic systems. Consider a system model and a set of requirements, where each requirement can be formalized by a stochastic temporal property written in the Probabilistic Bounded Linear Temporal Logic (PBLTL) . SMC applies a series of simulation-based analyses to decide PBLTL properties of the following two types:
Is the probability for to satisfy greater or equal to a threshold ? Existing approaches to answer this question are based on hypothesis testing . When , to decide if , we can test H: against K:
. Such a solution does not guarantee a correct result but it allows to bound the error probability. The strength of a test is determined by the parameters, such that the probability of accepting K (resp. H) when H (resp. K) holds is less than or equal to (resp. ). However, it is not possible for the two hypotheses to hold simultaneously and therefore the ideal performance of a test is not guaranteed. A solution to this problem is to relax the test by working with an indifference region , with ( is the size of the region). In this context, we test the hypothesis against instead of H against K. If the value of is between and (the indifference region), then we say that the probability is sufficiently close to , so that we are indifferent with respect to which of the two hypotheses K or H is accepted.
What is the probability for to satisfy ? This analysis computes the value of that depends on the existence of a counterexample to , for the threshold . This computation is of polynomial complexity and, depending on the model and the property , it may or may not terminate within a finite number of steps. In , a procedure based on the Chernoff-Hoeffding bound  was proposed, to compute a value for , such that with confidence , where denotes the precision.
The SMC of BIP models is automated by the SMC-BIP tool  that supports both types of PBLTL properties. The tool accepts as inputs the PBLTL property, a model in BIP and a couple of confidence parameters. The tool provides a verdict in the form of the probability for the property to hold true. Since the approach is designed for the validation of bounded LTL properties, it is guaranteed to terminate in finite time.
3 Rigorous design of energy-efficient IoT systems
The overall flow of our method is presented in Figure 1. The process depends on an XML parameter configuration input file that extends the WPAN network configuration given in  as well as on the application design expressed in a Domain Specific Language (DSL) . The third input is the requirement specification, which contains user requirements regarding energy constraints for the IoT application. The method proceeds throughout the steps described below:
Translation for the generation of the Contiki Simulation Configuration: This step leverages the XML-based configuration with parameters that affect the energy consumption in an IoT application, as they are presented in Section 3.1. The configuration is systematically translated in order to produce all the necessary configuration files for the deployment of a Contiki IoT application as well as the Contiki Simulation Configuration (CSC) file, with the system architecture that is simulated within the native Contiki simulation environment (Cooja ). The DSL in  is also used to provide all the necessary application-specific parameters during the translation stage.
Transformation for the System Model: The actions comprising this step are two-fold. First, the DSL application description of the previous step is used to form an Application Model, which is later enhanced with the OS/kernel model, that is formed from the BIP IoT component library . The combination of the two models is performed through the addition of the application mapping in the DSL , that specifies the deployment of application modules onto the IoT system’s devices.
Code generation: The CSC file from step 1 along with the DSL application description are used to generate deployable code. The code is annotated with energy characteristics to allow the calculation of the energy consumed in each operating mode of powertrace. The code is accordingly simulated in Cooja with the addition of the powertrace library. The simulation result is used for the energy characterization in the next step.
Energy characterization: The analysis of the energy-oriented behavior and characteristics leads to the construction of an energy model representing the operating modes for each device, as well as the total amount of energy in the system. This model includes all the influential hardware/software energy constraints, derived from the simulation in the previous step. Those constraints are added in the energy model in the form of probabilistic distributions using a distribution fitting technique similar to the one presented in .
Calibration for the construction of an energy-aware System Model: This step concerns with the addition of parameters for the runtime characterization of the IoT application with respect to the BIP System Model as well as the generation of glueing code for the combination of the BIP System Model with the energy model obtained from the previous steps. The combination leads to the construction of the Calibrated BIP System Model, which allows to analyze energy aspects and to evaluate energy requirements.
Requirement formalization: This step concerns with the process of expressing a requirement with temporal logic properties. The properties are derived from the input requirement specification, where they are expressed in natural language. The resulting properties of this step are used as input in step 7.
Statistical model checking (SMC): In order to verify the model against the requirements we use SMC. The resulting verification verdict allows to find tight bounds for the energy consumed in the IoT application as well as in the individual devices.
3.1 Energy-aware parameter configuration
As a first step of the proposed method, the XML-based energy-aware parameter configuration is translated into a CSC file (Step 1 of Figure 1). To better understand the importance of the selected parameters for the model we hereby introduce the three categories of parameters that affect the overall energy consumption, namely (i) the application layer, (ii) the MAC layer and (ii) the physical layer parameters. Each category introduces parameters that depend on each other, but there are no inter-dependencies between the different categories. For instance, the choice of the IoT application protocol in the application layer is independent from the choice of the duty-cycling mechanisms in the MAC layer.
MAC layer: The Contiki network stack uses a Radio Duty Cycling (RDC) mechanism, allowing a device radio to remain active and listen only for certain periods in time. The remaining time it moves in the LPM mode, where it cannot receive any transmitted packet. This mechanism reduces the consumed energy, as the radio remains in listening mode for significantly less time. RDC mechanisms are divided into 1) synchronous and 2) asynchronous, according to the technique that is used for awakening the IoT device. The former allow to maintain a Time-Division Multiple Access (TDMA) mechanism period, with which the device wakes up only in the beginning of the period to receive any incoming packets for a fixed time interval and afterwards switches to LPM mode. The latter allow a device to receive only the packets destined for it. This is possible through a Sender-initiated mode, where the sender transmits frequently a preamble packet, that is acknowledged only when the Receiver is awake, or a Receiver-initiated, where the Receiver transmits a broadcast Probe Packet to all IoT network devices to indicate that it is awake. Contiki implements various mechanisms for RDC that are Sender- or Receiver-initiated and have different characteristics. These characteristics are considered as the main parameters that influence the energy consumption in RDC and are:
RDC protocol: This parameter refers to the protocol that is used on top of the MAC protocol in the Contiki network stack, to implement the duty cycling for the IoT devices. The selection of this protocol affects significantly the overall consumed energy, as it allows the device to switch between the operating modes with different mechanisms. Therefore, the choice is also present as one of the parameters of the XML-based energy configuration. In Contiki, there are four allowed values for this choice, namely the ContikiMAC, the X-MAC, the Low Power Probing (LPP)  as well as the no use of RDC protocol named as nullRDC. ContikiMAC is a protocol based on the principles behind low-power listening but with better power efficiency. X-MAC is based on the original X-MAC protocol , but has been enhanced to reduce power consumption and maintain good network conditions. Contiki’s LPP is based on asynchronous receiver-initiated transmission scheme protocol, where the devices wake up and send a probe to inform other devices on their receiving availability.
RDC frequency: This parameter specifies the frequency with which the IoT devices wake-up to check the channel for any packets whose transmission is pending through their RDC mechanism. Channel checking is accomplished by transmitting probe packets to verify any existing activity. In the presence of channel activity they remain in the Rx operating mode to receive any transmitted packets from the other IoT network devices, otherwise they switch to the LPM mode for another duty-cycling period. By remaining longer in Rx mode an IoT device has increased energy consumption, therefore we consider the RDC frequency as a significant parameter in the energy parameter XML configuration.
Packet retransmissions: IoT applications are often prone to transmission errors in the MAC layer that are leading to successive loss of packets, which are usually caused by extensive loss of network bandwidth. For this reason wireless protocols for IoT usually include a mechanism handling the retransmission of non-acknowledged packets in the MAC layer. This mechanism increases the IoT system reliability, but also keeps the IoT device in the Tx operating mode for longer time durations. Therefore, the overall energy consumed by an IoT device is increased, making this parameter part of the energy parameter configuration in our design method.
Application layer: A Contiki IoT application can use a variety of protocols for data communication. Each protocol offers different mechanisms and is characterized by different energy consumption. It is also possible to introduce a different size for the packets to be transmitted. For this reason we define the application layer parameters as follows:
Application protocol: This parameter refers to the protocol that is chosen for data exchange. This choice depends strongly on the application requirements i.e. safety critical applications require reliable data transfer through MQTT communication, whereas wireless sensor applications require energy efficiency and faster communications, therefore they rather rely on CoAP communication. Nevertheless, since the protocols offer different mechanisms, this choice has a significant impact on the lifetime of an IoT device.
Header size: IoT applications usually include compression algorithms to reduce the packet header, in order to reduce the overall size of the exchanged message . Such algorithms ensure the minimal radio usage period for data transmission, therefore minimizing the cumulative energy consumption. However, in IoT devices this is a trade-off since for the computation time of compression/decompression of the packets, the IoT device remains in the CPU operating mode. For these reasons, the header size is considered as a parameter in our input configuration file.
Communication medium: IoT applications usually contain wireless devices that communicate over a communication medium which is prone to errors (e.g. packet collisions) that impact the energy consumption. This category includes the following parameters:
Radio interference: This parameter is related to the presence of interference in the communication medium as a form of additive noise from simultaneous transmissions of proximity networks with the same radio frequency. Interference leads to increased packet collisions that can impact the energy consumption in the IoT devices, as they remain in the Tx operating mode for longer time durations. This parameter is added to the energy parameter configuration by introducing and properly configuring the disturber mote type as a part of the Contiki IoT application .
When the previous analysis is expanded to the entire IoT system architecture we ought to find additional parameters impacting the energy consumption. Such a characteristic parameter is the routing protocol that is used along with IPv4/IPv6 in the networking layer of the Contiki protocol stack to ensure the connection of Wide Area Network (WAN) IoT networks (e.g. meshed or multi-hop). In this scenario IoT devices have to be configured as a border router  to connect distant networks, which requires the extensive use of communication bandwidth. The use of the Routing Protocol for Low power and Lossy Networks (RPL) routing mechanisms increases computation/communication time durations in the IoT devices as well as in the overall system.
3.2 Energy model
As a part of step 4 of the design flow, an energy model is derived reflecting the true energy consumption in the BIP System Model. The main equations used to compute energy constraints in the Contiki IoT environment are as follows. Initially, the duty cycle (D) as a device ratio is computed by:
where y indicates the operating mode for the IoT device and the relative number of occurrences that the device visits the respective operating mode y, given that it cannot be in two modes within the same time interval. Based on the duty cycle of a device in a given operating mode, we can also derive the overall energy consumption (in Joule) over every device operating mode:
where in every tuple y indicates the operating mode as in Equation 1 and and indicate respectively the current (in Ampere), voltage (in Volts) and time intervals in which the device remains in each operating mode. The sum is over the number of occurrences of the device visiting the respective operating mode y and indicates the duty cycle for each mode. indicates the energy consumed by the device peripherals (in Joule). Finally, the device lifetime (lf) is computed by:
where indicates the overall capacity of the battery for autonomous operation (in Ampere hours), Vcc the operating voltage (in Volts) and the total amount of energy.
In Figure 2 we illustrate a fragment of the BIP energy model that is derived in Step 4 of our method. We also present in Listing 1 the code with associated actions as in the model to facilitate its description.
By using the command in Line 11 of Listing 1 the radio is activated and it immediately switches to the LPM operating mode. This is illustrated in Figure 2 through the transition. In line 16 the CoAP message is initiated, which triggers the transition in the model. Before a packet is transmitted the device has to initialize its header and payload as its shown in lines 17-19. This is represented with the transition in the model, which switches it to the CPU state (i.e. indicating the CPU processing mode). When processing is finished the packet is transmitted through the transition. If no further transmissions or receptions (through the transition ) of packets take place, the model will return to the LPM state for another duty-cycle through the transition. The durations considered in every state or transition of the model are selected from probabilistic distributions that are gathered from profiling the generated code that is simulated in Cooja . The gathered distributions correspond to each one of the powertrace operating modes. Finally, the model contains 3 exported transitions (i.e. , , ) to interact with the OS/Kernel components of the BIP system model  that is constructed in Step 2 of our method.
4 Case-study: Energy-aware building management system
In this section we present the case-study for validating our method in the context of a Building Management System (BMS). The application aims at automating the operation of the basic structures in a building installation connected through a dedicated WPAN network for each building floor. Additionally, it also allows for the remote control of different buildings through a WAN network. Such an architectural setup is employed by new-generation building facilities 777https://www.intel.com/content/www/us/en/smart-buildings/overview.html. In particular, the case-study describes a company building, consisting of different floors with office rooms to which workers have access during working-hours (8.00 till 18.00).
Figure 3 presents the heterogeneous IoT system architecture, where each floor has two unique IoT devices in the roles of a floor controller and floor server. The architectural heterogeneity allows to analyze energy consumption in a variety of IoT devices, such as Zolertia Z1 (level 1), Sky mote (level 2), OpenMote (level 3) and SimpleLink Sensortag (level 4).
Each set of floor devices communicates its state to the lower-level and the lowest level (floor 1 in Figure 3) forwards all the floor states to the Building Management device located in level 1. This device forms the central system supervisor. It is notified by all floor controllers for their current status and can be accessed or managed remotely as part of the WAN network. The state of each floor is determined by a set of sensor/actuator resources present in the floor server devices. In this case-study, we used the common resources amongst the four considered device types i.e. temperature sensor, humidity sensor, motion sensor, light sensor/actuator, alarm actuator, light actuator, thermostat actuator.
Concerning the system functionality, each floor server is a node in which every sensor/actuator is represented as a REST endpoint through which the floor controller can at any time know the current state of the floor. For example, for the temperature sensor the floor controller monitors the temperature in the floor and in case it exceeds the user-defined upper or lower limits, then it switches on the thermostat. Additionally, the building also employs an energy-saving mechanism, in order to automatically diminish the thermostat limits during non-working hours. Moreover, the floor controller is also subscribed to the motion sensor, as well as to the light sensor/actuator, in order to detect motion and open the lights if the ambient light in the environment is not sufficient. The corresponding lights that open as a result of motion detection are linked to the location, where motion was detected.
4.1 Application of the proposed method
We focus now on the individual steps of the design flow in Figure 1 for the outlined BMS application.
Step 1: Translation of the energy parameter configuration
The parameters in Section 3.1 that influence the energy consumption obtain their actual values based on the application requirements. For the BMS application, we were based on the default values taken from the kernel libraries of the Contiki OS (Table 1). Moreover, to better demonstrate the impact of the parameters, we added as a part of our simulations a variation range. Table 1 introduces this variation range along with the default values in the Contiki OS.
|Energy model parameter||Default value||Variation range|
|RDC protocol||X-MAC||[Contiki-MAC, X-MAC, LPP, nullRDC]|
|RDC frequency||8 Hz||[2-32] Hz (even number)|
|Service protocol||CoAP||[CoAP, MQTT, HTTP]|
|Header size||48 bytes||[32-64] bytes (even number)|
Accordingly, in Steps 2 (Transformation for the System Model) and 3 (Code generation) we used the described XML configuration along with the DSL to generate the Contiki Simulation Configuration as well as the BIP System Model.
Step 4: Energy characterization
Due to the device heterogeneity for each floor in the BMS application, we could only apply the distribution fitting technique to energy data coming from the same device type. We then fitted the data into Poisson distributions for Tx and CPU modes, whereas the energy for Rx and LPM mode followed a normal distribution during the course of a day. The resulting distributions of this step are used inStep 5 (Calibration for the construction of an energy-aware System Model) to calibrate the model of Figure 2.
Step 6: Formalization of system requirements
We identified three requirements for the BMS system, from which only the first one concerns the IoT device lifetime, whereas the remaining two concern the IoT device duty-cycle in different operating modes. These requirements are:
Requirement 1. Device lifetime should be at least 1 week.
Requirement 2. The duty-cycle in the LPM mode should remain higher than 90% during working hours.
Requirement 3. The duty-cycle in the Rx mode should not exceed 20% during working hours.
In this section we demonstrate the experiments for evaluating the aforementioned requirements. The current and voltage values for each operating mode that were used for the calculation of the total energy, duty cycle and device lifetime in the Section 3.2 equations were obtained from the IoT devices’ datasheet.
We use the parameters of Section 3.1 to demonstrate the impact of a certain parameter to the overall energy consumed in a device. To this end, we focused on a certain category parameter and experimented with all variations of the other parameters in the same category, while the parameters in different categories were set in their default values (Table 1). This is due to the independence between the categories.
The system requirements were validated through the continuous simulation of the BIP system model for a working week, where we used SMC to measure the probability for satisfying the requirements of Section 4.1.
Requirement 1. We evaluated the property , where 168 indicates the sum of hours during the week. For this experiment we used two scenarios the first being with the default values of Table 1 and the second with different sets of the parameters of the same table. For the first scenario we found that , whereas for the second scenario we have conducted several sets of experiments. These experiments allowed us to demonstrate the contribution of the energy parameters to the device lifetime (Figure 4). The greatest lifetime impact is observed in experiments involving the RDC protocol parameter as the difference between maximum and minimum battery autonomy is 130 hours, whereas with radio interference the difference is 148. On the other hand, we also observe that the variation in the retransmissions parameter has no impact on the system, as the BMS network of our case-study is formed by several smaller WPAN networks with a small number of IoT devices. Furthermore, this Figure allows the system designer to know the values to be used for the parameters of Table 1 to satisfy this requirement.
Requirement 2. We verified the property . The property is significantly influenced by the RDC protocol parameter. In particular, it holds for the LPP RDC protocol () as it is illustrated by Figure 5, which focuses on the duty cycle of each operating mode for the specific RDC protocol. In the same Figure, since the energy in certain modes (i.e LPM) during our experiments was significantly higher than in all the remaining operating modes we chose to present our results in logarithmic scale. The reasoning behind the energy saved with LPP in LPM is that the sum of packets is exchanged during small and continuous time intervals, while in all the remaining time intervals the device switches to a deep sleep mode. Concerning the other RDC protocols for ContikiMAC and XMAC, we found and respectively. The difference between the two RDC protocols is explained by the packet transmission in ContikiMAC rather than a pulse as in X-MAC, in order to activate the wake-up signal. Finally, for the nullRDC protocol as the radio remains in Rx for long time intervals.
Requirement 3. We verified the property . The property holds when the chosen RDC protocol is LPP (Figure 5). However, with the two other protocols, the observed probability was for XMAC, for ContikiMAC and for the nullRDC. This is due to the different awakening frequency of the device for listening incoming packets, especially during working hours when the data exchange is intense (Figure 5).
We presented a novel method for profiling and characterizing the energy consumption in IoT applications, as well as in the individual IoT devices. The method is based on the principles of rigorous system design by using the BIP component framework. Currently, the provided support concerns with the design of REST service-based applications which are deployed on nodes running the Contiki OS. The method takes as input the application design description in DSL and an XML-based set of energy parameters and generates a system model in BIP for validating requirements related to energy characteristics. The system model is calibrated with energy constraints that are obtained by the simulation of the code generated from the application description. The calibrated model is afterwards used to validate the requirements through Statistical Model Checking (SMC).
As a proof of concept, the described method has been applied to a building management system. The system consists of several subsystems deployed in multiple floors of a smart building facility using several well-known IoT devices. We have verified the energy-related requirements concerning the device lifetime, as well as the duty-cycle of the devices and the overall system. The results allow us to characterize the energy consumption on the system and calculate accurately the device lifetime.
As future work, it is worth to consider the aspect of remote control in the building, as well as its impact on the overall energy consumption. This can be accomplished through the presence of border routers and RPL routing mechanisms in the IoT application. In this direction, an important architectural characteristic of IoT systems is fog and cloud computing , where a significant part of the computation is no longer handled by the resource-constrained IoT devices. Hence, the overall energy consumption in the system is reduced. Additionally, the Building Management Controller that was presented in the case-study can also perform control actions based on the data it gathers, such as shutting down the heating and lighting system if there is no motion for certain hours during the day.
-  Ananda Basu, Bensalem Bensalem, Marius Bozga, Jacques Combaz, Mohamad Jaber, Thanh-Hung Nguyen & Joseph Sifakis (2011): Rigorous component-based system design using the BIP framework. IEEE software 28(3), pp. 41–48, doi:http://dx.doi.org/10.1109/MS.2011.27.
-  Luca Benini, Robin Hodgson & Polly Siegel (1998): System-level power estimation and optimization. In: Proceedings of the 1998 international symposium on Low power electronics and design, ACM, pp. 173–178, doi:http://dx.doi.org/10.1145/280756.280881.
-  Carlo Alberto Boano, Zhitao He, Yafei Li, Thiemo Voigt, Marco Zúñniga & Andreas Willig (2009): Controllable radio interference for experimental and testing purposes in wireless sensor networks. In: Local Computer Networks, 2009. LCN 2009. IEEE 34th Conference on, IEEE, pp. 865–872, doi:http://dx.doi.org/10.1109/LCN.2009.5355013.
-  Flavio Bonomi, Rodolfo Milito, Jiang Zhu & Sateesh Addepalli (2012): Fog computing and its role in the internet of things. In: Proceedings of the first edition of the MCC workshop on Mobile cloud computing, ACM, pp. 13–16, doi:http://dx.doi.org/10.1145/2342509.2342513.
-  Michael Buettner, Gary V Yee, Eric Anderson & Richard Han (2006): X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks. In: Proceedings of the 4th international conference on Embedded networked sensor systems, ACM, pp. 307–320, doi:http://dx.doi.org/10.1145/1182807.1182838.
-  Walter Colitti, Kris Steenhaut, Niccolo De Caro, Bogdan Buta & Virgil Dobrota (2011): REST enabled wireless sensor networks for seamless integration with web applications. In: Mobile Adhoc and Sensor Systems (MASS), 2011 IEEE 8th International Conference on, IEEE, pp. 867–872, doi:http://dx.doi.org/10.1109/MASS.2011.102.
-  Adam Dunkels, Fredrik Osterlind, Nicolas Tsiftes & Zhitao He (2007): Software-based on-line energy estimation for sensor nodes. In: Proceedings of the 4th workshop on Embedded networked sensors, ACM, pp. 28–32, doi:http://dx.doi.org/10.1145/1278972.1278979.
-  Joakim Eriksson, Fredrik Österlind, Niclas Finne, Nicolas Tsiftes, Adam Dunkels, Thiemo Voigt, Robert Sauter & Pedro José Marrón (2009): COOJA/MSPSim: interoperability testing for wireless sensor networks. In: Proceedings of the 2nd International Conference on Simulation Tools and Techniques, ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), p. 27, doi:http://dx.doi.org/10.4108/ICST.SIMUTOOLS2009.5637.
-  Kyriakos Georgiou, Samuel Xavier-de Souza & Kerstin Eder (2017): The IoT energy challenge: A software perspective. IEEE Embedded Systems Letters, doi:http://dx.doi.org/10.1109/LES.2017.2741419.
-  T. Hérault, R. Lassaigne, F. Magniette & S. Peyronnet (2004): Approximate probabilistic model checking. In: Verification, Model Checking, and Abstract Interpretation, Springer, pp. 73–84, doi:http://dx.doi.org/10.1007/978-3-540-24622-0˙8.
W. Hoeffding (1963):
Probability inequalities for sums of bounded random variables. Journal of the American statistical association 58(301), pp. 13–30, doi:http://dx.doi.org/10.1214/aoms/1177730491.
-  Matthias Kovatsch, Simon Duquennoy & Adam Dunkels (2011): A low-power CoAP for Contiki. In: Mobile Adhoc and Sensor Systems (MASS), 2011 IEEE 8th International Conference on, IEEE, pp. 855–860, doi:http://dx.doi.org/10.1109/MASS.2011.100.
-  Axel Legay, Benoît Delahaye & Saddek Bensalem (2010): Statistical model checking: An overview. In: Runtime Verification, Springer, pp. 122–135, doi:http://dx.doi.org/10.1016/j.ic.2006.05.002.
-  Alexios Lekidis (2015): Design flow for the rigorous development of networked embedded systems. Ph.D. thesis, Université Grenoble Alpes, doi:http://dx.doi.org/10.13140/RG.2.2.19387.11042.
-  Alexios Lekidis, Emmanouela Stachtiari, Panagiotis Katsaros, Marius Bozga & Christos K Georgiadis (2018): Model-based Design of IoT Systems with the BIP Component Framework. Software – Practice and Experience, doi:http://dx.doi.org/10.1002/spe.2568.
-  Borja Martinez, Marius Monton, Ignasi Vilajosana & Joan Daniel Prades (2015): The power of models: Modeling power consumption for IoT devices. IEEE Sensors Journal 15(10), pp. 5777–5789, doi:http://dx.doi.org/10.1109/JSEN.2015.2445094.
-  Ayoub Nouri, Saddek Bensalem, Marius Bozga, Benoit Delahaye, Cyrille Jegourel & Axel Legay (2015): Statistical model checking QoS properties of systems with SBIP. International Journal on Software Tools for Technology Transfer 17(2), pp. 171–185, doi:http://dx.doi.org/10.1007/s10009-014-0313-6.
-  Xavier Vilajosana, Qin Wang, Fabien Chraim, Thomas Watteyne, Tengfei Chang & Kristofer SJ Pister (2014): A realistic energy consumption model for TSCH networks. IEEE Sensors Journal 14(2), pp. 482–489, doi:http://dx.doi.org/10.1109/JSEN.2013.2285411.
-  Hai-Ying Zhou, Dan-Yan Luo, Yan Gao & De-Cheng Zuo (2011): Modeling of node energy consumption for wireless sensor networks. Wireless Sensor Network 3(01), p. 18, doi:http://dx.doi.org/10.4236/wsn.2011.31003.