WO2007114606A1 - Server mirroring method and system therefor - Google Patents

Server mirroring method and system therefor Download PDF

Info

Publication number
WO2007114606A1
WO2007114606A1 PCT/KR2007/001574 KR2007001574W WO2007114606A1 WO 2007114606 A1 WO2007114606 A1 WO 2007114606A1 KR 2007001574 W KR2007001574 W KR 2007001574W WO 2007114606 A1 WO2007114606 A1 WO 2007114606A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
game
channel
mirroring
room
Prior art date
Application number
PCT/KR2007/001574
Other languages
French (fr)
Inventor
Yangsoo An
Sung Soo Park
Original Assignee
Nhn Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020060028908A external-priority patent/KR100775132B1/en
Priority claimed from KR1020060029911A external-priority patent/KR100810757B1/en
Application filed by Nhn Corporation filed Critical Nhn Corporation
Priority to CN2007800113366A priority Critical patent/CN101410822B/en
Priority to JP2009502686A priority patent/JP5044638B2/en
Publication of WO2007114606A1 publication Critical patent/WO2007114606A1/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/51Server architecture
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/577Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for watching a game played by other players

Definitions

  • 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.
  • FIG. 1 is a view showing an example of a general service providing system using a plurality of servers.
  • an Internet service is provided using a plurality of servers 110, 120 and 130 as shown in FIG. 1.
  • 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.
  • FIG. 2 is a view showing an example of a general game broadcasting system.
  • a user chooses one of a plurality of servers 210, 220 and 230 and plays or watches a game in the selected server.
  • 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.
  • 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.
  • 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.
  • traffic rapidly increases and a control server for transmitting the game play state should be included.
  • the control server includes a complicated logic.
  • 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.
  • 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.
  • 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.
  • the channel generation information of the first channel may contain a first channel number
  • 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.
  • 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.
  • 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.
  • the first and second channels may be game rooms or chatting rooms.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 1 is a view showing an example of a general service providing system using a plurality of servers
  • FIG. 2 is a view showing an example of a general game broadcasting system
  • FIG. 3 is a view showing the configuration of a server mirroring system according to a preferred embodiment of the present invention
  • 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
  • FIG. 5 is a view showing groups generated in a message routing server according to a preferred embodiment of the present invention.
  • 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;
  • FIG. 7 is a view showing the configuration of a broadcast server system according to a preferred embodiment of the present invention.
  • 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;
  • 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;
  • 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. 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;
  • FIG. 14 is a flowchart illustrating a method of restoring a failure which occurs in a specific mirroring server.
  • 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.
  • 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.
  • 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.
  • FIG. 3 is a view showing the configuration of a server mirroring system according to a preferred embodiment of the present invention.
  • the server mirroring system 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • various types of board games or war games may be used in the game broadcasting system according to 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.
  • 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.
  • mirroring game room 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the commentator 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.
  • 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.
  • 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.
  • 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.
  • the message routing server 340 supports a function for managing a plurality of connections as a group.
  • FIG. 5 is a view showing groups generated in the message routing server 340 according to the preferred 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the message routing server 340 may have a simpler structure compared with control servers for exchanging information among the servers.
  • message traffic can be also reduced.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the mirroring game server 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.
  • 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.
  • 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.
  • 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.
  • FIG. 7 is a view showing the configuration of a broadcast server system according to a preferred embodiment of the present invention.
  • the broadcast server system may include an access control server 710 and a plurality of broadcast servers 720, 730 and 740.
  • 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.
  • the access control server provided the address of one broadcast server which will receive moving-picture streaming data transmitted by the commentator client.
  • the access control server provided the address information of the broadcast server having a lowest load among the plurality of broadcast servers.
  • 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.
  • the commentator client 701 transmits the moving-picture streaming data to the first broadcast server 720 and the second broadcast server 730.
  • 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.
  • the commentator client 701 transmits the moving- picture streaming data to a plurality of broadcast servers.
  • 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.
  • 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.
  • 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
  • FIG. 9 shows a case where a game commentator requests the publisher game server to generate a game room.
  • 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.
  • 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).
  • the game room generation information is set to be transmitted to the subscriber group of the message routing server.
  • 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.
  • 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).
  • 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).
  • 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.
  • the mirroring game server 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • the commentator client 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).
  • the game room generation information is set to be transmitted to the subscriber group of the message routing server.
  • 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.
  • 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).
  • 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).
  • 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.
  • the mirroring game server 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.
  • 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.
  • the commentator client 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).
  • 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.
  • 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.
  • 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).
  • 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).
  • 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).
  • 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.
  • 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
  • FIG. 12 shows a case where the game commentator participates in the mirrored game room.
  • 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).
  • the publisher game server deletes the game room (step 1120).
  • 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).
  • 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).
  • 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).
  • 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.
  • 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).
  • the publisher game server deletes the game room (step 1220).
  • 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.
  • 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).
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • 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).
  • 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).
  • 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.
  • 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.
  • FIG. 14 is a flowchart illustrating a method of restoring a failure which occurs in a specific mirroring server.
  • the mirroring server 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).
  • 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).
  • 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).
  • 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.
  • 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.
  • the publisher server transmits a message containing room list information and history data of each room to the message routing server (step 1450).
  • 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.
  • 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).
  • 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.
  • 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.

