Proxy Classes for Object-Oriented Remote Procedure Calls in Browsers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based applications lack support for object-oriented remote procedure calls (RPCs) from web browsers to servers, limiting their ability to use an object-oriented approach when accessing remote objects.
Innovation Solution
The system generates proxy classes on the client-side that mirror remote object classes on the server, allowing for object-oriented method invocations and property synchronization without requiring browser add-ons, by sending invocation requests and responses through HTTP messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If web browsers use traditional RPC mechanisms to access server services, then basic remote procedure calls can be made, but object-oriented method invocations are not supported
Solution Approach 1:
The patent introduces a proxy class as an intermediary between the browser and the server. The proxy class contains methods that mirror the remote object's interface, allowing object-oriented method invocations in JavaScript. When a method is called on the proxy, the invocation is automatically converted into an HTTP request to the server, enabling OOP semantics without requiring the browser itself to support RPC natively.
Solution Approach 2:
The proxy class creates a local copy of the remote object's interface definition. By generating a JavaScript class that replicates the remote object's methods and properties, the system enables developers to interact with remote objects using familiar object-oriented syntax, while the actual method invocations are translated into HTTP communications behind the scenes.
2Reliability
If property values are synchronized between client and server in real-time, then data consistency is improved, but communication overhead increases
Solution Approach 1:
The proxy class maintains local copies of property values and provides getter and setter methods that operate on these local copies. When properties are accessed or modified through the proxy, the changes are automatically synchronized with the server in the background. This self-service mechanism ensures data consistency without requiring constant active communication, reducing overhead while maintaining reliability.
3Speed
If all invocation requests are sent immediately to the server, then response time is reduced, but network traffic increases
Solution Approach 1:
The proxy class pre-loads and caches property values from the server before they are actually needed by the application. By performing preliminary data retrieval and storing it locally in the proxy, the system reduces the need for frequent immediate requests to the server, thereby reducing network traffic while maintaining fast response times for subsequent property accesses.
Data Source
AI summary
A system is provided for an application executed by a client to invoke a remote object method of a remote object of a remote object class that is hosted by a server. The application instantiates a proxy of a proxy class that includes a proxy member function with the same signature as the remote object member function. The application associates an object identifier with the proxy. The application invokes the proxy member function of the proxy. Under control of the invoked proxy member function, the application sends to the server an invocation request message that includes the object identifier that is associated with the proxy and an identifier of the remote object member function. The application relies on functionality provided by the browser without the need for the browser to access add-on functionality when executing the application.


