RU2580065C2 - Способ и система обновления программного обеспечения - Google Patents

Способ и система обновления программного обеспечения Download PDF

Info

Publication number
RU2580065C2
RU2580065C2 RU2014126337/08A RU2014126337A RU2580065C2 RU 2580065 C2 RU2580065 C2 RU 2580065C2 RU 2014126337/08 A RU2014126337/08 A RU 2014126337/08A RU 2014126337 A RU2014126337 A RU 2014126337A RU 2580065 C2 RU2580065 C2 RU 2580065C2
Authority
RU
Russia
Prior art keywords
file
update
software
updated
information
Prior art date
Application number
RU2014126337/08A
Other languages
English (en)
Other versions
RU2014126337A (ru
Inventor
Ехуй ЛИНЬ
Цзужун У
Цин ЧАН
Original Assignee
Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201110392461.4A external-priority patent/CN103136013B/zh
Application filed by Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед filed Critical Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед
Publication of RU2014126337A publication Critical patent/RU2014126337A/ru
Application granted granted Critical
Publication of RU2580065C2 publication Critical patent/RU2580065C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в обновлении программного обеспечения, которое позволят сохранить ресурсы пропускной способности и сократить объем работы для обновления программного обеспечения. Способ обновления программного обеспечения, в котором передают клиентом на сервер запрос на обновление программного обеспечения, причем запрос включает файловую информацию локального обновляемого программного обеспечения; определяют различия между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией, и генерируют командную информацию по обновлению в соответствии с этими различиями и передают ее клиенту; загружают и обновляют клиентом соответствующие файлы согласно команде в командной информации по обновлению, при этом осуществляют на сервере поиск информации с описанием функций последней версии программного обеспечения и добавляют данную информацию к командной информации по обновлению; перед загрузкой и обновлением соответствующего файла отображают клиентом информацию с описанием функций, которая содержится в командной информации по обновлению. 2 н. и 11 з.п. ф-лы, 6 ил., 2 табл.

Description

Данное изобретение представляет собой продолжение Международной заявки №РСТ/CN2012/084721, поданной 16 ноября 2012 г., в которой утверждается приоритет Патентной заявки КНР №201110392461.4, поданной 1 декабря 2011 г. в патентное ведомство Китая под названием "Способ и система обновления программного обеспечения", раскрытие которой полностью включено в данный документ путем ссылки.
Область техники, к которой относится изобретения
Данное изобретения относится к области технологий обработки программного обеспечения для устройств обработки данных, в частности, к способу и системе обновления программного обеспечения.
Уровень техники
В настоящее время существует два способа обновления программного обеспечения на устройствах обработки данных (например, компьютеры, смартфоны и т.д.) один из которых является способом обновления на основе установочного пакета, а другой является способом обновления на основе пакета обновления CAB.
Способ обновления на основе установочного пакета очень прост. Необходимо загрузить последнюю версию установочного пакета с сервера и запустить установочный пакет после его загрузки. Установочный пакет обеспечит деинсталляцию старой версии и установку новой.
Недостаток способа обновления на основе установочного пакета заключается в следующем. Имеет место значительная растрата пропускной способности. Пользователю приходится загружать установочный пакет размером несколько мегабайт (Мб) или даже сотен мегабайт, даже при необходимости незначительного изменения функциональных возможностей, при этом загружается большая часть неизменяемых файлов для замены вместе с изменяемыми. Это приводит к значительным неоправданным затратам пропускной способности.
Способ обновления на основе пакета обновления CAB реализуется более целенаправленно. Пакет обновления CAB представляет собой разновидность пакетов, применяемых в операционной системе Microsoft Windows и содержащих файлы для выполнения обновления. В данном способе файлы различий между версией х и версией у упаковывают в соответствии со стандартным форматом (форматом CAB) операционной системы для получения пакета обновления CAB. Программа обновления запускает пакет обновления CAB после его загрузки на локальное устройство пользователя, после чего пакет обновления завершает обновление и обработку файлов в соответствии с внутренней логикой обновления и файлами. Таким образом реализуется обновление версии программного обеспечения.
Однако способ обновления на основе пакета обновления CAB имеет следующий недостаток. С появлением новых версий программного обеспечения будет возрастать объем работы, связанный с созданием пакетов обновления CAB. Например, если текущей версией продукта является версия т, а в операционной среде поддерживается версия не ниже версии n, это значит, что в текущей операционной среде пользователи могут одновременно использовать версии с m по n. Поэтому применение данного способа обновления будет означать необходимость создания пакета обновления CAB для каждой из различных версий с m по n, соответственно, и применения данного способа для каждого обновления. Для создания большого количества версий пакета обновления CAB требуется выполнить большой объем работы, что в свою очередь приводит к значительному увеличению затрат на поддержку обновления программного обеспечения.
Раскрытие изобретения
С учетом вышеизложенного варианты осуществления настоящего изобретения обеспечивают способ и систему обновления программного обеспечения, которые позволят сохранить ресурсы пропускной способности и сократить объем работы, необходимой для обновления программного обеспечения.
Способ обновления программного обеспечения, предлагаемый в вариантах осуществления настоящего изобретения, включает в себя:
передачу клиентом на сервер запроса на обновление программного обеспечения, причем запрос на обновление включает в себя файловую информацию локального обновляемого программного обеспечения;
определение сервером различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, генерирование сервером командной информации по обновлению в соответствии с этими различиями и передачу командной информации по обновления клиенту;
загрузку и обновление клиентом соответствующих файлов и выполнение клиентом соответствующей операции локального обновления согласно команде в командной информации по обновлению, причем генерирование сервером командной информации по обновлению дополнительно включает в себя: поиск сервером информации с описанием функций последней версии программного обеспечения и добавление сервером этой информации с описанием функций к командной информации по обновлению; после получения клиентом командной информации по обновлению и перед загрузкой и обновлением клиентом соответствующего файла и выполнением соответствующей операции локального обновления, способ дополнительно включает в себя: отображение клиентом информации с описанием функций, содержащейся в командной информации по обновлению.
Система обновления программного обеспечения, предлагаемая в вариантах осуществления настоящего изобретения, включает в себя:
модуль обновления, установленный на клиенте и сконфигурированный для передачи на сервер запроса на обновление программного обеспечения, который включает в себя файловую информацию обновляемого программного обеспечения, а также для загрузки и обновления соответствующего файла и выполнения соответствующей операции локального обновления согласно команде в командной информации по обновлению, возвращенной сервером; и
модуль службы обновления, установленный на сервере и сконфигурированный для получения запроса на обновление, переданного модулем обновления на клиенте, определения различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, а также для генерирования командной информации по обновлению в соответствии с различиями и отправки командной информации по обновлению в модуль обновления на клиенте;
причем модуль службы обновления включает в себя: модуль определения информации описания и модуль комбинирования и отправки команд обновления; модуль определения информации описания сконфигурирован для поиска информации с описанием функций последней версии программного обеспечения и для отправки информации с описанием функций в модуль комбинирования и отправки команд обновления; модуль комбинирования и отправки команд обновления сконфигурирован для добавления информации с описанием функций к командной информации по обновлению и для отправки командной информации по обновлению в модуль обновления на клиенте.
По сравнению с известным уровнем техники в данном изобретения сервер определяет различия между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения, динамически генерирует командную информацию по обновлению в соответствии с различиями программного обеспечения и отправляет эту информацию в модуль обновления на клиенте; модуль обновления выполняет загрузку, обновление и удаление файлов, регистрацию СОМ-компонентов, а также другие операции в соответствии с переданными командами обновления. Таким образом, можно сократить объем информационного обмена между сервером и клиентом, а также сохранить ресурсы пропускной способности. Кроме того, сервер обновления может обеспечивать динамическую организацию команд обновления в соответствии с ситуацией с версиями у пользователя. Это позволит сократить объем работы по обновлению программного обеспечения и в дальнейшем снизить затраты на обслуживание системы обновления программного обеспечения.
Краткое описание чертежей
На фиг. 1 приведена блок-схема, на которой показан способ обновления программного обеспечения в соответствии с вариантом осуществления изобретения.
На фиг. 2 приведена блок-схема, на которой показана операция комбинирования найденных наборов действующих команд для обновления в соответствии с вариантом осуществления изобретения.
На фиг. 3 приведена блок-схема, на которой показан процесс обновления, выполняемый модулем обновления на клиенте в соответствии со способом согласно изобретению.
На фиг. 4 приведена схематическая блок-схема, на которой показана система обновления программного обеспечения в соответствии с вариантом осуществления изобретения.
На фиг. 5 приведена схематическая блок-схема, на которой показан модуль службы обновления на сервере в соответствии с вариантом осуществления изобретения.
На фиг. 6 приведена схематическая блок-схема, на которой показан модуль обновления на клиенте в соответствии с вариантом осуществления изобретения.
Осуществление изобретения
В данном изобретении обеспечивается перенос логики обработки в пакете CAB в модуль обновления на клиенте устройства обработки данных. Сервер определяет различия между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения, генерирует командную информацию по обновлению в соответствии с различиями программного обеспечения и отправляет эту информацию в модуль обновления на клиенте; модуль обновления выполняет загрузку, обновление и удаление файлов, регистрацию СОМ-компонентов, а также другие операции в соответствии с переданными командами обновления. Согласно известному уровню техники эти операции должны выполняться с помощью пакета CAB. Таким образом, снижается объем информационного взаимодействия между сервером и клиентом, обеспечивается экономия ресурсов пропускной способности и исключается необходимость выполнения ручной работы для создания пакета CAB, при этом сервер обновления обеспечивает динамическую организацию команд обновления в соответствии с ситуацией с версиями у пользователя, в результате чего сокращается объем работы по обновлению программного обеспечения и снижаются эксплуатационные расходы на обслуживание системы обновления программного обеспечения.
Ниже приведено подробное описание настоящего изобретения со ссылками на прилагаемые иллюстрации.
На фиг. 1 приведена блок-схема, на которой показан способ обновления программного обеспечения в соответствии с вариантом осуществления изобретения. Как показано на фиг. 1, способ может включать в себя следующие процессы.
Блок 101: клиент передает на сервер запрос на обновление программного обеспечения (ПО), в котором содержится файловая информация локально обновляемого программного обеспечения.
Блок 102: сервер определяет различия между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, генерирует командную информацию по обновлению в соответствии с различиями и передает командную информацию по обновлению клиенту.
Блок 103: клиент загружает и обновляет соответствующие файлы, а также выполняет соответствующую операцию локального обновления согласно полученной командной информации по обновлению.
Клиент может быть реализован в виде программы, выполняемой в вычислительной системе, оснащенной центральным процессором (CPU), памятью и операционной системой и обеспечивающей операционную среду для программного обеспечения. Типичным примером вычислительной системы может служить настольный компьютер, портативный компьютер, панельный компьютер или карманное устройство, такое как смартфон с вычислительными возможностями, или роботизированное устройство с вычислительными возможностями и т.д. В рамках данного способа согласно данному изобретению операции на стороне клиента могут выполняться модулем обновления, который соответствует локальному обновляемому программному обеспечению. Модуль обновления может быть реализован в виде программы, выполняемой в процессе, запуск которого не зависит от обновляемого программного обеспечения.
Информация по файлам, содержащаяся в запросе на обновление, передаваемом модулем обновления на клиенте, включает в себя, главным образом, имена файлов и информацию о версии файлов, входящих в состав обновляемого программного обеспечения. Дополнительно она также может включать в себя такие данные, как значение хеш-функции и относительный путь к каждому из файлов. После получения запроса на обновление сервер выполняет поиск последней версии программного обеспечения в соответствии с указанным в запросе именем обновляемого программного обеспечения, сравнивает обновляемое программное обеспечение с последней версией программного обеспечения в соответствии с различными именами файлов и информацией о версии и определяет различия в файлах и версиях. Если различий не обнаружено, необходимость обновления программного обеспечения отсутствует, и сервер возвращает клиенту команду об отсутствии необходимости обновления. После получения этой команды модуль обновления клиента прекращает выполнение операции обновления. При обнаружении различий сервер динамически генерирует командную информацию по обновлению в соответствии с различиями между версиями программного обеспечения.
Способ динамического генерирования сервером командной информации по обновлению в соответствии с различиями между версиями программного обеспечения может включать в себя следующие этапы (с 11 по 13):
11) Поиск недавно добавленных и измененных файлов в последней версии программного обеспечения в соответствии с разницей между файлами и использование списка недавно добавленных и измененных файлов для создания списка обновляемых файлов.
Список обновляемых файлов представляет собой список файлов, подлежащих добавлению, изменению или замене при обновлении программного обеспечения с текущей версии в запросе на обновление до последней версии. Каждый файл включают в себя информацию с описанием файла, например, имя файла, относительный путь, размер файла, контрольное число MD5 и т.д.
В данном случае сервер может обеспечивать ведение таблицы отображения по последней версии всех файлов обновляемого программного обеспечения. Пример такой таблицы отображения приведен в табл. 1.
Figure 00000001
Как показано в табл. 1, в таблице отображения содержится список последних версий всех файлов обновляемого программного обеспечения. В каждом блоке информации списка файлов содержится по меньшей мере имя файла, путь загрузки и относительный путь. Согласно приведенной выше табл. 1, поскольку сервер хранит все файлы одного программного обеспечения в одном общем каталоге, соответствующем программному обеспечению, причем относительные пути к каталогу совершенно такие же, как и относительные пути к каталогу установки программного обеспечения на клиенте, относительные пути, приведенные в табл. 1, могут соответствовать путям загрузки. Необходимо просто добавить путь к общему каталогу программного обеспечения, расположенному на сервере, перед относительными путями, поскольку в табл. 1 обеспечивается ведение только относительных путей, а информацию о пути загрузки можно получить путем добавления адреса общего каталога к относительным путям. Конечно, в табл. 1 может также содержаться информация об абсолютном пути загрузки, при этом клиент сможет загружать соответствующие файлы согласно этой информации без добавления каких-либо адресов каталогов. Кроме того, в списке файлов в таблице отображения содержится информация о размере файла, контрольное число MD5 (в связи с ограниченной шириной в табл. 1 не показано контрольное число MD5) и т.д., а также информация о последней измененной версии.
После получения запроса на обновление сервер выполняет фильтрацию вышеупомянутую таблицу отображения в соответствии с текущим списком файлов обновляемого программного обеспечения в запросе и упорядочивает список обновляемых файлов, оставляя в нем недавно добавленные и измененные файлы из последней версии программного обеспечения. Недавно добавленные файлы - это файлы обновляемого программного обеспечения, отсутствующие на клиенте. Измененные файлы - это файлы из последней версии программного обеспечения, имена которых совпадают с именами файлов обновляемого программного обеспечения на клиенте, но информация о версии которых отличается от подобной информации по файлам обновляемого программного обеспечения на клиенте, т.е. файлы с измененным содержимым. При этом необходимо изменить в обновляемом программном обеспечении на клиенте файлы с теми же именами, как и у файлов из последней версии программного обеспечения.
12) Поиск наборов действующих команд для всего программного обеспечения, версия которого является более поздней, чем версия обновляемого программного обеспечения в запросе на обновление, в соответствии с разницей в версиях, а также комбинирование найденных наборов действующих команд.
В данном изобретении обновление каждой версии программного обеспечения может сопровождаться набором действующих команд. Для однократного обновления версии могут использовать несколько таких действующих команд, окончательно компонуемых в виде набора. Каждая действующая команда в наборе действующих команд может включать в себя имя действующей команды, которое может быть идентифицировано локальным клиентом, относительный путь и имя файла целевого файла операции, соответствующей команде, а также дополнительно может включать в себя имя вспомогательной программы для обработки целевого файла. В табл. 2 приведен пример набора действующих команд. Для облегчения понимания в табл. 2 также приведено назначение каждой действующей команды.
Figure 00000002
Для обновления каждой из версий программного обеспечения на сервере может иметься отдельный набор действующих команд. Каждый набор действующих команд имеет версию. После получения запроса на обновление сервер выполняет поиск наборов действующих команд для всего программного обеспечения, каждый из которых относится к более поздней версии, чем версия обновляемого программного обеспечения в запросе на обновление. В итоге сервер возвращает в модуль обновления набор действующих команд, полученный путем комбинирования всех найденных наборов действующих команд. На фиг. 2 приведена блок-схема, на которой показана операция комбинирования найденных наборов действующих команд в соответствии с данным изобретением. Согласно схеме на фиг. 2 предположим, что наборами действующих команд, соответствующими более поздним версиям, чем версия в запросе на обновление, являются набор 201 действующих команд версии 20467 и набор 202 действующих команд версии 20532. При объединении этих двух наборов действующих команд получается итоговый набор 203 действующих команд.
13) Использование списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению.
В заключение командная информация по обновлению организуется сервером в виде файла XML для получения таблицы данных, которая затем передается в модуль обновления на клиенте. В таблице данных XML в целом содержится список обновляемых файлов, набор действующих команд и некоторая дополнительная информация. Например, сервер также может выполнить поиск информации с описанием функций последней версии обновляемого программного обеспечения и добавить ее в командную информацию по обновлению. Информация с описанием функций позволяет продемонстрировать новые функции, предоставляемые пользователю в результате обновления, и включает в себя текстовое описание и изображения для предварительного обзора, чтобы пользователь мог составить общее представление об обновлении перед его выполнением.
В качестве примера содержимого типичной таблицы с командами по обновлению в формате XML можно привести следующий код XML:
Figure 00000003
Figure 00000004
В системе обновления согласно данному изобретению модуль обновления, установленный на клиенте, в целом выполняет следующие операции: передача на сервер запроса на обновление программного обеспечения с информацией о версии обновляемого локального программного обеспечения, загрузка файлов и обновление соответствующих локальных файлов на основе командной информации по обновлению, возвращаемой сервером, и выполнение соответствующих операций локального обновления согласно командам обновления.
На фиг. 3 приведена блок-схема, на которой показан процесс обновления, выполняемый модулем обновления (МО) на клиенте в соответствии со способом согласно данному изобретению. Как показано на фиг. 3, процесс может включать в себя следующие этапы.
Блок 301: модуль обновления на клиенте взаимодействует с сервером для определения необходимости обновления этого модуля, а именно чтобы определить наличие на сервере более новой версии модуля обновления, чем версия локального модуля обновления. При наличии на сервере более новой версии модуля обновления модуль обновления на клиенте загружает файлы новой версии, заменяет файлы исходного локального модуля обновления и перезапускает новую версию для выполнения следующего блока 302. В противном случае непосредственно выполняют блок 302.
Благодаря простоте модуля обновления и тому, что в его состав входит не более 1 или 2 файлов, процесс обновления всего этого модуля реализуется очень просто и быстро. Блок 301 является необязательным и может быть опущен с переходом непосредственно к выполнению блока 302.
Блок 302: модуль обновления взаимодействует с сервером для определения необходимости обновления программного обеспечения. А именно модуль обновления передает на сервер запрос на обновление программного обеспечения, в котором содержится информация о локальных файлах обновляемого программного обеспечения. В файловую информацию входят данные об имени и версии каждого из файлов, входящих в состав обновляемого программного обеспечения, а также дополнительно может входить такая информация, как значение хеш-функции и относительный путь к каждому из файлов. Сервер сравнивает обновляемое программное обеспечение с последней версией программного обеспечения в соответствии с информацией об именах и версиях файлов, чтобы определить различия в файлах и версиях. В случае обнаружения различий, согласно вышеописанному способу сервер динамически генерирует командную информацию по обновлению в соответствии с различиями в файлах и различиями версиях и передает эту информацию в модуль обновления на клиенте. После этого выполняют блок 303. Если различия в программном обеспечении не обнаружены, сервер уведомляет модуль обновления на клиенте об ошибке обновления, после чего выполнение текущего процесса прекращается.
Блок 303: командная информация по обновлению включает в себя список обновляемых файлов, причем в каждом блоке информации этого списка содержится имя файла, информация о пути загрузки и информация об относительном пути так, чтобы модуль обновления мог загрузить соответствующие файлы согласно информация о пути загрузки файлов в списке обновляемых файлов.
Кроме того, если в командной информации по обновлению содержится описание функций новой версии программного обеспечения, то после получения клиентом командной информации по обновлению и перед выполнением блока 303 способ также может включать в себя отображение информации с описанием функций, содержащейся в командной информации по обновлению, чтобы пользователь мог составить общее представление об обновлении перед его выполнением.
Блок 304: в соответствии с информацией об относительном пути в списке обновляемых файлов, модуль обновления может обновлять загруженные файлы в каталоге установки локального обновляемого программного обеспечения по соответствующим им относительным путям. Блок 304 можно также рассматривать как блок, в котором производится комбинирование старых и новых версий каждого из файлов с различиями, а именно замена в каталоге установки обновляемого программного обеспечения файлов старой версии загруженными новыми файлами. К файлам с различиями относятся измененные файлы и/или недавно добавленные файлы.
В большинстве случаев заменяемые целевые файлы могут оказаться недоступными для изменения или замены (может выполняться их сканирование антивирусной программой или они могут использоваться определенным процессом), поэтому для таких случаев необходимо предусмотреть механизмы всестороннего обеспечения эксплуатационной безопасности. Поскольку программные файлы обновляемого программного обеспечения обычно взаимозависимы, если не удается заменить один файл, то с большой долей вероятности станет невозможным функционирование всей программы. С учетом этого в данном изобретении реализуются два механизма обеспечения эксплуатационной безопасности.
А) Перед выполнением комбинирования файлов (а именно файлов обновления) определяют, выполняется ли в настоящий момент обновляемое программное обеспечение. Если оно выполняется, для пользователя выводят запрос о необходимости закрытия программного обеспечения. После закрытия программного обеспечения выполняют обновление соответствующих файлов. В противном случае обновление соответствующих файлов выполняют непосредственно. В данном изобретении модуль обновления и обновляемое программное обеспечение выполняются в двух процессах, поэтому операция закрытия обновляемого программного обеспечения не повлияет на работу выполняемого модуля обновления.
Б) Перед комбинированием файлов выполняют резервное копирование исходных обновляемых локальных файлов, а именно резервное копирование заменяемых файлов старой версии во временный каталог, после чего выполняют обновление файлов. Если в процессе обновления обнаруживается, что один из файлов обновить не удалось, определяют необходимость успешности обновления этого файла. Необходимость успешности обновления файла означает, что этот файл является обязательным для нормальной работы программы, при этом необходимо восстановить обновленные файлы с использованием резервных копий, чтобы гарантировать, что "хотя обновление прошло неуспешно, но работоспособность старой версии сохранена". Если успешность замены файла не является обязательной, последний загруженный файл, соответствующий этому файлу, может быть зарегистрирован в службе замены перезапуска операционной системы (например, ОС Windows), чтобы обеспечить возможность его обновления посредством запуска службы замены перезапуска системы. Необходимость успешности замены файла можно определить по полю "ключевой файл" в списке обновляемых файлов. В случае, когда сервер генерирует список обновляемых файлов, в информацию с описанием по каждому файлу необходимо включить поле "ключевой файл", чтобы указать, является ли данный файл ключевым, т.е. необходима ли успешность его замены. Например, большая часть базовых компонентов является обязательной для выполнения программы, поэтому эти компоненты можно рассматривать как ключевые файлы, но что касается пакетов расширения ресурсов и дополнительных программных модулей, они не оказывают серьезного влияния на нормальную работу системы в целом, поэтому могут не рассматриваться в качестве ключевых файлов. Если обновить файл не удалось, клиент проверяет поле файла "ключевой файл". Если файл является ключевым, клиент определяет обязательность его успешной замены. В противном случае успешность обновления файла является необязательной.
Блок 305: после завершения комбинирования файлов выполняют соответствующие операции локального обновления согласно набору действующих команд в командной информации по обновлению.
Каждая действующая команда в наборе действующих команд включает в себя: имя действующей команды, которое может быть идентифицировано локальным клиентом, относительный путь и имя целевого файла операции, соответствующей команде. Для каждой действующей команды модуль обновления может найти целевой файл с именем в действующей команде, по относительному пути к каталогу установки обновляемого программного обеспечения и выполнить над целевым файлом операцию, соответствующую имени действующей команды, такую как регистрация компонента СОМ в списке файлов, удаление целевого файла, обработка целевого файла с применением программы, указанной в действующей команде, и т.д.
На практике для непосредственной передачи целого файла может потребоваться значительная пропускная способность. Даже при незначительном изменении файла клиенту может потребоваться загрузка целого файла размером несколько мегабайт, что может привести к значительным затратам времени и пропускной способности сети, поэтому в данном изобретении также предлагается вариант его осуществления, который может обеспечить возможность экономии полосы пропускания и времени на загрузку файлов.
В варианте осуществления изобретения файловая информация в запросе на обновление, передаваемом клиентом на сервер, также включает в себя значение хеш-функции для каждого файла. После обнаружения измененного файла в последней версии программного обеспечения сервер может найти соответствующее значение хеш-функции в запросе на обновление в соответствии с именем измененного файла и хранящийся на сервере исходный файл с идентичным значением хеш-функции в соответствии с найденным значением хеш-функции, выполнить двоичное сравнение исходного файла и последней версии файла, имя которого идентично исходному файлу, и сгенерировать двоичный файл различий, заменить информацию о пути загрузки файла, имя которого идентично двоичному файлу различий и содержится в списке обновляемых файлов, информацией о пути загрузки двоичного файла различий. Т.е. в информации по обновляемому файлу может содержаться имя файла, путь загрузки двоичного файла различий, относительный путь и т.д.
Двоичный файл различий обычно называют файлом diff. Он имеет небольшой размер и описывает двоичные операции добавления, удаления или изменения, которые следует выполнить со старой версией файла для генерации новой. Например, удалить 2 байта данных в х, изменить 3 байта данных в у и т.д. Для выполнения двоичного сравнения исходного файла и последней версии файла, имя которого идентично исходному файлу, и генерирования двоичного файла различий можно применять традиционные технические решения. Например, в ОС Linux для генерирования двоичного файла различий по двум файлам может применяться действующая команда diff. Кроме того, поскольку для генерирования файла diff на стороне сервера требуется много времени, можно обеспечить сохранение сгенерированного файла diff и значения хеш-функции исходного файла. Тогда при получении запроса на обновление в следующий раз соответствующий файл diff можно будет найти непосредственно по значению хеш-функции файла, а путь загрузки файла diff можно будет заменить непосредственно в списке обновляемых файлов без повторного генерирования файла diff.
После загрузки соответствующего двоичного файла различий согласно информации о пути загрузки в списке обновляемых файлов, клиент, согласно соответствующей информации об относительном пути, дополнительно комбинирует двоичный файл различий и файл, имеющий идентичное этому двоичному файлу имя и расположенный по относительному пути к каталогу установки обновляемого локального программного обеспечения, чтобы сгенерировать единый новый файл. Для комбинирования двоичного файла различий можно использовать традиционные технические решения, поэтому дальнейшая информация по ним здесь не приводится.
В вышеприведенном варианте осуществления для файла, в котором изменяется только содержимое, клиент может загружать только соответствующий двоичный файл различий. Небольшой размер этого файла позволяет сэкономить ресурс пропускной способности и время на загрузку.
В соответствии с вышеупомянутым способом в данном изобретении также раскрывается система для обновления программного обеспечения, которую можно использовать для реализации способа, предлагаемого настоящим раскрытием. На фиг. 4 приведена блок-схема, на которой показана система обновления программного обеспечения в соответствии с вариантом осуществления изобретения. Как показано на фиг. 4, система обновления программного обеспечения включает в себя два следующих модуля.
Модуль обновления 401, установленный на клиенте, предназначенный для передачи на сервер запроса на обновление программного обеспечения с файловой информацией обновляемого локального программного обеспечения, загрузки и обновления соответствующих файлов, и выполнения соответствующих операций локального обновления согласно командам в командной информации по обновлению, возвращаемой сервером.
Модуль службы обновления 402, установленный на сервере, предназначенный для получения запроса на обновление, передаваемого модулем обновления 401 на клиенте, и определения различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, а также для генерирования командной информации по обновлению в соответствии с различиями программного обеспечения и отправки этой информации в модуль обновления 401 на клиенте.
На фиг. 5 приведена блок-схема, на которой показан модуль службы обновления на сервере в соответствии с вариантом осуществления изобретения. Согласно фиг. 5 в данном варианте осуществления модуль службы обновления 402 на стороне сервера включает в себя следующие модули.
Модуль 421 определения различий в версиях, который сконфигурирован для сравнения обновляемого программного обеспечения с последней версией программного обеспечения в соответствии с информацией об имени и версии каждого файла для определения различий в файлах и версиях.
Модуль 422 определения обновляемых файлов, который сконфигурирован для поиска недавно добавленных и измененных файлов в последней версии программного обеспечения в соответствии с разницей между файлами и для организации списочной информации недавно добавленных файлов и измененных файлов для образования списочной информации обновляемых файлов. Списочная информация обновляемых файлов по меньшей мере включает в себя информацию о пути загрузки, информацию об относительном пути к каждому обновляемому файлу и т.д.
Модуль 423 определения действующих команд, который сконфигурирован для поиска наборов действующих команд для всего программного обеспечения, каждый из которых относится к более поздней версии, чем версия обновляемого программного обеспечения в запросе на обновление, и комбинирования найденных наборов действующих команд. Каждая действующая команда в наборе действующих команд по меньшей мере включает в себя: имя действующей команды, которое может быть идентифицировано локальным клиентом, относительный путь и имя файла целевого файла операции, соответствующей команде.
Модуль 424 комбинирования и отправки команд обновления, который сконфигурирован для использования списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению и отправки командной информации по обновлению в модуль обновления, инициировавший запрос на обновление.
Кроме того, модуль обновления 402 может включать в себя следующее.
Модуль 425 определения информации описания, сконфигурированный для поиска информации с описанием функций последней версии обновляемого программного обеспечения и ее отправки в модуль 424 комбинирования и отправки команд обновления. Модуль 424 комбинирования и отправки команд обновления дополнительно может добавлять информацию с описанием функций в командную информацию по обновлению и отправлять эту информацию в модуль обновления на клиенте, инициировавший запрос на обновление.
На фиг. 6 приведена блок-схема, на которой показан модуль обновления на клиенте в соответствии с вариантом осуществления изобретения. Согласно фиг. 6 в данном варианте осуществления модуль обновления 402 на клиенте включает в себя в частности следующие модули:
Модуль самообновления 411, сконфигурированный для взаимодействия с сервером перед передачей запроса на обновление программного обеспечения для проверки необходимости обновления модуля 401 и, если такая необходимость существует, загрузки файлов новой версии модуля обновления и замены исходных файлов модуля обновления файлами новой версии. Если необходимость обновления модуля 401 отсутствует, выполняют передачу запроса на обновление программного обеспечения.
Модуль 412 для обработки запросов на обновление, сконфигурированный для передачи на сервер запроса на обновление программного обеспечения, в котором содержится информация о версии локального обновляемого программного обеспечения и получения командной информации по обновлению, возвращаемой сервером.
Модуль 413 для загрузки файлов, сконфигурированный для загрузки соответствующих файлов в соответствии с путями загрузки в списочной информации обновляемых файлов в командной информации по обновлению.
Модуль 414 комбинирования файлов с различиями, сконфигурированный для обновления загруженных файлов в каталоге установки локального обновляемого программного обеспечения по соответствующим относительным путям согласно списочной информации обновляемых файлов.
Модуль 415 для выполнения операций, сконфигурированный для, для каждой действующей команды в командной информации по обновлению, поиска целевого файла с именем файла в действующей команде по относительному пути к каталогу установки обновляемого программного обеспечения и выполнения действующей команды над целевым файлом.
В варианте осуществления изобретения модуль 414 комбинирования файлов с различиями дополнительно должен реализовывать механизм обеспечения эксплуатационной безопасности, т.е. модуль 414 комбинирования файлов с различиями может дополнительно включать в себя следующее.
Модуль уведомления о необходимости закрытия программы, сконфигурированный для, перед обновлением соответствующих файлов, определения того, выполняется ли в настоящий момент обновляемое программное обеспечение, и, если оно выполняется, вывода для пользователя запроса о необходимости закрытия этого программного обеспечения. После закрытия программного обеспечения будет выполнено обновление соответствующих файлов. В противном случае обновление соответствующих файлов выполняется непосредственно.
Модуль резервного копирования, сконфигурированный для резервного копирования исходных обновляемых локальных файлов перед обновлением соответствующих файлов; если файл не обновлен успешно, определения необходимости успешного обновления этого файла; если этот файл должен быть успешно обновлен, использования резервных копий файлов для восстановления всех обновляемых файлов; в противном же случае, регистрации последнего загруженного файла, соответствующего этому файлу, в службе замены перезапуска операционной системы и запуска этой службы перезапуске системы для обновления файла.
В другом варианте осуществления изобретения для дополнительной экономии ресурсов пропускной способности и времени, затрачиваемого на загрузку файлов, модуль 422 определения обновляемых файлов может дополнительно включать в себя модуль генерирования двоичных файлов различий. Этот модуль конфигурируют для, после обнаружения модулем 422 измененного файла в последней версии программного обеспечения, поиска соответствующего значения хеш-функции в запросе на обновление в соответствии с именем файла для измененного файла и поиска хранящегося на сервере исходного файла с идентичным значением хеш-функции в соответствии с этим значением хеш-функции, выполнения двоичного сравнения исходного файла и последней версии файла, который имеет такое же имя файла, что и исходный файл, генерирования двоичного файла различий и замены информации о пути загрузки файла с тем же именем, что и двоичный файл различий, информацией о пути загрузки двоичного файла различий в списке обновляемых файлов.
Соответственно, модуль 414 комбинирования файлов с различиями, расположенный на клиенте, может дополнительно включать в себя модуль комбинирования двоичных файлов различий, сконфигурированный для комбинирования двоичного файла различий и файла, имеющего идентичное двоичному файлу имя и расположенного по относительному пути к каталогу установки обновляемого локального программного обеспечения после загрузки соответствующего двоичного файла различий.
В данном изобретении также обеспечивается носитель информации, используемый для хранения команд, которые управляют машиной для выполнения способа обновления программного обеспечения как изложено выше. В частности можно обеспечить систему или устройство, оборудованное носителем информации, при этом среда для хранения информации обеспечивает хранение программного кода программного обеспечения для реализации функций, указанных в любом из вышеописанных вариантов осуществления изобретения. При этом компьютер (или CPU, или микропроцессорное устройство (MPU)) системы или устройства должен иметь возможность считывания и выполнения управляющей программы, хранящейся на носителе.
Поскольку в таком случае программный код, считываемый с носителя информации, может обеспечить реализацию функций, указанных в любом из вышеописанных вариантов осуществления изобретения, программный код и среда для хранения информации являются частью данного изобретения.
Варианты выполнения носителей информации, обеспечивающих хранение программных кодов, включают в себя накопитель на гибких магнитных дисках, накопитель на жестких магнитных дисках, магнитооптический диск, компакт-диск (CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), накопитель на магнитной ленте, карту энергонезависимой памяти и постоянное запоминающее устройство (ROM). Опционально программный код может быть загружен с сервера через коммуникационную сеть.
Кроме того, следует понимать, что для реализации функций любого из вышеописанных вариантов осуществления изобретения, выполнение части или всех практических операций может обеспечиваться не только выполнением программного кода, считанного компьютером, но и операционной системой на компьютере в соответствии с командами на основе программного кода.
Также следует понимать, что посредством записи считанного с носителя информации программного кода в память на плате расширения компьютера или в память подключенного к компьютеру блока расширения, основанные на программном коде команды могут управлять работой CPU на плате расширения компьютера или в блоке расширения для выполнения части или всех операций для реализации функций любого из вышеописанных вариантов осуществления изобретения.
В вышеизложенном описании приведены только предпочтительные варианты осуществления данного изобретения, при этом описание не ограничивает объем правовой охраны изобретения. Подразумевается, что любые изменения, равноценные замены или усовершенствования, произведенные без отступления от сущности и принципов данного изобретения, входят в объем правовой охраны данного изобретения.

