Ⅰ. 서론
클라우드 컴퓨팅은 전형적인 소프트웨어 개발의 거의 모든 부문을 혁신하였다[1]. 특히 이용가능한 서비스의 범위와 수준을 고려할 때 클라우드 컴퓨팅은 여러 장점을 가지면서도 경쟁력있는 다수의 해결책을 제공하고 있다[2]. 클라우드 컴퓨팅의 서비스는 IaaS(Infrastructure -as-a-Service), Paas(Platform-as-a-Service), SaaS(Software-as-a-Service) 등의 계층으로 분류되고 있다. 웹이 클라우드 컴퓨팅의 대표적인 앱이며 특정 PaaS 기반 프레임워크의 설계를 상당 부분 설명하고 있다. 예를 들면 Google의 AppEngine[3]은 대규모 웹 기반 시스템을 용이하게 구성하도록 자체 설계된 servlet에 주로 기반하고 있다. Amazon 외에 Google과 Microsoft의 상업적 클라우드 컴퓨팅 서비스도 복합적인 분산 시스템의 신속하고 지속적인 개발을 위해 전례없는 기회를 제공하고 있다.
이와 동시에 대규모 멀티플레이어 온라인 게임(MMOG; Massively Multiplayer Online Game)인 자원 집약적 응용은 클라우드에 이미 오랫동안 배치되었던 웹 응용같은 다른 유형의 소프트웨어와 비교할 때 독특하면서도 차별화된 요건을 가지고 있다. 즉 MMOG는 전세계의 수많은 사용자들이 실시간 가상 환경을 공유할 수 있는 대규모 분산 응용이다[4]. 가상 환경의 사용자 즉 게임 플레이어를 대신하는 아바타, 서버가 제어하며 독자적으로 행동할 수 있는 NPC(Non Playing Character), 조작은 가능하나 상호작용을 시도하지 않는 상자나 무기 등 수동적 엔티티를 의미하는 변경가능한 객체 그리고 배경이나 장식품과 같은 상태 불변의 객체 등으로 MMOG의 게임 세계가 구성된다. MMOG 운영자들은 여러 컴퓨팅 노드에 걸쳐있는 대규모의 시스템 상태 유지와 많은 사용자들이 자원을 사용할 때 발생하는 충돌상황을 해결하기 위해서 충분한 하드웨어 기반을 확보할 필요가 있다.
현재 대부분의 상업적인 MMOG는 집중화된 구조에 의존하고 있으며 항상 최대 부하를 대비하므로 사전에 많은 자원을 확보하게 되고 엄청난 비용을 감내해야 하는 문제가 있다. 따라서 MMOG 운영자들이 하드웨어의 구입과 유지 비용 부담을 절감할 수 있는 합리적인 해결책을 찾도록 자원 공급과 운영 비용 간의 적절한 균형이 제공되는 클라우드 컴퓨팅을 활용할 필요가 있다. 요구형 자원 준비 과정인 클라우드 컴퓨팅 활용 시에도 MMOG를 운영할 때 불필요한 서버를 유지하거나 서버의 컴퓨팅 자원과 통신 대역폭을 많이 사용할 경우 상당한 비용부담이 발생할 수 있다. 즉 요구형 자원에 기반한 시설이 사용 가능하더라도 MMOG의 시스템 부하를 사용자가 제공하는 자원으로 해결하게 되면 비용을 절감할 수 있게 된다. 본 논문에서는 게임에 참여하는 플레이어들의 수가 급증하더라도 서버에 대한 비용 증가없이 MMOG의 원활한 실행과 서비스 품질이 보장되는 클라우드 컴퓨팅기반의 P2P(Peer-to-Peer) 시스템을 제시하고자 한다.
P2P 기법에서는 사용자의 수가 급증하더라도 증가한 사용자들의 많은 자원을 기반 시설에 추가할 수 있으므로 본질적으로 확장이 가능하다[5]. 즉 MMOG 실행 시 필요한 통신 대역폭도 참여한 사용자들 간에 분산시킴으로써 병목 현상을 회피할 수 있다. 클라우드 컴퓨팅의 요구형 자원과 P2P의 사용자 제공형 자원 간의 상호보완성을 높은 수준으로 유지하면서 확장가능한 MMOG 구조를 구성하게 한다. 본 논문에서 제시된 클라우드 컴퓨팅기반의 P2P 시스템에서 확장가능한 MMOG는 다수의 영역으로 분할되며 각 영역에서 특정 플레이어를 영역의 조정자로 설정하게 된다.
게임 상태에 중대한 영향을 주지 않는 위치 변경 액션은 영역 내 플레이어들이 클라우드 컴퓨팅 환경의 중앙서버를 통하지 않고 교환하며 게임 상태에 영향을 주는 중요 액션들은 플레이어들이 중앙 서버와 영역 조정자를 통하여 결과를 수신하게 된다. 중앙 서버는 게임 상태의 일관성을 유지하며 플레이어들이 유발하는 부정 행위도 예방할 수 있고 또한 게임 상태를 직접 플레이어들에게 전송하는 대신 영역 조정자에게 전송함으로써 상당량의 대역폭을 절감할 수 있다. 한편 영역 조정자는 서버로부터 수신한 게임 상태를 영역 내 플레이어들에게 다시 전송해야 하므로 일반 플레이어보다 더 증가된 통신 대역폭이 필요하게 된다.
제시된 클라우드 컴퓨팅 기반의 P2P 시스템은 MMOG의 특정 영역에 플레이어들이 급증할 경우에도 중앙 서버와 영역 조정자 그리고 플레이어들이 역할을 분담하게 된다. 따라서 영역 조정자와 플레이어들의 통신 대역폭을 충분히 활용하고 중앙 서버의 통신 대역폭을 대폭 감소시킬 수 있으며 이에 대한 실험 결과가 본 논문에서 분석되었다.
본 논문에서는 MMOG의 확장성을 위한 클라우드 컴퓨팅 기반의 P2P 시스템이 2 장에서 기술되며 3 장에서 다수의 영역으로 구성되는 MMOG의 게임 액션과 영역조정자를 추가하는 방법이 기술된다. 4 장에서는 영역 내 플레이어들의 수가 급증하는 MMOG에서 영역 조정자와 플레이어들의 통신 대역폭이 비교 분석되었으며 5 장에서 결론이 기술된다.
Ⅱ. 클라우드 컴퓨팅 기반의 P2P
클라우드 컴퓨팅은 통신망으로 연결된 다수의 원격 시스템을 결합하고 인터넷상에서 데이타와 태스크를 공유하도록 원격 시스템의 하드웨어와 소프트웨어 자원을 활용하는 것을 포함한다[6]. 통신망으로 결합된 시스템 자원들은 클라우드에 접속한 클라이언트의 요구에 따라 할당되며 다수의 사용자들에 의해 공유된다. 즉 컴퓨팅 기반시설이 클라우드로 간주된 모델에서 회사나 개인들은 요구형으로 임의의 장소에 있는 응용을 접근하며 이 모델이 제공하는 컴퓨팅 능력, 저장장치, 소프트웨어 등을 요구한 만큼 서비스로 활용하게 된다[7].
P2P 시스템도 연결된 참여자(peer)들 간에 데이타와태스크 공유가 가능하나[8] 클라우드 컴퓨팅과는 달리 모든 참여자들은 계층적으로 동일한 수준이며 동일한 태스크를 수행해야만 한다. 분산 시스템인 P2P 시스템은 집중화 문제의 해결, 자체적인 조직 구성, 다수의 관리 도메인 유지, 저렴한 초기 투자 비용, 체계적인 확장, 높은 수준의 결함 허용, 자원의 다양성, 대규모 데이터의 공유, 분산 데이터 처리 등 많은 장점을 가지고 있다. 그러나 P2P 시스템은 불법적인 미디어 배포, 보안 유지, 비집중화에 따른 관리 능력 한계 등의 문제점도 여전히 가지고 있다.
본 논문에서는 요구형 자원을 제공하는 클라우드 시스템과 사용자가 자원을 제공하는 P2P 시스템의 장점을 결합하여 높은 수준의 확장성을 제공하고자 한다. 실시간 가상 환경인 MMOG와 상호 작용을 하기 위해서 P2P 시스템의 사용자들은 클라이언트라고 하는 소프트웨어 중개자를 통하여 클라우드의 서버와 연결된다. 클라이언트는 가상 환경 화면을 사용자에게 제공하며 사용자의 액션을 메시지로 변환하여 서버에게 전송하고 변경된 가상환경의 화면을 수신하게 된다. 즉 클라이언트들은 서버와 주기적으로 동기화되는 엔티티들의 복제본을 자신의 기억 장치에 유지하는 것이다. 서버 관점에서 보면 가상환경은 클라이언트 또는 NPC의 사고 기능이 유발한 사건에 대한 반응으로 시간에 따른 상태 변화의 순서가 모델화된 것이다.
MMOG에 참여하는 플레이어들의 수가 급증할 경우 P2P 방식으로 플레이어들의 컴퓨팅 처리 능력과 자원을 충분히 활용하고 클라우드의 기존 서버에 대한 부하를 증가시키지 않음으로써 서버에 대한 비용 절감과 시스템 성능의 향상을 동시에 도모하고자 한다. 제시된 클라우드 컴퓨팅 기반 P2P 시스템에서는 필요한 통신량이 사용자들 간에 적절히 분산되므로 서버에 대한 통신 병목 현상이 발생되지 않는다.
Ⅲ. MMOG의 액션과 확장성
1. MMOG의 액션
클라우드 컴퓨팅 기반의 P2P 시스템을 사용하는 본 논문의 MMOG에서 두 가지의 액션이 고려된다. 첫째, 게임 상태를 변경하지 않는 상태 불변 액션으로서 플레이어들이 이동할 때 발생하는 위치 변경 액션이다. 둘째, 특정 플레이어가 다른 플레이어를 공격하거나 또는 특정 아이템인 변경가능한 객체를 획득하는 등 게임의 중요한 상태를 변경시키는 상태 변경 액션이다. 특히 MMORPG (Massively Multiplayer Online Role Playing Games) 에서 액션의 대부분은 위치 변경 액션으로 구성된다[9].
본 논문에서 분산 MMOG의 가상 세계는 다수의 영역으로 분할되는 것을 가정하며 이 영역은 관심 구역 (AOI;Area of Interest)으로도 기술된다. 서버는 각 영역마다 특정 플레이어를 영역 조정자로 설정하며 영역조정자는 다른 플레이어들에 비하여 컴퓨팅 능력과 통신대역폭 처리 능력이 더 우수한 것으로 가정한다. 클라우드 컴퓨팅의 서버와 영역이 구성된 MMOG 구조는 그림 1과 같다.
그림 1. 플레이어들의 위치 변경 액션을 직접 교환
Fig. 1. Direct exchange of positional action among players
그림 1에서 동일 영역에 있는 플레이어들은 A, B, C 로 표시되고 이 중 A는 영역 조정자의 역할을 수행하는 것으로 가정한다. 그림 1에서 영역 내 플레이어들은 상호 간에 위치 변경 액션을 직접 전송(실선으로 표현) 하며상태 변경 액션은 클라우드의 서버에게 직접 전송하는 것(파선으로 표현)으로 가정한다. 서버가 승인한 상태 변경 액션의 결과는 영역 조정자 A를 통하여 플레이어들 B, C에게 모두 전송된다.
그림 2에서도 동일 영역에 있는 플레이어들 A, B, C 중 A가 영역 조정자의 역할을 수행하는 것으로 가정한다. 그러나 그림 1과 달리 플레이어 B와 C는 위치 변경 액션을 영역 조정자인 A에게 먼저 전송하고 이후 A가 승인한 결과를 영역 내 다른 플레이어들에게 전송하게 된다. 예를 들면 B의 위치 변경 액션(점선으로 표현)은 A를 통해서 C에게 전달되는 것이다. 그림 2에서도 플레이어들의 상태 변경 액션은 서버에게 직접 전송(파선으로 표현) 되며 서버가 승인한 결과는 영역 조정자 A를 통해서 다른 플레이어들인 B와 C에게 전송된다.
그림 2. 플레이어들의 위치 변경 액션을 간접 교환
Fig. 2. Indirect exchange of positional action among players
그림 1에서는 각 플레이어의 위치 변경 액션이 플레이어들 간에 직접 전송되는 반면 그림 2에서는 영역 조정자를 통해서 다른 플레이어들에게 위치 변경 액션 결과가 전송되는 것이다.
2. 영역 내 부하 분산
특정 영역에 있는 모든 엔터티(아바타와 NPC를 포함하는 각종 객체)들은 특정 노드에 설정된다. 여기서 노드는 클라우드 컴퓨팅의 서버 또는 사용자에 의해 수행되는 peer 즉 플레이어를 의미한다. 엔터티들이 공간적 위치에 따라 구성되므로 영역 기반 분할은 관심 구역을 위한 효율적 해결책이다[8]. 그러나 엔터티들이 물려있는 영역 즉 hotspot의 존재로 인하여 엔터티들의 분포는 공간적으로 대부분 균일하지 않다. 어느 시점에서 영역 내의 플레이어들의 수가 증가하여 영역 조정자의 능력을 초과할 때 작업 부하를 분산하는 것은 이 MMOG 구조의 중요한 문제이다.
그림 3은 그림 1의 영역에 새로운 플레이어들 D, E, F가 차례대로 진입한 상황을 나타내고 있다. 영역 조정자 A가 D, E, F를 수용할 수 없는 상황이라 가정하고 D를 새로운 영역 조정자로 추가 설정한 것이다. 이후 도착한 E와 F는 D와 위치 변경 액션을 직접 상호 교환한다. 이때 D, E, F 플레이어들의 위치 변경 액션은 기존의 영역조정자인 A를 통해서 B와 C에게 전달(촘촘한 점선의 붉은 곡선으로 표현)된다. 마찬가지로 A, B, C의 위치 변경 액션도 새로운 영역 조정자 D를 통해서 E와 F에게 전달 (촘촘한 점선의 곡선으로 표현)된다. 그림 3에서 D, E, F 의 상태 변경 액션은 A, B, C처럼 서버에게 직접 전송된다. 영역에 추가로 진입한 플레이어들까지 포함하여 영역 내 모든 플레이어들이 위치 변경 액션을 직접 상호 교환할 경우 플레이어들의 통신 대역폭 부담이 급격히 증가하기 때문에 그림 3과 같이 영역 내 영역 조정자들을 통하여 위치 변경 액션을 전송하게 된다. 본 논문에서 이 방법은 직접 교환 방식에 기반하여 영역 조정자가 추가되는 것이며 줄여서 직접 교환 방식으로 기술한다.
그림 3. 직접 교환 방식 기반의 영역 조정자 추가
Fig. 3. A new region coordinator based on direct exchange of positional action
그림 4는 그림 2의 영역에서 D, E, F 들이 추가로 진입한 경우 D가 새로운 영역 조정자로 설정된 것이며 E와 F의 위치 변경 액션은 D를 통하여 상호 간에 전송되는 것을 가정한다. 그림 4에서 E의 위치 변경 액션(점선으로 표현)은 D를 통하여 F에게 전달되는 것이다. 이때 D, E, F의 위치 변경 액션은 기존의 영역 조정자인 A를 통하여 B와 C에게도 전송되며(촘촘한 점선의 곡선으로 표현) A, B, C의 위치 변경 액션도 추가된 영역 조정자 D를 통하여 E와 F에게 전송(촘촘한 점선의 곡선으로 표현)된다. 그림 4에서 도 D, E, F의 상태 변경 액션은 A, B, C처럼 서버에게 직접 전송된다. 이 방법은 본 논문에서 간접 교환 방식에 기반하여 영역 조정자가 추가되는 것이며 줄여서 간접 교환 방식으로 기술된다.
그림 4. 간접 교환 방식 기반의 영역 조정자 추가
Fig. 4. A new region coordinator based on indirect exchange of positional action
본 논문의 MMOG 구조에서 임의의 플레이어는 자신이 소속된 영역 내 모든 플레이어들에게 위치 변경 액션을 전송하는 것으로 가정함에 따라 영역 내 영역 조정자들에게 먼저 위치 변경 액션을 전송하게 된다. 직접 및 간접 교환 방식에 기반한 영역 조정자 추가 방법에서 임의의 영역에 새로운 플레이어가 진입할 경우 새로운 영역 조정자의 설정 여부를 결정하는 공통적인 알고리즘은 그림 5에서 기술되며 설정된 변수는 다음과 같다.
그림 5. 새로운 플레이어를 수용하기 위한 영역 조정자의 알고리즘
Fig. 5. An algorithm of the region coordinator for a new player
Max[i]: 임의의 영역의 현재 영역 조정자 i(초기치는 1)가 수용할 수 있는 최대 플레이어들의 수이다. 본 논문에서 각 영역 조정자는 사용 가능한 통신 대역폭에 따라 수용할 수 있는 최대플레이어들의 수를 가정한 것이다
Players[i]: 임의의 영역의 i번째 영역 조정자가 수용하고 있는 현재 플레이어들의 수이며 초기치는 0이다.
NUMregion: 임의의 영역에서 현재 참여하고 있는 모든 플레이어들의 수이며 초기치는 0이다.
임의의 영역에서 첫 번째(i=1) 영역 조정자는 실제 수용할 수 있는 최대 플레이어들의 수를 Max[1]로 설정한다. 예를 들어 Max[1]이 49일 경우 새로운 플레이 어가 영역에 진입할 때마다 Players[1]은 1씩 증가된다. i=1인 영역 조정자가 49 명의 플레이어들을 모두 수용한 이후 새로운 플레이어가 같은 영역에 진입할 경우 이 플레이어는 i=2인 새로운 영역 조정자로 설정되는 것이다. 그리고 자신의 통신대역폭에 따라 Max[2]를 설정하고 Players[2]는 0으로 초기화된다. 이후 동일한 영역에서 수용할 수 있는 만큼의 새로 도착하는 플레이어들을 수용하는 과정이 그림 5의 알고리즘에 따라 계속 진행된다.
한편 그림 6은 추가로 진입한 E와 F의 위치 변경 액션이 D를 통하여 A에게 전송되고(촘촘한 점선의 곡선으로 표현) 다시 B와 C에게 전송되는 방법을 나타내고 있다. 마찬가지로 B와 C의 위치 변경 액션도 A를 통해서 D에게 전송된(촘촘한 점선의 곡선으로 표현) 이후 E와 F에게 다시 전송된다. 이 방법은 각 플레이어들의 위치 변경 액션 전송 대역폭을 절감할 수는 있으나 영역 조정자들을 두 번 거쳐서 다른 플레이어들에게 위치 변경 액션 결과가 전송되므로 지연 시간이 증가하게 된다. 따라서 이 방법은 본 논문에서 고려하지 않기로 한다.
그림 6. 두 영역 조정자를 통한 위치 변경 액션의 전송
Fig. 6. Transfer of positional action via two region coordinators
IV. 성능 분석
1. 실험 환경과 변수
본 논문에서는 가상의 MMOG가 클라우드 컴퓨팅 기반의 P2P 시스템에 적용되는 모델을 가정한다[10]. 예를 들어 게임에 참여하는 임의의 플레이어가 현관을 걸어갈 때 발생하는 연속적인 위치 변경 액션은 해당 영역 조정자를 포함한 모든 플레이어들에게 주기적으로 전송하게 된다. 그리고 임의의 플레이어가 바닥에 있는 동전을 집을 때 발생하는 상태 변경 액션은 클라우드 컴퓨팅 서버에 직접 전송되며 서버는 동전이 더 이상 바닥에 존재하지 않는 변경된 화면을 관련 영역 조정자들을 통하여 다른 모든 플레이어들에게 전송하게 된다. 본 논문에서는 각 플레이어가 자신과 NPC를 포함한 객체들에 대하여 초당 10 회의 위치 변경 액션을 수행하는 것으로 가정한다.
각 플레이어는 16 개 이상 48 개 이하의 객체들을 유지하며 평균 객체 수 OBJmean 을 32로 설정하고 객체의 평균 크기 SIZEmean는 200바이트로 가정한다. 임의의 영역에서 영역 조정자들이 NUMcoordi개 있을 때 i(1 ≤ i ≤ NUMcoordi)번째 영역 조정자가 위치 변경 액션을 직접 전송해야 하는 플레이어들의 수는 Players[i]로 기술한다. 이 영역 조정자는 영역 내 Players[i] 플레이어들로부터 수신한 위치 변경 액션을 다시 Players[i] 플레이어들에게 전송하기 위해서 필요한 대역폭(Bytes/초) POS_RC[i]는 다음과 같다.
POS_RC[i]=OBJmean*SIZEmean*10*
Players[i]*Players[i] (1)
그러나 그림 3의 교환 방식과 그림 4의 간접 교환 방식에서 영역 내 새로운 플레이어들이 진입한 경우 이들의 위치 변경 액션도 수신해야 되므로 POS_RC[i]는 다음과 같이 증가된다.
POS_RC[i]=OBJmean*SIZEmean*10*
(NUMregion-1)*Players[i] (2)
수식 (2)에서 영역 내 모든 플레이어들의 수를 의미하는 NUMregion에서 i번째 영역 조정자를 제외한 플레이어들(NUMregion-1)로 부터 위치 변경 액션을 수신한 후 결과를 Player[i]들에게 다시 전송하게 된다. 직접 교환 방식과 간접 교환 방식에서 위치 변경 액션을 전송하기 위한 영역 조정자 i의 대역폭은 동일하다. 또한 이 MMOG 모델에서 플레이어와 객체 간의 상호작용과 플레이어들 간의 상호작용 등 두 가지 전형적인 상태 변경 액션도 분당(60초) 평균 10 회씩 수행되는 것으로 가정한다. 각 플레이어의 상태 변경 액션에서 1 개 객체의 상태를 변경하는 것을 가정할 때 클라우드 컴퓨팅 서버에게 전송되는 대역폭은 SIZEmean*10/60이 된다. 해당 영역의 전체 플레이어들의 수 NUMregion으로부터 수신한 상태 변경 액션 요청만을 서버가 컴퓨팅한 후 갱신된 객체들을 해당 영역의 NUMcoordi 개의 영역 조정자들에게 전송하는 것으로 가정한다. 이때 i번째 영역 조정자는 서버로부터 수신한 상태 변경 액션 결과를 전송하기 위해서 다음과 같은 대역폭 State_RC[i]가 필요하다.
STATE_RC[i]=NUMregion*SIZEmean*
10/60*Players[i] (3)
본 논문의 MMOG 구조에서 임의의 영역에 있는 영역 조정자가 필요한 대역폭은 직접 교환 방식과 간접교환 방식 모두 동일하게 수식 (2)와 수식 (3)의 합이 적용된다.
직접 교환 방식에서 i번째 영역 조정자를 통해서 상태변경 액션 결과를 수신하는 임의의 플레이어가 위치 변경 액션을 다른 플레이어들에게 전송할 때 필요한 대역폭 POS_PLdirect은 다음과 같다.
POS_PLdirect=OBJmean*SIZEmean*10*
(Players[i]+NUMcoordi-1) (4)
해당 플레이어는 i번째 영역 조정자 외에 다른 영역조정자들에게도 위치 변경 액션 결과를 전송해야 하므로 수식 (4)에서 Players[i]에 NUMcoordi-1 영역 조정자들이 추가된 것이다. 한편 간접 교환 방식에서는 해당 플레이어가 다른 플레이어들에게 위치 변경 액션 결과를 다른 플레이어들에게 직접 전송하는 대신 NUMcoordi 개의 영역 조정자들에게만 전송하므로 다음과 같은 대역폭 POS_PLindiirect이 필요하다.
POS_PLindiirec=OBJmean*SIZEmean*10*NUMcoordi (5)
즉 직접 교환 방식보다 간접 교환 방식에서 플레이어의 통신 대역폭이 감소되는 것이다. 두 가지 방식 모두 플레이어가 서버로 직접 전송하는 상태 변경 액션에 대한 대역폭 STATE_PL은 동일하며 다음과 같다.
STATE_PL=SIZEmean*10/60 (6)
본 논문에서는 특정 영역에 플레이들의 수가 급증할 경우 영역 조정자와 플레이어의 대역폭을 분석하려는 것이므로 큰 변화가 없는 서버의 통신 대역폭에 대한 결과분석을 생략하기로 한다.
2. 통신 대역폭 분석
MMOG 구조의 특정 영역에 플레이어들의 수 NUMregion이 단시간에 50 명에서 최대 300 명까지 증가할 수 있고 새로운 영역 조정자는 50 명까지 수용할 수 있는 상황을 가정하여 실험을 수행하였다. 임의의 영역조정자는 최대 49 명의 플레이어들에게 위치 변경 액션과 상태 변경 액션 결과를 전송할 수 있으며 특정 영역에 영역 조정자들은 최대 6 개가 설정될 수 있는 것으로 가정한다. 영역 조정자의 평균 대역폭은 수식 (2)와 (3) 의합으로 구성되며 50 명의 플레이어들이 증가할 때마다 비례하여 증가된 MB(220 바이트) 단위의 평균 대역폭은 그림 7과 같이 나타났다. 실제로 i번째 영역 조정자의 상태 변경 액션 결과 전송을 위한 수식 (3)에 기반한 영역조정자의 평균 대역폭은 위치 변경 액션 결과의 전송을 위한 수식 (2) 기반의 평균 대역폭 크기보다 1/1000 미만이므로 그림 7에서 수식 (3)의 결과는 사실상 큰 의미가 없다. 표 1에서 수식 (3)에 기반한 영역 조정자의 평균 대역폭이 NUMregion에 비례하여 증가된 결과를 KB(210 바이트) 단위로 나타났다.
그림 7. 영역 내 플레이어의 수 NUMregion에 따른 영역 조정자의 평균 대역폭
Fig. 7. mean bandwidth of the region coordinator for NUMregion, number of players in the region
표 1. 영역 조정자의 상태 변경 액션에 대한 평균 대역폭
Table 1. mean bandwidth for state action of the region coordinator
영역 내 플레이어들이 위치 변경 액션을 직접 교환하거나 간접 교환하는 방식에서 영역 조정자의 대역폭은 동일하지만 플레이어들의 대역폭은 큰 차이가 발생하며 이에 대한 결과가 표 2와 같이 나타났다. 수식 (4)에 기반한 직접 교환 방식에서 플레이어의 평균 대역폭은 49 명의 플레이어들한테 위치 변경 액션을 항상 상호 교환하므로 수식 (5)에 기반한 간접 교환 방식의 플레이어 평균 대역폭보다 훨씬 더 크다. 특히 NUMregion이 50일 경우 직접 교환 방식의 플레이어 대역폭은 간접 교환 방식의 플레이어 대역폭 보다 거의 50배 정도 큰 것으로 나타났다. 그러나 이후 간접 교환 방식은 영역 조정자들의 수 NUMcoordi에 비례하여 플레이어의 평균 대역폭이 증가하게 되는 반면 직접 교환 방식은 영역 조정자가 수용하는 플레이어들의 수에 영역 조정자들의 수가 일부 추가되므로 증가하는 비율이 완만하게 나타났다.
표 2. 플레이어의 평균 대역폭
Table 2. mean bandwidth of the player
수식 (6)이 의미하는 상태 변경 액션에 대한 플레이어의 평균 대역폭은 실제 33.33 바이트이므로 KB 단위로 나타나는 표 2의 결과에 포함된 수치이긴 하나 큰 의미가 없다.
그리고 영역 조정자 없이 플레이어들로만 위치 변경 액션 결과를 전송할 경우 필요한 대역폭 POS_PL은 수식 (7)에 따라 NUMregion의 제곱에 비례하는 결과가 나타나며(표 3 참조) 이 대역폭은 실제 플레이어들이 수용하기 어려운 크기가 될 수 있다.
표 3. 영역 조정자가 없는 플레이어의 평균 대역폭
Table 3. mean bandwidth of the player without region coordinator
POS_PL=OBJmean*SIZEmean*10*
(NUMregion-1)*(NUMregion-1) (7)
MMOG의 특정 영역에 진입하는 플레이어들의 수가 급증할 경우 일부 플레이어들을 영역 조정자로 설정함으로써 최대한 사용자 자원을 활용하고 서버의 부하를 증가시키지 않는 P2P 시스템의 통신 대역폭이 직접 교환방식과 간접 교환 방식에서 비교 분석되었다.
V. 결론
본 논문에서 수만 명 이상의 플레이어들이 참여하는 MMOG를 위하여 클라우드 컴퓨팅에 기반한 P2P 시스템[11]을 제시한다. 제시된 P2P 시스템에 기반한 MMOG 는 게임 세계를 다수의 영역으로 분할하며 각 영역에서 통신 대역폭과 컴퓨팅 능력이 충분한 플레이어를 영역조정자로 설정한다. 영역 조정자는 중앙 서버로부터 수신한 상태 변경 액션 결과를 영역 내 관련 플레이어들에게 전송함으로써 서버의 통신 대역폭과 컴퓨팅 자원 의사용을 최소화할 수 있다.
MMOG의 특정 영역에 컴퓨팅 능력이 향상된 스마트폰과 PC를 사용하는 플레이어들의 수가 급증할 경우 일부 플레이어들을 영역 조정자로 설정함으로써 최대한 사용자 자원을 활용하고 서버의 부하를 증가시키지 않는 P2P 시스템의 통신 대역폭[12]이 직접 교환 방식과 간접 교환 방식에서 비교 분석되었다. 플레이어의 위치 변경 액션이 플레이어들간에 직접 교환되는 방식에서는 플레이어의 통신 대역폭이 증가하는 대신 위치 변경 결과가 즉시 전송되는 반면 플레이어의 위치 변경 결과를 영역 조정자를 통하여 간접 교환하는 방식에서는 플레이어의 통신 대역폭이 감소되는 대신 위치 변경 결과를 다소 지연된 상태에서 수신하게 된다.
※ This research was financially supported by Hansung University.
References
- N. Kasenides and N. Paspallis, "A Systematic Mapping Study of MMOG Backend Architectures," Information, Vol. 10, No. 9, 2019. DOI: https://doi.org/10.3390/info10090264.
- M. Armbrust and et al., "A View of Cloud Computing," Communications of the ACM, Vol. 53, No. 4, 2010. DOI:https://doi.org/10.1145/1721654.1721672
- I. Shabani, A. Kovaci and A. Dika, "Possibilities Offered by Google App Engine for Developing Distributed Applications using Datastore," 6th International Conference on Computational Intelligence, Communication Systems and Networks, Macedonia, 2014. DOI: https://doi.org/10.1109/CICSyN.2014.35.
- H. Xu, Y. Shi, Y. Liu, F. Gao and T. Wan, " Integration of cloud computing and p2p: A future storage infrastructure," IEEE International Conference on Quality, Reliability, Risk, Maintenance, and Safety Engineering, pp. 1489-1492, 2012. DOI: https://doi.org/10.1109/ICQR2MSE.2012.6246507.
- B. Knutsson, H. Lu, W. Xu, and B. Hopkins. " Peer-to-Peer support for massively multiplayer games," 23rd Annual Joint Conference of the IEEE Computer and Communications Societies, 2004. DOI: https://doi.org/10.1109/INFCOM.2004.1354485.
- N. Thomas, M. Thomas and K. Chandrasekaran, "Multimedia Streaming using Cloud-Based P2P Systems," 3rd International Conference on Recent Trends in Computing, pp. 25-32, 2015. DOI:https://doi.org/10.1016/J.PROCS.2015.07.359
- R. Buyya, C. Yeo, S. Venugopal, J. Broberg, and I. Brandic, "Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility", Future Generation Computer Systems, v. 25, 2009. DOI: https://doi.org/10.1016/j.future.2008.12.001.
- H. Kavalionak, E. Carlini, L. Ricci, A. Montresor and M. Coppola, "Integrating Peer-to-Peer and Cloud Computing for Massively Multiuser Online Games," Demo: combat state-aware interest management for online games," Peer-to-Peer Networking and Applications, Vol. 5, No. 2, 2013. DOI https://doi.org/10.1007/s12083-013-0232-4
- M. Ye and L. Cheng, "System-Performance Modeling for Massively Multiplayer Online Role-Playing Games", IBM Systtems Journal, Vol. 45, No. 1, pp. 45-48, 2006. DOI: https://doi.org/10.1147/sj.451.0045
- J. Kim, "Bandwidth Analysis of Massively Multiplayer Online Games based on Peer-to-Peer and Cloud Computing", International Journal of Internet, Broadcasting and Communication, Vol. 19, No. 5, pp.143-150, 2019. DOI: https://doi.org/10.7236/JIIBC.2019.19.5.143.
- Y. Jung, S. Cho, J. Lee, K. Jeong, "A Design of P2P Cloud System Using The Super P2P," International Journal of Internet, Broadcasting and Communication, Vol. 7, No. 1, pp. 42-48, 2015. DOI : https://doi.org/10.7236/IJIBC.2015.7.1.42.
- B. Kim, Y. Woo and I. Kim, "Aggressive Cooperative Caching Scheme in Mobile Ad Hoc Networks," The Journal of Korean Institute of Information Technology, Vol. 18, No. 1, pp. 41-48, 2020. DOI: https://doi.org/10.14801/jkiit.2020.18.1.41.