KR102188916B1 - 가상 브라우저 통합 - Google Patents

가상 브라우저 통합 Download PDF

Info

Publication number
KR102188916B1
KR102188916B1 KR1020187033312A KR20187033312A KR102188916B1 KR 102188916 B1 KR102188916 B1 KR 102188916B1 KR 1020187033312 A KR1020187033312 A KR 1020187033312A KR 20187033312 A KR20187033312 A KR 20187033312A KR 102188916 B1 KR102188916 B1 KR 102188916B1
Authority
KR
South Korea
Prior art keywords
hosted
url
computing device
browser
virtual
Prior art date
Application number
KR1020187033312A
Other languages
English (en)
Other versions
KR20180135945A (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 KR20180135945A publication Critical patent/KR20180135945A/ko
Application granted granted Critical
Publication of KR102188916B1 publication Critical patent/KR102188916B1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들에 통합하기 위한 방법들, 시스템들 및 컴퓨터 판독 가능한 매체들이 제공된다. 일부 실시 예에서, 컴퓨팅 장치는 제1 URL을 열라는 요청을 수신할 수 있다. 그 다음, 상기 컴퓨팅 장치는 상기 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 상기 컴퓨팅 장치는 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작할 수 있다. 그 후, 컴퓨팅 장치는 가상화 서버로부터, 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 제1 호스팅된 브라우저 그래픽을 수신할 수 있고, 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 제1 호스팅된 브라우저 그래픽은 제1 URL와 연관된 컨텐츠를 포함할 수 있다. 그 다음, 상기 컴퓨팅 장치는 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽을 제공할 수 있다.

Description

가상 브라우저 통합
관련 출원 상호 참조
본 출원은 2017년 3월 29일자로 출원된 "가상 브라우저 통합(VIRTUAL BROWSER INTEGRATION)"이라는 명칭의 미국 특허 출원 제15/472,798호 및 2016년 5월 23일자로 출원된 "가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션에 통합(INTEGRATING A VIRTUAL BROWSER INTO A NATIVE BROWSER AND NATIVE WEB APPLICATIONS)"이라는 명칭의 미국 가 특허 출원 제62/340,028호의 우선권의 이익을 주장한다 . 전술한 각각의 출원들의 내용은 모든 목적을 위해 그 전체가 본원에 참고로 포함된다.
기술분야
본 발명의 측면들은 컴퓨터 하드웨어 및 소프트웨어에 관한 것이다. 특히, 본 발명의 하나 이상의 양상은 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들에 통합하기 위한 컴퓨터 하드웨어 및 소프트웨어에 관한 것이다.
기업 조직들과 그 직원들 및 기타 관련 사용자들은 전자 메일 송수신, 일정 및 작업 관리, 컨텐츠 제작 및 보기, 기업 정보 액세스 및 수정 및 기타 기능 실행과 같은 다양한 기능에 개입하기 위해 모바일 컴퓨팅 장치들을 사용하는 사례가 점차 늘고 있다. 이러한 모바일 장치들이 점점 더 채택되고 사용됨에 따라, 기업들이 기업 정보 및 기타 기업 자원들의 안전 및 보안을 보호하기 위해 그러한 장치들을 사용하는 방법 및/또는 그것들이 액세스할 수 있는 정보를 제어 및/또는 그 외 관리하는 것이 점점 더 중요해지고 있다. 그러나, 경우에 따라, 이에 기술적 과제들이 있을 수 있다.
본 발명의 양상들은 모바일 장치들 및/또는 모바일 어플리케이션들에 의한 기업 정보 및 기타 기업 자원들에 대한 액세스를 제어 및/또는 관리하는 것과 관련된 하나 이상의 기술적 과제를 해결 및 극복할 수 있는 기술적 솔루션들을 제공한다.
특히, 본 발명의 하나 이상의 양상은 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 방법들을 제공한다. 예를 들어, 본 발명의 하나 이상의 양상을 구현함으로써, 가상 브라우저는 기본적으로 지원되지 않는 컨텐츠에 대한 액세스를 가능하게 하고/하거나 그 외 그 권한을 제공하기 위해 그리고/또는 더 보안을 더 강화하고/거나 그 외 더 제공하기 위해 고유 브라우저에 원활하게 통합될 수 있다. 또한, 이러한 가상 브라우저는 고유의 사용자 경험뿐만 아니라 전면적인 웹 어플리케이션 기능을 제공하기 위해 고유 "웹" 어플리케이션들에 대한 액세스를 가능하게 하고/하거나 그 외 그 권한을 제공하기 위해 사용될 수 있다.
예를 들어, 적어도 하나의 프로세서, 메모리 및 통신 인터페이스를 갖는 컴퓨팅 플랫폼은 기본적으로 지원되지 않는 URL(uniform resource locator)을 열라는 요청을 수신할 수 있다. 상기 기본적으로 지원되지 않는 URL을 열라는 요청을 수신하는 것에 응답하여, 상기 컴퓨팅 플랫폼은 호스팅된 가상 브라우저 어플리케이션을 시작할 수 있다. 그 다음, 상기 컴퓨팅 플랫폼은 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 그래픽을 디스플레이할 수 있고, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 그래픽은 상기 기본적으로 지원되지 않는 URL과 연관된 컨텐츠를 포함할 수 있다.
하나 이상의 실시 예에 따르면, 적어도 하나의 프로세서, 통신 인터페이스 및 메모리를 갖는 컴퓨팅 장치는 제1 URL을 열라는 요청을 수신할 수 있다. 그 다음, 상기 컴퓨팅 장치는 상기 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 상기 컴퓨팅 장치는 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 수신할 수 있고, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽은 상기 제1 URL와 연관된 컨텐츠를 포함할 수 있다. 그 다음, 상기 컴퓨팅 장치는 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽을 제공할 수 있다.
일부 실시 예에서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함할 수 있다. 일부 실시 예에서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 상기 제1 URL와 연관된 하나 이상의 요소의 로딩 실패를 검출하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함할 수 있다. 일부 실시 예에서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 상기 제1 URL이 호스팅된 웹과 연관된 스터브 어플리케이션에 대응한다는 것을 식별하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함할 수 있다.
일부 실시 예에서, 상기 가상화 서버에 의해 호스팅되는 상기 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션을 시작하는 것은 상기 가상화 서버에의 접속을 수립하는 것 및 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것을 포함할 수 있다. 경우에 따라, 상기 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것은 기업 사용자 계정에 링크된 적어도 하나의 캐싱된 싱글 사인온(SSO, single sign-on) 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것을 포함할 수 있다.
일부 실시 예에서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것은 탐색 활동과 관련된 탐색 전환 스택을 유지하는 것을 포함할 수 있다.
일부 실시 예에서, 상기 제1 URL을 열라는 요청을 수신하기 전에, 상기 컴퓨팅 장치는 상기 통신 인터페이스를 통해, 기업 서버로부터, 하나 이상의 기업 정책을 수신할 수 있고, 상기 하나 이상의 기업 정책은 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책을 포함하는 하나 이상의 기업 정책을 포함할 수 있다. 그 후, 상기 컴퓨팅 장치는 적어도 하나의 정책 관리 에이전트에 의해 상기 컴퓨팅 장치에서 시행하기 위한 상기 하나 이상의 기업 정책을 저장할 수 있다.
일부 실시 예에서, 상기 제1 URL을 열라는 요청을 수신하기 전에, 컴퓨팅 장치는 상기 컴퓨팅 장치의 사용자를 인증할 수 있다. 상기 컴퓨팅 장치의 상기 사용자를 인증하는 것에 기초하여, 상기 컴퓨팅 장치는 상기 컴퓨팅 장치의 상기 사용자와 연관된 하나 이상의 인증 자격 증명을 캐싱할 수 있다.
일부 실시 예에서, 상기 컴퓨팅 장치는 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 통신 인터페이스를 통해, 상기 가상화 서버에, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 송신할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 업데이트된 호스팅된 브라우저 그래픽을 수신할 수 있다. 또한, 상기 컴퓨팅 장치는 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 업데이트된 호스팅된 브라우저 그래픽을 제공할 수 있다. 경우에 따라, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신하는 것은 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력에 기초하여 탐색 전환 스택을 업데이트하는 것을 포함할 수 있다.
일부 실시 예에서, 상기 컴퓨팅 장치는 제2 URL을 열라는 요청을 수신할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 제2 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 상기 제2 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 상기 컴퓨팅 장치는 상기 가상화 서버에 의해 호스팅되는 상기 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션의 추가 인스턴스를 시작할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 수신할 수 있고, 상기 제2 호스팅된 브라우저 그래픽은 상기 제2 URL와 연관된 컨텐츠를 포함할 수 있다. 그 다음, 상기 컴퓨팅 장치는 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공할 수 있다.
일부 실시 예에서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것은 로컬 브라우저 어플리케이션의 제1 탭에 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것을 포함할 수 있고, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것은 상기 로컬 브라우저 어플리케이션의 상기 제1 탭과 상이한 상기 로컬 브라우저 어플리케이션의 제2 탭에 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것을 포함할 수 있다. 경우에 따라, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것은 상기 로컬 브라우저 어플리케이션의 상기 제1 탭에서의 제1 탐색 활동과 연관된 제1 탐색 전환 스택을 유지하는 것 및 상기 로컬 브라우저 어플리케이션의 상기 제2 탭에서의 제2 탐색 활동과 연관된 제2 탐색 전환 스택을 유지하는 것을 포함할 수 있다.
일부 실시 예에서, 상기 컴퓨팅 장치는 제3 URL을 열라는 요청을 수신할 수 있다. 그 후, 상기 컴퓨팅 장치는 상기 제3 URL이 기본적으로 지원된다고 결정할 수 있다. 상기 제3 URL이 기본적으로 지원된다고 결정하는 것에 기초하여, 상기 컴퓨팅 장치는 로컬 브라우저 어플리케이션을 사용하여 상기 제3 URL에 액세스할 수 있다.
이러한 기능들은 기타 많은 기능과 함께, 아래에서 더 상세하게 설명한다.
본원에 기술된 양상들 및 그 이점들의 보다 완전한 이해는 첨부된 도면들을 고려하여 다음의 설명을 참조함으로써 습득될 수 있으며, 첨부된 도면들에서 동일한 도면 부호들은 동일한 특징들을 나타내고, 첨부된 도면들에서:
도 1은 본원에 기술된 하나 이상의 예시적인 양상에 따라 사용될 수 있는 예시적인 컴퓨터 시스템 아키텍처를 도시한다.
도 2는 본원에 기술된 하나 이상의 예시적인 양상에 따라 사용될 수 있는 예시적인 원격-액세스 시스템 아키텍처를 도시한다.
도 3은 본원에 기술된 하나 이상의 예시적인 양상에 따라 사용될 수 있는 예시적인 가상화된 (하이퍼바이저) 시스템 아키텍처를 도시한다.
도 4는 본원에 기술된 하나 이상의 예시적인 양상에 따라 사용될 수 있는 예시적인 클라우드-기반 시스템 아키텍처를 도시한다.
도 5는 본원에 기술된 하나 이상의 예시적인 양상에 따른 예시적인 기업 모빌리티 관리 시스템을 도시한다.
도 6은 본원에 기술된 하나 이상의 예시적인 양상에 따른 또 다른 예시적인 기업 모빌리티 관리 시스템을 도시한다.
도 7 내지 도 9는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들에 통합하는 것에 관한 예들을 도시한다.
도 10은 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 방법을 도시한다.
도 11은 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하기 위한 예시적인 컴퓨팅 환경을 도시한다.
도 12a 내지 도 12f는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하기 위한 예시적인 이벤트 시퀀스를 도시한다.
도 13 및 14는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하기 위한 예시적인 그래픽 사용자 인터페이스들을 도시한다.
도 15는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 예시적인 방법을 도시한다.
다양한 실시 예에 대한 이하의 설명에서는, 상기에서 확인되고 본원의 일부분을 형성하며 본원에 기술된 양상들이 실시될 수 있는 다양한 실시 예를 예시로서 도시하는 첨부 도면들을 참조한다. 본원에 기술된 범위를 벗어나지 않고 다른 실시 예들이 이용될 수 있고 구조적 및 기능적 변경이 이루어질 수 있음을 이해해야 한다. 다양한 양상는 다른 실시 예들이 가능하고 다양한 상이한 방법으로 실시되거나 수행될 수 있다.
본원에 사용된 어구 및 전문 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안됨을 이해해야 한다. 더 정확하게는, 본원에 사용된 어구들 및 용어들에 가장 폭넓은 해석 및 의미가 부여되어야 한다. "포함하는" 및 "포함한" 그리고 어미 변형의 사용은 이후에 열거된 항목들 및 그 등가물들 뿐만 아니라 추가 항목들 및 그 등가물들도 아우르는 것으로 여겨진다. "장착된", "접속된", "연결된", "위치된", "개입된" 및 이와 유사한 용어들의 사용은 직접 및 간접 장착, 접속, 연결, 위치 및 개입을 포함하는 것으로 여겨진다.
컴퓨팅 아키텍처
컴퓨터 소프트웨어, 하드웨어 및 네트워크들은 독립, 네트워크, 원격-액세스(일명 원격 데스크톱), 가상화 및/또는 클라우드-기반 환경들을 비롯한 다양한 상이한 시스템 환경에서 활용될 수 있다. 도 1은 독립 및/또는 네트워크 환경에서 본원에 기술된 하나 이상의 예시적인 양상을 구현하는데 사용될 수 있는 시스템 아키텍처 및 데이터 처리 장치의 일례를 도시한다. 다양한 네트워크 노드(103, 105, 107 및 109)는 인터넷과 같은 광역 네트워크(WAN)(101)를 통해 상호 접속될 수 있다. 사설 인트라넷들, 회사 네트워크들, 근거리 네트워크들(LAN), 도시권 네트워크들(MAN), 무선 네트워크들, 개인 네트워크들(PAN) 등을 포함하여 다른 네트워크들이 또한 사용될 수도 있고 대안적으로 사용될 수도있다. 네트워크(101)는 예시의 목적을 위한 것이고 더 적거나 또는 추가의 컴퓨터 네트워크들로 대체될 수 있다. 근거리 네트워크는 임의의 알려진 LAN 토폴로지 중 하나 이상을 가질 수 있고 이더넷과 같은 다양한 상이한 프로토콜 중 하나 이상을 사용할 수 있다. 장치들(103, 105, 107, 109) 및 다른 장치들(도시되지 않음)은 연선, 동축 케이블, 광섬유, 전파 또는 다른 통신 매체들을 통해 하나 이상의 네트워크에 접속될 수 있다.
본원에서 사용되고 도면들에 도시될 때 "네트워크"라는 용어는 원격 저장 장치들이 하나 이상의 통신 경로를 통해 함께 연결되는 시스템들 뿐만 아니라, 때때로 연결될 수 있는 독립형 장치들, 저장 기능을 갖는 시스템들도 지칭한다. 결과적으로 "네트워크"라는 용어는 "물리적 네트워크"뿐만 아니라 모든 물리적 네트워크에 존재하는 데이터―단일 개체에서 기인하는―로 이루어지는 "컨텐츠 네트워크"도 포함한다.
구성요소들은 데이터 서버(103), 웹 서버(105) 및 클라이언트 컴퓨터들(107, 109)들 포함할 수 있다. 데이터 서버(103)는 본원에 기술되는 하나 이상의 예시적인 양상을 수행하기위한 데이터베이스들 및 제어 소프트웨어의 전반적인 액세스, 제어 및 관리를 제공한다. 데이터 서버(103)는 웹 서버(105)에 접속될 수 있으며 이를 통해 사용자들은 요청된 바와 같이 상호 작용하고 데이터를 획득한다. 대안적으로는, 데이터 서버(103)가 웹 서버 그 자체로서의 역할을하고 인터넷에 직접 접속될 수 있다. 데이터 서버(103)는 네트워크(101)(예를 들어, 인터넷)를 통해, 직접 또는 간접 접속을 통해 또는 다른 네트워크를 통해 웹 서버(105)에 접속될 수 있다. 사용자들은 원격 컴퓨터들(107, 109)을 사용하여, 예를 들어, 웹 브라우저를 사용하여 데이터 서버(103)와 상호 작용하여 웹 서버(105)에 의해 호스팅되는 하나 이상의 외부에 노출된 웹 사이트를 통해 데이터 서버(103)에 접속할 수 있다. 클라이언트 컴퓨터들(107, 109)은 데이터 서버(103)와 함께 사용되어 거기에 저장된 데이터에 액세스할 수 있거나 다른 목적들을 위해 사용될 수 있다. 예를 들어, 클라이언트 장치(107)로부터 사용자는 당업계에 공지된 바와 같이, 인터넷 브라우저를 사용하여, 또는 컴퓨터 네트워크(이를테면, 인터넷)를 통해 웹 서버(105) 및/또는 데이터 서버(103)와 통신하는 소프트웨어 어플리케이션을 실행함으로써 웹 서버(105)에 액세스할 수 있다.
서버들 및 어플리케이션들은 동일한 물리적 기계들 상에서 조합될 수 있고, 별도의 가상 또는 논리 어드레스들을 보유하거나, 별도의 물리적 기계들 상에 존재할 수 있다. 도 1은 사용될 수 있는 네트워크 아키텍처의 단지 일례를 도시하고, 당업자들은 사용되는 특정 네트워크 아키텍처 및 데이터 처리 장치들이 다양할 수 있으며, 본원에 추가로 기술될 바와 같이, 그것들이 제공하는 기능에 뒤따른다는 것을 인식 할 것이다 . 예를 들어, 웹 서버(105) 및 데이터 서버(103)에 의해 제공되는 서비스들이 단일 서버 상에서 조합될 수 있다.
각 구성요소(103, 105, 107, 109)는 임의의 유형의 공지된 컴퓨터, 서버 또는 데이터 처리 장치일 수 있다. 예를 들어, 데이터 서버(103)는 데이터 서버(103)의 전체 동작을 제어하는 프로세서(111)를 포함할 수 있다. 데이터 서버(103)는 랜덤 액세스 메모리(RAM)(113), 판독 전용 메모리(ROM)(115), 네트워크 인터페이스(117), 입력/출력 인터페이스(119)(예를 들어, 키보드, 마우스, 디스플레이, 프린터 등) 및 메모리(121)를 더 포함할 수 있다. 입력/출력(I/O)(119)은 데이터 또는 파일들의 판독, 기록, 디스플레이 및/또는 프린트를 위한 다양한 인터페이스 유닛 및 드라이브를 포함할 수 있다. 또한 메모리(121)는 데이터 처리 장치(103)의 전체 동작을 제어하기 위한 운영 체제 소프트웨어(123), 데이터 서버(103)에 본원에 기술된 양상들을 수행할 것을 지시하는 제어 로직(125) 및 보조, 지원 및/또는 본원에 기술된 양상들과 함께 사용될 수 있거나 사용되지 않을 수 있는 기타 기능을 제공하는 기타 어플리케이션 소프트웨어(127)를 저장할 수 있다. 제어 로직은 본원에서 데이터 서버 소프트웨어(125)로도 지칭될 수 있다. 데이터 서버 소프트웨어의 기능은 제어 로직에 코딩된 규칙들에 기반하여 자동으로, 사용자가 시스템에 입력을 제공함으로써 수동으로 그리고/또는 사용자 입력(예를 들어, 질의들, 데이터 업데이트들 등)에 기반한 자동 처리의 조합으로 이루어지는 동작들 또는 결정들을 지칭할 수 있다.
또한 메모리(121)는 제1 데이터베이스(129) 및 제2 데이터베이스(131)를 포함하여, 본원에 기술된 하나 이상의 양상의 수행에 사용되는 데이터를 저장할 수 있다. 일부 실시 예에서, 제1 데이터베이스는 제2 데이터베이스를 포함할 수 있다(예를 들어, 별도의 테이블, 리포트 등으로서). 즉, 정보는 시스템 설계에 따라, 단일 데이터베이스에 저장하거나, 상이한 논리, 가상 또는 물리적 데이터베이스로 나뉠 수 있다. 장치들(105, 107, 109)은 장치(103)에 대하여 기술된 것과 유사하거나 상이한 아키텍처들을 가질 수 있다. 당업자들은 예를 들어, 처리 부하를 다수의 컴퓨터에 걸쳐 분산시키기 위해, 지리적 위치, 사용자 액세스 수준, 서비스 품질(QoS) 등에 기반하여 트랜잭션들을 구분하기 위해, 본원에 기술된 바와 같은 데이터 처리 장치(103)(또는 장치(105, 107, 109))의 기능이 다수의 데이터 처리 장치에 걸쳐 나눠질 수 있음을 이해할 것이다.
하나 이상의 양상은 하나 이상의 컴퓨터 또는 본원에 기술된 다른 장치들에 의해 실행되는 하나 이상의 프로그램 모듈과 같은 컴퓨터 사용 가능한 또는 판독 가능한 데이터 및/또는 컴퓨터 실행 가능한 명령들로 구체화될 수 있다. 일반적으로, 프로그램 모듈들은 컴퓨터 또는 다른 장치의 프로세서에 의해 실행될 때 특정 작업들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 구성요소들, 데이터 구조들 등을 포함한다. 모듈들은 실행을 위해 컴파일링될 소스 코드 프로그래밍 언어로 작성되거나, 하이퍼텍스트 마크업 언어(HTML, HyperText Markup Language) 또는 확장성 마크업 언어(XML, Extensible Markup Language)와 같은(이에 제한되지는 않지만) 스크립팅 언어로 작성될 수 있다. 컴퓨터 실행 가능한 명령들은 비 휘발성 저장 장치와 같은 컴퓨터 판독 가능한 매체들 상에 저장될 수 있다. 하드 디스크들, CD-ROM들, 광학 저장 장치들, 자기 저장 장치들 및/또는 이들의 임의의 조합을 포함하여, 임의의 적합한 컴퓨터 판독 가능한 저장 매체들이 활용될 수 있다. 또한, 본원에 기술된 바와 같은 데이터 또는 이벤트들을 나타내는 다양한 전송(비-저장) 매체는 금속선, 광섬유 및/또는 무선 전송 매체들(예를 들어, 공기 및/또는 공간)과 같은 신호-전도 매체들을 통해 이동하는 전자기파들의 형태로 출발지와 목적지 간에 전송될 수 있다. 본원에 기술된 다양한 양상는 방법, 데이터 처리 시스템 또는 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 따라서, 다양한 기능이 소프트웨어, 펌웨어 및/또는 하드웨어 또는 집적 회로들, 필드 프로그램 가능 게이트 어레이들(FPGA) 등과 같은 하드웨어 등가물들에서 전체적으로 또는 부분적으로 구체화될 수 있다. 특정 데이터 구조들이 사용되어 본원에 기술에 기술된 하나 이상의 양상을 보다 효과적으로 구현할 수 있고, 그러한 데이터 구조들은 본원에 기술된 컴퓨터 실행 가능한 명령들 및 컴퓨터 사용 가능한 데이터의 범위 내인 것으로 고려된다.
도 2를 더 참조하면, 본원에서 기술되는 하나 이상의 양상가 원격-액세스 환경에서 구현될 수 있다. 도 2는 본원에 기술된 하나 이상의 예시적인 양상에 따라 사용될 수 있는 예시적인 컴퓨팅 환경(200)에 컴퓨팅 장치(201)를 포함하는 예시적인 시스템 아키텍처를 도시한다. 컴퓨팅 장치(201)는 클라이언트 액세스 장치들에 가상 기계들을 제공하도록 구성된 단일 서버 또는 다중 서버 데스크탑 가상화 시스템(예를 들어, 원격 액세스 또는 클라우드 시스템)에서 서버(206a)로서 사용될 수 있다. 컴퓨팅 장치(201)는 RAM(205), ROM(207), I/O 모듈(209) 및 메모리(215)를 포함하여, 서버 및 그와 관련된 구성요소들의 전체 동작을 제어하기 위한 프로세서(203)를 가질 수 있다.
I/O 모듈(209)은 컴퓨팅 장치(201)의 사용자가 입력을 제공할 수 있는 마우스, 키패드, 터치 스크린, 스캐너, 광학 판독기 및/또는 스타일러스(또는 다른 입력 장치(들))를 포함할 수 있고, 또한 청각 출력을 제공하기위한 스피커 및 텍스트, 시청각 및/또는 그래픽 출력을 제공하기 위한 비디오 디스플레이 장치도 포함할 수 있다. 소프트웨어는 메모리(215) 및/또는 다른 저장 장치 내에 저장되어 본원에 기술된 바와 같은 다양한 기능을 수행하기 위해 컴퓨팅 장치(201)를 특수 목적 컴퓨팅 장치로 구성하기 위한 명령들을 프로세서(203)에 제공할 수 있다. 예를 들어, 메모리(215)는 운영 체제(217), 어플리케이션 프로그램(219) 및 관련 데이터베이스(221)와 같이, 컴퓨팅 장치(201)에 의해 사용되는 소프트웨어를 저장할 수 있다.
컴퓨팅 장치(201)는 단말들(240)(클라이언트 장치들이라고도하는)과 같은 하나 이상의 원격 컴퓨터에의 접속을 지원하는 네트워크 환경에서 작동될 수 있다. 단말들(240)은 컴퓨팅 장치(103 또는 201)에 대하여 상술한 많은 또는 모든 요소를 포함하는 개인 컴퓨터들, 모바일 장치들, 랩탑 컴퓨터들, 태블릿들 또는 서버들일 수 있다. 도 2에 도시된 네트워크 접속은 근거리 네트워크(LAN)(225) 및 광역 네트워크(WAN)(229)를 포함하지만, 또한 다른 네트워크들을 포함할 수도 있다. LAN 네트워킹 환경에서 사용될 때, 컴퓨팅 장치(201)는 네트워크 인터페이스 또는 어댑터(223)를 통해 LAN(225)에 접속될 수 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨팅 장치(201)는 컴퓨터 네트워크(230)(예를 들어, 인터넷)와 같은 WAN(229)을 통한 통신을 수립하기 위한 모뎀(227) 또는 다른 광역 네트워크 인터페이스를 포함할 수 있다. 도시된 네트워크 접속은 예시적인 것이고 컴퓨터 들간의 통신 링크를 수립하는 다른 수단이 사용될 수 있음이 이해될 것이다. 또한 컴퓨팅 장치(201) 및/또는 단말들(240)은 배터리, 스피커 및 안테나(도시되지 않음)와 같은 다양한 다른 구성요소를 포함하는 모바일 단말들(예를 들어, 모바일 전화기들, 스마트 전화기들, 개인 정보 단말기들(PDA))일 수도 있다.
또한 본원에 기술된 양상들은 다수의 다른 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성과 운용될 수도 있다. 본원에 기술된 양상들과 함께 사용하기에 적합할 수 있는 다른 컴퓨팅 시스템들, 환경들 및/또는 구성들의 예들은 개인 컴퓨터들, 서버 컴퓨터들, 핸드-헬드 또는 랩탑 장치들, 멀티 프로세서 시스템들, 마이크로 프로세서-기반 시스템들, 셋탑 박스들, 프로그램 가능한 가전 제품들, 네트워크 개인 컴퓨터들(PC), 미니 컴퓨터들, 메인 프레임 컴퓨터들, 상기한 시스템들 또는 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경들 등을 포함할 수 있지만 이들에 제한되지는 않는다.
도 2에 도시된 바와 같이, 하나 이상의 클라이언트 장치(240)는 하나 이상의 서버(206a-206n)("서버(206)"로 총칭됨)와 통신할 수 있다. 일 실시 예에서, 컴퓨팅 환경(200)은 서버(들)(206)와 클라이언트 기계(들)(240) 간에 구비되는 네트워크 어플라이언스를 포함할 수 있다. 네트워크 어플라이언스는 클라이언트/서버 접속을 관리할 수 있고, 경우에 따라서는 복수의 백엔드 서버(206)간에 클라이언트 접속 부하가 균등하게 할 수 있다.
클라이언트 기계(들)(240)은 일부 실시 예에서 단일 클라이언트 기계(240) 또는 클라이언트 기계들의 단일 그룹(240)으로 지칭될 수 있는 한편, 서버(들)(206)은 단일 서버(206) 또는 서버들의 단일 그룹(206)으로 지칭될 수 있다. 일 실시 예에서, 단일 클라이언트 기계(240)는 하나보다 많은 서버(206)와 통신하는 한편, 다른 실시 예에서는 단일 서버(206)가 하나보다 많은 클라이언트 기계(240)과 통신한다. 또 다른 실시 예에서, 단일 클라이언트 기계(240)는 단일 서버(206)와 통신한다.
클라이언트 기계(240)는 일부 실시 예에서, 다음과 같은 비한정적인 용어들 중 임의의 용어로 언급될 수 있다: 클라이언트 기계(들); 클라이언트(들); 클라이언트 컴퓨터(들); 클라이언트 장치(들); 클라이언트 컴퓨팅 장치(들); 로컬 기계; 원격 기계; 클라이언트 노드(들); 또는 종단점(들); 또는 종단점 노드(들). 서버(206)는 일부 실시 예에서, 다음과 같은 비한정적인 용어들 중 임의의 용어로 언급될 수 있다: 서버(들), 로컬 기계; 원격 기계; 서버 팜(들), 또는 호스트 컴퓨팅 장치(들).
일 실시 예에서, 클라이언트 기계(240)는 가상 기계일 수 있다. 가상 기계는 임의의 가상 기계일 수 있는 한편, 일부 실시 예에서 가상 기계는 유형 1 또는 유형 2 하이퍼바이저, 예를 들어, 시트릭스 시스템들(Citrix Systems), IBM, VM웨어(VMware) 또는 임의의 다른 하이퍼바이저에 의해 개발된 하이퍼바이저에 의해 관리되는 임의의 가상 기계일 수 있다. 일부 양상에서, 가상 기계는 하이퍼바이저에 의해 관리될 수 있는 한편, 양상들에서, 가상 기계는 서버(206) 에서 실행되는 하이퍼바이저 또는 클라이언트(240) 상에서 실행되는 하이퍼바이저에 의해 관리될 수 있다.
일부 실시 예는 서버(206) 또는 다른 원격 위치된 기계 상에서 원격으로 실행되는 어플리케이션에 의해 생성되는 어플리케이션 출력을 디스플레이하는 클라이언트 장치(240)를 포함한다. 이러한 실시 예들에서, 클라이언트 장치(240)는 어플리케이션 창, 브라우저 또는 다른 출력 창에 출력을 디스플레이하기 위해 가상 기계 수신기 프로그램 또는 어플리케이션을 실행할 수 있다. 하나의 예에서, 어플리케이션은 데스크탑인 한편, 다른 예들에서 어플리케이션은 데스크탑을 생성 또는 제공하는 어플리케이션이다. 데스크탑은 로컬 및/또는 원격 어플리케이션들이 통합될 수 있는 운영 체제의 인스턴스에 사용자 인터페이스를 제공하는 그래픽 셸을 포함할 수 있다. 본원에서 사용될 때, 어플리케이션들은 운영 체제의 인스턴스(그리고, 선택적으로, 또한 데스크탑)가 로딩된 후 실행되는 프로그램들이다.
서버(206)는 일부 실시 예에서, 원격 표현 프로토콜 또는 다른 프로그램을 사용하여 서버(206)상에서 실행되는 어플리케이션에 의해 생성되는 디스플레이 출력을 제공하기 위해 클라이언트 상에서 실행되는 신 클라이언트(thin-client) 또는 원격 디스플레이 어플리케이션으로 데이터를 송신한다. 신 클라이언트 또는 원격 디스플레이 프로토콜은 다음과 같은 비한정적인 프로토콜 목록 중 임의의 프로토콜일 수 있다: 플로리다주, 포트로더데일의 Citrix Systems, Inc.에서 개발한 ICA(Independent Computing Architectur) 프로토콜 또는 워싱턴, 레드몬드의 Microsoft Corporation에서 제조한 원격 데스크톱 프로토콜(RDP).
원격 컴퓨팅 환경은 서버들(206a-206n)이 예를 들어, 클라우드 컴퓨팅 환경에서 서버 팜(206)으로 논리적으로 함께 그룹화되도록 하나보다 많은 서버(206a-206n)를 포함할 수 있다. 서버 팜(206)은 지리적으로 분산되는 한편 논리적으로는 함께 그룹화되는 서버들(206) 또는 서로 근접하여 위치되며 논리적으로 함께 그룹화되는 서버들(206)을 포함할 수 있다. 서버 팜(206) 내의 지리적으로 분산된 서버들(206a-206n)은 일부 실시 예에서, WAN(광역), MAN(도시권) 또는 LAN(근거리)을 사용하여 통신할 수 있으며, 이때 상이한 지리적 지역들은: 상이한 대륙들; 한 대륙의 상이한 지역들; 상이한 나라들; 상이한 주들; 상이한 도시들; 상이한 캠퍼스들; 상이한 방들; 또는 선행하는 지리적 장소들의 임의의 조합으로 특성화될 수 있다. 일부 실시 예에서, 서버 팜(206)은 단일 개체로서 관리될 수 있는 한편, 다른 실시 예들에서는 서버 팜(206)이 다수의 서버 팜을 포함할 수 있다.
일부 실시 예에서, 서버 팜은 실질적으로 유사한 유형의 운영 체제플랫폼(예를 들어, WINDOWS, UNIX, LINUX, iOS, ANDROID, SYMBIAN 등)을 실행하는 서버들(206)을 포함할 수 있다. 다른 실시 예들에서, 서버 팜(206)은 제1 유형의 운영 체제플랫폼을 실행하는 하나 이상의 서버의 제1 그룹 및 제2 유형의 운영 체제 플랫폼을 실행하는 하나 이상의 서버의 제2 그룹을 포함할 수 있다.
서버(206)는 필요에 따라, 예를 들어, 파일 서버, 어플리케이션 서버, 웹 서버, 프록시 서버, 어플라이언스, 네트워크 어플라이언스, 게이트웨이, 어플리케이션 게이트웨이, 게이트웨이 서버, 가상화 서버, 배포 서버, 보안 소켓 계층(SSL, Secure Sockets Layer) VPN 서버, 방화벽, 웹 서버, 어플리케이션 서버와 같은 임의의 유형의 서버로서 또는 마스터 어플리케이션 서버, 액티브 디렉터리를 실행하는 서버 또는 방화벽 기능, 어플리케이션 기능 또는부하 균형 조정 기능을 제공하는 어플리케이션 가속 프로그램을 실행하는 서버로서 구성될 수 있다. 또한 다른 서버 유형들도 사용할 수 있다.
일부 실시 예는 클라이언트 기계(240)로부터 요청들을 수신하고, 요청을 제2 서버(206b)로 전송하며, 제2 서버(206b)로부터의 응답으로 클라이언트 기계(240)에 의해 생성된 요청에 응답하는 제1 서버(206a)를 포함한다. 제1 서버(206a)는 클라이언트 기계(240)가 이용 가능한 어플리케이션 목록에 더하여 어플리케이션 목록 내에서 식별되는 어플리케이션을 호스팅하는 어플리케이션 서버(206)와 연관된 어드레스 정보로서 획득할 수 있다. 그 다음, 제1 서버(206a)는 웹 인터페이스를 사용하여 클라이언트의 요청에 대한 응답을 제공할 수 있고, 클라이언트(240)와 직접 통신하여 클라이언트(240)에 식별된 어플리케이션에 대한 액세스 권한을 제공할 수 있다. 하나 이상의 클라이언트(240) 및/또는 하나 이상의 서버(206)는 네트워크(230), 예를 들어 네트워크(101)를 통해 데이터를 송신할 수 있다.
도 3은 예시적인 데스크탑 가상화 시스템의 상위 수준 아키텍처를 도시한다. 도시된 바와 같이, 데스크탑 가상화 시스템은 가상 데스크탑들 및/또는 가상 어플리케이션들을 하나 이상의 클라이언트 액세스 장치(240)에 제공하도록 구성된 적어도 하나의 가상화 서버(301)를 포함하여, 단일 서버 또는 다중 서버 시스템 또는 클라우드 시스템일 수 있다. 본원에서 사용될 때, 데스크탑은 하나 이상의 어플리케이션이 호스팅 및/또는 실행될 수 있는 그래픽 환경 또는 공간을 지칭한다. 데스크탑은 로컬 및/또는 원격 어플리케이션들이 통합될 수 있는 운영 체제의 인스턴스에 사용자 인터페이스를 제공하는 그래픽 셸을 포함할 수 있다. 어플리케이션들에는 운영 체제의 인스턴스(그리고, 선택적으로, 또한 데스크탑)가 로딩된 후 실행되는 프로그램들이 포함될 수 있다. 운영 체제의 각 인스턴스는 물리적(예를 들어, 장치 마다 하나의 운영 체제) 또는 가상(예를 들어, 단일 장치 상에서 실행되는 많은 OS 인스턴스)일 수 있다. 각 어플리케이션은 로컬 장치 상에서 실행되거나 원격 위치된 장치(예를 들어, 원격) 상에서 실행될 수 있다.
컴퓨터 장치(301)는 가상화 환경, 예를 들어, 단일 서버, 다중 서버 또는 클라우드 컴퓨팅 환경에서 가상화 서버로서 구성될 수 있다. 도 3에 도시된 가상화 서버(301) 도 2에 도시된 서버(206)의 하나 이상의 실시 예에 의해 또는 다른 공지된 컴퓨팅 장치에 의해 배치 및/또는 구현될 수 있다. 가상화 서버(301)에는 하나 이상의 물리적 디스크(304), 하나 이상의 물리적 장치(306), 하나 이상의 물리적 프로세서(308) 및 하나 이상의 물리적 메모리(316)를 포함할 수 있는 하드웨어 계층이 포함된다. 일부 실시 예에서, 펌웨어(312)는 물리적 메모리(316)의 기억 소자 내에 저장될 수 있고 물리적 프로세서들의 하나 이상(308)에 의해 실행될 수 있다. 가상화 서버(301)는 물리적 메모리(316)의 기억 소자에 저장될 수 있고 물리적 프로세서들의 하나 이상(308)에 의해 실행될 수 있는 운영 체제(314)를 더 포함할 수 있다. 더 나아가, 하이퍼바이저(302)는 물리적 메모리(316) 의 기억 소자에 저장될 수 있고 물리적 프로세서들의 하나 이상(308)에 의해 실행될 수 있다.
물리적 프로세서들의 하나 이상(308) 상에서 실행되는 것은 하나 이상의 가상 기계(332A-C)(총괄하여 332)일 수 있다. 각각의 가상 기계(332)는 가상 디스크(326A-C) 및 가상 프로세서(328A-C)를 가질 수 있다. 일부 실시 예에서, 제1 가상 기계(332A)는 가상 프로세서(328A)를 사용하여, 툴 스택(324)을 포함하는 제어 프로그램(320)을 실행할 수 있다. 제어 프로그램(320)은 제어 가상 기계, Dom0, 도메인 0, 또는 시스템 관리 및/또는 제어를 위해 사용되는 다른 가상 기계로 지칭될 수 있다. 일부 실시 예에서, 하나 이상의 가상 기계(332B-C)는 가상 프로세서(328B-C)를 사용하여, 게스트 운영 체제(330A-B)를 실행할 수 있다.
가상화 서버(301)는 가상화 서버(301)와 통신하는 하드웨어의 하나 이상의 장치를 갖는 하드웨어 계층(310)을 포함할 수 있다. 일부 실시 예에서, 하드웨어 계층(310)은 하나 이상의 물리적 디스크(304), 하나 이상의 물리적 장치(306), 하나 이상의 물리적 프로세서(308) 및 하나 이상의 메모리(216)를 포함할 수 있다. 물리적 구성요소들(304, 306, 308 및 316)은 예를 들어, 상술한 구성요소들 중 임의의 것을 포함할 수 있다. 물리적 장치들(306)은 예를 들어, 네트워크 인터페이스 카드, 비디오 카드, 키보드, 마우스, 입력 장치, 모니터, 디스플레이 장치, 스피커들, 광학식 드라이브, 저장 장치, USB 접속부, 프린터, 스캐너, 네트워크 요소(예를 들어, 라우터, 방화벽, 네트워크 어드레스 변환기,로드 밸런서, 가상 사설 네트워크(VPN) 게이트웨이, 동적 호스트 구성 프로토콜(DHCP, Dynamic Host Configuration Protocol) 라우터 등) 또는 가상화 서버(301)에 접속되거나 그것과 통신하는 임의의 장치를 포함할 수 있다. 하드웨어 계층(310)의 물리적 메모리(316)는 임의의 유형의 메모리를 포함할 수 있다. 물리적 메모리(316)는 데이터를 저장할 수 있고, 일부 실시 예에서는 하나 이상의 프로그램 또는 실행 가능한 명령 집합을 저장할 수 있다. 도 3은 펌웨어(312)가 가상화 서버(301)의 물리적 메모리(316) 내에 저장되는 실시 예를 도시한다. 물리적 메모리(316)에 저장된 프로그램들 또는 실행 가능한 명령들은 가상화 서버(301)의 하나 이상의 프로세서(308)에 의해 실행될 수 있다.
또한 가상화 서버(301)는 하이퍼바이저(302)를 포함할 수 있다. 일부 실시 예에서, 하이퍼바이저(302)는 임의의 수의 가상 기계(332)를 생성 및 관리하기 위해 가상화 서버(301)상의 프로세서들(308)에 의해 실행되는 프로그램일 수 있다. 하이퍼바이저(302)는 가상 기계 모니터 또는 플랫폼 가상화 소프트웨어로 지칭될 수 있다. 일부 실시 예에서, 하이퍼바이저(302)는 컴퓨팅 기계 상에서 실행되는 가상 기계들을 모니터링하는 실행 가능한 명령들 및 하드웨어의 임의의 조합일 수 있다. 하이퍼바이저(302)는 가상화 서버(301) 상에서 실행되는 운영 체제(314) 내에서 실행되는 하이퍼바이저인 유형 2 하이퍼바이저일 수 있다. 그 다음, 가상 기계들은 하이퍼바이저 위의 수준에서 실행된다. 일부 실시 예에서, 유형 2 하이퍼바이저는 사용자의 운영 체제의 콘텍스트 내에서 실행되어 유형 2 하이퍼바이저가 사용자의 운영 체제와 상호 작용하게 된다. 다른 실시 예들에서, 가상화 환경의 하나 이상의 가상화 서버(301)는 대신 유형 1 하이퍼바이저(도시되지 않음)를 포함할 수 있다. 유형 1 하이퍼바이저는 하드웨어 계층(310) 내의 하드웨어 및 자원들에 직접 액세스함으로써 가상화 서버(301) 상에서 실행될 수 있다. 즉, 유형 2 하이퍼바이저(302)는 도시된 바와 같이, 호스트 운영 체제(314)를 통해 시스템 자원들에 액세스하는 한편, 유형 1 하이퍼바이저는 호스트 운영 체제(314)없이 모든 시스템 자원에 직접 액세스할 수 있다. 유형 1 하이퍼바이저는 가상화 서버(301)의 하나 이상의 물리적 프로세서(308) 상에서 직접 실행될 수 있고, 물리적 메모리(316)에 저장된 프로그램 데이터를 포함할 수 있다.
하이퍼바이저(302)는 일부 실시 예에서, 시스템 자원들에 직접 액세스할 수 있는 운영 체제(330) 또는 제어 프로그램(320)을 시뮬레이션하는 임의의 방식으로 가상 기계들(332)상에서 실행되는 운영 체제들(330) 또는 제어 프로그램들(320)에 가상 자원들을 제공할 수 있다. 시스템 자원들은 물리적 장치들(306), 물리적 디스크들(304), 물리적 프로세서들(308), 물리적 메모리(316) 및 가상화 서버(301) 하드웨어 계층(310)에 포함된 임의의 다른 구성요소를 포함할 수 있지만, 이에 제한되지는 않는다. 하이퍼바이저(302)는 가상 하드웨어를 에뮬레이트하고, 물리적 하드웨어를 분할하고, 물리적 하드웨어를 가상화하고/하거나 컴퓨팅 환경들에 액세스할 수 있는 가상 기계들을 실행하기 위해 사용될 수 있다. 또 다른 실시 예들에서, 하이퍼바이저(302)는 가상화 서버(301)상에서 실행되는 가상 기계(332)에 대한 프로세서 스케줄링 및 메모리 분할을 제어한다. 하이퍼바이저(302)는 캘리포니아주, 팰로앨토의 VMWare, Inc.에서 제조한 것들, XENPROJECT 하이퍼바이저, 오픈 소스 XenProject.org 커뮤니티가 개발을 감독하는 오픈 소스 제품; Microsoft가 제공하는 HyperV, VirtualServer 또는 가상 PC 하이퍼바이저들 등을 포함할 수 있다. 일부 실시 예에서, 가상화 서버(301)는 게스트 운영 체제들이 실행될 수 있는 가상 기계 플랫폼을 생성하는 하이퍼바이저(302)를 실행한다. 이러한 실시 예들에서, 가상화 서버(301)는 호스트 서버로 지칭될 수 있다. 그러한 가상화 서버의 예는 플로리다주 포트로더데일의 Citrix Systems, Inc.이 제공하는 XENSERVER이다.
하이퍼바이저(302)는 게스트 운영 체제(330)가 실행되는 하나 이상의 가상 기계(332B-C)(총괄하여 332)를 생성할 수 있다. 일부 실시 예에서, 하이퍼바이저(302)는 가상 기계 이미지를 로딩하여 가상 기계(332)를 생성할 수 있다. 다른 실시 예들에서, 하이퍼바이저(302)는 가상 기계(332) 내의 게스트 운영 체제(330)를 실행할 수 있다. 또 다른 실시 예들에서, 가상 기계(332)는 게스트 운영 체제(330)를 실행할 수 있다.
하이퍼바이저(302)는 가상 기계(332)를 생성하는 것 외에, 적어도 하나의 가상 기계(332)의 실행을 제어할 수 있다. 다른 실시 예들에서, 하이퍼바이저(302)는 가상화 서버(301)에 의해 제공되는 적어도 하나의 하드웨어 자원(예를 들어, 하드웨어 계층(310) 내에서 이용 가능한 임의의 하드웨어 자원)을 추상화하는 적어도 하나의 가상 기계(332)를 제공할 수 있다. 다른 실시 예들에서, 하이퍼바이저(302)는 가상 기계들(332)이 가상화 서버(301)에서 이용 가능한 물리적 프로세서들(308)에 액세스하는 방식을 제어할 수 있다. 물리적 프로세서들(308)에 대한 액세스를 제어하는 것은 가상 기계(332)가 프로세서(308)에 액세스할 수 있어야 하는지 여부 그리고 물리적 프로세서 성능들이 가상 기계(332)에 어떻게 제공되는지를 결정하는 것을 포함할 수 있다.
도 3에 도시된 바와 같이, 가상화 서버(301)는 하나 이상의 가상 기계(332)를 호스팅하거나 실행할 수 있다. 가상 기계(332)는 프로세서(308)에 의해 실행될 때, 가상 기계(332)가 물리적 컴퓨팅 장치와 매우 유사한 프로그램들 및 프로세스들을 실행할 수 있도록 물리적 컴퓨터의 동작을 모방하는 실행 가능한 명령 집합이다. 도 3은 가상화 서버(301)가 세 개의 가상 기계(332)를 호스팅하는 실시 예를 도시하지만, 다른 실시 예들에서 가상화 서버(301)는 임의의 수의 가상 기계(332)를 호스팅할 수 있다. 하이퍼바이저(302)는 일부 실시 예에서, 가상 기계(332)에 이용 가능한 물리적 하드웨어, 메모리, 프로세서 및 다른 시스템 자원들의 고유한 가상화 뷰를 각 가상 기계(332)에 제공한다. 일부 실시 예에서, 고유한 가상화 뷰는 가상 기계 허가, 하나 이상의 가상 기계 식별자에 대한 정책 엔진의 어플리케이션, 가상 기계에 액세스하는 사용자, 가상 기계 상에서 실행되는 어플리케이션들, 가상 기계에 의해 액세스된 네트워크들 또는 임의의 다른 바람직한 기준들 중 하나 이상에 기반할 수 있다. 예를 들어, 하이퍼바이저(302)는 하나 이상의 비보안 가상 기계(332) 및 하나 이상의 보안 가상 기계(332)를 생성할 수 있다. 비보안 가상 기계들(332)은 가상 기계들(332)이 액세스하는 것이 허가될 수 있는 자원들, 하드웨어, 메모리 위치들 및 프로그램들에 액세스하는 것이 금지될 수 있다. 다른 실시 예들에서, 하이퍼바이저(302)는 가상 기계들(332)이 이용 가능한 물리적 하드웨어, 메모리, 프로세서 및 다른 시스템 자원의 실질적으로 유사한 가상화 뷰를 각 가상 기계(332)에 제공할 수 있다.
각 가상 기계(332)는 가상 디스크(326A-C)(총괄하여 326) 및 가상 프로세서(328A-C)(총괄하여로 328)를 포함할 수 있다. 가상 디스크(326)는 일부 실시 예에서, 가상화 서버(301)의 하나 이상의 물리적 디스크(304) 또는 가상화 서버(301)의 하나 이상의 물리적 디스크(304)의 일부분의 가상화된 뷰이다. 물리적 디스크들(304)의 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시 예에서, 하이퍼바이저(302)는 각 가상 기계(332)에 물리적 디스크들(304)의 고유한 뷰를 제공한다. 따라서, 이러한 실시 예들에서, 각 가상 기계(332)에 포함되는 특정 가상 디스크(326)는 다른 가상 디스크들(326)과 비교할 때 고유할 수 있다.
가상 프로세서(328)는 가상화 서버(301)의 하나 이상의 물리적 프로세서(308)의 가상화된 뷰일 수 있다. 일부 실시 예에서, 물리적 프로세서들(308)의 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시 예에서, 가상 프로세서(328)는 적어도 하나의 물리적 프로세서(308)의 실질적으로 모든 동일한 특성을 갖는다. 다른 실시 예들에서, 가상 프로세서(308)는 가상 프로세서(328)의 특성들의 적어도 일부가 대응하는 물리적 프로세서(308)의 특성들과 상이하도록 물리적 프로세서들(308)의 수정된 뷰를 제공한다.
도 4를 더 참조하면, 본원에 기술되는 일부 양상이 클라우드 기반 환경에서 구현될 수 있다. 도 4는 클라우드 컴퓨팅 환경(또는 클라우드 시스템)(400)의 일례를 도시한다. 도 4에 보여지는 바와 같이, 클라이언트 컴퓨터들(411-414)은 클라우드 시스템의 컴퓨팅 자원들(예를 들어, 호스트 서버들(403), 저장 장치 자원들(404) 및 네트워크 자원들(405))에 액세스하기 위해 클라우드 관리 서버(410)와 통신할 수 있다.
관리 서버(410)는 하나 이상의 물리적 서버 상에 구현될 수 있다. 관리 서버 (410)는 다른 것들 중에서도, 예를 들어, 플로리다주, 포트로더데일의 Citrix Systems, Inc.에 의한 CLOUDPLATFORM, 또는 OPENSTACK을 실행시킬 수 있다. 관리 서버(410)는 클라우드 하드웨어 및 소프트웨어 자원들, 예를 들어, 호스트 컴퓨터들(403), 데이터 저장 장치들(404) 및 네트워킹 장치들(405)을 포함하여, 다양한 컴퓨팅 자원을 관리할 수 있다. 클라우드 하드웨어 및 소프트웨어 자원들에는 개인 및/또는 공용 구성요소들이 포함될 수 있다. 예를 들어, 클라우드는 하나 이상의 특정 고객 또는 클라이언트 컴퓨터(411-414)에 의해 그리고/또는 사설 네트워크를 통해 사용되는 개인 클라우드로서 구성될 수 있다. 다른 실시 예들에서, 공용 클라우드들 또는 하이브리드 공용-사설 클라우드들은 개방형 또는 하이브리드형 네트워크들을 통해 다른 고객들에 의해 사용될 수 있다.
관리 서버(410)는 클라우드 운영자들 및 클라우드 고객들이 클라우드 시스템과 상호 작용할 수 있는 사용자 인터페이스들을 제공하도록 구성될 수 있다. 예를 들어, 관리 서버(410)는 클라우드 운영자들이 클라우드 자원들을 관리, 가상화 계층을 구성, 고객 계정들을 관리, 그리고 기타 클라우드 관리 작업들을 수행할 수 있게 하기 위해 어플리케이션 프로그래밍 인터페이스(API) 및/또는 하나 이상의 클라우드 운영자 콘솔 어플리케이션(예를 들어, 독립형 어플리케이션들 상의 웹 기반) 집합에 사용자 인터페이스들을 제공할 수 있다. 또한 관리 서버(410)는 클라이언트 컴퓨터들(411-414)을 통해 최종 사용자들로부터 클라우드 컴퓨팅 요청들, 예를 들어, 클라우드 내 가상 기계들을 생성, 수정 또는 파기하라는 요청들을 수신하도록 구성된 사용자 인터페이스들을 갖는 API 및/또는 하나 이상의 고객 콘솔 어플리케이션 집합을 포함할 수 있다. 클라이언트 컴퓨터들(411 내지 414)은 인터넷 또는 다른 통신 네트워크를 통해 관리 서버(410)에 접속할 수 있고, 관리 서버(410)에 의해 관리되는 컴퓨팅 자원들의 하나 이상에 대한 액세스를 요청할 수 있다. 관리 서버(410)는 클라이언트 요청들에 응답하여, 클라이언트 요청들을 기반으로 클라우드 시스템의 하드웨어 계층에서 물리적 자원을 선택 및 프로비저닝하도록 구성된 자원 관리자를 포함할 수 있다. 예를 들어, 관리 서버(410) 및 클라우드 시스템의 추가 구성요소들은 네트워크(예를 들어, 인터넷)를 통해, 컴퓨터 자원들, 데이터 저장 서비스들, 네트워킹 성능들 및 컴퓨터 플랫폼 및 어플리케이션 지원을 고객들에 제공하는, 클라이언트 컴퓨터들(411-414)의 고객들에 대해 가상 기계들 및 그것들의 운영 환경들(예를 들어, 하이퍼바이저들, 저장 장치 자원들, 네트워크 요소들에 의해 제공되는 서비스들 등)을 프로비저닝, 생성 및 관리하도록 구성될 수 있다. 또한 클라우드 시스템들은 보안 시스템들, 개발 환경들, 사용자 인터페이스들 등을 비롯하여, 다양한 특정 서비스를 제공하도록 구성될 수 있다.
특정 클라이언트들(411-414), 예를 들어, 동일한 최종 사용자 또는 동일한 회사 또는 조직과 제휴된 상이한 사용자들을 위한 가상 기계들을 생성하는 상이한 클라이언트 컴퓨터들이 관련될 수 있다. 다른 예들에서, 특정 클라이언트들(411-414), 이를테면 상이한 회사들 또는 조직들과 제휴한 사용자들은 관련되지 않을 수 있다. 관련이 없는 클라이언트들의 경우, 임의의 한 사용자의 가상 기계들 또는 저장 장치 상의 정보가 다른 사용자들에게 숨겨져 있을 수 있다.
이제 클라우드 컴퓨팅 환경의 물리적 하드웨어 계층을 참조하면, 가용 존들(401 내지 402)(또는 존들)은 병치된 물리적 컴퓨팅 자원 집합을 지칭할 수 있다. 존들은 전체 컴퓨팅 자원 클라우드의 다른 존들과 지리적으로 떨어져 있을 수 있다. 예를 들어, 존(401)은 캘리포니아에 위치한 제1 클라우드 데이터 센터일 수 있고, 존(402)은 플로리다에 위치한 제2 클라우드 데이터 센터일 수 있다. 관리 서버(410)는 가용 존들 중 하나에 또는 떨어진 장소에 위치될 수 있다. 각 존은 게이트웨이를 통해, 관리 서버(410)와 같이, 존 밖에 있는 장치들과 인터페이싱하는 내부 네트워크를 포함할 수 있다. 클라우드의 최종 사용자들(예를 들어, 클라이언트들(411-414))은 존들 간 구별을 알고 있거나 아닐 수도 있다. 예를 들어, 최종 사용자는 지정된 양의 메모리, 처리 능력 및 네트워크 성능을 갖는 가상 기계의 생성을 요청할 수 있다. 관리 서버(410)는 사용자의 요청에 응답할 수 있고, 가상 기계가 존(401)으로부터의 자원들을 사용하여 생성되었는지 또는 존(402)으로부터의 자원들을 사용하여 생성되었는지를 사용자가 알지 못하게 가상 기계를 생성하기 위한 자원들을 할당할 수 있다. 다른 예들에서, 클라우드 시스템은 최종 사용자들이 가상 기계들(또는 다른 클라우드 자원들)이 특정 존에 또는 특정 존 내의 특정 자원들(403-405) 상에 할당될 것을 요청할 수 있게 할 수 있다.
이러한 예에서, 각 존(401-402)은 양한 물리적 하드웨어 구성요소(또는 컴퓨팅 자원)(403-405), 예를 들어, 물리적 호스팅 자원들(또는 처리 자원들), 물리적 네트워크 자원들, 물리적 저장 장치 자원들, 스위치들 및 고객들에게 클라우드 컴퓨팅 서비스들을 제공하기 위해 사용될 수 있는 추가 하드웨어 자원들의 배열을 포함할 수 있다. 클라우드 존(401-402) 내의 물리적 호스팅 자원들은 가상 기계 인스턴스들을 호스팅 및 생성하도록 구성될 수 있는, 상술한 가상화 서버들(301)과 같은 하나 이상의 컴퓨터 서버(403)를 포함할 수 있다. 클라우드 존(401 또는 402) 내의 물리적 네트워크 자원들은 방화벽들, 네트워크 어드레스 변환기들, 로드 밸런서들, 가상 사설 네트워크(VPN) 게이트웨이들, 동적 호스트 구성 프로토콜(DHCP) 라우터들 등 같이, 네트워크 서비스를 클라우드 고객들에게 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함하는 하나 이상의 네트워크 요소(405)(예를 들어, 네트워크 서비스 제공자)를 포함할 수 있다. 클라우드 존(401-402) 내의 저장 자원들은 저장 디스크들(예를 들어, 고체 상태 드라이브(SSD, Solid State Drive), 자기 하드 디스크들 등) 및 기타 저장 장치들을 포함할 수 있다.
또한 도 4에 도시된 예시적인 클라우드 컴퓨팅 환경은 가상 기계들을 생성 및 관리하고 클라우드의 물리적 자원들을 사용하여 고객들에게 다른 서비스들을 제공하도록 구성된 추가 하드웨어 및/또는 소프트웨어 자원들을 갖는 가상화 계층(예를 들어,도 1 내지 도 3에 도시된 바와 같은)을 포함할 수 있다. 가상화 계층은도 3에서 네트워크 가상화, 저장 장치 가상화 등을 제공하기 위한 다른 구성요소들과 함께, 전술한 바와 같이, 하이퍼바이저들을 포함할 수 있다. 가상화 계층은 물리적 자원 계층과 별개의 계층으로 있을 수 있거나, 물리적 자원 계층과 동일한 하드웨어 및/또는 소프트웨어 자원들의 일부 또는 전부를 공유할 수 있다. 예를 들어, 가상화 계층은 물리적 컴퓨팅 자원들과 각각의 가상화 서버들(403)에 구비된 하이퍼바이저들을 포함할 수 있다. 대안적으로는, 알려진 클라우드 시스템들, 예를 들어, WINDOWS AZURE(워싱턴, 레드몬드의 Microsoft Corporation), AMAZON EC2(시애틀, 워싱턴의 Amazon.com), IBM BLUE CLOUD(뉴욕, 아몽크의 IBM Corporation) 등이 사용될 수 있다.
기업 모빌리티 관리 아키텍처
도 5는 BYOD 환경에서 사용하기 위한 기업 모빌리티 기술 아키텍처(500)를 나타낸다. 이 아키텍처는 모바일 장치(502)의 사용자가 모바일 장치(502)로부터 기업 또는 개인 자원들에 액세스하고 개인용으로 모바일 장치(502)를 사용할 수 있게 한다. 사용자는 사용자가 구매한 모바일 장치(502) 또는 기업에 의해 사용자에게 제공된 모바일 장치(502)를 사용하여 그러한 기업 자원들(504) 또는 기업 서비스들(508)에 액세스할 수 있다. 사용자는 단지 업무용으로 또는 업무용 및 개인용으로 모바일 장치(502)를 이용할 수 있다. 모바일 장치는 iOS 운영 체제 및 안드로이드(Android) 운영 체제 등을 실행할 수 있다. 기업은 모바일 장치(504)를 관리하기 위한 정책들을 구현하도록 선택할 수 있다. 정책들은 방화벽 또는 게이트웨이를 통해 모바일 장치가 식별, 보안 또는 보안 검증되고, 기업 자원들에 대한 선택적 또는 전체 액세스 권한을 제공받을 수 있는 것과 같은 방식으로 주입될 수 있다. 정책들은 모바일 장치 관리 정책들, 모바일 어플리케이션 관리 정책들, 모바일 데이터 관리 정책들 또는 모바일 장치, 어플리케이션 및 데이터 관리 정책들의 일부 조합일 수 있다. 모바일 장치 관리 정책들의 어플리케이션을 통해 관리되는 모바일 장치(504)는 등록 장치로 지칭될 수 있다.
일부 실시 예에서, 모바일 장치의 운영 체제는 관리 형 파티션(510) 및 비 관리형 파티션(512)으로 구분될 수 있다. 관리형 파티션(510)은 관리형 파티션 상에서 실행되는 어플리케이션들 및 그에 저장된 데이터의 보안 유지를 위해 그것에 적용되는 정책들을 가질 수 있다. 관리형 파티션 상에서 실행되는 어플리케이션들은 보안 어플리케이션들일 수 있다. 다른 실시 예들에서, 모든 어플리케이션은 어플리케이션과 별개로 수신되고, 해당 어플리케이션이 장치 상에서 실행 중일 때 하나 이상의 보안 파라미터, 특징, 자원 제한 및/또는 기타 액세스 제어를 정의하는 하나 이상의 정책 파일 집합에 따라 실행될 수 있다. 각각의 어플리케이션은 그것들의 각각의 정책 파일(들)에 따라 작동됨으로써, 하나 이상의 다른 어플리케이션 및/또는 자원과의 통신이 허용 또는 제한되며, 그렇게 함으로써 가상 파티션을 생성할 수 있다. 따라서, 본원에서 사용될 때, 파티션은 메모리의 물리적으로 분할된 부분(물리적 파티션), 메모리의 논리적으로 분할된 부분(논리적 파티션) 및/또는 본원에 기술된 다수의 앱에 걸쳐 하나 이상의 정책 및/또는 정책 파일을 시행한 결과로 생성된 가상 파티션(가상 파티션)을 지칭할 수 있다. 다르게 말하면, 관리되는 앱들 상에 정책들을 시행함으로써, 그러한 앱들이 단지 다른 관리되는 앱들 및 신뢰할 수 있는 기업 자원들과만 통신할 수 있도록 제한되며, 그렇게 함으로써 관리되지 않는 앱들 및 장치들이 불가해한 가상 파티션을 생성할 수 있다.
보안 어플리케이션들은 이메일 어플리케이션들, 웹 탐색 어플리케이션들, 서비스형 소프트웨어(SaaS, software-as-a-service) 액세스 어플리케이션서비스형 소프트웨어, 윈도우 어플리케이션(Windows Application) 액세스 어플리케이션들 등일 수 있다. 보안 어플리케이션들은 보안 고유 어플리케이션들(514), 보안 어플리케이션 런처(518)에 의해 실행되는 보안 원격 어플리케이션들(522), 보안 어플리케이션 런처(518)에 의해 실행되는 가상화 어플리케이션들(526) 등일 수 있다. 보안 고유 어플리케이션들(514)은 보안 어플리케이션 래퍼(520)에 의해 래핑(wrapping)될 수 있다. 보안 어플리케이션 래퍼(520)는 보안 고유 어플리케이션이 장치 상에서 실행될 때 모바일 장치(502)상에서 실행되는 통합 정책들을 포함할 수 있다. 보안 어플리케이션 래퍼(520)는 모바일 장치(502) 상에서 실행되는 보안 고유 어플리케이션(514)을 보안 고유 어플리케이션(514)이 보안 고유 어플리케이션(514)의 실행 시 요청되는 작업을 완료할 것을 요청할 수 있는 기업에서 호스팅되는 자원들로 가리키는 메타 데이터를 포함할 수 있다. 보안 어플리케이션 런처(518)에 의해 실행되는 보안 원격 어플리케이션들(522)은 보안 어플리케이션 런처 어플리케이션(518) 내에서 실행될 수 있다. 보안 어플리케이션 런처(518)에 의해 실행되는 가상화 어플리케이션(526)은 모바일 장치(502), 기업 자원들(504) 등의 자원들을 이용할 수 있다. 보안 어플리케이션 런처(518)에 의해 실행되는 가상화 어플리케이션들(526)에 의해 모바일 장치(502) 상에서 사용되는 자원들은 사용자 상호 작용 자원들, 처리 자원들 등을 포함할 수 있다. 사용자 상호 작용 자원들은 키보드 입력, 마우스 입력, 카메라 입력, 촉각 입력, 청각 입력, 시각 입력, 제스처 입력 등을 수집하고 전송하는데 사용될 수 있다. 처리 자원들은 사용자 인터페이스를 제공하고, 기업 자원들(504)로부터 수신된 데이터를 처리하는 등에 사용될 수 있다. 보안 어플리케이션 런처(518)에 의해 실행되는 가상화 어플리케이션들(526)에 의해 기업 자원들(504)에서 사용되는 자원들은 사용자 인터페이스 생성 자원들, 처리 자원들 등을 포함할 수 있다. 사용자 인터페이스 생성 자원들은 사용자 인터페이스를 어셈블링하고, 사용자 인터페이스를 수정하고, 사용자 인터페이스를 새로 고침하는데 사용될 수 있다. 프로세싱 자원들은 정보를 생성하고, 정보를 판독하고, 정보를 업데이트하고, 정보를 삭제하는 등에 사용될 수 있다. 예를 들어, 가상화 어플리케이션은 그래픽 사용자 인터페이스(GUI)와 연관된 사용자 상호 작용들을 기록하고 그것들을 서버 어플리케이션에 전달할 수 있으며 서버 어플리케이션은 사용자 상호 작용 데이터를 서버 상에서 작동하는 어플리케이션의 입력으로 사용할 것이다. 이러한 배열에서, 기업은 서버 측 상의 어플리케이션뿐만 아니라 어플리케이션과 연관된 데이터, 파일들도 유지 관리하도록 선택할 수 있다. 기업은 일부 어플리케이션을 모바일 장치 상에 배포하기 위해 본원의 원리들에 따라 그것들의 보안을 유지하여 "유통(mobilize)"시키도록 선택할 수 있지만, 이러한 배열은 특정 어플리케이션들에 대해서도 선택될 수 있다. 예를 들어, 일부 어플리케이션은 모바일 장치 상에서 사용하기 위한 보안이 설정되어 있을 수 있지만, 다른 어플리케이션들은 모바일 장치 상의 배포를 위해 준비되지 않았거나 적절하지 않을 수 있으므로 기업은 준비되지 않은 어플리케이션들에 대한 모바일 사용자 액세스 권한을 가상화 기술들을 통해 제공하도록 선택할 수 있다. 다른 예로, 기업은 모바일 장치용 어플리케이션을 커스터마이징하는 것이 매우 어렵거나 그 외 바람직하지 않은 크고 복잡한 데이터 집합을 갖는 크고 복잡한 어플리케이션들(예를 들어, 물적 자원 계획(MRP, material resource planning) 어플리케이션들)을 가질 수 있으므로 기업은. 어플리케이션에 대한 액세스 권한을 가상화 기술들을 통해 제공하도록 선택할 수 있다. 또 다른 예로, 기업은 기업에 의해 보안 모바일 환경에 대해서도 너무 민감하다고 여겨질 수 있는 보안 수준이 높은 데이터(예를 들어, 인적 자원 데이터, 고객 데이터, 엔지니어링 데이터)를 유지 관리하는 어플리케이션을 가질 수 있으므로 기업은 그러한 어플리케이션들 및 데이터에 대한 모바일 액세스를 허용하기 위해 가상화 기술들을 사용하도록 선택할 수 있다. 기업은 모바일 장치 상에서 완벽하게 보안이 유지되고 완전하게 작동되는 어플리케이션들을 제공하도록 할 뿐만 아니라 서버 측 상에서 보다 적절하게 운영되는 것으로 여겨지는 어플리케이션들에 대해서도 액세스를 허용하기 위해 가상화 어플리케이션을 제공하도록 선택할 수 있다. 일 실시 예에서, 가상화 어플리케이션은 보안 저장 장소들 중 하나의 장소에 있는 모바일 전화기 상의 일부 데이터, 파일들 등을 저장할 수 있다. 기업은 예를 들어, 특정 정보가 전화기 상에 저장되도록 허용하면서 다른 정보는 허용하지 않도록 선택할 수 있다.
본원에 기술된 바와 같이, 가상화 어플리케이션과 관련하여, 모바일 장치는 GUI를 제공하고 그 다음 GUI와의 사용자 상호 작용을 기록하도록 설계된 가상화 어플리케이션을 가질 수 있다. 어플리케이션은 서버 측 어플리케이션에 의해 어플리케이션과의 사용자 상호 작용으로서 사용될 서버 측에 사용자 상호 작용을 전달할 수 있다. 이에 대한 응답으로, 서버 측 상의 어플리케이션은 모바일 장치에 다시 새로운 GUI를 송신할 수 있다. 예를 들어, 새로운 GUI는 정적 페이지, 동적 페이지, 애니메이션 등일 수 있으며, 이에 의해 원격 위치된 자원들에 대한 액세스 권한을 제공한다.
보안 어플리케이션들은 모바일 장치의 관리형 파티션(510) 내의 보안 데이터 컨테이너(528)에 저장된 데이터에 액세스할 수 있다. 보안 데이터 컨테이너에서 보안이 유지되는 데이터는 보안 래핑된 어플리케이션들(514), 보안 어플리케이션 런처(522)에 의해 실행되는 어플리케이션들, 보안 어플리케이션 런처(522)에 의해 실행되는 가상화 어플리케이션들(526) 등에 의해 액세스될 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 파일들, 데이터베이스들 등을 포함할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 특정 보안 어플리케이션(530)으로 제한된 데이터, 보안 어플리케이션들(532) 사이에서 공유되는 데이터 등을 포함할 수 있다. 보안 어플리케이션으로 제한된 데이터는 보안 일반 데이터(534) 및 보안 수준이 높은 데이터(538)를 포함할 수 있다. 보안 일반 데이터는 AES(Advanced Encryption Standard) 128 비트 패스워드화 등과 같은 강한 형태의 패스워드화를 사용할 수 있는 한편, 보안 수준이 높은 데이터(538)는 AES 256 비트 패스워드화와 같은 매우 강력한 형태의 패스워드화를 사용할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 장치 관리자(524)로부터 명령을 수신하면 장치로부터 삭제될 수 있다. 보안 어플리케이션들은 듀얼 - 모드 옵션(540)을 가질 수 있다. 듀얼 모드 옵션(540)은 보안 어플리케이션을 비보안 또는 비관리 모드로 동작시키는 옵션을 사용자에게 제공할 수 있다. 비보안 또는 비관리 모드에서, 보안 어플리케이션들은 모바일 장치(502)의 비관리형 파티션(512)상의 비보안 데이터 컨테이너(542)에 저장된 데이터에 액세스할 수 있다. 비보안 데이터 컨테이너에 저장된 데이터는 개인 데이터(544)일 수 있다. 또한 비보안 데이터 컨테이너(542)에 저장된 데이터는 모바일 장치(502)의 비관리형 파티션(512) 상에서 실행되는 비보안 어플리케이션들(548)에 의해서도 액세스될 수 있다. 비보안 데이터 컨테이너(542)에 저장된 데이터는 보안 데이터 컨테이너(528)에 저장된 데이터가 모바일 장치(502)로부터 삭제될 때 모바일 장치(502) 상에 남아있을 수 있다. 기업은 사용자에 의해 소유되거나 라이센싱되거나 제어되는 개인 데이터, 파일들 및/또는 어플리케이션들을 남겨두거나 그 외 보존시키면서 기업에 의해 소유되거나 라이센싱되거나 제어되는 모든 데이터, 파일들 및/또는 어플리케이션(기업 데이터)을 선택된 모바일 장치에서 삭제하는 것을 원할 수 있다. 이 동작은 선택적 와이프(selective wipe)로 지칭될 수 있다. 본원에 기술된 양상들에 따라 배열된 기업 및 개인 데이터로, 기업은 선택적 와이프를 수행할 수 있다.
모바일 장치는 기업의 기업 자원들(504) 및 기업 서비스들(508)에, 그리고 공용 인터넷(548) 등에 접속할 수 있다. 모바일 장치는 가상 사설 네트워크 접속을 통해 기업 자원들(504) 및 기업 서비스들(508)에 접속할 수 있다. 마이크로 PVN(microVPN) 또는 어플리케이션 특정 VPN으로도 지칭되는 가상 사설 네트워크 접속은 특정 어플리케이션들(550), 특정 장치들, 모바일 장치 상의 특정 보안 영역들 등(552)에 특정될 수 있다. 예를 들어, 전화기의 보안 영역에 있는 각각의 래핑된 어플리케이션들은 어플리케이션 특정 VPN을 통해 기업 자원들에 액세스할 수 있으므로 VPN에 대한 액세스는 가능한 사용자 또는 장치 속성 정보와 함께, 어플리케이션과 관련된 속성들에 기초하여 승인되게 될 수 있다. 가상 사설 네트워크 접속은 Microsoft Exchange 트래픽, Microsoft Active Directory 트래픽, HTTP(HyperText Transfer Protocol) 트래픽, HTTPS(HyperText Transfer Protocol Secure) 트래픽, 어플리케이션 관리 트래픽 등을 전달할 수 있다. 가상 사설 네트워크 접속은 싱글-사인-온 인증 프로세스들(554)을 지원하고 이네이블할 수 있다. 싱글-사인-온 프로세스들은 사용자로 하여금 인증 서비스(558)에 의해 검증될 단일 집합의 인증 자격 증명을 제공하게 할 수 있다. 그 다음, 인증 서비스(558)는 사용자가 각각의 개별 기업 자원(504)에 인증 자격 증명을 제공할 필요 없이 사용자에게 다수의 기업 자원(504)에 대한 액세스를 승인할 수 있다.
가상 사설 네트워크 접속은 액세스 게이트웨이(560)에 의해 수립 및 관리될 수 있다. 액세스 게이트웨이(560)는 모바일 장치(502)에 대한 기업 자원(504)의 전달을 관리, 가속화 및 향상시키는 성능 향상 특징들을 포함할 수 있다. 또한 액세스 게이트웨이는 모바일 장치(502)로부터 공용 인터넷(548)으로 트래픽을 재라우팅하여, 모바일 장치(502)가 공용 인터넷(548) 상에서 실행되는 공개적으로 이용 가능한 비보안 어플리케이션들에 액세스할 수 있게 할 수 있다. 모바일 장치는 전송 네트워크(562)를 통해 액세스 게이트웨이에 접속할 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 근거리 네트워크, 도시권 네트워크, 광역 네트워크, 공용 네트워크, 사설 네트워크 등일 수 있다.
기업 자원들(504)은 이메일 서버들, 파일 공유 서버들, SaaS 어플리케이션들, 웹 어플리케이션 서버들, 윈도우 어플리케이션 서버들 등을 포함할 수 있다. 이메일 서버들에는 Exchange 서버들, Lotus Notes 서버들 등이 포함될 수 있다. 파일 공유 서버들에는 ShareFile 서버들 등이 포함될 수 있다. SaaS 어플리케이션들에는 Salesforce 등이 포함될 수 있다. Windows 어플리케이션 서버들에는 로컬 Windows 운영 체제 상에서 실행되도록 의도된 어플리케이션들을 제공하기 위해 구축된 임의의 어플리케이션 서버 등이 포함될 수 있다. 기업 자원들(504)은 구내 기반 자원들, 클라우드 기반 자원들 등일 수 있다. 기업 자원들(504)은 모바일 장치(502)에 의해 직접 또는 액세스 게이트웨이(560)를 통해 액세스될 수 있다. 기업 자원들(504)은 전송 네트워크(562)를 통해 모바일 장치(502)에 의해 액세스될 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 근거리 네트워크, 도시권 네트워크, 광역 네트워크, 공용 네트워크, 사설 네트워크 등일 수 있다.
기업 서비스들(508)에는 인증 서비스들(558), 위협 검출 서비스들(564), 장치 관리 서비스들(524), 파일 공유 서비스들(568), 정책 관리 서비스들(570), 소셜 통합 서비스들(572), 어플리케이션 제어 서비스들(574) 등이 포함될 수 있다. 인증 서비스들(558)에는 사용자 인증 서비스들, 장치 인증 서비스들, 어플리케이션 인증 서비스들, 데이터 인증 서비스들 등이 포함될 수 있다. 인증 서비스들(558)은 인증서들을 사용할 수 있다. 인증서들은 모바일 장치(502) 상에, 기업 자원들(504) 등에 의해 저장될 수 있다. 모바일 장치(502) 상에 저장된 인증서들은 모바일 장치 상의 패스워드화된 위치에 저장될 수 있고, 인증서는 인증 시 등에 사용하기 위해 모바일 장치(502) 상에 일시적으로 저장될 수 있다. 위협 검출 서비스들(564)은 침입 검출 서비스들, 비인증 액세스 시도 검출 서비스들 등을 포함할 수 있다. 비인증 액세스 시도 검출 서비스들에는 장치들, 어플리케이션들, 데이터 등에 대한 비인증 액세스 시도들이 포함될 수 있다. 장치 관리 서비스들(524)은 구성, 프로비저닝, 보안, 지원, 모니터링,보고 및 폐기 서비스들을 포함할 수 있다. 파일 공유 서비스들(568)은 파일 관리 서비스들, 파일 저장 서비스들, 파일 협력 서비스들 등을 포함할 수 있다. 정책 관리 서비스들(570)은 장치 정책 관리 서비스들, 어플리케이션 정책 관리 서비스들, 데이터 정책 관리자서비스들 등을 포함할 수 있다. 소셜 통합 서비스들(572)은 접속 통합 서비스들, 협력 서비스들, Facebook, Twitter 및 LinkedIn과 같은 소셜 네트워크들과의 통합 등을 포함할 수 있다. 어플리케이션 제어 서비스들(574)은 관리 서비스들, 프로비저닝 서비스들, 배포 서비스들, 할당 서비스들, 폐기 서비스들, 래핑 서비스들 등을 포함할 수 있다.
기업 모빌리티 기술 아키텍처(500)는 어플리케이션 스토어(578)를 포함할 수 있다. 어플리케이션 스토어(578)는 래핑되지 않은 어플리케이션들(580), 사전 래핑된 어플리케이션들(582) 등을 포함할 수 있다. 어플리케이션들은 어플리케이션 제어기(574)로부터 어플리케이션 스토어(578)에 배치될 수 있다. 어플리케이션 스토어(578)는 액세스 게이트웨이(560)를 통해, 공용 인터넷(548) 등을 통해 모바일 장치(502)에 의해 액세스될 수 있다. 어플리케이션 스토어에는 직관적이고 사용하기 쉬운 사용자 인터페이스가 제공될 수 있다.
소프트웨어 개발 키트(584)는 본 설명에서 이전에 설명된 바와 같이 어플리케이션을 래핑함으로써 사용자에 의해 선택된 어플리케이션들을 보안하는 기능을 사용자에게 제공할 수 있다. 그 다음, 소프트웨어 개발 키트(584)를 사용하여 래핑된 어플리케이션은 그것을 어플리케이션 제어기(574)를 사용하여 어플리케이션 스토어(578)에 그것을 배치시킴으로써 모바일 장치(502)가 이용 가능하게 될 수 있다.
기업 모빌리티 기술 아키텍처(500)는 관리 및 분석 기능(588)을 포함할 수 있다. 관리 및 분석 기능(588)은 자원들이 사용되는 방법, 자원들의 사용 빈도 등과 관련된 정보를 제공할 수 있다. 자원들에는 장치들, 어플리케이션들, 데이터 등이 포함될 수 있다. 자원들이 사용되는 방법에는 어느 장치들이 어느 어플리케이션들을 다운로드하는지, 어느 어플리케이션들이 어느 데이터에 액세스하는지 등이 포함될 수 있다. 자원들의 사용 빈도는 어플리케이션들의 다운로드 빈도, 어플리케이션이 특정 데이터 집합에 액세스한 횟수 등을 포함할 수 있다.
도 6은 다른 예시적인 기업 모빌리티 관리 시스템(600)이다. 도 5를 참조하여 전술한 모빌리티 관리 시스템(500)의 구성요소들 중 일부는 간략함을 위해 생략되었다. 도 6에 도시된 시스템(600)은 도 5를 참조하여 전술한 시스템(500)의 아키텍처와 많은 면에서 유사하고 위에서 언급되지 않은 추가 특징들을 포함할 수 있다.
이 경우, 좌측은 우측에 도시된 바와 같은 다양한 익스체인지(Exchange), 셰어포인트(Sharepoint) , 공개 키 인프라 구조(PKI) 자원들, 커버로스(Kerberos) 자원들, 인증서 발급 서비스와 같은 기업 자원(608) 및 서비스(609)에 액세스하기 위해 게이트웨이 서버(606)(액세스 게이트웨이 및 어플리케이션 제어기 기능을 포함)와 상호 작용하는 클라이언트 에이전트(604)를 갖는 등록 모바일 장치(602)를 나타낸다. 구체적으로 도시되지는 않았지만, 모바일 장치(602)는 또한 어플리케이션들의 선택 및 다운로드를 위해 기업 어플리케이션 스토어(인터넷 스토어(StoreFront))와 상호 작용할 수 있다.
클라이언트 에이전트(604)는 HDX(High-Definition User Experience)/ICA 디스플레이 원격 프로토콜을 사용하여 액세스되는 기업 데이터 센터에서 호스팅되는 Windows 어플리케이션/데스크탑들에 대한 UI(사용자 인터페이스) 중개자 역할을 한다. 클라이언트 에이전트(604)는 또한 고유 iOS 또는 안드로이드 어플리케이션들과 같은 모바일 장치(602)상의 고유 어플리케이션들의 설치 및 관리를 지원한다. 예를 들어,도 6에 도시된 관리형 어플리케이션들(610)(메일, 브라우저, 래핑된 어플리케이션)은 모두 장치에서 로컬로 실행되는 고유 어플리케이션들이다. 클라이언트 에이전트(604) 및 이러한 아키텍처의 어플리케이션 관리 프레임워크는 기업 자원들/서비스들(608)에 대한 접속성 및 SSO(싱글 사인온)와 같은 정책 중심 관리 기능들 및 특징들을 제공하는 역할을 한다. 클라이언트 에이전트(604)는 기업에 대한, 통상적으로 다른 게이트웨이 서버 구성요소들에 대한 SSO를 이용하여 액세스 게이트웨이(AG)에 대한 1차 사용자 인증을 처리한다. 클라이언트 에이전트(604)는 게이트웨이 서버(606)로부터 모바일 장치(602) 상의 관리형 어플리케이션(610)의 거동을 제어하기 위한 정책들을 획득한다.
고유 어플리케이션(610)과 클라이언트 에이전트(604) 사이의 보안 프로세스 간 통신(IPC) 링크(612)는 클라이언트 에이전트가 각 어플리케이션을 "래핑(wrapping)"하는 어플리케이션 관리 프레임워크(614)에 의해 시행될 정책들을 제공할 수 있게 하는 관리 채널을 나타낸다. IPC 채널(612)은 또한 클라이언트 에이전트(604)가 기업 자원들(608)에 대한 접속 및 SSO를 이네이블하는 자격 증명 및 인증 정보를 제공할 수 있게 한다. 마지막으로, IPC 채널(612)은 어플리케이션 관리 프레임워크(614)가 온라인 및 오프라인 인증과 같이, 클라이언트 에이전트(604)에 의해 구현되는 사용자 인터페이스 기능들을 호출할 수 있게 한다.
클라이언트 에이전트(604)와 게이트웨이 서버(606) 간 통신은 기본적으로 각각의 고유 관리형 어플리케이션(610)을 래핑하는 어플리케이션 관리 프레임워크(614)로부터의 관리 채널의 확장이다. 어플리케이션 관리 프레임워크(614)는 클라이언트 에이전트(604)로부터의 정책 정보를 요청하며, 그것을 차례로 게이트웨이 서버(606)로부터 요청한다. 어플리케이션 관리 프레임워크(614)는 인증을 요청하고, 클라이언트 에이전트(604)는 게이트웨이 서버(606)(넷스케일러 액세스 게이트웨이(NetScaler Access Gateway)라고도 함)의 게이트웨이 서비스 부분에 로그인한다. 클라이언트 에이전트(604)는 또한 아래에서 더 충분하게 설명될 바와 같이, 로컬 데이터 볼트들(local data vaults)(616)에 대한 패스워드화 키들을 얻기 위해 입력 자료를 생성하거나, PKI 보호 자원들에 대한 직접 인증을 가능하게 할 수 있는 클라이언트 인증서들을 제공할 수 있는 게이트웨이 서버(606) 상의 지원 서비스들을 호출할 수 있다.
보다 상세하게, 어플리케이션 관리 프레임워크(614)는 각각의 관리형 어플리케이션(610)을 "래핑"한다. 이는 명시적 구축 단계 또는 구축 후 처리 단계를 통해 통합될 수 있다. 어플리케이션 관리 프레임워크(614)는 보안 IPC 채널을 초기화하고 그 어플리케이션에 대한 정책을 획득하기 위해 어플리케이션(610)의 최초 시작 시에 클라이언트 에이전트(604)와 "페어링(pairing)"할 수 있다. 어플리케이션 관리 프레임워크(614)는 클라이언트 에이전트 로그인 의존성 및 로컬 OS 서비스들이 사용될 수 있는 방법 또는 어플리케이션 OS(610)와 상호 작용할 수 있는 방법을 제한하는 제한 정책들의 일부와 같이, 로컬로 적용되는 정책의 관련 부분들을 시행할 수 있다.
어플리케이션 관리 프레임워크(614)는 인증 및 내부 네트워크 액세스를 용이하게 하기 위해 보안 IPC 채널(612)을 통해 클라이언트 에이전트(604)에 의해 제공되는 서비스들을 사용할 수 있다. 개인 및 공유 데이터 볼트들(616)(컨테이너들)에 대한 키 관리는 또한 관리형 어플리케이션들(610)과 클라이언트 에이전트(604) 사이의 적절한 상호 작용에 의해 관리될 수 있다. 볼트들(616)은 온라인 인증 후에만 이용 가능할 수 있거나, 정책에 의해 허용된다면 오프라인 인증 후에 이용 가능하게 될 수 있다. 볼트들(616)의 첫번째 사용은 온라인 인증을 요청할 수 있고, 오프라인 액세스는 최대한 온라인 인증이 다시 요청되기 전 정책 새로 고침 기간으로 제한될 수 있다.
내부 자원들에 대한 네트워크 액세스는 개별 관리 어플리케이션들(610)로부터 액세스 게이트웨이(606)를 통해 직접 일어날 수 있다. 어플리케이션 관리 프레임워크(614)는 각 어플리케이션(610)을 위해 네트워크 액세스를 조율하는 것에 책임이 있다. 클라이언트 에이전트(604)는 온라인 인증 후에 얻어진 적절한 시한의 2차 자격 증명을 제공함으로써 이러한 네트워크 접속을 용이하게 할 수 있다. 역방향 웹 프록시 접속 및 종단 간 VPN 스타일 터널(618)과 같은 다중 모드의 네트워크 접속이 사용될 수 있다.
메일 및 브라우저 관리형 어플리케이션들(610)은 특별한 상태를 가지며 일반적으로 임의로 래핑된 어플리케이션들이 이용 가능하지 않을 수 있는 기능들을 이용할 수 있다. 예를 들어, 메일 어플리케이션은 전체 AG 로그온을 요구하지 않고 장기간에 걸쳐 익스체인지에 액세스할 수 있게 해주는 특별한 백그라운드 네트워크 액세스 메커니즘을 사용할 수 있다. 브라우저 어플리케이션은 상이한 종류들의 데이터를 구분하기 위해 다수의 개인 데이터 볼트를 사용할 수 있다.
이러한 아키텍처는 다양한 다른 보안 기능의 통합을 지원한다. 예를 들어, 게이트웨이 서버(606)(게이트웨이 서비스들을 포함)는 경우에 따라 액티브 디렉토리(AD) 패스워드들을 검증할 필요가 없을 것이다. 일부 상황에서는 AD 패스워드가 일부 사용자의 인증 요소로 사용되는지 여부가 기업의 재량에 달려 있다. 사용자가 온라인 또는 오프라인인 경우(즉, 네트워크에 접속되어 있거나 접속되어 있지 않은 경우) 상이한 인증 방법들을 사용할 수 있다.
단계별 인증은 게이트웨이 서버(606)가 강력한 인증을 필요로하는 고도로 분류된 데이터에 액세스할 수 있도록 허용된 관리형 고유 어플리케이션들(610)을 식별할 수 있는 기능이고, 이는 이전의 더 약한 수준의 로그인 이후에 사용자에 의한 재인증이 요청됨을 의미한다 하더라도 적절한 인증을 수행한 후에만 이러한 어플리케이션들에 대한 액세스가 허가됨을 보장한다.
이러한 솔루션의 다른 보안 기능은 모바일 장치(602) 상의 데이터 볼트들(616)(컨테이너들)의 패스워드화이다. 볼트들(616)은 패스워드화되어 파일들, 데이터베이스들 및 구성들을 포함한 모든 장치상의 데이터가 보호되게 될 수 있다. 온라인 볼트들의 경우, 키들은 서버(게이트웨이 서버(606))에 저장될 수 있고, 오프라인 볼트들의 경우, 사용자 패스워드 또는 생체 검증에 의해 키들의 로컬 복사본이 보호될 수 있다. 데이터가 보안 컨테이너(616) 내의 장치(602)에 로컬로 저장되는 경우, 최소 AES 256 패스워드화 알고리즘이 이용되는 것이 바람직하다.
또한 다른 보안 컨테이너 기능들도 구현될 수 있다. 예를 들어, 어플리케이션(610) 내부에서 일어나는 모든 보안 이벤트가 로깅되어 후단부에보고되는 로깅 기능이 포함될 수 있다. 이를테면 어플리케이션(610)이 부당 변경(tampering)을 검출하는 경우, 연관된 패스워드화 키들이 랜덤 데이터로 덮어 쓰여질 수 있어, 파일 시스템 상에 사용자 데이터가 파기되었다는 힌트를 남기지 않는, 데이터 와이핑(Data wiping)이 지원될 수 있다. 스크린샷 보호는 어플리케이션이 스크린샷들에 어떠한 데이터도 저장되지 않게 할 수 있는 다른 기능이다. 예를 들어, 키 창의 숨겨진 속성이 예(YES)로 설정될 수 있다. 이로 인해 스크린에 현재 디스플레이되는 컨텐츠가 무엇이든 숨겨져, 임의의 컨텐츠가 통상적으로 있을 빈 스크린샷이 생길 수 있다.
이를테면 임의의 데이터가 예를 들어, 그것을 복사하거나 외부 어플리케이션으로 송신함으로써, 로컬로 어플리케이션 컨테이너 외부로 전달되는 것을 방지하여, 로컬 데이터 전송을 방지할 수 있다. 키보드 캐시 기능이 작동하여 민감한 텍스트 필드들에 대한 자동 고침 기능(autocorrect functionality)이 디스에이블될 수 있다. 어플리케이션이 서버 SSL 인증서를 키 체인에 저장하는 대신 그것을 명확하게 검증하도록 SSL 인증서 검증을 작동할 수 있다. 장치 상의 데이터를 패스워드화하는데 사용되는 키가 사용자가 제공한 패스워드 구 또는 생체 데이터(오프라인 액세스가 요청된 경우)를 사용하여 생성되도록 패스워드화 키 생성 기능을 사용할 수 있다. 오프라인 액세스가 요청되지 않는 경우 그것은 임의로 생성되어 서버 측에 저장된 다른 키와 XOR될 수 있다. 키 유도 기능들은 사용자 패스워드로부터 생성된 키들이 그것의 패스워드 해시를 생성하기보다는 KDF들(키 유도 함수들, 특히 패스워드 기반 키 유도 함수 2(PBKDF2))을 사용하도록 작동할 수 있다. 전자는 무차별 공격이나 사전 공격에 취약한 키를 만든다.
또한, 하나 이상의 초기화 벡터가 패스워드화 방법들로 사용될 수 있다. 초기화 벡터는 동일한 패스워드화된 데이터의 여러 복사본이 서로 다른 패스워드 텍스트 출력을 생성하게 하여, 재생 및 패스워드 해독 공격을 방지한다. 또한 이는 데이터 패스워드화에 사용된 특정 초기화 벡터를 알 수 없는 경우 공격자가 도난된 패스워드화 키로도 어떠한 데이터도 해독하지 못하게 할 것이다. 또한, 어플리케이션 데이터가 사용자가 어플리케이션 내에서 인증된 후에만 해독되는 인증 다음 복호화가 사용될 수 있다. 다른 특징은 필요할 때만 메모리(디스크가 아니라)에 유지될 수 있는 민감한 데이터와 관련될 수 있다. 예를 들어, 로그인 자격 증명은 로그인 후에 메모리에서 와이핑될 수 있고, 패스워드화 키들 및 오브젝티브-C 인스턴스 변수들 내부 데이터는 쉽게 참조될 수 있으므로 저장되지 않는다. 대신, 이를 위해 메모리는 수동으로 할당될 수 있다.
정책이 정의한 비활성 기간 후에 사용자 세션이 종료되는 비활성 시간 초과가 구현될 수 있다.
어플리케이션 관리 프레임워크(614)로부터의 데이터 유출은 다른 방식들로 방지될 수 있다. 예를 들어, 어플리케이션(610)이 백그라운드에 놓여질 때, 메모리는 소정의 (구성 가능한) 시간 기간 후에 삭제될 수 있다. 백그라운드 처리 되면, 포어그라운드 프로세스들을 고정하기 위해 어플리케이션의 마지막으로 디스플레이된 스크린의 스냅샷을 찍을 수 있다. 스크린샷에는 기밀 데이터가 포함될 수 있으므로 삭제해야 한다.
다른 보안 기능은 하나 이상의 어플리케이션에 대한 액세스를 위해 AD(액티브 디렉터리)(622) 패스워드를 사용하지 않고 OTP(일회용 패스워드)(620)를 사용하는 것과 관련된다. 경우에 따라, 일부 사용자는 그들의 AD 패스워드를 알지 못하므로(또는 알도록 허가되지 않으므로) 이러한 사용자들은 이를테면 SecurID와 같은 하드웨어 OTP 시스템을 사용하여 OTP(620)를 사용하여 인증할 수 있다(OTP는 Entrust 또는 Gemalto와 같은 다른 공급 업체들에 의해서도 제공될 수 있다). 경우에 따라, 사용자가 사용자 ID로 인증한 후, 텍스트가 OTP(620)로 사용자에게 송신된다. 경우에 따라, 이는 온라인 사용을 위해서만 구현될 수 있으며, 프롬프트는 단일 필드이다.
오프라인 패스워드는 기업 정책을 통해 오프라인 사용이 허가되는 어플리케이션들(610)에 대한 오프라인 인증을 위해 구현될 수 있다. 예를 들어, 기업은 인터넷 스토어(StoreFront)가 이러한 방식으로 액세스되기를 원할 수 있다. 이 경우, 클라이언트 에이전트(604)는 사용자가 사용자 정의 오프라인 패스워드를 설정하도록 요청할 수 있으며, AD 패스워드는 사용되지 않는다. 게이트웨이 서버(606)는 표준 윈도우 서버 패스워드 복잡도 요건이 수정될 수 있지만, 이러한 요건에 의해 기술되는 바와 같이, 최소 길이, 문자 클래스 구성 및 패스워드 사용 기간에 관한 패스워드 표준을 통제 및 시행하기 위한 정책들을 제공할 수 있다.
다른 특징은 (어플리케이션 관리 프레임워크 마이크로 VPN 기능을 통해 PKI로 보호된 웹 자원들에 액세스하기 위한 목적으로) 특정 어플리케이션들(610)에 대한 클라이언트 측 인증서를 보조 자격 증명으로 가능하게 하는 것에 관한 것이다. 예를 들어, 어플리케이션은 그러한 인증서를 이용할 수 있다. 이 경우, 클라이언트 에이전트(604)로부터의 인증서가 게이트웨이 서버(606)에 의해 검색되어 키 체인에서 사용되는 ActiveSync 프로토콜을 사용하는 인증서 기반 인증이 지원될 수 있다. 각각의 관리형 어플리케이션은 게이트웨이 서버(606)에서 정의되는 라벨에 의해 식별되는 하나의 연관된 클라이언트 인증서를 가질 수 있다.
게이트웨이 서버(606)는 관련 관리형 어플리케이션들이 내부 PKI 보호 자원들에 대해 인증할 수 있게 클라이언트 인증서들의 발급을 지원하기 위해 기업 전용 웹 서비스와 상호 작용할 수 있다.
클라이언트 에이전트(604) 및 어플리케이션 관리 프레임워크(614)는 내부 PKI 보호 네트워크 자원들에 대한 인증을 위해 클라이언트 인증서들을 획득하고 사용하는 것을 지원하도록 개선될 수 있다. 다양한 수준의 보안 및/또는 구분 요건을 매칭하는 것과 같이, 하나보다 많은 인증서가 지원될 수 있다. 인증서들은 메일 및 브라우저 관리형 어플리케이션들, 그리고 궁극적으로 임의로 래핑된 어플리케이션들(어플리케이션 관리 프레임워크가 https 요청들을 중재하는 데 적합한 웹 서비스 스타일의 통신 패턴들을 어플리케이션들을 가정)에서 사용될 수 있다.
iOS 상의 어플리케이션 관리 클라이언트 인증서 지원은 공개 키 암호화 표준(PKCS) 12 BLOB(Binary Large Object)를 각 관리형 어플리케이션의 iOS 키 체인으로 각 사용 기간 동안 불러오는 것에 의존할 수 있다. 어플리케이션 관리 프레임워크 클라이언트 인증서 지원은 전용 메모리 내 키 저장 장치와 함께 HTTPS 구현을 사용할 수 있다. 클라이언트 인증서는 iOS 키 체인에 절대 존재하지 않을 것이고 강력하게 보호되는 가능성 있게 "온라인 전용" 데이터 값을 제외하고는 지속되지 않을 것이다.
상호 SSL(Mutual SSL)은 모바일 장치(602)가 기업에 대해 인증되도록 요청함으로써 추가 보안을 제공하도록 구현될 수 있으며, 그 반대의 경우도 가능하다. 또한 게이트웨이 서버(606)에 대한 인증을 위한 가상 스마트 카드가 구현될 수 있다.
제한된 그리고 전체 커버로스(Kerberos) 지원이 추가 기능들일 수 있다. 전체 지원 기능은 AD 패스워드 또는 신뢰할 수 있는 클라이언트 인증서를 사용하여, 액티브 디렉터리(AD, Active Directory)(622)에 전체 커버로스 로그인을 수행할 수 있고, HTTP 협상 인증 문제들에 응답하기 위해 커버로스 서비스 티켓들을 얻을 수 있는 기능에 관한다. 제한된 지원 기능은 AGEE(Citrix Access Gateway Enterprise Edition)의 제한된 위임에 관하며, 여기서 AGEE는 커버로스 프로토콜 전환 호출을 지원하므로 그것은 HTTP 협상 인증 문제들에 대한 응답으로 커버로스 서비스 티켓들을 얻고 사용할 수 있다(제한된 위임에 따라). 이 메커니즘은 역방향 웹 프록시(일명 회사 가상 사설 네트워크(CVPN)) 모드에서, 그리고 VPN 및 마이크로 VPN 모드에서 http(https가 아닌) 접속이 프록시될 때 작동한다.
다른 특징은 탈옥 또는 루팅 검출 시 자동으로 일어나고, 관리 콘솔로부터 푸시된 명령으로서 일어나는 어플리케이션 컨테이너 잠금 및 와이핑에 관한 것이고, 어플리케이션(610)이 실행 중이 아니더라도 원격 와이프 기능을 포함할 수 있다.
사용자들이 실패한 경우 여러 상이한 위치 중 한 위치에서 서비스될 수 있게 하는 기업 어플리케이션 스토어 및 어플리케이션 제어기의 다중 사이트 아키텍처 또는 구성이 지원될 수 있다.
경우에 따라, 관리형 어플리케이션들(610)은 API(예를 들어 OpenSSL)를 통해 인증서 및 개인 키에 액세스하도록 허용될 수 있다. 기업의 신뢰할 수 있는 관리형 어플리케이션들(610)은 어플리케이션의 클라이언트 인증서 및 개인 키를 이용하여 특정 공개 키 동작들을 수행하도록 허용될 수 있다. 따라서 어플리케이션이 브라우저처럼 거동하고 어떠한 인증서 액세스도 요청되지 않을 때, 어플리케이션이 "나는 누구인가"에 대한 인증서를 판독할 때, 어플리케이션이 인증서를 사용하여 보안 세션 토큰을 구축할 때, 그리고 어플리케이션이 중요한 데이터(예를 들어, 트랜잭션 로그)의 디지털 서명 또는 임시 데이터 암호화에 개인 키들을 사용할 때와 같이, 다양한 사례가 식별되어 처리될 수 있다.
가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들에 통합
본 발명의 하나 이상의 양상은 도 1 내지 도 6과 관련하여 위에서 논의된 컴퓨터 시스템 아키텍처, 원격-액세스 시스템 아키텍처, 가상화(하이퍼바이저) 시스템 아키텍처, 클라우드-기반 시스템 아키텍처 및/또는 기업 모빌리티 관리 시스템들 중 하나 이상을 사용하여 통합, 구체화 및/또는 구현될 수 있다. 또한, 본 발명에서는 다음과 같은 약어들이 사용될 수 있다: 고화질 경험(HDX); 모바일 어플리케이션 관리(MAM); 모바일 장치 관리(MDM); 모바일 장치 환경(MDX); 개념 증명(POC); 공유 비밀 볼트(SSV); 인터넷 스토어(SF); 가상 채널(VC); WorxHome(WH); XenApp(XA); XenDesktop(XD); 및 XenMobile Server(XMS).
전술한 바와 같이, 본 발명의 하나 이상의 양상은 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 방법들을 제공한다. 예를 들어, 본 발명의 하나 이상의 양상을 구현함으로써, 가상 브라우저는 기본적으로 지원되지 않는 컨텐츠에 대한 액세스를 가능하게 하고/하거나 그 외 그 권한을 제공하기 위해 그리고/또는 더 보안을 더 강화하고/거나 그 외 더 제공하기 위해 고유 브라우저에 원활하게 통합될 수 있다. 또한, 이러한 가상 브라우저는 고유의 사용자 경험뿐만 아니라 전면적인 웹 어플리케이션 기능을 제공하기 위해 고유 "웹" 어플리케이션들에 대한 액세스를 가능하게 하고/하거나 그 외 그 권한을 제공하기 위해 사용될 수 있다.
첫 번째 사례에서 특정 사용자의 모바일 장치와 같은 특정 컴퓨팅 장치에서 실행되는 CITRIX WorxWeb과 같은 고유 브라우저는 HDX 가상 브라우저에 URL(Uniform Resource Locator)을 열어 지원되지 않는 컨텐츠(예를 들어, 모바일 장치 상의 고유 브라우저에서 디스플레이 가능하지 않을 수 있는)에 대한 액세스를 제공하고/거나 더 높은 보안(예를 들어, 모바일 장치 상의 고유 브라우저에 의해 제공되지 않을 수 있는)을 제공할 수 있다. 이러한 첫 번째 사례의 바탕이 되는 운영상의 가정이 하나 이상 있을 수 있다. 예를 들어, WorxWeb이 주요 사례일 수 있다. 또한, 이러한 접근법은 모바일 장치들 상의 고유 브라우저들 또는 웹 뷰(Web View) 제어부들에서 렌더링할 수 없는 FLASH 컨텐츠 또는 기타 컨텐츠에 유용할 수 있다. 또한, 이러한 접근법은 서버 후단부에서 웹 컨텐츠를 처리할 수 있는 접근법으로서, 모바일 보안이 매칭되지 않는 상황들에 유용할 수 있다. 또한, 가상 브라우저는 URL들을 로컬 어플리케이션으로 재지정할 필요가 없을 수 있다(예를 들어, 역방향 URL 재지정 없음). 두 번째 사례로서, 이러한 접근법은 INTERNET EXPLORER, CHROME 및/또는 FIREFOX와 같은 데스크탑 브라우저들에도 적용될 수 있다.
두 번째 사례에서, 가상 브라우저는 모바일 "웹"어플리케이션들에 대한 액세스를 이네이블 및/또는 그 외 제공하는 데 사용될 수 있다. 예를 들어, WorkDay와 같은 일부 모바일 어플리케이션들은 그것들의 각각의 전면적인 웹 어플리케이션들에 관해 기능이 제한적일 수 있다. 또한, WorkDay 웹 사이트와 같은 일부 웹 사이트는 모바일 브라우저용으로 설계되지 않았을 수 있다. 본 발명의 양상들에서 사용자들은 모바일 장치 스프링보드로부터 WorkDay와 같은 웹 어플리케이션에 액세스할 수 있다. 특히, 본 발명의 양상들은 사용자에게 고유의 사용자 경험 및 전면적인 웹 어플리케이션 기능 모두를 제공할 수 있다.
세 번째 사례에서는, CITRIX XenMobile MDM 및 MAM/MDX 보안이 위에서 논의된 첫 번째 사례와 두 번째 사례에 적용 및 조합하여, 양 접근법 모두에서 향상된 보안을 제공한다.
핵심 구현
본 발명의 하나 이상의 양상을 구현하기위한 기본 설계를 나타낼 수 있는 본 발명의 하나 이상의 양상의 핵심 구현 예에서, 고유 WorxWeb 어플리케이션은 선택 웹 컨텐츠에 대해 가상 브라우저와 통합될 수 있다. 이러한 배열에서, 전체 화면 HDX 뷰가 제공될 수 있다. 원격 브라우저(예를 들어, INTERNET EXPLORER의 원격 인스턴스)는 선택 웹 컨텐츠에 대해 HDX를 통해 호출될 수 있다. 원격 브라우저는 크롬이 없는 키오스크 모드로 실행될 수 있다. 또한, 사용자가 원격 브라우저로부터 다시 고유 WorxWeb 뷰로 돌아갈 수 있게 하도록 수정된 HDX 세션 제어 사용자 인터페이스가 제공될 수 있다. 단일 원격 탭 지원도 제공될 수 있다.
도 7은 본 발명의 하나 이상의 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는데 사용될 수 있는 아키텍처의 일례를 도시한다.
도 7에 도시된 배치 및 구성에서, 관리자는 URL들의 화이트/블랙 리스트에 대한 WorxWeb 어플리케이션 MDX 정책을 이용하여 XenMobile 서버를 구성할 수 있다. 보안 브라우저로서, WorxWeb은 (1) MDX 앱들로부터의 URL들과 연관되도록; 그리고/또는(2) 인터넷 스토어(StoreFront) 및 HDX 소프트웨어 개발 키트들(SDK)을 사용하여 선택 URL들을 열고 그러한 URL들을 가상 브라우저로 재지정하도록 구성 및/또는 설계될 수 있다. 경우에 따라, MDX 정책, SF/Auth SDK 및/또는 MDX SDK에 기초하여 하나 이상의 종속성이 있을 수 있다. 추가적으로 또는 대안적으로, XenApp 서버는 게시된 브라우저 또는 XenApp 브라우저 서버와 활용될 수 있다.
도 7에 도시된 배치 및 구성에서, 동작들의 예시적인 런타임 시퀀스는 다음과 같이 일어날 수 있다. 첫째, 관리자는 WorxWeb MDX 어플리케이션 정책을 구성하여 URL들의 화이트 리스트 및/또는 블랙 리스트를 정의할 수 있다. 둘째, 사용자가 WorxHome을 통해 XenMobile Server에 로그온할 수 있고, WorxHome이 정책 새로 고침을 수행할 수 있다. 셋째, WorxHome은 정책들을 추진하고/거나 다른 MDX 앱들과 인증 토큰들을 공유할 수 있다. 경우에 따라, 공유 비밀 볼트(SSV) 및 MDX 볼트를 공유에 사용할 수 있다. 또한, WorxWeb은 MDX 어플리케이션 정책을 읽어 URL 재지정을 켜고/거나 끄고 URL들의 화이트 리스트 및/또는 블랙 리스트를 수신할 수 있다. 대안적인 설계에서 WorxWeb 및 다른 MDX 어플리케이션들은 XenMobile 서버와 독립적으로 정책 새로 고침을 수행할 수 있고 또한 XenMobile Server에 대해 독립적으로 네트워크 인증을 수행할 수도 있다. 이러한 접근법은 단일 마스터 어플리케이션으로 WorxHome없이 "분산 인증"이라고 할 수 있다.
다시 도 7에 도시된 배치 및 구성에서의 동작들의 예시적인 런타임 시퀀스를 참조하면, 네 번째 단계에서, 사용자는 지원되지 않는 URL을 열 수 있다. 다섯째, WorxWeb은 인터넷 스토어(StoreFront) SDK를 사용하여 인터넷 스토어와 대화할 수 있다. 이에는 공유 인증 토큰을 사용하는 인증, 어플리케이션 시작 요청 전송 및 획득된 ICA 파일(예를 들어, 서버 어드레스 및/또는 INTERNET EXPLORER와 같은 초기 어플리케이션과 같이, 시작될 HDX 접속의 속성들을 설명할 수 있는)이 포함될 수 있다.
여섯째, WorxWeb은 HDX 가상 브라우저 어플리케이션을 시작할 수 있다. 이는 획득한 ICA 파일을 기반으로 HDX 접속을 시작하고 제어 가상 채널을 사용하여 어플리케이션을 시작하고 파라미터들(예를 들어, 제공 어플리케이션, 예를 들어, INTERNAL EXPLORER로의 경로)를 제공하는 것을 포함할 수 있다. 또한, 아래에서 보다 상세히 논의될 바와 같이, 파라미터들이 부가될 수 있다, 예를 들어, 재지정된 URL의 개시 및/또는 "키오스크" 모드에서의 어플리케이션의 실행을 지시할 수 있다.
일곱째, WorxWeb은 가상 웹 컨텐츠를 미리 보기할 수 있다. 이에는 원격 어플리케이션(예를 들어, 원격 브라우저에서 열리는 재지정된 URL로부터의 컨텐츠를 키오스크 모드에서 실행하는 INTERNET EXPLORER)으로부터 HDX 그래픽을 디스플레이하는 것이 포함될 수 있다. 사용자가 로컬 웹 탐색으로 되돌아갈 수 있도록 뒤로 가기 버튼이 제공될 수 있다. 추가적으로 또는 대안적으로, 로컬 HDX 세션 제어를 통해 사용자는 가상 브라우저에서 URL의 미리보기를 종료할 수 있다.
그 후, 여덟째 단계에서, 사용자는 뒤로 가기 버튼 또는 미리보기 닫기 버튼을 선택할 수 있다. 이는 사용자 및 처리를 로컬 WorxWeb 탐색으로 되돌릴 수 있다.
도 8은 본 발명의 하나 이상의 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 다른 예를 도시한다. 특히, 도 8에 도시된 예에서는, FLASH 컨텐츠가 모바일 어플리케이션 브라우저에 제공될 수 있다. 도 8에 도시된 예는 도 7에 도시된 예와 유사하나, 도 8에 도시된 예에서는, FLASH 컨텐츠의 HDX 미리보기가 고유 WorxWeb 어플리케이션(예를 들어, 통상적으로 모바일 플랫폼들 상에서 허용되지 않을 수 있는)에 제공된다.
경우에 따라, INTERNET EXPLORER의 키오스크 모드가 본 발명의 하나 이상의 양상을 구현하는데 사용될 수 있다. INTERNET EXPLORER를 키오스크 모드로 실행할 때, 제목 표시줄, 메뉴들, 도구 모음들 및 상태 표시줄이 디스플레이되지 않고, 브라우저가 전체 스크린 모드로 실행될 수 있다. 유사한 키오스크 모드를 지원하지 않을 수 있는 다른 브라우저들을 사용하여 본 발명의 양상들을 구현할 때, HDX Seamless VC 프로토콜의 기능들이 사용되어 클라이언트와 비-클라이언트 창 영역들을 구별할 수 있다. 이러한 방법으로, WorxWeb은 로컬 그래픽 디스플레이에서 원격 브라우저의 비-클라이언트 영역을 제거할 수 있고 클라이언트 영역들(예를 들어, 웹 컨텐츠를 포함할 수 있는)만을 표시할 수 있다.
확장 설계
본 발명의 하나 이상의 양상의 확장 설계 구현에서, 아래에서 논의될 하나 이상의 추가적인 진보된 특징들은 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션으로 통합함에 있어서 위에서 논의된 하나 이상의 특징과 조합될 수 있다.
예를 들어, 포함될 수 있는 하나의 진보된 기능은 복잡한 HDX 뷰 크기 조정이다. 특히, 원격 브라우저를 미리보기할 때, WorxWeb은 사용자에게 패닝 및 스케일링을위한 서로 다른 사용자 경험 옵션들을 제공할 수 있다. 예를 들어, 필요하다면 원격 세션의 자동 스케일링을 갖는 전체 화면(화면에 맞춤) 옵션이 제공될 수 있다. 추가적으로 또는 대안적으로, 실제 원격 세션 크기 및 스크롤바 옵션이 제공될 수 있다. 추가적으로 또는 대안적으로, 원격 세션 크기의 비율 및 스크롤바 옵션이 제공될 수 있다.
포함될 수 있는 다른 진보된 기능은 로컬 및 원격이 혼합된 탐색을위한 로컬 사용자 인터페이스 제어이다. 이 기능을 구현할 때, 목적은 일부 URL이 고유 WebView 제어를 통해 로컬로 처리되는 한편, 다른 URL들은 게시된 브라우저를 통해 원격으로 처리된다는 것을 알지 못해도 사용자가 로컬 및 원격 URL들을 원활하게 탐색할 수 있게 하는 것이다. 이러한 원활한 경험은 뒤로 그/또는 앞으로 등과 같은 사용자 인터페이스 버튼 제어에도 적용될 수 있다. WorxWeb은 컨텍스트에 따라 고유 WebView 제어 또는 게시된 브라우저 창 제어로 재지정할 수 있는 로컬 사용자 인터페이스 버튼 제어만 제공할 수 있다. 경우에 따라, WorxWeb은 이를 수행하기 위해 URL 전환 이력을 추적해야할 수도 있다. 데이터 구조는 URL 링크를 포함하는 객체들의 어레이를 저장하는데 사용될 수 있다; URL의 로컬 처리 대 원격 처리를 나타내는 부울린, 및 URL 전환 시퀀스(예를 들어, 로컬 및 원격 조합 스택)에서 현재 번호 및/또는 포인터.
원격 브라우저에서 실제로 발생하는 URL 링크 전환에 대한 자세한 내용을 보기 위해서는, BHO(Browser Helper Object) 또는 다른 브라우저 종속 플러그인을 원격 브라우저에서 사용하여 이 메타 데이터를 HDX VC를 통해 WorxWeb에 전달할 수 있다. 또한 WorxWeb은 HDX VC를 통해 원격 브라우저로 키보드 단축 키(예를 들어, 각각, Alt-왼쪽 화살표 키 및 Alt-오른쪽 화살표 키)를 보내도록 설계된 로컬 뒤로 및/또는 앞으로 제어을 통해 원격 뒤로 및/또는 앞으로 동작들을을 제어할 수 있다. 탐색 이력이 있는 컨텍스트(예를 들어, 위에서 설명한 데이터 구조 사용)에 따라, 동일한 로컬 뒤로 및/또는 앞으로 제어가 로컬 WebView 제어 탐색 세션에 적용될 수 있다.
경우에 따라서는, 뒤로 가기 버튼을 사용하여 역추적하는 것 이외의 원격 브라우저에서 로컬 브라우저로 돌아가는 URL 재지정이 없다는 단순한 가정이 있을 수 있다. 이 가정을 사용하면, 열리는 실제 원격 URL 링크들이 전달될 필요가 없으며, 원격 URL 전환 동작만 전달될 수 있다.
포함될 수 있는 다른 진보된 기능은 원격 브라우저에 대한 멀티-탭 지원이다. 이 기능을 구현할 때, 경우에 따라서는 HDX 세션 공유가 없을 수 있다. 예를 들어, 각 탭은 별도의 HDX 세션 내에서 처리될 수 있으며 별도의 원격 프로세스들을 추적 할 필요가 없을 수 있다. 위에서 논의된 설계들은 각각의 개별 탭마다 적용될 수 있다. 이러한 접근법의 몇몇 단점은 XenApp Server의 확장성에 영향을 줄 수 있으며 각 개별 세션마다 초기 HDX 접속 시간이 길어질 수 있다는 것일 수 있다.
원격 브라우저에 멀티-탭 지원을 구현하는 다른 경우들에서는, HDX 세션 공유가있을 수 있다. 예를 들어, 개별 원격 브라우저들은 각 로컬 탭에 대해 동일한 HDX 세션에서 시작될 수 있으며 기존의 원활한 VC 프로토콜(예를 들어, 게시된 어플리케이션들의 전체 계층 구조 및 원격 프로세스들 및 창들의 해당하는 트리 제공할 수 있는)을 통해 추적될 수 있다. 이러한 접근법은 더 복잡할 수 있지만, XenApp Server 확장성뿐만 아니라 처음 시작 이후의 각 후속브라우저에 대한 즉각적인 시작 시간에 유리할 수 있다.
일부 배열에서, 고유 브라우저를 확장하기 위해 브라우저 플러그인이 제공될 수 있다. 특히, WorxWeb은 모바일 플랫폼용 고유 사용자 지정 브라우저인 것으로 여겨질 수 있다. 동일한 개념이 데스크톱 운영 체제용 고유 브라우저들에도 적용될 수 있다. 예를 들어, URL들은 WINDOWS 운영 체제, MAC OS X 운영 체제 및/또는 LINUX 운영 체제에서 실행될 때 INTERNET EXPLORER, CHROME 및/또는 FIREFOX 용 브라우저 플러그인들을 통해 원격 호스팅된 브라우저로 재지정될 수 있다. 그러한 브라우저 플러그인은 원격용 CTRIX HTML5 수신기를 사용할 수 있고 위에 논의된 대로 원격 브라우저를 제어하기위한 사용자 정의 VC로 증강될 수 있다.
일부 배열에서, 모바일 "웹" 어플리케이션 특징들이 제공될 수 있다. 예를 들어, 모바일 "웹" 어플리케이션(예를 들어, 모바일 장치 스프링보드 상의 WorkDay)을 구현하려면 위에서 논의된 임베디드 HDX 브라우저 설계 및 모바일 HDX 고유 어플리케이션 설계와 WorxWeb의 조합 또는 교류가 요구될 수 있다. HDX 고유 어플리케이션들을 모바일 장치 스프링보드 상에 제공할 때, 템플릿 HDX SDK 어플리케이션은 게시된 어플리케이션(예를 들어, Microsoft WORD)에 해당하는 특정 고유 어플리케이션처럼 보이고 느끼도록 사용자 정의될 수 있다.
예를 들어 HDX 고유 어플리케이션은 MDM 또는 MAM을 통해 스프링보드 상에 배치될 수 있다. 그러한 어플리케이션은 DOC 및 DOCX에 해당하는 MICRSOFT Word(예를 들어, 해당 게시된 앱) 및 파일 유형 연관(FTA, file type associations)의 아이콘을 포함하도록 템플릿 HDX 어플리케이션으로부터 미리 구성될 수 있다. 그 어플리케이션은 또한 고유 어플리케이션을 시작할 때 MICROSOFT Word의 게시된 인스턴스 및/또는 원격 인스턴스에 HDX 세션을 시작하도록 미리 구성될 수도 있다.
본 발명의 하나 이상의 양상들을 구현함에 있어서, 템플릿 WorxWeb 어플리케이션은 WorkDay 웹 어플리케이션의 아이콘으로 구성될 수 있고, 시작 시, WorkDay 웹 어플리케이션을 가리키는 URL을 갖는 게시된 브라우저 및/또는 원격 브라우저에 HDX 세션을 개시하도록 더 구성될 수 있다. 이러한 방식으로, 사용자는 고유의 사용자 경험 및 전면적인 웹 어플리케이션 기능 모두를 제공받을 수 있다.
도 9는 본 발명의 하나 이상의 양상에 따른 모바일 "웹" 어플리케이션의 일례를 도시한다.
도 10은 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 방법을 도시한다. 일부 실시 예에서, 도 10에 도시된 방법은 도 1 내지 도 6과 관련하여 위에서 논의된 컴퓨터 시스템 아키텍처, 원격 액세스 시스템 아키텍처, 가상화(하이퍼바이저) 시스템 아키텍처, 클라우드 기반 시스템 아키텍처 및/또는 기업 모빌리티 관리 시스템들의 하나 이상의 요소를 통합, 이용 및/또는 포함하는 컴퓨팅 플랫폼에 의해 수행될 수 있다. 예를 들어, 도 10에 도시된 방법은 적어도 하나의 프로세서, 메모리 및 통신 인터페이스를 갖는 컴퓨팅 플랫폼에 의해 실행될 수 있다. 단계 1005에서, 컴퓨팅 플랫폼은 기본적으로 지원되지 않는 URL을 열라는 요청을 수신할 수 있다. 단계 1010에서, 기본적으로 지원되지 않는 URL을 열라는 요청을 수신한 것에 응답하여, 컴퓨팅 플랫폼은 호스팅된 가상 브라우저 어플리케이션을 시작할 수 있다. 단계 1015에서, 컴퓨팅 플랫폼은 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 그래픽을 디스플레이할 수 있고, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 그래픽은 기본적으로 지원되지 않는 URL과 연관된 컨텐츠를 포함할 수 있다.
도 11은 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하기 위한 예시적인 컴퓨팅 환경을 도시한다. 도 11을 참조하면, 컴퓨팅 환경(1100)은 사용자 컴퓨팅 장치(1110), 기업 서버 인프라 구조(1120), 가상화 서버 인프라 구조(1130) 및 네트워크(1150)를 포함할 수 있다. 사용자 컴퓨팅 장치(1110), 기업 서버 인프라 구조(1120) 및 가상화 서버 인프라 구조(1130)는 하나 이상의 프로세서, 메모리 및/또는 통신 인터페이스 등과 같은 하나 이상의 물리적 구성요소를 포함할 수 있다. 또한, 사용자 컴퓨팅 장치(1110)는 상술한 클라이언트 장치들, 모바일 장치들 및/또는 사용자 장치들의 하나 이상의 양상를 포함, 통합 및/또는 구현할 수 있다. 기업 서버 인프라 구조(1120)는 상술한 기업 시스템들 및/또는 관리 서버들의 하나 이상의 양상을 포함, 통합 및/또는 구현할 수 있다. 가상화 서버 인프라 구조(1130)는 상술된 가상화 서버들 및/또는 다른 가상화 인프라 구조의 하나 이상의 양상을 포함, 통합 및/또는 구현할 수 있다.
예를 들어, 사용자 컴퓨팅 장치(1110)는 프로세서(1111), 메모리(1112) 및 통신 인터페이스(1114)를 포함할 수 있다. 프로세서(1111)는 메모리(1112)에 저장된 명령들을 실행하여 사용자 컴퓨팅 장치(1110)가 탐색 기능을 제공할 수 있는 로컬 브라우저 어플리케이션(예를 들어, "로컬 브라우저"또는 "고유 브라우저(native browser)"로도 지칭될 수 있는)을 포함하여, 운영 체제 및/또는 하나 이상의 어플리케이션을 실행하는 것과 같은 하나 이상의 기능을 수행하게 할 수 있다. 메모리(1112)는 아래에서 더 상세하게 설명될 바와 같이, 상술한 보안 및/또는 관리형 브라우저 어플리케이션(예를 들어, 관리형 브라우저 어플리케이션(610))의 하나 이상의 양상을 포함, 통합 및/또는 구현할 수 있고 탐색 기능을 제공할 수 있는 로컬 브라우저 어플리케이션(1113)을 저장할 수 있다. 통신 인터페이스(1114)는 하나 이상의 네트워크 인터페이스를 포함할 수 있으며,이를 통해 사용자 컴퓨팅 장치(1110)가 기업 서버 인프라 구조(1120), 가상화 서버 인프라 구조(1130) 및/또는 하나 이상의 다른 시스템 및/또는 장치와 같은, 하나 이상의 컴퓨팅 환경(1100) 내 하나 이상의 다른 시스템 및/또는 장치들과 통신할 수 있다.
기업 서버 인프라 구조(1120)는 (예를 들어, 하나 이상의 관리형 사용자 모바일 장치를 포함하여, 하나 이상의 관리형 장치에 대하여) 하나 이상의 모바일 장치 관리 정책, 모바일 어플리케이션 관리 정책 및/또는 다른 기업 정책이 정의, 적용, 시행, 업데이트, 디스에이블 및/또는 그 외 통제될 수 있는 하나 이상의 정책 관리 시스템(1121)을 포함 및/또는 제공할 수 있다. 가상화 서버 인프라 구조(1130)는 호스팅된 브라우저 어플리케이션(1131)(예를 들어, 위에서 논의된 호스팅, 원격 및/또는 가상화된 어플리케이션들과 유사한, 원격 및/또는 가상 어플리케이션 일 수 있고, 예를 들어, 이하에서 더 상세히 설명될 바와 같이, 하나 이상의 사용자 장치에 기본적으로 지원되지 않는 컨텐츠를 렌더링 및/또는 제공하는데 사용될 수 있는)을 포함, 실행 및/또는 제공할 수 있다. 네트워크(1150)는 하나 이상의 근거니 네트워크, 광역 네트워크, 공용 네트워크, 사설 네트워크 및/또는 서브 네트워크를 포함할 수 있으며, 사용자 컴퓨팅 장치(1110), 기업 서버 인프라 구조(1120), 가상화 서버 인프라 구조(1130)를 상호 접속시킬 수 있다.
도 12a 내지 도 12f는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하기 위한 예시적인 이벤트 시퀀스를 도시한다. 도 12a를 참조하면, 단계 1201에서, 기업 서버 인프라 구조(1120)는 (예를 들어, 하나 이상의 정책 관리자 및/또는 다른 관리 사용자로부터) 하나 이상의 정책을 정의하는 입력을 수신할 수 있다. 예를 들어, 기업 서버 인프라 구조(1120)는 하나 이상의 모바일 장치 관리 정책, 하나 이상의 모바일 장치 어플리케이션 정책 및/또는 하나 이상의 다른 기업 정책(예를 들어, 사용자 컴퓨팅 장치(1110)의 사용자가 고용 및/또는 그 외 연관되는 기업 조직과 같은 기업 서버 인프라 구조(1120)를 운영하는 조직에 특유할 수 있고/있거나 그 외 연관될 수 있는)을 정의하는 입력을 수신할 수 있다. 일부 상황에서, 단계(1201)에서 정의된 하나 이상의 정책은 아래에서 더 상세히 설명되는 바와 같이, 로컬 브라우저 대신에 호스팅된 브라우저상에서 열릴 하나 이상의 기본적으로 지원되지 않는 URL을 지정할 수 있다.
단계(1202)에서, 기업 서버 인프라 구조(1120)는 (예를 들어, 단계(1201)에서 정의된 하나 이상의 정책에 기초하여) 하나 이상의 사용자 장치에 프로비저닝할 수 있다. 예를 들어, 단계(1202)에서, 기업 서버 인프라 구조(1120)는 하나 이상의 정책을 그러한 사용자 장치들에 프로비저닝하기 위해, 사용자 컴퓨팅 장치(1110) 및/또는 하나 이상의 다른 사용자 장치를 포함하여, 하나 이상의 사용자 장치에 하나 이상의 새로운 정책 및/또는 정책 업데이트를 보낼 수 있다.
단계 1203에서, 사용자 컴퓨팅 장치(1110)는 기업 서버 인프라 구조(1120)로부터 하나 이상의 정책을 수신할 수 있다. 예를 들어, 단계 1203에서, 사용자 컴퓨팅 장치(1110)는 통신 인터페이스(예를 들어, 통신 인터페이스(1114))를 통해, 기업 서버(예를 들어, 기업 서버 인프라 구조(1120))로부터, 하나 이상의 기업 정책을 수신할 수 있고, 하나 이상의 기업 정책에는 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 하나 이상의 기업 정책이 포함될 수 있다. 아래에서 보다 상세하게 설명될 바와 같이, 그러한 기업 정책을 시행하는 것은 그러한 기본적으로 지원되지 않는 URL이 사용자 컴퓨팅 장치(1110)상에서 요청될 때 사용자 컴퓨팅 장치(1110)가 호스팅된 브라우저 세션을 시작하도록 지시, 제어 및/또는 그 외 그렇게 하게 하여, 기본적으로 지원되지 않는 URL에 대응하는 컨텐츠가 호스팅된 세션에서 원격으로 렌더링되고(예를 들어, 가상화 서버 인프라 구조(1130)에 의해) 사용자 장치(예를 들어, 사용자 컴퓨팅 장치(1110)) 상에서 로컬로 디스플레이될 수 있게 한다.
단계 1204에서, 사용자 컴퓨팅 장치(1110)는 기업 서버 인프라 구조(1120)로부터 수신된 하나 이상의 정책을 저장할 수 있다. 예를 들어, 단계 1204에서, 사용자 컴퓨팅 장치(1110)는 적어도 하나의 정책 관리 에이전트에 의해 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110)) 상에서 시행하기 위한 하나 이상의 기업 정책을 저장할 수 있다. 이러한 정책 관리 에이전트는 사용자 컴퓨팅 장치(1110)상에서 실행되고/거나 사용자 컴퓨팅 장치(1110)에 의해 실행될 수 있으며 위에서 논의된 클라이언트 에이전트(예를 들어, 클라이언트 에이전트(604))의 하나 이상의 양상을 포함, 통합 및/또는 구현할 수 있다. 추가적으로 또는 대안적으로, 그러한 정책 관리 에이전트는 사용자 컴퓨팅 장치(1110) 상의 로컬 브라우저 및/또는 사용자 컴퓨팅 장치(1110) 상의 기업 포털 어플리케이션에 통합될 수 있다(예를 들어, 그러한 로컬 브라우저 자체가 통합될 수 있다).
도 12b를 참조하면, 단계 1205에서, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)의 사용자를 인증할 수 있다. 예를 들어, 단계 1205에서, 사용자 컴퓨팅 장치(1110)는 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))의 사용자를 인증할 수 있다. 사용자 컴퓨팅 장치(1110)는 사용자에 의해 입력된 사용자 이름, 사용자에 의해 입력된 패스워드, 사용자에 의해 제공된 생체 입력 및/또는 사용자에 의해 제공된 다른 입력을 검증하는 것에 기초하여 사용자를 인증할 수 있다. 단계 1206에서, 사용자 컴퓨팅 장치(1110)는 단계 1205에서 인증된 사용자와 관계 및/또는 그 외 연관된 하나 이상의 인증서를 캐싱할 수 있다. 예를 들어, 단계 1206에서, 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))의 사용자를 인증하는 것에 기초하여, 사용자 컴퓨팅 장치(1110)는 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))의 사용자와 연관된 하나 이상의 인증서를 캐싱할 수 있다. 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))의 사용자와 연관된 하나 이상의 인증 자격 증명을 캐싱함에 있어서, 사용자 컴퓨팅 장치(1110)는 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))의 사용자와 연관된 기업 사용자 계정에 관계된 하나 이상의 싱글 사인-온(SSO, single sign-on) 자격 증명을 키 체인에 저장 및/또는 그 외 캐싱할수 있다. 일부 예에서, 그러한 싱글 사인-온(SSO) 자격 증명은 사용자 컴퓨팅 장치(1110)에 의해 사용 가능할 수 있고/거나 사용자 컴퓨팅 장치(1110)가 가상화 서버 인프라 구조(1130)와 같은 가상화 서버에 로그인하여 기업 사용자 계정에 링크되어 있는 호스팅된 브라우저 세션을 시작하게 할 수 있다.
단계 1207에서, 사용자 컴퓨팅 장치(1110)는 제1 URL에 대한 요청을 수신할 수 있다. 예를 들어, 단계 1207에서, 사용자 컴퓨팅 장치(1110)는 제1 URL을 열라는 요청을 수신할 수 있다. 그러한 요청은 예를 들어, 사용자 컴퓨팅 장치(1110)의 사용자로부터 수신된 사용자 입력에 대응하고/하거나 포함될 수 있다. 단계 1208에서, 사용자 컴퓨팅 장치(1110)는 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 예를 들어, 단계 1208에서, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)에 의해 유지 및/또는 결정되는 하나 이상의 정책 및/또는 다른 정보에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다.
일부 실시 예에서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것는 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것을 포함할 수 있다. 예를 들어, 제1 URL이 기본적으로 지원되지 않는다고 결정할 때, 사용자 컴퓨팅 장치(1110)는 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 그러한 기업 정책은 예를 들어, 기본적으로 지원되지 않는 URL들, 기본적으로 지원되는 URL들 및/또는 다른 URL들의 블랙리스트 및/또는 화이트리스트를 정의할 수 있다. 또한, 사용자 컴퓨팅 장치(1110)는 예를 들어, 제1 URL이 적어도 하나의 기업 정책에 의해 식별되고/되거나 적어도 하나의 기업 정책에 의해 지정된 기본적으로 지원되지 않는 URL 리스트에 포함되는 것에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있고, 이러한 결정은 사용자 컴퓨팅 장치(1110)가 아래에서 보다 상세히 설명될 바와 같이, 제1 URL과 연관된 컨텐츠를 렌더링하기 위해 호스팅된 세션을 시작하게 할 수 있다.
일부 실시 예에서, 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것은 제1 URL와 연관된 하나 이상의 요소의 로딩 실패를 검출하는 것에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것을 포함할 수 있다. 예를 들어, 제1 URL이 기본적으로 지원되지 않는다고 결정할 때, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)가 제1 URL과 연관된 하나 이상의 요소의 로딩 실패를 검출하는 것에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 예를 들어, 사용자 컴퓨팅 장치(1110)는 처음에 제1 URL에 액세스하려고 시도할 수 있고, 그 후 제1 URL와 연관된 하나 이상의 콘텐트 아이템, 스크립트, 플러그-인 및/또는 다른 요소가 로딩될 수 없고/없거나 그 외 로딩에 실패한 것을 검출할 수 있다. 제1 URL와 연관된 하나 이상의 컨텐츠 아이템, 스크립트, 플러그-인 및/또는 다른 요소가 로딩될 수 없고/없거나 그 외 로딩에 실패한 것을 검출하는 것에 응답하여, 사용자 컴퓨팅 장치(1110)는 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다(예를 들어, 사용자 컴퓨팅 장치(1110)가 아래에서 상세히 설명될 바와 같이, 제1 URL와 연관된 컨텐츠를 렌더링하기 위해 호스팅된 세션을 시작하게 할 수 있다).
일부 실시 예에서, 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것은 제1 URL이 호스팅된 웹 어플리케이션과 연관된 스터브 어플리케이션(stub application)에 대응한다는 것을 식별하는 것에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것을 포함할 수 있다. 예를 들어, 제1 URL이 기본적으로 지원되지 않는다고 결정할 때, 사용자 컴퓨팅 장치(1110)는 제1 URL이 호스팅된 웹 어플리케이션과 연관된 스터브 어플리케이션에 대응한다는 것을 식별하는 것에 기초하여 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다 . 그러한 스터브 어플리케이션은 예를 들어, 로컬 브라우저에서 제1 URL을 열도록 구성될 수 있고, 로컬 브라우저가 제1 URL을 기본적으로 지원되지 않는 것으로 식별하게 할 수 있는 하나 이상의 명령줄 옵션 및/또는 다른 임베디드 명령을 포함할 수 있으며, 이는 결과적으로 아래에서 더 상세하게 설명될 바와 같이, 사용자 컴퓨팅 장치(1110)가 제1 URL과 연관된 컨텐츠를 렌더링하기 위해 호스팅된 세션을 시작하게 할 수 있다.
도 12c를 참조하면, 단계 1209에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)에 접속할 수 있다(예를 들어, 단계 1208에서 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 응답하여 그리고/또는 그 외 기초하여). 단계 1210에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 세션에서 호스팅된 브라우저를 시작할 수 있다(예를 들어, 가상화 서버 인프라 구조(1130)에 가상화 서버 인프라 구조(1130)에 의해 제공되는 호스팅된 세션에서 호스팅된 브라우저의 인스턴스를 시작할 것을 지시, 명령 및/또는 그 외 제어함으로써). 예를 들어, 단계 1210에서, 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 사용자 컴퓨팅 장치(1110)는 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션(예를 들어, 호스팅된 브라우저 어플리케이션(1131))을 시작할 수 있다.
일부 실시 예에서, 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하는 것은 가상화 서버에의 접속을 수립하는 것 및 하나 이상의 캐싱된 인증 자격 증명을 사용하여 가상화 서버를 인증하는 것을 포함할 수 있다. 예를 들어, 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작할 때, 사용자 컴퓨팅 장치(1110)는 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))에의 접속을 수립하고 하나 이상의 캐싱된 인증 자격 증명(예를 들어, 단계 1206에서 캐싱된 자격 증명)을 사용하여 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))를 인증할 수 있다.
일부 실시 예에서, 하나 이상의 캐싱된 인증 자격 증명을 사용하여 가상화 서버를 인증하는 것은 기업 사용자 계정에 관계된 적어도 하나의 캐싱된 싱글 사인-온(SSO) 자격 증명을 사용하여 가상화 서버를 인증하는 것을 포함할 수 있다. 예를 들어, (예를 들어, 단계 1210에서) 하나 이상의 캐싱된 인증 자격 증명을 사용하여 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))를 인증할 때, 사용자 컴퓨팅 장치(1110)는 기업 사용자 계정에 관계된 적어도 하나의 캐싱된 싱글 사인-온(SSO)을 사용하여 가상화 서버를 인증할 수 있다. 예를 들어, 사용자 컴퓨팅 장치(1110)는 검증을 위해 가상 서버 인프라 구조(1130)에 그러한 SSO 자격 증명을 제출함으로써 기업 사용자 계정에 관계된 적어도 하나의 캐싱된 싱글 사인-온(SSO) 자격 증명을 사용하여 가상화 서버를 인증할 수 있고, SSO 자격 증명은 전술한 바와 같이, 단계 1206에서 사용자 컴퓨팅 장치(1110)에 의해 캐싱되었을 수 있다. 추가적으로 또는 대안적으로, SSO 자격 증명은 사용자 컴퓨팅 장치(1110)의 사용자와 연관되고/되거나 사용자 컴퓨팅 장치(1110)의 사용자가 하나 이상의 보호된 기업 자원들, 이를테면 기업 어플리케이션 스토어, 기업 파일 공유 플랫폼, 기업 클라우드 저장 플랫폼 및/또는 기타 기업 자원들에 선택적으로 액세스할 수 있게 하는 기업 사용자 계정에 관계될 수 있다.
단계 1211에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 호스팅된 브라우저 그래픽을 수신할 수 있다. 예를 들어, 단계 1211에서, 사용자 컴퓨팅 장치(1110)는 통신 인터페이스(예를 들어, 통신 인터페이스(1114))를 통해, 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))로부터, 호스팅된 가상 브라우저 어플리케이션(예를 들면, 호스트된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 수신할 수 있다. 또한, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스팅된 브라우저 그래픽은 제1 URL와 연관된 컨텐츠를 포함할 수 있다. 따라서, 가상화 서버 인프라 구조(1130) 상의 호스팅된 브라우저 어플리케이션(1131)은 사용자 컴퓨팅 장치(1110) 상에서 기본적으로 지원되지 않는 제1 URL와 연관된 컨텐츠에 액세스 및/또는 렌더링할 수 있고, 그 후, 가상화 서버 인프라 구조(1130) 상의 호스팅된 브라우저 어플리케이션(1131)은 제1 URL과 연관된 렌더링된 컨텐츠를 (예를 들어, 로컬 브라우저 어플리케이션(1113)과 같은 사용자 컴퓨팅 장치(1110)상의 로컬 브라우저에) 디스플레이할 사용자 컴퓨팅 장치(1110)에 송신할 수 있다.
단계 1212에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 수신된 호스팅된 브라우저 그래픽을 제공할 수 있다. 예를 들어, 단계 1212에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 제공할 수 있다. 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 호스팅된 브라우저 그래픽을 제공함에 있어서, 사용자 컴퓨팅 장치(1110)는 도 13에 도시된 그래픽 사용자 인터페이스(1300)와 유사한 그래픽 사용자 인터페이스를 디스플레이 및/또는 그 외 다른 방법으로 제공할 수 있다. 도 13에 보여지는 바와 같이, 그래픽 사용자 인터페이스(1300)는 로컬 브라우저 어플리케이션과 연관되고, 또한 가상화 서버 인프라 구조(1130) 상의 호스팅된 브라우저에 의해 렌더링되고 사용자 컴퓨팅 장치(1110) 상의 로컬 브라우저 어플리케이션에 의해 디스플레이되는 사용자 인터페이스 요소, 제어 및/또는 다른 컨텐츠(예를 들어, 탭 목록, 뒤로 버튼, 앞으로 버튼 및/또는 다른 요소들)를 포함할 수 있다.
일부 실시 예에서, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 제공하는 것은 탐색 활동과 연관된 탐색 전환 스택을 유지하는 것을 포함할 수 있다. 예를 들어, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 제공함에 있어서, 사용자 컴퓨팅 장치(1110)는 탐색 활동과 연관된 탐색 전환 스택을 유지할 수 있다. 탐색 활동과 연관된 탐색 전환 스택을 유지함에 있어서, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저에서의 로컬 탐색 활동 및 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 가상 브라우저에서의 원격 탐색 활동을 포함하여, 액세스되는 페이지 및/도는 페이지들 간 전환을 식별하는 정보를 추적 및/또는 저장할 수 있다 사용자 컴퓨팅 장치(1110)는 로컬 브라우저 및/또는 호스팅된 브라우저에서 뒤고 그리고/또는 앞으로 네비게이션 기능, 이력 추적 기능 및/또는 다른 기능을 가능하게 하는 그러한 탐색 전환 스택을 유지할 수 있다. 일부 예에서, 그러한 탐색 전환 스택은 사용자 컴퓨팅 장치(1110) 상에서 유지될 수 있는 탐색 전환 스택에 더하여 또는 그 대신에 가상화 서버 인프라 구조(1130) 상에서 유사하게 유지될 수 있다.
도 12d를 참조하면, 단계 1213에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 브라우저 그래픽(예를 들어, 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저에 의해 호스팅될 수 있는)과 상호 작용하는 입력(예를 들어, 사용자 컴퓨팅 장치(1110)의 사용자로부터의)을 수신할 수 있다. 예를 들어, 단계 1213에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스팅된 브라우저 그래픽과 상호 작용하고 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))에 의해 제공되는 입력을 수신할 수 있다. 그러한 입력은, 예를 들어, 사용자가 호스팅된 브라우저 그래픽에 포함된 링크를 호출 및/또는 그 외 선택, 호스팅된 브라우저 그래픽에 포함된 폼 또는 다른 제어와 상호 작용 및/또는 그 외 호스팅된 브라우저 그래픽에 포함된 요소와 상호 작용하는 것을 포함할 수 있다.
일부 실시 예에서, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 컴퓨팅 장치에 의해 제공되는 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신하는 것은 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 컴퓨팅 장치에 의해 제공되는 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력에 기초하여 탐색 전환 스택을 업데이트할 수 있다. 예를 들어, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130)상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되고 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))에 의해 제공되는 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신함에 있어서, 사용자 컴퓨팅 장치(1110)는 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130)상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되고 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))에 의해 제공되는 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력에 기초하여 탐색 전환 스택을 업데이트할 수 있다. 예를 들어, 입력이 링크의 선택 및/또는 링크와 연관된 새로운 페이지로의 전환을 포함하는 경우, 사용자 컴퓨팅 장치(1110)는 링크의 선택 및/또는 링크와 연결된 새 페이지로의 전환을 식별하는 정보를 포함하도록 탐색 전환 스택을 업데이트할 수 있다.
단계 1214에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 가상화 서버 인프라 구조(1130)에 송신할 수 있다. 예를 들어, 단계 1214에서, 사용자 컴퓨팅 장치(1110)는 통신 인터페이스(예를 들어, 통신 인터페이스(1114))를 통해, 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))로, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되고 컴퓨팅 장치(예를 들어, 사용자 컴퓨팅 장치(1110))에 의해 제공되는 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 송신할 수 있다. 단계 1215에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 업데이트된 브라우저 그래픽을 수신할 수 있다. 예를 들어, 단계 1215에서, 사용자 컴퓨팅 장치(1110)는 통신 인터페이스(예를 들어, 통신 인터페이스(1114))를 통해, 가상화 서버(예컨대, 가상화 서버 인프라 구조(1130))로부터, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 업데이트된 호스팅된 브라우저 그래픽을 수신할 수 있다. 예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131)은 사용자 컴퓨팅 장치(1110)로부터 수신된 입력에 기초하여 업데이트된 그래픽을 렌더링 및/또는 그 외 생성할 수 있으며, 그 후 그러한 업데이트된 그래픽을 디스플레이를 위해 사용자 컴퓨팅 장치(1110)로 다시 송신할 수 있다. 단계 1216에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 수신되는 업데이트된 브라우저 그래픽을 제공할 수 있다. 예를 들어, 단계 1216에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))에 의해 생성되는 업데이트된 호스팅된 브라우저 그래픽을 제공할 수 있다.
도 12e를 참조하면, 단계 1217에서, 사용자 컴퓨팅 장치(1110)는 제2 URL에 대한 요청을 수신할 수 있다. 예를 들어, 단계(1217)에서, 사용자 컴퓨팅 장치(1110)는 제2 URL을 열라는요청을 수신할 수 있다. 그러한 요청은 예를 들어, 사용자 컴퓨팅 장치(1110)의 사용자로부터 수신된 사용자 입력에 대응하고/하거나 포함될 수 있다. 일부 예에서, 사용자 컴퓨팅 장치(1110)는 제1 URL와 연관된 호스팅된 그래픽이 제공되는 탭과는 다른 새로운 탭에서 제2 URL을 열라는 요청을 수신할 수 있다. 추가적으로 또는 대안적으로, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저의 상이한 탭들 사이에 디스플레이된 컨텐츠 및/또는 탐색 전환을 추적할 수 있다.
단계 1218에서, 사용자 컴퓨팅 장치(1110)는 제2 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 예를 들어, 단계 1218에서, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)가 제1 URL이 기본적으로 지원되지 않음을 어떻게 결정했는지와 유사하게(예를 들어, 하나 이상의 정책에 기초하여, 로딩 실패를 검출하는 것에 기초하여, 제2 URL이 호스팅된 웹 어플리케이션과 연관된 스터브 어플리케이션에 대응함을 식별하는 것에 기초하여, 그리고/또는 사용자 컴퓨팅 장치(1110)에 의해 유지 및/또는 결정되는 다른 정보에 기초하여) 제2 URL이 기본적으로 지원되지 않는다고 결정할 수 있다.
단계 1219에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 세션에서 호스팅된 브라우저의 추가 인스턴스를 시작할 수 있다(예를 들어, 가상화 서버 인프라 구조(1130)에 가상화 서버 인프라 구조(1130)에 의해 제공되는 호스팅된 세션에서 호스팅된 브라우저의 다른 인스턴스를 시작할 것을 지시, 명령 및/또는 그 외 제어함으로써). 예를 들어, 단계(1219)에서, 제2 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 사용자 컴퓨팅 장치(1110)는 가상화 서버(예를 들어, 가상화 서버 인프라 구조 1130))에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션(예를 들어, 호스팅된 브라우저 어플리케이션(1131))의 추가 인스턴스를 시작할 수 있다.
단계 1220에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 호스팅된 브라우저 그래픽을 수신할 수 있다. 예를 들어, 단계 1220에서, 사용자 컴퓨팅 장치(1110)는 통신 인터페이스(예를 들어, 통신 인터페이스(1114))를 통해, 가상화 서버(예를 들어, 가상화 서버 인프라 구조(1130))로부터, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 호스팅된 브라우저 어플리케이션(1131))의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 수신할 수 있다. 또한, 제2 호스팅된 브라우저 그래픽은 제2 URL와 연관된 컨텐츠를 포함할 수 있다. 따라서, 제1 URL와 마찬가지로, 가상화 서버 인프라 구조(1130) 상의 호스팅된 브라우저 어플리케이션(1131)은 사용자 컴퓨팅 장치(1110) 상에서 기본적으로 지원되지 않는 제2 URL와 연관된 컨텐츠에 액세스 및/또는 렌더링할 수 있으고, 그 후, 가상화 서버 인프라 구조(1130) 상의 호스팅된 브라우저 어플리케이션(1131)은 제2 URL과 연관된 컨텐츠를 (예를 들어, 로컬 브라우저 어플리케이션(1113)과 같은 사용자 컴퓨팅 장치(1110)상의 로컬 브라우저에) 디스플레이할 사용자 컴퓨팅 장치(1110)에 송신할 수 있다.
도 12f를 참조하면, 단계 1221에서, 사용자 컴퓨팅 장치(1110)는 가상화 서버 인프라 구조(1130)로부터 수신된 호스팅된 브라우저 그래픽을 제공할 수 있다. 예를 들어, 단계 1221에서, 사용자 컴퓨팅 장치(1110)는 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 제공할 수 있다.
일부 실시 예에서, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 제공하는 것은 로컬 브라우저 어플리케이션의 제1 탭에 제1 호스팅된 브라우저 그래픽을 제공하는 것을 포함할 수 있고, 호스팅된 가상 브라우저 어플리케이션의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 제공하는 것은 로컬 브라우저 어플리케이션의 제1 탭과 상이한 로컬 브라우저 어플리케이션의 제2 탭에 제2 호스팅된 브라우저 그래픽을 제공하는 것을 포함할 수 있다. 예를 들어, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스트된 브라우저 어플리케이션(1131))에 의해 생성되는 제1 호스트된 브라우저 그래픽을 제공할 때, 사용자 컴퓨팅 장치(1110)는 로컬 브라우저 어플리케이션의 제1 탭(예를 들어, 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저 어플리케이션(1113)의 제1 탭)에 제1 호스팅된 브라우저 그래픽을 제공할 수 있다. 또한, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 제공할 때, 사용자 컴퓨팅 장치(1110)는 로컬 브라우저 어플리케이션의 제1 탭과는 상이한 로컬 브라우저 어플리케이션의 제2 탭(예를 들어, 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저 어플리케이션(1113)의 제2 탭)에 제2 호스팅된 브라우저 그래픽을 제공할 수 있다.
일부 실시 예에서, 호스팅된 가상 브라우저 어플리케이션의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 제공하는 것은 로컬 브라우저 어플리케이션의 제1 탭에서의 제1 탐색 활동과 연관된 제1 탐색 전환 스택을 유지하는 것 및 로컬 브라우저 어플리케이션의 제2 탭에서의 제2 탐색 활동과 연관된 제2 탐색 전환 스택을 유지하는 것을 포함할 수 있다. 예를 들어, 호스팅된 가상 브라우저 어플리케이션(예를 들어, 가상화 서버 인프라 구조(1130) 상에서 실행되는 호스팅된 브라우저 어플리케이션(1131))의 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 제공할 때, 사용자 컴퓨팅 장치(1110)는 로컬 브라우저 어플리케이션의 제1 탭에서의 제1 탐색 활동과 연관된 제1 탐색 전환 스택 및 로컬 브라우저 어플리케이션의 제2 탭에서의 제2 탐색 활동과 연관된 제2 탐색 전환 스택을 유지할 수 있다. 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)가 전술한 예들에서와 같이 전환 스택을 유지할 수 있는 방법과 유사하게 그러한 전환 스택을 유지할 수 있다.
단계 1222에서, 사용자 컴퓨팅 장치(1110)는 제3 URL에 대한 요청을 수신할 수 있다. 예를 들어, 단계 1222에서, 사용자 컴퓨팅 장치(1110)는 제3 URL을 열라는요청을 수신할 수 있다. 그러한 요청은 예를 들어, 사용자 컴퓨팅 장치(1110)의 사용자로부터 수신된 사용자 입력에 대응하고/하거나 포함될 수 있다. 일부 예에서, 사용자 컴퓨팅 장치(1110)는 제1 URL와 연관된 호스팅된 그래픽 및/또는 제2 URL과 관련된 호스팅된 그래픽이 제공되는 탭들과는 다른 새로운 탭에 제3 URL을 열라는 요청을 수신할 수 있다. 추가적으로 또는 대안적으로, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110) 상에서 실행되는 로컬 브라우저의 상이한 탭들 사이에 디스플레이된 컨텐츠 및/또는 탐색 전환을 추적할 수 있다.
단계 1223에서, 사용자 컴퓨팅 장치(1110)는 제3 URL이 기본적으로 지원되는 것으로 결정할 수 있다. 예를 들어, 단계 1223에서, 사용자 컴퓨팅 장치(1110)는 사용자 컴퓨팅 장치(1110)에 의해 유지 및/또는 결정되는 하나 이상의 정책 및/또는 다른 정보에 기초하여 제3 URL이 기본적으로 지원되는 것으로 결정할 수 있다. 단계 1224에서, 사용자 컴퓨팅 장치(1110)는 제3 URL에 액세스할 수 있다. 예를 들어, 단계 1224에서, 제3 URL이 기본적으로 지원되는 것으로 결정하는 것에 기초하여, 사용자 컴퓨팅 장치(1110)는 로컬 브라우저 어플리케이션(예컨대, 로컬 브라우저 어플리케이션(1113))을 사용하여 제3 URL에 액세스할 수 있다. 제3 URL에 액세스할 때, 사용자 컴퓨팅 장치(1110)는 예를 들어, 제3 URL을 기본적으로 열고 그것과 연관된 컨텐츠를 제공할 수 있다. 예를 들어, 제3 URL에 액세스할 때, 사용자 컴퓨팅 장치(1110)는 도 14에 도시된 그래픽 사용자 인터페이스(1400)와 유사한 그래픽 사용자 인터페이스를 디스플레이 및/또는 그 외 제공할 수 있다. 도 14에 보여지는 바와 같이, 그래픽 사용자 인터페이스(1400)는 로컬 브라우저 어플리케이션과 연관되고 또한 사용자 컴퓨팅 장치(1110)상의 로컬 브라우저 어플리케이션에 의해 렌더링되고 사용자 컴퓨팅 장치(1110) 상의 로컬 브라우저 어플리케이션에 의해 디스플레이되는 사용자 인터페이스 요소, 제어 및/또는 다른 컨텐츠(예를 들어, 탭 목록, 뒤로 버튼, 앞으로 버튼 및/또는 다른 요소들)를 포함할 수 있다.
도 15는 본원에 기술된 하나 이상의 예시적인 양상에 따라 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 예시적인 방법을 도시한다. 도 15를 참조하면, 단계 1505에서, 적어도 하나의 프로세서, 통신 인터페이스및 메모리를 갖는 컴퓨팅 장치는 제1 URL을 열라는 요청을 수신할 수 있다. 단계 1510에서, 컴퓨팅 장치는 제1 URL이 기본적으로 지원되지 않는다고 결정할 수 있다. 단계 1515에서, 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 컴퓨팅 장치는 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작할 수 있다. 단계 1520에서, 컴퓨팅 장치는 가상화 서버로부터, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 수신할 수 있고, 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽은 제1 URL와 연관된 컨텐츠를 포함할 수 있다. 단계 1525에서, 컴퓨팅 장치는 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 제공할 수 있다.
상술한 바와 같이, 본 발명의 다양한 양상은 가상 브라우저를 고유 브라우저 및 고유 웹 어플리케이션들로 통합하는 것에 관한 것이다. 본 발명이 구조적 특징들 및/또는 방법론적 동작들에 특정한 언어로 기술되었지만, 첨부된 청구범위에 정의된 주제가 반드시 상술한 특정 특징들 또는 동작들에 제한되는 것은 아니라는 것을 이해해야 한다. 더 정확하게는, 상술한 특정 특징들 및 동작들은 이하의 청구범위의 일부 예시적인 구현 예로서 설명된다.

