KR20070097938A - Server mirroring system and method - Google Patents

Server mirroring system and method Download PDF

Info

Publication number
KR20070097938A
KR20070097938A KR1020060028908A KR20060028908A KR20070097938A KR 20070097938 A KR20070097938 A KR 20070097938A KR 1020060028908 A KR1020060028908 A KR 1020060028908A KR 20060028908 A KR20060028908 A KR 20060028908A KR 20070097938 A KR20070097938 A KR 20070097938A
Authority
KR
South Korea
Prior art keywords
server
message
mirroring
publisher
channel
Prior art date
Application number
KR1020060028908A
Other languages
Korean (ko)
Other versions
KR100775132B1 (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 KR1020060028908A priority Critical patent/KR100775132B1/en
Priority to JP2009502686A priority patent/JP5044638B2/en
Priority to PCT/KR2007/001574 priority patent/WO2007114606A1/en
Priority to CN2007800113366A priority patent/CN101410822B/en
Publication of KR20070097938A publication Critical patent/KR20070097938A/en
Application granted granted Critical
Publication of KR100775132B1 publication Critical patent/KR100775132B1/en

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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/50

Abstract

A system and a method for mirroring a server are provided to mirror channel information generated from one server to another server by using a routing server having a relatively simple logic and enable a user connected to the server to monitor states of channels generated from another server. A message routing server generates publisher and subscriber groups(300,302), and makes the server participate in the publisher or subscriber group correspondingly to request information of the server. A publisher server(206) keeps connection with the message routing server by joining in the publisher group. Each mirroring server(202,204) keeps the connection with the message routing server by joining in the subscriber. If a channel is generated, the publisher server transmits a channel generation message and the message transmitted through the generated channel to the message routing server. If the channel generation message or the message transmitted to a publisher server channel is received from the publisher server, the message routing server transfers the received message to all mirroring servers joined in the subscriber group.

Description

서버 미러링 시스템 및 방법{Server Mirroring System and Method}Server Mirroring System and Method

도 1은 통상적인 복수 서버에 의한 서비스 제공 시스템의 일례를 도시한 도면.BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing an example of a service providing system by a conventional multiple server.

도 2는 본 발명의 바람직한 일 실시예에 따른 서버 미러링 시스템의 구성을 도시한 도면.2 is a diagram illustrating a configuration of a server mirroring system according to an exemplary embodiment of the present invention.

도 3은 본 발명의 바람직한 일 실시예에 따른 메시지 라우팅 서버에 생성되는 그룹을 도시한 도면.3 illustrates a group created in a message routing server according to one preferred embodiment of the present invention.

도 4는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버 및 미러링 서버의 게임룸의 상태를 나타낸 도면.4 is a view showing the state of the game room of the publishing server and the mirroring server according to an embodiment of the present invention.

도 5는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에 게임 룸 생성 시 미러링 서버에 게임 룸이 생성되는 과정에 대한 순서도.5 is a flowchart illustrating a process of creating a game room on a mirroring server when creating a game room on a publishing server according to an exemplary embodiment of the present invention.

도 6은 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에서 게임 룸 삭제 시 미러링 서버에서 미러링된 게임 룸이 삭제되는 과정을 도시한 순서도.6 is a flowchart illustrating a process of deleting a mirrored game room from a mirroring server when deleting a game room from a publishing server according to an exemplary embodiment of the present invention.

도 7은 본 발명의 바람직한 일 실시예에 따른 게임 진행 상황이 미러링 서버에서 재현되도록 퍼블리서 서버의 게임 룸에서 교환되는 게임 커맨드 패킷이 미러링 서버에 전달되는 과정에 대한 순서도.7 is a flowchart illustrating a process of delivering a game command packet exchanged in a game room of a publishing server to a mirroring server so that a game progress is reproduced in a mirroring server according to an exemplary embodiment of the present invention.

도 8은 본 발명의 바람직한 일 실시예에 따른 특정 미러링 서버에서 장애가 발생할 경우 장애를 복구하는 과정에 대한 순서도.8 is a flowchart illustrating a process of recovering from a failure when a failure occurs in a specific mirroring server according to an exemplary embodiment of the present invention.

도 9는 본 발명의 일 실시예에 따른 퍼블리서 서버의 메시지가 메시지 라우팅 서버를 통해 서브스크라이버 그룹에 속한 미러링 서버들에 전달되는 개념도를 도시한 도면.9 is a conceptual diagram illustrating that a message of a publisher server is delivered to mirroring servers belonging to a subscriber group through a message routing server according to an embodiment of the present invention.

본 발명은 서버 미러링(mirroring) 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 특정 서버에 생성된 채널 정보를 다른 서버에 미러링하는 시스템 및 방법에 관한 것이다. The present invention relates to a server mirroring method and system, and more particularly, to a system and method for mirroring channel information generated in one server to another server.

인터넷의 사용자 수는 계속적으로 증가하는 추세이며, 이에 따른 서버의 부하는 인터넷 서비스의 가장 근본적인 문제점 중 하나가 되고 있다. 특히, 온라인 게임 서비스 시스템, 채팅 서비스 시스템과 같이 다수의 사용자가 서버에 접속하는 시스템의 경우, 서버 부하의 문제점은 더욱 심화된다. The number of users of the Internet is continuously increasing, and the load of the server is one of the most fundamental problems of the Internet service. In particular, in the case of a system where a large number of users connect to the server such as an online game service system or a chat service system, the problem of server load is further exacerbated.

일반적으로, 사용자가 증가할수록 서버를 증설하여 서버 부하 문제를 해결하고 있다. In general, the server load problem is solved by increasing the number of servers as the number of users increases.

도 1은 통상적인 복수 서버에 의한 서비스 제공 시스템의 일례를 도시한 도면으로서, 하나의 서버로 사용자들의 커넥션을 모두 수용할 수 없을 경우, 도 1과 같이 복수의 서버(100, 102, 104)를 이용하여 인터넷 서비스를 제공한다. FIG. 1 is a diagram illustrating an example of a system for providing a service by a general plurality of servers. When one server cannot accommodate all connections of users, a plurality of servers 100, 102, and 104 are illustrated in FIG. 1. Provide internet services.

많은 수의 사용자가 접속하는 온라인 게임 서비스의 경우, 사용자가 복수의 서버들(100, 102, 104) 중 하나의 서버를 선택하도록 하며, 사용자는 선택한 서버에서 게임을 플레이한다. In the case of an online game service to which a large number of users connect, the user may select one of the servers 100, 102, and 104, and the user plays the game on the selected server.

예를 들어, 사용자가 제1 서버(100)에 접속한 경우, 사용자는 제1 서버에 접속한 사용자들과만 커뮤니케이션이 가능하며, 제1 서버에 생성된 채널(게임 룸)에서만 게임을 플레이할 수 있다. For example, when a user accesses the first server 100, the user can communicate only with users accessing the first server, and the game can be played only in a channel (game room) created in the first server. Can be.

도 1과 같이, 복수의 서버를 통해 서버의 부하 문제를 해결하는 시스템은 사용자의 활동 영역을 사용자가 접속한 서버에 제한해버리는 문제점이 있었다. 즉, 제1 서버(100)에 접속한 사용자는 제2 서버에 생성된 채널에 참가할 수도 없으며, 제2 서버에 생성된 채널의 상황을 모니터링할 수도 없다. As shown in FIG. 1, a system for solving a load problem of a server through a plurality of servers has a problem of limiting an active area of a user to a server to which a user is connected. That is, a user who accesses the first server 100 may not participate in a channel created in the second server and may not monitor the status of the channel created in the second server.

근래의 들어, 바둑이나 전략 시뮬레이션 게임은 게임 플레이 외에도 관전 위주로 게임을 즐기는 사용자가 늘어가고 있으며, 유명한 프로기사의 대국의 경우 상당수의 사용자가 관전에 참여하고 있다. In recent years, the game of Go or strategy simulation game is increasing in addition to the game play, the number of users who enjoy the game mainly in the game, and a large number of users in the game of famous pro knights participate in the game.

그러나, 도 1과 같은 시스템이 사용될 경우, 제1 서버에서 프로 기사간의 대국이 이루어질 경우 제2 서버 및 제3 서버에 접속한 사용자들은 제1 서버에서 진행되는 대국 상황을 전혀 모니터링할 수 없는 문제점이 있었다. However, when the system as shown in FIG. 1 is used, when a professional game is played between the first server, users connected to the second server and the third server cannot monitor the situation of the power played at the first server. there was.

제1 서버에의 대국 진행 상황을 제2 서버 및 제3 서버로 제1 서버가 전송할 수도 있으나, 이 경우 트래픽이 급격히 증가하게 되고, 대국 진행 상황 전달을 위한 컨트롤 서버가 구비되어야 하며, 상기 컨트롤 서버는 상당히 복잡한 로직으로 구성되어야 한다. The first server may transmit the progress of the match to the first server to the second server and the third server, but in this case, the traffic may increase drastically, and a control server for delivering the match may be provided. Must consist of fairly complex logic.

비단, 게임의 경우가 아니더라도 독립적인 채널을 통해 서비스를 제공하는 시스템에서 특정 서버에 생성된 채널을 효율적으로 다른 서버에 미러링할 수 없는 문제점이 있었다. However, even in the case of a game, there is a problem in that a system that provides a service through an independent channel cannot efficiently mirror a channel created in one server to another server.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 최소의 트래픽으로 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 서버 미러링 방법 및 시스템을 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention is to propose a server mirroring method and system that can mirror the channel created in one server with a minimum traffic to another server.

본 발명의 다른 목적은 비교적 간단한 로직을 가진 메시지 라우팅 서버를 이용하여 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다. Another object of the present invention is to propose a server mirroring method and system capable of mirroring a channel created in one server to another server using a message routing server having relatively simple logic.

본 발명의 또 다른 목적은 특정 서버에 접속한 사용자가 다른 서버에 생성된 채널의 상황을 모니터링할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다. It is still another object of the present invention to propose a server mirroring method and system that enables a user accessing a specific server to monitor the status of a channel created on another server.

본 발명의 또 다른 목적은 바둑, 전략 시뮬레이션과 같은 게임에서 다른 서버에서 진행되고 있는 게임 상황을 관전할 수 있는 서버 미러링 방법 및 시스템을 제안하는 것이다. It is still another object of the present invention to propose a server mirroring method and system that can observe a game situation progressing on another server in a game such as Go, strategy simulation.

상기한 바와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따르면, 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가사시키는 메시지 라우팅 서버; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 서버; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버를 포함하되, 상기 퍼블리서 서버는 채널이 생성될 경우, 채널 생성 메시지 및 상기 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 채널 생성 메시지 또는 상기 퍼블리서 서버 채널로 전송된 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전달하는 서버 미러링 시스템이 제공된다. According to an aspect of the present invention to achieve the object as described above, create a publisher group and subscriber group, and participates in one of the publisher group and subscriber group corresponding to the request information from the server Message routing server; At least one publisher server participating in the publisher group of the message routing server and maintaining a connection with the message routing server; And at least one mirroring server participating in a subscriber group of the message routing server and maintaining a connection with the message routing server, wherein the publisher server includes a channel generation message and the generated channel when a channel is created. Transmits the transmitted message to the message routing server, and when the message routing server receives the channel creation message or the message transmitted to the publisher server channel from the publisher server, the message routing server transmits the received message to the subscriber group. A server mirroring system is provided that forwards to all mirroring servers participating in the.

상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 채널 생성 메시지를 수신할 경우, 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 생성한다. When the at least one mirroring server receives the channel generation message from the message routing server, the at least one mirroring server generates the same channel as the channel information included in the channel generation message.

상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터, 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 수신된 메시지를 상기 미러링 서버에 생성된 채널에 참가한 클라이언트들에 전송한다. When the at least one mirroring server receives a message transmitted from the message routing server on a channel of the publisher server, the at least one mirroring server transmits the received message to clients participating in a channel created in the mirroring server.

상기 퍼블리서 서버는 상기 메시지 라우팅 서버에 멀티캐스트 방식으로 상기 채널 생성 메시지 및 상기 퍼블리서 서버의 채널로 전송된 메시지를 전송하며, 상 기 퍼블리서 서버로부터 상기 메시지 라우팅 서버로 전송되는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정된다. The publisher server transmits the channel generation message and the message transmitted to the channel of the publisher server in a multicast manner to the message routing server, and the message transmitted from the publisher server to the message routing server is transmitted to the subroutine. The scriber group is set to the destination address.

상기 적어도 하나의 미러링 서버 각각은 상기 메시지 라우팅 서버로부터 채널 생성 메시지를 수신할 경우 상기 퍼블리서 서버에 생성된 채널 번호와 상기 미러링 서버의 채널 번호를 매칭시키기 위한 매칭 테이블 또는 매칭 코드를 생성한다. When each of the at least one mirroring server receives a channel generation message from the message routing server, the at least one mirroring server generates a matching table or matching code for matching the channel number generated in the publisher server with the channel number of the mirroring server.

상기 적어도 하나의 퍼블리서 서버 및 상기 적어도 하나의 미러링 서버는 상기 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 서브스크라이버 그룹에 참가한 미러링 서버로 전송될 메시지를 수신할 경우, 상기 소켓을 통해 상기 수신된 메시지를 서브스크라이버 그룹에 참가한 미러링 서버에 전송한다. The at least one publisher server and the at least one mirroring server maintain a connection with the message routing server through a socket, the message routing server being transmitted from the publisher server to a mirroring server participating in the subscriber group. When the message is received, the received message is transmitted to the mirroring server participating in the subscriber group through the socket.

상기 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 메시지를 분석하여 상기 메시지와 관련된 퍼블리서 서버의 채널 번호를 판단하고, 상기 매칭 테이블 또는 매칭 코드를 이용하여 관련된 상기 미러링 서버에서의 채널 번호를 판단한 후 상기 메시지를 해당 채널에 제공한다. When the mirroring server receives a message transmitted from the message routing server to a channel of the publisher server, the mirroring server analyzes the message to determine a channel number of the publisher server related to the message, and the matching table or matching code. After determining the channel number in the mirroring server associated with using and provides the message to the channel.

상기 퍼블리서 서버 및 상기 미러링 서버는 게임 서버이며, 상기 채널은 게임 룸일 수 있다. The publishing server and the mirroring server may be game servers, and the channel may be a game room.

본 발명의 다른 측면에 따르면, 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이 버 그룹 중 하나에 참가사키는 메시지 라우팅 서버; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 게임 서버; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 게임 서버를 포함하되, 상기 퍼블리서 게임 서버는 게임 룸이 생성될 경우, 게임 룸 생성 메시지 및 상기 생성된 게임 룸 내에서의 게임 진행 정보 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 게임 서버로부터 상기 게임 룸 생성 메시지 또는 게임 진행 정보 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 게임 서버들에 전달하는 서버 미러링 시스템이 제공된다. According to another aspect of the invention, a message routing server for creating a publisher group and a subscriber group, and participating in one of the publisher group and the subscriber group corresponding to the request information from the server; At least one publisher game server participating in the publisher group of the message routing server and maintaining a connection with the message routing server; At least one mirroring game server participating in a subscriber group of the message routing server and maintaining a connection with the message routing server, wherein the publisher game server includes a game room creation message and the game room when the game room is created. The game routing information message in the generated game room is transmitted to the message routing server. When the message routing server receives the game room creation message or game progress information message from the publisher game server, the message routing server receives the received message. A server mirroring system is provided that delivers to all mirroring game servers participating in the subscriber group.

본 발명의 또 다른 측면에 따르면, 적어도 하나의 퍼블리서 서버 및 적어도 하나의 미러링 서버와 연결되어 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하기 위한 메시지 라우팅 서버로서, 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하며, 상기 퍼블리서 서버로부터 채널 생성 메시지 또는 상기 퍼블리의서 서버의에 채널로 전송된 메시지를 수신할 경우, 상기 퍼블리서 서버로부터 수신된 메시지-상기 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정됨-를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전송하되, 상기 적어도 하나의 퍼블리서 서버와 상기 적어도 하나의 미러링 서버와 소켓을 통해 커넥션을 유지하는 메시지 라우팅 서버가 제공된다. According to another aspect of the present invention, a message routing server connected to at least one publisher server and at least one mirroring server to mirror a channel created in the publisher server to the mirroring server, wherein the at least one publication Create a publisher group in which the server server joins and a subscriber group in which the at least one mirroring server joins, and receive a channel creation message from the publisher server or a message transmitted in a channel to the publisher server. The message received from the publisher server, the message is set to the destination address of the subscriber group, to all mirroring servers participating in the subscriber group, wherein the at least one publisher server and the Maintain a connection through at least one mirroring server and a socket The message routing server is provided.

본 발명의 또 다른 측면에 따르면, 적어도 하나의 퍼블리서 서버, 적어도 하나의 미러링 서버 및 상기 적어도 하나의 퍼블리서 서버 및 미러링 서버와 커넥션을 유지하는 메시지 라우팅 서버를 포함하는 시스템에서 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하는 방법으로서, 상기 퍼블리서 서버에서 채널이 생성될 경우, 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하는 단계(a); 상기 메시지 라우팅 서버에서 상기 퍼블리서 서버로부터 전송된 상기 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버에 전송하는 단계(b); 및 상기 미러링 서버가 상기 메시지 라우팅 서버로부터 채널 생성 메시지 또는 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 수신할 경우, 상기 미러링 서버에서 수신된 메시지의 종류에 상응하는 미리 설정된 미러링 프로세스를 수행하는 단계(c)를 포함하는 서버 미러링 방법이 제공된다. According to still another aspect of the present invention, there is provided a system including at least one publisher server, at least one mirroring server, and a message routing server maintaining a connection with the at least one publisher server and the mirroring server. A method of mirroring a created channel to the mirroring server, comprising: when a channel is created at the publisher server, transmitting a channel creation message and a message transmitted to the channel created at the publisher server to the message routing server ( a); Transmitting, by the message routing server, the channel generation message transmitted from the publisher server and the message transmitted on the channel generated by the publisher server to at least one mirroring server maintaining a connection with the message routing server (b). ); And when the mirroring server receives a channel generation message from the message routing server or a message transmitted to the channel created in the publisher server, performing the preset mirroring process corresponding to the type of the message received by the mirroring server. A server mirroring method is provided comprising step (c).

