Configuration management systems are quite simply a system for managing change. Put into an everyday office context if two colleagues need to update the same document, for security reasons this document cannot be opened at the same time. This is because unless there is a configuration management system in place the changes will not merge together and one set of changes will overwrite the other, meaning that the other changes are lost.
Although the example of a single document in an office might not really hit home the essential nature of a system such as this, if you picture hundreds of people working continuously on the same file such as in software engineering, the process would be somewhat chaotic. Software configuration management systems are essential and there are many different types, from commercial to freeware like the open source code CMS Subversion.
Most configuration management systems all share similar basic functions and this is to enable two users of the system to open, or check out a file from one main repository, to both edit the file then return it to the repository where the file will merge the changes. There are many different systems that have different versioning capabilities; some will merge the files and only contact the user if there is a conflict and will require manual merging.
If this is taken as the overall objective of any configuration management system then there are three basic functions that the system needs to be able to perform. The first is concurrency management which refers to the process of the two aforementioned users being able to check out the same file simultaneously and edit the file without overwriting any other updated data on the file. This can lead to problems in some CM systems.
Many systems work from the system of a file being checked out by the users and the individually edited files are saved separately in the repository and then are merged automatically by algorithms which can be complex or automatic, simple or manual. This is to ensure that any conflicting changes by both users are resolved before creating the master updated file in the repository. This means that every version of the same file needs to be saved, a process called versioning.
Versioning works by wither saving a fresh copy of each updated file that is checked back into the main repository, however this sometimes creates too many issues with storage space. Other CM systems with larger files tend to save individual changes as opposed to entire files, both processes work in a similar way, ensuring that any archived previous version can be rolled back to ensuring that conflicting changes can be resolved.
The process of synchronisation describes that of the updating of the changes to any singular file. This process differs dependent on which CM system is being used and some systems require that engineers keep their own updated copies with all the changes that are available from the repository. Other systems offer algorithms that can merge the changes themselves and only contact the engineer when conflicting changes are made.
Subversion is a freeware open source configuration management system that offers all of the above features. Knowledge of certain computer languages are essential to work within a CM system of any description however the basic principles that have been relayed here are applicable within any CMS.
Dominic Donaldson has sinced written about articles on various topics from Cars, Touring Italy and Environment. Dominic Donaldson is an expert on and contributes to trade publications on the subject.. Dominic Donaldson's top article generates over 368000 views. to your Favourites.
Categories Of Application Software For more information. One thing that you need to be aware of however if you are hoping to use the Internet to purchase your software is fraud.