Section: New Results

Architecturing Conflict Handling of Pervasive Computing Resources

The rapid development of new devices (further resources) and development tools being opened to third-parties have paved the way to an increasing number of applications being deployed in pervasive computing environments. These applications anarchically access resources. In this situation, it is very common for a resource to be accessed by multiple applications, potentially leading to conflicts. For example, in a building management system, a security application that grants access inside the building, can conflict with an application dealing with emergency situations like fires, preventing the building to be evacuated.

Managing conflicts consists of three main parts, detection, resolution and prevention. These parts crosscut the development cycle of applications and pervasive computing systems. In this work, we have proposed a conflict management process that cleanly separates conflict management tasks by providing a design method and supporting tools [18] . This facilitates the work of developers, architects and administrators, who can follow clear guidelines to manage conflicts.

The main contributions of this work are the following:

  • We have identified requirements at different stages during the development cycle that are necessary to detect, resolve, and prevent conflicts. We have assigned duties and responsibilities to existing roles, that are carried out during the conflict management process without interfering with the standard application development.

  • We have extended a domain-specific design language to declare conflict resolution at an architectural level. During the conflict management process conditions are specified and prioritized. Afterwards conflicting applications (inter application) or modules (intra application) are linked to these conditions.

  • The declared information is used to generate code dedicated to conflict handling. On the one hand, a compiler generates a dedicated framework that guides the implementation of the conflict handling logic at application and system level. On the other hand, it generates code that orchestrates resource accesses and prevents conflicts.