IP Library Granted Patent US 7,752,230
Granted Patent B2
US 7,752,230 · App. 11/246,789 · Granted Jul 6, 2010

Data extensibility using external database tables

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 7,752,230
App. No.
11/246,789
Granted
Jul 6, 2010
Kind
B2
Abstract

In one embodiment, a data processing system includes a first database 304 maintained by a first party (such as a customer); a second database 324, 328 maintained by a second party (such as a vendor) different from the first party; a work queue 316 to specify data to be added to the second database; an extract, transform and load module 308 to write data from the first database to the work queue; and a data import module operable 320 to import data from the work queue to the second database. In the system, the first party is not privileged to write the data directly to the second database but is privileged to write the data to the work queue. The import module transforms the data written to the work queue to a form semantically compatible with the second database.

Claims (90)

1. A data processing system, comprising:

a first database maintained by a first party;

a second database maintained by a second party different from and unrelated to the first party, wherein the second party is at least one of a manufacturer or vendor of a software product comprising an extensible data model defining the second database and wherein the first party is a purchaser of the software product;

a work queue operable to specify data to be added to the second database;

an extract, transform, and load module operable to write data from the first database to the work queue;

a data import module operable to import data from the work queue to the second database, wherein the first party is not privileged to write the data directly to the second database, wherein the data in the first database is semantically incompatible with the second database, and wherein the data import module transforms the data written to the work queue to a semantically compatible form for the second database;

a specification to extend a second database maintained by a second party, the specification being provided by the first party and defining tables and columns to be inserted in, deleted from, and/or updated in a data model defining to the second database;

a modifier operable to modify the data model to reflect the specification and to create the work queue corresponding to the modification;

an identity resolution service operable to maintain a table of entity identifiers, hints, and corresponding natural keys, a hint indicating when a surrogate key is valid for use; and

a key identifier operable to generate new surrogate keys, send new surrogate keys to the identity resolution service along with a corresponding hint that a new surrogate key is available, and use the hint to map from an entity identifier to a corresponding surrogate key.

2. The system of claim 1 , wherein the first party is not privileged to modify directly the semantics of the second database, wherein the first party is not privileged to delete pre-existing data from and update pre-existing data in the second database, and wherein the second party is not privileged to modify directly the semantics of the first database and further comprising:

a modifier to modify the second database as set forth in a set of specifications, wherein the modification comprises at least one of a custom table and a custom column in a table.

3. The system of claim 1 , wherein the extract, transform and load module maps keys and/or identifiers from an external source to natural keys recognized by the first database and further comprising:

a semantics module operable to effect updates to type 2 dimension semantics in the second database to accommodate the imported data.

4. The system of claim 3 , wherein the work queue comprises a natural key to the first database, the natural key being external to the second database, wherein the semantics module presents an object model for updating dimension and fact data, hides from the first party details of the second database, and, in cooperation with the data import module, writes dimension and fact data to the second database, and wherein the data import module converts the natural key to a key internal to the second database and external to the first database.

5. The system of claim 1 wherein the first party is privileged to view at least selected parts of the second database, wherein the modifier creates a new custom table that is parallel to an existing table in the data model, the custom table containing a custom column and a key that relates to the existing table, wherein, for each existing table with a custom column and for each custom table the modifier creates a corresponding work queue, wherein each work queue comprises at least one custom column and a natural key relating to an existing table and receives data from the extract, transform, and load module for import into a respective custom column in the second database and/or into a corresponding custom table, and wherein the first party is privileged to write data to the work queue.

6. The system of claim 1 , wherein the data import module translates data in the work queue to normalized events and makes dimension updates as needed and wherein the modification is at least one of the following:

(i) addition of custom facts to an existing fact table in the second database;

(ii) addition of custom facts to a new table that parallels an existing fact table in the second database;

(iii) addition of custom attributes to existing dimension table in the second database;

(iv) addition of custom attributes to a new table that parallels an existing dimension table in the second database; and

(v) addition of a custom table.

7. A method, comprising:

(a) receiving from a first party a set of specifications defining an extension to a second database maintained by a second party;

(b) modifying, by a modifier, the second database as set forth in the set of specifications, wherein the modification comprises an addition of a custom table and further comprising;

(b1) providing a work queue corresponding to the modification;

(b2) receiving, by the work queue, first data from a first database;

