Система и способ для обновления файлов с использованием корректирования сжатыми изменениями

Иллюстрации

Показать все

Изобретение относится к системе и способу, предназначенных для обновления одного или более файлов на вычислительном устройстве. Техническим результатом является повышение надежности работы клиентских вычислительных устройств при обновлении файлов. Клиентское вычислительное устройство получает информацию обновления, включающую в себя предметный указатель, идентифицирующий конкретные дельта- корректировки, вместе с конкретными версиями установленных файлов. После выборки тех применимых обновлений, которые подлежат осуществлению, агент обновления на клиентском вычислительном устройстве выполняет инвентаризацию, чтобы идентифицировать, какая версия файла, подлежащего обновлению, является установленной на устройстве. Агент обновления выбирает соответствующую дельта-корректировку и передает запрос на службу обновления. 9 н. и 31 з.п. ф-лы, 14 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение в целом относится к программному обеспечению и вычислительным сетям, и конкретно настоящее изобретение относится к системе и способу, предназначенным для управления и обмена обновлениями программного обеспечения.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Большинство коммерчески доступных программных продуктов подвергаются повторяющейся процедуре модификации, чтобы восстанавливать или совершенствовать функциональные возможности и/или функции. Каждая модификация программного продукта или компонента может требовать добавления новых файлов и/или замены имеющихся файлов файлами более новых версий. Как только изготовитель выделил ошибку программного продукта и создал реализацию решения ошибки, требуется поместить это устранение ошибки в обновление, и сделать обновление широко доступным заказчикам. У изготовителей программного обеспечения есть деловая заинтересованность в распространении обновлений программного обеспечения заказчикам настолько быстро и безаварийно, насколько возможно.

Сеть Интернет предоставляет заказчикам важный канал для получения последних обновлений программных продуктов. Непрерывно возрастающее использование Интернет создало общее ожидание заказчиками того, что программные продукты и обновления должны поставлять в оперативном режиме, чтобы осуществлять загрузку по сети. В интересах изготовителей программных средств находится также использование Интернет для распространения обновлений, поскольку это уменьшает их затраты и дает возможность заказчикам получать устранение ошибок для выявленной ошибки, как только устранение ошибок сделано доступным для загрузки. Сайты изготовителей в сети Интернет могут быть разработаны, чтобы сделать очень простым обнаружение и определение местоположения файлов обновления для применения. Технические аспекты загрузки файла по большей части исчезли из поля зрения пользователя, и теперь обычно обрабатываются операционной системой.

В традиционном подходе изготовитель программного обеспечения создает обновление программного обеспечения в виде "пакета" для загрузки. Такой пакет является обычно саморазворачивающимся исполняемым файлом вместе с установочной программой и каждым из обновленных файлов программного продукта, вложенным и сжатым, чтобы уменьшить пакет. Размер пакета обычно является суммой размеров каждого сжатого измененного файла, плюс размер непосредственно программы извлечения. При исполнении пакет извлекает каждый из содержащихся файлов во временное местоположение, затем запускает установочную программу, чтобы установить каждый файл в надлежащее местоположение в системном каталоге. Файлы, которые поставляют в сжатой форме, декомпрессируют по мере того, как их устанавливают. Любой существующий файл с одним и тем же наименованием, в одном и том же местоположении будет просто записан заново в соответствии с файлом замены.

Даже при том, что Интернет делает возможным широкое и быстрое распространение программных обновлений, ограниченная ширина полосы передачи по сети вызвала сложности. Абсолютные (чистые) размеры приложений стандартного программного обеспечения вызвали то, что загружаемые объемы обновлений стали необоснованно большими. Обычно набор устранений ошибок для множества неисправностей программного продукта группируют в обновление. Если изготовитель обновляет программный продукт на постоянной основе (систематически), то загружаемый объем пакета обновления будет продолжать увеличиваться, поскольку изготовитель не может не включать в состав файлы, исходя из предположения, что пользователь уже имеет данные файлы из более ранних обновлений. Поскольку пакет обновления объединяет некоторое количество полных файлов, он может быть весьма большим, даже если файлы сжаты. Иногда, даже при самых быстрых модемных соединениях эффективность использования полосы частот для загрузки снижается.

