KR20150115238A - 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체 - Google Patents

클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체 Download PDF

Info

Publication number
KR20150115238A
KR20150115238A KR1020140039926A KR20140039926A KR20150115238A KR 20150115238 A KR20150115238 A KR 20150115238A KR 1020140039926 A KR1020140039926 A KR 1020140039926A KR 20140039926 A KR20140039926 A KR 20140039926A KR 20150115238 A KR20150115238 A KR 20150115238A
Authority
KR
South Korea
Prior art keywords
virtual machine
user terminal
agent
application
communication channel
Prior art date
Application number
KR1020140039926A
Other languages
English (en)
Other versions
KR101601680B1 (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 주식회사 엘지씨엔에스
Priority to KR1020140039926A priority Critical patent/KR101601680B1/ko
Publication of KR20150115238A publication Critical patent/KR20150115238A/ko
Application granted granted Critical
Publication of KR101601680B1 publication Critical patent/KR101601680B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라우드 컴퓨팅 방법은 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에서 수행된다. 상기 클라우드 컴퓨팅 방법은 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계, 상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계 및 상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 단계를 포함한다.

Description

클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체{CLOUD COMPUTING METHOD, CLOULD COMPUTING SERVER PERFORMING THE SAME AND STORAGE MEDIA STORING THE SAME}
본 발명은 클라우드 컴퓨팅 기술에 관한 것으로, 보다 상세하게는, 가상 머신에서 동작되는 어플리케이션이 보안 장비 유무에 관계없이 통신 채널을 모니터링하는 것을 지원할 수 있는 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 장치 및 이를 저장하는 기록매체에 관한 것이다.
일반적으로, 클라우드 컴퓨팅 기술은 인터넷을 이용한 정보기술 자원의 주문형 아웃소싱 서비스를 제공할 수 있고, 클라우드(cloud)는 인터넷을 통해 접근될 수 있는 서버로서, 데이터 저장과 처리, 네트워크, 콘텐츠 사용 등 IT 관련 서비스를 한번에 제공할 수 있다. 보다 구체적으로, 클라우드 컴퓨팅 기술은 복수의 데이터센터들을 가상화 기술로 통합하고 사용자에게 특정 소프트웨어, 보안 솔루션, 컴퓨팅 능력을 온디맨드 방식으로 제공하여 사용자가 PC, 휴대폰, PDA 등 다양한 단말기를 통해 접속할 수 있도록 할 수 있다.
한국공개특허 제10-2011-0040604호는 제한된 자원을 가지는 사용자 단말이 클라우드 컴퓨팅 서버의 클라우드 컴퓨팅 서비스를 이용하여 이종의 디바이스들을 자유롭게 이용할 수 있도록 하는 클라우드 컴퓨팅 시스템을 개시한다. 이러한 클라우드 컴퓨팅 서버는 사용자 단말로부터 수신되는 검색 정보를 이용하여 디바이스에 대한 가상 디바이스 드라이버를 검색하고, 검색된 가상 디바이스 드라이버를 설치하여 사용자 단말이 디바이스를 제어할 수 있게 할 수 있다.
한국등록특허 제10-1285200호는 클라우드 컴퓨팅을 이용한 IPTV 서비스 제공 방법과 그를 위한 시스템 및 장치를 개시한다. 이러한 클라우드 컴퓨팅 방법은 IPTV 서비스 오버레이를 기반으로 클라우드 컴퓨팅 환경에 IPTV 사용자가 원하는 IPTV 컨텐츠를 저장하도록 하고 이를 공유하도록 할 수 있다.
이러한 선행기술들은 사용자 단말이 클라우드 컴퓨팅 서버에 접속하여 사용자가 원하는 디바이스를 제어 하거나 사용자가 원하는 컨텐츠를 클라우드 컴퓨팅 서버에 저장 및 공유하는 것으로 사용자 단말과 클라우드 컴퓨팅 서버의 연결이 끊어지더라도 재연결을 통해서 사용자가 원하는 작업을 수행 할 수 있지만, 클라우드 컴퓨팅 서버에서 사용자 단말과 독자적으로 실행되고 사용자 단말과의 지속적인 통신 연결이 필요한 어플리케이션이 실행 되고 있는 경우, 사용자 단말과 클라우드 컴퓨팅 서버의 연결이 끊어지면 사용자 단말이 어플리케이션을 제어하지 못하고 어플리케이션만 독자적으로 실행되는 문제점이 있다. 결국, 클라우드 컴퓨팅 서버에서 사용자 단말과 독자적으로 수행되고 사용자 단말과 지속적인 통신 연결이 필요한 어플리케이션이 사용자 단말과 클라우드 컴퓨팅 서버의 연결 상태를 확인할 수 없고 연결 상태에 따라 어플리케이션의 실행이 제어될 수 없다는 문제점이 있다.
한국공개특허 제10-2011-0040604호 한국등록특허 제10-1285200
본 발명의 일 실시예는 가상 머신에서 동작되는 어플리케이션이 보안 장비 유무에 관계없이 통신 채널을 모니터링하는 것을 지원할 수 있는 클라우드 컴퓨팅 방법을 제공하고자 한다.
본 발명의 일 실시예는 사용자 단말 에이전트와 가상 머신 에이전트를 연결하는 통신채널을 설정하여 가상 머신에서 실행되는 어플리케이션이 사용자 단말과 가상 머신의 연결 여부를 확인할 수 있는 클라우드 컴퓨팅 방법을 제공하고자 한다.
본 발명의 일 실시예는 가상 머신 에이전트에 의하여 접근될 수 있는 모니터링에 파일에 관한 레지스트리를 설정하여 어플리케이션이 모니터링 정보를 얻을 수 있는 클라우드 컴퓨팅 방법을 제공하고자 한다.
본 발명의 일 실시예는 통신 채널이 끊긴 경우 어플리케이션의 설정 사항에 따라 어플리케이션의 계속 수행, 일시 정지, 중단 또는 통신 채널 복구 시도를 통하여 가상 머신의 어플리케이션을 제어할 수 있는 클라우드 컴퓨팅 방법을 제공하고자 한다.
실시예들 중에서, 클라우드 컴퓨팅 방법은 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에서 수행된다. 상기 클라우드 컴퓨팅 방법은 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계, 상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계 및 상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 단계를 포함한다.
일 실시예에서, 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계는 상기 사용자 단말 에이전트와 이미 연관된 가상 머신이 있는지 여부를 체크하는 단계 및 상기 연관된 가상 머신이 이미 존재하지 않으면 새로운 가상 머신과 가상 머신 에이전트를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계는 상기 가상 머신 에이전트와 상기 사용자 단말 에이전트에 의해 형성되고 상기 사용자 단말의 컴퓨팅 아키텍처에 독립적인 디스플레이 정보를 송신할 수 있는 통신 채널을 설정하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 통신 채널은 상기 사용자 단말 에이전트의 설정에 따라 하트비트 트래픽 전용 채널을 포함하는 멀티 트래픽 채널에 해당할 수 있다.
일 실시예에서, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계는 가상 머신 에이전트에 의하여 기록되고 상기 어플리케이션에게 제공될 수 있는 상기 통신 채널에 대한 모니터링 정보를 포함하는 모니터링 파일에 관한 레지스트리를 설정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계는 상기 어플리케이션이 상기 레지스트리를 통해 상기 통신 채널의 모니터링 조건을 설정하는 것을 허용하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계는 상기 어플리케이션이 상기 통신 채널의 모니터링을 요구한 상태에서 상기 통신 채널의 연결이 끊긴 경우에는 가상 머신 에이전트가 상기 실행된 어플리케이션을 일시중지 하도록 제어하는 단계를 포함할 수 있다.
일 실시예에서, 상기 통신 채널을 모니터링하는 것을 허용하는 단계는 상기 실행된 어플리케이션이 가상 머신 에이전트와 미리 약속된 레지스트리를 읽는 단계 및 상기 읽은 레지스트리를 기초로 모니터링 파일을 검출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 모니터링 파일은 상기 가상 머신에 종속적이고 상기 레지스트리의 특정 섹션 또는 상기 가상 머신에 의해 접근되는 메모리에 저장될 수 있다.
일 실시예에서, 상기 통신 채널을 모니터링하는 것을 허용하는 단계는 상기 어플리케이션이 상기 검출된 모니터링 파일을 주기적으로 읽어서 상기 통신 채널의 모니터링 정보를 가져가는 것을 허용하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 실행된 어플리케이션에 의한 모니터링을 통해 상기 통신 채널이 끊긴 것이 검출되면 상기 어플리케이션 실행 환경에 따라 상기 어플리케이션을 제어하고 상기 사용자 단말 에이전트와의 재연결을 특정 시간 동안 시도하는 단계를 더 포함할 수 있다.
실시예들 중에서, 클라우드 컴퓨팅 서버는 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있다. 상기 클라우드 컴퓨팅 서버는 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 가상 머신 결정부, 상기 가상 머신에 어플리케이션 실행 환경을 설정하고, 상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하며, 상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 가상 머신 에이전트를 실행하는 가상 머신 에이전트부를 포함할 수 있다.
일 실시예에서, 상기 가상 머신 결정부는 상기 사용자 단말의 컴퓨팅 아키텍처에 독립적인 디스플레이 정보를 송신할 수 있는 통신 채널을 설정할 수 있다.
일 실시예에서, 상기 가상 머신 결정부는 상기 사용자 단말 에이전트와 이미 연관된 가상 머신이 있는지 여부를 체크하고, 상기 연관된 가상 머신이 이미 존재하지 않으면 새로운 가상 머신과 가상 머신 에이전트(상기 가상 머신 에이전트는 상기 사용자 단말 에이전트와 상기 통신 채널을 형성함)를 생성할 수 있다.
일 실시예에서, 상기 사용자 단말 에이전트의 설정에 따라 하트비트 트래픽 전용 채널을 포함하는 멀티 트래픽 채널에 해당하는 채널을 설정할 수 있다.
일 실시예에서, 상기 가상 머신 에이전트부는 가상 머신 에이전트에 의하여 기록되고 상기 어플리케이션에게 제공될 수 있는 상기 통신 채널에 대한 모니터링 정보를 포함하는 모니터링 파일에 관한 레지스트리를 설정할 수 있다.
일 실시예에서, 상기 가상 머신 에이전트부는 상기 어플리케이션이 상기 통신 채널의 모니터링을 요구한 상태에서 상기 통신 채널의 연결이 끊긴 경우에는 가상 머신 에이전트가 상기 실행된 어플리케이션을 일시중지하도록 제어할 수 있다.
일 실시예에서, 상기 가상 머신 에이전트부는 상기 실행된 어플리케이션이 가상 머신 에이전트와 미리 약속된 레지스트리를 읽고, 상기 읽은 레지스트리를 기초로 모니터링 파일을 검출할 수 있다.
일 실시예에서, 상기 가상 머신 에이전트부는 상기 실행된 어플리케이션에 의한 모니터링을 통해 상기 통신 채널이 끊긴 것이 검출되면 상기 실행된 어플리케이션이 상기 가상 머신 에이전트를 통해 상기 사용자 단말 에이전트에게 상기 통신 채널을 복구하도록 요청할 수 있다.
실시예들 중에서, 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에서 수행되는 클라우드 컴퓨팅 방법에 관한 컴퓨터 프로그램을 기록한 기록매체는 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계, 상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계 및 상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 단계를 포함하는 클라우드 컴퓨팅 방법에 관한 컴퓨터 프로그램을 기록한다.
본 발명의 일 실시예에 따른 클라우드 컴퓨팅 방법은 사용자 단말에 대응하는 가상 머신을 결정하여 사용자 단말 에이전트와 가상 머신 에이전트를 연결하는 통신채널을 설정하여 사용자 단말과 가상 머신의 연결 여부를 확인할 수 있다.
본 발명의 일 실시예에 따른 클라우드 컴퓨팅 방법은 가상 머신 에이전트에서 접근 할 수 있는 모니터링에 파일에 관한 레지스트리를 설정하여 어플리케이션이 모니터링 정보를 얻을 수 있다.
본 발명의 일 실시예에 따른 클라우드 컴퓨팅 방법은 통신 채널이 끊긴 경우 어플리케이션의 설정사항에 따라 어플리케이션의 계속 수행, 일시 정지, 중단 또는 통신 채널 복구 시도를 통하여 가상 머신의 어플리케이션을 제어할 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 시스템을 설명하는 블록도이다
도 2는 도 1에 있는 클라우드 컴퓨팅 시스템이 동작하는 과정을 설명하는 블록도 이다.
도 3은 도 1에 있는 클라우드 컴퓨팅 서버를 설명하는 블록도이다.
도 4는 도 3에 있는 클라우드 컴퓨팅 서버에서 수행되는 통신 채널 모니터링 과정을 설명하는 순서도이다.
도 5는 도 4에 있는 클라우드 컴퓨팅 서버에서 수행되는 통신 채널 모니터링 과정을 보다 구체적으로 설명하는 순서도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 시스템을 설명하는 블록도이다.
도 1을 참조하면, 클라우드 컴퓨팅 시스템(100)은 사용자 단말(110), 보안 장비(120) 및 클라우드 컴퓨팅 서버(130)를 포함한다. 여기에서, 사용자 단말(110)은 네트워크(예를 들어, 인터넷)를 통해 보안 장비(120)를 거친 후 클라우드 컴퓨팅 서버(130)와 연결된다.
사용자 단말(110)은 클라우드 컴퓨팅 서버 (130)와 연동하여 어플리케이션을 실행할 수 있는 컴퓨팅 장치에 해당할 수 있다. 예를 들어, 사용자 단말(110)은 데스크톱(Desktop), 노트북(Laptop), 스마트 폰(Smart phone) 또는 태블릿 PC(Tablet Personal Computer)에 해당할 수 있다. 사용자 단말(110)은 어플리케이션 실행 이전 또는 동시에 사용자 단말 에이전트(210)를 실행시킬 수 있고, 가상 머신 에이전트(230)를 통해 클라우드 컴퓨팅 서버(130)와 연동할 수 있다.
보안 장비(120)는 사용자 단말(110)이 클라우드 컴퓨팅 서버(130)와 연동하는 과정에서 필요한 물리적인 네트워크 장치에 해당할 수 있다. 예를 들어, 보안 장비(120)는 방화벽에 해당할 수 있고, 방화벽은 외부의 비정상적이고 불법적인 접근으로부터 내부 네트워크의 정보자산을 보호하고 각종 유해 정보의 유입을 차단할 수 있다. 보안 장비(120)는 외부 네트워크(즉, 사용자 단말 측)와 내부 네트워크(즉, 클라우드 컴퓨팅 서버 측) 사이에서 데이터의 송수신을 허용하거나 또는 차단할 수 있다. 보다 구체적으로, 보안 장비(120)는 사용자 단말(110)과 클라우드 컴퓨팅 서버(130)에서 수행되는 어플리케이션들 간의 직접적인 통신을 차단할 수 있다.
클라우드 컴퓨팅 서버(130)는 사용자 단말(110)과 연동하여 특정 작업을 실행할 수 있는 컴퓨팅 장치에 해당할 수 있고, 특정 작업은 사용자 단말(110)에 의해 제어되는 프로세스에 해당할 수 있다. 클라우드 컴퓨팅 서버(130)는 사용자 단말(110)에 대응하는 적어도 하나의 가상 머신(142)을 포함하는 가상 머신 풀(140)을 관리한다. 일 실시예에서, 가상 머신(142)은 사용자 단말(110)과 일대일 대응할 수 있다. 다른 일 실시예에서, 가상 머신(142)은 사용자 단말(110)에 있는 어플리케이션과 일대일 대응할 수 있고, 이러한 경우 사용자 단말(110)은 복수의 가상 머신(142)들과 동시에 연동할 수 있다.
도 2는 도 1에 있는 클라우드 컴퓨팅 시스템이 동작하는 과정을 설명하는 블록도 이다.
우선, 도 2에서, 사용자 단말(110)의 동작 과정을 설명한다.
사용자 단말(110)은 클라우드 컴퓨팅 서버(130)와 연동할 어플리케이션을 실행하기 이전에 또는 동시에 사용자 단말 에이전트(210)를 실행시킬 수 있다. 여기에서, 사용자 단말 에이전트(210)는 사용자 단말(110)에서 동작되는 프로세스에 해당할 수 있고, 사용자 단말(110)을 모니터링하거나 또는 가상 머신(142)과 연동하여 사용자 단말(110)에 있는 어플리케이션을 제어할 수 있다.
일 실시예에서, 사용자 단말 에이전트(210)는 클라우드 컴퓨팅 서버(130)의 보안을 위해 사용자 단말(110)과 가상 머신(142) 사이에 있는 보안 장비(120)를 고려하여 설계될 수 있다. 예를 들어, 사용자 단말 에이전트(210)는 보안 장비(120)가 클라우드 컴퓨팅 서버(130)에서 생성되는 가상 머신(142)과 직접적인 통신 수행을 불가능하게 할 수 있기 때문에 보안 장비(120)의 제약 또는 규약을 수용하여 설계될 수 있다. 즉, 사용자 단말 에이전트(210)는 보안 장비(120)와 사전에 약속된 제약 또는 규약을 따라 클라우드 컴퓨팅 서버(130)를 접근하여 사용자 단말 에이전트(210)와 가상 머신(142) 간의 통신을 수행할 수 있다.
다음으로, 도 2에서, 클라우드 컴퓨팅 서버(130)의 동작 과정을 설명한다.
클라우드 컴퓨팅 서버(130)는 네트워크를 통해 사용자 단말 에이전트(210)와 연결될 수 있는 가상 머신 풀(140)을 관리한다. 여기에서, 가상 머신 풀(140)은 적어도 하나의 가상 머신(142)을 포함하고, 가상 머신(142)은 사용자 단말(110)과 독립적으로 동작될 수 있는 어플리케이션(240) 환경을 제공하고 사용자 단말 에이전트(210)의 요청에 따라 새로 생성되거나, 다시 연결되거나 또는 소멸될 수 있다. 즉, 가상 머신(142)은 사용자 단말 에이전트(210)와 연결이 끊기더라도 어플리케이션(240) 특성 또는 가상 머신 설정 사항에 따라 소멸되지 않고 계속하여 어플리케이션(240)의 실행을 진행할 수 있다.
가상 머신(142)은 가상 머신 에이전트(230)를 생성하고, 가상 머신 에이전트(230)는 가상 머신(142)과 사용자 단말(110) 간에 필요한 데이터나 제어 신호를 전송하는 것이다. 여기에서, 가상 머신 에이전트(230)는 가상 머신(142)에서 동작되는 프로세스에 해당할 수 있고, 가상 머신(142)을 모니터링하거나 또는 사용자 단말(110)과 연동하여 가상 머신(142)에 있는 어플리케이션(240)을 제어할 수 있다. 가상 머신 에이전트(230)는 도 3을 참조하여 후술한다.
마지막으로, 도 2에서, 통신 채널(220)의 생성 과정을 설명한다.
사용자 단말 에이전트(210)와 가상 머신 에이전트(230)가 각각 실행되면 양자 간의 통신 채널(220)을 설정한다. 일 실시예에서, 사용자 단말 에이전트(210)는 클라우드 컴퓨팅 서버(130)의 네트워크 주소(예를 들어, IP 주소)를 통해 클라우드 컴퓨팅 서버(130)에 접근을 시도할 수 있다. 클라우드 컴퓨팅 서버(130)는 사용자 단말 에이전트(210)와 연관된 가상 머신(142)을 결정하고, 사용자 단말 에이전트(210)가 가상 머신(142)에 있는 가상 머신 에이전트(230)와 연동하도록 제어할 수 있다. 다른 일 실시예에서, 가상 머신 에이전트(230)는 사용자 단말 에이전트(210)의 요청에 따라 사용자 단말 에이전트(210)가 클라우드 컴퓨팅 서버(130)의 특정 네트워크 주소(예를 들어, IP 주소)를 통해 접근하는 것을 개방하고, 사용자 단말 에이전트(210)가 특정 네트워크 주소를 통해 가상 머신(142)에 있는 가상 머신 에이전트(230)와 연동하도록 제어할 수 있다.
통신 채널(220)은 사용자 단말(110)의 컴퓨팅 아키텍처에 독립적인 디스플레이 정보를 송신할 수 있도록 설계될 수 있다. 예를 들어, 통신 채널(220)은 X11 프로토콜 또는 RDP 프로토콜을 통해 설정될 수 있다. 여기에서, 디스플레이 정보는 사용자 단말(110)을 통해 사용자가 얻을 수 있는 시각적인 정보이다.
보다 구체적으로, 통신 채널(220)은 트래픽 채널에 부하를 주지 않고 하트비트용 신호만을 전송하는 하트비트 트래픽 전용 채널을 포함할 수 있다. 하트비트용 신호는 통신 채널(220)의 지속적인 점검을 위하여 사용될 수 있고, 가상 머신(142)과 사용자 단말(110) 간의 사전에 약속될 수 있다. 또한, 통신 채널(220)은 멀티 트래픽을 전송하는 단일 채널로 구현되거나 또는 전용 트래픽을 각각 전송하는 멀티 채널로 구현될 수 있다. 여기에서, 단일 채널은 멀티 트래픽을 시분할하여 전송하는데 사용될 수 있고, 가상 머신 에이전트(230)는 멀티 트래픽의 우선 순위를 기초로 시분할 구간을 결정할 수 있다. 멀티 채널은 전용 트래픽 각각을 독자적인 채널로 할당하고, 가상 머신 에이전트(230)는 전용 트래픽의 우선 순위를 결정할 수 있다.
도 3은 도 1에 있는 클라우드 컴퓨팅 서버를 설명하는 블록도이다.
도 3을 참조하면, 클라우드 컴퓨팅 서버(130)는 가상 머신 결정부(310), 가상 머신 에이전트부(320) 및 제어부(330)를 포함한다.
가상 머신 결정부(310)는 사용자 단말 에이전트(210)로부터 접속이 시도되면 사용자 단말 에이전트(210)에 대응하는 가상 머신(142)을 결정한다. 보다 구체적으로, 사용자 단말(110)이 사용자 단말 에이전트(210)를 통해 클라우드 컴퓨팅 서버(130)에 접근하면, 클라우드 컴퓨팅 서버(130)는 가상 머신(142)을 새로 생성할지 또는 기존에 있는 가상 머신(142)을 다시 연결할지 여부를 결정할 수 있다.
이하, 가상 머신 결정부(310)가 가상 머신(142)을 새로 생성하는 과정을 설명한다.
가상 머신 결정부(310)는 사용자 단말(110)로부터 접속이 시도되면 사용자 단말 에이전트(210)로부터 사용자 단말(110)의 고유 식별자(예를 들어, IP 주소)를 획득한다. 가상 머신 결정부(310)는 사용자 단말(110)의 고유 식별자와 연관된 가상 머신(142)의 존재 여부를 검출하고, 사용자 단말(110)에 대응하는 이미 연관된 가상 머신(142)이 없는 경우 사용자 단말(110)에 대응하는 가상 머신(142)을 새로 생성한다. 가상 머신(142)은 사용자 단말(110)에 대응하는 가상 머신(142)이 새로 생성되는 경우 가상 머신 에이전트(230)를 생성하고 가상 머신 에이전트(230)와 사용자 단말 에이전트(210) 간의 통신 채널(220)을 설정한다.
이하, 가상 머신 결정부(310)가 기존의 가상 머신(142)을 다시 연결하는 과정을 설명한다.
가상 머신 결정부(310)는 사용자 단말(110)로부터 서버 접속이 시도되면 사용자 단말 에이전트(210)로부터 사용자 단말(110)의 고유 식별자(예를 들어, IP 주소)를 획득한다. 가상 머신 결정부(310)는 사용자 단말(110)의 고유 식별자와 연관된 가상 머신(142)의 존재 여부를 검출하고, 사용자 단말(110)에 대응하는 이미 연관된 가상 머신(142)이 있는 경우 이미 연관된 가상 머신(142)을 다시 사용자 단말(110)에 연결한다. 가상 머신(142)은 사용자 단말(110)이 이미 연관된 가상 머신(142)과 연결되는 경우 이미 연관된 가상 머신의 가상 머신 에이전트(230)와 사용자 단말 에이전트(210) 간의 통신 채널(220)을 설정한다.
가상 머신 에이전트부(320)는 어플리케이션 환경 설정 모듈(340), 어플리케이션 제어 모듈(350), 통신 채널 모니터링 모듈(360) 및 통신 채널 복구 모듈(370)을 포함한다.
어플리케이션 환경 설정 모듈(340)은 가상 머신(142)에 어플리케이션 실행 환경을 설정한다. 여기에서, 어플리케이션 실행 환경은 레지스트리에 저장되고 모니터링 파일 정보, 모니터링 조건 및 어플리케이션 수행 조건을 포함한다.
레지스트리는 가상 머신(142)의 생성 또는 동작 과정에서 어플리케이션 환경 설정 모듈(340)에 의하여 설정되고, 가상 머신(142)에 있는 어플리케이션이 모니터링 파일을 검출하고자 할 때 모니터링 파일의 위치를 제공하기 위하여 사용될 수 있다. 일 실시예에서, 레지스트리는 [식별자, 값] 쌍으로 설정될 수 있고, 예를 들어, 식별자는 [어플리케이션 실행 환경](예: appenv)에 해당할 수 있고 값은 [파일 경로](예: /appenv/time20140312)에 해당할 수 있다.
어플리케이션 환경 설정 모듈(340)은 모니터링 파일에 관한 정보를 레지스트리에 설정할 수 있다. 모니터링 파일은 가상 머신 에이전트(230)에 의하여 기록되고 어플리케이션(240)에게 제공될 수 있는 통신 채널(220)에 대한 모니터링 정보를 포함한다. 모니터링 정보는 통신 채널(220)에 대한 모니터링을 통해 기록된 사용자 단말 에이전트(210)와 가상 머신 에이전트(230)간의 통신 상태를 포함한다. 여기에서, 통신 상태는 단순하게 정상 또는 비정상을 나타낼 수 있고, 정상 상태는 조금 더 자세하게 데이터 전송 대역폭을 함께 나타낼 수 있다.
일 실시예에서, 모니터링 파일은 가상 머신 에이전트(230)에 의하여 주기적으로 갱신될 수 있다. 또한, 일 실시예에서, 모니터링 파일은 공유 가능한 접근 권한을 가지는 파일로서 구현될 수 있다. 즉, 가상 머신(142)에 있는 어플리케이션은 모니터링 파일이 가상 머신 에이전트(230)에 의하여 오픈 되어 있더라도, 동시에 모니터링 파일을 읽을 수 있다.
일 실시예에서, 모니터링 파일은 가상 머신(142) 각각에 대하여 종속적으로 생성될 수 있다. 즉, 모니터링 파일은 다른 가상 머신(142)에 있는 어플리케이션에 의하여 접근될 수 없고, 또한, 가상 머신(142)의 소멸 시에 가상 머신(142)에 의해 자동으로 삭제될 수 있다.
어플리케이션 환경 설정 모듈(340)은 통신 채널(220)의 모니터링 조건을 레지스트리에 설정할 수 있다. 여기에서, 모니터링 조건은 모니터링 점검 주기, 모니터링 시간 제한을 포함할 수 있다. 모니터링 점검 주기는 가상 머신 에이전트(230)가 통신 채널(220)의 상태를 파악하는 주기를 나타내고, 모니터링 시간 제한은 통신 채널(220)의 일시적인 이상 발생시 어플리케이션의 계속적 실행을 보장하는 시간을 나타낸다. 예를 들어, 가상 머신 에이전트(230)는 모니터링 점검 주기가 30 초로 설정된 경우 통신 채널(220)의 상태를 30초마다 확인하고 모니터링 파일에 통신 채널(220)의 상태를 기록할 수 있다. 다른 예를 들어, 가상 머신 에이전트(230)는 모니터링 시간 제한이 120초로 설정된 경우 통신 채널(220)에 이상이 발생한 후로부터 최소한 120초 동안 가상 머신(142)의 어플리케이션(240)을 일시정지 또는 중지시키지 않고 계속하여 실행을 시도할 수 있다.
어플리케이션 환경 설정 모듈(340)은 어플리케이션 수행 조건을 레지스트리에 설정할 수 있다. 어플리케이션 수행 조건은 통신 채널(220)에 이상이 발생한 경우 어플리케이션(240)의 수행 방식을 결정하는데 사용되고, 일 실시예에서, 어플리케이션 수행 조건은 계속적인 수행, 특정 시간 동안 수행, 통신 채널(240)의 사용이 필요할 때까지의 수행, 일시정지 또는 실행 중단을 포함할 수 있다.
예를 들어, 어플리케이션은 어플리케이션 수행 조건이 특정 시간 동안의 수행에 해당하면 통신 채널(220)의 이상을 확인한 시점부터 주어진 특정 시간 동안 수행되고, 통신 채널(220)이 복구되지 않으면 일시정지 또는 중단될 수 있다.
다른 예를 들어, 어플리케이션(240)은 어플리케이션 수행 조건이 통신 채널(220)의 사용이 필요할 때까지의 수행에 해당하면 통신 채널(220)의 이상이 확인되더라도 통신 채널(240)의 사용이 필요하지 않은 경우에는 통신 채널(220)의 사용이 필요하지 않은 시점 까지 어플리케이션(240)이 실행 되고 통신 채널(220)의 사용이 필요하지 않은 시점이 끝날 때까지 통신 채널(220)이 복구되지 않으면 일시정지 또는 중단될 수 있다. 통신 채널(220)의 사용이 필요하지 않은 시점은 어플리케이션(240)이 실행 되는데에 사용자 단말(110)에의 접속이 필요 없고 어플리케이션(240) 독자적으로 실행되어도 무관한 시점이다.
또 다른 예를 들어, 어플리케이션(240)은 어플리케이션 수행 조건이 일시정지 또는 중지에 해당하면 통신 채널(220)의 이상을 확인한 시점에 사용자 단말(110)과의 통신이 요구되는 경우 일시정지될 수 있다. 어플리케이션(240)이 일시정지된 상태에서 모니터링 시간 제한 동안 통신 채널(220)의 연결이 정상 상태로 돌아오지 않는 경우 어플리케이션(240)은 중단될 수 있다.
어플리케이션 제어 모듈(350)은 사용자 단말 에이전트(210)를 통해 가상 머신(142)에 사용자 단말 에이전트(210)와 독립적으로 동작 될 수 있는 어플리케이션(240)을 실행한다. 즉, 가상 머신(142)은 사용자 단말 에이전트(210)와의 연결과 무관하게 어플리케이션(240)의 특성 또는 가상 머신(142)의 설정 사항에 따라 어플리케이션(240)의 실행을 진행할 수 있다. 여기에서, 어플리케이션(240)의 특성은 어플리케이션 환경 설정 모듈(340)에 의하여 설정된 어플리케이션 수행 조건을 포함할 수 있다. 다만, 어플리케이션 제어 모듈(350)은 어플리케이션 수행 조건의 설정과 무관하게 어플리케이션(240)이 통신 채널(220)의 모니터링을 요구한 상태에서 통신 채널(220)의 연결이 끊긴 경우, 가상 머신 에이전트(230)가 어플리케이션(240)을 일시중지 하도록 제어할 수 있다.
이하, 어플리케이션 제어 모듈(350)이 통신 채널(220)에 이상이 발생한 경우 어플리케이션(240)을 제어하는 과정을 설명한다.
어플리케이션 제어 모듈(350)은 실행된 어플리케이션(240)에 의한 모니터링을 통해 통신 채널(220)이 끊긴 것이 검출되면 어플리케이션(240)을 계속 실행, 일시정지 또는 중단시킬 수 있다.
예를 들어, 통신 채널(220)이 끊긴 것이 검출되고 어플리케이션 수행 조건에 따라 어플리케이션(240)이 계속 실행되는 경우 어플리케이션은 사용자 단말과 무관하게 가상 머신(142)에서 독립적으로 계속 실행되면서 모니터링 조건에 따라 계속적으로 통신 채널(220)을 모니터링할 수 있다. 다른 예를 들어, 통신 채널(220)이 끊긴 것이 검출되고 어플리케이션 수행 조건에 따라 어플리케이션(240)이 일시정지된 경우 어플리케이션(240)은 계속 하여 통신 채널(220)을 모니터링하고 모니터링을 통해 통신 채널(220)이 복구되어 다시 연결된 것이 검출되면 일시정지되어 있던 어플리케이션(240)은 일시정지 시점부터 실행될 수 있다. 또 다른 예를 들어, 통신 채널(220)이 끊긴 것이 검출되고 어플리케이션 수행 조건에 따라 어플리케이션(240)이 중단된 경우 가상 머신 에이전트(230)에 의한 통신 채널(220) 연결 상태에 대한 모니터링 기록이 중단되고 어플리케이션에 의한 통신 채널(220) 모니터링도 중단될 수 있다. 또한, 사용자 단말에 의해 중단된 어플리케이션(240)이 다시 실행되는 경우 어플리케이션(240)은 처음부터 실행될 수 있다.
통신 채널 모니터링 모듈(360)은 어플리케이션 실행 환경에 접근하여 모니터링 파일 정보 및 모니터링 조건을 검출하고, 모니터링 점검 주기에 따라 통신 채널(220)의 상태를 포함하는 모니터링 파일을 갱신한다. 결과적으로, 어플리케이션(240)은 어플리케이션 실행 환경에 접근하여 모니터링 파일 정보를 검출하고, 모니터링 파일을 읽어서 통신 채널(220)을 모니터링할 수 있다.
보다 구체적으로, 통신 채널 모니터링 모듈(360)은 가상 머신(142)에서 실행된 어플리케이션(240)이 모니터링 파일을 통해 통신 채널(220)을 모니터링하는 것을 허용할 수 있다. 일 실시예에서, 모니터링 파일은 레지스트리의 특정 섹션 내에 구현되거나 또는 가상 머신(142)에 의해 종속적으로 접근되는 메모리에 저장될 수 있다.
통신 채널 복구 모듈(370)은 통신 채널(220)에 이상이 발생한 경우 통신 채널(220)의 복구를 수행한다. 일 실시예에서, 통신 채널 복구 모듈(370)은 어플리케이션(240)에 의한 모니터링을 통해 통신 채널(220)이 끊긴 것이 검출되면 사용자 단말 에이전트(210)와의 재연결을 특정 시간 동안 시도할 수 있다.
제어부(330)는 가상 머신 결정부(310) 및 가상 머신 에이전트부(320) 의 동작 및 데이터의 흐름을 제어한다.
도 4는 도 3에 있는 클라우드 컴퓨팅 서버에서 수행되는 통신 채널 모니터링 과정을 설명하는 순서도이다.
가상 머신 결정부(310)는 사용자 단말 에이전트(210)에 대응하는 가상 머신을 결정한다(단계 S401). 보다 구체적으로, 가상 머신 결정부(310)는 사용자 단말 에이전트(210)가 수행하는 어플리케이션(240)에 따라서 상기 사용자 단말 에이전트(210)에 대응하는 클라우드 컴퓨팅 서버(130)의 적어도 하나의 가상 머신(142)을 결정한다. 사용자 단말 에이전트(210)에 대응하는 가상 머신(142)이 결정되면 가상 머신(142)의 가상 머신 에이전트(230)는 사용자 단말 에이전트(210)와 연결 되어 통신 채널(220)을 형성한다.
어플리케이션 환경 설정 모듈(340)은 가상 머신(142)에 어플리케이션(240)의 실행환경을 설정한다(단계 S402). 여기에서, 어플리케이션 환경 설정 모듈(340)은 통신 채널(220)의 모니터링 파일에 관한 레지스트리를 설정하고 레지스트리를 통해서 모니터링 조건을 설정할 수 있다.
어플리케이션 제어 모듈(350)는 사용자 단말 에이전트(210)를 통해서 어플리케이션(240)을 실행한다(단계 S403). 여기에서, 어플리케이션(240)은 사용자 단말 에이전트(210)와 독립적으로 동작되고 어플리케이션(240)은 가상 머신(142)이 사용자 단말 에이전트(210)와 연결이 끊기더라도 어플리케이션(240) 특성 또는 가상 머신(142) 설정 사항에 따라 소멸되지 않고 계속하여 실행이 진행된다.
통신 채널 모니터링 모듈(360)는 실행된 어플리케이션(240)이 어플리케이션(240) 실행 환경에 접근하여 통신 채널(220)을 모니터링 한다(단계 S404). 보다 구체적으로, 어플리케이션(240)은 어플리케이션 환경 설정에 따라 가상 머신 에이전트(230)에 의하여 기록된 모니터링 파일을 레지스트리를 통해 검출하여 통신 채널(220)을 모니터링 한다.
도 5는 도 4에 있는 클라우드 컴퓨팅 서버에서 수행되는 통신 채널 모니터링 과정을 보다 구체적으로 설명하는 순서도이다.
가상 머신 결정부(310)는 사용자 단말 에이전트(210)에 대응하는 가상 머신(142)을 결정하기 위해서 사용자 단말 에이전트(210)와 이미 연관된 가상 머신(142)이 있는지 여부를 확인한다(단계 S501).
사용자 단말 에이전트(210)와 이미 연관된 가상 머신(142)이 있는 경우 이미 연관된 가상 머신(142)을 다시 사용자 단말(110)과 연결한다(단계 S502). 보다 구체적으로, 사용자 단말(110)의 사용자 단말 에이전트(210)는 이미 연관된 가상 머신(142)의 가상 머신 에이전트(230)와 연결되고 사용자 단말 에이전트(210)와 가상 머신 에이전트(230)의 연결을 통해 통신 채널(220)을 형성한다.
사용자 단말 에이전트(210)와 이미 연관된 가상 머신(142)이 없는 경우 새로운 가상 머신(142)을 생성한다(단계 S503). 보다 구체적으로, 새로 생성된 가상 머신(142)이 가상 머신 에이전트(230)를 생성하고 생성된 가상 머신 에이전트(230)와 사용자 단말 에이전트(210)가 연결되어 통신 채널(220)을 형성한다.
어플리케이션 환경 설정 모듈(340)은 모니터링 파일에 관한 레지스트리를 설정한다(단계 S504). 어플리케이션(240)은 통신 채널(220)을 직접적으로 모니터링을 할 수 없으므로 어플리케이션(240)이 접근할 수 있는 레지스트리 설정하여 모니터링 파일을 검출 할 수 있다.
어플리케이션 환경 설정 모듈(340)은 어플리케이션의 특성에 따라서 모니터링 조건을 설정한다(단계 S505).
어플리케이션 제어 모듈(350)은 어플리케이션을 실행한다(단계 S506).
통신 채널 모니터링 모듈(360)은 가상 머신 에이전트(230)와 미리 약속된 레지스트리를 검출한다(단계 S507).
통신 채널 모니터링 모듈(360)은 모니터링 파일을 검출한다(단계 S508).
통신 채널 모니터링 모듈(360)은 모니터링 정보를 수집한다(단계 S509). 보다 구체적으로, 모니터링 정보는 통신 채널(220) 연결 상태에 대하여 가상 머신 에이전트(230)에 의해 계속적으로 기록된 정보 중에서 어플리케이션의 모니터링 점검 주기 시점에 가상 머신 에이전트(230)에 의하여 기록된 통신 채널(220) 연결 상태이다.
통신 채널 모니터링 모듈(360)은 모니터링 정보를 통하여 통신 채널(220)이 끊겼는지 여부를 확인한다(단계 S510). 보다 구체적으로, 어플리케이션(240)의 모니터링 점검 시점에 가상 머신 에이전트(230)에 의해 기록된 통신 채널(220) 연결 상태가 정상이면 통신 채널(220)이 끊기지 않은 것으로 판단하고 비정상이면 통신 채널(220)이 끊어졌다고 판단한다.
모니터링 정보를 통하여 통신 채널(220)이 끊기지 않았다고 확인된 경우 레지스트리의 위치를 변경할 것인지 여부를 확인한다(단계 S511). 보다 구체적으로, 레지스트리의 저장 공간을 다 사용하여 가상 머신 에이전트(230)에 의하여 기록되고 있는 모니터링 정보를 기존에 설정된 레지스트리에 더 이상 저장할 수 없는 경우, 레지스트리의 위치 변경을 통하여 모니터링 정보를 계속해서 저장할 수 있다.
보다 구체적으로, 레지스트리의 저장 공간이 남아 있어 레지스트리의 위치를 변경하지 않을 경우 단계 S509로 이동하여 다시 모니터링 정보를 수집하고 통신 채널이 끊겼는지 여부를 확인하는 과정을 반복한다. 레지스트리의 저장 공간이 없어 레지스트리의 위치를 변경하는 경우에는 레지스트리의 위치를 변경 하고 단계 S507로 이동하여 변경된 레지스트리를 검출한다. 보다 구체적으로, 가상 머신 에이전트(230)는 변경된 레지스트리에 모니터링 정보를 기록하고 어플리케이션(240)은 변경된 레지스트리에 접근하여 모니터링 파일을 검출할 수 있다.
모니터링 정보를 통하여 통신 채널(220)이 끊겼다고 확인 된 경우 어플리케이션 제어 모듈(350)은 실행되고 있는 어플리케이션의 수행 조건에 따라 어플리케이션을 제어 한다(단계 S512).
어플리케이션이 일시 중지되면 통신 채널 복구 모듈(370)는 통신 채널 복구를 시도한다(단계 S513). 보다 구체적으로, 통신 채널 복구 모듈(370)은 어플리케이션(240)에 의한 모니터링을 통해 통신 채널(220)이 끊긴 것이 검출되면 사용자 단말 에이전트(210)와의 재연결을 특정 시간 동안 시도할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 클라우드 컴퓨팅 시스템 110: 사용자 단말
120: 보안 장비 130: 클라우드 컴퓨팅 서버
140: 가상 머신 풀 142: 가상 머신
210: 사용자 단말 에이전트 220: 통신 채널
230: 가상 머신 에이전트 240: 어플리케이션
310: 가상 머신 결정부 320: 가상 머신 에이전트부
330: 제어부
340: 어플리케이션 환경 설정 모듈 350: 어플리케이션 제어 모듈
360: 통신 채널 모니터링 모듈 370: 통신 채널 복구 모듈

Claims (20)

  1. 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에서 수행되는 클라우드 컴퓨팅 방법에 있어서,
    상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계;
    상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계;
    상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계; 및
    상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 단계를 포함하는 클라우드 컴퓨팅 방법.
  2. 제1항에 있어서, 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계는
    상기 사용자 단말 에이전트와 이미 연관된 가상 머신이 있는지 여부를 체크하는 단계; 및
    상기 연관된 가상 머신이 이미 존재하지 않으면 새로운 가상 머신과 가상 머신 에이전트를 생성하는 단계를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  3. 제2항에 있어서, 상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계는
    상기 가상 머신 에이전트와 상기 사용자 단말 에이전트에 의해 형성되고 상기 사용자 단말의 컴퓨팅 아키텍처에 독립적인 디스플레이 정보를 송신할 수 있는 통신 채널을 설정하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  4. 제3항에 있어서, 상기 통신 채널은
    상기 사용자 단말 에이전트의 설정에 따라 하트비트 트래픽 전용 채널을 포함하는 멀티 트래픽 채널에 해당하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  5. 제1항에 있어서, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계는
    가상 머신 에이전트에 의하여 기록되고 상기 어플리케이션에게 제공될 수 있는 상기 통신 채널에 대한 모니터링 정보를 포함하는 모니터링 파일에 관한 레지스트리를 설정하는 단계를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  6. 제5항에 있어서, 상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계는
    상기 어플리케이션이 상기 레지스트리를 통해 상기 통신 채널의 모니터링 조건을 설정하는 것을 허용하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  7. 제1항에 있어서, 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계는
    상기 어플리케이션이 상기 통신 채널의 모니터링을 요구한 상태에서 상기 통신 채널의 연결이 끊긴 경우에는 가상 머신 에이전트가 상기 실행된 어플리케이션을 일시중지하도록 제어하는 단계를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  8. 제1항에 있어서, 상기 통신 채널을 모니터링하는 것을 허용하는 단계는
    상기 실행된 어플리케이션이 가상 머신 에이전트와 미리 약속된 레지스트리를 읽는 단계; 및
    상기 읽은 레지스트리를 기초로 모니터링 파일을 검출하는 단계를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  9. 제8항에 있어서, 상기 모니터링 파일은
    상기 가상 머신에 종속적이고 상기 레지스트리의 특정 섹션 또는 상기 가상 머신에 의해 접근되는 메모리에 저장되는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  10. 제8항에 있어서, 상기 통신 채널을 모니터링하는 것을 허용하는 단계는
    상기 어플리케이션이 상기 검출된 모니터링 파일을 주기적으로 읽어서 상기 통신 채널의 모니터링 정보를 가져가는 것을 허용하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  11. 제1항에 있어서,
    상기 실행된 어플리케이션에 의한 모니터링을 통해 상기 통신 채널이 끊긴 것이 검출되면 상기 어플리케이션 실행 환경에 따라 상기 어플리케이션을 제어하고 상기 사용자 단말 에이전트와의 재연결을 특정 시간 동안 시도하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 방법.
  12. 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에 있어서,
    상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 가상 머신 결정부;
    상기 가상 머신에 어플리케이션 실행 환경을 설정하고, 상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하며, 상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경에 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 가상 머신 에이전트부를 포함하는 클라우드 컴퓨팅 서버.
  13. 제12항에 있어서, 상기 가상 머신 결정부는
    상기 사용자 단말 에이전트와 이미 연관된 가상 머신이 있는지 여부를 체크하고, 상기 연관된 가상 머신이 이미 존재하지 않으면 새로운 가상 머신과 가상 머신 에이전트를 생성하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  14. 제13항에 있어서, 상기 가상 머신 결정부는
    상기 가상 머신 에이전트와 상기 사용자 단말 에이전트에 의해 형성되고 상기 사용자 단말의 컴퓨팅 아키텍처에 독립적인 디스플레이 정보를 송신할 수 있는 통신 채널을 설정하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  15. 제14항에 있어서,
    상기 사용자 단말 에이전트의 설정에 따라 하트비트 트래픽 전용 채널을 포함하는 멀티 트래픽 채널에 해당하는 채널을 설정하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  16. 제12항에 있어서, 상기 가상 머신 에이전트부는
    가상 머신 에이전트에 의하여 기록되고 상기 어플리케이션에게 제공될 수 있는 상기 통신 채널에 대한 모니터링 정보를 포함하는 모니터링 파일에 관한 레지스트리를 설정하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  17. 제12항에 있어서, 상기 가상 머신 에이전트부는
    상기 어플리케이션이 상기 통신 채널의 모니터링을 요구한 상태에서 상기 통신 채널의 연결이 끊긴 경우에는 가상 머신 에이전트가 상기 실행된 어플리케이션을 일시중지하도록 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  18. 제12항에 있어서, 상기 가상 머신 에이전트부는
    상기 실행된 어플리케이션이 가상 머신 에이전트와 미리 약속된 레지스트리를 읽고, 상기 읽은 레지스트리를 기초로 모니터링 파일을 검출하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  19. 제12항에 있어서, 상기 가상 머신 에이전트부는
    상기 실행된 어플리케이션에 의한 모니터링을 통해 상기 통신 채널이 끊긴 것이 검출되면 상기 실행된 어플리케이션이 상기 가상 머신 에이전트를 통해 상기 사용자 단말 에이전트에게 상기 통신 채널을 복구하도록 요청하는 것을 특징으로 하는 클라우드 컴퓨팅 서버.
  20. 사용자 단말 에이전트의 동작 환경을 제공하는 사용자 단말과 연결될 수 있는 클라우드 컴퓨팅 서버에서 수행되는 클라우드 컴퓨팅 방법에 관한 컴퓨터 프로그램을 기록한 기록매체에 있어서,
    상기 사용자 단말 에이전트에 대응하는 가상 머신을 결정하는 단계;
    상기 가상 머신에 어플리케이션 실행 환경을 설정하는 단계;
    상기 사용자 단말 에이전트를 통해 상기 가상 머신에 상기 사용자 단말 에이전트와 독립적으로 동작될 수 있는 어플리케이션을 실행하는 단계; 및
    상기 실행된 어플리케이션이 상기 어플리케이션 실행 환경을 접근하여 상기 사용자 단말 에이전트와 상기 가상 머신 간의 통신 채널을 모니터링하는 것을 허용하는 단계를 포함하는 클라우드 컴퓨팅 방법에 관한 컴퓨터 프로그램을 기록한 기록매체.
KR1020140039926A 2014-04-03 2014-04-03 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체 KR101601680B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140039926A KR101601680B1 (ko) 2014-04-03 2014-04-03 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140039926A KR101601680B1 (ko) 2014-04-03 2014-04-03 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체

Publications (2)

Publication Number Publication Date
KR20150115238A true KR20150115238A (ko) 2015-10-14
KR101601680B1 KR101601680B1 (ko) 2016-03-09

Family

ID=54357432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140039926A KR101601680B1 (ko) 2014-04-03 2014-04-03 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체

Country Status (1)

Country Link
KR (1) KR101601680B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170047969A (ko) * 2015-10-26 2017-05-08 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
KR20210021514A (ko) * 2015-10-26 2021-02-26 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
CN115134344A (zh) * 2022-06-29 2022-09-30 济南浪潮数据技术有限公司 一种虚拟机控制台的控制方法及组件

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060034534A (ko) * 2004-10-19 2006-04-24 엘지전자 주식회사 이동통신 시스템과 이엠에스 서버 사이의 파일 전송 장치및 그 방법
KR20110040604A (ko) 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
KR20120035081A (ko) * 2010-10-04 2012-04-13 삼성전자주식회사 가상화 환경에서의 장애 복구 장치 및 방법
KR20130022091A (ko) * 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
KR101280753B1 (ko) * 2012-02-22 2013-07-05 주식회사 팬택 클라우드 서비스 액세스 장치, 클라우드 서비스 액세스 방법 및 클라우드 서비스 액세스 시스템
KR101285200B1 (ko) 2011-12-22 2013-07-11 한국외국어대학교 연구산학협력단 클라우드 컴퓨팅을 이용한 iptv 서비스 제공 방법과 그를 위한 시스템 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060034534A (ko) * 2004-10-19 2006-04-24 엘지전자 주식회사 이동통신 시스템과 이엠에스 서버 사이의 파일 전송 장치및 그 방법
KR20110040604A (ko) 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
KR20120035081A (ko) * 2010-10-04 2012-04-13 삼성전자주식회사 가상화 환경에서의 장애 복구 장치 및 방법
KR20130022091A (ko) * 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
KR101285200B1 (ko) 2011-12-22 2013-07-11 한국외국어대학교 연구산학협력단 클라우드 컴퓨팅을 이용한 iptv 서비스 제공 방법과 그를 위한 시스템 및 장치
KR101280753B1 (ko) * 2012-02-22 2013-07-05 주식회사 팬택 클라우드 서비스 액세스 장치, 클라우드 서비스 액세스 방법 및 클라우드 서비스 액세스 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170047969A (ko) * 2015-10-26 2017-05-08 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
KR20210021514A (ko) * 2015-10-26 2021-02-26 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
CN115134344A (zh) * 2022-06-29 2022-09-30 济南浪潮数据技术有限公司 一种虚拟机控制台的控制方法及组件

Also Published As

Publication number Publication date
KR101601680B1 (ko) 2016-03-09

Similar Documents

Publication Publication Date Title
KR101634295B1 (ko) IoT 보안을 위한 인증 서비스 제공 시스템 및 방법
US8656067B2 (en) Peripheral device identification for pairing
JP6386069B2 (ja) 接続管理方法、装置、電子設備、プログラム、及び記録媒体
EP2454679B1 (en) Management of an instant message session
US20170163691A1 (en) Methods, circuits, apparatus, systems and associated software applications for providing security on one or more servers, including virtual servers
JP2010218347A (ja) シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
KR20160069442A (ko) 클라우드 스트리밍 서비스를 위한 서비스 에러 검출 장치 및 이를 포함하는 종단간 서비스 모니터링 시스템 및 방법
JP2017505473A (ja) クライアントサーバリモートアクセスシステムにおけるクライアントの非管理サービスへの接続の提供方法
JP6470597B2 (ja) キャプティブポータル対応のvpn通信端末、その通信制御方法及びそのプログラム
KR101601680B1 (ko) 클라우드 컴퓨팅 방법, 이를 수행하는 클라우드 컴퓨팅 서버 및 이를 저장하는 기록매체
Alkar et al. IP based home automation system
KR20130129538A (ko) 원격 네트워크 연결 방법 및 원격 네트워크 연결 시스템
WO2016043896A1 (en) Contextual platform feature recommendations
EP2974125B1 (en) Systems, methods, and computer program products for providing a universal persistence cloud service
CN103984616A (zh) 一种服务器监控方法及服务器
US8407720B1 (en) Inter-process communication management
CN104680089A (zh) 一种电子设备和系统切换方法
EP3179403B1 (en) Information processing apparatus and computer program product
KR101506223B1 (ko) 가상화 서비스 제공을 위한 비정상적인 접속 차단시 자동 재접속 시스템
CN105100125A (zh) 一种虚拟桌面的休眠控制方法、装置及系统
EP3398297A1 (en) Establishment of a connection between two local devices connected to different networks
KR101784312B1 (ko) 인증되지 않는 액세스를 방지하기 위해 클라우드 데이터에 보안을 제공하는 전자 장치 및 이의 보안 제공 방법
WO2015180293A1 (zh) 云桌面的监控方法及装置
JP5847064B2 (ja) 簡易型監視制御装置
KR101382605B1 (ko) 단말기 디버그 시리얼 접속 보안 방법

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
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5