RU2365983C2 - Система и способ для службы распространения программного обеспечения - Google Patents
Система и способ для службы распространения программного обеспечения Download PDFInfo
- Publication number
- RU2365983C2 RU2365983C2 RU2005116849/09A RU2005116849A RU2365983C2 RU 2365983 C2 RU2365983 C2 RU 2365983C2 RU 2005116849/09 A RU2005116849/09 A RU 2005116849/09A RU 2005116849 A RU2005116849 A RU 2005116849A RU 2365983 C2 RU2365983 C2 RU 2365983C2
- Authority
- RU
- Russia
- Prior art keywords
- computing device
- update
- software update
- client computing
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Изобретение относится к системе и способу для управления обновлениями программного обеспечения. Техническим результатом является обеспечение возможности получать соответствующие обновления посредством эффективного использования уменьшенной полосы частот. В соответствии с настоящим изобретением служба обновления программного обеспечения управляет доступом к обновлениям программного обеспечения, хранимым на серверах. В соответствии с другим вариантом служба обновления программного обеспечения осуществляет синхронизацию с клиентскими устройствами, чтобы идентифицировать применимые обновления. 5 н. и 17 з.п. ф-лы, 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). В соответствии с аспектом настоящего изобретения обеспечена системная и компонентная архитектура для обработки обновлений программного обеспечения. В соответствии с другим аспектом настоящего изобретения обеспечены протокол обновления и интерфейс для содействия санкционированию доступа (авторизации) и синхронизации клиентских устройств с помощью службы обновления. В соответствии с дополнительным аспектом настоящего изобретения обеспечены способ обновления компонента установки и различных установленных файлов с использованием дельта-корректировки. Специалист в соответствующей области техники оценит, тем не менее, что дополнительные аспекты настоящего изобретения также могут быть обеспечены в настоящей заявке. Дополнительно специалист в соответствующей области техники оценит, что каждый обозначенный аспект может рассматриваться индивидуально или в качестве части общего аспекта изобретения.
Система 100 обновления программного обеспечения на Фиг.1 является иллюстративной блок-схемой системы 100 обновления программного обеспечения в соответствии с настоящим изобретением. Описываемая в целом, система 100 обновления программного обеспечения может содержать одно или несколько клиентских вычислительных устройств 110, службу 120 обновления и внешнего поставщика 130 обновлений. Описываемая в целом, служба 120 обновления хранит и управляет распространением обновлений программного обеспечения, которые передают на клиентское вычислительное устройство 110 и устанавливают на нем. Обновления программного обеспечения могут быть поставлены службой 120 обновления или произвольным количеством внешних поставщиков 130 обновлений.
Клиентское вычислительное устройство 110, служба 120 обновления и внешний поставщик 130 обновлений с помощью электроники осуществляют обмен информацией по сети 101. Сеть может быть локальной сетью (ЛВС, LAN) или более крупной сетью такой, как глобальная сеть (ГВС, WAN) или Интернет. При использовании общеизвестного программного обеспечения система 100 обновления программного обеспечения может быть настроена с возможностью обмена документами, командами и другими известными типами информации, между клиентским вычислительным устройством 110 и серверами 121, 122, 123 и 124 службы 120 обновления. Как будет оценено специалистам в данной области техники и другими, система 100 обновления программного обеспечения, показанная на Фиг.1, является упрощенным примером одной подходящей системы для осуществления настоящего изобретения и что настоящее изобретение не является ограниченным данным примером.
Как описано более подробно ниже, один вариант осуществления службы 120 обновления содержит несколько серверов. Как показано на Фиг.1, служба 120 обновления включает в себя сервер 121 обновления для управления всеми процессами службы 120 обновления и координирования процессов серверов 121, 122, 123 и 124 службы 120 обновления. Сервер 122 авторизации формирует куки-данные авторизации согласно запрошенному клиентом и, в свою очередь, куки-данные авторизации используют, чтобы сформировать серверные куки-данные, которые разрешают клиентским компьютерам осуществлять доступ к обновлениям, поставляемым службой 120 обновления. Сервер 123 метаданных обеспечивает общую информацию, относящуюся к обновлениям, поставляемым службой 120 обновления. Сервер 123 метаданных дает возможность системе, соответствующей настоящему изобретению, идентифицировать конкретные обновления для конкретного типа клиентского компьютера или конкретной группы клиентских компьютеров. Сервер 124 загрузки обеспечивает один или несколько программных компонентов для доставки файлов данных, связанных с обновлениями программного обеспечения, поставляемыми службой 120 обновления.
Внешний поставщик 130 обновлений может включать в себя один или несколько серверов, которые распространяют обновления программного обеспечения. Внешний поставщик 130 обновлений может быть соотнесен (связан) с объектом, который поставляет программное обеспечение, обновления программного обеспечения, или другие данные, подлежащие распространению на группы клиентских компьютеров. Например, внешний поставщик 130 обновлений может быть связан со сторонним разработчиком программного обеспечения, желающим использовать службу 120 обновления, чтобы распространять обновления для одного или нескольких программных приложений. В другом примере внешний поставщик 130 обновлений может быть связан со службой 120 обновления программного обеспечения.
Клиентское вычислительное устройство 110 может быть любым вычислительным устройством, которое хранит и исполняет программные приложения 114. Клиентское вычислительное устройство 110 может быть создано из любого одного из ряда различных продуктов вычислительной техники, включая в них, но не ограничиваясь таковыми: персональные компьютеры (ПК, PC), персональные цифровые ассистенты (PDA), мобильные телефоны, двусторонние устройства персонального вызова, или пейджеры, и т.д. Как будет оценено средними специалистами в данной области техники или другими, архитектура клиентского вычислительного устройства 110 может принимать любую подходящую форму. Например, клиентское вычислительное устройство 110 может включать в себя сетевой интерфейс для обеспечения обмена информацией с сетью 101. Сетевой интерфейс может быть настроен с возможностью использования с любым соединением сети проводной или беспроводной связи, и может быть использован с помощью любого подходящего протокола управления передачей таким, как протокол TCP/IP. Кроме того, клиентское вычислительное устройство 110 может включать в себя блок обработки, или процессор, устройство отображения, и блок запоминающего устройства. Блок запоминающего устройства может хранить программный код, необходимый для функционирования клиентского вычислительного устройства 110, такой как операционная система 116. В дополнение, блок запоминающего устройства хранит компонент 112 управления обновлением, предназначенный для управления и исполнения процессов согласно настоящему изобретению.
Система 100 обновления программного обеспечения хранит программы, реализованные программно, которые при исполнении осуществляют настоящее изобретение. При исполнении система 100 обновления программного обеспечения хранит, управляет и выборочно (избирательно) передает обновления программного обеспечения. Как описано более полно ниже, среди многих других преимуществ настоящее изобретение обеспечивает механизм определения и выбора целевых групп клиентских вычислительных устройств, которые могут быть избранными для приема обновлений программного обеспечения. Настоящее изобретение также обеспечивает усовершенствованный механизм осуществления загрузки файлов данных, связанных с обновлениями программного обеспечения.
Для целей иллюстрирования настоящего изобретения предусмотрено подробное описание действующего примера настоящего изобретения. В описании действующего (рабочего) примера сделана ссылка на обновления программного обеспечения, которые могут относиться к конкретному обновлению программного приложения, например, к обновлению версии 6.0 программы воспроизведения мультимедийных данных на версию 7.0 программы воспроизведения мультимедийных данных. Как будет оценено средними специалистами в данной области техники, такое обновление программного обеспечения может включать в себя передачу и установку ряда файлов данных, связанных с обновлением программного обеспечения. Таким образом, для целей иллюстрирования настоящего изобретения различие между обновлением программного обеспечения и отдельным файлом данных, содержащим обновление программного обеспечения.
Ниже со ссылкой на Фиг.2-6 описано иллюстративное взаимодействие между компонентами системы 100 обновления программного обеспечения, осуществляемое, чтобы обновить один или несколько файлов на клиентском вычислительном устройстве 110. Со ссылкой на Фиг.2, службу обновления программного обеспечения инициируют посредством передачи информации об обновлении программного обеспечения одним или несколькими внешними поставщиками 130 обновлений. Как описано выше, внешние поставщики 130 обновлений могут быть связаны с системой 100 обновления программного обеспечения. В качестве альтернативы, информация об обновлении программного обеспечения может быть передана сторонними внешними поставщиками 130 обновлений. В иллюстративном варианте осуществления настоящего изобретения информация об обновлении программного обеспечения может включать в себя программный код, используемый для обновления файла, программный код, используемый для замены файла, различные правила для определения применимости обновлений программного обеспечения, и/или визуального представления информации, описывающей обновление программного обеспечения. Передача информации об обновлении программного обеспечения может быть завершена в любое время и необязательно должна быть одновременной с инициированием взаимодействий других проиллюстрированных компонентов обновления программного обеспечения.
После приема от внешнего поставщика 130 обновлений информации об обновлении программного обеспечения служба 120 обновления формирует один или несколько блоков данных, чтобы содействовать передаче информации обновления. Данные могут включать в себя файл хранилища корректировок, который соответствует набору программных дельта-корректировок для обновления различных версий файла. Данные могут также включать в себя декларацию (именование) хранилища корректировок, которая соответствует индексу, отображающему конкретные версии файлов на соответствующую дельта-корректировку, находящуюся в файле хранилища корректировок. Данные дополнительно могут включать в себя саморазворачивающийся файл, соответствующий информации, которую агент обновления будет использовать для того, чтобы запрашивать и устанавливать данные обновления конкретного программного обеспечения, как описано более подробно ниже. Специалист в данной области техники оценит, что формирование файла хранилища корректировок, декларации хранилища корректировок и саморазворачивающихся файлов может быть выполнимым в любой момент времени и необязательно должно быть одновременным с взаимодействиями других проиллюстрированных компонентов.
Чтобы инициировать передачу клиентам информации об обновлении программного обеспечения, клиентское вычислительное устройство 110 инициирует к службе 120 обновления запрос аутентификации. В иллюстративном варианте осуществления настоящего изобретения запрос аутентификации соответствует взаимодействию по протоколу обновления между клиентским вычислительным устройством 110 и службой 120 обновления, который описан более подробно ниже. После завершения аутентификации служба 120 обновления передает куки-данные аутентификации на клиентское вычислительное устройство 110. На Фиг.3 показано, что прошедшее аутентификацию клиентское вычислительное устройство 120 затем инициирует синхронизацию доступных обновлений с сервером 120 обновлений. В иллюстративном варианте осуществления настоящего изобретения запрос синхронизации также соответствует взаимодействию по протоколу обновления между клиентским вычислительным устройством 110 и службой 120 обновления, который описан более подробно ниже. После завершения синхронизации клиентское вычислительное устройство 110 принимает информацию всех применимых обновлений программного обеспечения и информацию, описывающую обновления. Однако в иллюстративном варианте осуществления настоящего изобретения не загружается программный код, чтобы создать экземпляр обновления.
Со ссылкой на Фиг.3, в некоторый момент в течение процесса обновления принимают выборку обновлений, подлежащих установке. В иллюстративном варианте осуществления настоящего изобретения пользователю может быть представлена информация об обновлении программного обеспечения, принятая в течение синхронизации, и предложено выбрать подходящее обновление. В качестве альтернативы, клиентское вычислительное устройство 110 может быть настроено таким образом, чтобы автоматически выбирать все применимые обновления программного обеспечения. Дополнительно, клиентское вычислительное устройство 110 также может содержать некоторые правила, которые позволяют ему автоматически выбирать поднабор доступных обновлений программного обеспечения. Дополнительно пользователь может инициировать выборку обновления посредством обмена информацией со службой 120 обновления, например, через web-страницу Интернет.
Со ссылкой на Фиг.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, имеющих конкретную (торговую) марку и конкретное аппаратное устройство, и ограничивать передачу конкретной загрузки программного обеспечения на целевую группу.
В иллюстративном варианте осуществления настоящего изобретения механизму расширяемого определения целевого объекта содействует использование программных компонентов ("подключаемые дополнения авторизации"), которые задают принадлежность клиентского вычислительного устройства к одной или несколько целевым группам. Наличие "дополнения авторизации" на клиентском вычислительном устройстве 110 задает, принадлежит ли клиентское вычислительное устройство к специфической целевой группе, относящейся к дополнению авторизации. Целевая группа, например, может включать в себя все компьютеры, имеющие действующий идентификационный номер программного продукта ("ИДПП") для конкретного программного приложения. В таком примере, как описано подробно ниже в отношении Фиг.8, дополнение 826 авторизации может быть установлено на клиенте, чтобы считывать ИДПП из модуля памяти клиентского вычислительного устройства и передавать полученный ИДПП на соответствующее ИДПП-дополнение 829 сервера. Соответствующее ИДПП-дополнение, также обозначаемое при этом как блок 829 проверки достоверности ИДПП, использует один или несколько способов, чтобы определить, является ли полученный ИДПП действительным. Как только определено, что ИДПП, хранимый на клиентском вычислительном устройстве 110, является действительным, сервер формирует серверные куки-данные, которые указывают, что клиентское вычислительное устройство 110 является элементом целевой группы, имеющей действительный ИДПП. В другом примере целевая группа может включать в себя клиентские вычислительные устройства, которые обозначены как компьютеры бета-версии (опытной эксплуатации).
В иллюстративном варианте осуществления настоящего изобретения сервер 122 авторизации, относящийся к службе 120 обновления программного обеспечения, содержит ряд серверных дополнений авторизации, который задает набор целевых групп клиентских вычислительных устройств, которые сервер авторизации будет распознавать. Каждое серверное дополнение авторизации содержит компоненты для обмена данными с соответствующим клиентским дополнением авторизации, хранимым на клиентском вычислительном устройстве 110. Подобным образом, каждый клиентское вычислительное устройство 110 включает в себя одно или несколько клиентских дополнений авторизации, которые идентифицируют целевые группы, к которым принадлежит клиент. В иллюстративном варианте осуществления настоящего изобретения клиентские дополнения авторизации могут быть установлены на каждом клиентском вычислительном устройстве в течение установки или обновления программного приложения, например, установки или обновления операционной системы. Дополнительно, серверные дополнения авторизации могут быть динамически установлены или удалены администратором, желающим управлять доступом к обновлениям программного обеспечения. Дополнения авторизации, хранимые на клиентском вычислительном устройстве 110, и сервер 122 авторизации могут быть фактическим программным дополнением, или дополнения авторизации могут быть жестко запрограммированы в динамически связываемые библиотеки.
Как показано на Фиг.8, сервер 122 авторизации содержит три примерных серверных дополнения авторизации: (1) первое серверное дополнение 828 авторизации, задающее целевую группу, которая включает в себя все компьютеры (далее в документе "целевая группа Все Компьютеры"); (2) второе серверное дополнение 829 авторизации, задающее целевую группу, которая включает в себя компьютеры, имеющие действительный ИДПП (в дальнейшем "целевая группа ИДПП”); и (3) третье серверное дополнение 830 авторизации, задающее целевую группу, которая включает в себя компьютеры бета-тестирования (в дальнейшем "целевая группа Бета"). Также на Фиг.8 показано, что клиентское вычислительное устройство 110 содержит два клиентских дополнения авторизации: (1) первое клиентское дополнение 825 авторизации, указывающее, что клиентское вычислительное устройство 110 является элементом целевой группы «Все Компьютеры»; и (2) второе клиентское дополнение 826 авторизации, указывающее, что клиентское вычислительное устройство 110 является элементом целевой группы ИДПП. В этом примере клиентское вычислительное устройство 110 не содержит дополнение авторизации, указывающее, что оно является элементом целевой группы Бета. Как будет оценено средними специалистами в данной области техники, каждое из клиентских дополнений 825 и 826 авторизации может быть настроено, чтобы исполнять одну или несколько функций на клиентском вычислительном устройстве 110, чтобы способствовать процессу проверки достоверности. Например, второе клиентское дополнение 826 авторизации может быть настроено для исследования запоминающего устройства клиентского вычислительного устройства 110 для того, чтобы проверить или получить ИДПП для установленного программного приложения.
Как показано на Фиг.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 авторизации формирует вторые куки-данные авторизации, связанные с целевой группой ИДПП, поскольку второе клиентское дополнение 826 авторизации и второе серверное дополнение 829 авторизации оба связаны с целевой группой ИДПП. Третьи куки-данные авторизации не формируют, поскольку клиентское вычислительное устройство 110 не имеет дополнения авторизации, указывающего, что оно является элементом целевой группы Бета.
Как будет также оценено специалистами в данной области техники, одно осуществление операций обработки на этапе 805 может включать в себя использование общеизвестного программного метода, обозначаемого в данной области техники как "GetAuthCookie" («Получить элемент данных авторизации»). Будет также оценено, что формирование каждых куки-данных авторизации может включать в себя дополнительную обработку. Например, второе клиентское дополнение 826 авторизации может быть настроено с возможностью проверки информации, хранимой в клиентском системном реестре, чтобы извлекать ИДПП и включать ИДПП в куки-данные авторизации. В других примерах, процесс, соответствующий этапу 805, может включать в себя процессы для взаимодействия с другими компьютерами или устройствами. Например, клиентское дополнение авторизации может обмениваться информацией с устройством таким, как звуковая плата, сканирующее устройство, видео плата, и т.д., для того, чтобы получить тип и модель устройства. В других неограничивающих примерах клиентское дополнение авторизации может обмениваться информацией с устройством (обеспечения) безопасности, например, считывателем отпечатков пальцев, чтобы получить информацию, описывающую пользователя.
В целом клиентское дополнение авторизации может считывать информацию о конфигурации из любого компонента клиентского вычислительного устройства 110 или любого другого вычислительного устройства, связанного для обмена информацией с клиентским вычислительным устройством 110. В других примерах клиентское дополнение авторизации может быть настроено с возможностью использования одного или нескольких общедоступных или скрытых (секретных) программных интерфейсов приложений (API), чтобы собирать и шифровать информацию от клиента, который будет проверен посредством соответствующего серверного дополнения. В таких примерах, дополнение 826 проверки достоверности ИДПП использует секретный API, чтобы зашифровать ИДПП клиента для передачи зашифрованного ИДПП на сервер для расшифровывания и проверки достоверности. В других вариантах осуществления другие клиентские дополнения авторизации могут использовать результаты биометрических измерений, например, считыватель отпечатков пальцев или "отпечаток голоса", для того, чтобы создать куки-данные авторизации, которые подлежат передаче на сервер для проверки достоверности. В следующем примере клиентское дополнение авторизации может вызывать услугу сети Web или любую другую услугу, чтобы передать мандат (или учетную запись) авторизации или любой другой тип данных на сервер 122 авторизации.
В иллюстративном варианте осуществления настоящего изобретения каждые куки-данные авторизации включают в себя строку, которая идентифицирует соответственную целевую группу. Например, строка может указывать, что конкретные куки-данные авторизации связаны с целевой группой ИДПП. Каждые куки-данные авторизации также включают в себя раздел данных для передачи данных между клиентом и сервером. Например, куки-данные авторизации, связанные с целевой группой ИДПП, могут иметь раздел данных, который содержит фактический ИДПП. Как будет оценено средними специалистами в данной области техники, раздел данных может содержать любой тип данных, которые сохраняют в любом формате, например, массив байтов. Например, если дополнения на клиенте и сервере требуют передач открытых и секретных ключей, такие данные могут быть зашифрованы в разделе данных одного или нескольких куки-данных авторизации.
Как только клиентское вычислительное устройство 110 сформирует куки-данные авторизации для каждой пары соответствующих клиентских и серверных дополнений авторизации, клиентское вычислительное устройство передает сформированные куки-данные авторизации на сервер 122 авторизации. Как показано на Фиг.8, клиентское вычислительное устройство 110 передает куки-данные авторизации в куки-запросе 806. Куки-запрос 806 включает в себя любой подходящий формат для передачи массива куки-данных авторизации, сформированных в процессе, соответствующем этапу 805. Одно осуществление этой части метода 702 авторизации может включать в себя использование общеизвестного программного метода, обозначаемого в данной области техники как "GetCookie" (Получить элемент идентификационных данных).
В одном варианте осуществления куки-запрос 806 также включает в себя другие куки-данные сервера авторизации, сохраняемые на запоминающем устройстве клиентского вычислительного устройства 110. Как станет понятно из последующего описания, запоминающее устройство клиентского вычислительного устройства 110 может хранить предыдущие куки-данные сервера авторизации, которые были созданы в ходе предыдущих исполнений программы 700 авторизации. Предусматривая хранимые куки-данные сервера авторизации в куки-запросе 806, клиентское вычислительное устройство 110 будет способно поддерживать его собственные привилегии доступа, которые предоставлялись в ходе предыдущих исполнений подпрограммы 702 авторизации. В данном примере, поскольку нет куки-данных сервера авторизации, хранимых на клиенте, куки-запрос 806 включает в себя первые куки-данные авторизации, связанные с «целевой группой Все Компьютеры» и вторые куки-данные авторизации, связанные с целевой группой ИДПП.
Затем, как показано на этапе 807, в ответ на прием куки-запроса 806 сервер 122 авторизации формирует серверные куки-данные. В одном варианте осуществления для каждых принятых куки-данных авторизации осуществляют вызов соответствующего серверного дополнения авторизации, чтобы сформировать серверные куки-данные. Эти серверные куки-данные, сформированные посредством каждого серверного дополнения авторизации, включают в себя идентификатор для каждой целевой группы, идентифицированной в принятых куки-данных авторизации. В данном примере, поскольку куки-запрос 806 включает в себя первые куки-данные авторизации, связанные с «целевой группой Все Компьютеры», и вторые куки-данные авторизации, связанные с целевой группой ИДПП, сервер 122 авторизации формирует серверные куки-данные, содержащие идентификатор для этих соответствующих целевых групп. На сервере 122 авторизации серверные куки-данные затем объединяют с предыдущими серверными куки-данными, если предыдущие серверные куки-данные приняты в куки-запросе 806, чтобы сформировать новые серверные куки-данные. В одном варианте осуществления новые серверные куки-данные шифруют с помощью способа шифрования с открытым ключом, такого, как тройной DES (стандарт шифрования данных).
В иллюстративном варианте осуществления настоящего изобретения серверные куки-данные могут включать в себя зашифрованную информацию, которая идентифицирует одну или несколько соответственных (ему) целевых групп. Кроме того, серверные куки-данные могут включать в себя данные о сроке действия, которые сохраняют и в формате открытого текста, и в зашифрованном формате. Данные о сроке действия, хранимые в формате открытого текста, использует клиентское вычислительное устройство 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®. Как также описано ниже, набор предварительных условий может идентифицировать одно или несколько обновлений, которые должны быть предварительно установленными. Например, как описано более подробно ниже со ссылкой на Фиг.9, индивидуальное обновление может содержать предварительное условие, которое содержит перечень других обновлений, необходимых для надлежащей установки индивидуального обновления. В других примерах, как также показано на Фиг. 9, набор предварительных условий может включать в себя использование логических операторов, чтобы задавать более сложные правила для предварительных условий.
Командный компонент также содержит код, например, логический флажок, который указывает, есть ли другие обновления, которые зависят от конкретного обновления. Для иллюстративных целей обновление рассматривают являющимся обновлением «ЛИСТ» (LEAF), если нет других обновлений, которые зависят от данного обновления. Логический флажок, который используют, чтобы указать, является ли обновление LEAF-обновлением, динамически модифицирует сервер 123 метаданных по мере того, как соответствующие обновления добавляют или удаляют.
Компонент локализованных данных для каждого обновления включает в себя общую информацию, описывающую обновление. Например, компонент локализованных данных может включать в себя информацию, описывающую функциональные возможности и эффект обновления. Компонент локализованных данных также может включать в себя текстовое описание процедур установки обновления. Кроме того, компонент локализованных данных может включать в себя любые другие данные или информацию, относящуюся к обновлению. Например, локализованные данные могут указывать, что обновление является высокоприоритетным обновлением. В другом примере локализованные данные могут обеспечивать специальные установочные сообщения, например, сообщение, которое указывает, что обновление не может быть установлено вместе с другими обновлениями программного обеспечения. Локализованная информация может быть в формате, который предусматривает визуальное представление содержащейся в нем информации пользователю.
Компонент данных для каждого обновления включает в себя один или несколько потоков двоичных данных, соответствующих обновлению. В одном варианте осуществления компонент данных каждого обновления может быть связан с одним или несколькими файлами данных, такими как исполняемый файл, документ, подключаемая библиотека, и т.д. Как описано более подробно ниже, каждое обновление может быть связано с комбинацией файлов данных, каждый из которых содействует фактическому обновлению, установке или модификации программного обеспечения, используемого клиентом. Например, установке обновления может содействовать использование одиночного CAB-файла-кабинет, включающего всю информацию, необходимую для выполнения выбранного обновления. В качестве альтернативы, установке обновления может содействовать использование набора индивидуальных обновлений, используемых для обновления одного или нескольких файлов, хранимых на клиентском вычислительном устройстве.
В иллюстративном варианте осуществления настоящего изобретения обновления программного обеспечения могут быть скомпонованы в иерархию, которая дает возможность управляемого распространения обновлений программного обеспечения. Описываемая в целом иерархия обновлений задает отношения между обновлениями и конкретно указывает, какие обновления зависят от других обновлений. Для иллюстративных целей предусмотрен и показан на Фиг.9 примерный набор обновлений. Как показано, иерархия примерных обновлений 900 включает в себя базовый набор обновлений 901, второй набор обновлений 902 и третий набор обновлений 903. В целом, каждое обновление в базовом наборе обновлений 901 не имеет предварительного условия, которое требует установки других обновлений. Однако шестое обновление 921 содержит предварительное условие, которое требует установки первого обновления 911, второго обновления 912 и третьего обновления 913. Седьмое обновление 922 содержит предварительное условие, которое требует установки четвертого обновления 914. Восьмое обновление 931 содержит предварительное условие, которое требует установки шестого обновления 921 и пятого обновления 915. Следовательно, восьмое обновление 931 также требует установки первого обновления 911, второго обновления 912, и третьего обновления 913. С целями иллюстрирования настоящего изобретения задано, что все обновления примерного набора обновлений 900 являются (все) связанными с целевой группой «Все Компьютеры» и целевой группой ИДПП.
На Фиг.9 также показано, и как описано более подробно ниже, что каждое обновление содержит правило применимости, которое задает условия применимости для установки обновления. Например, первое обновление 911 требует установки англоязычной версии операционной системы. Второе обновление 912 требует установки Windows® XP вместе с версией 1 служебного пакета 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 метаданных и обработаны им для того, чтобы идентифицировать другие связанные обновления, которые являются доступными для установки на клиентском вычислительном устройстве 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 связаны с целевыми группами ИДПП и «Все Компьютеры», то все выбранные обновления посылают на клиентское вычислительное устройство 110.
Затем сервер 123 метаданных передает на клиентское вычислительное устройство 110 выбранные обновления в ответе 1053 (на запрос) синхронизации. В целом, каждый ответ синхронизации включает в себя командный компонент каждого обновления, посылаемого сервером 120. Таким образом, в данном примере, первый ответ 1053 синхронизации включает в себя командные компоненты для обновлений, обозначенных 911, 912, 913, 914, и 915. В одном варианте осуществления каждый ответ синхронизации не включает в себя компонент локализованных данных или компонент данных для каждого обновления.
Затем, как показано на этапе 1054, клиентское вычислительное устройство 110 обрабатывает командные компоненты каждого принятого обновления для того, чтобы определить, может ли быть удовлетворено условие, заданное в правилах применимости. Со ссылкой вновь на Фиг.9, клиентское вычислительное устройство 110 обрабатывает командные компоненты принятых обновлений 911-915. Для целей иллюстрирования настоящего изобретения в этом примере задано, что операционной системой клиентского вычислительного устройства 110 является установка системы англоязычной версии Windows® XP SP1. Также задано, что клиентским вычислительным устройством 110 является ПК Dell PC и рабочим процессором является 32-разрядный X86. Таким образом, в ходе обработки командных компонентов примерного набора обновлений клиентское вычислительное устройство 110 определит, что условие, заданное в первом обновлении 911, будет удовлетворено, поскольку компьютер содержит англоязычную OS. Условие, заданное во втором обновлении 912, будет удовлетворено, поскольку операционной системой является Windows® версии 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, на котором сервер выбирает восьмое обновление 931. Восьмое обновление 931 выбирают, поскольку запрос 1060 синхронизации указывает, что пятое и шестое обновления 915 и 921 являются установленными в клиентском вычислительном устройстве 110. Учитывая, что восьмое обновление 931 связано с теми же целевыми группами, которые идентифицированы в куки-данных сервера авторизации, командный компонент восьмого обновления 931 передают на клиентское вычислительное устройство 110 в другом ответе 1062. Восьмое обновление 931 затем обрабатывают на этапе 1063 способом, подобным процессу согласно этапам 1054 и 1059. Так как все принятые обновления ответа 1062 являются LEAF-обновлениями, последующий запрос синхронизации не посылают обратно на сервер 123 метаданных.
В клиентском вычислительном устройстве 110 после того, как определено, что все принятые обновления не являются LEAF-обновлениями, или если нет обновлений, принятых в ответе 1062, подпрограмма 1050 синхронизации от клиентского вычислительного устройства 110 передает запрос 1064 синхронизации драйвера на сервер 123 метаданных. Как будет оценено средним специалистом в данной области техники, запрос 1064 синхронизации драйвера может включать в себя информацию, описывающую все аппаратное обеспечение, установленное в клиентском вычислительном устройстве 110, и информацию, описывающую установленное программное обеспечение. Подобно предшествующим запросам синхронизации (1051, 1055 и 1060) программного обеспечения запрос 1064 синхронизации драйвера может передавать установленные обновления на сервер. Кроме того, все обновления драйвера, кэшированные в данный момент на клиенте, если таковые имеются, передают на сервер.
В ответ на прием запроса 1064 синхронизации драйвера, сервер 123 метаданных осуществляет ответ, посылая все обновления драйвера, которые применяют к клиентскому вычислительному устройству 110, еще не кэшированные на клиенте. Обновление драйвера посылают в ответе 1065 на клиентское вычислительное устройство 110, если его предварительные условия и условия применимости удовлетворены. Ответ 1065, передающий обновления драйвера, предпочтительно передает командный компонент каждого обновления. Обновления драйвера затем записывают в кэш обновлений клиентского вычислительного устройства.
После приема ответа 1065, содержащего обновления драйвера, подпрограмма 1050 синхронизации посылает запрос 1066 локализованных данных для каждого из принятых обновлений программного и аппаратного обеспечения. В качестве итога вышеприведенного компонент локализованных данных каждого обновления включает в себя общую информацию, описывающую обновление. Например, компонент локализованных данных может включать в себя информацию, описывающую функциональные возможности и эффект обновления. Компонент локализованных данных может также включать в себя текстовое описание процедур установки обновления. Кроме того, компонент локализованных данных может включать в себя любые другие данные или информацию, относящуюся к обновлению.
Таким образом, после приема запроса 1066 локализованных данных для каждого из принятых обновлений программного и аппаратного обеспечения сервер метаданных 123 осуществляет ответ, посылая все локализованные данные для всех принятых обновлений программного и аппаратного обеспечения, хранимых в кэше обновлений клиента. Как только приняты, локализованные данные могут быть обработаны программным приложением для того, чтобы определить, какое из обновлений должно быть установлено. В качестве альтернативы, принятые локализованные данные могут быть визуально представлены пользователю, чтобы информировать пользователя обо всех обновлениях, которые являются доступными клиентскому вычислительному устройству 110. В одном варианте осуществления принятые локализованные данные могут быть отображены на web-странице. В данном примере локализованные данные могут быть приняты клиентом для шестого и восьмого обновлений 921 и 931. Если локализованные данные хранятся в базовых обновлениях 911, 912, 913 и 915, локализованные данные для этих обновлений будут также приняты клиентом.
На Фиг.11 проиллюстрирован один пример web-страницы 1100, отображающей пример локализованных данных, связанных с обновлениями, которые являются доступными клиенту. Для иллюстративных целей web-страница 1100 содержит первое подробное описание 1105 обновления и второе подробное описание 1106 другого обновления. Также показано, что каждое обновление является соответственно связанным с механизмами (средствами) 1103 и 1104 выборки, предназначенными для приема пользовательской выборки обновлений. Также показано, что web-страница 1100 скомпонована с управляющей кнопкой 1101, чтобы дать возможность пользователю управлять передачей выборки обновлений на сервер, такой как сервер 123 метаданных или сервер 124 загрузки.
В одном аспекте настоящего изобретения клиент выполняет набор процессов, чтобы повысить значимость визуального представления web-страницы 1100. Например, клиентское вычислительное устройство 110 исследует локализованные данные для каждого обновления, чтобы определить, является ли конкретное обновление высокоприоритетным. Такой функциональной возможности можно содействовать, помещая текст в локализованные данные или в другой компонент конкретного обновления, который указывает, что конкретное обновление является высокоприоритетным обновлением или экстренным (аварийным) обновлением. Если клиентское вычислительное устройство 110 выявляет высокоприоритетное обновление или экстренное обновление, клиент отображает высокоприоритетное обновление в видимой части web-страницы 1100, например в верхней части страницы. Кроме того, клиент может формировать визуальный индикатор, например специальное текстовое сообщение 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 обновления с запросом на непосредственную доставку НТТР данных в ответ. В этом подходе служба 120 обновления может использовать всю полную полосу частот, доступную для передачи запрошенных данных на агент 118 обновления. Во втором подходе, названном как автоматическое обновление, запрос обновления посылают службе 120 обновления с запросом на косвенную доставку НТТР данных в ответ. В этом ответе служба 120 обновления передает запрошенные данные как фоновый процесс. Фоновый процесс может быть осуществлен таким образом, чтобы использовать минимальный объем доступной полосы частот. Дополнительно, фоновый процесс может быть прерван в течение процесса загрузки и повторно запущен в следующий доступный момент времени. Описание системы и способа передачи запрошенных данных посредством фонового процесса описаны в совместно переданной и рассматриваемой одновременно заявке на патент США за номером №09/505,735, озаглавленной «System and Method for Transferring Data Over a Network», поданной 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 (22)
1. Способ обмена информацией между клиентским вычислительным устройством и серверным вычислительным устройством, содержащий этапы:
a) выдают посредством клиентского вычислительного устройства запрос синхронизации, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения;
b) принимают посредством клиентского вычислительного устройства командные компоненты множества обновлений программного обеспечения в ответ на запрос синхронизации, причем каждый командный компонент содержит по меньшей мере одно правило применимости, при этом упомянутое по меньшей мере одно правило применимости определяет по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки выбранного обновления программного обеспечения, ассоциированного с упомянутым командным компонентом;
c) сохраняют посредством клиентского вычислительного устройства упомянутый командный компонент каждого обновления программного обеспечения в клиентском вычислительном устройстве;
d) запрашивают посредством клиентского вычислительного устройства компонент локализованных данных по меньшей мере первого из обновлений программного обеспечения на основании, по меньшей мере частично, определения клиентским вычислительным устройством, что упомянутое по меньшей мере одно условие соответствующего правила применимости удовлетворяется, и
е) принимают в клиентском вычислительном устройстве компонент локализованных данных упомянутого первого обновления программного обеспечения, причем каждый компонент локализованных данных включает в себя дополнительную информацию, описывающую соответствующее обновление программного обеспечения.
a) выдают посредством клиентского вычислительного устройства запрос синхронизации, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения;
b) принимают посредством клиентского вычислительного устройства командные компоненты множества обновлений программного обеспечения в ответ на запрос синхронизации, причем каждый командный компонент содержит по меньшей мере одно правило применимости, при этом упомянутое по меньшей мере одно правило применимости определяет по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки выбранного обновления программного обеспечения, ассоциированного с упомянутым командным компонентом;
c) сохраняют посредством клиентского вычислительного устройства упомянутый командный компонент каждого обновления программного обеспечения в клиентском вычислительном устройстве;
d) запрашивают посредством клиентского вычислительного устройства компонент локализованных данных по меньшей мере первого из обновлений программного обеспечения на основании, по меньшей мере частично, определения клиентским вычислительным устройством, что упомянутое по меньшей мере одно условие соответствующего правила применимости удовлетворяется, и
е) принимают в клиентском вычислительном устройстве компонент локализованных данных упомянутого первого обновления программного обеспечения, причем каждый компонент локализованных данных включает в себя дополнительную информацию, описывающую соответствующее обновление программного обеспечения.
2. Способ по п.1, дополнительно содержащий повторение посредством клиентского вычислительного устройства этапов (а)-(е), если командный компонент первого обновления программного обеспечения обеспечивает индикацию того, что дополнительные обновления программного обеспечения являются доступными для обработки клиентским вычислительным устройством.
3. Способ по п.1, в котором:
клиентское вычислительное устройство вызывает приложение для генерации отображения компонента локализованных данных первого обновления программного обеспечения на устройстве отображения после приема компонента локализованных данных.
клиентское вычислительное устройство вызывает приложение для генерации отображения компонента локализованных данных первого обновления программного обеспечения на устройстве отображения после приема компонента локализованных данных.
4. Способ по п.1, дополнительно содержащий:
принимают посредством клиентского вычислительного устройства команду для запуска передачи файла данных, связанного с первым обновлением программного обеспечения; и
выдают посредством клиентского вычислительного устройства команду на передачу файла данных, связанного с первым обновлением программного обеспечения; и
принимают посредством клиентского вычислительного устройства загрузку файла данных.
принимают посредством клиентского вычислительного устройства команду для запуска передачи файла данных, связанного с первым обновлением программного обеспечения; и
выдают посредством клиентского вычислительного устройства команду на передачу файла данных, связанного с первым обновлением программного обеспечения; и
принимают посредством клиентского вычислительного устройства загрузку файла данных.
5. Способ по п.1, в котором сохранение командного компонента каждого обновления программного обновления в клиентском вычислительном устройстве содержит сохранение командного компонента каждого обновления программного обновления в качестве установленного обновления программного обновления, если клиентское вычислительное устройство содержит по меньшей мере один компонент, который удовлетворяет упомянутому по меньшей мере одному условию по меньшей мере одного правила применимости, сохраненного в обновлении программного обеспечения, и в котором способ дополнительно содержит этапы:
включение посредством клиентского вычислительного устройства идентификатора установленного обновления программного обеспечения в запрос синхронизации, если клиентское вычислительное устройство хранит это установленное обновление программного обеспечения.
включение посредством клиентского вычислительного устройства идентификатора установленного обновления программного обеспечения в запрос синхронизации, если клиентское вычислительное устройство хранит это установленное обновление программного обеспечения.
6. Способ по п.1, в котором сохранение командного компонента каждого обновления программного обновления в клиентском вычислительном устройстве содержит этапы:
сохраняют посредством клиентского вычислительного устройства командные компоненты обновлений программного обеспечения в клиентском вычислительном устройстве в качестве неуспешных обновлений программного обеспечения, если клиентское вычислительное устройство определяет, что по меньшей мере одно условие упомянутого по меньшей мере одного правила применимости, хранимого в каждом соответствующем обновлении программного обеспечения, не выполнено.
сохраняют посредством клиентского вычислительного устройства командные компоненты обновлений программного обеспечения в клиентском вычислительном устройстве в качестве неуспешных обновлений программного обеспечения, если клиентское вычислительное устройство определяет, что по меньшей мере одно условие упомянутого по меньшей мере одного правила применимости, хранимого в каждом соответствующем обновлении программного обеспечения, не выполнено.
7. Способ по п.1, в котором дополнительно:
включают посредством клиентского вычислительного устройства идентификатор любых неуспешных обновлений программного обеспечения в запрос синхронизации, причем прием командных компонентов обновлений программного обеспечения в ответ на этот запрос синхронизации содержит прием командных компонентов только обновлений программного обеспечения, которые являются не относящимися к неуспешным обновлениям программного обеспечения.
включают посредством клиентского вычислительного устройства идентификатор любых неуспешных обновлений программного обеспечения в запрос синхронизации, причем прием командных компонентов обновлений программного обеспечения в ответ на этот запрос синхронизации содержит прием командных компонентов только обновлений программного обеспечения, которые являются не относящимися к неуспешным обновлениям программного обеспечения.
8. Способ обмена информацией между клиентским обрабатывающим устройством и серверным обрабатывающим устройством в системе распределенной обработки данных, содержащий этапы:
a) выдают посредством клиентского обрабатывающего устройства запрос авторизации, причем запрос авторизации содержит идентификатор клиентского модуля авторизации, связанного с целевой группой;
b) принимают посредством клиентского обрабатывающего устройства серверные куки-данные, идентифицирующие упомянутую целевую группу;
c) выдают посредством клиентского обрабатывающего устройства запрос обновления на обновления программного обеспечения, причем запрос обновления содержит серверные куки-данные;
d) принимают посредством клиентского обрабатывающего устройства командный компонент для по меньшей мере одного обновления программного обеспечения, связанного с целевой группой, причем каждый командный компонент содержит по меньшей мере одно правило применимости, при этом упомянутое по меньшей мере одно правило применимости определяет по меньшей мере одно условие, требуемое клиентским обрабатывающим устройством до установки выбранного обновления программного обеспечения, ассоциированного с упомянутым командным компонентом;
e) запрашивают посредством клиентского обрабатывающего устройства компонент локализованных данных для по меньшей мере первого из обновлений программного обеспечения на основании, по меньшей мере частично, определения посредством клиентского обрабатывающего устройства, что упомянутое по меньшей мере одно условие соответствующего правила применимости удовлетворено; и
f) принимают посредством клиентского обрабатывающего устройства компонент локализованных данных упомянутого первого обновления программного обеспечения, причем упомянутый компонент локализованных данных включает в себя дополнительную информацию, описывающую это первое обновление программного обеспечения.
a) выдают посредством клиентского обрабатывающего устройства запрос авторизации, причем запрос авторизации содержит идентификатор клиентского модуля авторизации, связанного с целевой группой;
b) принимают посредством клиентского обрабатывающего устройства серверные куки-данные, идентифицирующие упомянутую целевую группу;
c) выдают посредством клиентского обрабатывающего устройства запрос обновления на обновления программного обеспечения, причем запрос обновления содержит серверные куки-данные;
d) принимают посредством клиентского обрабатывающего устройства командный компонент для по меньшей мере одного обновления программного обеспечения, связанного с целевой группой, причем каждый командный компонент содержит по меньшей мере одно правило применимости, при этом упомянутое по меньшей мере одно правило применимости определяет по меньшей мере одно условие, требуемое клиентским обрабатывающим устройством до установки выбранного обновления программного обеспечения, ассоциированного с упомянутым командным компонентом;
e) запрашивают посредством клиентского обрабатывающего устройства компонент локализованных данных для по меньшей мере первого из обновлений программного обеспечения на основании, по меньшей мере частично, определения посредством клиентского обрабатывающего устройства, что упомянутое по меньшей мере одно условие соответствующего правила применимости удовлетворено; и
f) принимают посредством клиентского обрабатывающего устройства компонент локализованных данных упомянутого первого обновления программного обеспечения, причем упомянутый компонент локализованных данных включает в себя дополнительную информацию, описывающую это первое обновление программного обеспечения.
9. Способ по п.8, в котором запрос авторизации включает в себя данные предварительно сохраненных серверных куки-данных, и при этом серверные куки-данные, выдаваемые серверным обрабатывающим устройством, включают в себя данные предварительно сохраненных серверных куки-данных.
10. Способ по п.8, в котором определяют, что клиентское обрабатывающее устройство является связанным с целевой группой, если серверный модуль авторизации в обмене информацией с серверным обрабатывающим устройством идентифицирует ту же самую целевую группу, связанную с клиентским модулем авторизации.
11. Способ по п.8, в котором серверные куки-данные содержат срок действия, причем прием командного компонента каждого обновления программного обеспечения включает в себя прием командного компонента только если срок действия серверных куки-данных не истек.
12. Способ по п.11, в котором серверные куки-данные хранят срок действия в формате открытого текста и в зашифрованном формате, и при этом серверные куки-данные содержат зашифрованные данные, идентифицирующие по меньшей мере одну целевую группу, причем способ дополнительно содержит этапы:
получают посредством клиентского обрабатывающего устройства срок действия из серверных куки-данных, причем клиентское обрабатывающее устройство получает срок действия из срока действия, хранимого в формате открытого текста; и
выдают посредством клиентского обрабатывающего устройства запрос на по меньшей мере одно обновление программного обеспечения, причем запрос включает в себя серверные куки-данные.
получают посредством клиентского обрабатывающего устройства срок действия из серверных куки-данных, причем клиентское обрабатывающее устройство получает срок действия из срока действия, хранимого в формате открытого текста; и
выдают посредством клиентского обрабатывающего устройства запрос на по меньшей мере одно обновление программного обеспечения, причем запрос включает в себя серверные куки-данные.
13. Способ по п.8, в котором, если командный компонент одного из обновлений программного обеспечения указывает, что доступны дополнительные обновления программного обеспечения, то способ дополнительно содержит этап:
обрабатывают посредством клиентского обрабатывающего устройства компонент локализованных данных обновления программного обеспечения для выбора по меньшей мере одного из дополнительных обновлений.
обрабатывают посредством клиентского обрабатывающего устройства компонент локализованных данных обновления программного обеспечения для выбора по меньшей мере одного из дополнительных обновлений.
14. Система обмена и управления обновлениями программного обеспечения, содержащая:
(a) первую базу данных, хранящую множество обновлений программного обеспечения, причем каждое индивидуальное обновление программного обеспечения, хранимое в базе данных, содержит:
(i) поле командных данных, содержащее правило применимости, задающее по меньшей мере одно условие, подлежащее удовлетворению до установки индивидуального обновления программного обеспечения, при этом поле командных данных также содержит набор предварительных условий, которые идентифицируют любые обновления программного обеспечения, которые требуются для установки этого индивидуального обновления программного обеспечения;
(ii) поле локализованных данных, содержащее текстовые данные, описывающие дополнительную информацию, относящуюся к индивидуальному обновлению программного обеспечения; и
(iii) компонент данных, который идентифицирует по меньшей мере один файл потока данных, связанный с упомянутым индивидуальным обновлением программного обеспечения;
(b) серверное вычислительное устройство авторизации для авторизации доступа к упомянутым обновлениям программного обеспечения, хранимым в первой базе данных, причем серверное вычислительное устройство авторизации выдает серверные куки-данные к клиентскому вычислительному устройству, чтобы разрешить этому клиентскому вычислительному устройству доступ к индивидуальному обновлению программного обеспечения, если клиентское вычислительное устройство содержит модуль авторизации, указывающий, что это клиентское вычислительное устройство является связанным с целевой группой клиентских вычислительных устройств, при этом серверные куки-данные содержат идентификатор для этой целевой группы, и при этом серверные куки-данные передаются на клиентское вычислительное устройство для сохранения серверных куки-данных;
(с) серверное вычислительное устройство метаданных для выдачи поля командных данных и поля локализованных данных по меньшей мере одного из обновлений программного обеспечения на клиентское вычислительное устройство, причем поле командных данных и поле локализованных данных каждого индивидуального обновления программного обеспечения передаются на клиентское вычислительное устройство, если индивидуальное обновление программного обеспечения связано с упомянутой целевой группой, при этом серверное вычислительное устройство метаданных коммуникативно соединено с упомянутой первой базой данных, и при этом серверное вычислительное устройство метаданных выполнено с возможностью:
(i) получать запрос синхронизации, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения, при этом запрос синхронизации включает в себя серверные куки-данные;
(ii) выбирать дополнительное обновление программного обеспечения из обновлений программного обеспечения, хранимых в первой базе данных, для передачи на клиентское вычислительное устройство, если запрос синхронизации содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, причем выбор дополнительного обновления программного обеспечения зависит от выполнения предварительного условия, заданного в дополнительном обновлении программного обеспечения, при этом упомянутое предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор для упомянутого по меньшей мере одного установленного обновления программного обеспечения, при этом дополнительное обновление программного обеспечения является связанным с целевой группой, идентифицированной в серверных куки-данных;
(iii) выбирать обновление программного обеспечения первого уровня из обновлений программного обеспечения, хранимых в первой базе данных, для передачи на клиентское вычислительное устройство, если запрос синхронизации не содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, при этом обновление программного обеспечения первого уровня не включает в себя предварительное условие;
(iv) передавать упомянутое поле командных данных выбранного обновления программного обеспечения на клиентское вычислительное устройство для сохранения;
(v) получать запрос на упомянутое поле локализованных данных, связанное с упомянутым выбранным обновлением программного обеспечения;
(vi) передавать поле локализованных данных, связанное с выбранным обновлением программного обеспечения, на клиентское вычислительное устройство, причем это поле локализованных данных позволяет клиентскому вычислительному устройству формировать запрос загрузки для приема упомянутого компонента данных выбранного обновления программного обеспечения; и
(d) серверное вычислительное устройство загрузки, коммуникативно соединенное с первой базой данных, и выполненное с возможностью:
(i) получать запрос загрузки от клиентского вычислительного устройства, причем запрос загрузки идентифицирует компонент данных выбранного обновления программного обеспечения; и
(ii) передавать компонент данных упомянутого выбранного обновления программного обеспечения на клиентское вычислительное устройство.
(a) первую базу данных, хранящую множество обновлений программного обеспечения, причем каждое индивидуальное обновление программного обеспечения, хранимое в базе данных, содержит:
(i) поле командных данных, содержащее правило применимости, задающее по меньшей мере одно условие, подлежащее удовлетворению до установки индивидуального обновления программного обеспечения, при этом поле командных данных также содержит набор предварительных условий, которые идентифицируют любые обновления программного обеспечения, которые требуются для установки этого индивидуального обновления программного обеспечения;
(ii) поле локализованных данных, содержащее текстовые данные, описывающие дополнительную информацию, относящуюся к индивидуальному обновлению программного обеспечения; и
(iii) компонент данных, который идентифицирует по меньшей мере один файл потока данных, связанный с упомянутым индивидуальным обновлением программного обеспечения;
(b) серверное вычислительное устройство авторизации для авторизации доступа к упомянутым обновлениям программного обеспечения, хранимым в первой базе данных, причем серверное вычислительное устройство авторизации выдает серверные куки-данные к клиентскому вычислительному устройству, чтобы разрешить этому клиентскому вычислительному устройству доступ к индивидуальному обновлению программного обеспечения, если клиентское вычислительное устройство содержит модуль авторизации, указывающий, что это клиентское вычислительное устройство является связанным с целевой группой клиентских вычислительных устройств, при этом серверные куки-данные содержат идентификатор для этой целевой группы, и при этом серверные куки-данные передаются на клиентское вычислительное устройство для сохранения серверных куки-данных;
(с) серверное вычислительное устройство метаданных для выдачи поля командных данных и поля локализованных данных по меньшей мере одного из обновлений программного обеспечения на клиентское вычислительное устройство, причем поле командных данных и поле локализованных данных каждого индивидуального обновления программного обеспечения передаются на клиентское вычислительное устройство, если индивидуальное обновление программного обеспечения связано с упомянутой целевой группой, при этом серверное вычислительное устройство метаданных коммуникативно соединено с упомянутой первой базой данных, и при этом серверное вычислительное устройство метаданных выполнено с возможностью:
(i) получать запрос синхронизации, причем запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит установленное обновление программного обеспечения, при этом запрос синхронизации включает в себя серверные куки-данные;
(ii) выбирать дополнительное обновление программного обеспечения из обновлений программного обеспечения, хранимых в первой базе данных, для передачи на клиентское вычислительное устройство, если запрос синхронизации содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, причем выбор дополнительного обновления программного обеспечения зависит от выполнения предварительного условия, заданного в дополнительном обновлении программного обеспечения, при этом упомянутое предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор для упомянутого по меньшей мере одного установленного обновления программного обеспечения, при этом дополнительное обновление программного обеспечения является связанным с целевой группой, идентифицированной в серверных куки-данных;
(iii) выбирать обновление программного обеспечения первого уровня из обновлений программного обеспечения, хранимых в первой базе данных, для передачи на клиентское вычислительное устройство, если запрос синхронизации не содержит идентификатор по меньшей мере одного установленного обновления программного обеспечения, при этом обновление программного обеспечения первого уровня не включает в себя предварительное условие;
(iv) передавать упомянутое поле командных данных выбранного обновления программного обеспечения на клиентское вычислительное устройство для сохранения;
(v) получать запрос на упомянутое поле локализованных данных, связанное с упомянутым выбранным обновлением программного обеспечения;
(vi) передавать поле локализованных данных, связанное с выбранным обновлением программного обеспечения, на клиентское вычислительное устройство, причем это поле локализованных данных позволяет клиентскому вычислительному устройству формировать запрос загрузки для приема упомянутого компонента данных выбранного обновления программного обеспечения; и
(d) серверное вычислительное устройство загрузки, коммуникативно соединенное с первой базой данных, и выполненное с возможностью:
(i) получать запрос загрузки от клиентского вычислительного устройства, причем запрос загрузки идентифицирует компонент данных выбранного обновления программного обеспечения; и
(ii) передавать компонент данных упомянутого выбранного обновления программного обеспечения на клиентское вычислительное устройство.
15. Система по п.14, в которой серверные куки-данные содержат идентификатор целевой группы, если серверный модуль авторизации идентифицирует целевую группу.
16. Система по п.14, в которой серверные куки-данные содержат срок действия, и при этом серверное вычислительное устройство метаданных выполнено с возможностью:
определить, истек ли срок действия серверных куки-данных; и
ограничивать передачу выбранного обновления программного обеспечения, если определено, что срок действия серверных куки-данных истек.
определить, истек ли срок действия серверных куки-данных; и
ограничивать передачу выбранного обновления программного обеспечения, если определено, что срок действия серверных куки-данных истек.
17. Система по п.14, в которой серверное вычислительное устройство метаданных выполнено с возможностью:
получать идентификатор неуспешного обновления программного обеспечения в запросе синхронизации, если клиентское вычислительное устройство сохраняет неуспешное обновление программного обеспечения; и
ограничивать передачу выбранных обновлений программного обеспечения, относящихся к упомянутому неуспешному обновлению программного обеспечения, если определено, что запрос синхронизации включает в себя идентификатор неуспешного обновления программного обеспечения.
получать идентификатор неуспешного обновления программного обеспечения в запросе синхронизации, если клиентское вычислительное устройство сохраняет неуспешное обновление программного обеспечения; и
ограничивать передачу выбранных обновлений программного обеспечения, относящихся к упомянутому неуспешному обновлению программного обеспечения, если определено, что запрос синхронизации включает в себя идентификатор неуспешного обновления программного обеспечения.
18. Система по п.14, в которой правило применимости включает в себя нулевое значение.
19. Система по п.14, в которой набор предварительных условий включает в себя нулевое значение.
20. Система передачи обновлений программного обеспечения на клиентское вычислительное устройство, содержащая:
первый компонент, хранящий множество серверных модулей авторизации, причем индивидуальный серверный модуль авторизации из множества серверных модулей авторизации идентифицирует целевую группу клиентских вычислительных устройств;
серверный компьютер, коммуникативно соединенный с упомянутым первым компонентом, причем серверный компьютер выполнен с возможностью:
получать запрос авторизации от клиентского вычислительного устройства, причем запрос авторизации содержит идентификатор клиентского модуля авторизации, хранимого на клиентском вычислительном устройстве;
определять, является ли клиентское вычислительное устройство связанным с упомянутой целевой группой, причем определяют, что клиентское вычислительное устройство является связанным с этой целевой группой, если клиентский модуль авторизации указывает, что клиентское вычислительное устройство является связанным с целевой группой;
передавать серверные куки-данные от службы обновления программного обеспечения на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство является связанным с упомянутой целевой группой, причем серверные куки-данные идентифицируют упомянутую целевую группу;
получать запрос на по меньшей мере одно обновление программного обеспечения, хранимое службой обновления программного обеспечения, причем запрос содержит серверные куки-данные;
определять, является ли обновление программного обеспечения связанным с целевой группой, идентифицированной в серверных куки-данных, в ответ на получение запроса на по меньшей мере одно обновление программного обеспечения;
выдавать командный компонент обновлений программного обеспечения, если определено, что обновление программного обеспечения является связанным с целевой группой, идентифицированной в серверных куки-данных, причем каждый командный компонент содержит по меньшей мере одно правило применимости, определяющее по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки обновления программного обеспечения, связанного с командным компонентом,
принимать запрос на компонент локализованных данных упомянутого первого обновления программного обеспечения,
выдавать компонент локализованных данных упомянутого обновления программного обеспечения, причем компонент локализованных данных описывает упомянутое обновление программного обеспечения, и
передавать обновление программного обеспечения от службы обновления программного обеспечения на клиентское вычислительное устройство, если клиентское вычислительное устройство запрашивает упомянутое обновление программного обеспечения после приема компонента локализованных данных.
первый компонент, хранящий множество серверных модулей авторизации, причем индивидуальный серверный модуль авторизации из множества серверных модулей авторизации идентифицирует целевую группу клиентских вычислительных устройств;
серверный компьютер, коммуникативно соединенный с упомянутым первым компонентом, причем серверный компьютер выполнен с возможностью:
получать запрос авторизации от клиентского вычислительного устройства, причем запрос авторизации содержит идентификатор клиентского модуля авторизации, хранимого на клиентском вычислительном устройстве;
определять, является ли клиентское вычислительное устройство связанным с упомянутой целевой группой, причем определяют, что клиентское вычислительное устройство является связанным с этой целевой группой, если клиентский модуль авторизации указывает, что клиентское вычислительное устройство является связанным с целевой группой;
передавать серверные куки-данные от службы обновления программного обеспечения на клиентское вычислительное устройство, если определено, что клиентское вычислительное устройство является связанным с упомянутой целевой группой, причем серверные куки-данные идентифицируют упомянутую целевую группу;
получать запрос на по меньшей мере одно обновление программного обеспечения, хранимое службой обновления программного обеспечения, причем запрос содержит серверные куки-данные;
определять, является ли обновление программного обеспечения связанным с целевой группой, идентифицированной в серверных куки-данных, в ответ на получение запроса на по меньшей мере одно обновление программного обеспечения;
выдавать командный компонент обновлений программного обеспечения, если определено, что обновление программного обеспечения является связанным с целевой группой, идентифицированной в серверных куки-данных, причем каждый командный компонент содержит по меньшей мере одно правило применимости, определяющее по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки обновления программного обеспечения, связанного с командным компонентом,
принимать запрос на компонент локализованных данных упомянутого первого обновления программного обеспечения,
выдавать компонент локализованных данных упомянутого обновления программного обеспечения, причем компонент локализованных данных описывает упомянутое обновление программного обеспечения, и
передавать обновление программного обеспечения от службы обновления программного обеспечения на клиентское вычислительное устройство, если клиентское вычислительное устройство запрашивает упомянутое обновление программного обеспечения после приема компонента локализованных данных.
21. Способ передачи информации между клиентским вычислительным устройством и серверным вычислительным устройством, содержащий этапы:
(a) принимают серверным вычислительным устройством запрос синхронизации, при этом запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит это установленное обновление программного обеспечения;
(b) выбирают серверным вычислительным устройством подходящие обновления программного обеспечения для клиентского вычислительного устройства на основе запроса синхронизации,
(c) выдают серверным вычислительным устройством командный компонент каждого из подходящих обновлений программного обеспечения в ответ на запрос синхронизации, причем каждый командный компонент содержит по меньшей мере одно правило применимости, причем упомянутое по меньшей мере одно правило применимости задает по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки выбранного обновления программного обеспечения, связанного с упомянутым командным компонентом;
(d) принимают в серверном вычислительном устройстве запрос на компонент локализованных данных по меньшей мере первого обновления программного обеспечения из подходящих обновлений программного обеспечения на основании, по меньшей мере частично, определения клиентским вычислительным устройством, что это по меньшей мере одно условие соответствующего правила применимости удовлетворяется, и
(е) выдают серверным вычислительным устройством компонент локализованных данных первого обновления программного обеспечения, причем каждый компонент локализованных данных включает в себя дополнительную информацию, описывающую соответствующее подходящее обновление программного обеспечения.
(a) принимают серверным вычислительным устройством запрос синхронизации, при этом запрос синхронизации включает в себя идентификатор установленного обновления программного обеспечения, если клиентское вычислительное устройство хранит это установленное обновление программного обеспечения;
(b) выбирают серверным вычислительным устройством подходящие обновления программного обеспечения для клиентского вычислительного устройства на основе запроса синхронизации,
(c) выдают серверным вычислительным устройством командный компонент каждого из подходящих обновлений программного обеспечения в ответ на запрос синхронизации, причем каждый командный компонент содержит по меньшей мере одно правило применимости, причем упомянутое по меньшей мере одно правило применимости задает по меньшей мере одно условие, требуемое клиентским вычислительным устройством до установки выбранного обновления программного обеспечения, связанного с упомянутым командным компонентом;
(d) принимают в серверном вычислительном устройстве запрос на компонент локализованных данных по меньшей мере первого обновления программного обеспечения из подходящих обновлений программного обеспечения на основании, по меньшей мере частично, определения клиентским вычислительным устройством, что это по меньшей мере одно условие соответствующего правила применимости удовлетворяется, и
(е) выдают серверным вычислительным устройством компонент локализованных данных первого обновления программного обеспечения, причем каждый компонент локализованных данных включает в себя дополнительную информацию, описывающую соответствующее подходящее обновление программного обеспечения.
22. Способ по п.21, в котором выбор серверным вычислительным устройством по меньшей мере одного обновления программного обеспечения содержит этапы:
выбор серверным вычислительным устройством дополнительного обновления программного обеспечения, если запрос синхронизации включает в себя идентификатор по меньшей мере одного обновления программного обеспечения, причем выбор дополнительного обновления программного обеспечения зависит от удовлетворения предварительного условия, заданного в дополнительном обновлении программного обеспечения, причем упомянутое предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор по меньшей мере одного конкретного обновления программного обеспечения, и
выбор серверным вычислительным устройством обновления программного обеспечения первого уровня, имеющее нулевое значение в качестве предварительного условия, если запрос синхронизации не включает в себя идентификатор по меньшей мере одного обновления программного обеспечения.
выбор серверным вычислительным устройством дополнительного обновления программного обеспечения, если запрос синхронизации включает в себя идентификатор по меньшей мере одного обновления программного обеспечения, причем выбор дополнительного обновления программного обеспечения зависит от удовлетворения предварительного условия, заданного в дополнительном обновлении программного обеспечения, причем упомянутое предварительное условие требует, чтобы запрос синхронизации включал в себя идентификатор по меньшей мере одного конкретного обновления программного обеспечения, и
выбор серверным вычислительным устройством обновления программного обеспечения первого уровня, имеющее нулевое значение в качестве предварительного условия, если запрос синхронизации не включает в себя идентификатор по меньшей мере одного обновления программного обеспечения.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/737,726 | 2003-12-15 | ||
US10/737,726 US7478381B2 (en) | 2003-12-15 | 2003-12-15 | Managing software updates and a software distribution service |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2005116849A RU2005116849A (ru) | 2006-01-20 |
RU2365983C2 true RU2365983C2 (ru) | 2009-08-27 |
Family
ID=34654196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2005116849/09A RU2365983C2 (ru) | 2003-12-15 | 2004-07-23 | Система и способ для службы распространения программного обеспечения |
Country Status (11)
Country | Link |
---|---|
US (1) | US7478381B2 (ru) |
EP (1) | EP1579301B1 (ru) |
JP (1) | JP4871138B2 (ru) |
KR (1) | KR101130367B1 (ru) |
CN (1) | CN101410800B (ru) |
AU (1) | AU2004279162B8 (ru) |
BR (1) | BRPI0406412A (ru) |
CA (1) | CA2501499A1 (ru) |
MX (1) | MXPA05006615A (ru) |
RU (1) | RU2365983C2 (ru) |
WO (1) | WO2005060387A2 (ru) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2595903C2 (ru) * | 2011-06-30 | 2016-08-27 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Прозрачное восстановление после отказа |
RU2595529C2 (ru) * | 2014-05-29 | 2016-08-27 | Общество С Ограниченной Ответственностью "Яндекс" | Способ селективной загрузки набора модулей, электронное устройство и носитель данных |
US9438696B2 (en) | 2005-05-25 | 2016-09-06 | Microsoft Technology Licensing, Llc | Data communication protocol |
US10284626B2 (en) | 2011-06-29 | 2019-05-07 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US10630781B2 (en) | 2011-09-09 | 2020-04-21 | Microsoft Technology Licensing, Llc | SMB2 scaleout |
Families Citing this family (225)
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 |
US6751794B1 (en) | 2000-05-25 | 2004-06-15 | Everdream Corporation | Intelligent patch checker |
EP1327191B1 (en) * | 2000-09-22 | 2013-10-23 | Lumension Security, Inc. | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US7409685B2 (en) | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
KR100718613B1 (ko) | 2001-10-22 | 2007-05-16 | 애플 인크. | 호스트 컴퓨터와 미디어 플레이어의 미디어 내용 동기화 방법 |
US7680849B2 (en) | 2004-10-25 | 2010-03-16 | Apple Inc. | Multiple media type synchronization between host computer and media device |
US8150937B2 (en) | 2004-10-25 | 2012-04-03 | Apple Inc. | Wireless synchronization between media player and host device |
US8255361B2 (en) * | 2003-01-31 | 2012-08-28 | Oracle America, Inc. | Method and system for validating differential computer system update |
US8122106B2 (en) * | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7568195B2 (en) * | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7614051B2 (en) * | 2003-12-16 | 2009-11-03 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US20050132357A1 (en) * | 2003-12-16 | 2005-06-16 | Microsoft Corporation | Ensuring that a software update may be installed or run only on a specific device or class of devices |
US7549148B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Self-describing software image update components |
JP2005242981A (ja) * | 2004-01-28 | 2005-09-08 | Seiko Epson Corp | サービス提供システム、アプリケーション管理システム、サービス提供装置、サービス提供プログラム、アプリケーション管理プログラムおよび記憶媒体、並びにサービス提供方法およびアプリケーション管理方法 |
US7539686B2 (en) * | 2004-03-12 | 2009-05-26 | Microsoft Corporation | Tag-based schema for distributing update metadata in an update distribution system |
US8051483B2 (en) | 2004-03-12 | 2011-11-01 | Fortinet, Inc. | Systems and methods for updating content detection devices and systems |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US20050246529A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Isolated persistent identity storage for authentication of computing devies |
US8443038B2 (en) | 2004-06-04 | 2013-05-14 | Apple Inc. | Network media device |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US8797926B2 (en) | 2004-06-04 | 2014-08-05 | Apple Inc. | Networked media station |
US10972536B2 (en) | 2004-06-04 | 2021-04-06 | Apple Inc. | System and method for synchronizing media presentation at multiple recipients |
US7526534B2 (en) * | 2004-07-16 | 2009-04-28 | Cassatt Corporation | Unified system services layer for a distributed processing system |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US20060039566A1 (en) * | 2004-08-19 | 2006-02-23 | Xerox Corporation | System for installing software with encrypted client-server communication |
US7661102B2 (en) * | 2004-08-20 | 2010-02-09 | Smith Micro Software, Inc. | Method for reducing binary image update package sizes |
US7801449B2 (en) * | 2004-09-07 | 2010-09-21 | Finisar Corporation | Off-module optical transceiver firmware paging |
US8229301B2 (en) * | 2004-09-07 | 2012-07-24 | Finisar Corporation | Configuration of optical transceivers to perform custom features |
US20060059481A1 (en) * | 2004-09-16 | 2006-03-16 | Rodney Smith | Presenting, delivering and installing electronic downloads with an installed list |
US7974538B2 (en) | 2004-10-29 | 2011-07-05 | Finisar Corporation | Transaction for transceiver firmware download |
US7957651B2 (en) * | 2004-10-29 | 2011-06-07 | Finisar Corporation | Configurable optical transceiver feature specific cost transaction |
US7802124B2 (en) * | 2004-10-29 | 2010-09-21 | Finisar Corporation | Microcode configurable frequency clock |
US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8151245B2 (en) * | 2004-12-17 | 2012-04-03 | Computer Associates Think, Inc. | Application-based specialization for computing nodes within a distributed processing system |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US9021456B2 (en) * | 2004-12-22 | 2015-04-28 | International Business Machines Corporation | Using collaborative annotations to specify real-time process flows and system constraints |
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 |
US11314378B2 (en) | 2005-01-07 | 2022-04-26 | Apple Inc. | Persistent group of media items for a media device |
EP1688834A3 (en) * | 2005-02-03 | 2009-01-14 | LG Electronics Inc. | Video device having software upgrade function using wireless communication and method for controlling the same |
US8214398B1 (en) | 2005-02-16 | 2012-07-03 | Emc Corporation | Role based access controls |
US7797147B2 (en) * | 2005-04-15 | 2010-09-14 | Microsoft Corporation | Model-based system monitoring |
US7802144B2 (en) * | 2005-04-15 | 2010-09-21 | Microsoft Corporation | Model-based system monitoring |
US20060253617A1 (en) * | 2005-04-22 | 2006-11-09 | Microsoft Corporation | Driver upgrade tools |
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 |
US8549513B2 (en) | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US20070016393A1 (en) * | 2005-06-29 | 2007-01-18 | Microsoft Corporation | Model-based propagation of attributes |
US8577761B1 (en) * | 2005-06-30 | 2013-11-05 | Oracle America, Inc. | System and method for dynamic offering topologies |
JP4747733B2 (ja) * | 2005-08-22 | 2011-08-17 | ブラザー工業株式会社 | ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム |
US7668905B2 (en) * | 2005-09-07 | 2010-02-23 | International Business Machines Corporation | Method, system and computer program for providing web pages based on client state |
US8261258B1 (en) | 2005-10-28 | 2012-09-04 | Google Inc. | Common installer client |
US9274774B2 (en) * | 2005-10-28 | 2016-03-01 | Google Inc. | Common installer server |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US8078952B2 (en) | 2005-11-28 | 2011-12-13 | Microsoft Corporation | Site redirection |
US7813963B2 (en) * | 2005-12-27 | 2010-10-12 | The Pen | Interactive electronic desktop action method and system for executing a transaction |
US8676973B2 (en) | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
KR100750169B1 (ko) * | 2006-03-08 | 2007-08-21 | 삼성전자주식회사 | 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법 |
US7865583B2 (en) * | 2006-03-31 | 2011-01-04 | The Invention Science Fund I, Llc | Aggregating network activity using software provenance data |
US7793285B2 (en) * | 2006-03-31 | 2010-09-07 | Ricoh Company, Ltd. | Web installer driver and management through a remote network |
EP2002337A1 (en) * | 2006-03-31 | 2008-12-17 | British Telecommunications Public Limited Company | Exception handler for the upgrade of java objects in a distributed system |
WO2007113533A1 (en) * | 2006-03-31 | 2007-10-11 | British Telecommunications Public Limited Company | Xml-based transfer and a local storage of java objects |
WO2007146710A2 (en) | 2006-06-08 | 2007-12-21 | Hewlett-Packard Development Company, L.P. | Device management in a network |
WO2007148900A1 (en) * | 2006-06-19 | 2007-12-27 | Samsung Electronics Co., Ltd. | Program upgrade system and method for ota-capable portable device |
US8775572B2 (en) * | 2006-06-23 | 2014-07-08 | Microsoft Corporation | Public network distribution of software updates |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
US8074213B1 (en) * | 2006-08-11 | 2011-12-06 | Symantec Operating Corporation | Automatic software updates for computer systems in an enterprise environment |
US20080046879A1 (en) * | 2006-08-15 | 2008-02-21 | Michael Hostetler | Network device having selected functionality |
US7730480B2 (en) * | 2006-08-22 | 2010-06-01 | Novell, Inc. | System and method for creating a pattern installation by cloning software installed another computer |
US20130047145A1 (en) * | 2006-08-29 | 2013-02-21 | Quan-Jie Cui | Match analysis for encoding optimized update packages |
JP4842742B2 (ja) * | 2006-09-05 | 2011-12-21 | 富士通株式会社 | ソフトウェア管理プログラム、ソフトウェア管理方法およびソフトウェア管理装置 |
US8112508B1 (en) * | 2006-09-08 | 2012-02-07 | Dell Products L.P. | Delivering data from device management services to devices using bulletin system |
US7886292B2 (en) * | 2006-10-05 | 2011-02-08 | International Business Machines Corporation | Methodology of individualized software deployment for hardware-independent personal computer mass development |
US8122443B2 (en) * | 2006-12-14 | 2012-02-21 | International Business Machines Corporation | Dynamic multi-context delta view for merging structured data in a visual merge tool |
KR101368714B1 (ko) * | 2006-12-22 | 2014-03-05 | 삼성전자주식회사 | 이동식 저장장치, 소프트웨어 자동설치시스템 및소프트웨어 자동설치방법 |
US8631088B2 (en) | 2007-01-07 | 2014-01-14 | Apple Inc. | Prioritized data synchronization with host device |
WO2008086254A1 (en) * | 2007-01-07 | 2008-07-17 | Apple Inc. | Data backup for mobile device |
US8850140B2 (en) | 2007-01-07 | 2014-09-30 | Apple Inc. | Data backup for mobile device |
JP4905150B2 (ja) * | 2007-01-22 | 2012-03-28 | 富士通株式会社 | ソフトウェア動作実績管理システム、方法及びプログラム |
US20080281958A1 (en) * | 2007-05-09 | 2008-11-13 | Microsoft Corporation | Unified Console For System and Workload Management |
US20080288622A1 (en) * | 2007-05-18 | 2008-11-20 | Microsoft Corporation | Managing Server Farms |
US20090007096A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Secure Software Deployments |
KR100955426B1 (ko) * | 2007-08-10 | 2010-05-04 | (주)지란지교소프트 | 가상 플랫폼 실행방법 |
US7857222B2 (en) | 2007-08-16 | 2010-12-28 | Hand Held Products, Inc. | Data collection system having EIR terminal interface node |
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 |
US8281294B1 (en) * | 2007-11-12 | 2012-10-02 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
US8726260B2 (en) * | 2007-11-26 | 2014-05-13 | Lenovo (Singapore) Pte Ltd | Techniques for providing software patches to a computer system |
US8930310B2 (en) * | 2007-11-27 | 2015-01-06 | The Boeing Company | Proxy server for distributing aircraft software parts |
US8490074B2 (en) | 2007-11-27 | 2013-07-16 | The Boeing Company | Aircraft software part library |
US9208308B2 (en) | 2007-11-27 | 2015-12-08 | The Boeing Company | Alternate parts signature list file |
US8442751B2 (en) | 2007-11-27 | 2013-05-14 | The Boeing Company | Onboard electronic distribution 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 |
DE102007060990A1 (de) * | 2007-12-14 | 2009-06-18 | Codewrights Gmbh | Verfahren zum Erzeugen eines anwendungsspezifischen Installationspakets von Geräteobjekten |
US8340131B2 (en) * | 2008-05-05 | 2012-12-25 | Sentilla Corporation, Inc. | Efficient broadcast of data in a communication network |
US20090287917A1 (en) * | 2008-05-19 | 2009-11-19 | Microsoft Corporation | Secure software distribution |
US8418164B2 (en) | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
US20090313352A1 (en) * | 2008-06-11 | 2009-12-17 | Christophe Dupont | Method and System for Improving the Download of Specific Content |
US8503001B2 (en) * | 2008-06-18 | 2013-08-06 | Ricoh Company, Ltd. | Approach for updating usage information on printing devices |
US8930930B2 (en) * | 2008-09-04 | 2015-01-06 | International Business Machines Corporation | Updating a computer system |
US8527614B2 (en) * | 2008-10-07 | 2013-09-03 | Ricoh Company, Ltd. | Method of deployment of remote patches to business office appliances |
US8719811B2 (en) * | 2008-10-07 | 2014-05-06 | Ricoh Company, Ltd. | Method of causing functions to be executed on business office appliances |
US8914783B2 (en) * | 2008-11-25 | 2014-12-16 | Fisher-Rosemount Systems, Inc. | Software deployment manager integration within a process control system |
US8898660B2 (en) * | 2008-11-25 | 2014-11-25 | Fisher-Rosemount Systems, Inc. | Systems and methods to provide customized release notes during a software system upgrade of a process control system |
US8938717B1 (en) * | 2009-03-16 | 2015-01-20 | Xilinx, Inc. | Updating an installed computer program |
US8438558B1 (en) * | 2009-03-27 | 2013-05-07 | Google Inc. | System and method of updating programs and data |
EP2239659A1 (en) * | 2009-04-09 | 2010-10-13 | Siemens Aktiengesellschaft | A network device and a system thereof |
US8327351B2 (en) * | 2009-04-30 | 2012-12-04 | Sap Ag | Application modification framework |
US8495621B2 (en) * | 2009-06-15 | 2013-07-23 | Microsoft Corporation | Catalog-based software component management |
US8880736B2 (en) * | 2009-07-09 | 2014-11-04 | Simon Cooper | Methods and systems for archiving and restoring securely installed applications on a computing device |
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 |
CN101674326B (zh) * | 2009-09-21 | 2012-09-05 | 中兴通讯股份有限公司 | 进程间同步通信实现方法及代理单元 |
US9003387B2 (en) * | 2009-09-25 | 2015-04-07 | Fisher-Rosemount Systems, Inc. | Automated deployment of computer-specific software updates |
US20110113226A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Distribution Of Software Updates |
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 |
US8671402B2 (en) * | 2009-11-09 | 2014-03-11 | Bank Of America Corporation | Network-enhanced control of software updates received via removable computer-readable medium |
US9122558B2 (en) * | 2009-11-09 | 2015-09-01 | Bank Of America Corporation | Software updates using delta patching |
US9128799B2 (en) * | 2009-11-09 | 2015-09-08 | Bank Of America Corporation | Programmatic creation of task sequences from manifests |
US8972974B2 (en) * | 2009-11-09 | 2015-03-03 | Bank Of America Corporation | Multiple invocation points in software build task sequence |
US9497092B2 (en) | 2009-12-08 | 2016-11-15 | Hand Held Products, Inc. | Remote device management interface |
EP2360581A1 (en) * | 2010-01-18 | 2011-08-24 | Thomson Licensing | Method, system and device for execution of a software application |
US8316120B2 (en) * | 2010-02-02 | 2012-11-20 | Microsoft Corporation | Applicability detection using third party target state |
US20110238572A1 (en) * | 2010-03-25 | 2011-09-29 | Bank Of America Corporation | Remote Control Of Self-Service Terminal |
TW201135594A (en) * | 2010-04-08 | 2011-10-16 | Inventec Corp | System for updating software using separated modules and method thereof |
US9083762B2 (en) * | 2010-05-28 | 2015-07-14 | Greg Saunders | System and method for providing hybrid on demand services to a work unit |
US10102687B1 (en) | 2010-08-17 | 2018-10-16 | The Boeing Company | Information management system for ground vehicles |
US9052976B2 (en) * | 2010-11-08 | 2015-06-09 | Mckesson Financial Holdings | Methods, apparatuses and computer program products for facilitating efficient deployment of software |
US8863114B2 (en) * | 2010-12-06 | 2014-10-14 | Red Hat, Inc. | Managing software packages using a version control system |
US9519600B2 (en) | 2011-03-04 | 2016-12-13 | Microsoft Technology Licensing, Llc | Driver shimming |
US9003363B2 (en) * | 2011-03-21 | 2015-04-07 | Microsoft Technology Licensing, Llc | Device flags |
US8910142B2 (en) | 2011-04-13 | 2014-12-09 | Xerox Corporation | Method and system to regulate the electronic availability of application software updates based on information collected regarding installation, usage and support for these updates |
US8918782B2 (en) * | 2011-05-27 | 2014-12-23 | Microsoft Corporation | Software image distribution |
US8875100B2 (en) * | 2011-06-17 | 2014-10-28 | Microsoft Corporation | Pattern analysis and performance accounting |
CN102395149A (zh) * | 2011-06-30 | 2012-03-28 | 中兴通讯股份有限公司 | Mme报文处理方法及装置 |
US8930940B2 (en) * | 2011-08-19 | 2015-01-06 | Yongyong Xu | Online software execution platform |
US9037642B2 (en) | 2011-08-29 | 2015-05-19 | Fiberlink Communications Corporation | Platform for deployment and distribution of modules to endpoints |
US8613101B2 (en) | 2011-09-12 | 2013-12-17 | Microsoft Corporation | Software distribution service federation |
US9253164B2 (en) | 2011-09-12 | 2016-02-02 | Microsoft Technology Licensing, Llc | Distribution of portions of content |
US8726263B2 (en) | 2011-09-28 | 2014-05-13 | Microsoft Corporation | Detection and installation of software on a per-user basis |
US8621123B2 (en) | 2011-10-06 | 2013-12-31 | Honeywell International Inc. | Device management using virtual interfaces |
US8539123B2 (en) | 2011-10-06 | 2013-09-17 | Honeywell International, Inc. | Device management using a dedicated management interface |
US8959504B2 (en) | 2011-10-18 | 2015-02-17 | Microsoft Corporation | Update scanning |
US8959142B2 (en) | 2012-02-29 | 2015-02-17 | Microsoft Corporation | Combining server-side and client-side user interface elements |
US9588756B2 (en) | 2012-03-22 | 2017-03-07 | Irdeto B.V. | Updating software components in a program |
US8832018B2 (en) * | 2012-05-22 | 2014-09-09 | Sap Ag | Decision service manager |
US9244673B2 (en) | 2012-06-08 | 2016-01-26 | Apple Inc. | System and method for updating application archive files |
US9378026B2 (en) * | 2012-07-27 | 2016-06-28 | Daniel A. Dooley | Customizable application |
KR101199014B1 (ko) * | 2012-08-06 | 2012-11-09 | (주)네오위즈게임즈 | 멀티 프로세스 실행 프로그램 제공 방법, 이를 수행하는 멀티 프로세스 실행 프로그램 제공 서버 및 이를 저장한 기록 매체 |
RU2495487C1 (ru) * | 2012-08-10 | 2013-10-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ для определения доверия при обновлении разрешенного программного обеспечения |
RU2526754C2 (ru) | 2012-09-28 | 2014-08-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ подбора функций управления мобильными устройствами |
JP6328140B2 (ja) * | 2013-01-11 | 2018-05-23 | シナコア,インコーポレイテッド | コンテキスチュアルダッシュボードの選択を構成する方法およびシステム |
US9418072B2 (en) * | 2013-03-04 | 2016-08-16 | Vmware, Inc. | Cross-file differential content synchronization |
US9727831B2 (en) | 2013-03-15 | 2017-08-08 | Vivint, Inc. | Methods for prompting a user to use enhanced automation system features, and systems and devices related thereto |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US9665359B2 (en) | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
US9830142B2 (en) * | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US9069641B2 (en) * | 2013-09-17 | 2015-06-30 | Blackberry Limited | Updating firmware on mobile devices |
GB2519790B (en) * | 2013-10-30 | 2017-07-12 | 1E Ltd | Configuration of network devices |
JP6432127B2 (ja) * | 2013-11-12 | 2018-12-05 | 株式会社リコー | 通信装置、通信システム、通信方法及び通信プログラム |
JP2015103105A (ja) * | 2013-11-26 | 2015-06-04 | 株式会社リコー | 通信装置、通信システム、及び通信プログラム |
EP3137994A2 (en) * | 2014-04-30 | 2017-03-08 | Schneider Electric Industries SAS | Systems and methods for delivering and accessing software components |
EP3167598B1 (en) * | 2014-07-07 | 2021-04-14 | Harman Connected Services, Inc. | Remote embedded device update platform apparatuses, methods and systems |
US9619244B2 (en) | 2014-09-05 | 2017-04-11 | Xiaomi Inc. | Method and system for upgrading an electronic device |
US20160098259A1 (en) * | 2014-10-02 | 2016-04-07 | The Boeing Company | Software Aircraft Part Installation System |
US10318271B2 (en) | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
US9921823B2 (en) | 2015-01-09 | 2018-03-20 | Garmin International, Inc. | Line replacement unit (LRU) replacement process |
JP6478026B2 (ja) * | 2015-01-28 | 2019-03-06 | 株式会社リコー | 情報処理装置、プログラム、及び記録媒体 |
US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US20160350099A1 (en) * | 2015-05-29 | 2016-12-01 | Hewlett Packard Enterprise Development Lp | Application deployment to virtual machines |
US10042626B2 (en) * | 2015-06-29 | 2018-08-07 | Verizon Patent And Licensing Inc. | Software updates using client self-reporting and a hierarchical data structure |
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 |
US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US9479567B1 (en) | 2015-10-29 | 2016-10-25 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US10382312B2 (en) | 2016-03-02 | 2019-08-13 | Fisher-Rosemount Systems, Inc. | Detecting and locating process control communication line faults from a handheld maintenance tool |
US10554644B2 (en) | 2016-07-20 | 2020-02-04 | Fisher-Rosemount Systems, Inc. | Two-factor authentication for user interface devices in a process plant |
US11605037B2 (en) | 2016-07-20 | 2023-03-14 | Fisher-Rosemount Systems, Inc. | Fleet management system for portable maintenance tools |
US10374873B2 (en) | 2016-07-22 | 2019-08-06 | Fisher-Rosemount Systems, Inc. | Process control communication between a portable field maintenance tool and a process control instrument |
US10270853B2 (en) | 2016-07-22 | 2019-04-23 | Fisher-Rosemount Systems, Inc. | Process control communication between a portable field maintenance tool and an asset management system |
US10375162B2 (en) | 2016-07-22 | 2019-08-06 | Fisher-Rosemount Systems, Inc. | Process control communication architecture |
US10599134B2 (en) * | 2016-07-22 | 2020-03-24 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool configured for multiple process control communication protocols |
US10585422B2 (en) | 2016-07-22 | 2020-03-10 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool system having interchangeable functional modules |
US10764083B2 (en) | 2016-07-25 | 2020-09-01 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool with resistor network for intrinsically safe operation |
US10505585B2 (en) | 2016-07-25 | 2019-12-10 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool with a bus for powering and communicating with a field device |
US10481627B2 (en) | 2016-07-25 | 2019-11-19 | Fisher-Rosemount Systems, Inc. | Connection check in field maintenance tool |
CN106372139A (zh) * | 2016-08-27 | 2017-02-01 | 乐视控股(北京)有限公司 | 操作通知的生成方法、前台数据的更新方法及数据库*** |
US10572240B2 (en) | 2016-12-19 | 2020-02-25 | Vmware Inc. | Operating system update management for enrolled devices |
US10262124B2 (en) | 2017-01-18 | 2019-04-16 | Bank Of America Corporation | Autonomous software containers |
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 |
US10467842B2 (en) | 2017-03-17 | 2019-11-05 | Bank Of America Corporation | Portable item transfer container |
CN107025121B (zh) * | 2017-03-31 | 2020-10-09 | Oppo广东移动通信有限公司 | 软件升级方法、装置和电子装置 |
CN107172143A (zh) * | 2017-05-12 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种服务器集群中的软件同步方法及装置 |
US11726822B2 (en) | 2017-06-05 | 2023-08-15 | Umajin Inc. | Systems and methods for providing digital twin-enabled applications |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US12001917B2 (en) | 2017-06-05 | 2024-06-04 | Umajin Inc. | Hub-and-spoke classification system and methods |
US12020354B2 (en) | 2017-06-05 | 2024-06-25 | Umajin Inc. | Hub and spoke classification system |
US11983641B2 (en) | 2017-06-05 | 2024-05-14 | Umajin Inc. | Asset tracking system and methods |
US11188390B2 (en) * | 2017-06-05 | 2021-11-30 | Umajin Inc. | Method for configuring a server kit by a server management system |
US10261777B2 (en) * | 2017-07-25 | 2019-04-16 | Aurora Labs Ltd. | Detecting anomalies online using histograms of ECU processing activity |
US10503495B2 (en) | 2017-08-02 | 2019-12-10 | Accenture Global Solutions Limited | Component management platform |
KR102417004B1 (ko) * | 2017-09-19 | 2022-07-07 | 삼성전자주식회사 | 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법 |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
US11297369B2 (en) | 2018-03-30 | 2022-04-05 | Apple Inc. | Remotely controlling playback devices |
US10993274B2 (en) | 2018-03-30 | 2021-04-27 | Apple Inc. | Pairing devices by proxy |
US10783929B2 (en) | 2018-03-30 | 2020-09-22 | Apple Inc. | Managing playback groups |
CN108874319B (zh) * | 2018-06-27 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种元数据更新方法、装置、设备及可读存储介质 |
US10614857B2 (en) | 2018-07-02 | 2020-04-07 | Apple Inc. | Calibrating media playback channels for synchronized presentation |
CN109857414B (zh) * | 2019-01-22 | 2022-05-17 | 上海微小卫星工程中心 | 卫星软件扩散方法和*** |
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 |
US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
CN111026735B (zh) * | 2019-12-10 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备及介质 |
US11599355B2 (en) * | 2021-06-21 | 2023-03-07 | Microsoft Technology Licensing, Llc | Application module version management |
KR20230103774A (ko) * | 2021-12-31 | 2023-07-07 | 엘지전자 주식회사 | 가전기기, 가전기기 업그레이드 방법 및 가전기기 업그레이드 시스템 |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047928A (en) * | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
US5155680A (en) * | 1986-10-24 | 1992-10-13 | Signal Security Technologies | Billing system for computing software |
US4796181A (en) | 1986-10-24 | 1989-01-03 | Wiedemer John D | Billing system for computer 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 |
CA2093094C (en) * | 1992-04-06 | 2000-07-11 | Addison M. Fischer | Method and apparatus for creating, supporting, and using travelling programs |
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 | 윤종용 | 소프트웨어 프로그램 자동 갱신방법 |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
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 |
US6035423A (en) * | 1997-12-31 | 2000-03-07 | Network Associates, Inc. | Method and system for providing automated updating and upgrading of antivirus applications using 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 |
GB2333864B (en) * | 1998-01-28 | 2003-05-07 | Ibm | Distribution of software updates via a computer network |
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
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 |
KR20000041146A (ko) * | 1998-12-21 | 2000-07-15 | 구자홍 | 네트워크 컴퓨터의 소프트웨어 업데이트 방법 |
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 |
US6401239B1 (en) * | 1999-03-22 | 2002-06-04 | B.I.S. Advanced Software Systems Ltd. | System and method for quick downloading of electronic files |
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 | ソフトウエアの配信システムおよびソフトウエアの受信端末装置 |
JP2001075785A (ja) * | 1999-09-09 | 2001-03-23 | Nec Corp | データ更新システム |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
KR20010076025A (ko) * | 2000-01-24 | 2001-08-11 | 이승룡 | 지정 클라이언트만의 사용을 위한 컴퓨터네트워크상에서의 암호화 파일 전송 방법 |
US7035878B1 (en) * | 2000-01-25 | 2006-04-25 | Fusionone, Inc. | Base rolling engine for data transfer and synchronization system |
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 |
KR20030016073A (ko) * | 2001-08-20 | 2003-02-26 | 엘지전자 주식회사 | 웹 상에서 쿠키를 통한 사용자 인증 방법 및 인증 시스템 |
US7257649B2 (en) * | 2001-09-28 | 2007-08-14 | Siebel Systems, Inc. | Method and system for transferring information during server synchronization with a computing device |
US7761535B2 (en) * | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US7115919B2 (en) * | 2002-03-21 | 2006-10-03 | Hitachi, Ltd. | Storage system for content distribution |
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 |
US6966058B2 (en) * | 2002-06-12 | 2005-11-15 | Agami Systems, Inc. | System and method for managing software upgrades in a distributed computing system |
US7478385B2 (en) * | 2003-01-17 | 2009-01-13 | National Instruments Corporation | Installing software using programmatic component dependency analysis |
US20050050142A1 (en) * | 2003-08-28 | 2005-03-03 | Aligo Inc. | Method and framework for transaction synchronization |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7853609B2 (en) * | 2004-03-12 | 2010-12-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
-
2003
- 2003-12-15 US US10/737,726 patent/US7478381B2/en active Active
-
2004
- 2004-07-23 AU AU2004279162A patent/AU2004279162B8/en active Active
- 2004-07-23 EP EP04816784.5A patent/EP1579301B1/en active Active
- 2004-07-23 RU RU2005116849/09A patent/RU2365983C2/ru not_active IP Right Cessation
- 2004-07-23 CA CA002501499A patent/CA2501499A1/en not_active Abandoned
- 2004-07-23 CN CN2004800013237A patent/CN101410800B/zh active Active
- 2004-07-23 JP JP2006543793A patent/JP4871138B2/ja not_active Expired - Fee Related
- 2004-07-23 KR KR1020057007318A patent/KR101130367B1/ko active IP Right Grant
- 2004-07-23 MX MXPA05006615A patent/MXPA05006615A/es active IP Right Grant
- 2004-07-23 WO PCT/US2004/023965 patent/WO2005060387A2/en not_active Application Discontinuation
- 2004-07-23 BR BR0406412-7A patent/BRPI0406412A/pt not_active Application Discontinuation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9438696B2 (en) | 2005-05-25 | 2016-09-06 | Microsoft Technology Licensing, Llc | Data communication protocol |
US10284626B2 (en) | 2011-06-29 | 2019-05-07 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
RU2595903C2 (ru) * | 2011-06-30 | 2016-08-27 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Прозрачное восстановление после отказа |
US9462039B2 (en) | 2011-06-30 | 2016-10-04 | Microsoft Technology Licensing, Llc | Transparent failover |
US10630781B2 (en) | 2011-09-09 | 2020-04-21 | Microsoft Technology Licensing, Llc | SMB2 scaleout |
RU2595529C2 (ru) * | 2014-05-29 | 2016-08-27 | Общество С Ограниченной Ответственностью "Яндекс" | Способ селективной загрузки набора модулей, электронное устройство и носитель данных |
Also Published As
Publication number | Publication date |
---|---|
AU2004279162B2 (en) | 2010-03-04 |
KR20060109284A (ko) | 2006-10-19 |
WO2005060387A2 (en) | 2005-07-07 |
AU2004279162A1 (en) | 2005-06-30 |
MXPA05006615A (es) | 2005-10-21 |
EP1579301B1 (en) | 2018-08-29 |
AU2004279162B8 (en) | 2010-04-08 |
JP4871138B2 (ja) | 2012-02-08 |
CN101410800A (zh) | 2009-04-15 |
EP1579301A4 (en) | 2009-11-11 |
RU2005116849A (ru) | 2006-01-20 |
BRPI0406412A (pt) | 2005-10-04 |
KR101130367B1 (ko) | 2012-03-28 |
US20050132349A1 (en) | 2005-06-16 |
JP2007523395A (ja) | 2007-08-16 |
US7478381B2 (en) | 2009-01-13 |
CN101410800B (zh) | 2011-07-13 |
WO2005060387A3 (en) | 2009-04-02 |
CA2501499A1 (en) | 2005-06-15 |
EP1579301A2 (en) | 2005-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2365983C2 (ru) | Система и способ для службы распространения программного обеспечения | |
RU2367005C2 (ru) | Система и способ для обновления файлов с использованием корректирования сжатыми изменениями | |
RU2357279C2 (ru) | Система и способ управления и передачи обновлений программного обеспечения | |
US7546594B2 (en) | System and method for updating installation components using an installation component delta patch in a networked environment | |
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 |