KR20130139894A - 복수의 원격 서버에 대한 통합 재연결 - Google Patents

복수의 원격 서버에 대한 통합 재연결 Download PDF

Info

Publication number
KR20130139894A
KR20130139894A KR1020137008151A KR20137008151A KR20130139894A KR 20130139894 A KR20130139894 A KR 20130139894A KR 1020137008151 A KR1020137008151 A KR 1020137008151A KR 20137008151 A KR20137008151 A KR 20137008151A KR 20130139894 A KR20130139894 A KR 20130139894A
Authority
KR
South Korea
Prior art keywords
remote
disconnected
user
session
client
Prior art date
Application number
KR1020137008151A
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 KR20130139894A publication Critical patent/KR20130139894A/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/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사용자를 서버 팜의 디플로이먼트 내의 자신의 자원들(예컨대, 원격 데스크탑 또는 원격 애플리케이션) 모두에 연결하는 기술이 설명되어 있다. 사용자의 클라이언트는 사용자에 대해 임의의 연결해제된 자원 및/또는 다른 클라이언트와 통신하는 임의의 활성 자원을 요청하는 메시지를 디플로이먼트에게 전송한다. 디플로이먼트는 그러한 자원이 무엇인지 판정하고, 중복 정보(예컨대, 2개의 자원이 동일 세션 내에서 실행되는 원격 애플리케이션임)를 제거하고, 제거 리스트를 재연결할 클라이언트에게 전송한다. 클라이언트는 먼저 VM이 아닌 자원에 재연결하고 로그인 동안 프롬프트되는 임의의 사용자 입력(예컨대, 크리덴셜)을 저장한다. 그 후, 클라이언트는 이들 나중의 재연결에서 첫번째 재연결 동안 클라이언트로부터 수신된 임의의 입력을 사용하여 다른 자원들에 병렬로 재연결한다.

Description