Claims (13)

1. Способ обновления программного обеспечения, включающий в себя:
передачу клиентом на сервер запроса на обновление программного обеспечения, причем запрос на обновление включает в себя файловую информацию локального обновляемого программного обеспечения;
определение сервером различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, и генерирование сервером командной информации по обновлению в соответствии с этими различиями и передачу командной информации по обновлению клиенту;
загрузку и обновление клиентом соответствующих файлов и выполнение клиентом соответствующей операции локального обновления согласно команде в командной информации по обновлению,
причем генерирование сервером командной информации по обновлению дополнительно включает в себя: поиск сервером информации с описанием функций последней версии программного обеспечения и добавление сервером этой информации с описанием функций к командной информации по обновлению;
после получения клиентом командной информации по обновлению и перед загрузкой и обновлением клиентом соответствующего файла и выполнением соответствующей операции локального обновления, способ дополнительно включает в себя: отображение клиентом информации с описанием функций, содержащейся в командной информации по обновлению.
2. Способ по п. 1, в котором файловая информация обновляемого программного обеспечения, передаваемая в запросе на обновление, включает в себя: информацию об имени файла и версии каждого из файлов обновляемого программного обеспечения;
при этом определение сервером различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление включает в себя: сравнение сервером обновляемого программного обеспечения с последней версией программного обеспечения в соответствии с информацией об имени файла и версии каждого из файлов обновляемого программного обеспечения и определение сервером различий в файлах и различий в версиях;
причем генерирование сервером командной информации по обновлению в соответствии с этими различиями включает в себя:
поиск сервером недавно добавленного файла и измененного файла в последней версии программного обеспечения в соответствии с этими различиями между файлами и организация сервером списочной информации недавно добавленного файла и измененного файла с целью образования списка обновляемых файлов;
поиск сервером наборов действующих команд всего программного обеспечения, версия которого является более поздней, чем версия обновляемого программного обеспечения в запросе на обновление в соответствии с разницей в версиях, и комбинирование сервером найденных наборов действующих команд;
использование сервером списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению.
3. Способ по п. 2, в котором список обновляемых файлов включает в себя: путь загрузки и относительный путь к каждому обновляемому файлу;
причем загрузка и обновление клиентом соответствующего файла в соответствии с командой в командной информации по обновлению включает в себя: загрузку клиентом этого соответствующего файла в соответствии с путем загрузки в списке обновляемых файлов и обновление загруженного файла в каталоге установки обновляемого программного обеспечения по относительному пути.
4. Способ по п. 3, в котором файловая информация в запросе на обновление дополнительно включает в себя значение хеш-функции каждого файла;
причем способ, после поиска сервером измененного файла в последней версии программного обеспечения, дополнительно включает в себя: поиск сервером значения хеш-функции в запросе на обновление в соответствии с именем файла для измененного файла и поиск сервером исходного файла, который имеет то же самое значение хеш-функции и хранится на сервере, и выполнение сервером двоичного сравнения исходного файла и последней версии файла с тем же самым именем, что и имя исходного файла, генерирование двоичного файла различий, замену пути загрузки файла, который имеет то же самое имя, что и двоичный файл различий, и содержится в списке обновляемых файлов, на путь загрузки двоичного файла различий;
загрузку клиентом соответствующего двоичного файла различий в соответствии с путем загрузки в списке обновляемых файлов и комбинирование двоичного файла различий с файлом, который имеет то же самое имя, что и двоичный файл различий, и расположен на относительном пути к каталогу установки обновляемого программного обеспечения.
5. Способ по п. 2, в котором каждая действующая команда в наборе действующих команд включает в себя: имя действующей команды, идентифицируемое для клиента, относительный путь и имя файла целевого файла, соответствующего операции действующей команды;
причем выполнение клиентом соответствующей операции локального обновления в соответствии с командой в командной информации по обновлению включает в себя: поиск целевого файла с именем файла в действующей команде по относительному пути к каталогу установки обновляемого локального программного обеспечения и выполнение действующей команды над целевым файлом.
6. Способ по п. 1, в котором операции на стороне клиента в способе выполняют при помощи модуля обновления, соответствующего локальному обновляемому программному обеспечению, при этом способ дополнительно включает в себя: после запуска модуля обновления и перед передачей запроса на обновление, взаимодействие посредством модуля обновления с сервером сначала для определения, необходимо ли обновление модуля обновления, и, если модуль обновления необходимо обновить, загрузку модулем обновления файлов новой версии модуля обновления, а также замену файлов исходного модуля обновления файлами новой версии модуля обновления.
7. Способ по п. 1, который
после загрузки клиентом соответствующего файла в соответствии с командой в командной информации по обновлению и перед обновлением соответствующего файла, дополнительно включает в себя: резервное копирование локальных обновляемых исходных файлов перед обновлением этих файлов;
если файл не был успешно обновлен, определение, необходимо ли успешно обновить этот файл, если этот файл необходимо успешно обновить, использование резервных копий файлов для восстановления обновленных файлов; в противном же случае, регистрацию файла последней загрузки, который соответствует этому файлу, в службе замены перезапуска операционной системы, и, если операционную системы перезапускают, запуск службы замены перезапуска для обновления этого файла.
8. Система обновления программного обеспечения, включающая в себя:
модуль обновления, установленный на клиенте и сконфигурированный для передачи на сервер запроса на обновление программного обеспечения, который включает в себя файловую информацию обновляемого программного обеспечения, а также для загрузки и обновления соответствующего файла и выполнения соответствующей операции локального обновления согласно команде в командной информации по обновлению, возвращенной сервером; и
модуль службы обновления, установленный на сервере и сконфигурированный для получения запроса на обновление, переданного модулем обновления на клиенте, определения различий между обновляемым программным обеспечением и последней версией программного обеспечения в соответствии с файловой информацией обновляемого программного обеспечения в запросе на обновление, а также для генерирования командной информации по обновлению в соответствии с различиями и отправки командной информации по обновлению в модуль обновления на клиенте,
причем модуль службы обновления включает в себя: модуль определения информации описания и модуль комбинирования и отправки команд обновления;
модуль определения информации описания сконфигурирован для поиска информации с описанием функций последней версии программного обеспечения и для отправки информации с описанием функций в модуль комбинирования и отправки команд обновления;
модуль комбинирования и отправки команд обновления сконфигурирован для добавления информации с описанием функций к командной информации по обновлению и для отправки командной информации по обновлению в модуль обновления на клиенте.
9. Система по п. 8, в которой модуль службы обновления дополнительно включает в себя:
модуль определения различий в версиях, сконфигурированный для сравнения обновляемого программного обеспечения с последней версией программного обеспечения в соответствии с информацией об имени файла и версии каждого файла, входящего в состав обновляемого программного обеспечения, и для определения различия в файлах и различия в версиях;
модуль определения обновляемых файлов, сконфигурированный для поиска недавно добавленного файла и измененного файла в последней версии программного обеспечения в соответствии с разницей между файлами и для организации списочной информации недавно добавленного файла и измененного файла с целью образования списка обновляемых файлов; и
модуль определения действующих команд, сконфигурированный для поиска наборов действующих команд для всего программного обеспечения, версия которого является более поздней, чем версия обновляемого программного обеспечения в запросе на обновление, и для комбинирования найденных наборов действующих команд; и
причем модуль комбинирования и отправки команд обновления дополнительно сконфигурирован для использования списка обновляемых файлов и комбинированного набора действующих команд в качестве командной информации по обновлению и для отправки командной информации по обновлению в модуль обновления на клиенте.
10. Система по п. 9, в которой:
список обновляемых файлов включает в себя: путь загрузки и относительный путь к каждому обновляемому файлу;
каждая действующая команда в наборе действующих команд включает в себя: имя действующей команды, идентифицируемое для локального клиента, относительный путь и имя файла целевого файла, соответствующего операции действующей команды;
модуль обновления на клиенте включает в себя:
модуль для загрузки файлов, сконфигурированный для загрузки соответствующего файла в соответствии с путем загрузки в списке обновляемых файлов в командной информации по обновлению;
модуль комбинирования файлов различий, сконфигурированный для, согласно списку обновляемых файлов, обновления загруженного файла по относительному пути к каталогу установки локального обновляемого программного обеспечения;
модуль для выполнения операций, сконфигурированный для поиска целевого файла с именем файла в действующей команде по относительному пути к каталогу установки обновляемого программного обеспечения и выполнения действующей команды над целевым файлом.
11. Система по п. 10, в которой модуль определения обновляемых файлов включает в себя модуль генерирования двоичных файлов различий, сконфигурированный для, после обнаружения модулем определения обновляемых файлов измененного файла в последней версии программного обеспечения, поиска соответствующего значения хеш-функции в запросе на обновление в соответствии с именем файла для измененного файла; поиска исходного файла, который хранится на сервере и имеет то же самое значение хеш-функции в соответствии со значением хеш-функции; выполнения двоичного сравнения исходного файла и последней версии файла, который имеет то же самое имя файла, что и исходный файл; генерирования двоичного файла различий и замены пути загрузки файла, который имеет то же самое имя файла, что и двоичный файл различий, и который указан в списке обновляемых файлов, на путь загрузки двоичного файла различий;
при этом модуль комбинирования файлов различий, расположенный на клиенте, дополнительно включает в себя модуль комбинирования двоичных файлов различий, сконфигурированный для, после загрузки двоичного файла различий, комбинирования двоичного файла различий и файла, который имеет то же самое имя, что и двоичный файл различий, и который расположен по относительному пути к каталогу установки обновляемого локального программного обеспечения.
12. Система по п. 10 или 11, в которой модуль комбинирования файлов различий дополнительно включает в себя операционный модуль резервного копирования, сконфигурированный для, перед обновлением соответствующего файла, резервного копирования исходных локальных обновляемых файлов, а также, если файл не обновлен успешно, для определения, необходимо ли успешное обновление этого файла, и, если успешное обновление этого файла необходимо, для использования резервных копий файлов для восстановления всех обновленных файлов; в противном же случае, для регистрации файла последней загрузки, соответствующего этому файлу, в службе замены перезапуска операционной системы и, при перезапуске операционной системы, запуска службы замены перезапуска для обновления файла.
13. Система по п. 8, в которой модуль обновления на клиенте включает в себя модуль самообновления, сконфигурированный для, перед передачей запроса на обновление, взаимодействия с сервером для определения, необходимо ли обновить модуль обновления и, если обновление модуля обновления необходимо, для загрузки файлов новой версии модуля обновления и замены файлов исходного модуля обновления файлами новой версии модуля обновления; в противном же случае передается запрос на обновление.
RU2014126337/08A 2011-12-01 2012-11-16 Способ и система обновления программного обеспечения RU2580065C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110392461.4A CN103136013B (zh) 2011-12-01 软件升级方法和系统
CN201110392461.4 2011-12-01
PCT/CN2012/084721 WO2013078951A1 (zh) 2011-12-01 2012-11-16 软件升级方法和系统