Аспект больших затрат времени при традиционном процессе загрузки конечно является нежелательным. В некоторых случаях заказчики оплачивают расходы дальней (междугородной) связи или времени соединения в течение таких загрузок файлов. Любые сокращения времени соединения будут сокращать прямые денежные расходы для этих заказчиков. Изготовители обычно также имеют некоторые ощутимые затраты, относящиеся к объемам загрузок, которые они поставляют, поэтому сокращение объемов может дать им также прямые денежные выгоды. Сокращение объемов загрузок увеличит пропускную способность доступной им сети, позволяя им обслуживать большее количество заказчиков с помощью имеющегося оборудования сетевого сервера.

Значительное время, которое требуется, чтобы загрузить большое обновление, также делает процесс загрузки более уязвимым к различным сложностям сетевого соединения. Имеется ряд причин, почему сеанс Интернет может быть разъединен преждевременно, включая в них помехи в телефонной линии, сигналы ожидания запроса и непреднамеренные команды. Некоторые поставщики услуг Интернет применяют ограничение времени соединения, ограничивая время, в течение которого пользователь может быть подсоединенным к сети в одном сеансе. Если пользователь загружает большой файл в момент, когда сетевое соединение отключают, ему, или ей, вероятно, придется осуществить повторный запуск. Большинство обычных операционных систем и протоколов передачи файлов не позволяют возобновить передачу файла, поэтому промежуток времени будет потерян, и передачу нужно будет повторно запустить. Возможности для отказа столь многочисленны, что многие пользователи находят почти невозможным получение обновления в оперативном режиме. Если размер пакета обновления является слишком большим, то пользователи возможно никогда не смогут загрузить его полностью. Одна из попыток сократить размер обновлений программного обеспечения и повысить эффективность использования полосы частот относится к использованию небольших корректирующих изменений, т.е. дельта-корректировок или двоичных корректировок. Специалист в соответствующей области техники оценит, что дельта-корректировка соответствует специальному программному коду, который изменяет существующий файл при исполнении вычислительным устройством. Поскольку дельта-корректировка включает в себя специальный программный код, то необходима уникальная дельта-корректировка для каждой уникальной версии файла. В применении к обновлениям программного обеспечения служба обновления программного обеспечения может передавать меньшую по размеру обновленную дельта-корректировку вместо передачи полного, обновленного файла. Обновленную дельта-корректировку затем используют, чтобы модифицировать существующий файл в обновленный файл.

Несмотря на то, что обновляемые дельта-корректировки могут потенциально сократить объем данных, требуемых для того, чтобы обновить файлы, современные подходы к осуществлению дельта-корректировок являются несовершенными в управлении выбором применимых дельта-файлов в ситуациях, в которых существует большое количество версий файла. Поскольку необходима уникальная дельта-корректировка для каждой версии файла, то типичные системы обновления программного обеспечения могут обычно требовать, чтобы сотни, если не тысячи, уникальных дельта-корректировок соответствовали каждой уникальной версии файла. В одном подходе некоторые службы обновления, поддерживающие осуществление дельта-корректировок, передают все возможные дельта-корректировки на клиентское вычислительное устройство. Однако этот подход обычно увеличивает объем данных, требуемых для осуществления обновления программного обеспечения, поскольку увеличивается количество возможных обновляемых дельта-корректировок. Соответственно, количество потенциально применимых дельта-корректировок может быстро возрастать до такого же размера, как у полного обновленного файла. В другом подходе сетевая служба обновления программного обеспечения просматривает клиентское устройство, чтобы выбрать, какая дельта-корректировка может быть применима для каждого клиентского устройства. Хотя это уменьшает объем передаваемой информации дельта-корректировки, это требует дополнительного логического блока в службе обновления программного обеспечения для просмотра клиентских устройств и выбора применимой дельта-корректировки. Использование дополнительного логического блока увеличивает системные ресурсы, которые должны быть обеспечены службой. Дополнительно данный подход обычно препятствует использованию кэширования сети, такого какое обычно выполняют традиционные Web-серверы.

