IP Library Granted Patent US 10,255,336
Granted Patent B2
US 10,255,336 · App. 15/150,389 · Granted Apr 9, 2019

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.
G06F17/3056H04L63/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,255,336
App. No.
15/150,389
Granted
Apr 9, 2019
Kind
B2
Abstract

A method for providing database management system support to a source application configured to operate with a source database management system Is provided. The method comprises detecting database management system communications issued by the source application to the source database management system; and responsive to said database management systems communications, impersonating the source database management system to the source application.

Claims (32)

1. A method for providing database management system support by a source application configured to operate with a source database management system, the method comprising: in a processing system:

detecting database management system communications issued by the source application to the source database management system;

responsive to said database management systems communications, impersonating the source database management system to the source application by constructing a target database management system for processing; and

performing an authentication procedure in case 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 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) subsequently authenticating with the target database management system using the user credentials.

2. The method of claim 1 , wherein detecting the database management system communications comprises detecting said communications off a wire protocol associated with the source application.

3. The method of claim 1 , wherein impersonating the source database management system comprises:

for each detected database management system communication,

constructing an equivalent form thereof for processing by a target database management system; and

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

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

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

6. The method of claim 5 , wherein said condition comprises an original query, and the equivalent form comprises a translation of said original query for processing by the target database management system.

7. The method of claim 6 , when said translation comprises a one-to-one mapping between the original query, and an equivalent query in the translation.

8. The method of claim 6 , 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.

9. The method of claim 6 , 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.

10. The method of claim 6 , 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.

11. The method of claim 6 , 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.

12. The method of claim 6 , 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.

13. The method of claim 6 , wherein said original query is translated into at least one query and query lands of the target database management system based on objects with names that match with names in the original query.

14. The method of claim 4 , further comprising performing a normalization operation to normalize said intermediate representation.

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

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

17. The method of claim 3 , 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.

18. The method of claim 3 , 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.

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

20. A system for providing database management system support by a source application configured to operate with a source database management system, the system is configured to:

intercept wire protocol communications issued by a source application to a source database management system;

extract the semantic and syntactic components associated with each intercepted wire protocol communication:

transform said semantic and syntactic components into an equivalent form based on a target database management system;

compile said equivalent form into a database language associated with the target database management system; and

initiate 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 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) subsequently authenticate with the target database management system using the user credentials.

21. The system of claim 20 , wherein said components define a stand-alone entity disposed between the source application and the source database management system.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Feb 26, 2026
From: DATOMETRY, INC.
To: SNOWFLAKE INC.
Reel/Frame 074957/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2018
From: WAAS, FLORIAN MICHAEL; SOLIMAN, MOHAMED; GU, ZHONGXIAN; ANTOVA, LYUBLENA ROSENOVA; CAO, TUAN ANH; SHEN, ENTONG; DULLER, MICHAEL ALEXANDER; ESHLEMAN, JOHN
To: DATOMETRY, INC.
Reel/Frame 047329/0869 →
Continuity (2)
Provisional Application 62158484 · May 7, 2015
Related Publication 20160328442A1 · Nov 10, 2016