Server-Side Expression Evaluation for API Derived Properties
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current API systems face challenges in efficiently processing requests for new properties defined using expressions, leading to increased complexity and resource usage on the client-side, particularly when performing operations like sorting, filtering, and pagination based on derived properties.
Innovation Solution
The proposed method allows clients to define new properties using expressions within API requests, which are then processed by the server to generate responses, eliminating the need for client-side calculations and enabling scalable and flexible data processing without modifying the object model or storing new properties for each object instance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If clients perform calculations and operations for new properties on the client-side, then flexibility in defining new properties is improved, but client-side processing complexity and resource usage increase
Solution Approach 1:
The patent extracts the calculation and processing logic for new properties from the client-side and relocates it to the server-side. The server receives API requests with expressions defining new properties, evaluates these expressions using the execution engine, and returns the computed results to clients. This extraction eliminates complex client-side processing while preserving the flexibility to define arbitrary new properties through expressions.
Solution Approach 2:
The server acts as an intermediary between the client and the data storage system. It receives requests from clients, processes the expressions to compute new properties, and returns results without requiring clients to perform complex calculations. The server mediates the computation process, allowing clients to simply request new properties while the server handles the evaluation and computation.
2Adaptability or versatility
If clients perform sorting, filtering, and pagination operations on derived properties, then operational flexibility is improved, but resource usage and processing time on the client increase
Solution Approach 1:
The server performs sorting, filtering, and pagination operations on the computed new properties before returning results to clients. By executing these operations in advance on the server-side, the system reduces the data volume and processing requirements that clients must handle, while maintaining full operational flexibility for sorting, filtering, and pagination based on derived properties.
Solution Approach 2:
The server mediates the sorting, filtering, and pagination operations by receiving these operational parameters from clients, applying them to the computed new properties, and returning the processed results. This intermediary approach allows clients to specify operational requirements without performing the actual computationally intensive operations locally.
3Speed
If the system stores new properties for each object instance, then data access efficiency is improved, but storage requirements and system complexity increase
Solution Approach 1:
Instead of storing new properties permanently for each object instance, the server computes new properties on-demand by evaluating expressions against the underlying object data. This copying approach creates temporary in-memory representations of derived properties during request processing without persisting them to storage, thereby maintaining fast access during computation while avoiding increased storage requirements.
Solution Approach 2:
The system uses the existing object data and expressions to self-generate new properties during runtime. Rather than relying on pre-stored computed values, the server evaluates expressions against current object state to produce new properties when needed, eliminating the need for additional storage while maintaining data access efficiency through runtime computation.
Data Source
AI summary
Described are techniques for request processing. A server receives from a client a request for first data to be returned to the client. The first data includes a first property of an object. The object is included in an object model and includes a predefined property. The first property is not a predefined property of the object and is a new property defined using an expression included in the request. The request includes any of the predefined property and a constant. First processing is performed at the server to service the request and obtain the first data. At the server in accordance with the first processing, a response to the request including the first data is generated.


