Increasing demands for interconnectivity, adaptivity and flexibility are leading to distributed component-based systems (DCBS) where components may dynamically join and leave a system at run-time. Our research is aimed at the development of an architecture for middleware for DCBS such that the extra-functional properties of resulting systems can be easily tailored to different requirements. To this end, we proposed an architecture based on the shared data space paradigm. This architecture provides a suite of distribution strategies  supporting different application usage patterns. We showed that using different distribution strategies for different usage patterns improved overall performance . As is the case with other middleware for DCBS, the configuration of the selected distribution policies was fixed before run-time. Consequently, these systems cannot adapt to changes in usage patterns that may be due to the joining of leaving of the components in the system. In this paper, we propose a mechanism for the dynamic adaptation of distribution policies to the evolving behaviour of applications. This architecture improves over existing architectures for distributed shared data spaces by providing a mechanism for self-management. We experimentally demonstrate the benefits that may be gained by dynamic adaptation of distribution policies.