Claims (22)

  1. 컴퓨팅 장치로서,
    적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 통신 가능하게 연결된 통신 인터페이스; 및
    컴퓨터 판독 가능한 명령들을 저장하는 메모리를 포함하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    제1 URL(uniform resource locator)을 열라는 요청을 수신하고;
    상기 제1 URL이 기본적으로 지원되지 않는다고 결정하고;
    상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하고;
    상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 제1 호스팅된 브라우저 그래픽을 수신하되, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 제1 호스팅된 브라우저 그래픽은 상기 제1 URL과 연관된 컨텐츠를 포함하는 것이며;
    상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 제1 호스팅된 브라우저 그래픽을 제공하도록 하는 것이고,
    상기 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하는 것은 상기 가상화 서버에의 접속을 확립하는 것, 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것, 및 상기 가상화 서버에 의해 호스팅되는 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션의 인스턴스를 시작하도록 상기 가상화 서버에 명령하는 것을 포함하는 것이며,
    상기 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것은 기업 사용자 계정에 링크된 적어도 하나의 캐싱된 싱글 사인온(SSO, single sign-on) 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것을 포함하는 것인, 컴퓨팅 장치.
  2. 제1항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것은 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것을 포함하는 것인, 컴퓨팅 장치.
  3. 제1항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것은 상기 제1 URL와 연관된 하나 이상의 요소의 로딩 실패를 검출하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는것을 포함하는 것인, 컴퓨팅 장치.
  4. 제1항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것은 상기 제1 URL이 호스팅된 웹 어플리케이션과 연관된 스터브 어플리케이션(stub application)에 대응한다는 것을 식별하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것을 포함하는 것인, 컴퓨팅 장치.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것은 탐색 활동과 관련된 탐색 전환 스택을 유지하는 것을 포함하는 것인, 컴퓨팅 장치.
  8. 제1항에 있어서, 상기 메모리는 추가 컴퓨터 판독 가능한 명령들을 저장하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    상기 제1 URL을 열라는 요청을 수신하기 전에,
    하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책을 포함하는 하나 이상의 기업 정책을 상기 통신 인터페이스를 통해 기업 서버로부터 수신하고;
    적어도 하나의 정책 관리 에이전트에 의해 상기 컴퓨팅 장치에서 시행하기 위한 상기 하나 이상의 기업 정책을 저장하도록 하는 것인, 컴퓨팅 장치.
  9. 제1항에 있어서, 상기 메모리는 추가 컴퓨터 판독 가능한 명령들을 저장하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    상기 제1 URL을 열라는 요청을 수신하기 전에,
    상기 컴퓨팅 장치의 사용자를 인증하고;
    상기 컴퓨팅 장치의 상기 사용자를 인증하는 것에 기초하여, 상기 컴퓨팅 장치의 상기 사용자와 연관된 하나 이상의 인증 자격 증명을 캐싱하도록 하는 것인, 컴퓨팅 장치.
  10. 제1항에 있어서, 상기 메모리는 추가 컴퓨터 판독 가능한 명령들을 저장하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신하고;
    상기 통신 인터페이스를 통해, 상기 가상화 서버에, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 송신하고;
    상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 업데이트된 호스팅된 브라우저 그래픽을 수신하며;
    상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 업데이트된 호스팅된 브라우저 그래픽을 제공하도록 하는 것인, 컴퓨팅 장치.
  11. 제10항에 있어서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력을 수신하는 것은 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되고 상기 컴퓨팅 장치에 의해 제공되는 상기 제1 호스팅된 브라우저 그래픽과 상호 작용하는 입력에 기초하여 탐색 전환 스택을 업데이트하는 것을 포함하는 것인, 컴퓨팅 장치.
  12. 제1항에 있어서, 상기 메모리는 추가 컴퓨터 판독 가능한 명령들을 저장하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    제2 URL을 열라는 요청을 수신하고;
    상기 제2 URL이 기본적으로 지원되지 않는다고 결정하고;
    상기 제2 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 상기 가상화 서버에 의해 호스팅되는 상기 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션의 추가 인스턴스를 시작하고;
    상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 제2 호스팅된 브라우저 그래픽을 수신하되, 상기 제2 호스팅된 브라우저 그래픽은 상기 제2 URL와 연관된 컨텐츠를 포함하는 것이며;
    상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공하도록 하는 것인, 컴퓨팅 장치.
  13. 제12항에 있어서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것은 로컬 브라우저 어플리케이션의 제1 탭에 상기 제1 호스팅된 브라우저 그래픽을 제공하는 것을 포함하고, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것은 상기 로컬 브라우저 어플리케이션의 상기 제1 탭과 상이한 상기 로컬 브라우저 어플리케이션의 제2 탭에 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것을 포함하는 것인, 컴퓨팅 장치.
  14. 제13항에 있어서, 상기 호스팅된 가상 브라우저 어플리케이션의 상기 추가 인스턴스에 의해 생성되는 상기 제2 호스팅된 브라우저 그래픽을 제공하는 것은 상기 로컬 브라우저 어플리케이션의 상기 제1 탭에서의 제1 탐색 활동과 연관된 제1 탐색 전환 스택을 유지하는 것 및 상기 로컬 브라우저 어플리케이션의 상기 제2 탭에서의 제2 탐색 활동과 연관된 제2 탐색 전환 스택을 유지하는 것을 포함하는 것인, 컴퓨팅 장치.
  15. 제12항에 있어서, 상기 메모리는 추가 컴퓨터 판독 가능한 명령들을 저장하며, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    제3 URL을 열라는 요청을 수신하고;
    상기 제3 URL이 기본적으로 지원된다고 결정하며;
    상기 제3 URL이 기본적으로 지원된다고 결정하는 것에 기초하여, 로컬 브라우저 어플리케이션을 사용하여 상기 제3 URL에 액세스하도록 하는 것인, 컴퓨팅 장치.
  16. 방법으로서,
    적어도 하나의 프로세서, 메모리 및 통신 인터페이스를 포함하는 컴퓨팅 장치에서:
    상기 적어도 하나의 프로세서에 의해, 제1 URL을 열라는 요청을 수신하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계;
    상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 상기 적어도 하나의 프로세서에 의해, 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 수신하는 단계로서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽은 상기 제1 URL과 연관된 컨텐츠를 포함하는, 상기 제1 호스팅된 브라우저 그래픽을 수신하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽을 제공하는 단계를 포함하고,
    상기 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하는 단계는 상기 가상화 서버에의 접속을 확립하는 단계, 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 단계, 및 상기 가상화 서버에 의해 호스팅되는 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션의 인스턴스를 시작하도록 상기 가상화 서버에 명령하는 단계를 포함하는 것이며,
    상기 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 단계는 기업 사용자 계정에 링크된 적어도 하나의 캐싱된 싱글 사인온(SSO, single sign-on) 자격 증명을 사용하여 상기 가상화 서버를 인증하는 단계를 포함하는 것인, 방법.
  17. 제16항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함하는 것인, 방법.
  18. 제16항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 상기 제1 URL와 연관된 하나 이상의 요소의 로딩 실패를 검출하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함하는 것인, 방법.
  19. 제16항에 있어서, 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계는 상기 제1 URL이 호스팅된 웹 어플리케이션과 연관된 스터브 어플리케이션에 대응한다는 것을 식별하는 것에 기초하여 상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 단계를 포함하는 것인, 방법.
  20. 명령들을 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능한 매체로서, 상기 명령들은 적어도 하나의 프로세서, 메모리 및 통신 인터페이스를 포함하는 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금:
    제1 URL을 열라는 요청을 수신하고;
    상기 제1 URL이 기본적으로 지원되지 않는다고 결정하고;
    상기 제1 URL이 기본적으로 지원되지 않는다고 결정하는 것에 기초하여, 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하고;
    상기 통신 인터페이스를 통해, 상기 가상화 서버로부터, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 제1 호스팅된 브라우저 그래픽을 수신하되, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅된 브라우저 그래픽은 상기 제1 URL과 연관된 컨텐츠를 포함하는 것이며;
    상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성되는 상기 제1 호스팅 브라우저 그래픽을 제공하도록 하는 것이고,
    상기 가상화 서버에 의해 호스팅되는 가상 세션에서 호스팅된 가상 브라우저 어플리케이션을 시작하는 것은 상기 가상화 서버에의 접속을 확립하는 것, 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것, 및 상기 가상화 서버에 의해 호스팅되는 가상 세션에서 상기 호스팅된 가상 브라우저 어플리케이션의 인스턴스를 시작하도록 상기 가상화 서버에 명령하는 것을 포함하는 것이며,
    상기 하나 이상의 캐싱된 인증 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것은 기업 사용자 계정에 링크된 적어도 하나의 캐싱된 싱글 사인온(SSO, single sign-on) 자격 증명을 사용하여 상기 가상화 서버를 인증하는 것을 포함하는 것인, 비일시적 컴퓨터 판독 가능한 매체.
  21. 제16항에 있어서, 상기 호스팅된 가상 브라우저 어플리케이션에 의해 생성된 상기 제1 호스팅된 브라우저 그래픽을 제공하는 단계는 탐색 활동과 관련된 탐색 전환 스택을 유지하는 단계를 포함하는 것인, 방법.
  22. 제16항에 있어서,
    상기 제1 URL을 열라는 요청을 수신하는 단계 이전에,
    상기 적어도 하나의 프로세서에 의해, 하나 이상의 기본적으로 지원되지 않는 URL을 정의하는 적어도 하나의 기업 정책을 포함하는 하나 이상의 기업 정책을 상기 통신 인터페이스를 통해 기업 서버로부터 수신하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 적어도 하나의 정책 관리 에이전트에 의해 상기 컴퓨팅 장치에서 시행하기 위한 상기 하나 이상의 기업 정책을 저장하는 단계를 포함하는 것인, 방법.
