RU2357279C2 - Система и способ управления и передачи обновлений программного обеспечения - Google Patents
Система и способ управления и передачи обновлений программного обеспечения Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network 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) сохранение командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как установленного обновления программного обеспечения, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который выполняет условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
(a) получение запроса синхронизации от клиентского вычислительного устройства к сервису обновления программного обеспечения, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения;
(b) определение, содержит ли запрос синхронизации идентификатор по меньшей мере одного установленного обновления программного обеспечения;
(c) если определено, что запрос синхронизации содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, выбор дополнительного обновления программного обеспечения для передачи на клиентское вычислительное устройство, причем этот выбор дополнительного обновления программного обеспечения зависит от выполнения предварительного условия, определенного в дополнительном обновлении программного обеспечения, причем это предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор для по меньшей мере одного установленного обновления программного обеспечения;
(d) если определено, что запрос синхронизации не содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, выбор обновления программного обеспечения на первом уровне для передачи на клиентское вычислительное устройство, причем обновление программного обеспечения на первом уровне не включает в себя какого-либо предварительного условия;
(e) передачу командного компонента выбранного обновления программного обеспечения на клиентское вычислительное устройство из сервиса обновления программного обеспечения и
(f) сохранение командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как установленного обновления программного обеспечения, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который выполняет условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
2. Способ по п.1, дополнительно содержащий:
определение, предоставляет ли по меньшей мере один командный компонент выбранного обновления программного обеспечения указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству; и
повторение этапов (а)-(f), если определено, что по меньшей мере один командный компонент выбранного обновления программного обеспечения предоставляет указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству.
определение, предоставляет ли по меньшей мере один командный компонент выбранного обновления программного обеспечения указание, что сервис обновления программного обеспечения содержит дополнительные обновления программного обеспечения, доступные клиентскому вычислительному устройству; и
повторение этапов (а)-(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) средство для сохранения командных компонентов выбранного обновления программного обеспечения в клиентском вычислительном устройстве как установленного обновления программного обеспечения, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который выполняет условие правила применимости, хранимого в выбранном обновлении программного обеспечения.
(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. Компьютерная система, включающая в себя клиентское вычислительное устройство, осуществляющее связь с сервером для передачи структуры данных из сервера на клиентское вычислительное устройство, содержащая:
средство для определения, ассоциировано ли клиентское вычислительное устройство с целевой группой, определяющее, что клиентское вычислительное устройство ассоциировано с целевой группой, если клиентское вычислительное устройство содержит модуль авторизации, показывающий, что клиентское вычислительное устройство ассоциировано с целевой группой;
средство для передачи серверного идентификационного файла из сервера на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
средство для получения запроса на по меньшей мере одну структуру данных, хранимую на сервере, причем запрос содержит серверный идентификационный файл;
средство для определения, ассоциирована ли структура данных с целевой группой, идентифицированной в серверном идентификационном файле, в ответ на получение запроса;
средство для передачи структуры данных от сервера на клиентское вычислительное устройство, если определено, что структура данных ассоциирована с целевой группой, идентифицированной в серверном идентификационном файле.
средство для определения, ассоциировано ли клиентское вычислительное устройство с целевой группой, определяющее, что клиентское вычислительное устройство ассоциировано с целевой группой, если клиентское вычислительное устройство содержит модуль авторизации, показывающий, что клиентское вычислительное устройство ассоциировано с целевой группой;
средство для передачи серверного идентификационного файла из сервера на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство ассоциировано с целевой группой, причем серверный идентификационный файл идентифицирует целевую группу;
средство для получения запроса на по меньшей мере одну структуру данных, хранимую на сервере, причем запрос содержит серверный идентификационный файл;
средство для определения, ассоциирована ли структура данных с целевой группой, идентифицированной в серверном идентификационном файле, в ответ на получение запроса;
средство для передачи структуры данных от сервера на клиентское вычислительное устройство, если определено, что структура данных ассоциирована с целевой группой, идентифицированной в серверном идентификационном файле.
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)
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)
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)
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 |
-
2003
- 2003-12-15 US US10/737,708 patent/US7574706B2/en not_active Expired - Fee Related
-
2004
- 2004-07-23 WO PCT/US2004/023975 patent/WO2005060388A2/en not_active Application Discontinuation
- 2004-07-23 CA CA2507172A patent/CA2507172C/en not_active Expired - Fee Related
- 2004-07-23 JP JP2006543794A patent/JP4914220B2/ja not_active Expired - Fee Related
- 2004-07-23 CN CNB2004800013326A patent/CN100416465C/zh not_active Expired - Fee Related
- 2004-07-23 MX MXPA05006646A patent/MXPA05006646A/es active IP Right Grant
- 2004-07-23 RU RU2005118556/09A patent/RU2357279C2/ru not_active IP Right Cessation
- 2004-07-23 EP EP04757283A patent/EP1723495A4/en not_active Withdrawn
- 2004-07-23 BR BR0406440-2A patent/BRPI0406440A/pt not_active Application Discontinuation
- 2004-07-23 NZ NZ540174A patent/NZ540174A/en not_active IP Right Cessation
- 2004-07-23 ZA ZA200503160A patent/ZA200503160B/en unknown
- 2004-07-23 KR KR1020057009449A patent/KR101098745B1/ko active IP Right Grant
- 2004-07-23 AU AU2004279170A patent/AU2004279170C1/en not_active Ceased
- 2004-07-23 TW TW093122089A patent/TWI359597B/zh not_active IP Right Cessation
- 2004-07-26 MY MYPI20042994A patent/MY150115A/en unknown
-
2005
- 2005-05-10 NO NO20052268A patent/NO20052268L/no unknown
Cited By (45)
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 |