RU2637877C2 - Автообновление с согласованием во время работы клиентского интерфейса - Google Patents

Автообновление с согласованием во время работы клиентского интерфейса Download PDF

Info

Publication number
RU2637877C2
RU2637877C2 RU2014151740A RU2014151740A RU2637877C2 RU 2637877 C2 RU2637877 C2 RU 2637877C2 RU 2014151740 A RU2014151740 A RU 2014151740A RU 2014151740 A RU2014151740 A RU 2014151740A RU 2637877 C2 RU2637877 C2 RU 2637877C2
Authority
RU
Russia
Prior art keywords
version
subsequent
previous version
previous
software application
Prior art date
Application number
RU2014151740A
Other languages
English (en)
Other versions
RU2014151740A (ru
Inventor
Ваибхав ХАНДЕЛВАЛ
Брайан РЕМИК
Кейси АБАРАОХА
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2014151740A publication Critical patent/RU2014151740A/ru
Application granted granted Critical
Publication of RU2637877C2 publication Critical patent/RU2637877C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

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

Claims (36)

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, в котором процессор переключает пользователя обратно на последующую версию после неудачи подтверждения корректности последующей версией.
RU2014151740A 2012-06-21 2013-06-13 Автообновление с согласованием во время работы клиентского интерфейса RU2637877C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/528,860 US9152410B2 (en) 2012-06-21 2012-06-21 Auto-update while running client interface with handshake
US13/528,860 2012-06-21
PCT/US2013/045530 WO2013191995A1 (en) 2012-06-21 2013-06-13 Auto-update while running client interface with handshake

Publications (2)

Publication Number Publication Date
RU2014151740A RU2014151740A (ru) 2016-07-10
RU2637877C2 true RU2637877C2 (ru) 2017-12-07

Family

ID=48703903

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014151740A RU2637877C2 (ru) 2012-06-21 2013-06-13 Автообновление с согласованием во время работы клиентского интерфейса

Country Status (11)

Country Link
US (1) US9152410B2 (ru)
EP (1) EP2864873B1 (ru)
JP (1) JP2015520468A (ru)
KR (1) KR20150022849A (ru)
CN (1) CN104395879B (ru)
AU (1) AU2013277518B2 (ru)
BR (1) BR112014031007B1 (ru)
CA (1) CA2875828C (ru)
MX (1) MX342080B (ru)
RU (1) RU2637877C2 (ru)
WO (1) WO2013191995A1 (ru)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
US9256416B1 (en) * 2013-03-28 2016-02-09 Juniper Networks, Inc. Methods and apparatus for automatic session validation for distributed access points
US9652220B2 (en) * 2015-05-11 2017-05-16 Sap Portals Israel Ltd. Zero down-time deployment of new application versions
JP6784291B2 (ja) * 2016-04-15 2020-11-11 日本電気株式会社 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラム
KR102517251B1 (ko) * 2016-04-22 2023-04-03 주식회사 엘지유플러스 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법
US10545940B2 (en) * 2017-02-22 2020-01-28 Red Hat, Inc. Supporting secure layer extensions for communication protocols
US10261780B2 (en) * 2017-05-01 2019-04-16 Google Llc Transparent upgrade of a system service or application
US11048549B2 (en) 2019-04-04 2021-06-29 Google Llc Transferral of process state and/or components in computing environments
US11880670B2 (en) * 2020-06-23 2024-01-23 Toyota Motor North America, Inc. Execution of transport software update
US11281450B2 (en) 2020-06-23 2022-03-22 Toyota Motor North America, Inc. Secure transport software update
US10970064B1 (en) 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US20080052701A1 (en) * 2006-08-22 2008-02-28 Michael Negley Abernethy System and method for fine grain method update of an application to provide continuous availability
RU2408063C2 (ru) * 2004-03-12 2010-12-27 Майкрософт Корпорейшн Архитектура системы распространения обновлений и способ распространения программного обеспечения
US20110078675A1 (en) * 2009-09-25 2011-03-31 Fisher-Rosemount Systems, Inc. Automated Deployment of Computer-Specific Software Updates
WO2011072716A1 (en) * 2009-12-15 2011-06-23 Telefonaktiebolaget Lm Ericsson (Publ) A method of updating versioned software using a shared cache

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
JP2555920B2 (ja) * 1993-01-25 1996-11-20 日本電気株式会社 オンラインリアルタイム処理装置
JPH07152551A (ja) * 1993-11-30 1995-06-16 Toshiba Corp コンピュータシステムおよびプログラム実行方法
JP2639370B2 (ja) * 1994-12-29 1997-08-13 日本電気株式会社 プログラムの動的置換方式
JP3409983B2 (ja) * 1996-11-29 2003-05-26 富士通株式会社 通信システム
US6074435A (en) * 1997-10-30 2000-06-13 Telefonakiebolaget Lm Ericsson (Publ) Remote software download with automatic adjustment for data access compatibility
JP2001067214A (ja) * 1999-08-30 2001-03-16 Oki Electric Ind Co Ltd コンピュータシステム及びプログラムファイル更新方法
JP2001216146A (ja) * 2000-02-04 2001-08-10 Nec Commun Syst Ltd 無中断ファイル更新処理方式および方法
JP4426736B2 (ja) * 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
JP2002366379A (ja) * 2001-06-11 2002-12-20 Nec Corp サーバプロセスのサービス方式
US7003767B2 (en) 2001-10-02 2006-02-21 International Business Machines Corp. System and method for remotely updating software applications
US7380113B2 (en) * 2002-05-17 2008-05-27 Xiotech Corporation Method for updating memory resident firmware as a background operation
US7284236B2 (en) * 2002-10-29 2007-10-16 Brocade Communications Systems, Inc. Mechanism to change firmware in a high availability single processor system
US7853934B2 (en) * 2005-06-23 2010-12-14 Hewlett-Packard Development Company, L.P. Hot-swapping a dynamic code generator
US8713556B2 (en) * 2008-02-25 2014-04-29 Sap Ag Virtual appliance update method
US8352933B2 (en) * 2009-03-26 2013-01-08 International Business Machines Corporation Concurrent patching of operating systems
CN101702692B (zh) * 2009-10-30 2011-12-07 南京中兴软创科技股份有限公司 一种对消息处理系统进行热更新的系统及其方法
JP5728812B2 (ja) * 2010-02-17 2015-06-03 日本電気株式会社 分散型情報処理システム及び分散ストレージシステム
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
RU2408063C2 (ru) * 2004-03-12 2010-12-27 Майкрософт Корпорейшн Архитектура системы распространения обновлений и способ распространения программного обеспечения
US20080052701A1 (en) * 2006-08-22 2008-02-28 Michael Negley Abernethy System and method for fine grain method update of an application to provide continuous availability
US20110078675A1 (en) * 2009-09-25 2011-03-31 Fisher-Rosemount Systems, Inc. Automated Deployment of Computer-Specific Software Updates
WO2011072716A1 (en) * 2009-12-15 2011-06-23 Telefonaktiebolaget Lm Ericsson (Publ) A method of updating versioned software using a shared cache

Also Published As

Publication number Publication date
CN104395879A (zh) 2015-03-04
KR20150022849A (ko) 2015-03-04
MX2014015684A (es) 2015-04-08
EP2864873A1 (en) 2015-04-29
CA2875828A1 (en) 2013-12-27
AU2013277518A1 (en) 2014-12-11
BR112014031007A2 (pt) 2017-06-27
BR112014031007B1 (pt) 2022-02-15
BR112014031007A8 (pt) 2021-05-25
CA2875828C (en) 2020-12-29
RU2014151740A (ru) 2016-07-10
US9152410B2 (en) 2015-10-06
US20130346957A1 (en) 2013-12-26
AU2013277518B2 (en) 2018-02-15
JP2015520468A (ja) 2015-07-16
MX342080B (es) 2016-09-13
CN104395879B (zh) 2017-12-08
EP2864873B1 (en) 2020-08-26
WO2013191995A1 (en) 2013-12-27

Similar Documents

Publication Publication Date Title
RU2637877C2 (ru) Автообновление с согласованием во время работы клиентского интерфейса
US8589909B2 (en) Techniques for reducing down time in updating applications with metadata
US11231919B2 (en) Live updates of stateful components
US20090210871A1 (en) System and method for software application migration
US20150347775A1 (en) Seamless Upgrade for Network System
US9213536B2 (en) Method and architecture for automatic installation and self-updating of client-side computer software
US10972347B2 (en) Converting a first cloud network to second cloud network in a multi-cloud environment
JP2015503812A (ja) 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット
CN103532870A (zh) 一种更新Web应用集群的方法和装置
JP2014178893A (ja) 連携処理装置、プログラム及びソフトウェア更新方法
JP2017520858A (ja) サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御
JP2007323653A (ja) データ配信システム、データ配信方法及びデータ配信プログラム
US11782785B2 (en) Method and system for proactively resolving application upgrade issues using a device emulation system of a customer environment
CN112491940A (zh) 代理服务器的请求转发方法及装置、存储介质及电子设备
CN115344289A (zh) 一种客户端升级方法、装置、终端设备及存储介质
US10042677B2 (en) Maintenance conflict tool
CN113377385A (zh) 客户端自动部署方法及装置
JP2017158014A (ja) 自動設置システム、管理装置、情報処理装置、管理装置の制御方法、情報処理装置の制御方法、及びプログラム
CN114610346B (zh) 软件升级方法、装置、存储介质和电子设备
US11836481B1 (en) Method and system for executing an application upgrade based on real-time monitoring
US10999409B1 (en) Managing multiple requests to redirect local devices in remote access computing environments
US20230221974A1 (en) Method and system for determining the state of application upgrades using a device emulation system of a customer environment
US20240039778A1 (en) Network system and method
US10831508B2 (en) Embedded system application installation and execution method and apparatus
CN117762457A (zh) 不中断业务的操作系统服务升级方法及装置