IP Library Patent Application 13360383
Patent Application
App. No. 13/360,383

Multi-Tenant Agile Database Connector

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 None
App. No.
13/360,383
Abstract

A module provides an interface between a multi-tenant database and a non-tenant-specific application instance such that the application instance sends data access commands to the module as if it is communicating with a single-tenant database. The module translates the non-tenant-specific data access command from the non-tenant-aware application into a multi-tenant data access command, as needed, without needing to alter the non-tenant specific application instance in any way. In this manner, a single-tenant application could be used by multiple tenants in a multi-tenant environment.

Claims (30)

1 . An interface module, comprising:

a first input that receives a non-tenant-specific data access command from an application installed on a computer system while the application is invoked by a tenant;

a second input that receives a unique identifier associated with the tenant from a non-application source;

a handler that authorizes, through an authorization, whether the non-tenant-specific data access command is translated to a tenant-specific data access command;

a translator that, upon receipt of the authorization from the handler, translates the non-tenant-specific data access command into the tenant-specific data access command that accesses a subset of data within a data repository accessible by a data collection module installed on the computer system, wherein the subset of data is associated with the unique identifier of the tenant; and

a first output that transmits at least one of the non-tenant-specific data access command and the tenant-specific data access command to the data collection module as a function of the authorization from the handler.

2 . The interface module of claim 1 , wherein the first output sends the tenant-specific database command to a standard database connector.

3 . The interface module of claim 2 , wherein the standard database connector is selected from the group consisting of n ODBC driver, a JDBC driver, and an ADOdb driver.

4 . The interface module of claim 1 , wherein the data collection module accesses a device that collects real-time data to execute the tenant-specific data access command.

5 . The interface module of claim 1 , wherein the tenant-specific data access command comprises a first command and a second command, wherein the data collection module executes the first command on a first data repository and executes the second command on at least one of the first data repository and a second data repository.

6 . The interface module of claim 1 , wherein the translator accesses a security access lookup table to determine a tenant-accessible set of data sources, and ensures that the subset of data composes the tenant-accessible set of data sources.

7 . The interface module of claim 6 , wherein the tenant-accessible set of data sources is accessible only to the tenant.

8 . The interface module of claim 6 , wherein the security access lookup table provides the tenant access to a subset of databases within the data repository.

9 . The interface module of claim 6 , wherein the security access lookup table provides the tenant access to a subset of table entries within the data repository.

10 . The interface module of claim 1 , wherein the translator parses the non-tenant-specific data access command before the step of translation.

11 . The interface module of claim 1 , wherein the translator optimizes the tenant-specific data access command in accordance with an algorithm specific to a type of the data repository.

12 . The interface module of claim 1 , wherein the translator optimizes the tenant-specific data access command in accordance with an algorithm specific to the application.

13 . The interface module of claim 1 , wherein a first portion of the subset of data is associated with a second unique identifier of a second tenant and a second portion of the subset of data is associated with a third unique identifier of a third tenant.

14 . The interface module of claim 13 , wherein the first portion of the subset of data and the second portion of the subset of data are non-overlapping.

15 . The interface module of claim 1 , further comprising:

a third input that receives a second non-tenant-specific data access command from the application while the application is invoked by a second tenant;

a fourth input that receives a second unique identifier associated with the second tenant from the non-application source,

wherein the handler authorizes whether the second non-tenant-specific data access command is translated to a second tenant-specific data access command;

wherein the translator, upon a second authorization from the handler, translates the second non-tenant-specific data access command into the second tenant-specific data access command that accesses a second subset of data within the data repository, wherein the second subset of data is specifically associated with the second unique identifier of the second tenant; and

a second output that transmits either the second non-tenant-specific data access command or the tenant-specific data access command to the data collection module as a function of the second authorization from the handler.

16 . The interface module of claim 1 , wherein the tenant-specific data access command comprises a security certificate that is specific to the tenant.

17 . The interface module of claim 1 , wherein the application sends an encryption key to the data repository to translate encrypted data sent between the application and the data repository.

18 . The interface module of claim 17 , wherein the non-tenant-specific data access command does not contain the encryption key.

19 . The interface module of claim 1 , wherein the tenant-specific data access command comprises an encryption key that encrypts an unencrypted data into encrypted data before writing the encrypted data to the subset of data.

20 . The interface module of claim 1 , further comprising a second output that returns a result set of the tenant-specific data access command to the application.