KR20120043942A - 소프트웨어 지원 시스템 및 그 방법 - Google Patents

소프트웨어 지원 시스템 및 그 방법 Download PDF

Info

Publication number
KR20120043942A
KR20120043942A KR1020100105254A KR20100105254A KR20120043942A KR 20120043942 A KR20120043942 A KR 20120043942A KR 1020100105254 A KR1020100105254 A KR 1020100105254A KR 20100105254 A KR20100105254 A KR 20100105254A KR 20120043942 A KR20120043942 A KR 20120043942A
Authority
KR
South Korea
Prior art keywords
software
information
virtual environment
execution
graphic
Prior art date
Application number
KR1020100105254A
Other languages
English (en)
Other versions
KR101430729B1 (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 KR1020100105254A priority Critical patent/KR101430729B1/ko
Priority to US13/270,434 priority patent/US20120110478A1/en
Publication of KR20120043942A publication Critical patent/KR20120043942A/ko
Application granted granted Critical
Publication of KR101430729B1 publication Critical patent/KR101430729B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Human Computer Interaction (AREA)

Abstract

본 발명은 서버 기반 컴퓨팅 환경에서 소프트웨어 가상화 기술을 이용하여 복수의 클라이언트에게 소프트웨어 서비스를 지원하는 시스템 및 방법에 관한 것이다. 본 발명의 대체적인 구성은 서버가 가상 환경에서 클라이언트의 자원을 이용하여 클라이언트의 요청에 의해 선택된 소프트웨어를 실행하고, 서버가 소프트웨어 실행에 따른 결과값으로 GUI, 그래픽 집중적인 작업 등을 추출하며, 서버가 추출된 결과값을 클라이언트에게 전송하는 과정으로 이루어진다. 본 발명에 따르면, 소프트웨어의 구동에 따라 가상화를 구현하기 때문에 기존 서버 기반 컴퓨팅보다 빠른 성능과 보다 많은 클라이언트를 수용할 수 있는 장점이 있다. 더불어, 서비스 도입 비용을 절감하는 효과도 얻을 수 있다.

Description

소프트웨어 지원 시스템 및 그 방법 {System and method for supporting software}
본 발명은 소프트웨어 서비스를 지원하는 시스템 및 방법에 관한 것으로서, 보다 상세하게는 서버 기반 컴퓨팅 환경에서 소프트웨어 가상화 기술을 이용하여 복수의 클라이언트에게 소프트웨어 서비스를 지원하는 시스템 및 방법에 관한 것이다.
최근 CPU 및 메모리 등 하드웨어 제작 기술의 발전으로 인하여 저가의 고성능 PC가 급속도로 보급되고 있다. 또한, 현재 PC의 컴퓨팅 능력은 초기의 슈퍼컴퓨터 수준으로 향상되었다. 데스크톱 소프트웨어(SW)들은 점점 더 화려한 사용자 인터페이스와 그래픽 집중적인 작업을 수용하도록 요구하고 있다. 또한, 그래픽 하드웨어 기술은 2D/3D, 멀티미디어와 같은 기존의 그래픽 집중적인 작업에 적용될 뿐만 아니라 웹 브라우저 렌더링, 플래시, 윈도우 운영체제까지 확대 적용되고 있다.
서버 기반의 컴퓨팅 환경은 PC 기반의 컴퓨팅 환경에서 발생하는 데이터 보안, PC의 관리 비용 등의 문제를 해결하기 위한 방안이다. 서버 기반 컴퓨팅 환경을 지원하는 기술로는 Citrix의 XenDesktop, VMWare의 VDI, Microsoft의 RDP(Remote Desktop Protocol)를 기반한 터미널 서비스 등이 있다.
하지만, 이러한 서버 기반 컴퓨팅은 서버에서 SW를 실행하고, 클라이언트 PC는 단순히 터미널 역할만을 수행함으로써 클라이언트 수가 늘어날수록 서버의 부하가 커진다. 또한, 서버에서 실행되는 결과 이미지를 클라이언트에 전송하는 방식을 사용함으로써 3D 렌더링과 같은 고성능 그래픽 작업을 처리하는 데에 한계점을 가진다. 따라서, 고사양 클라이언트 PC 자원의 낭비, 서버 부하에 따른 서비스 한계, 막대한 서버 구입 비용, 느린 서비스 성능 등의 단점을 가진다.
또한, 서버 기반 컴퓨팅에서는 OS에 종속적인 세션 관리 기술이나, 데스크톱 서비스에서는 가상 머신을 통하여 하나의 서버에서 다수의 사용자를 지원한다. 이는 제공하는 서버의 OS 종속성이나, 가상 머신의 부하로 인하여 서버의 도입 비용 및 관리의 제약 사항을 가진다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 서버 기반의 온라인 소프트웨어 서비스를 다수의 클라이언트에게 제공하기 위해 분할 실행 SW 수준의 SW 가상화를 제공하여 SW를 서버에서 실행하고, 그래픽 작업은 클라이언트에서 수행되게 하는 소프트웨어 지원 시스템 및 그 방법을 제공함을 목적으로 한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 요청된 소프트웨어를 사용자마다 독립된 가상 환경에서 실행시키는 소프트웨어 실행부; 실행된 소프트웨어로부터 그래픽 처리와 관련한 그래픽 정보를 추출하는 그래픽 정보 추출부; 및 제2 기기가 추출된 그래픽 정보를 처리하도록 제어하고, 제1 기기가 추출된 그래픽 정보를 제외한 나머지 정보를 처리하도록 제어하는 소프트웨어 실행 제어부를 포함하는 것을 특징으로 하는 소프트웨어 지원 시스템을 제공한다.
바람직하게는, 상기 제1 기기는 소프트웨어 지원 서비스를 제공하는 것으로서, 상기 소프트웨어 실행부, 상기 그래픽 정보 추출부, 및 상기 소프트웨어 실행 제어부를 구비하는 소프트웨어 지원 서버이고, 상기 제2 기기는 상기 소프트웨어 지원 서버와 통신하는 클라이언트 단말이다. 더욱 바람직하게는, 상기 소프트웨어 지원 시스템은 추출된 그래픽 정보를 상기 제2 기기로 전송하는 그래픽 정보 전송부를 더욱 포함하며, 상기 제2 기기는 내장된 그래픽 정보 처리부를 통해 수신된 그래픽 정보를 처리한다.
바람직하게는, 상기 소프트웨어 실행부는, 사용자 정보를 이용하여 사용자마다 요청된 소프트웨어의 설정 정보가 저장되어 있는지 여부를 판별하는 설정 정보 저장 판별부; 설정 정보가 저장되어 있으면 설정 정보에서 요청된 소프트웨어의 가상 환경 정보를 추출하며, 설정 정보가 저장되어 있지 않으면 요청된 소프트웨어의 기본 설정에 기초한 가상 환경 정보를 추출하는 가상 환경 정보 처리부; 및 추출된 가상 환경 정보를 고려하여 사용자마다 독립된 가상 환경에서 요청된 소프트웨어를 실행시키는 요청 소프트웨어 실행부를 포함한다. 더욱 바람직하게는, 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원에 독립된 가상 환경이 획득되면, 상기 요청 소프트웨어 실행부는, 실행 요청된 소프트웨어가 발생시키는 자원 입출력 신호를 처리할 때에 상기 자원을 공유하는 다른 소프트웨어에 사이드 이펙트(side effect)를 발생시키지 않게 상기 입출력 신호를 처리하여 요청된 소프트웨어를 실행시키는 입출력 신호 처리부를 포함한다.
바람직하게는, 상기 소프트웨어 지원 시스템은 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버에 구비되는 것으로서, 사용자마다 상기 서버의 자원(리소스)에 독립된 가상 환경을 생성하는 가상 환경 생성부를 더욱 포함한다.
또한, 본 발명은 요청된 소프트웨어를 사용자마다 독립된 가상 환경에서 실행시키는 소프트웨어 실행 단계; 실행된 소프트웨어로부터 그래픽 처리와 관련한 그래픽 정보를 추출하는 그래픽 정보 추출 단계; 및 제2 기기가 추출된 그래픽 정보를 처리하도록 제어하고, 제1 기기가 추출된 그래픽 정보를 제외한 나머지 정보를 처리하도록 제어하는 소프트웨어 실행 제어 단계를 포함하는 것을 특징으로 하는 소프트웨어 지원 방법을 제공한다.
바람직하게는, 상기 제1 기기는 소프트웨어 지원 서비스를 제공하는 것으로서, 상기 소프트웨어 실행 단계, 상기 그래픽 정보 추출 단계, 및 상기 소프트웨어 실행 제어 단계를 순차적으로 구현하는 소프트웨어 지원 서버이고, 상기 제2 기기는 상기 소프트웨어 지원 서버와 통신하는 클라이언트 단말이며, 상기 소프트웨어 실행 제어 단계는, 추출된 그래픽 정보를 상기 제2 기기로 전송하는 그래픽 정보 전송 단계를 포함한다. 더욱 바람직하게는, 상기 소프트웨어 지원 방법은 상기 제2 기기가 내장된 그래픽 정보 처리부를 통해 수신된 그래픽 정보를 처리하는 그래픽 정보 처리 단계를 더욱 포함한다.
바람직하게는, 상기 소프트웨어 실행 단계는, 사용자 정보를 이용하여 사용자마다 요청된 소프트웨어의 설정 정보가 저장되어 있는지 여부를 판별하는 설정 정보 저장 판별 단계; 설정 정보가 저장되어 있으면 설정 정보에서 요청된 소프트웨어의 가상 환경 정보를 추출하며, 설정 정보가 저장되어 있지 않으면 요청된 소프트웨어의 기본 설정에 기초한 가상 환경 정보를 추출하는 가상 환경 정보 처리 단계; 및 추출된 가상 환경 정보를 고려하여 사용자마다 독립된 가상 환경에서 요청된 소프트웨어를 실행시키는 요청 소프트웨어 실행 단계를 포함한다. 더욱 바람직하게는, 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원에 독립된 가상 환경이 획득되면, 상기 요청 소프트웨어 실행 단계는, 실행 요청된 소프트웨어가 발생시키는 자원 입출력 신호를 처리할 때에 상기 자원을 공유하는 다른 소프트웨어에 사이드 이펙트(side effect)를 발생시키지 않게 상기 입출력 신호를 처리하여 요청된 소프트웨어를 실행시킨다.
바람직하게는, 상기 소프트웨어 지원 방법은 사용자마다 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원(리소스)에 독립된 가상 환경을 생성하는 가상 환경 생성 단계를 더욱 포함한다.
본 발명은 서버 기반의 온라인 SW 서비스를 다수의 클라이언트에게 제공하기 위해 분할 실행 SW 수준의 SW 가상화를 제공하여 SW를 서버에서 실행하고, 그래픽 작업은 클라이언트에서 수행되게 함으로써 다음과 같은 효과를 얻을 수 있다. 첫째, 실제 구동되는 SW를 가상 실행 환경 위에서 가상화(virtualization)하기 때문에, 좀더 많은 사용자를 수용할 수 있고, 초기 서비스 도입 비용을 절감할 수 있다. 둘째, 3D 렌더링과 같은 그래픽 장치(GPU)를 많이 사용하는 응용에서는 분할 실행의 경우 클라이언트의 그래픽 장치를 사용하므로 그래픽 장치를 공유하여 사용하는 서버 기반 컴퓨팅보다 빠른 성능으로 많은 수의 클라이언트를 처리할 수 있다. 세째, 서버에 의해 이미 작업된 결과 이미지를 단순히 표시할 때보다 클라이언트 그래픽 장치의 성능을 최대한 발휘할 수 있는 그래픽을 표시할 수 있다. 네째, 분할 실행 기술을 이용하면 해당 분할 실행 SW의 화면만 표시할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 소프트웨어 지원 시스템을 개략적으로 도시한 블록도이다.
도 2는 소프트웨어 지원 시스템을 구성하는 각 구성부의 세부 구성을 도시한 블록도이다.
도 3은 본 실시예에 따라 다수의 클라이언트 사용자를 지원하는 서버 기반 SW 서비스를 개념화한 도면이다.
도 4는 본 실시예에 따라 분할 실행 SW가 서버 자원에 독립적인 가상화 실행 환경을 이용하여 구동되는 구조도이다.
도 5는 분할 실행 SW가 서버에서 실행되는 방법에 대한 구체적인 실시예이다.
도 6은 분할 실행 SW가 서버에서 실행하여 클라이언트에 표시되는 방법에 대한 구체적인 실시예이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 소프트웨어 지원 시스템을 개략적으로 도시한 블록도이다. 도 2는 소프트웨어 지원 시스템을 구성하는 각 구성부의 세부 구성을 도시한 블록도이다. 도 1에 따르면, 소프트웨어 지원 시스템(100)은 소프트웨어 실행부(110), 그래픽 정보 추출부(120), 소프트웨어 실행 제어부(130) 및 주제어부(140)를 포함한다.
본 실시예는 소프트웨어 지원 서비스를 제공할 때에 시스템 부하를 고려하여 통상의 데이터 집중적 작업은 서버 자원을 이용하여 가상 환경을 설정한 뒤 이 가상 환경에서 소프트웨어 지원 서비스를 제공하고, 그래픽 작업과 같이 고성능을 요구하는 서비스는 클라이언트 자원(ex. 클라이언트의 그래픽 처리 장치)을 이용하여 처리하는 구성을 가진다.
소프트웨어 실행부(110)는 요청된 소프트웨어를 사용자마다 독립된 가상 환경에서 실행시키는 기능을 수행한다. 본 실시예에서 소프트웨어 실행부(110)는 도 2의 (a)에 도시된 바와 같이 설정 정보 저장 판별부(111), 가상 환경 정보 처리부(112) 및 요청 소프트웨어 실행부(113)를 포함한다.
설정 정보 저장 판별부(111)는 사용자 정보를 이용하여 사용자마다 요청된 소프트웨어의 설정 정보가 저장되어 있는지 여부를 판별하는 기능을 수행한다. 가상 환경 정보 처리부(112)는 설정 정보가 저장되어 있으면 설정 정보에서 요청된 소프트웨어의 가상 환경 정보를 추출하며, 설정 정보가 저장되어 있지 않으면 요청된 소프트웨어의 기본 설정에 기초한 가상 환경 정보를 추출하는 기능을 수행한다. 요청 소프트웨어 실행부(113)는 추출된 가상 환경 정보를 고려하여 사용자마다 독립된 가상 환경에서 요청된 소프트웨어를 실행시키는 기능을 수행한다.
소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원(resource)에 독립된 가상 환경이 획득된 경우를 고려할 때, 요청 소프트웨어 실행부(113)는 입출력 신호 처리부(113a)를 포함할 수 있다. 실행 요청된 소프트웨어가 발생시키는 자원에 대한 입출력 신호를 처리할 때에, 입출력 신호 처리부(113a)는 자원을 공유하는 다른 소프트웨어에 사이드 이펙트(side effect)를 발생시키지 않게 입출력 신호를 처리하여 요청된 소프트웨어를 실행시키는 기능을 수행한다.
한편, 본 실시예에서는 소프트웨어 실행부(110)의 이러한 구성을 고려하여 설정 정보 저장부(114)를 더욱 포함할 수 있다. 설정 정보 저장부(114)는 소프트웨어를 실행시키기 위한 가상 환경 정보를 포함한 소프트웨어의 설정 정보를 저장하며, 소프트웨어를 더욱 저장할 수 있다.
그래픽 정보 추출부(120)는 실행된 소프트웨어로부터 그래픽 처리와 관련한 그래픽 정보를 추출하는 기능을 수행한다.
소프트웨어 실행 제어부(130)는 제2 기기가 추출된 그래픽 정보를 처리하도록 제어하고, 제1 기기가 추출된 그래픽 정보를 제외한 나머지 정보를 처리하도록 제어하는 기능을 수행한다.
본 실시예에서 소프트웨어 실행부(110), 그래픽 정보 추출부(120) 및 소프트웨어 실행 제어부(130)는 소프트웨어 서비스를 지원하는 소프트웨어 지원 서버에 구비될 수 있다. 이때, 제1 기기는 소프트웨어 지원 서버를 의미하며, 제2 기기는 서버에 접속된 클라이언트 단말을 의미한다.
소프트웨어 실행 제어부(130)는 도 2의 (b)에 도시된 바와 같이 그래픽 정보 전송부(131)를 포함할 수 있다. 그래픽 정보 전송부(131)는 추출된 그래픽 정보를 제2 기기로 전송하는 기능을 수행한다.
소프트웨어 지원 서버가 처리하는 프로세스는 예컨대 데이터 집중적 작업이며, 클라이언트 단말이 처리하는 프로세스는 예컨대 3D 렌더링과 같은 그래픽 집중적 작업이다. 이 경우, 클라이언트 단말은 내장된 그래픽 정보 처리부를 통해 수신된 그래픽 정보를 처리한다.
소프트웨어 지원 시스템(100)은 소프트웨어를 실행시킬 때에 이용되는 가상 환경을 생성하는 가상 환경 생성부(150)를 더욱 포함할 수 있다. 가상 환경 생성부(150)는 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버에 구비되는 것으로서, 사용자마다 소프트웨어 지원 서버의 자원(resource)에 독립된 가상 환경을 생성하는 기능을 수행한다.
다음으로, 본 실시예에 따른 소프트웨어 지원 시스템을 실제 구현 가능성을 고려하여 일실시예를 들어 설명한다.
본 실시예에 따른 소프트웨어 지원 시스템은 온라인 SW 서비스 환경에서 다수의 사용자를 지원하는 시스템으로서, 온라인 네트워크 환경에서 데스크톱 SW를 서버에서 서비스로 제공함에 있어서 다수의 클라이언트 사용자에게 다수의 SW 서비스를 제공하기 위한 응용 프로그램 프로세스 단위의 가상화를 지원한다. 이하에서는 서버 기반의 온라인 SW 서비스를 제공함에 있어서, SW 수준의 가상화를 지원하는 SW 가상 실행 환경을 이용하여 다수의 사용자에 의한 다수의 SW를 서비스하는 서버 제공 방법에 대하여 설명한다. 또한, 3D 렌더링과 같은 그래픽 집중적인 작업들은 클라이언트에서 실행하고, 데이터 집중적인 작업들은 서버에서 처리하는 SW 분할 실행 방법을 통하여 서버에 집중되는 부하를 줄이고, 클라이언트에서 처리 및 관리되는 사용자 데이터에 대한 보안을 제공하는 방법에 대하여 설명한다.
서버 기반의 온라인 SW 서비스에서 다수의 사용자에게 다수의 분할 실행 SW를 제공하는 방법은 다음과 같이 요약될 수 있다. 먼저 제1 단계에서, 클라이언트가 서버에게 분할 실행 SW 실행을 요청한다. 이후 제2 단계에서, 서버에서 사용자 관리 모듈을 통하여 실행 요청된 SW의 이전 저장된 설정 정보를 복구하고, 복구된 설정 정보를 이용하여 분할 실행 SW를 해당 서버 자원에 독립적인 가상 실행 환경에서 실행한다. 이러한 기능은 도 1의 소프트웨어 실행부(110)가 수행한다. 이때, 해당 서버 자원으로는 예컨대 파일, 레지스트리, 그 외의 리소스 등이 있다. 이후 제3 단계에서, 실행된 분할 실행 SW의 그래픽 사용자 인터페이스나 3D 렌더링과 같은 그래픽 집중적인 작업을 해당 사용자 클라이언트에 전송하기 위해 추출한다. 이러한 기능은 도 1의 그래픽 정보 추출부(120)가 수행한다. 이후 제4 단계에서, 서버에서 그래픽 작업을 압축 및 암호화하여 클라이언트에게 전송한다. 이 기능은 도 2의 그래픽 정보 전송부(131)가 수행한다. 이후 제5 단계에서, 서버로부터 전송받은 압축 및 암호화된 그래픽 작업을 해제하여 클라이언트에서 실행하여 표시한다.
도 3은 다수의 클라이언트 사용자를 지원하는 서버 기반 SW 서비스의 분할 실행 장치의 개념도를 도시한 것이다. 분할 실행에 의한 SW 서비스는 분할 실행 SW 서버(300)와 분할 실행 SW 클라이언트(350)로 구분된다.
분할 실행 SW 서버(300)는 분할 실행 SW 관리부(320), 제1 장치 관리부(330), 제1 연결 관리부(340) 등을 포함한다. 분할 실행 SW 관리부(320)는 클라이언트의 요청을 받아서 분할 실행 SW의 실행 및 종료를 관리한다. 도 1에서 이러한 기능은 소프트웨어 실행부(110)가 수행한다. 분할 실행 SW 관리부(320)는 사용자 관리 모듈(321), 프로세스 관리 모듈(322), SW 설정 저장소(323) 등을 포함한다. 사용자 관리 모듈(321)은 다수의 사용자를 관리하기 위한 것이다. 프로세스 관리 모듈(322)은 구동되는 분할 실행 SW 프로세스를 추적 관리한다. SW 설정 저장소(323)는 사용자별로 사용한 SW의 최종 설정 정보를 저장한다. 제1 장치 관리부(330)는 그래픽 작업 추출부(332)와 클라이언트 입력 처리부(331)를 포함한다. 그래픽 작업 추출부(332)는 클라이언트에 전송할 분할 실행 SW의 그래픽 작업을 추출한다. 도 1에서 이러한 기능은 그래픽 정보 추출부(120)가 수행한다. 클라이언트 입력 처리부(331)는 클라이언트에서 전송한 입력을 처리한다. 제1 연결 관리부(340)는 그래픽 작업 송신부(342)와 클라이언트 입력 수신부(341)를 포함한다. 그래픽 작업 송신부(342)는 분할 실행 SW의 그래픽 작업을 클라이언트에 전송한다. 도 2에서 이러한 기능은 그래픽 정보 전송부(131)가 수행한다. 클라이언트 입력 수신부(341)는 클라이언트가 전송한 입력 정보를 수신한다.
분할 실행 SW 클라이언트(350)는 분할 실행 SW 실행부(360), 제2 장치 관리부(370), 제2 연결 관리부(380) 등을 포함한다. 분할 실행 SW 실행부(360)는 서버의 분할 실행 SW 실행을 요청한다. 제2 장치 관리부(370)는 클라이언트 입력 추출부(371)와 그래픽 작업 표시부(372)를 포함한다. 클라이언트 입력 추출부(371)는 클라이언트에서 발생한 키보드, 마우스 등의 입력 정보를 추출한다. 그래픽 작업 표시부(372)는 서버에서 받은 그래픽 작업을 처리해서 화면에 표시한다. 제2 연결 관리부(380)는 클라이언트 입력 송신부(381)와 그래픽 작업 수신부(382)를 포함한다. 클라이언트 입력 송신부(381)는 사용자 입력을 서버에 전달한다. 그래픽 작업 수신부(382)는 서버에서 보낸 그래픽 작업을 수신한다.
한편, 분할 실행 SW(311)는 서버(310)에서 실행되지만 실행 결과 및 사용자 인터페이스는 분할 실행 SW 실행부(360)에 의해 클라이언트(350)에 표시된다. 따라서, 분할 실행 SW의 실행에 있어서 서버의 그래픽 장치는 사용되지 않고, 클라이언트의 그래픽 장치만 사용된다.
분할 실행 서버가 다수의 사용자가 요청한 분할 실행 SW를 서비스하기 위해서는 분할 실행 서버 시스템에 설치된 SW가 아니고, 서버 시스템 자원에 독립적인 가상 실행 환경(310)에서 분할 실행 SW(311)를 구동할 필요가 있다. 본 실시예에서는 분할 실행 SW 관리부(320)의 SW 설정 저장소(323), 프로세스 관리 모듈(322)를 이용하여 사용자의 SW 설정 변경 사항을 독립적으로 적용하여 실행할 수 있다. 도 2에서는 이러한 기능을 가상 환경 정보 처리부(112)가 수행한다. 또한, 제1 장치 관리부(330)의 그래픽 작업 추출부(332)에서는 분할 실행 관리부(320)의 사용자 관리 모듈(321)과 프로세스 관리 모듈(322)의 정보를 이용하여 특정 분할 실행 클라이언트(350)의 사용자가 실행 요청한 분할 실행 SW(311)의 그래픽 작업 정보를 추출하여 해당 클라이언트로 송신할 수 있게 한다. 마찬가지로, 분할 실행 클라이언트(350)로부터 송신된 사용자 입력도 적절히 가상 실행 환경(310)에서 구동되고 있는 분할 실행 SW(311)로 전달할 수 있다. 이를 통하여 본 실시예에서는 다수의 사용자가 동일한 SW를 사용할 수 있는 환경을 제공한다.
도 4는 분할 실행 SW가 서버 자원에 독립적인 가상화 실행 환경을 이용하여 구동되는 구조도이다. 가상 실행 환경(420)은 분할 실행 서버의 시스템 리소스(430)의 일부를 이용하여 분할 실행 SW(410)를 시스템 리소스(430)에 독립적으로 구동하는 가상 환경을 제공한다. 분할 실행 SW(410)가 동작하면 다양한 시스템 리소스(430)에 대한 I/O를 발생시킨다. 가상 실행 환경(420)은 발생된 리소스 I/O를 기초로 리소스를 적절히 처리하여 시스템 리소스(430)을 공유하는 다양한 SW에 부가 영향(side-effect)를 발생시키지 않고 SW를 구동하게 한다. 도 2에서 이러한 기능은 요청 소프트웨어 실행부(113)의 입출력 신호 처리부(113b)가 수행한다. 또한, 사용자별로 저장되는 SW 설정 저장소의 정보를 이용하여 사용자가 사용하던 분할 실행 SW의 설정을 연속적으로 사용 가능하게 한다. 이를 통하여, 다수의 분할 실행 클라이언트 사용자가 동일한 분할 실행 SW를 사용함에 있어 클라이언트 고유의 설정 및 SW 동작 상태에 영향을 받지 않고 사용할 수 있게 한다.
도 5와 도 6은 본 발명의 바람직한 실시예에 따른 소프트웨어 지원 방법을 구체적으로 도시한 순서도이다. 자세하게는, 도 5는 분할 실행 SW가 서버에서 실행되는 방법에 대한 구체적인 실시예이다. 그리고, 도 6은 분할 실행 SW가 서버에서 실행하여 클라이언트에 표시되는 방법에 대한 구체적인 실시예이다. 이하 설명은 도 5와 도 6을 참조한다.
도 5를 참조하면, 분할 실행 SW 서버를 가동하고(S501), 분할 실행 SW 관리부를 시작하면(S502), 분할 실행 클라이언트의 접속 요청(S503)을 받고, 적절한 사용자 인증 과정을 통하여 처리할 수 있다. 접속한 분할 실행 클라이언트(350)의 분할 실행 SW 실행 요청(S504)에 대하여, 분할 실행 SW 관리부는 분할 실행 서버 시스템의 리소스를 검사하고 가상 실행 환경을 할당한다(S505). 이후, SW 설정 저장소로부터 해당 사용자의 SW 설정 정보를 복구하고(S506), 분할 실행 SW를 가상 실행 환경 위에서 실행한다(S507). 실행된 분할 실행 SW의 프로세스 정보는 분할 실행 SW 관리부의 프로세스 관리부로 저장된다. 실행된 분할 실행 SW는 서버 화면에 표시되지 않고 그래픽 작업 추출부에 의해 클라이언트가 실행 요청한 분할 실행 SW별로 그래픽 작업 정보가 추출된다(S508). 추출된 정보는 클라이언트에 보내지기 위해 압축 및 암호화되고(S509), 그래픽 작업 송신부에 의해 실행 요청한 특정 분할 실행 SW 클라이언트에 전송된다(S510). 또한, 분할 실행 SW 클라이언트로부터 분할 실행 SW 종료 요청이 들어오면, 분할 실행 SW가 사용한 최종 설정 정보를 SW 설정 저장소에 저장하고, 가상 실행 환경을 위하여 할당된 시스템 리소스를 해제하고 분할 실행 SW를 종료한다.
도 6을 참조하면, 분할 실행 SW 클라이언트를 가동하고(S601), 분할 실행 SW 실행부를 시작하면(S602), 분할 실행 SW 서버의 분할 실행 SW 관리부에 접속하여(S603) 사용 가능한 분할 실행 SW 목록을 가져온다. 사용자가 분할 실행 SW를 선택하면 분할 실행 SW 실행 요청을 서버에 전송한다(S604). 요청에 대한 서버의 처리 과정은 도 5를 참조한다. 서버로부터 전달받은 그래픽 작업을 그래픽 작업 수신부에서 수신하고(S605), 해당 정보의 암호화 및 압축을 해제하면(S606), 그래픽 작업 표시부는 서버에서 실행하는 분할 실행 SW의 사용자 인터페이스 및 그래픽 작업을 클라이언트에 표시한다(S607).
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 온라인 네트워크 환경에서 다수의 사용자에게 소프트웨어 서비스를 지원할 때에 적용될 수 있다.
100 : 소프트웨어 지원 시스템 110 : 소프트웨어 실행부
111 : 설정 정보 저장 판별부 112 : 가상 환경 정보 처리부
113 : 요청 소프트웨어 실행부 113a : 입출력 신호 처리부
114 : 설정 정보 저장부 120 : 그래픽 정보 추출부
130 : 소프트웨어 실행 제어부 131 : 그래픽 정보 전송부
140 : 주제어부 150 : 가상 환경 생성부

Claims (12)

  1. 요청된 소프트웨어를 사용자마다 독립된 가상 환경에서 실행시키는 소프트웨어 실행부;
    실행된 소프트웨어로부터 그래픽 처리와 관련한 그래픽 정보를 추출하는 그래픽 정보 추출부; 및
    제2 기기가 추출된 그래픽 정보를 처리하도록 제어하고, 제1 기기가 추출된 그래픽 정보를 제외한 나머지 정보를 처리하도록 제어하는 소프트웨어 실행 제어부
    를 포함하는 것을 특징으로 하는 소프트웨어 지원 시스템.
  2. 제 1 항에 있어서,
    상기 제1 기기는 소프트웨어 지원 서비스를 제공하는 것으로서, 상기 소프트웨어 실행부, 상기 그래픽 정보 추출부, 및 상기 소프트웨어 실행 제어부를 구비하는 소프트웨어 지원 서버이고, 상기 제2 기기는 상기 소프트웨어 지원 서버와 통신하는 클라이언트 단말인 것을 특징으로 하는 소프트웨어 지원 시스템.
  3. 제 1 항에 있어서,
    상기 소프트웨어 실행부는,
    사용자 정보를 이용하여 사용자마다 요청된 소프트웨어의 설정 정보가 저장되어 있는지 여부를 판별하는 설정 정보 저장 판별부;
    설정 정보가 저장되어 있으면 설정 정보에서 요청된 소프트웨어의 가상 환경 정보를 추출하며, 설정 정보가 저장되어 있지 않으면 요청된 소프트웨어의 기본 설정에 기초한 가상 환경 정보를 추출하는 가상 환경 정보 처리부; 및
    추출된 가상 환경 정보를 고려하여 사용자마다 독립된 가상 환경에서 요청된 소프트웨어를 실행시키는 요청 소프트웨어 실행부
    를 포함하는 것을 특징으로 하는 소프트웨어 지원 시스템.
  4. 제 2 항에 있어서,
    추출된 그래픽 정보를 상기 제2 기기로 전송하는 그래픽 정보 전송부
    를 더욱 포함하며,
    상기 제2 기기는 내장된 그래픽 정보 처리부를 통해 수신된 그래픽 정보를 처리하는 것을 특징으로 하는 소프트웨어 지원 시스템.
  5. 제 1 항에 있어서,
    소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버에 구비되는 것으로서, 사용자마다 상기 서버의 자원에 독립된 가상 환경을 생성하는 가상 환경 생성부
    를 더욱 포함하는 것을 특징으로 하는 소프트웨어 지원 시스템.
  6. 제 3 항에 있어서,
    소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원에 독립된 가상 환경이 획득되면, 상기 요청 소프트웨어 실행부는,
    요청된 소프트웨어가 발생시키는 자원에 대한 입출력 신호를 처리할 때에, 상기 자원을 공유하는 다른 소프트웨어에 사이드 이펙트(side effect)를 발생시키지 않게 상기 입출력 신호를 처리하여 요청된 소프트웨어를 실행시키는 입출력 신호 처리부
    를 포함하는 것을 특징으로 하는 소프트웨어 지원 시스템.
  7. 요청된 소프트웨어를 사용자마다 독립된 가상 환경에서 실행시키는 소프트웨어 실행 단계;
    실행된 소프트웨어로부터 그래픽 처리와 관련한 그래픽 정보를 추출하는 그래픽 정보 추출 단계; 및
    제2 기기가 추출된 그래픽 정보를 처리하도록 제어하고, 제1 기기가 추출된 그래픽 정보를 제외한 나머지 정보를 처리하도록 제어하는 소프트웨어 실행 제어 단계
    를 포함하는 것을 특징으로 하는 소프트웨어 지원 방법.
  8. 제 7 항에 있어서,
    상기 제1 기기는 소프트웨어 지원 서비스를 제공하는 것으로서, 상기 소프트웨어 실행 단계, 상기 그래픽 정보 추출 단계, 및 상기 소프트웨어 실행 제어 단계를 순차적으로 구현하는 소프트웨어 지원 서버이고, 상기 제2 기기는 상기 소프트웨어 지원 서버와 통신하는 클라이언트 단말이며,
    상기 소프트웨어 실행 제어 단계는,
    추출된 그래픽 정보를 상기 제2 기기로 전송하는 그래픽 전송 단계
    를 더욱 포함하는 것을 특징으로 하는 소프트웨어 지원 방법.
  9. 제 7 항에 있어서,
    상기 소프트웨어 실행 단계는,
    사용자 정보를 이용하여 사용자마다 요청된 소프트웨어의 설정 정보가 저장되어 있는지 여부를 판별하는 설정 정보 저장 판별 단계;
    설정 정보가 저장되어 있으면 설정 정보에서 요청된 소프트웨어의 가상 환경 정보를 추출하며, 설정 정보가 저장되어 있지 않으면 요청된 소프트웨어의 기본 설정에 기초한 가상 환경 정보를 추출하는 가상 환경 정보 처리 단계; 및
    추출된 가상 환경 정보를 고려하여 사용자마다 독립된 가상 환경에서 요청된 소프트웨어를 실행시키는 요청 소프트웨어 실행 단계
    를 포함하는 것을 특징으로 하는 소프트웨어 지원 방법.
  10. 제 8 항에 있어서,
    상기 제2 기기가 내장된 그래픽 정보 처리부를 통해 수신된 그래픽 정보를 처리하는 그래픽 정보 처리 단계
    를 더욱 포함하는 것을 특징으로 하는 소프트웨어 지원 방법.
  11. 제 7 항에 있어서,
    사용자마다 소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원에 독립된 가상 환경을 생성하는 가상 환경 생성 단계
    를 더욱 포함하는 것을 특징으로 하는 소프트웨어 지원 방법.
  12. 제 9 항에 있어서,
    소프트웨어 지원 서비스를 제공하는 소프트웨어 지원 서버의 자원에 독립된 가상 환경이 획득되면, 상기 요청 소프트웨어 실행 단계는 요청된 소프트웨어가 발생시키는 자원에 대한 입출력 신호를 처리할 때에 상기 자원을 공유하는 다른 소프트웨어에 사이드 이펙트(side effect)를 발생시키지 않게 상기 입출력 신호를 처리하여 요청된 소프트웨어를 실행시키는 것을 특징으로 하는 소프트웨어 지원 방법.
KR1020100105254A 2010-10-27 2010-10-27 소프트웨어 지원 서버 및 그 방법 KR101430729B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100105254A KR101430729B1 (ko) 2010-10-27 2010-10-27 소프트웨어 지원 서버 및 그 방법
US13/270,434 US20120110478A1 (en) 2010-10-27 2011-10-11 System and method for supporting software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100105254A KR101430729B1 (ko) 2010-10-27 2010-10-27 소프트웨어 지원 서버 및 그 방법

Publications (2)

Publication Number Publication Date
KR20120043942A true KR20120043942A (ko) 2012-05-07
KR101430729B1 KR101430729B1 (ko) 2014-08-14

Family

ID=45998055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100105254A KR101430729B1 (ko) 2010-10-27 2010-10-27 소프트웨어 지원 서버 및 그 방법

Country Status (2)

Country Link
US (1) US20120110478A1 (ko)
KR (1) KR101430729B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401937B1 (ko) * 2012-08-28 2014-05-30 에스케이플래닛 주식회사 플러그인 방식의 화면 가상화 제공 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140070200A (ko) * 2012-11-30 2014-06-10 한국전자통신연구원 소프트웨어 분할 실행을 위한 스레드 관리 장치 및 방법
WO2014137008A1 (ko) * 2013-03-06 2014-09-12 팬터로그 주식회사 그래픽 자원 공유 시스템 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650603B2 (en) 2005-07-08 2010-01-19 Microsoft Corporation Resource management for virtualization of graphics adapters
KR101026759B1 (ko) * 2008-08-26 2011-04-08 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법
US8453144B1 (en) * 2008-09-23 2013-05-28 Gogrid, LLC System and method for adapting a system configuration using an adaptive library
US20100115510A1 (en) * 2008-11-03 2010-05-06 Dell Products, Lp Virtual graphics device and methods thereof
US20100134494A1 (en) * 2008-12-02 2010-06-03 Electronics And Telecommunications Research Institute Remote shading-based 3d streaming apparatus and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401937B1 (ko) * 2012-08-28 2014-05-30 에스케이플래닛 주식회사 플러그인 방식의 화면 가상화 제공 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140070200A (ko) * 2012-11-30 2014-06-10 한국전자통신연구원 소프트웨어 분할 실행을 위한 스레드 관리 장치 및 방법
WO2014137008A1 (ko) * 2013-03-06 2014-09-12 팬터로그 주식회사 그래픽 자원 공유 시스템 및 방법

Also Published As

Publication number Publication date
KR101430729B1 (ko) 2014-08-14
US20120110478A1 (en) 2012-05-03

Similar Documents

Publication Publication Date Title
US11029990B2 (en) Delivering a single end user experience to a client from multiple servers
KR101740327B1 (ko) 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법
US9244700B2 (en) Methods and systems for delivering applications from a desktop operating system
US9507618B2 (en) Virtual machine system supporting a large number of displays
US9213544B2 (en) Desktop shadowing in a virtual desktop infrastructure environment
US20210224100A1 (en) Virtual machine migration using multiple, synchronized streams of state data
US11842209B2 (en) High-performance processing in a virtualization environment
US8959514B2 (en) Virtual machine monitor display split using multiple client devices in a virtualization system
KR20140027741A (ko) 응용 서비스 제공 시스템 및 방법, 응용 서비스를 위한 서버 장치 및 클라이언트 장치
US9519493B2 (en) Populating a client device with graphical images specific to a machine
EP3301574B1 (en) Method for managing graphic cards in a computing system
CN108255547B (zh) 一种应用程序控制方法及装置
KR101430729B1 (ko) 소프트웨어 지원 서버 및 그 방법
KR101694295B1 (ko) 소프트웨어 분할 실행을 위한 스레드 관리 장치 및 방법
KR101316677B1 (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
US11196817B1 (en) Intelligently managing resource utilization in desktop virtualization environments
Liu et al. A VM-shared desktop virtualization system based on OpenStack
KR101899262B1 (ko) 가상화 화면 최적화 시스템 및 방법
KR101709117B1 (ko) 그래픽 분할 실행을 위한 가상화 방법 및 그 장치
Bogdanov et al. Building a virtual cluster for 3D graphics applications
Smirnov et al. Cloud environments with GPU virtualization: problems and solutions
KR20150089686A (ko) 그래픽 분할 실행을 이용한 온라인 3d sw 실시간 협업 서비스를 제공하는 방법 및 그 장치
Al-Mekhlal et al. Collaborative Environment with Application Virtualization (CEAV) for Upstream environment
Boretskyi et al. Rainbow framework: Running virtual machines on demand as a grid jobs
KR102419972B1 (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
FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180807

Year of fee payment: 5

R401 Registration of restoration