A negotiation model for dynamic composition of distributed applications

Dynamic composition of distributed applications from autonomous components is becoming attractive, and requires new composition models and infrastructures. In this paper, we address the problem of deploying components to remote sites as part of the dynamic composition process. In particular, we discuss the specification and allocation of resources to remotely deployed components. Satisfying the mutual needs of an autonomous component and the environment to which it was deployed suggests a negotiation-based approach. We present a model that allows programmers to specify the negotiation strategy as part of the component and a two-phase deployment protocol. The first phase involves negotiation between lightweight objects and results in either a contract or a failure. In the former case, the component can tailor itself according to the contract before the actual deployment, and in the latter case unnecessary deployment is avoided. The model has been implemented in Java as part of Hadas, an environment for the dynamic composition of distributed applications.