next up previous contents index
Next: Binding Tables Up: Composite Objects Previous: Composite Objects

Concepts

We have introduced a representation for a composite object which includes the presentation description object, the root of the composition and a special kind of object called a binding table. The binding table versions link together a root version and the component versions of a composition which existed at the same time. In that way the historical information of the composite object can be found in its binding table. Notice that the binding tables are also used for the resolution of links to particular versions.      

To maintain the historical information of a composition we should do the following. Whenever a component changes or a component is added or deleted, a new version of the binding table should be created. The root has to be resolved and linked statically to the new binding table version. For every dynamically bound component, which is found using the presentation description object, the component has to be resolved to a particular version and linked statically to the new binding table version.

In practice we do the following. The history of the binding table reflects the history of accessing and modifying that particular composition. We have implemented a lazy propagation policy for the compositions. This means that we do not always update the binding tables immediately whenever a component in a composition changes. We only update the binding table without delay if something in the composition changes while accessed through that specific composition. Also before accessing a composition we make sure that the history of the composition is updated if changes have been made to a component since the last access to the composition. If several possibilities exist to do this updating the user is notified.

This policy allows us to maintain the benefits of dynamic link resolution while maintaining all relevant historical information. By delaying the propagation for compositions through which the component is not accessed, we defer the propagation to higher levels until we access the higher level.





next up previous contents index
Next: Binding Tables Up: Composite Objects Previous: Composite Objects



Martin Sjolin
Thu Jun 15 20:41:59 MET DST 1995