KR20210150479A - 클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화 - Google Patents

클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화 Download PDF

Info

Publication number
KR20210150479A
KR20210150479A KR1020217036144A KR20217036144A KR20210150479A KR 20210150479 A KR20210150479 A KR 20210150479A KR 1020217036144 A KR1020217036144 A KR 1020217036144A KR 20217036144 A KR20217036144 A KR 20217036144A KR 20210150479 A KR20210150479 A KR 20210150479A
Authority
KR
South Korea
Prior art keywords
client device
communication network
connection
server
network
Prior art date
Application number
KR1020217036144A
Other languages
English (en)
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 KR20210150479A publication Critical patent/KR20210150479A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/34Modification of an existing route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/18Management of setup rejection or failure
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

컴퓨터 시스템은, 가상 컴퓨팅 세션을 제공하기 위한 가상 서버, 및 통신 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스하기 위한 클라이언트 디바이스를 포함한다. 클라이언트 디바이스는, 셀룰러 네트워크에 연결되는 무선 송수신기를 포함한다. 클라이언트 디바이스가 통신 네트워크에 대한 연결을 잃는 데 기초하여, 서버는 셀룰러 네트워크를 통해 클라이언트 디바이스와 통신한다. 셀룰러 네트워크는, 클라이언트 디바이스가 통신 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스하도록 하기 위한 연결을 서버가 복원하도록 하기 위한 백업 통신 채널을 제공한다.

Description

