Extensible Data Provider Querying System for Heterogeneous Sources
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In web browser contexts, accessing and retrieving data from various sources is complicated due to different data formats and access mechanisms, requiring applications to be knowledgeable of multiple APIs, making it difficult to add or modify data sources seamlessly.
Innovation Solution
An independent layer provides a common set of query APIs for client applications to interact with data sources, allowing new data sources to be easily integrated without requiring applications to know specific access mechanisms, and communicates queries to data providers for execution and result retrieval.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications directly access multiple data sources with different APIs, then data retrieval capability is comprehensive, but application complexity increases
Solution Approach 1:
The patent introduces an independent data access layer that acts as an intermediary between applications and multiple data sources. This layer provides a unified API interface that abstracts away the complexities of different data source access mechanisms, allowing applications to access diverse data sources without needing to know their specific access protocols.
Solution Approach 2:
The independent data access layer implements a universal interface that can handle multiple types of data sources through a common set of APIs. This universal layer enables applications to interact with any data source using the same interface, eliminating the need for application-specific knowledge of each data source's access mechanism.
2Productivity
If applications are designed to work with specific data sources, then data access efficiency is optimized, but adaptability to new data sources decreases
Solution Approach 1:
The patent segments the data access functionality into a separate, independent layer that is decoupled from the application logic. This segmentation allows the data access layer to be developed and optimized independently for specific data sources while maintaining a standardized interface, enabling both optimized access patterns and easy integration of new data sources.
Solution Approach 2:
The independent data access layer is designed to be dynamic and extensible, allowing new data sources to be integrated by adding new providers to the layer without modifying the application. The layer can dynamically adapt to different data source types while maintaining consistent access patterns through its unified API.
3Ease of operation
If a unified interface is introduced for data access, then ease of operation improves, but system architecture complexity increases
Solution Approach 1:
The unified interface is implemented through an independent data access layer that serves as an intermediary, absorbing the architectural complexity within the layer itself while presenting a simple interface to applications. This mediator pattern allows the complexity to be contained and managed in one location rather than propagated throughout the entire system.
Data Source
AI summary
Embodiments present a common access mechanism that can be used by one or more applications to access different data sources in a storage layer and have data stored in the data sources returned to the one or more applications. The common access mechanism can be presented by a data model that is implemented by a query and aggregation layer of an extensible querying/scheduling system. At least some individual data sources store data in different formats and have their own specific access mechanisms of which the one or more applications are unaware. In embodiments, the data model creates one or more data providers that are individually associated with individual data sources and knowledgeable of how to access data stored in an associated data source. At least some of the data providers receive queries for data and execute the queries using a different thread than the data model. At least some of the data providers are creatable on a thread that is a same thread as the data model.


