Smart Configuration of Smart Environments
One of the central research challenges in the Internet of Things and Ubiquitous Computing domains is how users can be enabled to “program” their personal and industrial smart environments by combining services that are provided by devices around them. We present a service composition system that enables the goal-driven configuration of smart environments for end users by combining semantic metadata and reasoning with a visual modeling tool. In contrast to process-driven approaches where service mashups are statically defined, we make use of embedded semantic API descriptions to dynamically create mashups that fulfill the user’s goal. The main advantage of our system is its high degree of flexibility, as service mashups can adapt to dynamic environments and are fault-tolerant with respect to individual services becoming unavailable. To support users in expressing their goals, we integrated a visual programming tool with our system that allows to model the desired state of a smart environment graphically, thereby hiding the technicalities of the underlying semantics. Possible applications of the presented system include the management of smart homes to increase individual well-being, and reconfigurations of smart environments, for instance in the industrial automation or healthcare domains.
Semi-automatic service composition systems proposed in the literature often adopt a process-driven paradigm, meaning that users create a composite service by connecting multiple individual, elementary services. Usually, these systems support end users (i.e., process designers) through a formal language or a visual model of the composite service , , and create executable service specifications from the user input .1 Many mashup editors from academia and almost all prominent tools used for service composition in business environments feature visual composition interfaces to make them usable by mashup designers without programming skills . Visual programming abstractions have also been applied in the context of facilitating the configuration of smart environments for end users in home automation scenarios: for instance, end users can stack blocks that represent individual services  or connect pictures of smart objects to describe the desired composite functionality . Specifically for IoT scenarios, the ClickScript  visual programming language has been extended to handle smart things in the WoT . To support users during the service composition process, some of the composition tools that are proposed in the literature can automatically suggest appropriate individual services. While many of these systems provide very limited–often only syntactic–support during service selection, some stand out by providing semantics-based assistance to users when designing composite services (e.g., WebDG  and SOA4All ).
The focus of this paper is on enabling users to combine services that are provided by smart devices in their environment, which remains a heavily researched problem and one of the central challenges for Ubiquitous Computing , . For instance, in a smart home, many heterogeneous devices can modify the environment (e.g., smart thermostats) and provide contextual information about the home (e.g., motion sensors). These could also interact to enable more complex applications that involve multiple cooperating services: motion sensors and smart thermostats could together infer and apply an optimal heating schedule for the home . The same is true for smart factories, where the easy (re)configuration of manufacturing environments is gaining importance –in that domain, the focus is on supporting operators of industrial plants in managing the increasing dynamicity of manufacturing processes. We explore a novel method to facilitate the composition of heterogeneous services for end users. We propose a goal-driven approach, meaning that we ask users to state which properties their smart environment should have (e.g., regarding their personal comfort, such as setting the ambient temperature). Given this semantic statement of a user’s goal, our system determines whether the goal can be reached given the set of available services and infers which user actions [i.e., API requests] are necessary to reach it. The user can then execute these requests and thereby modify his environment to reach the desired goal. Because service mashups are created at runtime, this approach can handle highly dynamic situations. .our goal is to enable such applications to successfully operate in arbitrary environments, that is, not only in the user’s private home, but also in an office environment, in hotel rooms, cars, and public places. They could also be helpful in medical environments, for instance to increase the oxygen saturation to aid asthmatics, or to automatically configure monitor systems to support doctors during clinical diagnostics. A similar idea can be applied in an industrial context, where machines or assembly lines could automatically adjust to support their current operator, and semantics could assist the rapid reconfiguration of manufacturing systems . To this end, we have implemented a proof of concept to derive execution plans for manufacturing environments: this system is able to move workable items between different manufacturing stations by integrating a semi-professional stationary robot (a Universal Robotics UR5) with a Fischertechnik toy robot. The integration between these very heterogeneous devices–the UR5 is driven by the open-source Robot Operating System (ROS), while the Fischertechnik robot connects to a Siemens PLC–takes place on a semantic level. This provides the foundation for rapidly exchangeable manufacturing devices in industrial environments, which is relevant to reduce tooling times and coordinate maintenance operations.
To facilitate the configuration of smart environments for end users by fully automating the service composition step, we propose a goal-driven approach where users express their needs using a graphical configuration environment. In our system, users define the desired state of their smart environment in the form of a semantic goal that is used by a reasoner to deduce the REST requests necessary to reach that goal. The requests can be executed using HTTP, or using CoAP for resource-constrained devices such as battery-powered sensors or embedded automation components. We are able to satisfy complex demands using only first-order logic, which makes our system flexible yet fast. To overcome the complexity of the goal formulation step for end users, we integrated our system with a graphical editor that enables users to easily create a model of the desired state of their environment. This editor then translates the graphical model into a goal in the N3 format, thereby hiding the complexity of the underlying semantics and mitigating the fragility of manual goal formulation. The main advantage of using semantic technologies to deduce service mashups is the flexibility of this approach: because the services are combined at runtime, the system can flexibly react to individual services becoming unavailable by finding alternative paths that also serve to reach the user’s goal.