Dynamic versioning system for multiple users of multi-module...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06182286

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to managing multi-module software systems, and in particular to synchronizing different versions of a multiple module software system among multiple users and maintaining a consistent view of a given version of the software system for each user having access to the software system.
PROBLEM
Multi-module software systems, also known as complex software objects, multi-module objects or complex systems, include but are not limited to computer programs, databases, and text documents. A multi-module software system is typically subdivided into a plurality of modules, also known as components or subcomponents, to facilitate developing, maintaining, and/or modifying the system by multiple users. For example, where multiple users are involved in developing, maintaining, and/or modifying a database, a first user can modify a first record source in the database without impacting or having knowledge of a second user who is modifying a second record source in the same database. Similarly, depending on the modular architecture of a text document, a first user can be modifying a first chapter or section without impacting or having knowledge of a second user who is modifying a second chapter or section.
In addition to the convenience of modularity, certain multi-module software systems require that each user of the system have a synchronized view of the system. For example, each user of a database may be allowed to serially modify individual modules of the database although each modification is synchronized within the database to maintain for proper operation of the database application as a whole. Similarly, multiple users may be allowed to manipulate individual modules of a document although printing the document requires that the modifications be integrated into the whole.
One problem with having multiple users developing, maintaining, and/or modifying individual modules of a multi-module system is maintaining a consistent updated master copy of the system. For example, a first user may modify module “A” which relates in some manner to module “B”, while a second user may modify module “B” in a manner inconsistent with the first user's modification to module “A.” One solution to the above problem is to restrict the number of users who may simultaneously access individual modules of the object for purposes of modification. For example, any number of users may simultaneously access an object for read purposes although only one user at a time may access an object for write purposes. This solution is undesirable because it imposes a restriction on the use of an object in that all design and/or maintenance changes must be performed serially to assure exclusivity for each user writing to a module.
Another solution is to provide each user with read and write access to a private copy of the entire multi-module system. However, this solution is undesirable because it is memory intensive and requires significant amounts of processing time to re-synchronize the multiple copies of the modified system back into a single master copy.
For the reasons stated above, a need exists for an improved method of generating and maintaining versions of a complex software system having a plurality of modules for each of multiple users of the complex software system.
SOLUTION
The above and other problems are solved by the dynamic versioning system of the present invention. The dynamic versioning system includes opening a master module in response to a user request to access a complex system, generating a read-only copy of the most recent version of slave modules known to the master module, and promoting the read-only status of a slave module to read-write only in response to a user request to save a slave module. The system further includes saving the read-write copy of a slave module in permanent non-volatile memory for the complex system in response to the step of promoting, while other users having read-only access to a shared copy of the original slave module continue reading their now outdated slave module version. Read-only users continue with their now outdated slave module version because the now outdated slave module version is consistent with the complex system known to them.
The dynamic versioning system further includes generating and updating a Dynamic Versioning Table (DVT) to track master module and slave module versions. The DVT includes a record or row of version identification and location information for each master module version of the complex system, and a record or row of version identification and location information for each version of slave module associated with a master module. The version identification and location information in each DVT record includes the module name and a unique version number derived from a monotonically increasing alphabetic or numeric series.
Saving a read-write copy of a modified slave module includes generating a copy of the modified slave module, recording a new module version identifier in the DVT for the copy of the modified slave module, updating the master module to reflect the new slave module version, and assigning a new version identifier to the DVT record for the master module to indicate a new generation or version of the software system.
The dynamic versioning system further includes a cleanup process that eliminates unused old copies of slave modules from the complex system after the last user of the complex system terminates use of the complex system.


REFERENCES:
patent: 4459655 (1984-07-01), Willemin
patent: 4558413 (1985-12-01), Schmidt et al.
patent: 4714992 (1987-12-01), Gladney et al.
patent: 4714996 (1987-12-01), Gladney et al.
patent: 4853843 (1989-08-01), Ecklund
patent: 4875159 (1989-10-01), Cary et al.
patent: 4912637 (1990-03-01), Sheedy et al.
patent: 5438661 (1995-08-01), Ogawa
patent: 5499365 (1996-03-01), Anderson et al.
patent: 5574898 (1996-11-01), Leblang et al.
patent: 5603027 (1997-02-01), Ohkami
patent: 5649200 (1997-07-01), Leblang et al.
patent: 5732275 (1998-03-01), Kullick
patent: 5802368 (1998-09-01), Grigsby et al.
patent: 5806078 (1998-09-01), Hug et al.
patent: 5974470 (1999-10-01), Hammond
Title: An Object Oriented Model of Software Configuration Management, Author: Render et al, source : ACM, 1991.
Title: Version Management in Gypsy, Author: Cohen, source: ACM, 1988.
Title: A Unified version model for conjuration management, author: Zeller, ACM, 1995.
Title: The shared region approach to software cache coherence on multiprocessor, author: Sandhu et al, ACM, 1993.
Title: intersolv and Segue software deliver integrated testing and version management system ; Joint solution available immediately to provide configuration management of automated tests. Source : Business Wire, Jun. 12, 1996.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Dynamic versioning system for multiple users of multi-module... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Dynamic versioning system for multiple users of multi-module..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Dynamic versioning system for multiple users of multi-module... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2436123

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.