이하에서는 첨부된 도면을 참조하여 본 발명에 의한 서버 미러링 시스템 및 방법의 바람직한 실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the server mirroring system and method according to the present invention.

도 2는 본 발명의 바람직한 일 실시예에 따른 서버 미러링 시스템의 구성을 도시한 도면이다. 2 is a diagram illustrating a configuration of a server mirroring system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 서버 미러링 시스템은 메시지 라우팅 서버(200) 및 복수의 서버(202, 204, 206)를 포함할 수 있다. 복수의 서버 각각으로는 복수의 사용자 클라이언트(210, 212, 214, 216, 218, 220)가 네트워크(미도시)를 통해 연결된다. 2, a server mirroring system according to an embodiment of the present invention may include a message routing server 200 and a plurality of servers 202, 204, and 206. In each of the plurality of servers, a plurality of user clients 210, 212, 214, 216, 218, and 220 are connected through a network (not shown).

본 발명은 서버에 생성된 특정 채널의 정보를 다른 서버에 미러링하는 방법 및 시스템에 관한 것이다. 다수의 사용자들이 접속하여 사용자들끼리 경쟁 또는 협력을 통해 게임을 진행하도록 하는 온라인 게임 서버 또는 접속한 사용자들간의 채팅 메시지를 교환하는 채팅 서버 등은 서버 내에 다수의 채널을 형성하며 채널에 참여한 사용자들이 전송하는 메시지 패킷을 같은 채널에 다른 사용자들에게 전송한다. 이러한 채널은 주로 '룸'이라고 명명되며, 게임 서버의 경우 게임 룸, 채팅 서버의 경우 채팅 룸이라는 형태로 지칭된다. 게임 서버 또는 채팅 서버 이외에도 채널을 형성하여 사용자들의 요청을 처리하는 서버에는 본 발명이 적용될 수 있을 것이다. 이하에서, 본 발명을 일반적으로 설명할 때에는 '채널'이라는 용어를 사용하며, 본 발명을 온라인 게임 또는 채팅 서비스 등에 한정하여 설명할 때에는 '게임 룸' 또는 '채팅 룸'이란 용어를 사용하기로 한다. The present invention relates to a method and system for mirroring information of a specific channel created in a server to another server. An online game server that allows a large number of users to access and compete or cooperate with each other, or a chat server that exchanges chat messages between connected users forms a number of channels in the server. Sends a message packet to other users on the same channel. These channels are often referred to as 'rooms' and are referred to as game rooms for game servers and chat rooms for chat servers. In addition to a game server or a chat server, the present invention may be applied to a server that forms a channel and processes user requests. Hereinafter, the term 'channel' is used to describe the present invention in general, and the term 'game room' or 'chat room' will be used to describe the present invention in an online game or chat service. .

