АВТООБНОВЛЕНИЕ С СОГЛАСОВАНИЕМ ВО ВРЕМЯ РАБОТЫ КЛИЕНТСКОГО ИНТЕРФЕЙСА Российский патент 2017 года по МПК G06F9/445 

Описание патента на изобретение RU2637877C2

Уровень техники

[0001] Разработчик программного обеспечения может зачастую продолжать улучшать программное приложение, после того как программное приложение было выпущено. Разработчик программного обеспечения может распространять множественные версии программного приложения долгое время спустя, после того как дебютировала первая версия программного приложения. С помощью Интернета, предоставляющего возможность прямого соединения между конечным пользователем и разработчиком программного обеспечения, программное приложение может постоянно обновляться с сервера приложений, поддерживаемого разработчиком программного обеспечения.

Сущность изобретения

[0002] Это краткое изложение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить подборку идей, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерения идентифицировать ключевые признаки или важнейшие признаки заявленного изобретения и не предназначено для ограничения объема заявленного изобретения.

[0003] Варианты осуществления, обсуждаемые ниже, относятся к выполнению предыдущей версией клиентского программного приложения передачи обслуживания во время исполнения к последующей версии клиентского программного приложения. Клиентское устройство может исполнять предыдущую версию клиентского программного приложения, в то же время инсталлируя последующую версию клиентского программного приложения. Клиентское устройство может выполнять согласование обновления между последующей версией и предыдущей версией. Клиентское устройство может выполнять подтверждение корректности во время исполнения в отношении последующей версии.

Краткое описание чертежей

[0004] Для того, чтобы описывать способ, которым вышеперечисленные и другие преимущества и признаки могут быть получены, более конкретное описание излагается и будет изображено посредством ссылки на конкретные варианты его осуществления, которые иллюстрируются на прилагаемых чертежах. Понимая то, что эти чертежи изображают только типовые варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие их рамки, реализации будут описаны и объяснены с дополнительной спецификой и деталями посредством использования сопровождающих чертежей.

[0005] Фиг. 1 иллюстрирует в виде блок-схемы один вариант осуществления сети обновления приложения.

[0006] Фиг. 2 иллюстрирует в виде блок-схемы один вариант осуществления вычислительного устройства.

[0007] Фиг. 3 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления обмена данными для обновления приложения.

[0008] Фиг. 4 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления способа обновления клиентского программного приложения с помощью предыдущей версии клиентского программного приложения.

[0009] Фиг. 5 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления способа обновления клиентского программного приложения с помощью последующей версии клиентского программного приложения.

Подробное описание изобретения

[0010] Варианты осуществления обсуждаются подробно ниже. В то время как обсуждаются конкретные реализации, эти реализации представлены строго в целях иллюстрации. Специалист распознает, что другие компоненты и конфигурации могут быть использованы без отступления от существа и объема настоящего изобретения. Реализации могут быть машинореализованным способом, материальным машиночитаемым носителем, имеющим набор инструкций, детализирующих способ, сохраненный на нем, по меньшей мере, для одного процессора или устройства на стороне клиента.

[0011] Клиентское устройство может исполнять клиентское программное приложение, такое как клиентский интерфейс для облачной службы, которая использует модуль автообновления, чтобы незаметно для пользователя переходить от предыдущей версии клиентского программного приложения к последующей версии клиентского программного приложения. Предыдущая версия клиентского программного приложения является текущей используемой версией, в то время как последующая версия является версией, которая должна заменить текущую версию. Клиентское устройство может выполнять переход прозрачно во время исполнения, даже без уведомления пользователя. Последующая версия может выполнять подтверждение корректности во время исполнения, чтобы удостовериться в том, что последующая версия была инсталлирована правильно.