(b3) normalizing, by a semantics module, the first data to form second data, wherein the first data is semantically compatible with the first database and semantically incompatible with the second database and wherein the second data is semantically incompatible with the first database and semantically compatible with the second database;

(b4) writing, by a data import module, the second data to the at least one of a custom table, and a custom column in a table;

(b5) maintaining, by an identity resolution service, a table of entity identifiers, hints, and corresponding natural keys, a hint indicating when a surrogate key is valid for use; and

(b6) generating, by a key identifier, new surrogate keys;

(b7) sending, by the key identifier, new surrogate keys to the identity resolution service along with a corresponding hint that a new surrogate key is available; and

(b8) using the hint to map from an entity identifier to a corresponding surrogate key.

8. The method of claim 7 , wherein a work queue is created for each of a plurality of sets of specifications, wherein, in the receiving step, keys and/or identifiers from an external source are mapped to natural keys recognized by the first database.

9. The method of claim 7 , wherein the first party is a customer and the second party is at least one of a manufacturer and vendor of a software product comprising an extensible data model defining the second database wherein the first party is a purchaser of the software product, wherein the first party is not privileged to modify directly the semantics of the second database, wherein the first party is not privileged to write directly to the second database, wherein a set of specifications defines at least one of tables and columns to be inserted in, deleted from, and/or updated in a data model defining the second database, and wherein the second party is not privileged to modify directly the semantics of the first database.

10. The method of claim 7 , wherein a modifier creates a new custom table that is parallel to an existing table in a data model defining the second database, the custom table containing a custom column and a key that relates to the existing table, wherein, for each existing table with a custom column and for each custom table the modifier creates a corresponding work queue, wherein each work queue comprises at least one custom column and a natural key relating to an existing table and receives data from an extract, transform, and load module for import into a respective custom column in the second database and/or into a corresponding custom table, and wherein the first party is privileged to write data to the work queue and further comprising:

(g) permitting the first party to view only selected parts of the second database.

11. The method of claim 7 , wherein the modification is at least one of the following (i) (iv):

(i) addition of custom facts to an existing fact table in the second database;

(ii) addition of custom facts to a new table that parallels an existing fact table in the second database;

(iii) addition of custom attributes to existing dimension table in the second database; and

(iv) addition of custom attributes to a new table that parallels an existing dimension table in the second database.

12. The method of claim 11 , wherein the at least one of the following (i)-(iv) is (i) addition of custom facts to an existing fact table in the second database.

13. The method of claim 11 , wherein the at least one of the following (i)-(iv) is (ii) addition of custom facts to a new table that parallels an existing fact table in the second database.

14. The method of claim 11 , wherein the at least one of the following (i)-(iv) is (iii) addition of custom attributes to existing dimension table in the second database.

15. The method of claim 11 , wherein the at least one of the following (i)-(iv) is (iv) addition of custom attributes to a new table that parallels an existing dimension table in the second database.

16. The method of claim 7 , wherein a semantics module presents an object model for updating dimension and fact data, hides from the first party details of the second database, and, in cooperation with a data import module, writes dimension and fact data to the second database, and further comprising:

(g) after step (b), deleting the processed set of specifications.

17. The method of claim 7 , wherein, in step (b3), the work queue comprises a natural key to the first database, the natural key being external to the second database, and wherein the data import module converts the natural key to a key internal to the second database and external to the first database.

18. The method of claim 7 , wherein the writing step comprises:

(b4a) comparing a first set of attributes in the second database with a corresponding preexisting second set of attributes in the second database;

(b4b) when the first and second set of attributes are different, determining whether a type 2 attribute has changed;

(b4c) when a type 2 attribute has not changed, executing a type 1 update to the second database; and

(b4d) when a type 2 attribute has changed, generating a new surrogate key and inserting into the second database a new record containing the new surrogate key and the first set of attributes.

19. A computer readable medium comprising processor executable instructions stored on a tangible medium, the instructions to perform the following steps:

(a) receiving from a first party a set of specifications defining an extension to a second database maintained by a second party;

(b) modifying, by a modifier, a data model defining the second database as set forth in the sets of specifications, wherein the modifications comprise a plurality of the following:

(b1) addition of custom facts to an existing fact table in the second database;

(b2) addition of custom facts to a new table that parallels an existing fact table in the second database;

(b3) addition of custom attributes to existing dimension table in the second database;

(b4) addition of custom attributes to a new table that parallels an existing dimension table in the second database; and

