KR20060086225A - Distributed virtual environment management systems and methods - Google Patents

Distributed virtual environment management systems and methods Download PDF

Info

Publication number
KR20060086225A
KR20060086225A KR1020050007229A KR20050007229A KR20060086225A KR 20060086225 A KR20060086225 A KR 20060086225A KR 1020050007229 A KR1020050007229 A KR 1020050007229A KR 20050007229 A KR20050007229 A KR 20050007229A KR 20060086225 A KR20060086225 A KR 20060086225A
Authority
KR
South Korea
Prior art keywords
server
region
slave server
tree
concurrent users
Prior art date
Application number
KR1020050007229A
Other languages
Korean (ko)
Other versions
KR100709678B1 (en
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/en
Publication of KR20060086225A publication Critical patent/KR20060086225A/en
Application granted granted Critical
Publication of KR100709678B1 publication Critical patent/KR100709678B1/en

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

Abstract

본 발명은 협상 분산형 가상 환경(DVE) 관리 시스템에 관한 것이다. 마스터 서버는 제 1 슬래이브 서버로부터 재분배 요청을, 제 1 슬래이브 서버로부터 제 1 트리를, 제 2 슬래이브 서버로부터 제 2 트리를 수신하고, 제 1 영역의 제 1 부분이 제 2 슬래이브 서버에 의해 제어된다고 결정하고, 제 1 영역의 일부가 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송한다. The present invention relates to a negotiated distributed virtual environment (DVE) management system. The master server receives a redistribution request from the first slave server, a first tree from the first slave server, and a second tree from the second slave server, the first portion of the first zone being the second slave server. Determine that it is controlled by the second slave server and transmit a result indicating that part of the first area is controlled by the second slave server.

분산형, 관리, 가상, 환경, 서버Distributed, managed, virtual, environment, server

Description

분산형 가상 환경 관리 시스템 및 방법{DISTRIBUTED VIRTUAL ENVIRONMENT MANAGEMENT SYSTEMS AND METHODS}DISTRIBUTED VIRTUAL ENVIRONMENT MANAGEMENT SYSTEMS AND METHODS}

도 1은 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도, 1 illustrates one embodiment of a distributed virtual environment (DVE) system;

도 2는 마스터, 백업 및 슬래이브 서버에 적용가능한 하드웨어 환경을 도시하는 도, 2 illustrates a hardware environment applicable to master, backup, and slave servers;

도 3은 DVE 관리 시스템의 일실시예의 소프트웨어 아키텍쳐를 도시하는 도, 3 illustrates a software architecture of one embodiment of a DVE management system;

도 4는 로컬 영역에 대한 예시적인 쿼드트리(Quadtree)를 도시하는 도, 4 illustrates an example Quadtree for a local area;

도 5a, 5b, 5c, 5d는 DVE 관리 방법의 일실시예에 대한 흐름도, 5A, 5B, 5C, and 5D are flowcharts of one embodiment of a DVE management method;

도 6a, 6b, 6c는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도, 6A, 6B, 6C illustrate exemplary quadtrees of different aspects for the local area;

도 7a, 7b는 로컬 영역에 대한 상이한 측면의 예시적인 쿼드트리를 도시하는 도, 7A, 7B illustrate exemplary quadtrees of different aspects for a local area, FIGS.

도 8은 예시적인 쿼드트리를 도시하는 도, 및8 illustrates an example quadtree, and

도 9는 예시적인 쿼드트리를 도시하는 도이다. 9 is a diagram illustrating an exemplary quadtree.

*도면의 주요 부분에 대한 설명** Description of the main parts of the drawings *

11 : 프로세싱 장치 12 : 메모리11 processing unit 12 memory

13 : 저장 장치 14 : 출력 장치13: storage device 14: output device

15 : 입력 장치 16 : 통신 장치15 input device 16 communication device

221, 231, 241, 251, 261 : 로컬 영역 관리 모듈 221, 231, 241, 251, 261: local area management module

211 : VE 관리 모듈 211: VE management module

본 발명은 분산형 가상 환경 관리에 관한 것이며, 보다 상세하게는, AOIM(Area Of Interest Management)의 시스템 및 방법에 관한 것이다. The present invention relates to distributed virtual environment management, and more particularly, to a system and method of AOIM (Area Of Interest Management).

분산형 가상 환경(DVE) 시스템에 의해, 지역적으로 분포된 사용자들이 서로 상호 작용하고, 인터넷과 같은 네트워크를 통해 그들의 상태 정보를 교환함으로써 가상 환경(VE)의 항상성 뷰(consistent view)를 공유할 수 있다. DVE 시스템이 VE의 크기와 동시 사용자 수 측면에서 성장하고 있기 때문에, 확장성(scalability), 즉, 그들의 상호 작용의 기능을 저하시키지 않고 대규모 VE에서 상호 작용하는 동시 사용자를 얼마나 많이 지원하는지가 중요한 문제로 되고 있다. 확장성을 개선하는 한가지 방법은 대부분의 상업적인 멀티플레이어 네트워크 게임 뿐만 아니라 몇몇 DVE 시스템에 채택된 멀티플 서버 아키텍처이다. 하나의 VE를 멀티플 영역에 참여시키면, 또한 그 영역을 관리할 책임을 멀티플 서버에 분산시키면, 개별적인 서버의 작업 부하를 상당히 감소시킬 수 있으며, 결과적으로, 시스템이 보다 많은 동시 사용자와 보다 큰 VE를 지원할 수 있다. With a distributed virtual environment (DVE) system, geographically dispersed users can share a consistent view of the virtual environment (VE) by interacting with each other and exchanging their state information over a network such as the Internet. have. Since DVE systems are growing in terms of VE size and number of concurrent users, it is important that scalability, i.e., how many concurrent users they support interacting in large VEs without sacrificing the functionality of their interactions. It is becoming. One way to improve scalability is the multiple server architecture employed in some DVE systems, as well as most commercial multiplayer network games. Joining a VE to multiple zones, and also distributing the responsibility for managing that zone across multiple servers, can significantly reduce the workload of individual servers, resulting in a system that has more concurrent users and larger VEs. Can support