제1 서버(202), 제2 서버(204), 제3 서버(206) 각각에는 독립적으로 채널이 형성되며, 클라이언트들(210, 212, 214, 216, 218, 220)은 접속한 서버에 형성된 채널에 참가한다. Each of the first server 202, the second server 204, and the third server 206 has a channel formed independently, and the clients 210, 212, 214, 216, 218, and 220 are formed in the connected server. Join the channel.

특정 서버에 형성된 채널은 해당 서버에 접속한 사용자들만 참가할 수 있으며, 채널의 정보 역시 해당 서버에 접속한 사용자들만이 제공받을 수 있다. A channel formed in a specific server may participate only in users connected to the corresponding server, and information of the channel may be provided only by users connected to the corresponding server.

예를 들어, 게임 서버의 경우, 특정 게임 서버에 생성된 게임 룸은 해당 서버에 접속한 사용자들만이 참가할 수 있으며, 해당 게임 룸에 참여한 사용자만이 해당 채널에서 게임을 플레이하거나 게임 진행 상황을 관전하는 것이 가능하다. For example, in the case of a game server, a game room created on a specific game server can be joined only by users connected to the server, and only users who participated in the game room can play games or watch game progress on the channel. It is possible to do

따라서, 제1 서버에 형성된 게임 룸에서 게임을 플레이하거나 게임을 관전하여야 하는 경우 사용자는 제1 서버에 접속하여야 하며, 제2 서버 및 제3 서버에 접속한 사용자는 제1 서버에 형성된 게임 룸에 참여하거나 제1 서버에 형성된 게임 룸에서 진행되는 게임을 관전할 수 없었다. Therefore, when playing a game or watching a game in a game room formed on the first server, the user should be connected to the first server, and users connected to the second server and the third server should be connected to the game room formed on the first server. The game played in the game room formed on the first server could not be observed.

근래에 들어, 게임의 관전에 대한 관심이 높아지고 있으며, 전략 시뮬레이션 게임 및 바둑 게임 등에서는 게임의 관전이 게임 플레이만큼이나 중요한 요소로 자리잡고 있다. In recent years, interest in watching games has increased, and game watching is becoming as important as game play in strategy simulation games and baduk games.

게임 서버는 수용할 수 있는 커넥션의 수의 한계가 있으므로 제1 서버가 더 이상 사용자를 수용할 수 없는 경우, 제2 서버 및 제3 서버에 접속한 사용자는 제1 서버에 생성된 게임 룸에서 진행되는 게임을 관전할 수 없는 바, 제2 서버 및 제3 서버에 접속한 사용자들이 제1 서버에 생성된 게임룸에서 진행되는 게임을 관전할 수 있도록 본 발명에 의한 서버 미러링 방법이 사용될 수 있다. Since the game server has a limit on the number of connections that can be accommodated, when the first server can no longer accommodate the user, the user accessing the second server and the third server proceeds in the game room created on the first server. The server mirroring method according to the present invention can be used so that users connected to the second server and the third server can watch a game played in the game room created in the first server.

또한, 본 발명에 의한 서버 미러링 방법은 게임 운영자들이 특정 서버에 형성된 게임룸의 상황을 모니터링하는 경우에도 이용될 수 있다. 게임 운영자들은 게임 내 부정행위 등을 모니터링하기 위해 게임룸에 조인하지 않고도 해당 게임룸을 운영자가 접속한 서버에 미러링하여 게임룸의 상황을 모니터링할 수 있다. In addition, the server mirroring method according to the present invention can be used when game operators monitor the situation of the game room formed in a specific server. Game operators can monitor the game room's situation by mirroring the game room to a server accessed by the operator without having to join the game room to monitor in-game cheating.

또한, 본 발명에 의한 서버 미러링 방법은 특정 채팅 서버에 접속한 사용자가 다른 채팅 서버에 생성된 채팅 룸의 채팅 상황을 모니터링하는데 이용될 수도 있다. In addition, the server mirroring method according to the present invention may be used to monitor the chat situation of a chat room created in another chat server by a user connected to a particular chat server.

상술한 예 이외에도 특정 서버에 생성된 채널의 상황을 다른 서버에 접속한 사용자 또는 운영자가 모니터링할 필요가 있을 경우 본 발명의 서버 미러링 방법이 사용될 수 있을 것이다. In addition to the above examples, the server mirroring method of the present invention may be used when it is necessary to monitor a situation of a channel created in a specific server by a user or an operator accessing another server.

도 1에서, 제1 서버(202)에 생성된 채널은 제2 서버(204) 및 제3 서버(206)에 미러링되며, 제1 서버(202)와 같이 채널이 미러링되는 서버를 퍼블리서(Publisher) 서버라고 하며, 제2 서버(204) 및 제3 서버(206)와 같이 다른 서버의 채널을 미러링하는 서버를 미러링 (Mirroring)서버라고 한다. In FIG. 1, the channel created in the first server 202 is mirrored to the second server 204 and the third server 206, and publishes a server whose channel is mirrored like the first server 202. A server that mirrors channels of other servers, such as the second server 204 and the third server 206, is called a mirroring server.

퍼블리서 서버인 제1 서버(202)는 사용자로부터 다른 서버에 미러링될 채널의 생성 요청 정보를 수신한다. 예를 들어, 제1 내지 제3 서버가 온라인 게임 서버일 경우, 제1 서버(202)에 접속한 사용자는 제1 서버에 다른 서버에 미러링될 게임 룸의 생성을 요청한다. 사용자의 요청 정보를 수신한 제1 서버(202)는 다른 서버에 미러링될 수 있는 게임 룸을 생성한다. The first server 202, which is a publisher server, receives from the user, request for generating a channel to be mirrored to another server. For example, when the first to third servers are online game servers, a user who accesses the first server 202 requests the first server to create a game room to be mirrored to another server. Receiving the user's request information, the first server 202 creates a game room that can be mirrored to other servers.

제1 서버(202)에 생성된 게임 룸에 대한 정보는 메시지 라우팅 서버(200)에 전송된다. 여기서, 게임 룸에 대한 정보는 게임 룸 타입 및 게임 룸에 참여한 사용자 정보를 포함할 수 있을 것이다. 또한, 제1 서버(202)는 생성된 게임 룸에서의 게임 진행 정보 메시지 라우팅 서버(200)에 전송한다. 여기서, 게임 진행 정보는 사용자들이 온라인 게임 진행을 위해 전송하는 게임 커맨드 정보 및 게임 중 교환하는 채팅 메시지를 포함할 수 있을 것이다. Information about the game room generated in the first server 202 is transmitted to the message routing server 200. Here, the information about the game room may include game room type and user information participating in the game room. In addition, the first server 202 transmits the generated game progress information message routing server 200 in the game room. Here, the game progress information may include game command information transmitted by users for the progress of the online game and chat messages exchanged during the game.

본 발명은 게임 룸(채널) 미러링을 위한 서버들간의 통신을 간소화하기 위해 메시지 라우팅 서버(200)를 이용한다. 메시지 라우팅 서버(200)는 제1 서버(202)에 서 제공하는 게임 룸 생성 정보 및 게임 진행 정보를 제2 서버(204) 및 제3 서버(206)에 제공한다. The present invention utilizes message routing server 200 to simplify communication between servers for game room (channel) mirroring. The message routing server 200 provides game room creation information and game progress information provided by the first server 202 to the second server 204 and the third server 206.

본 발명의 바람직한 실시예에 따르면, 메시지 라우팅 서버(200)는 복수의 커넥션을 하나의 그룹으로 관리하는 기능을 지원한다.According to a preferred embodiment of the present invention, the message routing server 200 supports a function of managing a plurality of connections into one group.

도 3은 본 발명의 바람직한 일 실시예에 따른 메시지 라우팅 서버에 생성되는 그룹을 도시한 도면이다. 3 is a diagram illustrating a group created in a message routing server according to an exemplary embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 메시지 라우팅 서버에는 서브스크라이버(Subscriber) 그룹(300) 및 퍼블리서 그룹(302)이 생성되며, 서브스크라이버 그룹은 퍼블리서 서버의 채널을 미러링하는 미러링 서버들이 참가하는 그룹이며, 퍼블리석 그룹은 미러링될 채널 정보를 제공하는 퍼블리서 서버가 참가하는 그룹이다. Referring to FIG. 3, a subscriber group 300 and a publisher group 302 are created in a message routing server according to an embodiment of the present invention, and the subscriber group is a channel of the publisher server. The mirroring servers participating in the mirroring are participating groups, and the publishing group is a group in which the publishing server providing channel information to be mirrored participates.