[0012] Предыдущая версия может выполнять согласование обновления для перехода к последующей версии без перезагрузки клиентского программного приложения. На высоком уровне согласование обновления может запускать последующую версию клиентского программного приложения. Последующая версия может отправлять запрос прекращения работы предыдущей версии, запрашивая у предыдущей версии инициирование прекращения работы и переход на последующую версию. Предыдущая версия может отвечать сообщением о состоянии прекращения работы, указывающим, готова ли предыдущая версия прекращать работу. Предыдущая версия может отправлять набор предыдущих данных в последующую версию, передавать в последующую версию данные о состоянии, такие как состояние базы данных, текущие задачи или другую информацию.

[0013] Если подтверждение корректности во время исполнения является неудачным, последующая версия может переключаться обратно на предыдущую версию. Последующая версия может регистрировать любые компоненты, которые должны быть использованы, чтобы выполнять инсталляцию, такие как компонентная объектная модель. Если подтверждение корректности во время выполнения является успешным, последующая версия может переключать любые точки входа приложения на точку в последующей версии, в то же время деинсталлируя предыдущую версию.

[0014] Таким образом, в одном варианте осуществления предыдущая версия клиентского программного приложения может выполнять передачу обслуживания во время выполнения последующей версии клиентского программного приложения. Клиентское устройство может исполнять предыдущую версию клиентского программного приложения, в то же время инсталлируя последующую версию клиентского программного приложения. Клиентское устройство может выполнять согласование обновления между последующей версией и предыдущей версией. Клиентское устройство может выполнять подтверждение корректности во время исполнения в отношении последующей версии.

[0015] Фиг. 1 иллюстрирует в виде блок-схемы один вариант осуществления сети 100 обновления приложения. Клиентское устройство 110, запускающее клиентское программное приложение, такое как клиентский интерфейс, может осуществлять доступ к серверу 120 приложений через сеть 130 передачи данных, чтобы проверять на сервере 120 приложений обновления для клиентского программного приложения. Предыдущая версия 112 клиентского программного приложения может инициировать модуль 114 инсталлятора, чтобы проверять обновление на сервере 120 приложений. Модуль 114 инсталлятора может скачивать и инсталлировать последующую версию 116 клиентского программного приложения. Дополнительно, модуль 114 инсталлятора может выполнять нацеленный опрос сервера 120 приложений, чтобы выполнить проверку на предмет незначительных обновлений и исправлений. После того как модуль 114 инсталлятора успешно инсталлировал последующую версию 116, предыдущая версия 112 может выполнять согласование обновления, чтобы подготавливать функционирование последующей версии 116 как активной версии клиентского программного приложения.

[0016] Фиг. 2 иллюстрирует блок-схему примерного вычислительного устройства 200, которое может действовать в качестве клиентского устройства 110. Вычислительное устройство 200 может объединять одно или более из аппаратных средств, программного обеспечения, микропрограммного обеспечения (firmware) и технологии системы на кристалле, чтобы реализовывать клиентское программное приложение. Вычислительное устройство 200 может включать в себя шину 210, процессор 220, память 230, хранилище 240 данных, устройство 250 ввода/вывода и интерфейс 260 связи. Шина 210, или другая система связи между компонентами, может обеспечивать связь между компонентами вычислительного устройства 200.

[0017] Процессор 220 может включать в себя, по меньшей мере, один традиционный процессор или микропроцессор, который интерпретирует и исполняет набор инструкций. Память 230 может быть оперативным запоминающим устройством (RAM) или другим типом динамического устройства хранения, которое хранит информацию и инструкции для исполнения посредством процессора 220. Память 230 может также хранить временные переменные или другую промежуточную информацию, используемую во время исполнения инструкций процессором 220. Хранилище 240 данных может включать в себя традиционное ROM-устройство или другой тип статического устройства хранения, которое хранит статическую информацию и инструкции для процессора 220. Устройство 240 хранения может включать в себя любой тип материального машиночитаемого носителя, такого как, например, магнитные или оптические носители записи, такие как цифровой видеодиск и его соответствующий привод. Материальный машиночитаемый носитель является физическим носителем, хранящим машиночитаемый код или инструкции, как противоположность энергозависимому носителю или сигналу. Устройство 240 хранения может хранить набор инструкций, детализирующих способ, которые, когда исполняются посредством одного или более процессоров, инструктирует одному или более процессорам выполнять способ.

[0018] Устройство 250 ввода/вывода может включать в себя один или более традиционных механизмов, которые разрешают пользователю вводить информацию в вычислительное устройство 200, такие как клавиатура, мышь, устройство распознавания голоса, микрофон, гарнитура, устройство распознавания жестов, сенсорный экран, устройство захвата жестов и т.д. Устройство 250 ввода/вывода может включать в себя один или более традиционных механизмов, которые выводят информацию для пользователя, включающие в себя дисплей, принтер, один или более динамиков, гарнитуру или носитель, такой как память или магнитный или оптический диск и соответствующий дисковый накопитель. Интерфейс 260 связи может включать в себя любой механизм типа приемопередатчика, который предоставляет возможность вычислительному устройству 200 связываться с другими устройствами или сетями. Интерфейс 260 связи может быть беспроводным, проводным или оптическим интерфейсом.

[0019] Вычислительное устройство 200 может выполнять такие функции в ответ на исполнение процессором 220 последовательности инструкций, содержащихся на компьютерно-читаемом носителе, таком как, например, память 230, магнитный диск или оптический диск. Такие инструкции могут быть считаны в память 230 с другого компьютерно-читаемого носителя, такого как устройство 240 хранения, или с отдельного устройства через интерфейс 260 связи.

[0020] Фиг. 3 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления обмена 300 данными для обновления приложения. Предыдущая версия (PV) 112 может проверять 302 сервер (AS) 120 приложений, чтобы увидеть, доступно ли обновление. Если обновление доступно, сервер 120 приложений может скачивать 304 модуль (IM) 114 инсталлятора в предыдущую версию 112. Если обновление не найдено, сервер 120 приложений может делать повторную попытку в более позднее время. Предыдущая версия 112 может запускать 306 модуль 114 инсталлятора. Модуль 114 инсталлятора может копировать 308 файлы для последующей версии (SV) 116 в файловую систему устройства 110 на стороне клиента. Модуль 114 инсталлятора может запускать 310 последующую версию 116. Последующая версия 116 может запрашивать 312, готова ли предыдущая версия 112 к прекращению работы, посредством отправки запроса прекращения работы.

[0021] Предыдущая версия 112 может сигнализировать 314 последующей версии 116, когда предыдущая версия 112 находится в состоянии "готовности к прекращению работы", отправляя сообщение о состоянии прекращения работы. Предыдущая версия 112 может отправлять согласование 316 обновления последующей версии 116, предоставляющее набор данных о состоянии приложения, такой как набор данных о состоянии процессора. Если предыдущая версия 112 готова к прекращению работы, последующая версия 116 может регистрировать 318 какие-либо компоненты, чтобы выполнять инсталляцию. Последующая версия 116 может подтверждать корректность 320 в регистрациях компонентов времени исполнения, как только инсталляция завершается. Если подтверждение корректности во время исполнения успешно, последующая версия 116 может переключать 322 любые точки входа в приложение на точку в последующей версии 116, так что запросы или команды для программного приложения идут в последующую версию 116. Если подтверждение корректности во время исполнения успешно, предыдущая версия 112 может быть деинсталлирована 324.

