Client-Side RPC Stubs for Offloading Sensitive Web Functions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As Web applications shift processing from servers to clients, developers face challenges in implementing functionality that requires sensitive information and performance optimization, as sensitive information should not be downloaded or executed on end-user devices.
Innovation Solution
A system and method for offloading execution of client-side Web application functions to a server, where client-side scripting language files are modified to include remote procedure call (RPC) stubs, allowing sensitive functions to be executed on the server while maintaining user privacy and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If client-side scripting language files are downloaded to end-user devices for execution, then Web application functionality can be executed locally with reduced server load, but sensitive information becomes accessible on end-user devices creating security risks
Solution Approach 1:
The patent segments the Web application into two distinct parts: client-side scripting language files containing sensitive information and RPC stubs containing only function signatures. The sensitive source code remains on the server while only the stubs are downloaded to client devices, allowing local execution without exposing sensitive information.
Solution Approach 2:
The patent extracts the sensitive source code elements from the client-side scripting language files and retains them exclusively on the server. Only the essential function signatures and RPC stubs are extracted and deployed to client devices, separating the sensitive core logic from the executable client code.
2Loss of energy
If sensitive functions are executed on end-user devices, then processing can be distributed to reduce server load, but performance may degrade due to limited client computing resources
Solution Approach 1:
The patent divides computational tasks into two categories: non-sensitive functions that can be executed locally on client devices to reduce server load, and sensitive functions that remain on the server where they can be executed with full computing resources, thereby optimizing both energy distribution and performance.
Solution Approach 2:
The patent introduces RPC stubs as intermediaries between client devices and the server. These stubs enable local invocation of server-side functions, allowing clients to trigger sensitive function execution on the server without directly accessing or executing the sensitive code, thus maintaining performance while enabling distributed processing.
3Object-affected harmful factors
If client-side scripting language files are modified to include RPC stubs, then sensitive information can be protected from client access, but development complexity increases due to the need for file modification and server compilation
Solution Approach 1:
The patent performs preliminary modification of client-side scripting language files during the deployment phase, replacing sensitive source code with RPC stubs before distribution to clients. The server compiles and prepares the modified files in advance, so that once deployed, clients receive pre-processed files that inherently protect sensitive information without requiring complex runtime protection mechanisms.
Solution Approach 2:
The patent creates simplified copies of the original client-side scripting language files, replacing the full source code with lightweight RPC stubs that contain only function signatures and invocation logic. These copied files are deployed to clients, maintaining the original file structure and syntax while removing sensitive information, thus minimizing development complexity.
Data Source
AI summary
Offloading execution of a portion of a client-side Web application to a server. In one embodiment, for example, a computer-implemented includes identifying a function to-be-offloaded in a client-side scripting language file; generating an offloaded function based on the function to-be-offloaded; replacing, in the scripting language file, the body of the function to-be-offloaded with client RPC stub which, when executed by an end-user computing device as a result of a call to the function to-be-offloaded, causes one or more arguments passed into the function to-be-offloaded to be marshalled and sent to a server in one or more network messages.