В дополнение к вышеупомянутым описанным недостаткам существующие системы являются неспособными поставлять некоторые типы обновлений программного обеспечения, например драйверов аппаратного обеспечения. Как известно в данной области техники, обновления специального программного обеспечения, например, такие, которые применяют к драйверам аппаратного обеспечения, являются трудными для поставки пользователям в широкомасштабном распространении, поскольку большая часть обновлений специального программного обеспечения будет работать только на клиентских компьютерах, имеющих специфические аппаратные средства. В большинстве случаев, например, если клиентский компьютер получает несовместимую обновленную версию драйвера аппаратного обеспечения, установка обновленной версии драйвера может вызвать фатальную ошибку, или даже препятствовать действию компьютера.

Как будет легко понято из предшествующего, имеется потребность в системе и способе усовершенствованного обмена обновлениями программного обеспечения между сервером и набором клиентов. Кроме того, имеется потребность в системе и способе обновления программного обеспечения, которые имеют усовершенствованные механизмы предоставления услуг обновления на целевые конкретные типы клиентов при доставке специальных обновлений.

КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

Представлены система и способ, предназначенные для обновления одного или нескольких файлов на вычислительном устройстве. Клиентское вычислительное устройство получает информацию об обновлении, включающую в себя индекс (предметный указатель), идентифицирующий конкретные дельта-корректировки, вместе с конкретными версиями установленных файлов. После выбора, какие применимые обновления будут осуществлены, агент обновления на клиентском вычислительном устройстве выполняет инвентаризацию, чтобы определить, какая версия файла подлежащего обновлению файла является установленной на устройстве. Агент обновления выбирает соответствующую дельта-корректировку и передает запрос на службу обновления.

В соответствии с аспектом настоящего изобретения обеспечен способ обновления данных на клиентском вычислительном устройстве. Способ может быть осуществлен в вычислительной системе, включающей в себя по меньшей мере одно клиентское вычислительное устройство, взаимодействующее со службой обновления программного обеспечения. В соответствии со способом вычислительное устройство получает выборку (из) одного или нескольких доступных обновлений программного обеспечения для осуществления обновления одного или нескольких файлов, установленных на клиентском вычислительном устройстве. Вычислительное устройство затем получает индекс (предметный указатель), идентифицирующий множество дельта-корректировок. Каждая дельта-корректировка соответствует по меньшей мере одной версии установленного файла. Вычислительное устройство получает инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве. Вычислительное устройство выбирает одну или более применимых дельта-корректировок, чтобы осуществить выбранные обновления программного обеспечения. Выборка одной или более применимых корректировок соответствует отображению индекса (предметного указателя), идентифицирующего набор дельта-корректировок, в инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве. Вычислительное устройство затем запрашивает одну или более выбранных дельта-корректировок.

В соответствии с другим аспектом настоящего изобретения обеспечен способ обновления данных на клиентском вычислительном устройстве. Способ может быть осуществлен в вычислительной системе, включающей в себя по меньшей мере одно клиентское вычислительное устройство, взаимодействующее со службой обновления программного обеспечения. В соответствии с настоящим изобретением вычислительное устройство принимает выборку одного или более доступных обновлений программного обеспечения для осуществления обновления одного или более файлов, установленных на клиентском вычислительном устройстве и пакет, идентифицирующий множество доступных дельта-корректировок для осуществления обновления по меньшей мере одной версии установленного файла. Вычислительное устройство получает инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве, и выбирает одну или более применимых дельта-корректировок, чтобы осуществить выбранные обновления программного обеспечения. Выборка одной или более применимых корректировок соответствует отображению пакета, идентифицирующего множество доступных дельта-корректировок, в инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве. Вычислительное устройство затем передает запрос одной или более выбранных дельта-корректировок.

