Система и способ для обновления инсталляционных компонентов в сетевой среде
Иллюстрации
Показать всеИзобретение относится к системам и способам для управления инсталляцией файлов в клиентском вычислительном устройстве. Техническим результатом является обеспечение управления инсталляцией файлов в вычислительном устройстве. Клиентское вычислительное устройство получает инсталляционную информацию, идентифицирующую версию основного инсталляционного компонента, хранящегося в клиентском вычислительном устройстве. Инсталляционная информация также содержит дельта-заплату инсталляционного компонента, которую объединяют с основным инсталляционным компонентом для создания обновленного инсталляционного компонента. Обновленный инсталляционный компонент используют для инсталляции одного или более файлов в клиентском вычислительном устройстве. После завершения инсталляции обновленный инсталляционный компонент можно удалить. 3 н. и 13 з.п. ф-лы, 14 ил.
Реферат
Область техники
Настоящее изобретение относится к программному обеспечению и вычислительным сетям, в частности к системе и способу для управления обновлениями программного обеспечения и их передачи.
Описание известного уровня техники
Большинство серийно выпускаемых программных продуктов подвергаются постоянному пересмотру в целях исправления или модернизации их свойств и/или функций. Каждый пересмотр программного продукта или компонента может потребовать добавления новых файлов и/или замены существующих файлов файлами более новых версий. После того, как поставщик программного обеспечения определил проблему программного продукта и разработал решение для этой проблемы, у него возникает желание поместить это решение в обновление и сделать это обновление широко доступным для потребителей. Поставщики программного обеспечения также заинтересованы в распространении обновлений среди потребителей наиболее быстрым и безотказным способом.
Важным каналом для получения потребителями новейших обновлений программных продуктов является Интернет. Ввиду быстрого роста использования Интернет потребители ожидают, что программные продукты и обновления будут предоставляться для загрузки в оперативном режиме. Поставщики также заинтересованы в том, чтобы расширять использование Интернет для распространения обновлений, потому что таким образом снижается их стоимость и потребители могут получить решение идентифицированной проблемы, как только это решение станет доступным для загрузки. Поставщики могут создавать сайты в Интернет, чтобы упростить обнаружение и определение местонахождения файлов обновления для применения. Технические аспекты загрузки файлов практически не требуют внимания пользователя, так как обычно ее выполняет операционная система.
При обычном подходе поставщик программного обеспечения создает обновление программного обеспечения в виде "пакета" для загрузки. Этот пакет обычно представляет собой саморазворачивающийся исполняемый файл, в который вложены программа установки и каждый обновленный файл продукта в сжатом виде, чтобы уменьшить размер пакета. Размер пакета обычно равен сумме сжатых размеров каждого измененного файла плюс размер самого кода извлечения. При исполнении пакет извлекает каждый содержащийся в нем файл на временное место, а затем запускает программу установки, чтобы инсталлировать каждый файл в соответствующем месте системного каталога. Файлы, которые поставляются в сжатом виде, во время инсталляции разворачиваются. Любой существующий файл с тем же именем и в том же месте будет просто затерт заменяющим его файлом.
Несмотря даже на то, что Интернет позволяет быстро и широко распространять обновления программного обеспечения, существуют проблемы, обусловленные ограниченной шириной полосы для передачи через сеть. Сами размеры обычных программных приложений привели к тому, что размеры разгружаемых обновлений стали чрезвычайно большими. Обычно в одном обновлении группируется несколько решений для ряда проблем продукта. Если поставщик обновляет программный продукт регулярно, то размер загрузки пакета обновления будет постоянно увеличиваться, так как поставщик не сможет не включить в него какие-то файлы в предположении, что они уже получены пользователем в предыдущих обновлениях. Поскольку в пакете обновления объединено несколько полных файлов, этот пакет может быть довольно большим, даже если файлы сжаты. Иногда даже при самых быстрых модемных соединениях это уменьшает эффективность ширины полосы загрузки.
Конечно, этот аспект, требующий больших временных затрат обычного процесса загрузки, нежелателен. В некоторых случаях при таких загрузках файлов потребители оплачивают соединение на дальнее расстояние или время соединения. Любое сокращение времени соединения снизит непосредственные денежные затраты для таких потребителей. Обычно поставщики устанавливают несколько различных стоимостей в зависимости от размеров загрузок, которые они предоставляют, поэтому уменьшение размеров может принести им также прямую денежную выгоду. Уменьшение размеров загрузок увеличит доступную ширину полосы, позволив обслуживать большее число потребителей с использованием имеющегося оборудования сетевого сервера.
Из-за продолжительного времени, необходимого для загрузки большого обновления, процессу загрузки могут быть свойственны различные проблемы соединения с сетью. Существует ряд причин, по которым может произойти преждевременное разъединение с Интернет, включая помехи на телефонной линии, сигналы ожидания вызова и непреднамеренные команды. Некоторые поставщики услуг Интернет устанавливают лимит на время соединения, ограничивая время, в течение которого пользователь может находиться в оперативном режиме в течение одного сеанса. Если пользователь загружает большой файл в тот момент, когда обрывается соединение с сетью, он может быть вынужден начать загрузку сначала. Большинство обычных операционных систем и протоколов передачи файлов не позволяют возобновлять передачу файла, поэтому промежуточный результат будет утрачен, и передачу надо будет начинать сначала. Возможностей отказа настолько много, что многие пользователи считают почти невозможным получать обновления в оперативном режиме. Если размер пакета обновления слишком большой, то у пользователей может никогда не возникнуть возможности загрузить его полностью.
Одна из попыток уменьшения размера обновлений программного обеспечения и повышения эффективности ширины полосы связана с использованием дельта-заплат (коррективок) или двоичных заплат. Как известно специалистам, под дельта-заплатой подразумевается специальный программный код, который изменяет существующий файл при исполнении его вычислительным устройством. Так как дельта-заплата содержит специальный программный код, требуется отдельная дельта-заплата для каждой отдельной версии файла. Что касается обновлений программного обеспечения, служба обновления программного обеспечения может передавать дельта-заплату обновления меньшего размера вместо того, чтобы передавать полный обновленный файл. При этом дельта-заплата обновления используется для изменения существующего файла в обновленный файл.
Хотя дельта-заплаты обновления могут потенциально уменьшить количество данных, необходимых для обновления файлов, современные принципы установки дельта-заплат не позволяют выбирать применимые дельта-файлы в тех ситуациях, когда существует большое количество версий файла. Так как требуется отдельная дельта-заплата для каждой версии файла, в типичных системах обновления программного обеспечения может часто требоваться сотни, если не тысячи, отдельных дельта-заплат, соответствующих каждой отдельной версии файла. Согласно одному решению, некоторые службы обновлений, поддерживающие установку дельта-заплат, передают все возможные дельта-заплаты клиентскому вычислительному устройству. Однако при этом обычно увеличивается объем данных, необходимых для осуществления обновления программного обеспечения, так как число возможных дельта-заплат программного обеспечения растет. Соответственно число потенциально применимых дельта-заплат может быстро вырасти до того же размера, что и полный обновленный файл. Согласно другому решению служба сетевого обновления программного обеспечения сканирует клиентскую машину, чтобы выбрать, какую дельта-заплату можно применить для каждой клиентской машины. Хотя при этом уменьшается объем передаваемой информации дельта-заплат, однако требуется дополнительная логика в службе обновления программного обеспечения, чтобы обеспечить сканирование клиентских машин и выбор применимой дельта-заплаты. Использование дополнительной логики увеличивает системные ресурсы, которые должны предоставляться службой. Кроме того, такое решение обычно не позволяет использовать сетевое кэширование, например, такое, которое обычно обеспечивают традиционные веб-серверы.
Кроме перечисленных выше недостатков существующие системы не могут передавать определенные типы обновлений программного обеспечения, например драйверы аппаратных средств. Как известно, специальные обновления, такие как применяются для аппаратных драйверов, трудно предоставлять пользователям посредством широкого распространения, потому что большинство специальных обновлений программного обеспечения будут работать только на клиентских компьютерах с конкретными аппаратными средствами. В большинстве случаев, если клиентский компьютер, например, получает несовместимый усовершенствованный драйвер аппаратного средства, инсталляция этого усовершенствованного драйвера может вызвать фатальную ошибку или даже воспрепятствовать работе компьютера.
Таким образом, существует потребность в системе и способе для усовершенствованной передачи обновлений программного обеспечения между сервером и множеством клиентов. Кроме того, существует потребность в системе и способе обновления программного обеспечения с усовершенствованными механизмами, позволяющими предоставлять услуги обновления конкретным целевым типам клиентов при передаче специальных обновлений.
Сущность изобретения
Предложены система и способ для управления инсталляцией файлов в вычислительном устройстве. Клиентское вычислительное устройство получает инсталляционную информацию, идентифицирующую версию основного инсталляционного компонента, хранящегося в клиентском вычислительном устройстве. Инсталляционная информация также содержит дельта-заплату инсталляционного компонента, которая объединяется с основным инсталляционным компонентом для создания обновленного инсталляционного компонента. Обновленный инсталляционный компонент используется для инсталляции одного или более файлов в клиентском вычислительном устройстве. После завершения инсталляции обновленный инсталляционный компонент можно удалить.
Согласно одному аспекту настоящего изобретения предложен способ управления инсталляцией файлов в клиентском вычислительном устройстве. Согласно этому способу вычислительное устройство получает инсталляционную информацию, идентифицирующую необходимый основной инсталляционный компонент для инсталляции одного или более файлов в клиентском вычислительном устройстве. Вычислительное устройство выбирает основной инсталляционный компонент, хранящийся в клиентском вычислительном устройстве. Вычислительное устройство получает дельта-заплату инсталляционного компонента из инсталляционной информации и объединяет дельта-заплату инсталляционного компонента из инсталляционной информации с выбранным основным инсталляционным компонентом. Вычислительное устройство инсталлирует один или более файлов в клиентском вычислительном устройстве, используя объединенный инсталляционный компонент.
Согласно следующему аспекту настоящего изобретения предложен способ управления инсталляцией файлов в клиентском вычислительном устройстве. Согласно этому способу вычислительное устройство получает пакет, содержащий информацию, идентифицирующую необходимый основной инсталляционный компонент для инсталляции одного или более файлов в клиентском вычислительном устройстве. Вычислительное устройство идентифицирует основной инсталляционный компонент, хранящийся в клиентском вычислительном устройстве, и получает дельта-заплату инсталляционного компонента из пакета. Вычислительное устройство объединяет дельта-заплату инсталляционного компонента из пакета с идентифицированным основным инсталляционным компонентом и инсталлирует один или более файлов в клиентском вычислительном устройстве, используя объединенный инсталляционный компонент. Вычислительное устройство также удаляет объединенный инсталляционный компонент после инсталляции одного или более файлов в клиентском вычислительном устройстве.
Согласно следующему аспекту изобретения предложен способ управления инсталляцией файлов в клиентском вычислительном устройстве. Согласно этому способу вычислительное устройство получает пакет, содержащий информацию для выбора из набора основных инсталляционных компонентов, хранящихся в клиентском вычислительном устройстве. Вычислительное устройство выбирает основной инсталляционный компонент из набора основных инсталляционных компонентов, хранящихся в вычислительном устройстве. Вычислительное устройство получает обновление инсталляционного компонента из пакета и обновляет выбранный инсталляционный компонент обновлением инсталляционного компонента. Вычислительное устройство также инсталлирует один или более файлов в клиентском вычислительном устройстве, используя объединенный инсталляционный компонент.
Краткое описание чертежей
Описанные выше аспекты и многие другие сопутствующие преимущества изобретения поясняются в дальнейшем описании со ссылками на прилагаемые чертежи, на которых
фиг.1 - структурная схема системы обновления программного обеспечения, содержащей клиентский компьютер и службу обновлений, предоставляющую обновленное программное обеспечение, согласно настоящему изобретению,
фиг.2 - структурная схема системы обновления программного обеспечения по фиг.1, иллюстрирующая аутентификацию клиентского вычислительного устройства в службе обновлений, согласно настоящему изобретению,
фиг.3 - структурная схема системы обновления программного обеспечения по фиг.1, иллюстрирующая синхронизацию имеющихся обновлений между клиентским вычислительным устройством и службой обновлений, согласно настоящему изобретению,
фиг.4 - структурная схема системы обновления программного обеспечения по фиг.1, иллюстрирующая передачу информации обновления программного обеспечения клиентскому вычислительному устройству из службы обновления, согласно настоящему изобретению,
фиг.5 - структурная схема системы обновления программного обеспечения по фиг.1, иллюстрирующая обработку и выбор информации обновления клиентским вычислительным устройством, согласно настоящему изобретению,
фиг.6 - структурная схема системы обновления программного обеспечения по фиг.1, иллюстрирующая объединение дельта-заплат и инсталляцию обновленных файлов клиентским вычислительным устройством, согласно настоящему изобретению,
фиг.7 - алгоритм выполнения программы обновления программного обеспечения, реализуемый клиентским вычислительным устройством и службой обновлений для идентификации обновлений программного обеспечения, доступных для инсталляции в клиентском вычислительном устройстве, согласно настоящему изобретению,
фиг.8 - протокольная схема авторизации для предоставления избирательного доступа к обновлениям, хранящимся в службе обновления программного обеспечения, согласно настоящему изобретению,
фиг.9 - структурная схема примерного набора обновлений программного обеспечения, иллюстрирующая программу авторизации, согласно настоящему изобретению,
фиг.10 - протокольная схема программы синхронизации для передачи выбранной группы обновлений программного обеспечения из службы обновления программного обеспечения в клиентское вычислительное устройство, согласно настоящему изобретению,
фиг.11 - структурная схема, иллюстрирующая примерную часть графического пользовательского интерфейса для отображения списка обновлений программного обеспечения, которые доступны для клиентского вычислительного устройства, согласно настоящему изобретению,
фиг.12А и 12В - подпрограмма 1200 обработки обновления программного обеспечения, реализуемая клиентским вычислительным устройством 110, для нахождения и инсталляции запрашиваемого программного обеспечения, согласно настоящему изобретению, и
фиг.13 - алгоритм, иллюстрирующий подпрограмму, реализуемую клиентским вычислительным устройством, для обновления основного инсталляционного компонента, согласно настоящему изобретению.
Подробное описание предпочтительного варианта осуществления изобретения
Настоящее изобретение относится, в общем, к системе и способу для управления обновлениями программного обеспечения. Более конкретно, настоящее изобретение относится к системе и способу для облегчения выбора и реализации обновлений программного обеспечения с одновременным уменьшением ширины полосы и ресурсов обработки, необходимых для выбора и реализации обновлений программного обеспечения. Согласно настоящему изобретению обновления программного обеспечения могут соответствовать обновлениям конкретных программных приложений или операционных систем. Кроме того, обновления программного обеспечения могут включать в себя программные драйверы или обновления для встроенных программ, таких как система BIOS. Согласно одному аспекту настоящего изобретения предложена архитектура системы и компонентов для обработки обновлений программного обеспечения. Согласно другому аспекту настоящего изобретения предложены протокол обновления и интерфейс для облегчения авторизации клиентских машин и их синхронизации со службой обновлений. Согласно следующему аспекту настоящего изобретения предложен способ обновления инсталляционного компонента и различных инсталлированных файлов с использованием дельта-заплат. Специалистам будет понятно, что в данной заявке можно также предусмотреть и другие аспекты настоящего изобретения. Кроме того, специалистам будет понятно, что каждый указанный аспект можно рассматривать отдельно или как часть общего изобретательского замысла.
На фиг.1 изображена структурная схема системы 100 обновления программного обеспечения, иллюстрирующая предложенную систему 100 обновления программного обеспечения. В общем, система 100 обновления программного обеспечения может содержать одно или более клиентских вычислительных устройств 110, службу 120 обновления и внешнего провайдера 130 обновлений. Служба 120 обновлений хранит обновления программного обеспечения и управляет их распространением, при котором обновления программного обеспечения передаются клиентскому вычислительному устройству 110 и инсталлируются в нем. Обновления программного обеспечения могут предоставляться службой 120 обновлений или любым количеством внешних провайдеров 130 обновлений.
Клиентское вычислительное устройство 110, служба 120 обновлений и внешний провайдер 130 обновлений связаны между собой посредством электронных средств через сеть 101. Сеть может быть локальной вычислительной сетью (ЛВС) или большой сетью, такой как глобальная вычислительная сеть (ГВС) или Интернет. С помощью известных программных средств систему 100 обновления программного обеспечения можно сконфигурировать с возможностью обмена документами, командами или другими известными видами информации между клиентским вычислительным устройством 110 и серверами 121, 122, 123 и 124 службы 120 обновления. Как будет понятно специалистам, система 100 обновления программного обеспечения, показанная на фиг.1, является упрощенным примером системы, пригодной для реализации настоящего изобретения, и настоящее изобретение не ограничено этим примером.
Как более подробно описано ниже, один вариант службы 120 обновления содержит несколько серверов. Как показано на фиг.1, служба 120 обновлений содержит сервер 121 обновлений для управления общими процессами службы 120 обновлений и координации процессов серверов 121, 122, 123 и 124 службы 120 обновлений. Авторизационный сервер 122 создает cookie-файлы (идентификационные файлы) авторизации, запрашиваемые клиентом, а идентификационные файлы авторизации, в свою очередь, используются для создания серверных идентификационных файлов, которые позволяют клиентским компьютерам осуществлять доступ к обновлениям, предоставляемым службой 120 обновлений. Сервер 123 метаданных предоставляет общую информацию относительно обновлений, предоставляемых сервером 120 обновлений. Сервер 123 метаданных позволяет системе согласно изобретению идентифицировать конкретные обновления для конкретного типа клиентского компьютера или конкретной группы клиентских компьютеров. Загрузочный сервер 124 предоставляет один или более компонентов программного обеспечения для передачи файлов данных, связанных с обновлениями программного обеспечения, предоставляемым службой 120 обновлений.
Внешний провайдер 130 обновлений может иметь один или несколько серверов, которые распространяют обновления программного обеспечения. Внешний провайдер 130 обновлений может быть связан с объектом, который предоставляет программное обеспечение, обновления программного обеспечения или другие данные, подлежащие распространению группам клиентских компьютеров. Например, внешний провайдер 130 обновлений может быть связан со сторонним разработчиком программного обеспечения, желающим использовать службу 120 обновлений для распространения обновлений для одного или более программных приложений. В другом примере внешний провайдер 130 обновлений может быть связан с системой 120 обновления программного обеспечения.
Клиентское вычислительное устройство 110 может быть любым вычислительным устройством, которое сохраняет и исполняет программные приложения 114. Клиентское вычислительное устройство 110 может быть образовано любым из целого ряда различных вычислительных устройств, включающих в себя, без ограничения перечисленным, персональные компьютеры (ПК), персональные цифровые помощники (ПЦП), мобильные телефоны, двусторонние пейджеры и т.п. Специалистам будет понятно, что архитектура клиентского вычислительного устройства 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 обновлений передает идентификационный файл аутентификации в клиентское вычислительное устройство 120. Как показано на фиг.3, аутентифицированное клиентское вычислительное устройство 120 затем инициирует синхронизацию доступных обновлений с сервером 120 обновлений. В проиллюстрированном варианте настоящего изобретения запрос на синхронизацию также соответствует протокольному взаимодействию для обновления между клиентским вычислительным устройством 110 и службой 120 обновлений, которое более подробно описано ниже. После выполнения синхронизации клиентское вычислительное устройство 110 получает информацию обо всех применимых обновлениях программного обеспечения и информацию, описывающую эти обновления. Однако в иллюстративном варианте настоящего изобретения не был загружен никакой программный код для реализации обновления.
Согласно фиг.3, в некоторый момент в процессе обновления принимается выбор обновлений, подлежащих инсталляции. В иллюстративном варианте настоящего изобретения пользователю может быть представлена информация обновления программного обеспечения, полученная во время синхронизации, и просьба выбрать соответствующее обновление. Альтернативно, клиентское вычислительное устройство 110 может быть конфигурировано с возможностью автоматического выбора всех применимых обновлений программного обеспечения. Кроме того, клиентское вычислительное устройство 110 может также иметь некоторые правила, позволяющие ему автоматически выбирать подгруппу пригодных обновлений программного обеспечения. Также пользователь может инициировать выбор обновлений путем связи со службой 120 обновлений через веб-страницу Интернет.
Как показано на фиг.4, компонент 112 управления обновлением создает агент 118 обновления в клиентском вычислительном устройстве 110, если агента обновления еще нет. Агент 118 обновления затем запрашивает передачу пакета информации обновления программного обеспечения, например, саморазворачивающегося файла. Агент 118 обновления принимает саморазворачивающийся файл и выполняет любые обновления в инсталляторе, как описано ниже. Кроме того, агент 118 обновления может запросить любую отсутствующую или поврежденную информацию из службы 120 обновлений.
Как показано на фиг.5, после получения пакета информации обновления программного обеспечения агент 118 обновления выполняет инвентаризацию файлов, инсталлированных в клиентском вычислительном устройстве 110. На основании сравнения инвентаризации и пакета информации обновления программного обеспечения агент 118 обновления определяет, какая дельта-заплата или другая информация обновления потребуется для осуществления выбранных обновлений. Затем агент 118 обновления передает запрос на конкретные дельта-обновления. В одном варианте настоящего изобретения запрос на обновления программного обеспечения может соответствовать прямому запросу, переданному через прямое сетевое соединение, который будет называться ручным обновлением. В другом варианте настоящего изобретения запрос на обновления программного обеспечения может быть фоновым запросом, который передается без участия пользователя. Этот вариант будет называться автоматическим обновлением.
В иллюстративном варианте настоящего изобретения, если обновление программного обеспечения соответствует дельта-заплате, агент 118 обновления передает запрос в службу 120 обновления, в котором указывает конкретную дельта-заплату, идентифицированную декларацией хранения заплаты. Альтернативно, если дельта-заплаты нет или если несколько дельта-заплат оказались неудачными, агент 118 обновления может инициировать процедуру нейтрализации ошибок. Процедура нейтрализации ошибок может включать в себя запрос на передачу полной копии всего обновленного файла из файла хранения заплат. Процедура нейтрализации ошибок может также включать в себя запрос на передачу полной копии всего обновленного файла из самостоятельного пакета.
В иллюстративном варианте настоящего изобретения загрузочный сервер 124 службы 120 обновлений может непосредственно обработать запрос на обновление программного обеспечения от агента 118 обновления. Альтернативно, запрос может также обрабатываться любым количеством дополнительных внешних загрузочных серверов, например обычных веб-серверов, которые получили запрошенные обновленные дельта-заплаты из службы 120 обновлений. Например, некоторая корпорация может использовать внутренний сервер для обновления клиентских машин. Кроме того, запрос может обрабатываться внешними загрузочными серверами, в которых некоторые или все дельта-заплаты обновлений кэшируются при обработке предыдущих запросов. Соответственно в данном варианте загрузку можно распределить на несколько дополнительных загрузочных серверов, способных обслуживать запросы данных по протоколу передачи гипертекста (НТТР).
Как показано на фиг.6, после приема информации обновления программного обеспечения агент 118 обновления объединяет дельта-заплату с инсталлированным файлом для создания обновленного файла. Кроме того, агент 118 обновления может проверить, был ли успешно обновлен соответствующий файл блоком объединения. Как описано выше, если достоверность дельта-заплаты невозможно подтвердить, то агент 118 обновления может повторно запросить дельта-заплату или запросить весь обновленный файл после нескольких неудач. После того, как агент 118 обновления получит подтвержденный и обновленный файл, этот файл инсталлируется в клиентском вычислительном устройстве 110.
На фиг.7 изображен алгоритм выполнения программы 700 обработки обновления программного обеспечения, иллюстрирующий взаимодействие между клиентским вычислительным устройством 110 и службой 120 обновлений программного обеспечения согласно настоящему изобретению. В блоке 702 служба 120 обновлений программного обеспечения разрешает доступ к клиентскому компьютеру 110. В иллюстративном варианте настоящего изобретения авторизация доступа к клиентскому компьютеру может включать в себя создание в сервере cookie-файлов (идентификационных файлов) для разрешения доступа к тем обновлениям программного обеспечения, которые связаны с конкретной группой компьютеров. Более подробно процесс авторизации описан ниже со ссылками на фиг.8.
В блоке 704 клиентский компьютер 110 и служба 120 обновлений программного обеспечения синхронизируют информацию обновления. В иллюстративном варианте настоящего изобретения служба 120 обновлений программного обеспечения передает метаданные, описывающие конкретные обновления программного обеспечения, клиентскому вычислительному устройству 110. Эти метаданные содержат информацию, описывающую имеющиеся обновления программного обеспечения, чтобы позволить пользователю выбрать одно или более обновлений для инсталляции. Более подробно процесс синхронизации описан ниже со ссылкой на фиг.9 и 10. В блоке 706 клиентское вычислительное устройство 110 получает набор применимых обновлений для загрузки. В проиллюстрированном варианте настоящего изобретения набор применимых обновлений может соответствовать применению нескольких уникальных пользовательских интерфейсов для облегчения пользовательского выбора. Набор пользовательских интерфейсов описан более подробно ниже со ссылкой на фиг.11.
В блоке 708 клиентское вычислительное устройство 110 обрабатывает выбор пользователем применимых обновлений программного обеспечения и взаимодействует со службой 120 обновления программного обеспечения для запроса конкретной информации обновления. В иллюстративном варианте настоящего изобретения клиентское вычислительное устройство 110 выбирает и запрашивает одну или более применимых дельта-заплат обновления. Агент 118 обновления в клиентском вычислительном устройстве 110 может затем обработать запрошенные данные для реализации выбранного обновления программного обеспечения. В блоке 710 программа 700 заканчивается.
Со ссылкой на фиг.8 ниже описана протокольная схема 800 для авторизации доступа к клиентскому вычислительному устройство 110 и соответствующий блок 702 (фиг.7). В иллюстративном примере настоящего изобретения служба 120 обновлений программного обеспечения использует расширяемый механизм определения цели для управления доступом клиентского вычислительного устройства 110 к обновлениям и другому программному обеспечению. Служба 120 обновления программного обеспечения содержит механизм, который связывает конкретные обновления программного обеспечения с одной или более целевыми группами клиентских вычислительных устройств 110. Например, служба 120 обновлений программного обеспечения может ограничить доступ конкретного обновления аппаратного драйвера конкретной торговой маркой клиентского вычислительного устройства 110, имеющего конкретное аппаратное устройство. В таком примере служба 120 обновлений программного обеспечения может определить целевую группу клиентских вычислительных устройств 110, имеющих конкретную торговую марку и конкретное аппаратное устройство, и ограничить передачу загрузки конкретного программного обеспечения этой целевой группой.
В иллюстративном примере настоящего изобретения реализация расширяемого механизма определения цели облегчается с помощью программных компонентов (авторизационных расширений или плагинов), которые определяют членство клиентского вычислительного устройства в одной или б