KR20040053573A - 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법 - Google Patents

가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법 Download PDF

Info

Publication number
KR20040053573A
KR20040053573A KR1020020080679A KR20020080679A KR20040053573A KR 20040053573 A KR20040053573 A KR 20040053573A KR 1020020080679 A KR1020020080679 A KR 1020020080679A KR 20020080679 A KR20020080679 A KR 20020080679A KR 20040053573 A KR20040053573 A KR 20040053573A
Authority
KR
South Korea
Prior art keywords
server
vdm
application
user
application program
Prior art date
Application number
KR1020020080679A
Other languages
English (en)
Other versions
KR100527874B1 (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 KR10-2002-0080679A priority Critical patent/KR100527874B1/ko
Publication of KR20040053573A publication Critical patent/KR20040053573A/ko
Application granted granted Critical
Publication of KR100527874B1 publication Critical patent/KR100527874B1/ko

Links

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

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

Abstract

본 발명은 기존 응용 프로그램의 호환성을 완벽하게 유지하면서, 서버 기반 컴퓨터의 관리 효율성과 중앙 집중 관리 및 소프트웨어의 오류를 제거할 수 있는 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법에 관한 것이다. 이를 위해, 응용프로그램의 실행이 이루어지고 실행결과가 실시간으로 출력되는 응용프로그램 실행수단 및 실행에 필요한 소정의 프로그램을 VDM클라이언트(300)로부터 다운로드받고, 실행에 필요한 잔여 프로그램을 상기 VDM클라이언트(300)의 요청에 따라 스트림 방식으로 전송하는 SOD 서버수단을 갖는 응용 프로그램 서버(400); 상기 응용 프로그램 서버(400)의 부하를 소정의 기준에 따라 분산시키는 가상 데스크탑(VDM) 서버(100); 상기 VDM 서버(100)로부터 다운로드되는 데이터베이스 정보 및 SOD용 응용 프로그램의 실행에 필요한 최소 데이터를 캐쉬하고, 상기 VDM 서버(100)에 의해 분배된 응용프로그램을 실행할 수 있는 복수의 가상 데스크탑(VDM) 클라이언트(300); 및 상기 VDM 클라이언트(300)의 데이터를 저장 및 수정 가능한 파일서버(600);가 제공된다.

Description

가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법{Virtual desktop computer device, application program managing method using thereof}
본 발명은 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법에 관한 것으로, 보다 상세하게는 기존 응용 프로그램의 호환성을 완벽하게 유지하면서, 서버 기반 컴퓨터의 관리 효율성과 중앙 집중 관리 및 소프트웨어의 오류를 제거할 수 있는 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법에 관한 것이다.
지금까지 서버 및 클라이언트 네트워크 환경하에 설치된 컴퓨터들은 소프트웨어를 사용하기 위하여 각 컴퓨터마다 개별적으로 소프트웨어를 설치하고 실행하여야만 했다. 따라서 클라이언트 컴퓨터의 숫자가 많고, 필요한 소프트웨어의 숫자가 많을 경우 이를 곱한 만큼의 반복작업이 이루어졌다. 따라서, 막대한 비용과 인력 및 시간 등이 소요되곤 하였다.
이러한 문제점을 해결하기 위하여 서버 컴퓨터에서 대부분을 관장하는 서버 기반 컴퓨팅 기술이 개발되었다. 이와 같은 종래의 시스템의 일예로는 마이크로소프트 사의 "터미널 서비스"를 들 수 있다.
이러한 터미널 서비스는 마이크로소프트사의 윈도우 NT/2000/ Net 서버 OS를기반으로 하는 서버 시스템에 터미널 서비스라는 서비스를 탑재한 것이다. 그리고, 그러한 기반위에 필요한 응용 프로그램을 한번만 설치하고 사용자는 터미널 서비스에 접속할 수 있는 에뮬레이터를 자신의 컴퓨터에서 실행한다. 이러한 에뮬레이터는 네트워크를 통해 서버에 접속하여 터미널 서버에 설치된 응용 프로그램을 사용할 수 있도록 한다.
따라서, 모든 응용 프로그램의 실행이 서버에서 실행되며, 그 결과만이 사용자의 클라이언트 컴퓨터에 표시된다. 그 결과로 서버에는 과중한 부하가 집중되어 높은 하드웨어 성능을 필요로 하게 되었고, 터미널 서비스 환경하에서 제한된 소프트웨어만이 동작되는 한계성이 있었다. 예를 들어, 멀티미디어 데이터를 재생/편집하는 동영상 플레이어나 그래픽 툴(예를 들어, 포토샵, 플래쉬, 오토캐드 등) 및 3차원 게임 등이 이에 해당된다.
또한, 인터넷 익스플로러 같은 웹브라우저를 통한 인터넷 검색시, 플래쉬(Flash)로 제작된 홈페이지를 오픈하면 서버의 CPU 점유율이 높아져 서버의 성능을 저하시키는 요인이 되며, 동시 사용자가 많을 경우 서버가 정지되거나 다운되어 버리는 최악의 상황도 종종 발생하게 된다.
따라서, 본 발명은 상기와 같은 종래의 문제점들을 감안하여 안출된 것으로써, 본 발명의 제 1 목적은 종래의 컴퓨터에서 사용되고 있던 응용 프로그램의 호환성을 완벽하게 유지하면서, 서버-클라이언트 기반 컴퓨터의 부하를 적절히 분산하면서도 중앙에서 전체 시스템을 집중 관리할 수 있는 가상 데스크탑 컴퓨터 장치및 이를 이용한 응용프로그램 운영방법을 제공하는 것이다.
본 발명의 제 2 목적은, 클라이언트 컴퓨터에 개별적으로 응용 프로그램을 설치하지 않아도 불편함이 없이 응용 프로그램을 사용할 수 있고, 응용 프로그램의 실행 프로세서를 서버에만 집중시키지 않고, 클라이언트로 분산시켜 시스템 성능의 변화를 최소화하고, 항상 일정한 성능을 유지할 수 있도록 하는 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법을 제공하는 것이다.
상기와 같은 본 발명의 목적들은, 응용프로그램의 실행이 이루어지고 실행결과가 실시간으로 출력되는 응용프로그램 실행수단 및 실행에 필요한 소정의 프로그램을 VDM클라이언트(300)로부터 다운로드받고, 실행에 필요한 잔여 프로그램을 상기 VDM클라이언트(300)의 요청에 따라 스트림 방식으로 전송하는 SOD 서버수단을 갖는 응용 프로그램 서버(400); 상기 응용 프로그램 서버(400)의 부하를 소정의 기준에 따라 분산시키는 상기 가상 데스크탑 관리(VDM) 서버(100); 상기 VDM 서버(100)로부터 다운로드되는 데이터베이스 정보 및 SOD용 응용 프로그램의 실행에 필요한 최소 데이터를 캐쉬하고, 상기 VDM 서버(100)에 의해 분배된 응용프로그램을 실행할 수 있는 복수의 가상 데스크탑 관리(VDM) 클라이언트(300); 및 상기 VDM 클라이언트(300)의 데이터를 저장 및 수정 가능한 파일서버(600);를 포함하는 것을 특징으로 하는 가상 데스트탑 컴퓨터 장치에 의하여 달성될 수 있다.
그리고, 상기 VDM 서버(100)와 동일한 구성을 갖고, 상기 VDM 서버(100)가 정상 동작을 하는지 여부를 판단하여 정상 동작이 불가능한 경우 VDM 서버(100)의 기능을 대체하는 백업 가상 데스크탑 관리서버(200)를 더 포함하는 것이 바람직하다.
아울러, 상기 VDM 서버(100)는, 사용자 및 상기 사용자의 그룹을 생성, 수정, 삭제, 인증처리를 하고 응용 프로그램을 상기 사용자 또는 그룹으로 할당하는 사용자 관리수단(113); 상기 VDM 서버(100)로부터 사용자의 응용프로그램 및 접속 서버 요청이 있는 경우 접속할 서버 및 사용자 ID 및 실행할 응용프로그램의 사용상태를 확인하는 사용자응용프로그램 사용상태관리수단(115); 일정시간마다 응용 프로그램 서버(400)중 최소 부하를 가진 서버를 선택하여 선택결과를 상기 사용자응용프로그램 사용상태관리부(115)로 전송하는 부하분산관리수단(116); 상기 VDM 클라이언트(300), 응용 프로그램 서버(400) 및 파일 서버(600)의 소프트웨어 버전을 판단하여 업그레이드를 처리하는 운영소프트웨어 버전관리수단(117); 상기 사용자 및 응용 프로그램에 관한 정보를 저장하고 검색할 수 있는 데이터베이스 관리수단(120)을 포함하는 것이 가능하다.
또한, 상기 데이터베이스 관리수단(120)은, 상기 응용프로그램 서버(400) 및 파일서버(600)의 온,오프상태 및 동기화 여부를 저장하고 검색 가능한 서버상태로그 데이터베이스수단(121); 상기 사용자 및 그룹에 관한 정보를 저장하고 검색할 수 있는 사용자 데이터베이스수단(122); 상기 응용프로그램에 관한 정보를 저장하고 검색할 수 있는 응용프로그램 데이터베이스수단(123); 상기 사용자들이 사용하는 응용프로그램, 접속한 서버 및 사용상태에 관한 정보를 저장하고 검색할 수 있는 사용자응용프로그램 사용상태 데이터베이스수단(124); 및 상기 사용자 및 그룹에게 설정된 데스크탑 정보를 저장하고 검색할 수 있는 사용자작업환경설정 데이터베이스수단(125);로 구성되는 것이 더욱 바람직하다.
뿐만 아니라, 상기 가상 데스크탑 클라이언트(300)는, SOD(software on demand) 응용프로그램을 실행하기 위한 SOD 구동엔진수단(317); 터미널 서비스(TS) 응용 프로그램을 실행하기 위한 TS 클라이언트 구동엔진수단(318); 각 사용자의 작업 환경에 관한 정보를 저장하고 검색할 수 있는 사용자작업환경 데이터베이스수단(314); 상기 응용프로그램의 실행 방식에 관한 정보를 저장하고 검색할 수 있는 응용프로그램 실행정보 데이터베이스수단(315); 및 각 사용자가 실행하는 응용프로그램, 접속한 서버 및 사용상태에 관한 정보를 저장하고 검색할 수 있는 사용자 응용프로그램 사용상태 데이터베이스수단(316)을 포함하는 것이 가장 바람직하다.
상기와 같은 본 발명은 목적은, 또한, 사용자가 VDM 클라이언트(300)로부터 VDM서버(100)로 인증을 요청하는 단계(S100); 상기 VDM 클라이언트(300)의 VDM 클라이언트 관리부(312)에서 개인 설정 정보의 다운로드를 요청하는 단계(S110); 상기 VDM 클라이언트 관리부(312)와 상기 VDM 서버(100)의 운영 소프트웨어 버전 관리부(117)의 버전을 비교하여 최신 버전으로 사용자 데스크탑 환경을 적용하는 단계(S120); 특정 응용프로그램의 실행 요청이 있는 경우(S130), 응용 프로그램 실행하고(S135), 응용프로그램의 실행 요청이 없는 경우 로그 오프 또는 시스템 종료인가를 판단하는 단계(S140); 로그 오프 또는 시스템 종료일 때, 사용자 응용 프로그램 사용상태 DB(316)에 모든 응용프로그램의 활성정보를 초기화하는 단계(S150); 프로세스 관리부(311)에서 실행중인 모든 응용프로그램을 정상 종료하는단계(S160); VDM 서버(100)에 사용자 로그오프 또는 시스템 종료 정보를 전송하여 사용자 응용프로그램 사용상태DB(124)를 초기화하는 단계(S170); 및 VDM 클라이언트(300)의 사용자 작업환경DB(314)를 VDM서버(100)의 사용자 작업환경 설정DB(125)에 저장하고 종료하는 단계(S180);로 구성되고, 상기 S100 내지 상기 S180 단계를 실행하는 도중, 일정시간마다 각 응용 프로그램 서버(400)의 부하량을 검출하여 최소 부하량을 갖는 응용 프로그램 서버(400)로 접속하여 응용 프로그램을 실행하는 인터럽트 단계(S190);를 포함하는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법에 의해서도 달성될 수 있다.
이 때, 상기 개인 설정 정보의 다운로드를 요청단계(S110)는, 사용자 작업환경DB(314)를 검색하는 단계(S210); 데이터베이스를 업데이트하는 단계(S220); 사용자 응용프로그램 사용상태DB(316)를 검색하는 단계(S230); 데이터베이스를 업데이트하는 단계(S240); 응용프로그램 실행정보DB(315)를 검색하는 단계(S250); 및 데이터베이스를 업데이트하는 단계(S260);로 구성되는 것이 가능하다.
또한, 상기 데이터베이스 업데이트 단계(S220, S240, S260)는, 해당 데이터베이스를 검색하는 단계(S300); 검색 결과에 기초하여 사용자 DB가 존재하는지 판단하는 단계(S310); 사용자 DB가 존재한다면, VDM 클라이언트(300)에 존재하는 데이터베이스가 서버의 데이터베이스와 동일하거나 최신의 것인가를 판단하는 단계(S320); 및 사용자 DB가 존재하지 않는 경우 또는 VDM 클라이언트(300)에 존재하는 데이터베이스가 서버의 데이터베이스와 동일하거나 최신의 것이 아닌 경우, VDM 서버(100)에 데이터베이스를 요청하여(S340), 다운로드받는 단계(S350);로 구성되는 것이 바람직하다.
그리고, 상기 응용 프로그램의 실행단계(S135)는, 응용 프로그램 아이콘의 정보를 분석하여(S400), 실행방식을 결정하는 단계(S410); (1-1)로컬에 의한 실행인 경우, 로컬 프로그램 관리자를 통한 응용 프로그램의 존재 여부를 판단하는 단계(S600); (1-2) 응용 프로그램이 존재하지 않는다면 응용프로그램 실행정보DB를 참조하여 파일서버로부터 다운로드를 받는 단계(S605); (1-3) 로컬 프로그램 관리자를 통해 프로그램의 실행을 요청하고(S610), 요청된 상기 응용프로그램을 해당 VDM 클라이언트(300)에서 실행하는 단계(S620); 및 (1-4) 사용자에 의하여 실행 프로그램이 종료되는지를 판단하는 단계(S630);
(2-1) TS(Terminal Service) 클라이언트 방식에 의한 실행인 경우, VDM서버(100)에 응용 프로그램을 실행할 서버정보를 요청하는 단계(S420); (2-2) 상기 응용 프로그램을 실행할 서버정보를 수신하는 단계(S430); (2-3) 사용자 응용 프로그램 사용상태DB(316)에 접속할 서보 정보를 기록하는 단계(S440); (2-4) TS 클라이언트 구동엔진(318)에 의해 응용 프로그램을 실행하는 단계(S450);
(3-1) SOD(software on demand)에 의한 실행인 경우, 상기 S420 단계 내지 S440 단계를 실행하는 단계; (3-2) 로컬의 캐쉬영역을 검사하여(S500), 해당 응용 프로그램이 존재하는지 판단하는 단계(S510); (3-3) 해당 응용 프로그램이 존재하지 않는 경우, 응용 프로그램 서버(400)내의 SOD 서버로 해당 프로그램의 다운로드를 요청하여(S520), 다운로드 받는 단계(S530); (3-4) TS 클라이언트 구동엔진(317)에 의해 응용 프로그램을 실행하는 단계(S540);로 구성될 수 있다.
본 발명의 그 밖의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 분명해질 것이다.
도 1은 본 발명에 따른 가상 데스크탑 컴퓨터 장치의 개략적인 전체 블럭도,
도 2는 도 1중 VDM 서버(100)의 내부 블럭도,
도 3은 도 1중 VDM 클라이언트(300)의 내부 블럭도,
도 4는 본 발명에 따른 가상 데스크탑 컴퓨터 장치에서 각 응용 프로그램 서버(400)의 부하를 조절하기 위해 일정시간마다 각 응용 프로그램 서버(400)의 부하량을 검출하여 최소 부하량을 갖는 응용 프로그램 서버(400)로 접속하여 응용 프로그램을 실행하는 인터럽트 단계(S190)의 블럭 처리도,
도 5는 도 1에서 VDM 서버(100)와 백업 VDM 서버(200) 사이의 상관관계를 나타내는 블럭도,
도 6은 본 발명에 따른 가상 데스크탑 컴퓨터 장치를 이용한 VDM 클라이언트의 실행 흐름도,
도 7은 도 6중 개인정보 설정 다운로드과정을 나타내는 흐름도,
도 8은 도 7중 데이터베이스 업데이트 과정을 나타내는 흐름도,
도 9는 도 6중 응용 프로그램의 실행 과정을 나타내는 흐름도이다.
<도면의 주요부분에 대한 부호의 설명>
1 : 랜, 5 : 상태감시선,
330 : 응용프로그램 리스트, 400 : 응용 프로그램 서버,
410 : CPU, 900 : 인터넷.
이하에서는 본 발명에 따른 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용 프로그램 운영방법에 관하여 첨부된 도면을 참조하여 상세히 설명하도록 한다.
도 1은 본 발명에 따른 가상 데스크탑 컴퓨터 장치의 개략적인 전체 블럭도이다. 도 1에 도시된 바와 같이, 본 발명에 따른 가상 데스크탑 관리 장치(Virtual Desktop Manager, 이하 VDM 이라 함) 또는 가상 데스크탑 컴퓨터 장치는 대략 VDM 서버(100), 백업 VDM 서버(200), VDM 클라이언트(300), 응용 프로그램 서버(400), 관리자 단말장치(500) 및 파일서버(600)로 구성되어 있고, 기타 라이센스 서버(700), 업데이트 서버(800) 및 인터넷(900)과 연결되어 있다.
VDM 서버(100)는 백업VDM서버(200)와 연결되어 있어서, 양자의 리소스 동기화, 서버상태의 정보 체크, 페어-IP 정보의 공유를 수행한다. 이러한 백업 VDM서버(200)는 VDM서버(100)와 동일한 구성을 가진다. 따라서, 만약, VDM 서버(100)가 고장, 다운 등의 이유로 정상적인 서비스를 수행할 수 없는 경우 VDM서버(100)의 상태감시부(126)가 이를 검출하여 백업 VDM 서버(200)에 전송함으로서 백업VDM서버(200)가 서비스를 대신할 수 있도록 구성되어 있다.
VDM서버(100)는 주로 VDM 클라이언트(300)에게 응용프로그램을 서비스하기 위한 서버로서, 사용자 계정 및 응용 프로그램의 관리, 부하분산 관리, VDM 클라이언트(300)의 오류 복구 정보 관리, 소프트웨어 업그레이드, 데이터베이스 동기화, 자원관리의 기능을 수행한다. 특히, 응응프로그램 서버(400)와 파일서버(600)의 계정 데이터베이스를 동기화하고 소프트웨어를 업데이트한다. 특히 응용프로그램 서버(400)와의 관계에 있어서는 서버의 상태 정보를 동기화하고 CPU 사용량이 최소인 서버를 검색할 수 있도록 구성되어 있다. 이러한 VDM서버(100)는 관리자 단말장치(500)에 연결되어 관리자 단말장치(500)에 의하여 총괄적인 통제를 받는다.
그리고, VDM서버(100)는 VDM 클라이언트(300)와 사용자 또는 그룹의 인증, 부하 분산에 관한 서버 정보, 사용 환경 정보 및 소프트웨어 업데이터에 관한 정보를 전송/수신한다.
VDM 클라이언트(300)는 복수의 사용자가 사용하고, VDM서버(100)에서 제공하는 각종 응용 프로그램을 사용하며, 이러한 응용 프로그램의 실행 결과가 표시되는 최종 단말기이다.
응용 프로그램 서버(400)는 VDM 클라이언트(300)에게 제공할 응용 프로그램을 실행하는 컴퓨터이며, VDM서버(100)와 데이터베이스 동기 정보를 통신하여 동기화를 수행한다.
이러한 응용 프로그램 서버(400)의 내부에는 응용프로그램의 실행이 이루어지고 실행결과가 실시간으로 출력되는 응용프로그램 실행부(미도시) 및 실행에 필요한 소정의 프로그램을 VDM클라이언트(300)로부터 다운로드받고, 실행에 필요한 잔여 프로그램을 상기 VDM클라이언트(300)의 요청에 따라 스트림 방식으로 전송하는 SOD 서버(미도시)가 구비되어 있다.
관리자 단말장치(500)는 VDM 시스템 전체를 관리하기 위한 단말로서, 사용자 또는 그룹 계정의 생성/수정/삭제 등이 가능하고, 그에 따라 각 사용자 또는 그룹별로 응용 프로그램의 사용제한, 배포, 권한 제한 등을 지정할 수 있는 권한을 갖는다.
또한, 관리자 단말장치(500)의 권한은 응용 프로그램의 등록/삭제 및 인쇄, 사용현황 및 세션의 강제종료/ 라이센스 관리 등의 권한을 갖는다. 그 밖에 응용 프로그램 서버의 추가/삭제, VDM 클라이언트(300)의 화면값 원격제어, 원격 로그오프/shutdown/재부팅 등의 권한을 갖는다.
파일서버(600)는 VDM 클라이언트(300)에게 작업데이터 또는 공유 데이터를 생성/수정/삭제할 수 있도록 하는 저장영역을 제공하는 컴퓨터이다. 특히 파일서버(600)는 응용 프로그램 서버(400)와 동일하게 VDM 서버(100)와 데이터베이스 동기화 작업에 필요한 정보를 통신한다. 이러한 파일서버(600)의 구체적인 예로는 SAN 또는 NAS와 같은 저장장치를 들 수 있다.
라이센스 서버(700)는 VDM 시스템을 불법적으로 사용하는 것을 막고, 사용자 관리를 위하여 VDM서버(100) 및 응용 프로그램 서버(400)의 설치시 제품 인증 절차를 수행하고 사용자 정보를 관리하는 서버이다.
업데이트서버(800)는 VDM서버(100)와 통신을 하는 서버로서, VDM 시스템을 구축하는 소프트웨어를 지정된 날짜/시간에 자동적으로 업데이트 또는 버그 패치(Bug Patch)하기 위한 것이다.
도 2는 도 1중 VDM 서버(100)의 내부 블럭도이다. 도 2에 도시된 바와 같이, VDM 서버(100)의 내부는 대략 네트워크 관리부(110), 세션 관리부(111), 서비스 관리부(112), 상태감시부(126) 및 데이터베이스 관리시스템(120)으로 나눌 수 있다.
네트워크 관리부(110)는 VDM 클라이언트(300)와 응용 프로그램 서버(400) 및 파일 서버(600) 등의 네트워크 통신을 수행하는 구성을 갖는다.
세션 관리부(111)는 VDM 클라이언트(300)와의 접속 세션을 유지하고 관리할 수 있는 구성을 갖는다.
서비스 관리부(112)는 VDM 서버(100)로 입력되는 서비스 요청을 담당하는 구성이며, 하부에 사용자 관리부(113), 응용 프로그램 관리부(114), 사용자 응용프로그램 사용상태관리부(115), 부하분산관리부(116), 운영 소프트웨어 버전 관리부(117), 파일전송관리부(118), 스케쥴 관리부(119)가 구비되어 있다.
사용자 관리부(113)는 사용자 또는 그룹의 생성/수정/삭제와 사용자 인증 등의 사용자 관리를 담당하며, 제공할 응용 프로그램을 사용자 또는 그룹에 할당하도록 하는 구성을 갖는다.
응용 프로그램 관리부(114)는 사용자에게 제공할 응용 프로그램을 등록/삭제하도록 하는 구성을 갖는다.
사용자 응용프로그램 사용상태관리부(115)는 VDM 서버(100)에서 사용자의 응용 프로그램 및 접속 서버의 요청이 있는 경우 접속할 서버 및 사용자 ID, 실행할 응용 프로그램 사용상태를 관리하는 구성을 갖는다. 특히, VDM 클라이언트(300)의 다운, 바이러스 감염, 및 기타 문제 발생시 작업상태를 복원하는 기능을 한다.
부하분산관리부(116)는 다수의 응용프로그램 서버(400)들중 최소의 부하를 가진 서버를 식별해 내는 기능을 한다. 사용자의 접속할 서버의 요청이 있는 경우 여기서 선별된 서버의 정보를 사용자 응용프로그램 사용상태관리부(115)로 전송한다. 일정한 시간간격을 두고 응용 프로그램 서버(400)의 부하를 지속적으로 모니터링하고 상태정보를 업데이트한다.
운영 소프트웨어 버전 관리부(117)는 VDM 클라이언트(300), 응용 프로그램 서버(400), 파일 서버(600)의 소프트웨어 버전을 관리하고 업그레이드 여부를 담당하는 기능을 한다.
파일전송관리부(118)는 데이터베이스와 SOD 응용 프로그램의 요청이 있는 경우 파일을 캐쉬하기 위한 파일 전송의 기능을 갖고, 스케쥴 관리부(119)는 미리 예약된 작업을 시간에 맞춰 실행할 수 있는 기능을 한다.
또한, 데이터베이스 관리시스템(120)은 그 하부에, 서버상태로그DB(121), 사용자DB(12), 응용 프로그램DB(123), 사용자 응용프로그램 사용상태DB(124) 및 사용자 작업환경설정DB(125) 테이블을 갖추고 있다.
서버상태로그DB(121)는 응용프로그램 서버(400) 및 파일서버(600)의 온라인/오프라인 상태, 데이터베이스의 동기화 여부를 저장하고 검색하는 테이블이다.
사용자DB(12)는 사용자 및 그룹에 관한 정보를 저장하고 검색하는 테이블이다.
응용 프로그램DB(123)는 VDM 클라이언트(300)로 제공할 응용프로그램에 관한 관리/분배/실행에 관한 정보을 저장하고 검색하는 테이블이다.
사용자 응용프로그램 사용상태DB(124)는 각 사용자들이 사용하고 있는 응용 프로그램과 접속할 서버의 정보 및 사용상태(예를 들어, 정상동작 또는 다운 등)를 저장하고 검색할 수 있는 테이블이다.
사용자 작업환경설정DB(125)는 각 사용자 및 그룹에 의해 설정된 데스크탑 작업환경 설정정보(예를 들어, 프린터, 오디오, 비디오, 키보드, 네트워크의 구동정보)를 저장하고 검색할 수 있는 테이블이다.
상태감시부(126)는 VDM서버(100)의 온라인/오프라인 상태를 모니터링하고, VDM 서버(100)내의 데이터베이스 정보를 백업VDM서버(200)의 데이터베이스 정보와 항상 동일하게 유지하도록 하는 역할을 한다. 만약, VDM서버(100)의 시스템 다운 또는 서비스 다운 현상이 발생하면, 서비스 일렉션(Service Election) 과정을 통해 백업 VDM서버(200)가 VDM서버(100)로 전환되고, 다운된 VDM서버(100)는 강제로 재시작 부팅과정을 통해 백업VDM서버(200) 역할을 하게 된다.
도 3은 도 1중 VDM 클라이언트(300)의 내부 블럭도이다. 도 3에 도시된 바와 같이, VDM 클라이언트(300)의 내부는 대략 SOD 구동엔진(317), TS 클라이언트 구동엔진(318), 파일전송관리부(319), 프로세스 관리부(311), 가상 데스크탑 관리부(312) 및 복수의 데이터베이스 테이블로 구성되어 있다.
네트워크 관리부(310)는 VDM서버(100)와 응용프로그램 서버(400) 및 파일서버(600)등과의 네트워크 통신을 전담하는 기능을 한다.
SOD(Software On Demand) 구동엔진(317)은 SOD 응용프로그램을 실행하기 위한 구동엔진(Launcher)이다.
TS 클라이언트 구동엔진(318)은 터미널 서비스 응용프로그램을 실행하기 위한 터미널 서비스 연결관리 프로그램이다.
파일전송관리부(319)는 데이터베이스와 SOD 프로그램을 필요로 할 경우 이를 캐쉬하기 위한 파일 송수신을 수행하는 구성을 갖는다.
프로세스 관리부(311)는 VDM 클라이언트(300)에서 실행되는 프로세스(예를 들어, 실행파일)를 처리하고 관리하는 구성을 갖는다.
가상 데스크탑 관리부(312)는 VDM 클라이언트(300)의 사용자 인터페이스를 관리하고 사용자의 명령을 실행하는 구성을 갖는다.
사용자 관리부(313)는 사용자 인증을 요청/처리하고, 사용자의 환경 설정 정보를 관리하는 구성을 갖는다.
또한, VDM 클라이언트(300)의 내부에는 사용자 작업환경DB(314), 응용 프로그램 실행정보DB(315) 및 사용자 응용프로그램 사용상태DB(316)의 테이블이 구성되어 있다.
사용자 작업환경DB(314)는 각 사용자별 데스크탑 작업환경(예를 들어, 프린터, 오디오, 비디오, 키보드, 네트워크의 구동정보) 정보를 저장하고 검색할 수 있는 테이블이다. 예를 들어, 네트워크의 구동정보에는 IP주소, 게이트웨이, DNS 변경과 DHCP 설정 정보 등이 포함된다.
응용 프로그램 실행정보DB(315)는 응용 프로그램의 실행방식에 관한 정보를 저장하고 검색할 수 있는 테이블이다.
사용자 응용프로그램 사용상태DB(316)는 각 사용자들이 사용하고 있는 응용프로그램과 접속한 서버의 정보 및 사용상태의 정보를 저장하고 검색할 수 있는 테이블이다.
이러한 VDM 클라이언트(300)는 응용 프로그램을 실행하기 위하여 마이크로소프트사의 "터미널 서비스"를 이용할 수도 있고, 스트림방식의 SOD 방식을 이용할 수도 있다. 예를 들어, "포토샵"과 같은 그래픽 툴은 "SOD"방식을 이용한다. 즉, "포토샵"을 실행시키는데 필요한 최소한의 모듈만을 SOD 서버로부터 스트림 받아 로컬로 VDM 클라이언트(300)에서 실행한다. 만약, 동일한 "포토샵"을 다음에 다시 한번 더 실행할 경우에는 로컬의 캐쉬영역에서 읽어 들여 바로 실행하므로 다운로드 과정을 거칠 필요가 없다. 물론, 사용자는 선택적으로 캐시된 응용프로그램 모듈을 삭제할 수도 있다.
이하에서는 상기와 같은 구성을 갖는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법에 대하여 상세히 설명하기로 한다.
도 4는 본 발명에 따른 가상 데스크탑 컴퓨터 장치에서 각 응용 프로그램 서버(400)의 부하를 조절하기 위해 일정시간마다 각 응용 프로그램 서버(400)의 부하량을 검출하여 최소 부하량을 갖는 응용 프로그램 서버(400)로 접속하여 응용 프로그램을 실행하는 인터럽트 단계(S190)의 블럭 처리도이다. 도 4에 도시된 바와 같이, 우선 VDM 클라이언트(300)는 VDM 서버(100)로 접속할 서버의 정보를 요청한다(단계①). 한 편, VDM서버(100)는 실시간으로 또는 일정시간마다 각 응용 프로그램 서버(400)의 CPU(410) 부하량을 조사한다. 예를 들어, 도 4에서, 응용 프로그램 서버#1(400)의 CPU(410)에는 첫번째 응용프로그램(APP#1)(331)이 로드되어 실행중에있고, 이 때의 CPU(410) 사용량(또는 부하, 또는 동작율)은 50%이다. 그리고, 응용 프로그램 서버#2(400)의 CPU(410)에는 두번째 응용프로그램(APP#2)(332)과 네번째 응용프로그램(APP#4)(335)이 로드되어 실행중에 있고, 이 때의 CPU(410) 사용량은 80%이다. 또한, 응용 프로그램 서버#3(400)의 CPU(410)에는 세번째 응용프로그램(APP#3)(334)이 로드되어 실행중에 있고, 이 때의 CPU(410) 사용량은 30%이다. 이러한 각 응용프로그램은 응용프로그램 리스트(330)내에 보관되고 관리되는데, 예를 들어, APP#1은 포토샵 프로그램, APP#2은 오토캐드프로그램, APP#3은 홈페이지 저작 프로그램 등이다.
따라서, VDM서버(100)는 각 응용 프로그램 서버(400)의 CPU(410) 사용량중 사용량이 30%로 최소가 되는 응용 프로그램 서버#3(400)을 지정하게 되고, 지정된 응용 프로그램 서버#3(400)의 정보(예를 들어, 서버 IP, NetBIOS Name, MAC address 등)를 VDM 클라이언트(300)로 전송하게 된다(단계②). 이 때, 만약, 최소 CPU(410) 사용량이 일정수준을 초과할 경우에는 "서버에 접속한 사용자가 많습니다. 잠시 후 접속하시기 바랍니다" 라는 에러 메시지를 출력하고 접속을 거부할 수 있다.
VDM 클라이언트(300)는 상기 서버의 정보(예를 들어, 서버 IP, NetBIOS Name, MAC address 등)에 기초하여 응용프로그램 서버#3(300)에 접속한 뒤, 해당 응용프로그램(APP#5)(346)을 실행한다(단계③). 상기와 같은 과정을 통해 복수의 응용 프로그램 서버(410)들중 CPU 사용량이 최소가 되는 서버에 새로운 응용 프로그램이 실행되게 되고, 따라서, 각 응용 프로그램 서버(400)의 CPU 사용량은 커다란 편차없이 비교적 균등하게 조절될 수 있다.
도 5는 도 1에서 VDM 서버(100)와 백업 VDM 서버(200) 사이의 상관관계를 나타내는 블럭도이다. 도 5에 도시된 바와 같이, VDM 서버(100)와 백업 VDM 서버(200)는 랜(1) 선에 연결되어 상호 페어-IP를 공유하고 있으며, VDM 서버(100)의 네트워크 관리부(11)와 백업 VDM 서버(200)의 네트워크 관리부(210)는 상태감시선(5)에 의해 물리적으로 연결되어 있다.
VDM 서버(100)의 내부 구성은 도 2에서 상세히 설명한 바 있으므로 생략하기로 하고, 백업 VDM 서버(200)의 내부 구성은 VDM 서버(100)의 내부 구성과 동일하도록 구성되어 있다.
백업 VDM 서버(200)는 상태감시선(5)을 통해 VDM 서버(100)의 정상 동작 여부를 모니터링하고, 데이터베이스(121 내지 125)의 동기화를 수행하며, 이러한 동기화 작업은 데이터베이스(121 내지 125)중 변경된 항목에 대해서만 업데이트가 이루어지도록 구성한다. 만약, VDM 서버(100)가 다운되어 정상 동작을 수행하지 못할 경우에, 상태감시선(5)은 백업 VDM 서버(200)가 서비스를 정상적으로 대행할 수 있도록 한다.
그리고, 상태감시부(126)에는 페어-IP정보가 설치되고, 백업 VDM 서버(200)를 백업용으로 지정한다. 그러면, 자동적으로 VDM 서버(100)를 찾게 되고, VDM 서버(100)의 IP정보를 상태감시부(126)에 기록하게 되고, VDM 서버(100)도 백업 VDM서버(200)의 IP정보를 상태감시부(126)에 기록하게 된다.
이러한 상태가 갖추어진 후, VDM 서버(100)가 다운되면, 페어P(Pair)-IP에의해 VDM서버(100)와 백업 VDM서버(200) 간의 IP를 상호 교체하게 된다. 이러한 과정은 페어-IP 정보에서 스탠바이-IP로 자신의 IP를 변경하여 IP의 충돌을 피하면서 이루어진다. 따라서, 백업 VDM 서버(200)가 안정적으로 서비스를 계속 제공하게 되고, VDM서버(100)는 강제로 재부팅되어 백업 VDM서버로의 기능을 수행하게 된다.
도 6은 본 발명에 따른 가상 데스크탑 컴퓨터 장치를 이용한 VDM 클라이언트의 실행 흐름도이다.
우선, 사용자가 VDM 클라이언트(300)로부터 VDM서버(100)로 인증을 요청한다(S100). 이 때, 사용자는 사용자의 IP, 패스워드, 접속할 VDM 서버의 IP 또는 DNS 이름을 입력한다.
그 다음, VDM 클라이언트(300)의 VDM 클라이언트 관리부(312)에서 개인 설정 정보의 다운로드를 요청한다(S110). 본 단계에 관한 설명은 도 7에서 상세히 하기로 한다.
그 다음, VDM 클라이언트 관리부(312)와 상기 VDM 서버(100)의 운영 소프트웨어 버전 관리부(117)의 버전을 비교하여 최신 버전으로 사용자 데스크탑 환경을 적용한다(S120).
그리고, 특정 응용프로그램의 실행 요청이 있는 경우(예를 들어, 포토샵 실행 아이콘의 더블클릭)(S130), 응용 프로그램 실행한다(S135). 응용 프로그램의 구체적인 실행과정에 대해서는 도 9의 설명에서 상세히 하기로 한다.
만약, 응용프로그램의 실행 요청이 없는 경우 로그 오프 또는 시스템 종료인가를 판단한다(S140).
로그 오프 또는 시스템 종료일 때, 사용자 응용 프로그램 사용상태 DB(316)에 모든 응용프로그램(지금까지 실행중인 응용 프로그램)의 활성정보를 초기화한다(S150).
그 다음, 프로세스 관리부(311)에서 실행중인 모든 응용프로그램의 프로세스를 정상 종료한다(S160).
그리고, VDM 서버(100)에 사용자 로그오프 또는 시스템 종료 정보를 전송하여 사용자 응용프로그램 사용상태DB(124)를 초기화한다(S170).
그 다음, VDM 클라이언트(300)의 사용자 작업환경DB(314)를 VDM서버(100)의 사용자 작업환경 설정DB(125)에 저장하고 종료한다(S180). 상기와 같은 과정을 통해 VDM 클라이언트(300)를 중심으로 응용 프로그램의 실행 및 종료가 완료하게 된다.
이하에서는 상기 도 6의 각 단계들중 개인정보 설정 다운로드 과정(S110) 및 응용 프로그램 실행과정(S135)에 대하여 상세히 기술하기로 한다.
우선, 도 7은 도 6중 개인정보 설정 다운로드과정(S110)을 나타내는 흐름도이다. 도 7에 도시된 바와 같이, 사용자 개인의 정보 설정을 다운로드 하는 과정은 우선, VDM 클라이언트(300)내의 사용자 작업환경DB(314)를 검색하여 개인 설정 정보가 있는지를 먼저 검색한다(S210).
만약, 개인 설정 정보가 있다면, VDM 서버(100)와 비교하여 최신정보로 데이터베이스를 업데이트한다(S220). 이러한 업데이트 과정에 대해서는 도 8의 설명에서 상세히 설명하기로 한다.
그 다음, VDM 클라이언트(300)내의 사용자 응용프로그램 사용상태DB(316)에 해당 사용자의 정보가 있는지를 검색한다.(S230).
만약, 해당 사용자의 정보가 있다면, VDM 서버(100)의 정보와 비교하여 가장 최신의 정보로 데이터베이스를 업데이트한다(S240).
VDM 클라이언트(300)내의 응용프로그램 실행정보DB(315)에 해당 사용자의 정보가 있는지를 검색한다(S250).
만약, 해당 사용자의 정보가 있다면, VDM 서버(100)의 정보와 비교하여 가장 최신의 정보로 데이터베이스를 업데이트한다(S260). 상기와 같은 과정을 거쳐 각 사용자의 개인 설정 정보가 최신의 것으로 다운로드되어 업데이트된다.
이하에서는 도 8을 참조하여 상기 도 7중 데이터베이스 업데이트 과정(S220, S240, S260)에 대해 상세히 설명하기로 한다. 도 8은 도 7중 데이터베이스 업데이트 과정을 나타내는 흐름도이다. 우선, 도 8에 도시된 업데이트 과정(S220, S240, S260)은 각각 해당 데이터베이스(314, 315, 316) 대상이 차이날 뿐 프로세스 자체는 실질적으로 동일하다.
우선, 도 8에 도시된 바와 같이, 해당 데이터베이스를 검색한다(S300). 예를 들어, S220단계에서 호출된 경우 해당 데이터베이스는 사용자 작업환경DB(314)이고, S240단계에서 호출된 경우 해당 데이터베이스는 사용자 응용 프로그램 사용상태DB(316)이고, S260단계에서 호출된 경우 해당 데이터베이스는 응용 프로그램 실행정보DB(315)이다.
그 다음, 상기 검색 결과에 기초하여 해당 사용자의 정보가 DB에 존재하는지여부를 판단한다(S310).
만약, 해당 DB에 사용자 정보가 검색되어 존재한다면, VDM 클라이언트(300)에 존재하는 해당 데이터베이스가 서버의 해당 데이터베이스와 동일하거나 최신의 것인가를 판단한다(S320). 판단결과 양 데이터베이스가 동일하거나 VDM 클라이언트(300)의 정보가 최신의 것일 경우에는 별도의 업데이트 없이 호출을 리턴한다. 따라서, VDM 클라이언트(300)의 정보가 그대로 활용된다.
그런데, 사용자 DB가 존재하는 경우 또는 VDM 클라이언트(300)에 존재하는 데이터베이스가 서버의 데이터베이스와 동일하거나 최신의 것이 아닌 경우, VDM 서버(100)에 데이터베이스 정보를 요청하여(S340), 다운로드받는다(S350). 이러한 다운로드로 인하여 VDM 클라이언트(300) 데이터베이스의 업데이트가 완료된다.
도 9는 도 6중 응용 프로그램의 실행 과정(S135)을 구체적으로 나타내는 흐름도이다. 도 9에 도시된 바와 같이, 상기 응용 프로그램의 실행단계(S135)중 실행방법은 크게, 로컬방식, 터미널 서비스 방식, SOD 방식으로 나눌 수 있다.
우선, 응용 프로그램의 실행 아이콘의 정보(예를 들어, 실행위치, 실행파일의 폴더 위치, 실행 파일명, 레지스트리 정보 등)를 분석하여(S400), 실행방식을 결정한다(S410).
우선 로컬에 의한 실행인 경우, 로컬 프로그램 관리자를 통한 응용 프로그램의 존재 여부를 판단하고(S600), 존재하지 않는다면 응용프로그램 실행정보DB를 참조하여 파일서버로부터 다운로드를 받는다(S605). 그 다음, 로컬 프로그램 관리자를 통해 프로그램의 실행을 요청하고(S610), 요청된 상기 응용프로그램을 해당 VDM클라이언트(300)에서 실행한다(S620). 그리고 사용자에 의하여 실행 프로그램이 종료되는지를 판단하게 된다(S630).
만약, TS 클라이언트에 의한 실행인 경우, VDM서버(100)의 부하분산관리부(116)에 응용 프로그램을 실행할 서버정보를 요청한다(S420).
상기 응용 프로그램을 실행할 서버정보를 수신하면(S430), 사용자 응용 프로그램 사용상태DB(316)에 접속할 서보 정보를 기록한다(S440). 그리고, TS 클라이언트 구동엔진(318)에 의해 해당 응용 프로그램을 실행한다(S450).
실행후, 사용자에 의해 프로그램이 종료되는지 여부를 판단하여(S460), 종료되면, 사용자 응용프로그램 사용상태DB에 해당 응용프로그램 활성 정보를 초기화한다(S470). 그리고, VDM 서버에 응용 프로그램 종료에 관한 정보를 전송하여 저장한다(S480).
이와 같은 과정을 통해 터미널 서비스 방식의 응용 프로그램 실행이 이루어진다.
만약 상기 실용 방식 결정단계(S410)에서, SOD(software on demand)에 의한 실행이 결정된 경우, 우선, 상기 S420 단계 내지 S440 단계를 실행한다.
그 다음, 로컬의 캐쉬영역을 검사하여(S500), 해당 응용 프로그램이 존재하는지 여부를 판단한다(S510).
만약, 로컬의 캐쉬영역에 해당 응용 프로그램이 존재하지 않는 경우, 응용 프로그램 서버(400)내의 SOD 서버로 해당 프로그램의 다운로드를 요청하여(S520), 다운로드 받는다(S530).
만약, 로컬의 캐쉬영역에 해당 응용 프로그램이 존재하는 경우 또는 다운로드가 완료된 경우, TS 클라이언트 구동엔진(317)에 의해 해당 응용 프로그램을 실행한다(S540). 이와 같은 과정을 통해 SOD 방식의 응용 프로그램 실행이 이루어진다. 실행후에는 사용자에 의하여 응용 프로그램의 종료를 판단하여 상기 S460 단계 내지 S480 단계가 반복적으로 실행된다.
즉, 도 9의 S460 단계 내지 S480 단계는 하나의 응용 프로그램을 종료하기 위한 과정이고, 도 6의 S150 단계 내지 S180단계는 시스템 전체를 종료하기 위한 과정이다.
본 발명에 따른 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법은 컴퓨터에 의해 실행 가능한 프로그램 코드로 구현될 수 있으며, 이러한 프로그램 코드는 하드디스크, 플로피 디스크, 컴팩트 디스크, 메모리 스틱, 광자기 디스크, 미니 디스크, DVD, 디지털 테이프, 메모리 칩, 플래쉬 메모리 등의 기록매체에 저장되어 컴퓨터에 의해 판독될 수 있도록 구현할 수 있다.
이상에서 설명한 바와 같이 본 발명에 따른 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램 운영방법에 의하면, 종래의 컴퓨터에서 사용되고 있던 응용 프로그램의 호환성을 완벽하게 유지하면서, 서버-클라이언트 기반 컴퓨터의 부하를 적절히 분산하면서도 중앙에서 전체 시스템을 집중 관리할 수 있는 장점이 있다.
또한, 클라이언트 컴퓨터에 개별적으로 응용 프로그램을 설치하지 않아도 불편함이 없이 응용 프로그램을 사용할 수 있고, 응용 프로그램의 실행 프로세스를 서버에만 집중시키지 않고, 클라이언트로 분산시켜 시스템 성능의 변화를 최소화하고, 항상 일정한 성능을 유지할 수 있는 효과가 있다.
본 발명의 VDM 시스템은 일반 PC와 동일한 작업의 수행이 가능하고, 종래의 터미널 서비스 시스템에 제약이 있는 응용 프로그램은 클라이언트의 단말기 하드웨어를 통해 실행되게 함으로서 응용 프로그램에 관한 문제를 완전히 해결할 수 있다.
그리고, 본 발명의 VDM 시스템은 클라이언트 컴퓨터의 주변기기 인터페이스를 이용하여 연결하기 때문에 주변기기 호환성을 간단히 해결할 수 있다. 이것이 가능한 이유는 클라이언트 컴퓨터의 구동방식이 일반 PC와 동일한 구조로 되어 있기 때문이다. 단지 일반 PC와의 차이점은 단말장치에 탑재되는 OS와 제어 프로그램이 응용 프로그램을 구동하는데는 동일하지만 최초 프로그램을 구동하는 방식이 다르다는 것이다. 즉, 일반 PC의 경우는 모든 프로그램을 PC에 설치하고 실행시키지만, 본 발명의 VDM 시스템에서는 모든 프로그램이 서버에 설치되고, 클라이언트의 요청이 있을 때만 필요한 부분을 전송하여 다운로드한 뒤 설치하기 때문이다.
따라서, 네트워크 상에서 단말기 또는 서버를 원격으로 접속하여 키보드, 마우스, 모니터 등을 제어할 수 있고, 이로 인해 중앙에서 전체 시스템을 완벽하게 중앙집중적으로 관리할 수 있는 것이다.
그리고, 클라이언트 단말기의 OS나 응용 프로그램 사용중 바이러스 또는 기타 소프트웨어적인 문제로 인해 시스템이 손상되었을 경우, 간단한 조합키나, 한번의 클릭으로 쉽게 복구될 수 있는 잇점이 있다.
아울러, 각 사용자의 데이터는 관리자가 지정한 서버의 특정영역에 저장되기 때문에, 클라이언트의 단말기에는 작업한 데이터가 저장되지 않는다. 따라서, 데이터의 보안성이 높고, 임의 유출이나 무단 복제를 방지할 수도 있다.
더 나아가 각 사용자가 관리자의 허락없이 데이터, 파일, 정보를 무단으로 설치하거나 다운받거나 삭제할 수 없기 때문에 불법 소프트웨어에 관한 관리가 편리해진다.
비록 본 발명이 상기에서 언급한 바람직한 실시예와 관련하여 설명되어졌지만, 본 발명의 요지와 범위로 부터 벗어남이 없이 다른 다양한 수정 및 변형이 가능할 것이다. 따라서, 첨부된 특허청구의 범위는 본 발명의 진정한 범위내에 속하는 그러한 수정 및 변형을 포함할 것이라고 여겨진다.

Claims (9)

  1. 응용프로그램의 실행이 이루어지고 실행결과가 실시간으로 출력되는 응용프로그램 실행수단 및 실행에 필요한 소정의 프로그램을 VDM클라이언트(300)로부터 다운로드받고, 실행에 필요한 잔여 프로그램을 상기 VDM클라이언트(300)의 요청에 따라 스트림 방식으로 전송하는 SOD 서버수단을 갖는 응용 프로그램 서버(400);
    상기 응용 프로그램 서버(400)의 부하를 소정의 기준에 따라 분산시키는 상기 가상 데스크탑 관리(VDM) 서버(100);
    상기 VDM 서버(100)로부터 다운로드되는 데이터베이스 정보 및 SOD용 응용 프로그램의 실행에 필요한 최소 데이터를 캐쉬하고, 상기 VDM 서버(100)에 의해 분배된 응용프로그램을 실행할 수 있는 복수의 가상 데스크탑 관리(VDM) 클라이언트(300); 및
    상기 VDM 클라이언트(300)의 데이터를 저장 및 수정 가능한 파일서버(600);를 포함하는 것을 특징으로 하는 가상 데스트탑 컴퓨터 장치.
  2. 제 1항에 있어서, 상기 VDM 서버(100)와 동일한 구성을 갖고, 상기 VDM 서버(100)가 정상 동작을 하는지 여부를 판단하여 정상 동작이 불가능한 경우 VDM 서버(100)의 기능을 대체하는 백업 가상 데스크탑 관리서버(200)를 더 포함하는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치.
  3. 제 1 항에 있어서, 상기 VDM 서버(100)는,
    사용자 및 상기 사용자의 그룹을 생성,수정, 인증처리를 하고 응용 프로그램을 상기 사용자 또는 그룹으로 할당하는 사용자 관리수단(113);
    상기 VDM 서버(100)로부터 사용자의 응용프로그램 및 접속 서버 요청이 있는 경우 접속할 서버 및 사용자 ID 및 실행할 응용프로그램의 사용상태를 확인하는 사용자응용프로그램 사용상태관리수단(115);
    일정시간마다 응용 프로그램 서버(400)중 최소 부하를 가진 서버를 선택하여 선택결과를 상기 사용자응용프로그램 사용상태관리부(115)로 전송하는 부하분산관리수단(116);
    상기 VDM 클라이언트(300), 응용 프로그램 서버(400) 및 파일 서버(600)의 소프트웨어 버전을 판단하여 업그레이드를 처리하는 운영소프트웨어 버전관리수단(117);
    상기 사용자 및 응용 프로그램에 관한 정보를 저장하고 검색할 수 있는 데이터베이스 관리수단(120)을 포함하는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치.
  4. 제 3 항에 있어서, 상기 데이터베이스 관리수단(120)은,
    상기 응용프로그램 서버(400) 및 파일서버(600)의 온,오프상태 및 동기화 여부를 저장하고 검색 가능한 서버상태로그 데이터베이스수단(121);
    상기 사용자 및 그룹에 관한 정보를 저장하고 검색할 수 있는 사용자 데이터베이스수단(122);
    상기 응용프로그램에 관한 정보를 저장하고 검색할 수 있는 응용프로그램 데이터베이스수단(123);
    상기 사용자들이 사용하는 응용프로그램, 접속한 서버 및 사용상태에 관한 정보를 저장하고 검색할 수 있는 사용자응용프로그램 사용상태 데이터베이스수단(124); 및
    상기 사용자 및 그룹에게 설정된 데스크탑 정보를 저장하고 검색할 수 있는 사용자작업환경설정 데이터베이스수단(125);로 구성되는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치.
  5. 제 1 항에 있어서, 상기 가상 데스크탑 클라이언트(300)는,
    SOD(software on demand) 응용프로그램을 실행하기 위한 SOD 구동엔진수단(317);
    터미널 서비스(TS) 방식으로 응용 프로그램을 실행하기 위한 TS 클라이언트 구동엔진수단(318);
    각 사용자의 작업 환경에 관한 정보를 저장하고 검색할 수 있는 사용자작업환경 데이터베이스수단(314);
    상기 응용프로그램의 실행 방식에 관한 정보를 저장하고 검색할 수 있는 응용프로그램 실행정보 데이터베이스수단(315); 및
    각 사용자가 실행하는 응용프로그램, 접속한 서버 및 사용상태에 관한 정보를 저장하고 검색할 수 있는 사용자 응용프로그램 사용상태 데이터베이스수단(316)을 포함하는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치.
  6. 사용자가 VDM 클라이언트(300)로부터 VDM서버(100)로 인증을 요청하는 단계(S100);
    상기 VDM 클라이언트(300)의 VDM 클라이언트 관리부(312)에서 개인 설정 정보의 다운로드를 요청하는 단계(S110);
    상기 VDM 클라이언트 관리부(312)와 상기 VDM 서버(100)의 운영 소프트웨어 버전 관리부(117)의 버전을 비교하여 최신 버전으로 사용자 데스크탑 환경을 적용하는 단계(S120);
    특정 응용프로그램의 실행 요청이 있는 경우(S130), 응용 프로그램 실행하고(S135), 응용프로그램의 실행 요청이 없는 경우 로그 오프 또는 시스템 종료인가를 판단하는 단계(S140);
    로그 오프 또는 시스템 종료일 때, 사용자 응용 프로그램 사용상태 DB(316)에 모든 응용프로그램의 활성정보를 초기화하는 단계(S150);
    프로세스 관리부(311)에서 실행중인 모든 응용프로그램을 정상 종료하는 단계(S160);
    VDM 서버(100)에 사용자 로그오프 또는 시스템 종료 정보를 전송하여 사용자 응용프로그램 사용상태DB(124)를 초기화하는 단계(S170); 및
    VDM 클라이언트(300)의 사용자 작업환경DB(314)를 VDM서버(100)의 사용자 작업환경 설정DB(125)에 저장하고 종료하는 단계(S180);로 구성되고,
    상기 S100 내지 상기 S180 단계를 실행하는 도중, 일정시간마다 각 응용 프로그램 서버(400)의 부하량을 검출하여 최소 부하량을 갖는 응용 프로그램 서버(400)로 접속하여 응용 프로그램을 실행하는 인터럽트 단계(S190);를 포함하는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법.
  7. 제 6 항에 있어서, 상기 개인 설정 정보의 다운로드를 요청단계(S110)는,
    사용자 작업환경DB(314)를 검색하는 단계(S210);
    데이터베이스를 업데이트하는 단계(S220);
    사용자 응용프로그램 사용상태DB(316)를 검색하는 단계(S230);
    데이터베이스를 업데이트하는 단계(S240);
    응용프로그램 실행정보DB(315)를 검색하는 단계(S250); 및
    데이터베이스를 업데이트하는 단계(S260);로 구성되는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법.
  8. 제 7 항에 있어서, 상기 데이터베이스 업데이트 단계(S220, S240, S260)는,
    해당 데이터베이스를 검색하는 단계(S300);
    검색 결과에 기초하여 사용자 DB가 존재하는지 판단하는 단계(S310);
    사용자 DB가 존재한다면, VDM 클라이언트(300)에 존재하는 데이터베이스가 서버의 데이터베이스와 동일하거나 최신의 것인가를 판단하는 단계(S320); 및
    사용자 DB가 존재하지 않는 경우 또는 VDM 클라이언트(300)에 존재하는 데이터베이스가 서버의 데이터베이스와 동일하거나 최신의 것이 아닌 경우, VDM 서버(100)에 데이터베이스를 요청하여(S340), 다운로드받는 단계(S350);로 구성되는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법.
  9. 제 6 항에 있어서, 상기 응용 프로그램의 실행단계(S135)는,
    응용 프로그램 아이콘의 정보를 분석하여(S400), 실행방식을 결정하는 단계(S410);
    (1-1)로컬에 의한 실행인 경우, 로컬 프로그램 관리자를 통한 응용 프로그램의 존재 여부를 판단하는 단계(S600);
    (1-2) 응용 프로그램이 존재하지 않는다면 응용프로그램 실행정보DB를 참조하여 파일서버로부터 다운로드를 받는 단계(S605);
    (1-3) 로컬 프로그램 관리자를 통해 프로그램의 실행을 요청하고(S610), 요청된 상기 응용프로그램을 해당 VDM 클라이언트(300)에서 실행하는 단계(S620); 및
    (1-4) 사용자에 의하여 실행 프로그램이 종료되는지를 판단하는 단계(S630);
    (2-1) 터미널 서비스 방식에 의한 실행인 경우, VDM서버(100)에 응용 프로그램을 실행할 서버정보를 요청하는 단계(S420);
    (2-2) 상기 응용 프로그램을 실행할 서버정보를 수신하는 단계(S430);
    (2-3) 사용자 응용 프로그램 사용상태DB(316)에 접속할 서보 정보를 기록하는 단계(S440);
    (2-4) TS 클라이언트 구동엔진(318)에 의해 응용 프로그램을 실행하는 단계(S450);
    (3-1) SOD(software on demand)방식에 의한 실행인 경우, 상기 S420 단계 내지 S440 단계를 실행하는 단계;
    (3-2) 로컬의 캐쉬영역을 검사하여(S500), 해당 응용 프로그램이 존재하는지 판단하는 단계(S510);
    (3-3) 해당 응용 프로그램이 존재하지 않는 경우, 응용 프로그램 서버(400)내의 SOD 서버로 해당 프로그램의 다운로드를 요청하여(S520), 다운로드 받는 단계(S530);
    (3-4) TS 클라이언트 구동엔진(317)에 의해 응용 프로그램을 실행하는 단계(S540);로 구성될 수 있는 것을 특징으로 하는 가상 데스크탑 컴퓨터 장치를 이용한 응용프로그램 운영방법.
KR10-2002-0080679A 2002-12-17 2002-12-17 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법 KR100527874B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0080679A KR100527874B1 (ko) 2002-12-17 2002-12-17 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0080679A KR100527874B1 (ko) 2002-12-17 2002-12-17 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법

Publications (2)

Publication Number Publication Date
KR20040053573A true KR20040053573A (ko) 2004-06-24
KR100527874B1 KR100527874B1 (ko) 2005-11-15

Family

ID=37346799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0080679A KR100527874B1 (ko) 2002-12-17 2002-12-17 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법

Country Status (1)

Country Link
KR (1) KR100527874B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464253B2 (en) 2008-12-03 2013-06-11 Samsung Electronics Co., Ltd. Apparatus and method for providing services using a virtual operating system
KR101495069B1 (ko) * 2012-12-14 2015-02-26 한국전자통신연구원 입출력 가상화 네트워크 인터페이스 카드 기반 가상 데스크탑 서비스 방법 및 장치
KR20230016915A (ko) * 2021-07-27 2023-02-03 엘아이지넥스원 주식회사 가상 훈련 서비스 제공 시스템 및 가상 훈련 서비스 제공 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100901014B1 (ko) 2008-07-15 2009-06-04 (주)노애드 가상 환경상에서의 응용 프로그램 실행 장치 및 방법
KR101026759B1 (ko) 2008-08-26 2011-04-08 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법
KR101316677B1 (ko) 2009-12-17 2013-10-10 한국전자통신연구원 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464253B2 (en) 2008-12-03 2013-06-11 Samsung Electronics Co., Ltd. Apparatus and method for providing services using a virtual operating system
US9459899B2 (en) 2008-12-03 2016-10-04 Samsung Electronics Co., Ltd. Apparatus and method for providing services using a virtual operating system
KR101495069B1 (ko) * 2012-12-14 2015-02-26 한국전자통신연구원 입출력 가상화 네트워크 인터페이스 카드 기반 가상 데스크탑 서비스 방법 및 장치
KR20230016915A (ko) * 2021-07-27 2023-02-03 엘아이지넥스원 주식회사 가상 훈련 서비스 제공 시스템 및 가상 훈련 서비스 제공 방법

Also Published As

Publication number Publication date
KR100527874B1 (ko) 2005-11-15

Similar Documents

Publication Publication Date Title
US9569194B2 (en) Virtual application manager
KR100382851B1 (ko) 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
US6108779A (en) Server and computer network that permit a client to be easily introduced into the computer network
Chandra et al. The collective: A cache-based system management architecture
US5805897A (en) System and method for remote software configuration and distribution
US7890689B2 (en) Virtual appliance management
RU2421785C2 (ru) Автоматизированное управление драйверами устройств
US6988102B2 (en) Techniques for managing configuration for a system of devices arranged in a network
US6189051B1 (en) System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
EP1636711B1 (en) System and method for distribution of software licenses in a networked computing environment
US7080372B1 (en) System and method for managing system configuration across a network
US7441024B2 (en) Method and apparatus for applying policies
US20150256590A1 (en) Method, server and system for converging desktop application and web application
US20130204975A1 (en) Applications as a service
US20100228819A1 (en) System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
EP0794479A1 (en) Method and apparatus for providing dynamic network file system client authentication
US20080115126A1 (en) System software update method
US5799187A (en) System and method for creating and maintaining a CD ROM client in a computer network
CN111538590A (zh) 一种基于cs架构的分布式数据采集方法及系统
US20040088700A1 (en) System and method for automatically installing software on client computers via a network
US7813964B2 (en) Click and run software purchasing
KR100527874B1 (ko) 가상 데스크탑 컴퓨터 장치 및 이를 이용한 응용프로그램운영방법
KR20070119821A (ko) 다중 사용자 환경에서의 서버 시스템을 이용한 운영체제백업/복구와 게임 백업/복구/업데이트/설치/실행 및운영체제 관리 시스템 및 그 방법
US20080046567A1 (en) Automatic detection and integration of network workloads

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee