Autonomic computing aims at producing software systems that can manage themselves. As component-based development also partly addresses the complexity of large applications, we propose to combine the benefits of both approaches by using components equipped with negotiable contracts. These contracts specify the correct behavior of the components and play a central role in feedback control loops to enforce some autonomic features on components. In this paper, we present
, a contract-based framework for hierarchical components in which contracts are runtime objects that are dynamically built from specifications, and automatically updated according to dynamic reconfigurations. Moreover, contracts clearly define the responsibilities (guarantor, beneficiaries) between their participating components which are exploited by some negotiations to automatically adapt components and contracts, and revalidate the system. The generic negotiation mechanism and an associated concession-based policy are presented.