Система и способ управления и передачи обновлений программного обеспечения

Иллюстрации

Показать все

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

Реферат

Область техники

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

Уровень техники

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

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

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

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

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

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

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

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

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

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

Сущность изобретения

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

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

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

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

Краткое описание чертежей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное описание предпочтительного осуществления

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

На фиг.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 обновлений передает аутентификационный идентификационный файл (cookie) клиентскому вычислительному устройству 120. Согласно фиг.3, затем аутентифицированное клиентское вычислительное устройство 120 инициирует синхронизацию доступных обновлений с сервером 120 обновлений. В иллюстративном осуществлении настоящего изобретения запрос синхронизации также соответствует взаимодействию с протоколом обновлений между клиентским вычислительным устройством 110 и сервисом 120 обновлений, который описан более детально ниже. По завершении синхронизации клиентское вычислительное устройство 110 принимает информацию всех применимых обновлений программного обеспечения и информацию, описывающую эти обновления. Однако в иллюстративном осуществлении настоящего изобретения никакой программный код для запуска экземпляра обновления не был загружен.

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

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

Согласно фиг.5, как только агент 118 обновлений принимает пакет информации обновления программного обеспечения, агент 118 обновлений выполняет инвентаризацию файлов, которые установлены на клиентском вычислительном устройстве 110. Основываясь на сравнении инвентаризации и пакета информации обновления программного обеспечения, агент 118 обновлений определяет, какая дельта-«заплата» или другая информация обновления будет требоваться, чтобы завершить выбранные обновления. Затем агент 118 обновлений передает запрос на конкретные дельта-обновления. В одном варианте осуществления настоящего изобретения этот запрос на обновления программного обеспечения может соответствовать прямому запросу, передаваемому через прямое сетевое соединение, который будет упоминаться как ручное обновление. В другом варианте осуществления настоящего изобретения запрос на обновления программного обеспечения может быть фоновым запросом, который передается без требования явного пользовательского действия. Этот вариант осуществления будет упоминаться как автоматическое обновление.

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

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