KR20130067113A - 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말 - Google Patents

가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말 Download PDF

Info

Publication number
KR20130067113A
KR20130067113A KR1020110133964A KR20110133964A KR20130067113A KR 20130067113 A KR20130067113 A KR 20130067113A KR 1020110133964 A KR1020110133964 A KR 1020110133964A KR 20110133964 A KR20110133964 A KR 20110133964A KR 20130067113 A KR20130067113 A KR 20130067113A
Authority
KR
South Korea
Prior art keywords
information
screen
application
user
virtualization
Prior art date
Application number
KR1020110133964A
Other languages
English (en)
Other versions
KR101326231B1 (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 KR1020110133964A priority Critical patent/KR101326231B1/ko
Publication of KR20130067113A publication Critical patent/KR20130067113A/ko
Application granted granted Critical
Publication of KR101326231B1 publication Critical patent/KR101326231B1/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
    • 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사용자 에이전트가 설치된 클라이언트 단말과, 상기 클라이언트 단말과 네트워크 연결되어 상기 클라이언트 단말로 가상화 소프트웨어 서비스를 제공하는 서비스 서버를 포함하는, 가상화 소프트웨어 서비스 시스템이 제공된다. 여기서, 상기 사용자 에이전트는, 상기 클라이언트 단말과 상기 서비스 서버 간에 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결이 이루어진 경우, 상기 클라이언트 단말의 사용자가 이용 가능한 어플리케이션 리스트 정보를 상기 서비스 서버로부터 수신하고, 상기 수신된 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)를 생성하여 상기 클라이언트 단말의 디스플레이 화면을 통해 표출한다. 여기서, 상기 서비스 서버는, 상기 GUI를 통해 표출된 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션의 실행 화면 재현 정보를 상기 사용자 에이전트로 전송한다.

Description

가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말{VIRTUALIZATION SOFTWARE SERVICE SYSTEM, AND SEVICE SERVER AND USER TERMINAL THEREFOR}
본 발명은 클라우드 컴퓨팅(Cloud computing)에 관한 것으로서, 보다 구체적으로는 가상화 소프트웨어 서비스를 제공하는 서비스 서버와 가상화 에이전트가 설치된 단말을 이용하는 소프트웨어 서비스 시스템에 관한 것이다.
클라우드 컴퓨팅은 서로 다른 물리적인 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술이다. 즉, 하드웨어, 소프트웨어 등 IT 자원을 필요한 때 필요한 만큼 외부로부터 빌려쓰는 개념의 서비스를 제공할 수 있는 기술을 의미한다.
자신의 단말에 실제로는 존재하지 않는 컴퓨터 자원을 존재하는 것처럼 사용할 수 있는 가상화 기술로서, 현재 대표적인 기술로는 원격 데스크탑 프로토콜(Remote Desktop Protocol, 이하 RDP)과 가상 네트워크 컴퓨팅(Virtual Network Computing, 이하 VNC)을 꼽을 수 있다.
그러나 RDP는 클라이언트 단말의 화면에 서버에서 실행되는 데스크탑 화면 전체가 표출되기 때문에(도 5의 (a) 참조), 사용성 측면에서 사용자에게 시각적인 거부감을 유발한다. 그리고 VNC는 과도한 네트워크 트래픽을 유발하기에 상당한 한계성을 가지고 있다. 또한 RDP 및 VNC 모두 사용자의 운영체제(Operating System)에 종속적이라는 한계성을 가지고 있다.
본 발명은 네트워크 트래픽 측면에서 효율성을 보이면서도 사용성 측면에서도 우수한 가상화 소프트웨어 서비스 시스템을 제공하기 위한 것이다.
또한 본 발명은 클라이언트 단말에 설치된 운영체제에 종속되지 않고도 이기종 플랫폼의 어플리케이션을 사용자가 손쉽게 이용할 수 있는 가상화 소프트웨어 서비스 시스템을 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 가상화 소프트웨어 서비스를 제공하는 서비스 서버와의 네트워크 연결을 위한 통신 모듈을 포함하며, 상기 가상화 소프트웨어 서비스의 실행을 위한 가상화 에이전트가 설치된 단말이 제공된다.
여기서, 상기 가상화 에이전트는,
상기 통신 모듈을 통해, 상기 서비스 서버와 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행하는 네트워크 관리부;
상기 단말의 사용자가 상기 가상화 소프트웨어 서비스를 통해서 이용할 수 있는 가용 어플리케이션 리스트 정보가 상기 서비스 서버로부터 수신된 경우, 상기 가용 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)를 생성하여 상기 단말의 디스플레이 화면을 통해 표출하는 어플리케이션 리스트 관리부;
상기 GUI를 통해 표출된 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-가 상기 서비스 서버로부터 수신된 경우, 상기 수신된 실행 화면 재현 정보에 기초하여 상기 선택된 어플리케이션에 관한 실행 화면을 생성하여 상기 디스플레이 화면을 통해 표출하는 가상화 실행부를 포함한다.
일 실시예에서, 상기 가용 어플리케이션 리스트 정보는, 상기 단말의 운영체제(Operating System)에서는 정상 실행될 수 없는 이기종 플랫폼의 어플리케이션들에 관한 리스트 정보일 수 있다.
일 실시예에서, 상기 네트워크 관리부는, 원격 데스크탑 프로토콜(Remote Desktop Protocol)을 통해, 상기 사용자에 의해 선택된 어플리케이션이 상기 서비스 서버에서 실행되었을 때의 데스크탑 화면 정보를 수신하고,
상기 가상화 실행부는, 상기 수신된 데스크탑 화면 정보 중에서 배경 화면과 전경 화면을 구분 식별함으로써, 상기 선택된 어플리케이션에 관한 실행 화면만이 상기 디스플레이 화면을 통해 표출되도록 할 수 있다.
일 실시예에서, 상기 가상화 실행부는, 상기 선택된 어플리케이션의 실행 화면에 관한 윈도우를 상기 단말의 운영체제의 구동 환경 화면 상에서 오버레이시켜 표출할 수 있다.
일 실시예에서, 상기 선택된 어플리케이션의 실행 화면에 관한 윈도우를 위치 이동시키는 상기 사용자의 조작 이벤트가 발생된 경우,
상기 가상화 실행부는, 상기 실행 화면 재현 정보로서 수신된 상기 좌표 정보를 상기 윈도우의 위치 이동에 상응하여 갱신하고, 좌표 정보의 갱신이 반영된 상기 실행 화면 재현 정보에 기초하여 상기 실행 화면을 재생성함으로써 상기 재생성된 실행 화면에 관한 윈도우를 상기 단말의 운영체제의 구동 환경 화면 상에서 오버레이시켜 표출할 수 있다.
본 발명의 다른 측면에 따르면, 가상화 소프트웨어 서비스를 제공하는 장치로서,
가상화 소프트웨어 서비스에 관한 회원 정보 및 회원 별 가용 어플리케이션 리스트 정보를 저장하는 사용자 정보 데이터베이스;
클라이언트 단말로부터 가상화 소프트웨어 서비스에 관한 접속 요청이 있는 경우 상기 사용자 정보 데이터베이스에 근거하여 사용자 인증을 수행하는 로그인 관리부;
상기 사용자 인증된 사용자가 이용할 수 있는 가용 어플리케이션 리스트 정보를 상기 클라이언트 단말로 전송하는 어플리케이션 관리부; 및
상기 접속 요청한 클라이언트 단말과 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행하고, 상기 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션에 관한 정보가 상기 클라이언트 단말로부터 수신되는 경우 상기 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-를 상기 클라이언트 단말로 전송하는 원격 제어 관리부를 포함하는 가상화 소프트웨어 서비스 장치가 제공된다.
일 실시예에서, 상기 원격 제어 관리부는, 원격 데스크탑 프로토콜(Remote Desktop Protocol)을 통해, 상기 선택된 어플리케이션이 상기 서비스 서버에서 실행되었을 때의 데스크탑 화면 정보-여기서, 상기 데스트탑 화면 정보는 상기 실행 화면 재현 정보를 포함함-를 상기 클라이언트 단말로 전송할 수 있다.
일 실시예에서, 가상화 소프트웨어 서비스 장치는,
가상화 소프트웨어 서비스를 이용하는 회원들 각각에 할당된 보관 영역에 해당 회원의 파일들을 저장하는 파일 보관소; 및
사용자 별로 각각 자신에 할당된 보관 영역에만 접근할 수 있도록, 클라이언트 단말이 사용자 자신에 할당된 보관 영역으로의 접근을 시도하는 경우 해당 보관 영역만을 네트워크 드라이브 형태로 가상화하여 상기 접근을 시도한 클라이언트 단말에 제공하는 액세스 관리부를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 사용자 에이전트가 설치된 클라이언트 단말과, 상기 클라이언트 단말과 네트워크 연결되어 상기 클라이언트 단말로 가상화 소프트웨어 서비스를 제공하는 서비스 서버를 포함하는, 가상화 소프트웨어 서비스 시스템이 제공된다.
여기서, 상기 사용자 에이전트는,
상기 클라이언트 단말과 상기 서비스 서버 간에 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결이 이루어진 경우, 상기 클라이언트 단말의 사용자가 이용 가능한 어플리케이션 리스트 정보를 상기 서비스 서버로부터 수신하고, 상기 수신된 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)를 생성하여 상기 클라이언트 단말의 디스플레이 화면을 통해 표출할 수 있다.
또한 여기서 상기 서비스 서버는,
상기 GUI를 통해 표출된 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-를 상기 사용자 에이전트로 전송할 수 있다.
기존 컴퓨터에서 애플리케이션의 사용은 해당 컴퓨터에 애플리케이션이 설치가 되어 있어야 하지만, 사용자의 컴퓨터에 다양한 애플리케이션을 설치하지 않아도 본 발명의 실시예에 따른 가상화 에이전트만 설치되어 있다면 서버로부터 가상화 소프트웨어 서비스를 손쉽게 제공받을 수 있는 이점이 있다.
또한, 본 발명의 실시예에 따르면, 사용자의 운영체제(윈도우즈, 맥 O/S, 리눅스) 종류에 종속되지 아니하고도, 윈도우즈 계열의 애플리케이션을 네트워크를 통해 제공받을 수 있다.
또한, 본 발명의 실시에에 따르면, 네트워크 트래픽 측면에서 효율적인 원격 데스크탑 프로토콜을 이용하면서도, 클라이언트에 설치된 가상화 에이전트가 수신된 데스크탑 화면에서 전경과 배경을 구분하여 전경에 해당하는 어플리케이션 화면 윈도우만을 화면에 표출해줌으로써 사용성의 측면에서도 사용자의 시각적 거부감을 해소할 수 있는 효과가 있다.
또한, 본 발명의 실시예에 따르면, 사용자의 모든 파일을 서버의 파일 관리소에 보관하기 때문에, 사용자는 때와 장소에 구애받지 않고 사용자의 파일에 접근이 가능하다.
도 1은 서비스 서버와 가상화 에이전트가 설치된 단말을 포함하는, 본 발명의 실시예에 따른 가상화 소프트웨어 서비스 시스템을 나타낸 블록도.
도 2 및 도 3은 본 발명의 실시예에 따른 가상화 소프트웨어 서비스 시스템을 통한 가상화 소프트웨어 서비스 제공 방법을 나타낸 순서도.
도 4는 가용 어프리케이션 GUI 리스트와, 선택된 어플리케이션에 관한 화면 윈도우가 클라이언트 단말의 화면에 표출된 예시도.
도 5는 데스크탑 화면에서 전경과 배경을 분리하여 선택된 어플리케이션에 관한 화면 윈도우만을 표출하는 방법을 설명하기 위한 도면.
도 6은 어플리케이션 화면 윈도우의 위치 이동시의 클라이언트 단말의 화면 갱신 방법을 설명하기 위한 도면.
도 7은 어플리케이션 화면 윈도우에서 가상 네트워크 드라이브 형식으로 표출되는 사용자 별 파일 보관 영역을 설명하기 위한 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다. 이는 일 구성요소로부터 다른 구성요소로 특정 데이터를 "전송한다" 등으로 언급된 경우에도 위와 동일하게 해석되어야 할 것이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1은 서비스 서버와 가상화 에이전트가 설치된 단말을 포함하는, 본 발명의 실시예에 따른 가상화 소프트웨어 서비스 시스템을 나타낸 블록도이다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. 따라서, 본 명세서를 통해 설명되는 각 구성부들의 존재 여부는 기능적으로 해석되어져야 할 것이며, 이러한 이유로 본 발명의 가상화 소프트웨어 서비스 시스템에 따른 구성부들의 구성은 본 발명의 목적을 달성할 수 있는 한도 내에서 도 1과는 상이해질 수 있음을 명확히 밝혀둔다. 또한 이하 설명할 가상화 에이전트의 구성부 중 일부 또는 전부는 소프트웨어로서 구현될 수 있다. 역시 가상화 소프트웨어 서비스 장치의 구성부 중 일부도 소프트웨어로서 구현될 수 있다.
도 1을 참조하면, 가상화 소프트웨어 서비스 시스템(10)은, 가상화 에이전트(100)가 설치된 사용자 측 단말(이하, 클라이언트 단말(11)이라 함)과, 이와 네트워크 연결되어 가상화 소프트웨어 서비스를 제공하는 서비스 서버(12)를 포함한다.
도 1에서는, 발명 설명의 편의를 위해, 가상화 소프트웨어 서비스를 제공받는 임의의 1개의 클라이언트 단말(11)만을 도시하였지만, 클라이언트 단말은 복수 개가 존재할 수 있음은 자명하다. 또한 여기서, 클라이언트 단말(11)은 데스크탑 PC, 스마트 TV와 같은 고정 단말일 수도 있지만, 노트북, 스마트폰, 태블릿 PC와 같은 이동 단말(휴대 단말)일 수도 있음은 물론이다. 즉, 클라이언트 단말(11)은 이하 설명할 가상화 에이전트(100)가 설치되며, 서비스 서버(12)와 유/무선 네트워크를 통해 통신할 수 있는 통신 모듈(미도시)이 설치된 전자 장치라면 모두 여기에 해당될 수 있다.
서비스 서버(12)는 본 발명의 실시예에 따른 가상화 소프트웨어 서비스를 제공하기 위한 실제 구성인 가상화 소프트웨어 서비스 장치(200)를 포함한다. 여기서, 서비스 서버(12)는 가상화 소프트웨어 서비스를 제공하기 위한 특화된 응용 서버(즉, 사업형 또는 기업형 서비스 서버)는 물론 소규모 또는 개인화된 서비스 장치(이는 사용자의 다른 단말이 서비스 서버로서의 역할을 대행하는 경우까지를 포괄함)도 여기에 해당될 수 있음은 물론이다. 즉, 본 명세서에서 서비스 서버(12)란 이하 설명될 가상화 소프트웨어 서비스 장치(200)를 포함하는 어떠한 전자 장치라도 여기에 해당될 수 있다.
이하, 클라이언트 사이드(side)에 설치되는 가상화 에이전트(100) 및 서버 사이드의 가상화 소프트웨어 서비스 장치(200)에 관하여 설명한다. 이하에서는 각 구성부에 대한 주요 기능을 간략히 설명하며, 이에 대한 순서적 플로우 및 구체적 내용은 도 2 및 도 3에서 함께 설명하기로 한다.
먼저, 가상화 에이전트(100)는, 도 1에 도시된 바와 같이, 네트워크 관리부(110), 어플리케이션 리스트 관리부(120), 가상화 실행부(130), 파일 매니저(140)를 포함할 수 있다.
네트워크 관리부(110)는 클라이언트 단말(11)의 통신 모듈(미도시)를 통해서, 서비스 서버(12)와 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행한다.
어플리케이션 리스트 관리부(120)는 클라이언트 단말(11)의 사용자가 가상화 소프트웨어 서비스를 통해서 이용할 수 있는 가용 어플리케이션 리스트 정보가 서비스 서버(12)로부터 수신된 경우, 그 가용 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)(이하, 가용 어플리케이션 GUI 리스트라 함, 도 4의 도면부호 52 참조)를 생성하고, 생성된 가용 어플리케이션 GUI 리스트를 단말(11) 화면을 통해 표출한다.
이때, 서비스 서버(12)로부터 수신되는 가용 어플리케이션 리스트 정보는, 일 예로, 단말(11)에 미설치된 응용 소프트웨어(즉, 어플리케이션)에 관한 정보들일 수 있다. 또는, 단말(11)에 설치는 되어 있지만, 어플리케이션의 버전이 달라서 정상 실행이 어려운 어플리케이션에 관한 정보들일 수도 있다. 또는, 단말(11)에 설치되어 있지만 단말(11)의 하드웨어 스펙 상 단말에서 직접 실행시키는 것 보다는 서비스 서버(12)를 통해 실행시키는 것이 효과적인 경우에 그 서비스 서버(12)를 통해 기 등록해둔 또는 실시간 선택한 어플리케이션들에 관한 정보일 수도 있다. 다만, 본 명세서에서는, 본 발명의 효과적 우수성을 보다 명확히 확인해볼 수 있는 케이스로서, 단말(11)의 운영체제(OS)와는 다른 이기종의 운영체제에서만 정상적으로 실행시킬 수 있는 이기종 플랫폼의 어플리케이션들에 관한 정보가 서비스 서버(12)로부터 클라이언트 단말(11)로 제공되는 경우에 집중하여 설명하기로 한다.
이를 위해, 본 명세서에서는, 클라이언트 단말(11)의 운영체제는 리눅스(Linux)인 것으로 가정하고, 서비스 서버(12)에서 서비스해주는 가상 어플리케이션들은 윈도우즈(Windows) 계열의 어플리케이션들인 것으로 가정한다. 현재 전세계적으로 개인 사용자가 사용하는 개인 PC의 경우에는 Windows OS가 독점하고 있는 상황인 점에서, 맥(Mac) OS 또는 Linux가 설치된 단말의 사용자가 Windows OS 계열의 어플리케이션을 사용하고자 할 때를 가정해보면, 본 발명의 이점을 명확히 이해하는데 도움이 될 것이기 때문이다. 다만, 본 발명은 본 명세서를 통한 이러한 가정의 설명들에 의해 제한되는 것이 아님은 물론이다. 즉, Windows OS가 설치된 단말(예를 들어, 학교 PC 또는 회사 PC)의 사용자가 자신에 익숙한 Linux 또는 Mac OS 계열의 어플리케이션들을 활용하고자 하는 경우에도 이하 설명할 발명의 내용들이 동일한 원리로 적용될 수 있을 것이다. 또한 최근 스마트폰, 태블릿 PC 등 모바일 단말이 개인 생활의 중심이 되고 있는 상황에서, 모바일 OS를 통해서 활용할 수 없는 어플리케이션들을 이하 설명할 발명의 내용에 따라 서비스 받고자 하는 경우에도 매우 유용하게 쓰일 수 있을 것임도 물론이라 할 것이다.
이상의 가정에서와 같이, 클라이언트 단말(11)의 운영체제는 리눅스(Linux)인 경우에도, 본 발명의 실시예에 따르면, 사용자는 서비스 서버(12)를 통해 Windows OS 계열의 어플리케이션들을 사용할 수 있게 된다. 즉, 이러한 경우, 어플리케이션 리스트 관리부(120)는 서비스 서버(12)로부터 수신된 Windows OS 계열의 어플리케이션 리스트 정보를 GUI화하여 단말(11) 화면에 표출하는 역할을 수행하는 것이다.
가상화 실행부(130)는 가용 어플리케이션 GUI 리스트 중 사용자에 의해 특정 어플리케이션이 선택되었을 때 그 선택에 따라 서비스 서버(12)로부터 수신된 어플리케이션 실행 화면 재현 정보에 근거하여, 그 선택된 어플리케이션에 관한 실행 화면(이하, 어플 실행 화면이라 간략 명명함, 도 4의 도면 부호 54 참조)을 생성하고 생성된 어플 실행 화면을 단말(11) 화면을 통해 표출한다. 여기서, 상기 실행 화면 재현 정보에 관해서는 이후 후술하기로 한다.
위와 같이 실행 화면 재현 정보에 근거하여 어플 실행 화면을 단말 화면을 통해 표출하는 과정에서, 가상화 실행부(130)는 서비스 서버(12)로부터 수신된 데스크탑 화면 정보(도 5의 (a)의 도면 부호 60 참조)에서 전경 화면(도 5의 (a)의 도면 부호 64 참조)과 배경 화면(도 5의 (a)의 도면 부호 62 참조)을 구분 식별함으로써, 그 전경 화면 즉, 어플리케이션 실행 화면에 관한 윈도우만을 추출하고, 그 어플 실행 화면 윈도우를 단말(11)의 운영체제에 따른 현재 구동 환경 화면(도 4의 도면 부호 50 참조) 상에 오버레이(overlay)시켜 표출한다.
파일 매니저(140)는 서비스 서버(12) 내의 파일 보관소(260)에 액세스하여 파일을 다운로드 또는 업로드하는 기능을 수행한다.
이상에서 설명한 가상화 에이전트(100)는 예를 들어 플랫폼에 무관하게 구축될 수 있는 C++ 기반의 언어인 Qt4로 구현됨으로써 상술한 바와 같이 운영체제에 비종속적인 역할을 수행할 수 있을 것이다.
가상화 소프트웨어 서비스 장치(200)는, 로그인 관리부(210), 어플리케이션 관리부(220), 원격 제어 관리부(230), 액세스 관리부(240), 사용자 정보 D/B(database)(250), 파일 보관소(260)를 포함한다.
로그인 관리부(210)는 클라이언트 단말(11)로부터 가상화 소프트웨어 서비스에 관한 접속 요청(이용 요청)이 있는 경우 사용자 정보 D/B(250)에 근거하여 사용자 인증을 수행한다.
여기서, 사용자 정보 D/B(250)에는 가상화 소프트웨어 서비스를 이용할 수 있는 사용자들에 관한 회원 정보와, 그 회원 별로 서비스 이용할 수 있는 소프트웨어들(즉, 가용 어플리케이션들)에 관한 리스트 정보가 저장될 수 있다.
로그인 관리부(210)를 통해 사용자 정상 인증이 된 경우, 어플리케이션 관리부(220)는 접속 요청한 단말(11)의 해당 사용자가 이용할 수 있는 가용 어플리케이션 리스트 정보를 전송한다. 또한 어플리케이션 관리부(220)는 서비스 이용자(즉, 사용자)가 자신이 사용하고자 하는 어플리케이션들을 추가 선택하거나 기존 리스트에서 일부 어플리케이션을 삭제하는 등의 리스트 갱신(수정)을 하는 경우, 이러한 갱신 사항을 사용자 정보 D/B(250)에 반영하는 역할도 수행한다.
원격 제어 관리부(230)는 사용자 정상 인증이 된 경우, 단말(11)과 서비스 서버(12) 간 가상화 소프트웨어 서비스를 위한 네트워크 연결을 담당한다. 이를 위해 원격 제어 관리부(230)는 단말(11) 간에 고유 세션 ID 및 콘솔 세션 채널을 할당할 수 있다. 이때, 가상화 소프트웨어 서비스의 제공을 위한 단말(11)과 서비스 서버(12) 간 데이터 송수신은 원격 데스크탑 프로토콜(RDP)에 기반하여 이루어질 수 있다.
또한, 원격 제어 관리부(230)는, 이후, 단말(11)로부터 사용자 선택의 어플리케이션에 관한 정보가 수신되는 경우, 그 사용자 선택의 어플리케이션을 서버에서 실행시키고, 그 실행 화면과 관련된 실행 화면 재현 정보를 단말(11) 측으로 전송한다. 여기서, 상기 실행 화면 재현 정보는, 예를 들어 RDP에 따른 데스크탑 화면 정보일 수 있다. 데스크탑 화면 정보는, 해당 어플리케이션이 서버에서 실행되었을 때의 데스크탑 화면 전체에 관한 정보를 의미한다. 여기서, 데스크탑 화면 정보는, 그 데스크탑 화면 이미지 자체가 아니고, 그 데스크탑 화면을 클라이언트 측에서 재현해내는데 필요한(이용되는) 정보로서, 화면 재현을 위한 좌표 정보 및 함수 정보를 포함한다.
즉, 대표적 가상화 기술 중 하나인 VNC의 경우 화면 이미지 자체가 클라이언트 측으로 전송되기 때문에 가상화 서비스를 위해 많은 네트워크 트래픽이 발생하였던 것과 달리, RDP의 경우 화면 재현을 위한 좌표/함수 정보를 전송하는 방식이기 때문에 네트워크 트래픽 측면에서 효용성이 매우 크다.
본 발명의 일 실시예에서, 원격 제어 괸리부(230)는, 이러한 RDP를 이용하여 데스크탑 화면 재현을 위한 좌표/함수 정보를 단말(11)로 전송한다.
파일 보관소(260)는 서비스 회원 별로 각각 스토리지가 할당된다. 즉, 파일 보관소(260)는 회원이 이용할 수 있는 네트워크 드라이브이다.
액세스 관리부(240)는 회원 별로 자신에 할당된 보관 영역(스토리지)에만 접근할 수 있도록 사용자의 액세스를 제한한다. 또한 서비스 서버(12)의 다른 시스템에는 접근하지 못하도록 제한한다. 이에 따라, 단말(11) 측에서 자신의 보관 영역에 접근하는 시도가 있는 경우, 액세스 관리부(240)는 그 사용자의 해당 보관 영역 만을 가상 드라이브 형태(도 7의 도면 부호 57번 창의 Z 드라이브 참조)로 사용자에 제공한다.
도 2 및 도 3은 본 발명의 실시예에 따른 가상화 소프트웨어 서비스 시스템을 통한 가상화 소프트웨어 서비스 제공 방법을 나타낸 순서도이다. 이하, 발명의 이해를 돕기 위해 도 4 ~ 도 7을 함께 참조한다.
여기서, 도 4는 가용 어프리케이션 GUI 리스트와, 선택된 어플리케이션에 관한 화면 윈도우가 클라이언트 단말의 화면에 표출된 예시도이다. 도 5는 데스크탑 화면에서 전경과 배경을 분리하여 선택된 어플리케이션에 관한 화면 윈도우만을 표출하는 방법을 설명하기 위한 도면이다. 도 6은 어플리케이션 화면 윈도우의 위치 이동시의 클라이언트 단말의 화면 갱신 방법을 설명하기 위한 도면이다. 도 7은 어플리케이션 화면 윈도우에서 가상 네트워크 드라이브 형식으로 표출되는 사용자 별 파일 보관 영역을 설명하기 위한 도면이다.
도 2에서, 사용자가 자신의 단말(11)에서 본 발명에 따른 가상화 소프트웨어 서비스를 이용하기 위한 접속 요청(예를 들어, 서비스 로그인 시도)을 하는 경우, 가상화 에이전트(100)는 이러한 접속 요청을 수신한다[단계 S12].
이를 위해, 단말(11)에 가상화 에이전트(100)가 설치되면, 예를 들어 단말(11) 화면의 하단 트레이에는 가상화 소프트웨어 서비스 진입을 위한 진입 화면 창을 띄울 수 있는 서비스 아이콘이 표시될 수 있다. 사용자는 이러한 서비스 아이콘을 클릭함에 따라 단말(11) 화면에는 상기 진입 화면 창이 팝업되고 이와 같이 팝업된 진입 화면 창을 통해 ID/PW를 입력하여 서비스 로그인 시도를 할 수 있다. 이러한 서비스 로그인 시도가 있는 경우 이는 가상화 에이전트(100)의 네트워크 관리부(110)를 통해 가상화 소프트웨어 서비스 장치(200)로 접속 요청 메시지 전송될 수 있다[단계 S14].
상기 접속 요청 메시지가 전송되면, 가상화 소프트웨어 서비스 장치(200)는 로그인 관리부(210)를 통해 사용자 인증을 수행하고[단계 S16], 정상 인증이 된 경우 원격 제어 관리부(220)는 단말(11)의 네트워크 관리부(110)와 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행한다[단계 S18].
이후, 가상화 소프트웨어 서비스 장치(200)의 어플리케이션 관리부(220)는 접속 요청한 해당 사용자가 이용할 수 있는 가용 어플리케이션 리스트 정보를 사용자 정보 D/B(250)로부터 추출하여 이를 단말(11) 측으로 전송한다[단계 S24].
상기 가용 어플리케이션 리스트는, 서비스 서버(12)에 있는 어플리케이션들 중, 서비스 이용자(즉, 사용자)가 자신이 사용하고자 하는 어플리케이션들을 선택한 것으로서, 서비스 가입 시점 또는 이후 서비스 이용 과정에서 등록/추가/삭제 등을 할 수 있다. 이러한 등록/추가/삭제 등을 위한 리스트 등록 또는 갱신과 관련된 GUI도 가상화 에이전트(100)에 의해 생성되어 사용자에게 제공될 수 있다. 본 명세서에서, 가용 어플리케이션 리스트는, 단말(11)의 OS와 다른 이기종 플랫폼의 어플리케이션들에 관한 리스트인 것으로 가정하였지만, 이와 다를 수 있음도 앞서 설명한 바이다.
가용 어플리케이션 리스트 정보가 수신되면, 가상화 에이전트(100)의 어플리케이션 리스트 관리부(120)는 해당 정보에 기초하여 가용 어플리케이션 GUI 리스트를 생성하고 이를 단말(11) 화면에 디스플레이한다[단계 S26].
이와 같이 생성된 GUI 리스트가 도 4를 통해 도시되어 있다. 도 4에 도시된 GUI 리스트(52)를 참조하면, 단말(11)의 OS가 Linux인 경우에 Windows 계열의 어플리케이션들이 나열되어 있음을 확인할 수 있다.
이후, 단말(11) 화면에 표출된 GUI 리스트 중 사용자가 특정 어플리케이션을 선택한 경우, 가상화 에이전트(100)는 그 어플 선택 이벤트를 수신하고[단계 S28], 이에 따라 선택된 어플리케이션에 관한 정보를 가상화 소프트웨어 서비스 장치(200)로 전송한다[단계 S30].
선택 어플리케이션 정보가 수신되면, 가상화 소프트웨어 서비스 장치(200)의 원격 제어 관리부(230)는 해당 어플리케이션을 실행하고[단계 S32], 그 실행 화면과 관련된 실행 화면 재현 정보를 원격 데스크탑 프로토콜(RDP)를 통해서 단말(11) 측으로 전송한다.
RDP를 통해 전송되는 해당 어플에 관한 실행 화면 재현 정보는 해당 어플리케이션이 실행되었을 때의 데스트탑 화면 정보에 포함된다. 도 5를 참조하면, 데스크탑 화면(60)은 배경 화면(62)과 해당 어플의 실행 화면(64)를 포함한다. 이때, 데스크탑 화면 정보는, 배경 화면(62) 및 해당 어플의 실행 화면(64)에 관한 좌표/함수 정보를 모두 포함할 수 있다. 이때, 좌표/함수 정보는 원격 데스크탑 프로토콜(RDP)에 정의된 바에 따라 전송되는 정보인 바, 이에 관한 상세한 설명은 생략한다. 다만, RDP를 통해 전송되는 데이터로는 상기 좌표/함수 정보에만 한정되는 것은 아니며, 해당 함수 정보만으로는 어플 실행 화면의 완벽한 재현이 어려운 경우로서, 해당 어플 내에 삽입되는 아이콘 정보, 해당 어플이 동영상 재생과 관련된 어플리케이션인 경우의 실시간 동영상 스트림 데이터 등도 여기에 더 포함될 수 있음은 물론이다. 다만, 이러한 케이스의 경우에도 RDP는 VNC와 달리 화면 자체의 이미지를 전송하는 것이 아니기 때문에 네트워크 트래픽 측면에서 매우 효용성이 높은 장점이 있다.
실행 화면 재현 정보가 수신되면, 가상화 에이전트(100)의 가상화 실행부(130)는 그 수신 정보에 근거하여 해당 어플에 관한 실행 화면을 재현한다[단계 S36]. 이때, 가상화 실행부(130)는 전송된 데스크탑 화면 정보 중에서 어플 실행 화면만에 관련된 전경 화면을 배경 화면과 구별하여, 그 전경 화면만을 추출한다. 이는 도 5에 도시되어 있다. 도 5의 (a)는 서버 측으로부터 전송된 데스크탑 화면 정보 전체를 나타내고, 도 5의 (b)는 가상화 에이전트(100)의 가상화 실행부(130)에 의해 분리된 어플 실행 화면(64)을 나타낸다. 도 5의 (b)를 참조하면, 배경 화면(62)으로부터 어플 실행 화면인 전경 화면(64)만 분리되고 있다.
이와 같이, 데스크탑 화면 중 배경 화면으로부터 분리된 어플 실행 화면은, 가상화 실행부(130)에 의해, 단말(11)의 OS에 따른 구동 환경 화면 상에 오버레이되어 표출된다[단계 S38]. 도 4의 경우, 사용자가 가용 어플리케이션 GUI 리스트(52) 중에서 Windows OS 계열의 Microsoft Excel 어플리케이션을 선택하였을 때를 가정하여 그 어플 실행 화면(도 4의 도면 부호 54 참조)이 Linux OS 환경의 구동 화면(도 4의 도면 부호 50 참조) 상에 오버레이 표출된 것을 도시한 것이다.
기존의 RDP를 이용한 가상화 기술의 경우 도 5의 (a)에서와 같이 서버에서 실행되는 데스크탑 화면 자체가 단말(11)의 화면을 통해 표출됨으로써 사용자에게 시각적 거부감(즉, 본 예의 경우, 해당 어플을 서비스 받을 때, Linux OS 환경을 그대로 이용하는 것과 같은 시각적 사용감을 부여하지 못함을 뜻함)을 주었던 것과 달리, 본 발명에 의하면 도 4를 통해 확인할 수 있는 바와 같이 위와 같은 문제점을 개선할 수 있는 효과가 있다.
또한, 본 발명에 의하면, 기존의 RDP에서와 다른 특징도 가지고 있다. 이는 도 3을 통해서 설명한다.
앞서 설명한 도 4에서와 같이, 자신의 단말(11)의 OS 구동 환경에서 Windows 계열 어플 실행 화면이 오버레이 표출된 상태에서, 해당 어플 실행 화면에 관한 윈도우가 사용자의 조작에 의해 위치 이동되는 경우, 가상화 에이전트(100)는 그러한 윈도우 위치 이동 이벤트를 수신한다[도 3의 단계 S40].
이와 같은 윈도우 위치 이동 이벤트가 수신된 경우, 가상화 에이전트(100)의 가상화 실행부(130)는 해당 위치 이동에 따른 좌표 변화를 고려하여 그 실행 화면을 단말(11) 화면에 다시 재현 표출한다[단계 S42]. 이러한 재재현 과정은 도 6을 참조하여 설명한다.
도 6과 같이, 어플 실행 화면 윈도우가 기존 위치(64-1)에서 다른 위치(64-2)로 위치 이동된 경우, 가상화 실행부(130)는 그 위치 이동과 관련된 모션 벡터(motion vector)(도 6의 도면 부호 M 참조)에 근거하여, 실행 화면 윈도우에 발생될 좌표 변화를 알아낼 수 있다. 따라서 가상화 실행부(130)는 종전 수신된 실행 화면 재현 정보 중에서 기존 좌표 정보를 상기 모션 벡터에 상응하는 만큼 갱신하고, 갱신된 좌표 정보와 기존 함수 정보를 이용하여 실행 화면 윈도우를 다시 재현해낼 수 있다.
즉, 실행 화면 자체가 변경된 케이스가 아닌 경우, 즉 상술한 예와 같이 윈도우의 표출 위치만이 변경된 경우에는, 서비스 서버(12) 측으로 실행 화면 재현 정보를 다시 수신(획득)할 필요 없이, 가상화 에이전트(100) 자체적으로 해당 화면을 다시 재현해낼 수 있는 것이다. 이는 기존의 RDP에서는 구현해낼 수 없었다. 즉, 기존의 RDP에서는 도 5의 (a)에서와 같이 배경 화면까지 포함된 전체 화면이 표출되므로, 실행 화면 윈도우에 단지 위치 이동만이 발생된 경우라도 서버 측으로 위치 이동과 관련된 정보를 넘겨주고 다시 실행 화면 재현 정보를 수신하여야 했다. 그러나 본 발명의 실시예에 따른 가상화 에이전트(100)의 기능에 의하면, 배경/전경 분리 방식에 의하여 어플 실행 화면만이 표출되므로, 상술한 위치 이동 등의 경우는 좌표 갱신 사항만을 적용하여 어플 실행 화면을 단말(11) 측 자체적으로 다시 재현할 수 있는 이점이 있다.
상술한 위치 이동 케이스와 달리 실행 화면 자체의 변경 또는 팝업 창의 추가 등이 필요한 경우 등과 같은 어플 조작 이벤트가 수신된 경우[단계 S44], 가상화 에이전트(100)는 어플 조작 정보를 가상화 소프트웨어 서비스 장치(200)로 전송한다[단계 S46].
이 경우, 가상화 소프트웨어 서비스 장치(200)의 원격 제어 관리부(230)는 해당 어플 조작 정보에 상응하는 어플리케이션 동작을 실행하고[단계 S48], 그에 따른 실행 화면 재현 정보를 가상화 에이전트(100)로 전송한다[단계 S50].
이에 따라, 가상화 에이전트(100)의 가상화 실행부(130)는, 수신한 실행 화면 재현 정보에 근거하여 다시 어플 실행 화면을 재현하고[단계 S52], 이를 단말(11) OS 구동 환경 화면 상에 오버레이 표출한다[단계 S54].
이때에도 기존의 VNC에 비해 다음과 같은 이점이 있다. 도 7을 참조하면, 기존에 수신된 어플 실행 화면 재현 정보에 근거하여 실행 화면 윈도우를 표출한 상태에서(도 7의 도면 부호 56 참조), 사용자의 어플 조작(본 예에서는 "다른 이름으로 저장" 버튼 클릭)에 따라 해당 팝업 창(도 7의 도면 부호 57 참조)이 더 표출되어야 하는 경우가 도시되어 있다. 이 경우에도, 본 발명의 실시예에 의하면, 해당 어플 관련 전체 화면에 관한 정보가 아니라, 해당 팝업 창에 관한 좌표 정보 및 함수 정보 등 만을 기초로 해당 팝업 창을 재현할 수 있는 이점이 있다. 이에 비해, 기존의 VNC의 경우에는 해당 어플과 관련된 전체 화면 이미지를 다시 받아와야 했기 때문에, 네트워크 트래픽이 과도하게 증가하는 문제가 있다.
이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.
10 : 가상화 소프트웨어 서비스 시스템
11 : 클라이언트 단말 12 : 서비스 서버
100 : 가상화 에이전트 110 : 네트워크 관리부
120 : 어플리케이션 리스트 관리부
130 : 가상화 실행부 140 : 파일 매니저
210 : 로그인 관리부 220 : 어플리케이션 관리부
230 : 원격 제어 관리부 240 : 액세스 관리부
250 : 사용자 정보 D/B 260 : 파일 보관소

Claims (12)

  1. 가상화 소프트웨어 서비스를 제공하는 서비스 서버와의 네트워크 연결을 위한 통신 모듈을 포함하며, 상기 가상화 소프트웨어 서비스의 실행을 위한 가상화 에이전트가 설치된 단말로서,
    상기 가상화 에이전트는,
    상기 통신 모듈을 통해, 상기 서비스 서버와 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행하는 네트워크 관리부;
    상기 단말의 사용자가 상기 가상화 소프트웨어 서비스를 통해서 이용할 수 있는 가용 어플리케이션 리스트 정보가 상기 서비스 서버로부터 수신된 경우, 상기 가용 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)를 생성하여 상기 단말의 디스플레이 화면을 통해 표출하는 어플리케이션 리스트 관리부; 및
    상기 GUI를 통해 표출된 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-가 상기 서비스 서버로부터 수신된 경우, 상기 수신된 실행 화면 재현 정보에 기초하여 상기 선택된 어플리케이션에 관한 실행 화면을 생성하여 상기 디스플레이 화면을 통해 표출하는 가상화 실행부
    를 포함하는, 가상화 에이전트가 설치된 단말.
  2. 제1항에 있어서,
    상기 가용 어플리케이션 리스트 정보는, 상기 단말의 운영체제(Operating System)에서는 정상 실행될 수 없는 이기종 플랫폼의 어플리케이션들에 관한 리스트 정보인, 가상화 에이전트가 설치된 단말.
  3. 제1항에 있어서,
    상기 네트워크 관리부는, 원격 데스크탑 프로토콜(Remote Desktop Protocol)을 통해, 상기 사용자에 의해 선택된 어플리케이션이 상기 서비스 서버에서 실행되었을 때의 데스크탑 화면 정보를 수신하고,
    상기 가상화 실행부는, 상기 수신된 데스크탑 화면 정보 중에서 배경 화면과 전경 화면을 구분 식별함으로써, 상기 선택된 어플리케이션에 관한 실행 화면만이 상기 디스플레이 화면을 통해 표출되도록 하는, 가상화 에이전트가 설치된 단말.
  4. 제1항에 있어서,
    상기 가상화 실행부는, 상기 선택된 어플리케이션의 실행 화면에 관한 윈도우를 상기 단말의 운영체제의 구동 환경 화면 상에서 오버레이시켜 표출하는, 가상화 에이전트가 설치된 단말.
  5. 제4항에 있어서,
    상기 선택된 어플리케이션의 실행 화면에 관한 윈도우를 위치 이동시키는 상기 사용자의 조작 이벤트가 발생된 경우,
    상기 가상화 실행부는, 상기 실행 화면 재현 정보로서 수신된 상기 좌표 정보를 상기 윈도우의 위치 이동에 상응하여 갱신하고, 좌표 정보의 갱신이 반영된 상기 실행 화면 재현 정보에 기초하여 상기 실행 화면을 재생성함으로써 상기 재생성된 실행 화면에 관한 윈도우를 상기 단말의 운영체제의 구동 환경 화면 상에서 오버레이시켜 표출하는, 가상화 에이전트가 설치된 단말.
  6. 가상화 소프트웨어 서비스를 제공하는 장치로서,
    가상화 소프트웨어 서비스에 관한 회원 정보 및 회원 별 가용 어플리케이션 리스트 정보를 저장하는 사용자 정보 데이터베이스;
    클라이언트 단말로부터 가상화 소프트웨어 서비스에 관한 접속 요청이 있는 경우 상기 사용자 정보 데이터베이스에 근거하여 사용자 인증을 수행하는 로그인 관리부;
    상기 사용자 인증된 사용자가 이용할 수 있는 가용 어플리케이션 리스트 정보를 상기 클라이언트 단말로 전송하는 어플리케이션 관리부; 및
    상기 접속 요청한 클라이언트 단말과 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결을 수행하고, 상기 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션에 관한 정보가 상기 클라이언트 단말로부터 수신되는 경우 상기 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-를 상기 클라이언트 단말로 전송하는 원격 제어 관리부
    를 포함하는 가상화 소프트웨어 서비스 장치.
  7. 제6항에 있어서,
    상기 가용 어플리케이션 리스트 정보는, 상기 단말의 운영체제(Operating System)에서는 정상 실행될 수 없는 이기종 플랫폼의 어플리케이션들에 관한 리스트 정보인, 가상화 소프트웨어 서비스 장치.
  8. 제6항에 있어서,
    상기 원격 제어 관리부는, 원격 데스크탑 프로토콜(Remote Desktop Protocol)을 통해, 상기 선택된 어플리케이션이 상기 서비스 서버에서 실행되었을 때의 데스크탑 화면 정보-여기서, 상기 데스트탑 화면 정보는 상기 실행 화면 재현 정보를 포함함-를 상기 클라이언트 단말로 전송하는, 가상화 소프트웨어 서비스 장치.
  9. 제6항에 있어서,
    가상화 소프트웨어 서비스를 이용하는 회원들 각각에 할당된 보관 영역에 해당 회원의 파일들을 저장하는 파일 보관소; 및
    사용자 별로 각각 자신에 할당된 보관 영역에만 접근할 수 있도록, 클라이언트 단말이 사용자 자신에 할당된 보관 영역으로의 접근을 시도하는 경우 해당 보관 영역만을 상기 접근을 시도한 클라이언트 단말에 가상 드라이브 형태로 제공하는 액세스 관리부
    를 더 포함하는 가상화 소프트웨어 서비스 장치.
  10. 사용자 에이전트가 설치된 클라이언트 단말과, 상기 클라이언트 단말과 네트워크 연결되어 상기 클라이언트 단말로 가상화 소프트웨어 서비스를 제공하는 서비스 서버를 포함하는, 가상화 소프트웨어 서비스 시스템으로서,
    상기 사용자 에이전트는,
    상기 클라이언트 단말과 상기 서비스 서버 간에 상기 가상화 소프트웨어 서비스를 위한 네트워크 연결이 이루어진 경우, 상기 클라이언트 단말의 사용자가 이용 가능한 어플리케이션 리스트 정보를 상기 서비스 서버로부터 수신하고, 상기 수신된 어플리케이션 리스트 정보에 관한 GUI(Graphic User Interface)를 생성하여 상기 클라이언트 단말의 디스플레이 화면을 통해 표출하고,
    상기 서비스 서버는,
    상기 GUI를 통해 표출된 가용 어플리케이션 리스트 중 상기 사용자에 의해 선택된 어플리케이션의 실행 화면 재현 정보-여기서, 상기 실행 화면 재현 정보는, 어플리케이션의 실행 화면을 재현하기 위한 좌표 정보 및 함수 정보를 적어도 포함함-를 상기 사용자 에이전트로 전송하는,
    가상화 소프트웨어 서비스 시스템.
  11. 제10항에 있어서,
    상기 사용자 에이전트는,
    원격 데스크탑 프로토콜(Remote Desktop Protocol)을 통해, 상기 사용자에 의해 선택된 어플리케이션이 상기 서비스 서버에서 실행되었을 때의 데스크탑 화면 정보를 수신하되,
    상기 수신된 데스크탑 화면 정보 중에서 배경 화면과 전경 화면을 구분 식별함으로써, 상기 선택된 어플리케이션에 관한 실행 화면만을 상기 단말의 운영체제(Operating System)의 구동 환경 화면 상에서 오버레이시켜 표출하는,
    가상화 소프트웨어 서비스 시스템.
  12. 제10항에 있어서,
    상기 가용 어플리케이션 리스트 정보는, 상기 단말의 운영체제에서는 정상 실행될 수 없는 이기종 플랫폼의 어플리케이션들에 관한 리스트 정보인, 가상화 소프트웨어 서비스 시스템.
KR1020110133964A 2011-12-13 2011-12-13 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말 KR101326231B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110133964A KR101326231B1 (ko) 2011-12-13 2011-12-13 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110133964A KR101326231B1 (ko) 2011-12-13 2011-12-13 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말

Publications (2)

Publication Number Publication Date
KR20130067113A true KR20130067113A (ko) 2013-06-21
KR101326231B1 KR101326231B1 (ko) 2013-11-11

Family

ID=48863093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110133964A KR101326231B1 (ko) 2011-12-13 2011-12-13 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말

Country Status (1)

Country Link
KR (1) KR101326231B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160041353A (ko) * 2014-10-07 2016-04-18 포항공과대학교 산학협력단 가상 데스크탑 기반의 데이터 처리 장치 및 방법
KR102357163B1 (ko) * 2021-04-27 2022-02-08 김기범 후불 과금 형식을 기초로 하는 클라우드 컴퓨팅 시스템 및 그를 이용한 클라우드 컴퓨팅 서비스 제공 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323389A (ja) 2002-05-02 2003-11-14 Tsubasa System Co Ltd コミュニケーションエージェントシステム
KR100693346B1 (ko) * 2004-11-03 2007-03-09 마스터솔루션(주) 사용자별 맞춤형 가상 컴퓨팅 환경 제공 시스템 및 그 방법
KR100927821B1 (ko) * 2008-02-15 2009-11-23 가온미디어 주식회사 확장 저장 공간을 지원하는 모바일 단말기 및 운용 방법
KR20110006487A (ko) * 2009-07-14 2011-01-20 주식회사 케이티 리소스 가상화를 이용한 다중 터미널서비스 제공 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160041353A (ko) * 2014-10-07 2016-04-18 포항공과대학교 산학협력단 가상 데스크탑 기반의 데이터 처리 장치 및 방법
KR102357163B1 (ko) * 2021-04-27 2022-02-08 김기범 후불 과금 형식을 기초로 하는 클라우드 컴퓨팅 시스템 및 그를 이용한 클라우드 컴퓨팅 서비스 제공 방법

Also Published As

Publication number Publication date
KR101326231B1 (ko) 2013-11-11

Similar Documents

Publication Publication Date Title
US11838335B2 (en) Virtual computing system providing local screen sharing from hosted collaboration applications and related methods
US10915218B2 (en) Methods and systems for an intermediate graphical desktop sharing protocol
US9774658B2 (en) Orchestration framework for connected devices
US20210090568A1 (en) In-band voice-assistant/concierge for controlling online meetings
US11385930B2 (en) Automatic workflow-based device switching
US10976981B2 (en) Remote desktop exporting
US9740507B2 (en) Interacting with remote applications displayed within a virtual desktop of a tablet computing device
EP2151757A1 (en) Apparatus and method of supporting plurality of operating systems
KR20170000567A (ko) 가상 데스크탑 서비스를 위한 장치 및 방법
US9875099B2 (en) Computer-implemented method and system for executing android apps natively on any environment
KR20160092136A (ko) 가상 데스크탑 제공 방법 및 가상 데스크탑 제공 서버
WO2015176395A1 (zh) 虚拟桌面处理方法、装置及虚拟桌面服务器
KR101326231B1 (ko) 가상화 소프트웨어 서비스 시스템 및 이를 위한 서비스 서버 및 사용자단말
US11722550B2 (en) Sharing an input device between remote desktops of multiple client devices
US20160266915A1 (en) Systems and Methods for Providing an Emulation of a Computer Product
US8782310B1 (en) Use of mobile devices for user input and output
Holstein et al. Towards an architecture for an ui-compositor for multi-os environments

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: 20160928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 6