Location-independent distributed object references via UUID proxy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional remote procedure call systems fail to locate remote objects that have been moved, as they tightly couple object identity with location, making it impossible for client programs to find the object if it changes machines or becomes disconnected from the network.

Innovation Solution

Location-independent references are created using a proxy object with a universally unique identifier (UUID) that allows clients to obtain a new reference to the remote object by accessing identifier directories, which map UUIDs to updated locations, enabling method calls even after object movement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional remote procedure call systems use location-dependent references, then the reference structure is simple and direct, but the system cannot locate remote objects that have been moved to different machines

Engineering Contradiction:
Improveability to locate remote objectVSAvoidreference structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The reference is segmented into two distinct parts: a location-independent UUID that identifies the remote object globally, and a location-dependent live reference that points to the current machine and port. This segmentation allows the system to separate object identity from object location, enabling the reference to remain valid even when the object moves to a different machine.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The UUID acts as an intermediary between the client and the remote object's current location. Instead of directly embedding the machine and port numbers in the reference, the system uses the UUID to look up the current location through the proxy object and identifier directory, allowing the reference to remain location-independent while still enabling object location.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the reference contains machine and port number information, then method calls can be made directly, but the reference becomes invalid when the object moves location

Engineering Contradiction:
Improvereference validity after object movementVSAvoidmethod call execution
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The reference structure is made dynamic through the proxy object, which automatically updates the live reference component based on the remote object's current location. When the remote object moves to a different machine, the proxy object detects this change and retrieves the new location information from the identifier directory, updating the reference without requiring client intervention.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback through the proxy object, which continuously monitors the remote object's location status. When the remote object moves or becomes unavailable, the proxy object receives feedback about this change and automatically refreshes the live reference by querying the identifier directory with the UUID, ensuring the reference remains current and functional.

Inventive Principle:
Principle #23Feedback

3Reliability

If the system uses secondary active references for object activation, then object mobility is partially supported, but the system fails when the original machine no longer exists on the network

Engineering Contradiction:
Improveobject mobility supportVSAvoidreference management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The UUID serves as a universal, location-independent identifier that works across all machines and network configurations. Unlike conventional systems that rely on machine-specific references or tombstone mechanisms, the UUID provides a single, consistent identifier that remains valid regardless of which machine hosts the remote object, enabling truly universal object mobility across the entire network.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9146789B2Method and apparatus for generating and using location-independent distributed object references
Publication Date: 2015.09.29 SUN MICROSYSTEMS INC
  • US9146789B2 patent drawing
  • US9146789B2 patent drawing
  • US9146789B2 patent drawing

AI summary

Location-independent references include a live reference containing a location of a remote object and a universally unique identifier (UUID) which provides a unique global reference to that remote object. If a method call to the remote object using the live reference fails, the UUID is used to obtain a new reference to the remote object and the new reference is then used to make another method call. A new reference can be obtained from an identifier directory that contains a mapping between UUIDs and location-independent references. When a remote object is first created, or when a remote object is moved from one location to another, the remote object registers with any and all such directories that it can find in its environment. These registrations are leased; that is, if they are not occasionally refreshed by the remote object which registered them, they are dropped from the directory.