Description SERVER MIRRORING METHOD AND SYSTEM THEREFOR
Technical Field
[1] The present invention relates to a server mirroring method and system therefor, and more particularly, to a method of mirroring channel information generated in a specific server to another server and system therefor. Background Art
[2] As the number of Internet users is continuously increasing, a server load is becoming one of most fundamental problems of an Internet service. In particular, in a system in which a plurality of users accesses a server, such as an online game service system or a chatting service system, the server load problem becomes severe. As a general method of solving the server load problem, the number of server increases as the number of users increases.
[3] FIG. 1 is a view showing an example of a general service providing system using a plurality of servers. When a single server cannot receive users, an Internet service is provided using a plurality of servers 110, 120 and 130 as shown in FIG. 1.
[4] However, in a conventional system for solving the server load problem using the plurality of servers, the action range of a user is restricted to the server accessed by the user. That is, users 111 and 112 who access a first server 110 cannot participate in a channel generated in a second server 120 and monitor the state of the channel generated in the second server 120.
[5] Hereinafter, such problems will be described in detail using an online game service system.
[6] Recently, with the development of game technologies, a culture for watching games is catching on, like watching sports events. In particular, as a user's interest in watching a game in a strategy simulation game such as StarCraft or a baduk game increases, watching games becomes as important an element as the play of a game. Accordingly, new systems for broadcasting games are being developed.
[7] Initially, a method of photographing a game play state using a camera and broadcasting the game play state is mainly used. However, in this method, only TV viewers can watch the game. Accordingly, a system for allowing all users to watch a game using computers is required.
[8] In a game broadcasting system for allowing users to watch a game using computers, a server load problem is caused. When a plurality of users accesses a game server in order to watch a game, a game watching service is provided to only a predetermined number of users due to the limitation of server capacity.
[9] FIG. 2 is a view showing an example of a general game broadcasting system.
[10] In an online game service which can be accessed by a plurality of users, a user chooses one of a plurality of servers 210, 220 and 230 and plays or watches a game in the selected server. [11] For example, when a user accesses a first game server 210, the user can communicate with only users who access the first game server 210 and play or watch a game only in a game room generated in the first game server 210. [12] That is, the user who accesses the first game server 210 cannot participate in a game room generated in a second game server 220 and watch a game which is played in the game room generated in the second server 220. [13] Accordingly, for example, when professional baduk players play a baduk game in the first game server 210 and a specific commentator explains the game play state, users who access the second game server 220 and the third game server 230 cannot watch the game play state and listen to the explanation of the commentator in the first game server 210. [14] In order to solve such a problem, the game play state of the first game server 210 may be transmitted from the first game server 210 to the second game server 220 and the third game server 230. However, in this case, traffic rapidly increases and a control server for transmitting the game play state should be included. The control server includes a complicated logic. [15] Such a problem may occur in a system for providing a service via an independent channel as well as in the game broadcasting system.
Disclosure of Invention
Technical Problem
[16] Therefore, the present invention has been made in view of the above problems, and it is an object of the present invention to provide a sever mirroring method and system for mirroring a channel generated in a specific server to another server with minimum traffic.
[17] It is another object of the present invention to provide a server mirroring method and system for mirroring a channel generated in a specific server to another server using a message routing service having a relatively simple logic.
[18] It is another object of the present invention to provide a server mirroring method and system capable of allowing a user who accesses a specific server to monitor the state of a channel generated in another server.
[19] It is another object of the present invention to provide a game broadcasting method and system capable of allowing a plurality of users to watch a game without the limitation of server capacity.
[20] It is another object of the present invention to provide a game broadcasting method and system capable of allowing users who access a server, in which a game is not played, to receive a game play state and the explanation of a commentator by using server mirroring.
[21] It is another object of the present invention to provide a game broadcasting method and system capable of solving a server load problem by performing server mirroring using a message routing server having a relatively simple logic, when broadcasting a game. Technical Solution
[22] In accordance with an aspect of the present invention, the above and other objects can be accomplished by the provision of a server mirroring method including: receiving a channel generation request; generating a first channel in a publisher server on the basis of the channel generation request; generating a second channel in at least one mirroring server on the basis of channel generation information of the first channel; and changing the state of the second channel on the basis of channel state change information of the first channel.
[23] The generating of the second channel may include generating the second channel in the at least one mirroring server which is registered in a message routing server as a member of a subscriber group, on the basis of the channel generation information of the first channel.
[24] The channel generation information of the first channel may contain a first channel number, and the generating of the second channel may include generating a second channel number corresponding to the second channel, and generating a matching table or a matching code for matching the first and second channel numbers.
[25] The changing of the state of the second channel may include transmitting the channel state change information of the first channel to the at least one mirroring server registered in the message routing server as a member of the subscriber group and changing the state of the second channel.
[26] The server mirroring method may further include generating history data of the first channel when a failure occurs in the mirroring server; and generating a third channel in the mirroring server in which the failure occurs, on the basis of the history data of the first channel.
[27] The first and second channels may be game rooms or chatting rooms.
[28] In accordance with another aspect of the present invention, there is provided a server mirroring method including: registering at least one mirroring server as a member of a subscriber group; receiving information about a channel generated in a publisher server; and transmitting the information about the channel to the subscriber
group.
[29] The transmitting of the information about the channel may include transmitting the information about the channel to all mirroring servers which are registered as the members of the subscriber group.
[30] The information about the channel may contain channel generation information and channel state change information, and the channel may be a game room or a chatting room.
[31] In accordance with another aspect of the present invention, there is provided a server mirroring method including: receiving a game room generation request; generating a first game room in a publisher server on the basis of the game room generation request; generating a second game room in a mirroring server which is registered in a message routing server as a member of a subscriber group, on the basis of game room generation information of the first game room; and transmitting game play information of the first game room to the mirroring server via the message routing server.
[32] The sever mirroring method may further include receiving moving-picture streaming data from a game commentator; and providing the moving-picture streaming data to a game watcher.
[33] The moving-picture streaming data may be received from the game commentator via at least two broadcast servers and may be provided to the game watcher via a broadcast server having a lowest load between the at least two broadcast servers.
[34] The generating of the second game room may include generating a virtual dummy player who is recognized as a main element for generating the second game room.
[35] The sever mirroring method may further include deleting the first game room when all users of the first game room leave the first game room; deleting the dummy player of the second game room after deleting the first game room; and deleting the second game room when all users of the second game room including the dummy player leave the second game room.
[36] In accordance with another aspect of the present invention, there is provided a server mirroring system including: a publisher server which receives a channel generation request, generates a first channel on the basis of the channel generation request, and generates channel generation information and channel state change information of the first channel; a message routing server which receives the channel generation information and the channel state change information of the first channel from the publisher server; and mirroring servers which are registered in the message routing server as a member of a subscriber group, receive the channel generation information and the channel state change information of the first channel from the message routing server, generate a second channel on the basis of the channel
generation information of the first channel, and change the state of the second channel on the basis of the channel state change information of the first channel.
[37] The message routing server may transmit the channel generation information and the channel state change information of the first channel to all the mirror servers registered as the members of the subscriber group.
[38] The sever mirroring system may further include a broadcast server system which receives moving-picture streaming data from a game commentator client and transmits the moving-picture streaming data to game watcher clients which access the first and second channels, if the first and second channel are game rooms.
[39] The broadcast server system may include an access control server, and the access control server may specify at least two broadcast servers which will receive the moving-picture streaming data from the game commentator client and specify only one of the at least two broadcast servers as a server for transmitting the moving-picture streaming data to the game watcher clients.
Advantageous Effects
[40] According to the server mirroring method and system of the present invention, a user or manager who accesses a specific server can monitor the state of a channel generated in another server with minimum traffic, and a channel generated in a specific server can be mirrored to another server using a message routing server having a relatively simple logic.
[41] In particular, a game which is played in a game room generated in a specific game server can be watched by users who access another server without excessive traffic.
[42] The server mirroring method according to the present invention may be used even when game managers monitor the state of a game room of a specific server. The game managers can monitor the state of the game room without directly accessing the game room in order to monitor foul play by mirroring the game room to a server accessed by the manager.
[43] In addition, the server mirroring method according to the present invention may be used to allow a user who accesses a specific chatting server to monitor the chatting state of a chatting room generated in other chatting server. Brief Description of the Drawings
[44] The above and other objects, features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
[45] FIG. 1 is a view showing an example of a general service providing system using a plurality of servers;
[46] FIG. 2 is a view showing an example of a general game broadcasting system;
[47] FIG. 3 is a view showing the configuration of a server mirroring system according to a preferred embodiment of the present invention;
[48] FIG. 4 is a view showing the configuration of a game broadcasting system using server mirroring according to a preferred embodiment of the present invention;
[49] FIG. 5 is a view showing groups generated in a message routing server according to a preferred embodiment of the present invention;
[50] FIG. 6 is a view showing a game play state and a game broadcasting state between a publisher game server and a mirroring game server;
[51] FIG. 7 is a view showing the configuration of a broadcast server system according to a preferred embodiment of the present invention;
[52] FIGS. 8 and 9 are flowcharts illustrating a method of generating a mirrored game room and a mirroring game room in a publisher game server and a mirroring game server;
[53] FIG. 10 is a flowchart illustrating a method of transmitting audio and video data for the explanation of a commentator to watcher clients of a publisher game server or a mirroring game server;
[54] FIGS. 11 and 12 are flowcharts illustrating a method of deleting a mirroring game room in a mirroring game server when a publisher game server deletes a game room;
[55] FIG. 13 is a flowchart illustrating a method of transmitting a game command exchanged in a game room of a publisher game server to a mirroring game server;
[56] FIG. 14 is a flowchart illustrating a method of restoring a failure which occurs in a specific mirroring server; and
[57] FIG. 15 is a conceptual view showing the transmission of a message of a publisher server to mirroring servers included in a subscriber group of a message routing server.
[58]
Best Mode for Carrying Out the Invention
[59] Hereinafter, a server mirroring system and method according to preferred embodiments of the present invention will be described with reference to the accompanying drawings.
[60] The present invention relates to a method and system for mirroring information about a specific channel generated in a server to another server. A chatting server for exchanging chatting messages among users or an online game server for allowing a plurality of users to play a game through competition or cooperation generates a plurality of channels therein and message packets transmitted by users who participate in a channel are transmitted to other users via the same channel. Such a channel is called a 'room'. A room generated in a game server is called a game room and a room generated in a chatting server is called a chatting room. The present invention is
applicable to a server for generating a channel and processing the requests of users, in addition to the game server or the chatting server. Hereinafter, the term 'channel' or 'room' is used in the general description of the present invention and the term 'game room' or 'chatting room' is used when the present invention is described using an online game or a chatting service.
[61] FIG. 3 is a view showing the configuration of a server mirroring system according to a preferred embodiment of the present invention.
[62] Referring to FIG. 3, the server mirroring system according to the embodiment of the present invention may include a message routing server 340 and a plurality of servers 310, 320 and 330. A plurality of clients 311, 312, 321, 322, 331 and 332 is connected to the plurality of servers over a network (not shown).
[63] The first server 310, the second server 320, and the third server 330 independently generate respective channels. The clients 311, 312, 321, 322, 331 and 332 participate in the channels generated in the servers connected with the respective clients.
[64] In FIG. 3, the channel generated in the first server 310 is mirrored to the second server 320 and the third server 330. A server having a channel to be mirrored, for example, the first server 310, is called a publisher server and a server to which the channel of other server is mirrored, for example, the second server 320 or the third server 330, is called a mirroring server.
[65] The first server 310 functioning as the publisher server receives the request of a user and generates a channel which can be mirrored to another server. Information about the channel generated in the first server 310 (hereinafter, referred to as 'channel generation information') is transmitted to the message routing server 340. The channel generation information may contain information about a user who participates in the channel and/or the type of the channel.
[66] The first server 310 transmits information about the state of the generated channel to the message routing server 340. The information about the state of the channel or the change of the state (hereinafter, referred to as 'channel state change information') may contain game play information, for example, game command information for playing a game, if the channel is an online game room and contain a chatting message if the channel is a chatting room.
[67] The present invention uses the message routing server 340 in order to simplify the communication between the servers for mirroring the channel. The message routing server 340 receives the channel generation information and the channel state change information from the first server 310 and provides them to the second server 320 and the third server 330.
[68] FIG. 4 is a view showing the configuration of a game broadcasting system using server mirroring according to a preferred embodiment of the present invention.
[69] Referring to FIG. 4, the game broadcasting system using the server mirroring according to the embodiment of the present invention may include a plurality of game servers 410, 420 and 430, a message routing server 440, and a broadcast server system 450. The game broadcasting system using server mirroring according to the embodiment of the present invention further includes a plurality of user clients 411, 412, 421, 422, 431 and 432 connected thereto over a network.
[70] A game which is played in a specific game room of the game server may include various types of online games which are played through competition or cooperation of the users. For example, the game broadcasted by the present invention may be a game such as baduk or janggi or a real-time strategy simulation game such as StarCraft or WarCraft. In addition, various types of board games or war games may be used in the game broadcasting system according to the present invention.
[71] In the present invention, a method of allowing users who does not access a game server having a game room for playing a game to watch the game using server mirroring is suggested. According to the present invention, for example, when a game is played and broadcasted in a specific game room of the first game server 410, users who access the second game server 420 and the third game server 430 can also watch the game which is played in the specific game room of the first game server 410.
[72] According to the preferred embodiment of the present invention, it is possible to allow the users who access other server to watch a game via a game room, which is generated in the accessed server by mirroring, (hereinafter, referred to as a "mirroring game room") by mirroring a game room of a specific server to the other server. In general, players who play the game, a commentator who explains the game of the players, and watchers who watch the game and listen to the explanation of the game participate in the game room in which the game is played and broadcasted. The users who participate in the mirroring game room of the other server may receive a game play state of the players and the explanation of the commentator as if the users participate in the game room in which the game is played and broadcasted.
[73] In FIG. 4, the game room generated in the first game server 410 is mirrored to the second game server 420 and the third game server 430. A server having a game room to be mirrored to other game server, for example, the first game server 410, is called a publisher game server and a server to which the channel of other game server is mirrored, for example, the second game server 420 or the third game server 430, is called a mirroring game server.
[74] The first game server 410 which functions as the publisher game server receives a request for generating a game room to be mirrored to other server from a game player or a game commentator. The game player or the game commentator who requests the game room to be generated inputs information about the game room which is mirrored
to other server in order to broadcast the game when the game room is requested to be generated.
[75] The first game server 410 generates a game room to be mirrored to the other server in response to the game room generation request of the game player or the game commentator. A game room generator, game players, a commentator, and watchers participate in the generated game room.
[76] Information about the game room generated in the first game server 410
(hereinafter, referred to as "game room generation information") is transmitted to the message routing server 440. The game room generation information may contain the type of the game room, information about a user who participates in the game room, the title of the game room, and the number of the game room. The first game server 410 transmits information about a game play state of the generated game room (hereinafter, referred to as "game play information") to the message routing server 440. The game play information may contain game command information which is transmitted by the game players in order to play the online game. For example, when the game which is played in the first game server 410 is a baduk game, the game command information may be baduk record information. When the game which is played in the first game server 410 is a strategy simulation game, the game command information may contain a unit attack command and a unit movement command. The game play information may contain chatting messages which are exchanged among the players, commentator, and watchers who participate in the game room of the first game server 410.
[77] The preferred embodiment of the present invention uses the message routing server
440 in order to simplify the communication between the servers for mirroring the game room. The message routing server 440 provides a game room generation information message and a game play information message provided by the first game server 410 to the second game server 420 and the third game server 430.
[78] Meanwhile, audio and video information of the commentator is provided to the users who participate in the game room of the first game server 410 which functions as the publisher game server and users who participate in the mirroring game room of the second and third game servers 420 and 430 which function as the mirroring game server, via the broadcast server system 450.
[79] When the commentator participates in the game room of the first game server 410 which functions as the publisher game server, the commentator requests the broadcast server system 450 to transmit a broadcast ID for broadcasting moving-picture data for the explanation of the game, and the broadcast server system 450 provides address information of a broadcast server which will broadcast the audio and video information of the commentator and the broadcast ID for the explanation of the game.
[80] A module for coding the audio and video information of the commentator to moving-picture streaming data is included in a game application of the commentator and the moving-picture streaming data containing audio and video information of the commentator is transmitted to the broadcast server determined by the broadcast server system 450.
[81] The users who participate in the game room generated in the first game server 410 functioning as the publisher game server and the second and third game servers 420 and 430 functioning as the mirroring game room receive information about the broadcast ID for streaming the explanation information of the commentator from the respective game rooms.
[82] That is, according to the preferred embodiment of the present invention, the game play information such as baduk record information is transmitted to the mirroring game room generated in the mirroring game server via the message routing server 440 and the moving-picture streaming data for the explanation of the commentator is transmitted to the user clients which participate in the game room of the publisher game server and the mirroring game room of the mirroring game server via the broadcast server system 450.
[83] Accordingly, although the number of watchers of the first game server 410 exceeds the permission limitation of the server, other users can access the second game server 420 and the third game server 430 to watch the game.
[84] Hereinafter, the message routing server 340 according to the preferred embodiment of the present invention will be described. According to the preferred embodiment of the present invention, the message routing server 340 supports a function for managing a plurality of connections as a group.
[85] FIG. 5 is a view showing groups generated in the message routing server 340 according to the preferred embodiment of the present invention.
[86] Referring to FIG. 5, in the message routing server 340 according to the embodiment of the present invention, a subscriber group 520 and a publisher group 510 are generated. The subscriber group 520 includes mirroring servers to which the channel of the publisher server is mirrored and the publisher group 510 includes a publisher server for providing information about a channel to be mirrored.
[87] For example, in FIG. 3, a first server 310 which functions as the publisher server is registered in the publisher group 510 and the second and third servers 320 and 330 which function as the mirroring server are registered in the subscriber group 520.
[88] The first to third servers 310, 320 and 330 connected to the message routing server
340 is set to be included in one of the publisher group 510 and the subscriber group 520 of the message routing server 340 upon start-up of the server. The message routing server 340 includes the servers in the subscriber group 520 or the publisher group 510
according to the request of the connected servers.
[89] According to the preferred embodiment of the present invention, the first server 310 functioning as the publisher server provides information about a channel to be mirrored to the message routing server 340 in a multicast manner. The first server 310 functioning as the publisher server provides channel information containing only information indicating a message transmitted to the subscriber group 520 to the message routing server 340. That is, the message related to the channel information transmitted from the first server 310 to the message routing server 340 does not contain address information of the second and third servers 320 and 330 to which the channel info rmation will be mirrored and contains only the identification information of the subscriber group 520 to which the message will be transmitted.
[90] The message routing server 340 receives the message which will be transmitted from the first server 310 functioning as the publisher server to the subscriber group 520 and transmits the message received from the publisher server to all the mirroring servers which participate in the subscriber group 520. That is, the message routing server 340 receives the message from the first server 310 and transmits the message to the second and third servers 320 and 330 which participate in the subscriber group 520.
[91] The message routing server 340 determines whether the message is a message which will be transmitted to the servers of the subscriber group 520 or a message which will be transmitted to the servers of the publisher group 510, and transmits the received message to the servers of the publisher group 510 or the servers of the subscriber group 520. The message routing server 340 does not analyze, examine or control the received message.
[92] Accordingly, the message routing server 340 may have a simpler structure compared with control servers for exchanging information among the servers. In addition, since the message can be transmitted in a simple manner without specifying the receiver, message traffic can be also reduced.
[93] The second and third servers 320 and 330 functioning as the subscriber server receive the message related to the channel information, which is transmitted by the first server 310 functioning as the publisher server, from the message routing server 340 and analyze the message to perform channel mirroring.
[94] For example, when the message received from the first server 310 is a message containing the channel generation information, the second server 320 and the third server 330 analyze the message and generate the channel (hereinafter, referred to as a "mirroring channel") having the same condition as the information contained in the channel generation information. When the message received from the first server 310 is a message containing the state change information of the channel, the second server 320 and the third server 330 analyze the message and change the state of the mirroring
channel to the same state as the first server.
[95] FIG. 15 is a conceptual view showing the transmission of a message of a publisher server to mirroring servers included in a subscriber group of a message routing server.
[96] Referring to FIG. 15, a publisher server 1530 and mirroring servers 1510 and 1520 which respectively participate in a publisher group 510 and a subscriber group 520 of a message routing server are connected to the message routing server via a socket.
[97] As shown in FIG. 15, when the publisher server 1530 transmits a message to the mirroring servers 1510 and 1520 which participate in the subscriber group 520, the publisher server 1530 transmits the message to the subscriber group 520 as a destination in the multicast manner.
[98] The message routing server transmits the message received from the publisher server 1530 to the mirroring servers 1510 and 1520 via the sockets which are media for connecting to the mirroring servers 1510 and 1520 included in the subscriber group 520.
[99] Meanwhile, in the game broadcasting system using server mirroring, the first, second and third servers 310, 320 and 330 shown in FIG. 5 correspond to the first, second and third servers 410, 420 and 430 shown in FIG. 4, and the channel generation information and the channel state change information respectively indicate the game room generation information and the game play information.
[100] That is, the message routing server 440 receives the message which will be transmitted from the first game server 410 functioning as the publisher game server to the subscriber group 520 and transmits the message transmitted by the publisher game server to all the mirroring game servers which participate in the subscriber group 520. That is, the message routing server 440 transmits the message received from the first game server 410 to the second and third game servers 420 and 430 which participate in the subscriber group 520.
[101] The second and third game servers 420 and 430 functioning as the mirroring game server receive a game room related message, which is transmitted by the first game server 410 functioning as the publisher game server, from the message routing server 440, and analyze the message to perform game room mirroring.
[102] For example, when the message received from the first game server 410 is a message containing the game room generation information, the second game server 420 and the third game server 430 analyze the message and generate the game room having the same condition as the information contained in the game room generation information. When the message received from the first game server 410 is a message containing the game play information, the second game server 420 and the third game server 430 analyze the message and apply the state of the game played in the game room of the first game server to the mirroring game rooms.
[103] By the above-described configuration, if the broadcasted game is a baduk game, baduk record information of players and baduk record information for the explanation of a commentator are transmitted to the mirroring game rooms of the second game server 420 and the third game server 430 via the message routing server 440 and users who participate in the mirroring game rooms of the second game server 420 and the third game server 430 can receive the baduk record information of the players and the commentator of the game room of the first game server 410.
[104] FIG. 6 is a view showing a game play state and a game broadcasting state between a publisher game server and a mirroring game server.
[105] Referring to FIG. 6, a game room 610 of a publisher game server is generated by a player or a commentator and only users who access the publisher game server participate in the game room 610. Among the users who participate in the game room 610 of the publisher game server, players play a game while exchanging a game packet via the publisher game sever. The game may be a baduk game, a strategy simulation game or a board game. An application for playing the game is installed in a player client which accesses the publisher game server.
[106] The publisher game server is programmed such that information related to the game play state of the game room, such as the game room generation information, game command information exchanged while playing the game, and game room completion information, is transmitted to the subscriber group of the message routing server 440.
[107] When the game room 610 is generated in the publisher game server, the game room generation information is transmitted to a mirroring game server via the message routing server 440, and a game room 620 having the same condition as the game room 610 of the publisher game server is generated in the mirroring game server.
[108] In order to generate the same game room 620 as the publisher game server, the mirroring game server generates a virtual dummy player recognized as a main element for generating the game room. Since a player having a right for controlling the game room 620 is required when the game room 620 is generated, the dummy player is a player generated virtually. Since the dummy player has the same structure as a general player but is not connected to the client, it is preferable that the dummy player is configured such that data cannot be transmitted to or received from the dummy player.
[109] Users who access the mirroring game server participate in the game room 620 generated in the mirroring game server. When the game room generation message is transmitted from the publisher game server to the mirroring game server which participates in the subscriber group via the message routing server 440, the mirroring game server generates the mirroring game room 620 having the same condition as the game room information contained in the game room generation message. The mirroring game server contains the mirroring game room 620 together with the general
game room in a game room list and provides the game room list to the users, and the users who access the mirroring game server can participate in the mirroring game room 620.
[110] When a game is played in the game room 610 of the publisher game server, the game room 610 of the publisher game server transmits game play information to the message routing server 440, the message routing server 440 transmits the game play information to the mirroring game server which participates in the subscriber group, and the mirroring game server delivers the game play information to the game room 620. Accordingly, the users who participate in the mirroring game room 620 can watch the game which is played in the publisher game server.
[I l l] For example, when a baduk game is played in the game room 610 of the publisher game server, the record information generated by the players of the game room 610 of the publisher game server is transmitted to the game room 620 of the mirroring game server via the message routing server 440 in real time, and the game room 620 of the mirroring game server provides the received record information to the watchers who participate in the game room 620 of the mirroring game server to allow the watchers to watch the baduk game.
[112] FIG. 7 is a view showing the configuration of a broadcast server system according to a preferred embodiment of the present invention.
[113] Referring to FIG. 7, the broadcast server system according to the embodiment of the present invention may include an access control server 710 and a plurality of broadcast servers 720, 730 and 740.
[114] The access control server 710 receives broadcast ID request information from a commentator client 701 and provides the commentator client 701 with a broadcast ID and address information of the broadcast servers 720 and 730, which will receive moving-picture streaming data transmitted by the commentator client 701.
[115] Conventionally, when the commentator client makes a request for the broadcast ID, the access control server provided the address of one broadcast server which will receive moving-picture streaming data transmitted by the commentator client. In general, the access control server provided the address information of the broadcast server having a lowest load among the plurality of broadcast servers.
[116] However, according to the preferred embodiment of the present invention, the access control server 710 provides the address information of at least two broadcast servers 720 and 730 which will receive the moving-picture streaming data transmitted by the commentator client 701, and the commentator client 701 transmits the moving- picture streaming data to the two broadcast servers 720 and 730. As shown in FIG. 7, when the access control server 710 provides the address information of the first broadcast server 720 and the second broadcast server 730, the commentator client 701
transmits the moving-picture streaming data to the first broadcast server 720 and the second broadcast server 730.
[117] The address information may be an IP address and a port number of the broadcast server. It is apparent to those skilled in the art that other address information may be used.
[118] In general, about 2500 users can simultaneously access the broadcast server. If the number of users who access the broadcast server exceeds a maximum user number, a phenomenon that the streaming data is interrupted may occur. Accordingly, according to the preferred embodiment of the present invention, in order to prevent the interruption of the streaming data, the commentator client 701 transmits the moving- picture streaming data to a plurality of broadcast servers.
[119] The access control server 710 manages the IP address and the port number of the broadcast server corresponding to the broadcast ID and provides the IP address and the port number of the broadcast server corresponding to the broadcast ID to a watcher client 702 when the watcher client 702 make a request for the address information corresponding to the broadcast ID. The moving-picture streaming data of the commentator is transmitted to the two broadcast servers 720 and 730, but, between the broadcast servers 720 and 730, only the IP address and the port number of the broadcast server 730 is provided to the watcher client. The access control server 710 may provide the address information of the broadcast server 730 having a lower load between the broadcast servers 720 and 730.
[120] In FIG. 7, if it is determined that the load of the second broadcast server 730 is lower than that of the first broadcast server 720, the access control server 710 provides the address information of the second broadcast server 730 to the watcher client 702 and the watcher client 702 receives the moving-picture streaming data of the commentator from the second broadcast server 730.
[121] FIGS. 8 and 9 are flowcharts illustrating a method of respectively generating a mirrored game room and a mirroring game room in a publisher game server and a mirroring game server. FIG. 8 shows a case where a game player requests the publisher game server to generate a game room and FIG. 9 shows a case where a game commentator requests the publisher game server to generate a game room.
[122] Referring to FIG. 8, the game player requests the publisher game server to generate the game room via a client (step 810). The player may previously specify a game room which will be mirrored to other server. The publisher game server provides an interface for selecting whether the game room is mirrored to the other server or not when the game room is generated, and the game player may request the publisher game server to generate the game room, which will be mirrored to the other server, via the interface.
[123] The publisher game server generates the game room in response to the game room
generation request of the player client (step 820). The publisher game server transmits game room generation information to the player client after completing the generation of the game room (step 830), and the player client participates in the game room generated in the publisher game server (step 840).
[124] When the publisher game server participates in the publisher group of the message routing server and the mirroring game room is generated in the other server, the game room generation information is set to be transmitted to the subscriber group of the message routing server.
[125] The publisher game server transmits the game room generation message to the message routing server (step 850). The game room generation message may contain the title of the game room, the ID of the game room, and game room setting information. The destination address of the game room generation message is set to the subscriber group of the message routing server.
[126] The message routing server which receives the game room generation message transmits the game room generation message to the mirroring game server included in the subscriber group of the message routing server via the sockets (step 860).
[127] The mirroring game server included in the subscriber group of the message routing server receives the game room generation message and generates a virtual dummy player in order to generate the mirroring game room (step 870). As described above, the dummy player has the same structure as the general player, but is not connected to a client. Accordingly, data cannot be transmitted to or received from the dummy player.
[128] When the dummy player is generated, the mirroring game server generates the game room which has the same condition as the information contained in the received game room generation information and sets the dummy player as a game room generator (step 880). When the mirroring game room is generated in the mirroring game server, the number of the mirroring game room may be a number which is independently applied by the mirroring game server, a number which is previously prepared for the mirroring game room, or a number which is sequentially applied like a general game room. The mirroring game server manages a matching table or a matching code for matching the number of the game room of the publisher game server with the number of the mirroring game room such that the game room generated in the publisher game server and the mirroring game room are matched with each other.
[129] FIG. 9 is a flowchart illustrating a method of generating the mirroring game room when the game commentator requests the publisher gamer server to generate a game room.
[130] Referring to FIG. 9, the commentator client requests the publisher game server to generate a game room (step 911). The commentator may previously specify a game
room which will be mirrored to other server. The publisher game server provides an interface for selecting whether the game room is mirrored to the other server or not when the game room is generated, and the commentator may request the publisher game server to generate the game room, which will be mirrored to the other server, via the interface.
[131] The publisher game server generates the game room in response to the game room generation request of the commentator client (step 912). The publisher game server transmits game room generation information to the commentator client after completing the generation of the game room (step 913) and the commentator client participates in the game room generated in the publisher game server (step 914). After generating the game room, game players and watchers can participate in the generated game room.
[132] After the commentator participates in the game room, the commentator client requests a broadcast server system to provide a broadcast ID (step 921). The broadcast server system provides the broadcast ID and the address information of a broadcast server, which will receive moving-picture streaming data transmitted by the commentator client in correspondence with the broadcast ID, in response to the request for the broadcast ID of the commentator client (step 922). The commentator client transmits the moving-picture streaming data to the broadcast server (step 923).
[133] When the publisher game server participates in the publisher group of the message routing server and the mirroring game room is generated in the other server, the game room generation information is set to be transmitted to the subscriber group of the message routing server.
[134] The publisher game server transmits a message containing the game room generation information to the message routing server (step 915). The game room generation information may contain the title of the game room, the ID of the game room, game room setting information, and a broadcast ID (allocated from the broadcast server system to the commentator client). The destination address of the game room generation message is set to the subscriber group of the message routing server.
[135] The message routing server which receives the game room generation message transmits the game room generation message to the mirroring game server included in the subscriber group of the message routing server via the socket (step 916).
[136] The mirroring game server included in the subscriber group of the message routing server receives the game room generation message and generates a virtual dummy player in order to generate the mirroring game room (step 917). As described above, the dummy player has the same structure as the general player, but is not connected to a client. Accordingly, data cannot be transmitted to or received from the dummy player.
[137] When the dummy player is generated, the mirroring game server generates the game room which has the same condition as the information contained in the received game room generation information and sets the dummy player as a game room generator (step 918). The number of the mirroring game room may be a number which is independently applied by the mirroring game server, a number which is previously prepared for the mirroring game room, or a number which is sequentially applied like a general game room. The mirroring game server manages a matching table or a matching code for matching the number of the game room of the publisher game server and the number of the mirroring game room such that the game room generated in the publisher game server and the mirroring game room are matched with each other.
[138] FIG. 10 is a flowchart illustrating a method of transmitting audio and video data for the explanation of a commentator to watcher clients of a publisher game server or a mirroring game server.
[139] Referring to FIG. 10, when a commentator client participates in a game room mirrored to other server, the commentator client requests an access control server of a broadcast server system to provide a broadcast ID (step 1010).
[140] The access control server transmits the broadcast ID and the address information of a broadcast server to which the commentator client for requesting the broadcast ID will transmit moving-picture streaming data for the explanation, among a plurality of broadcast servers (step 1020). As described above, the access control server provides the address information of at least two broadcast servers.
[141] The commentator client receives the address information of the two broadcast servers from the access control server and transmits the moving-picture streaming data of the commentator to the first broadcast server and the second broadcaster server (steps 1030 and 1040). FIG. 10 is shown as if the moving-picture streaming data is sequentially transmitted to the first broadcast server and the second broadcast server, but the commentator client simultaneously transmits the moving-picture streaming data to the first broadcast server and the second broadcast server.
[142] Meanwhile, a watcher of the game room of the publisher game server or a watcher of a mirroring game room generated in a mirroring game server receives broadcast ID information of the commentator when participating in the game room (step 1050).
[143] The watcher client which receives the broadcast ID information requests the access control server to provide the address information of the broadcast server corresponding to the broadcast ID (step 1060).
[144] The access control server transmits the address information of one of the two broadcast servers corresponding to the broadcast ID to the watcher client (step 1070). As described above, it is preferable that the address information of the broadcast server having a lower load between the two broadcast servers is transmitted.
[145] When the access control server provides the address information of the second broadcast server, the watcher client requests the second broadcast server to transmit the moving-picture streaming data (step 1080), and the second broadcast server receives the moving-picture streaming data for the explanation from the commentator and transmits the moving-picture streaming data to the watcher client (step 1090).
[146] By the process of FIG. 10, the watchers who participate in the mirroring game room of the mirroring game server or the game room of the publisher game server can receive a moving picture for the explanation of the commentator.
[147] FIGS. 11 and 12 are flowcharts illustrating a method of deleting a mirroring game room in a mirroring game server when a publisher game server deletes a game room. FIG. 11 shows a case where a game commentator does not participate in a mirrored game room and FIG. 12 shows a case where the game commentator participates in the mirrored game room.
[148] Referring to FIG. 11, a player client which participates in a game room generated in a publisher game server makes a request to leave the game room (step 1110). When all players who participate in the game room generated in the publisher game server leave the game room, the publisher game server deletes the game room (step 1120).
[149] When a specific player leaves a game room mirrored to a mirroring game server, the publisher game server transmits a message that the player leaves the game room to a message routing server and transmits a deletion message to the message routing server when the game room is deleted (step 1130).
[150] A message which contains information indicating that a specific player leaves the game room and/or game room deletion information is transmitted to a subscriber group of the message routing server. The message routing server transmits the message to a mirroring game server connected to the subscriber group of the message routing server via the socket (step 1140).
[151] The mirroring game server determines the number of the mirroring game room corresponding to the number of the game room contained in the message. The number of the mirroring game room corresponding to the number of the game room of the publisher game server may be determined using the matching table or the matching code. The mirroring game server finds the mirroring game room using the number of the mirroring game room. If information indicating that a player who generates the publisher game server leaves the game room is contained in the received message, the mirroring game server deletes a dummy player corresponding to the number of the mirroring game room (step 1150).
[152] When all users including the dummy player leave the mirroring game room generated in the mirroring game server, the mirroring game server deletes the mirroring game server (step 1160).
[153] FIG. 12 is the flowchart illustrating the method of deleting the mirroring game room in the mirroring game server when the publisher game server deletes the game room, in the case where the game commentator participates in the game room.
[154] Referring to FIG. 12, a commentator client which participates in the game room generated in the publisher game server makes a request to leave the game room (step 1210). When all users including game players, who participate in the game room generated in the publisher game server, leave the game room, the publisher game server deletes the game room (step 1220).
[155] When the game room is deleted, a process of transmitting moving-picture streaming data for the explanation of the commentator to a broadcast server is interrupted (step 1230).
[156] When a specific user who participates in the game room leaves the game room, the publisher game server transmits a message that the user leaves the game room to the message routing server, and transmits a deletion message to the message routing server when the game room is deleted (step 1240). The information indicating that the specific user leaves the game room may contain information about the number of the deleted game room.
[157] The publisher game server transmits a message which contains information indicating that the specific user leaves the game room and/or game room deletion information to a subscriber group of the message routing server, and the message routing server transmits the message to a mirroring game server connected to the subscriber group of the message routing server via the socket (step 1250).
[158] The mirroring game server determines the number of the game room of the mirroring game server corresponding to the number of the game room contained in the message. The number of the mirroring game room corresponding to the number of the game room of the publisher game server may be determined using the matching table or the matching code. If the user who leaves the game room of the publisher game server is the commentator who generates the game room, the mirroring game server deletes a dummy player corresponding to the number of the mirroring game room (step 1260). When all users including the dummy player leave the mirroring game room generated in the mirroring game server, the mirroring game server deletes the mirroring game server (step 1270).
[159] FIG. 13 is a flowchart illustrating a method of transmitting a game command exchanged in a game room of a publisher game server to a mirroring game server such that a game play state of the game room of the publisher game server is reproduced in the mirroring game room of the mirroring game server.
[160] Referring to FIG. 13, a player client which participates in the game room of the publisher game server transmits a game command message to the publisher game
server (step 1310). The game command may contain all game commands of a variety of games. For example, the game command of a baduk game may be the record information of a specific player and the game command of a strategy simulation game may be a command for moving a specific unit.
[161] If the game played in the game room of the publisher game server is a turn type game such as a baduk game or a board game, the game command may contain information about the sequence of commands. If the game played in the game room of the publisher game server is a real-time strategy simulation game, the game command may contain time information.
[162] The game command message contains information about the number of the game room of the publisher game server which receives the game command message from the player client.
[163] The publisher game server which receives the game command message from the player client transmits the received game command message to the message routing server (step 1320).
[164] The message routing server transmits the game command message to the mirroring game server included in the subscriber group of the message routing server via the socket (step 1330).
[165] The mirroring game server which receives the game command message from the message routing server analyzes the game command message and determines the number of the mirroring game room related to the received game command (step 1340).
[166] The mirroring game server delivers the game command message received from the message routing server to the mirroring game room corresponding to the number of the mirroring game room (step 1350). The mirroring game server delivers the game command to user clients including watchers who participate in the mirroring game room, and game applications installed in the user clients which receive the game command perform a game process corresponding to the received command. By the method of FIG. 13, the users who participate in the mirroring game room of the mirroring game server can watch the same game as the game played in the game room of the publisher game server.
[167] Although not shown in FIG. 13, it is apparent to those skilled in the art that a chatting message transmitted/received between the players in the game room of the publisher game server can be provided to the mirroring game room of the mirroring game server by the method of FIG. 13.
[168] FIG. 14 is a flowchart illustrating a method of restoring a failure which occurs in a specific mirroring server.
[169] Referring to FIG. 14, when a failure occurs in a specific mirroring server among
mirroring servers which participate in a subscriber group of a message routing server, the mirroring server requests the message routing server to transmit a list of rooms or channels, which are generated in the publisher server to provide information to the mirroring servers via the message routing server (step 1410).
[170] The destination address of a room list request message is a publisher group. The message routing server delivers the room list request message to the publisher server which participates in the publisher group (step 1420).
[171] The publisher server which receives the room list request message from the message routing server searches information about the rooms for providing the information to the mirroring servers (step 1430).
[172] The publisher server generates history data indicating the generation of the searched rooms and the state change of the searched rooms (step 1440). If the searched room is the game room, game history data of the game which is being played in the game room is generated. The game history data indicates data for the history of the game played before the failure occurs, in order to allow the mirroring server to accurately provide a current game play state to watchers. For example, the game history data of a baduk game may be the record data of the baduk game and the game history data of a strategy simulation game may be game command data exchanged among players. The game history data may not be generated or the game history data may not be requested to be generated according to the type of the game.
[173] The publisher server transmits a message containing room list information and history data of each room to the message routing server (step 1450).
[174] The message routing server transmits the message received from the publisher server to all the mirroring servers which participate in the subscriber group (step 1460). Although a failure occurs in only one of the mirroring servers included in the subscriber group, the message is transmitted to all the mirroring servers included in the subscriber group according to the transmission rule of the message routing server.
[175] Among the mirroring servers which receive the message containing the room list information and the history data of each room from the message routing server, mirroring servers which do not request the list of rooms ignores the received message. The mirroring server which requests the list of rooms regenerates the mirroring room on the basis of the room list information and the history data of each room (step 1470). Industrial Applicability
[176] The server mirroring method according to the present invention may be used even when game managers monitor the state of a game room of a specific server. The game managers can monitor the state of the game room without directly accessing the game room in order to monitor foul play, by mirroring the game room to a server accessed
by the manager.
[177] In addition, the server mirroring method according to the present invention may be used to allow a user who accesses a specific chatting server to monitor the chatting state of a chatting room generated in other chatting server.
[178] Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.