[0022] Фиг. 4 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления способа 400 обновления клиентского программного приложения с помощью предыдущей версии 112 клиентского программного приложения. Устройство 110 на стороне клиента может исполнять предыдущую версию 112 клиентского программного приложения (этап 402). Предыдущая версия 112 может скачивать последующую версию с сервера 120 приложений (этап 404). Предыдущая версия 112 может инициировать модуль 114 инсталлятора, чтобы инсталлировать последующую версию 116 (этап 406). Предыдущая версия 112 может принимать запрос прекращения работы от последующей версии 116, запрашивающий прекращение работы предыдущей версии 112 (этап 408). Предыдущая версия 112 может отправлять сообщение о состоянии прекращения работы последующей версии 116, указывающее, готова ли предыдущая версия 112 прекращать работу (этап 410). Если предыдущая версия 112 указывает в сообщении состояния прекращения работы, что предыдущая версия 112 не готова прекращать работу (этап 412), предыдущая версия 112 может принимать повторный запрос прекращения работы от последующей версии 115, после того как последующая версия ожидает в течение периода паузы и затем повторно отправляет запрос прекращения работы (этап 408).

[0023] Если предыдущая версия 112 указывает в сообщении о состоянии прекращения работы готовность к прекращению работы (этап 412), предыдущая версия 112 может выполнять согласование обновления с последующей версией 116 после инсталляции последующей версии 116 (этап 414). Предыдущая версия 112 может отправлять набор данных о состоянии предыдущей версии в последующую версию 116 как часть согласования обновления (этап 416). Если предыдущая версия 112 принимает какие-либо новые промежуточные данные приложения от пользователя во время инсталляции последующей версии 116, предыдущая версия 112 может буферизовать любые промежуточные данные приложения, принятые предыдущей версией 112, после того как инсталляция начинается (этап 418). Если подтверждение корректности во время исполнения в отношении последующей версии 116 было неудачным (этап 420), клиентское устройство 110 может возобновлять обычное выполнение предыдущей версии 112 после неудачи инсталляции или неудачи подтверждения корректности последующей версией 116 (этап 422).

[0024] Если подтверждение корректности во время исполнения в отношении последующей версии 116 было успешным (этап 420), предыдущая версия 112 может принимать уведомление о корректности от последующей версии 116 (этап 424). Предыдущая версия 112 может пересылать любые промежуточные данные приложения, принятые предыдущей версией 112, в последующую версию 116, либо буферизованные, либо вновь принятые (этап 426). Клиентское устройство 110 может деинсталлировать предыдущую версию 112 после успешной инсталляции и подтверждения корректности последующей версии 116 (этап 428).

[0025] Фиг. 5 иллюстрирует в виде блок-схемы последовательности операций один вариант осуществления способа 500 обновления клиентского программного приложения с помощью последующей версии клиентского программного приложения. Устройство 110 на стороне клиента может инсталлировать последующую версию 116 клиентского программного приложения (этап 502). Последующая версия 116 может отправлять запрос прекращения работы в предыдущую версию 112 (этап 504). Последующая версия 116 может принимать сообщение о состоянии прекращения работы от предыдущей версии 112, указывающее, готова ли предыдущая версия 112 прекращать работу (этап 506). Если предыдущая версия 112 указывает в сообщении о состоянии прекращения работы, что предыдущая версия 112 не готова прекращать работу (этап 508), последующая версия может ожидать в течение периода паузы (этап 510) перед повторной отправкой запроса прекращения работы в предыдущую версию 112 (этап 504).

[0026] Если предыдущая версия 112 указывает в сообщении о состоянии прекращения работы готовность прекращать работу (этап 508), последующая версия 116 может принимать согласование обновления от предыдущей версии 112 (этап 512). Последующая версия 116 может принимать набор данных о состоянии предыдущей версии от предыдущей версии 112 как часть подтверждения обновления (этап 514). Последующая версия 116 может регистрировать компонент (этап 516). Последующая версия 116 может выполнять подтверждение корректности во время исполнения в отношении последующей версии 116, в то время как предыдущая версия 112 клиентского программного приложения исполняется (этап 518). Последующая версия 116 может отправлять уведомление о корректности в предыдущую версию 112, указывающее результаты подтверждения корректности во время исполнения (этап 520).

[0027] Если подтверждение корректности во время исполнения в отношении последующей версии 116 было неудачным (этап 522), клиентское устройство 110 может переключать пользователя обратно на предыдущую версию 112 после неудачи инсталляции или неудачи подтверждения корректности последующей версией 116 (этап 524). Если подтверждение корректности во время исполнения в отношении последующей версии 116 было успешным (этап 522), последующая версия 116 может переключать точку входа в приложение с предыдущей версии 112 на последующую версию 116 (этап 526). Устройство 110 на стороне клиента может автоматически переходить с предыдущей версии 112 на последующую версию 116 (этап 528). Последующая версия 116 может принимать любые промежуточные данные приложения, принятые предыдущей версией 112, после того как инсталляция началась (этап 530). Последующая версия 116 может запрашивать, чтобы устройство 110 на стороне клиента деинсталлировало предыдущую версию 112 после успешного запуска и подтверждения корректности последующей версии 116 (этап 532).

[0028] Хотя изобретение было описано на языке, характерном для структурных признаков и/или методологических действий, объем изобретения, определяемый прилагаемой формулой изобретения, не ограничивается обязательно конкретными признаками или действиями, описанными выше. Вместо этого, характерные признаки и этапы, описанные выше, раскрываются как примерные формы реализации формулы изобретения.

[0029] Варианты осуществления в объемы настоящего изобретения могут также включать в себя энергонезависимые компьютерно-читаемые носители хранения для передачи или сохранения на них компьютерно-исполняемых инструкций или структур данных. Такие энергонезависимые компьютерно-читаемые носители хранения могут быть любыми доступными носителями, к которым может осуществлять доступ компьютер общего или специального назначения. В качестве примера, а не ограничения, такие энергонезависимые компьютерно-читаемые носители хранения могут содержать RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптическом диске, накопитель на магнитном диске или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован, чтобы передавать или хранить желаемое средство кодирования программы в форме компьютерно-исполняемых инструкций или структур данных. Комбинации вышеописанного могут быть в рамках энергонезависимых компьютерно-читаемых носителей хранения.

[0030] Варианты осуществления могут также быть применены на практике в распределенных вычислительных окружениях, где задачи выполняются посредством локальных и удаленных устройств обработки данных, которые связаны (либо посредством фиксированных линий связи, беспроводных линий связи или их комбинации) через сеть передачи данных.

[0031] Компьютерно-исполняемые инструкции включают в себя, например, инструкции и данные, которые инструктируют компьютер общего назначения, специализированный компьютер или специализированное устройство обработки данных выполнять определенную функцию или группу функций. Компьютерно-исполняемые инструкции также включают в себя программные модули, которые исполняются посредством компьютеров в автономных или сетевых окружениях. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Компьютерно-исполняемые инструкции, ассоциированные структуры данных и программные модули представляют примеры средства кодирования программы для исполнения этапов способов, раскрытых в данном документе. Конкретная последовательность таких исполняемых инструкций или ассоциированных структур данных представляет примеры соответствующих действий для реализации функций, описанных на таких этапах.

[0032] Хотя вышеприведенное описание может содержать конкретные детали, они не должны истолковываться как ограничивающие формулу изобретения каким-либо образом. Другие конфигурации раскрытых вариантов осуществления являются частью объема изобретения. Например, принципы изобретения могут быть применены к каждому отдельному пользователю, когда каждый пользователь может индивидуально применять такую систему. Это предоставляет возможность каждому пользователю использовать преимущества изобретения, даже если какое-либо из большого числа возможных приложений не использует функциональность, описанную в данном документе. Множественные экземпляры электронных устройств, каждое, могут обрабатывать содержимое различными возможными способами. Реализации необязательно существуют в одной системе, используемой всеми конечными пользователями. Соответственно, именно прилагаемая формула изобретения и ее законные эквиваленты должны лишь определять изобретение, а не какие-либо конкретные приведенные примеры.