(b5) addition of a custom table;

(c) providing a respective work queue for each of the modifications, each work queue comprising a different key associated with the corresponding modification

(d) receiving, by a selected work queue, first data from a first database;

(e) normalizing, by a semantics module, the first data to form second data wherein the second data is associated with a selected key, wherein the first data is semantically compatible with the first database and semantically incompatible with the second database, and wherein the second data is semantically incompatible with the first database and semantically compatible with the second database;

(f) determining, from the selected key and by a data import module, an existing record in the second database;

(g) comparing, by the data import module, an attribute of the existing record with an attribute of the second data;

(h) determining, by the data import module, whether the attribute has changed;

(i) in response to the determining step (h), applying, by the data import module, the following rules:

(i1) when there is no attribute change, not making any change to the second database;

(i2) when there is an attribute change and the changed attribute is a type 2 attribute, generating a surrogate key and corresponding hint for the second data and inserting a new record containing the generated surrogate key and new attribute value into the second database; and

(i3) when there is an attribute change and the changed attribute is a type 1 attribute, updating an existing row of an existing table.

20. A method, comprising:

(a) receiving from a first party a plurality of sets of specifications defining an extension to a second database maintained by a second party;

(b) modifying, by a modifier, a data model defining the second database as set forth in the sets of specifications, wherein the modifications comprise a plurality of the following:

(b1) addition of custom facts to an existing fact table in the second database;

(b2) addition of custom facts to a new table that parallels an existing fact table in the second database;

(b3) addition of custom attributes to existing dimension table in the second database;

(b4) addition of custom attributes to a new table that parallels an existing dimension table in the second database; and

(b5) addition of a custom table;

(c) providing a respective work queue for each of the modifications, each work queue comprising a different key associated with the corresponding modification;

(d) receiving, by a selected work queue, first data from a first database;

(e) normalizing, by a semantics module, the first data to form second data wherein the second data is associated with a selected key, wherein the first data is semantically compatible with the first database and semantically incompatible with the second database, and wherein the second data is semantically incompatible with the first database and semantically compatible with the second database;

(f) determining, from the selected key and by a data import module, an existing record in the second database;

(g) comparing, by the data import module, an attribute of the existing record with an attribute of the second data;

(h) determining, by the data import module, whether the attribute has changed;

(i) in response to the determining step (h), applying, by the data import module, the following rules:

(i1) when there is no attribute change, not making any change to the second database;

(i2) when there is an attribute change and the changed attribute is a type 2 attribute, generating a surrogate key and corresponding hint for the second data and inserting a new record containing the generated surrogate key and new attribute value into the second database; and

(i3) when there is an attribute change and the changed attribute is a type 1 attribute, updating an existing row of an existing table.

Assignments (25)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
BANKRUPTCY COURT ORDER RELEASING THE SECURITY INTEREST RECORDED AT REEL/FRAME 020156/0149 Recorded Jul 25, 2022
From: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
To: AVAYA, INC.; AVAYA TECHNOLOGY LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES
Reel/Frame 060953/0412 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
RELEASE OF SECURITY INTEREST Recorded Jan 9, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.; AVAYA TECHNOLOGY, LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.
Reel/Frame 045032/0213 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
CONVERSION FROM CORP TO LLC Recorded May 12, 2009
From: AVAYA TECHNOLOGY CORP.
To: AVAYA TECHNOLOGY LLC
Reel/Frame 022677/0550 →
REASSIGNMENT Recorded Jun 26, 2008
From: AVAYA TECHNOLOGY LLC; AVAYA LICENSING LLC
To: AVAYA INC
Reel/Frame 021156/0287 →
SECURITY AGREEMENT Recorded Nov 28, 2007
From: AVAYA, INC.; AVAYA TECHNOLOGY LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 020166/0705 →
SECURITY AGREEMENT Recorded Nov 27, 2007
From: AVAYA, INC.; AVAYA TECHNOLOGY LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 020156/0149 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2005
From: AVAYA TECHNOLOGY CORP.
To: AVAYA TECHNOLOGY LLC
Reel/Frame 016787/0469 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2005
From: BLAND, M. ALAN; FRIEDL, STEPHAN EDWARD; JENNINGS, TERRY DON; OLSON, JEFFREY JAMES; WEST, BARBARA JO
To: AVAYA TECHNOLOGY CORP.
Reel/Frame 017086/0711 →