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

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

Info

Publication number
RU2357279C2
RU2357279C2 RU2005118556/09A RU2005118556A RU2357279C2 RU 2357279 C2 RU2357279 C2 RU 2357279C2 RU 2005118556/09 A RU2005118556/09 A RU 2005118556/09A RU 2005118556 A RU2005118556 A RU 2005118556A RU 2357279 C2 RU2357279 C2 RU 2357279C2
Authority
RU
Russia
Prior art keywords
computing device
client computing
software update
update
software
Prior art date
Application number
RU2005118556/09A
Other languages
English (en)
Other versions
RU2005118556A (ru
Inventor
Майкл Эдвард МЬЮЛЕМАНС (US)
Майкл Эдвард МЬЮЛЕМАНС
Аарон АВЕРБУХ (US)
Аарон АВЕРБУХ
Джейсон РОБЕРТС (US)
Джейсон РОБЕРТС
Кен ШОУМЭН (US)
Кен ШОУМЭН
Мазхар МОХАММЕД (US)
Мазхар МОХАММЕД
Джозеф Г. ДАДЗИ (US)
Джозеф Г. ДАДЗИ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005118556A publication Critical patent/RU2005118556A/ru
Application granted granted Critical
Publication of RU2357279C2 publication Critical patent/RU2357279C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

Область техники
Настоящее изобретение относится к программному обеспечению и компьютерным сетям и, в частности, настоящее изобретение относится к системе и способу управления и передачи обновлений программного обеспечения.
Уровень техники
Большинство коммерчески доступных программных продуктов подвергаются процессу непрерывного пересмотра, чтобы исправлять или совершенствовать признаки и/или функции. Каждый пересмотр программного продукта или компонента может требовать дополнения новыми файлами и/или замены существующих файлов на файлы более новых версий. Как только поставщик находит проблему в программном продукте и создает решение для этой проблемы, он хочет поместить это исправление в обновление и сделать это обновление широко доступным для потребителей. Поставщики программного обеспечения имеют коммерческий стимул распространять обновления программного обеспечения потребителям настолько быстро и бесперебойно, насколько возможно.
Интернет предоставляет важный канал для потребителей получать самые последние обновления для программных продуктов. Взрывной рост использования Интернета создал общее потребительское ожидание, что программные продукты и обновления должны предоставляться для загрузки по сети. Продвигать использование Интернета для распространения обновлений тоже в интересах поставщиков программного обеспечения, так как это уменьшает их затраты и позволяет потребителям получать исправление для найденной проблемы, как только исправление становится доступным для загрузки. Сайты поставщиков в Интернет могут проектироваться, чтобы делать очень простым обнаружение и нахождение расположения файлов обновления для приложения. Технические аспекты загрузки файлов в основном стали незаметными для пользователей, и теперь обычно обрабатываются операционной системой.
В стандартном подходе поставщик программного обеспечения строит обновление программного обеспечения в виде "пакета" для загрузки. Этот пакет обычно является саморазворачивающимся исполняемым файлом с программой установки и каждым обновленным файлом продукта, вложенным и сжатым, чтобы сделать пакет меньше. Размер пакета в общем есть сумма сжатых размеров каждого измененного файла, плюс размер самого кода извлечения. По исполнении, пакет извлекает каждый из содержащихся файлов во временное местоположение, затем запускает программу установки, чтобы установить каждый файл в корректное местоположение в директории системы. Файлы, отправленные в сжатой форме, подвергаются декомпрессии при их установке. Любой существующий файл с тем же именем в том же местоположении будет просто перезаписан файлом замены.
Даже хотя Интернет делает возможным широкое и быстрое распространение обновлений программного обеспечения, ограниченная пропускная способность сетевой передачи вызывает проблемы. Только размеры обыкновенных программных приложений являются причиной того, что размеры загрузок обновлений становились неумеренно большими. Обычно множество исправлений для разнообразных проблем продукта группируется в одно обновление. Если поставщик обновляет программный продукт на регулярной основе, размер загрузки пакета обновления будет непрерывно расти, так как поставщик не может пропускать файлы, предполагая, что пользователь уже имеет эти файлы из более ранних обновлений. Так как пакет обновления комбинирует некоторое число целых файлов, он может быть достаточно большим, даже когда эти файлы сжаты. Иногда, даже на самых быстрых модемных соединениях, эффективность пропускной способности загрузки уменьшена.
Аспект потребления времени в стандартном процессе загрузки является, конечно, нежелательным. В некоторых случаях потребители несут расходы за дальнее расстояние или время соединения в течение этих загрузок файлов. Любые уменьшения во времени соединения уменьшат прямые денежные затраты для этих потребителей. Поставщики обычно также имеют некоторые ощутимые затраты, относящиеся к размерам загрузок, которые они предоставляют, таким образом, уменьшение размеров также может дать им прямые денежные выгоды. Уменьшение размеров загрузок увеличит их имеющуюся сетевую пропускную способность, позволяя им обслуживать больше потребителей с помощью существующего сетевого серверного оборудования.
Длительное время, затраченное на загрузку большого обновления, также делает процесс загрузки более уязвимым для различных проблем сетевого соединения. Имеется ряд причин, почему Интернет сессия может быть преждевременно отключена, включающих в себя шум телефонной линии, сигналы ожидания-вызова и непреднамеренные команды. Некоторые поставщики Интернет услуги навязывают ограничение времени соединения, ограничивая количество времени, которое пользователь может находиться в сети за единичную сессию. Если пользователь загружает большой файл, когда сетевое соединение обрывается, возможно, ему придется начать с начала. Большинство распространенных операционных систем и протоколов передачи файлов не позволяют возобновлять передачу файлов, таким образом любой промежуточный результат будет потерян, и передачу придется запускать с начала. Возможности для неудачи так многочисленны, что многие пользователи находят почти невозможным получить обновление по сети. Если размер пакета обновления слишком большой, пользователи могут никогда не получить возможности полностью загрузить его.
Одна попытка уменьшить размер обновлений программного обеспечения и увеличить эффективность пропускной способности относится к использованию дельта-«заплат» (корректировок), или бинарных «заплат». Специалисту в данной области должно быть понятно, что дельта-«заплата» соответствует специализированному программному коду, который модифицирует существующий файл, при исполнении вычислительным устройством. Так как дельта-«заплата» включает в себя специализированный программный код, требуется уникальная дельта-«заплата» для каждой уникальной версии файла. При применении к обновлениям программного обеспечения сервис обновления программного обеспечения может передавать дельта-«заплату» обновления меньшего размера вместо передачи полного, обновленного файла. Дельта-«заплата» обновления затем используется, чтобы модифицировать существующий файл в обновленный файл.
Хотя дельта-«заплаты» обновления могут потенциально уменьшать количество данных, требуемых для обновления файлов, текущие подходы к наложению дельта-«заплат» недостаточны в плане управления выбором применимых дельта-файлов в ситуациях, где существует большое число версий файла. Так как требуется единственная дельта-«заплата» для каждой версии файла, обычные системы обновления программного обеспечения часто могут требовать сотни, если не тысячи, уникальных дельта-«заплат» для соответствия каждой уникальной версии файла. В одном подходе, некоторые сервисы обновления, поддерживающие наложение дельта-«заплат», передают все возможные дельта-«заплаты» клиентскому вычислительному устройству. Однако этот подход обычно увеличивает количество данных, требуемых для осуществления обновления программного обеспечения, так как число возможных дельта-«заплат» обновления увеличивается. Соответственно, число потенциально применимых дельта-«заплат» может быстро вырасти до того же размера, что и полный обновленный файл. В другом подходе, сетевой сервис обновления программного обеспечения сканирует клиентскую машину, чтобы выбрать, какая дельта-«заплата» может быть применима для каждой клиентской машины. Хотя это уменьшает количество передаваемой информации дельта-«заплаты», требуется дополнительная логика на сервисе обновления программного обеспечения для сканирования клиентских машин и выбора применимой дельта-«заплаты». Использование дополнительной логики увеличивает системные ресурсы, которые должны предоставляться этим сервисом. Дополнительно, этот подход обычно препятствует использованию сетевого кэширования, который обычно выполняется традиционными серверами сети 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 обновлений. Например, корпорация может использовать внутренний сервер для обновления клиентских машин. Дополнительно, запрос может обрабатываться внешними серверами загрузки, в которых некоторые или все из дельта-«заплат» обновления кэшируются при обработке предыдущих запросов. Соответственно, в этом варианте осуществления загрузка может распространяться на ряд дополнительных серверов загрузки, допускающих обслуживание запросов данных протокола передачи гипертекстовых файлов ("HTTP").
Согласно фиг.6, как только информация обновления программного обеспечения принята, агент 118 обновлений объединяет дельта-«заплату» с установленным файлом для генерации обновленного файла. Дополнительно, агент 118 обновлений может удостоверять, успешно ли объединение обновило соответствующий файл. Как описано выше, если дельта-«заплата» не может быть объявлена действительной, агент 118 обновлений может снова запросить эту дельта-«заплату» или после некоторого числа неудач запросить весь обновленный файл. Как только агент 118 обновлений получает объявленный действительным и обновленный файл, этот файл устанавливается на клиентское вычислительное устройство 110.
На фиг.7 показана последовательность операций обрабатывающей процедуры 700 обновления программного обеспечения, иллюстрирующая взаимодействие между клиентским вычислительным устройством 110 и сервисом 120 обновления программного обеспечения в соответствии с настоящим изобретением. На этапе 702 сервис 120 обновления программного обеспечения авторизует доступ к клиентскому компьютеру 110. В иллюстративном варианте осуществления настоящего изобретения авторизация доступа к клиентскому компьютеру может включать в себя генерирование выпускаемого сервером идентификационного файла для разрешения доступа к обновлениям программного обеспечения, которые ассоциированы с конкретной группой компьютеров. Более детальное объяснение процесса авторизации описано со ссылкой на фиг.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, имеющих конкретное название марки и конкретное аппаратное устройство, и ограничивать передачу загрузки конкретного программного обеспечения для этой целевой группы.
В иллюстративном варианте осуществления настоящего изобретения расширяемый механизм нацеливания облегчается посредством использования программных компонентов ("вставных модулей авторизации" (authorization plug-ins)), которые определяют принадлежность клиентского вычислительного устройства к одной или более целевых групп. Наличие вставного модуля авторизации на клиентском вычислительном устройстве 110 определяет, принадлежит ли клиентское вычислительное устройство к конкретной целевой группе вставного модуля авторизации. Целевая группа, например, может включать в себя все компьютеры, имеющие действительный номер идентификации продукта ("PID") для конкретного программного приложения. В таком примере, как описано более детально со ссылкой на фиг.8, вставной модуль 826 авторизации может быть установлен в клиенте, чтобы читать PID из модуля памяти клиентского вычислительного устройства и передавать полученный PID соответствующему PID серверному вставному модулю 829. Соответствующий PID вставной модуль, здесь также называемый как удостоверитель 829 PID, использует один или более способов для определения, что принятый PID является действительным. Как только установлено, что PID, хранимый на клиентском вычислительном устройстве 110, действителен, сервер генерирует серверный идентификационный файл, который показывает, что клиентское вычислительное устройство 110 является членом целевой группы, имеющей действительный PID. В другом примере, целевая группа может включать в себя клиентские вычислительные устройства, которые назначаются как бета-тестовые компьютеры.
В иллюстративном варианте осуществления настоящего изобретения сервер 122 авторизации из сервиса 120 обновления программного обеспечения содержит ряд вставных модулей серверной авторизации, который определяет набор целевых групп клиентских вычислительных устройств, которые сервер авторизации будет узнавать. Каждый вставной модуль серверной авторизации содержит компоненты для передачи данных с соответствующим вставным модулем клиентской авторизации, хранимым на клиентском вычислительном устройстве 110. Аналогичным способом каждое клиентское вычислительное устройство 110 включает в себя один или более вставных модулей клиентской авторизации, которые идентифицируют целевые группы, к которым этот клиент принадлежит. В иллюстративном варианте осуществления настоящего изобретения вставные модули клиентской авторизации могут устанавливаться в каждом клиентском вычислительном устройстве в течение установки или обновления какого-либо программного приложения, такого как установка или обновление операционной системы. Дополнительно вставные модули серверной авторизации могут быть динамически установлены или удалены администратором, желающим контролировать доступ к обновлениям программного обеспечения. Вставные модули авторизации, хранимые на клиентском вычислительном устройстве 110 и сервере 122 авторизации, могут являться действительным вставным модулем программного обеспечения, или вставные модули авторизации могут быть жестко закодированы в динамически подсоединяемых библиотеках.
Как показано на фиг.8, сервер 122 авторизации содержит три иллюстративных вставных модуля серверной авторизации: (1) первый вставной модуль 828 серверной авторизации, определяющий целевую группу, которая включает в себя все компьютеры (в дальнейшем "целевая группа всех компьютеров"); (2) второй вставной 829 модуль серверной авторизации, определяющий целевую группу, которая включает в себя компьютеры, имеющие действительные PID (в дальнейшем "PID целевая группа"); и (3) третий вставной модуль 830 серверной авторизации, определяющий целевую группу, которая включает в себя бета-тестовые компьютеры (в дальнейшем "бета-целевая группа"). Также на фиг.8 показано, что клиентское вычислительное устройство 110 содержит два вставных модуля клиентской авторизации: (1) первый вставной модуль 825 клиентской авторизации, обозначающий, что клиентское вычислительное устройство 110 является членом целевой группы всех компьютеров; и (2) второй вставной модуль 826 клиентской авторизации, обозначающий, что клиентское вычислительное устройство 110 является членом PID целевой группы. В этом примере клиентское вычислительное устройство 110 не содержит вставного модуля авторизации, показывающего, что оно является членом бета-целевой группы. Специалистам в данной области должно быть понятно, что каждый вставной модуль 825 и 826 клиентской авторизации может конфигурироваться для исполнения одной или более функций на клиентском вычислительном устройстве 110, чтобы способствовать процессу удостоверения действительности. Например, второй вставной модуль 826 клиентской авторизации может конфигурироваться, чтобы обследовать память клиентского вычислительного устройства 110 для проверки или получения PID для установленного программного приложения.
Как показано на фиг.8, подпрограмма 702 авторизации начинается, когда клиентское вычислительное устройство 110 передает запрос 803 конфигурирования серверу 122 авторизации. В иллюстративном варианте осуществления настоящего изобретения запрос 803 конфигурирования формируется из любого подходящего программного компонента, конфигурированного для получения информации, описывающей вставные модули авторизации, хранимые на сервере 122 авторизации. Специалистам в данной области должно быть понятно, что запрос 803 конфигурирования может использовать известный метод, называемый как "GetConfig". В ответ на принятие запроса 803 конфигурирования сервер 122 авторизации передает ответ 804 конфигурирования, который включает в себя информацию, идентифицирующую все вставные модули авторизации, хранимые на сервере 122 авторизации. В одном варианте осуществления ответ 804 конфигурирования включает в себя массив строк, который идентифицирует и описывает все вставные модули авторизации, хранимые на сервере 122 авторизации. В настоящем примере ответ 804 конфигурирования включает в себя информацию, которая идентифицирует первый вставной модуль 828 серверной авторизации, второй вставной модуль 829 серверной авторизации и третий вставной модуль 830 серверной авторизации.
На этапе 805 клиентское вычислительное устройство 110 генерирует один или более идентификационных файлов авторизации в ответ на принятие ответа 804 конфигурирования. В процессе этапа 805 клиентское вычислительное устройство 110 генерирует идентификационный файл авторизации для каждой пары соответствующих клиента и вставных модулей серверной авторизации. Таким образом, в настоящем примере первый вставной модуль 825 клиентской авторизации генерирует первый идентификационный файл авторизации, ассоциированный с целевой группой всех компьютеров, так как первый вставной модуль 825 клиентской авторизации и первый вставной модуль 828 серверной авторизации оба ассоциированы с целевой группой всех компьютеров. Далее, второй вставной модуль 826 клиентской авторизации генерирует второй идентификационный файл авторизации, ассоциированный с PID целевой группой, так как второй вставной модуль 826 клиентской авторизации и второй вставной модуль 829 серверной авторизации оба ассоциированы с PID целевой группой. Третий идентификационный файл авторизации не генерируется, так как клиентское вычислительное устройство 110 не имеет вставного модуля авторизации, показывающего, что оно является членом бета-целевой группы.
Специалистам в данной области также должно быть ясно, что осуществление процесса этапа 805 может включать в себя использование широко известного программного метода, называемого в данной области как "GetAuthCookie". Будет также принято во внимание, что генерирование каждого идентификационного файла авторизации может включать в себя дополнительную обработку. Например, второй вставной модуль 826 клиентской авторизации может конфигурироваться, чтобы обследовать информацию, хранимую в системном реестре клиентов для извлечения PID и включения PID в идентификационный файл авторизации. В других примерах процесс этапа 805 может включать в себя процессы для взаимодействий с другими компьютерами или устройствами. Например, вставной модуль клиентской авторизации может взаимодействовать с устройством, таким как аудиоплата, сканер, видеоплата и т.д., чтобы получить тип и модель этого устройства. В других неограничивающих примерах вставной модуль клиентской авторизации может взаимодействовать с устройством защиты, таким как считыватель отпечатков пальцев, чтобы получить информацию, описывающую пользователя.
В общем, вставной модуль клиентской авторизации может читать конфигурационную информацию из любого компонента клиентского вычислительного устройства 110 или любого другого вычислительного устройства, коммуникативно подсоединенного к клиентскому вычислительному устройству 110. В других примерах вставной модуль клиентской авторизации может конфигурироваться, чтобы использовать один или более общедоступных или специализированных интерфейсов прикладного программирования (API) для сбора и шифрования информации от клиента, которая будет проверяться соответствующим серверным вставным модулем; в таких примерах вставной модуль 826 удостоверителя PID использует специализированный API для шифрования клиентского PID для передачи зашифрованного PID на сервер для дешифрования и удостоверения действительности. В других вариантах осуществления другие вставные модули клиентской авторизации могут использовать биометрические измерения, такие как считыватели отпечатков пальцев или голосовые отпечатки, чтобы построить идентификационный файл авторизации для передачи серверу для проверки достоверности. В еще одном примере вставной модуль клиентской авторизации может вызвать сервис сети Web или любой другой сервис для передачи мандата авторизации или любого другого типа данных серверу 122 авторизации.
В иллюстративном варианте осуществления настоящего изобретения каждый идентификационный файл авторизации включает в себя строку, которая идентифицирует ассоциированную целевую группу. Например, строка может показывать, что конкретный идентификационный файл авторизации ассоциирован с PID целевой группой. Каждый идентификационный файл авторизации также включает в себя раздел данных для передачи данных между клиентом и сервером. Например, идентификационный файл авторизации, ассоциированный с PID целевой группой, может иметь раздел данных, который содержит действительный PID. Специалистам в данной области должно быть ясно, что раздел данных может содержать любой тип данных, который хранится в любом формате, таком как байтовый массив. Например, если вставные модули на клиенте и сервере требуют передачи открытых и секретных ключей, такие данные могут быть зашифрованы в разделе данных одного или более идентификационных файлов авторизации.
Как только клиентское вычислительное устройство 110 генерирует идентификационный файл авторизации для каждой пары соответствующих клиента и вставных модулей серверной авторизации, клиентское вычислительное устройство передает сформированные идентификационные файлы авторизации серверу 122 авторизации. Как показано на фиг.8, клиентское вычислительное устройство 110 передает идентификационные файлы авторизации в запросе 806 идентификационных файлов. Запрос 806 идентификационных файлов включает в себя любой подходящий формат для передачи массива идентификационных файлов авторизации, сформированных в процессе этапа 805. Осуществление этой части способа 702 авторизации может включать в себя использование широко известного программного метода, называемого в данной области как "GetCookie".
В одном варианте осуществления запрос 806 идентификационных файлов также включает в себя другие идентификационные файлы сервера авторизации, хранимые в памяти клиентского вычислительного устройства 110. Как поясняется в последующем описании, память клиентского вычислительного устройства 110 может хранить старые идентификационные файлы сервера авторизации, которые были созданы в предыдущих исполнениях процедуры 700 авторизации. Предоставляя эти сохраненные идентификационные файлы сервера авторизации в запросе 806 идентификационных файлов, клиентское вычислительное устройство 110 сможет поддерживать свои привилегии доступа, которые были предоставлены в предыдущих исполнениях подпрограммы 702 авторизации. В настоящем примере, так как не имеется идентификационных файлов сервера авторизации, хранимых в клиенте, запрос 806 идентификационных файлов включает в себя первый идентификационный файл авторизации, ассоциированный с целевой группой всех компьютеров, и второй идентификационный файл авторизации, ассоциированный с PID целевой группой.
Далее, как показано на этапе 807, в ответ на принятие запроса 806 идентификационных файлов сервер 122 авторизации генерирует серверный идентификационный файл. В одном варианте осуществления для каждого из принятых идентификационных файлов авторизации осуществляется вызов к подходящему вставному модулю серверной авторизации для генерирования данных серверного идентификационного файла. Данные серверного идентификационного файла, сформированные каждым вставным модулем серверной авторизации, включают в себя идентификатор для каждой целевой группы, идентифицированной в принятых идентификационных файлах авторизации. В настоящем примере, так как запрос 806 идентификационных файлов включает в себя первый идентификационный файл авторизации, ассоциированный с целевой группой всех компьютеров, и второй идентификационный файл авторизации, ассоциированный с PID целевой группой, сервер 122 авторизации генерирует данные серверного идентификационного файла, содержащие идентификатор для этих соответствующих целевых групп. На сервере 122 авторизации данные серверного идентификационного файла затем комбинируются с данными старых серверных идентификационных файлов, если старый серверный идентификационный файл принимается в запросе 806 идентификационных файлов, чтобы генерировать новый серверный идентификационный файл. В одном варианте осуществления, новый серверный идентификационный файл шифруется посредством использования общедоступного способа шифрования, такого как Triple DBS.
В иллюстративном варианте осуществления настоящего изобретения серверный идентификационный файл может включать в себя зашифрованную информацию, которая идентифицирует одну или более ассоциированных целевых групп. В дополнение, серверный идентификационный файл может включать в себя срок окончания действия, который хранится как в формате открытого текста, так и зашифрованном формате. Срок окончания действия, хранимый в формате открытого текста, используется клиентским вычислительным устройством 110 для контроля за прекращением срока действия серверного идентификационного файла. Срок окончания действия, хранимый в зашифрованном формате, используется сервисом 120 обновления программного обеспечения, чтобы определять, авторизовано ли клиентское вычислительное устройство 110 для принятия обновлений, ассоциированных с конкретной целевой группой. В одном варианте осуществления срок окончания действия серверного идентификационного файла применяется ко всем целевым группам, идентифицированным в серверном идентификационном файле. Альтернативно, или в дополнение ко времени окончания действия, которое применяется ко всему серверному идентификационному файлу, серверный идентификационный файл может включать в себя множество сроков окончания действия, каждый из которых может применяться к индивидуальным целевым группам. Специалистам в данной области должно быть ясно, что каждый серверный идентификационный файл может включать в себя дополнительные данные. Например, серверный идентификационный файл может конфигурироваться для хранения информации о состоянии клиента, такой как отметка времени последнего исполнения подпрограммы 702 авторизации.
Сформированный, идентификационный файл 809 сервера авторизации передается от сервера 122 авторизации клиентскому вычислительному устройству 110. Далее, как показано на этапе 811, серверный идентификационный файл затем сохраняется в памяти клиентского вычислительного устройства 110. Когда клиентское вычислительное устройство 110 определяет, что по меньшей мере для одного компонента серверного идентификационного файла истек срок действия, клиентское вычислительное устройство может снова исполнить метод 702 авторизации для получения нового серверного идентификационного файла. Как упомянуто выше, при каждом последующем исполнении метода 702 авторизации клиентское вычислительное устройство 110 может передавать свои хранимые серверные идентификационные файлы серверу 122 авторизации в запросе 806 идентификационных файлов. В одном варианте осуществления клиент не должен отправлять запрос 803 пока сервер не проинформирует клиента, что серверная конфигурация изменилась, т.е. был добавлен новый вставной модуль авторизации.
В соответствии с другим аспектом настоящего изобретения сервис 120 обновления программного обеспечения может предоставлять подпрограмму синхронизации для синхронизации информации обновления между сервером 123 метаданных и клиентским вычислительным устройством 110. Посредством использования единственной иерархии обновления программного обеспечения подпрограмма синхронизации может эффективно идентифицировать конкретные обновления, которые применяются к конкретному клиентскому вычислительному устройству. В дополнение, посредством использования серверного идентификационного файла, сформированного в подпрограмме 702 авторизации, подпрограмма синхронизации может избирательно предоставлять доступ к обновлениям, ассоциированным с конкретными целевыми группами.
В соответствии с иллюстративным вариантом осуществления настоящего изобретения каждое обновление программного обеспечения включает в себя три компонента: (1) командный компонент; (2) компонент локализованных данных и (3) компонент данных. Специалистам в данной области должно быть понятно, что каждое обновление может иметь один или более из вышеописанных компонентов. Например, обновление может содержать командный компонент, компонент локализованных данных и компонент потока данных. В другом примере обновление может содержать только командный компонент для проверки одного или более условий клиентского вычислительного устройства. Различные компоненты обновлений программного обеспечения описываются более детально ниже.
В общем случае командный компонент содержит два подкомпонента: (1) правило применимости, которое определяет одно или более условий для проверки клиентским вычислительным устройством 110, и (2) набор предварительных условий, которые идентифицируют одно или более обновлений, которые требуются для правильной установки индивидуального обновления. Как описано ниже, правило применимости может определять ряд условий, относящихся к компьютеру, и каждое из этих условий может быть ассоциировано с другими условиями посредством использования любых логических операторов. Например, командный компонент может включать в себя правило применимости, чтобы определять, установлена ли на компьютере конкретная версия Windows(R). Как описано ниже, набор предварительных условий может идентифицировать одно или более обновлений, которые должны быть установлены ранее. Например, как описано более детально ниже со ссылкой на фиг.9, индивидуальное обновление может содержать предварительное условие, которое перечисляет другие обновления, требуемые для корректной установки индивидуального обновления. В других примерах, как показано на фиг.9, набор предварительных условий может включать в себя использование логических операторов для определения более сложных правил предварительных условий.
Командный компонент также содержит код, такой как булев флаг (Boolean flag), который показывает, имеются ли другие обновления, которые зависят от конкретного обновления. В целях иллюстрации, обновление считается LEAF-обновлением, если не имеется других обновлений, которые зависят от конкретного обновления. Булев флаг, который используется, чтобы показывать является ли обновление LEAF-обновлением, динамически обновляется сервером 123 метаданных по мере того, как соответствующие обновления добавляются или удаляются.
Компонент локализованных данных каждого обновления включает в себя общую информацию, описывающую это обновление. Например, компонент локализованных данных может включать в себя информацию, описывающую признаки и выгоды этого обновления. Компонент локализованных данных также может включать в себя текстовое описание установочных процедур этого обновления. В дополнение компонент локализованных данных может включать в себя любые другие данные или информацию, относящиеся к этому обновлению. Например, локализованные данные могут показывать, что обновление является высокоприоритетным обновлением. В другом примере локализованные данные могут предоставлять специальные сообщения установки, такие как сообщение, которое показывает, что обновление не может быть установлено с другими обновлениями программного обеспечения. Локализованная информация может быть в формате, который позволяет отображать для пользователя ее содержащуюся информацию.
Компонент данных каждого обновления включает в себя один или более бинарных потоков данных обновления. В одном варианте осуществления компонент данных каждого обновления может быть ассоциирован с одним или более файлами данных, такими как исполняемый файл, документ, подсоединяемая библиотека и т.д. Как описано более детально ниже, каждое обновление может быть ассоциировано с комбинацией файлов данных, каждый из которых облегчает действительное обновление, установку или модификацию программного обеспечения, используемого клиентом. Например, установка обновления может быть облегчена посредством использования единичного CAB файла, включающего в себя всю информацию, требуемую для завершения выбранного обновления. Альтернативно, установка обновления может быть облегчена посредством использования ряда индивидуальных обновлений, используемых для обновления одного или более файлов, хранимых на клиентском вычислительном устройстве.
В иллюстративном варианте осуществления настоящего изобретения обновления программного обеспечения могут размещаться в иерархии, которая обеспечивает возможность контролируемого распространения обновлений программного обеспечения. В общем случае эта иерархия обновлений определяет взаимоотношения между обновлениями и, в частности, показывает, какие обновления зависят от других обновлений. В целях иллюстрации на фиг.9 представлен иллюстративный набор обновлений. Как показано, иерархия иллюстративных обновлений 900 включает в себя базовый набор обновлений 901, второй набор обновлений 902, и третий набор обновлений 903. В общем, каждое обновление в базовом наборе обновлений 901 не имеет предварительного условия, которое требует установки других обновлений. Однако шестое обновление 921 содержит предварительное условие, которое требует установки первого обновления 911, второго обновления 912 и третьего обновления 913. Седьмое обновление 922 содержит предварительное условие, которое требует установки четвертого обновления 914. Восьмое обновление 931 содержит предварительное условие, которое требует установки шестого обновления 921 и пятого обновления 915. Поэтому восьмое обновление 931 также требует установки первого обновления 911, второго обновления 912 и третьего обновления 913. В целях иллюстрации настоящего изобретения все обновления иллюстративного набора обновлений 900 ассоциированы с целевой группой всех компьютеров и PID целевой группой.
Как показано на фиг.9 и описано более детально ниже, каждое обновление содержит правило применимости, которое определяет условия для установки этого обновления. Например, первое обновление 911 требует установки английской версии операционной системы. Второе обновление 912 требует установки Windows(R) XP версии SP1. В другом примере, шестое обновление 921 требует установки заплаты программного обеспечения, указываемой как XP PATCH1. Соответственно, клиентское вычислительное устройство 110 не будет устанавливать обновления, если правила применимости не были удовлетворены.
Фиг.9 также показывает раздел командного компонента, который показывает, имеются ли другие обновления, которые зависят от конкретного обновления. Этот раздел, определяемый как LEAF, который может быть в форме Булева значения, показывает, что обновление программного обеспечения является последним обновлением из ряда связанных обновлений. В целях иллюстрации изобретения, конкретное обновление является LEAF-обновлением, если никакие другие обновления не перечисляют это конкретное обновление как предварительное условие. Как показано на фиг.9, только седьмое обновление 922 и восьмое обновление 931 являются двумя LEAF-обновлениями.
Фиг.10 иллюстрирует протокольную диаграмму подпрограммы 704 синхронизации (фиг.7), сформированной в соответствии с настоящим изобретением. Подпрограмма 704 синхронизации избирательно передает командные компоненты определенных обновлений между клиентским вычислительным устройством 110 и сервером, таким как сервер 123 метаданных, для идентификации обновлений, которые могут применяться к клиентскому вычислительному устройству 110. Как показано на фиг.10, чтобы инициировать обновление, клиентское вычислительное устройство 110 сначала обрабатывает установленные обновления и передает запрос 1051 синхронизации серверу 123 метаданных, запрашивая одно или более обновлений, доступных для этого клиента. В ответ на принятие запроса 1051 синхронизации сервер 123 метаданных возвращает число обновлений клиентскому вычислительному устройству 110. Как поясняется в последующем описании, клиентское вычислительное устройство 110 обрабатывает локально хранимые данные до передачи запроса 1051 синхронизации.
Клиентское вычислительное устройство 110 обрабатывает командные компоненты каждого принятого обновления, чтобы определить, может ли удовлетворяться условие, определенное в правилах применимости. Если удовлетворяется условие, определенное в индивидуальном обновлении, в целях иллюстрации подпрограммы 1050 синхронизации, это индивидуальное обновление является "установленным", и это установленное обновление сохраняется в первом компоненте клиентского кэша обновлений. С другой стороны, если условие, определенное в индивидуальном обновлении, не удовлетворяется, индивидуальное обновление рассматривается как "потерпевшее неудачу", и это потерпевшее неудачу обновление сохраняется во втором компоненте клиентского кэша обновлений. В этом описании подпрограммы 1050 синхронизации, если обновление установлено, можно предполагать, что предварительные условия и условия правил применимости были удовлетворены. Установка обновления в целях описания этой подпрограммы не означает с необходимостью, что файлы данных, ассоциированные с этим обновлением, действительно устанавливаются в клиентском вычислительном устройстве 110.
В одном варианте осуществления два компонента клиентских кэшей обновлений могут использоваться для распределения принятых обновлений по категориям. Первый компонент используется для хранения установленных не LEAF-обновлений; и второй компонент используется для хранения всех других обновлений, принятых клиентом, т.е. обновлений, которые не были установлены. Второй компонент кэша обновлений также включает в себя хранение всех LEAF-обновлений. Как описано более детально ниже, обновления, хранимые в кэше обновлений, могут передаваться на сервер 123 метаданных и обрабатываться сервером 123 метаданных для идентификации других связанных обновлений, которые доступны для установки на этом клиентском вычислительном устройстве 110.
Со ссылкой на фиг.10 ниже описаны детали запроса синхронизации, которые иллюстрируются как элементы 1051, 1055, и 1060. Специалистам в данной области должно быть понятно, что запрос синхронизации может быть инициирован одним запрашивающим обновление из числа различных устройств, процессов, приложений, инициированных пользователем команд. Запрос синхронизации может инициироваться пользователем, запрашивающим список обновлений, автоматическим обновлением, инициированным клиентским агентом, или любым другим программным компонентом, запрашивающим информацию из сервера 123 метаданных или сервиса 120 обновлений. В одном варианте осуществления запрос синхронизации включает в себя идентификационный файл сервера авторизации, такой как идентификационный файл сервера авторизации, сформированный в процедуре 702 авторизации. Использование серверного идентификационного файла позволяет серверу определять, является ли клиент членом одной или более целевых групп.
Каждый запрос синхронизации может также включать в себя идентификаторы для каждого обновления, хранимого в клиентском кэше обновлений. Более конкретно, если одно или более обновлений хранятся в кэше обновлений, запрос синхронизации включает в себя первый компонент, имеющий идентификаторы для установленных не LEAF-обновлений; и второй компонент, имеющий идентификаторы для всех других обновлений, таких как LEAF-обновления, потерпевшие неудачу обновления и другие обновления, которые не были установлены. Идентификаторы обновлений могут быть в любом формате, включающем в себя, но не ограниченном этим, массив целых чисел. Альтернативно, если не имеется обновлений, хранимых в клиентском кэше обновлений, запрос синхронизации не конфигурируется с идентификатором обновления. Когда запрос синхронизации не конфигурирован с идентификатором обновления, запрос синхронизации предоставляет указание, что клиентское вычислительное устройство 110 не имеет каких-либо кэшированных обновлений.
Как показано на фиг.10, первый запрос 1051 синхронизации передается от клиентского вычислительного устройства 110 серверу 123 метаданных. В настоящем примере клиентский кэш обновлений не будет содержать каких-либо обновлений при условии, что это первое исполнение метода. Таким образом, первый запрос 1051 синхронизации не содержит идентификатора для кэшированного обновления. В ответ на принятие запроса синхронизации, как показано на этапе 1052, сервер 123 метаданных определяет содержит ли запрос синхронизации по меньшей мере один идентификатор обновления. Если определяется, что запрос синхронизации не включает в себя идентификатор обновления, сервер 123 метаданных отвечает посредством выбора обновлений на первом уровне для передачи клиентскому вычислительному устройству 110. Как описано выше, обновления на первом уровне могут включать в себя любые обновления, которые не имеют предварительного условия, идентифицирующего другие обновления.
Альтернативно, если определяется, что запрос синхронизации содержит по меньшей мере один идентификатор обновления, сервер 123 метаданных обследует предварительные условия серверных хранимых обновлений, чтобы выбрать дополнительные обновления для доставки клиенту. В одном варианте осуществления, сервер 123 метаданных выбирает обновления, имеющие выполненные предварительные условия. В обследовании этих предварительных условий, сервер использует обновления первого компонента запроса синхронизации, который включает в себя идентификаторы не LEAF-обновлений, которые установлены на клиенте.
В дополнение к выборам обновлений, имеющих выполненные предварительные условия, сервер также использует обновления, идентифицированные во втором компоненте запроса синхронизации, чтобы фильтровать эти выбранные обновления. Более конкретно, неустановленные обновления, LEAF-обновления и потерпевшие неудачу обновления, идентифицированные во втором компоненте запроса синхронизации, используются для фильтрации одного или более выбранных обновлений. Этот признак настоящего изобретения позволяет системе и способу настоящего изобретения избегать множества передач обновлений, хранимых на сервере 123 метаданных.
В рассматриваемом примере, так как первый запрос 1051 синхронизации не включает в себя идентификатор обновления, сервер 123 метаданных выбирает базовый уровень обновлений 901 для передачи клиентскому вычислительному устройству 110. Для иллюстративного набора обновлений, показанных на фиг.9, базовый уровень обновлений 901 включает в себя обновления, указанные как 911, 912, 913, 914, и 915.
В обработке этапа 1052 сервер 123 метаданных также обследует идентификационный файл сервера авторизации, содержащийся в запросе 1051 синхронизации, чтобы идентифицировать целевые группы, которые ассоциированы с клиентским вычислительным устройством 110. Сервер 123 метаданных также обследует целевые группы обновлений, выбранных в процессе этапа 1052. Процесс этапа 1052 затем отфильтровывает все выбранные обновления, которые не ассоциированы с целевой группой, идентифицированной в принятом идентификационном файле сервера авторизации. В настоящем примере, так как все выбранные обновления 911, 912, 913, 914 и 915 ассоциированы с PID целевыми группами и целевыми группами всех компьютеров, все выбранные обновления отправляются клиентскому вычислительному устройству 110.
Затем сервер 123 метаданных передает выбранные обновления в синхронизационном ответе 1053 клиентскому вычислительному устройству 110. В общем, каждый синхронизационный ответ включает в себя командный компонент каждого обновления, отправленного сервером 120. Таким образом, в настоящем примере первый синхронизационный ответ 1053 включает в себя командные компоненты для обновлений, указанных как 911, 912, 913, 914 и 915. В одном варианте осуществления каждый синхронизационный ответ не включает в себя компонент локализованных данных или компонент данных каждого обновления.
Далее, как показано в блоке 1054, клиентское вычислительное устройство 110 обрабатывает командные компоненты каждого принятого обновления, чтобы определить, может ли быть выполнено условие, определенное в правилах применимости. Согласно фиг.9, клиентское вычислительное устройство 110 обрабатывает командные компоненты принятых обновлений 911-915. В целях иллюстрации настоящего изобретения, согласно этому примеру, операционная система клиентского вычислительного устройства 110 является английской установкой Windows(R) версии XP SP1. Кроме того, клиентское вычислительное устройство 110 представляет собой Dell PC и использует 32-битный X86 процессор. Таким образом, в обработке командных компонентов иллюстративного набора обновлений клиентское вычислительное устройство 110 определит, что условие, определенное в первом обновлении 911, выполнено, так как компьютер содержит английскую OS. Условие, определенное во втором обновлении 912, выполнено, так как операционная система представляет собой Windows(R) версии XP SP1. Условие, определенное в третьем обновлении 913, выполнено, так как клиентское вычислительное устройство 110 использует X86 процессор. Условие, определенное в пятом обновлении 915, выполнено, так как клиентское вычислительное устройство 110 представляет собой Dell PC. Как результат, первое обновление 911, второе обновление 912, третье обновление 913, и пятое обновление 915 - все сохраняются в первом компоненте клиентского кэша обновлений. Условие, определенное в четвертом обновлении 914, не выполнено, так как клиентское вычислительное устройство 110 не использует 64-битный X86 процессор. Таким образом, четвертое обновление 914 рассматривается как потерпевшее неудачу обновление и сохраняется во втором компоненте клиентского кэша обновлений.
Согласно фиг.10, в обработке этапа 1054 клиентское вычислительное устройство 110 также определяет, требуется ли последующий запрос синхронизации. В одном варианте осуществления определяется, что последующий запрос синхронизации требуется, если по меньшей мере одно из принятых обновлений показывает, что оно не LEAF-обновление. В настоящем примере устанавливается, что требуется последующий запрос синхронизации, так как все принятые обновления не являются LEAF-обновлениями. Таким образом, клиентское вычислительное устройство 110 передает последующий запрос 1055 синхронизации серверу 123 метаданных.
Как указано выше, запрос синхронизации включает в себя идентификаторы для каждого обновления, хранимого в клиентском кэше обновлений. Таким образом, в настоящем примере последующий запрос 855 синхронизации включает в себя первый компонент данных, показывающий, что первое обновление 711, второе обновление 712, третье обновление 713 и пятое обновление 715 установлены в клиенте. В дополнение, последующий запрос 855 синхронизации включает в себя второй компонент данных, показывающий, что четвертое обновление 711 не было успешно установлено на клиенте.
В ответ на принятие последующего запроса 1055 синхронизации, как подытожено выше, сервер 123 метаданных определяет, содержит ли последующий запрос 1055 синхронизации по меньшей мере один идентификатор обновления. Если определяется, что последующий запрос синхронизации содержит по меньшей мере один идентификатор обновления, сервер 123 метаданных обследует предварительные условия всех сохраненных обновлений, чтобы выбрать дополнительные обновления для доставки к клиенту.
В соответствии с рассматриваемым примером в обработке блока 856, сервер 123 метаданных выберет шестое обновление 921, так как его предварительные условия выполнены. Более конкретно, как показано на фиг.9, шестое обновление 921 выбирается для передачи клиентскому вычислительному устройству 110, так как его предварительное условие, которое требует установки первого обновления 711, второго обновления 912 и третьего обновления 913, выполнено. Седьмое обновление 922 и восьмое обновление 931 не выбраны для передачи клиенту, так как их предварительные условия не выполнены. Более конкретно, запрос 1055 синхронизации не содержит идентификатора для четвертого обновления 914, которое является предварительным условием для седьмого обновления 922. В дополнение, запрос 855 синхронизации не содержит идентификатор для шестого обновления 921, которое является предварительным условием для восьмого обновления 931.
Согласно фиг.10, подпрограмма 1050 синхронизации продолжается, передавая выбранные обновления в последующем ответе 1057 от сервера 123 метаданных к клиентскому вычислительному устройству 110. В рассматриваемом примере последующий ответ 1057 включает в себя информацию, относящуюся к шестому обновлению 721, и передается клиенту 110 в последующем ответе 1057.
По принятии последующего ответа 1057, клиентское вычислительное устройство 110 обрабатывает командные компоненты последующего ответа 857. Подобно процессу из блока 854, клиентское вычислительное устройство 110 обрабатывает командные компоненты каждого принятого обновления, чтобы определить, выполняется ли условие, определенное в правилах применимости. В настоящем примере, если дано, что в клиентском вычислительном устройстве установлен XP PATCH1, шестое обновление 921 рассматривается как установленное, и это обновление записывается в кэш обновлений клиентского вычислительного устройства 110. Так как шестое обновление 921 не является LEAF-обновлением, клиентское вычислительное устройство 110 отправляет другой запрос 1060 синхронизации, который включает в себя все обновления, хранимые в первом и втором компонентах клиентского кэша обновлений. Запрос 1060 синхронизации также включает в себя идентификационный файл сервера авторизации.
В настоящем примере посредством использования вышеописанного процесса сервера 123 метаданных запрос 1060 синхронизации обрабатывается на этапе 1061, где сервер выбирает восьмое 731 обновление. Восьмое 931 обновление выбирается, так как запрос 1060 синхронизации показывает, что пятое и шестое обновления 915 и 921 установлены в клиентском вычислительном устройстве 110. При условии, что восьмое обновление 931 ассоциировано с теми же целевыми группами, идентифицированными в идентификационном файле сервера авторизации, командный компонент восьмого обновления 931 передается клиентскому вычислительному устройству 110 в другом ответе 1062. Восьмое обновление 931 затем обрабатывается в блоке 1063 способом, аналогичным обработке из этапов 1054 и 1059. Так как все принятые обновления ответа 1062 являются LEAF-обновлениями, последующий запрос синхронизации не отправляется назад серверу метаданных 123.
В клиентском вычислительном устройстве 110, после того, как определяется, что все принятые обновления являются LEAF-обновлениями, или, если никаких обновлений не принято в ответе 1062, подпрограмма 1050 синхронизации передает запрос 1064 синхронизации драйверов от клиентского вычислительного устройства 110 серверу 123 метаданных. Специалистам в данной области должно быть понятно, что запрос 1064 синхронизации драйверов может включать в себя информацию, описывающую все аппаратные средства, установленные в клиентском вычислительном устройстве 110, и информацию, описывающую установленное программное обеспечение. Аналогично предыдущим программным запросам синхронизации (1051, 1055 и 1060), запрос 1064 синхронизации драйверов может сообщать установленные обновления серверу. В дополнение, все драйверные обновления, в настоящее время кэшированные на клиенте, если есть какие-либо, сообщаются серверу.
В ответ на принятие запроса 1064 синхронизации драйверов сервер 123 метаданных отвечает посредством отправки всех драйверных обновлений, которые применимы к клиентскому вычислительному устройству 110, которые еще не кэшированы на клиенте. Драйверное обновление посылается клиентскому вычислительному устройству 110 в ответ 1065, если его предварительные условия выполняются. Ответ 1065, передающий драйверные обновления, предпочтительно передает командный компонент каждого обновления. Затем драйверные обновления записываются в кэш обновлений клиентского вычислительного устройства.
После принятия ответа 1065, содержащего драйверные обновления, подпрограмма 1050 синхронизации отправляет запрос 1066 на локализованные данные каждого из принятых обновлений программного обеспечения и аппаратного обеспечения. Как подытожено выше, компонент локализованных данных каждого обновления включает в себя общую информацию, описывающую это обновление. Например, компонент локализованных данных может включать в себя информацию, описывающую признаки и выгоды этого обновления. Компонент локализованных данных может также включать в себя текстовое описание установочных процедур обновления. В дополнение, компонент локализованных данных может включать в себя любые другие данные или информацию, относящуюся к этому обновлению.
Таким образом, по принятии запроса 1066 на локализованные данные каждого из принятых обновлений программного обеспечения и обновлений аппаратного обеспечения, сервер 123 метаданных отвечает посредством отправки всех локализованных данных для всех принятых обновлений программного обеспечения и обновлений аппаратного обеспечения, сохраненных в кэше обновлений этого клиента. Будучи принятыми, локализованные данные могут обрабатываться программным приложением, чтобы определить, какие из обновлений должны быть установлены. Альтернативно, принятые локализованные данные могут отображаться для пользователя, чтобы информировать пользователя обо всех обновлениях, которые доступны для клиентского вычислительного устройства 110. В одном варианте осуществления принятые локализованные данные могут отображаться на странице сети Web. В настоящем примере локализованные данные могут приниматься клиентом для шестого и восьмого обновлений 921 и 931. Если локализованные данные хранятся в базовых обновлениях 911, 912, 913 и 915, локализованные данные для этого обновления также будут приниматься клиентом.
Фиг.11 иллюстрирует один пример страницы 1100 сети Web, отображающей пример локализованных данных, ассоциированных с обновлениями, которые доступны для клиента. В целях иллюстрации страница 1100 сети Web содержит первое детальное описание 1105 обновления и второе детальное описание 1106 другого обновления. Каждое обновление соответственно ассоциировано с механизмами 1103 и 1104 выбора для принятия пользовательского выбора из этих обновлений. Страница 1100 сети Web сформирована с кнопкой 1101 контроля, позволяя пользователю контролировать передачу выбора из обновлений серверу, такому как сервер 123 метаданных или сервер 124 загрузки.
В одном аспекте настоящего изобретения клиент выполняет ряд процессов, чтобы улучшить отображение страницы 1100 сети Web. Например, клиентское вычислительное устройство 110 обследует локализованные данные каждого обновления, чтобы определить, имеет ли конкретное обновление высокий приоритет. Такая функция может быть облегчена посредством расположения текста в локализованных данных, или в другом компоненте конкретного обновления, который показывает, что конкретное обновление является высокоприоритетным или аварийным обновлением. Если клиентское вычислительное устройство 110 обнаруживает высокоприоритетное обновление или аварийное обновление, клиент отображает это высокоприоритетное обновление в видимом разделе страницы 1100 сети Web, таком как верхний раздел этой страницы. В дополнение, клиент может генерировать визуальный индикатор, такой как специализированное текстовое сообщение 1120, показывающее, что это обновление является высокоприоритетным обновлением.
Клиентское вычислительное устройство 110 может также обследовать локализованные данные каждого обновления, чтобы определять, требует ли конкретное обновление исключительной установки, т.е. обновление, имеющее установочный файл, который не может быть одновременно установлен с установочным файлом другого обновления. Такая функция может быть обеспечена посредством помещения текста в локализованных данных или в другом компоненте конкретного обновления, который показывает, что это конкретное обновление требует исключительной установки. Если клиентское вычислительное устройство 110 обнаруживает такое обновление, клиент отображает визуальный индикатор, такой как текстовое сообщение 1122, показанное на фиг. 11, с описанием обновлений, которые требуют исключительной установки.
Согласно фиг.7, процедура 700 обновления программного обеспечения продолжается на этапе 708, где клиентское вычислительное устройство 110 принимает выбор из обновлений. Как отмечено выше, в ответ на приведение в действие кнопки 1101 контроля, выбор одного или более обновлений может быть получен сервером 123 метаданных или сервером 124 загрузки. Как только выбор одного или более обновлений принят, процедура 700 обновления программного обеспечения продолжается на этапе 708, где обрабатываются выбранные обновления программного обеспечения.
В соответствии с еще одним аспектом настоящего изобретения сервис 120 обновления программного обеспечения может предоставлять способ для выбора и передачи информации между сервисом обновления программного обеспечения и клиентским вычислительным устройством 110. Фиг.12A и 12B иллюстрируют подпрограмму 1200 обработки обновлений программного обеспечения, осуществляемую клиентским вычислительным устройством 110 для извлечения и установки запрошенного программного обеспечения в соответствии с настоящим изобретением. Как описано выше, подпрограмма 1200 обработки обновлений программного обеспечения может осуществляться, как только выбор обновлений программного обеспечения будет сгенерирован или принят. Согласно фиг.12A на этапе 1202 компонент 111 управления обновлением запускает экземпляр агента 118 обновлений. В иллюстративном варианте осуществления настоящего изобретения агент 118 обновлений является специализированным программным компонентом для определения того, какая информация обновления программного обеспечения требуется для завершения запрошенного обновления программного обеспечения, для генерирования затребованной версии установочного компонента агента обновлений, для генерирования обновленных файлов посредством объединения существующих файлов с дельта-«заплатами», и/или для инициирования установки обновленных файлов. В случае, когда агент 118 обновлений уже запущен, блок 1202 может быть пропущен.
На этапе 1204 агент 118 обновлений получает информацию обновления программного обеспечения из сервиса 120 обновлений. В иллюстративном варианте осуществления настоящего изобретения информация обновления программного обеспечения, переданная сервисом 120 обновлений, имеет форму пакета, такого как саморазворачивающийся файл, который включает в себя ряд данных, которые могут использоваться агентом обновлений. В одном аспекте этот пакет может включать в себя список всех файлов, которые соответствуют конкретному обновлению программного обеспечения. Дополнительно этот пакет может включать в себя копию по меньшей мере части манифеста хранилища заплат, которая отображает конкретные версии файлов для обновления в соответствующую дельта-«заплату» обновления программного обеспечения, хранимую в файле хранилища заплат на сервисе 120 обновлений. Пакет может также включать в себя установочную информацию для каждого файла для обновления, которая может включать в себя идентификацию версии установочного компонента, требуемого для завершения установки. Дополнительно пакет может также включать в себя установочный компонент для агента 118 обновлений или дельта-«заплату» для обновления версии установочного компонента, уже хранимого на клиентском вычислительном устройстве 110. Пакет также может включать в себя проверочную информацию, позволяющую агенту обновлений определять, было ли успешным обновление программного обеспечения. Например, проверочная информация может включать в себя опорные значения хеш-функции для обновленных файлов для сравнивания. Агент 118 обновлений может также проверять контенты пакета.
В блоке 1206 ветвления проводится проверка для определения, должен ли агент 118 обновлений обновить версию установочного компонента, чтобы реализовать это обновление. Специалисту в данной области понятно, что передача полной копии установочного компонента в саморазворачивающемся файле может увеличивать количество данных, передаваемых сервисом 120 обновлений для каждого обновления программного обеспечения. Соответственно в иллюстративном варианте осуществления настоящего изобретения базовая версия установочного компонента может храниться в клиентском вычислительном устройстве и обновляться специально для требований текущего обновления программного обеспечения с помощью дельта-«заплаты» установочного компонента. Соответственно, установочная информация в саморазворачивающемся файле инструктирует агента 118 обновлений, должны или нет какие-либо обновления включенных сюда установочных компонентов быть объединены с базовой версией установочного компонента на клиентском вычислительном устройстве 110. Если обновление требуется, на этапе 1208, агент 118 обновлений обновляет компонент базовой установки, как объяснено более детально ниже со ссылкой на фиг.13.
Как только агент обновлений обновляет установочный компонент или если установочный компонент не требует обновления, на этапе 1210, агент 118 обновлений выполняет инвентаризацию файлов, установленных на клиентском вычислительном устройстве 110, и специальной версии этого файла. В иллюстративном варианте осуществления настоящего изобретения агент 118 обновлений может запросить файловую систему клиентского вычислительного устройства 110 обо всех файлах, идентифицированных в пакете как соответствующих выбранному обновлению. Альтернативно, если агент 118 обновлений недавно провел инвентаризацию, может использоваться кэшированная версия этой инвентаризации. На этапе 1212 агент 118 обновлений идентифицирует, какая требуется информация обновления программного обеспечения, чтобы завершить запрошенное обновление. В иллюстративном варианте осуществления настоящего изобретения манифест хранилища заплат включает в себя отображение версий установленного файла на требуемую дельта-«заплату». Соответственно, если доступно наложение дельта-«заплат», агент 118 обновлений будет использовать это отображение для идентификации конкретной дельта-«заплаты» и ее смещенного местоположения внутри файла хранилища заплат. Альтернативно, если дельта-«заплата» не доступна или не может быть осуществлена, агент 118 обновлений может идентифицировать весь файл для загрузки.
Согласно фиг.12B на этапе 1214 агент обновлений передает запрос на идентифицированную информацию обновления программного обеспечения. В иллюстративном варианте осуществления настоящего изобретения агент 118 обновлений может передавать запрос на конкретные дельта-«заплаты» путем показа конкретного ряда заплат, требуемых из файла хранилища заплат, серверу 124 загрузки из сервиса 120 обновлений. Как описано выше, файл хранилища заплат включает в себя большое число применимых дельта-«заплат», в котором каждая дельта-«заплата» идентифицируется по ее местоположению в файле хранилища заплат. Так как файл хранилища заплат в некоторых осуществлениях может быть достаточно большим, агент 118 обновлений может использовать запрос, который запрашивает данные только из конкретных местоположений в файле хранилища заплат, как показано в манифесте хранилища заплат. В альтернативном варианте осуществления настоящего изобретения агент 118 обновлений может запрашивать целую копию файла обновления и/или полную копию файла хранилища заплат.
В альтернативном варианте осуществления настоящего изобретения, другой сервер загрузки, который может не быть ассоциирован исключительно с сервисом 120 обновлений, может обрабатывать запрос агента 118 обновлений. В этом варианте осуществления запрошенный файл хранилища заплат может передаваться, весь или частично, любому числу дополнительных серверов загрузки в сети. Дополнительные серверы загрузки могут являться частью частной сети, используемой для обновления клиентов в этой частной сети. Дополнительно, дополнительный сервер загрузки может являться частью публичной сети. В среде частной сети серверы загрузки могут получать полную копию файла хранилища заплат для обработки клиентских запросов. Альтернативно, серверы загрузки могут также кэшировать части файла хранилища заплат при обработке предыдущих запросов данных от других клиентов и использовать кэшированные данные для выполнения загрузки. Соответственно, дополнительные серверы загрузки могут уменьшать нагрузку взаимодействий на сервер 124 загрузки из сервиса 120 обновлений.
На этапе 1216 агент 118 обновлений принимает запрошенную информацию обновления. В иллюстративном варианте осуществления настоящего изобретения, запрошенная информация обновления может передаваться в двух подходах. В первом подходе, определяемом как ручное обновление, запрос обновления отправляется сервису 120 обновлений с запросом на прямой ответ доставки HTTP данных. В этом подходе сервис 120 обновлений может использовать всю полную пропускную способность, доступную для передачи запрошенных данных агенту 118 обновлений. Во втором подходе, определяемом как автоматическое обновление, запрос обновления отправляется к сервису 120 обновлений с запросом на непрямой ответ доставки HTTP данных. В этом ответе сервис 120 обновлений передает запрошенные данные как фоновый процесс. Этот фоновый процесс может реализовываться так, чтобы использовать минимальное количество доступной пропускной способности. Дополнительно, фоновый процесс может быть прерван в течение процесса загрузки и запущен с начала в следующее доступное время. Описание системы и способа для передачи запрошенных данных через фоновый процесс описаны в совместно переуступленной и поданной патентной заявке США номер 09/505,735, на «Систему и способ передачи данных в сети» от 16 Февраля, 2000, которая включена в настоящее описание посредством ссылки. Специалисту в данной области должно быть понятно, что высокоприоритетная доставка данных или фоновая доставка данных не обязательно отражают приоритет выбранного обновления программного обеспечения, но скорее то, как распределяется пропускная способность для получения информации обновления.
Как только запрошенная информация принята от сервиса обновлений, на этапе 1218 агент 118 обновлений объединяет дельта-«заплату» с соответствующими установленными файлами. В иллюстративном варианте осуществления настоящего изобретения агент 118 обновлений может кэшировать исходную версию установленного файла, чтобы обеспечить, что выбранный файл не изменяется в течение процесса загрузки и объединения. Дополнительно, кэшированная исходная версия установленного файла может использоваться для отмены выбранного обновления.
В блоке ветвления 1220 проводится проверка для определения, является ли обновленный файл действительным. В иллюстративном варианте осуществления настоящего изобретения агент 118 обновлений может использовать алгоритм хеширования, чтобы сравнивать опорное значение хеш-функции, полученное из пакета информации обновления и соответствующее действительному файловому обновлению, с хеш-функцией из текущего модифицированного файла. Если хеш-функции не соответствуют, текущий модифицированный файл недействителен. Специалисту в данной области понятно, что может также использоваться любой из ряда альтернативных алгоритмов удостоверения действительности. Если обновленный файл не действительный, подпрограмма 1200 возвращается к этапу 1214, где агент обновлений может запросить информацию обновления снова. Альтернативно, если агент 118 обновлений неуспешно несколько раз пытался генерировать файл обновления, агент обновлений может реализовать одну из нескольких процедур нейтрализации неисправности. В одном варианте осуществления настоящего изобретения агент 118 обновлений может запросить полную копию обновленного файла, хранимого в файле хранилища заплат и идентифицированного из манифеста хранилища заплат из сервиса 120 обновлений. В другом варианте осуществления настоящего изобретения, агент 118 обновлений может запросить копию обновленного файла в автономном файле из сервиса 120 обновлений. В другом варианте осуществления настоящего изобретения подпрограмма 1200 может в противном случае потерпеть неудачу.
Когда выбранный файл является действительным, в блоке 1222 ветвления, проводится проверка для определения, требуются ли какие-либо дополнительные загрузки. В иллюстративном варианте осуществления настоящего изобретения подпрограмма 1200 входит в итеративный цикл, который непрерывно проверяет на дополнительные загрузки после завершения ранее выбранной загрузки. Если в течение загрузки состояние файла изменяется, агент 118 обновлений продолжил бы запрашивать дополнительные загрузки для нового изменения состояния. Если требуются дополнительные загрузки, на этапе 1224 агент 118 обновлений выполняет другую инвентаризацию и идентифицирует все применимые дельта-«заплаты». Затем подпрограмма 1200 возвращается к этапу 1214.
Когда все запрошенные загрузки обновления завершены, в блоке ветвления 1226 проводится проверка для определения, изменилось ли состояние клиентской машины. В иллюстративном варианте осуществления настоящего изобретения может пройти время между загрузкой и объединением информации обновления и действительной установкой обновленного файла. Соответственно, до установки обновленного файла, агент обновлений определяет, изменилось ли состояние клиентского вычислительного устройства. Если это состояние изменилось, файловое обновление может быть недействительным, и это обновление потерпит неудачу на этапе 1228. Альтернативно, если никакое изменение состояния не произошло, агент 118 обновлений устанавливает обновленный файл на этапе 1230, и подпрограмма 1200 возвращается на этап 1232.
Со ссылкой на фиг.13 ниже описана подпрограмма 1300, реализуемая клиентским вычислительным устройством 110 для обновления компонента базовой установки, соответствующая этапу 1208 (фиг. 12A). В блоке 1302 ветвления проводится проверка для определения, включен ли новый компонент базовой установки в саморазворачивающийся файл, передаваемый агенту 118 обновлений из сервиса 120 обновлений. В иллюстративном варианте осуществления настоящего изобретения, если дельта-«заплаты», требуемые для обновления базового установщика, соизмеримы по размеру с передачей обновленного установочного компонента, будет передан новый компонент базовой установки. Если обновленный установочный компонент включен, на этапе 1304 агент обновлений устанавливает этот обновленный компонент базовой установки как новый установочный компонент. Дополнительно, новый обновленный установочный компонент может сохраняться в памяти клиентского вычислительного устройства 110, чтобы служить в качестве базового установщика для дополнительных обновлений. На этапе 1306 подпрограмма возвращается.
Если обновленный компонент базовой установки не включается в саморазворачивающийся файл, на этапе 1308 агент 118 обновлений получает дельта-«заплату» компонента базовой установки из саморазворачивающегося файла. В иллюстративном варианте осуществления настоящего изобретения, дельта-«заплата» компонента базовой установки соответствует программному коду, который может быть объединен с компонентом базовой установки для генерирования обновленного компонента базовой установки. Соответственно, на этапе 1310, агент обновлений объединяет дельта-«заплату» компонента базовой установки с компонентом базовой установки. На этапе 1312, агент 118 обновлений затем назначает обновленный компонент базовой установки как текущий установочный компонент. В иллюстративном варианте осуществления настоящего изобретения, обновленный установочный компонент не будет сохранен после завершения установки. В соответствии с этим вариантом осуществления агент 118 обновлений поддерживает только ограниченное число компонентов базовой установки в памяти клиентского вычислительного устройства 110. Соответственно, агент обновлений генерирует временный, обновленный установочный компонент на каждой установке. Так как каждое клиентское вычислительное устройство 110 может соответствовать только ограниченному числу компонентов базовой установки, требуется только, чтобы сервис 120 обновлений передавал единичную дельта-«заплату» компонента базовой установки для каждого клиентского вычислительного устройства. На этапе 1314 подпрограмма 1300 возвращается.
Хотя проиллюстрирован и описан предпочтительный вариант осуществления изобретения, понятно, что могут быть осуществлены различные изменения без отклонения от сущности и объема изобретения. Например, хотя описанные иллюстративные примеры применяются к обновлениям программного обеспечения, объем настоящего изобретения включает в себя другие использования помимо распространения и передачи информации, относящейся к обновлениям программного обеспечения. Соответственно, если в этом раскрытии конкретная тема не исключается явно, следует иметь ввиду, что объем настоящего изобретения применяется к распространению и передаче любого типа данных, иных или в дополнение к обновлениям программного обеспечения.

Claims (34)

1. Способ передач обновлений программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство в компьютерной системе, включающей в себя клиентское вычислительное устройство, осуществляющее связь с сервисом обновления программного обеспечения, содержащий:
(a) получение запроса синхронизации от клиентского вычислительного устройства к сервису обновления программного обеспечения, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения;
(b) определение, содержит ли запрос синхронизации идентификатор по меньшей мере одного установленного обновления программного обеспечения;
(c) если определено, что запрос синхронизации содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, выбор дополнительного обновления программного обеспечения для передачи на клиентское вычислительное устройство, причем этот выбор дополнительного обновления программного обеспечения зависит от выполнения предварительного условия, определенного в дополнительном обновлении программного обеспечения, причем это предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор для по меньшей мере одного установленного обновления программного обеспечения;
(d) если определено, что запрос синхронизации не содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, выбор обновления программного обеспечения на первом уровне для передачи на клиентское вычислительное устройство, причем обновление программного обеспечения на первом уровне не включает в себя какого-либо предварительного условия;
(e) передачу командного компонента выбранного обновления программного обеспечения на клиентское вычислительное устройство из сервиса обновления программного обеспечения и
(f) сохранение командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как установленного обновления программного обеспечения, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который выполняет условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
2. Способ по п.1, дополнительно содержащий:
определение, предоставляет ли по меньшей мере один командный компонент выбранного обновления программного обеспечения указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству; и
повторение этапов (а)-(f), если определено, что по меньшей мере один командный компонент выбранного обновления программного обеспечения предоставляет указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству.
3. Способ по п.1, дополнительно содержащий, если командный компонент не предоставляет указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству, то передачу компонента локализованных данных выбранного обновления программного обеспечения от сервиса обновления программного обеспечения клиентскому вычислительному устройству; и
генерирование изображения, содержащего текст, извлеченный из переданного компонента локализованных данных, причем этот текст предоставляет описание выбранного обновления программного обеспечения.
4. Способ по п.3, дополнительно содержащий:
получение команды, идентифицирующей выбранный файл данных, ассоциированный с выбранным обновлением программного обеспечения;
и
в ответ на принятие команды, передачу файла данных, ассоциированного с выбранным обновлением программного обеспечения, от сервиса обновления программного обеспечения клиентскому вычислительному устройству.
5. Способ по п.1, дополнительно содержащий:
определение, хранит ли клиентское вычислительное устройство установленное обновление программного обеспечения;
предоставление идентификатора установленного обновления программного обеспечения в запросе синхронизации, если определено, что клиентское вычислительное устройство хранит установленное обновление программного обеспечения.
6. Способ по п,1, в котором предварительное условие определяет условие, которое требует комбинацию обновлений программного обеспечения, указанных в запросе синхронизации, причем это условие определяется по меньшей мере одним логическим оператором, связывающим эту комбинацию обновлений программного обеспечения.
7. Способ по п.1, дополнительно содержащий:
хранение командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как потерпевшего неудачу обновления программного обеспечения, если клиентское вычислительное устройство не содержит по меньшей мере один компонент, который выполняет по меньшей мере одно условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
8. Способ по п.7, дополнительно содержащий:
получение идентификатора потерпевшего неудачу обновления программного обеспечения в запросе синхронизации, если клиентское вычислительное устройство хранит это потерпевшее неудачу обновление программного обеспечения;
если определено, что запрос синхронизации содержит идентификатор потерпевшего неудачу обновления программного обеспечения, ограничение передачи выбранных обновлений программного обеспечения, относящихся к потерпевшему неудачу обновлению программного обеспечения.
9. Способ по п.1, в котором запрос синхронизации генерируется из программного модуля автоматического обновления, исполняющегося на клиентском вычислительном устройстве.
10. Способ по п.1, в котором запрос синхронизации вызывается пользователем, запрашивающим ручное обновление.
11. Способ по п.1, в котором выбранное обновление программного обеспечения конфигурируется, чтобы обновить один или более файлов, установленных на клиентском вычислительном устройстве, причем передача выбранного обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство содержит:
получение саморазворачивающегося файла, идентифицирующего множество доступных дельта-«заплат» для обновления по меньшей мере одной версии установленного файла;
получение инвентаризации одного или более файлов, установленных на клиентском вычислительном устройстве;
выбор одной или более применимых дельта-«заплат» для реализации выбранных обновлений программного обеспечения, причем выбор одной или более применимых заплат соответствует отображению саморазворачивающегося файла, идентифицирующего множество доступных дельта-«заплат», в инвентаризацию одного или более файлов, установленных на клиентском вычислительном устройстве; и
передачу запроса на одну или более выбранных дельта-«заплат».
12. Машиночитаемый носитель, содержащий исполняемые компьютером инструкции для выполнения способа по п.1.
13. Компьютерная система, включающая в себя клиентское вычислительное устройство, осуществляющее связь с сервисом обновления программного обеспечения для передач обновлений программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство, причем компьютерная система содержит:
(a) средство для получения запроса синхронизации от клиентского вычислительного устройства к сервису обновления программного обеспечения, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения;
(b) средство для определения, содержит ли запрос синхронизации идентификатор по меньшей мере одного установленного обновления программного обеспечения;
(c) средство для выбора, если определено, что запрос синхронизации содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, дополнительного обновления программного обеспечения для передачи на клиентское вычислительное устройство, причем этот выбор дополнительного обновления программного обеспечения зависит от выполнения предварительного условия, опеделенного в дополнительном обновлении программного обеспечения, причем это предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор для по меньшей мере одного установленного обновления программного обеспечения;
(d) средство для выбора, если определено, что запрос синхронизации не содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, обновления программного обеспечения на первом уровне для передачи на клиентское вычислительное устройство, причем обновление программного обеспечения на первом уровне не включает в себя какого-либо предварительного условия;
(e) средство для передачи командного компонента выбранного обновления программного обеспечения на клиентское вычислительное устройство из сервиса обновления программного обеспечения и
(f) средство для сохранения командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как установленного обновления программного обеспечения, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который выполняет условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
14. Способ передач обновлений программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство в компьютерной системе, включающей в себя клиентское вычислительное устройство, осуществляющее связь с сервисом обновления программного обеспечения, содержащий:
получение запроса авторизации из клиентского вычислительного устройства, причем запрос авторизации содержит идентификатор модуля клиентской авторизации, хранимого на клиентском вычислительном устройстве;
определение, ассоциировано ли клиентское вычислительное устройство с целевой группой, причем определяется, что клиентское вычислительное устройство ассоциировано с целевой группой, если модуль клиентской авторизации показывает, что клиентское вычислительное устройство ассоциировано с целевой группой;
передачу серверного идентификационного файла из сервиса обновления программного обеспечения на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
получение запроса на по меньшей мере одно обновление программного обеспечения, хранимое на сервисе обновления программного обеспечения, причем запрос содержит серверный идентификационный файл;
в ответ на получение запроса, определение ассоциировано ли обновление программного обеспечения с целевой группой, идентифицированной в серверном идентификационном файле; и
если определено, что обновление программного обеспечения ассоциировано с целевой группой, идентифицированной в серверном идентификационном файле, то передачу обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство.
15. Способ по п.14, в котором запрос авторизации включает в себя данные ранее сохраненного серверного идентификационного файла, причем серверный идентификационный файл, переданный из сервиса обновления программного обеспечения на клиентское вычислительное устройство, включает в себя данные ранее сохраненного серверного идентификационного файла.
16. Способ по п.14, в котором определяется, что клиентское вычислительное устройство ассоциировано с целевой группой, если модуль серверной авторизации идентифицирует ту же целевую группу, идентифицированную в модуле клиентской авторизации.
17. Способ по п.14, в котором серверный идентификационный файл содержит время окончания действия, причем способ дополнительно содержит:
определение, прошло ли время окончания действия серверного идентификационного файла;
если определено, что время окончания действия серверного идентификационного файла прошло, ограничение передачи обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство.
18. Способ по п.14, в котором серверный идентификационный файл хранит время окончания действия в формате открытого текста и в зашифрованном формате, и причем серверный идентификационный файл содержит зашифрованные данные, идентифицирующие по меньшей мере одну целевую группу, причем способ дополнительно содержит:
получение времени окончания действия из серверного идентификационного файла, причем клиентское вычислительное устройство получает время окончания действия из времени окончания действия, хранимого в формате открытого текста;
определение, не прошло ли время окончания действия; и
если определено, что время окончания действия не прошло, передачу серверного идентификационного файла от клиентского вычислительного устройства сервису обновления программного обеспечения в запросе на по меньшей мере одно обновление программного обеспечения.
19. Способ по п.14, в котором модуль авторизации хранится на клиентском вычислительном устройстве в течение установки программного приложения.
20. Способ по п.14, в котором модуль авторизации хранится на клиентском вычислительном устройстве в течение процесса обновления программного приложения.
21. Способ по п.14, в котором передача обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство включает в себя передачу командного компонента обновления программного обеспечения, и причем способ дополнительно содержит:
обработку командного компонента обновления программного обеспечения для определения, предоставляет ли командный компонент указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству;
передачу компонента локализованных данных обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство, если командный компонент не предоставляет указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству; и
обработку компонента локализованных данных для выбора по меньшей мере одного файла обновления для обновления файлов, установленных на клиентском вычислительном устройстве,
22. Способ по п.21, в котором обработка компонента локализованных данных включает в себя отображение данных компонента локализованных данных на дисплее клиентского вычислительного устройства, причем отображение включает в себя компонент для генерирования запроса на выбранное обновление; и
получение по меньшей мере одного запроса, показывающего выбор по меньшей мере одного файла обновления для обновления файлов, установленных на клиентском вычислительном устройстве.
23. Способ по п.14, в котором модуль серверной авторизации является программным вставным модулем, конфигурированным для динамического добавления или удаления из сервиса обновления программного обеспечения.
24. Способ по п.14, в котором запрос на по меньшей мере одно обновление программного обеспечения генерируется из программного модуля автоматического обновления, исполняющегося на клиентском вычислительном устройстве.
25. Способ по п.14, в котором запрос на по меньшей мере одно обновление программного обеспечения вызывается пользователем, запрашивающим ручное обновление.
26. Способ по п.14, в котором обновление программного обеспечения конфигурируется для обновления одного или более файлов, установленных на клиентском вычислительном устройстве, причем передача обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство содержит:
получение выбора одного или более доступных обновлений программного обеспечения для обновления одного или более файлов, установленных на клиентском вычислительном устройстве;
получение саморазворачивающегося файла, идентифицирующего множество доступных дельта-«заплат», для обновления по меньшей мере одной версии установленного файла;
получение инвентаризации одного или более файлов, установленных на клиентском вычислительном устройстве;
выбор одной или более применимых дельта-«заплат» для реализации выбранных обновлений программного обеспечения, причем выбор одной или более применимых заплат соответствует отображению саморазворачивающегося файла, идентифицирующего множество доступных дельта-«заплат», в инвентаризацию одного или более файлов, установленных на клиентском вычислительном устройстве; и передачу запроса на одну или более выбранных дельта-«заплат».
27. Машиночитаемый носитель, содержащий исполняемые компьютером инструкции для выполнения способа п.14.
28. Компьютерная система, включающая в себя клиентское вычислительное устройство, осуществляющее связь с сервисом обновления программного обеспечения для передач обновлений программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство, содержащая:
средство для получения запроса авторизации из клиентского вычислительного устройства, причем запрос авторизации содержит идентификатор модуля клиентской авторизации, хранимого на клиентском вычислительном устройстве;
средство для определения, ассоциировано ли клиентское вычислительное устройство с целевой группой, причем определяется, что клиентское вычислительное устройство ассоциировано с целевой группой, если модуль клиентской авторизации показывает, что клиентское вычислительное устройство ассоциировано с целевой группой;
средство для передачи серверного идентификационного файла из сервиса обновления программного обеспечения на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
средство для получения запроса на по меньшей мере одно обновление программного обеспечения, хранимое на сервисе обновления программного обеспечения, причем запрос содержит серверный идентификационный файл;
средство для определения, ассоциировано ли обновление программного обеспечения с целевой группой, идентифицированной в серверном идентификационном файле, в ответ на получение запроса; и
средство для передачи обновления программного обеспечения из сервиса обновления программного обеспечения на клиентское вычислительное устройство, если определено, что обновление программного обеспечения ассоциировано с целевой группой, идентифицированной в серверном идентификационном файле.
29. Способ передачи структуры данных из сервера на клиентское вычислительное устройство в компьютерной системе, включающей в себя клиентское вычислительное устройство, осуществляющее связь с сервером, содержащий:
определение, ассоциировано ли клиентское вычислительное устройство с целевой группой, причем определяется, что клиентское вычислительное устройство ассоциировано с целевой группой, если клиентское вычислительное устройство содержит модуль авторизации, показывающий, что клиентское вычислительное устройство ассоциировано с целевой группой;
передачу серверного идентификационного файла из сервера на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
получение запроса на по меньшей мере одну структуру данных, хранимую на сервере, причем запрос содержит серверный идентификационный файл;
в ответ на получение запроса, определение, ассоциирована ли структура данных с целевой группой, идентифицированной в серверном идентификационном файле;
если определено, что структура данных ассоциирована с целевой группой,
идентифицированной в серверном идентификационном файле, передачу структуры данных от сервера на клиентское вычислительное устройство.
30. Способ по п.29, дополнительно содержащий:
получение запроса авторизации из клиентского вычислительного устройства, причем запрос авторизации содержит идентификатор модуля авторизации, хранимого на клиентском вычислительном устройстве;
в ответ на получение запроса авторизации, определение, ассоциировано ли клиентское вычислительное устройство с целевой группой, причем определяется, что клиентское вычислительное устройство ассоциировано с целевой группой, если запрос авторизации идентифицирует по меньшей мере один модуль авторизации, хранимый на клиентском вычислительном устройстве, которое ассоциировано с этой целевой группой.
31. Способ по п.29, в котором серверный идентификационный файл содержит время окончания действия, причем способ дополнительно содержит:
определение, прошло ли время окончания действия серверного идентификационного файла;
если определено, что время окончания действия серверного идентификационного файла прошло, ограничение передачи структуры данных из сервера на клиентское вычислительное устройство.
32. Способ по п.29, в котором серверный идентификационный файл хранит время окончания действия в формате открытого текста и в зашифрованном формате, причем серверный идентификационный файл содержит зашифрованные данные, идентифицирующие по меньшей мере одну целевую группу, причем способ дополнительно содержит:
получение времени окончания действия из серверного идентификационного файла, причем клиентское вычислительное устройство получает время окончания действия из времени окончания действия, хранимого в формате открытого текста;
определение, не прошло ли время окончания действия; и
если определено, что время окончания действия не прошло, то передачу серверного идентификационного файла из клиентского вычислительного устройства сервису обновления программного обеспечения в запросе на по меньшей мере одну структуру данных.
33. Машиночитаемый носитель, содержащий исполняемые компьютером инструкции для выполнения способа по п.29.
34. Компьютерная система, включающая в себя клиентское вычислительное устройство, осуществляющее связь с сервером для передачи структуры данных из сервера на клиентское вычислительное устройство, содержащая:
средство для определения, ассоциировано ли клиентское вычислительное устройство с целевой группой, определяющее, что клиентское вычислительное устройство ассоциировано с целевой группой, если клиентское вычислительное устройство содержит модуль авторизации, показывающий, что клиентское вычислительное устройство ассоциировано с целевой группой;
средство для передачи серверного идентификационного файла из сервера на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
средство для получения запроса на по меньшей мере одну структуру данных, хранимую на сервере, причем запрос содержит серверный идентификационный файл;
средство для определения, ассоциирована ли структура данных с целевой группой, идентифицированной в серверном идентификационном файле, в ответ на получение запроса;
средство для передачи структуры данных от сервера на клиентское вычислительное устройство, если определено, что структура данных ассоциирована с целевой группой, идентифицированной в серверном идентификационном файле.
RU2005118556/09A 2003-12-15 2004-07-23 Система и способ управления и передачи обновлений программного обеспечения RU2357279C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/737,708 2003-12-15
US10/737,708 US7574706B2 (en) 2003-12-15 2003-12-15 System and method for managing and communicating software updates

Publications (2)

Publication Number Publication Date
RU2005118556A RU2005118556A (ru) 2006-01-20
RU2357279C2 true RU2357279C2 (ru) 2009-05-27

Family

ID=34654192

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005118556/09A RU2357279C2 (ru) 2003-12-15 2004-07-23 Система и способ управления и передачи обновлений программного обеспечения

Country Status (16)

Country Link
US (1) US7574706B2 (ru)
EP (1) EP1723495A4 (ru)
JP (1) JP4914220B2 (ru)
KR (1) KR101098745B1 (ru)
CN (1) CN100416465C (ru)
AU (1) AU2004279170C1 (ru)
BR (1) BRPI0406440A (ru)
CA (1) CA2507172C (ru)
MX (1) MXPA05006646A (ru)
MY (1) MY150115A (ru)
NO (1) NO20052268L (ru)
NZ (1) NZ540174A (ru)
RU (1) RU2357279C2 (ru)
TW (1) TWI359597B (ru)
WO (1) WO2005060388A2 (ru)
ZA (1) ZA200503160B (ru)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2524855C2 (ru) * 2009-01-21 2014-08-10 Майкрософт Корпорейшн Расширяемость для основывающейся на web визуализации диаграмм
RU2538911C2 (ru) * 2011-07-25 2015-01-10 Сони Компьютер Энтертейнмент Америка Ллк Способ и система для эффективной загрузки пакета данных
RU2558615C2 (ru) * 2010-08-10 2015-08-10 Квэлкомм Инкорпорейтед Обновление файла манифеста для сетевой потоковой передачи кодированных видеоданных
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
RU2571726C2 (ru) * 2013-10-24 2015-12-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки целесообразности установки обновлений
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
RU2589337C2 (ru) * 2010-08-17 2016-07-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для управления обновлениями
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
RU2634183C1 (ru) * 2016-09-08 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ рассылки обновлений
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
RU2671624C1 (ru) * 2017-05-17 2018-11-02 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Способ управления обновлениями программного обеспечения в системах с каскадной структурой

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US6317878B1 (en) * 1996-05-22 2001-11-13 Fujitsu Limited Information processing system and recording media
US6751794B1 (en) * 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
GB0018042D0 (en) * 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7539686B2 (en) * 2004-03-12 2009-05-26 Microsoft Corporation Tag-based schema for distributing update metadata in an update distribution system
US8688803B2 (en) * 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7673148B2 (en) * 2004-10-15 2010-03-02 Microsoft Corporation Versioning component for applications
US8019725B1 (en) * 2004-12-15 2011-09-13 Apple Inc. Software update management
US8219807B1 (en) 2004-12-17 2012-07-10 Novell, Inc. Fine grained access control for linux services
US8271785B1 (en) 2004-12-20 2012-09-18 Novell, Inc. Synthesized root privileges
US8457108B1 (en) 2004-12-27 2013-06-04 At&T Intellectual Property Ii, L.P. Method and apparatus for monitoring client software usage in end user device
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US8214398B1 (en) 2005-02-16 2012-07-03 Emc Corporation Role based access controls
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US8074214B2 (en) * 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
US8352935B2 (en) * 2005-05-19 2013-01-08 Novell, Inc. System for creating a customized software distribution based on user requirements
US7770164B2 (en) * 2005-05-31 2010-08-03 Siemens Aktiengesellschaft Software upgrades with centralized preparation
US8577761B1 (en) * 2005-06-30 2013-11-05 Oracle America, Inc. System and method for dynamic offering topologies
FI120286B (fi) * 2005-07-12 2009-08-31 Capricode Oy Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi
FI119672B (fi) 2005-07-12 2009-01-30 Capricode Oy Menetelmä ja laitejärjestely käyttäjäsovellus-laitehallintapalvelin-asiakaslaite-ympäristön hallitsemiseksi
US20070073800A1 (en) * 2005-09-29 2007-03-29 Intel Corporation Provisioning, configuring, and managing a platform in a network
US20070106993A1 (en) * 2005-10-21 2007-05-10 Kenneth Largman Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
JP2007141102A (ja) 2005-11-21 2007-06-07 Internatl Business Mach Corp <Ibm> ソフトウェアをインストールするためのプログラム、記録媒体、及び装置
US7305325B2 (en) * 2006-01-12 2007-12-04 International Business Machines Corporation Method to improve requirements, design manufacturing, and transportation in mass manufacturing industries through analysis of defect data
JP2007226740A (ja) * 2006-02-27 2007-09-06 Kyocera Corp 通信システム、ソフトウェア更新方法、通信装置、管理サーバ装置、およびプログラム
US8676973B2 (en) * 2006-03-07 2014-03-18 Novell Intellectual Property Holdings, Inc. Light-weight multi-user browser
US8533700B1 (en) * 2006-04-11 2013-09-10 Open Invention Networks, Llc Workstation uptime, maintenance, and reboot service
US7730480B2 (en) * 2006-08-22 2010-06-01 Novell, Inc. System and method for creating a pattern installation by cloning software installed another computer
JP4842742B2 (ja) * 2006-09-05 2011-12-21 富士通株式会社 ソフトウェア管理プログラム、ソフトウェア管理方法およびソフトウェア管理装置
KR101079592B1 (ko) * 2006-11-03 2011-11-04 삼성전자주식회사 디스플레이장치 및 그 정보갱신방법
KR100873198B1 (ko) 2006-11-30 2008-12-10 주식회사 케이티프리텔 휴대용 정보 단말기를 위한 통합 소프트웨어 관리 방법 및시스템
US8150371B2 (en) 2007-05-03 2012-04-03 Qualcomm Incorporated Interactive control of access to services and capabilities of a mobile device
US8407692B2 (en) * 2007-06-27 2013-03-26 Microsoft Corporation Dynamic correction of component manifests
US8589912B2 (en) * 2007-06-29 2013-11-19 International Business Machines Corporation Loosely coupled product install and configuration
US7857222B2 (en) 2007-08-16 2010-12-28 Hand Held Products, Inc. Data collection system having EIR terminal interface node
US8281298B2 (en) 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8938735B2 (en) * 2007-08-31 2015-01-20 Thomson Reuters Global Resources Bootstrapper and software download manager
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
US8413130B2 (en) * 2007-10-03 2013-04-02 International Business Machines Corporation System and method for self policing of authorized configuration by end points
US8214826B2 (en) * 2007-10-09 2012-07-03 International Business Machines Corporation Optimized targeting in a large scale system
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US8266260B2 (en) * 2007-12-11 2012-09-11 Sharp Laboratories Of America, Inc. Method and system for updating the software of multiple network nodes
US8589592B2 (en) * 2007-12-11 2013-11-19 Red Hat, Inc. Efficient object distribution
US9753712B2 (en) * 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US20090260004A1 (en) * 2008-04-10 2009-10-15 Palm, Inc. Computer program updates for mobile computing device
US20090288071A1 (en) * 2008-05-13 2009-11-19 Microsoft Corporation Techniques for delivering third party updates
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
TWI382311B (zh) * 2008-12-03 2013-01-11 Mitac Int Corp Transmission control system and its method
US9489185B2 (en) * 2009-01-29 2016-11-08 At&T Mobility Ii Llc Small/medium business application delivery platform
JP2010198332A (ja) * 2009-02-25 2010-09-09 Canon Inc ファームウェア更新装置、ファームウェア更新システム、ファームウェア更新方法、およびファームウェア更新プログラム
TWI416327B (zh) * 2009-03-25 2013-11-21 Wistron Corp 資料備份方法
US8311983B2 (en) * 2009-04-28 2012-11-13 Whp Workflow Solutions, Llc Correlated media for distributed sources
US10565065B2 (en) 2009-04-28 2020-02-18 Getac Technology Corporation Data backup and transfer across multiple cloud computing providers
US9760573B2 (en) 2009-04-28 2017-09-12 Whp Workflow Solutions, Llc Situational awareness
US10419722B2 (en) 2009-04-28 2019-09-17 Whp Workflow Solutions, Inc. Correlated media source management and response control
US8495621B2 (en) * 2009-06-15 2013-07-23 Microsoft Corporation Catalog-based software component management
TWI479354B (zh) * 2009-06-17 2015-04-01 Fineart Technology Co Ltd 資訊安全管理系統
CN101989208A (zh) * 2009-08-04 2011-03-23 鸿富锦精密工业(深圳)有限公司 软件更新方法
US8528037B2 (en) * 2009-08-28 2013-09-03 CSC Holdings, LLC Dynamic application loader for set top box
US8671402B2 (en) 2009-11-09 2014-03-11 Bank Of America Corporation Network-enhanced control of software updates received via removable computer-readable medium
US8397230B2 (en) * 2009-11-09 2013-03-12 Bank Of America Corporation Software updates using delta patching
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US8972974B2 (en) 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US9128799B2 (en) 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US9176898B2 (en) * 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US9497092B2 (en) * 2009-12-08 2016-11-15 Hand Held Products, Inc. Remote device management interface
US8316120B2 (en) * 2010-02-02 2012-11-20 Microsoft Corporation Applicability detection using third party target state
US9922354B2 (en) 2010-04-02 2018-03-20 Apple Inc. In application purchasing
TW201135594A (en) * 2010-04-08 2011-10-16 Inventec Corp System for updating software using separated modules and method thereof
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9110749B2 (en) * 2010-06-01 2015-08-18 Apple Inc. Digital content bundle
US9563751B1 (en) * 2010-10-13 2017-02-07 The Boeing Company License utilization management system service suite
US9378007B2 (en) 2010-12-01 2016-06-28 Apple Inc. Pre-heated software installation
US8910149B2 (en) * 2010-12-24 2014-12-09 Microsoft Corporation On-demand or incremental remote data copy
US9081839B2 (en) 2011-01-28 2015-07-14 Oracle International Corporation Push replication for use with a distributed data grid
US20120272103A1 (en) * 2011-04-21 2012-10-25 Microsoft Corporation Software operability service
US8843581B2 (en) * 2011-04-26 2014-09-23 Oracle International Corporation Live object pattern for use with a distributed cache
US9250866B2 (en) 2011-06-20 2016-02-02 Ebay Inc. Systems and methods for incremental software deployment
US8856724B2 (en) 2011-06-20 2014-10-07 Ebay Inc. Systems and methods for incremental software development
US8539123B2 (en) 2011-10-06 2013-09-17 Honeywell International, Inc. Device management using a dedicated management interface
US8621123B2 (en) 2011-10-06 2013-12-31 Honeywell International Inc. Device management using virtual interfaces
US9232001B1 (en) * 2011-11-14 2016-01-05 Google Inc. Client-server communication using a set identifier
WO2013086487A1 (en) * 2011-12-09 2013-06-13 Merchantwarehouse.Com, Llc Payment processing and customer engagement platform methods, apparatuses and media
KR101304565B1 (ko) * 2012-02-27 2013-09-05 주식회사 네오위즈인터넷 어플리케이션 제공 방법 및 그를 위한 어플리케이션 제공 서버
US9489193B2 (en) 2012-05-01 2016-11-08 Sophos Limited Method and system for providing software updates to local machines
KR101969577B1 (ko) * 2012-07-10 2019-04-16 에스케이플래닛 주식회사 애플릿 정보 서비스 시스템 및 애플릿 정보 서비스 방법
WO2014018256A1 (en) * 2012-07-26 2014-01-30 Utc Fire And Security Americas Corporation, Inc. Wireless firmware upgrades to an alarm security panel
US9378026B2 (en) * 2012-07-27 2016-06-28 Daniel A. Dooley Customizable application
JP6131551B2 (ja) * 2012-09-18 2017-05-24 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
US20140129686A1 (en) 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
KR20140077435A (ko) 2012-12-14 2014-06-24 삼성전자주식회사 모바일 단말의 소프트웨어 업데이트 서비스 방법 및 장치
US9418072B2 (en) * 2013-03-04 2016-08-16 Vmware, Inc. Cross-file differential content synchronization
US9026994B2 (en) * 2013-03-07 2015-05-05 Microsoft Technology Licensing, Llc Cloud-based localization platform
US10430894B2 (en) 2013-03-21 2019-10-01 Khoros, Llc Gamification for online social communities
US9372679B2 (en) * 2013-08-02 2016-06-21 Sap Se Method and system for software delivery service
US9229702B1 (en) * 2013-08-28 2016-01-05 Lithium Technologies, Inc. Systems and methods for application plugin deployment for websites
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9830142B2 (en) * 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
JP2015103105A (ja) 2013-11-26 2015-06-04 株式会社リコー 通信装置、通信システム、及び通信プログラム
JP2015103106A (ja) * 2013-11-26 2015-06-04 株式会社リコー 通信装置、及び通信プログラム
CN103631625B (zh) * 2013-12-02 2018-02-23 腾讯科技(成都)有限公司 一种数据获取的方法、用户端、服务器及系统
JP2015153266A (ja) * 2014-02-18 2015-08-24 日本電気株式会社 ファームウェア管理システム、方法、及び、プログラム
US9430216B2 (en) * 2014-05-11 2016-08-30 Lumension Security, Inc. Self-contained executable for predetermined software updating
US10037202B2 (en) 2014-06-03 2018-07-31 Microsoft Technology Licensing, Llc Techniques to isolating a portion of an online computing service
US9996339B2 (en) * 2014-06-04 2018-06-12 Microsoft Technology Licensing, Llc Enhanced updating for digital content
CA2875850C (en) * 2014-12-23 2022-07-05 Steve Cooper Version synchronization of dependent components
CN104899057B (zh) * 2015-05-13 2018-10-16 北京金山安全软件有限公司 软件模块的更新方法和装置
US11367077B2 (en) 2015-06-11 2022-06-21 Idid Tecnologia Ltda Antifraud resilient transaction identifier datastructure apparatuses, methods and systems
US11715109B2 (en) 2015-06-11 2023-08-01 Idid Tecnologia Ltda Point of sale apparatuses, methods and systems
US10250600B2 (en) 2015-07-27 2019-04-02 International Business Machines Corporation Updating database drivers for client applications through a database server push
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
US20170090910A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Mobile device application installation with performance enhancement
CN105357308B (zh) * 2015-11-18 2018-05-08 天脉聚源(北京)传媒科技有限公司 一种数据下载方法及装置
US10250452B2 (en) 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
US10735348B2 (en) * 2016-04-29 2020-08-04 International Business Machines Corporation Providing an optimal resource to a client computer via interactive dialog
CN107528713B (zh) * 2016-06-22 2019-01-11 腾讯科技(深圳)有限公司 一种数据转移sdk的升级方法及装置
CN106126306A (zh) * 2016-07-08 2016-11-16 深圳市中兴物联科技股份有限公司 一种基于fota服务器组的无线升级方法及其系统
US11605037B2 (en) * 2016-07-20 2023-03-14 Fisher-Rosemount Systems, Inc. Fleet management system for portable maintenance tools
US10764083B2 (en) 2016-07-25 2020-09-01 Fisher-Rosemount Systems, Inc. Portable field maintenance tool with resistor network for intrinsically safe operation
US10360021B2 (en) * 2016-08-19 2019-07-23 Veniam, Inc. Systems and methods for reliable software update in a network of moving things including, for example, autonomous vehicles
JP6840966B2 (ja) * 2016-09-15 2021-03-10 富士通株式会社 参考情報出力プログラム、参考情報出力方法、及び参考情報出力装置
KR102590347B1 (ko) 2016-12-15 2023-10-18 삼성전자주식회사 서버, 전자 장치 및 데이터 관리 방법
US10362166B2 (en) 2017-03-01 2019-07-23 At&T Intellectual Property I, L.P. Facilitating software downloads to internet of things devices via a constrained network
US10902462B2 (en) 2017-04-28 2021-01-26 Khoros, Llc System and method of providing a platform for managing data content campaign on social networks
CN109150570B (zh) 2017-06-27 2022-04-08 阿里巴巴集团控股有限公司 更新方法、系统、端节点及电子设备
CN107608689B (zh) * 2017-08-07 2020-01-21 阿里巴巴集团控股有限公司 客户端上应用程序的更新方法、装置及电子设备
CN109495532A (zh) * 2017-09-13 2019-03-19 北京京东尚科信息技术有限公司 客户端更新方法和装置
US11470161B2 (en) 2018-10-11 2022-10-11 Spredfast, Inc. Native activity tracking using credential and authentication management in scalable data networks
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US10346449B2 (en) 2017-10-12 2019-07-09 Spredfast, Inc. Predicting performance of content and electronic messages among a system of networked computing devices
US11050704B2 (en) 2017-10-12 2021-06-29 Spredfast, Inc. Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices
US10785222B2 (en) 2018-10-11 2020-09-22 Spredfast, Inc. Credential and authentication management in scalable data networks
US10601937B2 (en) 2017-11-22 2020-03-24 Spredfast, Inc. Responsive action prediction based on electronic messages among a system of networked computing devices
US10594773B2 (en) 2018-01-22 2020-03-17 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US11061900B2 (en) 2018-01-22 2021-07-13 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US10855657B2 (en) 2018-10-11 2020-12-01 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
CN109828772B (zh) * 2019-02-19 2022-03-11 百度在线网络技术(北京)有限公司 热更新方法、操作系统、终端设备和存储介质
US11386233B2 (en) * 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
US10931540B2 (en) 2019-05-15 2021-02-23 Khoros, Llc Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously
TWI715047B (zh) * 2019-05-22 2021-01-01 華南商業銀行股份有限公司 伺服器組態檢核及修正系統與檢核及修正伺服器組態的方法
TWI746361B (zh) * 2019-05-22 2021-11-11 華南商業銀行股份有限公司 基於雜湊演算法的伺服器組態檢核及修正系統及其方法
TWI752813B (zh) * 2019-05-22 2022-01-11 華南商業銀行股份有限公司 基於觸發操作的伺服器組態檢核及修正系統及其方法
US10972289B2 (en) 2019-07-19 2021-04-06 JFrog, Ltd. Software release verification
US10999314B2 (en) 2019-07-19 2021-05-04 JFrog Ltd. Software release tracking and logging
US11140086B2 (en) 2019-08-15 2021-10-05 At&T Intellectual Property I, L.P. Management of background data traffic for 5G or other next generations wireless network
CN111258670B (zh) * 2020-01-08 2023-09-22 北京字节跳动网络技术有限公司 组件数据的管理方法、装置、电子设备和存储介质
US11695829B2 (en) 2020-01-09 2023-07-04 JFrog Ltd. Peer-to-peer (P2P) downloading
RU2726318C1 (ru) * 2020-01-14 2020-07-13 Юрий Иванович Стародубцев Способ резервного копирования состояния сложного объекта
CN111338667B (zh) * 2020-02-10 2023-08-01 浙江大华技术股份有限公司 一种应用程序app的升级方法与升级装置
US11438289B2 (en) 2020-09-18 2022-09-06 Khoros, Llc Gesture-based community moderation
US11128589B1 (en) 2020-09-18 2021-09-21 Khoros, Llc Gesture-based community moderation
US11627100B1 (en) 2021-10-27 2023-04-11 Khoros, Llc Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel
US11924375B2 (en) 2021-10-27 2024-03-05 Khoros, Llc Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source
US11438282B2 (en) 2020-11-06 2022-09-06 Khoros, Llc Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices
US11714629B2 (en) 2020-11-19 2023-08-01 Khoros, Llc Software dependency management
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation
CN114296775B (zh) * 2022-03-09 2022-07-19 南京易联阳光信息技术股份有限公司 基于大数据的智能运维方法及系统

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047928A (en) 1986-10-24 1991-09-10 Wiedemer John D Billing system for computer software
US4796181A (en) 1986-10-24 1989-01-03 Wiedemer John D Billing system for computer software
US5155680A (en) 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
CA2053261A1 (en) 1989-04-28 1990-10-29 Gary D. Hornbuckle Method and apparatus for remotely controlling and monitoring the use of computer software
US5473772A (en) 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5267171A (en) 1990-03-29 1993-11-30 Brother Kogyo Kabushiki Kaisha Computer software vending machine
JPH0792744B2 (ja) 1990-08-20 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 多重レベル適用業務ソフトウェアをデータ処理装置にインストールする方法。
US5155484A (en) 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer
AU662805B2 (en) 1992-04-06 1995-09-14 Addison M. Fischer A method for processing information among computers which may exchange messages
US5528490A (en) 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
US5586322A (en) 1992-06-11 1996-12-17 Beck; Robert E. Workgroup organized network manager with workstation comparison system
US5359730A (en) 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US5495411A (en) 1993-12-22 1996-02-27 Ananda; Mohan Secure software rental system using continuous asynchronous password verification
US5421009A (en) 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
US6038586A (en) * 1993-12-30 2000-03-14 Frye; Russell Automated software updating and distribution
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5586304A (en) 1994-09-08 1996-12-17 Compaq Computer Corporation Automatic computer upgrading
US5654901A (en) 1995-01-30 1997-08-05 Telefonaktiebolaget Lm Ericsson Loading software into field test equipment
US5884323A (en) 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5845077A (en) 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
KR100286008B1 (ko) * 1995-12-30 2001-04-16 윤종용 소프트웨어 프로그램 자동 갱신방법
DE19608142B4 (de) 1996-03-04 2013-10-10 Hosokawa Alpine Ag Zyklonsichter
US6049671A (en) 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US5721824A (en) 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5930513A (en) 1996-06-06 1999-07-27 Sun Microsystems, Inc. Reference based software installation
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6643506B1 (en) 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6347398B1 (en) 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US5922072A (en) * 1997-01-03 1999-07-13 Ncr Corporation Method and apparatus for creating alternate boot environments in a computer
US6282709B1 (en) * 1997-11-12 2001-08-28 Philips Electronics North America Corporation Software update manager
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6330715B1 (en) 1998-05-19 2001-12-11 Nortel Networks Limited Method and apparatus for managing software in a network system
US6381742B2 (en) 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6286138B1 (en) 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US6490722B1 (en) 1999-03-30 2002-12-03 Tivo Inc. Software installation and recovery system
US6574657B1 (en) 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
JP2001067232A (ja) 1999-08-31 2001-03-16 Hitachi Ltd ソフトウエアの配信システムおよびソフトウエアの受信端末装置
US6493871B1 (en) 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US7035878B1 (en) 2000-01-25 2006-04-25 Fusionone, Inc. Base rolling engine for data transfer and synchronization system
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
CN1107907C (zh) * 2000-02-21 2003-05-07 英业达股份有限公司 借由增量的方式来使数据文件升级的方法
US6751794B1 (en) 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
GB0017336D0 (en) * 2000-07-15 2000-08-30 Ibm Preferable modes of software package deployment
US7035912B2 (en) 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
US20020112230A1 (en) 2000-12-07 2002-08-15 Scott John Charles Software update management system with update chronology generator
US7574481B2 (en) 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US7051327B1 (en) * 2001-05-08 2006-05-23 Gateway Inc. System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion
CN1241136C (zh) * 2001-09-14 2006-02-08 北京瑞星科技股份有限公司 软件升级的方法
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US7257649B2 (en) 2001-09-28 2007-08-14 Siebel Systems, Inc. Method and system for transferring information during server synchronization with a computing device
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
US7115919B2 (en) 2002-03-21 2006-10-03 Hitachi, Ltd. Storage system for content distribution
GB2387456B (en) 2002-04-12 2005-12-21 Sun Microsystems Inc Configuring computer systems
US20030195951A1 (en) 2002-04-12 2003-10-16 Wittel Walter I. Method and system to dynamically detect, download and install drivers from an online service
US9009694B2 (en) 2002-05-22 2015-04-14 Oracle America, Inc. Pre-verification and sequencing of patches
US7823148B2 (en) 2002-05-22 2010-10-26 Oracle America, Inc. System and method for performing patch installation via a graphical user interface
US20030221190A1 (en) 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US6966058B2 (en) * 2002-06-12 2005-11-15 Agami Systems, Inc. System and method for managing software upgrades in a distributed computing system
US20040002943A1 (en) 2002-06-28 2004-01-01 Merrill John Wickens Lamb Systems and methods for application delivery and configuration management of mobile devices
US7478385B2 (en) 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US7584467B2 (en) * 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
US20050050142A1 (en) 2003-08-28 2005-03-03 Aligo Inc. Method and framework for transaction synchronization
WO2005033964A1 (en) * 2003-09-05 2005-04-14 Itron, Inc. Synchronizing and controlling software downloads, such as for utility meter-reading data collection and processing
US7478381B2 (en) 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9236887B2 (en) 2004-05-07 2016-01-12 Digital Fountain, Inc. File download and streaming system
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9628536B2 (en) 2006-06-09 2017-04-18 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8954488B2 (en) 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
RU2524855C2 (ru) * 2009-01-21 2014-08-10 Майкрософт Корпорейшн Расширяемость для основывающейся на web визуализации диаграмм
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9876607B2 (en) 2009-08-19 2018-01-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9660763B2 (en) 2009-08-19 2017-05-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US11770432B2 (en) 2009-09-22 2023-09-26 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US11743317B2 (en) 2009-09-22 2023-08-29 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9992555B2 (en) 2010-06-29 2018-06-05 Qualcomm Incorporated Signaling random access points for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
RU2558615C2 (ru) * 2010-08-10 2015-08-10 Квэлкомм Инкорпорейтед Обновление файла манифеста для сетевой потоковой передачи кодированных видеоданных
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
RU2589337C2 (ru) * 2010-08-17 2016-07-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для управления обновлениями
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
RU2538911C2 (ru) * 2011-07-25 2015-01-10 Сони Компьютер Энтертейнмент Америка Ллк Способ и система для эффективной загрузки пакета данных
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
RU2571726C2 (ru) * 2013-10-24 2015-12-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки целесообразности установки обновлений
RU2634183C1 (ru) * 2016-09-08 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ рассылки обновлений
RU2671624C1 (ru) * 2017-05-17 2018-11-02 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Способ управления обновлениями программного обеспечения в системах с каскадной структурой

Also Published As

Publication number Publication date
CA2507172C (en) 2013-10-08
ZA200503160B (en) 2006-10-25
CN1973255A (zh) 2007-05-30
JP4914220B2 (ja) 2012-04-11
NZ540174A (en) 2007-12-21
MY150115A (en) 2013-11-29
AU2004279170A1 (en) 2005-06-30
WO2005060388A3 (en) 2005-09-01
BRPI0406440A (pt) 2005-10-04
TWI359597B (en) 2012-03-01
TW200520490A (en) 2005-06-16
CA2507172A1 (en) 2005-06-15
AU2004279170C1 (en) 2010-12-02
NO20052268L (no) 2005-05-26
AU2004279170B2 (en) 2010-06-10
RU2005118556A (ru) 2006-01-20
CN100416465C (zh) 2008-09-03
KR101098745B1 (ko) 2011-12-26
WO2005060388A2 (en) 2005-07-07
EP1723495A2 (en) 2006-11-22
KR20060114618A (ko) 2006-11-07
NO20052268D0 (no) 2005-05-10
US20050132348A1 (en) 2005-06-16
US7574706B2 (en) 2009-08-11
JP2007514233A (ja) 2007-05-31
EP1723495A4 (en) 2008-12-31
MXPA05006646A (es) 2005-10-21

Similar Documents

Publication Publication Date Title
RU2357279C2 (ru) Система и способ управления и передачи обновлений программного обеспечения
US7509636B2 (en) System and method for updating files utilizing delta compression patching
US7546594B2 (en) System and method for updating installation components using an installation component delta patch in a networked environment
US7478381B2 (en) Managing software updates and a software distribution service
US7676448B2 (en) Controlling installation update behaviors on a client computer
US20050203968A1 (en) Update distribution system architecture and method for distributing software

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20200724