Pluggable DOM Implementation for Scalable XML Data Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current DOM implementations face scalability issues due to high memory requirements and inefficient data conversion when handling XML data in different formats, leading to performance degradation and increased memory consumption as the number of XML documents increases.
Innovation Solution
A scalable DOM implementation is achieved by freeing memory used by nodes no longer referenced, using shadow copies to avoid costly copy operations, and implementing a pluggable DOM with separate API and data layers to handle XML data from various sources, allowing for efficient memory management and format-agnostic data processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If traditional DOM implementations load XML data into memory, then data access and manipulation are enabled, but memory consumption increases significantly
Solution Approach 1:
The patent segments the DOM implementation into multiple components: a format-agnostic API layer and format-specific data layers. This allows the system to load only necessary portions of XML data into memory rather than the entire document, reducing memory consumption while maintaining data access capabilities through on-demand loading of specific nodes or fragments.
Solution Approach 2:
The patent introduces a new dimension of format abstraction by implementing a pluggable architecture where different XML formats (hierarchical, sequential, compressed) can be accessed through a unified API. This allows the system to choose appropriate storage formats that minimize memory usage while providing the same data access operations, effectively moving from a single-memory-dimension model to a multi-format-dimension model.
2Adaptability or versatility
If XML data is converted to DOM format, then standard DOM operations are enabled, but data conversion overhead and processing time increase
Solution Approach 1:
The patent implements a virtual copying mechanism where data from different XML formats is accessed through DOM-compatible APIs without physically converting the entire data structure. The system creates view-layer copies that present DOM-like interfaces to the application while the underlying data remains in its native format, eliminating costly conversion operations while maintaining DOM operation compatibility.
Solution Approach 2:
The patent creates a universal API layer that can operate on multiple XML data formats simultaneously. This format-agnostic interface provides DOM-like operations but adapts its implementation based on the underlying data format, allowing the same code to work with hierarchical, sequential, or compressed XML representations without requiring format-specific conversion logic.
3Adaptability or versatility
If DOM implementations support multiple XML formats, then format flexibility is improved, but system complexity increases
Solution Approach 1:
The patent introduces an intermediary layer (the format-agnostic API) that mediates between the application and multiple XML data formats. This intermediary handles all format-specific logic, allowing applications to interact with a single unified interface while the intermediary translates between different formats internally. This reduces system complexity from the application's perspective while maintaining format flexibility.
Solution Approach 2:
The patent segments the system into distinct layers: a simple, unified API layer that applications interact with, and multiple format-specific implementation layers below. Each format layer independently handles its own parsing and data structures, preventing format complexity from propagating to the application layer. This segmentation isolates complexity while maintaining format flexibility.
4Ease of operation
If memory is allocated for DOM nodes, then data manipulation is enabled, but memory management overhead and fragmentation increase
Solution Approach 1:
The patent implements dynamic memory allocation where DOM nodes are loaded into memory only when accessed and freed when no longer needed. The system uses lazy loading to allocate memory on-demand based on actual access patterns rather than pre-allocating for the entire document. This dynamic approach reduces memory management overhead and fragmentation compared to static allocation while maintaining data manipulation capabilities for accessed nodes.
Data Source
AI summary
Techniques for implementing a scalable DOM and a pluggable DOM are provided. A scalable DOM implementation manages a DOM tree in memory to free unreferenced nodes, avoid generating nodes unnecessarily, and avoid storing multiple versions of the same data on disk. A pluggable DOM implementation includes an abstract interface that is defined between the API layer and the data layer of a DOM implementation. An implementation of the abstract interface is defined for each data source that is plugged in to the pluggable DOM implementation and that stores XML data in a different format.


