Update Version

Project acronym: UV

Project name: System for updating the latest version of application – Update Version

Project duration: 6 months

Short description: This project was a part of a bigger project (MIS4 project, see our Experience base) and it was created as tool for it. The basic need was to update existing version of ERP JAVA application to new version with smallest set of changes.


Project aims/goals: Goal of this tool was to allow updating version of the target application (that can be hosted on multiple machines) with smallest set of changes in order to minimize transport of data.  In cases where there is limited data bandwidth, a new version of application could not be deployed simply by copying the whole new version and overwriting the existing one. We have created application that allows us to find out what entities (in this case jar files and class files) are different between new and old version.  Then we are able only to copy (and transport) those classes that are different, minimizing transport cost while updating.

Key words: Version update, minimizing transport cost

Technology aspect: In order to detect changes between new and old version we have used hashing. Hashing is a process in which we can generate small signature of big amount of data.  This small signature is a couple of bytes of data but it can be totally different if just one bit of big data is changed. I this way this signature can uniquely identify big data.

Update Version application is a client – server application. The client application is located on machines that host target application (application that needs to be updated). Client applications connect to server, sent current application identifier of target application, based on this data Server sends file with list of changed classes and action what to do with those files (some files need to be deleted, some updated and some added). The server application is providing data that is used for version update. Server application is used to hash new version, get something called “version list” of application that identify each entity in existing version.

Significant results: This tool has used within its parent project MIS4 project for a long time for updating the ERP application. It had 4 clients which were updated regularly, on a daily basis.

Additional resources

XML scheme - list of versions
XML scheme - code change definition