복수의 원격 서버에 대한 통합 재연결{UNIFIED RECONNECTION TO MULTIPLE REMOTE SERVERS}
컴퓨터 데스크탑 및 애플리케이션을 RDP(Remote Desktop Protocol), RDSH(Remote Desktop Session Host), RDS(Remote Desktop Services)와 같은 원격 프리젠테이션 기술을 이용하여 원격 클라이언트와 공유하는 것은 일반적이다. 이러한 공유된 컴퓨팅 시스템은 통상적으로 서버 상의 원격 프리젠테이션 세션에 대한 사용자 세션의 인스턴스화를 통해 확립된다. 서버의 스크린이 세션의 클라이언트와 공유될 경우, 원격 프리젠테이션 세션은 서버에 로컬인 콘솔 세션으로부터 그 정보를 획득한다. 원격 프리젠테이션 세션 동안, 클라이언트는 키보드 누름 및 마우스 클릭 또는 선택을 서버에게 전송하고, 서버는 네트워크 연결(예컨대, INTERNET)을 통해 클라이언트에게 다른 방향으로 다시 스크린 업데이트를 보낸다. 이에 따라, 클라이언트의 사용자는 마치 자신의 컴퓨터가 애플리케이션을 로컬로 실행하고 있는 것과 같은 경험을 하지만, 이 때 실제로는 클라이언트 컴퓨터가 애플리케이션의 스크린샷을 서버측에 나타나는 대로 전송할 뿐이다.
일부 원격 프리젠테이션 시나리오에서는, 전체 데스크탑이 클라이언트에 대해 원격이다. 예컨대, 가상 데스크탑 세션에서는 단일 사용자가 가상 머신 내에서 실행되는 운영체제에 연결되고 전체 데스크탑은 클라이언트에 대해 원격이다. 원격 데스크탑 세션에서는, 복수의 사용자가 단일 운영체제에 연결되고 사용자 인터페이스가 클라이언트에 대해 원격이다. 다른 원격 프리젠테이션 시나리오에서는, 특정 애플리케이션이 클라이언트에 대해 원격이다. 이 제 2 시나리오를 때론 "애플리케이션 원격조정(application remoting)"이라 한다. 애플리케이션을 원격조정하면, 관리의 편의, 클라이언트들이 처리를 적게 하도록 요구되기 때문에 클라이언트들이 저렴해질 수 있다는 점 및 애플리케이션들이 그들의 데이터 소스 가까이에서 실행될 수 있다는 점과 같은 많은 이점들이 있다. 클라이언트가 복수의 원격 애플리케이션에 동시에 액세스하고 있는 경우, 클라이언트가 참가하고 있는 원격 프리젠테이션 세션보다 클라이언트가 액세스하는 원격 자원을 가리키는 것이 바람직할 수 있다. 이는, 단일 서버 팜(server farm)이 클라이언트에게 2개의 원격 애플리케이션을 서빙하는 경우, 이들 원격 애플리케이션이 서버 팜 상의 동일 세션 내에 모두 실행될 수 있고, 따라서 서버 팜에게는 단일 원격 프리젠테이션 세션의 일부일 수 있기 때문이다. 본 명세서에 사용된 "원격 자원(remote resource)"은 원격 애플리케이션, 원격 데스크탑, 가상 데스크탑 등을 지칭할 수 있다.
복수의 원격 자원에 동시에 액세스하기 위한 기술을 제공하는 것이 개선점이다.
예컨대, 사용자가 제 1 클라이언트 컴퓨터로부터 복수의 원격 자원에 동시에 액세스한 다음 다른 클라이언트 컴퓨터로 이동할 경우, 사용자가 자신의 원격 자원 모두를 다시 획득하기 어려울 수 있다. 사용자는 자신이 어느 서버에 연결되어 있는 지 또는 자신이 이용하고 있었던 원격 자원 전부를 다시 획득할 수 있기 위해 자신이 어느 애플리케이션을 사용하고 있었는 지를 알 필요가 있을 수 있다. 이것은 이상적인 상황이 아니며 사용자가 많은 원격 자원을 가지고 작업하는 것을 어렵게 만든다.
사용자가 원격 세션 동안 특정 서버에 연결될 경우, 그 서버 상의 그 사용자를 위해 실행중인 모든 원격 애플리케이션이 사용자에 대해 원격일 것이며 사용자는 그 서버 상의 워크스페이스로부터 애플리케이션에 재연결될 것이다. 이것은, 예컨대 원격 애플리케이션을 실행하기 위한 서버 상의 하나의 세션이 사용자에게 주어지고 이들 원격 애플리케이션을 위한 윈도우가 사용자에게 전송되는 실시예에서는, 참이다(그러나 세션과 연관된 데스크탑은 그렇지 않다). 이 예에서, 연결이 세션과 함께 하며, 모든 원격 애플리케이션이 그 세션의 부분이며, 따라서 세션으로의 하나의 재연결의 결과로 모든 원격 애플리케이션에 재연결된다. 이것은,각각의 원격 애플리케이션이 별도의 사용자 세션에서 실행되는 경우와 같은 다른 시나리오에서는 유효하지 않을 수 있다.
워크스페이스의 원격 애플리케이션이 복수의 서버에 걸쳐 확산될 경우, 하나의 원격 애플리케이션에 대한 재연결이 모든 원격 애플리케이션으로의 재연결을 낳지는 않을 것이다.
추가적인 문제점은, 복수의 서버에 재연결될 경우, 사용자가 사용자명, 패스워드 또는 다른 에러 조건들에 대해 복수의 프롬프트를 볼 수도 있다. 이들 복수의 프롬프트는, 각 프롬프트가 사용자 상호작용을 요구하며 끊김없는 사용자 경험을 감소시키기 때문에 사용자 경험에 부정적인 영향을 줄 수도 있다.
본 기술들은 사용자가 자신이 사용하는 임의의 컴퓨터로부터 자신이 사용하고 있었던 모든 원격 자원들에 자동으로 재연결할 수 있는 시나리오를 생성함으로써 이들 문제를 해소한다. 일 실시예에서, 사용자는 제 1 컴퓨터 상에 워크스페이스를 갖는다. 워크스페이스는 클라이언트 컴퓨터에 의해 원격 데스크탑 웹 연결("RDWeb"; Remote Desktop Web Connection)과 같은 서버 컴퓨터로부터 수신된 하나 이상의 원격 자원이다. 원격 자원은 상이한 원격 프리젠테이션 서버로부터 또는 (RAIL(Remote Application Integrated Locally) 프로그램과 같은) 원격 프로그램을 통해 (RDVH(Remote Desktop Virtualization Host)와 같은) 데스크탑 가상화 호스트 컴퓨터로부터 올 수도 있다. 워크스페이스를 관리하는 클라이언트 컴퓨터 상에서의 프로세스는 SOAP(simple Object Access Protocol)를 사용하여 웹 서비스에 연결하기 위해 식별자를 유지한다. 이 식별자는, 예컨대, 클라이언트 컴퓨터가 워크스페이스를 구독하였을 때 다운로드되는 XML(extensible markup language) 피드에 포함되는 웹 서비스의 위치에 대한 URL(uniform resource locator)일 수 있다. 클라이언트는 사용자가 피드를 구독하였을 때 서버로부터 보내진 쿠키를 사용하여 웹 서비스에 자신을 확인시킬 수 있다. 웹 서비스는 쿠키를 사용하여 사용자를 인증하고 사용자의 신원(identity)을 얻는다. 웹 서비스는 RPC(remote procedure call)를 사용하여 워크스페이스 및 사용자 식별자를 중앙 퍼블리싱 서비스(centralized publishing service)에 보낸다. 중앙 퍼블리싱 서비스는 이 정보를 사용하여, 그 사용자 ID 및 워크스페이스와 연관된 세션의 리스트(연결해제된 세션 및/또는 다른 머신에 연결된 활성 세션)를 얻기 위해 세션 브로커에게 질의한다. 그 후, 중앙 퍼블리싱 서비스는 세션 및/또는 다른 머신에 연결된 활성 세션을 갖는 개별 머신과 연관된 원격 프리젠테이션 파일을 매칭시키고, 각각의 원격 프리젠테이션 파일을 수정하여 재연결을 나타내도록 한다. 중앙 퍼블리싱 서비스는 수정된 원격 프리젠테이션 파일의 리스트를 웹 서비스에게 반환하고, 웹 서비스는 이 리스트를 클라이언트 컴퓨터 상의 워크스페이스 프로세스에 반환한다.
원격 프리젠테이션 파일을 갖는 사용자의 컴퓨터는 클라이언트 컴퓨터와 원격 서버 사이의 재연결 프로세스를 개시한다. 각각의 연결은 새로운 프로세스(예컨대, 마이크로소프트 윈도우즈 운영체제의 버전들에서의 mstsc.exe. mstsc.exe는 다른 컴퓨터들과의 원격 프리젠테이션 연결을 생성하도록 구성된다)를 개시한다. 복수의 연결이 이루어질 수도 있지만, 다른 연결이 이루어지기 전에 처음에는 단일 연결이 이루어진다. 모든 연결에 공통인 (사용자명 및 패스워드를 위한 프롬프트와 같은) 프롬프트 상태가 있을 수 있기 때문에 단일 연결이 처음 이루어진다. 처음에 단지 단일 연결만을 연결함으로써, 단지 하나의 그러한 프롬프트가 있을 수 있고, 그 후 모든 다른 연결에 대해 이 정보가 사용될 수 있다. 단일 연결이 이루어진 후, 다른 연결들이 병렬로 이루어질 수 있다.
원격 애플리케이션에 재연결할 때, 재연결을 확립하는 클라이언트 상에서의 프로세스는 새로운 애플리케이션이 시작되게 하는 패킷을 드롭시키고(또는 이 재연결 요청과 반대로 연결 요청 중에 그것이 보내는 패킷을 보내지 않고), 이것은 새로운 애플리케이션을 시작하지 않고 사용자를 서버 상의 원격 자원에 재연결시킨다(이 프로세스의 예는 각각의 개별 연결/재연결에 대해 인스턴스화될 수 있다). 재연결 프로세스 동안, 사용자 프롬프트는 클라이언트 프로세스 인스턴스로부터 재연결을 관리하는 워크스페이스 런타임으로 통신 채널을 확립함으로써 최소화될 수 있다. 에러 상태는 이 채널을 통해 워크스페이스 런타임으로 보내질 수 있고 거기에서 사용자에게로의 단일 프리젠테이션 내 복수의 재연결 프로세스 인스턴스로부터 수신된 대로 수집될 수 있다.
본 기술을 사용하는데 있어서, 사용자는 자신이 어느 서버 상에서 실행되는지 또는 자신이 어느 애플리케이션 및 데스크탑을 능동적으로 사용하고 있었는지 알 필요없이 워크스페이스 내 자신의 원격 자원에 재연결할 수 있다. 또한, 제 1 재연결을 직렬화하고 사용자 인터페이스를 통합함(unifying)으로써, 재연결에서의 사용자의 경험이 보다 끊김없게 된다.
본 발명의 하나 이상의 다양한 측면들은 본 명세서에서 참조된 본 발명의 측면들을 실시하는 회로 및/또는 프로그래밍을 포함할 수도 있지만, 이들에 한정되지는 않는데, 이들 회로 및/또는 프로그래밍은 사실상 시스템 설계자의 설계 선택에 따라 본 명세서에 참조된 측면들을 실시하도록 구성된 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합일 수 있기 때문이다.
이상은 요약부이며 따라서 필요에 따라 간략화, 일반화 및 세부사항의 생략을 포함한다. 본 요약부는 예시적일 뿐으로 어떻게든 제한하고자 하는 의도는 없음을 당업자는 이해할 수 있을 것이다.
도 1은 본 명세서에서 설명하는 기술들이 실시될 수 있는 예시적인 범용 컴퓨팅 환경을 도시한 도면.
도 2는 클라이언트가 복수의 서버와의 원격 세션을 포함하는 워크스페이스를 갖는 예시적인 시스템을 도시한 도면.
도 3은 클라이언트가 워크스페이스의 원격 자원에 재연결하는 통신 흐름을 예시적으로 도시한 도면.
도 4는 클라이언트, 요청 프록시 및 연결 브로커의 예시적인 하위구성요소를 도시한 도면.
도 5는 서버 팜의 복수의 원격 서버와의 연결을 포함하는 워크스페이스에 재연결하기 위한 클라이언트로부터의 요청을 처리하는 연결 브로커에서의 예시적인 동작 절차를 도시한 도면.
도 6은 워크스페이스를 서버 팜의 복수의 원격 서버에 재연결하는 클라이언트에서의 예시적인 동작 절차를 도시한 도면.
도 7a는 재연결 프로세스에서 클라이언트를 위한 예시적인 사용자 인터페이스 요소들을 도시한 도면.
도 7b는 재연결 프로세스에서 클라이언트를 위한 예시적인 추가 사용자 인터페이스 요소들을 도시한 도면.
도 7c는 재연결 프로세스에서 클라이언트를 위한 예시적인 추가 사용자 인터페이스 요소들을 도시한 도면.
이하, 첨부 도면을 참조하여 클라이언트의 원격 자원에 대한 재연결을 위한 시스템, 방법 및 컴퓨터 판독가능한 매체를 보다 상세히 설명한다.
실시예들은 하나 이상의 컴퓨터 시스템 상에서 실행될 수 있다. 도 1 및 이하의 논의는 청구항에 기재된 청구대상이 구현될 수 있는 적절한 컴퓨팅 환경을 간단하게 일반적으로 설명하기 위한 것이다.
명세서에서 사용되는 회로라는 용어는 하드웨어 인터럽트 컨트롤러, 하드 드라이브, 네트워크 어댑터, 그래픽 프로세서, 하드웨어 기반 비디오/오디오 코덱 및 그러한 하드웨어를 동작시키는데 사용되는 펌웨어와 같은 하드웨어 구성요소를 포함할 수 있다. 회로라는 용어는 또한 마이크로프로세서, 애플리케이션 특정 집적 회로 및/또는 하나 이상의 프로세서, 예컨대, 펌웨어 및/또는 소프트웨어로부터 판독된 명령어로 구성된 멀티 코어 범용 처리 유닛 중 하나 이상의 코어를 포함할 수도 있다. 프로세서는 예컨대, RAM, ROM, 펌웨어 및/또는 대용량 저장 장치와 같은 메모리로부터 로딩된 기능(들)을 수행하도록 동작가능한 로직을 구현하는 명령어에 의해 구성될 수 있다. 회로가 하드웨어 및 소프트웨어의 조합을 포함하는 일실시예에서, 실시자는 로직을 구현하는 소스 코드를 기록할 수 있으며, 이 코드는 차후에 기계 판독가능 코드로 컴파일되어 프로세서에 의해 실행될 수 있다. 현 기술 수준이 하드웨어 구현 기능 또는 소프트웨어 구현 기능들 사이에 거의 차이가 없는 지점까지 발전해 왔으므로, 본 명세서에서 설명하는 기능들을 실시하기 위해 하드웨어 또는 소프트웨어를 선택하는 것은 단지 설계상 선택사항일 뿐임을 당업자는 이해할 수 있을 것이다. 달리 말하면, 소프트웨어 프로세스는 등가 하드웨어 구성으로 변환될 수 있고, 하드웨어 구성 자체는 등가의 소프트웨어 프로세스로 변환될 수 있으므로, 하드웨어 구현 또는 소프트웨어 구현의 선택은 실시자에게 달려있음을 당업자는 이해할 수 있을 것이다.
이제 도 1을 참조하면, 도 1은 예시적인 범용 컴퓨팅 시스템을 도시하고 있다. 범용 컴퓨팅 시스템은 적어도 하나의 프로세서 또는 프로세싱 유닛(21), 시스템 메모리(22) 및 시스템이 동작 상태에 있을 때 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 프로세싱 유닛(21)에 통신 결합하는 시스템 버스(23)를 포함하는 통상의 컴퓨터(20) 등을 포함할 수 있다. 시스템 버스(23)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하는 여러 유형의 버스 구성 중 임의의 유형일 수 있다. 시스템 메모리는 ROM(read only memory)(24) 및 RAM(random access memory)(25)를 포함할 수 있다. 시동 기간과 같이 컴퓨터(20) 내 요소들 사이의 정보 전달을 돕는 기본 루틴을 포함하는 BIOS(basic input/output system)(26)는 ROM(24)에 저장된다. 컴퓨터(20)는 하드 디스크(도시되지 않음)에 대한 판독 및 기록을 위한 하드 디스크 드라이브(27), 착탈식 자기 디스크(29)에 대한 판독 및 기록을 위한 자기 디스크 드라이브(28) 및 CD ROM 또는 기타 광학 매체와 같은 착탈식 광학 디스크(31)에 대한 판독 또는 기록을 위한 광학 디스크 드라이브(30)를 더 포함할 수 있다. 하드 디스크 드라이브(27), 자기 디스크 드라이브(28) 및 광학 디스크 드라이브(30)는 각각 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33) 및 광학 드라이브 인터페이스(34)에 의해 시스템 버스(23)에 연결된 것으로 도시되어 있다. 드라이브들 및 이들의 관련 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 컴퓨터(20)용 데이터의 비휘발성 저장을 제공한다. 본 명세서에 설명된 예시적인 환경은 하드 디스크, 착탈식 자기 디스크(29) 및 착탈식 광학 디스크(31)를 이용하지만, 플래시 메모리 카드, 디지털 비디오 디스크, RAM, ROM 등과 같이 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능한 저장 매체도 예시적인 운영 환경에 사용될 수 있음을 당업자라면 이해할 수 있을 것이다. 일반적으로, 이러한 컴퓨터 판독가능한 저장 매체는 일부 실시예에서 본 명세서의 측면들을 실시하는 프로세서 실행가능 명령어를 저장하기 위해 사용될 수 있다.
운영체제(35), 하나 이상의 애플리케이션 프로그램(36), 기타 프로그램 모듈(37) 및 프로그램 데이터(38)를 포함하여, 컴퓨터 판독가능 명령어를 포함하는 다수의 프로그램 모듈이 하드 디스크, 자기 디스크(29), 광학 디스크(31), ROM(24) 또는 RAM(25)과 같은 컴퓨터 판독가능한 매체에 저장될 수도 있다. 프로세싱 유닛에 의한 실행시에, 컴퓨터 판독가능 명령어들은 보다 상세히 후술하는 동작들이 수행되게 하거나 또는 다양한 프로그램 모듈이 인스턴스화되게 한다. 사용자가 키보드(30)나 포인팅 장치(42)와 같은 입력 장치를 통해 컴퓨터(20)에 명령 및 정보를 입력할 수도 있다. (도시되지 않은) 다른 입력 장치로는 마이크, 조이스틱, 게임 패드, 위성 접시(satellite disk), 스캐너 등이 있다. 이들 입력 장치 및 다른 입력 장치는 흔히 시스템 버스에 결합되는 직렬 포트 인터페이스(46)를 통해 프로세싱 유닛(21)에 연결되지만, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스에 의해 연결될 수도 있다. 디스플레이(47) 또는 다른 유형의 디스플레이 장치가 비디오 어댑터(48)와 같은 인터페이스를 통해 시스템 버스(23)에 연결될 수도 있다. 디스플레이(47) 외에, 컴퓨터는 통상적으로 스피커 및 프린터와 같은 기타 주변 출력 장치(도시되지 않음)를 포함한다. 도 1의 예시적인 시스템은 또한 호스트 어댑터(55), SCSI(Small Computer System Interface) 버스(56) 및 SCSI 버스(56)에 연결된 외부 저장 장치(62)를 포함한다.
컴퓨터(20)는 원격 컴퓨터(49)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적 연결을 이용하여 네트워킹된 환경에서 동작할 수도 있다. 원격 컴퓨터(49)는 다른 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 도 1에는 메모리 저장 장치(50)만 도시되어 있지만, 통상은 컴퓨터(20)와 관련하여 전술한 요소들 중 상당 수 또는 모두를 포함할 수 있다. 도 1에 도시된 논리적 연결부는 LAN(51) 및 WAN(52)을 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 엔터프라이즈 와이드 컴퓨터 네트워크(enterprise wide computer network), 인트라넷 및 인터넷에서 흔한 환경이다.
LAN 네트워킹 환경에서 사용될 경우, 컴퓨터(20)는 네트워크 인터페이스 또는 어댑터(53)를 통해 LAN(51)에 연결될 수 있다. WAN 네트워킹 환경에 사용될 경우에는, 컴퓨터(20)는 통상 모뎀(54) 또는 인터넷과 같이 WAN(52)을 통해 통신을 확립하는 다른 수단을 포함할 수 있다. 모뎀(54)은 내부 또는 외부일 수 있으며, 직렬 포트 인터페이스(46)를 통해 시스템에 연결될 수 있다. 네트워킹된 환경에서, 컴퓨터(20)와 관련하여 도시된 프로그램 모듈이 또는 그 일부가 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 연결들은 예시적인 것이며 컴퓨터들 간에 통신 링크를 확립하는 다른 수단이 사용될 수도 있다. 나아가, 본 명세서의 다수의 실시예들은 특히 컴퓨터화된 시스템에 적합할 것으로 상정되지만, 본 명세서의 그 어떠한 것도 그러한 실시예들에 개시된 것을 한정하고자 하는 것은 아니다.
도 2는 클라이언트가 복수의 서버와의 원격 세션들을 포함하는 워크스페이스를 갖는 예시적인 시스템을 도시한 것이다.
도 2에 도시된 컴퓨터는 도 1에 도시된 컴퓨터와 유사할 수 있다. 도 2에서, 클라이언트(202)는 디플로이먼트(deployment)(200)와 통신하며, 디플로이먼트(200)는 요청 프록시(204), 연결 브로커(208), 게이트웨이(208), 원격 애플리케이션 서버 팜(214)(이것은 다시 2개의 동일하게 구성된 서버, 즉 원격 애플리케이션 서버(216a-b)를 포함한다), 및 VM 서버 팜(210)(이것은 다시 2개의 동일하게 구성된 VM(212a-b)을 포함한다)을 포함한다.
클라이언트(202)는 원격 애플리케이션 서버(216) 및 VM(212) 중 하나 이상에 의해 서빙된 복수의 원격 자원을 포함하는 워크스페이스를 갖는다. 클라이언트(202)는 요청 프록시(204)를 통해 자신의 워크스페이스에 로그인할 수 있다. 일단 인증되면, 워크스페이스에 대한 클라이언트의 요청이 요청 프록시(204)로부터 연결 브로커(206)로 전송된다. 연결 브로커(206)는 클라이언트(202)와 클라이언트(202)에게 원격 자원을 서빙할 VM(212) 및 애플리케이션 서버(216) 사이의 연결을 중개하도록 구성되고, 이를 실시하기 위해 연결 브로커(206)는 애플리케이션 서버(216) 및 VM(212)과 통신하여 그들이 현재 (클라이언트(202)의 사용자에 대한 연결해제된 세션을 포함하여)어떤 자원들을 서빙하고 있는지를 판정하도록 구성된다.
클라이언트(202)는 복수의 원격 자원을 포함하는 워크스페이스를 가질 수 있으며, 원격 자원은 원격 애플리케이션 서버(216a)로부터의 원격 애플리케이션 및 VM(212a)으로부터의 VM을 포함하는 원격 자원을 포함한다. 도시된 바와 같이, 클라이언트(202)는 원격 애플리케이션 서버(216b) 또는 VM(212b)에 의한 원격 자원은 갖지 않는다. 이들은 각각 상이한 애플리케이션 또는 데스크탑, 애플리케이션 버전 또는 다른 경우를 서빙할 수도 있다. 예컨대, 원격 애플리케이션 서버(216a)는 클라이언트(202)에게 원격 워드 프로세서 애플리케이션을 서빙할 수도 있고, VM(212)은 클라이언트(202)에게 가상 데스크탑을 서빙할 수도 있다.
이 도면으로부터 알 수 있듯이, 사용자가 자신의 워크스페이스에 재연결하고자 할 경우, 사용자는 하나의 명령어를 2회 수행하기 보다 하나의 명령어를 통해 원격 애플리케이션 서버(216a) 및 VM(212a) 모두의 원격 자원에 연결하기를 바랄 수 있다. 사용자는 클라이언트(202)로부터 이 재연결 동작을 수행할 수도 있고, (클라이언트(202)가 사용자의 컴퓨터이고, 사용자가 주말에 가정에서의 컴퓨터로부터 재연결하기를 원하는 경우와 같이)다른 클라이언트 컴퓨터로부터 이 재연결 동작을 수행할 수도 있다.
도 3은 클라이언트가 워크스페이스의 원격 자원에 재연결하는 통신 흐름의 일례를 도시한 것이다.
도 3은 클라이언트가 복수의 서버와의 원격 세션을 포함하는 워크스페이스에 재연결하는 시스템에서의 통신 흐름의 일례를 도시하고 있다. 이 통신 흐름은 도 2에 도시된 컴퓨터 시스템과 같은 시스템 내에서 실시될 수 있다. 즉, 도 3의 원격 디플로이먼트(300), 클라이언트(302), 요청 프록시(304), 연결 브로커(306), 게이트웨이(308), VM 팜(310) 및 VM(312a)은 각각 도 2의 원격 디플로이먼트(200), 클라이언트(202), 요청 프록시(204), 연결 브로커(206), 게이트웨이(208), VM 팜(210) 및 VM(212a)과 유사할 수 있다.
클라이언트(302)의 사용자는 VM(312a)으로부터의 원격 자원에 액세스하는 것에 관여하는 워크스페이스를 이전에 가졌고 이 워크스페이스는 이제 연결해제되어 있다. 다른 실시예에서는, 클라이언트(302)의 사용자가 VM(312a)에 연결된 다른 클라이언트 상에서 이전에 작업하고 있었을 수 있고 사용자가 재연결하고자 할 때 이 워크스페이스가 여전히 활성이다. 클라이언트(302)의 사용자가 디플로이먼트(300)에 대한 재연결을 시도하기 전에, 요청 프록시(304)는 클라이언트(302)가 디플로이먼트(300)의 원격 자원에 액세스하는데 사용할 수 있는 디플로이먼트(300)에 대한 정보를 식별하는 문서를 (통신(1)을 통해) 클라이언트(302)에게 퍼블리싱한다. 클라이언트(302)는 나중에 통신(2)을 요청 프록시(304)에게 보냄으로써 재연결한다. 요청 프록시(304)는 사용자 및/또는 클라이언트의 크리덴셜(credential)(예컨대, 로그인 및 패스워드)을 검증한다. 크리덴셜이 검증된 경우에, 요청 프록시(304)는 연결 브로커(306)와 통신하여 클라이언트(302)가 자신의 워크스페이스에 재연결할 때 어느 원격 자원(여기서는 VM(312a))에 재연결할 지를 결정한다. 요청 프록시(304)는 통신(3)을 연결 브로커(306)에 보냄으로써 이 결정을 하고, 그 응답으로 클라이언트(302)가 재연결할 서버 팜(여기서는 VM 팜(310))의 리스트를 통신(4)을 통해 다시 수신한다. 통신(4)에 표시된 이 정보는 요청 프록시(304)에 의해 통신(5)을 통해 클라이언트(302)로 전달된다.
클라이언트(302)가 요청 프록시(304)로부터 재연결될 서버 리스트를 가지면, 클라이언트(302)는 이들 서버 팜 각각과의 통신을 재확립한다. 도 3에 도시된 바와 같이, 이 서버 팜은 VM 팜(310)이다. 클라이언트(302)는 게이트웨이(308)와 통신하여(6) 이들 서버 팜의 원격 자원에 액세스한다. 게이트웨이(308)는 통신(6)을 처리하고, 연결 브로커(306)와 통신하여(7) 유사한 정보를 전달한다. 연결 브로커(306)는 통신(7)으로부터 서버 팜의 식별자를 취하고, 이로부터 다른 클라이언트에 의해 이 사용자에 대해 활성인 원격 자원 및/또는 연결해제된 원격 자원을 갖는 팜(310) 내의 머신(VM(312a))을 식별한다. 연결 브로커(306)는 클라이언트(302)가 VM(312a) 상의 원격 자원에 재연결하도록 명령하는 통신(8)을 클라이언트(302)에게 보낸다. 클라이언트(302)는, 동일한 명령을 나타내는 통신(9)을 게이트웨이(308)에게 보내고 게이트웨이(308)가 다시 동일 명령을 나타내는 통신(10)을 VM(312a)으로 보냄으로써 VM(312a)과 재연결한다.
이것은 본 발명을 강조하기 위해 간략화한 도면이며, 보다 많거나 보다 적은 서버 팜이 존재할 수도 있고/또는 재연결될 수도 있으며, 보다 많은 통신들이 전달될 수도 있음을 이해할 수 있을 것이다(예컨대, 도면에는 통신(9 및 10)이 VM(312a)과 클라이언트(302) 간에 재연결을 확립하는데, 이는 또한 클라이언트(302)로부터 게이트웨이(308)를 통해 VM(312a)으로 전송되는 통신들과도 관련된다).
도 4는 본 기술들이 사용될 수 있는, 클라이언트, 요청 프록시 및 연결 브로커의 예시적인 시스템 아키텍처를 도시하고 있다. 도 4에 도시된 시스템 아키텍처는 마이크로소프트 윈도우즈 운영체제의 버전에서 사용되는 시스템 아키텍처와 유사하다. 클라이언트(402), 요청 프록시(404) 및 연결 브로커(406)는 각각 도 2의 클라이언트(202), 요청 프록시(204) 및 연결 브로커(206)와 유사할 수 있다. 클라이언트는 MSTSC(408) 및 워크스페이스 런타임(414)을 포함한다. MSTSC(408)는 MSTCAX(410) 및 워크스페이스 클라이언트 확장부(client extension)(412)를 포함하고 워크스페이스 런타임(414)은 재연결 사용자 인터페이스(418) 및 웹서비스 클라이언트(416)를 포함한다. 요청 프록시(404)는 중앙 퍼블리싱 RPC 클라이언트(420), RDWebServiceAsp.dll(422) 및 RDWebService.asmx(424)를 포함한다. 연결 브로커(406)는 중앙 퍼블리케이션 서비스(426), 세션 브로커 WMI 제공자(428) 및 세션 브로커 서비스(430)를 포함한다.
워크스페이스 런타임(414)은 클라이언트(402)를 위한 워크스페이스를 관리하는데, 즉, 워크스페이스의 원격 자원에 연결하는 것, 워크스페이스의 원격 자원에 재연결하는 것을 관리하고, MSTSC(408)의 인스턴스가 연결 또는 재연결을 수행하게 한다. 재연결 UI(418)는 클라이언트의 사용자(402)에게 사용자 인터페이스를 제공하여 재연결을 나타내는 입력을 하게 한다. 이 사용자 인터페이스는 도 7a에 도시된 사용자 인터페이스일 수 있다. 웹서비스 클라이언트(416)는 재연결시에 사용자의 크리덴셜의 인증을 위해 요청 프록시(404)와 통신하는 워크스페이스 런타임(414)의 컴포넌트이다.
MSTSC(408)는 원격 자원에 연결 또는 재연결하도록 구성된다. MSTSC(408)의 하나의 인스컨스는 하나의 연결/재연결을 수행할 수 있으며, 따라서 워크스페이스 런타임(414)은 복수의 원격 자원에 연결/재연결하기 위해 MSTSC(408)의 복수의 인스턴스를 인스턴스화할 수도 있다. MSTSC(408)는 MSTSC(408)에 대한 ACTIVEX 컨트롤인 MSTSCAX(410)를 포함한다. MSTSCAX(410)는 워크스페이스 클라이언트 확장부(412)를 포함한다. MSTSC가 본 기술의 고려 없이 구현된 MSTSC의 버전인 경우, 워크스페이스 런타임(414)이 MSTSC(408)와 통신하여 워크스페이스의 원격 자원을 재연결시키도록 MSTSC(408)를 확장하기 위해 워크스페이스 클라이언트 확장부(412)가 MSTSC(408)에 추가될 수 있다.
DMZ(demilitarized zone)(432)는 클라이언트(402)가 연결 브로커(406)와 직접 통신하지 못하게 하는 물리적 또는 논리적 서브네트워크를 포함한다. 요청 프록시(404)는 DMZ(432)에 걸쳐 있으며, 따라서 인터넷과 같은 통신망을 통해 클라이언트(402)와 통신할 수도 있고 인트라넷 상의 연결 브로커(406)와 통신할 수도 있다.
요청 프록시(404)는 REWebServiceASP.dll(422) 및 RDWebservice.asmx(424)를 포함하는데, 이들 컴포넌트들은 함께 클라이언트(402)가 로그인 크리덴셜 또는 다른 입력을 제공하는데 사용할 수 있는 웹 페이지를 클라이언트(402)에게 서빙하도록 구성된다. 요청 프록시(404)는 또한 중앙 퍼블리싱 RPC(remote procedure call) 클라이언트(420)를 포함하는데, 이것은 연결 브로커(406)로부터 (클라이언트가 문제의 원격 자원을 갖는 서버 팜에 어떻게 재연결될 수 있는 지에 대한 정보를 포함하는) 원격 데이터 파일을 수신하도록 구성된다.
연결 브로커(406)는 중앙 퍼블리싱 서비스(426)를 포함하는데, 이것은 원격 데이터 파일을 저장하고 이를 중앙 퍼블리싱 RPC 클라이언트(420)에게 제공하도록 구성된다. 연결 브로커(406)는 또한 세션 브로커 서비스(430)를 포함하는데, 이것은 서버 팜 내의 복수의 머신들 중에서 어느 머신이 사용자와 연관된 소정의 원격 자원을 갖는 지를 판정하도록 구성된다. 연결 브로커(406)는 또한 세션 브로커 WMI(WNDOWS Management Instrumentation) 제공자(426)를 포함하는데, 이것은 세션 브로커 서비스(430)가 정보 및 통지를 다른 컴포넌트에게 제공하게 해주는 인터페이스를 제공하도록 구성된다.
도 5는 서버 팜의 복수의 원격 서버와의 연결을 포함하는 워크스페이스에 재연결하기 위한 클라이언트로부터의 요청을 처리하는 연결 브로커에서의 예시적인 동작 절차를 도시하고 있다. 도 5의 동작 절차는 도 2의 연결 브로커(206)에 의해 실시될 수 있다.
동작 절차는 동작(500)에서 시작한다. 동작(500)은 동작(502)으로 진행하며, 동작(502)은 사용자와의 제 1 원격 자원 및 제 2 원격 자원을 확립하는 것을 도시하고 있다. 클라이언트(202)와 연관된 사용자 계정과 같은 사용자는 요청 프록시(204)를 통해 인증될 수 있으며 그 후 연결 브로커에게 원격 자원 확립을 요청할 수 있다. 연결 브로커는 서버 팜 및 그 서버 팜 내에서 클라이언트에게 원격 자원을 서빙할 머신을 결정할 수 있다. 이어서 클라이언트는 연결 브로커에 의해 결정된 머신에 클라이언트의 통신을 라우팅할 디플로이먼트의 게이트웨이에 접속할 수 있으며, 이 머신이 클라이언트에게 원격 자원을 서빙할 것이다. 일실시예에서, 클라이언트 컴퓨터에서의 사용자와 함께 확립되는 원격 자원은 원격 데스크탑, 원격 애플리케이션 또는 풀링된 가상 머신(VM)을 포함한다. 연결 브로커는 단지 클라이언트에 대한 연결 요청만 처리하는 것이 아니라 제 1 장소 내의 클라이언트에 대한 연결 요청 또한 처리하도록 구성된다. 연결 요청을 처리할 때, 연결 브로커는 클라이언트로부터 클라이언트가 연결해제되지 않은 새로운 원격 자원에 연결하도록 하는 요청을 수신하고, 클라이언트에게 원격 자원을 서빙할 서버 팜 상의 머신을 결정하며, 결정된 머신의 식별자를 클라이언트에게 송신한다.
동작(504)은 제 1 및 제 2 원격 자원이 연결해제된 후에 사용자로부터 사용자에 대해 연결해제된 자원을 재연결하도록 하는 요청을 수신하는 것을 포함한다. 사용자가 제 1 및 제 2 원격 자원을 확립한 후에, 사용자는 이들 자원들로부터 연결해제될 수 있다(연결해제된 자원은 전술한 로그 오프 자원 또는 활성 자원과 구별된다). 그 후 사용자는 연결 브로커가 결정할 수 있는 임의의 연결해제된 자원에 연결 브로커가 재연결하도록 요청할 수 있다. 재연결될 자원이 있는 경우 사용자가 어느 자원이 재연결될 지에 대한 정보를 갖고 있을 수 있기 때문에, 사용자는 연결해제된 특정 자원을 반드시 지정할 필요는 없다. 오히려, 어떠한 연결해제된 자원들이 있는지에 관계없이 또는 심지어 연결해제된 자원이 존재하는 경우에도, 사용자의 요청은 연결 브로커가 알고 있는 연결해제된 자원에 재연결하고자 하는 희망을 나타낼 수 있다.
일실시예에서, 사용자로부터 사용자에 대한 연결해제된 자원을 재연결하는 요청을 수신하는 것은, 연결 브로커에 의해 그 요청을 수신하는 것을 포함하는데, 이 요청은 연결 브로커에게 요청을 보내기 전에 사용자의 크리덴셜을 검증한 요청 프록시에게 보내졌었다. 이것은 도 2에 도시된 것과 유사한 시스템 아키텍처에서 일어날 수 있으며, 도 2에서는 클라이언트(202)가 인증 서버(204)에 접속하고, 요청을 연결 브로커(206)에게 보내기 전에 인증 서버(204)가 사용자의 크리덴셜을 검증한다.
동작(506)은 사용자가 제 1 연결해제된 자원 및 제 2 연결해제된 자원을 가짐을 판정하는 것을 도시하고 있다. 504에서의 요청은 어떤 연결해제된 자원이 존재하는 지를 지정하지 않고 클라이언트가 연결해제된 어떠한 자원이든 재연결되기를 원한다는 것만 나타낸다. 이 요청 수신시에, 연결 브로커는 서버 팜에 대한 클라이언트의 연결해제된 자원들을 판정하는데, 본 경우에 있어서 이들은 제 1 연결해제된 자원 및 제 2 연결해제된 자원이다. 연결 브로커는, 예컨대 사용자와 확립한 원격 자원들의 리스트를 유지한 다음 원격 자원의 상태(예컨대, 연결 해제, 활성 또는 로그 오프)를 판정하기 위한 요청을 이들 원격 자원 중 하나를 서빙하는/서빙한 각 머신에 질의함으로써, 이 판정을 할 수 있다.
동작(508)은 제 1 원격 자원에 재연결하는 방법에 대한 정보를 포함하는 제 1 원격 데이터 및 제 2 원격 자원에 재연결하는 방법에 대한 정보를 포함하는 제 2 원격 데이터를 사용자에게 보내고, 제 1 및 제 2 원격 데이터 수신에 응답하여 사용자가 제 1 및 제 2 원격 데이터를 사용하여 제 1 및 제 2 연결해제된 자원에 연결하는 것을 도시하고 있다. 연결 브로커는 원격 자원을 서빙하는 머신의 식별자 및 머신명과 같은 원격 자원에 연결하는 방법에 대한 정보를 유지할 수 있다. 제 1 원격 데이터는 제 1 원격 자원을 서빙하는 머신에 재연결하기 위한 정보를 포함하는 데이터이고, 제 2 원격 데이터는 제 2 원격 자원을 서빙하는 머신에 재연결하기 위한 정보를 포함하는 데이터이다.
일실시예에서, (동작(502)에서와 같이)사용자와 제 1 원격 자원을 확립하는 것은 제 1 컴퓨터에서 사용자와 제 1 원격 자원을 확립하는 것을 포함하고, 사용자에게 제 1 원격 데이터를 보내는 것은 제 2 컴퓨터에서 제 1 원격 데이터를 사용자에게 보내는 것을 포함한다. 사용자는 상이한 클라이언트에서 이들 원격 자원에 액세스할 수 있으며, 그 결과 사용자는 재연결을 시도할 때 자신의 원격 자원에 대한 정보가 부족할 수 있는데, 이는 사용자가 원래 접속했던 컴퓨터와 다른 컴퓨터로부터 재연결을 시도하고 있기 때문이다.
원격 세션이 제 1 연결해제된 원격 애플리케이션 및 제 2 연결해제된 원격 애플리케이션을 포함하는 일실시예에서, 동작(508)은 사용자에게 제 1 원격 데이터를 보내고, 제 1 원격 데이터 수신에 응답하여, 사용자가 제 1 원격 데이터를 사용하여 제 1 연결해제된 원격 애플리케이션 및 제 2 연결해제된 원격 애플리케이션에 재연결하는 것을 포함한다. 사용자의 연결해제된 원격 자원은 연결해제된 세션 뿐만 아니라 연결해제된 원격 애플리케이션도 포함할 수 있다. 도 2의 연결 브로커(206)와 같은 연결 브로커가 사용자의 연결해제된 자원에 사용자를 재연결하도록 하는 요청을 수신할 경우, 연결 브로커는 이들 연결해제된 세션을 열거할 수도 있다. 사용자에 대한 이들 연결해제된 세션들 중 하나는 사용자에 대한 원격 데스크탑을 포함하지 않고, 오히려 복수의 원격 애플리케이션을 포함할 수도 있다. 그러한 시나리오에서, 연결 브로커(206)가 사용자의 클라이언트에게 연결해제된 원격 세션에 대한 원격 데이터를 송신할 경우, 세션에 재연결함으로써, 사용자는 그 세션 내의 연결해제된 애플리케이션 각각에 대한 재연결을 실시한다.
즉, 사용자가 하나의 머신에 의해 서빙되는 복수의 원격 애플리케이션을 갖는 경우, 이들 복수의 원격 애플리케이션은 모두 그 머신 상에서 하나의 세션 내에 실행될 수 있다. 따라서, 사용자가 이들 원격 애플리케이션 중 하나에 재연결할 경우, 사용자는 모든 원격 애플리케이션이 실행되는 세션에 재연결한 상태가 된다. 이러한 시나리오에서, 사용자는 이들 원격 애플리케이션 각각에 재연결하는 방법에 관한 정보를 수신할 필요가 없고(예컨대, 사용자는 4개의 원격 애플리케이션을 위해 4개의 별도의 원격 데이터 파일을 수신할 필요가 없다), 단지 하나의 원격 애플리케이션에 재연결하는 방법에 대한 정보만 필요하다.
동작(510)은 연결 브로커에 의해 사용자로부터 제 1 연결해제된 세션에 재연결하는 요청 -이 요청은 제 1 원격 데이터로 만들어졌고 게이트웨이로 향하며 서버 팜을 지정한다- 을 수신하는 것과, 제 1 연결해제된 세션을 갖는 서버 팜의 머신을 판정하는 것과, 사용자에 의해 제 1 연결해제된 세션에 재접속하기 위한 지시를 머신에게 송신하는 것을 도시하고 있다.
동작(510)은 도 2의 시스템 아키텍처와 유사한 시스템 아키텍처에서 발생할 수 있다. 클라이언트(202)는 원격 자원에 재연결하는 방법에 대한 정보를 위해 (요청 프록시(204)를 통해) 통신 브로커(206)에 접속한다. 클라이언트(202)가 이 정보를 가지면, 클라이언트(202)는 클라이언트가 접속할 서버 팜의 식별자를 가지고 디플로이먼트의 게이트웨이(208)에 접속한다(클라이언트는 이 식별자를 수신하였지만, 서버 팜 내의 특정 머신의 식별자는 아니다). 그 후 디플로이먼트의 게이트웨이(208)가 이 정보를 가지고 연결 브로커(206)에 접속하고, 연결 브로커(206)는 식별된 서버 팜 내에서 연결해제된 세션을 갖는 특정 머신을 식별한다.
도 6은 워크스페이스를 서버 팜의 복수의 원격 서버에 재연결하는 클라이언트에서의 예시적인 동작 절차를 도시하고 있다. 이들 동작 절차는 도 2의 클라이언트(202)에 의해 수행될 수 있다.
도 6의 동작 절차는 동작(600)에서 시작한다. 동작(600)은 동작(602)으로 진행하며, 동작(602)은 연결 브로커에 의해 관리되는 각각의 연결해제된 원격 서버에 사용자를 재연결하기 위한 지시를 연결 브로커에게 전송하는 것을 도시하고 있다. 클라이언트의 지시는 특정한 원격 자원 또는 재연결될 원격 자원의 수조차도 식별하지 못할 수도 있지만, 클라이언트가 원격 자원이 무엇이든간에 연결 브로커의 디플로이먼트의 임의의 및/또는 모든 원격 자원에 재연결하기를 원한다는 것을 나타낸다.
이런 방법으로, 사용자의 원격 자원에의 재접속을 개시하는 사용자 입력은 제 1 또는 제 2 연결해제된 원격 자원을 구체적으로 가리키지 않고, 일반적으로 연결해제된 원격 자원의 재연결만 가리킬 수 있다. 일실시예에서, 사용자 입력은 버튼 누름 또는 링크 클릭을 수신하는 것을 포함하는데, 이 버튼 또는 링크는 원격 세션을 통해 원격인 임의의 애플리케이션과 연관되지 않았다. 사용자의 재연결 지시가 임의의 특정 원격 자원을 식별하지 않을 수도 있으므로, 사용자의 입력은 어느 것도 아닐 수 있다. 예컨대, 사용자의 연결해제된 원격 자원이 워드 프로세서 및 스프레드시트 애플리케이션을 포함할 경우, 사용자의 입력은 워드 프로세서 아이콘 또는 스프레드시트 아이콘을 클릭하는 것을 포함하지 않고 "연결해제된 자원으로의 재연결"을 나타내는 버튼과 같은 재연결 자체를 위한 보다 포괄적인 버튼을 클릭하는 것을 포함할 수 있다.
동작(604)은 제 1 원격 데이터 및 제 2 원격 데이터를 수신하는 것을 도시한 것으로, 각각의 원격 데이터는 연결해제된 원격 자원에 재연결하기 위한 정보를 포함한다. 이 원격 데이터는, 예컨대 원격 자원을 서빙하는 서버 팜의 식별자 및 그 서버 팜에 대한 게이트웨이의 식별자를 포함할 수 있다.
일실시예에서, 제 1 원격 데이터는 제 1 연결해제된 원격 자원의 서버 팜을 나타내며, 제 1 연결해제된 원격 자원을 서빙하는 서버 팜 내의 머신은 나타내지 않는다. 원격 데이터는 원격 자원의 서버 팜만 식별할 수 있고 서버 팜 내의 특정 머신은 식별하지 않을 수 있다. 이 시나리오에서는, 클라이언트가 원격 자원에 재연결하려는 요청을 전송할 때, 이 요청이 연결 브로커로 전송되고, 연결 브로커는 서버 팜 내의 어느 머신이 연결해제된 원격 자원을 갖는지 판정하고 그 머신에게 원격 자원을 클라이언트에게 재연결하라고 명령한다.
동작(606)은, 제 1 연결해제된 원격 자원이 가상 머신(VM)에 의해 서빙된 원격 자원이 아니기 때문에, 제 1 원격 데이터에 의해 지시된 제 1 연결해제된 원격 자원에 재연결함으로써 재연결을 시작하는 것을 결정하는 것을 도시하고 있다. 클라이언트는 원격 데스크탑, 원격 애플리케이션 및 VM을 포함하는 복수의 원격 자원에 재연결하기 위한 원격 데이터를 수신할 수 있다. VM은 슬립 상태, 유지관리 상태(maintenance state) 또는 연결해제된 원격 자원을 즉각 재연결하는데 이용할 수 없는 상태에 있을 수 있기 때문에, VM에 재연결하는 것은 원격 데스크탑 또는 원격 애플리케이션에 재연결하는 것(수 분 정도 걸릴 수 있다)에 비해 시간이 많이 걸릴 수 있다. 제 1 재연결 동안 사용자 입력에 대한 임의의 요구가 수집된 다음 저장되고 모든 다른 재연결에 사용되기 때문에, 제 1 원격 자원은 다른 원격 자원(예컨대, 동작(608)에 도시된 제 2 원격 자원)에 재연결하기 전에 재연결될 수 있다. 제 1 재연결은 직렬로 하고 그 후 모든 다른 재연결은 병렬로 재연결을 수행하는데 있어서(재연결들의 일부 또는 전부가 단일 시점에서 진행될 경우 재연결들은 병렬로 수행된다), 제 1 재연결이 슬립 상태 있는 VM에 대한 것이면, 그것이 모든 재연결을 느리게 할 것이다.
동작(608)은 제 1 연결해제된 원격 소스에 재연결한 후에 제 2 원격 데이터에 의해 지시된 제 2 연결해제된 원격 자원에 재연결하는 것을 도시하고 있다. 일실시예에서, 동작(608)은 제 1 연결해제된 원격 자원에 재연결하는 동안 재연결을 위해 사용자 입력이 필요한지를 판정하는 것과, 사용자 입력을 수신하는 것을 포함하고, 제 2 연결해제된 원격 자원에 재연결하는 것은 사용자 입력에 의해 제 2 연결해제된 원격 자원에 재연결하는 것을 포함한다. 예컨대, 사용자의 크리덴셜이 올바르지 않거나 만료되었거나 또는 사용자에 의해 재입력될 필요가 있는 경우, 제 1 재연결 동안에 이들 크리덴셜이 수집될 수 있고, 그 후 저장되고 제 2 접속해제된 원격 자원에 재연결하는 것과 같이 후속 재연결 동안 재사용될 수 있다. 다른 재연결 전에 하나의 재연결을 수행하는데 있어서, 사용자는 여러 회가 아니라 단지 1회만 프롬프트될 수 있는데, 이는 복수의 재연결이 병렬로 시작하도록 되어 있는 경우일 수 있다.
일실시예에서는, 제 1 연결해제된 원격 자원이 처음에 제 1 클라이언트 컴퓨터로 확립되었고, 제 1 연결해제된 원격 자원에 대한 재연결이 제 2 클라이언트 컴퓨터에 의해 수행된다. 사용자는 (직장과 거주지와 같이) 자신의 최초 연결과 자신의 재연결 사이에 컴퓨터들 간을 이동할 수 있다. 이것이, 사용자가 자신의 연결해제된 원격 자원들에 대한 정보를 갖지 않을 수 있으며, 이들에게 재연결하기 전에 연결 브로커로부터 그들에 대한 정보를 가져와야 하는 이유이다.
일실시예에서, 원격 프로세스는, 실행 프로토콜 데이터 유닛(exec PDU)을 포함하는 정보를 전송함으로써 원격 자원에 연결하도록 구성되고, 제 1 연결해제된 원격 자원에 재연결하는 것은 exec PDU를 전송하지 않고 원격 프로세스의 인스턴스를 지시하는 것을 포함한다. 클라이언트의 재연결은 도 4에 도시된 바와 같이 (MSTSC와 같이) 재연결 프로세스의 인스턴스를 관리하는 워크스페이스 런타임에 의해 관리될 수 있다. 재연결 프로세스는 일반적으로 exec PDU를 원격 자원이 서버 팜에서 인스턴스화될 것임을 나타내는 디플로이먼트에 보낼 수 있다. 본 시나리오에서, 클라이언트는 원격 자원이 새로이 인스턴스화되는 것을 원하지 않고 오히려 원격 자원의 기존의 인스턴스가 재연결될 것을 원할 수 있다. 이 경우, 워크스페이스 런타임이 재연결 프로세스로 하여금 재연결 통신 흐름으로부터 exec PDU를 생략하게 할 수 있으며, 따라서 클라이언트는 결국 클라이언트가 연결해제된 원격 자원의 기존의 인스턴스에 재연결된다.
동작(610)은 제 3 원격 데이터를 수신하는 것, 제 2 연결해제된 원격 자원에 재연결하는 것과 병렬로 제 3 원격 데이터에 의해 지시된 제 3 연격해제된 원격 자원에 재연결하는 것을 도시하고 있다. 전술한 바와 같이, 복수의 원격 자원이 재연결될 경우, 하나의 원격 자원이 먼저 다른 재연결에 대해 직렬로 재연결되고(여기서는, 제 1 연결해제된 원격 자원), 그 후 다른 원격 자원들이 병렬로 재연결된다(여기서는 제 2 및 제 3 연결해제된 원격 자원).
동작(612)은, 제 1 연결해제된 원격 자원에 재연결하는 동안 사용자에게 디스플레이될 제 1 메시지를 결정하는 것, 제 2 연결해제된 원격 자원에 재연결하는 동안 사용자에게 디스플레이될 제 2 메시지를 결정하는 것, 및 제 2 연결해제된 원격 자원에 재연결한 후에 통합 메시지 -통합 메시지는 제 1 메시지 및 제 2 메시지를 포함한다- 를 사용자에게 디스플레이하는 것을 도시하고 있다. 사용자 입력의 수신이 제 1 재연결을 위해 그것을 수신하는 것으로 압축되어 사용자가 프롬프트를 복수회 수신하지 않도록 하는 것과 동일한 방식으로 사용자에게로의 메시지가 수집되어 사용자에게 단 1회 디스플레이될 수 있다. 예컨대, 복수의 재연결 시도는 사용자에게 재연결이 실패했거나 성공했음을 알리는 메시지들이 디스플레이되도록 할 수 있다. 이들 메시지는, 클릭되어야 하는 복수의 메시지 창을 디스플레이하기보다 하나의 메시지 창에 디스플레이되도록, 수집될 수 있다.
일실시예에서, 제 1 연결해제된 자원은 제 1 프로세스에 의해 재연결되고, 제 2 연결해제된 자원은 제 2 프로세스에 의해 재연결되며, 동작(612)는 제 1 프로세스와의 제 1 통신 파이프를 확립하고 제 2 프로세스와의 제 2 통신 파이프를 확립하는 것과, 제 1 프로세스로부터 제 1 통신 파이프를 통해 제 1 메시지를 수신하는 것과, 제 2 통신 파이프를 통해 제 2 프로세스로부터 제 2 메시지를 수신하는 것을 포함한다. 도 4에 도시된 것과 같은 시스템 아키텍처에서는, 클라이언트 상의 워크스페이스 런타임이 하나의 세션에 각각 재연결되는 복수의 재연결 프로세스(예컨대, MSTSC)를 관리할 수 있다. 이 시스템 아키텍처에서는, 프로세스로부터의 메시지들이 워크스페이스 런타임에 의해 수집될 수 있고, 그 후 워크스페이스 런타임이 통합된 방식으로 이들을 사용자에게 디스플레이한다. 각각의 재연결 프로세스는, 워크스페이스 런타임과의 통신 파이프를 확립하고 이 통신 파이프를 사용하여 워크스페이스 런타임에 메시지를 전송함으로써, 메시지를 워크스페이스 런타임에게 전달할 수 있다. 워크스페이스 런타임은 이들 수신된 메시지를 저장할 수 있고, 모든 재연결 프로세스가 (성공적이든 아니든) 완료되었다고 판정되면 사용자에게 통합 메시지를 디스플레이할 수 있다.
도 7a는 재연결 프로세스에서 클라이언트를 위한 예시적인 사용자 인터페이스 요소들을 도시하고 있다. 사용자 인터페이스(702)는 사용자가 요청 프록시(예컨대, 요청 프록시(204))에 클라이언트(예컨대, 클라이언트(202))를 서명하기 위해 자신의 크리덴셜을 입력하는 최초 로그인 화면을 포함할 수 있다. 요청 프록시(204)는 사용자 인터페이스에서 수신된 크리덴셜의 사용자 입력을 수신할 수 있고, 사용자의 크리덴셜을 검증하여 디플로이먼트(예컨대, 디플로이먼트(200))에 대해 사용자를 검증할 수 있다.
도 7b는 재연결 프로세스에서 클라이언트를 위한 예시적인 추가 사용자 인터페이스 요소들을 도시하고 있다. 사용자가 도 7a의 사용자 인터페이스(702)에서 제공된 크리덴셜에 기초하여 요청 프록시에 의해 성공적으로 검증된 후, 요청 프록시는 사용자에게 사용자 인터페이스(704)에 대한 정보를 제공할 수 있는데, 이 정보는 706에 연결될 수 있는 원격 자원들 및 임의의 연결해제된 자원들이 무엇이든간에 재연결 링크(708)를 통해 이들에 재연결하기 위한 옵션을 나타낸다.
도 7c는 재연결 프로세스에서 클라이언트를 위한 예시적인 추가 사용자 인터페이스 요소들을 도시하고 있다. 사용자가 도 7b에서 재연결 링크(708)를 클릭하는 경우, 요청 프록시가 사용자에게 인터페이스(710)를 제공하며, 이 인터페이스는 사용자에게 워크스페이스가 재연결되고 있다는 표시를 디스플레이한다. 재연결 프로세스의 완료시에, 사용자 인터페이스(710)는 더 이상 디스플레이되지 않고, 이들 원격 자원들을 서빙하는 머신이 사용자가 상호작용할 수 있는 원격 자원들을 위한 사용자 인터페이스에 전송될 수 있다.
결론
이상, 도면에 도시된 바람직한 특징들과 관련하여 본 발명을 설명하였지만, 다른 유사한 특징들이 이용될 수도 있고 본 발명으로부터 벗어나지 않고 본 발명의 동일 기능을 수행하도록 상술한 특징들에 수정 및 추가가 이루어질 수도 있다. 따라서, 본 발명은 어느 하나의 특징에 한정되지 않고 첨부된 청구범위에 따라 그 범주가 해석되어야 한다. 예컨대, 본 명세서에 개시된 다양한 방법들은 하드웨어 또는 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 따라서, 개시된 실시예의 방법 및 장치 또는 그 일부분 또는 소정의 특징들은 플로피 디스켓, CD-ROM, 하드 드라이브 또는 임의의 다른 머신 판독가능한 저장 매체와 같은 유형의 매체에 포함되는 프로그램 코드(즉, 명령어)의 형태를 취할 수도 있다. 프로그램 코드가 로딩되어 컴퓨터와 같은 머신에 의해 실행될 경우, 머신은 개시된 실시예를 실시하도록 구성된 장치가 될 수 있다. 본 명세서에서 명시적으로 설명된 특정 실시예들 외에, 다른 특징들 및 구현예들은 본 명세서의 고려사항으로부터 당업자에게 자명할 것이다. 본 명세서 및 예시된 실시예들은 예로서만 고려되어야 한다.

Claims (15)

  1. 복수의 원격 세션(remote session)에 클라이언트를 재연결하는 방법으로서,
    클라이언트와의 제 1 원격 세션 및 제 2 원격 자원을 확립하는 단계와;
    상기 제 1 및 제 2 원격 세션이 연결해제된 후, 사용자로부터 상기 사용자에 대해 연결해제된 세션을 재연결하도록 하는 요청을 수신하는 단계와;
    상기 사용자가 제 1 연결해제된 세션 및 제 2 연결해제된 세션을 가짐을 판정하는 단계와;
    상기 사용자에게 상기 제 1 원격 세션에 재연결하는 방법에 대한 정보를 포함하는 제 1 원격 데이터 및 상기 제 2 원격 세션에 재연결하는 방법에 대한 정보를 포함하는 제 2 원격 데이터를 전송하는 단계 -이에 따라, 상기 제 1 및 제 2 원격 데이터 수신에 응답하여, 상기 클라이언트가 상기 제 1 및 제 2 원격 데이터를 사용하여 상기 제 1 및 제 2 연결해제된 세션에 재연결함- 를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 원격 세션은 제 1 연결해제된 원격 애플리케이션 및 제 2 연결해제된 원격 애플리케이션을 포함하고,
    상기 사용자에게 제 1 원격 데이터를 전송하는 단계는, 상기 사용자가 상기 제1 원격 데이터 수신에 응답하여, 상기 제 1 원격 데이터를 사용하여 상기 제 1 연결해제된 원격 애플리케이션 및 상기 제 2 연결해제된 원격 애플리케이션에 재연결하도록, 상기 사용자에게 제 1 원격 데이터를 전송하는 단계를 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 사용자와의 제 1 원격 자원을 확립하는 단계는 제 1 컴퓨터에서 상기 사용자와의 제 1 원격 세션을 확립하는 단계를 포함하고,
    상기 사용자에게 제 1 원격 데이터를 전송하는 단계는 제 2 컴퓨터에서 상기 사용자에게 상기 제 1 원격 데이터를 전송하는 단계를 포함하는,
    방법.
  4. 제 1 항에 있어서,
    원격 세션은 원격 데스크탑, 원격 애플리케이션 또는 풀링된(pooled) 가상 머신(VM)을 포함하는,
    방법.

  5. 제 1 항에 있어서,
    상기 방법은 연결 브로커(connection broker)에 의해 수행되고,
    상기 방법은
    상기 연결 브로커에 의해, 상기 사용자로부터 상기 제 1 연결해제된 세션에 재연결하도록 하는 요청을 수신하는 단계 -상기 요청은 상기 제 1 원격 데이터로 이루어지고, 상기 요청은 게이트웨이로 전달되며, 상기 요청은 서버 팜을 지정함- 와;
    상기 제 1 연결해제된 세션을 갖는 상기 서버 팜의 머신을 판정하는 단계와;
    상기 제 1 연결해제된 세션을 사용자에게 재연결하도록 하는 지시를 상기 머신에게 전송하는 단계를 더 포함하는,
    방법.
  6. 제 1 항에 있어서,
    상기 방법은 연결 브로커에 의해 수행되고,
    상기 사용자로부터 상기 사용자에 대해 연결해제된 세션을 재연결하도록 하는 요청을 수신하는 단계는, 상기 연결 브로커에 의해, 상기 요청을 상기 연결 브로커에게 전송하기 전에 상기 사용자의 크리덴셜을 검증한 요청 프록시에게 전달된 요청을 수신하는 단계를 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 클라이언트로부터 상기 클라이언트가 연결해제되지 않은 새로운 원격 자원에 연결하도록 하는 요청을 수신하는 단계와;
    상기 원격 자원을 상기 클라이언트에게 서빙하는 서버 팜 상의 머신을 결정하는 단계와;
    상기 결정된 머신의 식별자를 상기 클라이언트에게 전송하는 단계를 포함하는,
    방법.
  8. 컴퓨터 상에서 실행될 경우에 상기 컴퓨터로 하여금 동작들을 수행하게 하는 컴퓨터 판독가능한 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체로서,
    상기 동작들은,
    클라이언트를 상기 클라이언트와 연관된 각각의 연결해제된 원격 세션에 재연결하도록 하는 지시를 연결 브로커에게 전송하는 것과;
    제 1 원격 데이터 및 제 2 원격 데이터를 수신하는 것 -각각의 원격 데이터는 연결해제된 원격 세션에 재연결하기 위한 정보를 포함함- 과;
    제 1 연결해제된 원격 세션이 가상 머신(VM)에 의해 서빙된 원격 세션이 아니라는 판정에 응답하여, 상기 제 1 원격 데이터에 의해 지시된 제 1 연결해제된 원격 세션에 대한 재연결 요청을 전송하는 것과;
    상기 제 1 연결해제된 원격 세션에 재연결한 후에, 상기 제 2 원격 데이터에 의해 지시된 제 2 연결해제된 원격 세션에 재연결하는 것을 포함하는,
    컴퓨터 판독가능한 저장 매체.
  9. 제 8 항에 있어서,
    상기 동작들은,
    제 3 원격 데이터를 수신하는 것과;
    상기 제 2 연결해제된 원격 세션에 재연결하는 것과 병렬로, 상기 제 3 원격 데이터에 의해 지시된 제 3 연결해제된 원격 세션에 재연결하는 것을 더 포함하는,
    컴퓨터 판독가능한 저장 매체.
  10. 제 8 항에 있어서,
    상기 동작들은,
    재연결을 위해 사용자 입력이 필요하다는 판정에 응답하여 사용자 입력에 대한 요청을 디스플레이하는 것과;
    상기 사용자 입력을 수신하는 것을 더 포함하고,
    상기 제 2 연결해제된 원격 세션에 재연결하는 것은 상기 사용자 입력에 의해 상기 제 2 연결해제된 원격 세션에 재연결하는 것을 포함하는,
    컴퓨터 판독가능한 저장 매체.
  11. 제 8 항에 있어서,
    상기 제 1 연결해제된 원격 세션은 처음에 제 1 클라이언트 컴퓨터에 의해 확립되고,
    상기 제 1 연결해제된 원격 세션에 재연결하는 것은 제 2 클라이언트 컴퓨터에 의해 수행되는,
    컴퓨터 판독가능한 저장 매체.
  12. 제 8 항에 있어서,
    사용자를 연결 브로커에 의해 관리되는 상기 각각의 연결해제된 원격 세션에 재연결하도록 하는 지시를 연결 브로커에게 전송하는 것은 상기 제 1 또는 제 2 연결해제된 원격 세션을 참조하지 않는 사용자 입력을 수신하는 것을 포함하는,
    컴퓨터 판독가능한 저장 매체.
  13. 제 12 항에 있어서,
    사용자 입력을 수신하는 것은 버튼 누름 또는 링크 클릭을 수신하는 것을 포함하고, 상기 버튼 또는 링크는 원격 세션 동안 원격인(remoted) 임의의 애플리케이션과 연관되지 않는,
    컴퓨터 판독가능한 저장 매체.
  14. 제 8 항에 있어서,
    상기 동작들은,
    상기 제 1 연결해제된 원격 세션에 재연결하는 동안, 상기 사용자에게 디스플레이될 제 1 메시지를 결정하는 것과;
    상기 제 2 연결해제된 원격 세션에 재연결하는 동안, 상기 사용자에게 디스플레이될 제 2 메시지를 결정하는 것과,
    상기 제 2 연결해제된 원격 세션에 연결한 후에, 사용자에게 통합 메시지(unified message)를 디스플레이하는 것 -상기 통합 메시지는 상기 제 1 메시지 및 상기 제 2 메시지를 포함함- 을 더 포함하는,
    컴퓨터 판독가능한 저장 매체.

  15. 제 14 항에 있어서,
    상기 제 1 연결해제된 세션은 제 1 프로세스에 재연결되고, 상기 제 2 연결해제된 세션은 제 2 프로세스에 의해 재연결되며,
    상기 동작들은,
    상기 제 1 프로세스와의 제 1 통신 파이프 및 제 2 프로세스와의 제 2 통신 파이프를 확립하는 것과;
    상기 제 1 통신 파이프를 통해 상기 제 1 프로세스로부터 상기 제 1 메시지를 수신하는 것과;
    상기 제 2 통신 파이프를 통해 상기 제 2 프로세스로부터 상기 제 2 메시지를 수신하는 것을 더 포함하는
    컴퓨터 판독가능한 저장 매체.
