• No results found

There are a number of issues related to this work that can become the basis for further research. Some of the most significant elements are considered in the following sections.

7.3.1

Support Conflict Detection

Dealing with conflicts in adaptive systems is a two-step process: conflict detection and conflict resolution. This thesis demonstrates that support for reconfigurable coordinated adaptation can offer the mechanisms for conflict resolution. Though beyond the main focus of this thesis, chapter 6 offered a discussion of the problem of conflict detection. In particular, the fact that adaptive methods can have side-effects or depend on other applications in the system is highlighted as one of the main reasons of conflicts. The dependencies between applications’ actions are generally related to the semantics of the applications and in particular the adaptive methods they implement. One particularly interesting aspect of conflict detection is the issue of user perception in the identification of conflicts as discussed in this thesis (Section 6.2.3).

Considering these observations, future research in the area of conflict detection in adaptive systems should consider both the inter-dependencies of multiple applications and the involvement of the user in the identification of conflicts. In more detail, con- flict detection should combine both a mechanism for identifying potential conflicts and a mechanism where the user can identify the reasons the system exhibits certain un- desirable behaviour. Both of these mechanisms should include the identification of dependencies between applications and their adaptive behaviour.

A possible approach for supporting conflict detection is to require the assistance of the application in the identification of dependencies. Specifically, applications should be able to express their dependencies, either in abstract terms (e.g. in terms of resources or types of services) or explicit dependencies on certain applications and functionality. With the use of these dependency declarations a platform supporting conflict detection should be able to construct a dependency graph that illustrates how adaptation actions performed by one application can have side-effects or depend on other actions and/or ap- plications. This approach for identifying dependencies between applications can allow the investigation of mechanisms for the detection of possible conflicts and potentially suggest solutions for overcoming these conflicts. Furthermore, the dependency graph can be a useful tool for the user to comprehend how different applications interact with each other and what policy modifications are necessary in order to achieve a specific user goal.

7.3.2

Policy Management

The design of the platform presented in this thesis identifies the use of policy based mechanisms for the specification of adaptive behaviour. A particularly interesting re- search issue is the design of a policy management system on top of the existing platform that can allow flexible management of policies.

Existing policy management system [Damianou01] define different classes of policy rules (e.g. obligation, authorisation). The Event Calculus Policy Language allows the specification of obligation policy rules only as required for the specification of adapta- tion actions. An extension of this language with the inclusion of more policy rule classes (e.g. authorisation policies) would allow the construction of a much more flexible policy management system and provide mechanisms for avoiding conflicts within the specifi- cation of the policy rules. Furthermore, an interesting feature that a policy management system could provide is the introduction of meta policies. Using the syntax of the Event Calculus Policy Language, a certain class of policy rules could be defined that will al- low the dynamic management of existing policy rules. These meta policies could be used to enable or disable particular sets of rules based on either system conditions or user preferences. An example use of meta policies would be to dynamically modify the active policy rules when the system gets into low power mode.

7.3.3

Application to Ubiquitous Computing

The Event Calculus Policy Language was defined in order to satisfy the requirements of context-aware adaptive applications. However, the particular characteristics of this language in terms of support for temporal relationships between events can be applicable to other application domains. Specifically, environments where coordination of multiple entities is of importance can be considered possible candidate domains for the use of the Event Calculus Policy Language.

A particular domain that the author considers as a possible target for the use of this policy language is the area of active environments. Active environments require the coordination of multiple applications and devices in response to changes in the environ- ment. Current work in the domain of active environments can be informally classified in the following categories:

1. Systems that provide support for the exchange of information between applica- tions/devices but rely on the applications themselves to coordinate their actions (e.g. [Johanson02, Brumitt00, Kindberg01]).

2. Systems that use computer learning in order to make the system understand the requirements of the users and coordinate the applications/devices in an active en- vironment accordingly (e.g. [Mozer98]).

3. Systems that use a rule based mechanism allowing the user to specify how the active environment should behave (e.g. [Román03]).

The architecture presented in this thesis and the Event Calculus Policy Language can be considered as potential candidates for a system falling into the third category of active environments. The use of the Event Calculus Policy language for the speci- fication of temporal relationships between events and the specification of entities with duration (i.e. fluents) can be a significant tool in an environment where applications and devices should be coordinated according to user actions and social situations. Such policy rules can allow the user to express abstract situations such as “having a meeting” through environmental state variables such as “number of people in a room”, “volume of the speaker’s voice”, etc. A clear benefit that arises from this approach is that the user has a clear understanding of the conditions that trigger the system’s behaviour and therefore can intervene to modify the system’s behaviour if it is not according to their requirements.