В соответствии с дополнительным аспектом настоящего изобретения обеспечен способ обновления данных на клиентском вычислительном устройстве. Способ может быть осуществлен в вычислительной системе, включающей по меньшей мере одно клиентское вычислительное устройство, взаимодействующее со службой обновления программного обеспечения. В соответствии со способом вычислительное устройство получает выборку одного или более доступных обновлений программного обеспечения для осуществления обновления одного или более файлов, установленных на клиентском вычислительном устройстве, и индекс (предметный указатель), идентифицирующий множество дельта-корректировок, в котором каждая дельта-корректировка соответствует по меньшей мере одной версии установленного файла. Вычислительное устройство затем получает инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве, и выбирает одну или более применимых дельта-корректировок, чтобы осуществить выбранные обновления программного обеспечения. Выборка одной или более применимых корректировок соответствует отображению индекса, идентифицирующего множество дельта-корректировок, в инвентаризационную информацию относительно одного или более файлов, установленных на клиентском вычислительном устройстве. Вычислительное устройство запрашивает одну или более выбранных дельта-корректировок и получает запрошенную дельта-корректировку. Вычислительное устройство объединяет дельта-корректировку с соответствующим установленным файлом, чтобы сформировать обновленный файл, и устанавливает обновленный файл.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Предшествующие аспекты и многие из сопутствующих преимуществ данного изобретения будут лучше поняты при ссылке на последующее подробное описание, рассматриваемое вместе с сопроводительными чертежами, на которых:

Фиг.1 - блок-схема системы обновления программного обеспечения, включающей в себя клиентский компьютер и службу обновления, поставляющую обновляемое программное обеспечение, в соответствии с настоящим изобретением;

Фиг.2 - блок-схема системы обновления программного обеспечения согласно Фиг.1, иллюстрирующая аутентификацию клиентского вычислительного устройства с помощью службы обновления в соответствии с настоящим изобретением;

Фиг.3 - блок-схема системы обновления программного обеспечения согласно Фиг.1, иллюстрирующая синхронизацию доступных обновлений между клиентским вычислительным устройством и службой обновления в соответствии с настоящим изобретением;

Фиг.4 - блок-схема системы обновления программного обеспечения согласно Фиг.1, иллюстрирующая передачу информации об обновлении программного обеспечения на клиентское вычислительное устройство от службы обновления в соответствии с настоящим изобретением;

Фиг.5 - блок-схема системы обновления программного обеспечения согласно Фиг.1, иллюстрирующая обработку и выбор информации об обновлении, осуществляемые клиентским вычислительным устройством, в соответствии с настоящим изобретением;

Фиг.6 - блок-схема системы обновления программного обеспечения согласно Фиг.1, иллюстрирующая объединение дельта-корректировок и установку обновленных файлов посредством клиентского вычислительного устройства, в соответствии с настоящим изобретением;

Фиг.7 - иллюстративная схема последовательности операций программы обновления программного обеспечения, осуществляемой клиентским вычислительным устройством и службой обновления для идентификации обновлений программного обеспечения, доступных для установки на клиентском вычислительном устройстве, в соответствии с настоящим изобретением;

Фиг.8 - схема протокола обмена программы аутентификации для обеспечения избирательного доступа к обновлениям, хранимым службой обновления, в соответствии с настоящим изобретением;

Фиг.9 - блок-схема примерного набора обновлений программного обеспечения, иллюстрирующая процедуру авторизации, в соответствии с настоящим изобретением;

