forwarding pointers chains introduce performance problems and are susceptible to broken links
when an entity moves from A to B, it leaves behind a reference in A about where its going
chains for highly mobile entities can become very long
example: SSP Chains
SSP chains are forwarding pointers implemented with a (client stub, server stub) pair
a server stub contains either a local reference to the actual object or a local reference to a remote client stub for that object
whenever an object moves from A to B, it leaves behind a client stub in A, and sets up a server stub in B.
this allows shortcuts to be setup, by keeping track of the chain, when a client stub goes to get a server stub and ends up hitting another client stub, it marks where the final server stub is at
you can piggyback the stub change message on top of the response, by responding directly to the client
when a sever stub is no longer being used, you can cross it out, similar to a form of distributed garbage collection
issues
when stub pairs crashes or becomes unreliable
you can create a LII system to let the where where an object was created always keep a reference to its current location. That reference is stored and maintained in a fault-tolerant way, and eventually allows the user to ask where the object is at whenever the chain is broken.
Home-based approaches
keeps track of current location of an entity, which safeguards against network or process failures