도 2에서, 퍼블리서 서버인 제1 서버(202)는 퍼블리서 그룹(302)에 참가하고, 미러링 서버인 제2 서버(204) 및 제3 서버(206)는 서브스크라이버 그룹(300)에 참가한다. In FIG. 2, a first server 202, which is a publisher server, joins a publisher group 302, and a second server 204 and a third server 206, which are mirroring servers, join a subscriber group 300. Participate

메시지 라우팅 서버(200)와 연결된 제1 서버 내지 제3 서버(202, 204, 206)는 서버 시작 시 메시지 라우팅 서버(200)의 퍼블리서 그룹(302) 또는 서브스크라이버 그룹(300) 중 하나에 참가하도록 설정되며, 메시지 라우팅 서버(200)는 연결된 서버들의 요청에 따라 서브스크라이버 그룹(300) 또는 퍼블리서 그룹(302)에 참가시킨다. The first to third servers 202, 204, and 206 connected to the message routing server 200 are assigned to either the publisher group 302 or the subscriber group 300 of the message routing server 200 at server startup. The message routing server 200 joins the subscriber group 300 or the publisher group 302 at the request of the connected servers.

본 발명의 바람직한 실시예에 따르면, 퍼블리서 서버인 제1 서버(202)는 멀 티캐스트 방식으로 미러링될 채널 정보와 관련된 메시지를 메시지 라우팅 서버(200)에 제공한다. 퍼블리서 서버인 제1 서버(202)는 메시지 라우팅 서버(200)에 서브스크라이버 그룹으로 전송되는 메시지라는 정보만을 포함하여 메시지 라우팅 서버에 채널 정보를 제공한다. 즉, 제1 서버(202)가 메시지 라우팅 서버에 전송하는 채널 정보와 관련된 메시지는 채널 정보를 미러링할 제2 서버 및 제3 서버의 주소 정보를 포함하지 않으며, 메시지가 전송될 서브스크라이버 그룹 식별 정보만을 포함한다. According to a preferred embodiment of the present invention, the first server 202, which is a publish server, provides a message routing server 200 with a message related to channel information to be mirrored in a multicast manner. The first server 202, which is a publisher server, provides channel information to the message routing server, including only the information of the message transmitted to the subscriber group to the message routing server 200. That is, the message related to the channel information transmitted by the first server 202 to the message routing server does not include address information of the second server and the third server to mirror the channel information, and identifies the subscriber group to which the message is transmitted. Include only information.

메시지 라우팅 서버(200)는 퍼블리서 서버인 제1 서버(202)로부터 서브스크라이버 그룹으로 전송될 메시지를 수신할 경우, 서브스크라이버 그룹에 참가한 모든 미러링 서버에 퍼블리서 서버로부터 전송된 메시지를 전송한다. 즉, 메시지 라우팅 서버(200)는 서브스크라이버 그룹에 참가한 제2 서버(204) 및 제3 서버(206)에 제1 서버로부터 전송된 메시지를 전송한다. When the message routing server 200 receives a message to be transmitted to the subscriber group from the first server 202, which is the publisher server, the message routing server 200 transmits the message transmitted from the publisher server to all mirroring servers participating in the subscriber group. do. That is, the message routing server 200 transmits the message transmitted from the first server to the second server 204 and the third server 206 participating in the subscriber group.

메시지 라우팅 서버는 전송되는 메시지가 서브스크라이버 그룹의 서버들에 전송될 메시지인지 또는 퍼블리서 그룹의 서버들에게 전송될 메시지인지 여부만을 판단하여 수신된 메시지를 퍼블리서 그룹의 서버 또는 서브스크라이버 그룹의 서버에 전송하는 역할만을 수행하며, 수신된 메시지의 분석, 판단 및 제어 절차를 수행하지는 않는다. The message routing server determines only whether a message being sent is a message to be sent to servers in a subscriber group or a message to be sent to servers in a publisher group, and the received message is sent to a server or subscriber group in a publisher group. It only plays the role of sending to the server of the server and does not perform the analysis, determination and control procedure of the received message.

따라서, 메시지 라우팅 서버는 기존의 서버간 정보 교환을 위한 컨트롤 서버들에 비해 보다 간소한 구성을 가질 수 있으며, 메시지도 메시지의 수신자를 일일이 지정할 필요 없이 보다 단순화된 방식으로 전송될 수 있는 바, 메시지 트래픽 역시 감소될 수 있다. Therefore, the message routing server can have a simpler configuration than the control servers for exchanging information between the existing servers, and the message can be transmitted in a simplified manner without having to specify the recipients of the message. Traffic can also be reduced.

서버스크라이버 서버인 제2 서버(204) 및 제3 서버(206)는 메시지 라우팅 서버(200)로부터 퍼블리서 서버인 제1 서버(202)가 전송한 채널 관련 메시지를 수신하며, 메시지를 분석하여 채널 미러링을 수행한다. The second server 204 and the third server 206, which are server scriber servers, receive a channel related message transmitted from the message routing server 200 by the first server 202, which is a publisher server, and analyze the message. Perform channel mirroring

예를 들어, 제1 서버(202)로부터 전송된 메시지가 채널 생성 정보를 포함하는 메시지일 경우, 제2 서버(204) 및 제3 서버(206)는 메시지를 분석하여 채널 생성 정보에 포함된 정보와 동일한 조건을 가지는 채널을 생성한다. 제1 서버(202)로부터 전송된 메시지가 채널의 상태 변경 정보를 포함하는 메시지일 경우, 제2 서버(204) 및 제3 서버(206)는 메시지를 분석하여 제1 서버와 채널과 동일한 상태로 제2 서버(204) 및 제3 서버(206)의 미러링 채널의 상태를 변경한다. For example, when the message transmitted from the first server 202 is a message including channel generation information, the second server 204 and the third server 206 analyze the message and include information included in the channel generation information. Create a channel with the same conditions as If the message sent from the first server 202 is a message including the state change information of the channel, the second server 204 and the third server 206 analyze the message to the same state as the channel with the first server. The state of the mirroring channel of the second server 204 and the third server 206 is changed.

이하에서는 본 발명이 온라인 게임 서비스에 적용되는 경우를 예로 하여 본 발명의 구성 및 동작을 더욱 상세히 살펴보기로 한다. Hereinafter, the configuration and operation of the present invention will be described in more detail by taking an example where the present invention is applied to an online game service.

전술한 바와 같이, 본 발명에 의한 서버 미러링 시스템은 특정 서버에 생성된 게임 룸의 게임 진행 상황을 다른 서버에 접속한 사용자들이 관전하는데 활용될 수 있다. As described above, the server mirroring system according to the present invention can be utilized to observe the game progress of the game room created in a specific server by users connected to other servers.

도 4는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버 및 미러링 서버의 게임룸의 상태를 나타낸 도면이다. 4 is a view showing the state of the game room of the publishing server and the mirroring server according to an embodiment of the present invention.

도 4를 참조하면, 퍼블리서 서버의 게임 룸(400)은 플레이어에 의해 생성되며, 제1 서버에 접속한 게임 플레이어들이 참가한다. 퍼블리서 서버의 게임 룸(400)에 참여한 플레이어들은 퍼블리서 서버를 통해 게임 패킷을 교환하면서 게 임을 진행한다. 게임은 바둑 게임, 전략 시뮬레이션 게임, 보드 게임 등을 포함할 수 있으며, 퍼블리서 서버에 접속한 플레이어들의 클라이언트에는 게임 플레이를 위한 어플리케이션이 설치되어 있다. 도 4에는 퍼블리서 서버의 게임 룸(400)에 게임을 플레이하는 플레이어들이 참가하는 경우가 도시되어 있으나, 게임 플레이가 아닌 관전을 위한 관전자가 참가하여 게임 진행 상황을 관전할 수도 있다. Referring to FIG. 4, a game room 400 of a publisher server is created by a player, and game players connected to the first server participate. Players participating in the game room 400 of the publisher server proceed with the game while exchanging game packets through the publisher server. The game may include a Go game, a strategy simulation game, a board game, and the like, and an application for game play is installed in a client of a player connected to a publishing server. 4 illustrates a case in which players who play a game participate in the game room 400 of the publisher server, but a game spectator may watch a game progress by watching the game.

퍼블리서 서버의 게임 룸은 게임 룸 생성, 게임 진행 중 교환되는 게임 커맨드 정보 및 게임 룸 종료와 같은 게임 룸의 게임 진행 상황과 관련된 정보를 메시지 라우팅 서버의 서브스크라이버 그룹으로 전송되도록 프로그래밍된다. The game room of the publisher server is programmed to send information related to the game progress of the game room, such as game room creation, game command information exchanged during game play, and game room termination, to the subscriber group of the message routing server.

퍼블리서 서버에서 게임 룸이 생성될 경우, 게임 룸 생성 정보는 메시지 라우팅 서버를 통해 미러링 서버에 전송되며, 미러링 서버에는 퍼블리서 서버에서 생성된 게임 룸과 동일한 조건의 게임 룸이 생성된다. When the game room is created in the publisher server, the game room creation information is transmitted to the mirroring server through the message routing server, and the game room having the same condition as the game room created in the publisher server is generated in the mirroring server.

퍼블리서 서버와 같은 게임 룸의 생성을 위해 미러링 서버는 게임 룸의 생성 주체로 인식되는 가상의 더미 플레이어를 생성한다. 더미 플레이어는 게임 룸의 생성될 때 게임 룸에 대한 제어 권한을 갖는 플레이어가 필요하기 때문에 가상적으로 생성되는 플레이어이며 일반 플레이어와 동일한 구조를 가지고 있으나 클라이언트와의 연결을 가지고 있지 않기 때문에 더미 플레이어로 데이터를 송수신하는 것은 불가능하도록 하는 것이 바람직하다. In order to create a game room such as a publisher server, the mirroring server creates a virtual dummy player recognized as the creator of the game room. The dummy player is a virtually created player because it needs a player who has control over the game room when the game room is created. Since the dummy player has the same structure as a normal player but does not have a connection with a client, the dummy player may transfer data to the dummy player. It is desirable to make it impossible to transmit and receive.

