IP Library Granted Patent US 6,915,287
Granted Patent B1
US 6,915,287 · App. 10/013,514 · Granted Jul 5, 2005

System, method and computer program product for migrating data from one database to another database

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 6,915,287
App. No.
10/013,514
Granted
Jul 5, 2005
Kind
B1
Abstract

A software tool that is useful when one is attempting to migrate data from one database to another database. In one aspect of the invention, the software tool reduces the complications that may arise when one attempts to migrate data from one Lightweight Directory Access Protocol (LDAP) directory to another LDAP directory, where the schemas for the two directories are not the same.

Claims (62)

1. A method to be implemented on a general purpose computer for migrating records from a source directory having a source schema to a destination directory having a destination schema, comprising:

determining whether an object class defined in the source schema matches an object class defined in the destination schema; and

determining whether the destination schema needs to be modified in order to be compatible with the source schema if it is determined that the object class defined in the source schema matches the object class defined in the destination schema, wherein the determination is based at least in part on information concerning the object class defined in the source schema and information concerning the object class defined in the destination schema, wherein the step of determining whether the object class defined in the source schema matches the object class defined in the destination schema comprises:

creating a first list of object class records, wherein each object class record in the first list is associated with the object class defined in the source schema and includes information about the associated object class;

creating a second list of object class records, wherein each object class record in the second list is associated with the object class defined in the destination schema and includes information about the associated object class;

selecting an object class record from the first list; and

comparing the selected object class record to the object class records in the second list to find a matching or partially matching record.

2. The method of claim 1 , further comprising:

adding an object class directly or indirectly to the destination schema if the second list does not include a matching or partially matching object class record, wherein the added object class is identical to the object class associated with the object class record selected from the first list.

3. The method of claim 2 , wherein the source directory and the destination directory are lightweight directory access protocol (LDAP) directories.

4. The method of claim 3 , wherein the step of adding the object class to the destination schema comprises adding an entry to a lightweight directory interchange format (LDIF) file.

5. The method of claim 3 , wherein the step of adding the object class to the destination schema comprises transmitting a request to an LDAP server associated with the destination directory.

6. The method of claim 1 , further comprising:

adding an object class directly or indirectly to the destination schema if the second list includes a partially matching object class record, wherein the added object class is nearly identical to the object class associated with the object class record selected from the first list.

7. The method of claim 1 , wherein the determination of whether the destination schema needs to be modified in order to be compatible with the source schema is based at least in part on information included in the selected object class record and information included in the matching object class record.

8. A method to be implemented on a general purpose computer for migrating records from a source directory having a source schema to a destination directory having a destination schema, comprising:

determining whether an object class defined in the source schema matches an object class defined in the destination schema;

determining whether the destination schema needs to be modified in order to be compatible with the source schema if it is determined that the object class defined in the source schema matches the object class defined in the destination schema, wherein the determination is based at least in part on information concerning the object class defined in the source schema and information concerning the object class defined in the destination schema;

creating a first list of attribute records, wherein each attribute record in the first list is associated with an attribute defined in the source schema and includes information about the associated attribute;

creating a second list of attribute records, wherein each attribute record in the second list is associated with an attribute defined in the destination schema and includes information about the associated attribute;

selecting an attribute record from the first list;

comparing the selected attribute record to the attribute records in the second list to find a matching or partially matching attribute record;

adding an attribute to the destination schema if the second list does not include a matching or partially matching record, wherein the added attribute is identical to the attribute associated with the attribute record selected from the first list; and

comparing content from the attribute record selected from the first list to content from the matching attribute record to determine whether the destination schema needs to be modified in order to be compatible with the source schema if the second list does include a matching record.

9. The method of claim 8 , wherein the content from the selected attribute record comprises information about syntax that is associated with the attribute associated with the selected attribute record and the content from the matching attribute record comprises information about the syntax that is associated with the attribute associated with the matching attribute record.

10. The method of claim 9 , further comprising creating or selecting a filter if the syntax associated with the attribute associated with the selected attribute record is not equivalent to the syntax associated with the attribute associated with the matching attribute record.

11. A computer system for migrating records from a source directory having a source schema to a destination directory having a destination schema comprising:

first determining means for determining whether an object class defined in the source schema matches an object class defined in the destination schema;

second determining means for determining whether the destination schema needs to be modified in order to be compatible with the source schema, wherein the determination is based at least in part on information concerning the object class defined in the source schema and information concerning the object class defined in the destination schema wherein the first determining means comprises:

a first list of object class records, wherein each object class record in the first list is associated with an object class defined in the source schema and includes information about the associated object class;

a second list of object class records, wherein each object class record in the second list is associated with an object class defined in the destination schema and includes information about the associated object class;

object class selector means for selecting an object class record from the first list; and

object class comparator means for comparing the selected object class record to the object class records in the second list to find a matching or partially matching record.

12. The system of claim 11 , further comprising:

