next up previous contents
Next: Design Paradigms Up: Mobility Mechanisms Previous: Mobility of Code and

Data Space Management

The executing code references resources managed by the local computational environment. If the executing code is moved, the bindings to the resources must be modified in a such way that the moved code holds valid references in the new computational environment. The resources can be split into transferable and non transferable resources. For instance, a byte string is transferable , but a resource of the type printer is not transferable by the mobility mechanism. Transferable resources are furthermore either free or fixed . Though a huge file is transferable it is not desirable by the application because of performance reasons.

Apart from the nature of resources it is also important how the resources are bound to the executing unit. Fugetta et al. [#!FuPic1998!#] describe three kinds of bindings: by identifier , by value and by type .

The strongest binding is the binding by identifier . The executing unit references by identifier an uniquely identified resource. This binding type is used for resources which cannot be substituted by other equivalent resources. If the executing unit moves to a new computational environment the resource, can be moved with the executing unit, presumed that the resource is transferable and free . If the resource can not be re-allocated in the new computational environment, a network reference mechanism must be used. The resource is not moved along with the executing unit. The executing unit holds a reference which points to the resource in the old computational environment. Network references imply that the data space is distributed over the network and complicate the management of state consistency.

If other executing units reference a resource and the by move mechanism is exploited, network references must be assigned to the resting executing units. The removal of bindings of resting executing units which reference moved resources leads to undesirable exceptions if the resting executing unit access the void reference.

If a resource is bound by value to the executing environment, the most convenient mechanism of data space management is by copy . The value of the resource is copied to the computational environment. An alternative is the data space management by move , as described for bindings by identifier. It may also be applied, but especially if a resource is referenced by more than one executing units, network references must be assigned to the remaining executing units with the drawback of the distributed data space.


 
Figure: Classification of mobility mechanisms [#!FuPic1998!#]  

The weakest binding is the binding by type . The executing unit needs a resource of a specific type, no matter which identity or value it has. In this case it is sufficient for the data space management to re-bind . The problem of re-binding is the resource reallocation that may fail if no resource with an appropriate type is available in the new computational environment.

Figure [*] illustrates the classification of technologies for mobile code. The different architectures which utilize these mobility mechanisms are described in the following section.


next up previous contents
Next: Design Paradigms Up: Mobility Mechanisms Previous: Mobility of Code and
Copyright Munich Network Management Team