KR1020187033312A 2016-05-23 2017-05-22 가상 브라우저 통합 KR102188916B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662340028P 2016-05-23 2016-05-23
US62/340,028 2016-05-23
US15/472,798 2017-03-29
US15/472,798 US10334075B2 (en) 2016-05-23 2017-03-29 Virtual browser integration
PCT/US2017/033739 WO2017205239A1 (en) 2016-05-23 2017-05-22 Virtual browser integration

Publications (2)

Publication Number Publication Date
KR20180135945A KR20180135945A (ko) 2018-12-21
KR102188916B1 true KR102188916B1 (ko) 2020-12-09

Family

ID=60330560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033312A KR102188916B1 (ko) 2016-05-23 2017-05-22 가상 브라우저 통합

Country Status (6)

Country Link
US (1) US10334075B2 (ko)
EP (1) EP3465430B1 (ko)
JP (1) JP6775603B2 (ko)
KR (1) KR102188916B1 (ko)
CN (1) CN109074274B (ko)
WO (1) WO2017205239A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581823B2 (en) * 2016-03-21 2020-03-03 Vmware, Inc. Web client plugin manager in vCenter managed object browser
US10356621B2 (en) * 2016-05-23 2019-07-16 Citrix Systems, Inc. Browser plug-in for secure web access
US11003463B2 (en) * 2016-09-16 2021-05-11 Rocket Software, Inc. Virtual desktop
AU2018289562A1 (en) * 2017-06-22 2020-01-16 Jpmorgan Chase Bank, N.A. System and method for implementing an interbank information network
US10666706B2 (en) 2017-11-22 2020-05-26 Citrix Systems, Inc. Rendering a web application in a cloud service
US10606617B2 (en) * 2018-03-08 2020-03-31 Citrix Systems, Inc. Instant virtual application launch
US10855686B2 (en) 2018-04-09 2020-12-01 Bank Of America Corporation Preventing unauthorized access to secure information systems using multi-push authentication techniques
US11070630B2 (en) * 2018-05-04 2021-07-20 Citrix Systems, Inc. Computer system providing SAAS application session state migration features and related methods
US11163424B2 (en) 2018-06-25 2021-11-02 Citrix Systems, Inc. Unified display for virtual resources
US20190394255A1 (en) * 2018-06-25 2019-12-26 Citrix Systems, Inc. Intermediated retrieval of networked content
US11190573B2 (en) * 2018-07-25 2021-11-30 Vmware, Inc. Techniques for improving implementation of a remote browser within a local browser
US10924545B2 (en) 2018-10-10 2021-02-16 Citrix Systems, Inc. Computer system providing mirrored SAAS application sessions and related methods
US11165871B2 (en) * 2019-02-01 2021-11-02 Citrix Systems, Inc. Computer system providing context-based Software as a Service (SaaS) application session switching and related methods
PL3737108T3 (pl) * 2019-05-10 2021-12-20 Jt International S.A. Konfigurowanie osobistego urządzenia obliczeniowego do komunikacji z urządzeniem do wytwarzania aerozolu
US11442599B2 (en) 2019-06-07 2022-09-13 Microsoft Technology Licensing, Llc Systems and methods for hosting a browser within another browser
US11038988B2 (en) * 2019-08-26 2021-06-15 Citrix Systems, Inc. System and methods for providing user analytics and performance feedback for web applications
US11586685B2 (en) * 2019-10-31 2023-02-21 Citrix Systems, Inc. Systems and methods for generating data structures from browser data to determine and initiate actions based thereon
CN110866291B (zh) * 2019-11-15 2023-03-24 北京工业大学 一种基于双重安全机制的废旧电子产品信息清除方法
US11012498B1 (en) * 2020-01-02 2021-05-18 Microsoft Technology Licensing, Llc Web browser multi-media redirection
US11016799B1 (en) * 2020-01-30 2021-05-25 Coupang Corp. Systems and methods for centralization of server initialization information
US11893199B2 (en) 2020-06-10 2024-02-06 Microsoft Technology Licensing, Llc Systems and methods for viewing incompatible web pages via remote browser instances
US11475010B2 (en) 2020-09-09 2022-10-18 Self Financial, Inc. Asynchronous database caching
US11470037B2 (en) 2020-09-09 2022-10-11 Self Financial, Inc. Navigation pathway generation
US11641665B2 (en) 2020-09-09 2023-05-02 Self Financial, Inc. Resource utilization retrieval and modification
US20220075877A1 (en) 2020-09-09 2022-03-10 Self Financial, Inc. Interface and system for updating isolated repositories
US11803398B2 (en) * 2021-02-16 2023-10-31 Citrix Systems, Inc. Computing device and associated methods providing browser launching of virtual sessions in an application
US11711396B1 (en) 2021-06-24 2023-07-25 Airgap Networks Inc. Extended enterprise browser blocking spread of ransomware from alternate browsers in a system providing agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11916957B1 (en) 2021-06-24 2024-02-27 Airgap Networks Inc. System and method for utilizing DHCP relay to police DHCP address assignment in ransomware protected network
US11736520B1 (en) 2021-06-24 2023-08-22 Airgap Networks Inc. Rapid incidence agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11695799B1 (en) 2021-06-24 2023-07-04 Airgap Networks Inc. System and method for secure user access and agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11757934B1 (en) 2021-06-24 2023-09-12 Airgap Networks Inc. Extended browser monitoring inbound connection requests for agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11757933B1 (en) * 2021-06-24 2023-09-12 Airgap Networks Inc. System and method for agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11722519B1 (en) 2021-06-24 2023-08-08 Airgap Networks Inc. System and method for dynamically avoiding double encryption of already encrypted traffic over point-to-point virtual private networks for lateral movement protection from ransomware
CN114036369B (zh) * 2021-10-20 2024-04-30 北京字节跳动网络技术有限公司 浏览器访问应用的方法、装置、设备、介质和产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181867B1 (en) * 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US20040093582A1 (en) * 2002-11-01 2004-05-13 Segura Tim E. Method for allowing a computer to be used as an information kiosk while locked
US8972977B2 (en) * 2004-06-30 2015-03-03 Microsoft Technology Licensing, Llc Systems and methods for providing seamless software compatibility using virtual machines
US8010701B2 (en) * 2005-12-19 2011-08-30 Vmware, Inc. Method and system for providing virtualized application workspaces
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
US8355709B2 (en) * 2006-10-23 2013-01-15 Qualcomm Incorporated Device that determines whether to launch an application locally or remotely as a webapp
US7926072B2 (en) * 2007-10-01 2011-04-12 Spring Design Co. Ltd. Application programming interface for providing native and non-native display utility
US8806354B1 (en) * 2008-12-26 2014-08-12 Avaya Inc. Method and apparatus for implementing an electronic white board
US8762861B2 (en) * 2008-12-28 2014-06-24 Avaya, Inc. Method and apparatus for interrelating virtual environment and web content
US8590003B2 (en) * 2009-06-15 2013-11-19 Microsoft Corporation Controlling access to resources by hosted entities
EP2569698B1 (en) * 2010-05-10 2019-07-10 Citrix Systems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
US8924528B1 (en) * 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US20130014033A1 (en) * 2011-07-08 2013-01-10 WoGo LLC Systems and methods for facilitating user interaction between multiple virtual environments
US8973118B2 (en) 2011-12-14 2015-03-03 Cellco Partnership Token based security protocol for managing access to web services
JP6050625B2 (ja) * 2012-06-28 2016-12-21 サターン ライセンシング エルエルシーSaturn Licensing LLC 情報処理装置及び情報処理方法、コンピューター・プログラム、並びに情報通信システム
JP5953156B2 (ja) * 2012-07-26 2016-07-20 株式会社ゼンリンデータコム ブラウザシステム
FR3000339A1 (fr) * 2012-12-20 2014-06-27 France Telecom Procede de traitement de requetes d'acces a des services de virtualisation informatique, passerelle de virtualisation et navigateur web
US9276963B2 (en) 2012-12-28 2016-03-01 Intel Corporation Policy-based secure containers for multiple enterprise applications
US9455886B2 (en) 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
WO2015126845A1 (en) * 2014-02-18 2015-08-27 F5 Networks, Inc. Concurrent evaluation of large rule sets with conditions
US9910765B2 (en) * 2014-05-22 2018-03-06 Citrix Systems, Inc. Providing testing environments for software applications using virtualization and a native hardware layer
US10278069B2 (en) 2014-08-07 2019-04-30 Mobile Iron, Inc. Device identification in service authorization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments

Also Published As

Publication number Publication date
KR20180135945A (ko) 2018-12-21
EP3465430A1 (en) 2019-04-10
WO2017205239A1 (en) 2017-11-30
US10334075B2 (en) 2019-06-25
CN109074274A (zh) 2018-12-21
US20170339250A1 (en) 2017-11-23
JP6775603B2 (ja) 2020-10-28
EP3465430B1 (en) 2021-09-01
JP2019526842A (ja) 2019-09-19
CN109074274B (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
KR102188916B1 (ko) 가상 브라우저 통합
US11792274B2 (en) Managing browser session navigation between one or more browsers
US10701082B2 (en) Application with multiple operation modes
KR102188919B1 (ko) 클라이언트 애플리케이션들에 대한 보안 싱글 사인 온 및 조건부 액세스
US20200293364A1 (en) Management of Unmanaged User Accounts and Tasks in a Multi-Account Mobile Application
EP3466026B1 (en) Dynamic access to hosted applications
US10567537B2 (en) Optimizing web applications using a rendering engine
US9218494B2 (en) Secure client drive mapping and file storage system for mobile device management type security
US20160191645A1 (en) Containerizing Web Applications for Managed Execution
US11748312B2 (en) Sharing of data with applications
US11770454B2 (en) Native application integration for enhanced remote desktop experiences
US10949061B2 (en) Application publishing in a virtualized environment
US11481104B2 (en) Using pressure sensor data in a remote access environment
EP3092565A1 (en) Providing mobile application management functionalities
US20230064996A1 (en) Sharing Virtual Environment Data

Legal Events

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