The service contract is the mechanism that we have chosen for the application to dynamically specify its own set of complex and flexible execution requirement. From the application's perspective, the requirent of an application or application component are written as a set of service contracts, which are negotiated with the underlying implementation. To accept a set of contracts, the system has to check as part of the negotiation if it has enough resource to guarantee all the minimum requirements specified, while keeping guarantees on all the previously accepted contracts negotiated bt other application components. If as a result of this megotiation the set of constracts is acceptd, the system will reserve enough capacity to guarantee the minimum requested resources, and will adapt any spare capacity available to share it among the different contracts that have specified their desire or ability for using additional capacity.