first schema updater means for adding an object class directly or indirectly to the destination schema if the second list does not include a matching or partially matching object class record, wherein the added object class is identical to the object class associated with the object class record selected from the first list.

13. The system of claim 12 , wherein the source directory and the destination directory are lightweight directory access protocol (LDAP) directories.

14. The system of claim 13 , wherein the first schema updater means adds the object class to the destination schema by adding an entry to a lightweight directory interchange format (LDIF) file.

15. The system of claim 13 , wherein the first schema updater means adds the object class to the destination schema by transmitting a request to an LDAP server associated with the destination directory.

16. The system of claim 11 , further comprising first schema updater means for adding an object class directly or indirectly to the destination schema if the second list includes a partially matching object class record, wherein the added object class is nearly identical to the object class associated with the object class record selected from the first list.

17. The system of claim 11 , wherein the second determining means further determines whether the destination schema needs to be modified in order to be compatible with the source schema by comparing information included in the selected object class record with information included in the matched object class record.

18. A computer system for migrating records from a source directory having a source schema to a destination directory having a destination schema, comprising:

first determining means for determining whether an object class defined in the source schema matches an object class defined in the destination schema;

second determining means for determining whether the destination schema needs to be modified in order to be compatible with the source schema, wherein the determination is based at least in part on information concerning the object class defined in the source schema and information concerning the object class defined in the destination schema:

a first list of attribute records, wherein each attribute record in the first list is associated with an attribute defined in the source schema and includes information about the associated attribute; and

a second list of attribute records, wherein each attribute record in the second list is associated with an attribute defined in the destination schema and includes information about the associated attribute, wherein

attribute selector means for selecting an attribute record from the first list;

attribute comparator means for comparing the selected attribute record to the attribute records in the second list to find a matching or partially matching attribute record; and

second schema updater means for adding an attribute to the destination schema if the second list does not include a matching or partially matching record, wherein the added attribute is identical to the attribute associated with the attribute record selected from the first list, wherein the attribute comparator means compares content from the attribute record selected from the first list to content from the matching attribute record to determine whether the destination schema needs to be modified in order to be compatible with the source schema if the second list includes a matching record.

19. The system of claim 18 , wherein the content from the selected attribute record comprises information about syntax that is associated with the attribute associated with the selected attribute record and the content from the matching attribute record comprises information about the syntax that is associated with the attribute associated with the matching attribute record.

20. The system of claim 19 , further comprising a filter that transforms data from the syntax associated with the attribute associated with the selected attribute record to the syntax that is associated with the attribute associated with the matching attribute record.

21. A computer system comprising a data migration software tool, the data migration software tool being operable to:

perform a first process comprising:

comparing a schema of a source database to a schema of a destination database; and

producing a command file that can be used to update the schema of the destination database to be compatible with the schema of the source database;

perform a second process comprising:

comparing the schema of the source database to the schema of the destination database; and

updating directly the schema of the destination database to make the schema of the destination database compatible with the schema of the source database; and

perform a third process comprising:

retrieving an entry from the source database that is to be added to the destination database

determining whether the schema of the destination database will allow the entry to the added to the destination database;

updating the schema of the destination database if the schema will not allow the entry to be added to the destination database; and

adding the entry to the destination database.

Assignments (24)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE PATENT ASSIGNMENT AGREEMENT DATED NOVEMBER 30, 2021 PREVIOUSLY RECORDED AT REEL: 058426 FRAME: 0791. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2022
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058736/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2021
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058426/0791 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
RELEASE OF SECURITY INTEREST Recorded Feb 5, 2018
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 044833/0157 →
RELEASE OF SECURITY INTEREST Recorded Feb 5, 2018
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 044833/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2018
From: MICRO FOCUS SOFTWARE INC.
To: OPEN INVENTION NETWORK, LLC
Reel/Frame 044697/0332 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2018
From: MICRO FOCUS SOFTWARE INC.
To: OPEN INVENTION NETWORK, LLC
Reel/Frame 044682/0544 →
CORRECTION BY DECLARATION OF INCORRECT APPLICATION NO. 10/013534 RECORDED AT R/F 012918/0481 Recorded Nov 9, 2017
From: MICRO FOCUS SOFTWARE INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 044747/0613 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2002
From: REMBOLD, HELMUT; HAFNER, UDO; MOSER, WINFRIED; PHILIPP, MATTHIAS; JOOS, KLAUS; GMELIN, KARL; HERRMANN, BERND; GOLDSCHMITT, VOLKMAR; FRENZ, THOMAS; WEISS, RUEDIGER; SCHAUT, EDMUND; MUELLER, UWE; AMLER, MARKUS; BOCHUM, HANSJOERG
To: ROBERT BOSCH GMBH
Reel/Frame 012918/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2001
From: FELSTED, PATRICK R.; LARSEN, TIMOTHY SCOTT
To: NOVELL, INC.
Reel/Frame 012381/0241 →