KR20060067815A - 휴대용 저장 장치 및 방법 - Google Patents
휴대용 저장 장치 및 방법 Download PDFInfo
- Publication number
- KR20060067815A KR20060067815A KR1020050101217A KR20050101217A KR20060067815A KR 20060067815 A KR20060067815 A KR 20060067815A KR 1020050101217 A KR1020050101217 A KR 1020050101217A KR 20050101217 A KR20050101217 A KR 20050101217A KR 20060067815 A KR20060067815 A KR 20060067815A
- Authority
- KR
- South Korea
- Prior art keywords
- portable
- application
- storage device
- computer
- portable storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44584—Portable applications, i.e. making applications self-contained, e.g. U3 standard
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital 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
도 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항에 있어서,상기 호스트 컴퓨터 상의 환경 설정은 상기 호스트 컴퓨터의 시스템 레지스트리 내의 정보를 포함하는 휴대용 저장 장치.
- 제1항에 있어서,상기 호스트 컴퓨터 상의 환경 설정은 상기 호스트 컴퓨터의 로컬 프로파일 내의 정보를 포함하는 휴대용 저장 장치.
- 제1항에 있어서,상기 호스트 컴퓨터 상의 환경 설정에 액세스하는 명령어들은 환경 설정을 기록하는 명령어들을 포함하는 휴대용 저장 장치.
- 제1항에 있어서,상기 하나 이상의 실행가능 파일은 상기 호스트 컴퓨터 상의 환경 설정에 액세스하는 명령어들을 포함하고,상기 하나 이상의 실행가능 파일은 상기 호스트 컴퓨터 상의 환경 설정에 액세스하고자 하는 요구를 수신하고, 그 요구에 응답하여 상기 호스트 컴퓨터 상의 환경 설정보다는 상기 하나 이상의 저장 구성요소 내의 설정에 액세스하는 매개체를 포함하는 휴대용 저장 장치.
- 제1항에 있어서,상기 휴대용 저장 장치는 상기 하나 이상의 실행가능 파일의 명령어들을 실행하는 프로세서를 포함하지 않는 휴대용 저장 장치.
- 제1항에 있어서,상기 하나 이상의 저장 구성요소는 상기 하나 이상의 실행가능 파일을 실행함으로써 실행될 수 있는 어플리케이션들을 식별하는 사용자 인터페이스를 제공하기 위해 상기 호스트 컴퓨터에 의해 액세스되는 자동실행 모듈을 저장하는 휴대용 저장 장치.
- 제7항에 있어서,상기 자동실행 모듈은 상기 사용자 인터페이스의 일부분으로서, 상기 어플리케이션들 중 하나의 어플리케이션에 관련된 유형의 데이터 파일에 상기 하나의 어플리케이션에 관련된 아이콘을 제공하고,상기 하나 이상의 저장 구성요소는 상기 데이터 파일을 저장하는 휴대용 저장 장치.
- 제7항에 있어서,상기 어플리케이션들 중 하나의 어플리케이션에 관련된 파일이 사용자에 의해 선택될 때, 상기 자동실행 모듈은 자동적으로 상기 하나의 어플리케이션을 실행하는 휴대용 저장 장치.
- 제1항에 있어서,상기 하나 이상의 저장 구성요소는 또한, 복수의 데이터 파일들을 저장하고,상기 복수의 파일들 중 몇몇은 상기 하나 이상의 실행가능 파일에 관련되고, 상기 복수의 데이터 파일들 중 몇몇은 상기 하나 이상의 실행가능 파일 중 어떤 것에도 관련되지 않는 휴대용 저장 장치.
- 제1항에 있어서,상기 하나 이상의 실행가능 파일은 상기 휴대용 저장 장치에 바인딩되어 있 는 어플리케이션을 실행하도록 실행되는 휴대용 저장 장치.
- 제1항에 있어서,상기 하나 이상의 저장 구성요소는 하나 이상의 플래시 메모리를 포함하는 휴대용 저장 장치.
- 제12항에 있어서,상기 휴대용 저장 장치는 USB(Universal Serial Bus) 플래시 메모리 장치를 포함하는 휴대용 저장 장치.
- 휴대용 저장 장치에 어플리케이션을 바인딩하는 단계를 포함하고, 상기 휴대용 저장 장치는 상기 어플리케이션을 실행하도록 실행되는 하나 이상의 실행가능 파일을 저장하고 있는 방법.
- 제14항에 있어서,상기 휴대용 저장 장치는 USB 장치를 포함하는 방법.
- 제14항에 있어서,상기 휴대용 저장 장치는 플래시 메모리 장치를 포함하는 방법.
- 제14항에 있어서,상기 바인딩 단계는 상기 어플리케이션을 활성화하는 단계의 일부분으로서 수행되는 방법.
- 제14항에 있어서,상기 휴대용 저장 장치 상에, 상기 어플리케이션이 활성화되었다는 표시를 저장하는 단계를 더 포함하는 방법.
- 제14항에 있어서,상기 어플리케이션이 상기 휴대용 저장 장치에 바인딩되어 있다는 레코드를 유지하는 단계를 더 포함하는 방법.
- 컴퓨터 내에 구현되는 방법으로서,상기 컴퓨터에 연결된 휴대용 저장 장치 상에 저장된 휴대용 어플리케이션을 식별하는 단계; 및상기 컴퓨터 상의 환경 설정을 변경하지 않고서 상기 휴대용 어플리케이션을 실행하는 단계를 포함하는 방법.
- 제20항에 있어서,상기 휴대용 저장 장치 상에 저장된 복수의 휴대용 어플리케이션을 식별하는 사용자 인터페이스를 제공하는 단계; 및상기 컴퓨터 상의 환경 설정에 액세스하고자 하는 하나 이상의 요구를 포함하더라도 상기 환경 설정을 변경하지 않고서 실행될 상기 복수의 휴대용 어플리케이션들 중 하나에 대한 사용자 선택을 수신하는 단계를 포함하는 방법.
- 제20항에 있어서,상기 컴퓨터 상의 환경 설정은 상기 컴퓨터의 시스템 레지스트리 내의 정보를 포함하는 방법.
- 제20항에 있어서,상기 휴대용 어플리케이션을 실행하는 단계는, 임의의 추가적인 드라이버가 상기 컴퓨터 상에 설치되기를 요구하지 않고서 상기 휴대용 어플리케이션을 실행하는 단계를 더 포함하는 방법.
- 컴퓨터 상에서 구현되는 방법으로서,상기 컴퓨터에 연결된 휴대용 저장 장치 상에 휴대용 어플리케이션을 설치하고자 하는 요구를 수신하는 단계;상기 휴대용 저장 장치에 상기 휴대용 어플리케이션에 대한 하나 이상의 실 행가능 파일을 기록하는 단계; 및상기 휴대용 어플리케이션에 관한 정보를 상기 휴대용 저장 장치 상의 개인 저장소에 기록하는 단계를 포함하는 방법.
- 제24항에 있어서,상기 정보를 기록하는 단계는 상기 컴퓨터 상의 시스템 정보 저장소에 휴대용 어플리케이션에 관한 상기 정보를 기록하지 않고서, 상기 정보를 상기 휴대용 저장 장치 상의 개인 저장소에 기록하는 단계를 포함하는 방법.
- 제24항에 있어서,상기 휴대용 저장 장치 상의 휴대용 어플리케이션의 존재를 식별하도록 상기 휴대용 저장 장치 상에 자동실행 모듈을 구성하는 단계를 더 포함하는 방법.
- 제24항에 있어서,상기 개인 저장소에 정보를 기록하기 전에, 상기 휴대용 저장 장치 상에 상기 개인 저장소를 생성하는 단계를 더 포함하는 방법.
- 제24항에 있어서,상기 개인 저장소는 미리 정보로 채워지고 상기 휴대용 저장 장치에 복사된 방법.
- 제24항에 있어서,상기 개인 저장소는 개인 레지스트리를 포함하는 방법.
- 복수의 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 매체로서, 상기 복수의 명령어들은 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가상기 컴퓨터 상에 어떤 영구적인 파일도 저장하지 않고,저장 장치 상의 환경 설정, 및 상기 컴퓨터 상의 환경 설정에 액세스하게 하는 하나 이상의 컴퓨터 판독가능 매체.
- 제30항에 있어서,상기 저장 장치 상의 환경 설정, 및 상기 컴퓨터 상의 환경 설정에 액세스하는 것은, 상기 저장 장치 및 상기 컴퓨터로부터 환경 설정을 판독하지만 상기 저장 장치에만 환경 설정을 기록하는 것인 하나 이상의 컴퓨터 판독가능 매체.
- 제30항에 있어서,상기 하나 이상의 컴퓨터 판독가능 매체는 휴대용 저장 장치의 일부분인 하나 이상의 컴퓨터 판독가능 매체.
- 제30항에 있어서,상기 복수의 명령어들은, 상기 하나 이상의 프로세서가 상기 복수의 명령어들의 실행을 종료하기 전에 상기 복수의 명령어들에 의해 상기 컴퓨터 상에 저장된 임의의 임시 파일들을 삭제하게 하는 하나 이상의 컴퓨터 판독가능 매체.
- 제30항에 있어서,상기 복수의 명령어들은 휴대용 어플리케이션이 활성화된 경우에만 실행되는 상기 휴대용 어플리케이션의 일부분인 하나 이상의 컴퓨터 판독가능 매체.
- 제30항에 있어서,상기 복수의 명령어들은 휴대용 어플리케이션이 활성화되지 않은 경우 감소된 기능으로 실행되는 상기 휴대용 어플리케이션의 일부분인 하나 이상의 컴퓨터 판독가능 매체.
- 제34항에 있어서,상기 휴대용 어플리케이션은 휴대용 저장 장치에 바인딩되는 하나 이상의 컴퓨터 판독가능 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/012,926 | 2004-12-15 | ||
US11/012,926 US7712086B2 (en) | 2004-12-15 | 2004-12-15 | Portable applications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060067815A true KR20060067815A (ko) | 2006-06-20 |
KR101169085B1 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100864814B1 (ko) * | 2007-02-09 | 2008-10-23 | 주식회사 씨모텍 | 광 저장 장치 또는/및 이동식 디스크로 구현된 컴퓨터 확장장치 및 그 구현 방법 |
KR100898968B1 (ko) * | 2008-07-03 | 2009-05-28 | 이승호 | 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제방법 |
KR100932094B1 (ko) * | 2008-04-04 | 2009-12-16 | 주식회사 셀픽 | 다중 에물레이션 기능을 갖는 솔리드 스테이트 디스크 |
KR100964326B1 (ko) * | 2008-02-29 | 2010-06-17 | (주)엔탑소프트 | 클라이언트 프로그램의 자동실행방법, 그 장치, 및 상기 장치를 포함하는 메모리 장치 |
KR101055287B1 (ko) * | 2009-05-14 | 2011-08-09 | (주) 애니컴페니언 | 응용프로그램에서 사용되는 임시 파일의 관리 방법 |
KR101103795B1 (ko) * | 2010-02-02 | 2012-01-06 | 주식회사 미라지웍스 | 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법 |
WO2013115603A1 (ko) * | 2012-02-01 | 2013-08-08 | 주식회사 안랩 | 사용자 장치 및 이를 이용한 악성 코드 진단 방법 |
US8719498B2 (en) | 2007-08-24 | 2014-05-06 | Samsung Electronics Co., Ltd. | Data storage device and data providing method therein |
KR101428979B1 (ko) * | 2009-08-21 | 2014-08-13 | 에스케이플래닛 주식회사 | 휴대형 저장장치, 그를 이용한 응용프로그램 제공 시스템 및 방법 |
Families Citing this family (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11368429B2 (en) | 2004-03-16 | 2022-06-21 | Icontrol Networks, Inc. | Premises management configuration and control |
US20090077623A1 (en) | 2005-03-16 | 2009-03-19 | Marc Baum | Security Network Integrating Security System and Network Devices |
US11582065B2 (en) | 2007-06-12 | 2023-02-14 | Icontrol Networks, Inc. | Systems and methods for device communication |
US11811845B2 (en) | 2004-03-16 | 2023-11-07 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11916870B2 (en) | 2004-03-16 | 2024-02-27 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US10127802B2 (en) | 2010-09-28 | 2018-11-13 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US10522026B2 (en) | 2008-08-11 | 2019-12-31 | Icontrol Networks, Inc. | Automation system user interface with three-dimensional display |
US10142392B2 (en) | 2007-01-24 | 2018-11-27 | Icontrol Networks, Inc. | Methods and systems for improved system performance |
US11244545B2 (en) | 2004-03-16 | 2022-02-08 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US11343380B2 (en) | 2004-03-16 | 2022-05-24 | Icontrol Networks, Inc. | Premises system automation |
US11489812B2 (en) | 2004-03-16 | 2022-11-01 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US10237237B2 (en) | 2007-06-12 | 2019-03-19 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
AU2005223267B2 (en) | 2004-03-16 | 2010-12-09 | Icontrol Networks, Inc. | Premises management system |
US9729342B2 (en) | 2010-12-20 | 2017-08-08 | Icontrol Networks, Inc. | Defining and implementing sensor triggered response rules |
US10721087B2 (en) * | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US20170118037A1 (en) | 2008-08-11 | 2017-04-27 | Icontrol Networks, Inc. | Integrated cloud system for premises automation |
US20170180198A1 (en) | 2008-08-11 | 2017-06-22 | Marc Baum | Forming a security network including integrated security system components |
US11615697B2 (en) | 2005-03-16 | 2023-03-28 | Icontrol Networks, Inc. | Premise management systems and methods |
US11496568B2 (en) | 2005-03-16 | 2022-11-08 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US20120324566A1 (en) | 2005-03-16 | 2012-12-20 | Marc Baum | Takeover Processes In Security Network Integrated With Premise Security System |
US10999254B2 (en) | 2005-03-16 | 2021-05-04 | Icontrol Networks, Inc. | System for data routing in networks |
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 |
CN101517535A (zh) * | 2006-08-29 | 2009-08-26 | 皇家飞利浦电子股份有限公司 | 用于将非易失性存储设备与消费产品绑定的方法和设备 |
US20080083037A1 (en) * | 2006-10-03 | 2008-04-03 | Rmcl, Inc. | Data loss and theft protection method |
JP4189436B2 (ja) * | 2006-11-07 | 2008-12-03 | 日立ソフトウエアエンジニアリング株式会社 | データ処理制御方法 |
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 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
JP4391535B2 (ja) * | 2007-02-16 | 2009-12-24 | 株式会社沖データ | 外部記憶装置、並びに、この外部記憶装置を備える画像処理装置及び画像形成装置 |
US7818559B2 (en) | 2007-02-28 | 2010-10-19 | Microsoft Corporation | Boot negotiation among multiple boot-capable devices |
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 |
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 |
US11646907B2 (en) | 2007-06-12 | 2023-05-09 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11601810B2 (en) | 2007-06-12 | 2023-03-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11212192B2 (en) | 2007-06-12 | 2021-12-28 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11218878B2 (en) | 2007-06-12 | 2022-01-04 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US12003387B2 (en) | 2012-06-27 | 2024-06-04 | Comcast Cable Communications, Llc | Control system user interface |
US10523689B2 (en) | 2007-06-12 | 2019-12-31 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11423756B2 (en) | 2007-06-12 | 2022-08-23 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11316753B2 (en) | 2007-06-12 | 2022-04-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11831462B2 (en) | 2007-08-24 | 2023-11-28 | Icontrol Networks, Inc. | Controlling data routing in premises management systems |
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 |
US20090228654A1 (en) * | 2008-03-06 | 2009-09-10 | Quantum Corporation, A Delaware Corporation | Media Cartridge Resident Auto-Sensing/Loading Archive Software |
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 |
US8473941B2 (en) * | 2008-07-08 | 2013-06-25 | Sandisk Il Ltd. | Dynamic file system restriction for portable storage devices |
US11758026B2 (en) | 2008-08-11 | 2023-09-12 | Icontrol Networks, Inc. | Virtual device systems and methods |
US11792036B2 (en) | 2008-08-11 | 2023-10-17 | Icontrol Networks, Inc. | Mobile premises automation platform |
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 |
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 |
TWI497414B (zh) * | 2009-06-23 | 2015-08-21 | Phison Electronics Corp | 檔案執行方法及系統 |
US8555376B2 (en) * | 2009-09-30 | 2013-10-08 | Imation Corp. | Method and system for supporting portable desktop with enhanced functionality |
US8516236B2 (en) | 2009-09-30 | 2013-08-20 | Imation Corp. | Portable desktop device and method of host computer system hardware recognition and configuration |
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 |
CA2776340C (en) | 2009-11-13 | 2016-07-26 | Imation Corp. | Device and method for verifying connectivity |
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 |
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 |
US8671384B2 (en) | 2010-06-11 | 2014-03-11 | Microsoft Corporation | Web application pinning including task bar pinning |
US8434135B2 (en) | 2010-06-11 | 2013-04-30 | Microsoft Corporation | Creating and launching a web application with credentials |
US8863001B2 (en) | 2010-06-11 | 2014-10-14 | Microsoft Corporation | Web application home button |
US8429546B2 (en) | 2010-06-11 | 2013-04-23 | Microsoft Corporation | Creating task sessions |
US8595551B2 (en) | 2010-06-11 | 2013-11-26 | Microsoft Corporation | Web application transitioning and transient web applications |
US8793650B2 (en) | 2010-06-11 | 2014-07-29 | Microsoft Corporation | Dynamic web application notifications including task bar overlays |
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 | 中兴通讯股份有限公司 | 一种无线通信终端及行业软件安全运行方法 |
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 |
ES2684300T3 (es) | 2013-07-18 | 2018-10-02 | Fasetto, L.L.C. | Sistema y método de vídeos de múltiples ángulos |
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 | 株式会社デンソーテン | 車載装置の検査システム、車載装置の検査用装置、車載装置、および、可搬型の記憶媒体 |
CN113222558A (zh) | 2014-07-10 | 2021-08-06 | 法斯埃托股份有限公司 | 用于消息编辑的***和方法 |
NZ730674A (en) * | 2014-10-06 | 2021-07-30 | Fasetto Inc | 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 |
JP7104701B2 (ja) | 2016-11-23 | 2022-07-21 | ファセット・インコーポレーテッド | メディア・ストリーミング・システムおよび方法 |
US20180218132A1 (en) * | 2017-02-02 | 2018-08-02 | Microsoft Technology Licensing, Llc | Application portability via application(s) installed on a portable storage device |
CN110461658A (zh) | 2017-02-03 | 2019-11-15 | 法斯埃托股份有限公司 | 用于钥匙化设备中的数据存储的***和方法 |
WO2019079628A1 (en) | 2017-10-19 | 2019-04-25 | Fasetto, Inc. | PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS |
AU2018374384A1 (en) | 2017-12-01 | 2020-07-23 | Fasetto, Inc. | Systems and methods for improved data encryption |
CA3097610A1 (en) | 2018-04-17 | 2019-10-24 | Fasetto, Inc. | Device presentation with real-time feedback |
JP2019091459A (ja) * | 2018-12-11 | 2019-06-13 | シャープ株式会社 | 情報処理装置、制御方法及びプログラム |
US11874700B2 (en) | 2019-11-12 | 2024-01-16 | International Business Machines Corporation | Wearable secure data device |
Family Cites Families (39)
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 | 通信システム、車載通信システム、通信機器、及び車載機器 |
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 |
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デバイス |
JP2003108385A (ja) * | 2001-09-28 | 2003-04-11 | Toshiba Corp | 着脱型外部記憶装置を利用したコンピュータシステムおよびコンピュータ利用方法 |
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 |
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 |
EP1618598A4 (en) | 2003-04-11 | 2008-07-16 | Flexiworld Technologies Inc | AUTORUN FOR AN INTEGRATED 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 |
-
2004
- 2004-12-15 US US11/012,926 patent/US7712086B2/en not_active Expired - Fee Related
-
2005
- 2005-10-26 KR KR1020050101217A patent/KR101169085B1/ko active IP Right Grant
- 2005-11-15 CN CN2005101250306A patent/CN1790265B/zh not_active Expired - Fee Related
- 2005-11-24 EP EP05111222.5A patent/EP1672509B1/en not_active Not-in-force
- 2005-11-29 JP JP2005344185A patent/JP5301764B2/ja not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100864814B1 (ko) * | 2007-02-09 | 2008-10-23 | 주식회사 씨모텍 | 광 저장 장치 또는/및 이동식 디스크로 구현된 컴퓨터 확장장치 및 그 구현 방법 |
US7793004B2 (en) | 2007-02-09 | 2010-09-07 | Cmotech Co., Ltd. | Computer peripheral device implemented as optic storage device or/and removable disk by software emulation and implementing method thereof |
US8719498B2 (en) | 2007-08-24 | 2014-05-06 | Samsung Electronics Co., Ltd. | Data storage device and data providing method therein |
KR100964326B1 (ko) * | 2008-02-29 | 2010-06-17 | (주)엔탑소프트 | 클라이언트 프로그램의 자동실행방법, 그 장치, 및 상기 장치를 포함하는 메모리 장치 |
KR100932094B1 (ko) * | 2008-04-04 | 2009-12-16 | 주식회사 셀픽 | 다중 에물레이션 기능을 갖는 솔리드 스테이트 디스크 |
WO2010002185A2 (ko) * | 2008-07-03 | 2010-01-07 | (주) 애니컴페니언 | 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제 방법 |
WO2010002185A3 (ko) * | 2008-07-03 | 2010-03-25 | (주) 애니컴페니언 | 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제 방법 |
KR100898968B1 (ko) * | 2008-07-03 | 2009-05-28 | 이승호 | 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제방법 |
KR101055287B1 (ko) * | 2009-05-14 | 2011-08-09 | (주) 애니컴페니언 | 응용프로그램에서 사용되는 임시 파일의 관리 방법 |
KR101428979B1 (ko) * | 2009-08-21 | 2014-08-13 | 에스케이플래닛 주식회사 | 휴대형 저장장치, 그를 이용한 응용프로그램 제공 시스템 및 방법 |
KR101103795B1 (ko) * | 2010-02-02 | 2012-01-06 | 주식회사 미라지웍스 | 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법 |
WO2013115603A1 (ko) * | 2012-02-01 | 2013-08-08 | 주식회사 안랩 | 사용자 장치 및 이를 이용한 악성 코드 진단 방법 |
KR101291127B1 (ko) * | 2012-02-01 | 2013-08-23 | 주식회사 안랩 | 사용자 장치 및 이를 이용한 악성 코드 진단 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR101169085B1 (ko) | 2012-07-27 |
EP1672509A2 (en) | 2006-06-21 |
CN1790265A (zh) | 2006-06-21 |
US7712086B2 (en) | 2010-05-04 |
CN1790265B (zh) | 2011-03-16 |
JP5301764B2 (ja) | 2013-09-25 |
JP2006172449A (ja) | 2006-06-29 |
EP1672509B1 (en) | 2018-05-23 |
EP1672509A3 (en) | 2008-04-30 |
US20060130004A1 (en) | 2006-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101169085B1 (ko) | 휴대용 저장 장치 및 방법 | |
US7849267B2 (en) | Network-extended storage | |
JP5900911B2 (ja) | 1つ以上のサンドボックス化されたアプリケーションのためのファイルシステムアクセス | |
TWI473019B (zh) | 用於可部署物件階層內之應用程式管理的方法及系統 | |
US7818395B2 (en) | Method and apparatus for interfacing with a restricted access computer system | |
JP6151256B2 (ja) | コンピューティングデバイス、作動方法及びコンピュータプログラム | |
JP4931255B2 (ja) | 仮想化されたファイル・システム | |
US7600216B2 (en) | Method for executing software applications using a portable memory device | |
US6795835B2 (en) | Migration of computer personalization information | |
US8359375B2 (en) | Migration of data between computers | |
US20080126446A1 (en) | Systems and methods for backing up user settings | |
US8417969B2 (en) | Storage volume protection supporting legacy systems | |
JP5483116B2 (ja) | メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム | |
TW200525358A (en) | Method and apparatus for smart memory pass-through communication | |
JP2009501397A (ja) | 分散ストレージを有するネットワークコンピュータシステムにおけるデータの単一ビュー | |
US7120652B2 (en) | Method, system and program for determining version of storage devices and programs indicated in the resource information installed in the computer system | |
WO2018082289A1 (zh) | 一种应用程序的管理方法、装置和计算机存储介质 | |
KR20050004403A (ko) | 이동식 저장장치 및 이동식 저장장치의 구동방법 | |
KR100852652B1 (ko) | 정보처리 단말기 및 호스트 자원을 이용한 정보처리단말기의 사용자 인터페이스 제공 시스템 및 방법 | |
JP4718151B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP7486368B2 (ja) | 情報処理装置、情報処理装置の制御方法、情報処理システム及びプログラム | |
JP5443231B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR200341058Y1 (ko) | 이동식 저장장치 | |
KR100838513B1 (ko) | 단일 영역을 갖는 기록매체의 활성화 방법 및 상기 방법을실행하기 위한 프로그램을 저장한 기록매체, 상기프로그램을 네트웍을 통해 다운로드 하기 위한 시스템 | |
WO2015067185A1 (zh) | 一种软件的安装方法和装置 |
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 |