IP Library Granted Patent US 10,628,438
Granted Patent B2
US 10,628,438 · App. 16/018,321 · Granted Apr 21, 2020

Method and system for transparent interoperability between applications and data management systems

Inventors: Florian Michael Waas (San Francisco, CA); Mohamed Soliman (Foster City, CA); Zhongxian Gu (Sunnyvale, CA); Lyublena Rosenova Antova (Sunnyvale, CA); Tuan Anh Cao (San Francisco, CA); Entong Shen (Foster City, CA); Michael Alexander Duller (San Francisco, CA); John Eshleman (Mountain View, CA)
Assignee: DATOMETRY, INC.
G06F16/252H04L63/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,628,438
App. No.
16/018,321
Granted
Apr 21, 2020
Kind
B2
Abstract

A method for providing interoperability between a plurality of database management system. The method comprises a server communicably connected to a plugin-application; receiving, from the source application, a connection request; intercepting communications issued by the source application to a source database management system; and responsive to said intercepted communications, impersonating the source database management system as a target database management system.

Claims (64)

1. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system,

wherein the intercepting of the database management system communications comprises intercepting off a wire protocol associated with the source application.

2. The method of claim 1 , wherein impersonating the source database management system comprises, for each detected database management system communication, constructing an equivalent form for processing by the target database management system; and

sending said equivalent form to the target database management system for further processing.

3. The method of claim 2 , wherein constructing said equivalent form of a database management system communication comprises constructing intermediate representation of said communication.

4. The method of claim 3 , wherein said intermediate representation is based on a relational algebra.

5. The method of claim 3 further comprising performing a normalization operation to normalize said intermediate representation.

6. The method of claim 5 further comprising performing at least one optimization operation on the intermediate representation to eliminate unneeded components.

7. The method of claim 2 , wherein said equivalent form conforms to the syntactic rules and data model of the target database management system.

8. The method of claim 2 , further comprising caching metadata describing the definitions of accessed objects from the target database management system to improve a speed of constructing said equivalent form.

9. The method of claim 2 , wherein said data objects are selected from the group consisting of schemas, tables, columns, functions, and stored procedures.

10. The method of claim of claim 2 , wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system.

11. The method of claim 10 , wherein said original query is translated into a plurality of semantic objects of a query language of the target database management system in order to overcome limitations of said query language.

12. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting communications issued by the source application to a source database management system;

responsive to said intercepted communications, impersonating the source database management system as a target database management system; and

performing an authentication procedure in cases where the source database management system and the target database management system maintain different authentication schemes, wherein for any communication issued by the source application to the source database management system, requiring authentication by the source database management system, performing the authentication procedure comprises performing at least one bridging authentication operation wherein (1) said communication is authenticated against a bridge authentication mechanism based on user credentials obtained from said communication, and (2) said communication is subsequently authenticated with the target database management system by using the user credentials.

13. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request; intercepting communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system,

wherein impersonating the source database management system comprises, for each detected database management system communication, (i) constructing an equivalent form for processing by the target database management system and (ii) sending said equivalent form to the target database management system for further processing,

wherein constructing said equivalent form comprises automatically replacing references to data objects in a query contained in said communication with references to corresponding objects from the target database management system.

14. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting a plurality of communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system by constructing, for each detected database management system communication, an equivalent form for processing by the target database management system, and sending each equivalent form to the target database management system for further processing,

wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system,

wherein said translation comprises a one-to-one mapping between the original query and an equivalent query in the translation.

15. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting a plurality of communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system by constructing, for each detected database management system communication, an equivalent form for processing by the target database management system, and sending each equivalent form to the target database management system for further processing,

wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system,

wherein said original query is translated into at least one query in a query language of the target database management system based on originally referenced objects in said original query.

16. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting a plurality of communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system by constructing, for each detected database management system communication, an equivalent form for processing by the target database management system, and sending each equivalent form to the target database management system for further processing,

wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system,

wherein said original query is translated into at least one query in a query language of the target database management system based on additionally created objects.

17. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting a plurality of communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system by constructing, for each detected database management system communication, an equivalent form for processing by the target database management system, and sending each equivalent form to the target database management system for further processing,

wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system,

wherein said original query is translated into at least one query in a query language of the target database management system based on data types that matched the original query.

18. A method for providing interoperability between a plurality of database management systems, the method comprising:

in a server communicably connected to a plugin-application:

receiving, from a source application, a connection request;

intercepting a plurality of communications issued by the source application to a source database management system; and

responsive to said intercepted communications, impersonating the source database management system as a target database management system by constructing, for each detected database management system communication, an equivalent form for processing by the target database management system, and sending each equivalent form to the target database management system for further processing,

wherein each intercepted communication comprises an original query, the equivalent form of which comprises a translation of said original query for processing by the target database management system,

wherein said original query is translated into at least one query in a query language of the target database management system based on alternative types not found in the original query.

Assignments (1)
CONFIRMATORY ASSIGNMENT Recorded Feb 26, 2026
From: DATOMETRY, INC.
To: SNOWFLAKE INC.
Reel/Frame 074957/0656 →
Continuity (3)
Continuation 15150389 · May 9, 2016
Provisional Application 62158484 · May 7, 2015
Related Publication 20180329916A1 · Nov 15, 2018