СПОСОБ И СИСТЕМА ДЛЯ ОБНОВЛЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1. Способ обновления программного обеспечения, включающий в себя:
передачу клиентом на сервер запроса на обновление программного обеспечения, причем запрос на обновление включает в себя файловую информацию локального обновляемого программного обеспечения;
определение сервером различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, генерирование сервером командной информации по обновлению в соответствии с этими различиями и передачу командной информации по обновлению клиенту;
загрузку и обновление клиентом соответствующих файлов и выполнение клиентом соответствующей операции локального обновления согласно команде в командной информации по обновлению.
2. Способ по п. 1, в котором файловая информация обновляемого программного обеспечения, передаваемая в запросе на обновление, включает в себя информацию об имени файла и о версии каждого из файлов обновляемого программного обеспечения; при этом определение сервером различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление включает в себя сравнение сервером обновляемого программного обеспечения с последней версией программного обеспечения в соответствии с информацией об имени файла и о версии каждого из файлов обновляемого программного обеспечения и определение сервером различий в файлах и различий в версиях; причем генерирование сервером командной информации по обновлению в соответствии с этими различиями включает в себя поиск сервером недавно добавленного файла и измененного файла в последней версии программного обеспечения в соответствии с этими различиями между файлами и организация сервером списочной информации недавно добавленного файла и измененного файла с целью образования списка обновляемых файло; поиск сервером наборов действующих команд всего программного обеспечения, версия которого является более поздней, чем версия обновляемого программного обеспечения в запросе на обновление в соответствии с разницей в версиях, и комбинирование сервером найденных наборов действующих команд; использование сервером списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению.
3. Способ по п. 2, в котором генерирование сервером командной информации по обновлению дополнительно включает в себя поиск сервером информации с описанием функций последней версии программного обеспечения и добавление сервером этой информации с описанием функций к командной информации по обновлению; причем после получения клиентом командной информации по обновлению и перед загрузкой и обновлением клиентом соответствующего файла и выполнением соответствующей операции локального обновления способ дополнительно включает в себя отображение клиентом информации с описанием функций, содержащейся в командной информации по обновлению.
4. Способ по п. 2, в котором список обновляемых файлов включает в себя путь загрузки и относительный путь к каждому обновляемому файлу; причем загрузка и обновление клиентом соответствующего файла в соответствии с командой в командной информации по обновлению включает в себя загрузку клиентом этого соответствующего файла в соответствии с путем загрузки в списке обновляемых файлов и обновление загруженного файла в каталоге установки обновляемого программного обеспечения по относительному пути.
5. Способ по п. 4, в котором файловая информация в запросе на обновление дополнительно включает в себя значение хеш-функции каждого файла; причем способ после поиска сервером измененного файла в последней версии программного обеспечения дополнительно включает в себя поиск сервером значения хеш-функции в запросе на обновление в соответствии с именем файла для измененного файла и поиск сервером исходного файла, который имеет то же самое значение хеш-функции и хранится на сервере, выполнение сервером двоичного сравнения исходного файла и последней версии файла с тем же самым именем, что и имя исходного файла, генерирование двоичного файла различий, замену пути загрузки файла, который имеет то же самое имя, что и двоичный файл различий, и содержится в списке обновляемых файлов, на путь загрузки двоичного файла различий; загрузку клиентом соответствующего двоичного файла различий в соответствии с путем загрузки в списке обновляемых файлов и комбинирование двоичного файла различий с файлом, который имеет то же самое имя, что и двоичный файл различий, и расположен на относительном пути к каталогу установки обновляемого программного обеспечения.
6. Способ по п. 2, в котором каждая действующая команда в наборе действующих команд включает в себя: имя действующей команды, идентифицируемое для клиента, относительный путь и имя файла целевого файла, соответствующего операции действующей команды; причем выполнение клиентом соответствующей операции локального обновления в соответствии с командой в командной информации по обновлению включает в себя поиск целевого файла с именем файла в действующей команде по относительному пути к каталогу установки обновляемого локального программного обеспечения и выполнение действующей команды над целевым файлом.
7. Способ по п. 1, в котором операции на стороне клиента в способе выполняют при помощи модуля обновления, соответствующего локальному обновляемому программному обеспечению, при этом способ дополнительно включает в себя: после запуска модуля обновления и перед передачей запроса на обновление взаимодействие посредством модуля обновления с сервером сначала для определения, необходимо ли обновление модуля обновления, и, если модуль обновления необходимо обновить, загрузку модулем обновления файлов новой версии модуля обновления, а также замену файлов исходного модуля обновления файлами новой версии модуля обновления.
8. Способ по п. 1, который после загрузки клиентом соответствующего файла в соответствии с командой в командной информации по обновлению и перед обновлением соответствующего файла дополнительно включает в себя резервное копирование локальных обновляемых исходных файлов перед обновлением этих файлов; если файл не был успешно обновлен, определение, необходимо ли успешно обновить этот файл, если этот файл необходимо успешно обновить, использование резервных копий файлов для восстановления обновленных файлов; в противном же случае регистрацию файла последней загрузки, который соответствует этому файлу, в службе замены перезапуска операционной системы, и, если операционную системы перезапускают, запуск службы замены перезапуска для обновления этого файла.
9. Система обновления программного обеспечения, включающая в себя:
модуль обновления, установленный на клиенте и сконфигурированный для передачи на сервер запроса на обновление программного обеспечения, который включает в себя файловую информацию обновляемого программного обеспечения, а также для загрузки и обновления соответствующего файла и выполнения соответствующей операции локального обновления согласно команде в командной информации по обновлению, возвращенной сервером; и
модуль службы обновления, установленный на сервере и сконфигурированный для получения запроса на обновление, переданного модулем обновления на клиенте, определения различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, а также для генерирования командной информации по обновлению в соответствии с различиями и отправки командной информации по обновлению в модуль обновления на клиенте.
10. Система по п. 9, в которой модуль службы обновления включает в себя модуль определения различий в версиях, сконфигурированный для сравнения обновляемого программного обеспечения с последней версией программного обеспечения в соответствии с информацией об имени файла и о версии каждого файла, входящего в состав обновляемого программного обеспечения, и для определения различия в файлах и различия в версиях; модуль определения обновляемых файлов, сконфигурированный для поиска недавно добавленного файла и измененного файла в последней версии программного обеспечения в соответствии с разницей между файлами и для организации списочной информации недавно добавленного файла и измененного файла с целью образования списка обновляемых файлов; модуль определения действующих команд, сконфигурированный для поиска наборов действующих команд для всего программного обеспечения, версия которого является более поздней, чем версия обновляемого программного обеспечения в запросе на обновление, а также для комбинирования найденных наборов действующих команд; и модуль комбинирования и отправки команд обновления, сконфигурированный для использования списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению и для отправки командной информации по обновлению в модуль обновления на клиенте.
11. Система по п. 10, в которой модуль службы обновления дополнительно включает в себя модуль определения информации описания, сконфигурированный для поиска информации с описанием функций последней версии программного обеспечения и для отправки информации с описанием функций в модуль комбинирования и отправки команд обновления; причем модуль комбинирования и отправки команд обновления дополнительно сконфигурирован для добавления информации с описанием функций к командной информации по обновлению и отправки командной информации по обновлению в модуль обновления на клиенте.
12. Система по п. 10, в которой список обновляемых файлов включает в себя путь загрузки и относительный путь к каждому обновляемому файлу; причем каждая действующая команда в наборе действующих команд включает в себя имя действующей команды, идентифицируемое для локального клиента, относительный путь и имя файла целевого файла, соответствующего операции действующей команды; при этом модуль обновления на клиенте включает в себя модуль для загрузки файлов, сконфигурированный для загрузки соответствующего файла в соответствии с путем загрузки в списке обновляемых файлов в командной информации по обновлению; модуль комбинирования файлов различий, сконфигурированный для, согласно списку обновляемых файлов, обновления загруженного файла по относительному пути к каталогу установки локального обновляемого программного обеспечения; модуль для выполнения операций, сконфигурированный для поиска целевого файла с именем файла в действующей команде по относительному пути к каталогу установки обновляемого программного обеспечения и выполнения действующей команды над целевым файлом.
13. Система по п. 12, в которой модуль определения обновляемых файлов включает в себя модуль генерирования двоичных файлов различий, сконфигурированный для, после обнаружения модулем определения обновляемых файлов измененного файла в последней версии программного обеспечения, поиска соответствующего значения хеш-функции в запросе на обновление в соответствии с именем файла для измененного файла; поиска исходного файла, который хранится на сервере и имеет то же самое значение хеш-функции в соответствии со значением хеш-функции; выполнения двоичного сравнения исходного файла и последней версии файла, который имеет то же самое имя файла, что и исходный файл; генерирования двоичного файла различий и замены пути загрузки файла, который имеет то же самое имя файла, что и двоичный файл различий, и который указан в списке обновляемых файлов, на путь загрузки двоичного файла различий; при этом модуль комбинирования файлов различий, расположенный на клиенте, дополнительно включает в себя модуль комбинирования двоичных файлов различий, сконфигурированный для, после загрузки двоичного файла различий, комбинирования двоичного файла различий и файла, который имеет то же самое имя, что и двоичный файл различий, и который расположен по относительному пути к каталогу установки обновляемого локального программного обеспечения.
14. Система по п. 12 или 13, в которой модуль комбинирования файлов различий дополнительно включает в себя операционный модуль резервного копирования, сконфигурированный для, перед обновлением соответствующего файла, резервного копирования исходных локальных обновляемых файлов, а также, если файл не обновлен успешно, для определения, необходимо ли успешное обновление этого файла, и, если успешное обновление этого файла необходимо, для использования резервных копий файлов для восстановления всех обновленных файлов; в противном же случае, для регистрации файла последней загрузки, соответствующего этому файлу в службе замены перезапуска операционной системы и, при перезапуске операционной системы, запуска службы замены перезапуска для обновления файла.
15. Система по п. 9, в которой модуль обновления на клиенте включает в себя модуль самообновления, сконфигурированный для взаимодействия с сервером перед передачей запроса на обновление для того, чтобы определить, необходимо ли обновить модуль обновления и, если обновление модуля обновления необходимо, для загрузки файлов новой версии модуля обновления и замены файлов исходного модуля обновления файлами новой версии модуля обновления; в противном же случае передается запрос на обновление.