KR101169085B1 - 휴대용 저장 장치 및 방법 - Google Patents

휴대용 저장 장치 및 방법 Download PDF

Info

Publication number
KR101169085B1
KR101169085B1 KR1020050101217A KR20050101217A KR101169085B1 KR 101169085 B1 KR101169085 B1 KR 101169085B1 KR 1020050101217 A KR1020050101217 A KR 1020050101217A KR 20050101217 A KR20050101217 A KR 20050101217A KR 101169085 B1 KR101169085 B1 KR 101169085B1
Authority
KR
South Korea
Prior art keywords
portable
application
storage device
host computer
portable storage
Prior art date
Application number
KR1020050101217A
Other languages
English (en)
Other versions
KR20060067815A (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 KR20060067815A publication Critical patent/KR20060067815A/ko
Application granted granted Critical
Publication of KR101169085B1 publication Critical patent/KR101169085B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • G06F9/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

휴대용 저장 장치는 인터페이스 및 하나 이상의 플래시 메모리를 포함한다. 하나 이상의 플래시 메모리는 호스트 컴퓨터에 의해 실행될 수 있는 하나 이상의 실행가능 파일을 저장하고, 장치는 하나 이상의 실행가능 파일이 환경 설정에 액세스하고자 하는 명령어들을 포함하더라도 호스트 컴퓨터 상의 어떤 환경 설정도 변경하지 않고서 호스트 컴퓨터에 연결된다. 또한, 어플리케이션은 활성화 프로세스 동안 휴대용 저장 장치에 바인딩된다.
휴대용 저장 장치, 휴대용 어플리케이션

Description

휴대용 저장 장치 및 방법{PORTABLE APPLICATION}
도 1은 휴대용 어플리케이션이 사용될 수 있는 예시적인 환경을 도시하는 블럭도.
도 2는 예시적인 휴대용 저장 장치를 더 상세하게 도시한 도면.
도 3은 휴대용 어플리케이션을 실행하기 위한 예시적인 프로세스를 도시하는 순서도.
도 4는 휴대용 어플리케이션을 활성화하기 위한 예시적인 프로세스를 도시하는 순서도.
도 5는 휴대용 저장 장치 상에 휴대용 어플리케이션을 설치하기 위한 예시적인 프로세스를 도시하는 순서도.
도 6은 본원에 개시된 휴대용 어플리케이션이 사용될 수 있는 일반적인 컴퓨터 환경을 도시.
<도면의 주요 부분에 대한 부호의 설명>
102 : 휴대용 저장 장치
106 : 인터페이스
108 : 저장 구성요소(들)
160 : 자동실행 모듈
162 : 어플리케이션 파일
164 : 개인 저장소
166 : 개인 로컬 프로파일
168 : 데이터 섹션
본 발명은 메모리 장치 및 어플리케이션에 관한 것으로서, 특히, 휴대용 어플리케이션에 관한 것이다.
컴퓨터는 우리의 생활에 흔한 것이 되어, 집과 일터뿐만 아니라, 도서관, 공항, 카페 등과 같은 여러 공공 장소에서도 찾아볼 수 있게 되었다. 사람들이 컴퓨터에 더 의존하게 됨에 따라, 그들이 있을 수 있는 곳이라면 어느 곳에서나 컴퓨터를 사용하고자 하는 그들의 요구도 커졌다. 예를 들어, 사용자가 자신의 집 또는 사무실을 나와 여행할 때, 사용자는 자주, 자신이 집 또는 사무실에서 액세스하던 프로그램 및/또는 데이터에 액세스하기를 원한다. 그러나, 이것은, 사용자가 집 또는 사무실에서 떨어져서는 컴퓨터 상에서 이용가능한 그들의 요구된 프로그램에 의존할 수 없기 때문에, 또한, 집 또는 사무실에서 떨어져서는 컴퓨터 상에서 이용가능한 그들의 요구된 데이터에 더더욱 의존할 수 없기 때문에, 문제가 있다.
이 문제를 해결하는 데 사용될 수 있는 한가지 해결책은 사용자가 휴대용 컴 퓨터를 구매하여 그것을 가지고 여행하는 것이다. 그러나, 휴대용 컴퓨터는, 가지고 여행하기에 부피가 크고 무겁고, 구매하기에 비쌀 수 있으며, 사용자가 도둑의 표적이 되게 할 수 있다는 점에서 추가적인 문제를 갖는다.
이 문제를 해결하는 데 사용될 수 있는 다른 해결책은 사용자가 여행할 때 하드 드라이브를 가지고 가는 것이다. 그러한 해결책도 문제가 있을 수 있다. 왜냐하면, 이 해결책은, 컴퓨터로부터 하드 드라이브를 오픈하여 접속해제할 뿐만 아니라 다른 컴퓨터에 그 하드 드라이브를 설치하는 데 엄청난 노력을 요구하며, 사용자의 컴퓨터는 하드 드라이브가 없게 되어 사용할 수 없게 만들고, 하드 드라이브가 다른 컴퓨터 상에서 동작하기 위해서는 많은 재구성이 요구될 수 있기 때문에 호환성 문제를 일으키고, 사용자는 공공 장소의 컴퓨터를 오픈하고 함부로 변경하도록 허용될 수 없기 때문에 법적 문제를 일으킬 수 있기 때문이다.
이 문제의 적어도 일부분을 해결하는 데 사용될 수 있는 또 다른 해결책은 USB(Universal Serial Bus) 플래시 메모리 장치에 데이터를 저장하는 것이다. 이 USB 플래시 메모리 장치는 점점 흔한 것이 되었으며, 컴퓨터 상의 USB 포트에 플러그인한다. 그러한 USB 장치는, 사용자가 한 컴퓨터로부터 USB 장치로 데이터를 전송하고나서, 그 USB 장치를 다른 컴퓨터에 플러그인하고 USB 장치 상의 데이터를 액세스하게 한다. 그러나, 그러한 USB 장치는 주로 데이터를 저장하기 위해서만 사용되기 때문에 이 문제의 일부분만을 해결할 뿐이다. 사용자가 사용하고 있는 컴퓨터가 적절한 프로그램을 갖지 않으면, 이 데이터는 일반적으로 사용자에게 유용한 형태로 액세스될 수 없다.
이 문제의 적어도 일부분을 해결하는 데 사용될 수 있는 또 다른 해결책은 사용자가 디스크(일반적으로, CD 또는 DVD) 상에 프로그램을 가지고 여행하는 것이며, 프로그램이 사용자가 사용하고 있는 컴퓨터 상에서 이용가능하지 못하더라도, 사용자는 그 컴퓨터 상에 프로그램을 설치할 수 있다. 그러나, 그러한 디스크는 일반적으로 사용자의 데이터가 저장되지 못하게 하기 때문에, 이 해결책은 이 문제의 일부분만을 해결할 뿐이다. 또한, 이 해결책은 추가적인 문제를 갖는다. 그 이유는, 디스크가 다소 깨지기 쉽고 여행동안 손상될 수 있고, 컴퓨터 상에 프로그램을 설치하는 프로세스가 시간 소모적일 수 있고(프로그램이 컴퓨터 상에서 실행되는 다른 프로그램들과 호환될 수 없는 경우, 더 시간-소모적임), 사용자가 컴퓨터 상에 프로그램을 설치할 충분한 사용 권한을 갖지 못할 수 있고, 복수의 컴퓨터들 상에서의 그러한 설치는 종종 프로그램에 대한 라이센싱 동의를 위반할 것이고, (특히, 공공 장소에서) 컴퓨터의 소유자는 일반적으로 사람들이 그들의 프로그램을 컴퓨터에 설치하는 것을 원하지 않을 것이기 때문이다. 그러나, 이 해결책이 갖는 또 다른 문제는 사용자가 프로그램을 컴퓨터 상에 설치해제할 때 여러 사용되지 않는 레지스터 정보, 데이터 등이 종종 남겨진다는 것이다.
따라서, 사용자가 컴퓨터에서 컴퓨터로 이동하고, 요구된 프로그램, 및 선택적으로는 요구된 데이터를 쉽게 이용할 개선된 방법이 필요할 것이다.
이하에서는 휴대용 어플리케이션이 개시된다.
특정 양태에 따르면, 휴대용 저장 장치는 인터페이스 및 하나 이상의 저장 구성요소를 포함한다. 하나 이상의 저장 구성요소는 호스트 컴퓨터에 의해 실행될 수 있는 하나 이상의 실행가능 파일을 저장하는데, 하나 이상의 실행가능 파일이 환경 설정에 액세스하는 명령어들을 포함하더라도, 장치는 이 호스트 컴퓨터 상의 어떤 환경 설정도 변경하지 않고서 호스트 컴퓨터에 연결된다.
다른 양태에 따르면, 어플리케이션은 어플리케이션을 실행하도록 실행되기 위한 하나 이상의 실행가능 파일을 저장하는 휴대용 저장 장치와 바인딩된다.
다른 양태에 따르면, 컴퓨터에 연결된 휴대용 저장 장치 상에 휴대용 어플리케이션을 설치하고자 하는 요구가 수신된다. 휴대용 어플리케이션에 대한 하나 이상의 실행가능 파일은 휴대용 저장 장치에 기록되고, 휴대용 어플리케이션에 관한 정보는 휴대용 저장 장치 상의 개인 저장소에 기록된다.
명세서 전체에 걸쳐 유사한 컴포넌트들 및/또는 특징들을 참조하는 데 동일한 번호가 사용된다.
휴대용 어플리케이션이 여기에 개시된다. 휴대용 저장 장치 상에 하나 이상의 어플리케이션 프로그램이 설치된다. 휴대용 저장 장치가 컴퓨터에 플러그인되거나 연결되면, 사용자가 장치 상에 저장했던 임의의 데이터와 함께, 장치에 설치된 휴대용 어플리케이션(들)이 자동적으로 검출되고 사용자에게 이용가능해 진다. 휴대용 어플리케이션(들)은 컴퓨터 상의 어떤 환경 설정도 변경하지 않고, 데이터 파일은 휴대용 저장 장치 상에 남아 있는다. 따라서, 사용자는, 자신이 요구하는 어플리케이션(들) 및 데이터에 액세스하였지만, 그 또는 그녀가 컴퓨터의 사용을 마친 후의 임의의 변경된 환경 설정 또는 데이터 파일은 남겨두지 않았다.
도 1은 휴대용 어플리케이션이 사용될 수 있는 예시적인 환경을 도시하는 블럭도이다. 환경(100)은 휴대용 저장 장치(102) 및 호스트 컴퓨터(104)를 포함한다. 휴대용 저장 장치(102)는 호스트 컴퓨터(104)뿐만 아니라 복수의 다른 컴퓨터들(도 1에 도시되지 않음)에 연결되고 그로부터 쉽게 제거될 수 있다. 휴대용 저장 장치(102)는 다양한 프로토콜들 중 임의의 것을 이용하여 호스트 컴퓨터(104)와 통신할 수 있다. 예를 들어, 장치(102)는 USB(Universal Serial Bus) 버전 1.0 또는 버전 2.0과 같은 USB 접속을 이용하여, 또는 IEEE 1394a 또는 1394b와 같은 IEEE 1394 접속(때때로, 파이어와이어라고 불림)을 이용하여, 또는 PCMCIA(Personal Computer Memory Card International Association) 접속을 이용하여 컴퓨터(104)에 연결될 수 있다. 다르게, 장치(102)는 다양한 다른 공용 또는 사유의 접속 프로토콜들 중 임의의 것을 이용하여 컴퓨터(104)에 연결될 수 있다.
장치(102)를 컴퓨터(104)에 연결하는 데 사용된 접속 프로토콜은 일반적으로, "플러그 앤 플레이(plug and play)" 접속 프로토콜이다. 플러그 앤 플레이 접속 프로토콜은 호스트 컴퓨터가 접속된 주변 장치를 자동으로 검출하고, 그 접속된 주변 장치에 액세스하도록 스스로를 구성하게 하는 프로토콜을 나타낸다. 주변 장치가 컴퓨터(104)에 플러그인될 때, 컴퓨터(104)는 컴퓨터(104) 상에서 실행되는 프로그램이 주변 장치에 액세스할 수 있기 위해, 컴퓨터(104) 상에서 실행될 필요가 있는 임의의 장치 드라이버 또는 다른 모듈을 자동으로 식별 및 설치할 수 있다.
휴대용 저장 장치(102)는 인터페이스(106) 및 하나 이상의 저장 구성요소 (108)를 포함하는 한편, 컴퓨터(104)는 프로세서(120), 시스템 메모리(122){예를 들어, 랜덤 액세스 메모리(RAM)} 및 인터페이스(124)를 포함한다. 인터페이스(106 및 124)는 장치(102) 및 컴퓨터(104)가 접속 프로토콜에 따라 서로 간에 신호를 전송하게 한다. 이 신호는 데이터 신호 및/또는 명령 신호일 수 있다.
저장 구성요소(들)(108)는 하나 이상의 플래시 메모리, 하나 이상의 자기 하드 디스크 드라이브(예를 들어, 마이크로 드라이브), 하나 이상의 광 디스크 드라이브 등과 같은 다양한 상이한 유형의 저장 구성요소들 중 하나 이상으로 구성될 수 있다. 저장 구성요소(들)(108)는 어플리케이션 부분(110) 및 데이터 부분(112)을 포함한다. 어플리케이션 부분(110)은 컴퓨터(104)의 프로세서(120)에 의해 실행될 수 있는 하나 이상의 휴대용 어플리케이션을 저장할 수 있다. 휴대용 어플리케이션은 어플리케이션이 환경 설정에 액세스하고자 하는 요구를 포함하더라도, 호스트 컴퓨터(104) 상의 어떤 환경 설정도 변경하지 않고서 저장 구성요소(108)로부터 실행되도록 설계된 어플리케이션이다. 또한, 휴대용 어플리케이션은 일반적으로, 이하에 더 상세히 설명되는 바와 같이, 휴대용 저장 장치(102)에 바인딩된다.
데이터 부분(112)은 하나 이상의 어플리케이션에 대한 데이터를 저장할 수 있다. 부분(112) 내에 저장된 데이터는 부분(110) 내에 저장된 휴대용 어플리케이션들 및/또는 다른 어플리케이션들 중 하나에 대한 것일 수 있다.
컴퓨터(104)의 프로세서(120)는 시스템 메모리(122) 및 인터페이스(124)와 통신하여, 저장 구성요소(108)에 저장된 어플리케이션을 포함한 어플리케이션을 실행한다. 어플리케이션 부분(110) 내에 저장된 각각의 어플리케이션은 어플리케이 션을 실시 또는 실행하는 것으로서 나타난 프로세서(120)에 의해 실행될 수 있는 명령어들의 집합이다. 이 명령어들은 저장 구성요소(108)로부터 직접 로드되어 프로세서(120)에 의해 실행될 수도 있으며, 다르게, 프로세서(120)에 의해 로드 및 실행되기 전에, 시스템 메모리(122)에 전송될 수도 있다. 이 명령어들은 또한, 프로세서(120)에 의해 실행되기 전에, 저장 구성요소(108)로부터 컴퓨터(104) 내의 하나 이상의 캐시 메모리로 전송될 수 있다.
휴대용 저장 장치(102)는 컴퓨터(104)에 플러그인됨으로써 컴퓨터(104)에 연결될 수 있다. 장치(102)를 컴퓨터(104)에 연결하는 것은 직접 접속 또는 간접 접속일 수 있다. 휴대용 저장 장치(102)는, 장치(102)의 잭 또는 커넥터가 컴퓨터(104)의 잭(jack) 또는 커넥터에 삽입되는 것과 같이 컴퓨터(104)에 직접 접속될 수 있다. 휴대용 저장 장치(102)는 또한, 하나 이상의 케이블 또는 확장 배선, 하나 이상의 다른 컨트롤러{예를 들어, USB 허브(들)}, 하나 이상의 다른 주변 장치 등을 통해 컴퓨터(104)에 간접적으로 접속될 수 있다. 컴퓨터(104)와 휴대용 저장 장치(102) 간의 연결은 유선 및/또는 무선 연결일 수 있다. 휴대용 저장 장치(102)는 최종 사용자에 의해 하나 이상의 컴퓨터(104)에 쉽게 연결되고 그로부터 쉽게 연결해제될 뿐만 아니라, 사용자에 의해 쉽게 운반되도록 설계되기 때문에 휴대용으로서 불린다.
휴대용 저장 장치(102)가 컴퓨터(104)에 연결될 때, 컴퓨터(104)는 자동적으로 장치(102)의 존재를 검출한다. 이 검출은 예를 들어, 플러그 앤 플레이 접속 프로토콜의 일부분으로서 수행된다. 검출되면, 휴대용 저장 장치(102)는 데이터 저장 뿐만 아니라 어플리케이션 실행을 위해 컴퓨터(104) 상에서 실행되는 어플리케이션 및 오퍼레이팅 시스템에 액세스될 수 있다.
휴대용 저장 장치(102)가 검출된 후에, 컴퓨터(104)는 자동으로 장치(102)에 액세스하며, 어플리케이션 부분(110) 내에 저장된 임의의 어플리케이션을 실행할 수 있고/있거나 어플리케이션 부분(110) 내에 저장된 어플리케이션들 중 임의의 것을 실행하는 옵션을 컴퓨터(104)의 사용자에게 제공할 수 있다. 데이터 부분(112)은 또한, 컴퓨터(104)에 액세스될 수 있어, 컴퓨터(104)가 부분(112) 내에 저장된 임의의 데이터를 검색할 뿐만 아니라, 새로운 데이터를 부분(112)에 저장하게 한다.
다수의 현재 오퍼레이팅 시스템은 휴대 저장 장치가 액세스되게 하는 적절한 장치 드라이버를 포함한다. 휴대용 플래시 메모리 장치(102)가 컴퓨터(104)에 연결될 때 그러한 장치 드라이버가 설치되지 않으면, 그러한 장치 드라이버는 (예를 들어, 플러그 앤 플레이 제어 프로토콜의 일부분으로서) 설치된다. 그러나, 휴대용 저장 장치(102) 상의 휴대용 어플리케이션이 실행되기 위해, 추가적인 장치 드라이버 또는 다른 드라이버 또는 소프트웨어가 호스트 컴퓨터(104) 상에 설치될 필요는 없음을 유념해야 한다. 예를 들어, 임의의 특정 휴대용 어플리케이션 또는 일반적인 휴대용 어플리케이션에 특정적인 드라이버가 호스트 컴퓨터(104) 상에 설치될 필요는 없다.
도 2는 예시적인 휴대용 저장 장치를 더 상세하게 도시한다. 휴대용 저장 장치(102)는 인터페이스(106) 및 저장 구성요소(들)(108)를 포함한다. 저장 구성 요소(108)는 자동실행 모듈(160), 하나 이상의 어플리케이션 파일(162), 개인 저장소(164), 개인 로컬 프로파일(166) 및 데이터 섹션(168)을 포함한다. 데이터 섹션(168)은 도 1의 데이터 부분(112) 내에 포함되는 반면, 어플리케이션 파일(162)은 도 1의 어플리케이션 부분(110) 내에 포함된다. 자동실행 모듈(160)은 일반적으로 어플리케이션 부분(110) 내에 포함되지만, 대안적으로, 모듈(160)은 데이터 부분(112) 내에 포함될 수 있다. 개인 저장소(164) 및 개인 로컬 프로파일(166) 둘 다는 일반적으로 데이터 부분(112) 내에 포함되지만, 대안적으로, 저장소(164) 및 프로파일(166)은 어플리케이션 부분(110) 내에 포함될 수 있다.
휴대용 저장 장치(102)는 휴대용 어플리케이션(들)을 실행하기 위한 프로세서를 포함하지 않음을 유념해야 한다. 휴대용 저장 장치(102)는 휴대용 또는 핸드헬드 컴퓨터가 아니며, 오히려, 휴대용 저장 장치(102)는 하나의 저장 장치이다. 그러나, 특정 실시예에서, 휴대용 저장 장치(102)는, 휴대용 저장 장치(102) 상에 저장된 휴대용 어플리케이션(들)을 실행하기 위해서가 아니라, 보안의 목적 또는 암호화를 위해 사용될 프로세서를 포함할 수 있다.
자동 실행 모듈(160)은 휴대용 저장 장치(102) 상에 저장된 어플리케이션에 액세스하도록 실행된다. 자동실행 모듈(160)은, 어느 어플리케이션이 휴대용 저장 장치(102) 상에 저장되는지에 관한 지식, 또는 (예를 들어, 정보를 포함한 데이터 파일에 액세스하거나, 어플리케이션 모듈을 찾기 위해 저장 구성요소(108)를 스캐닝함으로써) 어느 어플리케이션이 휴대용 저장 장치(102) 상에 저장되는지를 결정하는 방법뿐만 아니라 그러한 어플리케이션을 실행하는 방법에 관한 지식을 이용하 여 프로그래밍된다. 그 후, 자동실행 모듈(160)은, 요구된 어플리케이션을 실행하기 위해 어플리케이션 파일(들)(162)이 로드되고 실행되어야 하는, 휴대용 저장 장치(102)가 연결되는 호스트 장치 상의 오퍼레이팅 시스템을 식별할 수 있다. 요구된 어플리케이션은 예를 들어, 사용자에 의해 선택될 수도 있고, 자동적으로 자동 실행 모듈(160) 내에 프로그래밍될 수도 있다.
자동실행 모듈(160)은 선택적으로, 휴대용 저장 장치(102)와 인터랙트하기 위한 다양한 옵션들을 사용자에게 제공하는 사용자 인터페이스를 디스플레이한다. 이러한 옵션은 예를 들어, 휴대 저장 장치(102) 상에 저장되어 있고 사용자에 의해 실행될 수 있는 어플리케이션들의 목록, 및 휴대용 저장 장치(102) 상에 저장되어 있고 사용자에 의해 액세스(예를 들어, 판독, 삭제, 복사 등)될 수 있는 데이터 파일들의 목록을 포함할 수 있다. 사용자 인터페이스는 또한, 사용자가 파일을 휴대용 저장 장치(102)에 복사하기 위해 대응하는 파일 아이콘을 드래그 앤 드롭할 수 있는 목적지의 역할을 할 수 있다. 사용자 인터페이스는 또한, 브라우징 기능을 지원하여, 휴대용 저장 장치(102)가 연결되는 호스트 장치 상의 오퍼레이팅 시스템에 영향을 주어, 사용자가 휴대용 저장 장치(102) 뿐만 아니라, 호스트 장치의 다른 저장 장치, 및 하나 이상의 네트워크를 통해 호스트 장치에 연결된 다른 저장 장치 상의 서로 다른 폴더들 또는 디렉토리들에 액세스하게 한다.
자동실행 모듈(160)은 또한, 특정 파일 유형이 장치(102)의 특정 휴대용 어플리케이션에 관련되게 한다. 예를 들어, 한 유형의 파일은 워드 프로세싱 휴대용 어플리케이션에 관련될 수 있는 ".doc"으로 끝나는 이름을 갖는 파일일 수 있지만, 다른 유형의 파일은 스프레드시트 휴대용 어플리케이션에 관련될 수 있는 ".xls"로 끝나는 이름을 갖는 파일일 수 있다. 특정 파일 유형과 특정 휴대용 어플리케이션과의 관련성은 자동실행 모듈(160), 개인 저장소(164) 또는 대안적으로, 장치(102) 상의 그 외의 장소에 유지될 수 있다. 특정 파일 유형과 특정 휴대용 어플리케이션과의 관련성은 장치(102)가 연결되어 있는 호스트 장치보다도 장치(102){예를 들어, 개인 저장소(164) 내에 저장된 데이터를 이용한 자동실행 모듈(160)}에 의해 구현된다.
특정 파일 유형과 특정 휴대용 어플리케이션과의 관련성은, 관련된 유형의 파일이 사용자에 의해(예를 들어, 파일을 나타내는 아이콘 상에서 더블-클릭하는 사용자에 의해, 또는 키보드를 이용하여 파일을 나타내는 아이콘 또는 이름에 네비게이트하는 사용자에 의해) 선택될 때 자동실행 모듈(160)이 자동적으로 올바른 휴대용 어플리케이션을 실행하게 한다. 예를 들어, ".doc"으로 끝나는 이름을 갖는 파일이 워드 프로세싱 휴대용 어플리케이션에 관련되면, 사용자가 "MyReport.doc"을 선택한 경우, 자동실행 모듈(160)은 자동적으로, 워드 프로세싱 휴대용 어플리케이션을 실행시키고 MyReport.doc 문서를 워드 프로세싱 휴대용 어플리케이션에 로드할 수 있다.
특정 파일 유형과 특정 휴대용 어플리케이션과의 관련성은 또한, 자동실행 모듈(160)이 자신의 사용자 인터페이스의 일부분으로서, 특정 유형의 파일을 나타내는 특정 아이콘을 제공하게 한다. 예를 들어, 워드 프로세싱 휴대용 어플리케이션을 식별하는 특정 아이콘은 ".doc"로 끝나는 이름을 갖는 모든 파일에 대해 디스 플레이될 수 있다. 특정 파일 유형에 대해 디스플레이하는 특정 아이콘은 자동실행 모듈(160), 개인 저장소(164) 또는 대안적으로, 장치(102) 상의 그 외의 장소에 유지될 수 있다.
특정 실시예에서, 자동실행 모듈(160)은 휴대용 저장 장치(102)가 연결되어 있는 호스트 장치의 오퍼레이팅 시스템에 의해 자동으로 로드되고 실행된다. 그러한 실시예에서, 호스트 장치 상의 오퍼레이팅 시스템은 그것이 휴대용 저장 장치가 호스트 장치에 연결되었음을 검출할 때마다, 자동실행 모듈(160)을 자동으로 검색하도록 구성된다. 예를 들어, 오퍼레이팅 시스템은 ("Autorun.inf"와 같은) 특정 이름을 갖는 자동실행 모듈을 찾기 위해 저장 구성요소(108), 또는 저장 구성요소(108) 상의 파일들의 특정의 하나 이상의 폴더 또는 디렉토리를 검색하거나, 저장 구성요소(108)의 특정의 알려진 위치에 액세스할 수 있다. 자동실행 모듈(160)이 발견되면, 오퍼레이팅 시스템은 자동실행 모듈(160) 내의 명령어들을 실행한다.
다르게, 자동실행 모듈(160)의 실행은 다른 방식으로 개시될 수 있다. 예를 들어, 휴대용 저장 장치(102)가 호스트 장치에 연결될 때 자동으로 실행되기 보다, 호스트 장치의 사용자는 통상적인 방식으로 오퍼레이팅 시스템을 통해 휴대용 저장 장치(102)에 액세스할 수 있다. 그 후, 사용자는 저장 구성요소(108) 상에 저장된 디렉토리 또는 폴더를 네비게이트함으로써 자동실행 모듈(160)에 대응하는 파일 이름 또는 아이콘의 위치를 알아낼 수 있고, 실행을 위해 (예를 들어, 파일 이름 또는 아이콘 상에서 더블-클릭을 함으로써) 그 파일 이름 또는 아이콘을 선택할 수 있다.
대안적인 실시예에서, 자동실행 모듈(160)을 사용하기 보다, 사용자(또는 대안적으로, 다른 어플리케이션 또는 오퍼레이팅 시스템)는 저장 구성요소(108) 상에 저장된 디렉토리 또는 폴더를 수동적으로 네비게이트하여, 실행할 휴대용 어플리케이션을 식별할 수 있다. 예를 들어, 호스트 컴퓨터(104)가 윈도우즈® 오퍼레이팅 시스템들 중 하나를 실행하고 있으면, 사용자는 윈도우즈® 오퍼레이팅 시스템 익스플로러를 이용하여 저장 구성요소(108) 내의 폴더를 통해 수동으로 검색할 수 있다.
어플리케이션 파일(162)은 휴대용 어플리케이션을 실행하는 데 사용된 하나 이상의 어플리케이션 모듈뿐만 아니라, 휴대용 어플리케이션을 실행하는 데 사용된 임의의 관련된 데이터 파일로서 조직될 수 있는 명령어들을 포함한다. 어플리케이션 파일(162)은 실행가능한 파일이며, 휴대용 저장 장치(102) 상에 저장된 휴대용 어플리케이션에 대한 임의의 다른 관련된 파일이다. 휴대용 어플리케이션을 실행하기 위해, 이 실행가능한 파일들 중 하나 이상은 호스트 컴퓨터에 의해 실행된다. 다양한 서로 다른 어플리케이션들 중 임의의 것은 휴대용 저장 장치(102) 상의 휴대용 어플리케이션으로서 포함될 수 있다. 그러한 어플리케이션의 예로는, 워드 프로세싱 어플리케이션, 스프레드시트 어플리케이션, 데이터베이스 어플리케이션, 프리젠테이션 어플리케이션, 레퍼런스 어플리케이션, 게임 어플리케이션, 전자 메일(이메일) 클라이언트 등이 있다. 이러한 어플리케이션은 데스크탑 컴퓨터 상에 설치되고 실행되도록 설계된 동일한 어플리케이션의 휴대용 버전일 수 있다. 예를 들어, 워드 프로세싱 어플리케이션인 마이크로소프트® 워드의 휴대용 버전이 있을 수 있다. 휴대용 버전은 대응하는 데스트탑 버전에 비해 감소된 기능을 가질 수 있다. 예를 들어, 확장자가 호스트 장치의 시스템 레지스트리 내에 등록되기를 요구하는 기능(이하에서 더 상세히 설명되는 바와 같이, 휴대용 어플리케이션이 행하지 않는 환경 설정에 대한 변경임)과 같은 어플리케이션 내의 특정 기능은 휴대용 어플리케이션과 동작하는 데 적합하지 않을 수 있다.
다수의 오퍼레이팅 시스템은 컴퓨터 상에서 실행되는 오퍼레이팅 시스템뿐만 아니라, 컴퓨터 상에 설치된 어플리케이션에 대한 구성 데이터를 유지하는 데 시스템 정보 저장소를 채용한다. 마이크로소프트® 윈도우즈® 오퍼레이팅 시스템 패밀리에서, 그러한 시스템 정보 저장소는 일반적으로 시스템 레지스트리로서 불린다. 시스템 레지스트리는 예를 들어, 장치 및 어플리케이션 구성 설정, (예를 들어, 그 확장자에 기초한) 특정 어플리케이션과 파일 유형과의 관련성, 사용자 선호, 성능 튜닝 매개변수 등을 저장할 수 있다. 일반적으로, 컴퓨터 상에서의 어플리케이션의 설치 동안, 어플리케이션에 대한 구성 설정에 관한 다양한 정보가 시스템 정보 저장소에 기록된다. 반대로, 그러한 설정은 휴대용 저장 장치(102) 상의 휴대용 어플리케이션에 대한 시스템 정보 저장소에 기록되지 않는다.
휴대용 어플리케이션이 다른 어플리케이션과 통신하기 위해, 휴대용 어플리케이션에 관한 정보를 시스템 정보 저장소에 유지하지 않고서, 휴대용 어플리케이션은 환경의 런타임 질의를 이용한다. 환경의 런타임 질의는, 어플리케이션이 다른 어플리케이션(들)이 특정 기능을 제공하는 질의를 발행할 수 있는 기술을 의미한다. 그러한 질의에 대한 응답으로, 휴대용 어플리케이션이 기능을 제공하면, 휴 대용 어플리케이션은 기능이 호출될 수 있는 방법을 식별하는 정보를 이용하여 질의에 응답한다. 이 질의는 일반적으로, 오퍼레이팅 시스템을 통해 중개되어, 한 어플리케이션이 다른 어플리케이션에 직접적으로 질의하기보다, 어플리케이션이 다른 어플리케이션들에 차례로 질의하고 그 질의의 결과를 어플리케이션에 리턴하는 오퍼레이팅 시스템에 질의하도록 한다. 따라서, 휴대용 어플리케이션의 특정 기능을 호출하는 방법에 관한 정보를 위해 시스템 정보 저장소를 검사하기 보다, 그 특정 기능을 호출하는 방법에 관한 정보를 획득하기 위해 어플리케이션이 질의받을 수 있다.
휴대용 어플리케이션에 관한 데이터가 시스템 정보 저장소에 기록되지 않더라도, 휴대용 어플리케이션 자체는 정보 저장소에 데이터를 기록하고 그로부터 데이터를 판독하는 것을 포함하여, 정보 저장소에 액세스하도록 설계될 수 있다. 그러한 액세스를 수용하기 위해, 개인 저장소(164)는 휴대용 저장 장치(102) 상에 포함된다. 개인 저장소(164)는 휴대용 어플리케이션에 관한 설정 정보를 유지한다. 대신에, 일반적으로 호스트 컴퓨터의 시스템 정보 저장소 내에 유지되는 설정 정보는 개인 저장소(164) 내에 유지된다. 분리된 개인 저장소(164)가 각각의 휴대용 어플리케이션에 대해 유지될 수도 있고, 다르게, 단일의 개인 저장소(164)가 휴대용 어플리케이션들의 컬렉션 또는 스위트에 대해 유지될 수도 있다.
각각의 휴대용 어플리케이션은 호스트 컴퓨터 상의 시스템 정보 저장소보다 개인 저장소(164)에 액세스하도록 설계된다. 따라서, 휴대용 어플리케이션이 정보 저장소에 기록할 수 있는 임의의 데이터는 휴대용 어플리케이션 파일과 동일한 휴 대용 저장 장치(102) 상의 개인 저장소(164)에 기록되고, 그에 따라, 호스트 컴퓨터 상의 시스템 정보 저장소는 휴대용 어플리케이션에 대한 어떠한 구성 또는 다른 데이터가 그것에 기록되지 못하게 할 것이다. 호스트 컴퓨터가 시스템 레지스트리를 포함하는 특정 구현예에서, 개인 저장소(164)는 시스템 레지스트리 보다 휴대용 어플리케이션에 의해 액세스되기 때문에, 개인 저장소(164)는 또한, 개인 레지스트리로서 불릴 수도 있다.
휴대용 어플리케이션은 서로 다른 방법으로, 호스트 컴퓨터 상의 시스템 정보 저장소 보다도 개인 저장소(164)에 액세스하도록 설계될 수 있다. 특정 실시예에서, 호스트 컴퓨터 상의 시스템 정보 저장소는 시스템 정보 저장소에 액세스하기 위해 어플리케이션에 의해 호출될 수 있는 복수의 인터페이스를 갖는 어플리케이션 프로그래밍 인터페이스(API)를 포함한다. 이 액세스는 예를 들어, 정보 저장소로부터 값을 판독하는 것, 정보 저장소에 값을 기록하는 것, 정보 저장소로부터 값을 삭제하는 것, 정보 저장소 내의 값을 수정하는 것 등을 포함한다. 개인 저장소(164)는, 일반적으로 시스템 정보 저장소의 인터페이스와 동일한 기능을 수행하는 유사한 인터페이스를 갖지만, 서로 다른 이름을 갖고 시스템 정보 저장소 보다는 개인 저장소(164) 상에서 동작하는 유사한 API를 포함한다. 특정 구현예에서, 이러한 개인 저장소 인터페이스는 시스템 정보 저장소 인터페이스 보다는 휴대용 어플리케이션에 의해 호출된다.
다른 구현예에서, 휴대용 어플리케이션은 매개체(intermediary)를 통해 개인 저장소 인터페이스에 액세스한다. 단일의 매개체는 하나의 휴대용 어플리케이션, 또는 다르게는, 휴대용 어플리케이션의 컬렉션 또는 스위트에 대한 매개체로서 동작할 수 있다. 저장소로의 액세스를 요구하는 휴대용 어플리케이션 내의 개별 기능들 및 명령어들은 매개체에 의해 노출된 API와 인터랙트한다. 매개체는 개인 저장소에 의해 노출된 API와 인터랙트한다. 매개체를 갖는 그러한 구조는 어플리케이션 설계자에게 도움이 될 수 있다. 왜냐하면, 설계자는 어플리케이션이 시스템 정보 저장소에 액세스하는 비휴대용 어플리케이션일지, 개인 저장소에 액세스하는 휴대용 어플리케이션일지에 대한 고려 없이 어플리케이션 기능들 및 명령어들을 설계할 수 있고, 2개의 매개체(하나는 개인 저장소에 액세스하는 휴대용 어플리케이션과의 사용을 위한 것이고, 다른 하나는 시스템 정보 저장소에 액세스하는 비휴대용 어플리케이션과의 사용을 위한 것임)를 설계할 수 있기 때문이다.
특정 상황에서, 휴대용 어플리케이션은 이전에 개인 저장소(164) 내에 저장되지 않았던 정보를 저장소로부터 검색할 필요가 있거나 검색하기를 요구할 수 있다. 그러한 상황에서, 휴대용 어플리케이션(또는 매개체)은 호스트 컴퓨터 상의 시스템 정보 저장소에 액세스하여 그 요구된 정보를 판독할 수 있다. 그러한 정보는 일반적으로, 휴대용 어플리케이션(들)에 특정적이지 않은 정보이며, 오히려 호스트 컴퓨터에 관한 일반적인 정보이다. 휴대용 어플리케이션(또는 매개체)은 휴대용 어플리케이션에 의해 요구되는 특정 정보에 있어서, 시스템 정보 저장소가 특정 정보를 획득하기 위해 액세스되어야 하는지, 또는 개인 저장소(164)가 특정 정보를 획득하기 위해 액세스되어야 하는지를 알도록 설계된다. 그러나, 저장소에 기록되거나 그곳으로부터 삭제될 임의의 정보는 시스템 정보 저장소에 기록되거나 그로부터 삭제되지 않을 것임을 유념한다.
다르게, 휴대용 저장 장치(102)가 호스트 컴퓨터에 연결될 때, 그 호스트 컴퓨터의 시스템 정보 저장소 내의 정보는 개인 저장소(164) 내에 복사될 수 있지만, 이미 개인 저장소(164) 내에 있는 임의의 데이터는 이 복사에 의해 오버라이트되지 않는다. 따라서, 이 대안적인 실시예에서, 휴대용 어플리케이션이 개인 저장소(164) 내에 미리 저장되지 않은 정보에 액세스하는 상황은 발생하지 않아야 한다. 다른 대안적인 실시예에서, 개인 저장소(164)는 휴대용 어플리케이션에 의해 오버라이트될때까지 사용되는 디폴트 값을 이용하여 재프로그래밍 또는 구성될 수 있다.
개인 저장소(164)와 마찬가지로, 휴대용 저장 장치(102)는 또한, 개인 로컬 프로파일(166)을 포함한다. 개인 로컬 프로파일(166)은 다양한 사용자 설정 및 선호 정보를 저장하는 휴대용 저장 장치(102)의 사용자에 대한 로컬 프로파일을 저장한다. 그러한 정보를 저장함으로써, 휴대용 저장 장치(102)는, 사용자가 그 또는 그녀의 경험을 개별화하고, 그 또는 그녀가 복수의 서로 다른 호스트 컴퓨터들과 함께 휴대용 저장 장치(102)를 사용할 수 있다 하더라도 그 개별화가 유지되게 한다. 분리된 개인 로컬 프로파일(166)이 각각의 휴대용 어플리케이션에 대해 유지될 수도 있고, 다르게, 단일의 개인 로컬 프로파일(166)이 휴대용 어플리케이션의 컬렉션 또는 스위트에 대해 유지될 수도 있다.
개인 로컬 프로파일(166)은 일반적으로 호스트 컴퓨터 상에서 발견되는 로컬 프로파일보다는 그러한 정보를 저장하는 데 사용된다. 개인 저장소(164)와 마찬가 지로, 개인 로컬 프로파일(166)은 선택적으로 휴대용 어플리케이션 대신에 매개체를 통해, 휴대용 어플리케이션에 의해 액세스되고, 그 요구된 데이터는 휴대용 어플리케이션에 의해 요구된 액션에 기초하여 적절히 검색, 기록, 삭제, 수정 등이 행해진다. 개인 로컬 프로파일(166)뿐만 아니라 임의의 매개체도 개인 저장소(164)에 관하여 상술된 것과 유사한 API를 노출할 수 있다.
특정 실시예에서, 로컬 프로파일로의 판독 액세스는 판독되는 데이터가 개인 로컬 프로파일(166) 내에 존재하지 않는 경우 호스트 컴퓨터 상에 저장되어 있는 로컬 프로파일에 (예를 들어, 매개체에 의해) 전달된다. 다르게, 호스트 컴퓨터 상에 저장된 로컬 프로파일은 개인 로컬 프로파일(166)에 복사될 수 있지만, 이미 개인 로컬 프로파일(166) 내에 존재하는 임의의 설정에 대한 데이터는 이 복사 프로세스에 의해 오버라이트되지 않는다. 다른 대안적인 실시예에서, 개인 로컬 프로파일(166)은 휴대용 어플리케이션에 의해 오버라이트될 때까지 사용되는 디폴트 값을 이용하여 재프로그래밍되거나 구성될 수 있다.
따라서, 어플리케이션 파일뿐만 아니라 어플리케이션 데이터, 정보 저장소 데이터, 및 로컬 프로파일 데이터도 휴대용 저장 장치(102) 상에 유지함으로써, 호스트 컴퓨터에는 영구적인 변경이 필요없다. 휴대용 저장 장치(102) 상의 휴대용 어플리케이션을 실행할 때, 또는 그 실행을 위해, 호스트 컴퓨터 상의 시스템 정보 저장소, 또는 호스트 컴퓨터 상의 로컬 프로파일에 대한 변경은 이루어지지 않는다. 호스트 컴퓨터의 시스템 정보 저장소 및 로컬 프로파일 내에 저장된 정보는 호스트 컴퓨터 상의 환경 설정으로서 불릴 수 있고, 휴대용 어플리케이션을 실행할 때 그러한 환경 설정에 대한 변경은 이루어지지 않는다. 또한, 어플리케이션 파일뿐만 아니라 데이터 파일도 휴대용 저장 장치(102) 상에 저장되고, 따라서, 어플리케이션 파일들 또는 데이터 파일들 중 어느 것도 호스트 컴퓨터에 기록되지 않는다.
특정 실시예에서, 휴대용 어플리케이션을 실행할 때 파일 또는 환경 설정은 호스트 컴퓨터에 기록되지 않는다. 휴대용 어플리케이션이 실행 동안 임의의 임시 파일을 이용한다면, 이 임시 파일은 호스트 시스템 보다는 휴대용 저장 장치(102) 상에 저장된다. 대안적인 실시예에서, 하나 이상의 임시 파일은 휴대용 어플리케이션의 실행 동안 호스트 컴퓨터에 기록될 수 있다. 실행 동안 호스트 컴퓨터에 임시 파일을 기록하는 휴대용 어플리케이션은 어플리케이션의 실행이 종료될 때 스스로를 종료하는 것의 일부분으로서 그러한 임시 파일을 삭제한다. 다르게, 휴대용 어플리케이션은 호스트 컴퓨터 상의 오퍼레이팅 시스템과 같은 다른 컴포넌트에 의존하여, 휴대용 어플리케이션이 규칙적이거나 비규칙적인 간격으로 실행하는 것을 중단할 때 그러한 임시 파일을 삭제할 수 있다.
또한, 특정 실시예에서, 휴대용 저장 장치(102)는 데이터 파일과 동기하는 특정 호스트 컴퓨터를 가질 수 있다. 이 "홈(home)" 또는 "베이스(base)" 호스트 컴퓨터 상의, 또는 다르게, 휴대용 저장 장치(102) 상의 어플리케이션은 휴대용 저장 장치(102)가 홈 또는 베이스 호스트 컴퓨터에 연결될 때를 검출하고, 그 후, (예를 들어, 데이터 파일의 마지막 수정된 날짜 및 시간, 또는 임의의 데이터 파일의 추가 또는 삭제에 기초하여) 데이터 섹션(168) 내의 데이터 파일에 대해 임의의 수정이 이루어졌는지를 검사할 것이다. 임의의 새로운 파일, 또는 홈 또는 베이스 호스트 컴퓨터보다 더 최근의 마지막 수정된 날짜 및 시간을 갖는 임의의 파일은 홈 또는 베이스 컴퓨터에 복사된다. 사용자는 선택적으로 그 또는 그녀가 그러한 동기화가 일어나기를 요구한다는 것을 검증하도록 촉진될 수 있다.
도 3은 휴대용 어플리케이션을 실행하기 위한 예시적인 프로세스(200)를 도시하는 순서도이다. 프로세스(200)는 휴대용 저장 장치가 연결되는 호스트 컴퓨터에 의해 수행된다. 프로세스(200)는 소프트웨어, 펌웨어, 하드웨어 또는 그것의 조합으로 구현될 수 있다.
초기에, 호스트 컴퓨터는 휴대용 저장 장치를 검출한다(단계 202). 상술된 바와 같이, 이 검출은 휴대용 저장 장치가 호스트 컴퓨터에 플러그인되거나 연결될 때 자동적으로 수행된다.
호스트 컴퓨터는 휴대용 저장 장치 상의 휴대용 어플리케이션(들)을 식별한다(단계 204). 상술된 바와 같이, 이 식별은 호스트 컴퓨터에 의해 자동적으로 수행될 수도 있고, 휴대용 저장 장치에 네비게이트하는 사용자에 의해 수동적으로 수행될 수도 있다. 식별된 휴대용 어플리케이션(들)을 실행하는 옵션이 선택적으로 사용자에 제공될 수 있다(단계 206). 상술된 바와 같이, 사용자에게 사용자 인터페이스가 디스플레이되어, 사용자가 그 또는 그녀가 어느 휴대용 어플리케이션(들)을 실행하기를 원하는지를 선택하게 할 수 있다. 다르게, 호스트 컴퓨터는 실행될 휴대용 저장 장치 상의 휴대용 어플리케이션(들) 중 하나 이상을 자동적으로 선택할 수 있다.
식별된 휴대용 어플리케이션(들)은 호스트 컴퓨터 상의 어떤 환경 설정도 변경하지 않고서 호스트 컴퓨터 상에서 실행된다(단계 208). 상술된 바와 같이, 개인 저장소 및 개인 로컬 프로파일은 휴대용 저장 장치 상에 유지되고, 따라서, 휴대용 어플리케이션의 실행 동안, 호스트 컴퓨터 상에 저장된 시스템 정보 저장소 또는 프로파일에 대한 변경이 이루어질 필요가 없다.
도 2로 되돌아와서, 사용자에 의해 라이센싱 약정이 충족될 것을 보장하기 위해 몇몇 어플리케이션 제작자에 의해 사용된 한 기존의 기술은, 사용자의 컴퓨터에 어플리케이션을 설치한 후에 사용자에게 어플리케이션을 활성화하기를 요구하는 것이다. 어플리케이션은 일반적으로, 어플리케이션이 처음으로 실행된 후 특정 일수 이내에, 또는 어플리케이션이 특정 횟수 실행되기 전과 같은 특정 타임프레임 내에서 이 활성화가 수행되는 것을 요구한다. 활성화 프로세스는 어플리케이션을 특정 컴퓨터에 바인딩하여, 어플리케이션의 특정 복사본을 특정 컴퓨터에 관련시킨다. 활성화 프로세스는 일반적으로, 사용자 또는 임의의 다른 개인이 어플리케이션의 복사본을 수반하는 문자 숫자식의 시퀀스 또는 키를 입력하는 것에 관련시킨다. 어플리케이션은 요구된 타임프레임 내에서 성공적으로 활성화되지 않으면, 어플리케이션은 어플리케이션이 성공적으로 활성화될 때까지, 실행될 수 없거나 (예를 들어, 특정 특징 또는 기능적 부분 없이) 감소된 기능만으로 실행될 수 있다.
어플리케이션의 특정 복사본과 특정 컴퓨터와의 관련성을 유지함으로써, 어플리케이션 제작자는 어플리케이션의 동일한 복사본을 복수의 컴퓨터들에 바인딩하려는 시도가 이루어지는지를 검출할 수 있다. 종종 일어나는 경우로서, 복수의 컴 퓨터들 상에서 어플리케이션의 동일한 복사본을 사용하는 것이 라이센싱 협정을 위반하면, 제2 또는 후속하는 컴퓨터 상의 복사본의 활성화는 거부될 수 있고, 라이센싱 협정의 기간이 지켜질 수 있다.
그러나, 어플리케이션이 특정 컴퓨터에 바인딩되는 그러한 활성화 기술은 휴대용 어플리케이션의 경우에는 바람직하지 못하다. 그 이유는, 휴대용 어플리케이션 배후의 아이디어들 중 하나는 자신이 저장된 휴대용 저장 장치가 한 컴퓨터에서 다른 컴퓨터로 쉽게 이동되고 이 두 컴퓨터 상에서 실행될 수 있다는 것이기 때문이다. 따라서, 휴대용 어플리케이션의 경우에, 휴대용 어플리케이션은 특정 컴퓨터보다도 휴대용 저장 장치에 바인딩된다.
휴대용 어플리케이션은 휴대용 저장 장치의 식별자를 사용함으로써 휴대용 저장 장치에 바인딩된다. 그러한 식별자는 2개의 서로 다른 휴대용 저장 장치가 동일한 식별자를 갖기 매우 쉽도록 설계된다. 따라서, 그러한 식별자는 복수의 서로 다른 휴대용 저장 장치에 동일한 어플리케이션을 바인딩하려는 시도가 이루어지는지를 결정하는 데 사용될 수 있다.
휴대용 저장 장치의 식별자는 서로 다른 방법으로 생성될 수 있다. 식별자는 제작자에 의해 할당될 수 있고, 제작 프로세스 동안 휴대용 저장 장치 내에 포함되거나 제작자에 의해 채용된 사전구성 프로세스(pre-configuration process)의 일부분으로서 포함될 수 있다. 식별자는 한번 기록되면 지우거나 재기록할 수 없어서 후속적으로 변경될 수 없는 메모리를 이용한 부분과 같이 휴대용 저장 장치의 재기록 불가능한 부분 내에 포함될 수 있다.
대안적으로, 휴대용 저장 장치의 식별자는 휴대용 저장 장치의 여러 하드웨어 양태에 기초한 장치의 서명일 수 있다. 이 서명은 활성화된 휴대용 어플리케이션과 같은 휴대용 저장 장치 상의 어플리케이션, 또는 임의의 다른 어플리케이션에 의해 생성될 수 있다. 서명은 후속적인 사용을 위해 휴대용 저장 장치 상에 저장될 수도 있고, 필요할 때마다 재생성될 수도 있다. 대안적으로, 서명은 임의의 다른 컴포넌트에 의해(예를 들어, 휴대용 저장 장치의 제작자의 시스템에 의해) 생성되고 휴대용 저장 장치 상에 저장될 수 있다.
다른 실시예에서, 휴대용 저장 장치의 식별자는 휴대용 저장 장치 상의 프로세싱 컴포넌트로부터 직접 또는 간접적으로 전달된다. 예를 들어, 프로세싱 컴포넌트는 공용-키 암호 동작을 수행할 수 있는 암호 프로세서를 포함할 수 있다. 챌린지(challenge)(예를 들어, 문자 숫자식의 문자 및/또는 다른 기호의 시퀀스)는, 휴대용 어플리케이션(들)을 휴대용 저장 장치에 바인딩하는 장치 또는 서비스와 같은 요구자로부터 암호 프로세서로 전달될 수 있다. 암호 프로세서는 암호 프로세서의 개인 키를 이용하여 챌린지를 암호화하고, 암호화된 챌린지를 요구자에게 리턴한다. 요구자는 암호 프로세서의 알려진 공용 키를 이용하여, 암호 프로세서의 아이덴티티를 검증할 수 있고, 따라서, 암호 프로세서가 상주하는 휴대용 저장 장치의 아이덴티티를 검증할 수 있다. 각각의 암호 프로세서는 서로 다른 공용/개인 키 쌍을 갖기 때문에, 서로 다른 휴대용 저장 장치들은 따로따로 식별될 수 있다.
활성화되면, 정보는 휴대용 저장 장치에 다시 기록되어, 휴대용 저장 장치 상의 휴대용 어플리케이션이 그것이 성공적으로 활성화되었음을 알도록 할 수 있 다. 다르게, 임의의 그러한 데이터를 휴대용 저장 장치에 다시 기록하기 보다는, 휴대용 어플리케이션은 호스트 컴퓨터의 네트워크 접속을 이용하여 (예를 들어, 인터넷을 통해) 서버에 액세스하여, 어플리케이션이 성공적으로 활성화되었는지를 검사할 수 있다.
도 4는 휴대용 어플리케이션을 활성화하기 위한 예시적인 프로세스(250)를 도시하는 순서도이다. 프로세스(250)는 소프트웨어, 펌웨어, 또는 그것의 조합으로 구현될 수 있다.
초기에, 장치 식별자 및 휴대용 어플리케이션 키가 획득된다(단계 252). 장치 식별자는 이전에 휴대용 저장 장치에 저장된 식별자를 검색함으로써, 또는 다르게, 식별자(예를 들어, 상술된 휴대용 저장 장치의 서명)를 생성함으로써 획득될 수 있다. 휴대용 어플리케이션 키는 서로 다른 방식들로 획득될 수 있지만, 일반적으로 휴대용 저장 장치가 연결되어 있는 호스트 컴퓨터에 키를 수동으로 입력하는 사용자에 의해 획득된다. 이 키는 예를 들어, 휴대용 어플리케이션, 또는 휴대용 어플리케이션이 이미 설치된 휴대용 저장 장치가 구매될 때의 패키징 내에 포함될 수 있다. 휴대용 어플리케이션의 각각의 복사본은 일반적으로 서로 다른 키를 할당받는다.
장치 식별자 및 휴대용 어플리케이션 키는 활성화 서비스에 전달된다(단계 254). 활성화 서비스는 하나 이상의 장치 상에서 구현된 서비스이며, 휴대용 어플리케이션이 이미 최대 개수의 허용된 장치에 바인딩되었는지를 결정하는 것을 담당한다. 이 결정은 (휴대용 어플리케이션에 관련된 라이센스에 기초하여) 이전에 활 성화된 어플리케이션의 레코드를 분석하고 휴대용 어플리케이션 키가 이미 최대 개수의 허용된 장치에 관련되었는지를 검사함으로써 이루어진다. 활성화 서비스는 또한, 휴대용 어플리케이션 키의 유효성을 결정하는 것을 담당한다. 휴대용 어플리케이션 키의 유효성은, 유효한 키들의 목록을 갖거나, 유효성을 결정하기 위해 휴대용 어플리케이션 키를 처리하는 알고리즘을 갖는 등과 같은 다양한 방법들 중 임의의 방법으로 결정될 수 있다.
프로세스(250)는 휴대용 어플리케이션의 활성화가 성공적인지에 기초하여 계속된다(단계 256). 휴대용 어플리케이션 키가 아직 최개 개수의 허용된 장치에 바인딩되지 않았고(또는, 휴대용 어플리케이션 키가 이전에 이 장치 식별자에 바인딩되었었고), 휴대용 어플리케이션 키가 유효한 키인 경우, 활성화는 성공적이다. 그러나, 휴대용 어플리케이션 키가 이미 최대 개수의 허용된 장치에 바인딩되었거나 휴대용 어플리케이션 키가 유효한 키가 아닌 경우, 활성화는 성공적이지 못하다.
활성화가 성공적이면, 활성화 서비스는 휴대용 어플리케이션 키가 장치 식별자에 관련된다는 레코드를 유지한다(단계 258). 휴대용 어플리케이션이 활성화되었다는 표시가 휴대용 어플리케이션에 리턴되고, 휴대용 어플리케이션이 활성화되었다는 표시는 또한, 상술된 바와 같이, 휴대용 저장 장치 상에 저장될 수 있다. 이 표시는 예를 들어, 특정 식별자 또는 데이터 값, 암호 알고리즘을 이용하여 휴대용 어플리케이션에 의해 신뢰성이 검증될 수 있는 디지털 인증서 등일 수 있다. 그러나, 활성화가 성공적이지 못하면, 활성화는 실패하고(단계 260), 활성화가 실 패했다는 표시가 휴대용 어플리케이션에 리턴된다.
도 2로 되돌아가서, 휴대용 어플리케이션은 휴대용 저장 장치(102) 상에 사전-설치(pre-install)될 수 있고, 다르게는 사용자에 의해 설치될 수 있다. 휴대용 어플리케이션은 휴대용 저장 장치(102)의 제작자에 의해, 또는 임의의 다른 엔티티(예를 들어, 재판매업자, 배포자, 제조자에 의해 고용된 제3자 등)에 의해 사전-설치될 수 있다. 따라서, 사용자는 하나 이상의 휴대용 어플리케이션이 이미 설치되어 있는 휴대용 저장 장치(102)를 구매할 것이다. 다르게, 하나 이상의 휴대용 어플리케이션은 사용자에 의해 휴대용 저장 장치(102) 상에 설치될 수 있다. 예를 들어, 사용자는 디스크 상에서 또는 (인터넷과 같은) 네트워크를 통해 휴대용 어플리케이션을 구매하고, 휴대용 저장 장치(102) 상에 그 구매된 어플리케이션을 설치할 수 있다.
설치 프로세스 동안, 그것이 휴대용 저장 장치(102)의 구매자에 의해서 수행되는지, 또는 임의의 다른 개인에 의해 수행되는지에 관계없이, 필요한 파일은 어플리케이션 파일(112)로서 저장 구성요소(108)에 복사되고, 그러한 파일에 대한 임의의 필요한 변경 또는 구성이 수행된다. 또한, 일반적으로 설치 프로세스의 일부분으로서 시스템 정보 저장소에 기록되는 임의의 정보는 대신에, 개인 저장소(164)에 기록된다. 일반적으로, 휴대용 어플리케이션을 설치하기 위한 셋업 파일이 실행된다. 실행 시에, 셋업 파일은 어플리케이션을 설치하기 위해 이러한 다양한 기능들을 수행한다.
도 5는 휴대용 저장 장치 상에 휴대용 어플리케이션을 설치하기 위한 예시적 인 프로세스(280)를 도시하는 순서도이다. 프로세스(280)는 소프트웨어, 펌웨어, 또는 그것의 조합으로 구현될 수 있다.
초기에, 휴대용 저장 장치 상에 휴대용 어플리케이션을 설치하고자 하는 요구가 수신된다(단계 282). 이 요구는 "설치" 또는 "셋업" 아이콘 상에서의 사용자 더블-클릭, 또는 ("설치" 또는 "셋업" 파일 또는 아이콘과 같은) 하나 이상의 파일을 소스 매체로부터 휴대용 저장 장치로 드래그 앤 드롭하는 것과 같은 수동적인 사용자 선택일 수 있다. 다르게, 이 요구는 휴대용 저장 장치가 연결되어 있는 동일한 컴퓨터에 설치 디스크를 삽입하는 것, 또는 휴대용 저장 장치를 특정 컴퓨터(예를 들어, 제작자 또는 임의의 다른 제3자)에 연결하는 것과 같은 임의의 다른 액션에서 고유할 수 있다.
이 요구에 응답하여, 휴대용 어플리케이션에 대한 하나 이상의 어플리케이션 파일은 휴대용 저장 장치에 기록된다(단계 284). 이 어플리케이션 파일은 예를 들어, 도 2의 어플리케이션 파일(162)이다. 그 후, 어플리케이션 파일은 적절히 구성된다(단계 286). 있다면, 설치 프로세스의 일부분으로서 어떤 구성이 필요한가는 서로 다른 휴대용 어플리케이션들에 대해 변할 수 있다. 임의의 필요한 그러한 구성은 일반적으로 휴대용 어플리케이션에 관련된 {그리고, 일반적으로 프로세스(280)를 구현하는} 설치 파일 내에서 식별된다.
어플리케이션 파일을 구성하는 것 외에, 자동실행 모듈(160)도 단계(286)에서 구성될 수 있다. 자동실행 모듈(160)의 이 구성은, 휴대용 저장 장치 상의 휴대용 어플리케이션의 존재를 식별하는 자동실행 모듈(160) 정보뿐만 아니라, 휴대 용 어플리케이션을 실행하는 방법(예를 들어, 휴대용 어플리케이션의 실행을 시작하기 위해 어느 파일(들)이 실행되는지, 휴대용 어플리케이션에 대한 어느 폴더 파일이 저장되는지 등)에 관한 정보도 추가하는 것을 포함한다.
휴대용 어플리케이션에 관한 정보는 휴대용 저장 장치 상의 개인 저장소에 기록된다(단계 288). 개인 저장소에 기록된 정보는, 어플리케이션에 대한 구성 설정, 실행 시 어플리케이션의 성능을 증가시키기 위한 성능 튜닝 매개변수, 어느 파일 유형이 휴대용 어플리케이션에 관련되는지(예를 들어, 파일이 휴대용 어플리케이션에 관련된다는 것을 사용자에게 시각적으로 식별시키기 위해 그 유형의 파일에 대한 적절한 아이콘이 디스플레이되도록 함) 등과 같은 휴대용 어플리케이션에 관한 임의의 정보일 수 있다. 상술된 바와 같이, 그러한 정보는 휴대용 저장 장치가 연결되어 있는 컴퓨터 상의 시스템 정보 저장소보다는 휴대용 저장 장치 상의 개인 저장소에 기록된다. 몇몇 상황에서, 개인 저장소는 특정 휴대용 저장 장치에 대해 단계(288)가 처음 수행될 때에는 생성될 수 없다. 그러한 상황에서, 개인 저장소는 단계(288)의 일부분으로서 휴대용 저장 장치 상에 생성된다.
다른 실시예에서, 설치 프로세스는 다를 수 있음을 유념해야 한다. 예를 들어, 하나 이상의 파일이 소스 매체로부터 휴대용 저장 장치로 복사되는 드래그 앤 드롭 기술이 사용될 수 있다. 또 다른 예에서, 설치 파일 등으로부터 설치 프로세스(280)를 실행하기 보다, 휴대용 어플리케이션(들)의 설치 후에 존재해야 하기 때문에, 실행가능 파일, 개인 저장소, 개인 로컬 프로파일 및 자동실행 모듈 전부를 포함하는 저장 구성요소(들)의 이미지가 생성될 수 있다. 이 이미지는 간단히 휴 대용 저장 장치의 저장 구성요소(들)에 복사되어, 모든 필요한 실행가능 파일을 갖는 휴대용 저장 장치 뿐만 아니라, 적절한 데이터로 채워진 개인 저장소 및/또는 개인 로컬 프로파일이 될 수 있다. 이미지를 사전-생성하고 그 이미지를 휴대용 저장 장치에 복사하는 그러한 프로세스는 일반적으로, 휴대용 저장 장치의 제작자, 또는 동일한 휴대용 어플리케이션으로 구성된 매우 많은 휴대용 저장 장치를 제작하거나 배포하거나 판매하는 다른 제3자에 의해 사용될 것이다.
도 2로 돌아와서, 모듈(160), 파일(162), 저장소(164), 프로파일(166) 및 데이터 섹션(168)이 저장 구성요소(들)(108) 내에 포함된 것으로서 도시되어 있지만, 다르게는, 이러한 컴포넌트들 중 하나 이상, 또는 이러한 컴포넌트들 중 하나 이상의 부분(들)은 서로 다른 유형의 메모리 내에 저장될 수 있음을 유념해야 한다. 예를 들어, 재기록가능한 저장 구성요소보다는, 재기록될 수 없는 판독 전용 메모리가 하나 이상의 컴포넌트 또는 그 일부분에 대해 사용될 수 있다. 재기록될 수 없는 판독 전용 메모리 내에 저장되는 컴포넌트 또는 그 일부분은 어플리케이션{어플리케이션 파일(162)의 일부분 또는 전부}에 대한 특정 명령어들, 여기에 설명된 자동실행 기능{자동실행 모듈(160)의 일부분 또는 전부}에 대한 명령어들 등과 같은 변경될 수 없는 그러한 컴포넌트 또는 부분일 것이다.
또한, 휴대용 저장 장치(102)는 다양한 서로 다른 장치들 중 임의의 것일 수 있음을 유념해야 한다. 예를 들어, 휴대용 저장 장치(102)는 휴대용 USB 플래시 메모리 저장 장치, 휴대용 하드 디스크 드라이브 장치, 또는 디지털 카메라와 같은 플래시 메모리 또는 다른 저장 구성요소(들)를 포함하는 임의의 다른 장치일 수 있 다.
따라서, 여기에 설명된 휴대용 어플리케이션은 휴대용 저장 장치 상의 어플리케이션의 용이한 휴대성을 허용하는 것으로 볼 수 있다. 휴대용 어플리케이션은 휴대용 저장 장치를 서로 다른 호스트 컴퓨터들에 플러그인하거나 연결함으로써 서로 다른 호스트 컴퓨터들 상에서 실행될 수 있다. 호스트 컴퓨터들 중 어느 것에도 환경 설정에 대한 변경이 이루어지지 않으며, 호스트 컴퓨터들 중 어느 것에도 파일이 설치되지 않는다. 따라서, 호스트 컴퓨터 상의 환경 설정은, 휴대용 어플리케이션이 호스트 컴퓨터 상에서 실행되더라도 동일하게 남아 있고, 휴대용 어플리케이션은 사용자 또는 그 또는 그녀가 작업하는 데이터에 관한 정보를 드러낼 수 있는 파일 또는 설정을 남겨두지 않기 때문에, 사용자의 프라이버시가 유지된다.
도 6은 여기에 설명된 휴대용 어플리케이션이 사용될 수 있는 일반적인 컴퓨터 환경(300)을 도시한다. 컴퓨터 환경(300)은 컴퓨팅 환경의 일례일 뿐이며, 컴퓨터 및 네트워크 아키텍처의 사용 또는 기능의 범주에 관한 임의의 제한을 제시하려는 것이 아니다. 컴퓨터 환경(300)은 예시적인 컴퓨터 환경(300) 내에 도시된 컴포넌트들 중 임의의 하나 또는 그것의 조합에 관련된 임의의 의존성 또는 요건을 갖는 것으로 해석되어서는 안된다.
컴퓨터 환경(300)은 컴퓨터(302)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(302)는 예를 들어, 도 1의 호스트 컴퓨터(104)일 수 있다. 컴퓨터(302)의 컴포넌트는 하나 이상의 프로세서 또는 프로세싱 유닛(304), 시스템 메모리(306), 및 프로세서(304)를 포함하는 다양한 시스템 컴포넌트들을 시스템 메모리(306)에 연결하는 시스템 버스(308)를 포함할 수 있지만 이것으로 제한되지 않는다.
시스템 버스(308)는 메모리 버스 또는 메모리 제어기, 주변장치 버스, AGP(accelerated graphics port), 및 다양한 버스 아키텍처들 중 임의의 것을 사용하는 프로세서 또는 로컬 버스를 포함한 여러 유형의 버스 구조들 중 임의의 하나 이상을 나타낸다. 예를 들어, 그러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌 버스로도 알려진 PCI(Peripheral Component Interconnect) 버스를 포함할 수 있다.
컴퓨터(302)는 일반적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 그러한 매체는 컴퓨터(302)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체 둘 다를 포함한다.
시스템 메모리(306)는 랜덤 액세스 메모리(RAM)(310)와 같은 휘발성 메모리 , 및/또는 판독 전용 메모리(ROM)(312)와 같은 비휘발성 메모리 형태의 컴퓨터 판독가능 매체를 포함한다. 시작할 때 등에, 컴퓨터(302) 내의 구성요소들 간의 정보의 전송을 돕는 기본 입/출력 시스템(BIOS)(314)은 ROM(312) 내에 저장된다. RAM(310)은 일반적으로 프로세싱 유닛(304)에 즉시 액세스가능하고/액세스가능하거나 현재 그것에 의해 동작되는 데이터 및/프로그램 모듈을 포함한다.
컴퓨터(302)는 또한, 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들어, 도 6은 비분리형 비휘발성 자기 매체(도시되지 않음)로부터 판독하고 그곳에 기록하기 위한 하드 디스크 드라이브(316), 분리형 비휘발 성 자기 디스크(320)(예를 들어, "플로피 디스크")로부터 판독하고 그곳에 기록하기 위한 자기 디스크 드라이브(332), 및 CD-ROM, DVD-ROM 또는 다른 광 매체와 같은 분리형 비휘발성 광 디스크(324)로부터 판독하고/판독하거나 그곳에 기록하기 위한 광 디스크 드라이브(322)를 도시한다. 하드 디스크 드라이브(316), 자기 디스크 드라이브(332) 및 광 디스크 드라이브(322)는 각각 하나 이상의 데이터 매체 인터페이스(326)에 의해 시스템 버스(308)에 접속된다. 다르게, 하드 디스크 드라이브(316), 자기 디스크 드라이브(332) 및 광 디스크 드라이브(322)는 하나 이상의 인터페이스(도시되지 않음)에 의해 시스템 버스(308)에 접속될 수 있다. 추가적인 컴퓨터 저장 매체는 또한, 상술된 휴대용 플래시 저장 장치와 같은 컴퓨터(302)의 일부분으로서 포함될 수 있다.
디스크 드라이브 및 그에 관련된 컴퓨터-판독가능 매체는 컴퓨터 판독가능 명령어, 데이터 명령어, 프로그램 모듈, 및 다른 데이터의 비휘발성 저장장치를 컴퓨터(302)에 제공한다. 이 예는 하드 디스크(316), 분리형 자기 디스크(320) 및 분리형 광 디스크(324)를 도시하지만, 자기 카세트 또는 다른 자기 저장 장치, 플래시 메모리 카드, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장장치, RAM(랜덤 액세스 메모리), ROM(판독 전용 메모리), EEPROM(전기적으로 삭제가능한 프로그래밍가능한 판독-전용 메모리) 등과 같은 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 예시적인 컴퓨팅 시스템 및 환경을 구현하는 데 사용될 수 있음을 이해해야 한다.
예를 들어, 오퍼레이팅 시스템(326), 하나 이상의 어플리케이션 프로그램 (328), 다른 프로그램 모듈(330) 및 프로그램 데이터(332)를 포함한 임의의 개수의 프로그램 모듈은 하드 디스크(316), 자기 디스크(320), 광 디스크(324), ROM(312) 및/또는 RAM(310) 상에 저장될 수 있다. 그러한 오퍼레이팅 시스템(326), 하나 이상의 어플리케이션 프로그램(328), 다른 프로그램 모듈(330) 및 프로그램 데이터(332)(또는 그것의 임의의 조합) 각각은 분산된 파일 시스템을 지원하는 상주의 컴포넌트들 전부 또는 일부를 구현할 수 있다.
사용자는 키보드(334) 및 포인팅 장치(336)(예를 들어, "마우스")와 같은 입력 장치를 통해 컴퓨터(302)에 명령 및 정보를 입력할 수 있다. 그 외의 입력 장치(338)(명시적으로 도시되지 않음)로는, 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 직렬 포트, 스캐너 등이 있을 수 있다. 이러한 것 및 그 외의 입력 장치는 시스템 버스(308)에 연결되어 있는 입/출력 인터페이스(340)를 통해 프로세싱 유닛(304)에 접속되지만, 병렬 포트, 게임 포트, USB 또는 파이어와이어(IEEE 1394) 버스와 같은 그 외의 인터페이스 및 버스 구조에 의해 접속될 수 있다.
모니터(342) 또는 그 외의 유형의 디스플레이 장치도 비디오 어댑터(344)와 같은 인터페이스를 통해 시스템 버스(308)에 접속될 수 있다. 모니터(342) 외에, 다른 출력 주변 장치는 입/출력 인터페이스(340)를 통해 컴퓨터(302)에 접속될 수 있는 스피커(도시되지 않음) 및 프린터(346)와 같은 컴포넌트를 포함할 수 있다.
컴퓨터(302)는 원격 컴퓨팅 장치(348)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하여 네트워크화된 환경에서 동작할 수 있다. 예를 들어, 원격 컴퓨팅 장치(348)는 개인용 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨 터, 피어 장치 또는 다른 공통 네트워크 노드 등일 수 있다. 원격 컴퓨팅 장치(348)는 컴퓨터(302)에 관하여 여기에 설명된 구성요소들 및 특징들 다수 또는 전부를 포함할 수 있는 휴대용 컴퓨터로서 설명된다.
컴퓨터(302)와 원격 컴퓨터(348) 간의 논리 접속은 근거리 네트워크(LAN)(350) 및 일반 광역 네트워크(WAN)(352)로서 도시된다. 그러한 네트워크 환경은 사무실, 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔하다.
LAN 네트워크 환경에서 구현될 때, 컴퓨터(302)는 네트워크 인터페이스 또는 어댑터(354)를 통해 로컬 네트워크(350)에 접속된다. WAN 네트워크 환경에서 구현될 때, 컴퓨터(302)는 일반적으로 모뎀(356), 또는 광역 네트워크(352)를 통한 통신을 설정하기 위한 다른 수단을 포함한다. 컴퓨터(302)에 내장형 또는 외장형일 수 있는 모뎀(356)은 입/출력 인터페이스(340) 또는 다른 적절한 메커니즘을 통해 시스템 버스(308)에 접속될 수 있다. 설명된 네트워크 접속은 예시적인 것일 뿐이며, 컴퓨터들(302 및 348) 간의 통신 링크(들)를 설정하는 다른 수단이 채용될 수 있음을 이해해야 한다.
컴퓨팅 환경(300)과 함께 설명된 것과 같은 네트워크 환경에서, 컴퓨터(302)에 관해 설명된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치 내에 저장될 수 있다. 예를 들어, 원격 어플리케이션 프로그램(358)은 원격 컴퓨터(348)의 메모리 장치 상에 상주한다. 예를 들기 위해, 오퍼레이팅 시스템과 같은 어플리케이션 프로그램 및 다른 실행가능 프로그램 컴포넌트가 여기에 분리된 블럭으로서 도시되지만, 그러한 프로그램 및 컴포넌트는 컴퓨팅 장치(302)의 서로 다른 저장 컴포넌트들 내에 여러 번 상주하며, 컴퓨터의 데이터 프로세서(들)에 의해 실행된다는 것을 인지해야 한다.
프로그램 모듈과 같은 다양한 모듈 및 기술이 여기에서 컴퓨터-실행가능 명령어의 일반 문맥으로 설명될 수 있고, 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 일반적으로, 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 대로 결합 또는 분산될 수 있다.
이러한 모듈 및 기술의 구현은 임의의 형태의 컴퓨터 판독가능 매체 상에 저장되거나 그것을 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있지만, 이것으로 제한되지 않는다.
"컴퓨터 저장 매체"는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체로는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치, 또는 요구된 정보를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이것으로 제한되지 않는다.
"통신 매체"는 일반적으로, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내에 구현한다. 통신 매체는 또한, 임의의 정보 전달 매체도 포함한다. "변조된 데이터 신호"라는 용어는 정보를 신호 내에 인코딩하는 방법으로 설정 또는 변경된 특징들 중 하나 이상을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접-배선 접속과 같은 유선 네트워크, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상술된 것 중 임의의 것의 조합도 컴퓨터 판독가능 매체의 범주 내에 포함된다.
상술된 설명은 구조적 특징 및/또는 방법적 단계에 특정적인 언어를 사용하지만, 첨부된 청구범위에 정의된 본 발명은 설명된 특정 특징 또는 단계에 제한되지 않는다. 오히려, 특정 특징 및 단계는 본 발명을 구현하는 예시적인 형태로서 설명된다.
본 발명은, 사용자가 컴퓨터에서 컴퓨터로 이동하고, 요구된 프로그램, 및 선택적으로는 요구된 데이터를 쉽게 이용할 개선된 방법을 제공한다.

Claims (36)

  1. 휴대용 저장 장치로서,
    인터페이스; 및
    상기 인터페이스를 통해 호스트 컴퓨터에 연결되고 상기 호스트 컴퓨터에 의해 실행될 수 있는 하나 이상의 어플리케이션을 저장하는 하나 이상의 저장 구성요소 - 상기 호스트 컴퓨터는 상기 호스트 컴퓨터가 상기 호스트 컴퓨터의 오퍼레이팅 시스템을 통해 어플리케이션들 각각의 기능에 관해 상기 어플리케이션들에게 질의함으로써 상기 호스트 컴퓨터의 시스템 정보 저장소 내에 상기 어플리케이션들에 특정된 정보는 유지하지 않으면서 하나 이상의 저장 구성요소의 존재(presence)를 검출하도록 상기 하나 이상의 저장 구성요소에 특정된 장치 드라이버 정보를 식별하여 상기 호스트 컴퓨터 상에 설치함 -
    를 포함하고,
    상기 하나 이상의 저장 구성요소는,
    개인 저장소(private store) - 상기 개인 저장소는, 상기 호스트 컴퓨터의 환경 설정들은 변화시키지 않고 상기 어플리케이션들과 관련된 환경 설정들을 유지하고 상기 하나 이상의 저장 구성요소의 어플리케이션들의 환경 설정들에 액세스하라는 요청들을 수신하고, 상기 요청들에 응답하여, 상기 호스트 컴퓨터 상의 환경 설정들보다는 상기 개인 저장소의 환경 설정들에 액세스하고, 상기 개인 저장소는 상기 어플리케이션들 각각에 대한 별도의 개인 로컬 프로파일에 의해 구성됨 -; 및
    상기 하나 이상의 저장 구성요소들 내의 대응하는 실행가능 파일들을 실행시킴으로써 실행될 수 있는 어플리케이션들을 식별하는 사용자 인터페이스를 제공하기 위하여 상기 호스트 컴퓨터에 의해 액세스되는 자동실행 모듈 - 상기 자동실행 모듈은 상기 하나 이상의 저장 구성요소의 어플리케이션들 각각을 실행하는 데에 필요한 정보에 의해 구성됨 -
    을 포함하고,
    각각의 어플리케이션이 처음으로 상기 호스트 컴퓨터에 의해 실행될 시에 각각의 어플리케이션은 활성화 장치에 활성화를 요청하고, 상기 활성화는 상기 휴대용 저장 장치를 식별하는 식별자의 사용을 통해 상기 어플리케이션을 상기 휴대용 저장 장치에 고유하게 바인딩하여 상기 어플리케이션이 상기 바인딩된 휴대용 저장 장치로부터만 실행될 수 있게 하고, 상기 활성화는 상기 휴대용 저장 장치에 활성화 정보를 기입하는 것을 포함하고, 상기 활성화는 상기 호스트 컴퓨터에 의해 또는 상기 휴대용 저장 장치가 연결되는 다른 컴퓨터에 의해 처음 이후의 매회마다 각각의 어플리케이션의 실행을 가능하게 하는 휴대용 저장 장치.
  2. 제1항에 있어서,
    상기 휴대용 저장 장치는 상기 하나 이상의 실행가능 파일의 명령어들을 실행하기 위한 어떠한 프로세서도 포함하지 않는 휴대용 저장 장치.
  3. 제1항에 있어서,
    상기 자동실행 모듈은 사용자 인터페이스의 일부로서, 상기 어플리케이션들 중 하나의 어플리케이션과 관련된 유형의 데이터 파일에 대해 상기 하나의 어플리케이션과 관련된 아이콘을 제공하고, 상기 하나 이상의 저장 구성요소는 상기 데이터 파일을 저장하는 휴대용 저장 장치.
  4. 제1항에 있어서,
    상기 어플리케이션들 중 하나의 어플리케이션과 관련된 파일이 사용자에 의해 선택될 때, 상기 자동실행 모듈은 상기 하나의 어플리케이션을 자동으로 실행하는 휴대용 저장 장치.
  5. 제1항에 있어서,
    상기 하나 이상의 저장 구성요소는 또한, 복수의 데이터 파일들을 저장하고, 상기 복수의 데이터 파일들 중 몇몇은 상기 하나 이상의 실행가능 파일과 관련되고, 상기 복수의 데이터 파일들 중 몇몇은 상기 하나 이상의 실행가능 파일 중 어느 것과도 관련되지 않는 휴대용 저장 장치.
  6. 제1항에 있어서,
    상기 하나 이상의 실행가능 파일이 실행되어 상기 휴대용 저장 장치에 바인딩되어 있는 어플리케이션을 실행하는 휴대용 저장 장치.
  7. 제1항에 있어서,
    상기 하나 이상의 저장 구성요소는 하나 이상의 플래시 메모리를 포함하는 휴대용 저장 장치.
  8. 제7항에 있어서,
    상기 휴대용 저장 장치는 USB(Universal Serial Bus) 플래시 메모리 장치를 포함하는 휴대용 저장 장치.
  9. 제1항에 있어서,
    상기 별도의 개인 로컬 프로파일 각각은 각각의 어플리케이션에 의해 오버라이트(over write)될 때까지 디폴트 값들에 의해 미리 프로그래밍되는(pre-programmed) 휴대용 저장 장치.
  10. 제1항에 있어서,
    어플리케이션에 의해 생성되는 임의의 임시 파일은 상기 호스트 컴퓨터가 아니라 상기 개인 저장소에 기입되는 휴대용 저장 장치.
  11. 호스트 컴퓨터에서 구현되는 방법으로서,
    상기 호스트 컴퓨터에 휴대용 저장 장치를 연결하는 단계;
    상기 호스트 컴퓨터가 상기 휴대용 저장 장치의 존재를 검출하도록 상기 휴대용 저장 장치에 특정된 장치 드라이버 정보를 식별하여 상기 호스트 컴퓨터 상에 설치하는 단계;
    상기 휴대용 저장 장치 상에 저장된 휴대용 어플리케이션을 식별하는 단계; 및
    상기 호스트 컴퓨터의 오퍼레이팅 시스템을 통해 휴대용 어플리케이션의 기능에 관해 상기 휴대용 어플리케이션에게 질의함으로써 상기 호스트 컴퓨터의 시스템 정보 저장소 상에 상기 휴대용 어플리케이션의 정보는 유지하지 않으면서 상기 호스트 컴퓨터에 의해 상기 휴대용 어플리케이션을 실행하는 단계
    를 포함하고,
    상기 휴대용 어플리케이션은 개인 저장소를 갖고, 상기 호스트 컴퓨터 상의 환경 설정들에 액세스하라는 요청들을 수신하고, 상기 요청들에 응답하여, 상기 호스트 컴퓨터 상의 환경 설정들은 변화시키지 않도록 상기 호스트 컴퓨터 상의 환경 설정들보다는 상기 개인 저장소의 환경 설정들에 액세스하고, 상기 개인 저장소는 상기 휴대용 어플리케이션에 대하여, 다른 휴대용 어플리케이션 각각에 대한 개인 로컬 프로파일과는 분리된, 별도의 개인 로컬 프로파일을 포함하고,
    상기 휴대용 어플리케이션이 처음으로 상기 호스트 컴퓨터에 의해 실행될 시에 상기 휴대용 어플리케이션은 활성화 장치에 활성화를 요청하고, 상기 활성화는 상기 휴대용 저장 장치를 식별하는 식별자의 사용을 통해 상기 어플리케이션을 상기 휴대용 저장 장치에 고유하게 바인딩하여 상기 휴대용 어플리케이션이 상기 바인딩된 휴대용 저장 장치로부터만 실행될 수 있게 하고, 상기 활성화는 상기 휴대용 저장 장치에 활성화 정보를 기입하는 것을 포함하고, 상기 활성화는 상기 호스트 컴퓨터에 의해 또는 상기 휴대용 저장 장치가 연결되는 다른 컴퓨터에 의해 처음 이후의 매회마다 상기 휴대용 어플리케이션의 실행을 가능하게 하는 방법.
  12. 제11항에 있어서,
    상기 휴대용 어플리케이션을 식별하는 단계는,
    상기 휴대용 저장 장치 상에 저장된 복수의 휴대용 어플리케이션들을 식별하는 사용자 인터페이스를 제공하는 단계; 및
    실행될 상기 복수의 휴대용 어플리케이션들 중 하나의 휴대용 어플리케이션에 대한 사용자 선택을 수신하는 단계
    를 포함하는 방법.
  13. 제11항에 있어서,
    상기 휴대용 어플리케이션을 실행하는 단계는, 임의의 추가적인 드라이버가 상기 컴퓨터 상에 설치되도록 요청하지 않고서도 상기 휴대용 어플리케이션을 실행하는 단계를 더 포함하는 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020050101217A 2004-12-15 2005-10-26 휴대용 저장 장치 및 방법 KR101169085B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/012,926 US7712086B2 (en) 2004-12-15 2004-12-15 Portable applications
US11/012,926 2004-12-15

Publications (2)

Publication Number Publication Date
KR20060067815A KR20060067815A (ko) 2006-06-20
KR101169085B1 true KR101169085B1 (ko) 2012-07-27

Family

ID=36353983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050101217A KR101169085B1 (ko) 2004-12-15 2005-10-26 휴대용 저장 장치 및 방법

Country Status (5)

Country Link
US (1) US7712086B2 (ko)
EP (1) EP1672509B1 (ko)
JP (1) JP5301764B2 (ko)
KR (1) KR101169085B1 (ko)
CN (1) CN1790265B (ko)

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US10721087B2 (en) * 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11368327B2 (en) 2008-08-11 2022-06-21 Icontrol Networks, Inc. Integrated cloud system for premises automation
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
JP2007529826A (ja) 2004-03-16 2007-10-25 アイコントロール ネットワークス, インコーポレイテッド 対象事項管理ネットワーク
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US20060282571A1 (en) * 2005-04-25 2006-12-14 Perception Digital Limited Multimedia devices with enhanced functionality
US20070112979A1 (en) * 2005-11-16 2007-05-17 Phison Electronics Corp. [portable storage device with auto-executable program]
US20070168937A1 (en) * 2005-11-28 2007-07-19 Soummya Mallick Apparatus and method of application virtualization
US7353073B2 (en) * 2005-12-01 2008-04-01 Sandisk Corporation Method for managing appliances
US7739078B2 (en) * 2005-12-01 2010-06-15 Sandisk Corporation System for managing appliances
US7917487B2 (en) * 2005-12-13 2011-03-29 Microsoft Corporation Portable application registry
US8286158B2 (en) 2006-02-06 2012-10-09 Imation Corp. Method and system for installing portable executable applications
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US20080005472A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
WO2008026133A2 (en) * 2006-08-29 2008-03-06 Koninklijke Philips Electronics N.V. Method and device for binding a non-volatile storage device with a consumer product
US20080083037A1 (en) * 2006-10-03 2008-04-03 Rmcl, Inc. Data loss and theft protection method
US8316199B2 (en) 2006-11-07 2012-11-20 Hitachi Solutions, Ltd. Data processing control method, information processing apparatus, and data processing control system
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100864814B1 (ko) * 2007-02-09 2008-10-23 주식회사 씨모텍 광 저장 장치 또는/및 이동식 디스크로 구현된 컴퓨터 확장장치 및 그 구현 방법
JP4391535B2 (ja) * 2007-02-16 2009-12-24 株式会社沖データ 外部記憶装置、並びに、この外部記憶装置を備える画像処理装置及び画像形成装置
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US7818559B2 (en) 2007-02-28 2010-10-19 Microsoft Corporation Boot negotiation among multiple boot-capable devices
US20080215720A1 (en) * 2007-03-02 2008-09-04 Kenneth Vernon Westin Apparatus and system for lost/stolen data storage device recovery
US9083624B2 (en) * 2007-03-02 2015-07-14 Activetrak, Inc. Mobile device or computer theft recovery system and method
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
EP3474283A1 (en) * 2007-05-30 2019-04-24 Ascensia Diabetes Care Holdings AG Method and system for managing health data
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US8719498B2 (en) * 2007-08-24 2014-05-06 Samsung Electronics Co., Ltd. Data storage device and data providing method therein
CN101393587A (zh) * 2007-09-21 2009-03-25 鸿富锦精密工业(深圳)有限公司 一种具有安全保护功能的移动设备及其安全保护方法
KR101416247B1 (ko) * 2007-10-05 2014-07-08 삼성전자 주식회사 영상처리장치 및 그 제어방법
US8724819B2 (en) * 2007-10-16 2014-05-13 Nokia Corporation Credential provisioning
JP2009122749A (ja) * 2007-11-12 2009-06-04 Fujitsu Ltd プログラム、可搬記憶媒体及び制御方法
US20100121989A1 (en) * 2007-11-20 2010-05-13 Sherri Lynn Morris Digi Time Capsule
KR20090060771A (ko) * 2007-12-10 2009-06-15 한국전자통신연구원 공용시스템에서 스마트카드를 이용한 개인시스템의 환경구성 시스템 및 방법
FR2926375B1 (fr) * 2008-01-11 2010-02-12 Airbus France Procede d'execution d'une application informatique, kit et aeronef associes
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
KR100964326B1 (ko) * 2008-02-29 2010-06-17 (주)엔탑소프트 클라이언트 프로그램의 자동실행방법, 그 장치, 및 상기 장치를 포함하는 메모리 장치
US20090228654A1 (en) * 2008-03-06 2009-09-10 Quantum Corporation, A Delaware Corporation Media Cartridge Resident Auto-Sensing/Loading Archive Software
KR100932094B1 (ko) * 2008-04-04 2009-12-16 주식회사 셀픽 다중 에물레이션 기능을 갖는 솔리드 스테이트 디스크
JP2009266117A (ja) * 2008-04-28 2009-11-12 Hitachi Software Eng Co Ltd Usbメモリ装置、及び、それを用いたプラグインアプリケーションシステム
KR20090119436A (ko) * 2008-05-16 2009-11-19 삼성전자주식회사 휴대용 저장 장치에 저장된 컨텐트들과 관련된 서비스를제공하는 방법 및 그 장치
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
KR100898968B1 (ko) * 2008-07-03 2009-05-28 이승호 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제방법
US8473941B2 (en) * 2008-07-08 2013-06-25 Sandisk Il Ltd. Dynamic file system restriction for portable storage devices
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US9280335B2 (en) * 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US8793652B2 (en) 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US9396455B2 (en) * 2008-11-10 2016-07-19 Mindjet Llc System, method, and software application for enabling a user to view and interact with a visual map in an external application
JP5243194B2 (ja) * 2008-11-14 2013-07-24 キヤノン電子株式会社 画像読取装置及びその制御方法
CN101751445A (zh) * 2008-12-16 2010-06-23 鸿富锦精密工业(深圳)有限公司 图片管理系统
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
KR101055287B1 (ko) * 2009-05-14 2011-08-09 (주) 애니컴페니언 응용프로그램에서 사용되는 임시 파일의 관리 방법
TWI497414B (zh) * 2009-06-23 2015-08-21 Phison Electronics Corp 檔案執行方法及系統
KR101428979B1 (ko) * 2009-08-21 2014-08-13 에스케이플래닛 주식회사 휴대형 저장장치, 그를 이용한 응용프로그램 제공 시스템 및 방법
US8516236B2 (en) 2009-09-30 2013-08-20 Imation Corp. Portable desktop device and method of host computer system hardware recognition and configuration
US8555376B2 (en) * 2009-09-30 2013-10-08 Imation Corp. Method and system for supporting portable desktop with enhanced functionality
US8601532B2 (en) * 2009-09-30 2013-12-03 Imation Corp. Method and system for provisioning portable desktops
US8266350B2 (en) * 2009-09-30 2012-09-11 Imation Corp. Method and system for supporting portable desktop
JP2013511078A (ja) 2009-11-13 2013-03-28 イメーション コーポレイション 接続の確認のためのデバイスおよび方法
US8312184B2 (en) 2009-11-25 2012-11-13 Canon Denshi Kabushiki Kaisha Peripheral device usable without installing driver in computer beforehand
CN101800737B (zh) * 2009-12-23 2015-04-29 康佳集团股份有限公司 一种用于网络电视的业务管理方法
US9052919B2 (en) * 2010-01-15 2015-06-09 Apple Inc. Specialized network fileserver
KR101103795B1 (ko) * 2010-02-02 2012-01-06 주식회사 미라지웍스 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법
FR2960668A1 (fr) * 2010-05-27 2011-12-02 Airbus Operations Sas Procede et dispositif de configuration incrementale de modules de type ima
US9164671B2 (en) 2010-06-11 2015-10-20 Microsoft Technology Licensing, Llc Web application navigation domains
US8793650B2 (en) 2010-06-11 2014-07-29 Microsoft Corporation Dynamic web application notifications including task bar overlays
US8429546B2 (en) 2010-06-11 2013-04-23 Microsoft Corporation Creating task sessions
US8671384B2 (en) * 2010-06-11 2014-03-11 Microsoft Corporation Web application pinning including task bar pinning
US8863001B2 (en) 2010-06-11 2014-10-14 Microsoft Corporation Web application home button
US8434135B2 (en) 2010-06-11 2013-04-30 Microsoft Corporation Creating and launching a web application with credentials
US8595551B2 (en) 2010-06-11 2013-11-26 Microsoft Corporation Web application transitioning and transient web applications
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
KR101748318B1 (ko) * 2010-11-22 2017-06-27 삼성전자 주식회사 휴대 단말기의 어플리케이션 실행 방법 및 장치
US20120174212A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Connected account provider for multiple personal computers
CN102592085B (zh) * 2011-12-27 2015-09-16 中兴通讯股份有限公司 一种无线通信终端及行业软件安全运行方法
KR101291127B1 (ko) * 2012-02-01 2013-08-23 주식회사 안랩 사용자 장치 및 이를 이용한 악성 코드 진단 방법
US8850406B1 (en) * 2012-04-05 2014-09-30 Google Inc. Detecting anomalous application access to contact information
US10712898B2 (en) 2013-03-05 2020-07-14 Fasetto, Inc. System and method for cubic graphical user interfaces
US10855771B1 (en) 2013-04-29 2020-12-01 Kolkin Corp. Systems and methods for ad hoc data sharing
EP3022638B1 (en) 2013-07-18 2018-04-04 Fasetto, L.L.C. System and method for multi-angle videos
US10095873B2 (en) 2013-09-30 2018-10-09 Fasetto, Inc. Paperless application
US9584402B2 (en) 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
JP6486011B2 (ja) * 2014-03-28 2019-03-20 株式会社デンソーテン 車載装置の検査システム、車載装置の検査用装置、車載装置、および、可搬型の記憶媒体
EP3175588B1 (en) 2014-07-10 2023-10-25 Fasetto, Inc. Systems and methods for message editing
WO2016057091A1 (en) * 2014-10-06 2016-04-14 Fasetto, Llc Systems and methods for portable storage devices
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
US9503428B2 (en) 2014-10-10 2016-11-22 Zanguli Llc Secure device and proxy for secure operation of a host data processing system
DE102015210294A1 (de) * 2015-06-03 2016-12-08 Siemens Aktiengesellschaft Clientvorrichtung und Servervorrichtung zum abgesicherten Freischalten von Funktionen eines Clients
WO2017096245A1 (en) 2015-12-03 2017-06-08 Fasetto, Llc Systems and methods for memory card emulation
US11360673B2 (en) * 2016-02-29 2022-06-14 Red Hat, Inc. Removable data volume management
MX2019005965A (es) 2016-11-23 2019-10-24 Fasetto Inc Sistemas y metodos para transmision de medios.
US20180218132A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Application portability via application(s) installed on a portable storage device
KR20190131022A (ko) 2017-02-03 2019-11-25 파세토, 인크. 키잉된 디바이스들에서의 데이터 스토리지에 대한 시스템들 및 방법들
WO2019079628A1 (en) 2017-10-19 2019-04-25 Fasetto, Inc. PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS
JP2021505938A (ja) 2017-12-01 2021-02-18 ファセット・インコーポレーテッド データ暗号化を改善するシステムおよび方法
JP2021522568A (ja) 2018-04-17 2021-08-30 ファセット・インコーポレーテッド リアル・タイム・フィードバックを伴うプレゼンテーションのためのデバイス
JP2019091459A (ja) * 2018-12-11 2019-06-13 シャープ株式会社 情報処理装置、制御方法及びプログラム
US11874700B2 (en) 2019-11-12 2024-01-16 International Business Machines Corporation Wearable secure data device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172427A1 (en) 2000-05-16 2004-09-02 Thomas Trent M. Self-contained application disk for automatically launching application software or starting devices and peripherals

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233623B1 (en) * 1996-01-11 2001-05-15 Cabletron Systems, Inc. Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state
US5845128A (en) * 1996-02-20 1998-12-01 Oracle Corporation Automatically preserving application customizations during installation of a new software release
US6442570B1 (en) 1997-10-27 2002-08-27 Microsoft Corporation Object identification and data communication during an object synchronization process
US6721740B1 (en) * 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
US6405362B1 (en) 1998-11-13 2002-06-11 Microsoft Corporation Automatic software installation and cleanup
US6374402B1 (en) * 1998-11-16 2002-04-16 Into Networks, Inc. Method and apparatus for installation abstraction in a secure content delivery system
US6216158B1 (en) * 1999-01-25 2001-04-10 3Com Corporation System and method using a palm sized computer to control network devices
US6578045B1 (en) * 1999-04-20 2003-06-10 Microsoft Corporation System and method for retrieving registry data
US6343287B1 (en) * 1999-05-19 2002-01-29 Sun Microsystems, Inc. External data store link for a profile service
US6529992B1 (en) * 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
US20010042099A1 (en) * 2000-02-02 2001-11-15 Doongo Technologies, Inc. Apparatus and methods for optimizing traffic volume in wireless email communications
JP2002051058A (ja) * 2000-04-20 2002-02-15 Matsushita Electric Ind Co Ltd 通信システム、車載通信システム、通信機器、及び車載機器
EP1305688A2 (en) * 2000-05-28 2003-05-02 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US6868451B1 (en) * 2000-06-20 2005-03-15 Palm Source, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
JP2002041247A (ja) * 2000-07-28 2002-02-08 Nec Corp コンピュータシステムおよびusbメモリ装置
US7107587B1 (en) * 2000-09-18 2006-09-12 Microsoft Corporation Access redirector and entry reflector
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
US7464094B2 (en) 2000-12-29 2008-12-09 Gateway Inc. Shared registry with multiple keys for storing preferences and other applications on a local area network
US6850986B1 (en) * 2001-03-21 2005-02-01 Palm Source, Inc. Method and system for implementing URL scheme proxies on a computer system
US6944790B2 (en) * 2001-04-05 2005-09-13 International Business Machines Corporation System and method for collecting and restoring user environment data using removable storage
JP2003178017A (ja) * 2001-09-17 2003-06-27 Anyone Kk プログラム内蔵のusbデバイス
US7526575B2 (en) 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
JP2003108385A (ja) * 2001-09-28 2003-04-11 Toshiba Corp 着脱型外部記憶装置を利用したコンピュータシステムおよびコンピュータ利用方法
JP4708664B2 (ja) * 2002-02-08 2011-06-22 キヤノン株式会社 周辺機器、周辺機器の制御方法、周辺機器の制御プログラム及び記憶媒体
US7496931B2 (en) * 2003-12-30 2009-02-24 Symantec Corporation Portable memory storage devices containing public context application layers
JP3767818B2 (ja) * 2002-10-28 2006-04-19 株式会社サスライト 着脱式デバイス及びプログラムの起動方法
JP4245374B2 (ja) * 2002-11-01 2009-03-25 株式会社サスライト 着脱式デバイスおよび制御回路
US7555538B2 (en) * 2002-12-26 2009-06-30 Research In Motion Limited System and method for building and execution of platform-neutral generic services' client applications
US7356709B2 (en) * 2003-01-31 2008-04-08 Microsoft Corporation Systems and methods for deterring software piracy in a volume license environment
WO2004093149A2 (en) 2003-04-11 2004-10-28 Flexiworld Technologies, Inc. Autorun for integrated circuit memory component
US7152782B2 (en) * 2003-07-11 2006-12-26 Visa International Service Association System and method for managing electronic data transfer applications
US7203696B2 (en) * 2003-08-29 2007-04-10 Microsoft Corporation Dynamic registry partitioning
US7080164B2 (en) * 2003-09-23 2006-07-18 Intel Corporation Peripheral device having a programmable identification configuration register
US20050071378A1 (en) * 2003-09-30 2005-03-31 Smith Alan G. Method of storing applications on removable storage
US7080279B2 (en) 2003-12-03 2006-07-18 International Business Machines Corporation Autonomic rollback
US20050210501A1 (en) 2004-03-19 2005-09-22 Microsoft Corporation Method and apparatus for handling metadata
US20060026414A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Managing the environmental configuration for an application disposed in removable storage
US8499028B2 (en) * 2005-02-23 2013-07-30 International Business Machines Corporation Dynamic extensible lightweight access to web services for pervasive devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172427A1 (en) 2000-05-16 2004-09-02 Thomas Trent M. Self-contained application disk for automatically launching application software or starting devices and peripherals

Also Published As

Publication number Publication date
CN1790265A (zh) 2006-06-21
US20060130004A1 (en) 2006-06-15
JP2006172449A (ja) 2006-06-29
KR20060067815A (ko) 2006-06-20
JP5301764B2 (ja) 2013-09-25
EP1672509A3 (en) 2008-04-30
US7712086B2 (en) 2010-05-04
EP1672509B1 (en) 2018-05-23
CN1790265B (zh) 2011-03-16
EP1672509A2 (en) 2006-06-21

Similar Documents

Publication Publication Date Title
KR101169085B1 (ko) 휴대용 저장 장치 및 방법
US7849267B2 (en) Network-extended storage
JP5900911B2 (ja) 1つ以上のサンドボックス化されたアプリケーションのためのファイルシステムアクセス
US7818395B2 (en) Method and apparatus for interfacing with a restricted access computer system
TWI473019B (zh) 用於可部署物件階層內之應用程式管理的方法及系統
JP6151256B2 (ja) コンピューティングデバイス、作動方法及びコンピュータプログラム
US7600216B2 (en) Method for executing software applications using a portable memory device
JP4931255B2 (ja) 仮想化されたファイル・システム
US8359375B2 (en) Migration of data between computers
US20080126446A1 (en) Systems and methods for backing up user settings
JP5483116B2 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
TW200525358A (en) Method and apparatus for smart memory pass-through communication
JP2009501397A (ja) 分散ストレージを有するネットワークコンピュータシステムにおけるデータの単一ビュー
WO2018082289A1 (zh) 一种应用程序的管理方法、装置和计算机存储介质
US7120652B2 (en) Method, system and program for determining version of storage devices and programs indicated in the resource information installed in the computer system
KR20050004403A (ko) 이동식 저장장치 및 이동식 저장장치의 구동방법
US20060195693A1 (en) Specter rendering
KR100852652B1 (ko) 정보처리 단말기 및 호스트 자원을 이용한 정보처리단말기의 사용자 인터페이스 제공 시스템 및 방법
JP4718151B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7486368B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理システム及びプログラム
JP5443231B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR200341058Y1 (ko) 이동식 저장장치
KR100838513B1 (ko) 단일 영역을 갖는 기록매체의 활성화 방법 및 상기 방법을실행하기 위한 프로그램을 저장한 기록매체, 상기프로그램을 네트웍을 통해 다운로드 하기 위한 시스템
WO2015067185A1 (zh) 一种软件的安装方法和装置
WO2012026001A1 (ja) 情報処理装置およびプログラム管理方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 6