KR20110079671A - 비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도 - Google Patents

비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도 Download PDF

Info

Publication number
KR20110079671A
KR20110079671A KR1020117009338A KR20117009338A KR20110079671A KR 20110079671 A KR20110079671 A KR 20110079671A KR 1020117009338 A KR1020117009338 A KR 1020117009338A KR 20117009338 A KR20117009338 A KR 20117009338A KR 20110079671 A KR20110079671 A KR 20110079671A
Authority
KR
South Korea
Prior art keywords
boundary
peer
region
virtual environment
interest management
Prior art date
Application number
KR1020117009338A
Other languages
English (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
Priority claimed from AU2008905220A external-priority patent/AU2008905220A0/en
Application filed by 내셔널 아이씨티 오스트레일리아 리미티드 filed Critical 내셔널 아이씨티 오스트레일리아 리미티드
Publication of KR20110079671A publication Critical patent/KR20110079671A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비집중화된 멀티 유저 온라인 가상 환경에 있어서, 객체 책임은 제어 피어에게 효과적으로 할당된다. 가상 환경은 복수의 셀들로 나누어지며, 각 셀의 제어는 책임 피어에게 할당된다. 각 책임 피어는 분산 해시 테이블(DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져온다. 셀을 제어하는 책임 피어에 대한 처리 로드와 통신이 한계점을 초과하는 경우에, 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역을 포함하는 객체에 대한 제어 책임을 생성하고 가져온다. 상기 경계 관심 매니지먼트 영역 내에서, 객체들은 연관된 셀로부터 연관이 해제되거나 제거되며, 그 대신에 상기 경계 관심 매니지먼트 영역과 연관된다.

Description

비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도{Use of dynamic bounded regions to improve the scalability of decentralized online environments}
본 발명은 인터넷 등의 정보 네트워크에 관한 것이며, 특히 사용자의 수를 크게 확장하는 방법으로 온라인 게임 환경과 같은 멀티 유저 네트워크를 제공하는 것에 관한다.
멀티 유저 네트워크들은 다양한 합리성이 요청될 수 있다. 가장 리스소가 집중된 네트워크들은 멀티 유저 온라인 게임 환경들이다. 온라인 게임 환경들은 점점 더 복잡하고 대규모 가상 환경을 수반한다. 그러한 가상 환경은 가능한 한 매우 디테일하게, 가능한 한 현실과 가깝게 묘사되며 만들어짐으로써 유저들이나 게임 플레이어들에게 더욱 현실적인 게임 경험을 제공한다. 더욱이 양적으로 증가일로에 있는 유저들은 그러한 게임 환경 내에서 함께 참가하기를 원한다. 그러므로 대용량 데이터 볼륨, 고속 데이터 속도, 높은 데이터 복잡성은 공간적으로 복잡하며 높은 디테일로 가상화된 환경 내에서 실시간으로 참여하는 대규모 사용자들을 처리하기 위하여 일반적으로 필요해진다.
예컨대, "World of Warcraft"와 "Second Life"와 같은 다중 온라인 (massively multiplayer online; MMO) 애플리케이션이 갈수록 더 인기를 끌게 되었다. 전통적으로 온라인 게임 환경을 배치하고자 하는 게임 퍼블리셔는 통상 충분한 리소스들을 구비한 중앙 게임 서버를 설치하여 수백 혹은 수 천의 참가자들에 대한 게임 세션들을 다루어야 한다. 클라이언트-서버 아키텍쳐는 그러한 애플리케이션들을 호스트하는 데 이용된다. 서버 팜(server farm)은 필요한 인프라를 제공하여 지속적인 상태를 유지하며 실시간으로 업데이트를 보내고 수신하는데 필요한 모든 프로세싱을 다룬다. 중앙 서버들에 기초한 이러한 아키텍쳐들은 매우 높은 비용이 소요되는 만큼 유연하지 않은데, 이러한 방법으로 기능하기에 충분한 프로세싱 능력을 가진 서버는 값비싸며, 게임 퍼블리셔들에게 높은 배치 비용을 야기한다. 한 가지 제안은 서버 팜을 제공하는 것인데, 다중 게임 개발자들이 그들의 게임들을 중앙으로 호스트할 수 있도록 하며, 그것을 통해 어느 정도 배치 비용을 감소시킬 수 있다는 것이다. 그러나 중앙 게임 서버들을 활용하는 어떤 시스템도 게임 서버들에 관련한 실질적인 비용을 수반한다.
중앙 게임 서버에 의존하는 게임 시스템들이 갖는 또 다른 문제는 중앙 게임 서버가 실패의 단일특징성(a single point of failure)을 제공한다는 것이다. 결과적으로, 중앙 게임 서버에서의 어떤 악화, 전력 실패, 서버 실패 혹은 네트워크 연결 실패는 전체 게임 환경의 실패 혹은 악화를 초래할 수 있다. 중앙 게임 서버는 MMO 애플리케이션이 사용자 과잉이 되는 경우에 성능 문제에 또한 시달릴 수 있다. 중앙 서버들은 한정된 수행능력을 가지며, 특정 숫자의 유저들을 다룰 수 있다. 유저들의 숫자가 이 특정 숫자를 초과하여 증가하는 경우에, 중앙 서버들은 성능 문제를 겪게 되고, 유저로부터 나쁜 평판을 받게 된다.
본 발명에 포함된 어떤 문서상의 논의 사항들, 어떤 행동들, 내용들, 장치들, 물건들 혹은 기타 사항들은 오직 본 발명의 내용을 제공하기 위한 목적을 위해서만 존재할 뿐이다. 이들의 일부 혹은 전부가 본 발명에 관련되는 기술분야에서의 일반적인 지식이거나 또는 선행기술의 일부를 형성하는 것이라고 하더라도 그것이 본 출원의 각 청구범위가 우선일 이전에 존재하였음을 인정하는 것은 아니다.
본 명세서 전체에 걸쳐서 "포함한다(comprises)" 또는 "포함하는(comprising)" 등의 변형을 갖는 단어 "포함한다(comprise)"는 진술된 구성요소, 정수 혹은 단계, 또는 구성요소들, 정수들 혹은 단계들의 그룹을 포함함을 암시하지만, 어떤 다른 구성요소, 정수 혹은 단계, 또는 구성요소들, 정수들 혹은 단계들의 그룹을 제외하지는 않는 의미로 이해될 것이다.
본 발명의 제 1 국면에 따르면, 본 발명은 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어(controlling peer)에 객체 책임(object responsibility)을 효과적으로 할당하기 위한 방법으로서:
상기 가상 환경을 복수의 셀들로 나누고, 각 셀에 대한 제어를 책임 피어(responsible peer)에 할당하며, 각 책임 피어가 분산 해시 테이블(distributed hash table; DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져오는 단계;
셀을 제어하는 상기 책임 피어에 대한 처리 로드(processing load)와 통신이 한계점(threshold)을 초과하는 경우에 대해서, 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역(bounded interest management region)을 포함하는 객체에 대한 제어 책임을 생성하고 가져오는 단계; 및
상기 경계 관심 매니지먼트 영역 내에서, 연관된 셀로부터 객체들을 제거하고 또한 그것들을 상기 경계 관심 매니지먼트 영역과 연관 짓는 단계;를 포함한다.
본 발명의 제 2 국면에 따르면, 본 발명은 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 피어 노드 소프트웨어 애플리케이션으로서:
상기 가상 환경을 복수의 셀들로 나누고, 각 셀에 대한 제어를 책임 피어(responsible peer)에 할당하며, 각 책임 피어가 분산 해시 테이블(distributed hash table; DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져오도록 하는 코드;
셀을 제어하는 상기 책임 피어에 대한 처리 로드와 통신이 한계점(threshold)을 초과하는지 여부를 결정하며, 만일 그렇게 되는 경우에 상기 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역(bounded interest management region)을 포함하는 객체에 대한 제어 책임을 생성하고 가져오도록 하는 코드; 및
상기 경계 관심 매니지먼트 영역 내에서, 연관된 셀로부터 객체들을 제거하고 또한 상기 경계 관심 매니지먼트 영역과 연관 짓도록 하는 코드;를 포함한다.
본 발명의 제 3 국면에 따르면, 본 발명은 컴퓨터 프로그램 제품을 제공하며, 상기 컴퓨터 프로그램 제품은 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위하여 컴퓨터가 절차를 실행하도록 하는 컴퓨터 프로그램 코드 수단을 포함하며:
상기 가상 환경을 복수의 셀들로 나누고, 각 셀에 대한 제어를 책임 피어(responsible peer)에 할당하며, 각 책임 피어가 분산 해시 테이블(distributed hash table; DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져오도록 하는 컴퓨터 프로그램 코드 수단;
셀을 제어하는 상기 책임 피어에 대한 처리 로드와 통신이 한계점(threshold)을 초과하는지 여부를 결정하며, 만일 그렇게 되는 경우에 상기 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역(bounded interest management region)을 포함하는 객체에 대한 제어 책임을 생성하고 가져오도록 하는 컴퓨터 프로그램 코드 수단; 및
상기 경계 관심 매니지먼트 영역 내에서, 연관된 셀로부터 객체들을 제거하고 또한 상기 경계 관심 매니지먼트 영역과 연관 짓도록 하는 컴퓨터 프로그램 코드 수단;을 포함한다.
본 발명의 제 4 국면에 따르면, 본 발명은 상기 제 1 국면의 방법을 실행하도록 구성된 복수의 네트워크 노드들을 포함하는 시스템을 제공한다.
본 발명의 제 5 국면에 따르면, 본 발명은 상기 제 1 국면에 따라 객체 책임이 할당되는 방식으로 게임 디벨로퍼들이 다중 온라인 게임들을 디자인할 수 있도록 하는 개발 플랫폼 소프트웨어 애플리케이션을 제공한다.
본 발명의 일 실시예에 있어서, 상기 경계 관심 매니지먼트 (interest management; IM) 영역은 상기 로드 영역 내의 모든 객체를 함유하도록 구성됨으로써, DHT 리던던시(redundancy)에 관련된 네트워크 트래픽을 감소시킨다.
추가적으로 혹은 선택적으로, 상기 경계 IM 영역의 크기는 상기 로드 영역이 시간에 대해 변화함에 따라 달라질 수 있다.
또한, 일 실시예에 있어서, 상기 경계 IM 영역의 위치는 상기 로드 영역 내의 객체들이 시간에 대해 이동함에 따라 달라질 수 있다.
본 발명의 추가적인 혹은 선택적인 실시예는 제 1 설정된 IM 영역 내의 객체들이 최대 영역 사이즈 한계점(maximum region size threshold)을 초과하여 분산되는 경우에 제 2 경계 IM 영역의 분리생성(calving off)을 제공할 수 있다.
또한 어떤 실시예들에서는 두 개 이상의 경계 IM 영역들이 근접하게 되는 경우에 그것들이 통합될 수 있다.
본 발명의 어떤 실시예들에 있어서, 경계 IM 영역의 실패 이벤트에서의 대비책으로서 연관된 객체들이 상기 DHT와 직접적으로 재연관된다.
본 발명은 다중 온라인 게임(massively multiplayer online game; MMOG)을 실행하는 데 적용될 수 있다. 추가적으로 또는 선택적으로, 본 발명은 피어 투 피어 플랫폼과 애플리케이션의 대안적인 형태를 실행하는 데 적용될 수 있다.
본 발명의 바람직한 실시예들은 PCT 국제공보 제WO2008/040092호의 교시사항들과 결합하여 실행될 수 있으며, 그 내용은 참고되어 여기에 결합되어 있다.
이하 본 발명의 실시예가 첨부된 도면들을 참조하면서 설명될 것이다.
도 1은 링(ring) 내에 연결되며 피어 투 피어 가상 세계의 각 셀들의 책임을 갖는 피어 노드들의 논리도(logical view)를 도식적으로 나타낸다.
도 2는 도 1의 상기 논리도를 이용하여 객체들이 삽입되며, 관심 영역 쿼리들이 만들어지는 방법을 나타낸다.
도 3은 도 1의 상기 논리도를 이용하여 본 발명의 실시예에 따라 경계 관심 매니지먼트 영역이 수립되는 방법을 나타낸다.
도 4는 본 발명의 실시예에 따라 두 개의 경계 관심 매니지먼트 영역이 합쳐질 수 있는 방법을 나타낸다.
도 5는 본 발명의 실시예에 따라 따로따로 퍼지는 경계 관심 매니지먼트 영역(dispersing bounded interest management region)이 두 개의 경계 관심 매니지먼트 영역으로 나뉠 수 있는 방법을 나타낸다.
도 6은 두 개의 서브 그룹들을 갖는 경계 영역을 나타낸다.
도 7은 본 발명을 실행하기 위한 모범적인 시스템에서 사용될 수 있는 범용 컴퓨팅 디바이스를 나타낸다.
이하에서 기재된 본 발명의 실시예는 다중 온라인 게임(massively multi-player online games; MMOG)들을 배치하기 위한 피어 투 피어 플랫폼에 관한 것이다. 본 실시예는 비집중화된 MMOG의 확장성을 개선한다. 특히, 본 실시예는 객체들과 분산 해시 테이블(distributed hash table; DHT) 사이의 추가적인 레이어로서 경계 관심 매니지먼트(interest management; IM) 서비스를 제공한다.
본 발명은 온라인 환경을 배치하기 위한 비집중화된 아키텍쳐들이 집중화된 게임 서버의 문제를 피하기 위해 이용될 수 있음을 인식한다. 비집중화된 아키텍쳐들은 피어 투 피어 네트워크를 이용하여 MMO를 다루기 때문에, 집중된 실패 지점(central point of failure)이 없고 또한 플랫폼이 이론적으로는 보다 많은 숫자의 유저들에까지 확장할 수 있다. 본 발명은 특히 구조화된 피어 투 피어 네트워크를 이용할 때 분산 해시 테이블(DHT)을 관리함에 있어서 추가적인 오버헤드가 존재함을 인식한다. DHT는 게임 상태 데이터를 여러 번 복제함으로써 안전성과 일관성을 제공하기 때문에 그런 아키텍쳐들에서는 필수적이다. 그러나 이는 네트워크에 추가적인 로드를 주게 되며, 또한 피어 투 피어 네트워크를 사용하는 애플리케이션의 성능에 영향을 미친다. 본 발명은 그러한 추가 로드가 가상 세계 및 온라인 게임 등의 유사 실시간 애플리케이션들에서는 심각한 문제가 될 수 있음을 인식한다.
본 발명에 따른 본 실시예는 그러므로 DHT에서의 로드를 감소함으로써 애플리케이션의 성능과 확장성을 개선하는 방법에 관련된다. 피어 투 피어 가상 세계에 있어서, 전체 세계는 셀들로 나누어진다. 통상 각 셀은 네트워크 내의 피어에 의해 제어된다. 도 1은 링(ring) 형태 내에서 연결되는 모든 피어의 논리도를 나타낸다. 도 1에 나타난 바와 같이, 셀 C1은 피어 P1에 의해 제어되며 다른 셀도 그와 같다. 과거 셀들과 피어들을 맵핑하는 상이한 방법들이 제안되었으며, 본 발명과 관련해서는 그 중 어떤 적합한 방법이 이용될 수 있다. 셀 내의 모든 객체들(예를 들어 플레이어들)은 제어 피어와 디스커버리 메시지들(discovery messages)을 주고 받으며 그 셀에 대한 게임 상태 정보를 얻고 돌려준다.
디스커버리 메시지들은 각 객체가 통신해야 하는 리모트 객체(remote object)들에 대한 정보를 전달한다. 셀 내의 객체들의 수가 증가함에 따라 디스커버리 메시지들의 양 또한 증가하며, 제어 피어의 네트워크 연결에 대한 로드도 증가한다. 이는 디스커버리 통지 메시지들이 지연되는 원인이 되며, 이로 말미암아 MMOG 등의 실시간 애플리케이션 내의 엔드 유저에게 참기 어려운 경험을 야기한다. 본 발명에 따르면, 본 실시예는 경계 관심 매니지먼트(IM) 영역을 구현하여 이 문제를 다룬다.
본 실시예에 있어서, 경계 IM 영역은 셀과 유사하게, 공간의 주어진 영역에서의 관심 매니지먼트를 다루는 관심 매니지먼트 서비스를 나타낸다. 셀과 달리, 경계 IM 영역은 동적이다; 필요에 따라 가상 공간 내에서 이리저리 이동할 수 있으며 크기가 조절될 수 있다. 더욱이 경계 IM 영역은 객체이기 때문에 다른 관심 매니지먼트 서비스들에 삽입될 수 있다(예를 들어 셀들이나 다른 경계 IM 영역들). 경계 IM 영역은 이하의 객체 시스템에 의해 지지되는 어떤 형태를 수행할 수 있다.
시스템의 오퍼레이션은 그들 자신 및 그들의 관심 영역들을 DHT 상의 적당한 셀들 안으로 삽입하는 객체들로 시작된다. 셀에 대한 로드가 과도하게 되는 경우, 경계 IM 영역이 생성되어 상기 로드된 영역을 커버하며, 또한 상기 경계 IM 영역이 DHT 안으로 삽입된다. 과도한 로드에 대한 탐지는 적절한 방법에 의해 수행될 수 있다. 일반적으로 신규한 경계 IM 영역은 상기 IM 영역을 유지할 능력을 갖는 비(非)로드 피어에 대해서 생성될 것이다. 영향을 받은 셀들에 대한 책임을 갖는 피어 노드들은 삽입된 경계 IM 영역과 공간 내에 존재하는 객체들 사이의 만남(intersections)를 탐지하며, 이 객체들에 새로운 서비스를 통지한다. 차례대로 이들 객체들은 셀들로부터 그들의 영역들을 제거하고 그것들을 상기 경계 IM 영역 안으로 삽입한다. 객체가 상기 경계 IM 영역들로 가득 차게 되면, 상기 경계 IM 영역들이 상기 DHT로부터 분리되었음을 객체에 알리는 통지를 보낸다. 이는 모든 객체들을 커버하는, 중요하게는 DHT 상의 리던던시를 보장하는 것과 관련되는 트래픽을 감소시키는 상기 DHT 안으로 오직 한 개의 영역만이 삽입되는 효과를 가져온다. 초기 결과는 본 실시예가 영역 증가 내의 객체들의 수만큼 전체적인 네트워크 트래픽을 상당히 줄여주며, 그렇게 하여 지연시간을 줄이고 또한 MMO 애플리케이션의 성능과 확장성을 개선함을 보여준다.
다수의 그런 경계 IM 영역들이 가상 공간 내에서 높은 로드가 걸리는 다수의 영역들을 다루기 위해 수립될 수 있다. 본 실시예에 있어서, 객체들은 언제라도 경계 IM 영역들에 의해 커버되는 가상 공간 영역을 자유롭게 드나든다. 관심 매니지먼트 서비스들은 그들에게 경계 IM 영역들과 DHT 사이의 만남/분리를 알려줄 것이며, 그때 IM 사용(subscription)들이 필요에 따라 업데이트 될 수 있다. 마찬가지로 경계 IM 영역들은 네트워크 트래픽을 최소화하기 위해 필요에 따라 이동하거나 크기가 조절될 수 있으며 상기 관심 매니지먼트 통지들이 IM 사용들의 일관성을 계속해서 보장할 것이다.
본 실시예는 또한 경계 IM 영역들을 합치고 나누는 방법을 제공한다. 도 4에 도시된 방법으로 두 개의 경계 IM 영역들이 만나는 경우에, 그들의 제어 노드들은 그 만남이 발생하는 셀에 의해 서로 통지된다. 그때 상기 제어 노드들이 각 경계 IM 영역 내의 모든 객체들을 다른 경계 IM 영역 안으로 삽입하는 것에 의해 관계되는 IM 영역들 사이의 교차 이벤트를 초기에 제어함으로써, 모든 객체들에게 그들이 오버랩하는 모든 경계 IM 영역이 통지됨을 보장한다. 또한 근처에 있거나 교차하고 있는 경계 IM 영역들을 합치는 것은 네트워크 트래픽을 줄이는데 도움이 될 수 있다. 본 실시예는 상기 영역들 중 하나를 확대하여 상기 영역들의 통합을 아우르게 함으로써, 또한 그때 다른 영역들을 제거함으로써 이를 달성한다.
그와 반대로 본 실시예는 경계 IM 영역을 복수의 영역들로 분리하는 방법을 제공하며, 이는 도 5에 도시된 바와 같이, 오리지널 영역을 줄어들게 하고, 필요에 따라 하나 이상의 새로운 영역들이 제외된 부분들을 둘러싸도록 하는 것에 의해 행해질 수 있다.
본 실시예에 있어서, 경계 IM 영역들은 최초로 수립될 때 디폴트 사이즈를 가진다. 그러나 그것들은 추가 객체들을 수용하기 위해 더 커질 수 있다. 본 실시예는 경계 IM 영역들의 사이즈를 과하게 증가시키는 것은 시스템 성능을 떨어뜨린다는 점을 인식하여 최대 한계점을 둔다. 본 실시예에서의 최대 한계점은 가시 영역 사이즈 및 가상 세계의 셀 사이즈 등과 같은 몇 개의 파라미터에 기초한다. 만일 경계 IM 영역이 그것의 최대 사이즈에 다다르면, 부분적으로 만나는 경계 IM 영역과 합쳐지지 않을 것이다. 허용된 최대치를 초과해버리기 때문이다.
본 발명은 또한 경계 IM 영역이 다룰 수 있는 객체들의 수에 대해 최대 한계점을 둔다. 일단 경계 IM 영역이 이 한계점에 다다르면, 두 개의 경계 IM 영역이 서로 완벽하게 오버랩 하더라도 경계 IM 영역이 서로 합쳐지지 않을 것이다.
또한, 경계 IM 영역 내의 객체들이 가상 공간을 통해 움직일 때, 본 실시예에 있어서 경계 IM 영역이 객체들과 함께 움직인다. 이는 객체들과 그들의 관심 영역들이 항상 경계 IM 영역 내에서 둘러싸이게 한다. 만일 특정 객체가 경계 IM 영역 내의 나머지 객체들에서 떨어져 나가는 이동을 하게 된다면, 상기 경계 IM 영역은 그 객체를 수용하고 둘러싸도록 할 것이며 또한 이를 위해 자신의 사이즈를 증가시킬 것이다. 상기 경계 IM 영역이 자신의 최대 사이즈에 다다른 까닭에 그 객체를 둘러쌀 수 없게 된다면, 그 객체는 상기 경계 IM 영역으로부터 분리되며 새로운 경계 IM 영역이 생성된다.
본 발명은 경계 IM 영역들이 자신의 영역 내의 객체들이나 DHT와의 연결성(임시로 혹은 영원히)을 잃거나 실패할 수 있는 가능성이 있음을 또한 인식한다. 이런 일이 발생하는 경우, 모든 객체들과 관심 영역들은 DHT와의 직접 통신으로 회귀하도록 설정되며, 그러면 연결성을 갖는 다른 피어 노드의 책임 하에서, 새로운 경계 IM 영역들이 새롭게 형성될 것이다. 이는 경계 IM 영역이 개별 피어들과의 연결성의 손실 없이 스무드한 방법으로 네트워크와 장치 실패로부터 회복될 수 있게 보장하는, 경계 IM 영역의 이벤트 내에서의 디스커버리를 위한 대비 메커니즘을 제공한다.
그러므로 본 발명의 본 실시예를 이용하는 결정적인 이점 중의 하나는 DHT (Distributed Hash Table)에 관련되는 트래픽 오버헤드에 있어서의 의미심장한 감소이다. 이는 DHT에 대한 로드를 줄이며 시스템의 전체적인 성능을 상당히 개선한다.
본 실시예가 시스템 인프라 전체로서의 행동을 참조하여 기재되었지만, 본 발명은 다양한 형태로 구현될 수 있을 것이다. 그런 형태들은 어떤 MMO 애플리케이션에 대해서도 최적화될 수 있는 포괄적인 플랫폼을 제공하며, MMO 개발자들과 퍼블리셔들을 위한 기술 세트들을 포함한다. 그러한 플랫폼은 네트워킹 프로토콜 기술을 제공할 것이며 또한 게임 개발자들이 게임의 통신 분야에 쏟는 시간을 줄이고 컨텐츠 개발에 초점을 맞추도록 해 주는 모든 라우팅과 메시징을 다룰 것이다. 또한 본 발명은 피어 노드들에게 제공되어 전술한 방법으로 본 발명을 실행하는 피어 노드 소프트웨어 애플리케이션으로 구현될 수 있다.
또한, 본 발명의 최적화는 네트워크 트래픽의 효과적인 인코딩, 불필요한 관심 통지들의 억제 및 IM 영역들을 위치짓기/크기정하기에 관련한 알고리즘에 대한 개선들을 수반할 수 있다.
본 발명의 본 실시예에 따른 동적 경계 관심 매니지먼트 영역은 그러므로 어떤 형태와 크기를 가질 수 있는 공간 내 영역이다. 셀과 달리, 경계 관심 매니지먼트 영역은 동적이며 또한 필요에 따라 공간 내에서 이리저리 움직일 수 있으며 자기 자신의 크기를 조절할 수 있다. 더욱이 경계 영역은 엔티티(entity)여서 다른 관심 매니지머트 서비스들(예컨대 셀들이나 또 다른 경계 IM 영역들) 안으로 삽입될 수 있다. 경계 IM 영역은 이하의 객체 시스템에 의해 지지되는 어떤 형태로 수행될 수 있다. 평가 목적을 위해서 우리는 경계 영역이 구(sphere)의 형태를 갖는 것으로 가정한다. 위치와 반경을 갖는다.
동적 경계 영역들은 디스커버리 프로세스에 있어서 추가적인 레벨을 도입한다. 각 엔티티 및 그것과 연관되는 관심 영역들은 경계 관심 매니지먼트 영역에 의해 처리된다. 경계 영역은 DHT에 질의하여 다른 엔티티들과 관심(interest)의 경계 영역들을 알아낸다. 엔티티들과 관심 영역은 그들의 경계 영역을 질의하여 관심의 리모트 객체들(remote objects)을 확인한다. 관심 영역은 매니저에 의해 컨트롤 된다. 특정 경계 영역에 대한 영역 매니저 작업이 네트워크 상의 피어에게 부여된다. 피어 선택은 로드가 네트워크 전체에 걸쳐 분포되는 방식으로 만들어진다. 영역 내에 한 개의 엔티티만 존재하는 경우에, 경계 영역은 로컬 피어(엔티티를 제어하는 피어)에 의해 처리된다. 이것은 엔티티와 경계 영역 사이의 통신 오버헤드들을 제거해 준다.
시스템의 오퍼레이션은 경계 영역을 생성하며 그들 wk신 및 그들의 관심 영역을 그 경계 영역 안으로 삽입하는 엔티티들로 시작된다. 경계 영역은 셀 프로토콜을 이용하여 DHT 안으로 그 자신을 삽입한다. 셀들은 삽입된 경계 영역과 공간 내에 존재하는 객체들 사이의 만남(intersections)을 탐지하며, 또한 이 객체들에게 새로운 서비스를 통지한다. 차례대로 이 객체들이 셀들로부터 그들의 영역들을 제거하며 그것들을 경계 영역 안으로 삽입한다. 객체가 상기 경계 영역들로 가득 차게 되면, 상기 경계 영역 서비스가 상기 DHT로부터 분리되었음을 객체에 알리는 통지를 보낼 것이다. 이는 모든 객체들을 커버하는 DHT 안으로 오직 한 개의 영역만이 삽입되는 효과를 가져오며, 중요하게는 DHT 복제에 관련된 트래픽을 감소시킨다.
엔티티들은 언제라도 경계 영역들에 의해 커버되는 공간 영역들을 자유롭게 드나든다. 관심 매지니먼트 서비스들이 그들에게 경계 관심 매니지먼트 영역들과 DHT 사이의 만남/분리를 알려줄 것이다. 그때 관심 매니지먼트 사용들이 필요에 따라 업데이트 될 수 있다. 마찬가지로 경계 영역들은 필요에 따라 네트워크 트래픽을 최소화하기 위해 이동하거나 크기가 조절될 수 있다. 관심 매니지먼트 통지들이 관심 매니지먼트 사용들의 일관성을 보장할 것이다.
경계 영역들은 디폴트 사이즈를 갖는다. 그러나 그것들은 복수의 엔티티들을 수용하기 위해 그 크기의 증감을 할 수 있다. 시스템 성능을 최적화 하기 위해 연산되는 최대 크기 한계점이 존재한다. 경계 영역들은 다른 영역들과 합쳐질 수 있으며(도 4), 또는 영역 내의 엔티티들의 이동에 의존하면서 복수의 경계 영역들 내에서 나누어질 수 있다.
경계 영역들의 행동은 다음 알고리즘에 의해 기술될 수 있다. N개의 엔티들(O1, O2, …, QN)을 모두 포함하는 경계 영역(Bi)가 있다고 가정하자. 매시간 엔티티는 그 사용 영역(subscription region)을 밖으로 뺄 것이며, 경계 영역으로 리퀘스트를 보낼 것이다. 이는 차례로 Modify _ Region () 함수를 호출할 것이다. 상기 알고리즘들을 이해하기 위해서, 우리는 서브-그룹들의 개념을 소개한다. 영역 내의 엔티티들은 그들의 관심 영역들의 오버랩에 의존하는 서브-그룹들로 범주화되어 있다. 서브-그룹 내의 모든 엔티티들은 어느 정도 오버랩을 가지거나 다른 엔티티들을 통해 연결된다. 예컨대 도 6에서는 경계 영역(X)은 두 개의 서브-그룹을 갖는다. 엔티티 A 및 C에 대한 관심 영역이 서로 교차되지 않는다고 하더라도, 그들이 엔티티 B를 통해 연결되어 있기 때문에 동일한 서브-그룹에 속하게 된다. Modify _ Region , Merge and Split에 대한 상기 알고리즘은 다음과 같다:
Modify _ Region (Region B)
{
B's overlap region list L:= {}
for each R in L do
Calculate overlap between B and R;
if (overlap > 50%)
Merge(B, R);
Entity list X:= {}
Parse each E in X and form sub-groups;
Resize B so that it encloses all the entities in X;
for the largest sub-group G
split (B, G);
}
Merge (Region B, Region C)
{
Increase the size of B until it encloses C;
Shutdown C;
Transfer all entities from C to B;
}
Split (Region B, Subgroup G)
{
Create new region C;
Entity list for sub-group G is X:= {}
Entity list for region B is Y:= {}
for each entity E in X do
Transfer E from region B to region C;
Reduce the size of B to enclose all entities in Y;
}
경계 영역들은 잘못될 수 있으며 그 영역들 내의 다양한 엔티티들과 또는 DHT와의 연결성(일시적으로 혹은 영원히)을 잃을 수 있다. 이런 일이 발생하는 경우, 모든 엔티티들과 관심 영역들은 셀 프로토콜을 이용하는 것으로 복귀하며, 새로운 경계 영역들이 형성될 것이다. 이는 경계 영역 실패라는 이벤트에 있어서 관심 영역을 위한 대비 메커니즘을 제공하며, 경계 영역들이 연결을 잃지 않고 스무드한 방법으로 네트워크 및 장치 실패들로부터 회복될 수 있도록 한다.
본 발명의 상세한 설명의 어떤 부분은 컴퓨터 메모리 내의 데이터 비트들에 대한 오퍼레이션의 심볼 표현들과 알고리즘들의 관점에서 제안된다. 이들 알고리즘 설명들과 표현들은 데이터 처리 분야의 당업자들에 의해 이용되는 수단이며 그들 작업의 핵심을 이 기술분야에게 매우 효과적으로 전달해준다. 알고리즘은 여기서 그리고 일반적으로 소망하는 결과를 이끌어주는 일관된 단계들의 시퀀스로 인식된다. 그 단계들은 물리량들의 물리적인 처리들을 필요로 한다. 필수적이지는 않더라도, 통상 이들 양들은 저장과 전달과 결합과 비교, 아니면 처리될 수 있는 전기적인 혹은 자기적인 신호들의 형태를 취한다. 이들 신호들을 비트, 값, 구성요소, 심볼, 특징, 용어, 숫자 등으로 나타내는 것은 관용적인 용법의 근거가 됨에 있어서 때때로 편리함이 입증되었다.
따라서 때때로 컴퓨터-실행 되는 것으로 나타내지는 그러한 행동들과 오퍼레이션들은 구조화된 형태로 데이터를 처리하는 전기 신호들의 컴퓨터 프로세싱 유닛에 의한 처리를 포함한다. 이 처리는 데이터를 전달하거나 컴퓨터의 메모리 시스템 내의 위치에 유지시키며, 이는 이 분야의 당업자들에게 잘 알려진 방법으로 컴퓨터 오퍼레이션을 변경시키거나 그렇지 않으면 바꾼다. 데이터가 유지되는 데이터 구조들은 데이터 포맷에 의해 정의되는 특정 특징들을 갖는 메모리의 물리적 위치들이다. 그러나 본 발명이 앞서 말한 내용으로 기술되어 있지만, 이 분야의 당업자들이 상기 행동들과 오퍼레이션들이 하드웨어 내에서 다양하게 실행될 수 있음을 인식할 것이기 때문에, 그 의미가 제한적인 것으로 되는 것은 아니다.
그러나 이들 모두 및 유사한 용어들은 적절한 물리량과 관련되는 것이며, 또한 이들 양에 적용되는 편리한 표지에 불과함을 명심해야 한다. 본 명세서에서 명확히 달리 진술되는 경우가 아니라면, 본 명세서를 통해서 "프로세싱(processing)", "컴퓨팅(computing)", "연산(calculating)", "결정(determining)" 또는 "디스플레잉(displaying)" 등과 같은 용어를 활용하는 논의들은, 컴퓨터 시스템의 리지스터 및 메모리 내의 물리(전자)량으로 표현되는 데이터를 처리하고 컴퓨터 시스템 메모리나 리지스터나 혹은 다른 정보 저장소, 전송 또는 디스플레이 장치들 내의 물리량으로 유사하게 표현되는 다른 데이터로 전달하는 컴퓨터 시스템이나 혹은 유사한 컴퓨팅 디바이스의 프로세스 및 행동을 나타내는 것으로 인식된다.
본 발명은 또한 여기서 상기 오퍼레이션들을 수행하기 위한 장치에 관한다. 본 장치는 필요한 목적에 따라 특별히 구성될 수 있거나, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 작동되거나 변경되는 범용 컴퓨터를 포함할 수 있다. 그런 컴퓨터 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있으며, 비록 그것들에 제한되지는 않지만 예컨대 플로피 디스크, 광 디스크, CD-ROM, 자기광학 디스크를 포함하는 디스크 종류, ROM(Read Only Memory), RAM(Random Access Memory), EPROM, EEPROM, 자기 혹은 광학 카드, 또는 기타 전자 명령들을 저장하기 위한 적절한 임의 매체를 들 수 있으며, 또한 각각 컴퓨터 시스템 버스에 연결된다.
제안되는 알고리즘 및 디스플레이들은 여기서 어떤 특별한 컴퓨터나 다른 장치에 관한 것으로 내재되어 있지는 않다. 다양한 범용 시스템들이 여기서의 교시 사항들에 따른 프로그램들을 통해 이용될 수 있거나, 또는 필요한 방법 단계들을 수행하는데 더욱 특화된 장치를 구성하는 것이 더 편리할 수도 있다. 이들 다양한 시스템들에 대한 필요한 구조가 본 명세서에 의해 언급될 것이다. 또한, 본 발명은 어떤 특별한 프로그램 언어에 기초하여 기술되는 것은 아니다. 다양한 프로그램 언어들이 여기 기재되어 있는 바와 같은 본 발명의 교시사항들 실행하는데 이용될 수 있다.
기계 판독 가능 매체는 기계(예들 들면 컴퓨터)에 의해 판독될 수 있는 형태로 정보를 저장하거나 처리하기 위한 어떤 메커니즘을 포함한다. 예컨대 기계 판독 가능 매체는 ROM; RAM; 자기 디스크 저장매체; 광 저장 매체; 플래시 메모리 장치; 전기, 광학, 어쿠스틱 혹은 다른 형태의 전파되는 신호들(예들 들면, 캐리어 웨이브, 적외선 신호, 디지털 신호 등); 등이다.
도 7로 돌아가서, 본 발명은 적절한 컴퓨팅 환경에서 실행되는 것으로 나타내진다. 필요로 되지는 않더라도, 본 발명은 퍼스널 컴퓨터에 의해 실행되는 프로그램 모듈 등의 컴퓨터-실행가능 명령들의 일반적인 내용으로 기술될 것이다. 일반적으로, 프로그램 모듈은 추상 데이터 타입들(abstract data types)을 실행하거나 특별한 작업을 수행하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 더욱이 이 기술분야의 당업자들은 본 발명이 파지 가능한 디바이스들, 멀티 프로세서 시스템들, 마이크로프로세서 기반이나 혹은 프로그램 가능한 소비자 전자장치들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는 다른 컴퓨터 시스템 구성들과 함께 행해질 수 있음을 인식한다. 본 발명은 통신 네트워크를 통해 링크되는 원격 프로세싱 디바이스들에 의해 작업이 수행되는 분산 컴퓨팅 환경 내에서 실행될 수 있다. 분산 컴퓨팅 환경에 있어서, 프로그램 모듈은 로컬 메모리 스토리지 장치와 원격 메모리 스토리지 장치 양쪽 모두에 위치될 수 있다.
도 7에 있어서 범용 컴퓨팅 디바이스는 프로세싱 유닛(21), 시스템 메모리(22) 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 상기 프로세싱 유닛(21)에 연결시키는 시스템 버스(23)를 포함하는 전통적인 퍼스널 컴퓨터(20)의 형태로 나타내진다. 상기 시스템 버스(23)는 메모리 버스나 메모리 컨트롤러, 주변장치 버스 및 다양한 버스 어키텍쳐들 중 어느 하나를 이용하는 로컬 버스를 포함하는 다수의 버스 구조 중에서 어느 하나의 유형일 수 있다. 상기 시스템 메모리는 램(24)과 롬(25)을 포함한다. 예컨대 스타트업(start-up) 동안에 퍼스널 컴퓨터(20) 내의 구성요소들 간의 정보 전달을 돕는 기본 루틴들을 포함하는 바이어스(BIOS)(26)가 롬(24)에 저장된다. 상기 퍼스널 컴퓨터(20)는 또한 하드디스크(60)에 기록하고 독출하기 위한 하드디스크 드라이브(27), 이동식 자기 디스크(29)로부터 독출하거나 기록하기 위한 자기 디스크 드라이브(28), 그리고 CD ROM이나 다른 광매체와 같은 이동식 광 디스크(31)에 기록하거나 독출하기 위한 광 디스크 드라이브(30)를 포함한다.
하드디스크 드라이브(27), 자기 디스크 드라이브(28) 및 광 디스크 드라이브(30)는 각각 하드디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33) 및 광 디스크 드라이브 인터페이스(34)에 의해 시스템 버스(23)에 연결된다. 상기 드라이브들과 그들의 관련 컴퓨터 읽기 가능한 매체는 퍼스널 컴퓨터(20)에 대한 컴퓨터 읽기 가능한 명령, 데이터 명령들, 프로그램 모듈들 및 기타 데이터의 비휘발성 저장소를 제공한다. 도시된 전형적인 환경이 하드디스크(60), 이동식 자기 디스크(29) 및 이동식 광 디스크(31)를 이용하더라도, 이 분야 당업자들은 자기 카세트들, 플래시 메모리 카드들, 디지털 비디오 디스크들, 베르누이 카트리지들(Bernoulli cartridges), 램들, 롬들, 스토리지 전용 네트워크들 등과 같이 컴퓨터에 의해 액세스될 수 있는 데이터 저장 가능한 다른 유형의 컴퓨터 읽기 가능한 매체들이 상기 전형적인 작동 환경에서 또한 이용될 수 있음을 인식할 것이다.
오퍼레이팅 시스템(35), 하나 이상의 애플리케이션 프로그램(36), 기타 프로그램 모듈(37) 및 프로그램 데이터(38)를 포함하여 다수의 프로그램 모듈들이 하드디스크(60), 자기 디스크(29), 광 디스크(31) 또는 램(24)이나 롬(25)에 저장될 수 있다. 사용자는 키보드(40) 및 포인팅 디바이스(42) 등의 입력 장치들을 통해서 퍼스널 컴퓨터(20)로 커맨드와 정보를 입력할 수 있다. 다른 입력 장치들(도시되어 있지 않음)로는 마이크로폰, 조이스틱, 게임 패드, 위성 방송 수신 안테나, 스캐너 등이 포함될 수 있다. 이들 입력 장치들은 대게 시스템 버스에 연결되는 직렬 포트 인터페이스(46)를 통해 프로세싱 유닛(21)에 연결되지만, 병렬 포트, 게임 포트나 범용 직렬 버스(USB) 또는 네트워크 인터페이스 카드와 같은 다른 인터페이스들에 의해 연결될 수도 있다. 모니터(47)나 다른 종류의 디스플레이 장치는 비디오 어댑터(48)와 같은 인터페이스를 경유하여 시스템 버스(23)에 또한 연결된다. 상기 모니터에 더하여, 퍼스널 컴퓨터들은 도시되지는 않았지만 일반적으로 스피커와 프린터와 같은 다른 주변 출력 장치들을 포함할 수 있다.
퍼스널 컴퓨터(20)는 리모트 컴퓨터(49)와 같은 1개 이상의 리모트 컴퓨터로의 논리적인 연결을 이용하는 네트워크된 환경에서 작동할 수 있다. 상기 리모트 컴퓨터(49)는 또 다른 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스나 다른 공통 네트워크 노드가 될 수 있으며, 비록 단 한 개의 메모리 스토리지 디바이스(50)만이 도시되어 있더라도, 일반적으로 상기 퍼스널 컴퓨터(20)에 관련되어 위에서 설명된 구성요소의 전부 혹은 대다수를 포함할 수 있다. 도시된 논리적인 연결은 근거리 통신망(local area network; LAN)(51)과 광역통신망(wide area network; WAN)(52)을 포함한다. 그러한 네트워킹 환경들은 사무소들, 광역 기업 컴퓨터 네트워크들, 인트라넷들 및 그 중에서도 인터넷에 있어서는 매우 흔하다.
LAN 네트워킹 환경 내에서 이용되는 경우에 퍼스널 컴퓨터(20)는 네트워크 인터페이스나 네트워크 어댑터(53)를 통해서 로컬 네트워크(51)에 연결된다. WAN 네트워킹 환경 내에서 이용되는 경우에는 상기 퍼스널 컴퓨터(20)는 일반적으로 WAN(52)에 대한 통신들을 수립하는 모뎀(54)이나 다른 수단을 포함한다. 내부 혹은 외부에 위치될 수 있는 모뎀(54)는 직렬 포트 인터페이스(46)를 경유하여 시스템 버스(23)에 연결된다. 네트워크된 환경에 있어서, 상기 퍼스널 컴퓨터(20)에 관련되어 묘사된 프로그램 모듈들이나 그것들의 일부분들이 원격의 메모리 스토리지 장치 내에 저장될 수 있다. 상기한 네트워크 연결들은 전형적으로 예시된 것이며, 컴퓨터들 사이의 통신 링크를 수립하는 다른 수단들이 이용될 수도 있다.
이 분야의 당업자들은 상기의 특정 실시예에 따른 본 발명에 대해서 넓게 기술되어 있는 본 발명의 정신과 범위를 일탈함 없이 다양한 변형들 및 수정들이 만들어질 수 있음을 인식할 것이다. 그러므로 상기한 실시예들은 그 모든 관점에서 예시적인 것이며 제한적으로 해석되어서는 아니 되는 것으로 고려되어야 한다.

Claims (18)

  1. 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법으로서:
    상기 가상 환경을 복수의 셀들로 나누고, 각 셀에 대한 제어를 책임 피어에 할당하며, 각 책임 피어가 분산 해시 테이블(DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져오는 단계;
    셀을 제어하는 상기 책임 피어에 대한 처리 로드와 통신이 한계점을 초과하는 경우에 대해서, 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역(bounded interest management region)을 포함하는 객체에 대한 제어 책임을 생성하고 가져오는 단계; 및
    상기 경계 관심 매니지먼트 영역 내에서, 연관된 셀로부터 객체들을 제거하고 또한 그것들을 상기 경계 관심 매니지먼트 영역과 연관 짓는 단계;를 포함하는, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  2. 제1항에 있어서,
    상기 경계 관심 매니지먼트 영역은 상기 로드 영역 내의 모든 객체를 함유하도록 구성됨으로써, DHT 리던던시(redundancy)에 관련된 네트워크 트래픽을 감소시키는, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 경계 관심 매니지먼트 영역의 크기는 상기 로드 영역이 시간에 대해 변화함에 따라 달라지는 것인, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 경계 관심 매니지먼트 영역의 위치는 상기 로드 영역 내의 객체들이 시간에 대해 이동함에 따라 달라지는 것인, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    제 1 수립된 경계 관심 매니지먼트 영역 내의 객체들이 최대 영역 사이즈 한계점을 초과하여 분산되는 경우에 제 2 경계 관심 매니지먼트 영역의 분리생성(calving off)을 추가로 제공하는, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    근접하는 두 개 이상의 경계 관심 매니지먼트 영역들이 통합되는, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    경계 관심 매니지먼트 영역의 실패 이벤트에 있어서 연관된 객체들이 DHT에 직접 재연관 되는, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 비집중화된 멀티 유저 온라인 가상 환경은 다중 온라인 게임(massively multiplayer online game; MMOG)인, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위한 방법.
  9. 컴퓨터 프로그램 제품으로서, 비집중화된 멀티 유저 온라인 가상 환경에 있어서 제어 피어에 객체 책임을 효과적으로 할당하기 위하여 컴퓨터가 절차를 실행하도록 하는 컴퓨터 프로그램 코드 수단을 포함하며:
    상기 가상 환경을 복수의 셀들로 나누고, 각 셀에 대한 제어를 책임 피어에 할당하며, 각 책임 피어가 분산 해시 테이블(distributed hash table; DHT)에 관여하여 상기 가상 환경에 영향을 미치는 셀들의 통합을 가져오도록 하는 컴퓨터 프로그램 코드 수단;
    셀을 제어하는 상기 책임 피어에 대한 처리 로드와 통신이 한계점(threshold)을 초과하는지 여부를 결정하며, 만일 그렇게 되는 경우에 상기 제 2 피어가 로드 영역을 커버하는 경계 관심 매니지먼트 영역(bounded interest management region)을 포함하는 객체에 대한 제어 책임을 생성하고 가져오도록 하는 컴퓨터 프로그램 코드 수단; 및
    상기 경계 관심 매니지먼트 영역 내에서, 연관된 셀로부터 객체들을 제거하고 또한 상기 경계 관심 매니지먼트 영역과 연관 짓도록 하는 컴퓨터 프로그램 코드 수단;을 포함하는, 컴퓨터 프로그램 제품.
  10. 제9항에 있어서,
    상기 경계 관심 매니지먼트 영역은 상기 로드 영역 내의 모든 객체를 함유하도록 구성됨으로써, DHT 리던던시(redundancy)에 관련된 네트워크 트래픽을 감소시키는, 컴퓨터 프로그램 제품.
  11. 제9항 또는 제10항에 있어서,
    상기 경계 관심 매니지먼트 영역의 크기는 상기 로드 영역이 시간에 대해 변화함에 따라 달라지는 것인, 컴퓨터 프로그램 제품.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 경계 관심 매니지먼트 영역의 위치는 상기 로드 영역 내의 객체들이 시간에 대해 이동함에 따라 달라지는 것인, 컴퓨터 프로그램 제품.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    제 1 수립된 경계 관심 매니지먼트 영역 내의 객체들이 최대 영역 사이즈 한계점을 초과하여 분산되는 경우에 제 2 경계 관심 매니지먼트 영역의 분리생성(calving off)을 추가로 제공하는, 컴퓨터 프로그램 제품.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    근접하는 두 개 이상의 경계 관심 매니지먼트 영역들이 통합되는, 컴퓨터 프로그램 제품.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    경계 관심 매니지먼트 영역의 실패 이벤트에 있어서 연관된 객체들이 DHT에 직접 재연관 되는, 컴퓨터 프로그램 제품.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서,
    상기 비집중화된 멀티 유저 온라인 가상 환경은 다중 온라인 게임(massively multiplayer online game; MMOG)인, 컴퓨터 프로그램 제품.
  17. 제1항 내지 제8항 중 어느 한 항의 방법을 실행하도록 구성되는 복수의 네트워크 노드들을 포함하는 시스템.
  18. 제1항 내지 제8항 중 어느 한 항의 방법에 따라 객체 책임이 할당되는 방식으로 게임 디벨로퍼들이 다중 온라인 게임들을 디자인할 수 있도록 하는 개발 플랫폼 소프트웨어 애플리케이션.
KR1020117009338A 2008-10-08 2009-10-08 비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도 KR20110079671A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2008905220 2008-10-08
AU2008905220A AU2008905220A0 (en) 2008-10-08 Use of dynamic bounded regions to improve the scalability of decentralised online environments

Publications (1)

Publication Number Publication Date
KR20110079671A true KR20110079671A (ko) 2011-07-07

Family

ID=42100145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009338A KR20110079671A (ko) 2008-10-08 2009-10-08 비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도

Country Status (5)

Country Link
US (1) US20110256935A1 (ko)
EP (1) EP2350852A4 (ko)
KR (1) KR20110079671A (ko)
AU (1) AU2009301637A1 (ko)
WO (1) WO2010040179A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102034760B1 (ko) 2018-12-31 2019-10-22 지앤에스건설 주식회사 긴장시스템을 도입한 일체형 현장타설 말뚝 시공방법이 적용된 구조
KR102546153B1 (ko) 2022-08-01 2023-06-20 함정아 횡방향 지지력이 증가된 교량용 말뚝 및 그 시공방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972870B2 (en) * 2009-08-27 2015-03-03 International Business Machines Corporation Providing alternative representations of virtual content in a virtual universe
US20120079121A1 (en) * 2010-09-28 2012-03-29 Disney Enterprises, Inc System and method for dynamic adaptive player cells for multi-player environments

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657597B2 (en) * 2002-09-26 2010-02-02 Sun Microsystems, Inc. Instant messaging using distributed indexes
US7779415B2 (en) * 2003-11-21 2010-08-17 International Business Machines Corporation Adaptive load distribution in managing dynamic and transient data for distributed applications
US20060168107A1 (en) * 2004-03-16 2006-07-27 Balan Rajesh K Generalized on-demand service architecture for interactive applications
US7644087B2 (en) * 2005-02-24 2010-01-05 Xeround Systems Ltd. Method and apparatus for data management
US20080104609A1 (en) * 2006-10-26 2008-05-01 D Amora Bruce D System and method for load balancing distributed simulations in virtual environments

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102034760B1 (ko) 2018-12-31 2019-10-22 지앤에스건설 주식회사 긴장시스템을 도입한 일체형 현장타설 말뚝 시공방법이 적용된 구조
KR102546153B1 (ko) 2022-08-01 2023-06-20 함정아 횡방향 지지력이 증가된 교량용 말뚝 및 그 시공방법

Also Published As

Publication number Publication date
AU2009301637A1 (en) 2010-04-15
WO2010040179A1 (en) 2010-04-15
US20110256935A1 (en) 2011-10-20
EP2350852A4 (en) 2013-03-13
EP2350852A1 (en) 2011-08-03

Similar Documents

Publication Publication Date Title
KR100638072B1 (ko) 네트워크 통신 아키텍처들 사이의 동적인 스위칭 구성
US9104962B2 (en) Distributed network architecture for introducing dynamic content into a synthetic environment
US8944917B2 (en) Multi-tier online game play
US20080248845A1 (en) Contextual Gamer Options Menu
US20090275414A1 (en) Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
US20060217201A1 (en) Handling of players and objects in massive multi-player on-line games
JP2022521012A (ja) トランザクショナルメモリ同期
CN110935169B (zh) 虚拟对象的控制方法、信息显示方法、装置、设备及介质
KR20110079671A (ko) 비집중화된 온라인 환경의 범위성을 개선하기 위한 동적 경계 영역의 용도
US11531685B2 (en) Addressing data skew using map-reduce
US11161045B1 (en) Content item forking and merging
CN114047918A (zh) 任务处理方法、装置、设备、存储介质及产品
CN111589118B (zh) 用户界面的显示方法、装置、设备及存储介质
Behnke Increasing the supported number of participants in distributed virtual environments
US11909601B1 (en) Implementing a scalable 3D simulation using a distributed 3D keyspace
Bamutange et al. Zoneless load balancing for massively multiplayer online games
CN107617216B (zh) 一种游戏人工智能任务的设计系统和方法
David et al. Improving scalability in MMOGs-scalamo: A new architecture
Xu et al. A Comparison of Architectures in Massive Multiplayer Online Games”
US10449449B2 (en) Reducing the bandwidth requirements of multiplayer gaming sessions
CN116747511A (zh) 一种游戏服务器系统
Cheng et al. Multi‐device, multi‐player gaming: issues and application
da Cruz Alexandre Re-engineering Jake2 to Work on a Grid using the GridGain Middleware
Alexandre Re-engineering jake2 to work on a grid using the GridGain Middleware
Hu et al. Voronoi State Management for P2P MMOGs

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid