KR20150022849A - 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법 - Google Patents

핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법 Download PDF

Info

Publication number
KR20150022849A
KR20150022849A KR20147035615A KR20147035615A KR20150022849A KR 20150022849 A KR20150022849 A KR 20150022849A KR 20147035615 A KR20147035615 A KR 20147035615A KR 20147035615 A KR20147035615 A KR 20147035615A KR 20150022849 A KR20150022849 A KR 20150022849A
Authority
KR
South Korea
Prior art keywords
version
subsequent
rti
previous
software application
Prior art date
Application number
KR20147035615A
Other languages
English (en)
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 KR20150022849A publication Critical patent/KR20150022849A/ko

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

일 실시예에서, 클라이언트 소프트웨어 애플리케이션의 이전 버전은 클라이언트 소프트웨어 애플리케이션의 후속 버전으로의 런타임 핸드오버를 실행할 수 있다. 클라이언트 측 장치는 클라이언트 소프트웨어 애플리케이션의 후속 버전을 설치하는 동안 클라이언트 소프트웨어 애플리케이션의 이전 버전을 실행할 수 있다. 클라이언트 측 장치는 후속 버전과 이전 버전 간에 업데이트 핸드세이크를 실행할 수 있다. 클라이언트 측 장치는 후속 버전의 런타임 검증을 실행할 수 있다.

Description

핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법{AUTO-UPDATE WHILE RUNNING CLIENT INTERFACE WITH HANDSHAKE}
소프트웨어 개발자는 소프트웨어 애플리케이션이 출시된 후에 소프트웨어 애플리케이션을 지속적으로 개선할 수 있다. 소프트웨어 개발자는 소프트웨어 애플리케이션의 초기 버전의 데뷔 후 오랫동안 여러 버전의 소프트웨어 애플리케이션을 배포할 수 있다. 최종 사용자와 소프트웨어 개발자 간의 직접적인 연결을 가능하게 하는 인터넷에서, 소프트웨어 애플리케이션은 소프트웨어 개발자에 의해 관리되는 애플리케이션 서버로부터 지속적으로 업데이트할 수 있다.
본 요약은 상세한 설명에서 이하에 추가 설명되는 개념을 선택하여 단순화된 형식으로 소개하기 위해 제공된다. 본 요약은 특허청구범위에 기재된 발명의 대상의 주요 특징 또는 핵심 특징을 밝히고자 하는 것이 아니며, 특허청구범위의 발명의 대상의 범위를 결정하는 것을 보조하는 데 사용하려는 것도 아니다.
이하에 논의되는 실시예는 클라이언트 소프트웨어 애플리케이션의 후속 버전으로의 런타임 핸드오버(runtime handover)를 실행하는 클라이언트 소프트웨어 애플리케이션의 이전 버전에 관한 것이다. 클라이언트 측 장치는 클라이언트 소프트웨어 애플리케이션의 후속 버전(successor version)을 설치하는 동안 클라이언트 소프트웨어 애플리케이션의 이전 버전(predecessor version)을 실행할 수 있다. 클라이언트 측 장치는 후속 버전과 이전 버전 간에 업데이트 핸드세이크(update handshake)를 실행할 수 있다. 클라이언트 측 장치는 후속 버전의 런타임 검증(runtime validation)을 실행할 수 있다.
전술한 그리고 다른 효과 및 특징이 달성될 수 있는 방식으로 설명하기 위해, 간략하게 전술한 발명의 대상에 대한 보다 구체적인 설명이 첨부된 도면에 나타낸 특정한 실시예를 참조하여 이루어질 것이다. 이러한 도면은 단지 전형적인 실시예를 나타내는 것이며 범주를 제한하려는 것이 아니라는 것을 이해한다는 전제 하에, 실시예는 첨부된 도면을 사용하여 추가적인 세부사항 및 상세한 내용과 함께 기술되고 설명될 것이다.
도 1은 애플리케이션 업데이트 네트워크의 일 실시예를 블록도에 나타낸다.
도 2는 컴퓨팅 장치의 일 실시예를 블록도에 나타낸다.
도 3은 애플리케이션 업데이트 교환의 일 실시예를 흐름도에 나타낸다.
도 4는 클라이언트 소프트웨어 애플리케이션의 이전 버전을 사용하여 클라이언트 소프트웨어 애플리케이션을 업데이트하는 방법의 일 실시예를 흐름도에 나타낸다.
도 5는 클라이언트 소프트웨어 애플리케이션의 후속 버전을 사용하여 클라이언트 소프트웨어 애플리케이션을 업데이트하는 방법의 일 실시예를 흐름도에 나타낸다.
이하에서 실시예가 상세하게 설명된다. 특정한 구현예가 논의되나, 이러한 구현예는 엄밀하게는 설명을 목적으로 한 것이다. 관련 기술 분야의 기술자는 본 명세서의 발명의 대상의 사상이나 범주를 벗어나지 않는 범위에서 다른 컴포넌트 및 구성이 사용될 수 있다는 것을 이해할 것이다. 구현예는 기계로 구현되는 방법, 적어도 하나의 프로세서를 위한 방법을 열거한 명령어 세트가 저장된 유형의 기계 판독가능 매체 또는 클라이언트 측 장치일 수 있다.
클라이언트 측 장치는 자동 업데이터를 이용하여 클라이언트 소프트웨어 애플리케이션의 이전 버전에서 클라이언트 소프트웨어 애플리케이션의 후속 버전으로의 매끄러운 전환을 하는 클라이언트 소프트웨어 애플리케이션(예를 들면, 클라우드 서비스를 위한 클라이언트 인터페이스)을 실행할 수 있다. 클라이언트 소프트웨어 애플리케이션의 이전 버전은 사용되고 있는 현재 버전인 반면에, 후속 버전은 현재 버전을 대체하기 위한 버전이다. 클라이언트 측 장치는 사용자가 인지하지 않고도 런타임 중에 투명하게 전환을 실행할 수 있다. 후속 버전은 후속 버전이 적절하게 설치되었다는 것을 확인하기 위해 런타임 검증을 실행할 수 있다.
후속 버전은 클라이언트 소프트웨어 애플리케이션을 재부팅 하지 않고 후속 버전으로 전환하기 위해 업데이트 핸드세이크(update handshake)를 실행할 수 있다. 하이 레벨에서, 업데이트 핸드세이크는 클라이언트 소프트웨어 애플리케이션의 후속 버전을 시작할 수 있다. 후속 버전은 이전 버전에 셧다운 요청(shutdown request)을 송신하여 이전 버전에게 셧다운 및 후속 버전으로의 전환을 시작하도록 요청할 수 있다. 이전 버전은 셧다운 상태 메시지(이전 버전이 셧다운 할 준비가 되었는지를 나타냄)로 응답할 수 있다. 이전 버전은 이전 데이터 세트를 후속 버전에 송신하여, 데이터베이스 상태, 현재 태스크 또는 다른 정보와 같은 상태 데이터를 후속 버전에 전달할 수 있다.
런타임 검증이 실패하면, 후속 버전이 이전 버전으로 되돌려질 수 있다. 후속 버전은 컴포넌트 객체 모델과 같은 셋업을 완료하는 데 사용될 임의의 컴포넌트를 등록할 수 있다. 런타임 검증이 성공하면, 후속 버전은 이전 버전을 삭제하는 동안 임의의 애플리케이션 엔트리 포인트를 후속 버전에 대한 포인트로 전환할 수 있다.
따라서, 일 실시예에서, 클라이언트 소프트웨어 애플리케이션의 이전 버전은 클라이언트 소프트웨어 애플리케이션의 후속 버전으로의 런타임 핸드오버를 실행할 수 있다. 클라이언트 측 장치는 클라이언트 소프트웨어 애플리케이션의 후속 버전을 설치하는 동안 클라이언트 소프트웨어 애플리케이션의 이전 버전을 실행할 수 있다. 클라이언트 측 장치는 후속 버전과 이전 버전 간에 업데이트 핸드세이크를 실행할 수 있다. 클라이언트 측 장치는 후속 버전의 런타임 검증을 실행할 수 있다.
도 1은 애플리케이션 업데이팅 네트워크(100)의 일 실시예를 블록도에 나타낸다. 클라이언트 인터페이스와 같은 클라이언트 소프트웨어 애플리케이션을 실행하는 클라이언트 측 장치(110)는 데이터 연결 네트워크(130)를 통해 애플리케이션 서버(120)에 액세스하여 클라이언트 소프트웨어 애플리케이션에 대한 업데이트를 위해 애플리케이션 서버(120)를 체크할 수 있다. 클라이언트 소프트웨어 애플리케이션의 이전 버전(112)은 업데이트를 위해 애플리케이션 서버(120)를 체크하도록 설치 모듈(114)을 시작할 수 있다. 설치 모듈(114)은 클라이언트 소프트웨어 애플리케이션의 후속 버전(116)을 다운로드하고 설치할 수 있다. 추가로, 설치 모듈(114)은 애플리케이션 서버(120)에 대한 타깃 질의(targeted inquiry)를 실행하여 마이너 업데이트 및 패치(minor updates and patches)를 체크할 수 있다. 설치 모듈(114)이 후속 버전(116)을 성공적으로 설치하면, 이전 버전(112)은 업데이트 핸드세이크를 실행하여 클라이언트 소프트웨어 애플리케이션의 활성 버전으로서 기능을 하도록 후속 버전(116)을 준비할 수 있다.
도 2는 클라이언트 측 장치(110)로서 기능을 할 수 있는 예시적인 컴퓨팅 장치(200)의 블록도를 나타낸다. 컴퓨팅 장치(200)는 클라이언트 소프트웨어 애플리케이션을 구현하도록 하드웨어, 소프트웨어, 펌웨어 및 시스템 온 칩 기법 중 하나 이상을 조합할 수 있다. 컴퓨팅 장치(200)는 버스(210), 프로세서(220), 메모리(230), 데이터 저장소(240), 입/출력 장치(250) 및 통신 인터페이스(260)를 포함할 수 있다. 버스(210) 또는 다른 컴포넌트간 통신 시스템이 컴퓨팅 장치(200)의 컴포넌트 사이의 통신을 가능하게 할 수 있다.
프로세서(220)는 명령어 세트를 해석하고 실행하는 적어도 하나의 통상적인 프로세서나 마이크로프로세서를 포함할 수 있다. 메모리(230)는 프로세서(220)에 의한 실행을 위한 정보 및 명령어를 저장하는 랜덤 액세스 메모리(RAM) 또는 다른 유형의 동적 저장 장치일 수 있다. 또한, 메모리(230)는 프로세서(220)에 의한 명령어의 실행 중에 사용되는 임시 변수 또는 다른 중간 정보를 저장할 수 있다. 데이터 저장소(240)는 프로세서(220)를 위한 정적 정보 및 명령어를 저장하는 통상적인 ROM 장치 또는 다른 유형의 정적 저장 장치를 포함할 수 있다. 저장 장치(240)는 예를 들면, 자기 또는 광학 기록 매체(가령, 디지털 비디오 디스크 및 이에 대응하는 드라이브)와 같은 임의의 유형의 기계 판독가능 매체를 포함할 수 있다. 유형의 기계 판독가능 매체는 일시적 매체 또는 신호와 대비되는, 기계 판독가능 코드 또는 명령어를 저장하는 물리적 매체이다. 저장 장치(240)는 방법을 열거한 명령어 세트를 저장할 수 있으며, 명령어 세트는 하나 이상의 프로세서에 의해 실행되는 경우에 하나 이상의 프로세서로 하여금 방법을 수행하게 한다.
입/출력 장치(250)는 사용자가 정보를 컴퓨팅 장치(200)에 입력하는 것을 가능하게 하는 하나 이상의 통상적인 메커니즘(예, 키보드, 마우스, 음성 인식 장치, 마이크로폰, 헤드 셋, 제스처 인식 장치, 터치 스크린, 제스처 캡쳐 등)을 포함할 수 있다. 입/출력 장치(250)는 사용자에게 정보를 출력하는 하나 이상의 통상적인 메커니즘(디스플레이, 프린터, 하나 이상의 스피커, 헤드 셋, 메모리 또는 자기 디스크나 광학 디스크와 같은 매체, 및 대응하는 디스크 드라이브를 포함함)을 포함할 수 있다. 통신 인터페이스(260)는 컴퓨팅 장치(200)로 하여금 다른 장치나 네트워크와 통신하는 것을 가능하게 하는 임의의 송수신기 형 메커니즘을 포함할 수 있다. 통신 인터페이스(260)는 무선, 유선 또는 광학 인터페이스일 수 있다.
통신 장치(200)는 예를 들면, 메모리(230), 자기 디스크 또는 광학 디스크와 같은 컴퓨터 판독가능 매체에 포함된 명령어의 시퀀스를 실행하는 프로세서(220)에 응답하여 그러한 기능을 수행할 수 있다. 그러한 명령어는 다른 컴퓨터 판독가능 매체(예, 저장 장치(240)) 또는 분리된 장치로부터 통신 인터페이스(260)를 통해 메모리(230)로 판독될 수 있다.
도 3은 애플리케이션 업데이트 교환(300)의 일 실시예를 흐름도에 나타낸다. 이전 버전(PV)(112)은 업데이트가 이용가능한지 여부를 알기 위해 애플리케이션 서버(AS)(120)에 확인할 수 있다(302). 업데이트가 이용가능하면, 애플리케이션 서버(120)는 설치 모듈(IM)(114)을 이전 버전에 다운로드할 수 있다(304). 업데이트가 발견되지 않으면, 애플리케이션 서버(120)는 이후에 재시도할 수 있다. 이전 버전(112)은 설치 모듈(114)을 론칭할 수 있다(306). 설치 모듈(114)은 후속 버전(SV)(116)에 대한 파일을 클라이언트 측 장치(110)를 위한 파일 시스템에 복사할 수 있다(308). 설치 모듈(114)은 후속 버전(116)을 시작할 수 있다(310). 후속 버전(116)은 셧다운 요청을 송신함으로써 이전 버전(112)이 셧다운 할 준비가 되었는지 여부를 문의할 수 있다(312).
이전 버전(112)은 셧다운 상태 메시지를 송신함으로써, 이전 버전(112)이 "셧다운 준비(shutdown ready)" 상태에 있는 경우에 후속 버전(116)에 알릴 수 있다(314). 이전 버전(112)은 프로세서 상태 데이터 세트와 같은 애플리케이션 상태 데이터 세트를 제공하는 업데이트 핸드세이크(316)를 후속 버전(116)에 송신할 수 있다. 이전 버전(112)이 셧다운 할 준비가 되면, 후속 버전(116)은 셋업을 완료하기 위해 임의의 컴포넌트를 등록할 수 있다(318). 후속 버전(116)은 셋업이 완료되면, 런타임 컴포넌트 등록 시에 검증을 할 수 있다(320). 런타임 검증이 성공하면, 소프트웨어 애플리케이션에 대한 질의나 명령이 후속 버전(116)을 향하도록 후속 버전(116)은 임의의 애플리케이션 엔트리 포인트를 후속 버전(116) 대한 포인트로 스위칭할 수 있다(322). 런타임 검증이 성공하면, 이전 버전(112)은 삭제될 수 있다(324).
도 4는 클라이언트 소프트웨어 애플리케이션의 이전 버전(112)을 이용하여 클라이언트 소프트웨어 애플리케이션을 업데이트하기 위한 방법(400)의 일 실시예를 흐름도에 나타낸다. 클라이언트 측 장치(110)는 클라이언트 소프트웨어 애플리케이션의 이전 버전(112)을 실행할 수 있다(블록 (402)). 이전 버전(112)은 애플리케이션 서버(120)로부터 후속 버전을 다운로드할 수 있다(블록 (404)). 이전 버전(112)은 후속 버전(116)을 설치하기 위해 설치 모듈(114)을 시작할 수 있다(블록(406)). 이전 버전(112)은 이전 버전(112)에게 셧다운 하도록 요청하는 셧다운 요청을 후속 버전(116)으로부터 수신할 수 있다(블록(408)). 후속 버전(112)은 이전 버전(112)이 셧다운 할 준비가 되었는지 여부를 나타내는 셧다운 상태 메시지를 후속 버전(116)에 송신할 수 있다(블록(410)). 이전 버전(112)이 셧다운 상태 메시지에서 이전 버전(112)이 셧다운 할 준비가 되어있지 않다고 나타내면(블록(412)), 후속 버전이 냉각 기간(cooling period) 동안 대기한 후에, 이전 버전(112)은 반복 셧다운 요청을 후속 버전(116)으로부터 수신할 수 있고, 이후에 셧다운 요청을 재송신할 수 있다(블록(408)).
이전 버전(112)이 셧다운 상태 메시지에서 셧다운 준비가 되어 있다고 나타내면(블록 (412)), 이전 버전(112)은 후속 버전(116)의 설치 시에 후속 버전(116)을 이용하여 업데이트 핸드세이크를 실행할 수 있다(블록(414)). 이전 버전(112)은 이전 상태 데이터 세트를 업데이트 핸드세이크의 일부로서 후속 버전(116)에 송신할 수 있다(블록(416)). 이전 버전(112)이 후속 버전(116)의 셋업 중에 사용자로부터 임의의 새로운 중간 애플리케이션 데이터를 수신하면, 이전 버전(112)은 설치가 시작된 후에 자신이 수신한 임의의 중간 애플리케이션 데이터를 버퍼링할 수 있다(블록(418)). 후속 버전(116)의 런타임 검증이 성공적이지 않으면(블록(420)), 클라이언트 장치(110)는 후속 버전(116)에 의한 스타트업 실패 또는 검증 실패 시에 이전 버전(112)의 정상 실행을 재개할 수 있다(블록(422)).
후속 버전(116)의 런타임 검증이 성공했으면(블록(420)), 이전 버전(112)은 후속 버전으로부터 검증 통지를 수신할 수 있다(블록 (424)). 버퍼링된 것이든 새롭게 수신된 것이든, 이전 버전(112)은 자신이 수신한 임의의 중간 애플리케이션 데이터를 후속 버전(116)에 넘겨 줄 수 있다(블록(426)). 상기 클라이언트 장치(110)는 후속 버전(116)의 스타트업 및 검증 성공 시에 상기 이전 버전(112)을 삭제할 수 있다(블록(428)).
도 5는 클라이언트 소프트웨어 애플리케이션의 후속 버전을 사용하여 클라이언트 소프트웨어 애플리케이션을 업데이트하는 방법(500)의 일 실시예를 흐름도에 나타낸다. 클라이언트 측 장치(110)는 클라이언트 소프트웨어 애플리케이션의 후속 버전(116)을 설치할 수 있다(블록(502)). 후속 버전은 셧다운 요청을 이전 버전(112)에 송신할 수 있다(블록(504)). 후속 버전(116)은 이전 버전(112)이 셧다운을 할 준비가 되었는지 여부를 나타내는 셧다운 메시지를 이전 버전(112)으로부터 수신할 수 있다(506). 이전 버전(112)이 셧다운 상태 메시지에서 자신이 셧다운할 준비가 되지 않았다고 나타내면(블록(508)), 후속 버전은 셧다운 요청을 이전 버전(112)에 재송신하기 전에(블록(504)), 냉각기간 동안 대기할 수 있다(블록(510)).
이전 버전(112)이 셧다운 상태 메시지에서 셧다운할 준비가 되었다고 나타내면(블록(508)), 후속 버전(116)은 이전 버전(112)으로부터 업데이트 핸드세이크를 수신할 수 있다(블록(512)). 후속 버전(116)은 업데이트 핸드세이크의 일부로서 이전 버전(112)으로부터 이전 상태 데이터 세트를 수신할 수 있다(블록(514)). 후속 버전(116)은 컴포넌트를 등록할 수 있다(블록(516)). 클라이언트 소프트웨어 애플리케이션의 이전 버전(112)이 실행 중인 동안, 후속 버전(116)은 후속 버전(116)의 런타임 검증을 실행할 수 있다(블록(518)). 후속 버전(116)은 런타임 검증의 결과를 나타내는 검증 통지를 이전 버전(112)에 송신할 수 있다(블록(520)).
후속 버전(116)의 런타임 검증이 성공적이지 않으면(블록(522)), 클라이언트 장치(110)는 후속 버전(116)에 의한 스타트업 실패 또는 검증 실패 시에 사용자를 이전 버전(116)으로 되돌아가게 할 수 있다(블록(524)). 후속 버전(116)의 런타임 검증이 성공적이면(블록(522)), 후속 버전(116)은 애플리케이션 엔트리 포인트를 이전 버전(112)으로부터 후속 버전(116)으로 스위칭할 수 있다(블록(526)). 클라이언트 측 장치(110)는 이전 버전(112)에서 후속 버전(116)으로 자동 전환할 수 있다(블록(526)). 후속 버전(116)은 설치가 시작된 후에 이전 버전(112)에 의해 수신된 임의의 중간 애플리케이션 데이터를 수신할 수 있다(블록(530)). 후속 버전(116)은 후속 버전(116)의 성공적인 스타트업 및 검증 시에 클라이언트 측 장치(110)가 이전 버전(112)을 제거할 것을 요청할 수 있다(블록(532)).
발명의 대상이 구조적 특징 및/또는 방법론적 단계에 특정된 언어로 기술되었으나, 첨부된 청구범위에 정의된 발명의 대상은 반드시 기술된 특징이나 전술한 단계에 특정될 필요가 없다는 것을 이해할 수 있을 것이다. 오히려, 기술된 특징 및 단계는 청구범위를 구현하는 예시적인 형태로서 개시된다.
본 발명의 범주 내에서 실시예는 또한, 컴퓨터 실행가능 명령어나 데이터 구조를 담고 있거나 저장하는 비 일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 그러한 비 일시적 컴퓨터 판독가능 저장 매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예시로서, 그러한 비 일시적 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광학 디스크 저장장치, 자기 디스크 저장장치나 다른 자기 저장장치, 또는 컴퓨터 실행가능 명령어나 데이터 구조의 형태로 원하는 프로그램 코드 수단을 담거나 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 전술한 것의 조합은 비 일시적 컴퓨터 판독가능 저장 매체의 범주 내에 포함할 될 수 있다.
또한, 실시예는 통신 네트워크를 통해 (하드웨어 링크, 무선 링크 또는 이들의 조합에 의해) 연결된 로컬 및 원격 프로세싱 장치에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 실현될 수 있다.
예를 들어, 컴퓨터 실행가능 명령어는 범용 컴퓨터, 전용 컴퓨터 또는 전용 프로세싱 장치로 하여금 소정의 기능 또는 기능 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 또한 단독 또는 네트워크 환경에서 컴퓨터에 실행되는 프로그램 모듈을 포함한다. 일반적으로, 프로그램 모듈은 특정한 태스크 또는 특정한 추상 데이터 타입을 수행하는 루틴, 프로그램, 객체, 컴포넌트 및 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 연관된 데이터 구조 및 프로그램 모듈은 본 명세서에 개시된 방법의 단계를 실행하는 프로그램 코드 수단의 예를 나타낸다. 그러한 실행가능 명령어 또는 연관된 데이터 구조의 특정한 시퀀스는 그러한 단계로 기술된 기능을 구현하는 대응하는 동작의 예를 나타낸다.
전술한 설명이 특정한 세부사항을 포함할 수 있으나, 이는 임의의 방식으로 청구범위를 제한하도록 구성되어야 하는 것은 아니다. 전술한 실시예의 다른 구성은 본 개시내용의 범주의 일부이다. 예를 들어, 개시내용의 원리는 각각의 사용자가 개별적으로 그러한 시스템을 이용할 수 있는 경우에 각각의 개별적인 사용자에게 적용될 수 있다. 이는 각각의 사용자로 하여금 복수의 가능한 애플리케이션 중 임의의 한 애플리케이션이 본 명세서에 기술된 기능을 사용하지 않는 경우에도 본 개시내용의 장점을 이용할 수 있게 한다. 전자 장치의 복수의 인스턴스는 다양한 가능한 방식으로 콘텐트를 처리할 수 있다. 구현예가 모든 최종 사용자에 의해 사용되는 하나의 시스템에서 필수적인 것은 아니다. 따라서, 주어진 임의의 특정한 예가 아닌, 첨부된 청구범위 및 이들의 법적 등가물만이 본 발명을 정의한다.