KR1020137008151A 2010-09-30 2011-09-14 복수의 원격 서버에 대한 통합 재연결 KR20130139894A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US39771010P 2010-09-30 2010-09-30
US61/397,710 2010-09-30
US12/963,528 US20120084369A1 (en) 2010-09-30 2010-12-08 Unified Reconnection To Multiple Remote Servers
US12/963,528 2010-12-08
PCT/US2011/051658 WO2012050720A2 (en) 2010-09-30 2011-09-14 Unified reconnection to multiple remote servers

Publications (1)

Publication Number Publication Date
KR20130139894A true KR20130139894A (ko) 2013-12-23

Family

ID=45890743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137008151A KR20130139894A (ko) 2010-09-30 2011-09-14 복수의 원격 서버에 대한 통합 재연결

Country Status (11)

Country Link
US (1) US20120084369A1 (ko)
EP (1) EP2622811A4 (ko)
JP (1) JP2013543617A (ko)
KR (1) KR20130139894A (ko)
CN (1) CN102404384A (ko)
AU (1) AU2011314226B2 (ko)
BR (1) BR112013007149A2 (ko)
CA (1) CA2812738A1 (ko)
MX (1) MX2013003616A (ko)
RU (1) RU2013114348A (ko)
WO (1) WO2012050720A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494742B1 (ko) * 2014-02-25 2015-02-24 티라에스앤씨 (주) 복수의 sns 에 대한 게시물 배포를 위한 분산 처리 방법 및 시스템
KR101506250B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 가상화 서버 접속 이중화 시스템
KR101506223B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 비정상적인 접속 차단시 자동 재접속 시스템

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103107905B (zh) * 2011-11-14 2017-08-04 华为技术有限公司 异常处理方法、装置和客户端
US10353718B2 (en) * 2012-07-23 2019-07-16 Vmware, Inc. Providing access to a remote application via a web client
CN103685398B (zh) * 2012-09-17 2015-08-19 腾讯科技(深圳)有限公司 通信连接建立方法及通信系统
KR20140098919A (ko) * 2013-01-31 2014-08-11 한국전자통신연구원 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이
US10021042B2 (en) * 2013-03-07 2018-07-10 Microsoft Technology Licensing, Llc Service-based load-balancing management of processes on remote hosts
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9002982B2 (en) * 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9686323B1 (en) * 2013-03-14 2017-06-20 Teradici Corporation Method and apparatus for sequencing remote desktop connections
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
JP6366239B2 (ja) * 2013-08-14 2018-08-01 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
KR20150042643A (ko) * 2013-10-11 2015-04-21 삼성전자주식회사 Vdi 환경에서 가상 서버와 접속을 위한 단말 장치 및 방법
KR20150085309A (ko) * 2014-01-15 2015-07-23 한국전자통신연구원 서버 가상 머신 제공 방법 및 시스템과 이를 지원하는 서버 장치
US9489270B2 (en) 2014-07-31 2016-11-08 International Business Machines Corporation Managing backup operations from a client system to a primary server and secondary server
CN105389198A (zh) * 2015-10-16 2016-03-09 浪潮(北京)电子信息产业有限公司 一种虚拟机控制台自动重连方法及装置
US11057475B2 (en) * 2016-12-27 2021-07-06 Cloudminds (Shanghai) Robotics Co., Ltd. Methods, apparatus and systems for resuming transmission link
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
CN110288309B (zh) * 2019-05-22 2023-11-28 平安科技(深圳)有限公司 数据交互方法、装置、系统、计算机设备以及存储介质
US11178251B2 (en) * 2020-02-17 2021-11-16 Slack Technologies, Inc. Methods, apparatuses and computer program products for managing organization connections in a group-based communication system
US11956309B1 (en) 2022-12-13 2024-04-09 International Business Machines Corporation Intermediary client reconnection to a preferred server in a high availability server cluster

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1705563B1 (en) * 1997-11-14 2009-03-11 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7562153B2 (en) * 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US20050188095A1 (en) * 2004-02-19 2005-08-25 Jeffrey Gardiner System for managing server user operation sessions
US8732182B2 (en) * 2004-12-02 2014-05-20 Desktopsites Inc. System and method for launching a resource in a network
US7877485B2 (en) * 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
DE602006014192D1 (de) * 2005-12-02 2010-06-17 Citrix Systems Inc Uthentifizierungsbescheinigungen von einem proxy-server für eine virtualisierte berechnungsumgebung zum zugriff auf eine remote-ressource
US7613136B2 (en) * 2005-12-20 2009-11-03 At&T Intellectual Property, I,L.P. Methods, systems, and computer program products for implementing communications re-connection services
US20080232570A1 (en) * 2007-03-20 2008-09-25 Avaya Technology Llc Automatic Reconstitution of Telecommunications Sessions
US8127017B2 (en) * 2007-06-22 2012-02-28 Citrix Systems, Inc. Methods and servers for displaying and activating disconnected sessions
US8341277B2 (en) * 2007-07-03 2012-12-25 International Business Machines Corporation System and method for connecting closed, secure production network
US8291481B2 (en) * 2007-09-18 2012-10-16 Microsoft Corporation Sessionless redirection in terminal services
US8386609B2 (en) * 2007-11-09 2013-02-26 International Business Machines Corporation Reconnection to and migration of electronic collaboration sessions
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US8914527B2 (en) * 2009-06-30 2014-12-16 Citrix Systems, Inc. Methods and systems for load balancing using forecasting and overbooking techniques
GB2477092A (en) * 2010-01-20 2011-07-27 Nec Corp Selecting virtual machine host servers based on client device location

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494742B1 (ko) * 2014-02-25 2015-02-24 티라에스앤씨 (주) 복수의 sns 에 대한 게시물 배포를 위한 분산 처리 방법 및 시스템
KR101506250B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 가상화 서버 접속 이중화 시스템
KR101506223B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 비정상적인 접속 차단시 자동 재접속 시스템

