XML Policy Matching Engine with Segmented DFA and AFilter Structures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing XML matching systems face scalability issues and high memory consumption when handling large numbers of queries, particularly due to the use of non-deterministic finite automata with wildcard and descendant expressions, which leads to performance bottlenecks and memory exhaustion.
Innovation Solution
The system employs separate data structures for simple and complex XPath queries, using a simple policy lookup data structure for queries without wildcards and a complex policy lookup data structure for queries with wildcards, allowing simultaneous querying and execution of policies, leveraging modified DFA and AFilter structures to optimize memory usage and processing speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a single data structure is used to store all XPath queries (including those with wildcards and descendant expressions), then the system can handle diverse query types, but memory consumption increases and performance bottlenecks occur
Solution Approach 1:
The patent divides the XPath query storage system into two separate data structures: one for simple queries (without wildcards and descendant expressions) and another for complex queries (with wildcards and descendant expressions). This segmentation allows each data structure to be optimized for its specific query type, reducing overall memory consumption while maintaining the ability to handle diverse query types.
2Adaptability or versatility
If non-deterministic finite automata are used to handle wildcard and descendant expressions, then query flexibility is improved, but processing speed decreases and memory exhaustion occurs
Solution Approach 1:
The patent separates query processing into two distinct paths: simple queries are processed using efficient deterministic methods, while complex queries with wildcards and descendant expressions are processed using non-deterministic finite automata. This segmentation ensures that the overhead of NFA is only applied when necessary, maintaining high processing speed for simple queries while preserving flexibility for complex queries.
Solution Approach 2:
The patent applies different processing qualities to different query types: deterministic processing for simple queries and non-deterministic processing for complex queries. This local quality approach optimizes processing speed for the majority of simple queries while maintaining the flexibility needed for complex queries with wildcards and descendant expressions.
3Reliability
If all policies are queried simultaneously for each XML object, then complete policy matching is achieved, but processing time increases
Solution Approach 1:
The patent segments the policy querying process into two simultaneous but separate operations: querying simple policies and querying complex policies. By maintaining separate data structures for simple and complex policies, the system can efficiently process both types without the overhead of searching through all policies for every query, thus reducing processing time while maintaining complete policy matching.
Data Source
AI summary
An XML matching engine and method are provided, where policy rules expressed using XPath/XQuery policies are matched to streaming XML documents. Two distinct data structures are used: a combined modified DFA data structure for storing simple XPath queries (no wildcards or descendents) and a modified AFilter structure for storing complex queries (with wildcards or/and descendents). As the matching engine receives XML tags from XML parser, matching is performed in both structures in parallel.


