МЕХАНИЗМ ИНСТАЛЛЯЦИИ И ФОРМАТ ПАКЕТА ДЛЯ РАСПАРАЛЛЕЛИВАЕМЫХ НАДЕЖНЫХ ИНСТАЛЛЯЦИЙ
INSTALLATION MECHANISM AND PACKAGE FORMAT FOR PARALLELIZABLE RELIABLE INSTALLATIONS

Уровень техники
Разработчик программного обеспечения может непрерывно обновлять компьютерную программу на устройстве пользователя. Устройство пользователя может контактировать с сервером, администрируемым разработчиком программного обеспечения, чтобы видеть, доступны ли обновления. Если обновление доступно, устройство пользователя может скачивать новые разделы программного обеспечения и добавлять эти разделы к существующей программе, инсталлированной на данный момент на устройстве пользователя.
Сущность изобретения
Этот раздел ʺСущность изобретенияʺ обеспечивается для введения подборки концепций в упрощенной форме, которые дополнительно описываются ниже в разделе ʺПодробное описаниеʺ. Этот раздел ʺСущность изобретенияʺ не предназначен идентифицировать ключевые признаки или существенные признаки заявленного изобретения и не предназначен использоваться для ограничения объема заявленного изобретения.
Варианты осуществления, обсуждаемые ниже, относятся к аккуратному обновлению компьютерного приложения, не вызывая сбоя или перезагрузки системы или процесса. Процессор может исполнить версию компьютерного приложения. Процессор может инсталлировать последующую версию компьютерного приложения на уровне учетной записи пользователя. Процессор может исполнять последующую версию компьютерного приложения.
Краткое описание чертежей
Чтобы описать способ, которым могут быть получены упомянутые и другие преимущества и признаки, далее будет более подробно изложено конкретное описание, и оно будет представлено со ссылкой на конкретные варианты его осуществления, которые иллюстрируются прилагаемыми чертежами. Понимая, что эти чертежи изображают только типичные варианты осуществления изобретения и, следовательно, не должны рассматриваться как ограничивающие его объем, реализации будут описаны и объяснены с дополнительной специфичностью и подробностями, используя сопроводительные чертежи.
Фиг. 1 - иллюстративная блок-схема одного из вариантов осуществления компьютерной сети.
Фиг. 2 - иллюстративная блок-схема одного из вариантов осуществления компьютерного устройства.
Фиг. 3 - иллюстративная блок-схема последовательности исполнения операций одного из вариантов осуществления службы обновления.
Фиг. 4 - иллюстративная блок-схема одного из вариантов осуществления обновления компьютерного приложения.
Фиг. 5 - иллюстративная блок-схема одного из вариантов осуществления организации хранения данных.
Фиг. 6 - иллюстративная блок-схема последовательности осуществления операций одного из вариантов осуществления способа обновления компьютерного приложения.
Подробное описание
Ниже подробно обсуждаются варианты осуществления. Хотя обсуждаются конкретные реализации, следует понимать, что это делается в иллюстративных целях. Специалист в соответствующей области техники понимает, что могут использоваться и другие компоненты и конфигурации, не отступающие от сущности и объема настоящего раскрытия. Реализации могут представлять собой машинно-реализуемый способ, материальный машиночитаемый носитель, на котором имеется хранящийся на нем набор команд, воплощающий способ для по меньшей мере одного процессора, или средство обновления приложений для компьютерного устройства.
Компьютерное устройство может хранить учетную запись пользователя для каждого пользователя компьютерного устройства. Учетная запись пользователя может защищать определенные файлы данных от доступа со стороны других пользователей компьютерного устройства. Средство обновления приложений может обновлять компьютерное приложение на основе конкретного пользователя в дополнение к традиционному обновлению на основе конкретной машины. На основе конкретного пользователя компьютерное приложение может обновляться для учетной записи конкретного пользователя, но не для других учетных записей пользователя на машине. Учетная запись пользователя может поднять привилегии пользователя, учетной записи пользователя для воплощения инсталляции на уровне машины.
Каждый раз, когда работает средство обновления приложений, средство обновления приложений может извлекать обновление в новый каталог и место хранения данных, исключая, таким образом, любые проблемы используемых файлов, вызывающие перезагрузку машины. Дополнительно параллельно могут инсталлироваться различные версии компьютерного приложения, не взаимодействуя с другими версиями компьютерного приложения, ранее инсталлированными на машине, что позволяет незаметно обновлять компьютерное приложение, не вызывая проблем для гладкого функционирования компьютерного приложения. Средство обновления приложений может инсталлировать ту же самую версию или более новую версию компьютерного приложения как часть инсталляции, переинсталляции или восстановления компьютерного приложения, не пересекаясь с текущей версией. Если доступная версия является более старой версией, средство обновления приложений может исполнить нулевую операцию, чтобы предотвратить откатывания компьютерного приложения до более старой версии. Средство обновления приложений может инсталлировать многочисленные компьютерные приложения параллельно.
Таким образом, в одном из вариантов осуществления средство обновления приложений может аккуратно обновлять компьютерное приложение, не вызывая сбоя или перезагрузки системы или процесса. Процессор может исполнять предшествующую версию компьютерного приложения. Процессор может инсталлировать последующую версию компьютерного приложения на уровне учетной записи пользователя. Процессор может исполнять последующую версию компьютерного приложения.
На фиг. 1 представлена блок-схема одного из вариантов осуществления компьютерной сети 100. Устройство 110 пользователя может быть настольным компьютером, ноутбуком, планшетом, карманным компьютером или другим компьютерным устройством. Устройство 110 пользователя может исполнять компьютерное приложение 112. Компьютерное приложение 112 может быть любой программой программного обеспечения или программой микропрограммного обеспечения (firmware), исполняемой устройством 110 пользователя. Компьютерное приложение 112 может иметь версию, указывающую итерацию компьютерного приложения 112. Компьютерное приложение 112 может иметь модуль 114 средства обновления, который присоединяется к серверу 120 приложений через соединение 130 сети передачи данных. Соединение 130 сети передачи данных может быть соединением локальной сети, Интернет-соединением, соединением мобильной сети или другим сетевым соединением. Модуль 114 средства обновления может обратиться к серверу 120 приложений, чтобы увидеть, доступна ли новая версия компьютерного приложения 112. Предшествующая версия является версией компьютерного приложения 112, в настоящий момент исполняемого на устройстве пользователя. Последующая версия является новой версией компьютерного приложения 112. Модуль 114 средства обновления может скачать версию преемника, чтобы заменить ею предшествующую версию.
На фиг. 2 показана блок-схема примерного компьютерного устройства 200, которое может действовать в качестве средства обновления приложений. Компьютерное устройство 200 может объединять в себе одно или более из аппаратных средств, программного обеспечения, встроенного программного обеспечения и технологии ʺсистема на чипеʺ для реализации средства обновления приложений. Компьютерное устройство 200 может содержать шину 210, процессор 220, память 230, постоянную память (ROM) 240, запоминающее устройство 250, устройство 260 ввода, устройство 270 вывода и интерфейс 280 связи. Шина 210 может позволить осуществление связи между компонентами компьютерного устройства 200.
Процессор 220 может содержать по меньшей мере один традиционный процессор или микропроцессор, который интерпретирует и исполняет набор команд. Память 230 может быть оперативной памятью (RAM) или другим типом устройства динамической памяти, которое хранит информацию и команды для исполнения процессором 220. Память 230 может также хранить временные переменные или другую промежуточную информацию, используемую во время исполнения команд процессором 220. ROM 240 может содержать традиционное устройство ROM или другой тип статического запоминающего устройства, которое хранит статическую информацию и команды для процессора 220. Запоминающее устройство 250 может содержать любой тип физического, считываемого машиной носителя, такой как, например, магнитный или оптический носитель записи и его соответствующий привод. Физический, считываемый машиной носитель является физическим носителем, хранящим считываемый машиной код или команды, в отличие от передаваемого носителя или сигнала. Запоминающее устройство 250 может хранить набор команд, воплощающих способ, который, при его исполнении одним или более процессорами, предписывает одному или более процессорам исполнять способ.
Устройство 260 ввода может содержать один или более традиционных механизмов, позволяющих пользователю вводить информацию в компьютерное устройство 200, такие как клавиатура, мышь, устройство распознавания речи, микрофон, головная гарнитура и т. д. Устройство 270 вывода может содержать один или более традиционных механизмов, которые выводят информацию пользователю, такие как дисплей, принтер, один или более громкоговорителей, головная гарнитура или носитель, такой как память или магнитный или оптический диск и соответствующий дисковод. Интерфейс 280 связи может содержать любой, подобный приемопередатчику, механизм, позволяющий компьютерному устройству 200 осуществлять связь с другими устройствами или сетями. Интерфейс 280 связи может содержать сетевой интерфейс или интерфейс приемопередатчика. Интерфейс 280 связи может быть беспроводным, проводным или оптическим интерфейсом.
Компьютерное устройство 200 может исполнять такие функции в ответ на исполнения процессором 220 последовательностей команд, содержащихся на считываемом компьютером носителе, таком как, например, память 230, магнитный диск или оптический диск. Такие команды могут считываться в память 230 с другого считываемого компьютером носителя, такого как запоминающее устройство 250, или с отдельного устройства через интерфейс 280 связи.
На фиг. 3 показана логическая блок-схема одного из вариантов осуществления службы 300 обновления для компьютерного приложения 112. После инициирования текущая версия 302 компьютерного приложения 112 может предписывать модулю 114 средства обновления запросить любые обновления из сервера 120 приложений. Сервер 120 приложений может послать пакет обновления на модуль 114 средства обновления. Пакет обновления может иметь манифест 304 обновления и текущий двоичный код 306 компьютерного приложения 112. Манифест 304 обновления является списком устанавливаемых файлов. Манифест 304 обновления может описывать путь к файлу, размер файла, некие ключи системного реестра и некие механизмы проверки ошибок для каждого файла. Манифест 304 обновления может быть в формате расширяемого языка разметки (XML). Текущий двоичный код 306 является исполняемым файлом или связанным с ним файлом, таким как динамически подключаемая библиотека для компьютерного приложения 112. Модуль 114 средства обновления может использовать пакет обновления, чтобы создать модуль 308 установщика для установки.
На фиг. 4 представлена блок-схема одного из вариантов осуществления обновления 400 компьютерного приложения. Пакет 402 обновления, отправленный с сервера 120 приложений, может иметь код 404 инсталлятора, набор нейтральных ресурсов 406, набор локализуемых ресурсов 408 и полезную нагрузку 410. Код 404 установщика создает экземпляр модуля 308 инсталлятора на устройстве 110 пользователя. Набор нейтральных ресурсов 406 является набором общих ресурсов, используемых во время инсталляции, таких как значки, нелокализуемые строки и нелокализуемые изображения, которые показываются во время установки. Набор локализуемых ресурсов 408 является набором конкретных языковых ресурсов, используемых во время инсталляции, таких как сообщения, подсказки и звуки. Полезная нагрузка 410 может быть манифестом 304 обновления и текущим двоичным кодом 306.
На блок-схеме по фиг. 5 показан один из вариантов осуществления организации 500 хранения данных. Устройство 100 пользователя может поддерживать многочисленные учетные записи для множества пользователей. Учетная запись пользователя может быть защищена паролем от других пользователей. Устройство 250 хранения данных может хранить многочисленные профили приложений для многочисленных пользователей. Первый пользователь может обновить компьютерное приложение 112, в то время как второй пользователь может воздержаться от обновления. Администратор 502 может обновлять компьютерное приложение 112 для каждой учетной записи пользователя. Учетная запись 504 первичного пользователя является учетной записью пользователя, которая исполняет обновление компьютерного приложения. Учетная запись 506 вторичного пользователя является учетной записью пользователя, которая не исполняет активно обновление компьютерного приложения. Учетная запись вторичного пользователя 506 может быть активной или спящей.
Устройство 250 хранения данных может хранить предшествующую версию 508 компьютерного приложения 112 в месте 510 расположения предшествующей версии. Учетная запись 504 первичного пользователя может хранить имя 512 первичного файла в месте 514 хранения данных имени первичного файла, указывающее посредством ссылки на предшествующую версию 508. Имя файла является жестко связанным с файлом данных. Имя 512 первичного файла может быть жестко связано с предшествующей версией 508. Предшествующая версия 508 может быть неизменной, если не изменяется учетной записью 502 администратора. Учетная запись 504 первичного пользователя может инсталлировать последующую версию 516 пользователя компьютерного приложения 112 на уровне учетной записи пользователя. При инсталляции уровня учетной записи пользователя инсталлируют последующую версию 516 пользователя для учетной записи 504 первичного пользователя, но воздерживаются от любого обновления для учетной записи 506 вторичного пользователя. Учетная запись 504 первичного пользователя может помещать последующую версию 516 пользователя в свободное место 518 хранения данных последующей версии пользователя. Свободное место хранения данных в настоящий момент не имеет версии компьютерного приложения 112, хранящейся в этом месте. Место хранения данных может считаться свободным, даже если версия компьютерного приложения 112 присутствовала в этом месте хранения данных и затем обычным образом была стерта, как, например, через отмену регистрации. Последующая версия 516 пользователя может быть полной последующей версией компьютерного приложения 112. Полная последующая версия является последующей версией, которая не была сравнена с предшествующей версией и не имела каких-либо удаленных перекрывающихся разделов. Имя 512 первичного файла может быть перезаписано, чтобы быть жестко связанным с последующей версией 516.
Учетная запись 506 вторичного пользователя может хранить имя 520 вторичного файла компьютерного приложения 112 в месте 522 хранения имени вторичного файла. Имя 520 вторичного файла может быть жестко связано с предшествующей версией 508. Имя 520 вторичного файла может сохранять жесткую связь с предшествующей версией 508, даже когда имя 512 первичного файла становится жестко связанным с последующей версией 516 пользователя.
Учетная запись 502 администратора может заменить предшествующую версию 508 последующей версией 524 администратора компьютерного приложения 112 на уровне машины. Учетная запись 502 администратора может поместить последующую версию 524 администратора в свободном месте 524 хранения данных последующей версии администратора. Операционная система может поднять статус пользователя для учетной записи пользователя до административных привилегий выполнять обновления на уровне машины. Обновления на уровне машины инсталлируют последующую версию для каждой учетной записи пользователя на устройстве 110 пользователя. Учетная запись 502 администратора может переустанавливать имя 512 первичного файла и имя 520 вторичного файла, чтобы они имели жесткую связь с последующей версией 524 администратора.
На фиг. 6 показана блок-схема последовательности выполнения операций одного из вариантов осуществления способа 600 обновления компьютерного приложения 112. Средство обновления приложений может исполнять предшествующую версию 508 компьютерного приложения 112 (этап 602). Средство обновления приложений может исполнять модуль 114 средства обновления незаметно для пользователя (этап 604). Средство обновления приложений может скачать полную последующую версию 516 с использованием модуля 114 средства обновления независимо от предшествующей версии 508 (этап 606). Если инсталляция проводится на основе машины (этап 608), средство обновления приложений может поднять статус пользователя до привилегий администратора (этап 610). Средство обновления приложений может инсталлировать полную последующую версию 524 компьютерного приложения 112 на уровне машины (этап 612). Если инсталляция ведется на основе пользователя (этап 608), средство обновления приложений может инсталлировать полную последующую версию 516 компьютерного приложения на уровне учетной записи пользователя (этап 614). Средство обновления приложений может поддерживать исполнение предшествующей версии 508, в то время как происходит инсталляция полной последующей версии 516 (этап 616). Средство обновления приложений может поместить полную последующую версию 516 в чистое место 514 хранения данных последующей версии (этап 618). Блок обновления приложений может исполнять предшествующую версию 508 и полную последующую версию 516 компьютерного приложения 112 одновременно (этап 620). Средство обновления приложений может выполнять переключение с предшествующей версии 508 на полную последующую версию 516 (этап 622). Средство обновления приложений может поддерживать представление пользовательского интерфейса компьютерного приложения 112 во время этого переключения (этап 624). Средство обновления приложений может планировать предшествующую версию 508 для операции деинсталляции (этап 626). Если операция деинсталляции планируется во время перезагрузки системы (этап 628), средство обновления приложений может деинсталлировать предшествующую версию 508 во время перезагрузки системы (этап 630). В противном случае средство обновления приложений может деинсталлировать предшествующую версию 508 во время исполнения полной последующей версии 516 (этап 632).
Хотя изобретение было описано на языке, специфическом для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый приложенной формулой изобретения, не обязательно ограничивается описанными выше конкретными признаками или действиями. Скорее конкретные признаки и действия, описанные выше, раскрываются как примерные формы реализации формулы изобретения.
Варианты осуществления в рамках объема настоящего изобретения могут также содержать невременный, считываемый компьютером носитель для переноса или содержания исполняемых компьютером команд или структур данных, хранящихся на нем. Такой невременный, считываемый компьютером носитель может быть любым доступным носителем, к которому можно осуществить доступ посредством универсального или специализированного компьютера. Для примера и не для создания ограничений такой невременный, считываемый компьютером носитель может содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться для передачи или хранения требующихся средств программного кода в форме исполняемых компьютером команд или структур данных. Комбинации вышесказанного должны также охватываться понятием ʺневременный, считываемый компьютером носительʺ.
Варианты осуществления могут также быть реализованы на практике в распределенных компьютерных средах, где задачи выполняются локальными и удаленными устройствами обработки данных, которые связаны (проводимыми линиями связи, беспроводными линиями связи или их комбинацией) через систему связи.
Исполняемые компьютером команды содержат, например, команды и данные, которые предписывают универсальному компьютеру, специализированному компьютеру или специализированному устройству обработки данных выполнять определенную функцию или группу функций. Исполняемые компьютером команды также содержат программные модули, которые исполняются компьютерами автономно или в сетевых средах. Обычно программные модули содержат подпрограммы, программы, объекты, компоненты и структуры данных и т. д., которые выполняют конкретные задачи или реализуют частные абстрактные типы данных. Исполняемые компьютером команды, связанные с ними структуры данных и программные модули представляют примеры средств программного кода для выполнения этапов раскрытых здесь способов. Конкретная последовательность таких исполняемых команд или связанных с ними структур данных представляет примеры соответствующих действий для реализации функций, описанных для таких этапов.
Хотя приведенное выше описание может содержать конкретные подробности, они не должны рассматриваться как ограничивающие каким-либо образом формулу изобретения. Другие конфигурации описанных вариантов осуществления являются частью объема раскрытия. Например, принципы раскрытия могут применяться к каждому индивидуальному пользователю, где каждый пользователь может индивидуально развернуть такую систему. Это позволяет каждому пользователю использовать выгоды раскрытия, даже если любое из большого количества возможных приложений не использует описанные здесь функциональные возможности. Во множестве случаев каждое из электронных устройств может обрабатывать контент различными возможными способами. Реализации не обязательно используются в одной системе, используемой всеми конечными пользователями. Соответственно прилагаемая формула изобретения и ее юридические эквиваленты должны определять только изобретение, а не какие-либо представленные конкретные примеры.