# SCM-IoT: An Approach for Internet of Things Services Integration and Coordination
## 4 Case Study
### Platform Dependent Computational Model
#### 4.3.2 Definition of Notification Conditions for Actuators
In comparison, in SCM-IoT the update() operation modifies the contents of an entry, while the notify() and collect() operations are the operations that synchronize the activities of the participants. However, the SCM-IoT coordination mechanism does not rely on the principle of availability since the table entries already exist and invariably remain there. Instead, coordination is attained when the information content of the entries satisfies some given condition. Thus, the blocking operation of Linda is replaced in SCM-IoT by subscriptions and notifications on the emergence of relevant data. 4. In SCM-IoT, the static nature of the table is not a conceptual limitation of the model but a non-functional constraint that ensures greater efficiency during coordination. A design based on fixed-structure tables may give applications greater clarity by allowing all logically related entries (i.e., those that follow the same editing rules) to be grouped under the same table. However, restructuring a table is possible and requires not updating table entries while performing a collection operation. As can be seen, this condition can still be fulfilled by blocking access until the collection is completed. Once completed, constructive reconfiguration of the table that includes additional fields or entries has no consequences on the suspended applications and can be resumed afterward. It depends entirely on the specification of new applications that the addition of new fields or entries in the table does not interfere with the assumptions on which previous applications were designed. On the other hand, destructive restructuring (deleting existing and in-use fields or entries) must be studied on the basis that each application requires. According to [20], the SCM-IoT coordination model is orthogonal to the computational model. Decoupled interaction is due to the use of primitive operations that allow synchronized access to the contents of the coordination medium. A table-structured coordination medium can be represented as a bidimensional array or an XML DOM structure in most programming languages. Finally, the design of the SCM-IoT primitive operations could be described in terms of design patterns [83]. In addition to the observer (publisher-subscriber) pattern, other patterns have also been used, such as:* Mediator (reduces the complexity of the many direct communication among producers and subscribers to only one with the editor);
* State (the editor modifies its behavior in response to the data pattern detected in the table, including the notification to subscribers);
* Iterator (the collect() operation is an iterator over each entry of the table);
* Interpreter (the dynamic definition of the logical conditions, including relationships (EQUAL, LIKE, BETWEEN) and connectives (AND, OR, NOT, IMPLIES) that describe the relevant data patterns can be implemented to evaluate at runtime the logical conditions given in the application rules);
* Command (the definition of the basic operations that act upon the actuators). These design patterns can be used to build an implementation that is easier to build, test, modify, and reuse.