그러나, 사용자가 DVE에 비균일하게 분포되면, 서버간의 작업 부하의 불균형 이 발생, 즉, 몇몇 서버는 다른 서버보다 많은 밀집 영역을 관리하여 과중의 작업 부하에 시달리게 된다. 결과적으로, 과중 부하의 서버에 의해 관리되는 사용자는 서버 상태 갱신의 긴 대기 시간으로 인해 낮은 상호 작용 실행을 경험하게 된다. 이러한 상호 작용 실행의 저하를 피하기 위해서, 동적인 부하 분산 방법이 필요하다. However, if users are distributed non-uniformly in the DVE, there is an unbalanced workload among servers, i.e., some servers manage more dense areas than others and suffer from heavy workloads. As a result, users managed by servers with heavy loads experience low interaction performance due to the long latency of server status updates. In order to avoid this degradation of interaction performance, a dynamic load balancing method is needed.

분산형 가상 환경(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 부분에 대한 제어의 교환을 가능하게 한다. A distributed virtual environment (DVE) management system is provided. One embodiment of such a system includes a master server, a first slave server, and a second slave server. The master server receives the redistribution request and the first tree from the first slave server and receives the second tree from the second slave server. The first tree includes a plurality of first nodes. Each first node includes a first concurrent user quantity indicating how many users are present in the first region or a portion of the first region. The second tree includes a plurality of second nodes. Each second node includes a second number of concurrent users indicating how many users are present in the second area or a portion of the second area. In the master server, if the first portion of the first zone is adjacent to the second zone, the sum of the number of second concurrent users in the second zone and the first concurrent user in the first zone of the first zone is the server load limit. If the value is below a predetermined percentage value or server load threshold, it is determined that the first portion of the first region is controlled by the second slave server. In addition, the master server sends a result indicating that a portion of the first zone is controlled by the second slave server, thereby controlling the first portion of the first zone between the first slave server and the second slave server. Enable exchange of

마스터 서버에 의해 수행되는 DVE 관리 방법이 또한 제공된다. 실행될 때 DVE 관리 방법을 수행하는 컴퓨터 코드 세트가 또한 제공된다. Also provided is a DVE management method performed by a master server. A computer code set is also provided that performs the DVE management method when executed.

분산형 가상 환경(DVE) 관리 시스템 및 방법은 실시예에 대한 다음의 상세한 설명 및 첨부 도면을 참조함으로써 보다 자명해질 것이다. Distributed virtual environment (DVE) management systems and methods will become more apparent by reference to the following detailed description of embodiments and the accompanying drawings.

도 1은 로컬 접속을 이용하여 네트워크(바람직하게, 인터넷 또는 인트라넷) 상에서 작동하는 마스터 서버(21)와, 백업 서버(26)와, 슬래이브 서버(22, 23, 24, 25)를 포함하는 분산형 가상 환경(DVE) 시스템의 일실시예를 도시하는 도면이다. 당업자라면, 마스터 서버(21)와, 백업 서버(26)와 슬래이브 서버(22, 23, 24, 25)가 상이한 유형의 네트워킹 환경에서 접속되어 있으며, 라우터, 게이트웨이, 접근점, 기지국 시스템 등과 같은 여러 유형의 전송 수단을 통해 상이한 유형의 네트워킹 환경 간에 서로 통신한다는 것을 알 것이다. VE내의 4개의 영역(31, 32, 33, 34)은 슬래이브 서버(22, 23, 24, 25)에 의해 개별적으로 관리된다. 이들 영역의 크기는 동일하지 않을 수 있으며, 그들의 형상은 사각형 또는 직사각형으로 제한되지 않으며 다양한 다형태일 수 있다. 1 is a distributed system comprising a master server 21, a backup server 26, and a slave server 22, 23, 24, 25 operating on a network (preferably the Internet or intranet) using a local connection. 1 is a diagram illustrating an embodiment of a type virtual environment (DVE) system. Those skilled in the art will appreciate that the master server 21, the backup server 26, and the slave servers 22, 23, 24, 25 are connected in different types of networking environments, such as routers, gateways, access points, base station systems, and the like. It will be appreciated that different types of transport means communicate with each other between different types of networking environments. The four areas 31, 32, 33, 34 in the VE are individually managed by the slave servers 22, 23, 24, 25. The size of these regions may not be the same, and their shape is not limited to squares or rectangles and may be various polymorphs.

도 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 관리 기능을 감독한다. FIG. 2 shows a master, backup and slave server 21, including a processing device 11, a memory 12, a storage device 13, an input device 14, an output device 15 and a communication device 16. 25 is a diagram showing a hardware environment applicable to 25). The processing device 11 communicates with the memory 12, the storage device 13, the input device 14, the output device 15 and the communication device 16 of the Von Neumann architecture via the bus 17. Connected. There may be one or more processing units 11, as the processor of the computer includes a single central processing unit (CPU), microprocessing unit (MPU), or a plurality of processing units, commonly referred to as parallel processing environments. Preferably, memory 12 is random access memory (RAM), but may also include read-only memory (ROM) or flash ROM. Preferably, memory 12 stores program modules that are executed by processing device 11 to perform DVE management functions. Generally, program modules that perform particular tasks or implement particular abstract data types include routines, programs, objects, components, scripts, web pages, and the like. In addition, those skilled in the art will appreciate that some embodiments may utilize other computer system configurations, including portable devices, multiprocessor-based electronic devices, microprocessor-based electronic devices, or programmable electronic devices, network PCs, minicomputers, mainframe computers, and the like. It will be appreciated that it can be executed. Some embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices that are based on various remote access structures such as DCOM, CORBA, Web Objects, Web Services, or other similar structures. The storage device 13 may be a hard drive, a magnetic drive, an optical drive, a portable drive or a nonvolatile memory drive. The drive and associated computer readable medium (if necessary) store computer readable instructions, data structures, and program modules non-volatilely. The processing device 11 controlled by the program module received from the memory 12 and also through the input device by the operator supervises the DVE management function.

도 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)에 의해 관리되는 축소 영역을 관리하기 위해 추가적인 서버가 필요한지를 결정한다. 3 is a diagram illustrating a software architecture for one embodiment of a DVE management system. The slave servers 22 to 25 and the backup server 26 individually include local area management modules 221 to 261, and the master server 21 includes a VE management module 211. Each zone management module uses the quadtree to maintain the number of concurrent users in the local zone allocated by the master server 21, remove child nodes, and create new child nodes for one node. Insert, output a redistribution request with the quadtree to the VE management module 211 according to the number of concurrent users, and receive a redistribution result from the VE management module 211. The VE management module 211 performs area-receding functions so that, depending on the received quadtree, several areas within the VE and, if necessary, the slave servers 22 to 25 and the backup server 26. Determine if additional servers are needed to manage the reduced area managed by.

쿼드트리 내의 각각의 노드는 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와 같은 노드에 의해 순차적으로 정렬될 수 있다. 모든 노드에 대한 지역적인 정보가 개별적으로 저장될 수 있다. Each node in the quadtree is divided into two dimensions into four child nodes, corresponding to all / parts of the local area. 4 is a diagram illustrating an exemplary quadtree for a local area that includes four portions R41a through R41d. The node N41 stores the number of concurrent users 31 in the entire area R41, and the nodes N41a, N41b, N41c, and N41d store the number of concurrent users 5, 5 in the areas R41a, R41b, R41d, and R41c. , 5, 16). The four sub-regions of the northwest (NW), northeast (NE), southeast (SE), and southwest (SW) portions may be sequentially arranged by nodes such as N41a, N41b, N41c, and N41d. Local information about all nodes can be stored separately.

도 5a, 5b, 5c, 5d는 추가적으로 명확하게 하기 위해서 점선으로 분리되어 있는 2개의 부분, 즉, 로컬 영역 관리 모듈(221, 231, 241 또는 251)에 의해 수행되는 단계를 나타내는 좌측부와, VE 관리 모듈(211)에 의해 수행되는 단계를 나타내는 우측부로 분할된 DVE 관리 방법의 실시예에 대한 흐름도를 도시한다. 5A, 5B, 5C, and 5D show two parts separated by dashed lines for further clarity, i.e., the left part showing the steps performed by the local area management module 221, 231, 241 or 251, and VE management A flowchart for an embodiment of a DVE management method divided into right parts representing the steps performed by module 211 is shown.

단계 S411에서, 원 영역과 착신지 영역에 관한 정보와 함께, 원 영역으로부터 착신지 영역으로 사용자가 이동하였음을 표시하는 이동 메시지를 수신한다. 단계 S421에서, 다른 서버로부터 이동 메시지를 수신하고 있는지를 결정하고, 그렇다면, 프로세스는 단계 S453으로 진행되고, 그렇지 않으면, 프로세스는 단계 S423으로 진행된다. 이러한 결정은 유지된 쿼드트리 내에 원 영역이 존재하는지를 검출함으로써 이루어질 수 있다. 단계 S423에서, 수신된 원 영역에 대응하는 노드가 위치 결정된다(located). 단계 S425에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S431에서, 위치 결정된 노드가 루트 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S451로 진행되고, 그렇지 않으면, 프로세스가 단계 S433으로 진행된다. 단계 S433에서, 모 노드(parent node)가 위치 결정된다. 단계 S435에서, 위치 결정된 노드 내의 동시 사용자 수가 1만큼 감소된다. 단계 S441에서, 갱신된 동시 사용자 수에 따라서, 그 위치 결정된 노드에 대한 자 노드가 합병될 필요가 있는지 결정한다. 예를 들어, 갱신된 동시 사용자 수가 영역 한계값으로 낮아지면, 그 위치 결정된 노드에 대한 자 노드가 합병되어야 한다. 영 역 한계값은 단일의 리프 노드(leaf node) 내의 동시 사용자 수를 제한하는데 사용된다. 단계 S443에서, 그 위치 결정된 노드에 대한 자 노드가 제거된다. In step S411, a movement message indicating that the user has moved from the original area to the destination area is received together with the information about the original area and the destination area. In step S421, it is determined whether a mobile message is being received from another server, and if so, the process proceeds to step S453, otherwise, the process proceeds to step S423. This determination can be made by detecting whether the original area exists in the maintained quadtree. In step S423, a node corresponding to the received original area is located. In step S425, the number of concurrent users in the located node is reduced by one. In step S431, it is determined whether the located node is the root node, and if so, the process proceeds to step S451; otherwise, the process proceeds to step S433. In step S433, a parent node is located. In step S435, the number of concurrent users in the located node is reduced by one. In step S441, according to the updated number of concurrent users, it is determined whether the child node for the located node needs to be merged. For example, if the number of updated concurrent users is lowered to the zone limit, the child nodes for that located node must be merged. The zone limit is used to limit the number of concurrent users in a single leaf node. In step S443, the child node for the located node is removed.