Abstract

A server mirroring method and system capable of allowing a user who accesses a specific server to monitor real-time information of a channel generated in another server without causing excessive traffic are disclosed. The server mirroring method includes 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.

Description

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.

Claims

Claims
[1] A server mirroring method comprising: 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.
[2] The method according to claim 1, wherein the at least one mirroring server is registered in a message routing server as a member of a subscriber group.
[3] The method according to claim 1, wherein the channel generation information of the first channel contains a first channel number, and wherein the generating of the second channel comprises: 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.
[4] The method according to claim 1, wherein the changing of the state of the second channel comprises transmitting the channel state change information of the first channel to the at least one mirroring server registered in a message routing server as a member of a subscriber group.
[5] The method according to claim 1, further comprising: 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.
[6] The method according to claim 1, wherein the first and second channels are game rooms or chatting rooms.
[7] A server mirroring method comprising: 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.
[8] The method according to claim 7, wherein the transmitting of the information about the channel comprises transmitting the information about the channel to all mirroring servers which are registered as the members of the subscriber group.
[9] The method according to claim 7, wherein the information about the channel contains channel generation information and channel state change information.
[10] The method according to claim 7, wherein the channel is a game room or a chatting room.
[11] A server mirroring method comprising: 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.
[12] The method according to claim 11, wherein the game play information contains game command information or a chatting message.
[13] The method according to claim 11, wherein the message routing server is connected to the mirroring server via a socket, and the game room generation information and the game play information of the first game room are transmitted from the message routing server to the mirroring server via the socket.
[14] The method according to claim 11, further comprising: extracting the number of the first game room from the game play information; determining the number of the second game room using the extracted number of the first game room; and providing the play game information to the second game room using the determined number of the second game room.
[15] The method according to claim 11, further comprising: receiving moving-picture streaming data from a game commentator; and providing the moving-picture streaming data to a game watcher.
[16] The method according to claim 15, wherein the moving-picture streaming data is received from the game commentator via at least two broadcast servers and is provided to the game watcher via a broadcast server having a lowest load between the at least two broadcast servers.
[17] The method according to claim 11, wherein the generating of the second game room comprises generating a virtual dummy player who is recognized as a main element for generating the second game room.
[18] The method according to claim 17, further comprising: 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.
[19] A server mirroring system comprising: 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.
[20] The system according to claim 19, wherein the message routing server transmits the channel generation information and the channel state change information of the first channel to all the mirror servers registered as members of the subscriber group.
[21] The system according to claim 19, wherein the first and second channels are game rooms.
[22] The system according to claim 21, further comprising 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.
[23] The system according to claim 22, wherein the broadcast server system comprises an access control server, and wherein the access control server specifies at least two broadcast servers which will receive the moving-picture streaming data from the game commentator client and specifies only one of the at least two broadcast servers as a server for transmitting the moving-picture streaming data to the game watcher clients.
[24] A game broadcasting method using server mirroring in a system including at least one publisher game server, at least one mirroring game server, a broadcast server system, and a message routing server which maintains the connection between the at least one publisher game server and the at least one mirroring game server, the method comprising: when a game room is generated in the publisher game server, transmitting a game room generation message and a game play message related to a game played in the game room to the message routing server, at least a commentator and a game player participating in the game room; at a client of the commentator who participates in the game room, transmitting moving-picture data containing audio and video data of the commentator to the broadcast server system; at the message routing server, transmitting the game room generation message and the game play message received from the publisher game server to the at least one mirroring game server connected to the message routing server; at the mirroring game server, mirroring the same game room as game room information contained in the game room generation message when the at least one mirroring game server receives the game room generation message from the message routing server; and providing a broadcast ID for receiving the moving-picture data of the commentator from the broadcast server system when a client participates in a mirroring game room of the mirroring game server or the game room of the publisher game server.
[25] In a system including at least one publisher server, at least one mirroring server, and a message routing server which maintains the connection between the at least one publisher server and the at least one mirroring server, a server mirroring method of mirroring a channel generated in the publisher server to the mirroring server, the method comprising: transmitting a channel generation message and a message transmitted to the channel generated in the publisher server to the message routing server when the channel is generated in the publisher server; at the message routing server, transmitting the channel generation message and the message transmitted to the channel generated in the publisher server, which are received from the publisher server, to the at least one mirroring server connected to the message routing server; and at the mirroring server, performing a predetermined mirroring process corresponding to the type of the message received by the mirroring server when receiving the channel generation message and the message transmitted to the channel generated in the publisher server.
[26] The method according to claim 25, wherein the predetermined process allows the mirroring server to generate the same channel as channel information contained in the channel generation information when the message transmitted from the message routing server to the at least one mirroring server is the channel generation message. [27] The method according to claim 25, wherein the predetermined process transmits the received message to clients which participate in the channel of the mirroring server when the message transmitted from the message routing server to the at least one mirroring server is the message transmitted to the channel generated in the publisher server.
PCT/KR2007/001574 2006-03-30 2007-03-30 Server mirroring method and system therefor WO2007114606A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2007800113366A CN101410822B (en) 2006-03-30 2007-03-30 Server mirroring method and system
JP2009502686A JP5044638B2 (en) 2006-03-30 2007-03-30 Server mirroring method and system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2006-0028908 2006-03-30
KR1020060028908A KR100775132B1 (en) 2006-03-30 2006-03-30 Server Mirroring System and Method
KR10-2006-0029911 2006-03-31
KR1020060029911A KR100810757B1 (en) 2006-03-31 2006-03-31 Game Broadcasting System Using Server Mirroring

