Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-08-17
2001-11-27
Dam, Tuan Q. (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C707S793000, C709S219000, C709S221000, C709S227000
Reexamination Certificate
active
06324693
ABSTRACT:
INTRODUCTION
I. Technical Field
This invention relates to a system and method for providing updates to a network of partially replicated relational database systems, and, more particularly, for providing an efficient means for computing the visibility to a client on the network of a transaction processed against the database.
II. Background
Relational databases are a commonly-employed data structure for representing data in a business or other environment. A relational database represents data in the form of a collection of two-dimensional tables. Each table comprises a series of cells arranged in rows and columns. Typically, a row in a table represents a particular observation. A column represents either a data field or a pointer to a row in another table.
For example, a database describing an organizational structure may have one table to describe each position in the organization, and another table to describe each employee in the organization. The employee table may include information specific to the employee, such as name, employee number, age, salary, etc. The position table may include information specific to the position, such as the position title (“salesman”, “vice president”, etc.), a salary range, and the like. The tables may be related by, for example, providing in each row of the employee table a pointer to a particular row in the position table, coordinated so that, for each row in the employee table, there is a pointer to the particular row in the position table that describes that employee's position. A relational database management system (RDBMS) supports “joining” these tables in response to a query from a user, so that the user making a query about, for example, a particular employee, may be provided with a report of the selected employee, including not only the information in the employee table, but also the information in the related position table.
Relational databases may be much more complex than this example, with several tables and a multiplicity of relations among them.
With the widespread use of inexpensive portable computers, it is advantageous to replicate a database onto a portable computer for reference at locations remote from the central computer. The replicated database may then be referenced by the user of the portable computer, without requiring reference to the main database, which may be maintained at a central location inconvenient to the user of the portable computer. However, there are a number of difficulties with the use of a replicated database.
One disadvantage is that a full copy of the central database may require more data storage than is desired or economical. For example, a salesman working in the field may need to refer to the database for information regarding sales opportunities in his sales area, but have no need to refer to any information regarding sales opportunities outside of his area. One possible approach to reduce the amount of required data storage is to simply replicate only that portion of the database that is needed by the user. However, this approach does not recognize that the criteria to determine which portions of the data are required is likely to vary over time. For example, the salesman may have a new city added to his territory. Under conventional approaches, the salesman would need to re-replicate his local copy of the database, this time selecting data including the added city. Such a practice is inconvenient, subject to error, and time-consuming.
A further disadvantage to a replicated database is the difficulties encountered in attempting to update data using the replicated copy. A change made to the replicated database is not made to the central database, leading to a discrepancy between the information that is stored in the replicated copy of the database and the information that is stored in the central database. Although it is possible to journal modifications made to the replicated copy and apply an identical modification to the central database, one problem that this approach faces is the possibility of colliding updates; that is, where a user of a replicated copy makes a change to data that is also changed by a user of the central copy or by the user of another replicated copy.
It is therefore desirable to provide a capability to maintain one or more partially-replicated copies of a central database, in such a way that the degree of replication may be easily changed without requiring a refresh of the entire replicated database, and that permits updates to be coordinated among users of the central database and users of the partially replicated databases.
SUMMARY OF THE INVENTION
The present invention is directed to a method of maintaining a partially replicated database in such a way that updates made to a central database, or to another partially replicated database, are selectively propagated to the partially replicated database. Updates are propagated to a partially replicated database if the owner of the partially replicated database is deemed to have visibility to the data being updated. Visibility is determined by use of predetermined rules stored in a rules database. In one aspect of the invention, the stored rules are assessed against data content of various tables that make up a logical entity, known as a docking object, that is being updated.
In another aspect of the invention, the stored rules are assessed against data content of one or more docking objects that are not necessarily updated, but that are related to a docking object being updated. In one embodiment, the visibility attributes of the related docking objects are recursively determined.
In yet another aspect of the invention, changes in visibility are determined to enable the central computer to direct the nodes to insert the docking object into its partially replicated database. Such changes in visibility are determined so as to enable the central computer to direct a node to remove a docking object from its partially replicated database.
In a further aspect of the invention, the predetermined rules are in declarative form and specify visibility of data based upon structure of the data without reference to data content.
In still another aspect of the invention, the levels of the database schema and the database access software are synchronized to prevent an updated schema from being processed by a back-level version of software.
A still further aspect of our invention is a method of upgrading a software application from one or more upgrade package files in a server (
1
) to a client (
21
a
,
21
b
,
21
c
). According to this method a copy of the upgrade package files and an upgrade database table are created on the server (
1
). A pointer is created in the client's (
21
a
,
21
b
,
21
c
) file on the server (
1
). This pointer points to the upgrade package files on the server (
1
). In invoking the upgrade the, the upgrade files are made active, and the upgrade database table is scanned when a client (
21
a
,
21
b
,
21
c
) docks. This is to determine the status of an upgrade with respect to the particular client (
21
a
,
21
b
,
21
c
). The upgrade is copied to the client (
21
a
,
21
b
,
21
c
) if the client (
21
a
,
21
b
,
21
c
) has not received the upgrade. At this point the upgrade may be invoked at the client (
21
a
,
21
b
,
21
c
).
A still further aspect of our invention is a program product article of manufacture encompassing a computer usable medium with computer program code embodied therein for causing the upgrading of a software application from upgrade package files in a server (
1
) to a client (
21
a
,
21
b
,
21
c
). The computer readable program in the program product article of manufacture contains computer readable program code means for causing a computer to effect creating a copy of the upgrade package files on the server (
1
), creating an upgrade database table on the server (
1
); creating a pointer in the client's (
21
a
,
21
b
,
21
c
) file on the server (
1
) pointing to the upgrade package files on the server (
1
), making the upgrade active, scanning the upgrade
Brodersen Robert A.
Chatterjee Prashant
Coker John L.
Lim Peter S.
Cooley & Godward LLP
Dam Tuan Q.
Siebel Systems Inc.
LandOfFree
Method of synchronizing independently distributed software... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method of synchronizing independently distributed software..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of synchronizing independently distributed software... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2590041