Фиг.10 - схема протокола обмена программы синхронизации для передачи выбранной группы обновлений программного обеспечения от службы обновления программного обеспечения на клиентское вычислительное устройство в соответствии с настоящим изобретением;

Фиг.11 - блок-схема, иллюстрирующая примерный раздел графического пользовательского интерфейса для визуального представления перечня обновлений программного обеспечения, которые являются доступными индивидуальному клиентскому вычислительному устройству, в соответствии с настоящим изобретением;

Фиг.12A и 12B - иллюстрируют подпрограмму 1200 обработки обновления программного обеспечения, осуществляемую клиентским вычислительным устройством 110 для извлечения и установки запрошенного программного обеспечения, в соответствии с настоящим изобретением; и

Фиг.13 - схема последовательности операций, иллюстрирующая подпрограмму, осуществляемую клиентским вычислительным устройством для обновления базового установочного компонента, в соответствии с настоящим изобретением.

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

Описываемое в целом, настоящее изобретение относится к системе и способу, предназначенным для управления обновлениями программного обеспечения. Более конкретно, настоящее изобретение направлено на систему и способ, содействующие выбору и осуществлению обновлений программного обеспечения, уменьшая при этом полосу частот и ресурсы обработки, необходимые, чтобы выбирать и осуществлять обновления программного обеспечения. В соответствии с настоящим изобретением обновления программного обеспечения могут соответствовать обновлениям для конкретных программных приложений или операционных систем. Дополнительно обновления программного обеспечения могут включать в себя программные драйверы или обновления программно-аппаратного обеспечения, например, системной БСВВ (BIOS). В соответствии с аспектом настоящего изобретения обеспечена системная и компонентная архитектура для обработки обновлений программного обеспечения. В соответствии с другим аспектом настоящего изобретения обеспечены протокол обновления и интерфейс для содействия санкционированию доступа и синхронизации клиентских устройств с помощью службы обновления. В соответствии с дополнительным аспектом настоящего изобретения обеспечен способ обновления установочного компонента и различных установленных файлов с использованием дельта-корректировки. Специалист в соответствующей области техники оценит, тем не менее, что дополнительные аспекты настоящего изобретения также могут быть обеспечены в настоящей заявке. Дополнительно специалист в соответствующей области техники оценит, что каждый обозначенный аспект может рассматриваться индивидуально или в качестве части общего аспекта изобретения.

Система 100 обновления программного обеспечения (Фиг.1) является иллюстративной блок-схемой системы 100 обновления программного обеспечения в соответствии с настоящим изобретением. Описываемая в целом, система 100 обновления программного обеспечения может содержать одно или несколько клиентских вычислительных устройств 110, службу 120 обновления и внешнего поставщика 130 обновлений. Описываемая в целом служба 120 обновления хранит и управляет распространением обновлений программного обеспечения, которые передают на клиентское вычислительное устройство 110 и устанавливают на нем. Обновления программного обеспечения могут быть поставлены службой 120 обновления или произвольным количеством внешних поставщиков 130 обновлений.

Клиентское вычислительное устройство 110, служба 120 обновления и внешний поставщик 130 обновлений с помощью электронных средств осуществляют обмен информацией по сети 101. Сеть может быть локальной сетью (ЛВС, LAN) или более крупной сетью такой, как глобальная сеть (ГВС, WAN) или Интернет. При использовании общеизвестного программного обеспечения система 100 обновления программного обеспечения может быть настроена с возможностью обмена документами, командами и другими известными типами информации, между клиентским вычислительным устройством 110 и серверами 121, 122, 123 и 124 службы 120 обновления. Как будет оценено специалистами в данной области техники и другими, система 100 обновления программного обеспечения, показанная на Фиг.1, является упрощенным примером одной подходящей системы для осуществления настоящего изобретения, и что настоящее изобретение не является ограниченным данным примером.

