U.S. patent application number 10/985180 was filed with the patent office on 2005-04-21 for transferring records between two databases.
Invention is credited to Champagne, Darryl G., Daley, Robert C., Walant, Glen A..
Application Number | 20050086199 10/985180 |
Document ID | / |
Family ID | 21979771 |
Filed Date | 2005-04-21 |
United States Patent
Application |
20050086199 |
Kind Code |
A1 |
Champagne, Darryl G. ; et
al. |
April 21, 2005 |
Transferring records between two databases
Abstract
In order to transfer data between two databases, a computer
program automatically establishes a field map between the record
structures of the two databases using information identifying the
record structure of one of the databases. The field map is
established automatically by correlating a first plurality of the
fields of the first database to a second plurality of the fields of
the second database to establish a field map. The data stored in
the first plurality of fields of a plurality of the records of the
first database is then translated in accordance with the field map.
The information identifying the record structure of one of the
databases identifies the record structure according to a selected
field identification protocol identifying the categories and
properties of the fields in the record structure of that database.
This information may be transmitted to the computer program ahead
of any data transfer so that a data transfer protocol, including
the field map, may be established prior to the start of the data
transfer.
Inventors: |
Champagne, Darryl G.;
(Litchfield, NH) ; Daley, Robert C.; (Nashua,
NH) ; Walant, Glen A.; (Nashua, NH) |
Correspondence
Address: |
FISH & RICHARDSON PC
225 FRANKLIN ST
BOSTON
MA
02110
US
|
Family ID: |
21979771 |
Appl. No.: |
10/985180 |
Filed: |
November 10, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10985180 |
Nov 10, 2004 |
|
|
|
09052769 |
Mar 31, 1998 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.001; 707/E17.006 |
Current CPC
Class: |
G06F 16/258 20190101;
Y10S 707/99954 20130101; Y10S 707/99952 20130101 |
Class at
Publication: |
707/001 |
International
Class: |
G06F 007/00 |
Claims
What is claimed is:
1-72. (canceled)
73. A computer implemented method of transferring data in a first
database stored on a first computer to a second computer storing a
second database, wherein the first and second databases store
records of data and the first and second databases are each
characterized by a record structure, the method comprising the
steps of: establishing a field map relating the fields of the first
and second databases, substantially without user input, by
correlating a first plurality of the fields of the first database
to a second plurality of the fields of the second database using
information identifying the record structure of at least one of the
first and second databases, and translating the data stored in the
first plurality of fields of a plurality of the records of the
first database in accordance with the field map, wherein the
identifying information identifies the record structure according
to a selected protocol, wherein the selected protocol provides a
syntax for identifying the characteristics of a field of the one of
the first and second databases, wherein the identifying information
is transmitted from the first computer to the second computer, and
wherein the identifying information is provided and transmitted
substantially without user input.
74. A computer implemented method of synchronizing data in a first
database stored on a first computer with data in a second database
stored on a second computer, wherein the first and second databases
store records of data and the first and second databases are each
characterized by a record structure, the method comprising the
steps of: transmitting from the first computer to the second
computer information identifying the record structure of the first
database, the information being generated substantially without
user input, and the information identifying categories and
properties of a plurality of fields of the record structure of the
first database, a category identifying the type of information
stored in a field, and a property identifying limits or rules
imposed on data stored in a field, transferring from the first
database to the second database data stored in a plurality of
fields of a plurality of the records of the first database, and
processing the transferred data using the identifying information,
and synchronizing the transferred records with records of the
second database, and when the synchronizing step determines that it
is necessary to transfer one or more records from the second
database to the first database, processing those records using the
identifying information before sending them, wherein the
identifying information identifies the record structure according
to a selected protocol, and wherein the selected protocol provides
a syntax for identifying the characteristics of a field of the one
of the first and second databases.
75. The method of claim 74 wherein the processing applied to
records from the second database before sending them to the first
database includes applying data modifications to field values.
76. The method of claim 75 wherein the data modifications are
applied to make field values conform to the properties for fields
in the first database, as specified by the identifying
information.
77. The method of claim 76 wherein the properties for fields
include a rule of data value for a field of the record structure of
the first database.
78. The method of claim 76 herein the properties for fields include
a maximum size or maximum length for a field of the record
structure of the first database.
Description
REFERENCE TO MICROFICHE APPENDIX
[0001] An appendix (appearing now in paper format to be replaced
later in microfiche format) forms part of this application. The
appendix, which includes a source code listing relating to an
embodiment of the invention, includes ______ frames on ______
microfiche.
[0002] This patent document (including the microfiche appendix)
contains material that is subject to copyright protection. The
copyright owner has no objection to the facsimile reproduction by
anyone of the patent document as it appears in the Patent and
Trademark Office file or records, but otherwise reserves all
copyright rights whatsoever.
BACKGROUND
[0003] This invention relates to transferring records between
incompatible databases.
[0004] Databases are collections of data entries which are
organized, stored, and manipulated in a manner specified by
applications known as database managers (hereinafter, the term
"database" also refers to a database manager combined with a
database proper). The manner in which database entries or records
are organized in a database is known as the record structure of the
database. Fields and records of a database may have many different
characteristics depending on the database's purpose and
utility.
[0005] Databases can be said to be incompatible with one another
when the data structure (or record structure) of one is not the
same as the data structure (or record structure) of another, even
though some of the content of the records is substantially the
same. For example, one database may store names and addresses in
the following fields: FIRST_NAME, LAST_NAME, and ADDRESS. Another
database may, however, store the same information with the
following structure: NAME, STREET NO., STREET_NAME, CITY_STATE, and
ZIP. Although the content of the records is intended to contain the
same kind of information, the organization of that information is
completely different.
[0006] Often users of incompatible databases want to be able to
transfer records from one database to another incompatible database
to populate the incompatible database with new records or to
synchronize the two databases with one another. To do so,
typically, a field map is used which is a set of relationships or
correlations between the fields of the two databases to one
another. Various types of data structures can be used to represent
a field map in computer memory. Field mapping is generally
described in the commonly assigned U.S. Pat. No. 5,392,390,
incorporated herein by reference.
SUMMARY
[0007] In a first aspect, in order to for example transfer data
between two databases, a computer program automatically establishes
a field map between the record structures of the two databases
using information identifying the record structure of one of the
databases. The field map is established automatically by
correlating a first plurality of the fields of the first database
to a second plurality of the fields of the second database. The
data stored in the first plurality of fields of a plurality of the
records of the first database is then translated in accordance with
the field map.
[0008] Embodiments of this aspect of the invention have the
advantage that a computer program does not use a predetermined
field map and requires little or no input from the user for
establishing the field map.
[0009] In a second aspect, prior to transmitting data between two
databases during a data transfer session, information identifying
the record structure of the one of the first and second databases
is transmitted to a computer program and, based on that
information, a data transfer protocol is established. Data stored
in a plurality of fields of a plurality of the records of the first
database is then transmitted, according to the database transfer
protocol, from the first database to the second database.
[0010] Embodiments of this aspect of the invention may include the
following advantages. By transmitting the identifying information
prior to transmitting the data, the specifics of the data transfer
session can be established in the data transfer protocol. In this
manner, the efficiency of the data transfer session is increased,
for example, by limiting the number of transmitted fields or by
limiting the transmitted records to only those which meet a search
criteria.
[0011] In a third aspect, in order to transmit data between two
databases, information identifying the record structure of one of
the two databases is transmitted to a computer program. This
transmitted information identifies both the categories and the
properties of a plurality of fields of the record structure of one
of the two databases. Data stored in a plurality of fields of a
plurality of the records of the first database is then transmitted
from one of the two databases to the other one of the two
databases. The transmitted data is then processed using the
identifying information.
[0012] Embodiments of this aspect of the invention, by providing
both the categories and properties of the fields, can provide a
better picture of the data structure of a database to a computer
program. Therefore, the computer program can more accurately
process the data transmitted from the database. For example, the
computer program can more accurately translate the records of the
database to a form compatible with the record structure of another
database.
[0013] Preferred embodiments of the invention may include one or
more of the following features.
[0014] Data stored in the plurality of fields of the plurality of
the records of the first database is transmitted to the second
database. The data may be translated before the data is transmitted
or may be translated after the data is received at its destination.
The transmitted data may be stored in the second database or at
least one record of the second database may be synchronized with
the transmitted data. Additionally, the first database may be
stored on a first computer and the second database on a second
computer. In that case, the data is transmitted from the first
computer to the second computer.
[0015] All or part of the fields in the data structure of the first
computer is mapped onto all or part of the fields in the structure
of the second computer.
[0016] The information identifying the record structure of one of
the first and second databases identifies the record structure
according to a selected protocol, where the selected protocol
provides a syntax for identifying the characteristics of a field of
that databases.
[0017] The identifying information identifies categories of the
fields in the record structure of the one of the first and second
databases according to the selected protocol and the fields of the
first database are correlated to the fields of the second database
based on the identified categories of the fields. The categories of
the fields in the record structure of the one of the first and
second databases can be classified into a plurality of mapping
classes and the fields of the first database are correlated to the
second plurality of the fields of the second database based on the
plurality of mapping classes. Mapping rules are applied to the
plurality of mapping classes to correlate the fields. One of the
mapping rules can indicate that fields of the one of the databases
having a selected class, if absent in the other one of the
databases, are to be mapped to fields having a selected class.
[0018] The fields of the first and second databases are further
characterized by having selected properties and the identifying
information identifies the selected properties of the fields of one
of the first and second databases according to the selected
protocol. During translation, the data in the fields is then
modified based on the identified properties.
[0019] The identifying information can be transmitted to a computer
program where the computer program correlates the fields of the
first and second databases to establish the field map. The
transmitted information may be in a format according to a selected
protocol and then be converted into the identifying
information.
[0020] Establishing the data transfer protocol can include
correlating the fields of the first database to the fields of the
second database to establish a field map, using information
identifying the record structure of one of the first and second
databases. Establishing the data transfer protocol can also include
determining a plurality of fields of the first database to be
transmitted based on the plurality of the fields of the first
database which were mapped, where the plurality of fields to be
transmitted can be less than all of the fields of the records of
the first database. Establishing the data transfer protocol can
also include determining a plurality of records of the first
database to be transmitted based on a selected criterion, where the
selected criterion includes a criterion for searching a first
database and selecting records matching the selected criterion.
[0021] The invention may be implemented in hardware or software, or
a combination of both. Preferably, the technique is implemented in
computer programs executing on programmable computers that each
include a processor, a storage medium readable by the processor
(including volatile and non-volatile memory and/or storage
elements), at least one input device, and at least one output
device. Program code is applied to data entered using the input
device to perform the functions described above and to generate
output information. The output information is applied to one or
more output devices.
[0022] Each program is preferably implemented in a high level
procedural or object oriented programming language to communicate
with a computer system. However, the programs can be implemented in
assembly or machine language, if desired. In any case, the language
may be a compiled or interpreted language.
[0023] Each such computer program is preferably stored on a storage
medium or device (e.g., ROM or magnetic diskette) that is readable
by a general or special purpose programmable computer for
configuring and operating the computer when the storage medium or
device is read by the computer to perform the procedures described
in this document. The system may also be considered to be
implemented as a computer-readable storage medium, configured with
a computer program, where the storage medium so configured causes a
computer to operate in a specific and predefined manner.
[0024] Other features and advantages of the invention will become
apparent from the following description of preferred embodiments,
including the drawings, and from the claims.
BRIEF DESCRIPTION OF THE DRAWING
[0025] FIG. 1 shows a remote computer and a host computer connected
via a data transfer link.
[0026] FIG. 2 shows a schematic diagram of the components of the
remote and host computers of FIG. 1.
[0027] FIG. 3 is a flow chart of a computer implemented method of
transferring data.
[0028] FIG. 4 is a flow chart of a computer implemented method of
automatically mapping record structures of two databases.
[0029] FIGS. 5A and 5B are flows charts of computer implemented
methods of processing data transferred between the host and remote
computers.
DESCRIPTION
[0030] We will describe various embodiments of computer programs
and systems for transferring records between a database stored on a
remote computer and an incompatible database stored on a host
computer in detail below. It should be noted that the term
"computer" as used here includes any device being capable of
manipulating electronic data and typically having a processor and
memory. Such a device can be, but is not limited to, a hand held
computer, a personal digital assistant, and a personal computers
such as a desktop computer or a notebook computer. Such a device
can also be an electronic device having some "intelligence" or
processing capability, such as an "intelligent" paging device or
cellular telephone. It should also be noted we will use the terms
"host" and "remote" for conveniently differentiating between the
components of a first computer and a second computer and the
programs running on the first and second computers. The first and
second computers may be in any other type of relationship such as
peer to peer, client/server, etc.
[0031] Briefly, in some embodiments described here, at the time of
a data transfer session between the remote and host computers, the
fields of the records of the remote database are dynamically and
automatically mapped to the fields of the records of the host
database. The fields are dynamically mapped in that a computer
program generates a field map without having any previous
information as to the data structure of at least one of the
databases. This information is provided during the data transfer
session. The fields are automatically mapped in that a computer
program generates a field map during the data transfer session
based on a set of predetermined criteria. The computer program does
not use a predetermined field map and requires little or no input
from the user for generating the field map. The map is then used to
translate records of the remote database into a format compatible
with the data structure of the host database.
[0032] To enable such dynamic and automatic mapping, in some
embodiments, the remote computer sends the host computer a record
structure data packet. The record structure data packet, based on a
predefined field identification protocol, identifies the
characteristics of the record structure of the remote database to
the host computer. The host computer then uses that information to
generate a field map for the two databases.
[0033] We will now describe an example of a computer system which
may execute various embodiments of the programs described here for
transferring data between two databases. Referring to FIGS. 1 and
2, a host computer 10 and a remote computer 30 are connected via a
data transfer link 50. Data transfer link 50 may be implemented by
a data transfer medium and data transfer devices 28, 38 in each of
the host and remote computers using that data transfer medium. Data
transfer devices 28 and 38 may be, for example, standard network
interfaces, infra red ports, or telephone modems. The data transfer
medium may in turn be a data communication network, infra red
signals, or telephone lines.
[0034] Each of the host and remote computers 10, 30 includes a long
term storage device storing a database (respectively, referred to
as host database 32 and remote database 34), which may be a
database of a personal information manager (PIM) application. Each
of the host and remote computers 10, 30 further includes a memory
14, 34 and a central processing unit (CPU) 16, 36. Each of the
memory 14, 34 stores at least two types of computer software
programs (which may be stored on a long term storage medium and
loaded into memory 14, 34): host and remote data transfer programs
22, 42 for transferring records between the host and remote
computers 10, 30 and host and remote data processing programs 24,
44 for processing the transferred records by, for example,
populating or synchronizing the records of the database stored in
the long term storage with the transferred records. It should be
noted that data transfer programs 22, 42 typically constitute a
module in either data processing programs 24, 44 or databases 12,
32.
[0035] Host and remote databases 12, 32 each has a record structure
specifying the organization of the data in each of the records of
the database. Each record typically includes a number of fields. In
order to facilitate communicating the record structure of these
databases between remote computer 30 and host computer 10, data
transfer programs 22, 42 use a field identification protocol. A
field identification protocol provides a syntax for identifying and
communicating characteristics of a field of a database. It provides
two types of information: information identifying a "category" for
the field and information identifying a "property" of a field.
[0036] The category of a field defines the type of information the
field is designed or meant to contain. Databases are generally
designed to store data for a particular application, for example,
airline reservations, medical records, etc. In the case of personal
information manager (PIM) applications, several types of databases
are typically used, where the type of a database corresponds to the
type of data stored in the database: appointments, "to do" lists,
address books, expense records, general notes records, and e-mails.
For these types of databases, a field identification protocol
preferably provides a comprehensive list of field categories such
that the fields of most, if not all, of commercially available PIM
databases can be categorized according to the categories in the
field identification protocol. (The same can also be done for other
types of databases.) For example, in the case of an address book
type database, the categories may include: name, last name, first
name, middle initial, address, street name, city, state, home
telephone number, business telephone number, etc. Then, for
example, the record structure of remote database 32 may include a
field that is of the category "name". The record structure of host
database 12 may include equivalent fields of the categories "last
name," "first name," and "middle initial," but not necessarily a
field of the category "name". In other embodiments, the field
identification protocol provides a list of field categories for a
selected group of databases or for those databases designed to
conform to the protocol.
[0037] The property of a field indicates the limits or rules
imposed on the manner in which data is stored in that field. The
property of a field is in addition to the category of that field
and is typically database specific. The property of a field can be
the number of bytes used to store the data in that field. The
property of a field can also include one or more rules governing
the permissible content of the data, such as one or more rules from
the following exemplary list of rules:
[0038] rules on the permissible format in which the data is stored;
for example, for a date field, a rule may specify whether the date
is stored in the year/month/day or month/day/year format or, for a
text field, a rule may specify whether a text field stored in ASCII
with end of line markers or in ASCII without end of line
markers;
[0039] rules on the permissible range of data; for example, for a
"to do" list priority field, the range of data may be limited to
the numbers between one and three;
[0040] rules on the permissible maximum allowable size of a field,
for example, a text field may be limited to 500 characters.
[0041] These rules are also discussed in the following U.S. patent
applications of the assignee hereof, incorporated in by reference
herein: "Synchronization of Recurring Records in Incompatible
Databases", Ser. No. 08/752,490, filed on Nov. 13, 1996
(hereinafter, "'490 application"); "Synchronization of Databases
with Record Sanitizing and Intelligent Comparison," Ser. No.
08/749,926, filed Nov. 13, 1996 (hereinafter, "'926 application");
"Synchronization of Databases with Date Range," Ser. No.
08/748,645, filed Nov. 13, 1996 (hereinafter, "'645 application").
In the '490, '926, and '645 applications, examples of these rules
are referred to as rules of data value.
[0042] As mentioned, a field identification protocol provides a
syntax for remote and host data transfer programs 22, 42 to
communicate with one another the data structure of their respective
databases. Such a syntax includes, for example, assigning to each
field category a designation (for example, a numerical,
alphabetical, or alphanumerical code or name) identifying that
field category, such as "Addr" for address, "Tell" for the first
telephone number, "Appt:date" for a date field of an appointment
type record. The syntax also includes a manner of communicating the
possible properties of the various fields, for example, by using
designations (for example, a numerical, alphabetical, or
alphanumerical code or name) identifying a type of property, such
as "field_size" for designating the number of bytes in a field,
"ApptDate_format" for designating a format of a date field,
"value_range" for designating the range of permissible values, or
"maximum_text_size" for designating the maximum number of the
characters in a text field.
[0043] Generally, a record structure of a database can be mapped to
a record structure of another database based on the categories of
the fields of the databases, as will be described below. However,
in some circumstances, the properties of the fields can affect the
accuracy of the mapping. For example, the content of a field or the
number of bytes representing a field may have to be modified during
translating the field according to the map so that a field fits the
record structure of the other database. (This process is described
as "sanitization" in the '490, '926, and '645 applications.)
Therefore, the records of the two databases can be more accurately
mapped and translated if both the categories and the properties of
the fields of the databases are known.
[0044] Referring to FIG. 3, we will now describe in detail how data
transfer programs 22, 42 use field identification protocols for
generating a field map and transfer the records of remote database
32 to host computer 10. We will then describe how data processing
programs 24, 44 process the transferred records.
[0045] Referring to FIG. 3, steps 305-335 together constitute a
data transfer protocol agreement segment 300. In these steps, host
and remote data transfer programs 22, 42 communicate with one
another and agree to a data transfer protocol to be used for the
rest of the data transfer session. The data transfer protocol
delineates the specifics of how the data is to be transferred
between the two computers. The data transfer protocol may
delineate, for example, that only some of the fields of the records
are to be transferred, that the remote database translate the
records to the records of the host database prior to transmitting
the records to the host database, or that only those records
fitting a particular criteria, such as a database search criteria,
are to be transferred.
[0046] To begin the data transfer session, one of the remote or
host computers 10, 20 initiates a data transfer session (step 305).
Remote data transfer program 42 then sends a record structure data
packet including information identifying the record structure of
remote database 32 to host computer 10 (step 310). To identify the
record structure of the remote database to the host database,
remote data transfer program 42 uses a field identification
protocol, which we will refer to as the "external field
identification protocol". Using the external field identification
protocol, remote data transfer program 42 constructs the record
structure data packet to include the appropriate information and
codes which identify the categories and properties of the fields of
the records of remote database 32. In some embodiments, only the
categories of the fields are identified.
[0047] Host data transfer program 22 uses the record structure
packet from remote data transfer program 42 to automatically map
the records of remote database 12 to the records of host database
(step 320).
[0048] We will describe the automatic mapping process in detail
below in reference to FIG. 4. However, briefly, host data transfer
program 22 uses a series of automatic field mapping rules to
correlate the fields in the record structure of remote database 32
to the fields in the record structure of host database 12. Hence,
host data transfer program 22 develops a field map for mapping the
records of the remote database to the records of the host
database.
[0049] Referring to FIG. 4, host data transfer program 22 uses an
internal field identification protocol which may be different from
the external field identification protocol. Therefore, host data
transfer program 22 first converts the information in the record
structure packet received from remote data transfer program 42 into
a format in accordance with its internal field identification
protocol (step 405). This allows host data transfer program 22 to
be able to receive data structure packets based on any number of
external field identification protocols and support those packets
by merely converting them into its own internal field
identification protocol.
[0050] In steps 410-430, host data transfer program 22,
automatically correlates the fields of the records of the remote
database to the fields of the records of the host database to
develop a field map. We will now describe an exemplary method used
by host data transfer program 22. In this exemplary method, the
internal field identification protocol not only provides a manner
for classifying fields based on the categories and properties, but
also divides the field categories into, for example, five field
classes for automatic mapping: generic, high priority, common,
free, and application specific fields.
[0051] The first class designates the field categories which are
present in the record structure of most, if not all, databases of a
specific type (e.g. address book database). In other words, the
first class designates fields that are "generic" for the type of
database being mapped. For example, for an address book type
database, such fields would include name, address, and telephone.
According to the automatic mapping rules, host data transfer
program 22 maps generic fields of one database to the generic
fields of the other database (step 410). In some cases, a group of
fields in one database contain the same information as a single
field in another database. For example, one database may have a
"name" field while the other database may have separate "first
name", "middle initial", and "last name" fields. In that case, the
group of fields is mapped to the single field.
[0052] Other four classes designate field categories which are not
generic to the type of database being mapped. According to the
automatic mapping rules, these other fields are mapped in a
pre-specified order of priority, if there are suitable fields in
the other database for them. The first of these non-generic classes
are the fields that are designated to have high priority for
mapping. Host data transfer program 22 maps these fields first and
maps them to an unmapped field of the other database (step 415).
The second non-generic class designates the common fields which are
the fields which most commonly are present in the type of database
being mapped but it is not uncommon for a database of this type not
to contain them. For example, in the case of address book
databases, most, but not all, databases have fields for notes or
for a second set of address and telephone number. According to the
automatic mapping rules, host data transfer program 22 maps common
fields of the remote database to the common fields and, based on
user preferences, free fields (for the third non-generic class,
described below) of the host database based on their category and
properly designation (step 420).
[0053] The third non-generic class designates free fields and the
fourth non-generic class designates database specific fields. Free
fields are those fields which do not fall into any of the previous
classes. Host data transfer program 22 maps high priority fields to
the free fields and, based on user preferences, common fields of
the other database (step 425). Database specific fields are those
fields which are unique to a database and are typically not
supported by another database. They are therefore not mapped. In
this case, in some embodiments, the user maps the database specific
field. At the end of this process, the data structures of the
remote and host databases are mapped onto one another.
[0054] As stated above, another aspect of mapping is using the
field property information to determine whether the received data
needs to be modified for proper translation. To determine what
modification is necessary, the properties of the field of the
remote database and the mapped field or fields of host database 12
are compared. It is then determined what changes are necessary to
make the remote database records to conform to the properties of
the fields of the host database records. For example, if a field in
the remote database is a four-byte field and it is mapped onto a
two-byte field, then the field needs to be trimmed. (Similar data
modifications may also be performed on host database records to
conform them to remote database records when sending the host
database records to the remote database, for example, at the end of
synchronization.)
[0055] Referring back to FIG. 3, after automatically mapping remote
database 32 to host database 12 (step 320), data transfer program
22 then determines whether the number of fields of the records to
be transferred should be limited (step 325). It may be the case
that some of the fields of remote database 32 were not mapped to
the fields of host database 12, for example, because host database
12 does not support as many fields or some particular types of
fields. In that case, if remote database 32 and data transfer
program 42 support such a limited data transfer, host data transfer
program 22 sends a packet identifying the particular fields to be
sent (step 330). Remote data transfer program 42 analyzes the
received packet and limits the future data transfer to those
records (step 335). At this point, host and remote data transfer
have agreed to a data transfer protocol establishing the number of
fields to be transferred and the map to be used.
[0056] The data transfer protocol may also contain other features.
For example, as mentioned above, in some embodiments, host data
transfer program 22 may also request that the remote database to
translate the remote database records using the map developed in
step 320 before transmitting the records. In some embodiments, host
data transfer program 22 may request that remote data transfer
program 42 transmit only those records fitting a particular search
criteria, specified based on the database record structure received
from remote data transfer program 42.
[0057] As it is readily apparent, establishing a data transfer
protocol at the beginning of the session provides a variety of
advantages. Host database transfer program 22 can develop a field
map which can be used throughout the data transfer session.
Additionally, the map can be sent to remote data transfer program
42 for translating the records prior to transmitting them.
Moreover, host and remote database transfer programs 22, 42 can
limit the amount of data transferred during the session by remote
data transfer program 42 by limiting the number of transmitted
fields or by limiting the transmitted records to only those which
meet a search criteria.
[0058] After agreeing to a data transfer protocol for the duration
of the data transfer session, remote data transfer program then
sends the data contained in the records of remote database 32,
based on the agreed upon data transfer protocol (step 340). Host
computer then processes the received data, as will be described
below in reference to FIGS. 5A and 5B.
[0059] Referring to FIGS. 5A and 5B, after receiving the data from
remote database 32, data processing program 24 processes the
received records of remote database 32. In some embodiments, data
processing program 24 simply populates the first database with new
records corresponding to the received records. Referring to FIG.
5A, data processing program 24 uses the previously developed map to
translate the received fields of remote database 32 (step 505).
Data processing program 24 then stores the mapped fields as new
records in host database 12, thereby populating the host database
with the received records of the first database (step 510).
[0060] In other embodiments, host data processing program 24
synchronizes the records of host database 12 with the received
records of remote database 32 (or those fields which were
received). Referring to FIG. 5B, as in step 505 in FIG. 5A, data
processing program 24 uses the previously developed map to
translate the received fields of remote database 32 (step 550).
Data processing program 24 then proceeds to synchronize host
database 12 with the received records of remote database 32. Host
data processing program can, for example, use methods of
synchronization described in the '490, '926, and '645 applications;
U.S. patents of the assignee hereof, Puma Technology, Inc. of San
Jose, Calif., incorporated by reference herein: U.S. Pat. No.
5,392,390 and U.S. Pat. No. 5,684,990; and U.S. patent applications
of the assignee hereof, incorporated in by reference herein:
"Synchronization of Databases," filed on Nov. 5, 1997, Ser. No.
08/964,751 (hereinafter, the "'751 application"); "Distributed
Synchronization of Databases", filed on Sep. 11, 1997, Ser. No.
08/927,922 (hereinafter, the "'922 application"); "Synchronization
of Databases Using Filters," by David Morgan and David Boothby,
filed on Mar. 5, 1998, Ser. No. ______ (hereinafter, the "filter
application"). Briefly, host data processing program 24
synchronizes the records of the host and remote databases using a
history file that contains records representative of the records of
the two databases at the end of a previous synchronization. Host
data processing program 24 uses the history file to determine, for
example, which records have been changed, added or deleted since
the previous synchronization and which records of the two databases
correspond to one another. Host data processing program 24 can also
synchronize the two programs without using a history file where,
for example, a history file is not available or can not be used.
Additionally, remote data processing program 44 can perform some
data processing to enable distributed synchronization where a
portion of the synchronization process is performed on remote
computer 30, as described the '751, '922, and filter
applications.
[0061] After synchronization, host data transfer program 24
translates back those remote database records which need to be
updated as a result of synchronization (step 560). Host data
transfer program 24 then transmits those records to remote database
32.
[0062] Other embodiments are within the scope of the following
claims.
[0063] For example, remote data transfer program 42 can develop a
map based on a record structure data packet from host data transfer
program 22. Remote data transfer program 42 can then automatically
map the two databases and then use the map to translate the records
before transmitting them to the host data transfer program 22.
[0064] In other embodiments, instead of agreeing to data transfer
protocol at the beginning of a data transfer, the field category
and property information may be send with each record and then
processed by the other computer.
[0065] In some embodiments, the host and remote databases, and all
relevant programs described here, are stored on a single computer
and the processing and transferring of data is performed on the
same computer. In other embodiments, a field identification
protocol supporting only field categories is used.
* * * * *