Enterprise Networks & Servers
Search
 
More articles
Industry news
A Second Look

Resources
Contact us

 
December 2006 issue
Features 
leather so soft lyrics Buy Cheap Software - Discount Software graphs charts microsoft prices buy soft software prices

Software Management and distribution: Creating patches and updates

Onrush of the modern software development, and wide Internet availability have made the frequent release of new versions of software programs usual. Prompt bugs/mistakes correction and adding features are major factors that compel manufacturers to modify their software products on a frequent basis. And if the overall size of the distribution package of a software product is quite large, then the necessity to download the full new version distribution package can become an expensive and tiresome procedure for end-users.

Most often, the size of the changes from one version to another is significantly less than the size of the full distribution package, so many developers thought that it would be a good idea to implement software updates by delivering only those small changes that distinguish the new version from the version already installed on the end-user's machine.

Any attempt to reduce the update data size as much as possible is praiseworthy. However, the question is how to make it really effective. In the case of the text data, everything is clear. There are a lot of excellent algorithms for text files comparing and the text data can be compressed effectively at that. But if you need to build an update package for executable PE-files (exe, dll) then you will find out that these algorithms are completely useless. Effective comparison of executable files or any other binary files requires absolutely other approaches.

ASPECTS OF THE SOFTWARE UPDATING PROBLEM

A problem of comparing effective binary files is not the only one in the view of the software update task. The most important aspects that are really worthy of notice are automation of patch building and delivery of the update module to end-users. Let's assume, that one day the number of your program versions has reached 21. It is obvious that the process of patch building for all these versions and the following publishing of patches on the Internet will be quite complicated even if you have some files/catalogues comparing tool.

Let's have a look what an end-user should perform to update a software product:
define the installed version number;
go to your website to make sure that a newer version exists;
probably he would like to read the changes history for the newer version comparing to the version he already has;
find the required version update in the list; and
download and install the update package.

Moreover, active users will definitely like to receive new versions as soon as possible, having applied minimum efforts to the update process. And this wish is reasonable!

So, the main developer's task is to find the most effective, reliable and reasonably-priced solution - and check if it is suitable for his particular application.

PATCHING SYSTEM - WHO NEEDS IT?

Patching simplifies your product management and makes it easy to manage your software releases. There is no easier way to make professional quality, full-history patches for your software and other electronic content.

The audience is software developers, network administrators and IT managers, among others. - the patching system can figure out what files have been changed, the exact changes within each file and how to update any previous version to the current one.

DIFFERENCE BETWEEN INCREMENTS AND BINARY PATCHING

Incremental update contains all the files which have been changed between two versions. So the result patch can be rather large.

Update modules made with the help of the byte-level patching engine consist only of the changes from within each individual file with the help of the byte-level differencing technology used by patching engine, resulting in a significantly smaller update size.

A PATCHING/UPDATING SYSTEM

Patch building (the main feature) can offer the efficiency and consequently the small size of the result patch module. Other useful features are cumulative patching to bring all in-field versions up to date using a single self-extracting executable; selection of the patch-building algorithm efficiency and compression ratio, and also the maximum allowed size of the files to be compared.

Patch installation - the main idea is to create fully customizable modules with a wizard-style runtime interface; use of checksums to ensure accuracy; provide the international language support for patches to be useful for international audience of your software product; silent install and silent uninstall with no user interaction required, which can be useful for system administrators and other programs calling the Update Installation program; smart automatic version check to determine the installed version; automatic Rollback at patch applying to guarantee that the end-user's system is successfully updated.

Almost all these features are provided by PatchFactory software (www.agensoft.com), which is designed to automate all stages of the update cycle for a software product or any other binary data. Using PatchFactory innovative technology a user can create a complete, yet compact update installation package for the application in a few minutes and make it available for download, or issue a media that contains the update package. You can release your software updates, patches or bug fixes as often as you require. With cross-version capabilities you can distribute one update package, which will bring any solution up to date regardless which version your end-users are currently running.

Consider using DF SDK if there is need to integrate efficient patch building and applying into your own software product. Using DF SDK you can effectively accomplish the following tasks:
software updating/patching to ensure end-users always have the latest version of your software product;
differential data backup for effective backup data storage in a reliable yet space-saving way; and
version control for reliable yet efficient control under versions of your files (of any type). ENS

Pavel Shamsutdinov is marketing director at Agensoft, a Moscow-based software development company specialized in developer's software products. He can be contacte by e-mail at . or via www.agensoft.com.

 
This article appears in the December 2006 issue of Enterprise Networks & Servers.

 Other articles in this section 
 

Publications & Communications Inc.

 

Email Address:
 
 

Copyright ©2003-2010 by Publications & Communications Inc. (PCI)
All rights reserved. Reproduction without written consent is prohibited.

HomeContact usSubscriptions