Common query runtime system and application programming interface
First Claim
1. A computer-implemented method of communicating with an application using an application programming interface (API), the method executing in a computer system having M front-end languages and N back-end compilers, where M and N are integers, the API method comprising:
- the system receiving from the application, one or more calls to set one or more compile parameters and commands for converting a plurality of input queries in a plurality of language compilers to an XML intermediate language representation, wherein the XML intermediate language representation is a composite of the plurality of input queries, is an explicit representation of the meaning of the plurality of input queries, and has a graph structure; and
the system receiving from the application, one or more calls to convert the XML intermediate language representation to at least one query, the at least one query, when executed, instructing the system to query over a plurality of data sources having differing data models;
wherein the one or more calls to convert the XML intermediate language to at least one query comprises a plurality of API calls comprising commands to a plurality of target generators and corresponding execution engines having different data languages, wherein the plurality of API calls share a common data model comprising operators of the graph structure of the XML intermediate data language representation, and wherein use of the M front-end languages and the N back-end compilers results in only M plus N system paths instead of M times N system paths.
3 Assignments
0 Petitions
Accused Products
Abstract
A query runtime architecture and an exemplary application programming interface suitable for the architecture are presented. The architecture inputs one or more XML queries and views and enables the queries to be translated wherein the queries and views may be run over multiple data sources of different data models. The architecture incorporates front-end compilers which convert input queries and views into an intermediate language representation which represents the meaning of the respective query or view. The architecture may then allow the back-end compiling of the intermediate language representation to target languages compatible with the data sources desired to be queried. The architecture also allows the execution of those target compilations to extract the data requested of the queries. The invention also discloses an example application programming interface for the query runtime system.
109 Citations
14 Claims
-
1. A computer-implemented method of communicating with an application using an application programming interface (API), the method executing in a computer system having M front-end languages and N back-end compilers, where M and N are integers, the API method comprising:
-
the system receiving from the application, one or more calls to set one or more compile parameters and commands for converting a plurality of input queries in a plurality of language compilers to an XML intermediate language representation, wherein the XML intermediate language representation is a composite of the plurality of input queries, is an explicit representation of the meaning of the plurality of input queries, and has a graph structure; and the system receiving from the application, one or more calls to convert the XML intermediate language representation to at least one query, the at least one query, when executed, instructing the system to query over a plurality of data sources having differing data models; wherein the one or more calls to convert the XML intermediate language to at least one query comprises a plurality of API calls comprising commands to a plurality of target generators and corresponding execution engines having different data languages, wherein the plurality of API calls share a common data model comprising operators of the graph structure of the XML intermediate data language representation, and wherein use of the M front-end languages and the N back-end compilers results in only M plus N system paths instead of M times N system paths. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for compilation and execution of input queries producing query results, comprising:
-
a plurality of input devices for receiving a plurality of input queries; a quantity of M front-end query language to intermediate language compilers wherein a composite XML intermediate language representation is compiled from the plurality of input queries, wherein the XML intermediate language representation is an explicit representation of the meaning of the plurality of input queries and has a graph structure; a quantity of N back-end target generators wherein the XML intermediate language representation is transformed into a plurality of target queries; a plurality of data sources for querying over; and a plurality of execution engines wherein the plurality of target queries are executed over the plurality of data sources to produce the query results; and wherein use of the M front-end query language to intermediate language compilers and the N back-end target generators results in only M plus N system paths instead of M times N system paths. - View Dependent Claims (10, 11, 12, 13, 14)
-
Specification