미러링 서버에 생성된 게임 룸(402)에는 미러링 서버에 접속한 사용자들이 참가한다. 미러링 서버는 일반 게임 룸과 함께 미러링된 게임 룸 역시 게임 룸 리스트로 제공하며, 미러링 서버에 접속한 사용자들은 미러링된 게임 룸에 참가할 수 있다. Users connected to the mirroring server participate in the game room 402 created on the mirroring server. In addition to the general game room, the mirroring server also provides a mirrored game room as a game room list, and users connected to the mirroring server can join the mirrored game room.

퍼블리서 서버의 게임 룸(402)에서 게임이 진행될 경우, 퍼블리서 서버의 게임 룸(402)은 게임 진행과 관련된 정보를 메시지 라우팅 서버(200)에 전송하며, 메시지 라우팅 서버(200)는 서브스크라이버 그룹에 참가한 미러링 서버들에 전송하며, 미러링 서버는 게임 진행과 관련된 정보를 관련된 게임 룸(402)에 전달한다. 따라서, 미러링 게임 룸에 참가한 사용자들은 퍼블리서 서버에서 진행되는 게임 상황을 관전할 수 있다.When a game is played in the game room 402 of the publisher server, the game room 402 of the publisher server transmits the information related to the game progress to the message routing server 200, and the message routing server 200 receives a subscription. The server transmits to the mirroring servers participating in the driver group, and the mirroring server transmits the information related to the game progress to the related game room 402. Therefore, the users who participate in the mirroring game room can watch the game situation progressing on the publisher server.

예를 들어, 퍼블리서 서버의 게임 룸(400)에서 바둑 게임이 진행될 경우, 퍼블리서 서버의 게임 룸(400)의 플레이어들에 의해 생성되는 기보 정보는 실시간으로 메시지 라우팅 서버를 통해 미러링 서버의 게임 룸(402)으로 전송되며, 미러링 서버의 게임 룸(402)은 참가한 관전자들에게 전송된 기보 정보를 제공하여 바둑 관전이 가능하도록 한다. For example, when the Go game is played in the game room 400 of the publisher server, the notation information generated by the players of the game room 400 of the publisher server may play the game of the mirroring server through the message routing server in real time. The game room 402 of the mirroring server is transmitted to the room 402, and the game room 402 of the mirroring server provides the notified information transmitted to the participating spectators to enable the game of go.

도 5는 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에 게임 룸 생성 시 미러링 서버에 게임 룸이 생성되는 과정에 대한 순서도이다. 5 is a flowchart illustrating a process of creating a game room in a mirroring server when creating a game room in a publishing server according to an exemplary embodiment of the present invention.

도 5를 참조하면, 게임 플레이어는 클라이언트를 통해 퍼블리서 서버에 게임 룸의 생성을 요청한다(단계 500). 플레이어는 다른 서버에 미러링될 게임 룸임을 미리 지정하여 요청할 수 있다. 퍼블리서 서버는 게임 룸 생성 시 다른 서버에 미러링할지 여부를 선택하는 인터페이스를 제공하며, 게임 플레이어는 상기 인터페이스를 통해 다른 서버에 미러링될 게임 룸의 생성을 요청할 수 있을 것이다. Referring to FIG. 5, the game player requests the publishing server to create a game room through the client (step 500). The player may request in advance that the game room is to be mirrored to another server. The publisher server provides an interface for selecting whether to mirror to another server when creating a game room, and the game player may request creation of a game room to be mirrored to another server through the interface.

퍼블리서 서버는 플레이어 클라이언트의 게임 룸 생성 요청에 응답하여 게임 룸을 생성한다(단계 502). 퍼블리서 서버는 게임 룸 생성을 완료한 후 플레이어 클라이언트에 게임 룸 생성 정보를 전송하며(단계 504), 플레이어 클라이언트는 퍼블리서 서버에 생성된 게임 룸에 참가한다(단계 506). The publisher server creates a game room in response to the player client's game room creation request (step 502). The publisher server sends the game room creation information to the player client after completing the game room creation (step 504), and the player client joins the game room created on the publisher server (step 506).

퍼블리서 서버는 메시지 라우팅 서버의 퍼블리서 그룹에 참가한 상태이며, 다른 서버에 미러링될 게임 룸이 생성될 경우, 게임 룸 생성 정보를 메시지 라우팅 서버의 서브스크라이버 그룹에 전송하도록 설정되어 있다. The publisher server is in a state of joining a publisher group of the message routing server, and when a game room to be mirrored is created in another server, the publisher server is set to transmit the game room creation information to the subscriber group of the message routing server.

도 9는 본 발명의 일 실시예에 따른 퍼블리서 서버의 메시지가 메시지 라우팅 서버를 통해 서브스크라이버 그룹에 속한 미러링 서버들에 전달되는 개념도를 도시한 도면이다. 9 is a diagram illustrating a concept in which a message of a publisher server is delivered to mirroring servers belonging to a subscriber group through a message routing server according to an embodiment of the present invention.

도 9를 참조하면, 메시지 라우팅 서버의 퍼블리서 그룹 및 서브스크라이버 그룹에 참가한 퍼블리서 서버(904) 및 미러링 서버들(900, 902)은 소켓을 통해 메시지 라우팅 서버와의 커넥션을 유지한다. Referring to FIG. 9, the publisher server 904 and the mirroring servers 900 and 902 participating in the publisher group and the subscriber group of the message routing server maintain a connection with the message routing server through a socket.

도 9에 도시된 바와 같이, 퍼블리서 서버(904)가 서브스크라이버 그룹에 참가한 미러링 서버들에 메시지를 전달하고자 하는 경우, 퍼블리서 서버는 서브스크라이버 그룹을 목적지 주소로 하여 멀티캐스트 방식으로 메시지를 전송한다. As shown in FIG. 9, when the publisher server 904 wants to deliver a message to the mirroring servers participating in the subscriber group, the publisher server sends the message in a multicast manner using the subscriber group as the destination address. Send it.

메시지 라우팅 서버(200)는 서브스크라이버 그룹에 속한 미러링 서버들(900, 902)과 커넥션을 유지하고 있는 소켓들을 통해 미러링 서버 각각으로 퍼블리서 서버로부터 전송된 메시지를 전달한다. The message routing server 200 delivers the message transmitted from the publishing server to each of the mirroring servers through sockets maintaining the connection with the mirroring servers 900 and 902 belonging to the subscriber group.

다시, 도 5를 참조하면, 퍼블리서 서버는 게임 룸 생성 메시지를 메시지 라우팅 서버로 전송한다(단계 508). 게임 룸 생성 메시지에는 게임 룸 타이틀, 게임 룸의 게임 아이디, 게임 룸 설정 정보 등을 포함할 수 있을 것이며, 게임 룸 생성 메시지의 목적지 주소는 메시지 라우팅 서버의 서브스크라이버 그룹으로 설정된다. Referring back to FIG. 5, the publisher server sends a game room creation message to the message routing server (step 508). The game room creation message may include a game room title, a game ID of the game room, game room setting information, and the like. The destination address of the game room creation message is set to a subscriber group of the message routing server.

게임 룸 생성 메시지를 수신한 메시지 라우팅 서버는 게임 룸 생성 메시지를 서브스크라이버 그룹에 참가하여 소켓을 통해 메시지 라우팅 서버와 커넥션을 유지하고 있는 미러링 서버 각각에 전송한다(단계 510). Upon receiving the game room creation message, the message routing server joins the subscriber group with the game room creation message and transmits the game room creation message to each mirroring server maintaining a connection with the message routing server through the socket (step 510).

메시지 라우팅 서버의 서브스크라이버 그룹에 참가한 미러링 서버 각각은 게임 룸 생성 메시지를 수신하며, 게임 룸 생성을 위해 가상의 더미 플레이어를 생성한다(단계 512). 전술한 바와 같이, 더미 플레이어는 일반 플레이어와 동일한 구조를 가지고 있으나 클라이언트와의 연결을 가지고 있지 않기 때문에 더미 플레이어로 데이터를 송수신하는 것은 불가능하다. Each mirroring server participating in the subscriber group of the message routing server receives the game room creation message and generates a virtual dummy player for the game room creation (step 512). As described above, since the dummy player has the same structure as the general player but does not have a connection with the client, it is impossible to send and receive data to and from the dummy player.

더미 플레이어가 생성되면, 미러링 서버는 수신한 게임 룸 생성 정보에 포함된 정보와 동일한 조건을 가지며 상기 더미 플레이어가 게임 룸 생성자로 설정되는 게임 룸을 생성한다(단계 514). 미러링 서버에서 게임 룸 생성 시 미러링된 게임 룸의 번호는 각 미러링 서버가 독립적으로 부여할 수 있으며 미러링 게임 룸을 위해 미리 준비된 번호를 부여할 수도 있으며, 일반 게임 룸과 같이 순차적으로 번호가 부여될 수도 있다. 다만, 미러링 서버 각각은 퍼블리서 서버에서 생성된 게임 룸과 미러링 서버에서 미러링된 게임 룸을 서로 매칭시킬 수 있도록 퍼블리서 서버의 게임 룸 번호와 미러링된 게임 룸 번호를 매칭시키는 매칭 테이블 또는 매칭 코드를 관리한다. When the dummy player is created, the mirroring server creates a game room having the same conditions as the information included in the received game room creation information and in which the dummy player is set as a game room creator (step 514). When creating a game room on the mirroring server, the number of mirrored game rooms can be independently assigned by each mirroring server, a number prepared in advance for the mirroring game room, or sequentially numbered like a general game room. have. However, each of the mirroring servers has a matching table or matching code for matching the game room number of the publishing server and the mirrored game room number so that the game room generated by the publishing server and the mirrored game room can be matched with each other. Manage.

도 6은 본 발명의 바람직한 일 실시예에 따른 퍼블리서 서버에서 게임 룸 삭 제 시 미러링 서버에서 미러링된 게임 룸이 삭제되는 과정을 도시한 순서도이다. 6 is a flowchart illustrating a process of deleting a game room mirrored in a mirroring server when deleting a game room in a publisher server according to an exemplary embodiment of the present invention.

