KR101572737B1 - 메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리 - Google Patents

메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리 Download PDF

Info

Publication number
KR101572737B1
KR101572737B1 KR1020137019307A KR20137019307A KR101572737B1 KR 101572737 B1 KR101572737 B1 KR 101572737B1 KR 1020137019307 A KR1020137019307 A KR 1020137019307A KR 20137019307 A KR20137019307 A KR 20137019307A KR 101572737 B1 KR101572737 B1 KR 101572737B1
Authority
KR
South Korea
Prior art keywords
application
capsule
payload
data
information
Prior art date
Application number
KR1020137019307A
Other languages
English (en)
Other versions
KR20130108438A (ko
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 KR20130108438A publication Critical patent/KR20130108438A/ko
Application granted granted Critical
Publication of KR101572737B1 publication Critical patent/KR101572737B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

일반적으로, 메타데이터를 사용하여 애플리케이션들의 무결절성 백업 및 리커버리를 제공하는데 효율적인 시스템들 및 방법들에 대한 기술들이 설명된다. 일 예에서, 메타데이터는 애플리케이션과 연관된 데이터를 맵핑하고 이 데이터의 관계를 애플리케이션에 제공하도록 정의될 수 있다. 메타데이터로부터, 백업 시스템은 애플리케이션 데이터를 포함하는 캡슐 및 애플리케이션 관련 데이터를 포함하는 페이로드를 생성할 수 있다. 캡슐은 단지 애플리케이션 데이터뿐만 아니라 구성 정보, 및 액세스 파라미터들을 포함할 수 있다. 캡슐 및 페이로드는 백업 시스템에 의해 함께 연관되고 저장될 수 있다. 다른 예에서, 애플리케이션을 리커버링하기 위해 캡슐 및 페이로드가 취출될 수 있고, 메타데이터를 사용하여 캡슐은 언팩킹되어 그것이 백업되었던 때와 동일한 상태로 애플리케이션을 재설치할 수 있으며, 애플리케이션 관련 데이터는 페이로드로부터 복원될 수 있다.

Description

메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리{SEAMLESS APPLICATION BACKUP AND RECOVERY USING METADATA}
본 개시물은 일반적으로 메타데이터를 사용하는 애플리케이션들의 백업 및 리커버리에 관한 것이다.
소프트웨어 산업은 변화 중에 있다. 핸드 헬드 디바이스들 및 태블릿들이 급증함에 따라, 이들 디바이스들을 위해 개발되고 이들 상에 저장된 애플리케이션들의 수는 기하급수적으로 증가한다. 소프트웨어 랜드스케이프에서의 이 엄청난 변화 전에는, 개인 컴퓨터들 (PC) 에는 평균적으로 PC 당 8 내지 45 개의 애플리케이션들이 설치되어 있었다. 그러나, 평균 스마트폰 상에서, 이 평균은 폰당 85 개의 애플리케이션들에 더 가깝다. 유사하게, 태블릿들은 태블릿당 평균이 약 60 개의 애플리케이션들인 어태치 레이트 (attach rate) 를 갖는다. 온라인 앱스토어 (app-store) 들이 더욱 일반적이 됨에 따라, 핸드 헬드 디바이스들, 태블릿들 및 PC 들에 대한 애플리케이션 어태치 레이트는 더 증가할 것으로 생각된다.
종래의 백업 시스템들은 개별의 폴더 또는 폴더들의 세트를 주로 백업하는데 초점을 맞춘다. 불가피한 시스템 고장 또는 하드 드라이브 고장이 발생하는 경우, 이러한 백업 시스템들은 폴더들 또는 파일들을 리커버링 (recover) 하지만, 애플리케이션들은 자동으로 재설치되지 않을 것이다. 애플리케이션들을 수동적으로 재설치한 후 데이터 및 데이터와 애플리케이션들 간의 연관들을 복원하는 것이 필요하다. 이 태스크는, 재설치 프로세스를 다루기 힘들게 만들 수 있는 PC 들 및 다른 디바이스들 상에서 발견된 애플리케이션들의 수에서의 폭발적인 증가에 의해 악화된다.
시스템 백업 및 리커버리는, 애플리케이션들의 각종 카테고리들이 그 백업 필요성들에 대해 상이한 요건들을 갖기 때문에 더 복잡해진다. 일부 애플리케이션들은 디바이스 상에 자가-포함되고, 단지 재설치되야할 필요가 있다. 다른 애플리케이션들은, 애플리케이션이 디바이스 상에 상주할 수도 있으나 이 애플리케이션과 연관된 데이터는 클라우드 상에 상주하는 하이브리드일 수도 있다. 유사하게, 애플리케이션은 멀티-하이브리드일 수도 있는데, 여기서 애플리케이션의 일부분은 디바이스 상에 상주하고, 애플리케이션의 일부분은 클라우드 상에 상주하며, 데이터는 디바이스 및 클라우드 양자 모두에 상주한다.
시스템 및 애플리케이션 백업 및 리커버리에 대한 종래의 접근들의 전술된 결함들은 주로 종래의 접근들 및 기법들의 문제점들 중 일부의 개관을 제공하도록 의도되고, 완전한 것으로 의도되지 않는다. 종래의 시스템들 및 기법들이 갖는 다른 문제점들, 및 본원에 설명된 각종 비제한적인 실시형태들의 대응하는 이점들은 다음의 상세한 설명의 리뷰시에 더욱 명백해질 수도 있다.
다양한 비제한적인 실시형태들에서, 메타데이터를 사용하는 무결절성 (seamless) 애플리케이션 백업 및 리커버리를 위한 시스템들 및 방법들이 제공된다. 일 예에서, 컴퓨팅 디바이스는 애플리케이션과 연관된 메타데이터를 수신할 수 있고, 컴퓨팅 디바이스는 그 후 메타데이터에 기초하여, 애플리케이션에 관련된 정보의 제 1 부분 및 애플리케이션에 관련된 정보의 제 2 부분을 수집할 수 있는데, 여기서 정보의 제 1 부분은 정보의 제 2 부분과 상이하다. 정보의 제 1 부분 및 정보의 제 2 부분이 수집되는 경우, 컴퓨팅 디바이스는 정보의 제 1 부분을 캡슐화하고 정보의 제 2 부분을 캡슐화하여 백업을 위해 저장 매체에 저장되게 할 수 있다.
다른 실시형태에서, 애플리케이션과 연관된 메타데이터가 취출될 수 있고, 애플리케이션에 대응하는 캡슐 및 페이로드가 또한 취출될 수도 있다. 애플리케이션 구성 정보, 설치 데이터, 및 액세스 파라미터는 애플리케이션 캡슐로부터 추출되고, 애플리케이션을 리커버링하도록 사용될 수도 있다. 또한, 페이로드로부터 추출된 애플리케이션 특정 데이터는 메타데이터에 따라 복원된다.
상기 요약은 단지 예시적이며 임의의 제한하는 방식인 것으로 의도되지 않는다. 전술된 예시적인 양태들, 실시형태들, 및 피처들에 추가하여, 추가의 양태들, 실시형태들, 및 피처들이 도면들 및 다음의 상세한 설명을 참조하여 명백해질 것이다.
각종 비제한적인 실시형태들이 첨부 도면들을 참조하여 추가로 설명된다.
도 1 은 애플리케이션들의 세트를 백업하기 위한 시스템의 예시의, 비 제한의 실시형태를 나타내는 블록도이다.
도 2 는 애플리케이션들의 세트에서의 변화들을 검출하고 백업된 애플리케이션 컴포넌트들을 업데이트하는 업데이트 시스템의 예시의, 비제한적인 실시형태를 나타내는 블록도이다.
도 3 은 애플리케이션들을 백업하기 위한 버저닝 (versioning) 시스템의 예시의, 비제한적인 실시형태를 나타내는 블록도이다.
도 4 는 메타데이터를 사용하여 애플리케이션을 백업하는 예시의, 비제한적인 실시형태의 흐름도를 예시한다.
도 5 는 캡슐 및 페이로드를 생성함으로써 애플리케이션을 백업하는 예시의, 비제한적인 실시형태의 흐름도를 예시한다.
도 6 은 애플리케이션에서의 변화를 검출하고 정보의 부분들을 재-캡슐화하는 예시의, 비제한적인 실시형태의 흐름도를 예시한다.
도 7 은 애플리케이션을 재설치하고 이 애플리케이션과 연관된 데이터를 복원하는 리커버리 시스템의 예시의, 비제한적인 실시형태를 나타내는 블록도이다.
도 8 은 메타데이터를 사용하여 캡슐 및 페이로드로부터 애플리케이션을 복원하는 예시의, 비제한적인 실시형태의 흐름도이다.
도 9 는 특정 캡슐 및 연관된 페이로드로부터 애플리케이션을 복원하는 예시의, 비제한적인 실시형태의 흐름도이다.
도 10 은 애플리케이션에 대한 메타데이터를 정의하고, 이 메타데이터에 기초하여 캡슐 및 페이로드를 생성하기 위한 컴퓨터 판독가능 명령들의 세트의 예시의, 비제한적인 실시형태의 흐름도를 나타낸다.
도 11 은 애플리케이션들을 백업 및 복원하기 위해 배열되는 예시의 컴퓨팅 디바이스를 나타내는 블록도이다.
개관
다음의 상세한 설명에서, 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조가 이루어진다. 도면들에서, 콘텍스트가 다르게 구술하지 않는다면, 유사한 부호들은 통상 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면, 및 청구항들에서 설명된 예시의 실시형태들은 제한되는 것으로 의미되지 않는다. 본원에 제시된 주제의 범위 또는 사상을 벗어남 없이, 다른 실시형태들이 이용될 수도 있고 다른 변경들이 이루어질 수도 있다. 본원에 일반적으로 설명되고 도면에 예시된 것으로서, 본 개시물의 양태들은 광범위한 상이한 구성들로 배열, 대체, 결합, 분리, 및 설계될 수 있고, 이 구성들 모두는 본원에서 명백하게 고려되는 것으로 용이하게 이해될 것이다.
전술된 바와 같이, 다양한 애플리케이션들의 백업 및 리커버리를 다루기 위한 종래의 접근들은 주로 애플리케이션들 및 그 연관된 데이터를 무결절성으로 백업하지 않고 개별적인 파일들 및 폴더들을 백업하는 것에 초점을 맞췄다. 예를 들어, 종래의 접근들은 지정된 폴더들을 백업하고, 하드 드라이브 고장 또는 시스템 고장의 경우에 그 원래 로케이션들에 백업된 폴더들을 대체하지만 반드시 애플리케이션들 및 애플리케이션 특정 데이터를 재설치하지는 않는다.
다양한, 비제한적인 실시형태들에서 애플리케이션들 및 관련 데이터를 그 구성 파트들 안에 백업하는 무결절성 (seamless) 백업 및 리커버리 시스템이 제공된다. 리커버리 시 또는 이에 응답하여, 애플리케이션은 자동으로 리커버링된 애플리케이션에 의해 생성되거나 이에 의해 이용된 데이터 모두로 그리고 온전하게 복원될 수도 있다.
예로써, 도 1 은 애플리케이션들을 백업하기 위한 시스템의 예시의, 비제한적인 실시형태의 블록도를 나타낸다. 도 1 에 도시된 바와 같이, 설치된 애플리케이션들의 세트 (102) 를 저장 모듈 (110) 에 백업하도록 백업 시스템 (100) 이 제공된다. 메타데이터 모듈 (104) 은 애플리케이션들 중 적어도 하나와 연관된 메타데이터를 정의할 수 있고, 이 메타데이터는 패키징 모듈 (106) 에 의해 판독되어 정의된 메타데이터에 기초하여 설치된 애플리케이션들의 세트 (102) 각각에 대한 캡슐 및 페이로드를 생성할 수도 있다. 백업 모듈 (108) 은 캡슐들 및 페이로드들을 수신하고, 각각의 캡슐 및 페이로드에 식별자를 할당하며, 캡슐 및 페이로드를 저장 모듈 (110) 에 저장할 수 있다.
설치된 애플리케이션들의 세트 (102) 는 핸드헬드 디바이스, 태블릿, PC, 또는 애플리케이션들이 설치될 수 있는 임의의 컴퓨팅 디바이스 상에 설치될 수 있다. 용어 디바이스는 본 문헌 전체에서 사용되지만, 이것은 전술된 컴퓨팅 디바이스들 중 어느 하나를 지칭할 수 있다. 설치된 애플리케이션들의 세트 (102) 는 또한 클라우드 네트워크 또는 그것의 일부 하이브리드 상에 완전히 설치될 수도 있는데, 여기서 애플리케이션의 일부는 클라우드 상에 상주하고 애플리케이션들의 나머지 부분은 컴퓨팅 디바이스 상에 있다.
메타데이터 모듈 (104) 은 설치된 애플리케이션들의 세트 (102) 중 적어도 하나와 연관된 메타데이터를 정의할 수 있다. 메타데이터 모듈 (104) 은 애플리케이션과 연관된 데이터의 로케이션을 맵핑할 뿐만 아니라 애플리케이션 자체의 로케이션을 맵핑하도록 구성될 수 있다. 애플리케이션과 연관된 데이터의 로케이션은 데이터의 논리적 어드레스, 물리적 어드레스, 또는 계층적 어드레스일 수 있다. 일 예에서, 메타데이터 모듈 (104) 은 디바이스 상의 애플리케이션 관련 데이터의 로케이션을 제공할 수 있다. 애플리케이션 관련 데이터는 애플리케이션에 의해 생성되거나 이에 의해 이용되는 임의의 데이터 또는 애플리케이션을 구성하는 데이터, 설치 파일들일 수 있다. 메타데이터 모듈 (104) 은 또한, 맵핑되는 데이터의 유형을 결정하고, 애플리케이션에 의해 데이터가 사용되는 방법을 나타낼 수 있다. 일부 애플리케이션 관련 데이터는 애플리케이션의 동작 또는 사용을 위한 것이지만, 다른 애플리케이션 관련 데이터는 애플리케이션의 산물 (product) 일 수도 있다.
다른 예에서, 메타데이터 모듈 (104) 은 또한, 네트워크 뿐만 아니라 디바이스 상의 애플리케이션 관련 데이터의 로케이션을 결정하기 위해 네트워크를 맵핑하도록 구성될 수 있다. 메타데이터 모듈 (104) 은 또한, 애플리케이션을 설치하는 명령들을 수집 및 정의할 수 있다. 명령들은 애플리케이션 폴더들로부터, 애플리케이션으로부터, 또는 인터넷으로부터 수집될 수도 있다. 메타데이터 모듈 (104) 은 또한, 애플리케이션의 원래의 설치에 기초하여 애플리케이션을 설치하기 위한 명령들을 정의할 수 있다.
메타데이터 모듈 (104) 은 또한, 애플리케이션의 로케이션을 정의할 수 있는, 각각의 애플리케이션에 대한 구성 파일을 생성할 수 있다. 구성 파일은 또한, 애플리케이션의 사용자-선택가능 구성들 및 애플리케이션에 대한 변경들과 같이, 애플리케이션을 백업 및 리커버링하는데 사용될 수 있는 애플리케이션의 속성들을 포함할 수 있다. 메타데이터 모듈 (104) 은 또한, 애플리케이션을 실행하는데 필요하다면 액세스 파라미터들을 정의할 수 있다. 액세스 파라미터들은 제품 등록 키들, 활성화 키들, 패스워드들 및 애플리케이션을 백업 및 리커버링하는데 필요한 다른 필요 정보일 수 있다. 일 예에서, 메타데이터 모듈 (104) 은 각각의 애플리케이션에 대한 메타데이터를 생성 및 정의할 수 있고, 정의된 메타파일을 각각의 애플리케이션과 연관시킬 수 있다. 다른 예에서, 메타파일은 설치된 애플리케이션들의 세트와 연관될 수 있다. 메타데이터 모듈 (104) 에 의해 정의된 메타데이터는 모든 애플리케이션에 대해 고유할 수 있음이 상기로부터 명백해질 것이다.
추가의 비제한적인 실시형태에서, 메타데이터 모듈 (104) 은 애플리케이션과 미리 연관되는 메타파일에 기초하여 애플리케이션에 대한 메타데이터를 정의할 수 있다. 미리 연관된 메타파일은 다른 애플리케이션에 의해 생산될 수도 있고, 사용자-생성될 수 있고, 또는 설치된 애플리케이션과 패키징될 수 있다. 메타데이터 모듈 (104) 은 미리 연관된 메타파일을 정의된 메타데이터에 완전히 통합할 수 있거나, 메타데이터 모듈은 미리 연관된 메타파일을 분석하고 미리 연관된 메타파일의 관련 부분들을 사용하여, 만약 있다면 애플리케이션에 대한 메타데이터를 정의하도록 구성될 수 있다.
패키징 모듈 (106) 은 애플리케이션에 대해 정의된 메타데이터를 메타데이터 모듈 (104) 로부터 수신하도록 구성될 수 있다. 수신된 메타데이터에 기초하여, 패키징 모듈 (106) 은 설치된 애플리케이션들의 세트 (102) 로부터 애플리케이션에 관련된 정보를 수집할 수 있다. 패키징 모듈 (106) 은 수집된 정보의 제 1 부분으로부터 캡슐을 생성할 수 있다. 정보의 제 1 부분은 애플리케이션을 재설치하는데 사용되는 정보를 포함할 수 있다. 이러한 정보는, 설치 파일들, 구성 명령들, 액세스 파라미터들, 및 동작할 애플리케이션에 의해 사용된 다른 데이터를 포함할 수 있으나, 이에 한정되지는 않는다. 정보의 제 1 부분은 캡슐 안에 캡슐화 또는 패키징될 수 있다. 일 예에서, 캡슐은 압축 없이 패키징되었던 정보 만을 포함할 수도 있는 반면에, 다른 예에서 정보는 캡슐의 크기를 축소시키도록 압축될 수도 있다.
패키징 모듈 (106) 은 또한, 수신된 메타데이터에 기초하여 설치된 애플리케이션들의 세트 (102) 로부터 정보의 제 2 부분을 수집할 수 있고, 이 정보의 제 2 부분을 페이로드 안에 패키징할 수 있다. 정보의 제 2 부분은 애플리케이션과 연관되고, 애플리케이션에 의해 생성되거나 이에 의해 이용되는 데이터일 수 있다. 상기와 같이, 패키징 모듈 (106) 은 파일들을 포함하는 페이로드를 압축된 포맷, 또는 압축해제된 포맷으로 캡슐화할 수도 있다.
하나의 실시형태에서, 패키징 모듈 (106) 은 메타데이터 모듈 (104) 에 의해 나타낸어진 바와 같이 패키징될 데이터의 유형에 기초하여 캡슐이나 페이로드 중 어느 하나에 포함되는 정보를 선택할 수 있다. 메타데이터 모듈 (104) 이, 정보가 구성 정보, 설치 명령들, 설치 데이터, 액세스 파라미터들, 또는 실행할 애플리케이션에 의해 사용된 다른 데이터 중 적어도 하나임을 나타내면, 패키징 모듈 (106) 은 데이터를 캡슐 안에 캡슐화할 수 있다. 대안으로, 메타데이터 모듈 (104) 이, 맵핑된 데이터가 애플리케이션을 실행하는데 사용되지 않거나, 애플리케이션에 의해 생성되거나 애플리케이션에 의해 이용된 데이터임을 나타내면, 데이터 파일들은 페이로드 안에 패키징될 수 있다.
백업 모듈 (108) 은 패키징 모듈 (106) 로부터 패키징된 캡슐 및 페이로드를 수신하고, 이 캡슐 및 페이로드를 백업을 위해 준비하도록 구성될 수 있다. 페이로드 및 캡슐은 스토리지에 함께 연관되므로, 캡슐은 대응하는 페이로드와 함께 저장된다. 백업 모듈 (108) 은 또한, 각각의 캡슐 및 페이로드에 식별자를 할당하고 이 식별자의 레코드를 보유할 수 있다. 식별자는 또한, 캡슐 및 페이로드 세트에 할당될 수 있다. 식별자는 백업 시간과 날짜, 애플리케이션의 명칭, 애플리케이션의 버전, 애플리케이션이 설치되는 디바이스나 PC, 또는 백업을 개시한 사용자나 프로세스 중 적어도 하나를 나타낼 수 있다. 각각의 캡슐 및 페이로드에 할당된 식별자는 검색 파라미터들을 충족하는 캡슐들 및 페이로드들에 대한 검색이 이루어지게 할 수 있다.
추가의 실시형태에서, 백업 모듈 (108) 은 특정 애플리케이션의 대응하는 페이로드들과 캡슐들을 연관시켜 상이한 애플리케이션들에 대응하는 캡슐들 및 페이로드들로부터 그들을 구별할 수 있다.
백업 모듈 (108) 은 연관된 캡슐 및 페이로드들을 저장 모듈 (110) 에 저장하도록 또한 구성될 수 있다. 저장 모듈 (110) 은 컴퓨팅 디바이스 상의 로컬 스토리지, 또는 USB 플래시 드라이브, 외장 하드 드라이브, 플로피 디스크, 테이프 드라이브, 또는 임의의 다른 공용으로 사용된 모바일 저장 디바이스들일 수 있다. 저장 모듈 (110) 은 또한, 네트워크 디바이스, 네트워크 드라이브, 또는 원격 저장 로케이션일 수 있다. 일 예에서, 원격 저장 로케이션은 인터넷 기반 저장 로케이션일 수 있고, 또는 추가의 예에서 로컬 영역 네트워크 상에 있을 수 있다.
일 실시형태에서, 저장 모듈 (110) 은 캡슐 및 페이로드의 단 하나의 세트를 포함할 수 있고, 또는 하나의 애플리케이션에 대응하는 다수의 캡슐들 및 페이로드들을 포함할 수 있다. 추가의 실시형태에서, 저장 모듈 (110) 은 단일의 디바이스 또는 PC 상에 다수의 애플리케이션들에 대응하는 캡슐들 및 페이로드들을 보유할 수 있다. 또 다른 실시형태에서, 저장 모듈 (110) 은 다수의 디바이스들로부터의 캡슐들 및 페이로드들을 저장할 수 있다. 이 실시형태에 덧붙여, 저장 모듈 (110) 은 따라서 백업되고 있는 다수의 디바이스들에 대한 스토리지로서 기능할 수 있다. 이 예에서, 백업 모듈 (108) 에 의해 할당된 식별자는 각각의 캡슐 및 페이로드 세트가 어느 디바이스에 대응하는지를 식별할 수 있다.
이제 도 2 를 참조하면, 애플리케이션들의 세트에서의 변화들을 검출하고 백업된 애플리케이션 컴포넌트들을 업데이트하는 업데이트 시스템의 예시의, 비제한적인 실시형태의 블록도가 도시된다. 도 2 에 도시된 바와 같이, 시스템 (200) 은 설치된 애플리케이션들의 세트 (102), 메타데이터 모듈 (104), 업데이트 모듈 (204), 및 저장 모듈 (110) 을 포함할 수 있다. 메타데이터 모듈 (104) 은 검출 모듈 (202) 을 더 포함할 수 있다. 검출 모듈 (202) 은 설치된 애플리케이션들의 세트 (102) 에서 애플리케이션의 변화들 또는 변경들을 검출하고, 애플리케이션과 연관된 메타데이터를 수정할 수 있다. 업데이트 모듈 (204) 은 수정된 메타데이터를 사용하여 새로운 캡슐들 및 페이로드들을 패키징 및 백업하고 그들을 기존의 캡슐들 및 페이로드들과 병행하여 저장 모듈 (110) 에 저장할 수 있다.
일 실시형태에서, 검출 모듈 (202) 은 메타데이터에 의해 맵핑된 데이터를 모니터링하고, 애플리케이션에서의 변화들을 검출할 수 있다. 변화들이 검출되는 경우, 검출 모듈 (202) 은 새로운 메타데이터를 생성하거나 애플리케이션과 연관된 기존의 메타데이터를 변경할 수 있다. 검출된 변화들은 애플리케이션의 버전의 변화들, 구성 변화들, 애플리케이션이 발견될 수 있는 로케이션에서의 변화들 등을 포함할 수 있으나, 이에 한정되지는 않는다. 검출 모듈 (202) 은 또한, 애플리케이션에 의해 생성되거나 이에 의해 사용되는 애플리케이션 특정 데이터에서의 변화들을 검출할 수 있다. 이 데이터에 대한 변화들은 변화된 파일들, 삭제된 파일들, 및 추가된 파일들을 포함할 수 있으나, 이에 한정되지는 않는다.
추가의 실시형태에서, 검출 모듈 (202) 은 스케줄에 따라 변화들을 스캔하도록 구성될 수 있다. 이러한 스케줄은 매 시간, 매일, 매주, 또는 임의의 다른 적합한 시간 간격으로 애플리케이션 관련 데이터에서의 변화들을 스캔하도록 검출 모듈에 지시할 수 있다. 또 다른 실시형태에서, 검출 모듈 (202) 은 트리거 이벤트에 응답하여 애플리케이션 관련 데이터에서의 변화들을 스캔할 수 있다. 트리거링은 애플리케이션의 설치 또는 삭제, 디바이스 턴 온 또는 디바이스 재시작, 또는 새로운 디바이스 검출일 수 있으나, 이에 한정되지는 않는다. 트리거링 이벤트의 발생 시에, 검출 모듈 (202) 은 메타데이터 모듈 (104) 에 의해 맵핑된 데이터에서의 변화들을 자동으로 검색할 수 있다.
검출 모듈 (202) 이 변화를 검출하는 경우, 애플리케이션과 연관된 메타데이터는 메타데이터 모듈 (104) 에 의해 변형되어 이 변화들을 반영할 수 있다. 메타데이터는 또한, 메타데이터 모듈 (104) 에 의해 정의된 새로운 메타데이터로 대체될 수 있는데, 이 새로운 메타데이터는 검출 모듈 (202) 에 의해 검출된 바와 같은 애플리케이션 관련 데이터에서의 변화들을 통합하고 있다.
업데이트 모듈 (204) 은 애플리케이션, 또는 애플리케이션들의 세트에 대해 업데이트된 메타데이터를 메타데이터 모듈 (104) 로부터 수신할 수 있다. 업데이트된 메타데이터에 기초하여, 업데이트 모듈 (204) 은 애플리케이션 또는 애플리케이션들의 세트에 관련된 정보를 수집하여, 저장 모듈 (110) 상의 백업된 캡슐들 및 페이로드들을 업데이트할 수 있다.
일 실시형태에서, 업데이트 모듈 (204) 은 업데이트된 메타데이터를 수신하고, 업데이트된 메타데이터에 기초하여 추가 캡슐 및 추가 페이로드를 생성하도록 구성될 수 있다. 새로운 캡슐은 완전한 캡슐일 수도 있고, 검출 모듈 (202) 에 의해 변화들이 검출된 때의 상태로 애플리케이션을 복원하는데 사용될 수 있다. 새로운 페이로드는 또한, 애플리케이션 특정 데이터를 완전히 복원하는데 사용될 수 있다. 업데이트 모듈은 그 후, 새로운 캡슐 및 페이로드에 식별자를 할당할 수 있다. 식별자는 백업 시간과 날짜, 애플리케이션의 명칭, 애플리케이션의 버전, 애플리케이션이 설치되는 디바이스나 PC, 또는 백업을 개시한 사용자나 프로세스 중 적어도 하나를 나타낼 수 있다.
본 실시형태에 덧붙여, 업데이트 모듈 (204) 은 그 후, 새로운 캡슐 및 새로운 페이로드를 저장 모듈 (110) 로 송신할 수 있다. 저장 모듈 (110) 은 이전에 백업된 캡슐 및 페이로드를 대체하거나, 새로운 그리고 오래된 캡슐들 및 페이로드들을 함께 저장할 수 있다. 새로운 그리고 오래된 캡슐들 및 페이로드들 양자 모두가 저장 모듈 (110) 에 저장되면, 백업 모듈 (108) 및 업데이트 모듈 (204) 에 의해 각각 할당된 식별자는 캡슐들 및 페이로드들을 구별하도록 기능할 수 있다.
다른 실시형태에서, 업데이트 모듈 (204) 은 저장 모듈로부터 캡슐 및 페이로드를 취출할 수 있다. 업데이트 모듈 (204) 은 캡슐 및 페이로드를 일시적으로 언팩킹 (unpack) 할 수 있다. 업데이트 모듈 (204) 은 그 후, 업데이트된 메타데이터에 기초하여 언팩킹된 캡슐 및 페이로드에서의 정보의 오래된 부분들을, 업데이트된 메타데이터에 따라 새롭게 변화된 부분들로 대체할 수 있다. 정보의 업데이트가 완료되는 경우, 업데이트 모듈 (204) 은 그 후, 캡슐 및 패키지를 재-캡슐화하고 그들을 다시 저장 모듈 (110) 로 전송할 수 있다. 업데이트 모듈 (204) 은 또한, 캡슐 및 페이로드에 대한 식별자를 업데이트하여 업데이트가 발생했다는 것을 나타내고, 업데이트의 시간과 날짜를 제공할 수 있다.
또 다른 실시형태에서, 업데이트 모듈 (204) 은 검출 모듈 (202) 이 단지 정보의 제 1 부분에서의 변경들, 또는 단지 정보의 제 2 부분에서의 변경들을 검출하는 경우 캡슐 또는 페이로드 중 단 하나를 업데이트할 수 있다. 이 실시형태에 덧붙여, 업데이트된 페이로드 또는 업데이트된 캡슐은 동일한 애플리케이션에 대응하는 이전의 캡슐들 및 페이로드들과 연관될 수 있다. 이 방식으로, 하나의 애플리케이션은 애플리케이션의 백업을 구성하는 다른 수의 캡슐들 및 페이로드들을 가질 수 있다.
이제 도 3 을 참조하면, 애플리케이션을 백업하는 버저닝 시스템의 예시의, 비제한적인 실시형태를 나타내는 블록도가 도시된다. 시스템 (300) 은 설치된 애플리케이션 (314) 에 대응하는 캡슐들 및 페이로드들의 세트 (302) 를 포함할 수 있다. 캡슐들 및 페이로드들의 세트 (302) 는 캡슐 (304), 업데이트된 캡슐 (306) 및 페이로드들 (308-312) 을 더 포함할 수 있다. 도 3 은 2 개의 캡슐들 및 이 캡슐들에 대응하는 페이로드들의 세트를 도시하였으나, 캡슐들 및 페이로드들의 임의의 조합이 가능한 것으로 이해되어야 한다. 또한, 버전 모듈 (316) 이 제공되어, 백업되고 있는 애플리케이션 및 페이로드의 버전에 관한 정보를 제공할 수 있다.
버전 모듈 (316) 은 도 1 및 도 2 각각의 백업 시스템 및 업데이트 시스템과 관련하여 작업할 수 있다. 버전 모듈 (316) 은 애플리케이션 (314) 의 버전을 결정할 수 있고 이 애플리케이션에 대응하는 캡슐들에 대한 버전을 나타낼 수 있다. 캡슐들이 업데이트되고 캡슐들 및 페이로드들의 세트 (302) 에 추가됨에 따라, 버전 모듈 (316) 은 업데이트된 캡슐 (306) 을 마킹할 수 있으므로, 그것이 애플리케이션 (316) 의 최근 버전에 대응한다는 것이 명백하다.
캡슐들 및 페이로드들의 세트 (302) 는 애플리케이션 (314) 에 대응한다. 캡슐 (304) 및 업데이트된 캡슐 (306) 은 애플리케이션 (314) 을 재설치하는데 사용되는 정보를 포함할 수 있는 정보의 제 1 부분을 각각 포함할 수 있다. 이러한 정보는 설치 파일들, 구성 명령들, 액세스 파라미터들, 및 동작할 애플리케이션에 의해 사용되는 다른 데이터를 포함할 수 있으나, 이에 한정되지는 않는다. 페이로드들 (308-312) 은 각각 애플리케이션과 연관되고, 애플리케이션에 의해 생성되거나 이에 의해 이용되는 데이터를 포함할 수 있다. 각각의 페이로드는 페이로드가 생성되었던 시간 및 날짜로 버전 모듈 (316) 에 의해 마킹될 수 있다. 각각의 페이로드는 또한, 캡슐 (304) 또는 업데이트된 캡슐 (306) 과 연관될 수 있다.
도 4 내지 도 6 은 전술된 시스템들에 관련되는 프로세스들을 나타낸다. 도 4 내지 도 6 의 프로세스들은 예를 들어 도 1, 도 2, 및 도 3 에 각각 예시된 시스템들 (100, 200, 또는 300) 에 의해 구현될 수 있다.
도 4 는 메타데이터를 사용하여 애플리케이션을 백업하는 예시의, 비제한적인 실시형태의 흐름도를 나타낸다. 400 에서, 애플리케이션과 연관된 메타데이터를 수신함으로써 백업 프로세스가 개시된다. 메타데이터는 도 1 에 관하여 전술된 바와 같이 메타데이터 모듈 (104) 에 의해 정의될 수 있고, 또는 메타데이터는 애플리케이션과 미리 연관될 수 있다. 수신된 메타데이터는 애플리케이션에 관한 정보의 로케이션, 데이터의 유형, 및 애플리케이션에 대한 그 관계를 정의한다. 수신된 메타데이터는 또한, 애플리케이션 관련 정보를 2 개의 카테고리들, 정보의 제 1 부분 및 정보의 제 2 부분으로 구분할 수 있다.
410 에서, 애플리케이션에 관련된 정보의 제 1 부분은 애플리케이션 관련 정보의 메타데이터의 구분에 기초하여 수집된다. 정보의 제 1 부분은, 메타데이터를 사용하여 정보가 어디에 로케이팅되는지를 결정하고, 그 후 지정된 로케이션들로부터 정보를 수집함으로써 수집될 수 있다.
420 에서, 애플리케이션과 관련된 정보의 제 2 부분이 수집된다. 정보의 제 2 부분은 정보의 제 1 부분과 구별된다. 전술된 제 1 부분과 유사하게, 정보의 제 2 부분은 애플리케이션 관련 정보의 메타데이터의 분류에 기초하여 수집될 수 있다. 메타데이터는 또한, 애플리케이션에 관련된 정보의 제 2 부분이 발견될 수 있는 로케이션들의 세트, 또는 로케이션을 지정할 수 있다. 일단 로케이션들이 결정되면, 정보가 수집될 수 있다.
430 에서, 정보의 제 1 및 제 2 부분들이 캡슐화된다. 정보의 제 1 부분은 캡슐로 캡슐화되고, 정보의 제 2 부분은 페이로드로 캡슐화될 수 있다. 일 예에서, 캡슐화 프로세스는 캡슐 및 페이로드를 압축하여 콘테이너의 크기를 더 작게 만들 수 있다. 다른 예에서, 캡슐화는 압축 없이 실행될 수 있다.
도 5 는 캡슐 및 페이로드를 생성함으로써 애플리케이션을 백업하는 예시의, 비제한적인 실시형태의 흐름도를 나타낸다. 500 에서, 애플리케이션과 연관된 메타데이터를 수신함으로써 백업 프로세스가 개시된다. 메타데이터는 도 1 에 관하여 전술된 바와 같이 메타데이터 모듈 (104) 에 의해 정의될 수 있고, 또는 메타데이터는 애플리케이션과 미리 연관될 수 있다. 수신된 메타데이터는 애플리케이션에 관한 정보의 로케이션, 데이터의 유형, 및 애플리케이션에 대한 그 관계를 정의한다. 수신된 메타데이터는 또한, 애플리케이션 관련 정보를 2 개의 카테고리들, 정보의 제 1 부분 및 정보의 제 2 부분으로 구분할 수 있다. 정보의 제 1 부분은 애플리케이션을 재설치하는데 사용되는 정보를 포함할 수 있다. 이러한 정보는 애플리케이션 설치 데이터, 설치 파일들, 구성 명령들, 액세스 파라미터들, 및 동작할 애플리케이션에 의해 사용되는 다른 데이터를 포함하지만, 이에 한정되지는 않는다. 정보의 제 2 부분은 애플리케이션과 연관된 데이터를 포함할 수 있지만, 애플리케이션에 의해 수집되거나 이에 의해 이용된 데이터와 같이 애플리케이션의 실행을 위해 필요하지는 않다.
510 에서, 애플리케이션 관련 정보의 메타데이터의 구분에 기초하여, 애플리케이션에 관련된 정보의 제 1 부분이 수집된다. 정보의 제 1 부분은 정보가 로케이팅되는 지를 결정하기 위해 메타데이터를 사용하고, 그 후 지정된 로케이션들로부터 정보를 수집함으로써 수집될 수 있다.
520 에서, 애플리케이션에 관련된 정보의 제 2 부분이 수집된다. 애플리케이션에 의해 수집되거나 이에 의해 이용된 데이터를 포함하는, 정보의 제 2 부분이 또한 수집된다. 메타데이터는 또한, 애플리케이션에 관련된 정보의 제 2 부분이 발견될 수 있는 로케이션들의 세트, 또는 로케이션을 지정할 수 있다. 일단 로케이션들이 결정되면, 정보가 수집될 수 있다.
530 에서, 정보의 제 1 및 제 2 부분들은 캡슐 및 페이로드로 각각 캡슐화된다. 일 예에서, 캡슐화 프로세스는 캡슐 및 페이로드를 압축하여 콘테이너의 크기를 더 작게 만들 수 있다. 다른 예에서, 캡슐화는 정보의 제 1 부분 및 정보의 제 2 부분을 그 각각의 콘테이너들에 남아 있게 함으로써 압축 없이 실행될 수 있다.
도 6 은 애플리케이션에서의 변경을 검출하고 정보의 일부들을 재-캡슐화하는 예시의, 비제한적인 실시형태의 흐름도를 나타낸다. 600 에서, 정보의 제 1 부분 또는 정보의 제 2 부분에 대한 변경이 검출된다. 정보의 제 1 부분 및 정보의 제 2 부분은 함께, 메타데이터 모듈 (104) 이 메타데이터를 맵핑 및 생성한 애플리케이션 관련 정보를 형성할 수 있다. 검출된 변경은 제 1 부분 및 제 2 부분 양자에 대한 변경들일 수 있고, 다르게는 제 1 부분 또는 제 2 부분 중 어느 하나 각각에서의 변화일 수 있다. 검출된 변경들은 애플리케이션의 버전에서의 변화들, 구성 변화들, 애플리케이션이 발견될 수 있는 로케이션에서의 변화들, 또는 변화된 파일들, 추가된 파일들, 또는 삭제된 파일들과 같은 애플리케이션 특정 데이터에서의 변화들을 포함할 수 있으나, 이에 한정되지는 않는다.
610 에서, 변경의 검출 시에, 변경이 검출되었던 정보의 일부분이 재-캡슐화될 수 있다. 변경이 검출되었던 정보의 일부분이 수집될 수 있고, 일단 정보가 수집되면 정보의 일부분은 캡슐화될 수 있다. 상기와 같이, 캡술화 프로세스는 일부분을 캡슐화하는 경우 정보의 일부분을 압축하거나 정보의 일부분이 압축해제될 수 있다.
정보의 재-캡술화된 부분들은 그 후, 동일한 애플리케이션에 대응하는 원래의 캡슐화된 제 1 및 제 2 부분들과 연관될 수 있다. 연관 프로세스 동안, 캡슐들 및 페이로드들은 그들이 언제 캡슐화되었는지 그리고 캡슐들 및 페이로드들이 대응하는 애플리케이션의 버전이 무엇인지를 나타내도록 마킹될 수 있다.
예로써, 도 7 은 애플리케이션 (714) 을 재설치하고 애플리케이션과 연관된 데이터를 복원하는 리커버리 시스템의 예시의, 비제한적인 실시형태를 나타낸다. 도 7 에 도시된 바와 같이, 저장 모듈 (702) 은 연관된 페이로드들과 캡슐들의 세트를 저장할 수 있다. 취출 모듈 (704) 은 저장 모듈 (702) 로부터 선택된 캡슐 및 페이로드를 취출할 수 있고, 취출된 캡슐 및 페이로드를 추출 모듈 (706), 및 리커버리 모듈 (712) 로 각각 전송할 수 있다. 애플리케이션을 재설치하기 위해 재설치 모듈 (710) 이 제공될 수 있고, 또한 애플리케이션 특정 데이터를 복원하는 것을 돕도록 리커버리 모듈 (712) 이 제공된다. 또한, 리커버리 시스템을 가이드하도록 애플리케이션과 연관된 메타데이터를 제공하기 위해 애플리케이션 메타파일 (708) 이 제공될 수 있다.
저장 모듈 (702) 은 컴퓨팅 디바이스 상의 로컬 스토리지, 또는 USB 플래시 드라이브, 외장 하드 드라이브, 플로피 디스크, 테이프 드라이브, 또는 임의의 다른 공용으로 사용된 모바일 저장 디바이스들일 수 있다. 저장 모듈 (702) 은 또한, 네트워크 디바이스, 네트워크 드라이브, 또는 원격 스토리지 로케이션일 수 있다. 일 예에서, 원격 스토리지 로케이션은 인터넷 기반 스토리지 로케이션일 수 있고, 또는 추가의 예에서 로컬 영역 네트워크 또는 와이드 영역 네트워크일 수 있다.
취출 모듈 (704) 은 다양한 메커니즘들을 통해 저장 모듈 (702) 로부터 캡슐 및 페이로드를 선택하여 취출하도록 구성될 수 있다. 일 예에서, 취출 모듈 (704) 은 최근 및 최신식의 데이터 캡슐 및 페이로드를 취출하기 위한 명령들을 수신할 수 있다. 다른 예에서, 취출 모듈 (704) 은 또한, 사용자-지정된 캡슐 및 페이로드를 취출하도록 구성될 수 있다. 또 다른 예에서, 취출 모듈 (704) 은, 캡슐 또는 페이로드가 업데이트된 시간 및 날짜, 캡슐이 대응하는 애플리케이션의 버전, 페이로드의 크기, 또는 이들의 임의의 조합을 포함할 수 있는 파라미터들의 세트에 기초하여 캡슐 및 페이로드를 취출할 수 있다.
추출 모듈 (706) 은 취출 모듈 (704) 로부터 취출된 캡슐을 수신하고 애플리케이션 메타파일 (708) 을 분석한다. 애플리케이션 메타파일 (708) 은 취출된 캡슐이 연관되는 애플리케이션에 대응하는 메타데이터를 제공한다. 추출 모듈 (706) 은 취출된 캡슐을 언팩킹하도록 구성될 수 있고, 또한 메타파일을 분석하여 캡슐의 콘텐츠들을 조직화하도록 구성될 수 있다.
일 실시형태에서, 캡슐은 데이터 파일들을 포함하고 분석된 메타파일은 캡슐의 구조에 관련된 정보를 제공할 수 있으며, 이 정보에 기초하여 추출 모듈 (706) 은 언팩킹된 데이터를 조직화하여 애플리케이션 (714) 을 재설치하기 위한 데이터를 준비한다. 메타데이터는 설치 및 구성 명령들에 관련된 정보를 포함할 수 있는데, 이것은 재설치 모듈 (710) 로 하여금 적합한 구성으로 정확한 로케이션에 애플리케이션을 재설치하게 한다.
추가의 실시형태에서, 언팩킹된 캡슐은 조직 구조를 보유하고, 구성 명령들을 갖는다. 이 경우, 메타파일은 예를 들어 어느 디렉토리에 파일들이 재설치되어야 하는지를 나타냄으로써 애플리케이션을 재설치하는 곳에 관한 정보를 제공할 수 있다.
메타데이터에 기초하여, 그리고 추출 모듈 (706) 로부터 추출된 캡슐 콘텐츠들을 사용하여, 재설치 모듈 (710) 은 애플리케이션 (714) 을 재설치한다. 메타데이터는 애플리케이션 (714) 을 재설치할 곳에 관한 정보를 제공할 수 있고, 캡슐 콘텐츠들은 애플리케이션 (714) 을 재설치하는데 필요한 설치 데이터 파일들, 구성 명령들, 및 액세스 파라미터들을 제공할 수 있다.
일 실시형태에서, 재설치 모듈 (710) 은 원격 로케이션으로부터 애플리케이션 (714) 을 재설치하도록 구성될 수 있다. 다른 실시형태에서, 재설치 모듈 (710) 은 애플리케이션 (714) 을 국부적으로 재설치하도록 구성될 수 있고, 또는 애플리케이션 (714) 을 부분적으로는 원격적으로 그리고 부분적으로는 국부적으로 재설치하도록 구성될 수 있다.
일단 애플리케이션 (714) 이 재설치되면, 리커버리 모듈 (712) 은 애플리케이션을 설치하는데 필요하지 않았던 애플리케이션 특정 데이터를 복원할 수 있다. 리커버리 모듈 (712) 은 취출 모듈 (704) 로부터 취출된 페이로드를 수신하고, 페이로드를 언팩킹하여 애플리케이션 특정 데이터에 액세스하도록 구성될 수 있다. 리커버리 모듈은 그 후, 애플리케이션 메타데이터 (708) 를 분석하여 애플리케이션 특정 데이터를 복원할 곳을 결정할 수 있다. 메타데이터는 복원될 애플리케이션 특정 데이터의 각 파일에 로케이션들의 리스트를 제공할 수 있고, 리커버리 모듈 (712) 은 그 리스트에 따라 데이터를 복원할 수 있다.
도 8 및 도 9 는 도 7 에 예시된 시스템과 관련되는 프로세스를 나타낸다. 도 8 및 도 9 의 프로세스는 예를 들어 시스템 (700) 에 의해 구현될 수 있다.
도 8 은 메타데이터를 사용하여 캡슐 및 페이로드로부터 애플리케이션을 복원하는 예시의, 비제한적인 실시형태의 흐름도이다.
800 에서, 애플리케이션과 연관되는 메타데이터를 취출하고, 동일한 애플리케이션에 대응하는 캡슐 및 페이로드를 취출함으로써 복원 프로세스가 개시된다. 일 실시형태에서, 메타데이터는 캡슐 및 페이로드로부터 별개로 저장되는 메타파일로부터 판독될 수 있다. 다른 실시형태에서, 메타데이터는 캡슐 및 페이로드와 함께 저장될 수 있다.
810 에서, 애플리케이션 구성 정보, 설치 데이터, 및 액세스 파라미터가 캡슐로부터 추출된다. 추출 프로세스는, 캡슐이 압축되는 경우 캡슐을 압축 해제하고, 그 후 캡슐의 컴포넌트 파트들을 추출하는 것을 포함할 수 있고, 또는 캡슐이 압축되지 않는 경우 단지 추출만을 포함할 수 있다. 일 예에서, 취출된 메타데이터는 또한, 아무것도 없는 경우 추출된 캡슐 컴포넌트들에 구조물을 제공하는데 사용될 수 있다. 이 예에 덧붙여, 메타데이터는 추출된 캡슐의 어느 파트들이 애플리케이션 구성 정보, 설치 데이터, 및 액세스 파라미터들인지를 결정하도록 캡슐의 컴포넌트들을 식별하는데 사용될 수 있다.
820 에서, 애플리케이션은 애플리케이션 구성 정보 및 액세스 파라미터를 사용하여 설치 데이터로부터 리커버링된다. 메타데이터와 함께, 애플리케이션 구성 정보는 재설치 프로세스를 가이드하고, 액세스 파라미터는 재설치된 애플리케이션에 대한 액세스를 제공하는데 사용될 수 있다.
830 에서, 페이로드에서의 애플리케이션 특정 데이터는 애플리케이션에 의해 생성되거나 이에 의해 이용된 모든 데이터를 복원하는데 사용된다. 메타데이터는, 애플리케이션 특정 데이터 파일들이 복원되는 로케이션을 다이렉팅함으로써 복원 프로세스에 대한 가이드를 제공한다.
도 9 는 특정 캡슐 및 연관된 페이로드로부터 애플리케이션을 복원하는 예시의, 비제한적인 실시형태의 흐름도이다.
900 에서, 특정 캡슐에 대한 요청이 취출된다. 이 요청은 최근 및 가장 최신식 데이터 캡슐을 취출하기 위한 것일 수 있고, 또는 요청은 사용자 지정될 수 있다. 요청은 또한, 캡슐 또는 페이로드가 업데이트된 시간과 날짜, 캡슐이 대응하는 애플리케이션의 버전, 페이로드의 크기, 또는 이들의 임의의 조합을 포함할 수 있는 특정 파라미터들에 기초한 캡슐에 대한 검색에 기초할 수 있다.
910 에서, 일단 특정 캡슐이 취출되었으면, 이 특정 캡슐과 연관되는 적어도 하나의 페이로드가 취출될 수 있다. 페이로드는 백업된 최근의 페이로드일 수 있고, 또는 선택된 캡슐과 연관된 임의의 페이로드일 수 있다. 특정 페이로드는 또한, 특정 캡슐이 요청되었던 동일한 방식으로 요청될 수 있다.
920 에서, 애플리케이션은 특정 캡슐로부터의 추출된 설치 데이터, 애플리케이션 구성 정보 및 액세스 파라미터에 기초하여 리커버링될 수 있다.
930 에서, 애플리케이션에 의해 생성되고 이에 의해 이용된 데이터는 페이로드로부터 복원될 수 있다. 이 복원 프로세스는 데이터를 복원하기 위한 로케이션을 다이렉팅하는 메타데이터에 따라 행해질 수 있다.
도 10 은 애플리케이션에 대한 메타데이터를 정의하고, 이 메타데이터에 기초하여 캡슐 및 페이로드를 생성하는 컴퓨터 판독가능 명령들의 세트의 예시의, 비제한적인 실시형태의 흐름도를 나타낸다. 컴퓨터 판독가능 저장 매체 (1000) 는 컴퓨터 실행가능 명령들을 포함할 수 있다. 1010 에서, 명령들은 애플리케이션과 연관된 데이터를 맵핑하는 것을 포함하는, 애플리케이션의 메타데이터를 정의하도록 동작할 수 있다. 메타데이터는 애플리케이션과 연관되는 데이터의 로케이션을 맵핑할 뿐만 아니라 애플리케이션 자체의 로케이션을 맵핑함으로써 정의될 수 있다. 애플리케이션과 연관된 데이터의 로케이션을 맵핑하는 것은 데이터의 논리적 어드레스, 물리적 어드레스, 또는 계층적 어드레스를 맵핑할 수 있다. 정의 (definition) 프로세스는 또한, 맵핑되는 데이터의 유형을 결정하고, 애플리케이션에 의해 이 데이터가 사용되는 방법을 나타낼 수 있다. 일부 애플리케이션 관련 데이터는 애플리케이션의 동작 또는 사용을 위한 것이지만, 다른 애플리케이션 관련 데이터는 애플리케이션의 산물일 수 있다. 메타데이터를 정의하기 위한 명령들은 또한, 애플리케이션을 설치하고, 애플리케이션으로부터 액세스 파라미터를 추출하는 설치 명령들을 결정하기 위한 명령들을 포함할 수 있다.
1020 에서, 이들 명령들은 설치 명령들 및 액세스 파라미터에 기초하여 구성 정보를 생성하도록 동작할 수 있다. 구성 정보는 그 후, 1030 에서 설치 데이터 파일과 관련되어 사용되어 캡슐을 생성한다. 이 동작은 1010 으로부터 정의된 메타데이터에 기초한다.
1040 에서, 이들 명령들은 애플리케이션과 연관된 데이터의 페이로드를 형성하도록 동작할 수 있다. 페이로드는 애플리케이션을 동작하는데 사용되지 않는 애플리케이션 특정 데이터로 구성되지만, 대신에 동작에 의해 생성 또는 이에 의해 이용되는 데이터이다.
예시의 컴퓨팅 환경
FIG. 11 은 애플리케이션을 백업 및 복원하기 위해 배열되는 예시의 컴퓨팅 디바이스 (1100) 를 나타내는 블록도이다. 매우 기본적인 구성 (1102) 에서, 컴퓨팅 디바이스 (1100) 는 통상적으로 하나 이상의 프로세서들 (1104) 및 시스템 메모리 (1106) 를 포함한다. 프로세서 (1104) 와 시스템 메모리 (1106) 간의 통신을 위해 메모리 버스 (1108) 가 사용될 수도 있다.
원하는 구성에 따라, 프로세서 (1104) 는 마이크로프로세서 (μΡ), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하지만 이에 한정되지는 않는 임의의 유형일 수도 있다. 프로세서 (1104) 는 레벨 1 캐시 (1110) 및 레벨 2 캐시 (1112) 와 같은 하나 이상의 레벨들의 캐싱, 프로세서 코어 (1114), 및 레지스터들 (1116) 을 포함할 수도 있다. 예시의 프로세서 코어 (1114) 는 산술 논리 유닛 (ALU), 부동소수점 처리 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP 코어), 또는 이들의 임의의 조합을 포함할 수도 있다. 예시의 메모리 제어기 (1118) 는 또한, 프로세서 (1104) 와 함께 사용될 수 있으며, 또는 일부 구현들에서, 메모리 제어기 (1118) 는 프로세서 (1104) 의 내부 파트일 수도 있다.
원하는 구성에 따르면, 시스템 메모리 (1106) 는 휘발성 메모리 (예컨대, RAM), 비휘발성 메모리 (예컨대, ROM, 플래시 메모리 등) 또는 이들의 임의의 조합을 포함하지만 이들에 한정되지 않는 임의의 유형일 수도 있다. 시스템 메모리 (1106) 는 운영 시스템 (1120), 하나 이상의 애플리케이션 (1122), 및 프로그램 데이터 (1124) 를 포함할 수도 있다. 애플리케이션 (1122) 은 본원에 설명되는 기능들을 수행하도록 배열되는 백업 및 리커버리 모듈 (1126) 을 포함할 수도 있다. 프로그램 데이터 (1124) 는 백업 및 리커버리 프로세스 및 리스소 정보를 포함할 수도 있다. 일부 실시형태들에서, 애플리케이션 (1122) 은, 운영 시스템 (1120) 상의 프로그램 데이터 (1124) 와 동작하도록 배열될 수도 있다.
컴퓨팅 디바이스 (1100) 는 추가의 피처들 또는 기능, 및 기본 구성 (1102) 과 임의의 필요한 디바이스들 및 인터페이스들 간의 통신들을 용이하게 하는 추가의 인터페이스들을 가질 수도 있다. 예를 들어, 버스/인터페이스 제어기 (1130) 는 저장 인터페이스 버스 (1134) 를 통해 기본 구성 (1102) 과 하나 이상의 데이터 저장 디바이스들 (1132) 간의 통신을 용이하게 하는데 사용될 수 있다. 데이터 저장 디바이스들 (1132) 은 착탈형 저장 디바이스들 (1136), 비-착탈형 저장 디바이스들 (1138), 또는 이들의 조합일 수도 있다. 착탈형 저장 및 비-착탈형 저장 디바이스들의 예들은, 몇 가지만 예를 들면, 플렉서블 디스크 드라이브들 및 하드디스크 드라이브들 (HDD) 과 같은 자기 디스크 디바이스들, 콤팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들과 같은 광학 디스크 드라이브들, 솔리드 스테이트 드라이브들 (SSD) 및 테이프 드라이브들을 포함한다. 예시의 컴퓨터 저장 매체는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈형 및 비-착탈형 매체를 포함할 수도 있다.
시스템 메모리 (1106), 착탈형 저장 디바이스들 (1136) 및 비-착탈형 저장 디바이스들 (1138) 은 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD) 또는 다른 광학적 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 디바이스 (1100) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만 이들에 한정되지 않는다. 임의의 이러한 컴퓨터 저장 매체는 컴퓨팅 디바이스 (1100) 의 일부일 수도 있다.
컴퓨팅 디바이스 (1100) 는 또한, 버스/인터페이스 제어기 (1130) 를 통해 다양한 인터페이스 디바이스들 (예를 들어, 출력 디바이스들 (1142), 주변장치 인터페이스들 (1144), 및 통신 디바이스들 (1166)) 로부터 기본 구성 (1102) 으로의 통신을 용이하게 하기 위한 인터페이스 버스 (1140) 를 포함할 수도 있다. 예시의 출력 디바이스들 (1142) 은 그래픽 프로세싱 유닛 (1148) 및 오디오 프로세싱 유닛 (1150) 을 포함하는데, 이들은 하나 이상의 A/V 포트들 (1152) 을 통해 디스플레이 또는 스피커들과 같은 다양한 외부 디바이스들과 통신하도록 구성될 수도 있다. 예시의 주변장치 인터페이스들 (1144) 은 직렬 인터페이스 제어기 (1154) 또는 병렬 인터페이스 제어기 (1156) 를 포함하는데, 이들은 하나 이상의 I/O 포트들 (1158) 을 통해 입력 디바이스들 (예를 들어, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 또는 다른 주변장치 디바이스들 (예를 들어, 프린터, 스캐너 등) 과 같은 외부 디바이스들과 통신하도록 구성될 수도 있다. 예시의 통신 디바이스 (1146) 는 네트워크 제어기 (1160) 를 포함하는데, 이는 하나 이상의 통신 포트들 (1164) 을 통해 네트워크 통신 링크를 거쳐 하나 이상의 다른 컴퓨팅 디바이스들 (1162) 과의 통신을 용이하게 하도록 배열될 수도 있다.
네트워크 통신 링크는 통신 매체의 일례이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파나 다른 전송 메커니즘과 같은 변조된 데이터 신호에서의 다른 데이터에 의해 구현될 수도 있으며, 임의의 정보 전달 매체를 포함할 수도 있다. "변조된 데이터 신호" 는 신호에서의 정보를 인코딩하도록 하는 방식으로 설정되거나 변경된 특징들 중 하나 이상을 갖는 신호일 수도 있다. 제한이 아니라 예시로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 (direct-wired connection) 과 같은 유선 매체, 및 어쿠스틱, 무선 주파수 (RF), 마이크로파, 적외선 (IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수도 있다. 본원에서 사용되는 바와 같은 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 양자 모두를 포함할 수도 있다.
컴퓨팅 디바이스 (1100) 는 소형 폼 팩터 휴대용 (또는 모바일) 전자 디바이스, 예컨대 셀 폰, 개인 휴대 정보 단말기 (PDA), 개인 미디어 플레이어 디바이스, 무선 웹-와치 디바이스, 개인 헤드셋 디바이스, 애플리케이션 특정 디바이스, 또는 상기 기능들 중 어느 하나를 포함하는 하이브리드 디바이스의 일부로서 구현될 수도 있다. 컴퓨팅 디바이스 (1100) 는 또한, 랩톱 컴퓨터 및 비-랩톱 컴퓨터 구성들 양자를 포함하는 퍼스널 컴퓨터로서 구현될 수도 있다.
주제의 개시물은 본 출원에 설명된 특정 실시형태들의 관점들에 제한되지 않으며, 이는 다양한 양태들의 예시들로서 의도된다. 당업자에게 자명한 바와 같이, 본 출원의 사상 및 범위로부터 벗어남 없이 많은 변경들 및 변형들이 이루어질 수 있다. 본 개시물의 범위 내의 기능적으로 동등한 방법들 및 장치들은, 본원에 열거된 것들에 추가하여, 상기 설명들로부터 당업자에게 자명해질 것이다. 이러한 변경들 및 변형들은 첨부된 청구항들의 범위 내에 있도록 의도된다. 주제의 개시물은, 이러한 청구항들에 권리가 주어지는 등가물들의 전 범위와 함께 첨부된 청구항들의 관점에 의해서만 제한되도록 한다. 본 개시물은 특정 방법들, 시약들, 화합물들, 조성들 또는 생물학적 시스템에 제한되지 않으며, 이들은 물론 변할 수 있다. 또한, 본원에 사용된 용어들은 단지 특정 실시형태들을 설명하기 위한 것이며, 제한되도록 의도되지 않는다.
예시적인 실시형태에서, 본원에 설명된 동작들, 프로세스들 등 중 어느 하나는 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 판독가능 명령들로서 구현될 수 있다. 컴퓨터 판독가능 명령들은 모바일 유닛의 프로세서, 네트워크 엘리먼트, 및/또는 임의의 다른 컴퓨팅 디바이스에 의해 실행될 수 있다.
시스템의 양태들의 하드웨어 구현과 소프트웨어 구현 간에 약간의 차이가 있다; 하드웨어 또는 소프트웨어의 사용은 일반적으로 비용 대 효율 트레이드오프를 나타내는 디자인 선택이다 (항상 그러한 것은 아니지만, 소정 상황에서 하드웨어와 소프트웨어 간의 선택은 중요해질 수도 있다). 본원에 설명된 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 영향을 받을 수 있는 각종 비히클들 (예를 들어, 하드웨어, 소프트웨어, 및/또는 펌웨어) 이 존재하고, 바람직한 비히클은 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 전개되는 맥락에서 변할 수도 있다. 예를 들어, 시행자가, 속도 및 정확도가 가장 중요하다고 결정하면, 시행자는 주로 하드웨어 및/또는 펌웨어 비히클을 선택할 수도 있다; 플렉서빌리티가 가장 중요하면, 시행자는 주로 소프트웨어 구현을 선택할 수도 있다; 또는 다시 한번 대안으로, 시행자는 하드웨어, 소프트웨어, 및/또는 펌웨어의 일부 조합을 선택할 수도 있다.
상기 상세한 설명은 블록도, 플로우차트, 및/또는 예들의 사용을 통해 프로세스들 및/또는 디바이스들의 각종 실시형태들을 설명하였다. 이러한 블록도, 플로우차트, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 이러한 블록도, 플로우차트, 또는 예들 내에서 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 사실상 이들의 임의의 조합의 광범위에 의해 개별적으로 그리고/또는 집합적으로 구현될 수도 있음을 당업자들은 이해할 것이다. 일 실시형태에서, 본원에 설명된 주제의 여러 부분들은 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 디지털 신호 프로세서 (DSP), 또는 다른 집적된 포맷들을 통해 구현될 수도 있다. 그러나, 당업자는, 본원에 개시된 실시형태들의 일부 양태들이, 전체로 또는 부분적으로, 하나 이상의 컴퓨터들 상에서 실행되는 하나 이상의 컴퓨터 프로그램으로서 (예를 들어, 하나 이상의 컴퓨터 시스템 상에서 실행되는 하나 이상의 프로그램들로서), 하나 이상의 프로세서들 상에서 실행되는 하나 이상의 프로그램들로서 (예를 들어, 하나 이상의 마이크로프로세서들 상에서 실행되는 하나 이상의 프로그램들로서), 펌웨어로서, 또는 사실상 이들의 임의의 조합으로서, 집적 회로에서 동등하게 구현될 수도 있고, 소프트웨어 및/또는 펌웨어에 대한 코드를 기입하고/하거나 회로를 설계하는 것이 본 개시물을 고려하여 당업자에게 잘 알려져 있다는 것을 인지할 것이다. 또한, 당업자는, 본원에 설명된 주제의 메커니즘들이 다양한 형태들로 프로그램 제품으로서 배포될 수 있고 본원에 설명된 주제의 예시적인 실시형태가 실제로 배포를 수행하기 위해 사용된 신호 베어링 매체의 특정 유형에 관계없이 적용할 수 있음을 인식할 것이다. 신호 베어링 매체의 예들로는, 비 제한적으로 다음을 포함한다: 플로피 디스크, 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능 유형 매체; 및 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 송신 유형 매체.
당업자는, 본원에 설명된 방식으로 디바이스들 및/또는 프로세스들을 설명하고 그 후 그러한 설명된 디바이스들 및/또는 프로세스들을 데이터 프로세싱 시스템들로 통합하기 위해 엔지니어링 실행들을 사용하는 것이 일반적임을 당업자는 인지한다. 즉, 본원에 설명된 디바이스들 및/또는 프로세스들의 적어도 일부는 타당한 양의 실험을 통해 데이터 프로세싱 시스템들 안에 통합될 수도 있다. 당업자는, 통상의 데이터 프로세싱 시스템이 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 디바이스, 휘발성 및 비휘발성 메모리와 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서들과 같은 프로세서들, 운영 시스템, 드라이버들, 그래픽 사용자 인터페이스들과 같은 계산 엔티티들, 및 애플리케이션 프로그램들, 터치 패드 또는 스크린과 같은 하나 이상의 상호작용 디바이스들, 및/또는 피드백 루프 및 컨트롤 모터 (예를 들어 위치 및/또는 속도를 감지하기 위한 피드백; 컴포넌트들 및/또는 양들을 이동 및/또는 조정하기 위한 컨트롤 모터) 를 포함하는 컨트롤 시스템들 중 하나 이상을 포함한다는 것을 인지한다. 통상의 데이터 프로세싱 시스템은 임의의 적합한 상용 가능한 컴포넌트들, 예컨대 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템들에서 통상적으로 발견된 것들을 이용하여 구현될 수도 있다.
본원에 설명된 주제는 가끔, 상이한 다른 컴포넌트들 내에 포함되거나 이들과 접속된 상이한 컴포넌트들을 예시한다. 이러한 도시된 아키텍처들은 단지 예시적이며, 사실 동일한 기능을 달성하는 많은 다른 아키텍처들이 구현될 수도 있는 것으로 이해된다. 개념적 의미에서, 동일한 기능을 달성하기 위한 컴포넌트들의 임의의 어레인지먼트는 원하는 기능이 달성되도록 효과적으로 "연관된다". 따라서, 특정 기능을 달성하기 위해 결합된 본원의 임의의 2 개의 컴포넌트들은, 아키텍처들 또는 매개 컴포넌트들에 관계없이 원하는 기능이 달성되도록 서로 "연관되는" 것으로서 보여질 수도 있다. 유사하게, 이렇게 연관된 임의의 2 개의 컴포넌트들은 또한, 원하는 기능을 달성하도록 서로에게 "동작 가능하게 접속" 되거나 "동작 가능하게 커플링" 된 것으로 보여질 수도 있고, 그렇게 연관될 수 있는 임의의 2 개의 컴포넌트들은 또한 원하는 기능을 달성하도록 서로에게 "동작 가능하게 커플링가능한" 것으로서 보여질 수도 있다. 동작 가능하게 커플링가능한 특정 예들은, 물리적으로 접속 가능한 및/또는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용 가능한 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용 가능한 컴포넌트들을 포함하지만, 이에 한정되지는 않는다.
본원에서 실질적으로 임의의 복수 용어 및/또는 단수 용어의 사용에 대해서, 당업자는 문맥 및/또는 애플리케이션에 적합하도록 복수에서 단수로 및/또는 단수에서 복수로 해석할 수도 있다. 다양한 단수/복수의 치환은 간결함을 위해 본원에서 명백히 설명될 수도 있다.
일반적으로, 본원에 그리고 특히 첨부된 청구항 (예를 들어, 첨부된 청구항의 본문) 에서 사용되는 용어는 일반적으로 "개방적인" 용어들로서 의도되어야 한다 (예를 들어, "포함하는" 이라는 용어는 "포함하지만 한정되지 않는" 으로 해석되어야 하고, "갖는" 이라는 용어는 "적어도 갖는" 으로 해석되어야 하고, "포함한다" 라는 용어는 "포함하지만 한정되지 않는다" 로 해석되어야 한다) 는 것이 당업자에 의해 이해될 것이다. 또한, 도입된 청구항 기재의 특정한 수가 의도되는 경우, 이러한 의도는 청구항에 명시적으로 기재될 것이며, 이러한 기재의 부재 시에 그러한 의도가 없다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 이해를 돕기 위하여, 다음의 첨부된 청구항은 청구항 기재를 도입하기 위한 "적어도 하나" 및 "하나 이상" 의 서두 어구의 사용을 포함할 수도 있다. 그러나, 이러한 어구의 사용은, 동일 청구항이 서두 어구 "하나 이상" 또는 "적어도 하나" 및 "a" 또는 "an" 과 같은 부정관사 (예를 들어, "a" 및/또는 "an" 은 "적어도 하나" 또는 "하나 이상" 을 의미하도록 해석되어야 한다) 를 포함할 때에도, 부정관사 "a" 또는 "an" 에 의한 청구항 기재의 도입이 이렇게 도입된 청구항 기재를 포함하는 임의의 특정 청구항을 하나의 이러한 기재만을 포함하는 실시형태들로 한정한다는 것을 내포하는 것으로 해석되어서는 안 되며, 청구항 기재를 도입하는데 사용되는 정관사의 사용에 대해서도 동일하게 유효하다. 또한, 도입되는 청구항 기재의 특정 수가 명시적으로 기재되는 경우에도, 당업자는 이러한 기재가 적어도 기재된 수를 의미하는 것 (예를 들어, 다른 수식어 없이, "2 개의 기재" 에 대한 그대로의 기재는, 적어도 2 개의 기재들 또는 2 개 이상의 기재들을 의미한다) 으로 해석되어야 한다는 것을 인식할 것이다. 또한, "A, B 또는 C 중 적어도 하나 등" 과 유사한 관례가 사용되는 경우에서, 일반적으로 이러한 구성은 당업자가 그 관례를 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B 및 C 중 적어도 하나를 갖는 시스템" 은 A 만을, B 만을, C 만을, A 및 B 를 함께, A 및 C 를 함께, B 및 C 를 함께, 및/또는 A, B 및 C 를 함께 등을 갖는 시스템을 포함하지만 이에 한정되지 않을 것이다). "A, B 또는 C 중 적어도 하나 등" 과 유사한 관례가 사용되는 경우에서, 일반적으로 이러한 구성은 당업자가 그 관례를 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B 또는 C 중 적어도 하나를 갖는 시스템" 은 A 만을, B 만을, C 만을, A 및 B 를 함께, A 및 C 를 함께, B 및 C 를 함께, 및/또는 A, B 및 C 를 함께 등을 갖는 시스템을 포함하지만 이에 한정되지 않을 것이다). 또한, 상세한 설명, 청구범위 또는 도면에서, 2 개 이상의 택일적 용어를 나타내는 사실상 임의의 이접 단어 및/또는 어구가 용어들 중 하나, 용어들 중 어느 한쪽 또는 양 용어 모두를 포함할 가능성들을 고려하도록 이해되어야 한다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성을 포함하도록 이해될 것이다.
또한, 본 개시물의 피처들 또는 양태들이 마커쉬 (Markush) 군들에 의해 기술되는 경우에, 당업자는 본 개시물이 또한 이에 따라 마커쉬 군의 임의의 개별 요소 또는 요소들의 하위군에 의해 기술됨을 인식할 것이다.
당업자에 의해 이해되는 바와 같이, 임의의 그리고 모든 목적을 위해, 예컨대 서면 기재를 제공하는 관점에서, 본원에 개시된 모든 범위는 또한 임의의 그리고 모든 가능한 하위범위 (subrange) 및 그 하위범위들의 조합을 망라한다. 임의의 열거된 범위는 충분히 기술하고 동일 범위가 적어도 2 등분, 3 등분, 4 등분, 5 등분, 10 등분 등으로 분할되게 하는 것으로서 용이하게 인식될 수 있다. 비한정적 예로서, 본원에서 논의된 각각의 범위는 용이하게 하위 3 분의 1, 중위 3 분의 1 및 상위 3 분의 1 등으로 분할될 수도 있다. 또한, 당업자에 의해 이해되는 바와 같이, "까지", "적어도" 등과 같은 모든 용어는 인용된 수를 포함하고 계속해서 상술한 바와 같은 하위범위들로 분할될 수도 있는 범위를 지칭한다. 마지막으로, 당업자에 의해 이해되는 바와 같이, 범위는 각각의 개별 요소를 포함한다. 따라서, 예를 들어, 1 내지 3 개의 셀들을 갖는 군은 1 개의 셀, 2 개의 셀 또는 3 개의 셀을 갖는 군들을 지칭한다. 유사하게, 1 내지 5 개의 셀들을 갖는 군은 1 개의 셀, 2 개의 셀, 3 개의 셀, 4 개의 셀 또는 5 개의 셀을 갖는 군들 등을 지칭한다.
상기로부터, 본 개시물의 다양한 실시형태들은 예시의 목적으로 본원에 설명되었으나, 본 개시물의 범위 및 사상으로부터 벗어남 없이 다양한 변형들이 이루어질 수도 있음이 인식될 것이다. 따라서, 본원에 개시된 다양한 실시형태들은 제한으로 의도되지 않으며, 다음의 청구항들에 의해 나타나는 범위 및 사상을 갖는다.

Claims (36)

  1. 적어도 하나의 컴퓨팅 디바이스에 의해, 애플리케이션과 연관된 메타데이터를 수신하는 단계로서, 상기 메타데이터는 상기 애플리케이션과 관련된 데이터를 지칭하는, 상기 수신하는 단계;
    상기 메타데이터에 의해 지칭된 상기 데이터의 분석에 기초하여, 상기 애플리케이션과 관련된 상기 데이터가 상기 애플리케이션에 관한 정보의 제 1 부분 및 상기 제 1 부분과는 상이한 상기 애플리케이션에 관한 정보의 제 2 부분에 대응한다고 결정하는 단계;
    상기 애플리케이션에 연관된 액세스 파라미터를 식별하는 단계로서, 상기 액세스 파라미터는 상기 애플리케이션에 대한 액세스를 용이하게 하는, 상기 식별하는 단계;
    상기 결정하는 단계에 기초하여, 상기 정보의 제 1 부분 및 상기 정보의 제 2 부분을 수집하는 단계;
    상기 정보의 제 1 부분 및 상기 액세스 파라미터를 캡슐로, 상기 정보의 제 2 부분을 페이로드로 캡슐화하는 단계;
    제 1 식별자를 상기 캡슐로 제 2 식별자를 상기 페이로드로 할당하는 단계;
    상기 제 1 식별자와 상기 제 2 식별자를 연관시키는 단계;
    상기 정보의 제 1 부분 및 상기 정보의 제 2 부분 중 적어도 하나와 연관된 어드레스 블록의 변경을 검출하는 단계;
    상기 변경의 검출에 응답하여, 변경된, 상기 정보의 제 1 부분 또는 상기 정보의 제 2 부분에 연관된 다른 캡슐 또는 다른 페이로드를 캡슐화하는 단계;
    제 3 식별자를 상기 다른 캡슐로, 제 4 식별자를 상기 다른 페이로드로 할당하는 단계; 및
    상기 제 3 식별자 및 상기 제 4 식별자를 상기 제 1 식별자 및 상기 제 2 식별자에 연관시키는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 정보의 제 1 부분을 수집하는 것은 애플리케이션 설치 데이터, 구성 정보, 또는 액세스 파라미터 중 적어도 하나를 수집하는 것을 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 정보의 제 2 부분을 수집하는 것은 상기 애플리케이션에 의해 생성된 데이터 또는 상기 애플리케이션에 의해 이용된 데이터 중 적어도 하나를 수집하는 것을 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 정보의 제 1 부분 및 상기 정보의 제 2 부분을 캡슐화하는 단계는,
    상기 정보의 제 1 부분을 포함하는 제 1 캡슐을 형성하는 단계; 및
    상기 정보의 제 2 부분을 포함하는 제 1 페이로드를 형성하는 단계를 더 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 제 1 캡슐 및 상기 제 1 페이로드를 로컬 하드 드라이브, 외장 하드 드라이브, 플래시 메모리, 또는 네트워크 서버 중 적어도 하나에 저장하는 단계를 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 제 1 식별자, 제 2 식별자, 제 3 식별자 및 제 4 식별자는, 캡슐화의 시간 및 날짜, 상기 애플리케이션의 명칭, 상기 애플리케이션의 버전 및 상기 애플리케이션이 설치되는 디바이스를 나타내는, 방법.
  7. 제 1 항에 있어서,
    상기 다른 캡슐을 캡슐화하는 것은, 변경된 상기 정보의 제 1 부분을 재캡슐화하는 것, 및 변경된 상기 정보의 제 1 부분을 포함하는 제 2 캡슐을 형성하는 것을 포함하는, 방법.
  8. 제 7 항에 있어서,
    상기 제 2 캡슐을 상기 제 1 캡슐 및 상기 제 1 페이로드와 연관시키는 것을 더 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 다른 페이로드를 캡슐화하는 것은, 변경된 상기 정보의 제 2 부분을 재캡슐화하는 것, 및 변경된 상기 정보의 제 2 부분을 포함하는 제 2 페이로드를 형성하는 것을 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 제 2 페이로드를 상기 제 1 캡슐 및 상기 제 1 페이로드와 연관시키는 것을 더 포함하는, 방법.
  11. 제 1 항에 있어서,
    상기 다른 페이로드를 캡슐화하는 것은, 스케줄에 따라, 변경된 상기 정보의 제 2 부분을 재캡슐화하는 것을 포함하는, 방법.
  12. 제 1 항에 있어서,
    상기 메타데이터를 수신하는 것은, 상기 애플리케이션에 관련된 상기 정보의 로케이션을 표현하는 메타데이터 정보를 수신하는 것을 더 포함하는, 방법.
  13. 메모리에 커플링된, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성된 프로세서로서, 상기 명령들은 적어도,
    애플리케이션과 관련된 데이터를 맵핑하게 하고;
    상기 애플리케이션과 관련된 상기 데이터의 물리적, 논리적 또는 계층적 로케이션 중 적어도 하나를 획득하게 하고;
    상기 애플리케이션과 관련된 상기 데이터의 분석에 기초하여, 상기 데이터의 제 1 세트는 제 1 데이터 유형에 대응한다고 결정하고, 상기 데이터의 제 2 세트는 제 2 데이터 유형에 대응한다고 결정하되, 상기 제 1 데이터 유형은 상기 애플리케이션의 복원을 용이하게 하도록 구성되는 복원 파라미터를 포함하게 하고;
    상기 데이터의 제 1 세트 및 상기 데이터의 제 2 세트 각각으로부터, 캡슐 및 페이로드를 생성하고;
    상기 캡슐 및 상기 페이로드를 저장하게 하고;
    상기 애플리케이션에 관련된 상기 데이터에 연관된 어드레스 블록의 변경이 발생한 것을 결정하게 하고;
    상기 변경이 발생하였다는 결정에 응답하여, 상기 애플리케이션에 연관된 다른 캡슐 또는 다른 페이로드를 생성하게 하며;
    식별자들을 상기 캡슐, 상기 페이로드, 상기 다른 캡슐 및 상기 다른 페이로드로 할당하되, 상기 식별자들은 상기 캡슐, 상기 페이로드, 상기 다른 캡슐 및 상기 다른 페이로드가 서로 관련된다는 것을 나타내도록 하는, 상기 프로세서를 포함하는, 시스템.
  14. 제 13 항에 있어서,
    상기 데이터는 국부적으로 또는 네트워크 데이터 스토어에 의해 저장되는, 시스템.
  15. 제 13 항에 있어서,
    상기 프로세서는 또한, 상기 애플리케이션과 미리 연관된 메타데이터를 분석하도록, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성되는, 시스템.
  16. 제 13 항에 있어서,
    상기 애플리케이션과 관련된 상기 데이터는 구성 정보, 설치 데이터, 액세스 파라미터, 상기 애플리케이션에 의해 생성된 데이터의 제 3 세트 및 상기 애플리케이션에 의해 이용된 데이터의 제 4 세트를 포함하는, 시스템.
  17. 제 16 항에 있어서,
    상기 데이터의 제 1 세트는 상기 구성 정보, 상기 설치 데이터, 또는 상기 액세스 파라미터 중 적어도 하나를 포함하고,
    상기 데이터의 제 2 세트는 상기 애플리케이션에 의해 생성된 상기 데이터의 제 3 세트 또는 상기 애플리케이션에 의해 이용된 상기 데이터의 제 4 세트 중 적어도 하나를 포함하는, 시스템.
  18. 제 13 항에 있어서,
    상기 식별자들은 캡슐화의 시간 및 날짜, 상기 애플리케이션의 명칭, 상기 애플리케이션의 버전 및 상기 애플리케이션이 설치되는 디바이스를 나타내는, 시스템.
  19. 제 13 항에 있어서,
    상기 프로세서는 또한, 상기 애플리케이션의 버전을 결정하고, 상기 다른 캡슐 및 상기 캡슐이 대응하는 상기 애플리케이션의 버전을 나타내며, 상기 다른 캡슐 및 상기 캡슐에 대응하는 복수의 페이로드들을 나타내도록, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성되는, 시스템.
  20. 제 13 항에 있어서,
    상기 캡슐 및 상기 페이로드는 로컬 하드 드라이브, 외장 하드 드라이브, 플래시 메모리, 또는 네트워크 저장 디바이스 중 적어도 하나에 의해 저장되는, 시스템.
  21. 컴퓨터 실행가능 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행 가능 명령들은 실행에 응답하여, 프로세서를 포함하는 시스템으로 하여금 동작들을 수행하게 하고,
    상기 동작들은,
    애플리케이션과 연관된 데이터를 맵핑하고 설치 명령 또는 상기 애플리케이션으로의 액세스를 가능하게 하는 액세스 파라미터에 기초하여 구성 정보를 생성하는 것을 포함하는, 상기 애플리케이션의 메타데이터를 정의하는 것;
    상기 애플리케이션에 연관된 상기 데이터를 분석하는 것에 기초하여, 상기 애플리케이션에 연관된 상기 데이터의 제 1 부분 및 상기 애플리케이션에 연관된 상기 데이터의 제 2 부분은 각각 제 1 데이터 유형 및 제 2 데이터 유형임을 결정하는 것;
    상기 메타데이터에 기초하여, 상기 애플리케이션이 연관된 상기 데이터의 제 1 부분, 상기 구성 정보, 설치 데이터 파일 및 상기 액세스 파라미터를 포함하는 제 1 캡슐을 생성하는 것;
    상기 애플리케이션과 연관된 상기 데이터의 제 2 부분을 포함하는 제 1 페이로드를 생성하는 것;
    상기 애플리케이션에 연관된 상기 데이터의 변경을 검출하는 것;
    변경된 상기 애플리케이션과 연관된 상기 데이터의 유형에 기초하여 제 2 캡슐 또는 제 2 페이로드 중 적어도 하나를 생성하는 것;
    식별자를 상기 제 1 캡슐, 상기 제 1 페이로드, 상기 제 2 캡슐 및 상기 제 2 페이로드로 할당하는 것으로서, 상기 식별자들은 상기 제 1 캡슐, 상기 제 1 페이로드, 상기 제 2 캡슐 및 상기 제 2 페이로드의 상호관계들의 각각의 표시들을 포함하는, 상기 할당하는 것
    을 포함하는, 컴퓨터 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 동작들은,
    상기 제 1 캡슐 및 상기 제 1 페이로드를 네트워크 서버, 로컬 저장 디바이스, 플래시 메모리, 또는 외장 하드 드라이브 중 적어도 하나로 전송하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  23. 제 21 항에 있어서,
    상기 식별자들은 캡슐화의 시간 및 날짜, 상기 애플리케이션의 명칭, 상기 애플리케이션의 버전 및 상기 애플리케이션이 설치되는 디바이스를 나타내는, 컴퓨터 판독가능 저장 매체.
  24. 제 23 항에 있어서,
    상기 동작들은,
    상기 제 1 캡슐 및 상기 제 1 페이로드와 연관되는 상기 제 2 캡슐 또는 상기 제 2 페이로드 중 적어도 하나를 저장하는 것;
    상기 제 1 캡슐 및 상기 제 2 캡슐에 애플리케이션 버전을 할당하는 것; 및
    상기 제 1 캡슐 및 상기 제 2 캡슐 중 대응하는 캡슐들과 상기 제 1 페이로드 및 상기 제 2 페이로드를 연관시키는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  25. 제 24 항에 있어서,
    상기 제 2 캡슐 또는 상기 제 2 페이로드 중 적어도 하나를 저장하는 것은,
    상기 제 1 캡슐과 상기 제 2 캡슐, 및 상기 제 1 페이로드와 상기 제 2 페이로드를 시간 및 날짜로 시간-스탬핑 (time-stamping) 하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  26. 프로세싱 디바이스를 포함하는 시스템에 의해, 애플리케이션의 버전과 연관된 메타데이터를 취출하는 단계;
    캡슐과 연관된 제 1 식별자 및 페이로드와 연관된 제 2 식별자에 기초하여 상기 애플리케이션의 상기 버전에 대응하는 상기 캡슐 및 상기 페이로드를 취출하는 단계;
    상기 캡슐로부터, 애플리케이션 구성 정보, 설치 데이터, 및 액세스 파라미터를 추출하는 단계로서, 상기 액세스 파라미터는 상기 애플리케이션으로의 액세스를 제어하는, 상기 추출하는 단계;
    상기 애플리케이션 구성 정보를 사용하여 상기 설치 데이터로부터 상기 애플리케이션을 리커버링하는 단계;
    상기 액세스 파라미터를 사용하여 상기 애플리케이션을 활성화하는 단계; 및
    상기 메타데이터에 기초하여 조직 구조에서 상기 페이로드에 포함된 애플리케이션 특정 데이터를 복원하는 단계를 포함하는, 방법.
  27. 제 26 항에 있어서,
    상기 애플리케이션 특정 데이터를 복원하는 단계는 상기 애플리케이션에 의해 생성된 데이터 또는 상기 애플리케이션에 의해 이용된 데이터를 복원하는 단계를 더 포함하는, 방법.
  28. 제 26 항에 있어서,
    상기 캡슐 및 상기 페이로드를 취출하는 단계는 복수의 캡슐들 중 하나 및 복수의 페이로드들 중 하나를 선택하는 단계를 더 포함하는, 방법.
  29. 제 26 항에 있어서,
    상기 캡슐 및 상기 페이로드를 취출하는 단계는,
    특정 캡슐에 대한 요청을 수신하는 단계;
    상기 특정 캡슐을 취출하는 단계; 및
    상기 특정 캡슐과 연관된 적어도 하나의 페이로드를 취출하는 단계를 더 포함하는, 방법.
  30. 메모리에 커플링된, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성된 프로세서로서, 상기 명령들은 적어도,
    캡슐 및 페이로드를 취출하게 하되, 상기 캡슐 및 상기 페이로드에 연관된 식별자들이 상기 캡슐 및 상기 페이로드가 연관되었다는 것을 나타낸다는 결정에 기초하여, 상기 캡슐 및 상기 페이로드가 복수의 캡슐들 및 복수의 페이로드들로부터 선택되고,
    애플리케이션에 연관된 메타파일의 분석에 기초하여, 상기 캡슐을 언팩킹하여, 상기 애플리케이션의 등록을 용이하게 하는, 설치 정보 데이터 파일, 구성 명령, 및 액세스 파라미터를 획득하게 하고,
    상기 설치 데이터 파일 및 상기 구성 명령에 기초하여 상기 애플리케이션을 재설치하게 하고,
    상기 액세스 파라미터에 기초하여 상기 애플리케이션을 등록하게 하며,
    상기 페이로드를 언팩킹하고 애플리케이션 특정 데이터를 리커버링하되, 상기 애플리케이션 특정 데이터는 상기 메타파일의 분석에 따라 조직되도록 하는, 상기 프로세서를 포함하는, 시스템.
  31. 제 30 항에 있어서,
    상기 복수의 캡슐들은 적어도 하나의 페이로드와 연관되는, 시스템.
  32. 제 30 항에 있어서,
    상기 프로세서는 또한, 상기 캡슐과 연관된 적어도 하나의 페이로드 중에서 상기 페이로드를 취출하도록, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성되는, 시스템.
  33. 제 32 항에 있어서,
    상기 프로세서는 또한, 특정 캡슐에 대한 요청을 수신하고, 상기 요청에 기초하여 상기 특정 캡슐을 취출하며, 상기 특정 캡슐과 연관된 상기 적어도 하나의 페이로드를 취출하도록, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성되는, 시스템.
  34. 제 33 항에 있어서,
    상기 프로세서는 또한, 특정 페이로드에 대한 요청을 수신하고 상기 특정 캡슐과 연관된 상기 적어도 하나의 페이로드 중에서 상기 특정 페이로드를 취출하도록, 컴퓨터-실행가능 명령들을 실행하거나 그 실행을 용이하게 하도록 구성되는, 시스템.
  35. 삭제
  36. 삭제
KR1020137019307A 2011-05-27 2011-05-27 메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리 KR101572737B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/038428 WO2012166102A1 (en) 2011-05-27 2011-05-27 Seamless application backup and recovery using metadata

Publications (2)

Publication Number Publication Date
KR20130108438A KR20130108438A (ko) 2013-10-02
KR101572737B1 true KR101572737B1 (ko) 2015-11-27

Family

ID=47221603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137019307A KR101572737B1 (ko) 2011-05-27 2011-05-27 메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리

Country Status (4)

Country Link
US (1) US9965358B2 (ko)
KR (1) KR101572737B1 (ko)
CN (1) CN103415848B (ko)
WO (1) WO2012166102A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013044794A1 (zh) * 2011-09-30 2013-04-04 北京奇虎科技有限公司 终端备份和恢复方法
FR2984552A1 (fr) * 2011-12-16 2013-06-21 France Telecom Procede et dispositif de gestion d'une application referencee par un dispositif
US9817739B1 (en) * 2012-10-31 2017-11-14 Veritas Technologies Llc Method to restore a virtual environment based on a state of applications/tiers
CN103970762A (zh) * 2013-01-29 2014-08-06 三星电子(中国)研发中心 在智能设备之间交换用户个性化数据的方法
US20140379640A1 (en) * 2013-06-21 2014-12-25 Lexmark International, Inc. Metadata Replication for Non-Dicom Content
US20140379651A1 (en) * 2013-06-21 2014-12-25 Lexmark International, Inc. Multiple Subscriber Support for Metadata Replication
CN104216798A (zh) * 2013-07-29 2014-12-17 腾讯科技(深圳)有限公司 一种数据处理的方法及终端
CN103561324A (zh) * 2013-10-30 2014-02-05 乐视致新电子科技(天津)有限公司 云电视应用程序云备份的方法及装置
CN103619008A (zh) * 2013-12-11 2014-03-05 北京网秦天下科技有限公司 用于备份和恢复数据的系统和方法
CN103853634B (zh) * 2014-02-26 2017-02-01 北京优炫软件股份有限公司 一种容灾备份系统及方法
KR102226411B1 (ko) 2014-09-01 2021-03-12 삼성전자주식회사 재등록을 관리하는 전자 장치 및 방법
US9848046B2 (en) * 2014-11-13 2017-12-19 Commvault Systems, Inc. Archiving applications in information management systems
EP4040297A1 (en) * 2015-05-27 2022-08-10 Google LLC System and method for automatic cloud-based full-data backup and restore on mobile devices
CN105068837A (zh) * 2015-08-07 2015-11-18 Tcl集团股份有限公司 Web应用的更新方法及装置
CN105677513A (zh) * 2016-01-04 2016-06-15 北京小米移动软件有限公司 恢复备份数据的方法及装置
CN107229523A (zh) * 2016-03-25 2017-10-03 中兴通讯股份有限公司 一种拷贝数据的方法及电子设备
US10503712B2 (en) 2016-09-30 2019-12-10 International Business Machines Corporation Container repository optimization
US10978068B2 (en) 2016-10-27 2021-04-13 Samsung Electronics Co., Ltd. Method and apparatus for executing application on basis of voice commands
CN106648986A (zh) * 2016-12-23 2017-05-10 宇龙计算机通信科技(深圳)有限公司 一种数据备份方法及装置
CN106843951A (zh) * 2017-01-12 2017-06-13 北京珠穆朗玛移动通信有限公司 软件程序的安装处理方法及其移动终端
US10613939B2 (en) 2017-03-28 2020-04-07 Commvault Systems, Inc. Backup index generation process
CN107506197B (zh) * 2017-08-25 2021-07-27 维沃移动通信有限公司 一种信息处理方法、移动终端及计算机可读存储介质
US11327846B2 (en) 2017-09-28 2022-05-10 Oracle International Corporation System and method for backup and recovery of services in a cloud computing environment
JP6861670B2 (ja) * 2018-07-10 2021-04-21 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
CN109117311A (zh) * 2018-08-22 2019-01-01 郑州云海信息技术有限公司 一种故障恢复方法及装置
CN111813603B (zh) * 2020-07-16 2022-06-10 济南浪潮数据技术有限公司 一种精简卷元数据备份方法、装置、设备及可读存储介质
US11573937B2 (en) 2020-10-09 2023-02-07 Bank Of America Corporation System and method for automatically resolving metadata structure discrepancies

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010174A1 (en) * 2004-07-09 2006-01-12 Lu Nguyen Method and system for backing up and restoring data
US20090204648A1 (en) * 2008-02-11 2009-08-13 Steven Francie Best Tracking metadata for files to automate selective backup of applications and their associated data
US20120254116A1 (en) 2011-03-31 2012-10-04 Microsoft Corporation Distributed File System

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1237376B1 (en) 1997-06-09 2015-08-05 Hitachi, Ltd. Image information recording medium
KR100927282B1 (ko) * 2001-05-24 2009-11-18 소니 가부시끼 가이샤 기록 방법, 기록 장치 및 기록 매체
US20040193953A1 (en) * 2003-02-21 2004-09-30 Sun Microsystems, Inc. Method, system, and program for maintaining application program configuration settings
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators
US7454406B2 (en) * 2005-04-29 2008-11-18 Adaptec, Inc. System and method of handling file metadata
US8365254B2 (en) 2005-06-23 2013-01-29 Microsoft Corporation Unified authorization for heterogeneous applications
US20060294042A1 (en) * 2005-06-23 2006-12-28 Microsoft Corporation Disparate data store services catalogued for unified access
US20060294419A1 (en) * 2005-06-28 2006-12-28 Schneider Janet L Isolating and storing configuration data for disaster recovery
US20070174362A1 (en) * 2006-01-18 2007-07-26 Duc Pham System and methods for secure digital data archiving and access auditing
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
US7685189B2 (en) 2006-12-27 2010-03-23 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
US20080222043A1 (en) * 2007-03-07 2008-09-11 Thomas Edward Chefalas System and method for trans-vendor license registration and recovery
CN101098343B (zh) 2007-06-12 2012-08-01 深圳市融创天下科技股份有限公司 一种手机与网络服务器的信息交换方法
US7797285B1 (en) * 2007-09-28 2010-09-14 Symantec Corporation Method and apparatus for restoring backup data to a computer
US8266112B1 (en) * 2007-12-19 2012-09-11 Symantec Corporation Techniques for recovery of application level objects
US20100023520A1 (en) * 2008-07-28 2010-01-28 Viewfinity Inc. Encapsulated file management systems
US8255430B2 (en) * 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
JP4766127B2 (ja) * 2009-02-23 2011-09-07 富士ゼロックス株式会社 情報処理装置、ファイル管理システムおよびプログラム
US8370294B2 (en) * 2009-05-06 2013-02-05 Microsoft Corporation File stashing for storage media
US20100325167A1 (en) 2009-06-18 2010-12-23 Paul Edward Landry Backing up and/or restoring a software application so as to facilitate compatibility checking with a target device prior to application restore
US20110016089A1 (en) * 2009-07-16 2011-01-20 Apple Inc. Restoring data to a mobile device
US20120254118A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Recovery of tenant data across tenant moves
US8473462B1 (en) * 2011-04-21 2013-06-25 Symantec Corporation Change tracking for shared disks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010174A1 (en) * 2004-07-09 2006-01-12 Lu Nguyen Method and system for backing up and restoring data
US20090204648A1 (en) * 2008-02-11 2009-08-13 Steven Francie Best Tracking metadata for files to automate selective backup of applications and their associated data
US20120254116A1 (en) 2011-03-31 2012-10-04 Microsoft Corporation Distributed File System

Also Published As

Publication number Publication date
US9965358B2 (en) 2018-05-08
CN103415848B (zh) 2018-07-13
WO2012166102A1 (en) 2012-12-06
CN103415848A (zh) 2013-11-27
US20120303583A1 (en) 2012-11-29
KR20130108438A (ko) 2013-10-02

Similar Documents

Publication Publication Date Title
KR101572737B1 (ko) 메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리
US11824932B2 (en) Archiving applications in information management systems
US10983875B2 (en) Time-based virtual machine reversion
US11221939B2 (en) Managing data from internet of things devices in a vehicle
US20160315891A1 (en) Storage and management of mail attachments
US20220292196A1 (en) Detecting ransomware in monitored data
US20200327148A1 (en) Universal Interaction for Capturing Content to Persistent Storage
US10210229B2 (en) File creation through virtual containers
US11914477B2 (en) Lightweight metadata handling for file indexing and live browse of backup copies
US20210165785A1 (en) Remote processing of memory and files residing on endpoint computing devices from a centralized device
CA2944419A1 (en) Remote processing of files residing on endpoint computing devices
US9807180B2 (en) Information processing apparatus, work environment linking method and work environment linking program
US20230342492A1 (en) Proactive data security using file access permissions
US11704279B2 (en) Event driven migration, recall, and data placement optimization based on custom metadata
JP2006338606A (ja) ファイル管理手続実行システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant