KR100775132B1 - 서버 미러링 시스템 및 방법 - Google Patents

서버 미러링 시스템 및 방법 Download PDF

Info

Publication number
KR100775132B1
KR100775132B1 KR1020060028908A KR20060028908A KR100775132B1 KR 100775132 B1 KR100775132 B1 KR 100775132B1 KR 1020060028908 A KR1020060028908 A KR 1020060028908A KR 20060028908 A KR20060028908 A KR 20060028908A KR 100775132 B1 KR100775132 B1 KR 100775132B1
Authority
KR
South Korea
Prior art keywords
server
message
mirroring
publisher
channel
Prior art date
Application number
KR1020060028908A
Other languages
English (en)
Other versions
KR20070097938A (ko
Inventor
박성수
안양수
Original Assignee
엔에이치엔(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔(주) filed Critical 엔에이치엔(주)
Priority to KR1020060028908A priority Critical patent/KR100775132B1/ko
Priority to JP2009502686A priority patent/JP5044638B2/ja
Priority to CN2007800113366A priority patent/CN101410822B/zh
Priority to PCT/KR2007/001574 priority patent/WO2007114606A1/en
Publication of KR20070097938A publication Critical patent/KR20070097938A/ko
Application granted granted Critical
Publication of KR100775132B1 publication Critical patent/KR100775132B1/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
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 서버 미러링 시스템 및 방법에 관한 것으로서, 본 발명에 의한 시스템은 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가시키는 메시지 라우팅 서버; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 서버; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버를 포함하되, 상기 퍼블리서 서버는 채널이 생성될 경우, 채널 생성 메시지 및 상기 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 채널 생성 메시지 또는 상기 퍼블리서 서버 채널로 전송된 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전달한다. 본 발명에 의하면, 최소의 트래픽으로 비교적 간단한 로직을 가진 메시지 라우팅 서버를 이용하여 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 장점이 있다.
서버, 미러링, 관전

Description

서버 미러링 시스템 및 방법{Server Mirroring System and Method}
도 1은 통상적인 복수 서버에 의한 서비스 제공 시스템의 일례를 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 서버 미러링 시스템의 구성을 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 메시지 라우팅 서버에 생성되는 그룹을 도시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버 및 미러링 서버의 게임룸의 상태를 나타낸 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에 게임 룸 생성 시 미러링 서버에 게임 룸이 생성되는 과정에 대한 순서도.
도 6은 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에서 게임 룸 삭제 시 미러링 서버에서 미러링된 게임 룸이 삭제되는 과정을 도시한 순서도.
도 7은 본 발명의 바람직한 일 실시예에 따른 게임 진행 상황이 미러링 서버에서 재현되도록 퍼블리서 서버의 게임 룸에서 교환되는 게임 커맨드 패킷이 미러링 서버에 전달되는 과정에 대한 순서도.
도 8은 본 발명의 바람직한 일 실시예에 따른 특정 미러링 서버에서 장애가 발생할 경우 장애를 복구하는 과정에 대한 순서도.
도 9는 본 발명의 일 실시예에 따른 퍼블리서 서버의 메시지가 메시지 라우팅 서버를 통해 서브스크라이버 그룹에 속한 미러링 서버들에 전달되는 개념도를 도시한 도면.
본 발명은 서버 미러링(mirroring) 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 특정 서버에 생성된 채널 정보를 다른 서버에 미러링하는 시스템 및 방법에 관한 것이다.
인터넷의 사용자 수는 계속적으로 증가하는 추세이며, 이에 따른 서버의 부하는 인터넷 서비스의 가장 근본적인 문제점 중 하나가 되고 있다. 특히, 온라인 게임 서비스 시스템, 채팅 서비스 시스템과 같이 다수의 사용자가 서버에 접속하는 시스템의 경우, 서버 부하의 문제점은 더욱 심화된다.
일반적으로, 사용자가 증가할수록 서버를 증설하여 서버 부하 문제를 해결하고 있다.
도 1은 통상적인 복수 서버에 의한 서비스 제공 시스템의 일례를 도시한 도면으로서, 하나의 서버로 사용자들의 커넥션을 모두 수용할 수 없을 경우, 도 1과 같이 복수의 서버(100, 102, 104)를 이용하여 인터넷 서비스를 제공한다.
많은 수의 사용자가 접속하는 온라인 게임 서비스의 경우, 사용자가 복수의 서버들(100, 102, 104) 중 하나의 서버를 선택하도록 하며, 사용자는 선택한 서버에서 게임을 플레이한다.
예를 들어, 사용자가 제1 서버(100)에 접속한 경우, 사용자는 제1 서버에 접속한 사용자들과만 커뮤니케이션이 가능하며, 제1 서버에 생성된 채널(게임 룸)에서만 게임을 플레이할 수 있다.
도 1과 같이, 복수의 서버를 통해 서버의 부하 문제를 해결하는 시스템은 사용자의 활동 영역을 사용자가 접속한 서버에 제한해버리는 문제점이 있었다. 즉, 제1 서버(100)에 접속한 사용자는 제2 서버에 생성된 채널에 참가할 수도 없으며, 제2 서버에 생성된 채널의 상황을 모니터링할 수도 없다.
근래의 들어, 바둑이나 전략 시뮬레이션 게임은 게임 플레이 외에도 관전 위주로 게임을 즐기는 사용자가 늘어가고 있으며, 유명한 프로기사의 대국의 경우 상당수의 사용자가 관전에 참여하고 있다.
그러나, 도 1과 같은 시스템이 사용될 경우, 제1 서버에서 프로 기사간의 대국이 이루어질 경우 제2 서버 및 제3 서버에 접속한 사용자들은 제1 서버에서 진행되는 대국 상황을 전혀 모니터링할 수 없는 문제점이 있었다.
제1 서버에의 대국 진행 상황을 제2 서버 및 제3 서버로 제1 서버가 전송할 수도 있으나, 이 경우 트래픽이 급격히 증가하게 되고, 대국 진행 상황 전달을 위한 컨트롤 서버가 구비되어야 하며, 상기 컨트롤 서버는 상당히 복잡한 로직으로 구성되어야 한다.
비단, 게임의 경우가 아니더라도 독립적인 채널을 통해 서비스를 제공하는 시스템에서 특정 서버에 생성된 채널을 효율적으로 다른 서버에 미러링할 수 없는 문제점이 있었다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 최소의 트래픽으로 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 서버 미러링 방법 및 시스템을 제안하고자 한다.
본 발명의 다른 목적은 비교적 간단한 로직을 가진 메시지 라우팅 서버를 이용하여 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 특정 서버에 접속한 사용자가 다른 서버에 생성된 채널의 상황을 모니터링할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 바둑, 전략 시뮬레이션과 같은 게임에서 다른 서버에서 진행되고 있는 게임 상황을 관전할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따르면, 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가사시키는 메시지 라우팅 서버; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 서버; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버를 포함하되, 상기 퍼블리서 서버는 채널이 생성될 경우, 채널 생성 메시지 및 상기 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 채널 생성 메시지 또는 상기 퍼블리서 서버 채널로 전송된 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전달하는 서버 미러링 시스템이 제공된다.
상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 채널 생성 메시지를 수신할 경우, 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 생성한다.
상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터, 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 수신된 메시지를 상기 미러링 서버에 생성된 채널에 참가한 클라이언트들에 전송한다.
상기 퍼블리서 서버는 상기 메시지 라우팅 서버에 멀티캐스트 방식으로 상기 채널 생성 메시지 및 상기 퍼블리서 서버의 채널로 전송된 메시지를 전송하며, 상 기 퍼블리서 서버로부터 상기 메시지 라우팅 서버로 전송되는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정된다.
상기 적어도 하나의 미러링 서버 각각은 상기 메시지 라우팅 서버로부터 채널 생성 메시지를 수신할 경우 상기 퍼블리서 서버에 생성된 채널 번호와 상기 미러링 서버의 채널 번호를 매칭시키기 위한 매칭 테이블 또는 매칭 코드를 생성한다.
상기 적어도 하나의 퍼블리서 서버 및 상기 적어도 하나의 미러링 서버는 상기 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 서브스크라이버 그룹에 참가한 미러링 서버로 전송될 메시지를 수신할 경우, 상기 소켓을 통해 상기 수신된 메시지를 서브스크라이버 그룹에 참가한 미러링 서버에 전송한다.
상기 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 메시지를 분석하여 상기 메시지와 관련된 퍼블리서 서버의 채널 번호를 판단하고, 상기 매칭 테이블 또는 매칭 코드를 이용하여 관련된 상기 미러링 서버에서의 채널 번호를 판단한 후 상기 메시지를 해당 채널에 제공한다.
상기 퍼블리서 서버 및 상기 미러링 서버는 게임 서버이며, 상기 채널은 게임 룸일 수 있다.
본 발명의 다른 측면에 따르면, 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이 버 그룹 중 하나에 참가사키는 메시지 라우팅 서버; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 게임 서버; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 게임 서버를 포함하되, 상기 퍼블리서 게임 서버는 게임 룸이 생성될 경우, 게임 룸 생성 메시지 및 상기 생성된 게임 룸 내에서의 게임 진행 정보 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 게임 서버로부터 상기 게임 룸 생성 메시지 또는 게임 진행 정보 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 게임 서버들에 전달하는 서버 미러링 시스템이 제공된다.
본 발명의 또 다른 측면에 따르면, 적어도 하나의 퍼블리서 서버 및 적어도 하나의 미러링 서버와 연결되어 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하기 위한 메시지 라우팅 서버로서, 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하며, 상기 퍼블리서 서버로부터 채널 생성 메시지 또는 상기 퍼블리의서 서버의에 채널로 전송된 메시지를 수신할 경우, 상기 퍼블리서 서버로부터 수신된 메시지-상기 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정됨-를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전송하되, 상기 적어도 하나의 퍼블리서 서버와 상기 적어도 하나의 미러링 서버와 소켓을 통해 커넥션을 유지하는 메시지 라우팅 서버가 제공된다.
본 발명의 또 다른 측면에 따르면, 적어도 하나의 퍼블리서 서버, 적어도 하나의 미러링 서버 및 상기 적어도 하나의 퍼블리서 서버 및 미러링 서버와 커넥션을 유지하는 메시지 라우팅 서버를 포함하는 시스템에서 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하는 방법으로서, 상기 퍼블리서 서버에서 채널이 생성될 경우, 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하는 단계(a); 상기 메시지 라우팅 서버에서 상기 퍼블리서 서버로부터 전송된 상기 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버에 전송하는 단계(b); 및 상기 미러링 서버가 상기 메시지 라우팅 서버로부터 채널 생성 메시지 또는 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 수신할 경우, 상기 미러링 서버에서 수신된 메시지의 종류에 상응하는 미리 설정된 미러링 프로세스를 수행하는 단계(c)를 포함하는 서버 미러링 방법이 제공된다.
이하에서는 첨부된 도면을 참조하여 본 발명에 의한 서버 미러링 시스템 및 방법의 바람직한 실시예를 상세히 설명한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 서버 미러링 시스템의 구성을 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 서버 미러링 시스템은 메시지 라우팅 서버(200) 및 복수의 서버(202, 204, 206)를 포함할 수 있다. 복수의 서버 각각으로는 복수의 사용자 클라이언트(210, 212, 214, 216, 218, 220)가 네트워크(미도시)를 통해 연결된다.
본 발명은 서버에 생성된 특정 채널의 정보를 다른 서버에 미러링하는 방법 및 시스템에 관한 것이다. 다수의 사용자들이 접속하여 사용자들끼리 경쟁 또는 협력을 통해 게임을 진행하도록 하는 온라인 게임 서버 또는 접속한 사용자들간의 채팅 메시지를 교환하는 채팅 서버 등은 서버 내에 다수의 채널을 형성하며 채널에 참여한 사용자들이 전송하는 메시지 패킷을 같은 채널에 다른 사용자들에게 전송한다. 이러한 채널은 주로 '룸'이라고 명명되며, 게임 서버의 경우 게임 룸, 채팅 서버의 경우 채팅 룸이라는 형태로 지칭된다. 게임 서버 또는 채팅 서버 이외에도 채널을 형성하여 사용자들의 요청을 처리하는 서버에는 본 발명이 적용될 수 있을 것이다. 이하에서, 본 발명을 일반적으로 설명할 때에는 '채널'이라는 용어를 사용하며, 본 발명을 온라인 게임 또는 채팅 서비스 등에 한정하여 설명할 때에는 '게임 룸' 또는 '채팅 룸'이란 용어를 사용하기로 한다. 또한, 제1 서버(202), 제2 서버(204), 제3 서버(206)가 사용자들의 요청을 처리하기 위한 서버이므로 형식상 사용자 요청 처리 서버(206)라 칭해질 수도 있으며, 각각의 사용자 요청 처리 서버는 이하에서 설명되는 바와 같이 퍼블리서(Publisher) 서버 또는 미러링 (Mirroring) 서버로 기능할 것이다.
제1 서버(202), 제2 서버(204), 제3 서버(206) 각각에는 독립적으로 채널이 형성되며, 클라이언트들(210, 212, 214, 216, 218, 220)은 접속한 서버에 형성된 채널에 참가한다.
특정 서버에 형성된 채널은 해당 서버에 접속한 사용자들만 참가할 수 있으며, 채널의 정보 역시 해당 서버에 접속한 사용자들만이 제공받을 수 있다.
예를 들어, 게임 서버의 경우, 특정 게임 서버에 생성된 게임 룸은 해당 서버에 접속한 사용자들만이 참가할 수 있으며, 해당 게임 룸에 참여한 사용자만이 해당 채널에서 게임을 플레이하거나 게임 진행 상황을 관전하는 것이 가능하다.
따라서, 제1 서버에 형성된 게임 룸에서 게임을 플레이하거나 게임을 관전하여야 하는 경우 사용자는 제1 서버에 접속하여야 하며, 제2 서버 및 제3 서버에 접속한 사용자는 제1 서버에 형성된 게임 룸에 참여하거나 제1 서버에 형성된 게임 룸에서 진행되는 게임을 관전할 수 없었다.
근래에 들어, 게임의 관전에 대한 관심이 높아지고 있으며, 전략 시뮬레이션 게임 및 바둑 게임 등에서는 게임의 관전이 게임 플레이만큼이나 중요한 요소로 자리잡고 있다.
게임 서버는 수용할 수 있는 커넥션의 수의 한계가 있으므로 제1 서버가 더 이상 사용자를 수용할 수 없는 경우, 제2 서버 및 제3 서버에 접속한 사용자는 제1 서버에 생성된 게임 룸에서 진행되는 게임을 관전할 수 없는 바, 제2 서버 및 제3 서버에 접속한 사용자들이 제1 서버에 생성된 게임룸에서 진행되는 게임을 관전할 수 있도록 본 발명에 의한 서버 미러링 방법이 사용될 수 있다.
또한, 본 발명에 의한 서버 미러링 방법은 게임 운영자들이 특정 서버에 형성된 게임룸의 상황을 모니터링하는 경우에도 이용될 수 있다. 게임 운영자들은 게임 내 부정행위 등을 모니터링하기 위해 게임룸에 조인하지 않고도 해당 게임룸을 운영자가 접속한 서버에 미러링하여 게임룸의 상황을 모니터링할 수 있다.
또한, 본 발명에 의한 서버 미러링 방법은 특정 채팅 서버에 접속한 사용자가 다른 채팅 서버에 생성된 채팅 룸의 채팅 상황을 모니터링하는데 이용될 수도 있다.
상술한 예 이외에도 특정 서버에 생성된 채널의 상황을 다른 서버에 접속한 사용자 또는 운영자가 모니터링할 필요가 있을 경우 본 발명의 서버 미러링 방법이 사용될 수 있을 것이다.
도 2에서, 제1 서버(202)에 생성된 채널은 제2 서버(204) 및 제3 서버(206)에 미러링되며, 제1 서버(202)와 같이 채널이 미러링되는 서버를 퍼블리서(Publisher) 서버라고 하며, 제2 서버(204) 및 제3 서버(206)와 같이 다른 서버의 채널을 미러링하는 서버를 미러링 (Mirroring)서버라고 한다.
퍼블리서 서버인 제1 서버(202)는 사용자로부터 다른 서버에 미러링될 채널의 생성 요청 정보를 수신한다. 예를 들어, 제1 내지 제3 서버가 온라인 게임 서버일 경우, 제1 서버(202)에 접속한 사용자는 제1 서버에 다른 서버에 미러링될 게임 룸의 생성을 요청한다. 사용자의 요청 정보를 수신한 제1 서버(202)는 다른 서버에 미러링될 수 있는 게임 룸을 생성한다.
제1 서버(202)에 생성된 게임 룸에 대한 정보는 메시지 라우팅 서버(200)에 전송된다. 여기서, 게임 룸에 대한 정보는 게임 룸 타입 및 게임 룸에 참여한 사용자 정보를 포함할 수 있을 것이다. 또한, 제1 서버(202)는 생성된 게임 룸에서의 게임 진행 정보 메시지 라우팅 서버(200)에 전송한다. 여기서, 게임 진행 정보는 사용자들이 온라인 게임 진행을 위해 전송하는 게임 커맨드 정보 및 게임 중 교환하는 채팅 메시지를 포함할 수 있을 것이다.
본 발명은 게임 룸(채널) 미러링을 위한 서버들간의 통신을 간소화하기 위해 메시지 라우팅 서버(200)를 이용한다. 메시지 라우팅 서버(200)는 제1 서버(202)에 서 제공하는 게임 룸 생성 정보 및 게임 진행 정보를 제2 서버(204) 및 제3 서버(206)에 제공한다.
본 발명의 바람직한 실시예에 따르면, 메시지 라우팅 서버(200)는 복수의 커넥션을 하나의 그룹으로 관리하는 기능을 지원한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 메시지 라우팅 서버에 생성되는 그룹을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메시지 라우팅 서버에는 서브스크라이버(Subscriber) 그룹(300) 및 퍼블리서 그룹(302)이 생성되며, 서브스크라이버 그룹은 퍼블리서 서버의 채널을 미러링하는 미러링 서버들이 참가하는 그룹이며, 퍼블리석 그룹은 미러링될 채널 정보를 제공하는 퍼블리서 서버가 참가하는 그룹이다.
도 2에서, 퍼블리서 서버인 제1 서버(202)는 퍼블리서 그룹(302)에 참가하고, 미러링 서버인 제2 서버(204) 및 제3 서버(206)는 서브스크라이버 그룹(300)에 참가한다.
메시지 라우팅 서버(200)와 연결된 제1 서버 내지 제3 서버(202, 204, 206)는 서버 시작 시 메시지 라우팅 서버(200)의 퍼블리서 그룹(302) 또는 서브스크라이버 그룹(300) 중 하나에 참가하도록 설정되며, 메시지 라우팅 서버(200)는 연결된 서버들의 요청에 따라 서브스크라이버 그룹(300) 또는 퍼블리서 그룹(302)에 참가시킨다.
본 발명의 바람직한 실시예에 따르면, 퍼블리서 서버인 제1 서버(202)는 멀 티캐스트 방식으로 미러링될 채널 정보와 관련된 메시지를 메시지 라우팅 서버(200)에 제공한다. 퍼블리서 서버인 제1 서버(202)는 메시지 라우팅 서버(200)에 서브스크라이버 그룹으로 전송되는 메시지라는 정보만을 포함하여 메시지 라우팅 서버에 채널 정보를 제공한다. 즉, 제1 서버(202)가 메시지 라우팅 서버에 전송하는 채널 정보와 관련된 메시지는 채널 정보를 미러링할 제2 서버 및 제3 서버의 주소 정보를 포함하지 않으며, 메시지가 전송될 서브스크라이버 그룹 식별 정보만을 포함한다.
메시지 라우팅 서버(200)는 퍼블리서 서버인 제1 서버(202)로부터 서브스크라이버 그룹으로 전송될 메시지를 수신할 경우, 서브스크라이버 그룹에 참가한 모든 미러링 서버에 퍼블리서 서버로부터 전송된 메시지를 전송한다. 즉, 메시지 라우팅 서버(200)는 서브스크라이버 그룹에 참가한 제2 서버(204) 및 제3 서버(206)에 제1 서버로부터 전송된 메시지를 전송한다.
메시지 라우팅 서버는 전송되는 메시지가 서브스크라이버 그룹의 서버들에 전송될 메시지인지 또는 퍼블리서 그룹의 서버들에게 전송될 메시지인지 여부만을 판단하여 수신된 메시지를 퍼블리서 그룹의 서버 또는 서브스크라이버 그룹의 서버에 전송하는 역할만을 수행하며, 수신된 메시지의 분석, 판단 및 제어 절차를 수행하지는 않는다.
따라서, 메시지 라우팅 서버는 기존의 서버간 정보 교환을 위한 컨트롤 서버들에 비해 보다 간소한 구성을 가질 수 있으며, 메시지도 메시지의 수신자를 일일이 지정할 필요 없이 보다 단순화된 방식으로 전송될 수 있는 바, 메시지 트래픽 역시 감소될 수 있다.
서버스크라이버 서버인 제2 서버(204) 및 제3 서버(206)는 메시지 라우팅 서버(200)로부터 퍼블리서 서버인 제1 서버(202)가 전송한 채널 관련 메시지를 수신하며, 메시지를 분석하여 채널 미러링을 수행한다.
예를 들어, 제1 서버(202)로부터 전송된 메시지가 채널 생성 정보를 포함하는 메시지일 경우, 제2 서버(204) 및 제3 서버(206)는 메시지를 분석하여 채널 생성 정보에 포함된 정보와 동일한 조건을 가지는 채널을 생성한다. 제1 서버(202)로부터 전송된 메시지가 채널의 상태 변경 정보를 포함하는 메시지일 경우, 제2 서버(204) 및 제3 서버(206)는 메시지를 분석하여 제1 서버와 채널과 동일한 상태로 제2 서버(204) 및 제3 서버(206)의 미러링 채널의 상태를 변경한다.
이하에서는 본 발명이 온라인 게임 서비스에 적용되는 경우를 예로 하여 본 발명의 구성 및 동작을 더욱 상세히 살펴보기로 한다.
전술한 바와 같이, 본 발명에 의한 서버 미러링 시스템은 특정 서버에 생성된 게임 룸의 게임 진행 상황을 다른 서버에 접속한 사용자들이 관전하는데 활용될 수 있다.
도 4는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버 및 미러링 서버의 게임룸의 상태를 나타낸 도면이다.
도 4를 참조하면, 퍼블리서 서버의 게임 룸(400)은 플레이어에 의해 생성되며, 제1 서버에 접속한 게임 플레이어들이 참가한다. 퍼블리서 서버의 게임 룸(400)에 참여한 플레이어들은 퍼블리서 서버를 통해 게임 패킷을 교환하면서 게 임을 진행한다. 게임은 바둑 게임, 전략 시뮬레이션 게임, 보드 게임 등을 포함할 수 있으며, 퍼블리서 서버에 접속한 플레이어들의 클라이언트에는 게임 플레이를 위한 어플리케이션이 설치되어 있다. 도 4에는 퍼블리서 서버의 게임 룸(400)에 게임을 플레이하는 플레이어들이 참가하는 경우가 도시되어 있으나, 게임 플레이가 아닌 관전을 위한 관전자가 참가하여 게임 진행 상황을 관전할 수도 있다.
퍼블리서 서버의 게임 룸은 게임 룸 생성, 게임 진행 중 교환되는 게임 커맨드 정보 및 게임 룸 종료와 같은 게임 룸의 게임 진행 상황과 관련된 정보를 메시지 라우팅 서버의 서브스크라이버 그룹으로 전송되도록 프로그래밍된다.
퍼블리서 서버에서 게임 룸이 생성될 경우, 게임 룸 생성 정보는 메시지 라우팅 서버를 통해 미러링 서버에 전송되며, 미러링 서버에는 퍼블리서 서버에서 생성된 게임 룸과 동일한 조건의 게임 룸이 생성된다.
퍼블리서 서버와 같은 게임 룸의 생성을 위해 미러링 서버는 게임 룸의 생성 주체로 인식되는 가상의 더미 플레이어를 생성한다. 더미 플레이어는 게임 룸의 생성될 때 게임 룸에 대한 제어 권한을 갖는 플레이어가 필요하기 때문에 가상적으로 생성되는 플레이어이며 일반 플레이어와 동일한 구조를 가지고 있으나 클라이언트와의 연결을 가지고 있지 않기 때문에 더미 플레이어로 데이터를 송수신하는 것은 불가능하도록 하는 것이 바람직하다.
미러링 서버에 생성된 게임 룸(402)에는 미러링 서버에 접속한 사용자들이 참가한다. 미러링 서버는 일반 게임 룸과 함께 미러링된 게임 룸 역시 게임 룸 리스트로 제공하며, 미러링 서버에 접속한 사용자들은 미러링된 게임 룸에 참가할 수 있다.
퍼블리서 서버의 게임 룸(402)에서 게임이 진행될 경우, 퍼블리서 서버의 게임 룸(402)은 게임 진행과 관련된 정보를 메시지 라우팅 서버(200)에 전송하며, 메시지 라우팅 서버(200)는 서브스크라이버 그룹에 참가한 미러링 서버들에 전송하며, 미러링 서버는 게임 진행과 관련된 정보를 관련된 게임 룸(402)에 전달한다. 따라서, 미러링 게임 룸에 참가한 사용자들은 퍼블리서 서버에서 진행되는 게임 상황을 관전할 수 있다.
예를 들어, 퍼블리서 서버의 게임 룸(400)에서 바둑 게임이 진행될 경우, 퍼블리서 서버의 게임 룸(400)의 플레이어들에 의해 생성되는 기보 정보는 실시간으로 메시지 라우팅 서버를 통해 미러링 서버의 게임 룸(402)으로 전송되며, 미러링 서버의 게임 룸(402)은 참가한 관전자들에게 전송된 기보 정보를 제공하여 바둑 관전이 가능하도록 한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에 게임 룸 생성 시 미러링 서버에 게임 룸이 생성되는 과정에 대한 순서도이다.
도 5를 참조하면, 게임 플레이어는 클라이언트를 통해 퍼블리서 서버에 게임 룸의 생성을 요청한다(단계 500). 플레이어는 다른 서버에 미러링될 게임 룸임을 미리 지정하여 요청할 수 있다. 퍼블리서 서버는 게임 룸 생성 시 다른 서버에 미러링할지 여부를 선택하는 인터페이스를 제공하며, 게임 플레이어는 상기 인터페이스를 통해 다른 서버에 미러링될 게임 룸의 생성을 요청할 수 있을 것이다.
퍼블리서 서버는 플레이어 클라이언트의 게임 룸 생성 요청에 응답하여 게임 룸을 생성한다(단계 502). 퍼블리서 서버는 게임 룸 생성을 완료한 후 플레이어 클라이언트에 게임 룸 생성 정보를 전송하며(단계 504), 플레이어 클라이언트는 퍼블리서 서버에 생성된 게임 룸에 참가한다(단계 506).
퍼블리서 서버는 메시지 라우팅 서버의 퍼블리서 그룹에 참가한 상태이며, 다른 서버에 미러링될 게임 룸이 생성될 경우, 게임 룸 생성 정보를 메시지 라우팅 서버의 서브스크라이버 그룹에 전송하도록 설정되어 있다.
도 9는 본 발명의 일 실시예에 따른 퍼블리서 서버의 메시지가 메시지 라우팅 서버를 통해 서브스크라이버 그룹에 속한 미러링 서버들에 전달되는 개념도를 도시한 도면이다.
도 9를 참조하면, 메시지 라우팅 서버의 퍼블리서 그룹 및 서브스크라이버 그룹에 참가한 퍼블리서 서버(904) 및 미러링 서버들(900, 902)은 소켓을 통해 메시지 라우팅 서버와의 커넥션을 유지한다.
도 9에 도시된 바와 같이, 퍼블리서 서버(904)가 서브스크라이버 그룹에 참가한 미러링 서버들에 메시지를 전달하고자 하는 경우, 퍼블리서 서버는 서브스크라이버 그룹을 목적지 주소로 하여 멀티캐스트 방식으로 메시지를 전송한다.
메시지 라우팅 서버(200)는 서브스크라이버 그룹에 속한 미러링 서버들(900, 902)과 커넥션을 유지하고 있는 소켓들을 통해 미러링 서버 각각으로 퍼블리서 서버로부터 전송된 메시지를 전달한다.
다시, 도 5를 참조하면, 퍼블리서 서버는 게임 룸 생성 메시지를 메시지 라우팅 서버로 전송한다(단계 508). 게임 룸 생성 메시지에는 게임 룸 타이틀, 게임 룸의 게임 아이디, 게임 룸 설정 정보 등을 포함할 수 있을 것이며, 게임 룸 생성 메시지의 목적지 주소는 메시지 라우팅 서버의 서브스크라이버 그룹으로 설정된다.
게임 룸 생성 메시지를 수신한 메시지 라우팅 서버는 게임 룸 생성 메시지를 서브스크라이버 그룹에 참가하여 소켓을 통해 메시지 라우팅 서버와 커넥션을 유지하고 있는 미러링 서버 각각에 전송한다(단계 510).
메시지 라우팅 서버의 서브스크라이버 그룹에 참가한 미러링 서버 각각은 게임 룸 생성 메시지를 수신하며, 게임 룸 생성을 위해 가상의 더미 플레이어를 생성한다(단계 512). 전술한 바와 같이, 더미 플레이어는 일반 플레이어와 동일한 구조를 가지고 있으나 클라이언트와의 연결을 가지고 있지 않기 때문에 더미 플레이어로 데이터를 송수신하는 것은 불가능하다.
더미 플레이어가 생성되면, 미러링 서버는 수신한 게임 룸 생성 정보에 포함된 정보와 동일한 조건을 가지며 상기 더미 플레이어가 게임 룸 생성자로 설정되는 게임 룸을 생성한다(단계 514). 미러링 서버에서 게임 룸 생성 시 미러링된 게임 룸의 번호는 각 미러링 서버가 독립적으로 부여할 수 있으며 미러링 게임 룸을 위해 미리 준비된 번호를 부여할 수도 있으며, 일반 게임 룸과 같이 순차적으로 번호가 부여될 수도 있다. 다만, 미러링 서버 각각은 퍼블리서 서버에서 생성된 게임 룸과 미러링 서버에서 미러링된 게임 룸을 서로 매칭시킬 수 있도록 퍼블리서 서버의 게임 룸 번호와 미러링된 게임 룸 번호를 매칭시키는 매칭 테이블 또는 매칭 코드를 관리한다.
도 6은 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에서 게임 룸 삭 제 시 미러링 서버에서 미러링된 게임 룸이 삭제되는 과정을 도시한 순서도이다.
도 6을 참조하면, 퍼블리서 서버에 생성된 게임 룸에 참여하고 있는 플레이어의 클라이언트는 게임 룸 나가기를 요청하며(단계 600), 퍼블리서 서버에 생성된 게임 룸에 참여한 플레이어가 모두 게임 룸을 나갈 경우, 퍼블리서 서버는 해당 게임 룸을 삭제한다(단계 602).
퍼블리서 서버는 미러링 서버에서 미러링되는 게임 룸에서 사용자가 방에서 나갈 경우, 게임 룸에서 나갔다는 메시지를 메시지 라우팅 서버에 전송한다(단계 604).
특정 사용자의 게임 룸 나기기에 대한 정보를 포함하는 메시지는 퍼블리서 서버는 미러링 서버에서 미러링되는 게임 룸이 삭제될 경우, 게임 룸 삭제 정보를 메시지 라우팅 서버에 전송한다(단계 604). 게임 룸 삭제 메시지는 삭제된 게임 룸의 번호 정보를 포함할 수 있다.
메시지 라우팅 서버의 서브스크라이버 그룹에 전송되며, 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 해당 메시지를 전송한다(단계 606).게임 룸 삭제 메시지는 메시지 라우팅 서버의 서브스크라이버 그룹에 전송되며, 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 게임 룸 삭제 메시지를 전송한다(단계 606).
미러링 서버는 해당 메시지에 포함된 게임 룸 번호에 상응하는 미러링 서버 에서의 게임 룸 번호를 판단한다. 상술한 매칭 테이블 또는 매칭 코드를 이용하여 퍼블리서 서버의 게임 룸 번호에 상응하는 미러링 게임 룸 번호를 판단할 수 있을 것이다. 미러링 서버는 판단된 미러링 게임 룸 번호에 상응하는 더미 플레이어를 삭제하고(단계 608), 해당 미러링 게임 룸을 삭제한다(단계 610).삭제한다(단계 608).
미러링 서버에 미러링된 게임 룸에서 더미 플레이어를 포함한 모든 사용자가 방을 떠나게 되면 서버는 게임 룸을 삭제한다(단계 610).
도 7은 본 발명의 바람직한 일 실시예에 따른 게임 진행 상황이 미러링 서버에서 재현되도록 퍼블리서 서버의 게임 룸에서 교환되는 게임 커맨드 패킷이 미러링 서버에 전달되는 과정에 대한 순서도이다.
도 7을 참조하면, 퍼블리서 서버의 게임 룸에 참가하여 게임을 플레이하는 플레이어의 플레이어는 게임 커맨드 메시지를 퍼블리서 서버에 전송한다(단계 700). 상기 게임 커맨드는 다양한 게임에서의 게임 커맨드를 모두 포함할 수 있을 것이다. 예를 들어, 게임 커맨드는 바둑에서 특정 플레이어의 기보 정보일 수 있으며, 전략 시뮬레이션 게임에서 특정 유닛에 대한 이동 커맨드일 수도 있다.
퍼블리서 서버의 게임 룸에서 진행되는 게임이 바둑, 보드 게임과 같은 턴 방식의 게임일 경우, 상기 게임 커맨드는 커맨드의 수순 정보를 포함할 수 있을 것이다. 퍼블리서 서버의 게임 룸에서 진행되는 게임이 실시간 전략 시뮬레이션 게임일 경우, 상기 게임 커맨드는 시간 정보를 포함할 수 있을 것이다.
또한, 상기 게임 커맨드 메시지는 게임 커맨드 메시지를 수신한 퍼블리서 서 버의 게임 룸 번호 정보를 포함한다.
플레이어 클라이언트로부터 게임 커맨드 메시지를 수신한 퍼블리서 서버는 수신한 게임 커맨드 메시지를 메시지 라우팅 서버에 전송한다(단계 702).
메시지 라우팅 서버는 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 게임 커맨드 메시지를 전송한다(단계 704).
메시지 라우팅 서버로부터 게임 커맨드 메시지를 수신한 미러링 서버 각각은 게임 커맨드 메시지를 분석하여 수신된 게임 커맨드와 관련된 미러링 게임 룸의 번호를 판단한다(단계 706).
미러링 서버는 판단된 미러링 게임 룸에 메시지 라우팅 서버로부터 수신한 게임 커맨드 메시지를 전달한다(단계 708). 미러링 서버의 미러링 게임 룸은 참여한 사용자의 클라이언트들에 게임 커맨드를 전달하며, 게임 커맨드를 수신한 사용자 클라이언트들에 설치된 게임 어플리케이션은 수신한 커맨드에 상응하는 게임 프로세스를 수행한다. 도 7과 같은 절차에 의해, 미러링 서버의 미러링 게임 룸에 참여한 사용자들은 퍼블리서 서버의 게임 룸에서 진행되는 게임과 동일한 게임 진행을 관전할 수 있다.
도 7에는 도시되어 있지 않으나, 퍼블리서 서버의 게임 룸에서 플레이어들간에 송수신되는 채팅 메시지 역시 도 7과 같은 방식에 의해 미러링 서버의 미러링 게임 룸에 제공될 수 있다는 점은 당업자에게 있어 자명할 것이다.
도 8은 본 발명의 바람직한 일 실시예에 따른 특정 미러링 서버에서 장애가 발생할 경우 장애를 복구하는 과정에 대한 순서도이다.
도 8을 참조하면, 메시지 라우팅 서버에 서브스크라이버 그룹에 참가한 미러링 서버들 중 특정 미러링 서버에서 장애가 발생할 경우, 해당 미러링 서버는 메시지 라우팅 서버에 퍼블리서 서버에 생성되어 있으며 메시지 라우팅 서버를 통해 미러링 서버들에 게임 룸 정보를 제공하고 있는 게임 룸들에 대한 리스트를 요청한다(단계 800).
게임 룸 리스트 요청 메시지는 퍼블리서 그룹을 목적지 주소로 하며, 메시지 라우팅 서버는 퍼블리서 그룹에 참가한 퍼블리서 서버에 게임 룸 리스트 요청 메시지를 전달한다(단계 802).
메시지 라우팅 서버로부터 게임 룸 리스트 요청 메시지를 수신한 퍼블리서 서버는 현재 미러링 서버들에 게임 룸 정보를 제공하고 있는 게임 룸들에 대한 정보를 검색한다(단계 804).
또한, 퍼블리서 서버는 검색된 게임 룸에서 진행되고 있는 게임 각각에 대해 히스토리 데이터를 생성한다(단계 806). 여기서 히스토리 데이터는 미러링 서버가 현재 게임 진행 상황을 반영할 수 있도록 장애 발생 전에 진행된 게임 진행 히스토리가 기록된 데이터를 의미한다. 예를 들어, 바둑 게임의 경우 히스토리 데이터는 바둑의 기보 데이터일 수 있으며, 전략 시뮬레이션 게임의 경우 플레이어들간에 교환된 게임 커맨드 데이터일 수 있다. 물론 게임의 종류에 따라 이러한 히스토리 데이터의 생성이 불가능하거나 히스토리 데이터의 생성이 요구되지 않을 수도 있을 것이다.
퍼블리서 서버는 메시지 라우팅 서버에 게임 룸 리스트 정보 및 각 게임 룸에서의 게임 히스토리 데이터를 포함하는 메시지를 메시지 라우팅 서버에 전송한다(단계 808).
메시지 라우팅 서버는 퍼블리서 서버로부터의 메시지를 서브스크라이버 그룹에 참가하고 있는 모든 미러링 서버에 전송한다(단계 810). 서브스크라이버 그룹에 참가하고 있는 미러링 서버들 중 하나의 미러링 서버에만 장애가 발생하더라도 메시지 라우팅 서버의 전송 원칙에 따라 서브스크라이버 그룹에 참가하고 있는 모든 미러링 서버에 전송한다.
메시지 라우팅 서버로부터 게임 룸 리스트 및 히스토리 데이터 메시지를 수신한 미러링 서버들 중 게임 룸 리스트를 요청하지 않은 미러링 서버들은 수신된 메시지를 무시한다. 게임 룸 리스트를 요청한 미러링 서버는 수신한 게임 룸 리스트 및 히스토리 데이터에 기초하여 미러링 룸을 다시 생성한다(단계 812).
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명의 서버 미러링 시스템 및 방법의 바람직한 실시예에 따르면, 최소의 트래픽으로 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있으며, 비교적 간단한 로직을 가진 메시지 라우팅 서버를 이용하여 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 장점이 있다.
또한, 본 발명의 바람직한 실시예에 따르면, 특정 서버에 접속한 사용자가 다른 서버에 생성된 채널의 상황을 모니터링할 수 있으며, 바둑, 전략 시뮬레이션과 같은 게임에서 다른 서버에서 진행되고 있는 게임 상황을 관전할 수 있는 장점이 있다.

Claims (14)

  1. 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 임의의 사용자 요청 처리 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가시키는 메시지 라우팅 서버;
    상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 서버와, 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버를 포함하는 복수의 사용자 요청 처리 서버를 포함하되,
    상기 퍼블리서 서버는 채널이 생성될 경우, 채널 생성 메시지 및 상기 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 채널 생성 메시지 또는 상기 퍼블리서 서버 채널로 전송된 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전달하고,
    상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 채널 생성 메시지를 수신할 경우, 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 생성하는 것을 특징으로 하는 서버 미러링 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터, 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 수신된 메시지를 상기 미러링 서버에 생성된 채널에 참가한 클라이언트들에 전송하는 것을 특징으로 하는 서버 미러링 시스템.
  4. 제1항에 있어서,
    상기 퍼블리서 서버는 상기 메시지 라우팅 서버에 멀티캐스트 방식으로 상기 채널 생성 메시지 및 상기 퍼블리서 서버의 채널로 전송된 메시지를 전송하며, 상기 퍼블리서 서버로부터 상기 메시지 라우팅 서버로 전송되는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되는 것을 특징으로 하는 서버 미러링 시스템.
  5. 제1항에 있어서,
    상기 적어도 하나의 미러링 서버 각각은 상기 메시지 라우팅 서버로부터 채널 생성 메시지를 수신할 경우 상기 퍼블리서 서버에 생성된 채널 번호와 상기 미러링 서버의 채널 번호를 매칭시키기 위한 매칭 테이블 또는 매칭 코드를 생성하는 것을 특징으로 하는 서버 미러링 시스템.
  6. 제1항에 있어서,
    상기 적어도 하나의 퍼블리서 서버 및 상기 적어도 하나의 미러링 서버는 상기 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 서브스크라이버 그룹에 참가한 미러링 서버로 전송될 메시지를 수신할 경우, 상기 소켓을 통해 상기 수신된 메시지를 서브스크라이버 그룹에 참가한 미러링 서버에 전송하는 것을 특징으로 하는 서버 미러링 시스템.
  7. 제5항에 있어서,
    상기 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 메시지를 분석하여 상기 메시지와 관련된 퍼블리서 서버의 채널 번호를 판단하고, 상기 매칭 테이블 또는 매칭 코드를 이용하여 관련된 상기 미러링 서버에서의 채널 번호를 판단한 후 상기 메시지를 해당 채널에 제공하는 것을 특징으로 하는 서버 미러링 시스템.
  8. 제1항에 있어서,
    상기 퍼블리서 서버 및 상기 미러링 서버는 게임 서버이며, 상기 채널은 게임 룸인 것을 특징으로 하는 서버 미러링 시스템.
  9. 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 임의의 사용자 요청 처리 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가시키는 메시지 라우팅 서버;
    상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 게임 서버와, 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 게임 서버를 포함하는 복수의 사용자 요청 처리 서버를 포함하되,
    상기 퍼블리서 게임 서버는 게임 룸이 생성될 경우, 게임 룸 생성 메시지 및 상기 생성된 게임 룸 내에서의 게임 진행 정보 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 게임 서버로부터 상기 게임 룸 생성 메시지 또는 게임 진행 정보 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 게임 서버들에 전달하고,
    상기 퍼블리서 게임 서버는 상기 메시지 라우팅 서버에 멀티캐스트 방식으로 상기 채널 생성 메시지 및 상기 퍼블리서 게임 서버의 게임 룸으로 전송된 메시지를 전송하며, 상기 퍼블리서 게임 서버로부터 상기 메시지 라우팅 서버로 전송되는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되는 것을 특징으로 하는 게임 서버의 게임 룸 미러링 시스템.
  10. 적어도 하나의 퍼블리서 서버 및 적어도 하나의 미러링 서버와 연결되어 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하기 위한 메시지 라우팅 서버로서,
    복수의 사용자 요청 처리 서버를 처리 동작에 따라 퍼블리서 서버와 미러링 서버로 각각 구분하여 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하며, 상기 퍼블리서 서버로부터 채널 생성 메시지 또는 상기 퍼블리의서 서버의에 채널로 전송된 메시지를 수신할 경우, 상기 퍼블리서 서버로부터 수신된 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전송하되, 상기 적어도 하나의 퍼블리서 서버와 상기 적어도 하나의 미러링 서버와 소켓을 통해 커넥션을 유지하며,
    상기 퍼블리서 서버로부터 전송된 상기 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되는 것을 특징으로 하는 메시지 라우팅 서버.
  11. 적어도 하나의 퍼블리서 서버, 적어도 하나의 미러링 서버 및 상기 적어도 하나의 퍼블리서 서버 및 미러링 서버와 커넥션을 유지하는 메시지 라우팅 서버를 포함하는 시스템에서 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하는 방법으로서,
    상기 퍼블리서 서버에서 채널이 생성될 경우, 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하는 단계(a);
    상기 메시지 라우팅 서버에서 상기 퍼블리서 서버로부터 전송된 상기 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버에 전송하는 단계(b); 및
    상기 미러링 서버가 상기 메시지 라우팅 서버로부터 채널 생성 메시지 또는 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 수신할 경우, 상기 미러링 서버에서 수신된 메시지의 종류에 상응하는 미리 설정된 미러링 프로세스를 수행하는 단계(c)를 포함하되,
    상기 메시지 라우팅 서버는 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하고, 상기 퍼블리서 서버가 상기 메시지 라우팅 서버에 전송하는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되며, 상기 메시지 라우팅 서버는 상기 서브스크라이버 그룹에 참가한 적어도 하나의 미러링 서버에 퍼블리서 서버로부터의 메시지를 전송하는 것을 특징으로 하는 서버 미러링 방법.
  12. 삭제
  13. 제11항에 있어서,
    상기 메시지 라우팅 서버로부터 상기 적어도 하나의 미러링 서버로 전송되는 메시지가 채널 생성 메시지일 경우, 상기 단계(c)의 미리 설정된 프로세스는 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 상기 미러링 서버가 생성하는 것임을 특징으로 하는 서버 미러링 방법.
  14. 제13항에 있어서,
    상기 메시지 라우팅 서버로부터 상기 적어도 하나의 미러링 서버로 전송되는 메시지가 상기 퍼블리서 서버의 채널로 전송된 메시지일 경우, 상기 단계(c)의 미리 설정된 프로세스는 상기 수신된 메시지를 상기 미러링 서버의 채널에 참가한 클라이언트들에 전송하는 것임을 특징으로 하는 서버 미러링 방법.
KR1020060028908A 2006-03-30 2006-03-30 서버 미러링 시스템 및 방법 KR100775132B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060028908A KR100775132B1 (ko) 2006-03-30 2006-03-30 서버 미러링 시스템 및 방법
JP2009502686A JP5044638B2 (ja) 2006-03-30 2007-03-30 サーバーミラーリング方法及びそのシステム
CN2007800113366A CN101410822B (zh) 2006-03-30 2007-03-30 服务器镜像方法及系统
PCT/KR2007/001574 WO2007114606A1 (en) 2006-03-30 2007-03-30 Server mirroring method and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060028908A KR100775132B1 (ko) 2006-03-30 2006-03-30 서버 미러링 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20070097938A KR20070097938A (ko) 2007-10-05
KR100775132B1 true KR100775132B1 (ko) 2007-11-08

Family

ID=38804056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060028908A KR100775132B1 (ko) 2006-03-30 2006-03-30 서버 미러링 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR100775132B1 (ko)
CN (1) CN101410822B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170001143A (ko) 2015-06-25 2017-01-04 김민호 서버와 클라이언트 리버스 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102283669B1 (ko) * 2013-10-25 2021-07-30 주식회사 카카오 채널 기반의 컨텐츠 중계 방법 및 시스템
CN103816662A (zh) * 2014-02-26 2014-05-28 深圳第七大道网络技术有限公司 一种主从游戏区合区的方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050055543A (ko) * 2003-12-08 2005-06-13 인터뱅크 주식회사 게임 서비스 중계 시스템 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US6026430A (en) * 1997-03-24 2000-02-15 Butman; Ronald A. Dynamic client registry apparatus and method
KR20010083618A (ko) * 2000-02-17 2001-09-01 박선은 인터넷 게임 제공 시스템 및 방법
CN1234074C (zh) * 2003-06-09 2005-12-28 四川大学 基于Internet的文件镜像方法
CN1797391A (zh) * 2004-12-24 2006-07-05 许继集团有限公司 一种电力自动化系统界面可视化管理系统及其管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050055543A (ko) * 2003-12-08 2005-06-13 인터뱅크 주식회사 게임 서비스 중계 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170001143A (ko) 2015-06-25 2017-01-04 김민호 서버와 클라이언트 리버스 시스템

Also Published As

Publication number Publication date
KR20070097938A (ko) 2007-10-05
CN101410822B (zh) 2012-07-04
CN101410822A (zh) 2009-04-15

Similar Documents

Publication Publication Date Title
CN112788358B (zh) 游戏对局的视频直播方法、视频发送方法、装置及设备
JP3964905B2 (ja) オンラインセッションにおける参加者装置を管理する方法及びシステム
JP5129940B2 (ja) ロールプレイシステム
US20050245317A1 (en) Voice chat in game console application
US6128660A (en) Network match maker
US20070173324A1 (en) Computer-based gaming groups
JP2007505673A (ja) ネットワークを利用したゲーム・システム
KR20070082395A (ko) 유알엘을 이용한 플래시 게임 초대 시스템 및 방법
US20110269551A1 (en) Computer-based gaming teams
WO1997047091A2 (en) Reducing latency when synchronizing access to a multi-user database over a network
JP2022502125A (ja) システムレベルのマルチプレイヤーマッチメイキング
JP2022503919A (ja) マルチプレイヤーセッションの確立及び管理
KR100775132B1 (ko) 서버 미러링 시스템 및 방법
JP5044638B2 (ja) サーバーミラーリング方法及びそのシステム
KR100810757B1 (ko) 서버 미러링을 이용한 게임 중계 시스템 및 방법
KR101951436B1 (ko) 가상 현실 게임의 제공을 위한 서버, 가상 현실 게임의 제공을 위한 시스템 및 서버의 가상 현실 게임을 제공하는 방법
JP2005267347A (ja) 仮想空間共有装置
Jiang et al. Peer-to-peer aoi voice chatting for massively multiplayer online games
KR100813109B1 (ko) 온라인 플래시 게임에서의 멀티플레이 서비스 제공 방법 및이를 위한 기록 매체
JP7355554B2 (ja) 情報処理装置およびチャット方法
WO2002015500A2 (en) System and method for messaging
KR20060056018A (ko) 인터넷 게임 서비스 시스템 및 그 방법과 그 방법을실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체
CA2569604A1 (en) Method and apparatus for providing a peer-to-peer and leaf node network for online games
KR20080031250A (ko) 유알엘을 이용한 플래시 게임 초대 시스템 및 방법
KR20040028101A (ko) 동적할당 방법에 의한 음성채팅-게임 서비스 시스템

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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13