도 6을 참조하면, 퍼블리서 서버에 생성된 게임 룸에 참여하고 있는 플레이어의 클라이언트는 게임 룸 나가기를 요청하며(단계 600), 퍼블리서 서버에 생성된 게임 룸에 참여한 플레이어가 모두 게임 룸을 나갈 경우, 퍼블리서 서버는 해당 게임 룸을 삭제한다(단계 602). Referring to FIG. 6, a client of a player participating in a game room created on the publisher server requests to exit the game room (step 600), and all players participating in the game room created on the publisher server exit the game room. If so, the publisher server deletes the game room (step 602).

퍼블리서 서버는 미러링 서버에서 미러링되는 게임 룸에서 사용자가 방에서 나갈 경우, 게임 룸에서 나갔다는 메시지를 메시지 라우팅 서버에 전송한다(단계 604).When the user leaves the room in the game room mirrored by the mirroring server, the publisher server sends a message to the message routing server stating that the user left the game room (step 604).

특정 사용자의 게임 룸 나기기에 대한 정보를 포함하는 메시지는 퍼블리서 서버는 미러링 서버에서 미러링되는 게임 룸이 삭제될 경우, 게임 룸 삭제 정보를 메시지 라우팅 서버에 전송한다(단계 604). 게임 룸 삭제 메시지는 삭제된 게임 룸의 번호 정보를 포함할 수 있다. The message including the information about the exit of the game room of the specific user, the publisher server transmits the game room deletion information to the message routing server when the game room mirrored from the mirroring server is deleted (step 604). The game room deletion message may include number information of the deleted game room.

메시지 라우팅 서버의 서브스크라이버 그룹에 전송되며, 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 해당 메시지를 전송한다(단계 606).게임 룸 삭제 메시지는 메시지 라우팅 서버의 서브스크라이버 그룹에 전송되며, 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 게임 룸 삭제 메시지를 전송한다(단계 606). The message routing server joins the subscriber group and transmits the message to the message routing server and to each mirroring server maintaining a connection through the socket (step 606). The room delete message is sent to the subscriber group of the message routing server, and the message routing server joins the subscriber group and sends the game room delete message to the message routing server and to each of the mirroring servers that maintain the connection through the socket. (Step 606).

미러링 서버는 해당 메시지에 포함된 게임 룸 번호에 상응하는 미러링 서버 에서의 게임 룸 번호를 판단한다. 상술한 매칭 테이블 또는 매칭 코드를 이용하여 퍼블리서 서버의 게임 룸 번호에 상응하는 미러링 게임 룸 번호를 판단할 수 있을 것이다. 미러링 서버는 판단된 미러링 게임 룸 번호에 상응하는 더미 플레이어를 삭제하고(단계 608), 해당 미러링 게임 룸을 삭제한다(단계 610).삭제한다(단계 608).The mirroring server determines the game room number in the mirroring server corresponding to the game room number included in the message. The mirroring game room number corresponding to the game room number of the publisher server may be determined using the above-described matching table or matching code. The mirroring server deletes the dummy player corresponding to the determined mirroring game room number (step 608), and deletes the mirroring game room (step 610).

미러링 서버에 미러링된 게임 룸에서 더미 플레이어를 포함한 모든 사용자가 방을 떠나게 되면 서버는 게임 룸을 삭제한다(단계 610). If all users, including the dummy player, leave the room in the game room mirrored to the mirroring server, the server deletes the game room (step 610).

도 7은 본 발명의 바람직한 일 실시예에 따른 게임 진행 상황이 미러링 서버에서 재현되도록 퍼블리서 서버의 게임 룸에서 교환되는 게임 커맨드 패킷이 미러링 서버에 전달되는 과정에 대한 순서도이다. 7 is a flowchart illustrating a process of delivering a game command packet exchanged in a game room of a publishing server to a mirroring server so that a game progress is reproduced in a mirroring server according to an exemplary embodiment of the present invention.

도 7을 참조하면, 퍼블리서 서버의 게임 룸에 참가하여 게임을 플레이하는 플레이어의 플레이어는 게임 커맨드 메시지를 퍼블리서 서버에 전송한다(단계 700). 상기 게임 커맨드는 다양한 게임에서의 게임 커맨드를 모두 포함할 수 있을 것이다. 예를 들어, 게임 커맨드는 바둑에서 특정 플레이어의 기보 정보일 수 있으며, 전략 시뮬레이션 게임에서 특정 유닛에 대한 이동 커맨드일 수도 있다. Referring to FIG. 7, a player of a player who joins a game room of a publisher server and plays a game transmits a game command message to the publisher server (step 700). The game command may include all game commands in various games. For example, the game command may be notation information of a specific player in Go, or may be a move command for a specific unit in a strategy simulation game.

퍼블리서 서버의 게임 룸에서 진행되는 게임이 바둑, 보드 게임과 같은 턴 방식의 게임일 경우, 상기 게임 커맨드는 커맨드의 수순 정보를 포함할 수 있을 것이다. 퍼블리서 서버의 게임 룸에서 진행되는 게임이 실시간 전략 시뮬레이션 게임일 경우, 상기 게임 커맨드는 시간 정보를 포함할 수 있을 것이다. When the game played in the game room of the publisher server is a turn-based game such as a game of go, board, the game command may include the sequence information of the command. If the game played in the game room of the publisher server is a real-time strategy simulation game, the game command may include time information.

또한, 상기 게임 커맨드 메시지는 게임 커맨드 메시지를 수신한 퍼블리서 서 버의 게임 룸 번호 정보를 포함한다. In addition, the game command message includes game room number information of the publish server that received the game command message.

플레이어 클라이언트로부터 게임 커맨드 메시지를 수신한 퍼블리서 서버는 수신한 게임 커맨드 메시지를 메시지 라우팅 서버에 전송한다(단계 702). The publisher server receiving the game command message from the player client sends the received game command message to the message routing server (step 702).

메시지 라우팅 서버는 메시지 라우팅 서버는 서브스크라이버 그룹에 참가하여 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하고 있는 미러링 서버 각각으로 게임 커맨드 메시지를 전송한다(단계 704). The message routing server sends a game command message to the subscriber routing group by joining the subscriber group and to each of the mirroring servers maintaining the connection through the socket (step 704).

메시지 라우팅 서버로부터 게임 커맨드 메시지를 수신한 미러링 서버 각각은 게임 커맨드 메시지를 분석하여 수신된 게임 커맨드와 관련된 미러링 게임 룸의 번호를 판단한다(단계 706). Each mirroring server that receives the game command message from the message routing server analyzes the game command message to determine the number of the mirroring game room associated with the received game command (step 706).

미러링 서버는 판단된 미러링 게임 룸에 메시지 라우팅 서버로부터 수신한 게임 커맨드 메시지를 전달한다(단계 708). 미러링 서버의 미러링 게임 룸은 참여한 사용자의 클라이언트들에 게임 커맨드를 전달하며, 게임 커맨드를 수신한 사용자 클라이언트들에 설치된 게임 어플리케이션은 수신한 커맨드에 상응하는 게임 프로세스를 수행한다. 도 7과 같은 절차에 의해, 미러링 서버의 미러링 게임 룸에 참여한 사용자들은 퍼블리서 서버의 게임 룸에서 진행되는 게임과 동일한 게임 진행을 관전할 수 있다. The mirroring server forwards the game command message received from the message routing server to the determined mirroring game room (step 708). The mirroring game room of the mirroring server transmits a game command to clients of participating users, and a game application installed in the user clients that receive the game command performs a game process corresponding to the received command. By the procedure of FIG. 7, users participating in the mirroring game room of the mirroring server may observe the same game progression as the game played in the game room of the publishing server.

도 7에는 도시되어 있지 않으나, 퍼블리서 서버의 게임 룸에서 플레이어들간에 송수신되는 채팅 메시지 역시 도 7과 같은 방식에 의해 미러링 서버의 미러링 게임 룸에 제공될 수 있다는 점은 당업자에게 있어 자명할 것이다. Although not shown in FIG. 7, it will be apparent to those skilled in the art that chat messages transmitted and received between players in the game room of the publisher server may also be provided to the mirroring game room of the mirroring server in the same manner as in FIG. 7.

도 8은 본 발명의 바람직한 일 실시예에 따른 특정 미러링 서버에서 장애가 발생할 경우 장애를 복구하는 과정에 대한 순서도이다. 8 is a flowchart illustrating a process of recovering from a failure when a failure occurs in a specific mirroring server according to an exemplary embodiment of the present invention.

도 8을 참조하면, 메시지 라우팅 서버에 서브스크라이버 그룹에 참가한 미러링 서버들 중 특정 미러링 서버에서 장애가 발생할 경우, 해당 미러링 서버는 메시지 라우팅 서버에 퍼블리서 서버에 생성되어 있으며 메시지 라우팅 서버를 통해 미러링 서버들에 게임 룸 정보를 제공하고 있는 게임 룸들에 대한 리스트를 요청한다(단계 800). Referring to FIG. 8, when a specific mirroring server fails among the mirroring servers participating in the subscriber group in the message routing server, the mirroring server is created in the publishing server in the message routing server and is mirrored through the message routing server. Request a list of game rooms that are providing game room information (step 800).

게임 룸 리스트 요청 메시지는 퍼블리서 그룹을 목적지 주소로 하며, 메시지 라우팅 서버는 퍼블리서 그룹에 참가한 퍼블리서 서버에 게임 룸 리스트 요청 메시지를 전달한다(단계 802). The game room list request message uses the publisher group as the destination address, and the message routing server delivers the game room list request message to the publisher server participating in the publisher group (step 802).

메시지 라우팅 서버로부터 게임 룸 리스트 요청 메시지를 수신한 퍼블리서 서버는 현재 미러링 서버들에 게임 룸 정보를 제공하고 있는 게임 룸들에 대한 정보를 검색한다(단계 804). Receiving the game room list request message from the message routing server, the publisher server retrieves information about game rooms currently providing game room information to the mirroring servers (step 804).