Похожие патенты RU2637877C2

название год авторы номер документа
МЕХАНИЗМ ИНСТАЛЛЯЦИИ И ФОРМАТ ПАКЕТА ДЛЯ РАСПАРАЛЛЕЛИВАЕМЫХ НАДЕЖНЫХ ИНСТАЛЛЯЦИЙ 2013
  • Хауболд Джереми
  • Паччиарини Клаудио
RU2635891C2
РАСШИРЯЕМОСТЬ ИНФРАСТРУКТУРЫ СИНХРОНИЗАЦИИ 2013
  • Вотье Марк
  • Фиордэлис Дэниел
  • Босе Мико Арнаб С.
  • Хогерверф Скотт
  • Шекел Одед
  • Кларк Саймон
  • Гузак Крис
  • Баласубраманиан Баладжи
  • Новак Майкл
RU2644139C2
КОНФИГУРАЦИЯ ИЗОЛИРОВАННЫХ РАСШИРЕНИЙ И ДРАЙВЕРОВ УСТРОЙСТВ 2006
  • Хант Гален К.
  • Ларус Джеймс Р.
  • Фандрич Мануэл А.
  • Ходсон Орион
  • Леви Стивен П.
  • Стенсгор Бьярне
  • Тардити Дэвид Р.
  • Спеар Майкл
  • Карбин Майкл
  • Абади Мартин
  • Айкен Марк
  • Бархэм Пол
  • Уоббер Тэд
  • Зилл Брайан
  • Хоблитцел Крис
  • Мерфи Ник
RU2443012C2
СИСТЕМА И СПОСОБ АВТОМАТИЧЕСКОГО ОБНАРУЖЕНИЯ УСТРОЙСТВА, УПРАВЛЕНИЯ УСТРОЙСТВОМ И УДАЛЕННОЙ ПОМОЩИ 2015
  • Чебере Богдан-Константин
  • Аким Йоан-Александру
  • Стан Козмин-Клаудиу
  • Русу Андрей
RU2691858C2
СИСТЕМА И СПОСОБ ДЛЯ ПРЕДОСТАВЛЕНИЯ ЧАСТНЫХ УВЕДОМЛЕНИЙ О ПРИСУТСТВИИ 2003
  • Лоннфорс Микко
  • Леппанен Эва-Мария
  • Коста-Рекена Хосе
RU2300140C2
СИСТЕМА И СПОСОБ ДЛЯ ОБНОВЛЕНИЯ ИНСТАЛЛЯЦИОННЫХ КОМПОНЕНТОВ В СЕТЕВОЙ СРЕДЕ 2004
  • Макгуайр Томас Д.
  • Мензиес Дерек П.
  • Слайджер Майкл В.
  • Чэн Дерек
  • Мохаммед Мазхар
  • Шенде Манойкумар
RU2372644C2
СИСТЕМА И СПОСОБ АВТОМАТИЧЕСКОЙ ОБРАБОТКИ СИСТЕМНЫХ ОШИБОК ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 2012
  • Антух Александр Эдуардович
  • Маланов Алексей Владимирович
RU2521265C2
СИСТЕМА И СПОСОБЫ АУДИТА ВИРТУАЛЬНОЙ МАШИНЫ 2017
  • Лукакс Сандор
  • Лутас Андрей-Влад
  • Аникитей Йонел К.
RU2691187C1
СПОСОБЫ ДЛЯ АДАПТИРОВАНИЯ ИНТЕРПРЕТИРУЮЩЕГО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ ДЛЯ МНОЖЕСТВЕННЫХ КЛИЕНТОВ 2012
  • Рудольф Кристофер
  • Хаммонд Майкл
  • Андерсон Роберт
  • Ниссен Эрик
  • Нанненга Джон
  • Ингаллс Эндрю