단계 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)로 전송된다. In step S451, it is determined whether a move message is output to another server, and if so, the process ends, otherwise, the process proceeds to step S453. This determination can be made by detecting whether a destination area exists in the maintained quadtree. In step S453, the node corresponding to the destination area is located. In step S455, the number of concurrent users in the located node is increased by one. In step S461, it is determined whether the located node needs to be split, and if so, the process proceeds to step S463; otherwise, the process proceeds to step S471. For example, if the number of updated concurrent users exceeds the area threshold described above, it is necessary to partition the located node. In step S463, four child nodes are created for the located nodes, and the number of simultaneous users is obtained. In step S471, it is determined whether the located node is the root node, and if so, the process proceeds to step S481, otherwise, the process proceeds to step S473. In step S473, the parent node is located. In step S481, it is determined whether the slave server is overloaded, and if so, the process proceeds to step S483, otherwise, the process ends. For example, if the number of concurrent users in the root node exceeds the server load limit, some of the retained area must be moved to another slave server or backup server. In step S483, a redistribution request of the root node is sent to the VE management module 211. In step S485, the redistribution result is received from the VE management module 211, so that control exchange between the slave server and the backup server (if necessary) for a part of the maintained local area is possible. In step S491, a quadtree request is received. In step S493, the retained quadtree is transmitted to the VE management module 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에서, 최종적인 쿼드트리가 대응 슬래이브 서버에 전송된다. In step S511, a redistribution request of the root node is received. In step S513, the area corresponding to the received root node is defined as a dense area. In step S515, a quadtree request is sent to the corresponding slave server in the dense area. In step S517, the quadtree is received from the corresponding slave server. It should be noted that each node of the received quadtree is marked with a corresponding slave server identification that indicates which area is managed by which slave server. In step S521, a slack region is defined that is adjacent to the dense area and has a minimum number of simultaneous users between the adjacent areas. This definition can be made by detecting the number of concurrent users in the root node. In step S523, the number of simultaneous users in the free area and the dense area is obtained as the number of first and second concurrent users, respectively. In step S531, a root node corresponding to the dense area is located. In step S533, the next node corresponding to the current node is located. The next node decision may use known breadth-first traversal or depth-first traversal. In step S535, it is determined whether the located node is a leaf node, and if so, the process proceeds to step S541, otherwise, the process proceeds to step S533. In step S541, it is determined whether the area corresponding to the positioned node is adjacent to the spare area, and if so, the process proceeds to step S543, otherwise, the process proceeds to step S533. Preferably, neighboring nodes are obtained using an efficient quadtree traversal algorithm introduced by Samet. In step S543, the positioned node is marked for merging with the free area. In step S545, the number of concurrent users in the located node is added to the first number of concurrent users and subtracted from the second number of concurrent users. In step S551, it is determined whether the redistribution process is sufficient, and if so, the process proceeds to step S553, otherwise, the process proceeds to step S561. For example, the redistribution process is sufficient if the number of second concurrent users drops to the server load threshold or a predetermined percentage value of the server load threshold described above. In step S553, the final quadtree is transmitted to the corresponding slave server.

