IP Library Granted Patent US 8,924,575
Granted Patent B2
US 8,924,575 · App. 14/170,655 · Granted Dec 30, 2014

Database virtualization

Inventors: Andrew E. Kimball (Sammamish, WA); Jeffrey R. Currier (Issaquah, WA); Xiaoyu Wu (Sammamish, WA); Zhongwei Wu (Sammamish, WA)
Assignee: Microsoft Corporation
H04L63/0281H04L67/2814H04L67/1021G06F17/3056
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 8,924,575
App. No.
14/170,655
Filed
Feb 3, 2014
Granted
Dec 30, 2014
Kind
B2
Art Unit
2457
USPC
709/228
Abstract

Aspects of the subject matter described herein relate database virtualization. In aspects, clusters of database servers may be located at various locations of the Internet. When a client seeks to access a logical database, the client may send a logical server and logical database name in a data structure. These names may be used to find a physical server(s) and database(s) that correspond to the logical database. Once the location is determined, a proxy component is used to intercept and/or forward communications between the client and the physical server(s) and database(s) corresponding to the logical database. Using this system, a client may access data from a logical database without knowing the physical address of the logical user database.

Claims (44)

1. At a computer system, a method comprising:

encoding a logical server name and logical database name in a data structure to send to access a physical database or partition corresponding to the logical database;

providing at least the logical server name to a domain name system server;

receiving a network address corresponding to the logical server name from the domain name system server;

sending the data structure to a gateway reachable via the network address, the gateway operable to determine a physical server that hosts the physical database and to act as a proxy in obtaining data from the physical database;

negotiating one or more parameters of a connection with the gateway;

receiving, via the connection, a request to provide credentials; and

providing the credentials via the connection.

2. The method of claim 1 , wherein encoding a logical server name into a data structure comprises encoding the logical server name into a domain name recognizable by the domain name system server.

3. The method of claim 1 , wherein encoding a logical server name into a data structure comprises encoding the logical server name into a database connection string.

4. The method of claim 1 , wherein encoding a logical server name into a data structure comprises encoding the logical server name into a user name field.

5. The method of claim 1 , wherein receiving a network address corresponding to the logical server name from the domain name system server comprises receiving a network address for a load balancer.

6. The method of claim 1 , wherein receiving, via the connection, a request to provide credentials comprises receiving a request to provide credentials for accessing a logical database corresponding to the logical database name.

7. The method of claim 1 , further comprising accessing the data via the gateway, the gateway functioning as a proxy.

8. A computer program product for use at a computer system, the computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the following:

encode a logical server name and logical database name in a data structure to send to access a physical database or partition corresponding to the logical database;

provide at least the logical server name to a domain name system server

receive a network address corresponding to the logical server name from the domain name system server;

send the data structure to a gateway reachable via the network address, the gateway operable to determine a physical server that hosts the physical database and to act as a proxy in obtaining data from the physical database;

negotiate one or more parameters of a connection with the gateway;

receive via the connection, a request to provide credentials; and

provide the credentials via the connection.

9. The computer program product of claim 8 , wherein computer-executable instructions that, when executed, cause the computer system to encode a logical server name into a data structure comprise computer-executable instructions that, when executed, cause the computer system to encode the logical server name into a domain name recognizable by the domain name system server.

10. The computer program product of claim 8 , wherein computer-executable instructions that, when executed, cause the computer system to encode a logical server name into a data structure comprise computer-executable instructions that, when executed, cause the computer system to encode the logical server name into a database connection string.

11. The computer program product of claim 8 , wherein computer-executable instructions that, when executed, cause the computer system to encode a logical server name into a data structure comprise computer-executable instructions that, when executed, cause the computer system to encode the logical server name into a user name field.

12. The computer program product of claim 8 , wherein computer-executable instructions that, when executed, cause the computer system to receive a network address corresponding to the logical server name from the domain name system server comprise computer-executable instructions that, when executed, cause the computer system to receive a network address for a load balancer.

13. The computer program product of claim 8 , wherein computer-executable instructions that, when executed, cause the computer system to receive, via the connection, a request to provide credentials comprise computer-executable instructions that, when executed, cause the computer system to receive a request to provide credentials for accessing a logical database corresponding to the logical database name.

14. The computer program product of claim 8 , further comprising computer-executable instructions that, when executed, cause the computer system to access the data via the gateway, the gateway functioning as a proxy.

15. A computer system, the computer system comprising

one or more processors;

system memory; and

one or more computer storage devices having stored thereon computer-executable instructions a client process, the client process configured to:

encode a logical server name and logical database name in a data structure to send to access a physical database or partition corresponding to the logical database;

provide at least the logical server name to a domain name system server

receive a network address corresponding to the logical server name from the domain name system server;

send the data structure to a gateway reachable via the network address, the gateway operable to determine a physical server that hosts the physical database and to act as a proxy in obtaining data from the physical database;

negotiate one or more parameters of a connection with the gateway;

receive via the connection, a request to provide credentials; and

provide the credentials via the connection.

16. The computer system of claim 15 , wherein the client process being configured to encode a logical server name into a data structure comprises the client process being configured to encode the logical server name into a database connection string.

17. The computer system of claim 15 , wherein the client process being configured to encode a logical server name into a data structure comprises the client process being configured to encode the logical server name into a user name field.

18. The computer system of claim 15 , wherein the client process being configured to receive a network address corresponding to the logical server name from the domain name system server comprises the client process being configured to receive a network address for a load balancer.

19. The computer system of claim 15 , wherein the client process being configured to receive, via the connection, a request to provide credentials comprises wherein the client process being configured to receive a request to provide credentials for accessing a logical database corresponding to the logical database name.

20. The computer system of claim 15 , further comprising the client process being configured to access the data via the gateway, the gateway functioning as a proxy.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
Continuity (2)
Division 12707675 · Feb 18, 2010
Related Publication 20140150076A1 · May 29, 2014