A promising approach to manage these issues is to develop such systems as self-adaptive systems [4] by using selforganization and self-optimization techniques. Each subsystem, then, becomes autonomous and makes decisions based on its own knowledge while taking into account the invariants of the whole system and its environment [5]. Consequently, each subsystem has its own knowledge exchange policy and there is no central point of coordination from which the complete knowledge of the system would be accessible.
This work focuses on a challenging problem for distributed self-adaptive systems: how to minimize the knowledge that needs to be shared and synchronized among the entities of such a system. We do not address the problem of integrating systems not developed to interoperate with each other. Since the subsystems hold only a partial view of the complete system, local decision making requires them to exchange their knowledge to synchronize their partial views, which might be a costly operation. A simplistic and naive solution would be that all entities share all their knowledge with each other. This has several drawbacks, which our approach aims to overcome: