Abstract-Internet of Things (IoT) systems process and respond to multiple (external) events, while performing computations for a Sense-Compute-Control (SCC) or a Sense-Only (SO) goal. Given the limitations of the interconnected resource-constrained devices, the execution environment can be based on an appropriate operating system for the IoT. The development effort can be reduced, when applications are built on top of RESTful web services, which can be shared and reused. However, the asynchronous communication between remote nodes is prone to event scheduling delays, which cannot be predicted and taken into account while programming the application. Long delays in message processing and communication, due to packet collisions, are avoided by carefully choosing the data transmission frequencies between the system's nodes. But even when specialized simulators are available, it is still a hard challenge to guarantee the functional and non-functional requirements at the application and system levels. In this article, we introduce a model-based rigorous analysis approach using the BIP component framework. We present a BIP model for IoT applications running on the Contiki OS. At the application level, we verify qualitative properties for service responsiveness requirements, whereas at the system level we can validate qualitative and quantitative properties using statistical model checking. We present results for an application scenario running on a distributed system infrastructure.
I . INTRODUCTIONThe main challenge in the design of systems for the Internet of Things (IoT) is to implement a lightweight architecture with abstractions for an appropriate execution environment, while staying within the resource limitations of the interconnected devices. Such an environment can be based on existing IoT operating systems ([1], [2], [3]), which facilitate system integration by abstracting hardware and allowing control of the system's nodes.In this context, applications are implemented as event-driven systems with processes acting as event handlers that run to completion. Due to the resource limitations and under the condition that an event handler cannot block, all processes of a node share the same stack. When an event is destined for a process, the process is scheduled and the event -along with accompanying data -is delivered to the process through the activation of its event handler.IoT operating systems decouple the applications' design from the low-level kernel functions, which provide CPU multiplexing and event scheduling. Thus, the development of IoT applications can proceed independently from their deployment, which has the advantages of programming at a higher-level, but opens a possibility for design errors at the overall system level. Depending on the way that IoT applications are eventually deployed in a distributed environment, they may have to handle and route many different types of events [4]. In general, it is hard to ensure seamless interactions between the system's components given their high heterogeneit...