Asynchronous Validation Rules Engine for Client-Server Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in configuring and enforcing business rules across multi-tier client-server architectures to ensure data integrity and security, particularly due to the complexity of synchronous validation processes that can render user interfaces unresponsive during rule evaluation.

Innovation Solution

Implementing a client-side and server-side rules engine that evaluates validation rules asynchronously, allowing developers to configure and integrate rules at desired points of application execution, enabling responsive user interfaces and ensuring data integrity through asynchronous validation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous validation rules are enforced at both client and server, then data integrity is improved, but user interface responsiveness deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoiduser interface responsiveness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The validation process is segmented into two independent phases: client-side synchronous validation for immediate user feedback and server-side asynchronous validation for final data integrity. This segmentation allows the user interface to remain responsive during server validation while maintaining data integrity through both validation layers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Client-side validation rules are executed preliminarily before data is transmitted to the server. This preliminary action provides immediate feedback to users and filters out obviously invalid data, reducing the load on the server and maintaining UI responsiveness during the final server validation process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If validation rules are enforced at both client and server, then data integrity is improved, but system complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidvalidation configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The validation framework is designed with multi-functionality, where validation rules can be applied at multiple levels (field-level, record-level, business-level) and executed at multiple locations (client-side, server-side). This universal design allows a single rule definition to serve multiple purposes and locations, reducing overall system complexity despite the distributed validation approach.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system implements feedback mechanisms where validation results from both client and server are communicated back to the user. This feedback loop simplifies the validation process by providing clear guidance on data entry requirements and reducing the need for complex validation configurations.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If asynchronous validation rules are used, then user interface responsiveness is improved, but validation timing precision deteriorates

Engineering Contradiction:
Improveuser interface responsivenessVSAvoidvalidation timing
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

Validation timing is segmented into distinct phases: synchronous client-side validation for immediate response and asynchronous server-side validation for final confirmation. This segmentation provides precise timing control for different validation purposes while maintaining UI responsiveness during the asynchronous server validation process.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9026580B2Validation pipeline
Publication Date: 2015.05.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9026580B2 patent drawing
  • US9026580B2 patent drawing
  • US9026580B2 patent drawing

AI summary

Techniques for configuring validation rules in a client-server architecture, and for enforcing such validation rules are provided. A developer is enabled to configure a display screen for an application to enable a user at a client to input data. The developer is further enabled to input a validation rule that is configured to be applied to validate the data at the client and/or at a server. The validation rule is integrated into code of the application. During execution of the application, a client-side rules engine may be present to evaluate the validation rule at the client, and a server-side rules engine may be present to evaluate the validation rule at the server. The client-side rules engine and server-side rules engine may be configured to evaluate validation rules in an asynchronous manner.