Also Published As

Publication number Publication date
JP2013543617A (ja) 2013-12-05
EP2622811A4 (en) 2014-06-25
WO2012050720A3 (en) 2012-06-14
MX2013003616A (es) 2013-05-20
RU2013114348A (ru) 2014-10-10
EP2622811A2 (en) 2013-08-07
CA2812738A1 (en) 2012-04-19
AU2011314226B2 (en) 2015-02-05
BR112013007149A2 (pt) 2016-06-14
WO2012050720A2 (en) 2012-04-19
US20120084369A1 (en) 2012-04-05
AU2011314226A1 (en) 2013-03-28
CN102404384A (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
KR20130139894A (ko) 복수의 원격 서버에 대한 통합 재연결
US10560538B2 (en) Integrated user interface for consuming services across different distributed networks
US10073709B2 (en) Session monitoring of virtual desktops in a virtual machine farm
US10146566B2 (en) Enabling virtual desktop connections to remote clients
KR102328193B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 방법
US8341270B2 (en) Methods and systems for providing access to a computing environment
US8495193B2 (en) Centralized management tool for remote presentation session server farms
US8370510B2 (en) Remote application presentation over a public network connection
US20150373012A1 (en) Integrated APIs and UIs for Consuming Services across Different Distributed Networks
US20070005693A1 (en) Multi-console workstations concurrently supporting multiple users
US20110307614A1 (en) Techniques For Efficient Remote Presentation Session Connectivity And Routing
US20170046013A1 (en) Web-browser based desktop and application remoting solution
EP1977317A1 (en) Methods and systems for providing access to a computing environment
KR102102169B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
US8290901B2 (en) Techniques for remote resource mounting
Cisco Updating the Mainframe Application Software
Cisco Updating the Mainframe Application Software
Cisco Updating the Mainframe Application Software
Cisco Updating the Mainframe Application Software
Cisco Updating the Mainframe Application Software
Cisco Updating the Mainframe Application Software
WO2022031257A1 (en) Desktop as a service system
US11818183B2 (en) System and method for workspace sharing
Kuhn et al. Chapter 16: Managing Remote Servers with VNC

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid