Distributed Rules Engine for Enterprise System Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing business or inference rule engines face challenges in efficiently executing and managing production rules in distributed systems, particularly in real-time environments where scalability and high availability are crucial, and they often lack the flexibility to handle complex rule sets and peak processing times effectively.

Innovation Solution

A distributed rules engine system that utilizes a cluster architecture with a master server and slave nodes for parallel processing, employing XML messages and Java methods for rule execution, along with a contract-execution engine that implements a contractual model with term sets and schedules for optimized rule processing and caching mechanisms to enhance performance and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a distributed cluster architecture with master server and slave nodes is implemented, then scalability and handling of peak processing times are improved, but device complexity increases

Engineering Contradiction:
Improveprocessing capacityVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The rules engine is segmented into a master server and multiple slave nodes, each capable of independently processing rule sets. This segmentation allows the system to scale horizontally by adding more slave nodes to handle increased processing demands, directly resolving the contradiction between processing capacity and system complexity through modular decomposition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each slave node in the cluster is designed with multi-functionality, capable of executing rule matching, event processing, and maintaining local state. This universal design allows any slave node to take over additional processing responsibilities dynamically, improving scalability without requiring specialized components that would increase overall system complexity.

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

2Speed

If parallel processing across multiple nodes is implemented, then processing speed and real-time performance are improved, but reliability and coordination overhead worsen

Engineering Contradiction:
Improverule execution speedVSAvoidsystem coordination
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The master server implements feedback mechanisms by monitoring the state and performance of slave nodes, dynamically assigning and reassigning rule sets based on current system conditions. This feedback loop ensures coordinated operation across parallel nodes while maintaining system reliability through continuous state synchronization and error recovery protocols.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system implements beforehand cushioning through redundant rule set copies distributed across multiple slave nodes and pre-configured failover mechanisms. If a node fails or becomes unresponsive, the master server can immediately redirect processing to other nodes with cached rule sets, maintaining processing speed while ensuring reliability without requiring complex real-time coordination during failures.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Adaptability or versatility

If complex rule sets are processed in real-time, then business logic completeness is improved, but processing time and system resource consumption increase

Engineering Contradiction:
Improverule processing capabilityVSAvoidprocessing delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-compiling and caching rule sets on slave nodes before they are needed for processing. Rule patterns, conditions, and associated actions are pre-validated and stored in optimized data structures, allowing real-time execution of complex business logic without the overhead of interpretation during critical processing moments, thus reducing processing delay while maintaining completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The distributed architecture implements partial action by dividing complex rule sets into smaller, manageable subsets that are distributed across multiple slave nodes. Each node processes a portion of the overall rule set in parallel, and results are aggregated by the master server. This approach maintains business logic completeness while reducing the processing time for individual nodes and overall system resource consumption through parallel execution.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7958077B2Rules engine for enterprise system
Publication Date: 2011.06.07 PAYMO
  • US7958077B2 patent drawing
  • US7958077B2 patent drawing
  • US7958077B2 patent drawing

AI summary

An example embodiment provides a process relating to an inference engine for enterprise systems and enterprise contracts. In the example, the inference engine receives a fact and stores it in an input queue. Then the inference engine retrieves the fact from the input queue and routes the fact to a schedule queue on the basis of the fact's processing schedule and a condition that is part of a rule. The inference engine retrieves the fact from the schedule queue in accordance with the processing schedule and routes the fact to a rule executer on the basis of the fact's contents. The rule executer applies an action to the fact, where the action is also part of the rule and the action transforms the fact or creates new facts. Then the inference engine routes the transformed fact or new facts to the input queue and possibly to a persistent storage device.