Active Object Space for Disconnected Client Coordination
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Object spaces in computer programs are inefficient due to network dependency for operations, result in unnecessary coupling and inflexibility, especially in mobile computing environments, and introduce scalability constraints.
Innovation Solution
Implementing an object space with active objects that can execute independently of client programs, allowing operations to be performed and results obtained even when disconnected, and providing a system with an object space engine and object factory for generating and managing these active objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If operations are performed through the network in object spaces, then coordination between multiple networked entities is achieved, but communication latency increases and performance decreases
Solution Approach 1:
The system segments operations into two categories: those requiring network coordination (performed through object space) and those that can be executed locally (performed by active objects). This segmentation allows time-critical operations to bypass network latency while maintaining coordination for essential operations.
Solution Approach 2:
Active objects serve as intermediaries between client programs and the object space. They execute operations locally on the client side, acting as a mediator that eliminates the need for network round-trips for many operations, thereby reducing communication latency while maintaining the coordination functionality of the object space.
2Stability of the object's composition
If client programs remain connected to the object space, then information consistency is maintained, but unnecessary coupling is introduced and mobile computing is constrained
Solution Approach 1:
Client programs perform preliminary actions by sending operations to the object space before disconnecting. Active objects execute these operations locally, and results are stored for later retrieval. This allows clients to maintain information consistency without remaining continuously connected, enabling mobile computing scenarios.
Solution Approach 2:
The system extracts the execution logic from the networked object space and places it locally in active objects. This extraction allows client programs to obtain results of operations even when disconnected, reducing the coupling between clients and the object space while maintaining information consistency.
3Reliability
If notify operations are implemented for event notifications, then coordination between clients is improved, but scalability is constrained due to performance degradation
Solution Approach 1:
The notification system is segmented into push notifications (for connected clients) and pull notifications (for disconnected clients). Push notifications provide efficient real-time coordination for connected clients, while pull notifications allow disconnected clients to retrieve results asynchronously, improving overall system scalability.
4Productivity
If active objects execute independently of client programs, then performance is enhanced by reducing network dependency, but device complexity increases
Solution Approach 1:
Active objects are designed as universal components that can execute various operations locally. They serve multiple functions: executing operations, storing results, and managing disconnections. This multi-functionality reduces the need for separate mechanisms for each function, thereby managing device complexity while enhancing execution performance.
Data Source
AI summary
A technique for facilitating coordination of actions by multiple programs involves providing an execution environment for active objects. The execution environment may be an object space. Client programs may write active objects to the object space, which execute on behalf of the client programs. The client programs may obtain the results of the executed active objects, even if the client program is disconnected from the object space while the active object is executing.


