A system for upgrading software has multiple clients coupled to an upgrade
server. The clients store an old version of software. The upgrade server
stores both the old version of software and a new version of software. The
upgrade server creates an upgrade file from the old and new versions of
the software such that the upgrade file is smaller than the new version.
The upgrade server compares old character strings from the old version
with new character strings from the new version to identify matching
sections. The upgrade server derives a two-dimensional table containing
multiple entries, whereby each entry represents a length of a longest
common substring beginning at a first position in the old character string
and at a second position in the new character string. The upgrade server
then ascertains the longest common substring from the table. The upgrade
server inserts headers into the upgrade file to distinguish between
matching and non-matching sections. For matching sections, only the header
is included and the section is omitted. The clients receive the upgrade
file and begin processing the file to reconstruct the new version of
software from the new sections included in the upgrade file and from the
matching sections obtained locally from the stored old version of
software.
Un sistema para aumentar software tiene clientes múltiples juntados a un servidor de la mejora. Los clientes almacenan una vieja versión del software. El servidor de la mejora almacena la vieja versión del software y una nueva versión del software. El servidor de la mejora crea un archivo de la mejora de las viejas y nuevas versiones del software tales que el archivo de la mejora es más pequeño que la nueva versión. El servidor de la mejora compara viejas cadenas de caracteres de la vieja versión con las cadenas de caracteres nuevas de la nueva versión para identificar secciones que emparejan. El servidor de la mejora deriva una tabla de dos dimensiones que contiene entradas múltiples, por el que cada entrada represente una longitud de una subsecuencia común más larga que comienza en una primera posición en la vieja cadena de caracteres y en una segunda posición en la cadena de caracteres nueva. El servidor de la mejora entonces comprueba la subsecuencia común más larga de la tabla. El servidor de la mejora inserta jefes en el archivo de la mejora para distinguir entre las secciones que emparejan y no-que emparejan. Para las secciones que emparejan, solamente el jefe es incluido y se omite la sección. Los clientes reciben el archivo de la mejora y comienzan a procesar el archivo para reconstruir la nueva versión del software de las nuevas secciones incluidas en el archivo de la mejora y de las secciones que emparejan obtenidas localmente de la vieja versión almacenada del software.