Dynamic versioning system for multiple users of multi-module software system
First Claim
1. A computer readable medium containing computer executable instructions to perform a method for dynamically versioning a complex system comprised of a plurality of modules accessible by a plurality of users, said method comprising:
- first step of maintaining only one copy of each of said plurality of modules that comprise each of a plurality of complex system versions simultaneously existing in time, wherein said one copy is located in a non-volatile complex system memory location;
second step of maintaining, which includes maintaining an index system to identify each of said plurality of modules that comprise a version of said complex system, wherein any one of said plurality of modules can be a member of any number of said plurality of complex system versions that simultaneously exist in time; and
third step of maintaining, which includes maintaining a virtual version of said complex system for each of said plurality of users having access to said complex system, wherein said virtual version remains constant over time from a perspective of each of said plurality of users independent of any one of said plurality of users saving a modified one of said plurality of modules to said non-volatile complex system memory location, said third step of maintaining includes;
first step of granting shared read-only access to a present version of said complex system in response to a complex system access request by one of said plurality of users, wherein said present version is most recent in time of any version of said complex system prior to said complex system access request; and
second step of granting, which includes grantings write access for at least one module of said present version in response to a request to save said at least one module by a saving one of said plurality of users by way of a new version of said at least one module from said present version, and a new version of said complex system containing said new version of said at least one module, wherein said new version of said complex system is defined by a master module containing pointers to each of said plurality of modules comprising a most recent version of said complex system.
2 Assignments
0 Petitions
Accused Products
Abstract
A dynamic versioning system for synchronizing different versions of modules among different versions of a complex multi-module software system, and maintaining a consistent view of a version of the complex system for each user having access to the system. The dynamic versioning system grants a user read-only access to the multiple modules in a complex system, and promotes the access to write access only when a user is ready to save a modified module in the permanent non-volatile memory of the complex system. The dynamic versioning system manages the evolving versions of the complex system with a Dynamic Versioning Table (DVT) and master modules that identify the multiple slave modules associated with a particular version of the complex system. Old versions of modules are removed from the complex system'"'"'s permanent non-volatile memory when the last user has terminated use of the complex system.
-
Citations
19 Claims
-
1. A computer readable medium containing computer executable instructions to perform a method for dynamically versioning a complex system comprised of a plurality of modules accessible by a plurality of users, said method comprising:
-
first step of maintaining only one copy of each of said plurality of modules that comprise each of a plurality of complex system versions simultaneously existing in time, wherein said one copy is located in a non-volatile complex system memory location; second step of maintaining, which includes maintaining an index system to identify each of said plurality of modules that comprise a version of said complex system, wherein any one of said plurality of modules can be a member of any number of said plurality of complex system versions that simultaneously exist in time; and third step of maintaining, which includes maintaining a virtual version of said complex system for each of said plurality of users having access to said complex system, wherein said virtual version remains constant over time from a perspective of each of said plurality of users independent of any one of said plurality of users saving a modified one of said plurality of modules to said non-volatile complex system memory location, said third step of maintaining includes; first step of granting shared read-only access to a present version of said complex system in response to a complex system access request by one of said plurality of users, wherein said present version is most recent in time of any version of said complex system prior to said complex system access request; and second step of granting, which includes grantings write access for at least one module of said present version in response to a request to save said at least one module by a saving one of said plurality of users by way of a new version of said at least one module from said present version, and a new version of said complex system containing said new version of said at least one module, wherein said new version of said complex system is defined by a master module containing pointers to each of said plurality of modules comprising a most recent version of said complex system. - View Dependent Claims (2, 3)
-
-
4. A method for dynamically versioning a complex system having a plurality of modules accessible by a plurality of users, said method comprising:
-
first step of maintaining only one copy of each of said plurality of modules that comprise each of a plurality of complex system versions that simultaneously exist in time, wherein said one copy is located in a non-volatile complex system memory location; second step of maintaining, which includes maintaining an index system to identify each of said plurality of modules that comprise a version of said complex system, wherein any one of said plurality of modules can be a member of any number of said plurality of complex system versions that simultaneously exist in time; first step of granting shared read-only access to a first version of said complex system in response to a complex system access request by one of said plurality of users, wherein said first version is most recent in time of any version of said complex system prior to said complex system access request; first step of generating a second version of said complex system in response to a request to save at least one modified module of said first version by a saving one of said plurality of users having write access for said first version, wherein said second version is at least one version more recent in time than said first version or any module within said first version; and third step of maintaining, which includes maintaining said first version for continued access by ones of said plurality of users having originally been granted access thereto independent of said second version. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable medium containing executable instructions to perform a method for dynamically versioning a complex system comprised of a plurality of modules accessible by a plurality of users, said method comprising:
-
maintaining a virtual version of said complex system for each of said plurality of users having access to said complex system, wherein said virtual version remains consistent over time from a perspective of each of said plurality of users independent of any one of said plurality of users saving a modified one of said plurality of modules to a non-volatile complex system memory, and wherein only one permanent copy of each of said plurality of modules is maintained in said non-volatile complex system memory independent of the number of users having access to said virtual version of said complex system, and wherein each of said plurality of user has simultaneous read/write access to said complex system; and generating a most recent virtual version of said complex system in response to each save of at least one of said plurality of modules to said non-volatile complex system memory by any one of said plurality of users, wherein said most recent virtual version includes a most recent module version of each of said plurality of modules. - View Dependent Claims (14, 15)
-
-
16. A dynamic versioning system for a complex system having a plurality of modules accessible by a plurality of users, said dynamic versioning system comprising:
-
first means for maintaining only one copy of each of said plurality of modules that comprise each of a plurality of complex system versions simultaneously existing in time, wherein said one copy is located in a non-volatile complex system memory location; second means for maintaining, which maintains an index system to identify each of said plurality of modules that comprise a version of said complex system, wherein any one of said plurality of modules can be a member of any number of said plurality of complex system versions that simultaneously exist in time; and third means for maintaining, which maintains a virtual version of said complex system for each of said plurality of users having access to said complex system, wherein said virtual version remains constant over time from a perspective of each of said plurality of users independent of any one of said plurality of users saving a modified one of said plurality of modules to said non-volatile complex system memory location, said third means for maintaining includes; first means for granting shared read-only access to a present version of said complex system in response to a complex system access request by one of said plurality of users, wherein said present version is most recent in time of any version of said complex system prior to said complex system access request; and second means for granting, which grants write access for at least one module of said present version in response to a request to save said at least one module by a saving one of said plurality of users. - View Dependent Claims (17, 18, 19)
-
Specification