Publications (1)

Publication Number Publication Date
WO2007114606A1 true WO2007114606A1 (en) 2007-10-11

Family

ID=38563846

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2007/001574 WO2007114606A1 (en) 2006-03-30 2007-03-30 Server mirroring method and system therefor

Country Status (2)

Country Link
JP (1) JP5044638B2 (en)
WO (1) WO2007114606A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184299B2 (en) 2009-10-30 2021-11-23 Verisign, Inc. Hierarchical publish and subscribe system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102283669B1 (en) * 2013-10-25 2021-07-30 주식회사 카카오 Method and system for broadcasting content based on channel
WO2015060640A1 (en) * 2013-10-25 2015-04-30 주식회사 다음카카오 Channel-based method and system for relaying contents

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867667A (en) * 1997-03-24 1999-02-02 Pfn, Inc. Publication network control system using domain and client side communications resource locator lists for managing information communications between the domain server and publication servers
US6026430A (en) * 1997-03-24 2000-02-15 Butman; Ronald A. Dynamic client registry apparatus and method
US6125388A (en) * 1994-05-31 2000-09-26 Reisman; Richard R. System for transporting information objects between a user station and multiple remote sources based upon user modifiable object manifest stored in the user station
US20030004952A1 (en) * 1999-10-18 2003-01-02 Mark Nixon Accessing and updating a configuration database from distributed physical locations within a process control system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594745B2 (en) * 2001-01-31 2003-07-15 Hewlett-Packard Development Company, L.P. Mirroring agent accessible to remote host computers, and accessing remote data-storage devices, via a communcations medium
US6745303B2 (en) * 2002-01-03 2004-06-01 Hitachi, Ltd. Data synchronization of multiple remote storage
JP2005062928A (en) * 2003-08-11 2005-03-10 Hitachi Ltd Remote copy system using two or more sites
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125388A (en) * 1994-05-31 2000-09-26 Reisman; Richard R. System for transporting information objects between a user station and multiple remote sources based upon user modifiable object manifest stored in the user station
US5867667A (en) * 1997-03-24 1999-02-02 Pfn, Inc. Publication network control system using domain and client side communications resource locator lists for managing information communications between the domain server and publication servers
US6026430A (en) * 1997-03-24 2000-02-15 Butman; Ronald A. Dynamic client registry apparatus and method
US20030004952A1 (en) * 1999-10-18 2003-01-02 Mark Nixon Accessing and updating a configuration database from distributed physical locations within a process control system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184299B2 (en) 2009-10-30 2021-11-23 Verisign, Inc. Hierarchical publish and subscribe system

