Client-Side Proxy for Object-Oriented RPC Synchronization
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 hosted by servers.
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 cloud-based applications use traditional web service interfaces (WSDL) or RPC mechanisms, then they can access server services, but they lack support for object-oriented RPCs and cannot use an object-oriented approach when accessing remote objects
Solution Approach 1:
The patent creates proxy classes that are local copies of remote object classes. These proxy classes replicate the structure, methods, and properties of the actual remote objects, allowing the application to interact with them using familiar object-oriented syntax. The proxy classes contain stub code that automatically generates and sends RPC requests to the server, eliminating the need for complex interface definitions while maintaining object-oriented access patterns.
Solution Approach 2:
The proxy class acts as an intermediary between the application and the remote object. It translates object-oriented method calls into RPC requests, manages communication protocols, and handles response processing. This intermediary layer shields the application from the underlying communication complexity while enabling object-oriented access to remote services.
2Reliability
If the application sends frequent invocation requests to the server to retrieve property values, then it maintains up-to-date data, but it increases network communication overhead and reduces efficiency
Solution Approach 1:
The application retrieves property values in advance during method invocation and stores them locally in the proxy object. This preliminary action allows subsequent property accesses to use the cached local values without triggering additional server requests, reducing communication overhead while maintaining data availability for immediate use.
Solution Approach 2:
Instead of retrieving all property values on every access, the application selectively retrieves only the properties needed for the current operation. The proxy class caches these partially retrieved values locally, balancing between maintaining data synchronization and minimizing unnecessary network communications.
3Adaptability or versatility
If the application uses interpreted JavaScript for browser execution, then it achieves cross-platform compatibility, but it sacrifices execution efficiency compared to compiled languages
Solution Approach 1:
The proxy class is implemented in JavaScript and executed natively by the browser without requiring external add-ons or plugins. It self-manages the entire RPC process including generating requests, sending them to the server, receiving responses, and updating local state. This self-service approach leverages the browser's built-in JavaScript engine to achieve both compatibility and acceptable execution efficiency.
Solution Approach 2:
The patent combines the proxy class implementation, RPC request generation, response processing, and property caching functionality into a single integrated JavaScript component. This merging eliminates the need for separate runtime environments or add-ons, allowing the entire object-oriented RPC mechanism to execute efficiently within the browser's native JavaScript engine.
Data Source
AI summary
A system is provided for synchronizing a property value between a proxy of an application of a client and a corresponding remote object of a server. The application instantiates a proxy of a proxy class corresponding to a remote object of a remote object class where the proxy class specifies a property with a proxy getter. The application sends to the server an invocation request message to invoke a remote object member function of a remote object and receives an invocation response message. When the invocation response message includes a property update, the application extracts from the invocation response message the value of the property from the property update and stores the extracted value in the proxy. When the proxy getter for the property is invoked, the value of the property can be retrieved from the proxy without having to send an invocation request message to the server.