클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화
본 개시는 데스크탑 가상화에 관한 것이며, 더 구체적으로, 백업 통신 채널로서의 전용 셀룰러 네트워크 연결을 사용하여 클라이언트 디바이스에 원격으로 액세스하는 것에 관한 것이다.
여러 상이한 유형의 데스크탑 가상화 시스템이 존재한다. 예로서, 가상 데스크탑 인프라스트럭처(VDI, Virtual Desktop Infrastructure)는, 서버 상에 상주하는 가상 머신 내부에서 사용자 데스크탑을 실행시키는 프로세스를 지칭하며, 이때 가상 머신은 가상 컴퓨팅 세션을 제공한다.
그러한 시스템 내의 서버는, 가상 데스크탑 이미지 및 시스템 구성 정보에 대한 저장소, 및 가상 데스크탑을 제공하고 사용자가 가상 데스크탑에 상호연결할 수 있게 하기 위한 소프트웨어 컴포넌트를 포함할 수 있다. 예컨대, VDI 서버는, 다수의 가상 머신을 생성 및 유지보수하기 위한 하나 이상의 하이퍼바이저, 하이퍼바이저를 관리하기 위한 소프트웨어, 연결 브로커, 및 가상 데스크탑을 프로비저닝 및 관리하기 위한 소프트웨어를 포함할 수 있다.
데스크탑 가상화 시스템에서, 클라이언트 디바이스는 통신 네트워크를 통해 가상 데스크탑에 액세스한다. 통신 네트워크를 통해 사용자를 위한 데스크탑 가상화 시스템을 제공하기 위해 조직이 의지할 수 있는 여러 클라우드 서비스 제공자가 존재한다. 예시 클라우드 서비스 제공자는 Microsoft Azure 및 Amazon Web Services를 포함한다.
컴퓨터 시스템은, 복수의 가상 컴퓨팅 세션을 제공하기 위한 가상 서버, 및 통신 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스하기 위한 클라이언트 디바이스를 포함한다. 클라이언트 디바이스는, 셀룰러 네트워크에 연결되는 무선 송수신기를 포함한다. 클라이언트 디바이스가 통신 네트워크에 대한 연결을 잃는 데 응답하여, 서버는 셀룰러 네트워크를 통해 클라이언트 디바이스와 통신한다. 셀룰러 네트워크는, 클라이언트 디바이스가 통신 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스하도록 하기 위한 연결을 서버가 복원하도록 하기 위한 백업 통신 채널을 제공한다.
클라이언트 디바이스는, 통신 네트워크에 또한 연결되어 있을 때, 셀룰러 네트워크에 연결될 수 있다.
클라이언트 디바이스는, 클라이언트 디바이스가 통신 네트워크에 대한 연결을 잃는 데 기초하여 셀룰러 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스할 수 없다.
서버는, 클라이언트 디바이스 상에서 관리 및 문제해결 작업을 수행하도록 구성될 수 있다. 관리 및 문제해결 작업은, 클라이언트 디바이스의 리부팅, 클라이언트 디바이스 내의 소프트웨어의 업데이트, 및 통신 네트워크에 대한 연결을 가능케 하기 위한 클라이언트 디바이스 내의 구성 설정의 업데이트 중 적어도 하나를 포함할 수 있다.
클라이언트 디바이스는, 통신 네트워크와 인터페이싱하기 위한 통신 네트워크 인터페이스, 및 통신 네트워크를 통해 가상 컴퓨팅 세션 중 하나에 액세스하도록 통신 네트워크 인터페이스에 커플링되는 제1 프로세서를 포함할 수 있다. 제2 프로세서가 무선 송수신기에 커플링될 수 있고, 통신 네트워크에 대한 연결을 복원하도록 구성될 수 있으며, 이때 무선 송수신기는 제1 프로세서로부터 격리된다.
클라이언트 디바이스는, 통신 네트워크에 최초로 연결하기 위한 구성 파라미터를 무선 송수신기를 통해 서버로부터 수신할 수 있다. 구성 파라미터는, 클라이언트 디바이스의 최종 사용자에게 프롬프팅할 필요 없이, 무선 수신기에 제공될 수 있다.
클라이언트 디바이스가 통신 네트워크에 최초로 연결될 수 있도록, 서버는 무선 송수신기를 통해 클라이언트 디바이스를 검증할 수 있다. 서버는, 클라이언트 디바이스에 의해 제공되는 초기화 정보를, 클라이언트 디바이스에 대해 예상되는 초기화 정보에 비교함으로써 검증을 수행할 수 있다. 초기화 정보는, 클라이언트 디바이스 상에 설치된 파일이 변경되지 않았다고 결정하기 위해 사용된다.
클라이언트 디바이스는 씬 클라이언트 디바이스(thin client device)로서 구성될 수 있다.
또 다른 양상은 클라이언트 디바이스에 관한 것이며, 클라이언트 디바이스는, 통신 네트워크와 인터페이싱하기 위한 통신 네트워크 인터페이스, 및 통신 네트워크 인터페이스가 통신 네트워크에 대한 연결을 갖는 데 응답하여 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 통신 네트워크 인터페이스에 커플링되는 제1 프로세서를 포함한다. 셀룰러 네트워크에 무선 송수신기가 연결된다. 통신 네트워크 인터페이스가 통신 네트워크에 대한 연결을 잃는 데 응답하여 셀룰러 네트워크를 통해 서버와 통신하도록 무선 송수신기에 제2 프로세서가 커플링된다. 셀룰러 네트워크는, 제1 프로세서가 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 하기 위한 통신 네트워크에 대한 통신 네트워크 인터페이스의 연결을 서버가 복원하도록 하기 위한 백업 통신 채널을 제공한다.
또 다른 양상은, 클라이언트 디바이스를 동작시키기 위한 방법에 관한 것이다. 방법은, 통신 네트워크 인터페이스가 통신 네트워크에 대한 연결을 갖는 데 응답하여 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 통신 네트워크 인터페이스에 커플링되는 제1 프로세서를 동작시키는 단계를 포함한다. 방법은, 통신 네트워크 인터페이스가 통신 네트워크에 대한 연결을 잃는 데 응답하여 셀룰러 네트워크를 통해 서버와 통신하도록 무선 송수신기에 커플링되는 제2 프로세서를 동작시키는 단계를 더 포함한다. 셀룰러 네트워크는, 제1 프로세서가 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 하기 위한 통신 네트워크에 대한 통신 네트워크 인터페이스의 연결을 관리 서버가 복원하도록 하기 위한 백업 통신 채널을 제공한다.
도 1은, 본 개시의 다양한 양상이 구현될 수 있는, 컴퓨팅 디바이스의 네트워크 환경의 개략적 블록도이다.
도 2는, 도 1에 예시된 클라이언트 머신 또는 원격 머신의 실시예를 실시하는 데 있어 유용한 컴퓨팅 디바이스의 개략적 블록도이다.
도 3은, 본 개시의 다양한 양상이 구현될 수 있는, 클라우드 컴퓨팅 환경의 개략적 블록도이다.
도 4는, 본 개시의 다양한 양상이 구현될 수 있는, 워크스페이스 앱을 동작시키는 데스크탑, 모바일, 및 웹 기반 디바이스의 개략적 블록도이다.
도 5는, 본 개시의 다양한 양상이 구현될 수 있는, 컴퓨팅 디바이스의 워크스페이스 네트워크 환경의 개략적 블록도이다.
도 6은, 본 개시의 다양한 양상이 구현될 수 있는, 클라이언트 디바이스가 백업 통신 채널로서의 전용 셀룰러 네트워크 연결을 갖는 컴퓨터 시스템의 개략적 블록도이다.
도 7은, 도 6에 예시된 클라이언트 디바이스의 더 상세한 개략적 블록도이다.
도 8은, 도 6에 예시된 클라이언트 디바이스를 동작시키기 위한 방법을 예시하는 흐름도이다.
도 9는, 도 6에 예시된 관리 서버를 동작시키기 위한 방법을 예시하는 흐름도이다.
본 설명은, 예시적인 실시예가 도시되어 있는 첨부 도면을 참조하여 이루어진다. 그러나, 여러 상이한 실시예가 사용될 수 있으며, 따라서 설명은, 본 명세서에서 진술되는 특정 실시예로 제한되는 것으로서 해석되어서는 안 된다. 오히려, 이들 실시예는, 본 개시가 철저하고 완전하도록 제공된다. 전반적으로, 유사한 번호는 유사한 요소를 나타낸다.
아래에서 논의될 바와 같이, 조직 및 기업은 사용자를 위한 데스크탑 가상화 시스템을 제공하기 위해 클라우드 서비스 제공자에게 의지하고 있다. 데스크탑 가상화를 사용하면, 클라이언트 디바이스는 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스한다. 통신 네트워크는 또한, 필요에 따라서 클라이언트 디바이스를 관리, 구성, 및 지원하기 위해 관리자에 의해 사용된다.
때때로, 클라이언트 디바이스는, 통신 네트워크에 연결하지 못하게 하는 문제를 가질 수 있다. 이는, 관리자가 물리적으로 클라이언트 디바이스에 가서 네트워크 연결을 복원할 것을 요구한다. 많은 경우, 클라이언트 디바이스에서의 물리적 연결의 수동 복원은 가능하지 않을 수 있다. 예컨대, 일부 기업 사용자는 수천 개의 클라이언트 디바이스를 가질 수 있다. 그러한 수는, 각 머신에 물리적으로 연결하는 것을 비현실적이거나 다르게 현실적으로 불가능하게 만들며, 왜냐하면, 그렇게 하기 위한 비용이 비상히 높을 것이기 때문이다.
큰 수 외에, 디바이스 위치 또한, 회사의 디바이스가 올바르게 가동되는 것을 보장하는 것을 담당하는 관리자에게 과제를 제기할 수 있다. 예를 들어, 전 세계에 걸쳐 직원을 가지고 있는 회사는 또한, 많은 지리적 위치에 걸쳐 컴퓨팅 디바이스를 가지고 있을 수 있다. 따라서, 상이하게 위치된 컴퓨팅 자원 또한, 컴퓨팅 디바이스의 쉽고 효율적인 물리적 재연결을 방해하거나, 다르게 못하게 할 수 있다. 이는, 많은 작업자가 원거리통근하거나, 단순하게는 원격으로 작업하는 오늘날에 특히 그러하다.
오늘날의 기업 환경에서, 회사의 정보 기술(IT, information technology) 직원은 종종 회사의 직원과 동일한 위치에 있지 않다. 그러한 환경은 회사 자원의 네트워크 연결에 관한 중대한 과제를 제기한다. 본 개시의 기법 및 교시는, 백업 통신 채널로서 클라이언트 디바이스에서의 셀룰러 네트워크 연결 제공하며, 이에 의해, 통신 네트워크에 대한 연결의 손실 동안 관리자가 클라이언트 디바이스에 원격으로 액세스하고 유지보수 및 문제해결 작업을 수행하는 것을 가능케 한다.
먼저 도 1을 참조하면, 본 개시의 다양한 양상이 구현될 수 있는 비제한적인 네트워크 환경(10)은, 하나 이상의 클라이언트 머신(12A 내지 12N), 하나 이상의 원격 머신(16A 내지 16N), 하나 이상의 네트워크(14, 14'), 및 컴퓨팅 환경(10) 내에 설치된 하나 이상의 어플라이언스(18)를 포함한다. 클라이언트 머신(12A 내지 12N)은 네트워크(14, 14')를 통해 원격 머신(16A 내지 16N)과 통신한다.
일부 실시예에서, 클라이언트 머신(12A 내지 12N)은 중간 어플라이언스(18)를 통해 원격 머신(16A 내지 16N)과 통신한다. 예시된 어플라이언스(18)는 네트워크(14, 14') 사이에 위치되며, 네트워크 인터페이스 또는 게이트웨이로서도 지칭될 수 있다. 일부 실시예에서, 어플라이언스(18)는, 데이터센터 또는 클라우드 내에 배치되거나 일정 범위의 클라이언트 디바이스에 걸쳐 SaaS(Software as a Service)로서 전달되는 비즈니스 애플리케이션 및 다른 데이터에 대한 액세스를 클라이언트에 제공하기 위한, 그리고/또는 로드 밸런싱 등과 같은 다른 기능을 제공하기 위한 애플리케이션 전달 제어기(ADC, application delivery controller)로서 동작할 수 있다. 일부 실시예에서, 다수의 어플라이언스(18)가 사용될 수 있고, 어플라이언스(18)는 네트워크(14 및/또는 14')의 부분으로서 배치될 수 있다.
클라이언트 머신(12A 내지 12N)은 일반적으로 클라이언트 머신(12), 로컬 머신(12), 클라이언트(12), 클라이언트 노드(12), 클라이언트 컴퓨터(12), 클라이언트 디바이스(12), 컴퓨팅 디바이스(12), 엔드포인트(12), 또는 엔드포인트 노드(12)로서 지칭될 수 있다. 원격 머신(16A 내지 16N)은 일반적으로, 서버(16) 또는 서버 팜(16)으로서 지칭될 수 있다. 일부 실시예에서, 클라이언트 디바이스(12)는, 서버(16)에 의해 제공되는 자원에 대한 액세스를 찾는 클라이언트 노드, 및 호스팅형 자원에 대한 액세스를 다른 클라이언트 디바이스(12A 내지 12N)에 제공하는 서버(16), 둘 다로서 기능하기 위한 능력을 가질 수 있다. 네트워크(14, 14')는 일반적으로 네트워크(14)로서 지칭될 수 있다. 네트워크(14)는 유선 및 무선 네트워크의 임의의 조합으로 구성될 수 있다.
서버(16)는, 예컨대, 파일 서버; 애플리케이션 서버; 웹 서버; 프록시 서버; 어플라이언스; 네트워크 어플라이언스; 게이트웨이; 애플리케이션 게이트웨이; 게이트웨이 서버; 가상화 서버; 배치 서버; 보안 소켓 계층 가상 사설 네트워크(SSL VPN, Secure Sockets Layer Virtual Private Network) 서버; 방화벽; 웹 서버; 액티브 디렉토리를 실행하는 서버; 클라우드 서버; 또는 방화벽 기능, 애플리케이션 기능, 또는 로드 밸런싱 기능을 제공하는 애플리케이션 가속 프로그램을 실행하는 서버와 같은 임의의 서버 유형일 수 있다.
서버(16)는, 소프트웨어; 프로그램; 실행가능 명령어; 가상 머신; 하이퍼바이저; 웹 브라우저; 웹 기반 클라이언트; 클라이언트-서버 애플리케이션; 씬 클라이언트형 컴퓨팅 클라이언트; ActiveX 컨트롤; Java 애플릿; 소프트 IP 전화와 같은 VoIP(voice over internet protocol) 통신과 관련된 소프트웨어; 비디오 및/또는 오디오를 스트리밍하기 위한 애플리케이션; 실시간 데이터 통신을 용이하게 하기 위한 애플리케이션; HTTP 클라이언트; FTP 클라이언트; Oscar 클라이언트; 텔넷 클라이언트; 또는 임의의 다른 실행가능 명령어 세트 중 어느 하나일 수 있는 애플리케이션을 실행시키거나, 동작시키거나, 다르게 제공할 수 있다.
일부 실시예에서, 서버(16)는, 서버(16) 상에서 실행되는 애플리케이션에 의해 생성되는 디스플레이 출력을 캡처하고 애플리케이션 디스플레이 출력을 클라이언트 디바이스(12)에 송신하기 위해 씬 클라이언트형 또는 원격 디스플레이형 프로토콜을 사용하는 원격 프레젠테이션 서비스 프로그램 또는 다른 프로그램을 실행시킬 수 있다.
또 다른 실시예에서, 서버(16)는, 클라이언트 디바이스(12)의 사용자에게 컴퓨팅 환경에 대한 액세스를 제공하는 가상 머신을 실행시킬 수 있다. 클라이언트 디바이스(12)는 가상 머신일 수 있다. 가상 머신은, 예컨대, 서버(16) 내의 하이퍼바이저, 가상 머신 관리자(VMM), 또는 임의의 다른 하드웨어 가상화 기법에 의해 관리될 수 있다.
일부 실시예에서, 네트워크(14)는 LAN(local-area network); MAN(metropolitan area network); WAN(wide area network); 1차 공용 네트워크(14); 및 1차 사설 네트워크(14)일 수 있다. 추가적인 실시예는, 모바일 디바이스 사이에서 통신하기 위해 다양한 프로토콜을 사용하는 모바일 전화 네트워크의 네트워크(14)를 포함할 수 있다. WLAN(wireless local-area network) 내의 단거리 통신의 경우, 프로토콜은 802.11, Bluetooth, 및 NFC(Near Field Communication)를 포함할 수 있다.
도 2는, 클라이언트 디바이스(12), 어플라이언스(18), 및/또는 서버(16)의 실시예를 실시하는 데 있어 유용한 컴퓨팅 디바이스(20)의 블록도를 묘사한다. 컴퓨팅 디바이스(20)는 하나 이상의 프로세서(22), 휘발성 메모리(24)(예컨대, 랜덤 액세스 메모리(RAM, random access memory)), 비휘발성 메모리(30), 사용자 인터페이스(UI, user interface)(38), 하나 이상의 통신 인터페이스(26), 및 통신 버스(48)를 포함한다.
비휘발성 메모리(30)는 하나 이상의 하드 디스크 드라이브(HDD, hard disk drive) 또는 다른 자기 또는 광학 저장 매체; 플래시 드라이브 또는 다른 솔리드 스테이트 저장 매체와 같은 하나 이상의 솔리드 스테이트 드라이브(SSD, solid state drive); 하나 이상의 하이브리드 자기 및 솔리드 스테이트 드라이브; 및/또는 클라우드 저장 저장소와 같은 하나 이상의 가상 저장소 볼륨, 또는 그러한 물리적 저장소 볼륨과 가상 저장소 볼륨의 조합 또는 이들의 어레이를 포함할 수 있다.
사용자 인터페이스(38)는 그래픽 사용자 인터페이스(GUI, graphical user interface)(40)(예컨대, 터치스크린, 디스플레이 등) 및 하나 이상의 입력/출력(I/O, input/output) 디바이스(42)(예컨대, 마우스, 키보드, 마이크로폰, 하나 이상의 스피커, 하나 이상의 카메라, 하나 이상의 생체측정 스캐너, 하나 이상의 환경 센서, 및 하나 이상의 가속도계 등)를 포함할 수 있다.
예컨대, 운영 체제(32) 및/또는 애플리케이션(34)의 컴퓨터 명령어가 휘발성 메모리(24)로부터 프로세서(22)에 의해 실행되도록, 비휘발성 메모리(30)는 운영 체제(32), 하나 이상의 애플리케이션(34), 및 데이터(36)를 저장한다. 일부 실시예에서, 휘발성 메모리(24)는, 하나 이상의 유형의 RAM, 및/또는 메인 메모리보다 더 빠른 응답 시간을 제공할 수 있는 캐시 메모리를 포함할 수 있다. 데이터는 GUI(40)의 입력 디바이스를 사용하여 입력되거나 I/O 디바이스(42)로부터 수신될 수 있다. 컴퓨터(20)의 다양한 요소는 통신 버스(48)를 통해 통신할 수 있다.
예시된 컴퓨팅 디바이스(20)는 단지 예시 클라이언트 디바이스 또는 서버로서 도시되었으며, 본 명세서에서 설명되는 바와 같이 동작할 수 있는 적합한 하드웨어 및/또는 소프트웨어를 가질 수 있는 임의의 유형의 머신 또는 머신 세트를 갖는 임의의 컴퓨팅 또는 프로세싱 환경에 의해 구현될 수 있다.
프로세서(22)는, 시스템의 기능을 수행하기 위한, 컴퓨터 프로그램과 같은, 하나 이상의 실행가능 명령어를 실행시키기 위한 하나 이상의 프로그래밍가능 프로세서에 의해 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, "프로세서"라는 용어는, 기능, 동작, 또는 동작의 시퀀스를 수행하는 회로부를 설명한다. 기능, 동작, 또는 동작의 시퀀스는 회로부에 하드 코딩되거나, 메모리 디바이스에 담기고 회로부에 의해 실행되는 명령어를 통해 소프트 코딩될 수 있다. 프로세서는 디지털 값을 사용하여 그리고/또는 아날로그 신호를 사용하여 기능, 동작, 또는 동작의 시퀀스를 수행할 수 있다.
일부 실시예에서, 프로세서는 하나 이상의 애플리케이션 특유 집적 회로(ASIC, application specific integrated circuit), 마이크로프로세서, 디지털 신호 프로세서(DSP, digital signal processor), 그래픽 프로세싱 유닛(GPU, graphics processing unit), 마이크로컨트롤러, 필드 프로그래밍가능 게이트 어레이(FPGA, field programmable gate array), 프로그래밍가능 로직 어레이(PLA, programmable logic array), 멀티 코어 프로세서, 또는 연관된 메모리를 갖는 범용 컴퓨터로 구체화될 수 있다.
프로세서(22)는 아날로그, 디지털, 또는 혼성 신호일 수 있다. 일부 실시예에서, 프로세서(22)는 하나 이상의 물리적 프로세서, 또는 하나 이상의 가상 (예컨대, 원격 위치 또는 클라우드) 프로세서일 수 있다. 다수의 프로세서 코어를 포함하는 프로세서 및/또는 다수의 프로세서가, 하나보다 더 많은 데이터에 대한 명령어들의 병렬 동시 실행을 위한 또는 하나의 명령어의 병렬 동시 실행을 위한 기능을 제공할 수 있다.
통신 인터페이스(26)는, 컴퓨팅 디바이스(20)가, 셀룰러 연결을 포함하는 다양한 유선 및/또는 무선 연결을 통해 LAN(Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 또는 인터넷과 같은 컴퓨터 네트워크에 액세스하는 것을 가능케 하기 위한 하나 이상의 인터페이스를 포함할 수 있다.
설명되는 실시예에서, 컴퓨팅 디바이스(20)는 클라이언트 디바이스의 사용자를 대신하여 애플리케이션을 실행시킬 수 있다. 예컨대, 컴퓨팅 디바이스(20)는, 하이퍼바이저에 의해 관리되는 하나 이상의 가상 머신을 실행시킬 수 있다. 각 가상 머신은, 호스팅형 데스크탑 세션과 같이, 사용자 또는 클라이언트 디바이스를 대신하여 애플리케이션이 실행되는 실행 세션을 제공할 수 있다. 컴퓨팅 디바이스(20)는 또한, 호스팅형 데스크탑 환경을 제공하기 위하여 터미널 서비스 세션을 실행시킬 수 있다. 컴퓨팅 디바이스(20)는, 하나 이상의 애플리케이션, 하나 이상의 데스크탑 애플리케이션, 및 하나 이상의 애플리케이션이 실행될 수 있는 하나 이상의 데스크탑 세션을 포함하는 원격 컴퓨팅 환경에 대한 액세스를 제공할 수 있다.
미국 플로리다주 포트 로더데일의 Citrix Systems, Inc.("Citrix Systems")에 의해 제공되는 Citrix Hypervisor를 사용하여 예시 가상화 서버(16)가 구현될 수 있다. 또한 Citrix Systems로부터의 Citrix Virtual Apps and Desktops(CVAD)에 의해 가상 앱 및 데스크탑 세션 또한 제공될 수 있다. Citrix Virtual Apps and Desktops는, 임의의 디바이스로부터의 가상 앱, 데스크탑, 및 데이터 세션을 포함하는 가상 세션에 대한 보편적 액세스를 사용하여 생산성을 향상시키는 애플리케이션 가상화 솔루션이며, 스케일링가능한(scalable) VDI 솔루션을 구현하기 위한 옵션 또한 제공된다. 예컨대, 가상 세션은 SaaS(Software as a Service) 및 DaaS(Desktop as a Service) 세션을 더 포함할 수 있다.
도 3을 참조하면, 클라우드 환경, 클라우드 컴퓨팅, 또는 클라우드 네트워크로서도 지칭될 수 있는 클라우드 컴퓨팅 환경(50)이 묘사되어 있다. 클라우드 컴퓨팅 환경(50)은, 다수의 사용자 또는 테넌트로의 공유 컴퓨팅 서비스 및/또는 자원의 전달을 제공할 수 있다. 예컨대, 공유 자원 및 서비스는 네트워크, 네트워크 대역폭, 서버, 프로세싱, 메모리, 저장소, 애플리케이션, 가상 머신, 데이터베이스, 소프트웨어, 하드웨어, 분석, 및 인텔리전스를 포함할 수 있지만 이들로 제한되지는 않는다.
클라우드 컴퓨팅 환경(50)에서, (전술한 것과 같은) 하나 이상의 클라이언트(52A 내지 52C)가 클라우드 네트워크(54)와 통신한다. 클라우드 네트워크(54)는 백엔드 플랫폼, 예컨대, 서버, 저장소, 서버 팜, 또는 데이터 센터를 포함할 수 있다. 사용자 또는 클라이언트(52A 내지 52C)는 단일 조직/테넌트 또는 다수의 조직/테넌트에 대응할 수 있다. 더 구체적으로, 한 예시 구현예에서, 클라우드 컴퓨팅 환경(50)은, 단일 조직에 서빙하는 사설 클라우드(예컨대, 기업 클라우드)를 제공할 수 있다. 또 다른 예에서, 클라우드 컴퓨팅 환경(50)은, 다수의 조직/테넌트에 서빙하는 커뮤니티 또는 공용 클라우드를 제공할 수 있다. 또 다른 실시예에서, 클라우드 컴퓨팅 환경(50)은, 공용 클라우드와 사설 클라우드의 조합인 하이브리드 클라우드를 제공할 수 있다. 공용 클라우드는, 클라이언트(52A 내지 52C) 또는 기업/테넌트에 대한 제삼자에 의해 유지보수되는 공용 서버를 포함할 수 있다. 서버는, 멀리 떨어진 지리적 위치의 현장 외부(off-site)에 또는 다르게 위치될 수 있다.
클라우드 컴퓨팅 환경(50)은, 각 환경 내의 상이한 요구에 응답하여 동적으로 할당 및 재할당되는 상이한 물리적 자원 및 가상 가상을 갖는 멀티 테넌트 환경 또는 멀티 테넌트 모델을 통하여 클라이언트(52A 내지 52C)를 경유해 다수의 사용자에게 서빙하기 위한 자원 풀링을 제공할 수 있다. 멀티 테넌트 환경은, 다수의 사용자에게 서빙하기 위해 소프트웨어, 애플리케이션, 또는 소프트웨어 애플리케이션의 단일 인스턴스를 제공할 수 있는 시스템 또는 아키텍처를 포함할 수 있다. 일부 실시예에서, 클라우드 컴퓨팅 환경(50)은, 다수의 클라이언트(52A 내지 52C)를 위해 네트워크에 걸쳐 컴퓨팅 능력(예컨대, 서버 시간, 네트워크 저장소)을 단방향으로 프로비저닝하기 위한 주문형 셀프-서비스를 제공할 수 있다. 클라우드 컴퓨팅 환경(50)은, 하나 이상의 클라이언트(52)로부터의 상이한 요구에 응답하여 동적으로 스케일 아웃(scale out) 및 스케일 인(scale in)하기 위한 탄성을 제공할 수 있다. 일부 실시예에서, 컴퓨팅 환경(50)은, 제공되는 공유 서비스 및 자원을 모니터링하고, 제어하고, 그리고/또는 그에 대응하는 보고를 생성하기 위한 모니터링 서비스를 포함하거나 제공할 수 있다.
일부 실시예에서, 클라우드 컴퓨팅 환경(50)은, 예컨대, SaaS(Software as a service)(56), PaaS(Platform as a Service)(58), IaaS(Infrastructure as a Service)(60), 및 DaaS(Desktop as a Service)(62)와 같은 상이한 유형의 클라우드 컴퓨팅 서비스의 클라우드 기반 전달을 제공할 수 있다. IaaS는, 지정된 기간 동안 필요한 인프라스트럭처 자원의 사용을 사용자가 렌트하는 것을 지칭할 수 있다. IaaS 제공자는 대규모 풀(pool)로부터 저장소, 네트워킹, 서버, 또는 가상화 자원을 제공하여, 사용자가 필요에 따라서 더 많은 자원에 액세스함으로써 신속하게 스케일 업(scale up)할 수 있게 한다. IaaS의 예는, 미국 워싱턴주 시애틀의 Amazon.com, Inc.에 의해 제공되는 AMAZON WEB SERVICES, 미국 텍사스주 샌 안토니오의 Rackspace US, Inc.에 의해 제공되는 RACKSPACE CLOUD, 미국 캘리포니아주 마운틴 뷰의 Google Inc.에 의해 제공되는 Google Compute Engine, 또는 미국 캘리포니아주 산타 바바라의 RightScale, Inc.에 의해 제공되는 RIGHTSCALE을 포함한다.
PaaS 제공자는, 예컨대, 저장소, 네트워킹, 서버, 또는 가상화를 비롯하여 IaaS에 의해 제공되는 기능, 및, 예컨대, 운영 체제, 미들웨어, 또는 런타임 자원과 같은 추가적인 자원을 제공할 수 있다. PaaS의 예는, 미국 워싱턴주 레드몬드의 Microsoft Corporation에 의해 제공되는 WINDOWS AZURE, Google Inc.에 의해 제공되는 Google App Engine, 및 미국 캘리포니아주 샌 프란시스코의 Heroku, Inc.에 의해 제공되는 HEROKU를 포함한다.
SaaS 제공자는, 저장소, 네트워킹, 서버, 가상화, 운영 체제, 미들웨어, 또는 런타임 자원을 비롯하여 PaaS가 제공하는 자원을 제공할 수 있다. 일부 실시예에서, SaaS 제공자는, 예컨대, 데이터 및 애플리케이션 자원을 비롯한 추가적인 자원을 제공할 수 있다. SaaS의 예는, Google Inc.에 의해 제공되는 GOOGLE APPS, 미국 캘리포니아주 샌 프란시스코의 Salesforce.com Inc.에 의해 제공되는 SALESFORCE, 또는 Microsoft Corporation에 의해 제공되는 OFFICE 365를 포함한다. SaaS의 예는 또한, 데이터 저장소 제공자, 예컨대, 미국 캘리포니아주 샌 프란시스코의 Dropbox, Inc.에 의해 제공되는 DROPBOX, Microsoft Corporation에 의해 제공되는 Microsoft SKYDRIVE, Google Inc.에 의해 제공되는 Google Drive, 또는 미국 캘리포니아주 쿠퍼티노의 Apple Inc.에 의해 제공되는 Apple ICLOUD를 포함할 수 있다.
SaaS와 유사하게, DaaS(호스팅형 데스크탑 서비스로서도 공지되어 있음)는, 통상적으로 가상 데스크탑 세션이, 가상 데스크탑 상에서 사용되는 앱과 함께 클라우드 서비스로서 전달되는 가상 데스크탑 인프라스트럭처(VDI)의 한 형태이다. CITRIX CLOUD는 DaaS 전달 플랫폼의 한 예이다. DaaS 전달 플랫폼은, 예컨대, 미국 워싱턴주 레드몬드의 Microsoft Corporation으로부터의 AZURE CLOUD(본 명세서에서 "Azure") 또는 미국 워싱턴주 시애틀의 Amazon.com, Inc.에 의해 제공되는 AMAZON WEB SERVICES(본 명세서에서 "AWS")와 같은 공용 클라우드 컴퓨팅 인프라스트럭처 상에 호스팅될 수 있다. Citrix Cloud의 경우, 통일된 경험을 전달하기 위하여 (구축형(on-premises)으로 또는 클라우드 내에서) 앱, 파일, 및 데스크탑을 통합하기 위한 단일 진입점으로서 Citrix Workspace 앱이 사용될 수 있다.
Citrix Workspace 앱에 의해 제공되는 통일된 경험이 이제 도 4를 참조하여 더 상세하게 논의될 것이다. Citrix Workspace 앱은 본 명세서에 일반적으로 워크스페이스 앱(70)으로서 지칭될 것이다. 워크스페이스 앱(70)은, 사용자가 자신의 워크스페이스 자원에 대한 액세스를 얻는 방법이며, 워크스페이스 자원의 한 카테고리는 애플리케이션이다. 이들 애플리케이션은 SaaS 앱, 웹 앱, 또는 가상 앱일 수 있다. 워크스페이스 앱(70)은 또한 사용자에게 자신의 데스크탑에 대한 액세스를 제공하며, 데스크탑은 로컬 데스크탑 또는 가상 데스크탑일 수 있다. 또한, 워크스페이스 앱(70)은 사용자에게 자신의 파일 및 데이터에 대한 액세스를 제공하며, 파일 및 데이터는 다수의 저장소에 저장될 수 있다. 파일 및 데이터는 Citrix ShareFile 상에 호스팅되거나, 구축형 네트워크 파일 서버 상에 호스팅되거나, 예컨대, Microsoft OneDrive 또는 Google Drive Box와 같은, 일부 다른 클라우드 저장소 제공자 내에 호스팅될 수 있다.
통일된 경험을 제공하기 위해, 사용자가 요구하는 자원은 워크스페이스 앱(70)으로부터 위치확인되고 액세스가능할 수 있다. 워크스페이스 앱(70)은 상이한 버전들로 제공된다. 한 버전의 워크스페이스 앱(70)은 데스크탑(72)용 설치형 애플리케이션이며, 이는 Windows, Mac, 또는 Linux 플랫폼에 기초할 수 있다. 제2 버전의 워크스페이스 앱(70)은 모바일 디바이스(74)용 설치형 애플리케이션이며, 이는 iOS 또는 Android 플랫폼에 기초할 수 있다. 제3 버전의 워크스페이스 앱(70)은, 사용자에게 자신의 워크스페이스 환경에 대한 액세스를 제공하기 위해 하이퍼텍스트 마크업 언어(HTML, hypertext markup language) 브라우저를 사용한다. 사용자가 워크스페이스 앱을 설치하기 원하지 않을 때 또는 워크스페이스 앱을 설치할 권한을 갖지 않을 때, 예를 들어, 공용 키오스크(76)를 동작시킬 때, 웹 버전의 워크스페이스 앱(70)이 사용된다.
이들 상이한 버전의 워크스페이스 앱(70) 각각은 동일한 사용자 경험을 제공할 수 있다. 이는, 사용자가 상이한 플랫폼 내의 클라이언트 디바이스(72)로부터 클라이언트 디바이스(74)로 그리고 클라이언트 디바이스(76)로 이동할 수 있으면서도 여전히 자신의 워크스페이스에 대해 동일한 사용자 경험을 받을 수 있게 한다. 클라이언트 디바이스(72, 74, 및 76)는 엔드포인트로서 지칭된다.
위에서 언급한 바와 같이, 워크스페이스 앱(70)은 Windows, Mac, Linux, iOS, 및 Android 플랫폼, 및 HTML 브라우저(HTML5)를 사용하는 플랫폼을 지원한다. 워크스페이스 앱(70)은, 사용자가 다수의 유형의 앱 및 데이터 자원에 액세스할 수 있게 하는 다수의 엔진(80 내지 90)을 포함한다. 엔진(80 내지 90)은 특정 자원에 대한 사용자 경험을 최적화하고, 또한 사용자 활동 및 잠재적인 보안 위협에 대한 통찰을 조직 또는 기업에 제공한다.
임베디드 브라우저 엔진(80)은, 로컬 설치 무관리형 브라우저 상에서 SaaS 및 웹 앱을 시작시키는 대신, SaaS 및 웹 앱이 워크스페이스 앱(70) 내에 포함되는 상태를 유지시킨다. 임베디드 브라우저를 사용하면, 워크스페이스 앱(70)은, 액세스를 승인, 거부, 또는 격리하기 전에, SaaS 및 웹 앱에서 사용자가 선택한 하이퍼링크를 인터셉트하고 위험 분석을 요청할 수 있다.
고선명 경험(HDX, high definition experience) 엔진(82)은, Windows 또는 Linux 운영 체제 상에서 실행되는 가상 브라우저, 가상 앱, 및 데스크탑 세션에 대한 연결을 수립한다. HDX 엔진(82)을 사용하면, Windows 및 Linux 자원은 원격으로 실행되고, 디스플레이는 엔드포인트 상에 로컬로 유지된다. 최선의 가능한 사용자 경험을 제공하기 위해, HDX 엔진(82)은, 변화하는 네트워크 상태 및 애플리케이션 요건에 적응하도록 상이한 가상 채널을 이용한다. 높은 레이턴시 및 높은 패킷 손실의 네트워크를 극복하기 위해, HDX 엔진(82)은, 최적화된 전송 프로토콜 및 더 큰 압축 기법을 자동으로 구현한다. 그러한 기법은, 비디오, 이미지, 또는 텍스트와 같은 특정한 유형의 디스플레이에 대해 최적화될 수 있다. HDX 엔진(82)은 애플리케이션 내에서 이들 유형의 자원을 식별하고, 화면의 해당 섹션에 가장 적절한 알고리즘을 적용한다.
많은 사용자의 경우, 워크스페이스는 데이터를 중심으로 한다. 콘텐츠 협업 엔진(84)은, 해당 데이터가 구축형으로 상주하든지 또는 클라우드 내에 상주하든지, 사용자가 모든 데이터를 워크스페이스에 통합할 수 있게 한다. 콘텐츠 협업 엔진(84)은, 관리자 및 사용자가 기업 및 사용자 특유 데이터 저장소 위치에 대한 커넥터의 세트를 생성할 수 있게 한다. 이는, 예컨대, OneDrive, Dropbox, 및 구축형 네트워크 파일 공유를 포함할 수 있다. 사용자는 다수의 저장소 내의 파일을 유지보수할 수 있고, 워크스페이스 앱(70)이 이들을 단일의 개인화된 라이브러리에 통합할 수 있게 할 수 있다.
네트워킹 엔진(86)은, 엔드포인트 또는 엔드포인트 상의 앱이 보안 백엔드 자원에 대한 네트워크 연결을 요구하는지의 여부를 식별한다. 네트워킹 엔진(86)은 엔드포인트 디바이스 전체에 대해 VPN 터널을 자동으로 수립할 수 있거나, 앱 특유 μ-VPN 연결을 생성할 수 있다. μ-VPN은, 어떠한 백엔드 자원에 애플리케이션 및 엔드포인트 디바이스가 액세스할 수 있는지를 정의하며, 따라서 백엔드 인프라스트럭처를 보호한다. 많은 경우, 특정한 사용자 활동은, 고유한 네트워크 기반 최적화로부터 이익을 얻는다. 사용자가 파일 복사를 요청한다면, 워크스페이스 앱(70)은, 해당 활동을 더 빠르게 완료하기 위해 다수의 네트워크 연결을 동시에 자동으로 이용할 수 있다. 사용자가 VoIP 통화를 개시한다면, 워크스페이스 앱(70)은 다수의 네트워크 연결에 걸쳐 통화를 복제함으로써 그 품질을 개선시킨다. 네트워킹 엔진(86)은, 먼저 도착하는 패킷만 사용한다.
분석 엔진(88)은 사용자의 디바이스, 위치, 및 거동에 대해 보고하고, 클라우드 기반 서비스가, 도난된 디바이스, 해킹된 신원, 또는 퇴사를 준비하고 있는 사용자의 결과일 수 있는 임의의 잠재적인 이상을 식별한다. 분석 엔진(88)에 의해 수집되는 정보는 대책을 자동으로 구현함으로써 회사 자산을 보호한다.
관리 엔진(90)은 성능 및 정책의 관점에서 워크스페이스 앱(70)을 최신상태로 유지시킨다. 이는 사용자에게 최신 능력을 제공할 뿐만 아니라, 또한 추가적인 보안 향상을 포함한다. 워크스페이스 앱(70)은, 커스터마이징가능한 정책에 기초하여 업데이트를 주기적으로 확인하고 자동으로 배치하는 자동 업데이트 서비스를 포함한다.
이제 도 5를 참조하여, 워크스페이스 앱(70)에 기초하여 사용자에게 통일된 경험을 제공하는 워크스페이스 네트워크 환경(100)이 논의될 것이다. 데스크탑, 모바일, 및 웹 버전의 워크스페이스 앱(70) 모두는, 예컨대, Citrix Cloud와 같은, 클라우드(104) 내에서 실행되는 워크스페이스 경험 서비스(102)와 통신한다. 그 후 워크스페이스 경험 서비스(102)는 자원 피드 마이크로 서비스(108)를 통해 상이한 자원 피드(16) 모두를 인입시킨다. 즉, 클라우드(104) 내에서 실행되는 다른 서비스로부터의 상이한 자원 모두는 자원 피드 마이크로 서비스(108)에 의해 인입된다. 상이한 서비스는 가상 앱 및 데스크탑 서비스(110), 보안 브라우저 서비스(112), 엔드포인트 관리 서비스(114), 콘텐츠 협업 서비스(116), 및 액세스 제어 서비스(118)를 포함할 수 있다. 조직 또는 기업이 서브스크라이브하는 임의의 서비스는 자동으로 워크스페이스 경험 서비스(102)에 인입되고 사용자의 워크스페이스 앱(70)에 전달된다.
클라우드 피드(120)에 더하여, 자원 피드 마이크로 서비스(108)는 구축형 피드(122)를 인입시킬 수 있다. 구축형 데이터 센터 내에서 실행되는 가상 앱 및 데스크탑 배치를 제공하기 위해 Cloud Connector(124)가 사용된다. 예컨대, Citrix 가상 앱 및 데스크탑(126), VMware Horizon(128), 또는 Microsoft RDS(130)에 의해 데스크탑 가상화가 제공될 수 있다. 클라우드 피드(120) 및 구축형 피드(122)에 더하여, 사물 인터넷(IoT, Internet of Thing) 디바이스(134)로부터의 디바이스 피드(132)가, 예컨대, 자원 피드 마이크로 서비스(108)에 의해 인입될 수 있다. 상이한 자원을 사용자의 전체적인 워크스페이스 경험으로 묶기 위해 사이트 집성화가 사용된다.
클라우드 피드(120), 구축형 피드(122), 및 디바이스 피드(132) 각각은, 상이하고 고유한 유형의 애플리케이션을 사용자의 워크스페이스 경험에 제공한다. 워크스페이스 경험은 로컬 앱, SaaS 앱, 가상 앱, 및 데스크탑 브라우저 앱, 그리고 저장소 앱을 지원할 수 있다. 피드가 계속하여 증가 및 확장됨에 따라서, 워크스페이스 경험은 사용자의 전체적인 워크스페이스에 추가적인 자원을 포함시킬 수 있다. 이는, 사용자가 액세스를 필요로 하는 모든 애플리케이션에 사용자가 접근할 수 있으리라는 것을 의미한다.
워크스페이스 네트워크 환경(20)을 계속하여 참조하면, 통일된 경험이 사용자에게 제공되는 방법에 대한 일련의 이벤트가 설명될 것이다. 통일된 경험은, 클라우드(104) 내에서 실행되는 워크스페이스 경험 서비스(102)에 연결하기 위해 사용자가 워크스페이스 앱(70)을 사용하고, 자신의 신원을 제시하는 것(이벤트 1)으로 시작된다. 예컨대, 신원은 사용자 이름 및 패스워드를 포함한다.
워크스페이스 경험 서비스(102)는 사용자의 신원을 클라우드(104) 내의 신원 마이크로 서비스(140)에 포워드한다(이벤트 2). 신원 마이크로 서비스(140)는, 조직의 워크스페이스 구성에 기초하여 올바른 신원 제공자(142)에게 사용자를 인증시킨다(이벤트 3). 인증은, 클라우드 커넥터(146)의 배치를 요구하는 구축형 액티브 디렉토리(144)에 기초할 수 있다. 인증은 또한, Azure Active Directory(148)에 또는, 예컨대, Citrix ADC 또는 Okta와 같은, 제삼자 신원 제공자(150)에도 기초할 수 있다.
인가되면, 워크스페이스 경험 서비스(102)는, 인가된 자원의 목록을 자원 피드 마이크로 서비스(108)로부터 요청한다(이벤트 4). 각 구성된 자원 피드(106)에 대해, 자원 피드 마이크로 서비스(108)는 신원 토큰을 싱글 사인 마이크로 서비스(152)로부터 요청한다(이벤트 5).
자원 피드 특유 신원 토큰이 각 자원의 인증 포인트에 전달된다(이벤트 6). 구축형 자원(122)은 클라우드 커넥터(124)를 통해 접촉된다. 각 자원 피드(106)는, 각 신원에 대해 인가된 자원의 목록으로 응답한다(이벤트 7).
자원 피드 마이크로 서비스(108)는 상이한 자원 피드(106)로부터의 모든 항목을 집성화하고 워크스페이스 경험 서비스(102)에 포워드한다(이벤트 8). 워크스페이스 경험 서비스(102)는, 워크스페이스 자원을 열거하고 워크스페이스 사용자 경험에 전달하는 클라우드(104)의 컴포넌트이다. 사용자는 워크스페이스 경험 서비스(102)로부터 자원을 선택한다(이벤트 9).
워크스페이스 경험 서비스(102)는 요청을 자원 피드 마이크로 서비스(108)에 포워드한다(이벤트 10). 자원 피드 마이크로 서비스(108)는 신원 토큰을 싱글 사인 온 마이크로 서비스(152)로부터 요청한다(이벤트 11). 사용자의 신원 토큰이 워크스페이스 경험 서비스(102)에 전송되고(이벤트 12), 시작 티켓(launch ticket)이 생성되어 사용자에게 전송된다.
사용자는 게이트웨이 서비스(160)에 대한 보안 세션을 개시하고 시작 티켓을 제시한다(이벤트 13). 사용자를 매끄럽게 인증하기 위해, 게이트웨이 서비스(160)는, 적절한 자원 피드(106)에 대한 보안 세션을 개시하고 신원 토큰을 제시한다(이벤트 14). 세션이 초기화되면, 사용자는 게이트웨이 서비스(160)를 통해 자원을 이용할 수 있다(이벤트 15). 단일 액세스 포인트 또는 애플리케이션을 통해 워크스페이스 전체가 전달되게 하는 것은, 사용자에 대해 생산성을 이롭게 개선시키고 일반적인 워크플로우를 유선화(streamline)시킨다.
이제 도 6을 참조하면, 예시된 컴퓨터 시스템(200)은, 통신 네트워크(240)를 통해 가상 컴퓨팅 세션(212)에 액세스하는 클라이언트 디바이스(220)를 포함한다. 통신 네트워크(240)는 또한, 클라이언트 디바이스(220) 상에서 프로그램, 애플리케이션, 및 서브루틴을 실행시키기 위한 데이터의 교환, 및 가상 컴퓨팅 세션(212)의 제공을 가능케 한다. 클라이언트 디바이스(220)는 또한, 통신 네트워크(240)를 통해 관리 서버(260)와 인터페이싱할 수 있다. 관리 서버(260)는 일반적으로 서버(260)로서 지칭될 수 있고, 디바이스 관리 및 문제해결을 비롯한 클라이언트 디바이스(200) 상에서의 관리 작업(262)을 수행하기 위해 관리자에 의해 사용된다.
디바이스 관리는, 예컨대, 클라이언트 디바이스(220)의 BIOS의 업데이트, 클라이언트 디바이스(220)의 운영 체제 내에서 발생하는 이벤트의 로그 파일의 수집, 그리고 구성 설정의 업데이트 및 시스템 이미지의 업데이트를 포함한다. 구성 설정은, 클라이언트 디바이스(220)가 통신 네트워크(240)에 연결하기 위해 요구되는 프록시 설정을 포함할 수 있다.
예컨대, 클라이언트 디바이스(220)가 올바르게 동작하지 못하게 하는 소프트웨어 문제를 클라이언트 디바이스(220)가 겪을 때, 문제해결이 요구된다. 클라이언트 디바이스(220)가 올바르게 동작하고 있지 않을 때 클라이언트 디바이스(220)의 최종 사용자는 관리자에게 통지한다. 이는, 클라이언트 디바이스(220)의 리부팅을 개시하기 위해 관리자가 관리 서버(260)를 사용하는 것을 수반할 수 있다. 예컨대, 운영 체제 또는 하드웨어 드라이버가 작동을 멈추었을 때 리부팅이 필요하다. 그래픽 드라이버가 충돌하여 운영 체제를 정지시킬 수 있고, 소프트웨어 코드가 오작동 상태에 교착될 수 있다. 리부팅은 클라이언트 디바이스(220)를 처음부터 다시 가동시켜, 이전에 동작했던 것과 같이 잘 동작하도록 모든 소프트웨어를 재시작시킬 것이다.
클라이언트 디바이스(220)가 통신 네트워크(240)에 연결되어 있을 때, 관리 서버(260)는 필요시 클라이언트 디바이스(220)와 인터페이싱하기 위해 통신 네트워크(240)를 사용한다. 그러나, 클라이언트 디바이스(220)가 관리 서버(260)에 의한 정비를 필요로 하지만 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 네트워크 연결을 갖지 않는 상황이 존재할 수 있다. 다시, 클라이언트 디바이스(220)가 올바르게 동작하고 있지 않을 때 클라이언트 디바이스(220)의 최종 사용자는 관리자에게 통지한다. 예컨대, 위에서 언급한 소프트웨어 문제는, 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃게 할 수 있다. 통신 네트워크(240)에 대한 연결이 손실되면, 클라이언트 디바이스(220)는 가상 컴퓨팅 세션(212)에 액세스할 수 없다.
클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃는 이러한 문제를 해결하기 위하여, 컴퓨터 시스템(200)은 이롭게 백업 통신 채널을 제공한다. 백업 통신 채널은, 통신 네트워크(240)와의 연결을 복원하기 위하여 관리 서버(260)에 의해 사용되기 위한 것이다. 예컨대, 관리 서버(260)에 의한 문제해결은, 소프트웨어 문제를 바로잡고 통신 네트워크(240)에 대한 연결을 복원하기 위해 (이전에 전술한 바와 같은) 클라이언트 디바이스(220)의 리부팅이 필요하다고 결정할 수 있다.
백업 통신 채널은 통신 네트워크(240)와는 독립적이고, 신뢰성 있게 관리 서버(260)가 클라이언트 디바이스(220)와 통신할 수 있도록 한다. 이는, 클라이언트 디바이스(220)가 가상 컴퓨팅 세션(212)에 액세스할 수 있도록, 관리 서버(260)가 통신 네트워크(240)에 대한 클라이언트 디바이스(220)의 연결을 복원하도록 하기 위해 필요하다.
백업 통신 채널이 없다면, 관리자는 네트워크 연결을 복원하기 위하여 문제해결 작업을 수행하기 위해 물리적으로 클라이언트 디바이스(220)에 가야 할 것이다. 많은 지리적 위치에 걸쳐 수천 개의 클라이언트 디바이스가 존재할 때 이는 더 어려워진다. 백업 통신 채널을 사용하면, 관리자는 통신 네트워크(240)에 대한 연결의 손실이 있을 때 문제해결 작업을 수행하기 위해 원격으로 클라이언트 디바이스(220)에 액세스할 수 있다.
백업 통신 채널은 셀룰러 네트워크 연결을 사용하여 구현된다. 셀룰러 네트워크 연결은 롱-텀 에볼루션(LTE, Long-Term Evolution) 연결로서도 지칭될 수 있다. LTE는 4세대 무선 표준(4G 표준)이며, 초당 최대 300메가비트를 반송하여 2G 및 3G 네트워크에 비해 더 높은 다운로드 속도를 달성할 수 있다. 다른 실시예에서, 5G 네트워크와 같은, LTE 이외의 셀룰러 네트워크 연결이 사용될 수 있다.
셀룰러 네트워크 연결은 클라이언트 디바이스(220)와 관리 서버(260) 사이에 존재한다. 클라이언트 디바이스(220)는, 셀룰러 네트워크(250)와 통신하기 위한 무선 송수신기(222)를 포함한다. 무선 송수신기(222)는 클라이언트 디바이스(220) 내에 통합되어 있다. 마찬가지로, 관리 서버(260)는 셀룰러 네트워크(250)와 통신한다. 클라이언트 디바이스(220)와 관리 서버(260) 사이의 통신은 양방향이다.
셀룰러 네트워크(250)를 통해 제공되는 백업 통신 채널은, 관리 서버(260)와의 상호작용으로 제한된다. 백업 통신 채널은, 클라이언트 디바이스(220)를 가상 컴퓨팅 세션(212)에 연결시키기 위해 사용되지 않는다. 그 대신, 백업 통신 채널은, 통신 네트워크(240)에 대한 연결이 손실되었을 때 문제해결 작업을 수행하기 위해 관리 서버(260)의 관리자에 의해 사용된다. 통신 네트워크(240)에 대한 네트워크 연결이 복원되면, 클라이언트 디바이스(220)는 통신 네트워크(240)를 통해 정상적으로 동작한다.
백업 통신 채널은 셀룰러 네트워크(250) 전용이고 통신 네트워크(240)와는 독립적이므로, 클라이언트 디바이스(220)에 의한 대역폭 사용은 낮다. 클라이언트 디바이스(220)는 통상적으로, 셀룰러 네트워크(250)와 통신할 때 수 메가비트의 대역폭보다 더 적게 소비할 것이다. 백업 통신 채널은 따라서, 통신 네트워크(240)에 대한 연결이 사용가능하지 않을 때 신뢰성 있게 관리 서버(260)가 클라이언트 디바이스(220)와 통신할 수 있도록 하는 비용 효과적인 관리 솔루션을 제공한다.
백업 통신 채널은 주로, 데스크탑 컴퓨터 또는 씬 클라이언트 디바이스와 같은 정적인 클라이언트 디바이스(220)용으로 의도되며, 그러한 클라이언트 디바이스(220)는 일반적으로 셀룰러 네트워크 연결을 포함하지 않는다. 씬 클라이언트 디바이스는, 낮은 비용 때문에, 대규모의 기업 및 조직에 매력적이다.
씬 클라이언트는, 예컨대, Raspberry Pi에 의해 제공되는 바와 같은, 단일 기판 컴퓨터에 기초하므로 씬 클라이언트는 매우 컴팩트하다. 단일 기판 컴퓨터는 통상적으로, 통합형 ARM(Advanced RISC Machines) 호환가능 CPU(central processing unit) 및 온칩 GPU(graphics processing unit)를 갖는 SoC(system on a chip)이다.
다른 실시예에서, 씬 클라이언트(220)는, Citrix Systems에 의해 제공되는 바와 같은, 워크스페이스 허브로서 동작하도록 구성될 수 있다. 워크스페이스 허브는, 비콘 기반 세션 로밍, QR 코드 로그인, 및 화면 캐스팅과 같은 추가적인 기능을 지원하는 엔드포인트 디바이스이다. 워크스페이스 허브는 이롭게, 사용자가 디바이스에 로그온 및 로그오프할 때 웹후크 방식의 트리거를 전송함으로써 IoT 디바이스와 통합된다. 이는, 예컨대, 스마트 오피스 솔루션의 부분으로서, IoT 조명, 프로젝터, 블라인드, 및 많은 다른 디바이스의 변경을 개시하기 위해 사용될 수 있다. 워크스페이스 허브는 또한, 종래의 USB 인간 입력 디바이스 및 Bluetooth 온도계를 비롯한 다양한 디바이스에 대한 공통 연결 지점이 될 수 있으며, 이들 디바이스로부터의 데이터를 애플리케이션에 보안성 있게 라우팅한다. 워크스페이스 허브는 또한, 사용자의 디바이스의 근접성에 기초하여 활동을 트리거링하기 위해 사용될 수 있는 BLE(Bluetooth low energy) 비콘을 포함한다.
클라이언트 디바이스(220)의 일반 프로세싱에 의한 셀룰러 네트워크(250)에 대한 액세스를 제한하기 위해, 무선 송수신기(222)는 일반 프로세싱으로부터 격리된다. 이러한 격리는, 도 7에 예시된 바와 같이, 하드웨어를 통해, 또는 소프트웨어를 통해 구현될 수 있다. 일반 프로세서(224)가 무선 송수신기(222)에 액세스한다면, 이는, 기업 또는 조직 내의 네트워크 트래픽에 대해 시행 중인 네트워크 보안 정책이 우회될 수 있게 할 것이다. 예컨대, 클라이언트 디바이스(220)의 최종 사용자는 무선 송수신기(222)를 통해 기업 또는 조직 내의 방화벽을 우회할 수 있다.
클라이언트 디바이스(220)는, 도 7에 예시된 바와 같이, 2개의 독립적인 서브시스템(230, 232)으로 구성될 수 있다. 통신 네트워크 서브시스템(230)은, 통신 네트워크(240)에 연결되었을 때의 클라이언트 디바이스(220)의 정상적인 사용을 위한 것이다. 정상적인 사용은, 클라이언트 디바이스(220)가 가상 컴퓨팅 세션(212)에 액세스하는 것, 및 통신 네트워크(240)를 통해 관리 서버(260)와 인터페이싱하는 것을 포함한다. 셀룰러 네트워크 서브시스템(232)은, 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 갖지 않을 때의 관리 및 문제해결 작업으로 제한된다.
통신 네트워크 서브시스템(230)은 일반 프로세서(224), 일반 프로세서(224)에 커플링되는 메모리(226), 및 일반 프로세서(224)에 커플링되는 통신 네트워크 인터페이스(228)를 포함한다. 통신 네트워크 인터페이스(228)는 통신 네트워크(240)에 대한 유선 연결(예컨대, 이더넷) 또는 무선 연결(예컨대, WiFi)일 수 있다.
셀룰러 네트워크 서브시스템(232)은 무선 송수신기(222), 및 무선 송수신기(222)에 커플링되는 관리 프로세서(227)를 포함한다. 일반 프로세서(224)는 일반적으로 제1 프로세서로서 지칭될 수 있고, 관리 프로세서(227)는 일반적으로 제2 프로세서로서 지칭될 수 있다. 무선 송수신기(222)는 관리 프로세서(227)를 통해 일반 프로세서(224)로부터 격리된다. 격리는, 일반 프로세서(224)가 무선 송수신기(222)에 연결되지 않는 것에 기초한다.
클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 가질 때에도, 셀룰러 네트워크 서브시스템(232)은, 셀룰러 네트워크(250)에 연결된 상태를 유지한다. 일부 실시예에서, 클라이언트 디바이스(220)는 백업 배터리(229)를 포함한다. 백업 배터리(229)는, 통신 네트워크(240)에 대한 네트워크 연결의 손실이 있고 클라이언트 디바이스(220)가 전원에 연결되어 있지 않을 때 관리 서버(260)가 클라이언트 디바이스(220)와 인터페이싱할 수 있게 한다.
관리 프로세서(227)는 메모리(226)에 그리고 일반 프로세서(224)에 커플링된다. 메모리(226)는 두 서브시스템(230, 232) 사이의 공유 메모리이다. 관리 프로세서(227)는, 위에서 언급한 바와 같이, 통신 네트워크(240)에 대한 연결을 복원하기 위해 관리 및 문제해결 작업을 수행하도록 구성된다.
일부 경우, 관리 프로세서(227)에 의해 수행되는 관리 및 문제해결 작업은, 일반 프로세서(224)에 의해 실행되고 있는 운영 체제와의 통신을 요구할 수 있다. 이들 작업은 인터럽트 요청(IRQ, interrupt request)을 통해 수행될 수 있다. 인터럽트 요청은, 관리 프로세서(227)에 의해 일반 프로세서(224)에 전송되는 신호이며, 실행 중인 프로그램을 일시적으로 정지시키고, 그 대신 특수 프로그램(즉, 인터럽트 핸들러)이 실행될 수 있게 한다.
셀룰러 네트워크 연결의 또 다른 용도는, 클라이언트 디바이스(220)의 플러그 앤드 플레이를 지원하는 것이다. 플러그 앤드 플레이는, 먼저 통신 네트워크(240)에 연결되었을 때 클라이언트 디바이스(220)가 사용자 또는 관리자에 의한 재구성 또는 조정 없이 의도된 바와 같이 작동할 때이다.
플러그 앤드 플레이에서, 클라이언트 디바이스(220)는 통신 네트워크(240)에 최초로 연결하기 위해 구성 파라미터(264)를 요구할 수 있다. 구성 파라미터(264)는, 예컨대, 프록시 설정을 포함할 수 있다. 프록시 설정은, 클라이언트 디바이스(220)에 의해 프록시 서버와 연결하기 위해 필요하다.
프록시 서버는, 다른 서버로부터의 자원을 찾는 클라이언트 디바이스(220)로부터의 요청을 위한 중간자로서의 역할을 한다. 클라이언트 디바이스(220)는 프록시 서버에 연결되어, 파일, 연결, 웹 페이지, 또는 상이한 서버로부터 사용가능한 다른 자원과 같은 서비스를 요청한다. 예시 프록시 설정은 프록시 서버의 IP 주소 및 포트 번호를 포함한다.
관리 서버(260)는 무선 송수신기(222)를 통해 클라이언트 디바이스(220)에 구성 파라미터(264)를 제공한다. 구성 파라미터(264)는, 클라이언트 디바이스(220)의 최종 사용자에게 프롬프팅할 필요 없이, 무선 수신기(222)에 제공된다.
셀룰러 네트워크 연결의 또 다른 용도는, 공급 사슬 해킹을 검출하는 것이다. 공급 사슬 해킹은, 제조자로부터 발송될 때와 통신 네트워크(240)에 연결될 때 사이에 클라이언트 디바이스(220)가 훼손되었을 때이다.
공급 사슬 해킹 검출에서, 클라이언트 디바이스(220)는, 통신 네트워크(240)에 최초로 연결하기 위해 검증을 요구한다. 검증 정보(264)는, 클라이언트 디바이스(220)가 공급 사슬 공격에 의해 훼손되었는지를 결정하기 위해 사용되기 위한 것이다. 관리 서버(260)는 무선 송수신기(222)를 통해 클라이언트 디바이스(220)를 검증한다.
관리 서버(260)는, 클라이언트 디바이스에 의해 제공되는 초기화 정보를, 클라이언트 디바이스(220)에 대해 예상되는 초기화 정보(266)에 비교함으로써 검증을 수행한다. 초기화 정보(266)는 데이터베이스 내에 저장될 수 있고, 클라이언트 디바이스(220) 상에 설치된 파일이 변경되었는지를 결정하기 위해 사용된다.
클라이언트 디바이스(220)가 발송될 때, 클라이언트 디바이스(220)에 대해 예상되는 초기화 정보(266)가, 관리 서버(260)에 의해 액세스가능한 데이터베이스에 입력된다. 예상되는 초기화 정보(266)는, 예컨대, 클라이언트 디바이스(220)에 할당된 ID, 및 클라이언트 디바이스(220)에 포함되어야 하는 파일의 목록을 포함한다.
클라이언트 디바이스(220)에 의해 제공되는 초기화 정보를, 예상되는 초기화 정보(266)에 비교함으로써, 하드웨어/소프트웨어 기반 침입 보호가 수행될 수 있다. 공급 사슬 해킹으로부터 보호하기 위해, 디바이스가 통신 네트워크(240)에 연결되도록 허용되기 전에, 관리 서버(260)는 셀룰러 네트워크(250)를 통해 검증을 수행한다. 검증은, 예컨대, 클라이언트 디바이스(220) 상에 설치된 파일의 이름 및 수를 확인하여, 파일이 변경되었는지 확인하는 것, 파일의 시간 변경이 없다고 확인하는 것, 및 BIOS 등을 확인하는 것을 포함한다.
이제 도 8의 흐름도(300)를 참조하면, 또 다른 양상은, 전술한 바와 같이 클라이언트 디바이스(220)를 동작시키기 위한 방법에 관한 것이다. 시작(블록 (302))에서부터, 방법은, 블록(304)에서, 통신 네트워크(240)를 통해 가상 컴퓨팅 세션(212)에 액세스하는 단계를 포함한다. 블록(306)에서, 클라이언트 디바이스(220)는 또한, 필요시, 통신 네트워크(240)를 통해 관리 서버(260)에 의해 액세스될 수 있다.
블록(308)에서, 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃는지에 대한 결정이 이루어진다. 이러한 결정은 통상적으로, 클라이언트 디바이스(220)의 최종 사용자가 관리자에게 문제를 통지하는 것에 의해 이루어진다. 다른 실시예에서, 클라이언트 디바이스(220)는, 셀룰러 네트워크(250)를 통해 관리자에게 통지하도록 구성될 수 있다. 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 갖는다면, 블록(314)에서, 클라이언트 디바이스(220)는 계속하여 통신 네트워크(240)를 통해 가상 컴퓨팅 세션(212)에 액세스한다.
클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃는다면, 블록(310)에서, 클라이언트 디바이스(220)는 셀룰러 네트워크(250)를 통해 관리 서버(260)와 통신한다. 블록(312)에서, 관리 서버(260)가 통신 네트워크(240)에 대한 연결을 복원하도록 하기 위해, 셀룰러 네트워크(250)가 사용된다. 연결을 복원하기 위해, 관리 서버(260)는 클라이언트 디바이스(220)를 리부팅하거나, 클라이언트 디바이스(220) 내의 소프트웨어(예컨대, BIOS)를 업데이트하거나, 구성 설정을 업데이트하여, 클라이언트 디바이스(220)가 통신 네트워크(240)에 연결되는 것을 가능케 할 수 있다. 통신 네트워크(240)에 대한 연결이 복원된 후, 방법은, 클라이언트 디바이스(220)가 통신 네트워크(240)를 통해 가상 컴퓨팅 세션(212)에 액세스하도록 하기 위해 블록(304)으로 다시 루프한다. 방법은 블록(316)에서 종료된다.
이제 도 9의 흐름도(350)를 참조하면, 또 다른 양상은, 전술한 바와 같이 관리 서버(260)를 동작시키기 위한 방법에 관한 것이다. 시작(블록(352))에서부터, 방법은, 블록(354)에서, 클라이언트 디바이스(220)와 통신하기 위해 통신 네트워크(240)를 수립하는 단계를 포함한다. 통신 네트워크(240)는, 클라이언트 디바이스(220) 상에서 프로그램, 애플리케이션, 및 서브루틴을 실행시키기 위한 데이터의 교환, 및 가상 컴퓨팅 세션(212)의 제공을 가능케 한다.
블록(356)에서, 전술한 바와 같이, 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃는지에 대한 결정이 이루어진다. 클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 갖는다면, 관리 서버는 계속하여 통신 네트워크(240)를 통해 클라이언트 디바이스(220)와 통신한다(362).
클라이언트 디바이스(220)가 통신 네트워크(240)에 대한 연결을 잃는다면, 블록(358)에서, 관리 서버(260)는 셀룰러 네트워크(250)를 통해 클라이언트 디바이스(220)와 통신한다. 블록(360)에서, 전술한 바와 같이, 관리 서버(260)가 통신 네트워크(240)에 대한 연결을 복원하도록 하기 위해 셀룰러 네트워크(250)가 사용된다. 방법은 블록(364)에서 종료된다.
위의 설명을 읽으면 당업자에 의해 이해될 바와 같이, 본 명세서에서 설명되는 다양한 양상은 디바이스, 방법, 또는 컴퓨터 프로그램 제품(예컨대, 언급된 동작 또는 단계를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 비일시적 컴퓨터 판독가능 매체)으로서 구체화될 수 있다. 따라서, 그러한 양상은, 전체적으로 하드웨어인 실시예, 전체적으로 소프트웨어인 실시예, 또는 소프트웨어 양상과 하드웨어 양상이 조합되어 있는 실시예의 형태를 취할 수 있다.
또한, 그러한 양상은, 하나 이상의 컴퓨터 판독가능 저장 매체 내에 또는 하나 이상의 컴퓨터 판독가능 저장 매체 상에 수록된 컴퓨터 판독가능 프로그램 코드, 또는 명령어를 갖는 하나 이상의 컴퓨터 판독가능 저장 매체에 의해 저장되는 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 하드 디스크, CD-ROM, 광학 저장 디바이스, 자기 저장 디바이스, 및/또는 이들의 임의의 조합을 비롯한 임의의 적합한 컴퓨터 판독가능 저장 매체가 이용될 수 있다.
전술한 설명 및 연관 도면에 제시된 교시의 이익을 갖는 많은 수정예 및 다른 실시예가 당업자에게 떠오를 것이다. 따라서, 전술한 내용은 예시 실시예로 제한되어서는 안 된다는 것과, 수정예 및 다른 실시예는, 첨부되는 청구항들의 범위 내에 포함되도록 의도된다는 것이 이해된다.

Claims (20)

  1. 컴퓨터 시스템에 있어서,
    복수의 가상 컴퓨팅 세션을 제공하도록 구성되는 가상 서버;
    통신 네트워크를 통해 상기 가상 컴퓨팅 세션 중 하나에 액세스하도록 구성되고, 무선 송수신기를 포함하는 클라이언트 디바이스 - 상기 무선 송수신기는 셀룰러 네트워크에 연결됨 - ; 및
    상기 클라이언트 디바이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 상기 셀룰러 네트워크를 통해 상기 클라이언트 디바이스와 통신하도록 구성되는 서버 - 상기 셀룰러 네트워크는, 상기 클라이언트 디바이스가 상기 통신 네트워크를 통해 상기 가상 컴퓨팅 세션 중 하나에 액세스하도록 하기 위한 연결을 상기 서버가 복원하도록 하기 위한 백업 통신 채널을 제공함 -
    를 포함하는, 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 클라이언트 디바이스는 상기 통신 네트워크에 연결되어 있을 때에도 상기 셀룰러 네트워크에 연결되는, 컴퓨터 시스템.
  3. 제1항에 있어서, 상기 클라이언트 디바이스는, 상기 클라이언트 디바이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 상기 셀룰러 네트워크를 통해 상기 가상 컴퓨팅 세션 중 하나에 액세스할 수 없는, 컴퓨터 시스템.
  4. 제1항에 있어서, 상기 서버는, 상기 클라이언트 디바이스 상에서 관리 및 문제해결 작업을 수행하도록 구성되는, 컴퓨터 시스템.
  5. 제4항에 있어서, 상기 관리 및 문제해결 작업은, 상기 클라이언트 디바이스의 리부팅, 상기 클라이언트 디바이스 내의 소프트웨어의 업데이트, 및 상기 통신 네트워크에 대한 연결을 가능케 하기 위한 상기 클라이언트 디바이스 내의 구성 설정의 업데이트 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  6. 제1항에 있어서, 상기 클라이언트 디바이스는,
    상기 통신 네트워크와의 인터페이싱을 위한 통신 네트워크 인터페이스;
    상기 통신 네트워크를 통해 상기 가상 컴퓨팅 세션 중 하나에 액세스하도록 상기 통신 네트워크 인터페이스에 커플링되는 제1 프로세서; 및
    상기 무선 송수신기에 커플링되고, 상기 통신 네트워크에 대한 연결을 복원하도록 구성되는 제2 프로세서 - 상기 무선 송수신기는 상기 제1 프로세서로부터 격리됨 -
    를 포함하는, 컴퓨터 시스템.
  7. 제1항에 있어서, 상기 클라이언트 디바이스는, 상기 통신 네트워크에 최초로 연결하기 위한 구성 파라미터를 상기 무선 송수신기를 통해 상기 서버로부터 수신하는, 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 구성 파라미터는, 상기 클라이언트 디바이스의 최종 사용자에게 프롬프팅할 필요 없이, 상기 무선 송수신기에 제공되는, 컴퓨터 시스템.
  9. 제1항에 있어서, 상기 클라이언트 디바이스가 상기 통신 네트워크에 최초로 연결할 수 있도록, 상기 서버는 상기 무선 송수신기를 통해 상기 클라이언트 디바이스를 검증하는, 컴퓨터 시스템.
  10. 제9항에 있어서, 상기 서버는, 상기 클라이언트 디바이스에 의해 제공되는 초기화 정보를 상기 클라이언트 디바이스에 대해 예상되는 초기화 정보에 비교함으로써 상기 검증을 수행하고, 상기 초기화 정보는, 상기 클라이언트 디바이스 상에 설치된 파일이 변경되지 않았다고 결정하기 위해 사용되는, 컴퓨터 시스템.
  11. 제1항에 있어서, 상기 클라이언트 디바이스는 씬 클라이언트 디바이스(thin client device)로서 구성되는, 컴퓨터 시스템.
  12. 클라이언트 디바이스에 있어서,
    통신 네트워크와 인터페이싱하기 위한 통신 네트워크 인터페이스;
    상기 통신 네트워크 인터페이스에 커플링되고, 상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 갖는 데 응답하여 상기 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 구성되는 제1 프로세서;
    셀룰러 네트워크에 연결되는 무선 송수신기; 및
    상기 무선 송수신기에 커플링되고, 상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 상기 셀룰러 네트워크를 통해 서버와 통신하도록 구성되는 제2 프로세서 - 상기 셀룰러 네트워크는, 상기 제1 프로세서가 상기 통신 네트워크를 통해 상기 가상 컴퓨팅 세션에 액세스하도록 하기 위한 상기 통신 네트워크에 대한 상기 통신 네트워크 인터페이스의 연결을 상기 서버가 복원하도록 하기 위한 백업 통신 채널을 제공함 -
    를 포함하는, 클라이언트 디바이스.
  13. 제12항에 있어서, 상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 가질 때, 상기 무선 송수신기는 상기 셀룰러 네트워크에 동시에 연결되는, 클라이언트 디바이스.
  14. 제12항에 있어서, 상기 제1 프로세서는, 상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 상기 셀룰러 네트워크를 통해 상기 가상 컴퓨팅 세션에 액세스할 수 없는, 클라이언트 디바이스.
  15. 제12항에 있어서, 상기 무선 송수신기가 상기 제1 프로세서에게 사용가능하지 않도록, 상기 무선 송수신기는 상기 제1 프로세서에 연결되지 않는, 클라이언트 디바이스.
  16. 제12항에 있어서, 상기 서버는, 상기 클라이언트 디바이스 상에서 관리 및 문제해결 작업을 수행하도록 구성되고, 상기 관리 및 문제해결 작업은, 상기 클라이언트 디바이스의 리부팅, 상기 클라이언트 디바이스 내의 소프트웨어의 업데이트, 및 상기 통신 네트워크에 대한 연결을 가능케 하기 위한 상기 클라이언트 디바이스 내의 구성 설정의 업데이트 중 적어도 하나를 포함하는, 클라이언트 디바이스.
  17. 제12항에 있어서, 상기 제1 프로세서는, 상기 통신 네트워크에 최초로 연결하기 위한 구성 파라미터를 상기 무선 송수신기 및 상기 제2 프로세서를 통해 상기 서버로부터 수신하는, 클라이언트 디바이스.
  18. 제12항에 있어서, 상기 제1 프로세서가 상기 통신 네트워크에 최초로 연결할 수 있도록, 상기 서버는 상기 무선 송수신기를 통해 상기 제1 프로세서의 동작을 검증하는, 클라이언트 디바이스.
  19. 방법에 있어서,
    통신 네트워크 인터페이스가 통신 네트워크에 대한 연결을 갖는 데 응답하여 상기 통신 네트워크를 통해 가상 컴퓨팅 세션에 액세스하도록 상기 통신 네트워크 인터페이스에 커플링되는 제1 프로세서를 동작시키는 단계; 및
    상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 셀룰러 네트워크를 통해 서버와 통신하도록 무선 송수신기에 커플링되는 제2 프로세서를 동작시키는 단계 - 상기 셀룰러 네트워크는, 상기 제1 프로세서가 상기 통신 네트워크를 통해 상기 가상 컴퓨팅 세션에 액세스하도록 하기 위한 상기 통신 네트워크에 대한 상기 통신 네트워크 인터페이스의 연결을 상기 서버가 복원하도록 하기 위한 백업 통신 채널을 제공함 -
    를 포함하는, 방법.
  20. 제19항에 있어서, 상기 제1 프로세서는, 상기 통신 네트워크 인터페이스가 상기 통신 네트워크에 대한 연결을 잃는 데 기초하여 상기 셀룰러 네트워크를 통해 상기 가상 컴퓨팅 세션에 액세스할 수 없는, 방법.
KR1020217036144A 2019-08-20 2020-07-30 클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화 KR20210150479A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/545,135 US11489716B2 (en) 2019-08-20 2019-08-20 Desktop virtualization with a dedicated cellular network connection for client devices
US16/545,135 2019-08-20
PCT/US2020/044142 WO2021034468A1 (en) 2019-08-20 2020-07-30 Desktop virtualization with a dedicated cellular network connection for client devices

Publications (1)

Publication Number Publication Date
KR20210150479A true KR20210150479A (ko) 2021-12-10

Family

ID=72087261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217036144A KR20210150479A (ko) 2019-08-20 2020-07-30 클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화

Country Status (8)

Country Link
US (1) US11489716B2 (ko)
EP (1) EP4018629B1 (ko)
JP (1) JP2022537507A (ko)
KR (1) KR20210150479A (ko)
CN (1) CN113826075A (ko)
AU (1) AU2020334795A1 (ko)
CA (1) CA3137302A1 (ko)
WO (1) WO2021034468A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736466B2 (en) * 2019-09-18 2023-08-22 Bioconnect Inc. Access control system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008045370A2 (en) * 2006-10-06 2008-04-17 Paragon Wireless, Inc. Method, system and apparatus for a dual mode mobile device
US20090106571A1 (en) * 2007-10-21 2009-04-23 Anthony Low Systems and Methods to Adaptively Load Balance User Sessions to Reduce Energy Consumption
WO2010127365A1 (en) * 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8769278B2 (en) * 2010-04-07 2014-07-01 Apple Inc. Apparatus and method for efficiently and securely exchanging connection data
US8675479B2 (en) * 2011-07-12 2014-03-18 Tellabs Operations, Inc. Methods and apparatus for improving network communication using ethernet switching protection
US9787738B2 (en) * 2012-06-19 2017-10-10 Circle Technology, Inc. Closed network video presentation
US9059902B2 (en) * 2012-08-24 2015-06-16 Coriant Operations, Inc Procedures, apparatuses, systems, and computer-readable media for operating primary and backup network elements
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US9210646B2 (en) * 2013-07-11 2015-12-08 Verizon Patent And Licensing Inc. Back-up path for in-home diagnostics and other communications
US9584631B2 (en) * 2013-12-03 2017-02-28 Verizon Patent And Licensing Inc. Providing out-of-band control and backup via a cellular connection
US9313299B2 (en) * 2013-12-18 2016-04-12 Verizon Patent And Licensing Inc. Cloud edge appliances to extend cloud applications to customer premises
US9106887B1 (en) * 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth
US9887906B2 (en) * 2014-09-15 2018-02-06 Verizon Patent And Licensing Inc. Network service restoration-on-demand
US20170093611A1 (en) * 2015-09-29 2017-03-30 Juniper Networks, Inc. Egress node protection in evpn all-active topology
US10498807B2 (en) * 2015-10-19 2019-12-03 Citrix Systems, Inc. Multi-tenant multi-session catalogs with machine-level isolation
US10797977B2 (en) * 2016-03-22 2020-10-06 Citrix Systems, Inc. Robust suspension and resumption of desktop virtualization
US10331882B2 (en) * 2016-08-24 2019-06-25 Citrix Systems, Inc. Tracking and managing virtual desktops using signed tokens
US10721130B2 (en) 2017-05-15 2020-07-21 Citrix Systems, Inc. Upgrade/downtime scheduling using end user session launch data
US10104710B1 (en) * 2017-06-19 2018-10-16 Global Tel*Link Corporation Dual mode transmission in a controlled environment
US10375556B2 (en) * 2017-12-21 2019-08-06 International Business Machines Corporation Emergency call service backup using device user plane communications
US10581638B2 (en) * 2018-04-18 2020-03-03 Hewlett Packard Enterprise Development Lp Assign tunnel tag identifying virtual local area network tunnel
US11449393B2 (en) * 2019-08-06 2022-09-20 Citrix Systems, Inc. Automatic restore for a failed virtual computing session

Also Published As

Publication number Publication date
US20210058283A1 (en) 2021-02-25
US11489716B2 (en) 2022-11-01
AU2020334795A1 (en) 2021-11-11
WO2021034468A1 (en) 2021-02-25
EP4018629B1 (en) 2024-03-13
JP2022537507A (ja) 2022-08-26
EP4018629A1 (en) 2022-06-29
CA3137302A1 (en) 2021-02-25
CN113826075A (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
US11822932B2 (en) Provisioning services (PVS) cloud streaming with read cache
CA3135190A1 (en) System and method for validating virtual session requests
EP3772686A1 (en) Automatic restore for a failed virtual computing session
EP4018629B1 (en) Desktop virtualization with a dedicated cellular network connection for client devices
US20240036807A1 (en) Solution to avoid duplicated app notification sounds
US11630682B2 (en) Remoting user credential information to a remote browser
AU2021202457B2 (en) Provisioning service (PVS) cloud streaming with read cache
US11126455B2 (en) System and methods for provisioning different versions of a virtual application
US20210034389A1 (en) Desktop virtualization with linked power management to client devices
US11889000B2 (en) Shared device secure access
US20230325593A1 (en) Computing device and methods providing enhanced language detection and display features for virtual computing sessions
US20220414240A1 (en) Contextual tab aware app protection
US20230403266A1 (en) Virtual desktop screen sharing with multiple sharers in a collaboration session
US20230325532A1 (en) Contextual app protection for collaboration sessions
US20240103990A1 (en) Computing device with bridge to native app for security and resiliency

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application