# SCM-IoT: An Approach for Internet of Things Services Integration and Coordination
## 2 Related Work
### Abstract Models of Distributed Systems  
From the perspective of formal modeling of IoT systems, at least three inherent properties that characterize IoT systems can be recognized: concurrency, interaction, and reconfigurability [66; 67]. Concurrency is a fundamental property of any distributed system [68; 69]. A concurrent system is organized in computational subsystems or components that exhibit a relatively independent behavior from each other while developing their activities. Components possess a configuration determined by their internal state and their knowledge of the context they operate. From an engineering perspective, concurrency promotes efficiency in achieving several activities by reducing the time to complete all of them. However, this improvement introduces the need to coordinate precedence relationships between component activities by establishing those that must finish before starting others [70]. A formal visual representation of the concurrency of a system can be seen by a directed graph where component activities are represented by nodes and precedence relationships between activities by the directed arcs that link them [67,71]. The interaction between components provides a flexible mechanism to coordinate these dependencies properly. The interaction between the components of a distributed system lies in the elementary ability to perceive changes in their environment and perform actions accordingly. The environment establishes a computational context that may consist solely of components or include a communication medium. Direct interactions [72,73] between components are conducted through the exchange of messages, where the message sending component reveals its intention to deliver information using a signal that is perceived only by the receiving component, which then prepares to receive it. In representing a system as a directed network between activities, the direct interaction between components can be represented as a precedence relationship from the sending component to one or more receiving components. Indirect interactions between components are conducted through a communication medium that can be realized over a possibly shared, persistent, or transactional storage space as in the Linda coordination model [20,21]. Through this storage space, decoupled interactions between components are developed, i.e., where it is not necessary to know the identity between the participating components but to know the identity of the subspace where the information will be stored by the sender and eventually retrieved by the receivers. In the activity dependency graph, indirect interaction can be modeled by additional fictitious activities, although this approach makes this representation complex. A more suitable type of representation is Petri nets [16,74,75], where there is a clear distinction between two types of nodes, in activities (transitions) and partitioned storage space (places), as well as their dependency relationships that indicate the flow of information to or from the medium. Reconfigurability refers to the ability of a highly dynamic distributed system to modify its configuration, including that of its components [67,76]. In modern internet-based distributed systems, it is increasingly common to change the computational locality of an agent, human or computational, represented by a component. Changing locality involves following connection and disconnection protocols between components to preserve communication dynamically [66]. In its representation as directed graphs, the reconfiguration of a distributed system can be seen as a change in the graph by deletion of an incident arc at one node followed by the creation of a new incident arc at another node but with the same origin node [77]. In IoT, the ability to reconfigure a system is crucial in the presence of frequent disconnections between components due to their unstable communication medium, intermittent operation, or physical substitution.