Component-based models represent a dominant trend in the construction of wide-area network applications, making possible the integration of diverse functionality contained in modules distributed across the network. Although linkages between modules have traditionally been specified statically, a growing number of frameworks are investigating approaches where appropriate components are dynamically selected and deployed in the network. Dynamic approaches enable flexible adaptation of the application to achieve load-balancing, satisfy QoS requirements, and in general, enable customization to changing client and network characteristics. A key element of dynamic component-based frameworks is the deployment plan, which describes the choice of components, their locations, and linkages. The problem of finding a valid component deployment is harder than traditional optimization problems because one needs to decide on the set of components while satisfying various constraints resulting from ...