Publications (2)

Publication Number Publication Date
RU2014126337A RU2014126337A (ru) 2016-01-27
RU2580065C2 true RU2580065C2 (ru) 2016-04-10

Family

ID=48495883

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014126337/08A RU2580065C2 (ru) 2011-12-01 2012-11-16 Способ и система обновления программного обеспечения

Country Status (6)

Country Link
US (1) US9043778B2 (ru)
BR (1) BR112014012772A8 (ru)
IN (1) IN2014CN04930A (ru)
RU (1) RU2580065C2 (ru)
SG (1) SG11201401480QA (ru)
WO (1) WO2013078951A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2795390C1 (ru) * 2021-02-24 2023-05-03 Чжухай Пантум Электроникс Ко., Лтд. Устройство формирования изображения, способ и система для обновления встроенного программного обеспечения

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661428B2 (en) * 2008-04-25 2014-02-25 Vmware, Inc. Updating a file using differences and file format therefor
US9280554B2 (en) * 2012-09-28 2016-03-08 Oracle International Corporation Using confidence values for synchronizing file systems
CN105122207A (zh) * 2013-04-03 2015-12-02 惠普发展公司,有限责任合伙企业 管理固件更新
CN104239081A (zh) * 2013-06-18 2014-12-24 富泰华工业(深圳)有限公司 软件升级系统及方法
EP2945055A4 (en) 2013-08-13 2016-05-25 Huawei Tech Co Ltd METHOD AND DEVICE FOR UPGRADING THE APPLICATION
US9383989B1 (en) * 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
CN104539696B (zh) * 2014-12-26 2018-09-11 北京像素软件科技股份有限公司 一种客户端增量更新的方法及系统
CN104539695B (zh) * 2014-12-26 2018-07-06 北京格林伟迪科技股份有限公司 一种登录多个服务器的方法
US9798740B2 (en) * 2014-12-29 2017-10-24 Here Global B.V. Updates for navigational map data organized in lists
CN105808284B (zh) * 2014-12-31 2019-10-22 广州市动景计算机科技有限公司 一种增量升级方法及应用其的服务器
US9785429B2 (en) * 2015-02-27 2017-10-10 Lenovo (Singapore) Pte. Ltd. Efficient deployment of thin client applications to end user
CN104866351B (zh) * 2015-05-27 2018-03-09 百富计算机技术(深圳)有限公司 一种数据传输方法、服务端及客户端
CN105095074B (zh) * 2015-07-10 2018-12-18 北京金山安全软件有限公司 配置文件的升级测试方法和装置
CN106936622B (zh) 2015-12-31 2020-01-31 阿里巴巴集团控股有限公司 一种分布式存储系统升级方法和装置
CN105867934B (zh) * 2016-04-13 2021-01-22 厦门雅迅网络股份有限公司 一种基于二分法和md5校验的文件远程升级方法
CN107346252B (zh) * 2016-05-07 2021-05-25 腾讯科技(深圳)有限公司 应用更新方法和装置
CN106502883B (zh) * 2016-10-09 2019-03-15 武汉斗鱼网络科技有限公司 自动化测试时客户端与服务端的数据库同步方法及系统
CN107016280A (zh) * 2017-03-31 2017-08-04 武汉票据交易中心有限公司 一种客户端应用程序的升级方法及系统
CN107729041B (zh) * 2017-07-26 2020-10-20 深圳壹账通智能科技有限公司 应用程序热更新方法、装置、终端和存储介质
CN109388423A (zh) * 2017-08-03 2019-02-26 合网络技术(北京)有限公司 软件升级方法及装置
EP3662363A4 (en) 2017-09-07 2021-06-16 Hewlett-Packard Development Company, L.P. OPERATING SYSTEM UPDATE
US11055087B2 (en) * 2018-03-16 2021-07-06 Google Llc Leveraging previously installed application elements to install an application
CN110633096B (zh) * 2018-06-21 2023-09-15 阿里巴巴集团控股有限公司 节点控制方法及装置、版本控制方法及装置、分布式系统
CN108923968B (zh) * 2018-06-28 2021-11-02 京信网络系统股份有限公司 链路终端系统升级方法、装置、链路终端和存储介质
CN108769260B (zh) * 2018-06-29 2020-10-16 苏州浪潮智能科技有限公司 一种集群升级过程中事件处理方法及其装置
CN109104469A (zh) * 2018-07-25 2018-12-28 山东浪潮商用系统有限公司 一种通用远程升级系统及方法
CN109117163B (zh) * 2018-08-30 2022-03-15 北京奇艺世纪科技有限公司 一种客户端升级方法及装置
CN110908681A (zh) * 2018-09-18 2020-03-24 北京京东尚科信息技术有限公司 一种软件升级的方法和装置
CN109445833B (zh) * 2018-11-09 2022-02-01 苏宁消费金融有限公司 一种React-native热更新的方法
CN109117166B (zh) * 2018-11-16 2022-03-11 重庆惠家通信息技术有限公司 快速扩容的软件升级方法
CN109710293B (zh) * 2018-12-28 2022-07-22 迈普通信技术股份有限公司 文件的处理方法、装置、电子设备及存储介质
CN111381858B (zh) * 2018-12-29 2024-02-06 深圳Tcl新技术有限公司 一种应用程序升级方法、服务器及终端设备
CN109814908A (zh) * 2019-01-17 2019-05-28 深圳忆联信息系统有限公司 固件稳定升级的方法、装置、计算机设备及存储介质
CN109976784A (zh) * 2019-01-24 2019-07-05 金卡智能集团股份有限公司 智能物联网计量仪表远程固件升级方法及系统
CN111610990B (zh) * 2019-02-25 2023-05-16 阿里巴巴集团控股有限公司 一种应用程序升级的方法、装置和相关系统
CN109639842B (zh) * 2019-02-26 2021-09-28 四川爱联科技股份有限公司 Nb-iot设备软件升级系统及方法
CN111666079B (zh) * 2019-03-05 2023-12-05 北京京东振世信息技术有限公司 软件升级的方法、装置、系统、设备和计算机可读介质
CN110086885A (zh) * 2019-05-10 2019-08-02 上海擎感智能科技有限公司 空间下载技术的升级包下载方法及装置、存储介质和终端
CN110231954B (zh) * 2019-06-19 2023-06-16 上海卓易科技股份有限公司 用于安卓系统ota数据的精简传输、升级方法及其存储介质
CN110442361B (zh) * 2019-06-27 2024-02-09 五八有限公司 一种灰度发布方法、装置及电子设备
CN110532006B (zh) * 2019-08-21 2022-11-18 杭州趣链科技有限公司 一种基于状态机的复杂配置文件升级方法
CN110493345A (zh) * 2019-08-23 2019-11-22 北京智芯微电子科技有限公司 基于区块链的物联网终端软件升级方法及系统
CN111427595B (zh) * 2019-09-03 2024-03-05 杭州海康威视数字技术股份有限公司 一种客户端升级方法、装置及系统
CN110764803B (zh) * 2019-10-21 2023-03-31 北京云迹科技股份有限公司 一种软件的升级方法及装置
CN112698850B (zh) * 2019-10-22 2023-06-20 北京华为数字技术有限公司 一种优化的升级方法和相关设备
CN110851156A (zh) * 2019-10-24 2020-02-28 无锡小天鹅电器有限公司 电器的软件升级方法、装置和电器
CN110837393A (zh) * 2019-11-14 2020-02-25 北京知道创宇信息技术股份有限公司 一种固件差分升级包的制作方法及装置、可读存储介质
CN111008027A (zh) * 2019-11-22 2020-04-14 中国航空工业集团公司洛阳电光设备研究所 一种基于机载光电设备的网络化软件重注和加载方法
CN111143292B (zh) * 2019-12-17 2023-05-12 郑州阿帕斯数云信息科技有限公司 一种文件定位方法、装置和系统
CN110990042A (zh) * 2019-12-20 2020-04-10 深圳市优必选科技股份有限公司 一种系统的升级方法、上位机和存储介质
CN111158719B (zh) * 2019-12-26 2023-06-16 湖南快乐阳光互动娱乐传媒有限公司 应用软件升级方法及装置
CN111258623A (zh) * 2020-01-16 2020-06-09 证通股份有限公司 提供应用、文件的服务器及方法、用户终端以及计算机可读存储介质
CN111258612B (zh) * 2020-02-24 2023-09-08 中国工商银行股份有限公司 一种应用的升级方法及装置
CN111443927A (zh) * 2020-02-25 2020-07-24 厦门亿联网络技术股份有限公司 一种dect漫游系统设备间克隆升级的方法和系统
CN113326059B (zh) * 2020-02-28 2024-04-26 腾讯科技(深圳)有限公司 一种资源更新方法、装置及存储介质
CN111414185B (zh) * 2020-02-28 2023-01-10 浙江吉利新能源商用车集团有限公司 一种终端升级方法、装置、终端及存储介质
US11354108B2 (en) * 2020-03-02 2022-06-07 International Business Machines Corporation Assisting dependency migration
CN111427596B (zh) * 2020-03-12 2023-04-14 浙江大华技术股份有限公司 一种软件升级的方法、装置及终端设备
CN111427598A (zh) * 2020-03-16 2020-07-17 深圳震有科技股份有限公司 一种软件升级文件的控制方法、系统及智能终端
CN113495737B (zh) * 2020-04-01 2024-05-03 腾讯科技(深圳)有限公司 一种软件更新方法及相关设备
CN111478897A (zh) * 2020-04-03 2020-07-31 爱瑟福信息科技(上海)有限公司 车辆ecu的ota升级方法及其系统
CN111538523A (zh) * 2020-04-20 2020-08-14 Tcl海外电子(惠州)有限公司 差分升级方法、设备及存储介质
CN111651176B (zh) * 2020-05-21 2023-11-07 深圳市同泰怡信息技术有限公司 一种服务器lcd模块在线升级的方法和装置
CN111736863A (zh) * 2020-05-22 2020-10-02 深圳市鸿合创新信息技术有限责任公司 一种软件升级方法、装置及电子设备
CN111666091B (zh) * 2020-06-12 2023-08-29 成都极米科技股份有限公司 系统更新方法、装置、电子设备和计算机可读存储介质
CN111884834A (zh) * 2020-07-07 2020-11-03 杭州安恒信息技术股份有限公司 基于zookeeper的分布式系统升级方法、系统和计算机设备
CN111898118B (zh) * 2020-07-13 2024-04-26 北京中软华泰信息技术有限责任公司 一种基于自动推演的linux软件安全升级系统及方法
CN112099825B (zh) * 2020-09-11 2024-04-09 北京金山云网络技术有限公司 组件进行升级的方法、装置、设备及存储介质
CN112104501A (zh) * 2020-09-16 2020-12-18 山东省计算中心(国家超级计算济南中心) 一种农机深松物联网终端设备的软件远程升级的方法
CN112202920B (zh) * 2020-10-23 2023-12-29 上海擎感智能科技有限公司 车机系统升级方法及装置
CN112306541B (zh) * 2020-11-05 2023-06-23 中国航空工业集团公司西安航空计算技术研究所 一种面向任务加改装需求的航电系统增量升级方法
CN112328294B (zh) * 2020-11-12 2023-06-06 杭州创想智联科技有限公司 一种车辆ecu的ota升级方法及系统
CN112527346A (zh) * 2020-11-26 2021-03-19 三维通信股份有限公司 软件升级方法、装置、存储介质及电子装置
CN112486515B (zh) * 2020-11-29 2022-09-30 中国航空工业集团公司洛阳电光设备研究所 一种基于1K-XModem协议的FPGA软件在线升级方法
CN112596759A (zh) * 2020-12-04 2021-04-02 西安慧博文定信息技术有限公司 一种基于tf卡升级mcu软件的方法、装置及系统
CN112558994A (zh) * 2020-12-23 2021-03-26 上海眼控科技股份有限公司 一种应用软件的升级方法、装置、设备和存储介质
CN112612493A (zh) * 2020-12-24 2021-04-06 广州视源电子科技股份有限公司 用于软件集合的软件升级方法、装置、设备及存储介质
CN112783530B (zh) * 2021-01-26 2024-07-30 广东盈科电子有限公司 用于智能鞋柜控制装置的软件升级方法及控制装置
CN114915618B (zh) * 2021-01-29 2023-09-12 华为技术有限公司 升级包下载方法及装置
CN112860289A (zh) * 2021-02-01 2021-05-28 北京紫光展锐通信技术有限公司 一种升级方法、装置、设备和存储介质
CN113190258A (zh) * 2021-05-18 2021-07-30 合肥工业大学 一种基于串口的八核dsp软件离线升级方法
CN113238782B (zh) * 2021-06-02 2023-04-07 西安热工研究院有限公司 一种国产睿腾实时数据库文件升级的方法和系统
CN113452622A (zh) * 2021-06-29 2021-09-28 上海通联金融服务有限公司 一种基于客户端的灰度分流方法
CN115794185B (zh) * 2021-09-10 2023-11-07 中兴通讯股份有限公司 数据增量升级方法、电源设备系统、网管及存储介质
CN113904932A (zh) * 2021-09-29 2022-01-07 厦门亿联网络技术股份有限公司 一种模块化的服务器升级方法、装置、电子设备及介质
CN114090055A (zh) * 2021-11-10 2022-02-25 北京鲸鲮信息系统技术有限公司 应用程序更新方法、装置、终端及存储介质
CN114780124A (zh) * 2022-04-08 2022-07-22 北京字节跳动网络技术有限公司 差分升级方法、装置、介质及电子设备
CN114785685B (zh) * 2022-04-12 2024-06-25 北京奕斯伟计算技术股份有限公司 软件差分升级方法、装置、电子设备及可读存储介质
CN115202708A (zh) * 2022-07-14 2022-10-18 小米汽车科技有限公司 更新方法、装置、介质及车辆
CN115712544B (zh) * 2022-11-24 2024-04-12 杭州中电安科现代科技有限公司 一种监控系统
CN116028078B (zh) * 2022-12-15 2023-10-03 广州鲁邦通智能科技有限公司 一种基于vpn技术的软件远程升级方法
CN115934141A (zh) * 2022-12-30 2023-04-07 北京泰迪熊移动科技有限公司 一种软件的升级方法、装置、电子设备及存储介质
CN116319751A (zh) * 2023-03-13 2023-06-23 武汉理工大学 一种船舶设备的远程升级系统和方法
CN117032755A (zh) * 2023-08-11 2023-11-10 杭州辰汉智能科技有限公司 一种电动车仪表ota升级方法、装置及存储介质
CN116755698B (zh) * 2023-08-22 2023-12-08 之江实验室 基于cli的前端工程创建和升级系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026464A (zh) * 2006-02-25 2007-08-29 宇龙计算机通信科技(深圳)有限公司 无线终端的无线升级方法和无线升级系统
RU2378686C2 (ru) * 2004-03-12 2010-01-10 Майкрософт Корпорейшн Тэговая схема распространения метаданных обновления в системе распространения обновлений
CN101699399A (zh) * 2009-11-03 2010-04-28 中兴通讯股份有限公司 一种软件更新的系统和方法
CN102081536A (zh) * 2010-12-30 2011-06-01 华为终端有限公司 一种增量升级方法及服务器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040189713A1 (en) * 2001-10-31 2004-09-30 Metacyber.Net Computer-based user interface for a memory-resident rapid comprehension document for original source information
US7461373B2 (en) * 2002-12-05 2008-12-02 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
US7958502B2 (en) * 2005-08-05 2011-06-07 Hewlett-Packard Development Company, L.P. Efficient generator of update packages for mobile devices that uses non-ELF preprocessing
EP1808764B1 (en) * 2005-12-20 2010-12-15 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Generating incremental program updates
US7861224B2 (en) * 2006-06-22 2010-12-28 Microsoft Corporation Delta compression using multiple pointers
US8166449B2 (en) * 2008-01-17 2012-04-24 Microsoft Corporation Live bidirectional synchronizing of a visual and a textual representation
KR20090090801A (ko) * 2008-02-22 2009-08-26 삼성전자주식회사 휴대 단말기의 펌웨어 업데이트 방법 및 장치
US8341132B2 (en) * 2008-10-01 2012-12-25 Ca, Inc. System and method for applying deltas in a version control system
CN101442688A (zh) 2008-12-31 2009-05-27 中兴通讯股份有限公司 智能网平台的升级方法和系统、控制器和智能网平台设备
US8397230B2 (en) * 2009-11-09 2013-03-12 Bank Of America Corporation Software updates using delta patching
US8473504B2 (en) * 2011-05-12 2013-06-25 Samsung Electronics Co., Ltd. Stabilized binary differencing
KR20140077435A (ko) * 2012-12-14 2014-06-24 삼성전자주식회사 모바일 단말의 소프트웨어 업데이트 서비스 방법 및 장치
US8924950B2 (en) * 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2378686C2 (ru) * 2004-03-12 2010-01-10 Майкрософт Корпорейшн Тэговая схема распространения метаданных обновления в системе распространения обновлений
CN101026464A (zh) * 2006-02-25 2007-08-29 宇龙计算机通信科技(深圳)有限公司 无线终端的无线升级方法和无线升级系统
CN101699399A (zh) * 2009-11-03 2010-04-28 中兴通讯股份有限公司 一种软件更新的系统和方法
CN102081536A (zh) * 2010-12-30 2011-06-01 华为终端有限公司 一种增量升级方法及服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2795390C1 (ru) * 2021-02-24 2023-05-03 Чжухай Пантум Электроникс Ко., Лтд. Устройство формирования изображения, способ и система для обновления встроенного программного обеспечения
US12099761B2 (en) 2021-02-24 2024-09-24 Zhuhai Pantum Electronics Co., Ltd. Image forming apparatus, method, and system for firmware upgrade

Also Published As

Publication number Publication date
US9043778B2 (en) 2015-05-26
BR112014012772A8 (pt) 2017-06-20
IN2014CN04930A (ru) 2015-09-18
RU2014126337A (ru) 2016-01-27
CN103136013A (zh) 2013-06-05
BR112014012772A2 (pt) 2017-06-13
SG11201401480QA (en) 2014-07-30
US20140304697A1 (en) 2014-10-09
WO2013078951A1 (zh) 2013-06-06

Similar Documents

Publication Publication Date Title
RU2580065C2 (ru) Способ и система обновления программного обеспечения
US10114630B2 (en) Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
CN109947773B (zh) 在多租户数据库系统中部署对键模式的改变
US9031910B2 (en) System and method for maintaining a cluster setup
US8166285B2 (en) Method and system for booting and automatically updating software, and recovering from update error, and computer readable recording medium storing method
JP4426736B2 (ja) プログラム修正方法およびプログラム
US8745063B2 (en) Hashing with hardware-based reorder using duplicate values
US10402378B2 (en) Method and system for executing an executable file
US20120198433A1 (en) Enabling parallel websphere runtime versions
EP4170500A1 (en) Method and apparatus for restoring running state of application program, and storage medium
US8745342B2 (en) Computer system for controlling backups using wide area network
US8788799B2 (en) Server computer, computer system, and file management method
JPWO2009078285A1 (ja) 無線端末、無線端末の不揮発性メモリ、および診断情報のフェイルセーフ保存方法
US11044312B2 (en) Storage segment server covered cache
US11381641B2 (en) Granular entry self-healing
CN113760306A (zh) 安装软件的方法、装置、电子设备及存储介质
US9940461B2 (en) Enabling an external operating system to access encrypted data units of a data storage system
CN116880877A (zh) 虚拟机增强工具升级方法、装置、计算机设备和存储介质
US7275251B2 (en) Selective process restart based on API changes
US8190587B1 (en) In-place image promotion
CN109996262B (zh) 一种ac启动方法及装置
US11379147B2 (en) Method, device, and computer program product for managing storage system
US11455292B2 (en) Brokering persisted and unpersisted log records
CN113312250A (zh) 软件合规性的检测方法及装置