또한, 퍼블리서 서버는 검색된 게임 룸에서 진행되고 있는 게임 각각에 대해 히스토리 데이터를 생성한다(단계 806). 여기서 히스토리 데이터는 미러링 서버가 현재 게임 진행 상황을 반영할 수 있도록 장애 발생 전에 진행된 게임 진행 히스토리가 기록된 데이터를 의미한다. 예를 들어, 바둑 게임의 경우 히스토리 데이터는 바둑의 기보 데이터일 수 있으며, 전략 시뮬레이션 게임의 경우 플레이어들간에 교환된 게임 커맨드 데이터일 수 있다. 물론 게임의 종류에 따라 이러한 히스토리 데이터의 생성이 불가능하거나 히스토리 데이터의 생성이 요구되지 않을 수도 있을 것이다. In addition, the publisher server generates history data for each game in progress in the retrieved game room (step 806). Here, the history data refers to data in which the game progress history that has been performed before the failure occurs so that the mirroring server can reflect the current game progress. For example, in the case of a Go game, the history data may be notation data of Go, and in the case of a strategy simulation game, the game command data may be exchanged between players. Of course, the generation of such historical data may be impossible or generation of historical data may not be required depending on the type of game.

퍼블리서 서버는 메시지 라우팅 서버에 게임 룸 리스트 정보 및 각 게임 룸에서의 게임 히스토리 데이터를 포함하는 메시지를 메시지 라우팅 서버에 전송한다(단계 808). The publisher server sends to the message routing server a message containing game room list information and game history data in each game room (step 808).

메시지 라우팅 서버는 퍼블리서 서버로부터의 메시지를 서브스크라이버 그룹에 참가하고 있는 모든 미러링 서버에 전송한다(단계 810). 서브스크라이버 그룹에 참가하고 있는 미러링 서버들 중 하나의 미러링 서버에만 장애가 발생하더라도 메시지 라우팅 서버의 전송 원칙에 따라 서브스크라이버 그룹에 참가하고 있는 모든 미러링 서버에 전송한다. The message routing server sends a message from the publisher server to all mirroring servers participating in the subscriber group (step 810). Even if only one of the mirroring servers participating in the subscriber group fails, the message is transmitted to all mirroring servers participating in the subscriber group according to the transmission principle of the message routing server.

메시지 라우팅 서버로부터 게임 룸 리스트 및 히스토리 데이터 메시지를 수신한 미러링 서버들 중 게임 룸 리스트를 요청하지 않은 미러링 서버들은 수신된 메시지를 무시한다. 게임 룸 리스트를 요청한 미러링 서버는 수신한 게임 룸 리스트 및 히스토리 데이터에 기초하여 미러링 룸을 다시 생성한다(단계 812). Among the mirroring servers that receive the game room list and history data messages from the message routing server, the mirroring servers that do not request the game room list ignore the received message. The mirroring server requesting the game room list re-creates the mirroring room based on the received game room list and history data (step 812).

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

이상에서 설명한 바와 같이, 본 발명의 서버 미러링 시스템 및 방법의 바람직한 실시예에 따르면, 최소의 트래픽으로 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있으며, 비교적 간단한 로직을 가진 메시지 라우팅 서버를 이용하여 특정 서버에 생성된 채널을 다른 서버에 미러링할 수 있는 장점이 있다.As described above, according to a preferred embodiment of the server mirroring system and method of the present invention, a channel created in one server with a minimum traffic can be mirrored to another server, and a message routing server having relatively simple logic can be used. Therefore, the channel created in one server can be mirrored to another server.

또한, 본 발명의 바람직한 실시예에 따르면, 특정 서버에 접속한 사용자가 다른 서버에 생성된 채널의 상황을 모니터링할 수 있으며, 바둑, 전략 시뮬레이션과 같은 게임에서 다른 서버에서 진행되고 있는 게임 상황을 관전할 수 있는 장점이 있다. In addition, according to a preferred embodiment of the present invention, a user connected to a specific server can monitor the status of the channel created on the other server, and watch the game status being progressed on the other server in the game such as Go, strategy simulation. There is an advantage to this.

Claims (14)

퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가사시키는 메시지 라우팅 서버;A message routing server for generating a publisher group and a subscriber group, and participating in one of the publisher group and the subscriber group in response to request information from a server; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 서버;At least one publisher server participating in the publisher group of the message routing server and maintaining a connection with the message routing server; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버를 포함하되,At least one mirroring server participating in the subscriber group of the message routing server and maintaining a connection with the message routing server, 상기 퍼블리서 서버는 채널이 생성될 경우, 채널 생성 메시지 및 상기 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 채널 생성 메시지 또는 상기 퍼블리서 서버 채널로 전송된 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전달하는 것을 특징으로 하는 서버 미러링 시스템. When a channel is created, the publisher server transmits a channel generation message and a message transmitted to the generated channel to the message routing server, and the message routing server sends the channel creation message or the publisher from the publisher server. And receiving the message transmitted through the server channel, and forwarding the received message to all the mirroring servers participating in the subscriber group. 제1항에 있어서,The method of claim 1, 상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 채널 생성 메시지를 수신할 경우, 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 생성하는 것을 특징으로 하는 서버 미러링 시스템. The at least one mirroring server, when receiving the channel generation message from the message routing server, server mirroring system, characterized in that for generating the same channel information included in the channel generation message. 제2항에 있어서,The method of claim 2, 상기 적어도 하나의 미러링 서버는, 상기 메시지 라우팅 서버로부터, 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 수신된 메시지를 상기 미러링 서버에 생성된 채널에 참가한 클라이언트들에 전송하는 것을 특징으로 하는 서버 미러링 시스템. When the at least one mirroring server receives a message transmitted from the message routing server to a channel of the publishing server, the at least one mirroring server transmits the received message to clients participating in a channel created at the mirroring server. Server mirroring system. 제1항에 있어서,The method of claim 1, 상기 퍼블리서 서버는 상기 메시지 라우팅 서버에 멀티캐스트 방식으로 상기 채널 생성 메시지 및 상기 퍼블리서 서버의 채널로 전송된 메시지를 전송하며, 상기 퍼블리서 서버로부터 상기 메시지 라우팅 서버로 전송되는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되는 것을 특징으로 하는 서버 미러링 시스템. The publisher server transmits the channel generation message and the message transmitted to the channel of the publisher server in a multicast manner to the message routing server, and the message transmitted from the publisher server to the message routing server is transmitted to the subscribing server. Server mirroring system, characterized in that the driver group is set to the destination address. 제2항에 있어서,The method of claim 2, 상기 적어도 하나의 미러링 서버 각각은 상기 메시지 라우팅 서버로부터 채널 생성 메시지를 수신할 경우 상기 퍼블리서 서버에 생성된 채널 번호와 상기 미러링 서버의 채널 번호를 매칭시키기 위한 매칭 테이블 또는 매칭 코드를 생성하는 것을 특징으로 하는 서버 미러링 시스템. When each of the at least one mirroring server receives a channel generation message from the message routing server, the at least one mirroring server generates a matching table or matching code for matching the channel number generated in the publisher server with the channel number of the mirroring server. Server mirroring system. 제1항에 있어서,The method of claim 1, 상기 적어도 하나의 퍼블리서 서버 및 상기 적어도 하나의 미러링 서버는 상기 메시지 라우팅 서버와 소켓을 통해 커넥션을 유지하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 서버로부터 상기 서브스크라이버 그룹에 참가한 미러링 서버로 전송될 메시지를 수신할 경우, 상기 소켓을 통해 상기 수신된 메시지를 서브스크라이버 그룹에 참가한 미러링 서버에 전송하는 것을 특징으로 하는 서버 미러링 시스템. The at least one publisher server and the at least one mirroring server maintain a connection with the message routing server through a socket, the message routing server being transmitted from the publisher server to a mirroring server participating in the subscriber group. When receiving a message, the server mirroring system, characterized in that for transmitting the received message to the mirroring server participating in the subscriber group through the socket. 제5항에 있어서,The method of claim 5, 상기 미러링 서버는, 상기 메시지 라우팅 서버로부터 상기 퍼블리서 서버의 채널로 전송된 메시지를 수신할 경우, 상기 메시지를 분석하여 상기 메시지와 관련된 퍼블리서 서버의 채널 번호를 판단하고, 상기 매칭 테이블 또는 매칭 코드를 이용하여 관련된 상기 미러링 서버에서의 채널 번호를 판단한 후 상기 메시지를 해당 채널에 제공하는 것을 특징으로 하는 서버 미러링 시스템. When the mirroring server receives a message transmitted from the message routing server to a channel of the publisher server, the mirroring server analyzes the message to determine a channel number of the publisher server related to the message, and the matching table or matching code. And determining the channel number in the related mirroring server using the system and providing the message to the corresponding channel. 제1항에 있어서,The method of claim 1, 상기 퍼블리서 서버 및 상기 미러링 서버는 게임 서버이며, 상기 채널은 게임 룸인 것을 특징으로 하는 서버 미러링 시스템. And the publishing server and the mirroring server are game servers, and the channel is a game room. 퍼블리서 그룹 및 서브스크라이버 그룹을 생성하며, 서버로부터의 요청 정보 에 상응하여 상기 퍼블리서 그룹 및 서브스크라이버 그룹 중 하나에 참가사키는 메시지 라우팅 서버;A message routing server that creates a publisher group and a subscriber group, and participates in one of the publisher group and the subscriber group in response to request information from the server; 상기 메시지 라우팅 서버의 퍼블리서 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 퍼블리서 게임 서버;At least one publisher game server participating in the publisher group of the message routing server and maintaining a connection with the message routing server; 상기 메시지 라우팅 서버의 서브스크라이버 그룹에 참가하여 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 게임 서버를 포함하되,At least one mirroring game server participating in the subscriber group of the message routing server and maintaining a connection with the message routing server, 상기 퍼블리서 게임 서버는 게임 룸이 생성될 경우, 게임 룸 생성 메시지 및 상기 생성된 게임 룸 내에서의 게임 진행 정보 메시지를 상기 메시지 라우팅 서버에 전송하며, 상기 메시지 라우팅 서버는 상기 퍼블리서 게임 서버로부터 상기 게임 룸 생성 메시지 또는 게임 진행 정보 메시지를 수신할 경우, 수신한 메시지를 상기 서브스크라이버 그룹에 참가한 모든 미러링 게임 서버들에 전달하는 것을 특징으로 하는 게임 서버의 게임 룸 미러링 시스템. When the game room is created, the publisher game server transmits a game room creation message and a game progress information message in the generated game room to the message routing server, and the message routing server is provided from the publisher game server. And upon receiving the game room creation message or game progress information message, forward the received message to all mirroring game servers participating in the subscriber group. 적어도 하나의 퍼블리서 서버 및 적어도 하나의 미러링 서버와 연결되어 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하기 위한 메시지 라우팅 서버로서,A message routing server connected to at least one publisher server and at least one mirroring server to mirror a channel created on the publisher server to the mirroring server. 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하며, 상기 퍼블리서 서버로부터 채널 생성 메시지 또는 상기 퍼블리의서 서버의에 채널로 전송된 메시지를 수신할 경우, 상기 퍼블리서 서버로부터 수신된 메시지-상기 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정됨-를 상기 서브스크라이버 그룹에 참가한 모든 미러링 서버에 전송하되, 상기 적어도 하나의 퍼블리서 서버와 상기 적어도 하나의 미러링 서버와 소켓을 통해 커넥션을 유지하는 것을 특징으로 하는 메시지 라우팅 서버. Create a publisher group in which the at least one publisher server joins and a subscriber group in which the at least one mirroring server joins, and send a channel creation message from the publisher server or a channel to the publisher's server. When receiving the received message, the message received from the publisher server, wherein the message is set to the destination address of the subscriber group, to all the mirroring servers participating in the subscriber group, wherein the at least one Message routing server, characterized in that for maintaining a connection through a socket server and the at least one mirroring server. 적어도 하나의 퍼블리서 서버, 적어도 하나의 미러링 서버 및 상기 적어도 하나의 퍼블리서 서버 및 미러링 서버와 커넥션을 유지하는 메시지 라우팅 서버를 포함하는 시스템에서 상기 퍼블리서 서버에 생성된 채널을 상기 미러링 서버에 미러링하는 방법으로서,Mirror a channel created in the publisher server to the mirroring server in a system including at least one publisher server, at least one mirroring server and a message routing server maintaining a connection with the at least one publisher server and the mirroring server As a way to, 상기 퍼블리서 서버에서 채널이 생성될 경우, 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버에 전송하는 단계(a);When a channel is created in the publisher server, transmitting a channel creation message and a message transmitted in the channel created in the publisher server to the message routing server; 상기 메시지 라우팅 서버에서 상기 퍼블리서 서버로부터 전송된 상기 채널 생성 메시지 및 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 상기 메시지 라우팅 서버와 커넥션을 유지하는 적어도 하나의 미러링 서버에 전송하는 단계(b); 및Transmitting, by the message routing server, the channel generation message transmitted from the publisher server and the message transmitted on the channel generated by the publisher server to at least one mirroring server maintaining a connection with the message routing server (b). ); And 상기 미러링 서버가 상기 메시지 라우팅 서버로부터 채널 생성 메시지 또는 상기 퍼블리서 서버에 생성된 채널로 전송되는 메시지를 수신할 경우, 상기 미러링 서버에서 수신된 메시지의 종류에 상응하는 미리 설정된 미러링 프로세스를 수행하는 단계(c)를 포함하는 것을 특징으로 하는 서버 미러링 방법. When the mirroring server receives a channel generation message from the message routing server or a message transmitted to a channel created in the publisher server, performing a preset mirroring process corresponding to the type of message received by the mirroring server (c) server mirroring method comprising a. 제11항에 있어서,The method of claim 11, 상기 메시지 라우팅 서버는 상기 적어도 하나의 퍼블리서 서버가 참가하는 퍼블리서 그룹 및 상기 적어도 하나의 미러링 서버가 참가하는 서브스크라이버 그룹을 생성하고, 상기 퍼블리서 서버가 상기 메시지 라우팅 서버에 전송하는 메시지는 상기 서브스크라이버 그룹이 목적지 주소로 설정되며, 상기 메시지 라우팅 서버는 상기 서브스크라이버 그룹에 참가한 적어도 하나의 미러링 서버에 퍼블리서 서버로부터의 메시지를 전송하는 것을 특징으로 하는 서버 미러링 방법. The message routing server creates a publisher group in which the at least one publisher server joins and a subscriber group in which the at least one mirroring server joins, and the message that the publisher server sends to the message routing server And the subscriber group is set as a destination address, and the message routing server transmits a message from a publisher server to at least one mirroring server participating in the subscriber group. 제11항에 있어서,The method of claim 11, 상기 메시지 라우팅 서버로부터 상기 적어도 하나의 미러링 서버로 전송되는 메시지가 채널 생성 메시지일 경우, 상기 단계(c)의 미리 설정된 프로세스는 상기 채널 생성 메시지에 포함된 채널 정보와 동일한 채널을 상기 미러링 서버가 생성하는 것임을 특징으로 하는 서버 미러링 방법.If the message transmitted from the message routing server to the at least one mirroring server is a channel generation message, the preset process of step (c) may cause the mirroring server to generate the same channel as the channel information included in the channel generation message. Server mirroring method characterized in that. 제13항에 있어서,The method of claim 13, 상기 메시지 라우팅 서버로부터 상기 적어도 하나의 미러링 서버로 전송되는 메시지가 상기 퍼블리서 서버의 채널로 전송된 메시지일 경우, 상기 단계(c)의 미리 설정된 프로세스는 상기 수신된 메시지를 상기 미러링 서버의 채널에 참가한 클라이언트들에 전송하는 것임을 특징으로 하는 서버 미러링 방법. If the message sent from the message routing server to the at least one mirroring server is a message sent to the channel of the publishing server, the preset process of step (c) sends the received message to the channel of the mirroring server. Server mirroring method characterized in that the transmission to the participating clients.
KR1020060028908A 2006-03-30 2006-03-30 Server Mirroring System and Method KR100775132B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060028908A KR100775132B1 (en) 2006-03-30 2006-03-30 Server Mirroring System and Method
JP2009502686A JP5044638B2 (en) 2006-03-30 2007-03-30 Server mirroring method and system
PCT/KR2007/001574 WO2007114606A1 (en) 2006-03-30 2007-03-30 Server mirroring method and system therefor
CN2007800113366A CN101410822B (en) 2006-03-30 2007-03-30 Server mirroring method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060028908A KR100775132B1 (en) 2006-03-30 2006-03-30 Server Mirroring System and Method

Publications (2)

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

Family

ID=38804056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060028908A KR100775132B1 (en) 2006-03-30 2006-03-30 Server Mirroring System and Method

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048313A (en) * 2013-10-25 2015-05-07 주식회사 다음카카오 Method and system for broadcasting content based on channel

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103816662A (en) * 2014-02-26 2014-05-28 深圳第七大道网络技术有限公司 Method and system for merging main game zone and auxiliary game zone
KR101721418B1 (en) 2015-06-25 2017-03-30 김민호 Reverse system of server and client

Family Cites Families (6)

* 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 (en) * 2000-02-17 2001-09-01 박선은 System and method for providing internet games
CN1234074C (en) * 2003-06-09 2005-12-28 四川大学 Mirror method for files based on Internet
KR20050055543A (en) * 2003-12-08 2005-06-13 인터뱅크 주식회사 System and method for relaying game service
CN1797391A (en) * 2004-12-24 2006-07-05 许继集团有限公司 Interface of visuable management system for automatic system of electric power, and management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048313A (en) * 2013-10-25 2015-05-07 주식회사 다음카카오 Method and system for broadcasting content based on channel

Also Published As

Publication number Publication date
CN101410822B (en) 2012-07-04
CN101410822A (en) 2009-04-15
KR100775132B1 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
CN112788358B (en) Video live broadcast method, video sending method, device and equipment for game match
JP3964905B2 (en) Method and system for managing participant devices in an online session
US5838909A (en) Reducing latency when synchronizing access to a multi-user database over a network
JP5129940B2 (en) Role play system
US6128660A (en) Network match maker
US20050245317A1 (en) Voice chat in game console application
US20110269551A1 (en) Computer-based gaming teams
US20100317430A1 (en) Discovery and Distribution of Game Session Information
JP2007505673A (en) Game system using network
JP2008544684A (en) User log information management method and system using location servers belonging to a plurality of groups
JP2007509405A (en) Island Recovery in a Peer-to-Peer Relay Network
JP2009526598A (en) Flash game invitation system and method using URL
CN102209105A (en) System for synchronous and asynchronous game patterns
JP2023508061A (en) ACCOUNT ACCESS METHOD AND DEVICE, STORAGE MEDIUM, AND ELECTRONIC DEVICE
JP2005509228A (en) Inter-user communication module and processing
KR20000060795A (en) A multiplayer game service system architecture and method on the internet
KR100775132B1 (en) Server Mirroring System and Method
US20230302370A1 (en) Voice playing method, voice transmission method, apparatuses, and electronic device
JP5044638B2 (en) Server mirroring method and system
KR100810757B1 (en) Game Broadcasting System Using Server Mirroring
JP2005267347A (en) Virtual space sharing device
Jiang et al. Peer-to-peer aoi voice chatting for massively multiplayer online games
KR100813109B1 (en) Method for Providing Multi-play Game Service in On-line Flash Game and Readable Medium for the Same
JP7355554B2 (en) Information processing device and chat method
KR100498801B1 (en) Apparatus and method for on-line game service using voice conference function

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