Also Published As

Publication number Publication date
JP2009531770A (en) 2009-09-03
JP5044638B2 (en) 2012-10-10

Similar Documents

Publication Publication Date Title
WO2022143182A1 (en) Video signal playing method, apparatus, and device for multi-user interaction
JP4324199B2 (en) Violations in peer-to-peer relay networks
KR100485974B1 (en) Method and System for Providing Contents
CN101207501B (en) IP broadcasting system and a multicast group management apparatus for the same
EP1959620B1 (en) Bandwidth requesting device, bandwidth requesting system, and, bandwidth requesting method
JP2007509571A (en) Redundant List in Peer-to-Peer Relay Network
JP4857116B2 (en) Audience in peer-to-peer relay networks
JP4970039B2 (en) Island recovery in peer-to-peer relay networks
AU2019202714A1 (en) A system and method for managing playback of streaming digital content
KR100741463B1 (en) Method and apparatus in a communication network
CN108200480A (en) A kind of game living broadcast interactive method, relevant device and system
US20210289255A1 (en) Synchronization of media content across multiple participant devices
US8010633B2 (en) Multiple peer-to-peer relay networks
CN108667798A (en) A kind of method and system of virtual viewing
JP2023508061A (en) ACCOUNT ACCESS METHOD AND DEVICE, STORAGE MEDIUM, AND ELECTRONIC DEVICE
JP2005509228A (en) Inter-user communication module and processing
CN112929716A (en) Method, device and system for live broadcast interaction of cloud application
JP2005086222A (en) Multicast type contents reception control method and multicast type contents reception client
CN115664989A (en) Monitoring system and method of cloud desktop
Otten Broadcasting virtual games in the internet
WO2007114606A1 (en) Server mirroring method and system therefor
JP7397082B2 (en) Secure data channel in network gaming systems
KR20020073346A (en) Distributed internet broadcasting method and system using camera and screen capture
WO2003098412A2 (en) Content delivery system
CN101410822B (en) Server mirroring method and system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07745737

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2009502686

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200780011336.6

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07745737

Country of ref document: EP

Kind code of ref document: A1