Claims (10)

  1. 머신으로 구현되는 방법으로서,
    클라이언트 소프트웨어 애플리케이션의 후속 버전(successor version)을 설치하는 단계와,
    상기 클라이언트 소프트웨어 애플리케이션의 이전 버전이 실행 중인 동안에 상기 후속 버전의 런타임 검증(runtime validation)을 실행하는 단계
    를 포함하는 머신으로 구현되는 방법.
  2. 제1항에 있어서,
    셧다운 요청(shutdown request)을 상기 후속 버전으로부터 상기 이전 버전으로 송신하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  3. 제1항에 있어서,
    상기 후속 버전에서 업데이트 핸드세이크(updated handshake)를 상기 이전 버전으로부터 수신하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  4. 제3항에 있어서,
    상기 이전 버전으로부터 상기 후속 버전으로의 이전 상태 데이터를 상기 업데이트 핸드세이크의 일부로서 수신하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  5. 제1항에 있어서,
    상기 이전 버전으로부터 상기 후속 버전으로 자동으로 전환하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  6. 제1항에 있어서,
    검증 통지를 상기 후속 버전으로부터 상기 이전 버전으로 송신하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  7. 제1항에 있어서,
    상기 후속 버전에 의한 검증 실패 시에 사용자를 상기 이전 버전으로 되돌아가게 하는 단계
    를 더 포함하는 머신으로 구현되는 방법.
  8. 방법을 열거한 명령어의 세트가 저장된 유형의 머신 판독가능 매체로서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행되는 경우에 상기 하나 이상의 프로세서로 하여금 상기 방법을 실행하게 하고,
    상기 방법은,
    클라이언트 소프트웨어 애플리케이션의 이전 버전을 실행하는 단계와,
    상기 클라이언트 소프트웨어 애플리케이션의 후속 버전의 설치 시에 상기 후속 버전과 상기 이전 버전 간에 업데이트 핸드세이크를 실행하는 단계
    를 포함하는 머신 판독가능 매체.
  9. 클라이언트 측 장치로서,
    클라이언트 소프트웨어 애플리케이션의 후속 버전을 애플리케이션 서버로부터 다운로드하는 통신 인터페이스와,
    상기 클라이언트 소프트웨어 애플리케이션의 후속 버전을 설치하는 동안 상기 클라이언트 소프트웨어 애플리케이션의 이전 버전을 실행하고, 상기 후속 버전과 상기 이전 버전 간에 업데이트 핸드세이크를 실행하며, 상기 후속 버전의 런타임 검증을 실행하는 프로세서
    를 포함하는 클라이언트 측 장치.
  10. 제9항에 있어서,
    상기 프로세서는 상기 후속 버전의 검증 성공 시에 상기 이전 버전을 삭제하는
    클라이언트 측 장치.
