KR102052776B1 - 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷 - Google Patents
병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷 Download PDFInfo
- Publication number
- KR102052776B1 KR102052776B1 KR1020147019519A KR20147019519A KR102052776B1 KR 102052776 B1 KR102052776 B1 KR 102052776B1 KR 1020147019519 A KR1020147019519 A KR 1020147019519A KR 20147019519 A KR20147019519 A KR 20147019519A KR 102052776 B1 KR102052776 B1 KR 102052776B1
- Authority
- KR
- South Korea
- Prior art keywords
- version
- successor
- predecessor
- computer
- application
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
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)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
일 실시예에서, 애플리케이션 업데이터는 시스템 또는 프로세스의 오류 또는 재부팅을 야기하지 않고 컴퓨터 애플리케이션을 원활하게 업데이트할 수 있다. 프로세서는 컴퓨터 애플리케이션의 선행자 버전을 실행할 수 있다. 프로세서는 컴퓨터 애플리케이션의 후속자 버전을 사용자 계정 레벨에서 설치할 수 있다. 프로세서는 컴퓨터 애플리케이션의 후속자 버전을 실행할 수 있다.
Description
소프트웨어 개발자는 사용자 장치상의 컴퓨터 프로그램을 지속적으로 업그레이드할 수 있다. 사용자 장치는 업그레이드가 가능한지를 알아보기 위해 소프트웨어 개발자에 의해 관리되는 서버에 접촉할 수 있다. 업그레이드가 가능한 경우, 사용자 장치는 소프트웨어의 새로운 섹션들을 다운로드하고, 사용자 장치상에 현재 설치되어 있는 기존의 프로그램에 해당 섹션들을 추가할 수 있다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 개념들 중 선택된 것들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 한정하기 위한 것도 아니다.
아래에서 설명되는 실시예는 시스템이나 프로세스의 오류 또는 재부팅을 유발하지 않고 컴퓨터 애플리케이션을 원활하게 업데이트하는 것에 관한 것이다. 프로세서는 컴퓨터 애플리케이션의 선행자 버전(predecessor version)을 실행할 수 있다. 프로세서는 사용자 계정 레벨에서 컴퓨터 애플리케이션의 후속자 버전(successor version)을 설치할 수 있다. 프로세서는 컴퓨터 애플리케이션의 후속자 버전을 실행할 수 있다.
전술한 및 다른 이점과 특징이 얻어질 수 있는 방식을 설명하기 위해, 보다 특정한 설명이 첨부 도면에 예시된 특정 실시예를 참조하여 서술되고 묘사될 것이다. 이들 도면들은 단지 대표적인 실시예를 도시하고, 따라서 그 범위를 제한하는 것으로 간주되지 않으며, 실시예들은 첨부 도면을 사용하여 보다 구체적이고 자세하게 기술 및 설명될 것이다.
도 1은 컴퓨터 네트워크의 일 실시예를 블록도로 도시한다.
도 2는 컴퓨팅 장치의 일 실시예를 블록도로 도시한다.
도 3은 업데이트 서비스의 일 실시예를 데이터 흐름도로 예시한다.
도 4는 컴퓨터 애플리케이션의 업데이트를 위한 일 실시예를 블록도로 예시한다.
도 5는 데이터 저장 레이아웃의 일 실시예를 블록도로 도시한다.
도 6은 컴퓨터 애플리케이션을 업그레이드하기 위한 방법의 일 실시예를 흐름도로 나타낸다.
도 2는 컴퓨팅 장치의 일 실시예를 블록도로 도시한다.
도 3은 업데이트 서비스의 일 실시예를 데이터 흐름도로 예시한다.
도 4는 컴퓨터 애플리케이션의 업데이트를 위한 일 실시예를 블록도로 예시한다.
도 5는 데이터 저장 레이아웃의 일 실시예를 블록도로 도시한다.
도 6은 컴퓨터 애플리케이션을 업그레이드하기 위한 방법의 일 실시예를 흐름도로 나타낸다.
실시예들이 아래에 자세히 설명된다. 특정 실시예가 설명되어 있지만, 이것은 단지 설명을 목적으로 행해진 것임을 이해해야 한다. 당업자라면, 본 발명의 주제의 사상 및 범위를 벗어나지 않는 다른 컴포넌트 및 구성이 사용될 수 있음을 알 것이다. 실시예들은 컴퓨터 구현 방법, 컴퓨팅 장치의 적어도 하나의 프로세서를 위한 방법을 지시하는 명령어들의 집합을 저장하는 유형의 머신 판독가능 매체, 또는 컴퓨팅 장치를 위한 애플리케이션 업데이터일 수 있다.
컴퓨터 장치는 컴퓨터 장치의 각 사용자에 대해 사용자 계정을 유지할 수 있다. 사용자 계정은 컴퓨터 장치의 다른 사용자에 의한 액세스로부터 특정 데이터 파일을 보호할 수 있다. 애플리케이션 업데이터는 기존의 머신 단위뿐만 아니라 사용자 단위로 컴퓨터 애플리케이션을 업데이트할 수 있다. 사용자 단위는 머신의 다른 사용자 계정들보다는, 하나의 사용자 계정에 대해 컴퓨터 애플리케이션을 업데이트할 수 있다. 사용자 계정은 머신 레벨에서 설치하기 위해 사용자 계정의 사용자 권한을 상승시킬 수 있다.
애플리케이션 업데이터가 실행될 때마다, 애플리케이션 업데이터는 새로운 디렉토리 및 데이터 저장 위치에서 업데이트를 추출할 수 있고, 따라서 머신의 재부팅을 야기하는 임의의 파일 사용 중 문제(any file-in-use problems)를 제거할 수 있다. 또한, 컴퓨터 애플리케이션의 상이한 버전들은 이전에 머신 상에 설치된 컴퓨터 애플리케이션의 다른 버전과의 간섭없이 나란히 설치될 수 있어, 컴퓨터 애플리케이션은 컴퓨터 애플리케이션의 원활한 성능에 문제를 야기하지 않고 조용히 업데이트를 수행할 수 있다. 애플리케이션 업데이터는 현재 버전과의 간섭없이 컴퓨터 애플리케이션의 설치, 재설치 또는 수리의 일부로서 컴퓨터 애플리케이션의 동일한 버전 또는 보다 새로운 버전을 설치할 수 있다. 이용가능한 버전이 구버전이면, 애플리케이션 업데이터는 컴퓨터 애플리케이션의 다운그레이드를 방지하기 위해 널(null) 연산을 실행할 수 있다. 애플리케이션 업데이터는 여러 컴퓨터 애플리케이션을 동시에 설치할 수 있다.
따라서, 일 실시예에서, 애플리케이션 업데이터는 시스템 또는 프로세스의 오류 또는 재부팅을 유발하지 않고 컴퓨터 애플리케이션을 원활하게 업데이트할 수 있다. 프로세서는 컴퓨터 프로그램의 선행자 버전을 실행할 수 있다. 프로세서는 사용자 계정 레벨에서 컴퓨터 애플리케이션의 후속자 버전을 설치할 수 있다. 프로세서는 컴퓨터 애플리케이션의 후속자 버전을 실행할 수 있다.
도 1은 컴퓨터 네트워크(100)의 일 실시예를 블록도로 예시한다. 사용자 장치(110)는 데스크톱 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 휴대용 컴퓨터 또는 기타 컴퓨팅 장치일 수 있다. 사용자 장치(110)는 컴퓨터 애플리케이션(112)을 실행할 수 있다. 컴퓨터 애플리케이션(112)은 사용자 장치(110)에 의해 실행되는 임의의 소프트웨어 프로그램 또는 펌웨어 프로그램일 수 있다. 컴퓨터 애플리케이션(112)은 컴퓨터 애플리케이션(112)의 신판(iteration)을 나타내는 버전을 가질 수 있다. 컴퓨터 애플리케이션(112)은 데이터 네트워크 연결(130)을 통해 애플리케이션 서버(120)에 연결되는 업데이터 모듈(114)을 구비할 수 있다. 데이터 네트워크 연결(130)은 로컬 영역 네트워크 연결, 인터넷 연결, 모바일 네트워크 연결, 또는 다른 네트워크 연결일 수 있다. 업데이터 모듈(114)은 컴퓨터 애플리케이션(112)의 새 버전이 이용가능한지를 알아보기 위해 애플리케이션 서버(120)에 질의할 수 있다. 선행자 버전이 사용자 장치에서 현재 실행되는 컴퓨터 애플리케이션(112)의 버전이다. 후속자 버전은 컴퓨터 애플리케이션(112)의 새로운 버전이다. 업데이터 모듈(114)은 선행자 버전을 대체하는 후속자 버전을 다운로드 할 수 있다.
도 2는 애플리케이션 업데이터로서 동작할 수 있는 예시적인 컴퓨팅 장치(200)의 블록도를 도시한다. 컴퓨팅 장치(200)는 애플리케이션 업데이터를 구현하기 위해 하드웨어, 소프트웨어, 펌웨어 및 시스템 온 칩 기술 중 하나 이상을 결합할 수 있다. 컴퓨팅 장치(200)는 버스(210), 프로세서(220), 메모리(230), 판독 전용 메모리(ROM)(240), 저장 장치(250), 입력 장치(260), 출력 장치(270) 및 통신 인터페이스(280)를 포함할 수 있다. 버스(210)는 컴퓨팅 장치(200)의 구성 요소들 사이의 통신을 허용할 수 있다.
프로세서(220)는 명령어들의 집합을 해석하고 실행하는 적어도 하나의 종래의 프로세서 또는 마이크로 프로세서를 포함할 수 있다. 메모리(230)는 프로세서(220)에 의해 실행되는 명령어 및 정보를 저장하는 랜덤 액세스 메모리(RAM) 및 또 다른 유형의 동적 저장 장치일 수 있다. 메모리(230)는 또한 프로세서(220)에 의한 명령어들의 실행 동안 임시 변수나 다른 중간 정보를 저장할 수 있다. ROM(240)는 프로세서(220)를 위한 명령어들 및 정적 정보를 저장하는 종래의 ROM 장치 또는 다른 타입의 정적 저장 장치를 포함할 수 있다. 저장 장치(250)는 예를 들어 자기 또는 광학 기록 매체와 같은 임의의 타입의 유형의 머신 판독가능 매체 및 그에 대응하는 드라이브를 포함할 수 있다. 일시적인 매체 또는 신호와는 대조적으로, 유형의 머신 판독가능 매체는 머신 판독가능 코드 또는 명령어들을 저장하는 물리적 매체이다. 저장 장치(250)는 방법을 구현하는 명령어들의 집합을 저장할 수 있는데, 이 명령어들의 집합은 하나 이상의 프로세서에 의해 실행되는 경우 이 하나 이상의 프로세서가 방법을 수행하도록 한다.
입력 장치(260)는 키보드, 마우스, 음성 인식 장치, 마이크, 헤드셋 등과 같이, 사용자가 컴퓨팅 장치(200)에 정보를 입력할 수 있도록 해주는 하나 이상의 통상적인 메커니즘을 포함할 수 있다. 출력 장치(270)는 디스플레이, 프린터, 하나 이상의 스피커, 헤드셋, 또는 메모리, 또는 자기 또는 광 디스크와 같은 매체 및 그에 대응하는 디스크 드라이브를 비롯하여, 사용자에게 정보를 출력하는 하나 이상의 통상적인 메커니즘을 포함할 수 있다. 통신 인터페이스(280)는 컴퓨팅 장치(200)가 다른 장치 또는 네트워크와 통신할 수 있게 해주는 송수신기 형(transceiver-like) 장치를 포함할 수 있다. 통신 인터페이스(280)는 네트워크 인터페이스 또는 송수신기 인터페이스를 포함할 수 있다. 통신 인터페이스(280)는 무선, 유선 또는 광 인터페이스일 수 있다.
컴퓨팅 장치(200)는 예를 들어, 메모리(230), 자기 디스크 또는 광 디스크와 같은 컴퓨터 판독가능 매체에 포함된 명령어들의 시퀀스를 프로세서(220)가 실행하는 것에 응답하여 기능을 수행할 수 있다. 이러한 명령어들은 저장 장치(250)와 같은 또 다른 컴퓨터 판독가능 매체로부터, 또는 별도의 저장 장치로부터 통신 인터페이스(280)를 통해 메모리(230)로 판독될 수 있다.
도 3은 컴퓨터 애플리케이션(112)에 대한 업데이트 서비스(300)의 일 실시예를 데이터 흐름도로 예시한다. 시작시, 현재 버전(302)의 컴퓨터 애플리케이션(112)은 애플리케이션 서버(120)로부터 임의의 업데이트를 요청하도록 업데이터 모듈(114)에게 지시할 수 있다. 애플리케이션 서버(120)는 업데이터 모듈(114)에 업데이트 패키지를 보낼 수 있다. 업데이트 패키지는 업데이트 매니페스트(304) 및 컴퓨터 애플리케이션(112)의 현재 바이너리(306)를 구비할 수 있다. 업데이트 매니페스트(304)는 설치될 파일의 목록이다. 업데이트 매니페스트(304)는 각 파일에 대한 파일 경로, 파일 크기, 임의의 레지스트리 키 및 임의의 오류 검사 메카니즘을 설명할 수 있다. 업데이트 매니페스트(304)는 확장 가능한 마크업 언어(XML) 포맷일 수 있다. 현재 바이너리(306)는 컴퓨터 애플리케이션(112)에 대한 실행 파일 또는 연관된 파일, 예컨대 디지털 링크 라이브러리이다. 업데이터 모듈(114)은 업데이트 패키지를 사용하여 설치를 위한 인스톨러 모듈(308)을 생성할 수 있다.
도 4는 컴퓨터 애플리케이션에 대한 업데이트(400)의 일 실시예를 블록도로 도시한다. 애플리케이션 서버(120)로부터 전송된 업데이트 패키지(402)는 인스톨러 코드(404), 중립 리소스(406)의 세트, 지역화가능 리소스(408)의 세트 및 페이로드(410)를 가질 수 있다. 인스톨러 코드(404)는 사용자 장치(110)상에 인스톨러 모듈(308)를 인스턴스화한다. 중립 리소스(406)의 세트는 설치 동안 표시될 아이콘, 지역화가능하지 않은 문자열 및 지역화가능하지 않은 이미지와 같은, 설치 동안 사용되는 일반적인 리소스의 세트이다. 지역화가능한 리소스(408)의 세트는 메시지, 프롬프트 및 소리와 같은, 설치시에 사용되는 언어 특정 리소스의 세트이다. 페이로드(410)는 업데이트 매니페스트(304) 및 현재 바이너리(306)일 수 있다.
도 5는 데이터 저장 레이아웃(500)의 일 실시예를 블록도로 나타낸다. 사용자 장치(100)는 다수의 사용자에 대해 여러 사용자 계정을 지원할 수 있다. 사용자 계정은 다른 사용자로부터 암호로 보호될 수 있다. 데이터 저장 장치(250)는 다수의 사용자에 대해 여러 애플리케이션 프로파일을 저장할 수 있다. 제2 사용자가 업데이트를 포기할 수도 있지만 제1 사용자는 컴퓨터 애플리케이션(112)을 업데이트할 수 있다. 관리자(502)는 각 사용자 계정에 대해 컴퓨터 애플리케이션(112)을 업데이트할 수 있다. 기본 사용자 계정(504)은 컴퓨터 애플리케이션의 업데이트를 실행하는 사용자 계정이다. 보조 사용자 계정(506)은 컴퓨터 애플리케이션의 업데이트를 능동적으로 실행하지 않는 사용자 계정이다. 보조 사용자 계정(506)은 활성 상태 또는 휴면 상태일 수 있다.
데이터 저장 장치(250)는 컴퓨터 애플리케이션(112)의 선행자 버전(predecessor version)(508)을 선행자 위치(predecessor location)(510)에 저장할 수 있다. 기본 사용자 계정(504)은 선행자 버전(508)을 참조하는 기본 이름 데이터 저장 위치(primary name data storage location)(514)에 기본 파일 이름(primary file name)(512)을 저장할 수 있다. 파일 이름은 데이터 파일로의 하드 링크(hard link)이다. 기본 파일 이름(512)은 선행자 버전(508)으로의 하드 링크일 수 있다. 선행자 버전(508)은 관리자 계정(502)에 의해 변경되지 않는 한 불변일 수 있다. 기본 사용자 계정(504)은 사용자 계정 레벨에서 컴퓨터 애플리케이션(112)의 사용자의 후속자 버전(516)을 설치할 수 있다. 사용자 계정 레벨 설치는 기본 사용자 계정(504)에 대해 사용자의 후속자 버전(516)을 설치하지만, 보조 사용자 계정(506)에 대해서는 어떠한 업데이트도 하지 않는다. 기본 사용자 계정(504)은 비어있는(clean) 사용자의 후속자 데이터 저장 위치(518)에 사용자의 후속자 버전(516)을 배치할 수 있다. 비어있는 데이터 저장 위치는 현재 이 위치에 컴퓨터 애플리케이션(112)의 버전을 저장하고 있지 않다. 컴퓨터 애플리케이션(112)의 버전이 데이터 저장 위치에 존재하였고, 이후 종래의 방식대로 예를 들어 등록취소(deregistering)를 통해 소거된 경우에도 데이터 저장 위치는 비어있는 것으로 간주될 수 있다. 사용자의 후속자 버전(516)은 컴퓨터 애플리케이션(112)의 완전한 후속자 버전일 수 있다. 완전한 후속자 버전은 선행자 버전과 비교되지 않고 또한 임의의 겹치는 부분을 제거하지 않은 후속자 버전이다. 기본 파일 이름(512)은 사용자의 후속자 버전(516)으로의 하드 링크이도록 덮어쓰기될 수 있다.
보조 사용자 계정(506)은 컴퓨터 애플리케이션(112)의 보조 파일 이름(520)을 보조 이름 데이터 저장 위치(522)에 저장할 수 있다. 보조 파일 이름(520)은 선행자 버전(508)으로의 하드 링크일 수 있다. 보조 파일 이름(520)은 기본 파일 이름(512)이 사용자의 후속자 버전(516)으로의 하드 링크가 되더라도 선행자 버전(508)으로의 하드 링크를 유지할 수 있다.
관리자 계정(502)은 머신 레벨에서 컴퓨터 애플리케이션(112)의 관리자의 후속자 버전(524)으로 선행자 버전(508)을 대체할 수 있다. 관리자 계정(502)은 비어있는 관리자의 후속자 데이터 저장소 위치(524)에 관리자의 후속자 버전(524)을 배치할 수 있다. 운영 체제는 머신 레벨에서 업데이트를 수행하도록 사용자 계정에 대한 사용자 등급을 관리자 권한으로 높일 수 있다. 머신 레벨의 업데이트는 사용자 장치(110) 상의 각 사용자 계정에 후속자 버전을 설치한다. 관리자 계정(502)은 관리자의 후속자 버전(524)으로의 하드 링크이도록 기본 파일 이름(512) 및 보조 파일 이름(520)을 다시 설정할 수 있다.
도 6은 컴퓨터 애플리케이션(112)을 업그레이드하기 위한 방법(600)의 일 실시예를 블록도로 도시한다. 애플리케이션 업데이터는 컴퓨터 애플리케이션(112)의 선행자 버전(508)을 실행할 수 있다(블록 602). 애플리케이션 업데이터는 사용자의 눈에 안 띄게 업데이터 모듈(114)을 실행할 수 있다(블록 604). 애플리케이션 업데이터는 선행자 버전(508)을 무시하는 업데이터 모듈(114)을 사용하여 완전한 후속자 버전(516)을 다운로드할 수 있다(블록 606). 설치가 머신 단위로 이루어지는 경우(블록 608), 애플리케이션 업데이터는 관리자 권한으로 사용자 등급을 상향시킬 수 있다(블록 610). 애플리케이션 업데이터는 머신 레벨에서 컴퓨터 애플리케이션(112)의 완전한 후속자 버전(524)을 설치할 수 있다(블록 612). 설치가 사용자 단위로 이루어지는 경우(블록 608), 애플리케이션 업데이터는 사용자 계정 레벨에서 컴퓨터 애플리케이션의 완전한 후속자 버전(516)을 설치할 수 있다(블록 614). 완전한 후속자 버전(516)의 설치가 이루어지는 동안 애플리케이션 업데이트터는 선행자 버전(508)의 실행을 유지할 수 있다(블록 616). 애플리케이션 업데이터는 비어있는 후속자 데이터 저장 위치(514)에 완전한 후속자 버전(516)을 배치할 수 있다(블록 618). 애플리케이션 업데이터는 컴퓨터 애플리케이션(112)의 선행자 버전(508) 및 완전한 후속자 버전(516)을 동시에 실행할 수 있다(블록 620). 애플리케이션 업데이터는 선행자 버전(508)으로부터 완전한 후속자 버전(516)으로의 전환을 실행할 수 있다(블록 622). 애플리케이션 업데이터는 그러한 전환 동안 컴퓨터 애플리케이션(112)의 사용자 인터페이스의 프리젠테이션을 유지할 수 있다(블록 624). 애플리케이션 업데이터는 언인스톨 작업에 대해 선행자 버전(508)을 스케쥴링할 수 있다(블록 626). 언인스톨 작업이 시스템 재부팅 동안 스케쥴링되어 있는 경우(블록 628), 애플리케이션 업데이터는 시스템 재부팅 동안 선행자 버전(508)을 언인스톨할 수 있다(블록 630). 그렇지 않으면, 애플리케이션 업데이터는 완전한 후속자 버전(516)을 실행하는 동안 선행자 버전(508)을 언인스톨할 수 있다(블록 632).
본 발명은 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 기술되었지만, 첨부한 청구항에 기재된 청구 대상은 전술한 바와 같은 특정 특징 또는 동작들에 반드시 국한될 필요는 없다. 그 보다, 전술한 특정 특징 및 동작들은 청구 대상을 구현하기 위한 예시적인 형식으로 개시되어 있다.
본 발명의 범주 내의 실시예들은 또한 컴퓨터 실행 가능 명령어들 또는 데이터 구조들을 저장하거나 운반하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함할 수있다. 이러한 비 일시적 컴퓨터 판독 가능 저장 매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 제한이 아닌 예로서, 이러한 비 일시적 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 운반 또는 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 상기의 조합은 또한 비 일시적 컴퓨터 판독가능 저장 매체의 범주 내에 포함되어야한다.
실시예들은 또한 태스크가 통신 네트워크를 통해 (유선 링크, 무선 링크, 또는 이들의 조합에 의해) 링크되는 로컬 및 원격 처리 장치에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다.
컴퓨터 실행가능 명령어는 예를 들어 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적의 프로세싱 장치가 특정 기능 또는 기능의 그룹을 수행하게 하는 명령어들 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 또한 독립형 또는 네트워크 환경에서 컴퓨터에 의해 실행되는 프로그램 모듈을 포함한다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 연관된 데이터 구조 및 프로그램 모듈은 본 명세서에서 기술된 방법의 단계들을 실행하기 위한 프로그램 코드의 예를 나타낸다. 이러한 실행가능한 명령어 또는 연관된 데이터 구조의 특정 시퀀스는 이러한 단계에서 설명된 기능들을 구현하기 위한 대응하는 동작들의 예를 나타낸다.
이상의 설명은 특정 세부 사항을 포함할 수 있지만, 이들은 어떤 식으로든 청구항을 한정하는 것으로 해석되어서는 안된다. 설명된 실시예의 다른 구성은 본 발명의 범주의 일부이다. 예를 들어, 본 발명의 원리는 각각의 사용자가 개별적으로 이러한 시스템을 배포할 수 있는 각 개별 사용자에게 적용될 수 있다. 이것은 가능한 다수의 애플리케이션 중 어느 것이라도 본 명세서에 기재된 기능을 사용하지 않는 경우에도 각 사용자가 본 발명의 이점을 활용할 수 있도록 해준다. 다수의 전자 장치 각각은 콘텐츠를 다양한 가능한 방식으로 처리할 수 있다. 실시예들은 반드시 모든 최종 사용자에 의해 사용되는 하나의 시스템에서 구현될 필요는 없다. 따라서, 임의의 주어진 특정예보다는, 첨부된 청구 범위 및 그 법적 등가물만이 본 발명을 정의한다.
Claims (20)
- 컴퓨터 장치의 기본 사용자 계정에서 컴퓨터 애플리케이션의 선행자 버전(predecessor version)을 실행하는 단계와,
상기 기본 사용자 계정을 위한, 상기 컴퓨터 애플리케이션의 후속자 버전(successor version)을 설치하는 단계와,
상기 컴퓨터 장치의 보조 사용자 계정이 상기 선행자 버전을 갖고 있는 동안, 상기 기본 사용자 계정에서 상기 컴퓨터 애플리케이션의 상기 후속자 버전을 실행하는 단계와,
상기 선행자 버전으로부터 상기 후속자 버전으로의 전환을 실행하는 단계와,
상기 전환 동안 상기 컴퓨터 애플리케이션의 사용자 인터페이스의 프리젠테이션을 유지하는 단계
를 포함하는
머신 구현 방법.
- 제1항에 있어서,
업데이터 모듈을 사용하여 완전한 후속자 버전(complete successor version)을 다운로드하는 단계
를 더 포함하는
머신 구현 방법.
- 제2항에 있어서,
상기 업데이터 모듈을 사용자의 눈에 안 띄게 실행하는 단계
를 더 포함하는
머신 구현 방법.
- 제1항에 있어서,
상기 후속자 버전을 비어있는(clean) 후속자 데이터 저장 위치에 배치하는 단계
를 더 포함하는
머신 구현 방법.
- 제1항에 있어서,
상기 후속자 버전의 설치가 이루어지는 동안 상기 선행자 버전의 실행을 유지하는 단계
를 더 포함하는
머신 구현 방법.
- 삭제
- 삭제
- 제1항에 있어서,
상기 선행자 버전과 상기 후속자 버전을 동시에 실행하는 단계
를 더 포함하는
머신 구현 방법.
- 제1항에 있어서,
상기 후속자 버전을 실행하는 동안 상기 선행자 버전을 언인스톨링하는 단계
를 더 포함하는
머신 구현 방법.
- 방법을 구체화하는 명령어들의 집합이 저장된, 유형의(tangible) 머신 판독가능 매체로서,
상기 명령어들의 집합은 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 제1항 내지 제5항, 제8항 또는 제9항 중 어느 한 항에 따른 방법을 수행하게 하는,
유형의 머신 판독가능 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 애플리케이션 업데이터로서,
컴퓨터 애플리케이션의 완전한 후속자 버전을 다운로드하는 통신 인터페이스와,
상기 컴퓨터 애플리케이션의 선행자 버전을 선행자 데이터 저장 위치에 저장하고 상기 완전한 후속자 버전을 비어있는 후속자 데이터 저장 위치에 저장하는 데이터 저장소와,
기본 사용자 계정에서 상기 선행자 버전을 실행하고, 상기 기본 사용자 계정을 위한 상기 완전한 후속자 버전을 설치하고, 보조 사용자 계정이 상기 선행자 버전을 갖고 있는 동안 상기 기본 사용자 계정에서 상기 컴퓨터 애플리케이션의 상기 완전한 후속자 버전을 실행하고, 상기 선행자 버전으로부터 상기 완전한 후속자 버전으로의 전환을 실행하고, 상기 전환 동안 상기 컴퓨터 애플리케이션의 사용자 인터페이스의 프리젠테이션을 유지하는 프로세서
를 포함하는
애플리케이션 업데이터.
- 제19항에 있어서,
상기 프로세서는 상기 완전한 후속자 버전의 설치가 이루어지는 동안 상기 선행자 버전의 실행을 유지하는
애플리케이션 업데이터.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/350,810 | 2012-01-15 | ||
US13/350,810 US8893116B2 (en) | 2012-01-15 | 2012-01-15 | Installation engine and package format for parallelizable, reliable installations |
PCT/US2013/020519 WO2013106276A1 (en) | 2012-01-15 | 2013-01-07 | Installation engine and package format for parallelizable, reliable installations |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140113685A KR20140113685A (ko) | 2014-09-24 |
KR102052776B1 true KR102052776B1 (ko) | 2019-12-05 |
Family
ID=48780903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147019519A KR102052776B1 (ko) | 2012-01-15 | 2013-01-07 | 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷 |
Country Status (11)
Country | Link |
---|---|
US (2) | US8893116B2 (ko) |
EP (1) | EP2805233B1 (ko) |
JP (1) | JP6198229B2 (ko) |
KR (1) | KR102052776B1 (ko) |
CN (1) | CN104040495A (ko) |
AU (1) | AU2013208296B2 (ko) |
BR (1) | BR112014017283B1 (ko) |
CA (1) | CA2860657C (ko) |
MX (1) | MX337871B (ko) |
RU (1) | RU2635891C2 (ko) |
WO (1) | WO2013106276A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024010177A1 (ko) * | 2022-07-04 | 2024-01-11 | 삼성전자 주식회사 | 보안 회로의 애플릿을 갱신하기 위한 전자 장치 및 그의 동작 방법 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2508599A (en) * | 2012-12-04 | 2014-06-11 | Ibm | Software version management when downgrading software |
US9639342B2 (en) * | 2013-05-01 | 2017-05-02 | Starkey Laboratories, Inc. | Unobtrusive firmware updates for hearing assistance devices |
CN103442077A (zh) * | 2013-09-04 | 2013-12-11 | 珠海金山网络游戏科技有限公司 | 一种软件客户端通过网络进行更新的方法及系统 |
CN108733517A (zh) * | 2018-06-05 | 2018-11-02 | 深圳忆联信息系统有限公司 | Ssd固件升级保护方法及装置 |
CN109933465B (zh) * | 2019-03-12 | 2021-12-10 | 北京同城必应科技有限公司 | 异常处理方法、装置、服务器和存储介质 |
CN111769966B (zh) * | 2020-05-08 | 2023-06-23 | 厦门亿联网络技术股份有限公司 | 一种克隆升级方法、系统和应用 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764992A (en) | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US20080177994A1 (en) | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0954734A (ja) * | 1995-08-17 | 1997-02-25 | Fujitsu Ltd | ネットワークを活用したソフトウェア流通・保守システムおよび方法 |
US5835911A (en) * | 1994-02-08 | 1998-11-10 | Fujitsu Limited | Software distribution and maintenance system and method |
US5966715A (en) * | 1995-12-29 | 1999-10-12 | Csg Systems, Inc. | Application and database security and integrity system and method |
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
GB9623298D0 (en) | 1996-11-08 | 1997-01-08 | Int Computers Ltd | Updating mechanism for software |
JPH1145179A (ja) * | 1997-07-25 | 1999-02-16 | Digital Vision Lab:Kk | プログラム管理方法 |
US6141683A (en) * | 1998-01-30 | 2000-10-31 | Lucent Technologies, Inc. | Method for remotely and reliably updating of the software on a computer with provision for roll back |
US6463352B1 (en) * | 1999-01-21 | 2002-10-08 | Amada Cutting Technologies, Inc. | System for management of cutting machines |
US6385623B1 (en) * | 1999-11-12 | 2002-05-07 | Dell Usa, L.P. | System and method for ensuring proper execution of scheduled file updates |
US7287259B2 (en) * | 2000-04-24 | 2007-10-23 | Microsoft Corporation | Isolating assembly versions for binding to application programs |
US6711557B1 (en) * | 2000-08-14 | 2004-03-23 | Adobe Systems Incorporated | Client-based background update monitoring |
US20040003266A1 (en) | 2000-09-22 | 2004-01-01 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US20040133606A1 (en) * | 2003-01-02 | 2004-07-08 | Z-Force Communications, Inc. | Directory aggregation for files distributed over a plurality of servers in a switched file system |
TW518513B (en) * | 2001-03-28 | 2003-01-21 | Synq Technology Inc | System and method to update an executing application software by modular way |
US7100158B2 (en) * | 2002-04-30 | 2006-08-29 | Toshiba Tec Kabushiki Kaisha | Program management apparatus, program management system, and program management method |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US7784044B2 (en) * | 2002-12-02 | 2010-08-24 | Microsoft Corporation | Patching of in-use functions on a running computer system |
US7089548B2 (en) * | 2003-01-13 | 2006-08-08 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method and system for nondisruptive deployment during upgrading of enterprise systems |
US7228541B2 (en) * | 2003-01-17 | 2007-06-05 | National Instruments Corporation | Creation of application system installer |
US7546594B2 (en) * | 2003-12-15 | 2009-06-09 | Microsoft Corporation | System and method for updating installation components using an installation component delta patch in a networked environment |
JP2005301500A (ja) * | 2004-04-08 | 2005-10-27 | Fujitsu Ltd | 情報処理装置 |
US7664834B2 (en) * | 2004-07-09 | 2010-02-16 | Maxsp Corporation | Distributed operating system management |
US20060075001A1 (en) * | 2004-09-30 | 2006-04-06 | Canning Jeffrey C | System, method and program to distribute program updates |
JP2006119901A (ja) | 2004-10-21 | 2006-05-11 | Toshiba Corp | 携帯可能電子装置および携帯可能電子装置のアプリケーション更新方法 |
US20110197114A1 (en) * | 2004-12-08 | 2011-08-11 | John Martin | Electronic message response and remediation system and method |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US7774195B2 (en) * | 2005-03-08 | 2010-08-10 | Microsoft Corporation | Method and system for creating, storing, managing and consuming culture specific data |
JP2006268752A (ja) * | 2005-03-25 | 2006-10-05 | Seiko Epson Corp | 複数のバージョンに対応したモジュールの起動 |
US20060271926A1 (en) * | 2005-05-31 | 2006-11-30 | Microsoft Corporation | Split download for electronic software downloads |
US7516422B2 (en) * | 2005-07-21 | 2009-04-07 | International Business Machines Corporation | Graphical display of hierarchical hardlinks to files in a file system |
SE529676C2 (sv) * | 2006-03-02 | 2007-10-23 | Abb Ab | En metod för att utvärdera en applikation, ett automationssystem och en styrenhet |
US8726267B2 (en) * | 2006-03-24 | 2014-05-13 | Red Hat, Inc. | Sharing software certification and process metadata |
JP4946141B2 (ja) * | 2006-04-11 | 2012-06-06 | ブラザー工業株式会社 | 構成変更プログラム、および情報処理装置 |
US8769522B2 (en) * | 2006-08-21 | 2014-07-01 | Citrix Systems, Inc. | Systems and methods of installing an application without rebooting |
US20080301660A1 (en) * | 2007-05-30 | 2008-12-04 | Google Inc. | Maintaining Multiple Versions of a Software Application on a Device |
US20090193409A1 (en) * | 2008-01-24 | 2009-07-30 | Microsoft Corporation | Per User Updates |
US20090259999A1 (en) * | 2008-04-11 | 2009-10-15 | Oracle International Corporation | Method and system for applying a patch during application execution |
US20090319740A1 (en) * | 2008-06-18 | 2009-12-24 | Fujitsu Limited | Virtual computer system, information processing device providing virtual computer system, and program thereof |
US8561087B2 (en) * | 2008-07-16 | 2013-10-15 | Sandisk Il Ltd. | Methods for enabling software in storage-capable devices |
US20100058321A1 (en) * | 2008-09-04 | 2010-03-04 | Anderson Greg L | Approach for deploying software to network devices |
JP2010198383A (ja) * | 2009-02-25 | 2010-09-09 | Fujitsu Ltd | ストレージ装置、ソフトウェア更新方法およびソフトウェア更新プログラム |
US20100242037A1 (en) | 2009-03-17 | 2010-09-23 | Microsoft Corporation | Software Deployment over a Network |
US20120011496A1 (en) * | 2009-03-30 | 2012-01-12 | Nec Corporation | Service providing apparatus, service providing system, method of processing data in service providing apparatus, and computer program |
EP2438527B1 (en) * | 2009-06-04 | 2018-05-02 | Abbott Diabetes Care, Inc. | Method and system for updating a medical device |
US20110289499A1 (en) * | 2010-05-19 | 2011-11-24 | Microsoft Corporation | Techniques to automatically update software applications |
CN102299940A (zh) * | 2010-06-25 | 2011-12-28 | 龚华清 | 一种不间断网络服务的软件升级方法 |
US20120137278A1 (en) * | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Generating a customized set of tasks for migration of a deployed software solution |
US8726103B2 (en) | 2010-12-07 | 2014-05-13 | At & T Intellectual Property I, Lp | Visual outage management tool |
US9733921B1 (en) * | 2014-01-23 | 2017-08-15 | NetSuite Inc. | System and methods for management of cloud application extensions |
-
2012
- 2012-01-15 US US13/350,810 patent/US8893116B2/en active Active
-
2013
- 2013-01-07 CA CA2860657A patent/CA2860657C/en active Active
- 2013-01-07 RU RU2014128842A patent/RU2635891C2/ru active
- 2013-01-07 EP EP13736340.4A patent/EP2805233B1/en active Active
- 2013-01-07 BR BR112014017283-8A patent/BR112014017283B1/pt active IP Right Grant
- 2013-01-07 JP JP2014552230A patent/JP6198229B2/ja active Active
- 2013-01-07 KR KR1020147019519A patent/KR102052776B1/ko active IP Right Grant
- 2013-01-07 WO PCT/US2013/020519 patent/WO2013106276A1/en active Application Filing
- 2013-01-07 CN CN201380005517.3A patent/CN104040495A/zh active Pending
- 2013-01-07 AU AU2013208296A patent/AU2013208296B2/en active Active
- 2013-01-07 MX MX2014008561A patent/MX337871B/es active IP Right Grant
-
2014
- 2014-11-06 US US14/535,262 patent/US20150067668A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764992A (en) | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US20080177994A1 (en) | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024010177A1 (ko) * | 2022-07-04 | 2024-01-11 | 삼성전자 주식회사 | 보안 회로의 애플릿을 갱신하기 위한 전자 장치 및 그의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP2805233B1 (en) | 2022-11-16 |
EP2805233A1 (en) | 2014-11-26 |
WO2013106276A1 (en) | 2013-07-18 |
CN104040495A (zh) | 2014-09-10 |
AU2013208296B2 (en) | 2018-03-15 |
CA2860657C (en) | 2020-10-13 |
BR112014017283A2 (pt) | 2017-06-13 |
BR112014017283A8 (pt) | 2017-12-12 |
MX2014008561A (es) | 2014-09-26 |
US8893116B2 (en) | 2014-11-18 |
AU2013208296A1 (en) | 2014-07-31 |
US20150067668A1 (en) | 2015-03-05 |
RU2014128842A (ru) | 2016-02-10 |
JP6198229B2 (ja) | 2017-09-20 |
US20130185709A1 (en) | 2013-07-18 |
BR112014017283B1 (pt) | 2021-08-17 |
CA2860657A1 (en) | 2013-07-18 |
KR20140113685A (ko) | 2014-09-24 |
RU2635891C2 (ru) | 2017-11-16 |
EP2805233A4 (en) | 2015-08-26 |
JP2015503812A (ja) | 2015-02-02 |
MX337871B (es) | 2016-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102052776B1 (ko) | 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷 | |
JP5007046B2 (ja) | コンポーネントベースのソフトウェア・プロダクトの保守 | |
KR101963912B1 (ko) | 라이브러리 운영체제들과의 애플리케이션 호환성을 가능하게 하는 기법 | |
CN102081535B (zh) | 基于Android的应用程序升级方法、系统及应用开发平台 | |
US11561784B2 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
US8387032B1 (en) | Captive runtime deployment | |
US10747510B1 (en) | Application runtime modification | |
US9690567B2 (en) | Runtime detection of software configurations and upgrades | |
US11321080B2 (en) | Patch package generation method and device | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
US20130346958A1 (en) | Automatic provisioning of a software platform to a device ecosystem | |
KR20150022849A (ko) | 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법 | |
US9286083B2 (en) | Satisfying missing dependencies on a running system | |
CN103677937A (zh) | 升级软件和运行软件的方法及装置 | |
CN116783581A (zh) | 在云平台中配置的数据中心上部署软件发布 | |
US10514940B2 (en) | Virtual application package reconstruction | |
CN116069366A (zh) | 客户端应用程序更新方法及装置、存储介质及电子设备 | |
WO2011157105A2 (zh) | 组件扩展方法和装置 | |
CN109960522B (zh) | 一种软件升级方法及装置 | |
US20100023955A1 (en) | Method and system and apparatus for dynamic software environment | |
US11900091B2 (en) | Extensible upgrade and modification as a service | |
US11442710B2 (en) | Repository dependency management | |
US20210286637A1 (en) | Operating system-agnostic container runtime | |
CN117201469A (zh) | 用于开发部署定制化项目的方法及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |