KR100709678B1 - 분산형 가상 환경 관리 시스템 및 방법 - Google Patents

분산형 가상 환경 관리 시스템 및 방법 Download PDF

Info

Publication number
KR100709678B1
KR100709678B1 KR1020050007229A KR20050007229A KR100709678B1 KR 100709678 B1 KR100709678 B1 KR 100709678B1 KR 1020050007229 A KR1020050007229 A KR 1020050007229A KR 20050007229 A KR20050007229 A KR 20050007229A KR 100709678 B1 KR100709678 B1 KR 100709678B1
Authority
KR
South Korea
Prior art keywords
server
region
concurrent users
tree
users
Prior art date
Application number
KR1020050007229A
Other languages
English (en)
Other versions
KR20060086225A (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 KR1020050007229A priority Critical patent/KR100709678B1/ko
Publication of KR20060086225A publication Critical patent/KR20060086225A/ko
Application granted granted Critical
Publication of KR100709678B1 publication Critical patent/KR100709678B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

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 Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 협상 분산형 가상 환경(DVE) 관리 시스템에 관한 것이다. 마스터 서버는 제 1 슬래이브 서버로부터 재분배 요청을, 제 1 슬래이브 서버로부터 제 1 트리를, 제 2 슬래이브 서버로부터 제 2 트리를 수신하고, 제 1 영역의 제 1 부분이 제 2 슬래이브 서버에 의해 제어된다고 결정하고, 제 1 영역의 일부가 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송한다.
분산형, 관리, 가상, 환경, 서버

Description

분산형 가상 환경 관리 시스템 및 방법{DISTRIBUTED VIRTUAL ENVIRONMENT MANAGEMENT SYSTEMS AND METHODS}
도 1은 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도,
도 2는 마스터, 백업 및 슬래이브 서버에 적용가능한 하드웨어 환경을 도시하는 도,
도 3은 DVE 관리 시스템의 일실시예의 소프트웨어 아키텍쳐를 도시하는 도,
도 4는 로컬 영역에 대한 예시적인 쿼드트리(Quadtree)를 도시하는 도,
도 5a, 5b, 5c, 5d는 DVE 관리 방법의 일실시예에 대한 흐름도,
도 6a, 6b, 6c는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도,
도 7a, 7b는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도,
도 8은 예시적인 쿼드트리를 도시하는 도, 및
도 9는 예시적인 쿼드트리를 도시하는 도이다.
*도면의 주요 부분에 대한 설명*
11 : 프로세싱 장치 12 : 메모리
13 : 저장 장치 14 : 출력 장치
15 : 입력 장치 16 : 통신 장치
221, 231, 241, 251, 261 : 로컬 영역 관리 모듈
211 : VE 관리 모듈
본 발명은 분산형 가상 환경 관리에 관한 것이며, 보다 상세하게는, AOIM(Area Of Interest Management)의 시스템 및 방법에 관한 것이다.
분산형 가상 환경(DVE) 시스템에 의해, 지역적으로 분포된 사용자들이 서로 상호 작용하고, 인터넷과 같은 네트워크를 통해 그들의 상태 정보를 교환함으로써 가상 환경(VE)의 항상성 뷰(consistent view)를 공유할 수 있다. DVE 시스템이 VE의 크기와 동시 사용자 수 측면에서 성장하고 있기 때문에, 확장성(scalability), 즉, 그들의 상호 작용의 기능을 저하시키지 않고 대규모 VE에서 상호 작용하는 동시 사용자를 얼마나 많이 지원하는지가 중요한 문제로 되고 있다. 확장성을 개선하는 한가지 방법은 대부분의 상업적인 멀티플레이어 네트워크 게임 뿐만 아니라 몇몇 DVE 시스템에 채택된 멀티플 서버 아키텍처이다. 하나의 VE를 멀티플 영역에 참여시키면, 또한 그 영역을 관리할 책임을 멀티플 서버에 분산시키면, 개별적인 서버의 작업 부하를 상당히 감소시킬 수 있으며, 결과적으로, 시스템이 보다 많은 동시 사용자와 보다 큰 VE를 지원할 수 있다.
그러나, 사용자가 DVE에 비균일하게 분포되면, 서버간의 작업 부하의 불균형 이 발생, 즉, 몇몇 서버는 다른 서버보다 많은 밀집 영역을 관리하여 과중의 작업 부하에 시달리게 된다. 결과적으로, 과중 부하의 서버에 의해 관리되는 사용자는 서버 상태 갱신의 긴 대기 시간으로 인해 낮은 상호 작용 실행을 경험하게 된다. 이러한 상호 작용 실행의 저하를 피하기 위해서, 동적인 부하 분산 방법이 필요하다.
분산형 가상 환경(DVE) 관리 시스템이 제공된다. 이러한 시스템의 일실시예는 마스터 서버와, 제 1 슬래이브 서버와, 제 2 슬래이브 서버를 포함한다. 마스터 서버는 제 1 슬래이브 서버로부터 재분배 요청 및 제 1 트리를 수신하고, 제 2 슬래이브 서버로부터 제 2 트리를 수신한다. 제 1 트리는 복수의 제 1 노드를 포함한다. 각각의 제 1 노드는 얼마나 많은 사용자가 제 1 영역 또는 그 제 1 영역의 일부분에 존재하는지를 표시하는 제 1 동시 사용자 수(first concurrent user quantity)를 포함한다. 제 2 트리는 다수의 제 2 노드를 포함한다. 각각의 제 2 노드는 얼마나 많은 사용자가 제 2 영역 또는 그 제 2 영역의 일부분에 존재하는지를 표시하는 제 2 동시 사용자 수를 포함한다. 마스터 서버는, 제 1 영역의 제 1 부분이 제 2 영역과 인접하면, 또한, 제 2 영역의 제 2 동시 사용자 수와 제 1 영역의 제 1 부분의 제 1 동시 사용자 수의 합이 서버 부하 한계값의 소정의 퍼센트 값 또는 서버 부하 한계값보다 낮다면, 제 1 영역의 제 1 부분이 제 2 슬래이브 서버에 의해 제어된다고 결정한다. 추가로, 마스터 서버는 제 1 영역의 일부가 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하여, 제 1 슬래이브 서버와 제 2 슬래이브 서버간의 제 1 영역의 제 1 부분에 대한 제어의 교환을 가능하게 한다.
마스터 서버에 의해 수행되는 DVE 관리 방법이 또한 제공된다. 실행될 때 DVE 관리 방법을 수행하는 컴퓨터 코드 세트가 또한 제공된다.
분산형 가상 환경(DVE) 관리 시스템 및 방법은 실시예에 대한 다음의 상세한 설명 및 첨부 도면을 참조함으로써 보다 자명해질 것이다.
도 1은 로컬 접속을 이용하여 네트워크(바람직하게, 인터넷 또는 인트라넷) 상에서 작동하는 마스터 서버(21)와, 백업 서버(26)와, 슬래이브 서버(22, 23, 24, 25)를 포함하는 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도면이다. 당업자라면, 마스터 서버(21)와, 백업 서버(26)와 슬래이브 서버(22, 23, 24, 25)가 상이한 유형의 네트워킹 환경에서 접속되어 있으며, 라우터, 게이트웨이, 접근점, 기지국 시스템 등과 같은 여러 유형의 전송 수단을 통해 상이한 유형의 네트워킹 환경 간에 서로 통신한다는 것을 알 것이다. VE내의 4개의 영역(31, 32, 33, 34)은 슬래이브 서버(22, 23, 24, 25)에 의해 개별적으로 관리된다. 이들 영역의 크기는 동일하지 않을 수 있으며, 그들의 형상은 사각형 또는 직사각형으로 제한되지 않으며 다양한 다형태일 수 있다.
도 2는 프로세싱 장치(11), 메모리(12), 저장 장치(13), 입력 장치(14), 출력 장치(15) 및 통신 장치(16)를 포함하는, 마스터, 백업 및 슬래이브 서버(21 내지 25)에 적용가능한 하드웨어 환경을 도시하는 도면이다. 프로세싱 장치(11)는 버스(17)를 통해 메모리(12), 저장 장치(13), 입력 장치(14), 출력 장치(15) 및 폰 노이만 구조(Von Neumann architecture)의 통신 장치(16)와 접속되어 있다. 컴퓨터의 프로세서가 단일의 중앙 처리 장치(CPU), 마이크로프로세싱 장치(MPU) 또는 일반적으로 병렬 프로세싱 환경으로 불리우는 복수의 프로세싱 장치를 포함하는 바와 같이, 하나 이상의 프로세싱 장치(11)가 있을 수 있다. 바람직하게, 메모리(12)는 랜덤 액세스 메모리(RAM)이지만, 판독 전용 메모리(ROM) 또는 플래시 ROM을 또한 포함할 수 있다. 바람직하게, 메모리(12)는 프로세싱 장치(11)에 의해 실행되어 DVE 관리 기능을 수행하는 프로그램 모듈을 저장한다. 일반적으로, 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 프로그램 모듈은 루틴, 프로그램, 객체, 구성 요소, 스크립트, 웹 페이지 등을 포함한다. 또한, 당업자라면, 몇몇 실시예가 휴대용 장치, 멀티프로세서 기반의 전자 장치, 마이크로프로세서 기반의 전자 장치, 또는 프로그래밍가능 전자 장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함한 다른 컴퓨터 시스템 구성을 이용하여 실행될 수 있음을 알 것이다. 몇몇 실시예는, 통신 네트워크를 통해 링크된 원격 처리 장치에 의해 작업이 수행되는 분산형 컴퓨팅 환경에서 또한 실행될 수 있다. 분산형 컴퓨팅 환경에서, DCOM, CORBA, 웹 객체, 웹 서비스 또는 다른 유사한 구조 등의 여러 원격 액세스 구조를 기반으로 하는 로컬 및 원격 메모리 저장 장치 둘 다에 프로그램 모듈이 배치될 수 있다. 저장 장치(13)는 하드 드라이브, 자기 드라이브, 광학 드라이브, 휴대용 드라이브 또는 비휘발성 메모리 드라이브일 수 있다. 드라이브 및 관련 컴퓨터 판독가능 매체(필요한 경우)는 컴퓨터 판독가능 명령어, 데이터 구 조 및 프로그램 모듈을 비휘발성으로 저장한다. 메모리(12)로부터, 또한 조작자에 의한 입력 장치를 통해 수신된 프로그램 모듈에 의해 제어되는 프로세싱 장치(11)는 DVE 관리 기능을 감독한다.
도 3은 DVE 관리 시스템의 일실시예에 대한 소프트웨어 아키텍쳐를 도시하는 도면이다. 슬래이브 서버(22 내지 25)와 백업 서버(26)는 개별적으로 로컬 영역 관리 모듈(221 내지 261)을 포함하며, 마스터 서버(21)는 VE 관리 모듈(211)을 포함한다. 각각의 영역 관리 모듈은 쿼드트리를 이용하여 마스터 서버(21)에 의해 할당된 로컬 영역 내의 동시 사용자의 수를 유지하고, 자 노드(child node)를 제거하고, 하나의 노드에 대한 새로운 자 노드를 삽입하고, 동시 사용자 수에 따라서 쿼드트리와 함께 재분배 요청을 VE 관리 모듈(211)에 출력하고, VE 관리 모듈(211)로부터 재분배 결과를 수신한다. VE 관리 모듈(211)은 영역 축소 기능(area-receding functions)을 수행하여, 수신된 쿼드트리에 따라서, VE 내의 몇몇 영역과, 필요한 경우에 슬래이브 서버(22 내지 25)와 백업 서버(26)에 의해 관리되는 축소 영역을 관리하기 위해 추가적인 서버가 필요한지를 결정한다.
쿼드트리 내의 각각의 노드는 2차원으로 분할되어 4개의 자 노드로 되며, 로컬 영역의 전체/일부에 대응한다. 도 4는 4개의 부분(R41a 내지 R41d)을 포함하는 로컬 영역에 대한 예시적인 쿼드트리를 도시하는 도면이다. 노드(N41)는 전체 영역(R41) 내의 동시 사용자 수(31)를 저장하고, 노드(N41a, N41b, N41c, N41d)는 영역(R41a, R41b, R41d, R41c) 내의 동시 사용자 수(5, 5, 5, 16)를 저장한다. 서북(NW), 동북(NE), 남동(SE) 및 남서(SW) 부분의 4개의 서브 영역은 N41a, N41b, N41c, N41d와 같은 노드에 의해 순차적으로 정렬될 수 있다. 모든 노드에 대한 지역적인 정보가 개별적으로 저장될 수 있다.
도 5a, 5b, 5c, 5d는 추가적으로 명확하게 하기 위해서 점선으로 분리되어 있는 2개의 부분, 즉, 로컬 영역 관리 모듈(221, 231, 241 또는 251)에 의해 수행되는 단계를 나타내는 좌측부와, VE 관리 모듈(211)에 의해 수행되는 단계를 나타내는 우측부로 분할된 DVE 관리 방법의 실시예에 대한 흐름도를 도시한다.
단계 S411에서, 원 영역과 착신지 영역에 관한 정보와 함께, 원 영역으로부터 착신지 영역으로 사용자가 이동하였음을 표시하는 이동 메시지를 수신한다. 단계 S421에서, 다른 서버로부터 이동 메시지를 수신하고 있는지를 결정하고, 그렇다면, 프로세스는 단계 S453으로 진행되고, 그렇지 않으면, 프로세스는 단계 S423으로 진행된다. 이러한 결정은 유지된 쿼드트리 내에 원 영역이 존재하는지를 검출함으로써 이루어질 수 있다. 단계 S423에서, 수신된 원 영역에 대응하는 노드가 위치 결정된다(located). 단계 S425에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S431에서, 위치 결정된 노드가 루트 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S451로 진행되고, 그렇지 않으면, 프로세스가 단계 S433으로 진행된다. 단계 S433에서, 모 노드(parent node)가 위치 결정된다. 단계 S435에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S441에서, 갱신된 동시 사용자 수에 따라서, 그 위치 결정된 노드에 대한 자 노드가 합병될 필요가 있는지 결정한다. 예를 들어, 갱신된 동시 사용자 수가 영역 한계값으로 낮아지면, 그 위치 결정된 노드에 대한 자 노드가 합병되어야 한다. 영 역 한계값은 단일의 리프 노드(leaf node) 내의 동시 사용자 수를 제한하는데 사용된다. 단계 S443에서, 그 위치 결정된 노드에 대한 자 노드가 제거된다.
단계 S451에서, 다른 서버로 이동 메시지가 출력되고 있는지를 결정하고, 그렇다면, 프로세스는 종료되며, 그렇지 않으면, 프로세스는 단계 S453으로 진행된다. 유지된 쿼드트리내에 착신지 영역이 존재하는지를 검출함으로써 이러한 결정이 이루어질 수 있다. 단계 S453에서, 착신지 영역에 대응하는 노드가 위치 결정된다. 단계 S455에서, 그 위치 결정된 노드 내의 동시 사용자 수는 1만큼 증가된다. 단계 S461에서, 그 위치 결정된 노드가 분할될 필요가 있는지를 결정하고, 그렇다면, 프로세스는 단계 S463으로 진행되며, 그렇지 않으면, 프로세스는 단계 S471로 진행된다. 예를 들어, 갱신된 동시 사용자 수가 상술한 영역 한계값을 초과하면, 위치 결정된 노드를 분할할 필요가 있다. 단계 S463에서, 위치 결정된 노드에 대해 4개의 자 노드가 생성되고, 동시 사용자 수를 획득하게 된다. 단계 S471에서, 위치 결정된 노드가 루트 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S481로 진행되고, 그렇지 않으면, 프로세스는 단계 S473으로 진행된다. 단계 S473에서, 모 노드가 위치 결정된다. 단계 S481에서, 슬래이브 서버가 과부하 상태인지를 결정하고, 그렇다면, 프로세스는 단계 S483으로 진행하고, 그렇지 않으면, 프로세스는 종료된다. 예를 들어, 루트 노드 내의 동시 사용자 수가 서버 부하 한계값을 초과하면, 유지된 영역의 일부가 다른 슬래이브 서버 또는 백업 서버로 이동되어야 한다. 단계 S483에서, 루트 노드의 재분배 요청이 VE 관리 모듈(211)로 전송된다. 단계 S485에서, 재분배 결과가 VE 관리 모듈(211)로부터 수신 되어, 유지된 로컬 영역의 일부에 대한 슬래이브 서버와 백업 서버(필요한 경우)간의 제어의 교환(exchange)이 가능하게 된다. 단계 S491에서, 쿼드트리 요청이 수신된다. 단계 S493에서, 유지된 쿼드트리는 VE 관리 모듈(211)로 전송된다.
단계 S511에서, 루트 노드의 재분배 요청이 수신된다. 단계 S513에서, 수신된 루트 노드에 대응하는 영역을 밀집 영역으로 정의한다. 단계 S515에서, 쿼드트리 요청이 밀집 영역의 대응하는 슬래이브 서버에 전송된다. 단계 S517에서, 쿼드트리는 대응하는 슬래이브 서버로부터 수신된다. 수신된 쿼드트리의 각 노드는 어느 영역이 어느 슬래이브 서버에 의해 관리되는지를 표시하는 대응 슬래이브 서버 식별로 마킹된다는 것을 알아야 한다. 단계 S521에서, 밀집 영역에 인접하고 인접 영역간의 최소 동시 사용자 수를 가진 여유 영역(slack region)이 정의된다. 이러한 정의는 루트 노드 내의 동시 사용자 수를 검출함으로써 이루어질 수 있다. 단계 S523에서, 여유 영역과 밀집 영역의 동시 사용자의 수는 제 1 동시 사용자 수와 제 2 동시 사용자 수로서 각각 획득된다. 단계 S531에서, 밀집 영역에 대응하는 루트 노드가 위치 결정된다. 단계 S533에서, 현재의 노드에 대응하는 다음 노드가 위치 결정된다. 다음 노드 결정은 공지의 폭 우선 순회(breadth-first Traversal) 또는 깊이 우선 순회(depth-first Traversal)을 이용할 수 있다. 단계 S535에서, 위치 결정된 노드가 리프 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S541로 진행되고, 그렇지 않으면, 프로세스는 단계 S533로 진행한다. 단계 S541에서, 위치 결정된 노드에 대응하는 영역이 여유 영역에 인접하는지를 결정하고, 그렇다면, 프로세스는 단계 S543으로 진행하고, 그렇지 않으면, 프로세스는 단계 S533으로 진행한다. 바람직하게, Samet에 의해 도입된 효율적인 쿼드트리 순회 알고리즘을 이용하여 인접 노드들을 획득하게 된다. 단계 S543에서, 위치 결정된 노드는 여유 영역과의 합병을 위해서 마킹된다. 단계 S545에서, 위치 결정된 노드 내의 동시 사용자 수는 제 1 동시 사용자 수에 가산되고 제 2 동시 사용자 수로부터 감산된다. 단계 S551에서, 재분배 프로세스가 충분한지를 결정하고, 그렇다면, 프로세스는 단계 S553으로 진행하고, 그렇지 않으면, 프로세스는 단계 S561로 진행된다. 예를 들어, 제 2 동시 사용자 수가 상술한 서버 부하 한계값 또는 서버 부하 한계값의 소정의 퍼센트 값으로 떨어지면, 재분배 프로세스는 충분하다. 단계 S553에서, 최종적인 쿼드트리가 대응 슬래이브 서버에 전송된다.
단계 S561에서, 여유 영역이 채워지는지를 결정하고, 그렇다면, 프로세스는 단계 S571로 진행되고, 그렇지 않으면, 프로세스는 단계 S533로 진행된다. 예를 들어, 제 1 동시 사용자 수가 서버 부하 한계값 또는 서버 부하 한계값의 소정의 퍼센트 값을 초과하면, 여유 영역은 채워진다. 단계 S571에서, 백업 서버가 존재하는지를 결정하고, 그렇다면, 프로세스는 단계 S573으로 진행되고, 그렇지 않으면, 프로세스는 종료된다. 단계 S573에서, 현재의 노드에 대응하는 다음 노드가 위치 결정된다. 이용되는 순회 접근법은 단계 S533와 동일하다는 것을 알아야 한다. 단계 S575에서, 위치 결정된 노드가 리프 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S577로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S577에서, 위치 결정된 노드에 대응하는 영역이 여유 영역에 인접하는지를 결정하고, 그렇다면, 프로세스는 단계 S578로 진행되고, 그렇지 않으면, 프로세스는 단계 S573로 진행된다. 단계 S578에서, 위치 결정된 노드가 백업 서버용으로 마킹된다. 단계 S579에서, 위치 결정된 노드 내의 동시 사용자 수는 제 2 동시 사용자 수로부터 감산된다. 단계 S581에서, 재분배 프로세스가 충분한지를 결정하고, 그렇다면, 프로세스는 단계 S583로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S583에서, 최종 쿼드트리가 대응 슬래이브 서버와 백업 서버로 전송된다.
VE 관리 방법에 대한 상세한 설명은 다음의 예에서 주어진다. 도 6a, 6b, 6c는 로컬 영역 관리 모듈(221)에 의해 유지된 로컬 영역(R6)에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도면이다. 일실시예에서, 도 6a를 참조하면, 로컬 영역(R6)은 4개 부분(R61, R62, R63, R64)으로 논리적으로 분할되고, 서브 영역(R63)은 4개 부분(R631, R632, R633, R634)으로 논리적으로 분할된다. 영역(R6, R61, R62, R63, R64, R631, R632, R633, R634) 내의 동시 사용자 수는 30, 5, 5, 10, 10, 5, 2, 1, 2이다. 단계 S411에서, 영역(R634)으로부터 영역(R64)으로 사용자(U1)가 이동된다고 표시하는 이동 메시지는 로컬 영역 관리 모듈(221)에 의해 수신된다. 단계 S421, S423, S425에서, 노드(N634)의 동시 사용자 수는 1만큼 감소되어 1로 된다. 단계 S433 및 S435에서, 노드(N63)의 동시 사용자 수는 1만큼 감소되어 9로 된다. 영역 한계값이 10으로 설정되고, 단계 S441에서, 노드(N631, N632, N633, N634)는 합병된 것으로 결정된다. 단계 S443에서, 노드(N631, N632, N633, N634)는 제거된다. 단계 S431, S433, S435에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 감소되어 29로 된다. 일시적인 결과가 도 6b에 도시되어 있다. 다 음에, 단계 S431, S451, S453, S455에서, 노드(R64)의 동시 사용자 수는 1만큼 증가되어, 11로 된다. 단계 S461에서, 노드(R64)는 분할되는 것으로 결정된다. 단계 S463에서, 4개의 자 노드(N641, N642, N644, N643)가 생성되고, 그들의 동시 사용자 수는 4, 2, 2, 3이다. 단계 S471, S473, S455에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 증가되어 30으로 된다. 최종적으로, 프로세스가 종료되고, 최종 결과가 도 6c에 도시되어 있다.
도 7a 및 도 7b는 로컬 영역 관리 모듈(221)에 의해 유지되는 로컬 영역(R6)의 상이한 측면의 예시적인 쿼드트리를 도시하는 도면이다. 다른 예에서, 도 7a를 참조하면, 로컬 영역(R6)은 4개 부분(R61, R62, R63, R64)으로 논리적으로 분할되고, 서브 영역(R64)은 4개 부분(R641, R642, R643, R644)으로 논리적으로 분할된다. 영역(R6, R61, R62, R63, R64, R641, R642, R643, R644) 내의 동시 사용자 수는 30, 5, 5, 9, 11, 4, 2, 3, 2이다. 단계 S411에서, 다른 슬래이브 서버로부터 영역(N642)으로 사용자(U2)가 이동됨을 표시하는 이동 메시지는 로컬 영역 관리 모듈(221)에 의해 수신된다. 단계 S421, S453, S455에서, 노드(R642)의 동시 사용자 수는 1만큼 증가되어, 3으로 된다. 단계 S461, S471, S473, S455에서, 노드(N64)의 동시 사용자 수는 1만큼 증가되어 12로 된다. 단계 S461, S471, S473, S455에서, 루트 노드(N6)의 동시 사용자 수는 1만큼 증가되어 31으로 된다. 서버 부하 한계값이 30으로 설정되는 동안에, 단계 S481에서, 슬래이브 서버(221)는 과부하 상태인 것으로 결정된다. 단계 S483에서, 루트 노드(N6)의 재분배 요청은 마스터 서버(21)로 전송된다. 단계 S511에서, 루트 노드(N6)의 재분배 요청은 VE 관리 모듈(211)에 의해 수신된다. 단계 S513에서, 영역(R6)은 밀집 영역으로서 정의된다. 단계 S515에서, 쿼드트리 요청은 로컬 영역 관리 모듈(221, 231, 241, 251)로 각각 전송된다. 도 8은 로컬 영역 관리 모듈(221, 231, 241, 251)에 의해 각각 유지되는 예시적인 쿼드트리를 도시하는 도면이다. 단계 S517에서, 쿼드트리(T6 내지 T9)는 로컬 영역 관리 모듈(221, 231, 241, 251)로부터 수신된다. 단계 S521에서, 영역(R7)은 여유 영역으로서 정의된다. 단계 S523에서, 제 1 수(first quantity), 즉 22와 제 2 수(second quantity), 즉, 31이 획득된다. 깊이 우선 순회가 이용되는 동안에, 단계 S531 내지 S541에서, 노드(N61, N62)는 순차적으로 위치 결정된다. 단계 S543에서, 노드(N62)(즉, 영역(R62))는 로컬 영역 관리 모듈(231) 용으로 마킹된다. 단계 S545에서, 제 1 및 제 2 수는 각각 26과 27로 갱신된다. 단계 S551에서, 재분배 프로세스는 충분한 것으로서 결정된다. 최종적으로, 단계 S553에서, 최종 쿼드트리는 로컬 영역 관리 모듈(221, 231)로 전송되어, 영역(R62)의 제어를 교환할 수 있게 한다.
다른 예로, 단계 S511에서, 루트 노드(N6)의 재분배 요청은 VE 관리 모듈(211)에 의해 수신된다. 단계 S513에서, 영역(R6)은 밀집 영역으로서 정의된다. 단계 S515에서, 쿼드트리 요청은 로컬 영역 관리 모듈(221, 231, 241, 251)로 각각 전송된다. 도 9는 로컬 영역 관리 모듈(221, 231, 241, 251)에 의해 각각 유지되는 예시적인 쿼드트리를 도시하는 도면이다. 단계 S517에서, 쿼드트리(T6 내지 T9)는 로컬 영역 관리 모듈(221, 231, 241, 251)로부터 수신된다. 단계 S521에서, 영역(R7)은 여유 영역으로서 정의된다. 단계 S523에서, 제 1 수, 즉 22와 제 2 수, 즉 38이 획득된다. 깊이 우선 순회가 이용되는 동안에, 단계 S531 내지 S541에서, 노드(N61, N62)가 순차적으로 위치 결정된다. 단계 S543에서, 노드(N62)(즉, 영역(N62))는 로컬 영역 관리 모듈(231) 용으로 마킹된다. 단계 S545에서, 제 1 및 제 2 수는 각각 27 및 33으로 갱신된다. 단계 S551에서, 재분배 프로세스는 불충분한 것으로 결정된다. 단계 S561에서, 제 1 수가 서버 부하 한계값의 80%을 초과하기 때문에, 여유 영역은 채워진 것으로 결정된다. 단계 S571 내지 S577에서, 노드(N63, N64, N641, N642)가 순차적으로 위치 결정된다. 단계 S578에서, 노드(N642)는 로컬 영역 관리 모듈(261) 용으로 마킹된다. 단계 S579에서, 제 2 수는 28로 갱신된다. 단계 S581에서, 재분배 프로세스는 충분한 것으로 결정된다. 최종적으로, 단계 S583에서, 최종 쿼드트리는 로컬 영역 관리 모듈(221, 231, 261)로 전송되어, 영역(R62, R642)의 제어가 교환될 수 있게 한다. 상술한 실시예는, 수신된 쿼드트리가 마스터 서버(21)에서 4개의 개별적인 트리처럼 개별적으로 취급됨을 개시하고 있지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서, 수신된 쿼드트리를 단일의 쿼드트리에 합병할 수 있으며, 특정의 프로세스 단계에 맞게 적절히 수정할 수 있다.
DVE 관리 시스템 및 방법, 또는 이들의 특정의 측면 또는 일부분은 플로피 디스켓, CD-ROMS, 하드 드라이브, 또는 다른 기계 판독가능 저장 매체와 같은 유형의 매체에 내장된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 여기서, 프로그램 코드가, 컴퓨터와 같은 기계에 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 개시된 방법 및 시스템은 전기 배선 또는 케이블과 같 은 몇몇 전송 매체를 통해, 광섬유를 통해, 또는 다른 형태의 전송 수단을 통해 전송된 프로그램 코드의 형태로 또한 구현될 수 있으며, 여기서, 프로그램 코드가 수신되어 컴퓨터와 같은 기계로 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 프로세서와 조합되어, 특정의 논리 회로와 유사하게 동작하는 전용 장치를 제공한다.
본 발명은 바람직한 실시예에 관련하여 설명되었지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서 여러 변경 및 수정을 가할 수 있다. 따라서, 본 발명의 범위는 다음의 청구 범위 및 그 등가에 의해 정의되고 보호될 수 있다.
본 발명에 따르면, 상호 작용 실행의 저하를 피하는 동적인 부하 분산 방법을 제공할 수 있다.

Claims (10)

  1. 분산형 가상 환경(DVE) 관리 시스템으로서,
    제 1 슬래이브 서버로부터 재분배 요청을 수신하고,
    얼마나 많은 사용자가 제 1 영역 또는 상기 제 1 영역의 일부 내에 존재하는지를 표시하는 제 1 동시 사용자 수를 개별적으로 포함하는 복수의 제 1 노드를 포함하는 제 1 트리를 상기 제 1 슬래이브 서버로부터 수신하고,
    얼마나 많은 사용자가 제 2 영역 또는 상기 제 2 영역의 일부 내에 존재하는 지를 표시하는 제 2 동시 사용자 수를 개별적으로 포함하는 복수의 제 2 노드를 포함하는 제 2 트리를 제 2 슬래이브 서버로부터 수신하고,
    상기 제 1 영역의 제 1 부분이 상기 제 2 영역에 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합이 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값보다 낮으면, 상기 제 1 영역의 제 1 부분이 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하고, 그리고
    상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하여, 상기 제 1 슬래이브 서버와 상기 제 2 슬래이브 서버간의 상기 제 1 영역의 상기 제 1 부분의 제어의 교환을 가능하게 하는 마스터 서버를 포함하는 분산형 가상 환경(DVE) 관리 시스템에 있어서,
    상기 제 1 트리와 상기 제 2 트리는 쿼드트리(Quadtree)와 호환가능한 것인 분산형 가상 환경(DVE) 관리 시스템.
  2. 제 1 항에 있어서, 상기 마스터 서버는, 얼마나 많은 사용자가 제 3 영역 또는 상기 제 3 영역의 일부 내에 존재하는지를 표시하는 제 3 동시 사용자 수를 개별적으로 포함하는 복수의 제 3 노드를 포함하는 제 3 트리를 수신하며, 또한, 상기 제 1 영역의 상기 제 1 부분이 상기 제 3 영역에 인접하고 상기 제 2 영역의 상기 제 2 동시 사용자 수가 상기 제 3 영역의 상기 제 3 동시 사용자 수보다 낮으면, 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하는 것인 분산형 가상 환경(DVE) 관리 시스템.
  3. 삭제
  4. 제 1 항에 있어서, 상기 마스터 서버는, 상기 제 1 영역의 제 2 부분이 상기 제 2 영역과 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합과, 상기 제 1 영역의 상기 제 2 부분의 상기 제 1 동시 사용자 수가 상기 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값을 초과하면, 상기 제 1 영역의 제 2 부분이 백업 서버에 의해 제어된다고 결정하여, 상기 제 1 슬래이브 서버와 상기 백업 서버간의 상기 제 1 영역의 상기 제 2 부분의 제어의 교환을 가능하게 하는 것인 분산형 가상 환경(DVE) 관리 시스템.
  5. 제 1 항에 있어서, 상기 제 1 영역의 상기 제 1 부분의 결정은 깊이 우선 순회(traversal) 또는 폭 우선 순회(traversal)로 상기 제 1 트리를 횡단함으로써 달성되는 것인 분산형 가상 환경(DVE) 관리 시스템.
  6. 제 1 항에 있어서, 상기 제 1 슬래이브 서버는, 상기 제 1 트리 내의 상기 루트 노드의 상기 제 1 동시 사용자 수가 서버 부하 한계값을 초과하는 것으로 검출될 때 상기 재분배 요청을 송신하는 것인 분산형 가상 환경(DVE) 관리 시스템.
  7. 제 1 항에 있어서, 상기 제 1 슬래이브 서버는, 상기 제 1 동시 사용자 수가 영역 한계값보다 낮은 것으로 검출될 때 상기 제 1 노드 중 하나의 노드에 대한 모든 자 노드(child node)를 제거하고, 상기 제 1 동시 사용자 수가 상기 영역 한계값을 초과하는 것으로 검출될 때 영역 분할을 위한 4개의 자 노드를 생성하는 것인 분산형 가상 환경(DVE) 관리 시스템.
  8. 제 7 항에 있어서, 상기 제 2 슬래이브 서버는, 상기 제 2 동시 사용자 수가 영역 한계값보다 낮은 것으로 검출될 때 상기 제 2 노드 중 하나의 노드에 대한 모든 자 노드를 제거하고, 상기 제 2 동시 사용자 수가 상기 영역 한계값을 초과하는 것으로 검출될 때 상기 제 2 노드 중 하나에 대해 4개의 자 노드를 생성하는 것인 분산형 가상 환경(DVE) 관리 시스템.
  9. 마스터 서버에 의해 로딩되어 실행되는 분산형 가상 환경(DVE) 관리 방법으로서,
    상기 마스터 서버가 제 1 슬래이브 서버로부터 재분배 요청을 수신하는 단계;
    상기 마스터 서버가, 얼마나 많은 사용자가 제 1 영역 또는 상기 제 1 영역의 일부 내에 존재하는지를 표시하는 제 1 동시 사용자 수를 개별적으로 포함하는 복수의 제 1 노드를 포함하는 제 1 트리를 상기 제 1 슬래이브 서버로부터 수신하는 단계;
    상기 마스터 서버가, 얼마나 많은 사용자가 제 2 영역 또는 상기 제 2 영역의 일부 내에 존재하는 지를 표시하는 제 2 동시 사용자 수를 개별적으로 포함하는 복수의 제 2 노드를 포함하는 제 2 트리를 제 2 슬래이브 서버로부터 수신하는 단계;
    상기 마스터 서버가, 상기 제 1 영역의 제 1 부분이 상기 제 2 영역에 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합이 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값보다 낮으면, 상기 제 1 영역의 제 1 부분이 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하는 단계; 및
    상기 마스터 서버가, 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하는 단계;를 포함하고,
    상기 제 1 슬래이브 서버와 상기 제 2 슬래이브 서버간의 상기 제 1 영역의 상기 제 1 부분의 제어의 교환을 가능하게 하는 것인 분산형 가상 환경(DVE) 관리 방법에 있어서,
    상기 제 1 영역의 상기 제 1 부분의 결정은 깊이 우선 순회(traversal) 또는 폭 우선 순회(traversal)로 상기 제 1 트리를 횡단함으로써 달성되는 것인 분산형 가상 환경(DVE) 관리 방법.
  10. 삭제
KR1020050007229A 2005-01-26 2005-01-26 분산형 가상 환경 관리 시스템 및 방법 KR100709678B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050007229A KR100709678B1 (ko) 2005-01-26 2005-01-26 분산형 가상 환경 관리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050007229A KR100709678B1 (ko) 2005-01-26 2005-01-26 분산형 가상 환경 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20060086225A KR20060086225A (ko) 2006-07-31
KR100709678B1 true KR100709678B1 (ko) 2007-04-20

Family

ID=37175635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050007229A KR100709678B1 (ko) 2005-01-26 2005-01-26 분산형 가상 환경 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100709678B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113943B1 (ko) * 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100956636B1 (ko) * 2007-12-07 2010-05-11 한국전자통신연구원 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법
KR101340323B1 (ko) * 2011-10-31 2013-12-11 한국과학기술정보연구원 분산 지향 데이터 접근 시스템 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (ja) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (ja) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113943B1 (ko) * 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템

Also Published As

Publication number Publication date
KR20060086225A (ko) 2006-07-31

Similar Documents

Publication Publication Date Title
CN109976774B (zh) 区块链节点部署方法、装置、设备和存储介质
CN106708622B (zh) 集群资源处理方法和系统、资源处理集群
CN104580226B (zh) 一种共享会话数据的系统和方法
US10511506B2 (en) Method and device for managing virtualized network function
CN111522661A (zh) 一种微服务管理系统、部署方法及相关设备
US8145732B2 (en) Live network configuration within a link based computing system
CN105426245A (zh) 包括分散的部件的动态地组成的计算节点
CN109886693B (zh) 区块链系统的共识实现方法、装置、设备和介质
CN104995604A (zh) 虚拟机的资源分配方法及装置
CN106134141A (zh) 一种更新网络服务描述器nsd的方法及装置
US20110282986A1 (en) Network traffic optimization
CN112187864B (zh) 负载均衡方法、装置、存储介质及电子设备
CN100489791C (zh) 本地机构分割客户机资源的方法和系统
CN111224990B (zh) 一种分布式微隔离网络的流量牵引方法及系统
CN113014611B (zh) 一种负载均衡方法及相关设备
CN114124948B (zh) 一种云端组件高可用的方法、装置、设备及可读介质
KR100709678B1 (ko) 분산형 가상 환경 관리 시스템 및 방법
KR102191586B1 (ko) 블록체인 기반의 유휴 컴퓨팅 자원 공유를 통한 포그 컴퓨팅 방법
CN105843693A (zh) 一种面向高速磁浮交通仿真的共享内存方法
CN109039790A (zh) 一种集群间通信方法及相关装置
CN106302709A (zh) 一种网络文件管理的实现方法和系统
CN114039798A (zh) 一种数据传输方法、装置及电子设备
CN106059940A (zh) 一种流量控制方法及装置
CN114153607A (zh) 跨节点边缘计算负载均衡方法、设备、可读存储介质
CN103140851A (zh) 包括中间件机环境的系统

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180330

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 13