Component mobility is an important enabling technology for the design of wide area pervasive applications, but it introduces new challenges in the critical aspect of access control. In particular, when mobility is used for dynamic relocation of distributed components, access from both remote and local mobile components needs to be uniformly controlled. The dynamic determination of execution location, possibly crossing multiple administrative authorities, requires dynamic establishment and enforcement of access control. The deployment over widely heterogeneous hosts and devices requires integration of access control with dynamic probing of resource availability so as to influence the relocation process.This paper presents a model for dynamic specification and enforcement of access control in the context of dynamically relocatable components, and an implementation in the Java-based FARGO framework. The specification follows a negotiation-based protocol that enables dynamic matching of available and required resources by providers and consumers, respectively. Enforcement is provided through a capability-based secure component reference architecture, which uniformly applies to both local and remote references, and through instance-level, as opposed to type-level (supported in Java), access control. Finally, access control is integrated into the programming model in a non-intrusive fashion, by separating the encoding of access control from the encoding of the logic of the application.
6Y. GIDRON ET AL. different bandwidths, reliability and general quality of service. This large and non-uniform deployment space implies that an application developer is unlikely to know in advance how to structure the distributed application in a way that best leverages the available infrastructure. Furthermore, the dynamic nature of such a global environment implies that assumptions made early at design time regarding the underlying physical infrastructure might not hold during deployment time. Thus, static mapping of logical components onto a set of physical hosts-termed the layout of the application-is often undesirable and likely to decrease application scalability.An alternative approach is dynamic layout. Under dynamic layout, components of the application can be relocated to different hosts at runtime, without making any changes to the source code. This capability enables developers to design their application more generically and defer the mapping of components to hosts at runtime. A complementary relocation policy can be encoded, which can utilize less loaded hosts, take advantage of working locally against remote services or data sources, or even continue execution at a different host upon an anticipated failure or network disconnection.For example, consider an application that runs on a handheld device and accesses a large remote database frequently. The device is typically connected with a low-bandwidth, high-latency and highcost network connection, and thus minimizing traffic over this connection is clearly desirable. By mig...