RU2608472C2
РАЗМЕЩЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В БОЛЬШИХ СЕТЕВЫХ СИСТЕМАХ 2008
  • Лензмейер Чарльз Томас
  • Кхалиди Юсеф А.
  • Ингл Анил
  • Сайед Саад
RU2495481C2

Иллюстрации к изобретению RU 2 637 877 C2

Реферат патента 2017 года АВТООБНОВЛЕНИЕ С СОГЛАСОВАНИЕМ ВО ВРЕМЯ РАБОТЫ КЛИЕНТСКОГО ИНТЕРФЕЙСА

Изобретение относится к области обновления клиентских программных приложений. Техническим результатом является снижение операционных и временных затрат, связанных с обновлением приложений. Компьютерно-реализуемый способ обновления клиентского программного приложения содержит этапы, на которых: инсталлируют последующую версию клиентского программного приложения; выполняют согласование обновления между последующей версией клиентского программного приложения и предыдущей версией клиентского программного приложения, каковое выполнение согласования обновления содержит, по меньшей мере, прием в последующей версии от предыдущей версии набора данных о состоянии клиентского программного приложения для обеспечения прозрачного перехода на его последующую версию, каковой прием осуществляется после того, как предыдущей версией указана готовность к упомянутому переходу во время исполнения, когда предыдущая версия находится в состоянии готовности к прекращению работы; регистрируют компонент в последующей версии и при этом выполняют подтверждение корректности во время исполнения в отношении последующей версии, чтобы удостовериться в том, что последующая версия была инсталлирована правильно, в то время как предыдущая версия клиентского программного приложения исполняется; и переключают точку входа приложения с предыдущей версии на последующую версию, когда упомянутое подтверждение корректности во время исполнения является успешным. 3 н. и 17 з.п. ф-лы, 5 ил.

Формула изобретения RU 2 637 877 C2

1. Компьютерно-реализуемый способ обновления клиентского программного приложения, содержащий этапы, на которых:

инсталлируют последующую версию клиентского программного приложения;

выполняют согласование обновления между последующей версией клиентского программного приложения и предыдущей версией клиентского программного приложения, каковое выполнение согласования обновления содержит, по меньшей мере, прием в последующей версии от предыдущей версии набора данных о состоянии клиентского программного приложения для обеспечения прозрачного перехода на его последующую версию, каковой прием осуществляется после того, как предыдущей версией указана готовность к упомянутому переходу во время исполнения, когда предыдущая версия находится в состоянии готовности к прекращению работы;

регистрируют компонент в последующей версии и при этом выполняют подтверждение корректности во время исполнения в отношении последующей версии, чтобы удостовериться в том, что последующая версия была инсталлирована правильно, в то время как предыдущая версия клиентского программного приложения исполняется; и

переключают точку входа приложения с предыдущей версии на последующую версию, когда упомянутое подтверждение корректности во время исполнения является успешным.

2. Способ по п. 1, дополнительно содержащий этап, на котором отправляют запрос прекращения работы от последующей версии в предыдущую версию.

3. Способ по п. 2, дополнительно содержащий этап, на котором ожидают в течение периода паузы перед тем, как повторно отправить запрос прекращения работы в предыдущую версию, если предыдущая версия не готова.

4. Способ по п. 1, дополнительно содержащий этап, на котором принимают от предыдущей версии сообщение о состоянии прекращения работы, показывающее, готова ли предыдущая версия прекратить работу.

5. Способ по п. 4, в котором упомянутый прием набора данных о состоянии клиентского программного приложения содержит этап, на котором принимают набор данных о состоянии предыдущей версии как часть согласования изменения.

6. Способ по п. 1, дополнительно содержащий этап, на котором запрашивают деинсталляцию предыдущей версии после успешного запуска и подтверждения корректности последующей версии.

7. Способ по п. 1, дополнительно содержащий этап, на котором автоматически переходят от предыдущей версии к последующей версии.