Как будет описано более подробно ниже, один вариант осуществления службы 120 обновления содержит несколько серверов. Как показано на Фиг.1, служба 120 обновления включает в себя сервер 121 обновления для управления всеми процессами службы 120 обновления и координирования процессов серверов 121, 122, 123 и 124 службы 120 обновления. Сервер 122 авторизации доступа формирует куки-данные авторизации согласно запрошенному клиентом и, в свою очередь, куки-данные авторизации используются, чтобы сформировать серверные куки-данные, которые разрешают клиентским компьютерам осуществлять доступ к обновлениям, поставляемым службой 120 обновления. Сервер 123 метаданных обеспечивает общую информацию, относящуюся к обновлениям, поставляемым службой 120 обновления. Сервер 123 метаданных дает возможность системе, соответствующей настоящему изобретению, идентифицировать конкретные обновления для конкретного типа клиентского компьютера или конкретной группы клиентских компьютеров. Сервер 124 загрузки обеспечивает один или несколько программных компонентов для доставки файлов данных, связанных с обновлениями программного обеспечения, поставляемыми службой 120 обновления.

Внешний поставщик 130 обновлений может включать в себя один или более серверов, которые распространяют обновления программного обеспечения. Внешний поставщик 130 обновлений может быть связан с элементом сети, который поставляет программное обеспечение, обновления программного обеспечения или другие данные, подлежащие распространению на группы клиентских компьютеров. Например, внешний поставщик 130 обновлений может быть связан со сторонним разработчиком программного обеспечения, желающим использовать службу 120 обновления, чтобы распространять обновления для одного или нескольких программных приложений. В другом примере внешний поставщик 130 обновлений может быть связан со службой 120 обновления программного обеспечения.

Клиентское вычислительное устройство 110 может быть любым вычислительным устройством, которое хранит и исполняет программные приложения 114. Клиентское вычислительное устройство 110 может быть создано из любого одного из числа различных компьютерных продуктов, включая в них, но не ограничиваясь таковыми: персональные компьютеры (ПК, PC), персональные цифровые ассистенты (PDA), мобильные телефоны, двусторонние устройства персонального вызова, или пейджеры и т.д. Как будет оценено средними специалистами в данной области техники или другими, архитектура клиентского вычислительного устройства 110 может принимать любую подходящую форму. Например, клиентское вычислительное устройство 110 может включать в себя сетевой интерфейс для обеспечения обмена информацией с сетью 101. Сетевой интерфейс может быть настроен с возможностью использования с любым соединением сети проводной или беспроводной связи, и может быть использован с помощью любого подходящего протокола управления передачей, таким как протокол TCP/IP. Кроме того, клиентское вычислительное устройство 110 может включать в себя блок обработки (процессор), устройство отображения и блок запоминающего устройства. Блок запоминающего устройства может хранить программный код, необходимый для функционирования клиентского вычислительного устройства 110, такой как операционная система 116. В дополнение блок запоминающего устройства хранит компонент 112 управления обновлением, предназначенный для управления и исполнения процессов согласно настоящему изобретению.

Система 100 обновления программного обеспечения хранит программы, которые при исполнении осуществляют настоящее изобретение. При исполнении система 100 обновления программного обеспечения хранит, управляет и выборочно передает обновления программного обеспечения. Как описано более полно ниже, среди многих других преимуществ, настоящее изобретение обеспечивает способ определения и выбора целевых групп клиентских вычислительных устройств, которые могут быть избранными для приема обновлений программного обеспечения. Настоящее изобретение также обеспечивает усовершенствованный механизм осуществления загрузки файлов данных, связанных с обновлениями программного обеспечения.

