KR20170046779A - 컴퓨팅 환경 선택 기술 - Google Patents

컴퓨팅 환경 선택 기술 Download PDF

Info

Publication number
KR20170046779A
KR20170046779A KR1020177008741A KR20177008741A KR20170046779A KR 20170046779 A KR20170046779 A KR 20170046779A KR 1020177008741 A KR1020177008741 A KR 1020177008741A KR 20177008741 A KR20177008741 A KR 20177008741A KR 20170046779 A KR20170046779 A KR 20170046779A
Authority
KR
South Korea
Prior art keywords
data file
computing environment
computing device
user
environment
Prior art date
Application number
KR1020177008741A
Other languages
English (en)
Other versions
KR101973361B1 (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 KR20170046779A publication Critical patent/KR20170046779A/ko
Application granted granted Critical
Publication of KR101973361B1 publication Critical patent/KR101973361B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F17/30115
    • G06F17/30194
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

컴퓨팅 장치의 사용자는 데이터 파일을 선택하고, 입력 장치를 통해, 선택된 데이터 파일을 열기 위한 커맨드를 전송한다. 이에 응답하여, 상기 컴퓨팅 장치는, 선택된 데이터 파일에 대응하는 파일 유형과 관련된 정책에 적어도 부분적으로 기초하여, 상기 데이터 파일이 가상 컴퓨터 환경에서 열려야 하는지를 결정하는 위치 결정 애플리케이션을 론칭한다. 상기 컴퓨팅 장치는, 서버로 하여금, 상기 선택된 데이터 파일을 열 수 있는 애플리케이션을 상기 가상 컴퓨팅 환경 내에서 론칭하게 할 수 있는 하나 이상의 실행가능한 명령과 함께 상기 선택된 데이터 파일을 상기 가상 컴퓨팅 환경에 제공한다. 상기 컴퓨팅 장치의 사용자는, 상기 컴퓨팅 장치에 설치된 가상 컴퓨팅 환경 인터페이스를 통해, 상기 가상 컴퓨터 환경에 액세스하여 상기 선택된 데이터 파일을 사용할 수 있다.

Description

컴퓨팅 환경 선택 기술{COMPUTING ENVIRONMENT SELECTION TECHNIQUES}
관련 출원에 대한 상호 참조
본 출원은 전체 내용이 본 명세서에 병합된 발명의 명칭이 "컴퓨팅 환경 선택 기술"인 2014년 9월 22일자로 출원된 동시 계류중인 미국 특허 출원 번호 14/492,648의 우선권을 주장한다.
생산성 및 다른 애플리케이션에 대한 액세스는 종종 가상 컴퓨팅 환경을 사용하여 제공된다. 예를 들어 사용자는 서버와 연결을 수립하여 서버에서 실행되는 애플리케이션에 액세스할 수 있다. 애플리케이션이 로컬에서 실행되는 것처럼 사용가능성을 제공하기 위해 다양한 기술이 사용될 수 있다. 예를 들어, 사용자 장치의 디스플레이는 데스크탑 메타포(desktop metaphor)에 따라 그래픽 사용자 인터페이스를 제공하여, 이에 의해 사용자가 원격으로 실행되는 애플리케이션을 열고 상호 작용할 수 있게 한다. 일부 예에서 조직의 데이터 센터에서 호스팅되는 서버와 같은 조직의 자체 하드웨어를 사용하여 이러한 기능이 제공된다. 다른 예에서, 컴퓨팅 자원 서비스 제공자는 자신의 하드웨어를 사용하여 고객을 위하여 가상 컴퓨팅 환경을 호스팅한다. 이러한 시스템을 종종 일반적으로 "가상 데스크탑 인프라"(virtual desktop infrastructure: VDI)라고 언급된다.
클라이언트 컴퓨팅 장치 및 그 대응하는 가상 컴퓨팅 시스템 환경은 클라이언트 컴퓨팅 장치 또는 가상 컴퓨팅 시스템 환경 내에 저장된 하나 이상의 데이터 파일에 액세스하는데 사용될 수 있는 다양한 설치된 애플리케이션을 각각 가질 수 있다. 가상 컴퓨팅 시스템 환경을 제공하는 종래의 구성은 종종 융통성이 없기 때문에 종종 하나의 환경과 이와 다른 환경 사이를 전환하는 것을 어렵게 한다. 또한, 일부 상황에서, 클라이언트 컴퓨팅 장치가 휴대용 컴퓨터(예를 들어, 노트북 또는 태블릿 컴퓨터)이고 애플리케이션이 민감한 데이터에 액세스하는 것과 같이 애플리케이션을 로컬에서 실행하는 것은 보안 위험을 증가시킬 수 있다. 다른 환경에서는 특정 파일 유형의 파일은 하나의 환경에서 이용가능할 수 있으나 이 파일을 열고 처리하도록 동작가능한 적절한 애플리케이션이 없다면 이용할 수 없다.
본 발명에 따른 다양한 실시예가 도면을 참조하여 설명될 것이다.
도 1은 다양한 실시예가 구현될 수 있는 환경의 예시적인 실시예를 도시한다.
도 2는 적어도 하나의 실시예에 따라 사용자가 가상 컴퓨팅 환경에 액세스할 수 있도록 가상 컴퓨팅 환경 서비스의 하나 이상의 구성 요소가 구성된 환경의 예시적인 예를 도시한다.
도 3은 적어도 하나의 실시예에 따라 사용자의 컴퓨팅 장치의 하나 이상의 구성 요소가 가상 컴퓨팅 환경 서비스와 통신 및 액세스하는 것을 가능하게 하도록 구성된 환경의 예시적인 예를 도시한다.
도 4는 적어도 하나의 실시예에 따라 사용자가 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일을 선택할 수 있는, 사용자의 컴퓨팅 장치 환경의 예시적인 예를 도시한다.
도 5는 적어도 하나의 실시예에 따라 정책 구현에 응답하여 인터페이스를 통해 선택된 데이터 파일이 가상 컴퓨팅 환경 내에서 사용되는, 사용자의 컴퓨팅 장치 환경의 예시적인 예를 도시한다.
도 6은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 컴퓨팅 장치 환경 내 애플리케이션을 실행하는 것에 의해 사용되는, 사용자의 컴퓨팅 장치 환경의 예시적인 예를 도시한다.
도 7은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 애플리케이션을 사용하는 것에 의해 사용될 수 있는 컴퓨팅 환경을 결정하는 프로세스의 예시적인 예를 도시한다.
도 8은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 사용될 수 있는 컴퓨팅 환경을 결정하는 하나 이상의 정책을 사용하는 프로세스의 예시적인 예를 도시한다.
도 9는 적어도 하나의 실시예에 따라 데이터 파일을 사용하는데 이용가능한 애플리케이션이 없다는 결정에 응답하여 데이터 파일을 다른 컴퓨팅 환경으로 전송하는 프로세스의 예시적인 예를 도시한다.
도 10은 다양한 실시예가 구현될 수 있는 환경을 도시한다.
이하 설명에서, 다양한 실시예가 설명될 것이다. 설명을 위해, 특정 구성 및 상세 사항이 실시예에 대한 완전한 이해를 제공하기 위해 제시된다. 그러나, 실시예가 특정 상세 사항 없이 실시될 수 있다는 것은 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다. 또한, 설명되는 실시예를 모호하게 하지 않기 위해 잘 알려진 특징은 생략되거나 단순화될 수 있다.
본 명세서에서 설명되고 제안된 기술은 로컬 컴퓨팅 환경 또는 가상 컴퓨팅 시스템 환경에 위치된 하나 이상의 데이터 파일을 사용하는 애플리케이션에 액세스하는 컴퓨팅 환경을 선택하는 것에 관한 것이다. 일 실시예에서, 개체(entity)는 컴퓨팅 장치(예를 들어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 장치 등)를 사용하여 컴퓨팅 장치 상에 저장된 데이터 파일을 사용한다. 데이터 파일은 컴퓨팅 장치에 설치된 다양한 애플리케이션과 관련될 수 있다. 예를 들어, 개체가 데이터 파일을 선택할 때, 컴퓨팅 장치는 컴퓨팅 장치에 설치된 관련 애플리케이션을 론칭(launch)하여, 사용자가 자신의 목적을 위해 데이터 파일을 사용할 수 있게 할 수 있다. 일부 예에서 개체는 조직의 직원이며, 이 개체에는 조직의 업무적 요구를 지원하기 위해 컴퓨팅 장치가 제공된다. 그러나, 본 명세서에 설명된 기술은 가상 컴퓨팅 시스템 환경이 사용되는 다른 환경에도 적용 가능하다.
일 실시예에서, 조직은 다양한 데이터 파일 유형을 위한 디폴트 애플리케이션으로 기능하도록 구성될 수 있는 위치 결정 애플리케이션을 컴퓨팅 장치에 설치할 수 있다. 예를 들어, 개체가 데이터 파일에 액세스하는데 사용될 수 있는 애플리케이션을 실행하기보다는 특정 데이터 파일을 선택할 때, 컴퓨팅 장치는 이 위치 결정 애플리케이션을 실행할 수 있다. 위치 결정 애플리케이션은, 조직에 의해 제공되고 컴퓨팅 장치의 레지스트리(registry) 또는 다른 메커니즘에 인코딩된 정책을 평가하여, 이 정책이 데이터 파일이 로컬 컴퓨팅 장치 환경 내에서 사용되어야 하는지 또는 데이터 파일이 가상 컴퓨팅 시스템 환경 내에서 사용되어야 하는지를 지정하는지 여부를 결정하도록 구성될 수 있다. 예를 들어, 정책이 데이터 파일이 로컬 컴퓨팅 장치 환경 내에서 사용될 수 있다고 지정하면, 위치 결정 애플리케이션은 컴퓨팅 장치로 하여금 개체에 의해 사용될 수 있는 장치에 설치된 애플리케이션을 실행하여 선택된 데이터 파일을 사용하게 할 수 있다.
위치 결정 애플리케이션이, 컴퓨팅 장치의 레지스트리 파일에 인코딩된 정책에 기초하여, 데이터 파일이 가상 컴퓨팅 시스템 환경 내에서 사용되어야 하는 것으로 결정하면, 위치 결정 애플리케이션은 컴퓨팅 장치로 하여금 가상 컴퓨팅 환경 서비스와 통신 세션을 개시하여 가상 컴퓨팅 환경 인터페이스를 론칭하게 할 수 있다. 이 인터페이스는 그래픽 사용자 인터페이스(graphical user interface: GUI)일 수 있으며, 이는 개체가 다양한 데이터 파일 유형과 관련될 수 있는 다양한 애플리케이션을 포함하는 가상 머신 인스턴스(virtual machine instance)와 상호 작용하게 할 수 있다. 일 실시예에서, 위치 결정 애플리케이션은 컴퓨팅 장치가 선택된 데이터 파일을 가상 컴퓨터 환경 서비스에 의해 제공되는 물리적 호스트(즉, 물리적 컴퓨터 시스템)에 전송하여 물리적 호스트 내의 데이터 저장소에 데이터 파일을 저장하게 한다. 이것은 가상 컴퓨터 환경에서 이 데이터 파일을 사용할 수 있게 한다.
일단 데이터 파일이 가상 컴퓨팅 환경 서비스 내의 물리적 호스트로 전송되면, 위치 결정 애플리케이션은 하나 이상의 실행 가능한 명령을 가상 컴퓨팅 환경 내의 애플리케이션에 전송하여, 이 애플리케이션이 환경 내에서 론칭되게 하고 이 애플리케이션이 데이터 파일에 액세스하게 할 수 있다. 이것은 개체가 인터페이스를 사용하여 가상 컴퓨팅 환경 내에서 액세스되는 이 애플리케이션 및 데이터 파일과 상호 작용하게 할 수 있다. 개체가 이러한 환경에서 데이터 파일의 사용을 종료하면, 애플리케이션은 사용자의 컴퓨팅 장치와는 다른 위치에 데이터 파일을 저장할 수 있다. 또한, 가상 컴퓨팅 환경 서비스는 업데이트된 데이터 파일을 개체의 컴퓨팅 장치에 전송할 수 있으며, 여기서 데이터 파일은 동기화되고 저장될 수 있다.
다른 실시예에서, 개체는 자신의 컴퓨팅 장치를 통해 액세스 가능한 인터페이스를 통해 가상 컴퓨팅 환경 내의 데이터 파일을 선택한다. 선택된 데이터 파일에 액세스하는 데 필요한 애플리케이션이 가상 컴퓨팅 환경 내에서 이용 가능하지 않은 경우, 가상 컴퓨팅 환경 서비스는 개체 프로파일 또는 개체의 컴퓨팅 장치에 액세스하여, 프로파일 내 정보가 적절한 애플리케이션이 개체의 컴퓨팅 장치에 설치되어 있는 것을 나타내는지 여부를 결정할 수 있다. 적절한 애플리케이션이 개체의 컴퓨팅 장치에 설치되면, 가상 컴퓨팅 환경 서비스는 선택된 데이터 파일을 개체의 컴퓨팅 장치에 전송하고, 애플리케이션이 컴퓨팅 장치 내에서 론칭되게 하여 개체가 (예를 들어, 개체의 관점에서) 로컬인 컴퓨팅 환경 내에서 데이터 파일을 사용하게 할 수 있다.
이런 방식으로, 개체에 의해 선택된 데이터 파일은 애플리케이션의 이용가능성과 정책 정의에 기초하여 최적의 컴퓨팅 환경에서 액세스되고 사용될 수 있다. 또한, 본 명세서에서 기술되고 제안된 기술은 추가적인 기술적 장점을 제공한다. 예를 들어, 일부 실시예에서, 가상 컴퓨팅 환경 서비스가 애플리케이션이 개체에 이용가능하여 데이터 파일에 액세스할 수 있는 환경으로 데이터 파일을 전송할 수 있기 때문에, 개체는, 데이터 파일을 사용하기 위하여 자신의 컴퓨팅 장치 또는 가상 컴퓨팅 환경 내에 애플리케이션을 설치하거나 데이터 파일에 액세스하기 위해 데이터 파일을 다른 위치 또는 환경으로 수동으로 전송할 필요 없이, 임의의 적절한 환경으로부터 데이터 파일에 액세스할 수 있다.
도 1은 다양한 실시예가 구현될 수 있는 환경(100)의 예시적인 실시예를 도시한다. 환경(100)에서, 사용자는 컴퓨팅 장치(102)(예를 들어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 장치 등)를 통해 운영 시스템(operating system) 인터페이스(104)와 상호 작용하며 컴퓨팅 시스템(102) 내에 저장된 하나 이상의 데이터 파일(106)에 액세스할 수 있다. 운영 시스템 인터페이스(104)는 컴퓨팅 장치(102)에 설치된 하나 이상의 사용자 입력 장치를 통해 사용자가 컴퓨팅 장치(102) 내에 저장된 애플리케이션, 파일 구조 및 데이터 파일의 하나 이상의 아이콘 그래픽 표현과 상호 작용하는 데 사용할 수 있는 그래픽 사용자 인터페이스일 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 사용자는 자신의 컴퓨팅 장치(102)를 사용하여 운영 시스템 인터페이스(104) 내의 커서(108)와 상호 작용하며 컴퓨터 아이콘(110), 휴지통 아이콘(112) 및 하나 이상의 데이터 파일 아이콘(106)을 선택할 수 있다. 이들 아이콘(106, 110, 112)은 인터페이스(104)를 통해 운영 시스템, 애플리케이션, 파일 구조 및 데이터 파일 그 자체의 다양한 기능에 액세스하는데 사용될 수 있다.
사용자가 관련 데이터 파일을 사용하기 위해 커서(108)를 사용하여 데이터 파일 아이콘(106)을 선택할 때, 컴퓨팅 장치(102)에 설치된 운영 시스템은 선택된 데이터 파일이 컴퓨팅 장치(102)에 설치된 하나 이상의 애플리케이션과 관련되어 있는지 여부를 결정할 수 있다. 예를 들어, 운영 시스템은, 사용자가 커서(108)를 사용하여 데이터 파일 아이콘(106)을 선택한 것에 응답하여, 레지스트리 파일에 액세스하여, 특정 데이터 파일 유형이 컴퓨팅 장치(102)에 설치된 하나 이상의 애플리케이션과 관련되어 있는지 여부를 결정할 수 있다. 특정 데이터 파일 유형이 특정 애플리케이션과 관련되어 있다면, 운영 시스템은 애플리케이션을 실행하고 이 애플리케이션을 통해 데이터 파일을 사용하게 할 수 있다. 예를 들어, 특정 데이터 파일이 워드 프로세싱 문서인 경우, 임의의 적절한 워드 프로세싱 애플리케이션을 사용하여 문서는 열릴 수 있다. 다른 예에서, 특정 데이터 파일이 스프레드시트 문서인 경우, 임의의 적절한 스프레드시트 애플리케이션을 사용하여 문서는 열릴 수 있다. 레지스트리 파일이 설명을 위한 목적으로 본 명세서 전반에 걸쳐 사용되었지만, 특정 데이터 파일 유형이 컴퓨팅 장치(102)에 설치된 하나 이상의 애플리케이션과 관련되어 있는지 여부를 결정하는 데 사용될 수 있는 하나 이상의 정책이 다른 메커니즘으로 인코딩될 수 있다. 예를 들어, 일부 운영 시스템은 레지스트리 파일 이외의 설정을 사용하여 사용자의 컴퓨팅 장치(102) 내에 저장된 이러한 하나 이상의 정책을 인코딩하도록 구성될 수 있다.
일 실시예에서, 선택된 데이터 파일은, 컴퓨팅 장치(102)를 통해 사용자에게 설치되어 액세스 가능한 애플리케이션과 관련되는 대신에, 사용자의 컴퓨팅 장치(102)의 관리자 또는 일부 다른 감독 개체에 의해 컴퓨팅 장치(102)에 설치된 위치 결정 애플리케이션과 관련될 수 있다. 위치 결정 애플리케이션은 컴퓨팅 장치(102)에 설치된 하나 이상의 레지스트리 파일에 액세스하여, 선택된 데이터 파일 유형과 관련될 수 있는 하나 이상의 정책을 식별하도록 구성될 수 있다. 이들 정책은 특정 유형의 데이터 파일이 컴퓨팅 장치(102)에 설치된 애플리케이션을 통해 또는 별도의 컴퓨팅 환경에서 이용가능한 애플리케이션을 통해 사용되어야 하는지 여부를 지정할 수 있다. 하나 이상의 정책이 특정 유형의 데이터 파일이 컴퓨팅 장치(102)에 설치된 애플리케이션을 사용하여 액세스될 수 있다고 지정하는 경우, 위치 결정 애플리케이션은 운영 시스템으로 하여금 적절한 애플리케이션을 실행시키고 사용자로 하여금 컴퓨팅 장치(102) 및 운영 시스템 인터페이스(104)를 통해 애플리케이션을 사용하여 선택된 데이터 파일과 상호 작용하게 할 수 있다.
그러나, 하나 이상의 정책이 선택된 데이터 파일이 컴퓨팅 장치(102)에 설치된 임의의 애플리케이션을 사용하여 사용되지 않는 것으로 지정하면, 위치 결정 애플리케이션은 운영 시스템으로 하여금 하나 이상의 가상 컴퓨팅 환경 서버(114)와 통신 세션을 개시하여, 선택된 데이터 파일이 사용될 수 있는 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 가상 컴퓨팅 환경 서버(114)는 하나 이상의 가상 머신 이미지를 인스턴스화하는데 사용될 수 있는 하나 이상의 물리적 호스트를 포함할 수 있다. 또한, 가상 컴퓨팅 환경은 데스크톱 메타포(desktop metaphor)를 사용하지 않을 수도 있는 단일 점유자(예를 들어, 한 번에 단 하나의 사용자만이 사용할 수 있음) 데스크탑 또는 다른 단일 점유자 가상 컴퓨팅 환경일 수 있다. 이들 하나 이상의 가상 머신 이미지는, 인스턴스화될 때, 이들 가상 컴퓨팅 환경 서버(114) 내의 하나 이상의 물리적 호스트에 설치될 수 있는, 운영 시스템 및 하나 이상의 애플리케이션을 포함할 수 있다. 컴퓨팅 장치(102)와 같이, 가상 컴퓨팅 환경 서버(114)는 가상 컴퓨팅 환경 내에서 이용가능한 하나 이상의 애플리케이션과 상호 작용하는 데 사용될 수 있는 가상 컴퓨팅 환경 인터페이스(116)를 사용자에 제공할 수 있다.
위치 결정 애플리케이션은 컴퓨팅 장치(102)에 설치된 운영 시스템이 이 가상 컴퓨팅 환경 인터페이스(116)에 액세스하는데 사용될 수 있는 사용자 클라이언트를 개시하게 할 수 있다. 추가적으로, 위치 결정 애플리케이션은 선택된 데이터 파일을 이들 가상 컴퓨팅 환경 서버(114)에 전송할 수 있고, 여기서 이 데이터 파일은 특정 사용자에 대한 가상 머신 이미지가 인스턴스화된 사용자의 컴퓨팅 장치(102)와 다른 위치 내에 저장될 수 있다. 일 실시예에서, 위치 결정 애플리케이션은 사용자 인증을 가능하게 하는 하나 이상의 크리덴셜(credential) 세트를 가상 컴퓨팅 환경 서버(114)에 전송한다. 가상 컴퓨팅 환경 서버(114)가 사용자를 인증할 수 없는 경우, 서버(114)는 사용자의 컴퓨팅 장치(102)를 통해 가상 컴퓨팅 환경 인터페이스(116)에 액세스하려는 위치 결정 애플리케이션의 요청을 거부할 수 있다.
하나 이상의 가상 컴퓨팅 환경 서버(114)가 사용자를 인증할 수 있는 경우, 위치 결정 애플리케이션은 하나 이상의 실행 가능한 명령을 가상 컴퓨팅 환경의 운영 시스템에 전송하여, 애플리케이션(118)을 가상 컴퓨팅 환경 내에서 실행하여 선택된 데이터 파일을 사용하게 할 수 있다. 사용자는, 운영 시스템 인터페이스(104)를 통해 사용가능한 사용자 클라이언트를 통해, 가상 컴퓨팅 환경 인터페이스(116)를 사용하여 애플리케이션(118) 및 선택된 데이터 파일과 상호 작용할 수 있다. 사용자가 가상 컴퓨팅 환경 내에서 데이터 파일의 사용을 종료하면, 하나 이상의 가상 컴퓨팅 환경 서버(114)는 가상 머신 이미지가 인스턴스화될 수 있는 물리적 호스트 내에 업데이트된 데이터 파일을 저장할 수 있다. 추가적으로, 가상 컴퓨팅 환경 서버(114)는 업데이트된 데이터 파일을 사용자 컴퓨팅 장치(102)에 전송할 수 있고, 이 사용자 컴퓨팅 장치는 이 업데이트된 데이터 파일을 거기에 저장된 데이터 파일과 동기화시킬 수 있다.
대안적인 환경에서, 사용자는, 가상 컴퓨팅 환경 인터페이스(118)를 통해, 가상 컴퓨팅 환경 내에서 사용할 데이터 파일을 선택한다. 사용자가 데이터 파일을 선택할 때, 하나 이상의 가상 컴퓨팅 환경 서버(114)는 특정 가상 머신 이미지가 데이터 파일의 사용을 가능하게 하는 적절한 애플리케이션을 포함하는지를 결정할 수 있다. 가상 컴퓨팅 환경 서버(114)가 가상 컴퓨팅 환경 내에서 이용가능한 적절한 애플리케이션이 없다고 결정하면, 가상 컴퓨팅 환경 서버(114)는 예를 들어 장치(102)에 대한 하나 이상의 애플리케이션 프로그래밍 인터페이스(API) 호출을 통해 사용자의 컴퓨팅 장치(102)와 통신하며, 데이터 파일의 사용을 가능하게 하는데 사용될 수 있는 애플리케이션이 컴퓨팅 장치(102)의 운영 시스템 환경 내에서 이용가능한지 여부를 결정할 수 있다. 애플리케이션이 식별되면, 가상 컴퓨팅 환경 서버(114)는 사용자 계정 정보 데이터 저장소 내에 사용자 계정 정보에 액세스하여, 선택된 데이터 파일 유형이 사용자의 컴퓨팅 장치(102)를 사용하여 액세스될 수 있는지 여부를 결정할 수 있다.
사용자의 컴퓨팅 장치(102)에 설치된 애플리케이션을 사용하여 데이터 파일에 액세스할 수 있는 경우, 가상 컴퓨팅 환경 서버(114)는 가상 머신 이미지가 사용자의 컴퓨팅 장치(102)로 인스턴스화된 물리적 호스트로부터 선택된 데이터 파일을 전송할 수 있다. 또한, 가상 컴퓨팅 환경 서버(114)는 사용자의 컴퓨팅 장치(102)에 설치된 운영 시스템에 실행 가능한 명령을 전송하여 특정 애플리케이션을 실행하고 이 애플리케이션을 통해 데이터 파일의 사용을 가능하게 할 수 있다. 따라서, 사용자는 운영 시스템 인터페이스(104)를 통해 이 애플리케이션을 사용하여 선택된 데이터 파일을 사용할 수 있다. 일단 사용자가 데이터 파일의 사용을 종료하면, 사용자의 컴퓨팅 장치(102)는 업데이트된 데이터 파일을 가상 컴퓨팅 환경 서버(114)에 전송할 수 있고 여기서 사용자의 컴퓨팅 장치(102)와 다른 위치 내에 저장된 기존의 데이터 파일과 업데이트된 데이터 파일을 동기화할 수 있다.
전술한 바와 같이, 위치 결정 애플리케이션이, 사용자의 컴퓨팅 장치 내에 저장된 레지스트리 파일에 인코딩된 하나 이상의 정책에 적어도 부분적으로 기초하여, 선택된 데이터 파일이 가상 컴퓨팅 환경 내에서 사용되어야 하는 것으로 결정하면, 위치 결정 애플리케이션은 사용자의 컴퓨팅 장치가 가상 컴퓨팅 환경 서비스와 통신 세션을 개시하여 이 컴퓨팅 환경에 액세스하게 할 수 있다. 또한, 위치 결정 애플리케이션은 하나 이상의 실행 가능한 명령을 가상 컴퓨팅 환경 서비스에 전송할 수 있고 여기서 특정 애플리케이션을 이 환경 내에서 론칭하게 하여 가상 컴퓨팅 환경 내에서 선택된 데이터 파일의 사용을 가능하게 할 수 있다. 따라서, 도 2는 가상 컴퓨팅 환경 서비스(202)의 하나 이상의 구성 요소가 사용자가 적어도 하나의 실시예에 따라 가상 컴퓨팅 환경에 액세스할 수 있도록 구성된 환경(200)의 예시적인 예를 도시한다.
환경(200)에서, 가상 컴퓨팅 환경 서비스(202)는, 사용자가 자신의 컴퓨팅 장치(206)를 통해, 가상 컴퓨팅 환경 서비스(202)에 액세스하게 할 수 있는 인터페이스(204)를 사용자에 제공할 수 있다. 사용자는 인터넷과 같은 하나 이상의 통신 네트워크를 통해 인터페이스(204)를 사용할 수 있다. 인터페이스(204)는 사용자가 가상 컴퓨팅 환경 서비스(202)에 액세스하는 권한을 갖는 것을 보장하기 위해 특정 보안 보호 장치(security safeguard)를 포함할 수 있다. 예를 들어, 가상 컴퓨팅 환경 서비스(202)에 액세스하기 위해, 사용자는 인터페이스(204)를 사용할 때 사용자 이름 및 대응하는 패스워드 또는 암호화 키를 제공할 필요가 있다. 추가적으로, 인터페이스(204)에 제출된 요청(예를 들어, API 호출)은, 전자 서명이 가상 컴퓨팅 환경 서비스(202)에 의해 예를 들어 인증 시스템(도시되지 않음)에 의해 검증할 수 있도록 암호화 키를 사용하여 생성된 전자 서명을 요구할 수 있다.
일단 사용자가 자신의 컴퓨팅 장치(206)를 통해 인터페이스(204)를 통해 가상 컴퓨팅 환경 서비스(202)에 액세스를 획득하면, 가상 컴퓨팅 환경 서비스(202)는 사용자가 인터페이스(204)를 통해 관리 서브-시스템(208)과 상호 작용하게 할 수 있다. 예를 들어, 관리 서브-시스템(206)은 사용자로 하여금 하나 이상의 가상 머신 이미지를 원격으로 관리 및 유지하게 할 수 있다. 이러한 가상 머신 이미지는 가상 머신 이미지 데이터 저장소(210) 내의 데이터 저장 매체에 유지될 수 있다. 사용자가 가상 머신 인스턴스를 제공하기 위한 요청을 제출하면, 가상 컴퓨팅 환경 서비스(202)는 사용자가 요청한 머신 이미지를 식별하고 머신 이미지를 처리하는데 필요한 자원(예를 들어, 머신 이미지의 구성 요소를 동작시키는 데 필요한 프로세서 및 RAM)을 할당할 수 있다. 머신 이미지는 이 인스턴스에 대한 물리적 호스트(212)로 작용할 수 있는 하나 이상의 물리적 저장 장치(예를 들어, 하나 이상의 서버 또는 하드 드라이브) 상에 인스턴스화될 수 있다.
가상 컴퓨팅 환경 서비스(202)는 또한, 서비스(202)의 각 사용자에 대해, 사용자 프로파일 데이터 저장소(214) 내에 기록될 수 있는 사용자 계정을 유지할 수 있다. 각 사용자 프로파일은 하나 이상의 정책을 포함할 수 있으며, 이 정책은 사용자가 특정 데이터 파일 유형을 사용하게 하는데 사용가능한 애플리케이션이 사용자의 가상 컴퓨팅 환경 내에서, 사용자의 컴퓨팅 장치(206) 내에서 또는 임의의 다른 환경에서 론칭될 수 있는지 여부를 지정할 수 있다. 예를 들어, 사용자의 컴퓨팅 장치(206)의 관리자는, 특정 데이터 파일이 사용자의 가상 컴퓨팅 환경 내에서만 열릴 수 있는 것으로 지정하는, 사용자의 계정에 적용될 수 있는, 정책을 생성할 수 있다. 이 정책은 또한 사용자의 컴퓨팅 장치(206) 상의 하나 이상의 레지스트리 파일에 인코딩될 수 있다.
사용자가, 자신의 컴퓨팅 장치(206)를 사용하여, 장치(206)에 저장된 특정 데이터 파일을 열려고 시도할 때, 장치(206)에 설치된 운영 시스템은 장치(206)에 설치된 애플리케이션 중 선택된 데이터 파일과 관련된 애플리케이션을 결정할 수 있다. 예를 들어, 일 실시예에서, 운영 시스템은, 컴퓨팅 장치(206) 내에 저장된 하나 이상의 레지스트리 파일에 적어도 부분적으로 기초하여, 선택된 데이터 파일이 위치 결정 애플리케이션과 관련되어 있는지를 결정한다. 이 애플리케이션은 사용자에 의해 액세스 가능하지 않을 수 있고, 장치(206)의 전술한 관리자에 의해 컴퓨팅 장치(206)에 설치될 수 있다. 위치 결정 애플리케이션은, 사용자에 의한 데이터 파일의 선택시, 하나 이상의 레지스트리 파일에 액세스하여, 특정 데이터 파일 유형에 속하는 임의의 정책을 식별하도록 구성될 수 있다. 예를 들어, 이 정책은 특정 유형의 데이터 파일이 사용자의 컴퓨팅 장치(206)에 설치된 애플리케이션을 사용하여 열리지 않는 것으로 지정할 수 있다. 또한, 이들 정책은 특정 유형의 데이터 파일이 특정 가상 컴퓨팅 환경 내에서 열려야 하는 것으로 지정할 수 있다. 이 정책은 데이터 파일이 열릴 수 있는 하나 이상의 가상 컴퓨팅 환경의 순서(ordering)를 더 지정할 수 있다. 이 순서는 이러한 가상 컴퓨팅 환경의 하나 이상의 보안 측면에 적어도 부분적으로 기초하여 생성될 수 있다. 예를 들어, 중요한 보안 보호 장치(예를 들어, 데이터 암호화, 방화벽 구현, 바이러스 스캐닝 등)를 갖는 가상 컴퓨팅 환경은 이들 하나 이상의 가상 컴퓨팅 환경의 순서 내에서 더 높은 위치에 지정될 수 있다.
위치 결정 애플리케이션이, 이러한 하나 이상의 정책에 적어도 부분적으로 기초하여, 선택된 데이터 파일이 (예를 들어, 사용자의 컴퓨팅 장치(206)에 대해) 로컬에서 열리지 않아야 하는 것으로 결정하면, 위치 결정 애플리케이션은 사용자의 컴퓨팅 장치(206)로 하여금 가상 컴퓨팅 환경 서비스(202)와 통신 세션을 개시하여, 사용자가 인터페이스(204)를 통해 자신의 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 일부 실시예에서, 위치 결정 애플리케이션은 서비스(202)에 액세스하는데 필요한 사용자 크리덴셜을 가상 컴퓨팅 환경 서비스(202)에 제공할 수 있다. 위치 결정 애플리케이션에 의해 제공되는, 가상 컴퓨팅 환경에 액세스하려는 사용자의 요청에 응답하여, 관리 서브-시스템(208)은 사용자 프로파일 데이터 저장소(214) 내 사용자 계정에 액세스하여, 사용자의 가상 컴퓨팅 환경에 대한 특정 가상 머신 이미지를 인스턴스화한 특정 물리적 호스트(212)를 식별할 수 있다. 관리 서브-시스템(208)이 물리적 호스트(212)를 식별하면, 관리 서브-시스템(208)은 사용자가 인터페이스(204)를 통해 자신의 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 추가적으로, 위치 결정 애플리케이션은 선택된 데이터 파일을 가상 컴퓨팅 환경 서비스(202)에 전송할 수 있고, 여기서 관리 서브-시스템(208)은 사용자의 컴퓨팅 장치(206) 이외의 다른 위치 내에 데이터 파일을 저장할 수 있다.
일단 데이터 파일이 사용자의 컴퓨팅 장치(206) 이외의 다른 위치에 저장되고 사용자가 인터페이스(204)를 통해 자신의 가상 컴퓨팅 환경에 액세스를 획득하면, 위치 결정 애플리케이션은 하나 이상의 실행 가능한 명령을 관리 서브-시스템(208)에 전송하여, 선택된 데이터 파일의 사용을 가능하게 하는데 사용가능한 애플리케이션이 가상 컴퓨팅 환경 내에서 론칭되게 할 수 있다. 이것은 사용자가 사용자 컴퓨팅 장치(206)를 통해 이 가상 컴퓨팅 환경 내에서 데이터 파일을 사용하게 할 수 있다. 사용자가 가상 컴퓨팅 환경 내에서 선택된 데이터 파일의 사용을 종료하면, 관리 서브-시스템(208)은 업데이트된 데이터 파일을 사용자의 컴퓨팅 장치(206)에 전송하여, 사용자의 컴퓨팅 장치(206) 내의 데이터 파일과 가상 컴퓨팅 환경과 동기화할 수 있다.
일 실시예에서, 사용자는 인터페이스(204)를 통해 가상 컴퓨팅 환경 내에서 열릴 하나 이상의 데이터 파일을 선택한다. 이 선택에 응답하여, 관리 서브-시스템(208)은 사용자에 의해 사용되는 특정 가상 머신 인스턴스가 이들 데이터 파일을 여는데 필요한 하나 이상의 애플리케이션을 포함하는지 여부를 결정할 수 있다. 관리 서브-시스템(208)이 선택된 데이터 파일을 열 수 있는 임의의 애플리케이션을 식별할 수 없는 경우, 관리 서브-시스템(208)은 사용자 프로파일 데이터 저장소(214)에 액세스하여 이들 특정 데이터 파일에 관한 임의의 정책을 식별할 수 있다. 예를 들어, 전술한 바와 같이, 사용자의 컴퓨팅 장치(206)의 관리자는, 특정 정책 내에서, 사용자의 컴퓨팅 장치(206)가 데이터 파일을 여는데 필요한 하나 이상의 애플리케이션을 가지고 있고, 사용자가 이들 애플리케이션을 로컬에서 (예를 들어, 사용자의 컴퓨팅 장치(206) 환경 내에서) 사용할 권한이 있는지를 지정할 수 있다.
관리 서브-시스템(208)이, 가상 머신 인스턴스를 통해 제공되었든지, 사용자에 이용가능한 다른 가상 머신 인스턴스를 통해 제공되었든지, 또는 사용자의 컴퓨팅 장치(206)에 설치되었는지 여부에 상관없이, 선택된 하나 이상의 데이터 파일을 여는데 사용될 수 있는 애플리케이션을 식별할 수 없는 경우, 관리 서브-시스템(208)은 이들 데이터 파일을 열라는 사용자의 요청을 거부할 수 있다. 그러나, 관리 서브-시스템(208)이 애플리케이션이 선택된 데이터 파일을 여는데 이용가능한 대안적인 환경을 식별할 수 있는 경우, 관리 서브-시스템(208)은 선택된 환경에 데이터 파일 및 실행 가능한 명령을 전송하여 애플리케이션이 해당 환경 내에서 론칭되고 데이터 파일의 사용을 가능하게 할 수 있다. 예를 들어, 선택된 데이터 파일을 여는 데 필요한 애플리케이션이 사용자의 컴퓨팅 장치(206) 내에서 발견될 수 있는 경우, 관리 서브-시스템(208)은 물리적 호스트(212)로부터 선택된 데이터 파일을 획득하고 이들 데이터 파일 및 실행 가능한 명령을 사용자의 컴퓨팅 장치(206)에 전송하여 사용자의 컴퓨팅 장치(206)로 하여금 선택된 애플리케이션을 론칭하게 하고 이들 데이터 파일의 사용을 가능하게 할 수 있다. 일단 사용자가 사용자의 컴퓨팅 장치(206) 내에서 애플리케이션 및 데이터 파일의 사용을 종료하면, 사용자의 컴퓨팅 장치(206)는 업데이트된 데이터 파일을 가상 컴퓨팅 환경 서비스(202)에 전송할 수 있으며, 이는 관리 서브-시스템(208)을 통해 사용자의 컴퓨팅 장치(206) 이외의 다른 위치에 저장된 데이터 파일과 이렇게 획득된 데이터 파일을 동기화할 수 있다.
전술한 바와 같이, 사용자는 컴퓨팅 장치를 사용하여 하나 이상의 애플리케이션을 론칭하여 하나 이상의 데이터 파일을 열 수 있다. 일부 실시예에서, 선택된 데이터 파일은 컴퓨팅 장치에 설치된 애플리케이션을 사용하여 데이터 파일을 열 수 있는지 또는 데이터 파일을 가상 컴퓨팅 환경 내에서만 열 수 있는지를 결정하는 데 사용될 수 있는 위치 결정 애플리케이션과 관련되어 있을 수 있다. 따라서, 도 3은 적어도 하나의 실시예에 따라 사용자의 컴퓨팅 장치(304)의 하나 이상의 구성 요소가 가상 컴퓨팅 환경 서비스(314)와 통신 및 액세스를 가능하게 하도록 구성된 환경(300)의 예시적인 예를 도시한다. 도 3에 도시된 바와 같이, 컴퓨팅 장치(304)는 버스 서브시스템을 통해 다수의 주변 서브시스템과 통신하도록 구성되고 이와 동작 가능하게 결합될 수 있는 하나 이상의 프로세서(312)(예를 들어, 중앙 처리 장치(CPU))를 포함할 수 있다. 이러한 주변 서브시스템은 하나 이상의 애플리케이션(308) 및 파일 저장 서브시스템(310)을 사용하는 메모리 서브시스템, 하나 이상의 사용자 인터페이스 입력 장치, 하나 이상의 사용자 인터페이스 출력 장치, 네트워크 인터페이스 서브시스템 등을 포함하는 저장 서브시스템(306)을 포함할 수 있다. 주변 서브시스템은 또한 입력 장치의 센서 이외에 하나 이상의 센서를 포함할 수 있다. 이러한 센서는 GPS(Global Positioning System) 센서, 가속도계, 온도 센서 및 기타 센서를 포함하지만 이에 한정되지는 않는다.
저장 서브시스템(306)은 본 발명의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하기 위한 컴퓨터 판독 가능한 저장 매체를 제공할 수 있다. 하나 이상의 프로세서에 의해 실행될 때, 본 발명의 하나 이상의 실시예의 기능을 제공할 수 있는 애플리케이션 또는 그 성분(프로그램, 코드 모듈(즉, 프로그래밍 모듈), 명령)은 저장 서브시스템(306)에 저장될 수 있다. 이러한 애플리케이션 모듈 또는 명령은 하나 이상의 프로세서(312)에 의해 실행될 수 있다. 저장 서브시스템(306)은 본 발명에 따라 사용되는 데이터를 저장하기 위한 저장소를 추가적으로 제공할 수 있다. 저장 서브시스템(306)은 메모리 서브시스템 및 파일/디스크 저장 서브시스템(310)을 포함할 수 있다.
사용자(302)가 사용자 컴퓨팅 장치(304)를 사용하여 파일 저장 서브시스템(310) 내에 저장된 하나 이상의 데이터 파일을 열 때, 하나 이상의 프로세서(312)는 파일 저장 서브시스템(310) 내의 하나 이상의 레지스트리 파일에 액세스하여, 선택된 하나 이상의 데이터 파일을 여는 데 사용될 수 있는 하나 이상의 애플리케이션(308)을 식별할 수 있다. 예를 들어, 하나 이상의 레지스트리 파일은 선택된 하나 이상의 데이터 파일이 컴퓨팅 장치(304)에 설치된 위치 결정 애플리케이션을 사용하여 열려야 하는 것으로 지정할 수 있다. 컴퓨팅 장치(304)를 사용할 때 사용자(302)의 허가를 수립할 때 수행되는 하나 이상의 관리자에 의해 파일 저장 서브시스템 내에 저장된 하나 이상의 레지스트리 파일이 제공될 수 있다.
이들 하나 이상의 레지스트리 파일은 하나 이상의 정책을 더 인코딩할 수 있고, 이 정책은 컴퓨팅 장치(304)의 사용자(302)에 의해 선택된 하나 이상의 선택된 데이터 파일이 컴퓨팅 장치(304)에 설치된 애플리케이션(308)을 사용하여 이들 데이터 파일을 열 수 있는지 여부를 지정할 수 있다. 위치 결정 애플리케이션은 하나 이상의 레지스트리 파일에 인코딩된 이들 하나 이상의 정책에 액세스하여, 선택된 데이터 파일이 컴퓨팅 장치(304)의 환경 내에서 열려야 하는지 여부를 결정할 수 있다. 위치 결정 애플리케이션이, 이들 정책에 적어도 부분적으로 기초하여, 하나 이상의 데이터 파일이 컴퓨팅 장치(304)에 설치된 애플리케이션(308)을 사용하여 열리지 않고 가상 컴퓨팅 환경 내 애플리케이션을 사용하여 열어야 하는 것으로 결정하면, 위치 결정 애플리케이션은 하나 이상의 프로세서(312)로 하여금 가상 컴퓨팅 환경 서비스(314)에 인터페이스를 제공할 수 있는 네트워크 인터페이스 서브시스템에 하나 이상의 실행 가능한 명령을 전송하게 할 수 있다. 네트워크 인터페이스 서브시스템은 애플리케이션(308) 데이터 및 기타 정보, 예를 들어, 시스템에 액세스하라는 (예를 들어, 웹 페이지를 수신하라는) 전자 요청을 전송 가능하게 할 수 있으며, 웹 페이지 또는 기타 정보와 같은 요청에 대한 응답을 수신하게 할 수 있다.
통신 채널이 컴퓨팅 장치(304)와 가상 컴퓨팅 환경 서비스(314) 사이에 수립되면, 하나 이상의 프로세서(312)는 파일 저장 서브시스템(306)에 실행 가능한 명령을 전송하여 하나 이상의 선택된 데이터 파일을 가상 컴퓨팅 환경 서비스(314)에 전송할 수 있다. 추가적으로, 하나 이상의 프로세서(312)는 사용자 클라이언트 애플리케이션을 실행하여 사용자(302)가 컴퓨팅 장치(304)를 사용하여 가상 컴퓨팅 환경 서비스(314)에 의해 제공되는 가상 컴퓨팅 환경과 상호 작용하게 할 수 있다. 예를 들어, 일 실시예에서, 하나 이상의 프로세서(312)는 실행 가능한 명령을 가상 컴퓨팅 환경 서비스(314)에 전송할 수 있고 여기서 서비스가 사용자(302)의 가상 컴퓨팅 환경 내에서 애플리케이션을 론칭하고 하나 이상의 제공된 데이터 파일을 열게 할 수 있다. 사용자(302)가 가상 컴퓨팅 환경 내의 하나 이상의 데이터 파일의 사용을 종료하면, 가상 컴퓨팅 환경 서비스(314)는 업데이트된 데이터 파일을 컴퓨팅 장치(304)에 전송할 수 있으며, 여기서 하나 이상의 프로세서(312)는 이들 수신된 데이터 파일을 파일 저장 서브시스템(310) 내에 저장된 데이터 파일과 동기화할 수 있다.
일 실시예에서, 가상 컴퓨팅 환경 서버(314)는, 사용자(302)가 자신의 가상 컴퓨팅 환경 내에서 하나 이상의 데이터 파일을 선택한 것에 응답하여, 이 환경 내에서 선택된 데이터 파일을 열 수 있는 애플리케이션이 없는 것으로 결정한다. 가상 컴퓨팅 환경 서비스(314)는, 사용자(302)의 프로파일 내에 지정된 정보에 적어도 부분적으로 기초하여, 컴퓨팅 장치(304)가 선택된 데이터 파일을 여는데 필요한 하나 이상의 애플리케이션(308)을 포함하는 것으로 더 결정할 수 있다. 그 결과, 가상 컴퓨팅 환경 서비스(314)는 하나 이상의 데이터 파일을 컴퓨팅 장치(304)에 전송할 수 있고, 여기서 하나 이상의 프로세서(312)는 수신된 데이터 파일을 파일 저장 서브시스템(310) 내에 저장할 수 있다. 나아가, 하나 이상의 프로세서(312)는 가상 컴퓨팅 환경 서비스(314)에 의해 지정된 애플리케이션(308)을 론칭할 수 있고, 애플리케이션(308)으로 하여금 사용하기 위해 수신된 하나 이상의 데이터 파일을 열게 할 수 있다.
전술한 바와 같이, 컴퓨팅 장치를 통해 사용자는 운영 시스템 인터페이스와 상호 작용하며 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일을 열 수 있다. 운영 시스템 인터페이스는 GUI일 수 있으며, 사용자는 컴퓨팅 장치에 설치된 하나 이상의 사용자 입력 장치를 통해 이 GUI를 사용하여 컴퓨팅 장치 내에 저장된 애플리케이션, 파일 구조 및 데이터 파일의 하나 이상의 아이콘 그래픽 표현과 상호 작용할 수 있다. 따라서, 도 4는 적어도 하나의 실시예에 따라 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일(412)을 사용자가 선택할 수 있는 사용자의 컴퓨팅 장치 환경(400)의 예시적인 예를 도시한다. 컴퓨팅 장치 환경(400)은 하나 이상의 데이터 파일 및 그 내에서 실행 가능한 애플리케이션과 상호 작용할 수 있는 운영 시스템 인터페이스일 수 있다.
컴퓨팅 장치 환경(400)은 컴퓨팅 장치 환경(400) 내에서 수행될 수 있는 하나 이상의 기능을 나타낼 수 있는 하나 이상의 아이콘을 포함할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 컴퓨팅 장치 환경(400)은 다양한 저장 장치(예를 들어, 하드 드라이브 등), 주변 장치(예를 들어, CD-ROM 드라이브, DVD 드라이브 등) 및 네트워크 장치에 액세스하는데 사용될 수 있는 컴퓨터 아이콘(402)을 포함할 수 있다. 컴퓨팅 장치 환경(400)은 컴퓨팅 장치 환경(400)으로부터 하나 이상의 데이터 파일을 제거하는데 사용될 수 있는 애플리케이션에 액세스를 가능할 수 있는 휴지통 아이콘(404)을 더 포함할 수 있다. 컴퓨팅 장치 환경(400)은 컴퓨팅 장치의 파일 구조 내의 특정 데이터 파일 컨테이너에 액세스하는데 사용될 수 있는 폴더 아이콘(406)을 더 포함할 수 있다. 도 4에 도시된 아이콘은 컴퓨팅 장치 환경(400) 내에서 이용 가능할 수 있는 유일한 아이콘이 아니며, 컴퓨팅 장치 환경(400) 내의 다양한 기능을 위해 추가적인 및/또는 대안적인 아이콘이 제공될 수 있는 것으로 이해된다.
컴퓨팅 장치 환경(400)은 컴퓨팅 장치에 설치된 하나 이상의 애플리케이션에 액세스하는데 사용될 수 있는 애플리케이션 버튼(416)을 더 포함할 수 있다. 사용자가 애플리케이션 버튼(416)을 눌러 애플리케이션을 선택할 때, 컴퓨팅 장치는 컴퓨팅 장치 환경(400) 상에 디스플레이될 수 있는 새로운 환경 패널에서 애플리케이션을 론칭할 수 있다. 이것은 사용자가 이 환경 패널 내에 있는 애플리케이션과 상호 작용하고 이로부터 하나 이상의 데이터 파일을 열림을 요청하게 할 수 있다.
사용자가 사용자 인터페이스 장치(예를 들어, 커서(414))를 사용하여 폴더 아이콘(406)을 선택할 때, 컴퓨팅 장치의 하나 이상의 프로세서는 컴퓨팅 장치 환경(400)이 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일(410, 412)의 하나 이상의 아이콘 표현을 포함할 수 있는 환경 패널(408)을 디스플레이하게 할 수 있다. 하나 이상의 데이터 파일(410, 412)의 이들 하나 이상의 아이콘 표현으로부터, 사용자는 커서(414)를 사용하여 특정 데이터 파일(412)을 선택하고, 데이터 파일(412)이 컴퓨팅 장치 환경(400) 내에서 열리도록 요청할 수 있다. 이 요청에 응답하여, 컴퓨팅 장치는, 선택된 데이터 파일(412)과 관련된 하나 이상의 레지스트리 파일에 적어도 부분적으로 기초하여, 선택된 데이터 파일(412)을 여는 데 사용될 수 있는 애플리케이션을 결정할 수 있다. 도 5 및 도 6을 참조하여 아래에서 보다 상세히 설명된 바와 같이, 선택된 데이터 파일(412)은 선택된 데이터 파일(412)이 컴퓨팅 장치 환경(400) 내에서 또는 가상 컴퓨팅 환경 내에서 열려야 하는지를 결정할 수 있는 위치 결정 애플리케이션과 관련될 수 있다. 일부 실시예에서, 컴퓨팅 장치 환경(400)은 한 번에 단일 사용자에 의해서만 사용 가능한 단일 점유자 데스크탑일 수도 있는 것으로 이해된다.
전술한 바와 같이, 사용자가 하나 이상의 데이터 파일을 선택할 때, 컴퓨팅 장치는, 하나 이상의 데이터 파일과 관련된 하나 이상의 레지스트리 파일에 적어도 부분적으로 기초하여, 선택된 하나 이상의 데이터 파일을 열기 위해 론칭될 수 있는 애플리케이션을 결정할 수 있다. 예를 들어, 관리자는, 하나 이상의 레지스트리 파일 내에서, 하나 이상의 데이터 파일이 열리기 전에, 컴퓨팅 장치가 위치 결정 애플리케이션을 론칭할 것을 지정할 수 있다. 일부 실시예에서, 이 애플리케이션은, 하나 이상의 레지스트리 파일에 인코딩된 하나 이상의 정책에 적어도 부분적으로 기초하여, 하나 이상의 선택된 데이터 파일이 원격 가상 컴퓨팅 환경 내에서 열려야 하는지를 결정할 수 있다. 따라서, 도 5는 적어도 하나의 실시예에 따른 정책 구현에 응답하여 인터페이스(502)를 통해 선택된 데이터 파일이 가상 컴퓨팅 환경 내에서 사용되는 사용자의 컴퓨팅 장치 환경(500)의 예시적인 예를 도시한다.
위치 결정 애플리케이션이, 하나 이상의 레지스트리 파일에 인코딩된 하나 이상의 정책에 적어도 부분적으로 기초하여, 하나 이상의 선택된 데이터 파일이 원격 가상 컴퓨팅 환경 내에서 열려야 하는 것으로 결정할 때, 컴퓨팅 장치는 사용자에 의해 사용될 수 있는 가상 컴퓨팅 환경 인터페이스(502)를 론칭하여 가상 컴퓨팅 환경과 상호 작용할 수 있다. 전술한 바와 같이, 위치 결정 애플리케이션은 컴퓨팅 장치로 하여금 가상 컴퓨팅 환경 서비스와 통신 채널을 수립하여 사용자가 자신의 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 예를 들어, 가상 컴퓨팅 환경 서비스는, 컴퓨팅 장치로부터, 가상 컴퓨팅 환경 내에서 열려야 할 하나 이상의 데이터 파일을 수신할 수 있다. 또한, 가상 컴퓨팅 환경 서비스는 컴퓨팅 장치로부터 실행 가능한 명령을 수신할 수 있고, 이 컴퓨팅 장치는 가상 컴퓨팅 환경 서비스가 선택된 하나 이상의 데이터 파일을 여는데 사용가능한 애플리케이션을 론칭하게 할 수 있다.
일단 가상 컴퓨팅 환경 서비스와 컴퓨팅 장치 간의 연결이 수립되면, 가상 컴퓨팅 환경 서비스는 사용자가 컴퓨팅 장치 환경(500) 내에서 가상 컴퓨팅 환경 인터페이스(502)를 사용하여 사용자의 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 가상 컴퓨팅 환경은 컴퓨팅 장치 환경(500) 내에 포함된 많은 특징을 포함할 수 있다. 예를 들어, 가상 컴퓨팅 환경은 유사하게 가상 컴퓨팅 환경 인터페이스(502)를 통해 사용자에 의해 사용되어 가상 컴퓨팅 환경 내에서 론칭될 수 있는 하나 이상의 애플리케이션을 선택할 수 있는 애플리케이션 버튼(504)을 포함할 수 있다. 추가적으로, 가상 컴퓨팅 환경은 컴퓨팅 장치에 설치된 운영 시스템과 유사한 운영 시스템을 기반으로 할 수 있지만, 일부 경우에 따라 가상 컴퓨팅 환경은 여전히 하나 이상의 선택된 데이터 파일을 처리할 수 있는 다른 운영 시스템을 사용할 수 있다.
이 환경 내에서 애플리케이션의 실행시, 가상 컴퓨팅 환경은 사용자가 가상 컴퓨팅 환경 인터페이스(502)를 통해 애플리케이션과 상호 작용하게 할 수 있는 애플리케이션 패널(506)을 생성할 수 있다. 하나 이상의 데이터 파일(508)은 이 애플리케이션 패널(506)에서 사용자에게 제시될 수 있고 이 애플리케이션 패널은 사용자가 하나 이상의 데이터 파일(508)의 콘텐츠를 생성, 삭제, 수정 및 그 밖에 변경하게 할 수 있다. 사용자가 하나 이상의 데이터 파일(508)을 사용하는 것을 종료할 때 사용자는 애플리케이션 패널(506)을 닫음으로써 애플리케이션을 종료할 수 있다. 가상 컴퓨팅 환경 서비스는 업데이트된 데이터 파일을 컴퓨팅 장치에 전송할 수 있으며, 이 컴퓨팅 장치는 수신된 데이터 파일을 거기에 저장된 하나 이상의 데이터 파일과 동기화시킬 수 있다.
전술한 바와 같이, 사용자는 자신의 컴퓨팅 장치를 사용하여 컴퓨팅 장치 상에 또는 가상 컴퓨팅 환경 내에 설치된 하나 이상의 애플리케이션을 사용하여 하나 이상의 데이터 파일을 열 수 있다. 예를 들어, 사용자가 컴퓨팅 장치 환경 내에서 데이터 파일을 선택할 때, 컴퓨팅 장치는, 하나 이상의 레지스트리 파일에 인코딩된 관련에 적어도 부분적으로 기초하여, 하나 이상의 데이터 파일을 여는데 사용될 수 있는 애플리케이션을 결정할 수 있다. 대안적으로, 이들 하나 이상의 레지스트리 파일은 하나 이상의 데이터 파일이 위치 결정 애플리케이션에 의해 분석되어 하나 이상의 데이터 파일이 컴퓨팅 장치 환경 내에서 또는 원격 가상 컴퓨팅 환경에서 열려야 하는지를 결정하는 것으로 지정할 수 있다. 하나 이상의 데이터 파일이 위치 결정 애플리케이션 이외의 애플리케이션과 관련되어 있는 경우, 또는 위치 결정 애플리케이션이 하나 이상의 데이터 파일이 컴퓨팅 장치 환경 내에서 열려야 하는 것으로 결정하면, 컴퓨팅 장치는 컴퓨팅 장치 환경 내에서 애플리케이션을 론칭하고 이 애플리케이션으로 하여금 선택된 데이터 파일을 열 수 있게 할 수 있다. 따라서, 도 6은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 컴퓨팅 장치 환경(600) 내의 애플리케이션을 론칭하는 것에 의해 사용되는 사용자의 컴퓨팅 장치 환경(600)의 예시적인 일례를 도시한다. 컴퓨팅 장치 환경(600)은 도 4와 관련하여 전술한 컴퓨팅 장치 환경과 유사할 수 있다.
위치 결정 애플리케이션이 사용자에 의해 선택된 하나 이상의 데이터 파일이 컴퓨팅 장치에 설치된 애플리케이션을 사용하여 열리야 하는 것으로 결정하거나 또는 하나 이상의 데이터 파일이 위치 결정 애플리케이션 이외의 애플리케이션과 관련되어 있는 것으로 결정할 때, 컴퓨팅 장치는 선택된 하나 이상의 데이터 파일을 여는데 사용될 수 있는 컴퓨팅 장치 환경(600) 내 애플리케이션을 론칭할 수 있다. 예를 들어, 애플리케이션은, 론칭될 때, 사용자가 하나 이상의 사용자 인터페이스 장치(예를 들어, 커서)를 사용하여 애플리케이션과 상호 작용하게 할 수 있는 애플리케이션 패널(602)을 컴퓨팅 장치 환경(600) 내에 생성할 수 있다. 애플리케이션은 하나 이상의 선택된 데이터 파일(604)의 내용을 애플리케이션 패널(602)에 채울 수 있으며, 이는 컴퓨팅 장치의 사용자가 필요할 때 이 내용을 수정할 수 있게 한다. 일단 사용자가 하나 이상의 데이터 파일(604)의 사용을 종료하면, 사용자는 애플리케이션 패널(602)을 닫음으로써 애플리케이션을 종료시킬 수 있다. 이것은 컴퓨팅 장치로 하여금 이들 하나 이상의 데이터 파일에 대한 임의의 변경을 저장하게 할 수 있다.
전술한 바와 같이, 사용자가 자신의 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일을 선택할 때, 컴퓨팅 장치는, 하나 이상의 레지스트리 파일에 적어도 부분적으로 기초하여, 이들 하나 이상의 데이터 파일이 위치 결정 애플리케이션을 통해 추가적인 분석을 요구할 수 있는지 여부를 결정하여, 이러한 하나 이상의 데이터 파일이 컴퓨팅 장치 환경을 통해 또는 원격 가상 컴퓨팅 환경을 통해 액세스되어야 하는지 여부를 결정할 수 있다. 대안적으로, 하나 이상의 데이터 파일이 위치 결정 애플리케이션과 관련되어 있지 않으면, 컴퓨팅 장치는 컴퓨팅 장치에 설치된 애플리케이션을 론칭하여 컴퓨팅 장치 환경을 통해 하나 이상의 데이터 파일을 열고 사용하게 할 수 있다. 따라서, 도 7은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 애플리케이션을 사용하여 사용될 수 있는 컴퓨팅 환경을 결정하는 프로세스(700)의 예시적인 예를 도시한다. 프로세스(700)는 컴퓨팅 장치의 하나 이상의 프로세서에 의해 수행될 수 있으며, 여기서 사용자에 의해 선택된 하나 이상의 데이터 파일이 저장될 수 있다.
사용자가, 컴퓨팅 장치 환경(예를 들어, 운영 시스템 인터페이스)을 통해, 사용자가 열어서 사용하고자 하는 하나 이상의 데이터 파일을 선택할 때, 하나 이상의 프로세서는 이 하나 이상의 데이터 파일의 하나 이상의 사용자 선택을 검출할 수 있고(702), 이 하나 이상의 데이터 파일이 위치 결정 애플리케이션과 관련되어 있는지를 결정할 수 있다(704). 예를 들어, 하나 이상의 프로세서는 컴퓨팅 장치로 하여금 선택된 하나 이상의 파일과 관련된 하나 이상의 레지스트리 파일에 액세스하게 하여, 이 하나 이상의 데이터 파일에 액세스하는데 사용될 수 있는 애플리케이션을 결정할 수 있다. 또한, 레지스트리 파일은 디폴트 애플리케이션이 하나 이상의 데이터 파일에 사용되어야 하는 것으로 지정할 수 있다. 일 실시예에서, 컴퓨팅 장치의 관리자는 하나 이상의 레지스트리 파일을 생성하고, 이 레지스트리 파일 내에서, 하나 이상의 데이터 파일이 디폴트로 위치 결정 애플리케이션과 관련되어 있는 것으로 인코딩한다.
대안적인 실시예에서, 사용자는 상이한 파일 유형일 수 있는 하나 이상의 데이터 파일의 배치(batch)를 선택한다. 사용자가 이 하나 이상의 파일의 배치를 선택한 것을 검출한 것에 응답하여 하나 이상의 프로세서는, 하나 이상의 파일의 배치의 각 파일에 대해, 데이터 파일이 위치 결정 애플리케이션과 관련되어 있는지 여부를 결정할 수 있다(704). 예를 들어, 하나 이상의 프로세서는 하나 이상의 데이터 파일의 배치의 각 데이터 파일과 관련된 하나 이상의 레지스트리 파일을 평가하여 이 하나 이상의 데이터 파일에 액세스하는데 사용되어야 하는 애플리케이션을 결정할 수 있다. 이 하나 이상의 레지스트리 파일에 적어도 부분적으로 기초하여, 하나 이상의 프로세서는 하나 이상의 데이터 파일의 배치의 각 데이터 파일에 대한 로컬 컴퓨팅 환경 내의 위치 결정 애플리케이션 및/또는 다른 애플리케이션을 론칭할 수 있다.
하나 이상의 프로세서가 선택된 하나 이상의 데이터 파일이 위치 결정 애플리케이션과 관련되어 있지 않은 것으로 결정하면, 하나 이상의 프로세서는 컴퓨팅 장치로 하여금 컴퓨팅 장치에 설치된 로컬인 (예를 들어, 컴퓨팅 장치에 대해) 애플리케이션을 사용하여 선택된 하나 이상의 데이터 파일을 열게 할 수 있다(706). 예를 들어, 하나 이상의 프로세서는 컴퓨팅 장치로 하여금 컴퓨팅 장치에 설치된 애플리케이션을 론칭하게 하고, 사용자가 애플리케이션을 사용하여 선택된 하나 이상의 데이터 파일에 액세스하게 할 수 있다. 그러나, 하나 이상의 데이터 파일이 위치 결정 애플리케이션과 관련되어 있는 경우, 하나 이상의 프로세서는 컴퓨팅 장치로 하여금 위치 결정 애플리케이션을 론칭하게 하여(708), 선택된 하나 이상의 데이터 파일이 컴퓨팅 장치에 설치된 애플리케이션을 사용하여 로컬에서 열려야 하는지 여부를 결정하게 할 수 있다(710).
전술한 바와 같이, 위치 결정 애플리케이션은 선택된 하나 이상의 데이터 파일과 관련된 하나 이상의 레지스트리 파일에 인코딩된 하나 이상의 정책을 평가하여, 이 데이터 파일이 컴퓨팅 장치 환경 내에서 로컬에서 열려야 하는지 여부 또는 이 데이터 파일이 원격 가상 컴퓨팅 환경에서만 열릴 수 있는지 여부를 결정하도록 구성될 수 있다. 위치 결정 애플리케이션이 하나 이상의 데이터 파일이 로컬에서 열려야 하는 것으로 결정하면, 애플리케이션은 이러한 결정을 하나 이상의 프로세스로 전송할 수 있으며, 이 프로세스는 이에 응답하여 컴퓨팅 장치로 하여금 컴퓨팅 장치에 설치된 로컬 애플리케이션을 사용하여 선택된 하나 이상의 데이터 파일을 열게 할 수 있다(706).
하나 이상의 데이터 파일이 로컬에서 열릴 수 없는 경우, 하나 이상의 프로세서는 도 5에 도시된 인터페이스와 같은, 가상 컴퓨팅 환경 인터페이스를 론칭(712)하여, 가상 컴퓨팅 환경 서비스에 액세스하고, 사용자가 하나 이상의 데이터 파일이 열릴 수 있는 가상 컴퓨팅 환경에 액세스하게 할 수 있다. 예를 들어, 하나 이상의 프로세서는 컴퓨팅 장치의 네트워크 인터페이스 서브시스템에 실행 가능한 명령을 전송할 수 있으며, 이는 네트워크 인터페이스 서브시스템이 가상 컴퓨팅 환경 서비스와 통신 채널을 수립하게 할 수 있다. 이어서, 하나 이상의 프로세서는 사용자의 가상 컴퓨팅 환경에 액세스하는데 필요한 하나 이상의 사용자 크리덴셜을 가상 컴퓨팅 환경 서비스에 제공할 수 있다. 이것은 가상 컴퓨팅 환경 서비스가 사용자를 인증하고 사용자의 가상 컴퓨팅 환경에 액세스를 제공하게 할 수 있다. 추가적으로, 하나 이상의 프로세서는 선택된 하나 이상의 데이터 파일을 가상 컴퓨팅 환경 내에서 사용할 수 있도록 가상 컴퓨팅 환경 서비스에 전송할 수 있다. 대안적인 실시예에서, 하나 이상의 프로세서는 가상 컴퓨팅 환경을 생성하는데 사용될 수 있는 가상 머신 인스턴스를 제공하기 위해 가상 컴퓨팅 환경 서비스에 요청을 전송한다.
일단 가상 컴퓨팅 환경 인터페이스가 론칭되었다면, 하나 이상의 프로세서는 가상 컴퓨팅 환경 내에서 적절한 애플리케이션을 론칭하여 하나 이상의 데이터 파일을 열기 위해 실행 가능한 명령을 가상 컴퓨팅 환경 서버에 전송할 수 있다(714). 이것은 가상 컴퓨팅 환경 서비스가 애플리케이션을 론칭하게 하고 가상 컴퓨팅 환경에서 하나 이상의 데이터 파일을 열 수 있게 한다. 또한, 이것은 사용자가 가상 컴퓨팅 환경 인터페이스를 통해 이 원격 애플리케이션과 상호 작용하고 하나 이상의 열린 데이터 파일을 사용할 수 있게 한다.
전술한 바와 같이, 사용자의 컴퓨팅 장치 내에 저장된 하나 이상의 데이터 파일은 하나 이상의 데이터 파일이 컴퓨팅 장치 환경 내에서 로컬에서 열려야 하는지 또는 원격 가상 컴퓨팅 환경 내에서 열려야 하는지 여부를 결정하도록 구성될 수 있는 위치 결정 애플리케이션과 관련되어 있을 수 있다. 따라서, 도 8은 적어도 하나의 실시예에 따라 선택된 데이터 파일이 열릴 수 있는 컴퓨팅 환경을 결정하는 하나 이상의 정책을 사용하는 프로세스(800)의 예시적인 예를 도시한다. 프로세스(800)는 선택된 하나 이상의 데이터 파일 및 사용자 정책과 관련된 하나 이상의 레지스트리 파일에 액세스하여, 하나 이상의 데이터 파일이 열려야 하는 위치를 결정하도록 구성될 수 있는 전술한 위치 결정 애플리케이션에 의해 수행될 수 있다. 또한, 위치 결정 애플리케이션은 컴퓨팅 장치의 하나 이상의 프로세서와 상호 작용하며 로컬 컴퓨팅 장치 환경에서 다른 애플리케이션을 론칭하거나 또는 가상 컴퓨팅 환경 인터페이스를 론칭하여 원격 가상 컴퓨팅 환경 내에서 하나 이상의 데이터 파일에 액세스를 가능하게 하도록 구성될 수 있다.
도 7과 관련하여 전술한 바와 같이, 컴퓨팅 장치의 하나 이상의 프로세서는, 사용자가 하나 이상의 데이터 파일을 선택한 것을 검출할 때, 하나 이상의 데이터 파일이 위치 결정 애플리케이션에 의해 분석되어야 하는지를 결정할 수 있다. 예를 들어, 하나 이상의 프로세서는 하나 이상의 데이터 파일이 선택될 때 컴퓨팅 장치로 하여금 선택된 하나 이상의 데이터 파일과 관련된 하나 이상의 레지스트리 파일에 액세스하여 론칭될 디폴트 애플리케이션을 결정하게 할 수 있다. 하나 이상의 레지스트리 파일이 론칭될 디폴트 애플리케이션이 위치 결정 애플리케이션인 것으로 지정하면, 하나 이상의 프로세서가 이 애플리케이션을 론칭하여 하나 이상의 데이터 파일의 분석을 수행할 수 있다.
위치 결정 애플리케이션이 론칭될 때, 애플리케이션은, 하나 이상의 프로세서로부터, 선택된 하나 이상의 데이터 파일의 사용자 정보 및/또는 식별자를 수신할 수 있다(802). 선택된 하나 이상의 데이터 파일의 사용자 정보 및/또는 식별자는 위치 결정 애플리케이션이 선택된 하나 이상의 데이터 파일과 관련될 수 있는 컴퓨팅 장치 내에 저장된 하나 이상의 레지스트리 파일을 식별하게 할 수 있다. 또한, 선택된 하나 이상의 데이터 파일의 사용자 정보 및/또는 식별자는 위치 결정 애플리케이션으로 하여금 선택된 하나 이상의 데이터 파일의 특정 사용자 및 파일 포맷에 관한 이들 하나 이상의 레지스트리 파일에서 인코딩된 임의의 관련 정책을 식별하게 할 수 있다(804). 예를 들어, 하나 이상의 정책은 특정 데이터 파일 포맷이 사용자의 컴퓨터 장치 내에서 사용될 수 있는지 여부를 지정할 수 있다. 추가적으로, 하나 이상의 정책은, 특정 사용자에 대해, 컴퓨팅 장치에 설치된 임의의 애플리케이션을 사용하여 하나 이상의 데이터 파일이 열리지 않을 수 있지만, 하나 이상의 데이터 파일이 가상 컴퓨팅 환경을 통해서만 액세스될 수 있는 것으로 지정할 수 있다. 이 하나 이상의 정책을 평가함으로써, 위치 결정 애플리케이션은 선택된 하나 이상의 데이터 파일이 로컬에서 개방되어야 하는지를 결정할 수 있다(806).
위치 결정 애플리케이션이, 하나 이상의 정책에 적어도 부분적으로 기초하여, 하나 이상의 데이터 파일이 로컬에서 열려야 하는 것으로 결정하면, 위치 결정 애플리케이션은 하나 이상의 프로세서로 하여금 컴퓨팅 장치 환경 내의 로컬 애플리케이션을 론칭하여(808) 로컬 애플리케이션이 하나 이상의 데이터 파일을 열어서 사용자가 로컬 애플리케이션을 통해 이 하나 이상의 데이터 파일을 사용하게 할 수 있다. 대안적으로, 위치 결정 애플리케이션이 하나 이상의 데이터 파일이 원격 가상 컴퓨팅 환경 내에서 열려야 하는 것으로 결정하면, 위치 결정 애플리케이션은 하나 이상의 프로세서로 하여금 가상 컴퓨팅 환경 인터페이스를 론칭하여(810), 사용자가 자신의 컴퓨팅 장치를 사용하여 자신의 가상 컴퓨팅 환경에 액세스하고 가상 컴퓨팅 환경 내의 하나 이상의 데이터 파일을 열게 할 수 있다.
전술한 바와 같이, 사용자는 가상 컴퓨팅 환경 인터페이스를 사용하여 가상 컴퓨팅 환경 내에 저장된 하나 이상의 데이터 파일을 선택할 수 있다. 가상 컴퓨팅 환경은 하나 이상의 데이터 파일을 여는 데 사용될 수 있는 하나 이상의 애플리케이션을 포함할 수 있다. 그러나, 일부 실시예에서, 가상 컴퓨팅 환경은 선택된 하나 이상의 데이터 파일을 여는데 필요한 애플리케이션을 포함하지 않을 수 있다. 이러한 경우에, 가상 컴퓨팅 환경 서비스의 관리 서브-시스템은 사용자의 컴퓨팅 장치 또는 다른 컴퓨팅 환경이 적절한 애플리케이션을 포함하는지 여부를 결정하는 것이 필요할 수 있다. 또한 서비스는 이들 환경 중 임의의 환경에서 이러한 데이터 파일을 열 수 있는 권한이 사용자에게 있는지 여부를 결정할 필요가 있을 수 있다. 따라서, 도 9는 적어도 하나의 실시예에 따라 데이터 파일을 사용하는데 이용가능한 애플리케이션이 없다는 결정에 응답하여 데이터 파일을 다른 컴퓨팅 환경으로 전송하는 프로세스(900)의 예시적인 일례를 도시한다. 프로세스(900)는 사용자에게 적용 가능한 하나 이상의 정책을 평가하고 하나 이상의 컴퓨팅 환경과 상호 작용하도록 구성될 수 있는 전술한 가상 컴퓨팅 환경 서비스에 의해 수행될 수 있다.
사용자가 가상 컴퓨팅 환경과 상호 작용할 때, 사용자는 이 환경 내에 저장될 수 있는 하나 이상의 데이터 파일을 선택할 수 있다. 이것은 가상 컴퓨팅 환경 서비스가 가상 컴퓨팅 환경 내의 하나 이상의 데이터 파일의 사용자 선택을 검출할 수 있게 하고(902), 선택된 데이터 파일을 열기 위해 론칭될 수 있는 애플리케이션이 이 환경 내에서 이용가능한지 여부를 결정할 수 있게 한다(904). 예를 들어, 가상 컴퓨팅 시스템 서비스는 가상 컴퓨팅 환경을 생성하는데 사용되는 가상 머신 이미지를 평가하여 환경 내에 포함되는 애플리케이션을 결정할 수 있다. 선택된 하나 이상의 데이터 파일을 여는 데 사용될 수 있는 가상 컴퓨팅 환경 내에서 이용 가능한 애플리케이션이 있는 경우, 가상 컴퓨팅 환경 서비스는 적절한 애플리케이션을 론칭할 수 있고(906), 가상 컴퓨팅 환경 인터페이스를 통해 하나 이상의 데이터 파일의 사용을 가능하게 할 수 있다.
가상 컴퓨팅 환경 내에서 이용가능한 애플리케이션이 없는 경우, 가상 컴퓨팅 환경 서비스는 사용자의 컴퓨팅 장치(예를 들어, 로컬 컴퓨팅 장치 환경)가 선택된 하나 이상의 데이터 파일을 여는데 사용될 수 있는 하나 이상의 애플리케이션을 포함하는지 여부를 결정할 수 있다(908). 예를 들어, 가상 컴퓨팅 환경 서비스는 사용자 프로파일 데이터 저장소에 액세스하여 가상 컴퓨팅 환경의 사용자와 관련된 사용자 프로파일을 식별할 수 있다. 이 사용자 프로파일은 사용자의 컴퓨팅 장치에 설치될 수 있는 하나 이상의 애플리케이션을 지정할 수 있다. 대안적으로, 가상 컴퓨팅 환경 서비스는 컴퓨팅 장치에 설치된 하나 이상의 애플리케이션에 관한 정보를 요청하는 하나 이상의 API 호출을 사용자의 컴퓨팅 장치에 전송할 수 있다. 어느 방법이든, 가상 컴퓨팅 환경 서비스가 필요한 애플리케이션이 사용자의 컴퓨팅 장치에 설치되어 있는지 여부를 결정하게 할 수 있다(910).
가상 컴퓨팅 환경 서비스는 컴퓨팅 장치가 하나 이상의 데이터 파일을 여는데 사용될 수 있는 애플리케이션을 포함하지 않는 경우 하나 이상의 데이터 파일을 열기 위한 임의의 추가적인 옵션을 사용자에게 통지할 수 있다(912). 예를 들어, 일부 실시예에서, 가상 컴퓨팅 시스템 서비스는 선택된 하나 이상의 데이터 파일을 열기 위한 하나 이상의 적절한 애플리케이션을 포함할 수 있는 다른 가상 머신 이미지를 사용자에게 통지할 수 있고, 사용자가 이 특정 가상 머신 이미지가 물리적 호스트에서 인스턴스화되기를 원하는지 여부를 결정할 수 있게 한다. 대안적으로, 가상 컴퓨팅 환경 서비스는 찾을 수 있는 애플리케이션이 전혀 없을 때에는 하나 이상의 데이터 파일을 열기 위한 사용자의 요청을 거부할 수 있다. 대안적인 실시예에서, 가상 컴퓨팅 환경 서비스는 사용자로 하여금 가상 컴퓨팅 환경 애플리케이션 시장(marketplace)에 액세스하게 할 수 있고, 여기서 사용자는 하나 이상의 데이터 파일을 여는데 필요한 하나 이상의 애플리케이션에 대한 라이센스를 획득할 수 있다. 이 시장에서 라이센스를 획득하면 가상 컴퓨팅 환경 서비스는, 하나 이상의 애플리케이션을 설치하고, 라이센스가 유효한 한, 사용자가 이러한 하나 이상의 애플리케이션을 사용할 수 있게 하는 것에 의해 사용자의 가상 컴퓨팅 환경을 보완할 수 있다.
대안적으로, 하나 이상의 데이터 파일을 여는데 필요한 하나 이상의 애플리케이션이 사용자의 컴퓨팅 장치 내에서 이용가능한 경우, 가상 컴퓨팅 환경 서비스는, 사용자의 컴퓨팅 장치 환경 내에서, 선택된 하나 이상의 데이터 파일을 열기 위한 하나 이상의 정책을 식별할 수 있다(914). 예를 들어, 가상 컴퓨팅 환경 서비스는 사용자 프로파일 데이터 저장소 내 사용자의 프로파일에 액세스하여 컴퓨팅 장치의 관리자 또는 다른 감독 당국에 의해 한정된 이 하나 이상의 정책을 식별할 수 있다. 하나 이상의 정책은 사용자의 컴퓨팅 장치 환경 내에서 열릴 수 있는 데이터 파일 유형 또는 포맷을 지정하거나 및/또는 이러한 환경 내에서 열릴 수 없는 데이터 파일 유형 또는 포맷을 지정할 수 있다. 이러한 하나 이상의 정책에 적어도 부분적으로 기초하여, 가상 컴퓨팅 환경 서비스는 선택된 하나 이상의 데이터 파일이 사용자의 컴퓨팅 장치에 설치된 애플리케이션을 사용하여 열릴 수 있는지 여부를 결정할 수 있다(916).
하나 이상의 데이터 파일이 사용자의 컴퓨팅 장치 환경 내에서 열리지 않을 수 있다고 결정한 결과, 가상 컴퓨팅 환경 서비스는 하나 이상의 데이터 파일을 열기 위한 임의의 추가적인 옵션을 사용자에게 통지할 수 있다(912). 그러나, 하나 이상의 데이터 파일이 사용자의 컴퓨팅 장치 환경 내에서 열릴 수 있는 경우, 가상 컴퓨팅 환경 서비스는 선택된 하나 이상의 데이터 파일을 사용자의 컴퓨팅 장치에 제공하고(918), 하나 이상의 실행 가능한 명령을 컴퓨팅 장치에 전송할 수 있고, 이 명령은, 실행될 때, 컴퓨팅 장치가 사용자의 컴퓨팅 장치 환경 내에서 하나 이상의 데이터 파일의 사용을 가능하게 하는데 필요한 하나 이상의 애플리케이션을 론칭하게 할 수 있다.
도 10은 다양한 실시예에 따른 양태를 구현하기 위한 예시적인 환경(1000)의 양태를 도시한다. 이해될 수 있는 바와 같이, 웹 기반 환경이 설명을 위한 목적으로 사용되었지만, 적절한 경우 상이한 환경이 다양한 환경을 구현하는데 사용될 수 있다. 환경은 적절한 네트워크(1004)를 통해 요청, 메시지 또는 정보를 송신 및/또는 수신하고, 일부 실시예에서 정보를 장치의 사용자에게 되송신하도록 동작할 수 있는 임의의 적절한 장치를 포함할 수 있는 전자 클라이언트 장치(1002)를 포함한다. 이러한 클라이언트 장치의 예로는 퍼스널 컴퓨터, 셀 폰, 핸드 헬드 메시징 장치, 랩톱 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 개인 정보 단말기, 임베디드 컴퓨터 시스템, 전자책 판독기 등이 있다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, 근거리 네트워크, 위성 네트워크 또는 임의의 다른 그러한 네트워크 및/또는 이들의 조합을 포함하는 임의의 적절한 네트워크를 포함할 수 있다. 이러한 시스템에 사용되는 구성 요소는 선택된 네트워크의 유형 및/또는 환경에 따라 적어도 부분적으로 달라질 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜 및 구성 요소는 잘 알려져 있으므로 본 명세서에서는 상세히 설명되지 않는다. 네트워크를 통한 통신은 유선 또는 무선 연결 및 이들의 조합에 의해 가능할 수 있다. 이 예에서, 환경이 요청을 수신하고 이 요청에 응답하여 콘텐츠를 제공하기 위한 웹 서버(1006)를 포함하기 때문에 네트워크는 인터넷을 포함하고 있지만, 다른 네트워크에서는, 이 기술 분야에 통상의 지식을 가진 자에게 명백할 수 있는, 유사한 목적을 제공하는 대안적인 장치가 사용될 수 있다.
예시적인 환경은 적어도 하나의 애플리케이션 서버(1008)와 데이터 저장소(1010)를 포함한다. 체인화되거나 다른 방식으로 구성될 수 있고, 적절한 데이터 저장소로부터 데이터를 획득하는 것과 같은 작업을 수행하기 위해 상호 작용할 수 있는 몇몇 애플리케이션 서버, 계층 또는 다른 요소, 프로세스 또는 구성 요소가 있을 수 있는 것으로 이해된다. 본 명세서에서 사용된 서버는 하드웨어 장치 또는 가상 컴퓨터 시스템과 같이 다양한 방식으로 구현될 수 있다. 일부 상황에서 서버는 컴퓨터 시스템에서 실행되는 프로그래밍 모듈을 말하는 것일 수 있다. 본 명세서에 사용된 바와 같이, 달리 언급되지 않거나 문맥상 명확하지 않은 경우, "데이터 저장소(data store)"라는 용어는, 임의의 표준, 분산, 가상 또는 클러스터 환경에서 임의의 조합 및 임의의 수의 데이터 서버, 데이터베이스, 데이터 저장 장치 및 데이터 저장 매체를 포함할 수 있는, 데이터를 저장, 액세스 및 검색할 수 있는 임의의 장치 또는 장치의 조합을 말할 수 있다. 애플리케이션 서버는 클라이언트 장치를 위한 하나 이상의 애플리케이션의 측면을 실행하고 애플리케이션을 위한 일부 또는 모든 데이터 액세스 및 업무 논리를 처리하는 데 필요한 데이터 저장소와 통합하기 위한 임의의 적절한 하드웨어, 소프트웨어 및 펌웨어를 포함할 수 있다. 애플리케이션 서버는 데이터 저장소와 협력하여 액세스 제어 서비스를 제공할 수 있으며, 하이퍼텍스트 마크업 언어("HTML": HyperText Markup Language), 확장가능한 마크업 언어("XML": Extensible Markup Language), 자바스크립트(JavaScript), 케스케이딩 스타일 시트("CSS": Cascading Style Sheets) 또는 다른 적절한 클라이언트측 구조화 언어의 형태로 웹 서버에 의해 사용자에게 제공될 수 있는, 사용자에게 제공되는데 사용가능한, 텍스트, 그래픽, 오디오, 비디오 및/또는 기타 컨텐츠를 포함하지만 이에 제한되지 않는 컨텐츠를 생성할 수 있다. 클라이언트 장치에 전송된 콘텐츠는 클라이언트 장치에 의해 처리되어 사용자가 청각적으로 들을 수 있거나, 시각적으로 볼 수 있거나 및/또는 터치, 맛 및/또는 냄새를 포함하는 다른 감각을 통해 사용자에 인식될 수 있는 형태를 포함하지만 이로 제한되지 않는 하나 이상의 형태로 콘텐츠를 제공할 수 있다. 클라이언트 장치(1002)와 애플리케이션 서버(1008) 간 모든 요청과 응답의 처리 및 컨텐츠 전달은 이 예에서 PHP, 즉 하이퍼텍스트 프리프로세서(Hypertext Preprocessor: "PHP"), 파이톤(Python), 루비(Ruby), 펄(Perl), 자바, HTML, XML 또는 기타 적절한 서버측 구조화된 언어를 사용하여 웹 서버에 의해 처리될 수 있다. 본 명세서에서 논의된 구조화된 코드는 본 명세서의 다른 곳에서 논의된 바와 같이 임의의 적절한 장치 또는 호스트 머신 상에서 실행될 수 있기 때문에, 웹 서버와 애플리케이션 서버는 요구되지 않으며 단지 예시적인 구성 요소일 뿐인 것으로 이해된다. 또한, 단일 장치에 의해 수행되는 것으로서 본 명세서에서 설명된 동작은, 문맥상 명백하지 않는 한, 분산 및/또는 가상 시스템을 형성할 수 있는 다수의 장치에 의해 집합적으로 수행될 수 있다.
데이터 저장소(1010)는 본 발명의 특정 양태에 관련된 데이터를 저장하기 위한 몇몇 별도의 데이터 테이블, 데이터베이스, 데이터 문서, 동적 데이터 저장 방식 및/또는 다른 데이터 저장 메커니즘 및 매체를 포함할 수 있다. 예를 들어, 도시된 데이터 저장소는 생산 측에 콘텐츠를 제공하는데 사용될 수 있는 생산 데이터(1012)와 사용자 정보(1016)를 저장하기 위한 메커니즘을 포함할 수 있다. 데이터 저장소는 또한 보고하거나, 분석하거나 또는 다른 목적을 위해 사용될 수 있는 로그 데이터(1014)를 저장하기 위한 메커니즘을 포함하는 것으로 도시되어 있다. 적절한 경우 상기 열거된 메커니즘들 중 임의의 메커니즘에 저장되거나 또는 데이터 저장소(1010) 내 추가적인 메커니즘에 저장될 수 있는, 페이지 이미지 정보 및 액세스 권한 정보와 같은, 데이터 저장소에 저장될 필요가 있는 많은 다른 측면이 있을 수 있는 것으로 이해된다. 데이터 저장소(1010)는 이와 관련된 로직을 통해 애플리케이션 서버(1008)로부터 명령을 수신하고 이 명령에 응답하여 데이터를 획득, 업데이트 또는 그 밖에 처리하도록 동작 가능하다. 애플리케이션 서버(1008)는 수신된 명령에 응답하여 정적, 동적 또는 정적 및 동적 데이터의 조합을 제공할 수 있다. 웹 로그(블로그), 쇼핑 애플리케이션, 뉴스 서비스 및 기타 이러한 애플리케이션에 사용되는 데이터와 같은 동적 데이터는 본 명세서에 설명된 서버 측 구조화된 언어에 의해 생성되거나 또는 애플리케이션 서버에서 동작하거나 이 서버의 제어 하에서 동작하는 콘텐츠 관리 시스템("CMS")에 의해 제공될 수 있다. 일 예에서, 사용자는 사용자에 의해 동작되는 장치를 통해 특정 유형의 아이템을 검색하는 요청을 제출할 수 있다. 이 경우 데이터 저장소는 사용자 정보에 액세스하여 사용자의 신원을 확인하고 카탈로그 상세 정보에 액세스하여 해당 유형의 항목에 관한 정보를 얻을 수 있다. 이 정보는 사용자가 사용자 장치(1002)의 브라우저를 통해 볼 수 있는 웹 페이지에 결과 목록으로 사용자에게 제시될 수 있다. 관심 있는 특정 항목에 대한 정보는 전용 페이지 또는 브라우저의 창으로 볼 수 있다. 그러나, 본 발명의 실시예는 반드시 웹 페이지의 상황으로 제한되지 않고, 요청이 반드시 콘텐츠에 대한 요청이어야 하는 것은 아닌 일반적인 요청 처리에도 일반적으로 적용될 수 있는 것으로 이해된다.
각 서버는 일반적으로 그 서버의 일반적인 관리 및 동작을 위한 실행 가능한 프로그램 명령을 제공하는 운영 시스템을 포함할 것이며 일반적으로 서버의 프로세서에 의해 실행될 때 서버가 의도된 기능을 수행하게 하는 명령을 저장하는 컴퓨터 판독 가능한 저장 매체(예를 들어, 하드 디스크, 랜덤 액세스 메모리, 판독 전용 메모리, 등)를 포함할 수 있다. 서버의 운영 시스템과 일반적인 기능을 위한 적절한 구현 예는 알려져 있거나 상업적으로 이용 가능하므로 특히 본 명세서에 개시된 내용에 비춰 이 기술 분야에 통상의 지식을 가진 자에 의해 용이하게 구현된다.
일 실시예에서, 환경은 하나 이상의 컴퓨터 네트워크 또는 직접 접속을 사용하여 통신 링크를 통해 상호 접속되는 몇몇 컴퓨터 시스템과 구성 요소를 사용하는 분산 및/또는 가상 컴퓨팅 환경이다. 그러나, 이 기술 분야에 통상의 지식을 가진 자라면 이러한 시스템이 도 10에 도시된 것보다 더 적거나 또는 더 많은 수의 구성 요소를 갖는 시스템에서도 동일하게 동작할 수 있음을 이해할 수 있을 것이다. 따라서, 도 10의 시스템(1000)은 본질적으로 예시적인 것이며 본 발명의 범위를 제한하지 않는 것으로 간주되어야 한다.
본 발명의 실시예는 다음 항목으로 설명될 수 있다:
1. 컴퓨터로-구현되는 방법으로서,
실행 가능한 명령으로 구성된 컴퓨팅 장치의 제어 하에,
데이터 파일을 열라는 커맨드를 나타내는, 상기 컴퓨팅 장치의 입력 장치로의 입력을 검출하는 단계로서, 상기 데이터 파일은 상기 컴퓨팅 장치에 설치된 적어도 하나의 애플리케이션을 사용하여 액세스 가능하고, 상기 데이터 파일은 대응하는 파일 유형을 갖는, 상기 입력을 검출하는 단계;
상기 파일 유형과 관련된 정책에 적어도 부분적으로 기초하여, 상기 데이터 파일이 상기 컴퓨팅 장치의 환경과 구별되는 가상 컴퓨팅 환경에서 열려야 하는지를 결정하는 단계;
상기 데이터 파일을 상기 가상 컴퓨팅 환경에 제공하는 단계; 및
서버로 하여금 상기 가상 컴퓨팅 환경 내에서 상기 데이터 파일을 여는데 사용 가능한 애플리케이션을 론칭하게 하는 하나 이상의 실행 가능한 명령을 전송하는 단계를 포함하는 컴퓨터로-구현되는 방법.
2. 제1항에 있어서,
상기 데이터 파일이 상기 가상 컴퓨팅 환경 내에서 상기 애플리케이션을 사용하여 열린 결과 생성된 수정된 데이터 파일을 상기 서버로부터 수신하는 단계; 및
상기 데이터 파일과 상기 수정된 데이터 파일을 동기화하는 단계를 더 포함하는 컴퓨터로-구현되는 방법.
3. 제1항 또는 제2항에 있어서, 상기 정책은 컴퓨터 시스템의 운영 시스템의 레지스트리 파일에 인코딩되고, 상기 레지스트리 파일은 대응하는 파일 유형을 갖는 데이터 파일이 상기 가상 컴퓨터 환경에서 열려야 하는지를 결정하도록 구성된 위치 결정 애플리케이션과 상기 데이터 파일이 관련되어야 하는지를 지정하는, 컴퓨터로-구현되는 방법.
4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 데이터 파일이 상기 가상 컴퓨팅 환경에서 열려야 하는 것으로 결정한 결과, 상기 컴퓨팅 장치가 상기 가상 컴퓨팅 환경에 액세스하는데 사용되게 하는, 상기 컴퓨팅 장치의 사용자와 관련된 하나 이상의 크리덴셜을 제공하는 단계를 더 포함하는 컴퓨터로-구현되는 방법.
5. 시스템으로서,
하나 이상의 프로세서; 및
명령을 포함하는 메모리를 포함하고, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
제1 컴퓨팅 환경에서, 데이터 파일을 열라는 커맨드를 검출하고;
상기 데이터 파일과 관련된 정책에 적어도 부분적으로 기초하여, 상기 데이터 파일이 상기 제1 컴퓨팅 환경과는 네트워크에 의해 분리된 제2 컴퓨팅 환경에서 열려야 하는지를 결정하고;
상기 데이터 파일이 상기 제2 컴퓨팅 환경 내에서 열리게 하는 정보를 상기 제2 컴퓨팅 환경에 전송하게 하는, 시스템.
6. 제5항에 있어서, 상기 데이터 파일은 상기 제1 컴퓨팅 환경 내에서 사용 가능한 적어도 하나의 애플리케이션을 사용하여 액세스 가능한, 시스템.
7. 제5항 또는 제6항에 있어서, 상기 정책은 상기 데이터 파일과 관련된 레지스트리 파일에 인코딩되는, 시스템.
8. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 제2 컴퓨팅 환경은 상기 제1 컴퓨팅 환경의 네트워크 인터페이스를 통해 액세스 가능한 단일 점유자 가상 컴퓨팅 환경인, 시스템.
9. 제5항 내지 제8항 중 어느 한 항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
상기 제1 컴퓨팅 환경에서, 제2 데이터 파일을 열라는 커맨드를 검출하고;
상기 제2 데이터 파일과 관련된 정책에 적어도 부분적으로 기초하여, 상기 제2 데이터 파일이 상기 제1 컴퓨팅 환경 내의 애플리케이션을 사용하여 열려야 하는지를 결정하고;
상기 애플리케이션을 론칭하여 상기 제2 데이터 파일을 사용하게 하는, 시스템.
10. 제5항 내지 제9항 중 어느 한 항에 있어서, 상기 제1 컴퓨팅 환경은 상기 네트워크를 통해 상기 시스템으로 스트리밍되는 단일 점유자 가상 컴퓨팅 환경인, 시스템.
11. 제5항 내지 제10항 중 어느 한 항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
상기 데이터 파일이 상기 제2 컴퓨팅 환경 내에서 상기 애플리케이션을 사용하여 열린 결과 생성된 수정된 데이터 파일을 상기 제2 컴퓨팅 환경으로부터 수신하고;
상기 제1 컴퓨팅 환경 내에서 상기 데이터 파일과 상기 수정된 데이터 파일을 동기화하게 하는, 시스템.
12. 제5항 내지 제11항 중 어느 한 항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 데이터 파일이 상기 제2 컴퓨팅 환경에서 열려야 하는 것으로 결정한 결과, 상기 시스템으로 하여금, 사용자 컴퓨팅 장치가 상기 제2 컴퓨팅 환경에 액세스할 수 있게 하는, 상기 제1 컴퓨팅 환경의 상기 사용자 컴퓨팅 장치와 관련된 하나 이상의 크리덴셜을 제공하게 하는, 시스템.
13. 실행 가능한 명령을 저장하는 비-일시적인 컴퓨터 판독 가능한 저장 매체로서, 상기 명령은, 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금, 적어도:
제1 컴퓨팅 환경 내에서, 대응하는 파일 유형을 갖는 데이터 파일을 열라는 커맨드를 검출한 것에 응답하여,
상기 파일 시스템과 관련된 정책에 적어도 부분적으로 기초하여, 상기 컴퓨터 시스템에 액세스 가능한 복수의 단일 점유자 가상 컴퓨팅 환경으로부터 단일 점유자 가상 컴퓨팅 환경을 선택하고;
상기 데이터 파일이 상기 선택된 단일 점유자 가상 컴퓨팅 환경 내에서 열리게 하는 정보를 상기 선택된 컴퓨팅 환경에 전송하게 하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
14. 제13항에 있어서, 상기 복수의 단일 점유자 가상 컴퓨팅 환경은 상기 제1 컴퓨팅 환경을 포함하는, 비-일시적인 컴퓨터 판독 가능한 저장 매체.
15. 제13항 또는 제14항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금, 사용자 컴퓨팅 장치가 상기 선택된 단일 점유자 가상 컴퓨팅 환경에 액세스할 수 있게 하는, 상기 제1 컴퓨팅 환경의 상기 사용자 컴퓨팅 장치와 관련된 하나 이상의 크리덴셜을 제공하는 명령을 더 포함하는, 비-일시적인 컴퓨터 판독 가능한 저장 매체.
16. 제13항 내지 제15항 중 어느 한 항에 있어서, 상기 제1 컴퓨팅 환경은 상기 선택된 단일 점유자 가상 컴퓨팅 환경의 운영 시스템과 구별되는 운영 시스템을 포함하는, 비-일시적인 컴퓨터 판독 가능한 저장 매체.
17. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 복수의 단일 점유자 가상 컴퓨팅 환경으로부터 상기 단일 점유자 가상 컴퓨팅 환경을 선택한 결과, 상기 컴퓨터 시스템으로 하여금, 상기 선택된 단일 점유자 가상 컴퓨팅 환경이 제공되게 하는 정보를 전송하게 하는 명령을 더 포함하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
18. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 파일 유형과 관련된 정책은, 상기 복수의 단일 점유자 가상 컴퓨팅 환경의 각 단일 거주자 가상 환경의 하나 이상의 보안 측면에 적어도 부분적으로 기초하여, 상기 단일 점유자 가상 컴퓨팅 환경의 순서를 지정하는, 비-일시적인 컴퓨터 판독 가능한 저장 매체.
19. 제13항 내지 제18항 중 어느 한 항에 있어서, 상기 정책은 상기 제1 컴퓨팅 환경의 운영 시스템의 레지스트리 파일로 인코딩되고, 상기 레지스트리 파일은 대응하는 파일 유형을 갖는 데이터 파일이 상기 선택된 단일 점유자 가상 컴퓨팅 환경에서 열려야 하는지를 결정하도록 구성된 위치 결정 애플리케이션과 상기 데이터 파일이 관련되어야 하는지를 지정하는, 비-일시적인 컴퓨터-판독 가능한 저장 매체.
20. 제13항 내지 제19항 중 어느 한 항에 있어서, 상기 데이터 파일은 상기 제1 컴퓨팅 환경 내에서 사용 가능한 적어도 하나의 애플리케이션을 사용하여 액세스 가능한, 비-일시적인 컴퓨터 판독 가능한 저장 매체.
다양한 실시예는 일부 경우에 다수의 애플리케이션 중 임의의 애플리케이션을 동작시키는데 사용될 수 있는 하나 이상의 사용자 컴퓨터, 컴퓨팅 장치 또는 프로세싱 장치를 포함할 수 있는 다양한 운영 환경에서 구현될 수 있다. 사용자 또는 클라이언트 장치는 표준 운영 시스템을 실행하는 데스크탑, 랩탑 또는 태블릿 컴퓨터와 같은 다수의 범용 개인용 컴퓨터뿐만 아니라 모바일 소프트웨어를 실행하고 다수의 네트워킹 및 메시징 프로토콜을 지원할 수 있는 셀룰러, 무선 및 핸드헬드 장치 중 임의의 것을 포함할 수 있다. 또한, 이러한 시스템은 상업적으로 이용 가능한 다양한 운영 시스템, 및 개발 및 데이터베이스 관리와 같은 목적을 위한 다른 알려진 애플리케이션 중 임의의 것을 실행하는 다수의 워크스테이션을 포함할 수 있다. 이들 장치는 또한 더미 단말(dummy terminal), 씬 클라이언트(thin-client), 게임 시스템 및 네트워크를 통해 통신할 수 있는 다른 장치와 같은 다른 전자 장치를 포함할 수 있다. 또한 이러한 장치에는 가상 머신, 하이퍼바이저 및 네트워크를 통해 통신할 수 있는 기타 가상 장치와 같은 가상 장치가 포함될 수 있다.
본 명세서의 다양한 실시예들은 전송 제어 프로토콜/인터넷 프로토콜("TCP/IP"), 사용자 데이터그램 프로토콜("UDP"), 개방형 시스템 상호 접속("OSI") 모델의 여러 층에서 동작하는 프로토콜, 파일 전송 프로토콜("FTP"), 범용 플러그 앤 플레이("UPnP"), 네트워크 파일 시스템("NFS"), 공통 인터넷 파일 시스템("CIFS") 및 애플토크(AppleTalk)와 같은 상업적으로 이용가능한 다양한 프로토콜 중 임의의 것을 사용하여 통신을 지원하는 이 기술 분야에 통상의 지식을 가진 자에 친숙할 수 있는 적어도 하나의 네트워크를 사용한다. 네트워크는 예를 들어 근거리 통신망, 광역 네트워크, 가상 사설망, 인터넷, 인트라넷, 엑스트라넷, 공중 교환 전화망, 적외선 네트워크, 무선 네트워크, 위성 네트워크 및 이들의 임의의 조합일 수 있다.
웹 서버를 사용하는 실시예에서, 웹 서버는 하이퍼텍스트 전송 프로토콜("HTTP") 서버, FTP 서버, 공통 게이트웨이 인터페이스("CGI") 서버, 데이터 서버, 자바 서버, 아파치(Apache) 서버, 및 비즈니스 애플리케이션 서버를 포함하는 다양한 서버 또는 중간 계층 애플리케이션 중 임의의 것을 실행할 수 있다. 서버(들)는 또한 자바
Figure pct00001
, C, C# 또는 C++와 같은 임의의 프로그래밍 언어 또는 루비, PHP, 펄, 파이톤 또는 TCL 및 이들의 조합과 같은 임의의 스크립팅 언어로 작성된 하나 이상의 스크립트 또는 프로그램으로 구현될 수 있는 하나 이상의 웹 애플리케이션을 실행함으로써 사용자 장치로부터의 요청에 응답하여 프로그램 또는 스크립트를 실행할 수 있다. 서버(들)에는 또한 오라클(Oracle)
Figure pct00002
, 마이크로소프트(Microsoft)
Figure pct00003
, 시베이스(Sybase)
Figure pct00004
및 IBM
Figure pct00005
으로부터 상업적으로 이용가능한 것을 포함하나 이로 제한되지 않는 데이터베이스 서버뿐만 아니라 MySQL, 포스트그레스(Postgres), SQLite, MongoDB와 같은 오픈 소스 서버, 및 구조화된 데이터 또는 구조화되지 않은 데이터를 저장, 검색 및 액세스할 수 있는 임의의 다른 서버가 포함될 수 있다. 데이터베이스 서버에는 테이블 기반 서버, 문서 기반 서버, 구조화되지 않은 서버, 관계형 서버, 비-관계형 서버 또는 이들 및/또는 다른 데이터베이스 서버의 조합이 포함될 수 있다.
환경은 전술한 바와 같이 다양한 데이터 저장소 및 다른 메모리 및 저장 매체를 포함할 수 있다. 이들 매체는 하나 이상의 컴퓨터에 로컬인 (및/또는 컴퓨터에 상주하는) 저장 매체 또는 네트워크를 통해 임의의 또는 모든 컴퓨터로부터 원격에 있는 저장 매체와 같은 다양한 위치에 상주할 수 있다. 특정 세트의 실시예에서, 정보는 이 기술 분야에 통상의 지식을 가진 자에 친숙한 SAN(storage-area network)에 상주할 수 있다. 유사하게, 컴퓨터, 서버 또는 다른 네트워크 장치에 기인하는 기능을 수행하는데 필요한 임의의 파일은 적절한 경우 로컬에 및/또는 원격에 저장될 수 있다. 시스템이 컴퓨터화된 장치를 포함하는 경우, 각 이러한 장치는 버스를 통해 전기적으로 결합될 수 있는 하드웨어 요소를 포함할 수 있으며, 이 하드웨어 요소는 예를 들어 적어도 하나의 중앙 처리 장치("CPU" 또는 "프로세서"), 적어도 하나의 입력 장치(예를 들어, 마우스, 키보드, 컨트롤러, 터치 스크린 또는 키패드), 및 적어도 하나의 출력 장치(예를 들어, 디스플레이 장치, 프린터 또는 스피커)를 포함한다. 이러한 시스템은 디스크 드라이브, 광학 저장 장치 및 솔리드 스테이트 저장 장치, 예를 들어, 랜덤 액세스 메모리("RAM") 또는 판독 전용 메모리("ROM")뿐만 아니라 이동식 매체 장치, 메모리 카드, 플래시 카드 등과 같은 하나 이상의 저장 장치를 더 포함할 수 있다.
이러한 장치는 또한 전술한 바와 같이 컴퓨터 판독 가능한 저장 매체 판독기, 통신 장치(예를 들어, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 장치 등) 및 작업 메모리를 포함할 수 있다. 컴퓨터 판독 가능한 저장 매체 판독기는 원격, 로컬, 고정식 및/또는 이동식 저장 장치를 나타내는 컴퓨터 판독 가능한 저장 매체뿐만 아니라 일시적으로 및/또는 보다 영구적으로 컴퓨터 판독가능한 정보를 포함, 저장, 전송 및 검색하는 저장 매체에 접속되거나 이를 수용하도록 구성될 수 있다. 시스템 및 다양한 장치는 또한 일반적으로 운영 시스템 및 클라이언트 애플리케이션 또는 웹 브라우저와 같은 애플리케이션 프로그램을 포함하는 적어도 하나의 작업 메모리 장치 내에 위치된 다수의 소프트웨어 애플리케이션, 모듈, 서비스 또는 다른 요소를 포함할 것이다. 대안적인 실시예는 전술한 것에서 많은 변형을 가질 수 있는 것으로 이해된다. 예를 들어, 커스터마이징된 하드웨어가 사용될 수도 있고/또는 특정 요소가 하드웨어, 소프트웨어(애플릿과 같은 휴대용 소프트웨어를 포함함) 또는 둘 모두로 구현될 수도 있다. 또한, 네트워크 입력/출력 장치와 같은 다른 컴퓨팅 장치와의 연결이 사용될 수 있다.
코드 또는 코드의 일부를 포함하는 저장 매체 및 컴퓨터 판독 가능한 매체는, 이 기술 분야에 알려져 있거나 사용되는 임의의 적절한 매체, 예를 들어, 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 저장하거나 및/또는 전송하는 임의의 방법 또는 기술로 구현된 휘발성 및 비-휘발성, 분리형 및 비-분리형 매체, 예를 들어, RAM, ROM, 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리("EEPROM"), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크 판독 전용 메모리("CD-ROM"), 디지털 다용도 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치 또는 원하는 정보를 저장하는데 사용될 수 있고 시스템 장치에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이로 제한되지 않는 저장 매체 및 통신 매체를 포함한다. 본 명세서에 제공된 개시 사항 및 교시 내용에 기초하여, 이 기술 분야에 통상의 지식을 가진 자라면 다양한 실시예를 구현하는 다른 방식 및/또는 방법을 이해할 수 있을 것이다.
따라서, 본 명세서 및 도면은 본 발명을 제한적인 것이 아니라 본 발명을 예시적인 것으로 간주되어야 한다. 그러나 청구 범위에 기재된 본 발명의 보다 넓은 사상 및 범위를 벗어남이 없이 다양한 변형 및 변경이 이루어질 수 있음이 명백할 것이다.
다른 변형도 본 발명의 사상 내에 있다. 따라서, 개시된 기술은 다양한 변형 및 대안적인 구조에 영향을 받기 쉽지만, 특정 도시된 실시예가 도면에 도시되어 있고, 상기에 상세히 설명되어 있다. 그러나, 본 발명을 개시된 특정 형태 또는 개시된 형태로 제한하려는 의도 없이, 오히려, 첨부된 청구 범위에 한정된 본 발명의 사상 및 범위 내에 있는 모든 변형, 대안적인 구성 및 등가물을 포함하는 것으로 의도되는 것으로 이해된다.
(특히 이하의 청구 범위의 문맥에서) 개시된 실시예를 기술하는 맥락에서 단수 용어 및 "상기" 및 이와 유사한 지시자의 사용은, 본 명세서에 달리 지시되거나 문맥상 명확히 모순되지 않는 한, 단수 및 복수를 모두 포함하는 것으로 해석되어야 한다. "포함하는", "갖는", "구비하는" 및 "함유하는"이라는 용어는, 다른 언급이 없는 한, 개방된 용어인 (즉, "포함하지만 이에 국한되지 않는"을 의미하는) 것으로 해석되어야 한다. 수식어가 없을 때 물리적 연결을 의미하는 "연결된"이라는 용어는, 개입된 것이 있는 경우에도 부분적으로 또는 전체적으로 함께 포함되거나, 부착되거나, 결합된 것으로 해석되어야 한다. 본 명세서에서 값의 범위를 언급하는 것은, 본 명세서에 달리 언급되지 않는 한, 그 범위 내에 속하는 각 개별 값을 개별적으로 언급하는 약식 방법을 제공하는 것으로 의도된 것일 뿐, 각 개별 값은 본 명세서에서 개별적으로 언급된 것처럼 본 명세서에 병합된다. 문맥에 의해 달리 언급되거나 모순되지 않는 한, "세트" (예를 들어, "항목 세트") 또는 "서브 세트"라는 용어의 사용은 하나 이상의 구성원을 포함하는 비어 있지 않은 집합인 것으로 해석되어야 한다. 또한, 달리 언급되거나 문맥상 모순되지 않는 한, 대응하는 세트의 "서브 세트"라는 용어는 반드시 대응하는 세트의 적절한 서브 세트를 나타내는 것은 아니고, 서브 세트 및 대응하는 세트는 동일할 수 있다.
"A, B 및 C 중 적어도 하나" 또는 "A, B 및 C 중 적어도 하나"의 형태의 어구와 같은 결합 언어는, 달리 언급되거나 또는 문맥상 명확히 모순되지 않는 한, 일반적으로 사용되는 문맥에서, 항목, 용어 등이 A 또는 B 또는 C이거나 또는 A 및 B 및 C의 세트의 비어 있지 않은 서브 세트일 수 있다는 것을 나타내는 것으로 이해된다. 예를 들어, 3개의 구성원을 갖는 세트의 예시적인 예에서, "A, B 및 C 중 적어도 하나" 및 "A, B 및 C 중 적어도 하나"라는 결합 어구는 {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C} 중 하나를 말한다. 따라서, 이러한 결합 언어는 일반적으로 특정 실시예에서 A 중 적어도 하나, B 중 적어도 하나 및 C 중 적어도 하나가 각각 존재할 것을 요구한다는 것을 의미하는 것은 아니다.
본 명세서에 기술된 공정의 동작은 본 명세서에서 달리 언급되지 않는 한 또는 문맥상 모순되지 않는 한, 임의의 적절한 순서로 수행될 수 있다. 본 명세서에 설명된 프로세스(또는 그 변형 및/또는 조합)는 실행 가능한 명령으로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에 수행될 수 있으며, 하드웨어 또는 이들의 조합에 의해 하나 이상의 프로세서에서 집합적으로 실행되는 코드(예를 들어, 실행 가능한 명령, 하나 이상의 컴퓨터 프로그램, 또는 하나 이상의 애플리케이션)로 구현될 수 있다. 코드는 예를 들어 하나 이상의 프로세서에 의해 실행 가능한 복수의 명령을 포함하는 컴퓨터 프로그램의 형태로 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 컴퓨터 판독 가능한 저장 매체는 일시적이지 않을 수 있다.
본 명세서에 제공된 임의의 및 모든 예 또는 예시적인 언어(예를 들어, "와 같은")의 사용은, 달리 언급되지 않는 한, 본 발명의 실시예를 보다 잘 나타내기 위한 것일 뿐, 본 발명의 범위를 제한하는 것이 아니다. 본 명세서에 있는 언어는 청구되지 않은 요소를 본 발명을 실시하는데 필수적인 것으로 나타내는 것으로 해석되어서는 안 된다.
본 발명을 수행하기 위해 본 발명자들에 알려진 최선의 모드를 포함하는 본 발명의 실시예가 본 명세서에 설명되었다. 이들 실시예의 변형은 전술한 설명을 읽음으로써 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다. 본 발명자는 숙련된 기술자가 그러한 변형을 적절하게 사용할 것을 기대하며, 본 발명자는 본 발명의 실시예가 본 명세서에 구체적으로 기재된 것과 다르게 실시될 수 있는 것으로 의도한다. 따라서, 본 발명의 범위는 적용 가능한 법률에 의해 허용되는 바에 따라 본 명세서에 첨부된 청구 범위에 기재된 주제의 모든 변형 및 등가물을 포함한다. 또한, 본 명세서에서 달리 언급되지 않는 한, 또는 문맥상 명확히 모순되지 않는 한, 전술한 요소에서 모든 가능한 변형의 임의의 조합이 본 발명의 범위에 포함된다.
본 명세서에 인용된 공개 문헌, 특허 출원 문헌 및 특허 문헌을 포함하는 모든 문헌은 각각의 문헌이 개별적으로 및 구체적으로 참고 문헌으로 병합되어 그 전체 내용이 본 명세서에 개시된 것처럼 동일한 범위만큼 본 명세서에 포함된다.

Claims (15)

  1. 컴퓨터로-구현되는 방법으로서,
    실행 가능한 명령으로 구성된 컴퓨팅 장치의 제어 하에,
    데이터 파일을 열라는 커맨드를 나타내는, 상기 컴퓨팅 장치의 입력 장치로의 입력을 검출하는 단계로서, 상기 데이터 파일은 상기 컴퓨팅 장치에 설치된 적어도 하나의 애플리케이션을 사용하여 액세스 가능하고, 상기 데이터 파일은 대응하는 파일 유형을 갖는, 상기 입력을 검출하는 단계;
    상기 파일 유형과 관련된 정책에 적어도 부분적으로 기초하여, 상기 데이터 파일이 상기 컴퓨팅 장치의 환경과 구별되는 가상 컴퓨팅 환경에서 열려야 하는지를 결정하는 단계;
    상기 데이터 파일을 상기 가상 컴퓨팅 환경에 제공하는 단계; 및
    서버로 하여금 상기 가상 컴퓨팅 환경 내에서 상기 데이터 파일을 여는데 사용가능한 애플리케이션을 론칭(launch)하게 하는 하나 이상의 실행 가능한 명령을 전송하는 단계를 포함하는, 컴퓨터로-구현되는 방법.
  2. 제1항에 있어서,
    상기 데이터 파일이 상기 가상 컴퓨팅 환경 내에서 상기 애플리케이션을 사용하여 열린 결과 생성된 수정된 데이터 파일을 상기 서버로부터 수신하는 단계; 및
    상기 데이터 파일과 상기 수정된 데이터 파일을 동기화하는 단계를 더 포함하는, 컴퓨터로-구현되는 방법.
  3. 제1항에 있어서, 상기 정책은 컴퓨터 시스템의 운영 시스템(operating system)의 레지스트리 파일에 인코딩되고, 상기 레지스트리 파일은 대응하는 파일 유형을 갖는 데이터 파일이 상기 가상 컴퓨터 환경에서 열려야 하는지를 결정하도록 구성된 위치 결정 애플리케이션과 상기 데이터 파일이 관련되어야 하는지를 지정하는, 컴퓨터로-구현되는 방법.
  4. 제1항에 있어서, 상기 데이터 파일이 상기 가상 컴퓨팅 환경에서 열려야 하는 것으로 결정한 결과, 상기 컴퓨팅 장치가 상기 가상 컴퓨팅 환경에 액세스하는데 사용될 수 있는, 상기 컴퓨팅 장치의 사용자와 관련된 하나 이상의 크리덴셜(credential)을 제공하는 단계를 더 포함하는, 컴퓨터로-구현되는 방법.
  5. 시스템으로서,
    하나 이상의 프로세서; 및
    명령을 포함하는 메모리를 포함하고, 상기 명령은,
    상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
    제1 컴퓨팅 환경에서, 데이터 파일을 열라는 커맨드를 검출하고;
    상기 데이터 파일과 관련된 정책에 적어도 부분적으로 기초하여, 상기 데이터 파일이 상기 제1 컴퓨팅 환경과 네트워크에 의해 분리된 제2 컴퓨팅 환경에서 열려야 하는지를 결정하고;
    상기 데이터 파일이 상기 제2 컴퓨팅 환경 내에서 열리게 하는 정보를 상기 제2 컴퓨팅 환경에 전송하게 하는, 시스템.
  6. 제5항에 있어서, 상기 정책은 상기 데이터 파일과 관련된 레지스트리 파일에 인코딩된, 시스템.
  7. 제5항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 추가로,
    상기 제1 컴퓨팅 환경에서, 제2 데이터 파일을 열라는 커맨드를 검출하고;
    상기 제2 데이터 파일과 관련된 정책에 적어도 부분적으로 기초하여, 상기 제2 데이터 파일이 상기 제1 컴퓨팅 환경 내의 애플리케이션을 사용하여 열려야 하는지를 결정하고;
    상기 애플리케이션을 론칭하여 상기 제2 데이터 파일을 사용가능하게 하는, 시스템.
  8. 제5항에 있어서, 상기 제1 컴퓨팅 환경은 상기 네트워크를 통해 상기 시스템으로 스트리밍되는 단일 점유자 가상 컴퓨팅 환경인, 시스템.
  9. 제5항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 추가로,
    상기 데이터 파일이 상기 제2 컴퓨팅 환경 내에서 상기 애플리케이션을 사용하여 열린 결과 생성된 수정된 데이터 파일을 상기 제2 컴퓨팅 환경으로부터 수신하고;
    상기 제1 컴퓨팅 환경 내에서 상기 데이터 파일과 상기 수정된 데이터 파일을 동기화하게 하는, 시스템.
  10. 실행 가능한 명령을 저장하는 비-일시적인 컴퓨터 판독가능한 저장 매체로서, 상기 명령은, 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금, 적어도,
    제1 컴퓨팅 환경 내에서, 대응하는 파일 유형을 갖는 데이터 파일을 열라는 커맨드를 검출한 것에 응답하여,
    상기 파일 유형과 관련된 정책에 적어도 부분적으로 기초하여, 상기 컴퓨터 시스템에 액세스 가능한 복수의 단일 점유자 가상 컴퓨팅 환경으로부터 단일 점유자 가상 컴퓨팅 환경을 선택하고;
    상기 선택된 단일 점유자 가상 컴퓨팅 환경 내에서 상기 데이터 파일이 열리게 하는 정보를 상기 선택된 컴퓨팅 환경에 전송하게 하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
  11. 제10항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금, 사용자 컴퓨팅 장치가 상기 선택된 단일 점유자 가상 컴퓨팅 환경에 액세스하게 하는, 상기 제1 컴퓨팅 환경의 상기 사용자 컴퓨팅 장치와 관련된 하나 이상의 크리덴셜을 제공하게 하는 명령을 더 포함하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
  12. 제10항에 있어서, 상기 제1 컴퓨팅 환경은 상기 선택된 단일 점유자 가상 컴퓨팅 환경의 운영 시스템과 구별되는 운영 시스템을 포함하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
  13. 제10항에 있어서, 상기 명령은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 복수의 단일 점유자 가상 컴퓨팅 환경으로부터 상기 단일 점유자 가상 컴퓨팅 환경을 선택한 결과, 상기 컴퓨터 시스템으로 하여금, 상기 선택된 단일 점유자 가상 컴퓨팅 환경이 제공되게 하는 정보를 전송하게 하는 명령을 더 포함하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
  14. 제10항에 있어서, 상기 파일 유형과 관련된 상기 정책은 상기 복수의 단일 점유자 가상 컴퓨팅 환경의 각 단일 점유자 가상 환경의 하나 이상의 보안 측면에 적어도 부분적으로 기초하여 상기 단일 점유자 가상 컴퓨팅 환경의 순서를 지정하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
  15. 제10항에 있어서, 상기 정책은 상기 제1 컴퓨팅 환경의 운영 시스템의 레지스트리 파일에 인코딩되고, 상기 레지스트리 파일은 상기 대응하는 파일 유형을 갖는 상기 데이터 파일이 상기 선택된 단일 점유자 가상 컴퓨팅 환경에서 열려야 하는지를 결정하도록 구성된 위치 결정 애플리케이션과 상기 데이터 파일이 관련되어야 하는지를 지정하는, 비-일시적인 컴퓨터 판독가능한 저장 매체.
KR1020177008741A 2014-09-22 2015-09-21 컴퓨팅 환경 선택 기술 KR101973361B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/492,648 2014-09-22
US14/492,648 US20160085765A1 (en) 2014-09-22 2014-09-22 Computing environment selection techniques
PCT/US2015/051263 WO2016048910A1 (en) 2014-09-22 2015-09-21 Computing environment selection techniques

Publications (2)

Publication Number Publication Date
KR20170046779A true KR20170046779A (ko) 2017-05-02
KR101973361B1 KR101973361B1 (ko) 2019-04-29

Family

ID=54325661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008741A KR101973361B1 (ko) 2014-09-22 2015-09-21 컴퓨팅 환경 선택 기술

Country Status (9)

Country Link
US (1) US20160085765A1 (ko)
EP (2) EP3995957A1 (ko)
JP (1) JP6441468B2 (ko)
KR (1) KR101973361B1 (ko)
CN (1) CN106716359B (ko)
AU (1) AU2015321610B2 (ko)
CA (1) CA2959429A1 (ko)
SG (1) SG11201701412UA (ko)
WO (1) WO2016048910A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198253B2 (en) 2014-12-30 2019-02-05 Airwatch Llc Bundle administration and management
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
US9998551B1 (en) * 2016-10-24 2018-06-12 Palantir Technologies Inc. Automatic discovery and registration of service application for files introduced to a user interface
US10387383B2 (en) 2017-02-15 2019-08-20 Google Llc Systems and methods for providing access to a data file stored at a data storage system
US12001402B2 (en) * 2021-08-02 2024-06-04 Dell Products L.P. Dynamically selecting an application to open a file
US11928079B1 (en) * 2022-10-25 2024-03-12 Dell Products L.P. Intelligently associating a file with an application

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505051A (ja) * 2001-10-02 2005-02-17 サイトリックス システムズ,インコーポレイテッド クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
US20090254927A1 (en) * 2008-04-07 2009-10-08 Installfree, Inc. Techniques For Deploying Virtual Software Applications On Desktop Computers
US20110219449A1 (en) * 2010-03-04 2011-09-08 St Neitzel Michael Malware detection method, system and computer program product
US20120303763A1 (en) * 2009-05-19 2012-11-29 Smx Inet Global Services Sa Providing a local device with computing services from a remote host
JP2012256336A (ja) * 2007-12-20 2012-12-27 Intel Corp 位置に基づきコンピューティング環境を変更するポリシーシステムおよび方法
US20140109084A1 (en) * 2012-08-30 2014-04-17 Tencent Technology (Shenzhen) Company Limited Systems and Methods for File Processing
KR20140094525A (ko) * 2011-11-02 2014-07-30 마이크로소프트 코포레이션 외부 저장 서비스를 이용해 문서를 저장하기 위한 사용자 인터페이스
KR20140101370A (ko) * 2011-12-15 2014-08-19 마이크로소프트 코포레이션 자율형 네트워크 스트리밍 기법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330741A (ja) * 2002-05-13 2003-11-21 Canon Inc 情報処理装置
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8756293B2 (en) * 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
US8078713B1 (en) * 2008-03-05 2011-12-13 Full Armor Corporation Delivering policy settings with virtualized applications
CN101430649B (zh) * 2008-11-19 2011-09-14 北京航空航天大学 基于虚拟机的虚拟计算环境系统
US8387047B1 (en) * 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
JP5036791B2 (ja) * 2009-11-19 2012-09-26 Necアクセステクニカ株式会社 データ処理システム、データ処理方法およびデータ処理プログラム
US9390263B2 (en) * 2010-03-31 2016-07-12 Sophos Limited Use of an application controller to monitor and control software file and application environments
US8959451B2 (en) * 2010-09-24 2015-02-17 Blackberry Limited Launching an application based on data classification
JP5357129B2 (ja) * 2010-10-22 2013-12-04 レノボ・シンガポール・プライベート・リミテッド コンピュータのパフォーマンスを向上させる方法およびコンピュータ
MY177511A (en) * 2010-11-16 2020-09-17 Shardul Suresh Shroff System and method for providing virtual arbitration
JP2013065205A (ja) * 2011-09-16 2013-04-11 Kyocera Corp 携帯通信端末およびサーバ
US9152552B2 (en) * 2012-09-11 2015-10-06 International Business Machines Corporation Securing sensitive information in a network cloud
CN103490941B (zh) * 2013-03-07 2016-08-03 中标软件有限公司 一种云计算环境中实时监控在线配置方法
US10089458B2 (en) * 2013-09-26 2018-10-02 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505051A (ja) * 2001-10-02 2005-02-17 サイトリックス システムズ,インコーポレイテッド クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
JP2012256336A (ja) * 2007-12-20 2012-12-27 Intel Corp 位置に基づきコンピューティング環境を変更するポリシーシステムおよび方法
US20090254927A1 (en) * 2008-04-07 2009-10-08 Installfree, Inc. Techniques For Deploying Virtual Software Applications On Desktop Computers
US20120303763A1 (en) * 2009-05-19 2012-11-29 Smx Inet Global Services Sa Providing a local device with computing services from a remote host
US20110219449A1 (en) * 2010-03-04 2011-09-08 St Neitzel Michael Malware detection method, system and computer program product
KR20140094525A (ko) * 2011-11-02 2014-07-30 마이크로소프트 코포레이션 외부 저장 서비스를 이용해 문서를 저장하기 위한 사용자 인터페이스
KR20140101370A (ko) * 2011-12-15 2014-08-19 마이크로소프트 코포레이션 자율형 네트워크 스트리밍 기법
US20140109084A1 (en) * 2012-08-30 2014-04-17 Tencent Technology (Shenzhen) Company Limited Systems and Methods for File Processing

Also Published As

Publication number Publication date
CN106716359A (zh) 2017-05-24
JP6441468B2 (ja) 2018-12-19
KR101973361B1 (ko) 2019-04-29
AU2015321610B2 (en) 2018-10-04
EP3198433A1 (en) 2017-08-02
CN106716359B (zh) 2020-09-08
JP2017529619A (ja) 2017-10-05
AU2015321610A1 (en) 2017-03-16
EP3995957A1 (en) 2022-05-11
SG11201701412UA (en) 2017-04-27
WO2016048910A1 (en) 2016-03-31
US20160085765A1 (en) 2016-03-24
CA2959429A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
US11829794B2 (en) Authentication of virtual machine images using digital certificates
EP3468103B1 (en) Single set of credentials for accessing multiple computing resource services
US9853978B2 (en) Domain join and managed directory support for virtual computing environments
JP6605056B2 (ja) 仮想マシンインスタンスのための自動ディレクトリ結合
KR101973361B1 (ko) 컴퓨팅 환경 선택 기술
EP3069464B1 (en) Identity pool bridging for managed directory services
US10461937B1 (en) Hypervisor supported secrets compartment
US9778952B1 (en) Migration of computer system images through a customer interface
US20200117498A1 (en) Automatic domain join for virtual machine instances

Legal Events

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