8. Способ по п. 1, дополнительно содержащий этап, на котором отправляют уведомление подтверждения корректности от последующей версии в предыдущую версию.

9. Способ по п. 1, дополнительно содержащий этап, на котором переключают пользователя обратно на предыдущую версию после неудачи подтверждения корректности последующей версии.

10. Машиночитаемый носитель, на котором сохранен набор инструкций, определяющих способ обновления клиентского программного приложения, которые при их исполнении одним или более процессорами предписывают одному или более процессорам выполнять этот способ, содержащий:

исполнение предыдущей версии клиентского программного приложения;

прием запроса прекращения работы от последующей версии клиентского программного приложения, которым предыдущая версия запрашивается прекратить работу после инсталляции последующей версии;

отправку сообщения о состоянии прекращения работы из предыдущей версии в последующую версию, показывающего готовность предыдущей версии прекратить работу;

выполнение согласования обновления между последующей версией клиентского программного приложения и его предыдущей версией, чтобы осуществить прозрачный переход во время исполнения между предыдущей версией и последующей версией; и

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

11. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором посылают из предыдущей версии в последующую версию набор данных о состоянии предыдущей версии как часть согласования обновления.

12. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором принимают от последующей версии уведомление подтверждения корректности, показывающее, что подтверждение корректности во время исполнения было успешным.

13. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором скачивают последующую версию с сервера приложений.

14. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором инициируют модуль инсталлятора для инсталляции последующей версии.

15. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором пересылают промежуточные данные приложения, принятые предыдущей версией, в последующую версию.

16. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором деинсталлируют предыдущую версию после успешного подтверждения корректности последующей версии.

17. Машиночитаемый носитель по п. 10, в котором способ дополнительно содержит этап, на котором возобновляют обычное выполнение предыдущей версии после неудачи подтверждения корректности последующей версией.

18. Клиентское устройство, выполненное с возможностью обновления клиентского программного приложения, при этом клиентское устройство содержит:

интерфейс связи, который скачивает последующую версию клиентского программного приложения с сервера приложений; и

процессор, который:

исполняет предыдущую версию клиентского программного приложения во время инсталляции последующей версии клиентского программного приложения,

выполняет согласование обновления между последующей версией и предыдущей версией после указания предыдущей версией готовности прекратить работу,

выполняет подтверждение корректности регистрации компонента в последующей версии во время исполнения, чтобы удостовериться в том, что последующая версия была инсталлирована правильно,

переключает точку входа приложения с предыдущей версии на последующую версию при успешности упомянутого подтверждения корректности и

выполняет прозрачный переход с предыдущей версии на последующую версию.

19. Клиентское устройство по п. 18, в котором процессор деинсталлирует предыдущую версию после успешного подтверждения корректности последующей версии.

20. Клиентское устройство по п. 18, в котором процессор переключает пользователя обратно на последующую версию после неудачи подтверждения корректности последующей версией.

Документы, цитированные в отчете о поиске Патент 2017 года RU2637877C2

US 5410703 A, 25.04.1995
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
АРХИТЕКТУРА СИСТЕМЫ РАСПРОСТРАНЕНИЯ ОБНОВЛЕНИЙ И СПОСОБ РАСПРОСТРАНЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 2005
  • Дегхэн Дэвид Б.
  • Хеннеси Дэвид К.
  • Реус Эдвард Ф.
  • Робертс Джейсон Дж.
  • Хоу Джианбо
  • Ма Лие Чарльз
  • Шепард Марк
  • Мохаммед Мазхар Н.
  • Сой Нирмал Р.
  • Срирам Тоттэм Р.
  • Тхирувилламалай Варадараджан С.
  • Раман Видясанкар
  • Хе Ксианг
RU2408063C2

RU 2 637 877 C2

Авторы

Ханделвал Ваибхав

Ремик Брайан

Абараоха Кейси

Даты

2017-12-07Публикация

2013-06-13Подача