В целях иллюстрирования настоящего изобретения предусмотрено подробное описание рабочего примера настоящего изобретения. В описании рабочего примера сделана ссылка на обновления программного обеспечения, которые могут относиться к конкретному обновлению программного приложения, например, к обновлению версии 6.0 программы воспроизведения мультимедийных данных на версию 7.0 программы воспроизведения мультимедийных данных. Как будет оценено средними специалистами в данной области техники, такое обновление программного обеспечения может включать в себя передачу и установку набора файлов данных, связанных с обновлением программного обеспечения. Таким образом, в целях иллюстрирования настоящего изобретения различают обновление программного обеспечения и отдельного файла данных, содержащего обновление программного обеспечения.

Ниже со ссылкой на Фиг.2-6 описано иллюстративное взаимодействие между компонентами системы 100 обновления программного обеспечения, осуществляемое, чтобы обновить один или более файлов на клиентском вычислительном устройстве 110. Со ссылкой на Фиг.2 службу обновления программного обеспечения инициируют посредством передачи информации об обновлении программного обеспечения одним или более внешними поставщиками 130 обновлений. Как описано выше, внешние поставщики 130 обновлений могут быть связаны с системой 100 обновления программного обеспечения. В качестве альтернативы информация об обновлении программного обеспечения может быть передана сторонними внешними поставщиками 130 обновлений. В иллюстративном варианте осуществления настоящего изобретения информация об обновлении программного обеспечения может включать в себя программный код, используемый для обновления файла, программный код, используемый для замены файла, различные правила для определения применимости обновлений программного обеспечения, и/или визуального представления информации, описывающей обновление программного обеспечения. Передача информации об обновлении программного обеспечения может быть выполнена в любое время и не обязательно должна быть одновременной с инициированием взаимодействий других проиллюстрированных компонентов обновления программного обеспечения.

После приема от внешнего поставщика 130 обновлений информации об обновлении программного обеспечения служба 120 обновления формирует один или более блоков данных, чтобы содействовать передаче информации обновления. Данные могут включать в себя файл хранилища корректировок, который соответствует набору программных дельта-корректировок для обновления различных версий файла. Данные могут также включать в себя декларацию хранилища корректировок, которая соответствует индексу, отображающему конкретные версии файлов, в соответствующую дельта-корректировку, находящуюся в файле хранилища корректировок. Данные дополнительно могут включать в себя саморазворачивающийся файл, соответствующий информации, которую агент обновления будет использовать для того, чтобы запрашивать и устанавливать данные конкретного обновления программного обеспечения, как описано более подробно ниже. Специалист в данной области техники оценит, что формирование файла хранилища корректировок, декларации хранилища корректировок и саморазворачивающихся файлов может быть выполнено в любой момент времени и не обязательно должно быть одновременным со взаимодействиями других проиллюстрированных компонентов.

Чтобы инициировать передачу клиентам информации об обновлении программного обеспечения, клиентское вычислительное устройство 110 выдает на службу 120 обновления запрос на проверку подлинности идентификационной информации (запрос аутентификации). В иллюстративном варианте осуществления настоящего изобретения запрос аутентификации соответствует взаимодействию по протоколу обновления между клиентским вычислительным устройством 110 и службой 120 обновления, который описан более подробно ниже. После выполнения аутентификации служба 120 обновления передает элемент данных аутентификации на клиентское вычислительное устройство 110. На Фиг.3 показано, что прошедшее аутентификацию клиентское вычислительное устройство 120 затем инициирует синхронизацию доступных обновлений с сервером 120 обновлений. В иллюстративном варианте осуществления настоящего изобретения запрос синхронизации также соответствует взаимодействию по протоколу обновления между клиентским вычислительным устройством 110 и службой 120 обновления, который описан более подробно ниже. После выполнения синхронизации клиентское вычислительное устройство 110 принимает информацию всех применимых обновлений программного обеспечения и информацию, описывающую обновления. Однако в иллюстративном варианте осуществления настоящего изобретения не загружается программный код, чтобы инициализировать обновления.

Со ссылками на Фиг.3, в некоторый момент в течение процесса обновления принимают выборку обновлений, подлежащих установке. В иллюстративном варианте осуществления настоящего изобретения пользователю может быть представлена информация об обновлении программного обеспечения, принятая в течение синхронизации, и предложено выбрать подходящее обновление. В качестве альтернативы, клиентское вычислительное устройство 110 может быть настроено таким образом, чтобы автоматически выбирать все применимые обновления программного обеспечения. Дополнительно клиентское вычислительное устройство 110 также может содержать некоторые правила, которые позволяют ему автоматически выбирать поднабор доступных обновлений программного обеспечения. Дополнительно пользователь может инициировать выборку обновления посредством обмена информацией со службой 120 обновления, например, через web-страницу Интернет.

На Фиг.4 показано что, компонент 112 управления обновлением инициализирует агент 118 обновления на клиентском вычислительном устройстве 110, если агент обновления не является уже существующим. Агент 118 обновления затем запрашивает передачу пакета информации об обновлении программного обеспечения, например, саморазворачивающегося файла. Агент 118 обновления принимает саморазворачивающийся файл и выполняет какие-либо (имеющиеся) обновления к программе установки (инсталлятору), как описано ниже. Дополнительно агент 118 обновления может запросить любую отсутствующую или разрушенную информацию от службы 120 обновления.

Со ссылкой на Фиг.5, как только агент 118 обновления принимает пакет информации об обновлении программного обеспечения, агент 118 обновления выполняет инвентаризацию файлов, которые установлены на клиентском вычислительном устройстве 110. На основании сравнения инвентаризационной информации и пакета информации об обновлении программного обеспечения агент 118 обновления определяет, какая дельта-корректировка или другая информация об обновлении необходима для выполнения выбранных обновлений. Агент 118 обновления затем передает запрос на конкретные дельта-обновления. В одном варианте осуществления настоящего изобретения запрос на обновление программного обеспечения может соответствовать непосредственному, передаваемому через непосредственное сетевое соединение, запросу, который назван "ручное обновление". В другом варианте осуществления настоящего изобретения запрос обновлений программного обеспечения может быть низкоприоритетным (фоновым) запросом, который передают, не требуя явного действия пользователя. Этот вариант осуществления назван "автоматическое обновление".

В иллюстративном варианте осуществления настоящего изобретения, если обновление программного обеспечения соответствует дельта-корректировке, то агент 118 обновления передает на службу 120 обновления запрос, который идентифицирует конкретную дельта-корректировку, идентифицированную согласно декларации хранилища корректировок. В качестве альтернативы, в случае, когда дельта-корректировка является недоступной или если несколько дельта-корректировок потерпели неудачу, агент 118 обновления может инициировать программу нейтрализации ошибок (восстановления). Программа восстановления может включать в себя запрос на передачу полной копии полностью обновленного файла из файла хранилища корректировок. Программа восстановления также может включать в себя запрос на передачу в отдельном пакете полной копии полностью обновленного файла.

В иллюстративном варианте осуществления настоящего изобретения сервер 124 загрузки, относящийся к службе 120 обновления, может непосредственно обрабатывать запрос на обновление программного обеспечения от агента 118 обновления. В качестве альтернативы, запрос также может быть обработан любым количеством дополнительных внешних серверов загрузки, например, традиционными Web-серверами, которые тоже приняли запрошенные дельта-корректировки обновления от службы 120 обновления. Например, корпорация может использовать внутренний сервер для обновления клиентских устройств. Дополнительно запрос может быть обработан внешними серверами загрузки, в которых некоторые, или все, дельта-корректировки обновления являются кэшированными при обработке предыдущих запросов. Соответственно в этом варианте осуществления загрузка может быть распределенной на нескольких дополнительных серверах загрузки, способных обслуживать запросы данных, соответствующие протоколу передачи гипертекстовых файлов ("HTTP").

Со ссылкой на Фиг.6, как только принята информация об обновлении программного обеспечения, агент 118 обновления объединяет дельта-корректировку с