Since the overall project is based on Chii’s work (“Towards a Solution for On-the-fly Device Failures in Context-Aware Device Ecology Workflows”), before start doing my implementation, an detailed analysis of Chii’s prototype is necessary.
Devices:
All the web services for devices designed by Chii have same two methods, 1. checkStatusOperation, 2.executeTaskOperation, in order to simulate real devices. The former one used for retrieve devices’ status from database, and the latter works for changing (update) the status of devices. All the devices data are maintained in the Deco database, which are kept in Derby of Netbeans IDE in Chii’s prototype
Context:
The context here, means the environment variables such as weather, location, temperature and user’s activities and user’s location, etc. All the context data are obtained from sensors (virtual devices).
Substitution Manager:
When executing a predefined workflow, external factors (such as device failure) may cause run-time errors. Chii has proposed a component “substitution manager” to solve the issue. Once an error was detected, substitution manager will be activated to find a alternative way to get around the error or deal with the error in that context. For example, once the objective is to brighten the living room, however the light in the living room is broken, then the substitution manager will work to find an alternative way to brighten the living room, such as raise the curtain, or switch on the corridor light.
Goal:
We can get an concept from substitution manager, the Goal. The previous example illustrate a way to deal with a light failure problem. Once a failure happened, the substitution manager works to figure out an alternative way in order to reach the same goal. However, sometimes the alternative way would not have that good performance. For example, once the room light is broken, the substitution manager then will manage to switch on the corridor light in order to, to some extent, brighten the room, but it would not works that well compared with directly turning on the room light. Therefore util-Value(???) such as turn the room light directly earns 1 point, while turning the corridor light will only earn 0.5 point.
Adaptive Manager:
All of these functionalities will be managed, or namely be invoked by the adaptive manager, which is published as a web service. Adaptive manager will be involved into the overall workflow, in order to detect and control the device failure in a specific context.
This article mainly aims to introduce the previous work on Decoflow System. Then the next will be the detailed implementation using OpenKnowledge.-Xuan Song