단계 S561에서, 여유 영역이 채워지는지를 결정하고, 그렇다면, 프로세스는 단계 S571로 진행되고, 그렇지 않으면, 프로세스는 단계 S533로 진행된다. 예를 들어, 제 1 동시 사용자 수가 서버 부하 한계값 또는 서버 부하 한계값의 소정의 퍼센트 값을 초과하면, 여유 영역은 채워진다. 단계 S571에서, 백업 서버가 존재하는지를 결정하고, 그렇다면, 프로세스는 단계 S573으로 진행되고, 그렇지 않으면, 프로세스는 종료된다. 단계 S573에서, 현재의 노드에 대응하는 다음 노드가 위치 결정된다. 이용되는 트래버셜 접근법은 단계 S533와 동일하다는 것을 알아야 한다. 단계 S575에서, 위치 결정된 노드가 리프 노드인지를 결정하고, 그렇다면, 프로세스는 단계 S577로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S577에서, 위치 결정된 노드에 대응하는 영역이 여유 영역에 인접하는지를 결정하고, 그렇다면, 프로세스는 단계 S578로 진행되고, 그렇지 않으면, 프로 세스는 단계 S573로 진행된다. 단계 S578에서, 위치 결정된 노드가 백업 서버용으로 마킹된다. 단계 S579에서, 위치 결정된 노드 내의 동시 사용자 수는 제 2 동시 사용자 수로부터 감산된다. 단계 S581에서, 재분배 프로세스가 충분한지를 결정하고, 그렇다면, 프로세스는 단계 S583로 진행되고, 그렇지 않으면, 프로세스는 단계 S573으로 진행된다. 단계 S583에서, 최종 쿼드트리가 대응 슬래이브 서버와 백업 서버로 전송된다. In step S561, it is determined whether the spare area is filled, and if so, the process proceeds to step S571, otherwise, the process proceeds to step S533. For example, if the number of first concurrent users exceeds the server load threshold or a predetermined percentage value of the server load threshold, the free area is filled. In step S571, it is determined whether a backup server exists, and if so, the process proceeds to step S573, otherwise, the process ends. In step S573, the next node corresponding to the current node is located. Note that the traversal approach used is the same as in step S533. In step S575, it is determined whether the located node is a leaf node, and if so, the process proceeds to step S577, otherwise, the process proceeds to step S573. In step S577, it is determined whether the area corresponding to the positioned node is adjacent to the spare area, and if so, the process proceeds to step S578, otherwise, the process proceeds to step S573. In step S578, the located node is marked for the backup server. In step S579, the number of concurrent users in the located node is subtracted from the second number of concurrent users. In step S581, it is determined whether the redistribution process is sufficient, and if so, the process proceeds to step S583, otherwise, the process proceeds to step S573. In step S583, the final quadtree is sent to the corresponding slave server and backup server.

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에 도시되어 있다. A detailed description of the VE management method is given in the following example. 6A, 6B, and 6C are diagrams illustrating exemplary quadtrees of different aspects for the local area R6 maintained by the local area management module 221. In one embodiment, referring to FIG. 6A, the local region R6 is logically divided into four portions R61, R62, R63, and R64, and the subregion R63 is divided into four portions R631, R632, and R633. , R634). The number of simultaneous users in the areas R6, R61, R62, R63, R64, R631, R632, R633, R634 is 30, 5, 5, 10, 10, 5, 2, 1, 2. In step S411, the movement message indicating that the user U1 is moved from the area R634 to the area R64 is received by the local area management module 221. In steps S421, S423, and S425, the number of simultaneous users of the node N634 is reduced by one to be one. In steps S433 and S435, the number of simultaneous users of the node N63 is reduced by one to nine. The area threshold value is set to 10, and in step S441, the nodes N631, N632, N633, and N634 are determined to be merged. In step S443, the nodes N631, N632, N633, and N634 are removed. In steps S431, S433 and S435, the number of simultaneous users of the root node N6 is reduced by one to 29. Transient results are shown in Figure 6b. Next, in steps S431, S451, S453, and S455, the number of simultaneous users of the node R64 is increased by one, to 11. In step S461, the node R64 is determined to be divided. In step S463, four child nodes N641, N642, N644, N643 are created, and their number of concurrent users is 4, 2, 2, 3. In steps S471, S473, and S455, the number of simultaneous users of the root node N6 is increased by one to thirty. Finally, the process ends and the final result is shown in FIG. 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)의 제어를 교환할 수 있게 한다. 7A and 7B are diagrams illustrating exemplary quadtrees of different aspects of local area R6 maintained by local area management module 221. In another example, referring to FIG. 7A, the local region R6 is logically divided into four portions R61, R62, R63, and R64, and the subregion R64 is divided into four portions R641, R642, R643, Logically divided into R644). The number of concurrent users in the areas R6, R61, R62, R63, R64, R641, R642, R643, R644 is 30, 5, 5, 9, 11, 4, 2, 3, 2. In step S411, the move message indicating that the user U2 is moved from the other slave server to the area N642 is received by the local area management module 221. In steps S421, S453, and S455, the number of simultaneous users of the node R642 is increased by one, to three. In steps S461, S471, S473, and S455, the number of simultaneous users of the node N64 is increased by one to twelve. In steps S461, S471, S473, and S455, the number of simultaneous users of the root node N6 is increased by one to 31. While the server load limit value is set to 30, in step S481, the slave server 221 is determined to be overloaded. In step S483, the redistribution request of the root node N6 is sent to the master server 21. In step S511, the redistribution request of the root node N6 is received by the VE management module 211. In step S513, the area R6 is defined as a dense area. In step S515, the quadtree request is sent to the local area management modules 221, 231, 241, and 251, respectively. 8 is a diagram illustrating an exemplary quadtree held by local area management modules 221, 231, 241, and 251, respectively. In step S517, quadtrees T6 to T9 are received from local area management modules 221, 231, 241, and 251. In step S521, the area R7 is defined as a spare area. In step S523, a first quantity, i.e., 22 and a second quantity, i.e., 31, are obtained. While the depth-first traversal is used, in steps S531 to S541, the nodes N61 and N62 are sequentially positioned. In step S543, node N62 (ie, area R62) is marked for local area management module 231. In step S545, the first and second numbers are updated to 26 and 27, respectively. In step S551, the redistribution process is determined as sufficient. Finally, in step S553, the final quadtree is sent to the local area management modules 221, 231, to exchange control of the area 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개의 개별적인 트리처럼 개별적으로 취급됨을 개시하고 있지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서, 수신된 쿼드트리를 단일의 쿼드트리에 합병할 수 있으며, 특정의 프로세스 단계에 맞게 적절히 수정할 수 있다. As another example, in step S511, the redistribution request of the root node N6 is received by the VE management module 211. In step S513, the area R6 is defined as a dense area. In step S515, the quadtree request is sent to the local area management modules 221, 231, 241, and 251, respectively. 9 is a diagram illustrating an exemplary quadtree maintained by local area management modules 221, 231, 241, and 251, respectively. In step S517, quadtrees T6 to T9 are received from local area management modules 221, 231, 241, and 251. In step S521, the area R7 is defined as a spare area. In step S523, a first number, i.e., 22 and a second number, i.e. 38, are obtained. While the depth first traversal is used, in steps S531 to S541, the nodes N61 and N62 are sequentially positioned. In step S543, node N62 (ie, area N62) is marked for local area management module 231. In step S545, the first and second numbers are updated to 27 and 33, respectively. In step S551, the redistribution process is determined to be insufficient. In step S561, since the first number exceeds 80% of the server load threshold, the free area is determined to be full. In steps S571 to S577, the nodes N63, N64, N641, and N642 are sequentially positioned. At step S578, node N642 is marked for local area management module 261. In step S579, the second number is updated to 28. In step S581, the redistribution process is determined to be sufficient. Finally, in step S583, the final quadtree is sent to local area management modules 221, 231, and 261, so that control of areas R62, R642 can be exchanged. The embodiment described above discloses that the received quadtrees are treated individually as four separate trees in the master server 21, but is not limited to this. Those skilled in the art can merge the received quadtree into a single quadtree without departing from the spirit and scope of the present invention and modify it appropriately for a particular process step.