KR20147035615A 2012-06-21 2013-06-13 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법 KR20150022849A (ko)

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 (1)

Publication Number Publication Date
KR20150022849A true KR20150022849A (ko) 2015-03-04

Family

ID=48703903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20147035615A KR20150022849A (ko) 2012-06-21 2013-06-13 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법

Country Status (11)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170120922A (ko) * 2016-04-22 2017-11-01 주식회사 엘지유플러스 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법

Families Citing this family (10)

* 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
WO2017179537A1 (ja) * 2016-04-15 2017-10-19 日本電気株式会社 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
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
US11281450B2 (en) 2020-06-23 2022-03-22 Toyota Motor North America, Inc. Secure transport software update
US11880670B2 (en) * 2020-06-23 2024-01-23 Toyota Motor North America, Inc. Execution of transport software update
US10970064B1 (en) 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors

Family Cites Families (24)

* 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
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
US7853609B2 (en) * 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software
US7853934B2 (en) * 2005-06-23 2010-12-14 Hewlett-Packard Development Company, L.P. Hot-swapping a dynamic code generator
US7779402B2 (en) * 2006-08-22 2010-08-17 International Business Machines Corporation System and method for fine grain method update of an application to provide continuous availability
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
US9003387B2 (en) * 2009-09-25 2015-04-07 Fisher-Rosemount Systems, Inc. Automated deployment of computer-specific software updates
CN101702692B (zh) * 2009-10-30 2011-12-07 南京中兴软创科技股份有限公司 一种对消息处理系统进行热更新的系统及其方法
CN102652306A (zh) 2009-12-15 2012-08-29 瑞典爱立信有限公司 使用共享高速缓存更新版本化软件的方法
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170120922A (ko) * 2016-04-22 2017-11-01 주식회사 엘지유플러스 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20150022849A (ko) 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법
EP3516847B1 (en) Deployment of applications conforming to application data sharing and decision service platform schema
JP6285905B2 (ja) 持続性および回復性のあるワーカー・プロセス
JP6198229B2 (ja) 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット
JP5093259B2 (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
US11356508B1 (en) Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform
US8667486B2 (en) Automatic provisioning of a software platform to a device ecosystem
US9489190B1 (en) Message processing engine
KR102073678B1 (ko) 펌웨어 가상화를 위한 방법 및 장치
US20230035486A1 (en) Managing execution of continuous delivery pipelines for a cloud platform based data center
US20220236975A1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
WO2020177519A1 (zh) 在智能终端上执行的调试方法以及软件调试器
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
US9720710B2 (en) Dynamically provisioning, managing, and executing tasks
JP4681669B2 (ja) 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment