Rules Engine Modification via External XML Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In highly-scaled computing environments, modifying rules engines to ensure compatibility of data streams with endpoint devices is challenging due to frequent changes in compatibility parameters and the time-consuming nature of updating algorithms across numerous servers, leading to potential incompatibility issues and poor user experiences in online streaming services.

Innovation Solution

A technique for dynamically modifying a rules engine by receiving and applying updated rules data without rebooting computing devices, using pre-defined operations and dimensions to filter compatible data streams for endpoint devices, allowing for quick and uniform updates across multiple servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If rules engine code is changed and deployed to each server, then compatibility determination accuracy is improved, but deployment time and system downtime increase

Engineering Contradiction:
Improvecompatibility determination accuracyVSAvoiddeployment time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The rules engine is segmented into separate components: the core application code remains static on servers, while the rules data is externalized into a configurable format (XML) that can be updated independently. This allows rules to be modified without redeploying the entire application, resolving the contradiction by separating the stable codebase from the frequently changing rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Rules are pre-configured in an external XML file format before being applied by the rules engine. This preliminary preparation allows rules to be updated by simply replacing the XML configuration file rather than modifying and redeploying application code, significantly reducing deployment time while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If manual or scripted configuration changes are performed on each server, then rules engine updates are completed, but error rate and time consumption increase

Engineering Contradiction:
Improverules update capabilityVSAvoidupdate operation simplicity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent merges the rules configuration into a unified external XML file that can be centrally managed and distributed to multiple servers simultaneously. This eliminates the need for manual or scripted changes on each individual server, reducing errors and simplifying operations while maintaining full adaptability of the rules engine.

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If new code is deployed throughout the environment, then compatibility checking accuracy is improved, but risk of endpoint incompatibility increases

Engineering Contradiction:
Improvecompatibility checking accuracyVSAvoidendpoint compatibility reliability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The rules are prepared and validated in advance in the external XML configuration file before being applied by the rules engine. This preliminary validation allows for testing and verification of compatibility rules without exposing endpoints to untested code changes, thereby maintaining high accuracy while reducing risk.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of deploying modified application code to servers, the patent uses a copy of the rules in XML format that can be independently updated and validated. This copying approach allows the rules to be modified and tested without affecting the stable application code, improving accuracy while maintaining reliability.

Inventive Principle:
Principle #26Copying

4Measurement precision

If rules engine is modified frequently to accommodate changing parameters, then compatibility determination accuracy is improved, but system stability deteriorates

Engineering Contradiction:
Improvecompatibility determination accuracyVSAvoidsystem stability
Core Design Contradiction:
Measurement precisionVSStability of the object's composition

Solution Approach 1:

The system is segmented into stable application code and flexible rules configuration. The rules portion can be frequently updated in XML format without affecting the stability of the core application, allowing frequent modifications for accuracy while maintaining system stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables frequent parameter changes by externalizing rules into an XML configuration file that can be modified without changing the application code structure. This allows the rules to adapt to changing compatibility parameters while the stable application framework maintains system overall stability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11025695B2Techniques for modifying a rules engine in a highly-scaled computing environment
Publication Date: 2021.06.01 NETFLIX INC
  • US11025695B2 patent drawing
  • US11025695B2 patent drawing
  • US11025695B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for modifying a rules engine implemented in a highly-scaled computing environment. The technique includes receiving rules data that include a first operation, wherein the first operation is from a set of pre-defined operations and includes at least one dimension that is from a set of pre-defined dimensions and building a list of rules based on the rules data, wherein the list of rules filters an extended list of entries based on the first operation and on a first value that corresponds to the at least one dimension. The technique further includes receiving a request to generate a filtered list of entries, wherein the request references the first value, and, in response to receiving the request, applying the list of rules to the extended list of entries based on the first value to generate the filtered list of entries.