DVE 관리 시스템 및 방법, 또는 이들의 특정의 측면 또는 일부분은 플로피 디스켓, CD-ROMS, 하드 드라이브, 또는 다른 기계 판독가능 저장 매체와 같은 유형의 매체에 내장된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 여기서, 프로그램 코드가, 컴퓨터와 같은 기계에 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 개시된 방법 및 시스템은 전기 배선 또는 케이블과 같 은 몇몇 전송 매체를 통해, 광섬유를 통해, 또는 다른 형태의 전송 수단을 통해 전송된 프로그램 코드의 형태로 또한 구현될 수 있으며, 여기서, 프로그램 코드가 수신되어 컴퓨터와 같은 기계로 로딩되어 실행될 때, 기계는 본 발명을 실행하기 위한 장치로 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 프로세서와 조합되어, 특정의 논리 회로와 유사하게 동작하는 전용 장치를 제공한다. DVE management systems and methods, or certain aspects or portions thereof, may be in the form of program code (ie, instructions) embedded in a type of medium, such as a floppy diskette, CD-ROMS, hard drive, or other machine-readable storage medium. In this case, when the program code is loaded and executed on a machine such as a computer, the machine becomes an apparatus for practicing the present invention. The disclosed methods and systems can also be implemented in the form of program code transmitted via some transmission medium, such as electrical wiring or cable, via an optical fiber, or through other forms of transmission, wherein the program code is received and When loaded and executed on a machine such as a computer, the machine becomes an apparatus for practicing the present invention. When implemented on a general purpose processor, the program code is combined with the processor to provide a dedicated device that operates similarly to certain logic circuits.

본 발명은 바람직한 실시예에 관련하여 설명되었지만, 이것으로 제한되는 것은 아니다. 당업자라면, 본 발명의 사상과 범위를 벗어나지 않는 범위에서 여러 변경 및 수정을 가할 수 있다. 따라서, 본 발명의 범위는 다음의 청구 범위 및 그 등가에 의해 정의되고 보호될 수 있다. Although the present invention has been described in connection with the preferred embodiment, it is not limited thereto. Those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention. Accordingly, the scope of the invention may be defined and protected by the following claims and their equivalents.

본 발명에 따르면, 상호 작용 실행의 저하를 피하는 동적인 부하 분산 방법을 제공할 수 있다.
According to the present invention, it is possible to provide a dynamic load balancing method that avoids the degradation of the interaction execution.

Claims (10)

분산형 가상 환경(DVE) 관리 시스템에 있어서, In the distributed virtual environment (DVE) management system, 제 1 슬래이브 서버로부터 재분배 요청을 수신하고, Receiving a redistribution request from the first slave server, 얼마나 많은 사용자가 제 1 영역 또는 상기 제 1 영역의 일부 내에 존재하는지를 표시하는 제 1 동시 사용자 수를 개별적으로 포함하는 복수의 제 1 노드를 포함하는 제 1 트리를 상기 제 1 슬래이브 서버로부터 수신하고, Receive a first tree from the first slave server, the first tree comprising a plurality of first nodes individually comprising a first number of concurrent users indicating how many users are in a first zone or a portion of the first zone; , 얼마나 많은 사용자가 제 2 영역 또는 상기 제 2 영역의 일부 내에 존재하는 지를 표시하는 제 2 동시 사용자 수를 개별적으로 포함하는 복수의 제 2 노드를 포함하는 제 2 트리를 제 2 슬래이브 서버로부터 수신하고, Receive a second tree from the second slave server, the second tree comprising a plurality of second nodes individually including a second number of concurrent users indicating how many users are present in the second realm or part of the second realm; , 상기 제 1 영역의 제 1 부분이 상기 제 2 영역에 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합이 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값보다 낮으면, 상기 제 1 영역의 제 1 부분이 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하고, The first portion of the first region is adjacent to the second region, and the sum of the number of the second concurrent users of the second region and the number of the first concurrent users of the first portion of the first region is a server load. If lower than a threshold or a predetermined percentage of the server load threshold, determine that the first portion of the first region is controlled by the second slave server, 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하여, 상기 제 1 슬래이브 서버와 상기 제 2 슬래이브 서버간의 상기 제 1 영역의 상기 제 1 부분의 제어의 교환을 가능하게 하는 마스터 서버를 포함하는 분산형 가상 환경(DVE) 관리 시스템.Transmit a result indicating that a portion of the first region is controlled by the second slave server, thereby controlling control of the first portion of the first region between the first slave server and the second slave server. Distributed Virtual Environment (DVE) management system that includes a master server that enables exchange. 제 1 항에 있어서, 상기 마스터 서버는, 얼마나 많은 사용자가 제 3 영역 또는 상기 제 3 영역의 일부 내에 존재하는지를 표시하는 제 3 동시 사용자 수를 개별적으로 포함하는 복수의 제 3 노드를 포함하는 제 3 트리를 수신하며, 또한, 상기 제 1 영역의 상기 제 1 부분이 상기 제 3 영역에 인접하고 상기 제 2 영역의 상기 제 2 동시 사용자 수가 상기 제 3 영역의 상기 제 3 동시 사용자 수보다 낮으면, 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하는 것인 분산형 가상 환경(DVE) 관리 시스템.3. The third server of claim 1, wherein the master server comprises a plurality of third nodes, each comprising a third number of concurrent users indicating how many users are present in a third area or part of the third area. Receiving a tree, and further, if the first portion of the first region is adjacent to the third region and the number of second concurrent users in the second region is lower than the number of third concurrent users in the third region, And determine that a portion of the first zone is controlled by the second slave server. 제 1 항에 있어서, 상기 제 1 트리와 상기 제 2 트리는 쿼드트리와 호환가능한 것인 분산형 가상 환경(DVE) 관리 시스템.The distributed virtual environment management system of claim 1, wherein the first tree and the second tree are compatible with quadtrees. 제 1 항에 있어서, 상기 마스터 서버는, 상기 제 1 영역의 제 2 부분이 상기 제 2 영역과 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합과, 상기 제 1 영역의 상기 제 2 부분의 상기 제 1 동시 사용자 수가 상기 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값을 초과하면, 상기 제 1 영역의 제 2 부분이 백업 서버에 의해 제어된다고 결정하여, 상기 제 1 슬래이브 서버와 상기 백업 서버간의 상기 제 1 영역의 상기 제 2 부분의 제어의 교환을 가능하게 하는 것인 분산형 가상 환경(DVE) 관리 시스템.2. The master server of claim 1, wherein the second portion of the first region is adjacent to the second region, and wherein the number of the second concurrent users in the second region and the first portion of the first region are determined. The sum of the first number of concurrent users and the number of first concurrent users of the second portion of the first region exceed the server load threshold or a predetermined percentage value of the server load threshold; Determining that a second portion is controlled by a backup server, thereby enabling exchange of control of the second portion of the first region between the first slave server and the backup server. Management system. 제 1 항에 있어서, 상기 제 1 영역의 상기 제 1 부분의 결정은 깊이 우선 트래버셜 또는 폭 우선 트래버셜로 상기 제 1 트리를 횡단함으로써 달성되는 것인 분산형 가상 환경(DVE) 관리 시스템.2. The distributed virtual environment (DVE) management system of claim 1, wherein the determination of the first portion of the first region is accomplished by traversing the first tree with depth first traversal or width first traversal. 제 1 항에 있어서, 상기 제 1 슬래이브 서버는, 상기 제 1 트리 내의 상기 루트 노드의 상기 제 1 동시 사용자 수가 서버 부하 한계값을 초과하는 것으로 검출될 때 상기 재분배 요청을 송신하는 것인 분산형 가상 환경(DVE) 관리 시스템.2. The distributed type of claim 1 wherein the first slave server sends the redistribution request when it is detected that the number of the first concurrent users of the root node in the first tree exceeds a server load threshold. Virtual Environment (DVE) Management System. 제 1 항에 있어서, 상기 제 1 슬래이브 서버는, 상기 제 1 동시 사용자 수가 영역 한계값보다 낮은 것으로 검출될 때 상기 제 1 노드 중 하나의 노드에 대한 모든 자 노드(child node)를 제거하고, 상기 제 1 동시 사용자 수가 상기 영역 한계값을 초과하는 것으로 검출될 때 영역 분할을 위한 4개의 자 노드를 생성하는 것인 분산형 가상 환경(DVE) 관리 시스템.The method of claim 1, wherein the first slave server removes all child nodes for one of the first nodes when it is detected that the first number of concurrent users is lower than an area limit value. Create four child nodes for segmentation when the first number of concurrent users is detected to exceed the region threshold. 제 7 항에 있어서, 상기 제 2 슬래이브 서버는, 상기 제 2 동시 사용자 수가 영역 한계값보다 낮은 것으로 검출될 때 상기 제 2 노드 중 하나의 노드에 대한 모든 자 노드를 제거하고, 상기 제 2 동시 사용자 수가 상기 영역 한계값을 초과하는 것으로 검출될 때 상기 제 2 노드 중 하나에 대해 4개의 자 노드를 생성하는 것인 분산형 가상 환경(DVE) 관리 시스템. 8. The method of claim 7, wherein the second slave server removes all child nodes for one of the second nodes when the second concurrent user number is detected to be lower than an area limit, and the second concurrent server. Create four child nodes for one of the second nodes when the number of users is detected to exceed the area threshold. 마스터 서버에 의해 로딩되어 실행되는 분산형 가상 환경(DVE) 관리 방법에 있어서, In the distributed virtual environment (DVE) management method that is loaded and executed by the master server, 상기 마스터 서버가 제 1 슬래이브 서버로부터 재분배 요청을 수신하는 단계;Receiving, by the master server, a redistribution request from a first slave server; 상기 마스터 서버가, 얼마나 많은 사용자가 제 1 영역 또는 상기 제 1 영역의 일부 내에 존재하는지를 표시하는 제 1 동시 사용자 수를 개별적으로 포함하는 복수의 제 1 노드를 포함하는 제 1 트리를 상기 제 1 슬래이브 서버로부터 수신하는 단계; The first slab includes a first tree comprising a plurality of first nodes, the master server individually comprising a first number of concurrent users indicating how many users are in a first zone or a portion of the first zone. Receiving from the Eve server; 상기 마스터 서버가, 얼마나 많은 사용자가 제 2 영역 또는 상기 제 2 영역의 일부 내에 존재하는 지를 표시하는 제 2 동시 사용자 수를 개별적으로 포함하는 복수의 제 2 노드를 포함하는 제 2 트리를 제 2 슬래이브 서버로부터 수신하는 단계;The second slab includes a second tree comprising a plurality of second nodes individually including a second number of concurrent users indicating how many users are present in a second zone or a portion of the second zone. Receiving from the Eve server; 상기 마스터 서버가, 상기 제 1 영역의 제 1 부분이 상기 제 2 영역에 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합이 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값보다 낮으면, 상기 제 1 영역의 제 1 부분이 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하는 단계; 및 Wherein the master server has a first portion of the first region adjacent to the second region, the number of second concurrent users in the second region and the number of first concurrent users in the first portion of the first region; Determining that the first portion of the first region is controlled by the second slave server if the sum of is lower than a server load threshold or a predetermined percentage value of the server load threshold; And 상기 마스터 서버가, 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하는 단계;를 포함하고, Sending, by the master server, a result indicating that a portion of the first region is controlled by the second slave server; 상기 제 1 슬래이브 서버와 상기 제 2 슬래이브 서버간의 상기 제 1 영역의 상기 제 1 부분의 제어의 교환을 가능하게 하는 것인 분산형 가상 환경(DVE) 관리 방법.And enabling exchange of control of the first portion of the first region between the first slave server and the second slave server. 마스터 서버에 의해 로딩되어 실행되는 분산형 가상 환경(DVE) 관리용의 컴퓨터 코드 세트에 있어서, A computer code set for distributed virtual environment (DVE) management that is loaded and executed by a master server, 제 1 슬래이브 서버로부터 재분배 요청을 수신하는 것; Receiving a redistribution request from a first slave server; 얼마나 많은 사용자가 제 1 영역 또는 상기 제 1 영역의 일부 내에 존재하는지를 표시하는 제 1 동시 사용자 수를 개별적으로 포함하는 복수의 제 1 노드를 포함하는 제 1 트리를 상기 제 1 슬래이브 서버로부터 수신하는 것; Receiving a first tree from the first slave server, the first tree comprising a plurality of first nodes individually comprising a first number of concurrent users indicating how many users are in a first zone or a portion of the first zone that; 얼마나 많은 사용자가 제 2 영역 또는 상기 제 2 영역의 일부 내에 존재하는 지를 표시하는 제 2 동시 사용자 수를 개별적으로 포함하는 복수의 제 2 노드를 포함하는 제 2 트리를 제 2 슬래이브 서버로부터 수신하는 것; Receiving a second tree from the second slave server, the second tree comprising a plurality of second nodes individually including a second number of concurrent users indicating how many users are present in the second zone or a portion of the second zone; that; 상기 제 1 영역의 제 1 부분이 상기 제 2 영역에 인접하며, 상기 제 2 영역의 상기 제 2 동시 사용자 수와 상기 제 1 영역의 상기 제 1 부분의 상기 제 1 동시 사용자 수의 합이 서버 부하 한계값 또는 상기 서버 부하 한계값의 소정 퍼센트 값보다 낮으면, 상기 제 1 영역의 제 1 부분이 상기 제 2 슬래이브 서버에 의해 제어된다고 결정하는 것; 및The first portion of the first region is adjacent to the second region, and the sum of the number of the second concurrent users of the second region and the number of the first concurrent users of the first portion of the first region is a server load. If lower than a threshold or a predetermined percentage of the server load threshold, determining that the first portion of the first region is controlled by the second slave server; And 상기 제 1 영역의 일부가 상기 제 2 슬래이브 서버에 의해 제어됨을 표시하는 결과를 전송하는 것;을 포함하고, Transmitting a result indicating that a portion of the first region is controlled by the second slave server; 상기 제 1 슬래이브 서버와 상기 제 2 슬래이브 서버간의 상기 제 1 영역의 상기 제 1 부분의 제어의 교환을 가능하게 하는 것인 분산형 가상 환경(DVE) 관리용의 컴퓨터 코드 세트.Computer code set for managing a distributed virtual environment (DVE) that enables the exchange of control of the first portion of the first region between the first slave server and the second slave server.
KR1020050007229A 2005-01-26 2005-01-26 Distributed virtual environment management systems and methods KR100709678B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050007229A KR100709678B1 (en) 2005-01-26 2005-01-26 Distributed virtual environment management systems and methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050007229A KR100709678B1 (en) 2005-01-26 2005-01-26 Distributed virtual environment management systems and methods

Publications (2)

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

Family

ID=37175635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050007229A KR100709678B1 (en) 2005-01-26 2005-01-26 Distributed virtual environment management systems and methods

Country Status (1)

Country Link
KR (1) KR100709678B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100956636B1 (en) * 2007-12-07 2010-05-11 한국전자통신연구원 System and method for service level management in virtualized server environment
KR101340323B1 (en) * 2011-10-31 2013-12-11 한국과학기술정보연구원 System and method for approaching the distributed data

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113943B1 (en) * 2008-12-22 2012-03-05 한국전자통신연구원 Method And Apparatus For Managing Workload And Distributed Computing System Using The Same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (en) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd Virtual space share system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100956636B1 (en) * 2007-12-07 2010-05-11 한국전자통신연구원 System and method for service level management in virtualized server environment
KR101340323B1 (en) * 2011-10-31 2013-12-11 한국과학기술정보연구원 System and method for approaching the distributed data

Also Published As

Publication number Publication date
KR100709678B1 (en) 2007-04-20

Similar Documents

Publication Publication Date Title
CN109976774B (en) Block link point deployment method, device, equipment and storage medium
CN106708622B (en) Cluster resource processing method and system and resource processing cluster
US8145732B2 (en) Live network configuration within a link based computing system
CN111522661A (en) Micro-service management system, deployment method and related equipment
CN105426245A (en) Dynamically composed compute nodes comprising disaggregated components
CN112134857B (en) Method for binding honeypots of honeypot system by multiple nodes
WO2012086919A2 (en) Distributed storage system including plurality of proxy servers, method for managing object thereof, and storage medium readable by computer
US20100058329A1 (en) Method and apparatus for dynamically instantiating services using a service insertion architecture
US9485144B2 (en) Network traffic optimization
US20150134779A1 (en) Location of actor resources
US20170302543A1 (en) Method and Device for Managing Virtualized Network Function
CN109886693B (en) Consensus realization method, device, equipment and medium for block chain system
CN102263822B (en) Distributed cache control method, system and device
CN104995604A (en) Resource allocation method of virtual machine and device thereof
US20190222639A1 (en) Distributed load-balancing for software defined networks
CN100489791C (en) Method and system for local authority partitioning of client resources
CN111224990B (en) Flow traction method and system of distributed micro-isolation network
KR20120039014A (en) Method and system for the efficient and automated management of virtual networks
Srivastava et al. CGP: Cluster-based gossip protocol for dynamic resource environment in cloud
KR100709678B1 (en) Distributed virtual environment management systems and methods
CN112187864B (en) Load balancing method and device, storage medium and electronic equipment
CN109039790A (en) A kind of inter-cluster communication method and relevant apparatus
CN113010313A (en) Load balancing method and device, electronic equipment and computer storage medium
CN106302709A (en) A kind of method and system of network file management
CN105843693A (en) High-speed maglev transportation simulation oriented memory sharing method

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