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

Иллюстрации

Показать все

Изобретение относится к системе и способу для управления обновлениями программного обеспечения. Техническим результатом является обеспечение возможности получать соответствующие обновления посредством эффективного использования уменьшенной полосы частот. В соответствии с настоящим изобретением служба обновления программного обеспечения управляет доступом к обновлениям программного обеспечения, хранимым на серверах. В соответствии с другим вариантом служба обновления программного обеспечения осуществляет синхронизацию с клиентскими устройствами, чтобы идентифицировать применимые обновления. 5 н. и 17 з.п. ф-лы, 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). В соответствии с аспектом настоящего изобретения обеспечена системная и компонентная архитектура для обработки обновлений программного обеспечения. В соответствии с другим аспектом настоящего изобретения обеспечены протокол обновления и интерфейс для содействия санкционированию доступа (авторизации) и синхронизации клиентских устройств с помощью службы обновления. В соответствии с дополнительным аспектом настоящего изобретения обеспечены способ обновления компонента установки и различных установленных файлов с использованием дельта-корректировки. Специалист в соответствующей области техники оценит, тем не менее, что дополнительные аспекты настоящего изобретения также могут быть обеспечены в настоящей заявке. Дополнительно специалист в соответствующей области техники оценит, что каждый обозначенный аспект может рассматриваться индивидуально или в качестве части общего аспекта изобретения.

Система 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 обновле