Proxy Classes Defer Remote Method Invocations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based applications face inefficiencies in network bandwidth consumption and execution speed due to limited support for object-oriented remote method invocations (RMIs) from client to server, often relying on non-object-oriented approaches for accessing server-hosted objects.

Innovation Solution

The Object-Oriented Remote Procedure Call (OORPC) system automatically generates proxy classes on the client to facilitate object-oriented interactions with remote objects hosted by a server, enabling efficient invocation and synchronization of method calls and property values, with features like deferred request sending and local property storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If object-oriented remote method invocations are implemented from client to server, then execution speed and interaction efficiency are improved, but network bandwidth consumption increases due to frequent method calls and data transfers

Engineering Contradiction:
Improveexecution speedVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system performs preliminary actions by deferring method invocation requests before actually executing them. The proxy object queues multiple method calls and batches them into a single network transmission, reducing the frequency of network communications while maintaining the appearance of responsive object-oriented interactions to the client application.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple individual method invocation requests are merged into a single batched transmission. The proxy object combines several deferred method calls that would otherwise require separate network round-trips into one consolidated request, thereby reducing network bandwidth consumption while preserving the functional behavior of remote method invocations.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If object-oriented remote method invocations are implemented from client to server, then interaction efficiency with remote objects is improved, but network bandwidth consumption increases due to frequent data transfers

Engineering Contradiction:
Improveinteraction efficiencyVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The proxy object performs preliminary queuing of method invocation requests before transmission. By collecting multiple interaction requests and deferring their execution until a batch is ready, the system reduces the number of network transmissions required, thereby lowering bandwidth consumption while maintaining efficient object-oriented interaction semantics for the client application.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple method invocation requests and their associated data transfers are merged into single batched network communications. This combining of separate transmission operations into consolidated requests reduces the total volume of network traffic while preserving the ease of use and efficiency of object-oriented remote interactions.

Inventive Principle:
Principle #5Merging (Combining)

3Loss of time

If individual method invocation requests are sent immediately to server, then response time for each operation is reduced, but overall network bandwidth consumption increases

Engineering Contradiction:
Improveresponse timeVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The system applies preliminary action by queuing method invocation requests in the proxy object before transmitting them to the server. This deferral mechanism allows multiple requests to be prepared locally without immediate network transmission, reducing the frequency of network communications and bandwidth consumption while maintaining acceptable response times through efficient batching and server-side processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple individual method invocation requests are merged into consolidated batch transmissions. By combining several requests that would otherwise require separate network round-trips into a single transmission event, the system reduces total network bandwidth consumption while the server processes them in an order that maintains operational responsiveness.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3574403B1Deferring invocation requests for remote objects
Publication Date: 2023.06.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3574403B1 patent drawingFigure 1
  • EP3574403B1 patent drawingFigure 2
  • EP3574403B1 patent drawingFigure 3

AI summary

A system is provided for an application executing at a client to send invocation requests to remote objects of a server. Each invocation request is generated when the application invokes a proxy of a proxy class of the application corresponding to a remote object of a remote object class. For each invocation request, when the invocation request is deferrable, the system stores the invocation request. When the invocation request is not deferrable, the system sends to the server an invocation request message that includes each stored invocation request not previously sent and the current invocation request. The system receives invocation response messages from the server. For each invocation response of a received invocation response message, the system provides to the application an indication that the invocation response has been received.