WO2016190169A1 - 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム - Google Patents

情報処理システム、サーバ及びプログラム、並びに端末及びプログラム Download PDF

Info

Publication number
WO2016190169A1
WO2016190169A1 PCT/JP2016/064611 JP2016064611W WO2016190169A1 WO 2016190169 A1 WO2016190169 A1 WO 2016190169A1 JP 2016064611 W JP2016064611 W JP 2016064611W WO 2016190169 A1 WO2016190169 A1 WO 2016190169A1
Authority
WO
WIPO (PCT)
Prior art keywords
waiting time
request
command
server
terminal
Prior art date
Application number
PCT/JP2016/064611
Other languages
English (en)
French (fr)
Inventor
修一 倉林
Original Assignee
株式会社Cygames
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Cygames filed Critical 株式会社Cygames
Priority to KR1020177025244A priority Critical patent/KR101944460B1/ko
Priority to CN201680028888.7A priority patent/CN107614073B/zh
Publication of WO2016190169A1 publication Critical patent/WO2016190169A1/ja
Priority to US15/820,330 priority patent/US10708186B2/en
Priority to HK18104238.4A priority patent/HK1244743A1/zh

Links

Images

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
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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
    • 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
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • 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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • 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/70Game security or game management aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • 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

Definitions

  • the present invention relates to an information processing system, a server and a program, and a terminal and a program.
  • Patent Document 1 As a game that can be executed on a terminal such as a smartphone, there is a game in which a plurality of players such as a multi-battle can participate (for example, see Patent Document 1).
  • the following request and response methods are often adopted. That is, when the player operates the terminal to input a command, the terminal transmits the command as a request to the server. The server executes the request and transmits the execution result and the like as a response to the terminal.
  • Patent Document 1 is a technique that employs a method different from the request and response method.
  • parallelization is a technology that increases the computer resources (nodes) in the server infrastructure.
  • the number of servers is increased as the number of clients increases, the processing capacity of the entire server infrastructure is increased, and more requests are made. This is a technology that enables processing. Therefore, when parallelization is applied, servers are added in ad hoc as the server load increases. However, the addition of servers is not realistic in the game field where the number of clients (number of terminals) is extremely fast.
  • parallelization it is necessary to prepare a huge number of calculation nodes in advance in the server infrastructure. This is not economical because it leads to a significant increase in infrastructure maintenance costs.
  • Asynchronous I / O is a technique in which one thread / process communicates with a plurality of clients by using a waiting time associated with I / O, and can improve the utilization efficiency of the CPU of the server.
  • asynchronous I / O does not have a function to prevent congestion when the number of clients (number of terminals) increases rapidly.
  • a technique suitable for application to a game adopting a request and response method cannot be found.
  • the request and response method is not particularly limited to games.
  • a technique suitable for application to an information processing system employing a request and response method as a technique for preventing congestion at the server cannot be found.
  • the present invention has been made in view of such a situation, and as a technique for preventing congestion on the server side and preventing stress on the user on the terminal side (player in the case of a game) without getting tired. It is an object of the present invention to establish a technique suitable for application to an information processing system employing a request and response system.
  • an information processing system includes: In an information processing system including a server and a plurality of terminals that transmit a predetermined request to the server,
  • the server Monitoring means for monitoring whether or not a predetermined condition for processing a request is satisfied; If the predetermined condition is not satisfied, a waiting time calculating means for calculating a waiting time until the request is transmitted on the terminal side,
  • a request execution means for executing requests in the order of arrival and generating a response;
  • First transmission control means for transmitting the response to the terminal that transmitted the corresponding request and executing control for transmitting the information indicating the waiting time to the terminal when the waiting time is calculated.
  • the terminal Command receiving means for receiving a predetermined command;
  • the waiting time specified by the information is set.
  • the predetermined time is set as the waiting time.
  • Waiting time setting means to Display control means for controlling the speed of the time flow on the terminal side according to the set waiting time, and controlling the display of images that change at the speed of the time flow;
  • a second transmission control means for executing control for transmitting the command to the server as a request after the set waiting time; Is provided.
  • the server of one embodiment of the present invention includes: In a server that communicates with multiple terminals that send a given request, First monitoring means for monitoring whether or not a predetermined condition regarding processing of a request is satisfied; When the predetermined condition is not satisfied, the waiting time calculating means for calculating the waiting time as a time parameter for controlling the speed of the time flow on the terminal side, A request execution means for executing requests in the order of arrival and generating a response; A transmission control means for transmitting the response to the terminal that transmitted the corresponding request, and executing control for transmitting the information indicating the waiting time together with the information when the waiting time is calculated; Is provided.
  • the first program of one embodiment of the present invention is a program corresponding to the above-described server of one embodiment of the present invention.
  • a terminal includes: A response to the request is sent to the terminal that sent the request, and if the predetermined condition is satisfied, information indicating the waiting time until the next request is sent to the server that sends it to the terminal.
  • Command receiving means for receiving a predetermined command;
  • the waiting time specified by the information is set.
  • the predetermined time is set as the waiting time.
  • Waiting time setting means to Display control means for controlling the speed of the time flow on the terminal side according to the set waiting time, and controlling the display of images that change at the speed of the time flow; Transmission control means for executing control to transmit the command to the server as a request after elapse of the set waiting time; Is provided.
  • the second program according to one aspect of the present invention is a program corresponding to the terminal according to one aspect of the present invention described above.
  • information processing that employs a request and response method as a technique for preventing congestion on the server side and preventing stress on the user (player in the case of a game) on the terminal side.
  • a technique suitable for application to the system can be established.
  • FIG. 2 is a block diagram showing a hardware configuration of a player terminal as an embodiment of the terminal of the present invention in the information processing system of FIG. It is a block diagram which shows the hardware constitutions of the server which concerns on one Embodiment of this invention among the information processing systems of FIG. It is a functional block diagram which shows the functional structural example of the player terminal of FIG. 2, and the server of FIG.
  • FIG. 5 is a schematic diagram for explaining an outline of preventive load distribution processing executed by a server having the functional configuration of FIG. 4. It is a figure which shows an example of the list
  • FIG. 1 It is a figure which shows an example of the game screen of this embodiment. It is a schematic diagram for demonstrating editing of a command. It is a transition diagram of a game screen showing a specific example of asynchronous input of commands. It is a flowchart explaining an example of the flow of the process by the side of the server which has a functional structure of FIG. It is a flowchart explaining an example of the flow of a process by the side of the player terminal which has a functional structure of FIG.
  • the “moving image” includes an image displayed by each of the following first to third processes.
  • the first process refers to a process in which a series of still images composed of a plurality of images are continuously switched over time and displayed for each motion of an object (for example, a game character) in a planar image (2D image).
  • two-dimensional animation so-called flip-flopping processing, corresponds to the first processing.
  • the second process refers to a process in which motions corresponding to respective actions of an object (for example, a game character) in a stereoscopic image (3D model image) are set, and the motions are changed and displayed over time.
  • a three-dimensional animation corresponds to the second process.
  • the third process refers to a process in which videos (that is, moving images) corresponding to respective actions of an object (for example, a game character) are prepared and the video is played over time.
  • FIG. 1 shows the configuration of an information processing system according to an embodiment of the present invention.
  • the information processing system shown in FIG. 1 is a system including player terminals 1-1 to 1-m used by m players (m is an arbitrary integer value of 1 or more) and a server 2.
  • m is an arbitrary integer value of 1 or more
  • server 2 Each of the player terminals 1-1 to 1-m and the server 2 are connected to each other via a predetermined network N such as the Internet.
  • the server 2 provides a game execution environment for each of the player terminals 1-1 to 1-m, and provides various services related to the game executed on each of the player terminals 1-1 to 1-m. To do.
  • player terminal 1 when it is not necessary to individually distinguish each of the player terminals 1-1 to 1-m, these are collectively referred to as “player terminal 1”.
  • FIG. 2 is a block diagram showing a hardware configuration of the player terminal 1 as an embodiment of the terminal of the present invention in the information processing system of FIG.
  • the player terminal 1 is composed of a smartphone or the like.
  • the player terminal 1 includes a CPU (Central Processing Unit) 21, a ROM (Read Only Memory) 22, a RAM (Random Access Memory) 23, a bus 24, an input / output interface 25, a touch operation input unit 26, a display Unit 27, input unit 28, storage unit 29, communication unit 30, and drive 31.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 21 executes various processes according to a program recorded in the ROM 22 or a program loaded from the storage unit 29 to the RAM 23.
  • the RAM 23 appropriately stores data necessary for the CPU 21 to execute various processes.
  • the CPU 21, ROM 22, and RAM 23 are connected to each other via a bus 24.
  • An input / output interface 25 is also connected to the bus 24.
  • a touch operation input unit 26, a display unit 27, an input unit 28, a storage unit 29, a communication unit 30, and a drive 31 are connected to the input / output interface 25.
  • the touch operation input unit 26 includes, for example, a capacitance type or resistive film type (pressure sensitive) position input sensor stacked on the display surface of the display unit 27, and detects coordinates of a position where the touch operation is performed.
  • the touch operation refers to an operation of touching or approaching an object with respect to the touch operation input unit 26.
  • the object that contacts or approaches the touch operation input unit 26 is, for example, a player's finger or a touch pen.
  • touch position the position where the touch operation is performed
  • the coordinates of the touch position are referred to as “touch coordinates”.
  • the display unit 17 includes a display such as a liquid crystal display, and displays various images such as an image related to a game.
  • the touch operation input unit 26 and the display unit 27 constitute a touch panel.
  • the input unit 28 is configured with various hardware buttons and the like, and inputs various information according to the player's instruction operation.
  • the storage unit 29 is configured by a DRAM (Dynamic Random Access Memory) or the like and stores various data.
  • the communication unit 30 controls communication performed with other devices (the server 2 and other player terminals 1 in the example of FIG. 1) via the network N including the Internet.
  • the drive 31 is provided as necessary.
  • a removable medium 41 composed of a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is appropriately attached to the drive 31.
  • the program read from the removable medium 41 by the drive 31 is installed in the storage unit 29 as necessary.
  • the removable medium 41 can also store various data stored in the storage unit 29 in the same manner as the storage unit 29.
  • FIG. 3 is a block diagram showing a hardware configuration of the server 2 according to an embodiment of the present invention in the information processing system of FIG.
  • the server 2 includes a CPU 51, a ROM 52, a RAM 53, a bus 54, an input / output interface 55, an output unit 56, an input unit 57, a storage unit 58, a communication unit 59, and a drive 60. . Since the configuration of the server 2 is basically the same as the configuration excluding the touch panel of the player terminal 1, the description thereof is omitted here.
  • the game can be executed on the player terminal 1 by the cooperation of the various hardware and various software of the player terminal 1 of FIG. 2 and the server 2 of FIG.
  • a game in which a plurality of players such as a multi-battle participate is targeted, and a request and response method is adopted. That is, in the present embodiment, each of the plurality of player terminals 1 is simultaneously executing a game, and sequentially transmits a command of the game to the server 2 as a request.
  • the server 2 receives requests from each of the plurality of player terminals 1, sequentially executes each request, and transmits each execution result or the like as a response to each of the plurality of player terminals 1.
  • Each of the plurality of player terminals 1 executes a command when receiving a response.
  • FIG. 4 is a functional block diagram showing a functional configuration example of the player terminal 1 and the server 2 for exhibiting such a function.
  • a waiting time DB 111 is provided in one area of the storage unit 58 of the server 2.
  • the request reception control unit 101 controls the communication unit 59 to receive a request transmitted from the player terminal 1.
  • the load monitoring unit 102 monitors whether or not a predetermined condition related to request processing is satisfied.
  • the predetermined condition may be a condition related to a request. For example, a condition that the number of current requests does not exceed a predetermined threshold can be employed. Specific examples of the predetermined threshold value and the predetermined condition will be described later.
  • the waiting time calculation unit 103 calculates the waiting time until the request is transmitted on the player terminal 1 side when the predetermined condition is not satisfied (for example, when the number of thresholds that can be processed per unit time is exceeded).
  • the result is stored in the waiting time DB 111.
  • the “waiting time” is a time parameter until permission to transmit the next request, and is used to control the elapsed time (speed of time flow) of the game being executed on the player terminal 1 side. This is a parameter, and is calculated as a relative value such as “how many seconds plus the current time”. That is, the waiting time DB 111 stores information such as waiting times for each of a plurality of player terminals 1 (player terminals 1-1 to 1-m in this embodiment) in a list. A specific example of the list stored in the waiting time DB 111 will be described later with reference to FIG.
  • the request execution unit 104 executes the requests in the order of arrival and generates a response.
  • the response transmission control unit 105 transmits a response to the player terminal 1 that transmitted the corresponding request, and also transmits information indicating the waiting time to the player terminal 1 when the waiting time is calculated. Execute.
  • the server 2 sets the waiting time for each of the plurality of player terminals 1 before uncontrollable congestion occurs (by failing to satisfy the predetermined condition). That is, the server 2 controls the frequency with which requests are transmitted to each of the plurality of player terminals 1.
  • a preventive load distribution process in the time axis direction (hereinafter referred to as “preventive load distribution process”) is realized in which each of the plurality of player terminals 1 shares the waiting time little by little.
  • FIG. 5 is a schematic diagram for explaining an outline of preventive load distribution processing.
  • a request buffer 201 on the left side of FIG. 5 is a buffer for request processing, and actually exists in the server 2.
  • the request buffer 201 exists in the storage unit 58 in the present embodiment.
  • a black circle in the request buffer 201 indicates a request received by the server 2 transmitted from a predetermined player terminal 1. That is, a request being executed or waiting to be executed by the request execution unit 104 on the server 2 side is shown.
  • the symbols in the black circles indicate the player terminal 1 that transmitted the request. That is, the black circle 1A indicates a request transmitted from the player terminal 1-A.
  • a black circle of 1B indicates a request transmitted from the player terminal 1-B.
  • a black circle of 1C indicates a request transmitted from the player terminal 1-C.
  • the request buffer 201 is a FIFO queue that stores requests in the order of arrival in the server 2 and outputs them to the request execution unit 104 in order of arrival.
  • the virtual queue 202 on the right side of FIG. 5 is notified of the waiting time from the server 2 to each of a plurality of player terminals 1 (player terminals 1-A, 1-B, 1-C for convenience of explanation in the example of FIG. 5).
  • the queue is virtually constructed.
  • a white circle in the virtual queue 202 indicates an untransmitted request from the predetermined player terminal 1. That is, a request whose transmission is delayed by the waiting time after the command is input on the player terminal 1 side is a white circle.
  • a description “Delay-time expired” is given to a request that can be transmitted after the waiting time has elapsed.
  • the virtual queue 202 is not constructed by consuming the memory area or the disk area on the server 2, and each of the player terminals 1 continues until the waiting time notified from the server 2 elapses.
  • the player terminal 1 is substantially configured to behave as if they are arranged in one matrix.
  • a waiting time of 3000 msec is set for each of the plurality of player terminals 1-A, 1-B, 1-C.
  • Requests are executed in the order of storage in the request buffer 201. In other words, at least one request is executed at a predetermined timing. If there is no dependency between requests, the server 2 may retrieve a plurality of requests from the request buffer 201 at a time and execute them in parallel.
  • the second request from the top of the virtual queue 202 is a request whose waiting time has elapsed in the player terminal 1-B. Accordingly, the request is transmitted from the player terminal 1-B to the server 2 and stored in the request buffer 201 of the server 2, and the request execution is performed when the request stored before that does not exist in the request buffer 201.
  • the request execution unit 104 executes the request (second request from the top of the request buffer 201) in this way, the response transmission control unit 105 transmits a response to the player terminal 1-B and waits.
  • the time value “3000 msec” is also notified to the player terminal 1-B.
  • the value of the waiting time notified to the player terminal 1-B in this way is all the player terminals 1 (in the example of FIG. 5, the player terminals 1-A, 1-B, 1-C) is the maximum value. Therefore, it is added to the tail of the virtual queue 202 (the fifth white circle from the top in the example of FIG. 5).
  • the P2P communication between the player terminals 1 is not performed in the preventive load balancing process described with reference to FIG. 5, and the access frequency to the server 2 is different for each of the plurality of player terminals 1.
  • This is a point that is determined in an autonomous and distributed manner on the server 2 side. As a result, the total number of requests arriving at the server 2 within the unit time is controlled, and congestion at the server 2 is prevented.
  • the number of requests that can be processed within the unit time of the server 2 (hereinafter referred to as “capacity number”). Is estimated in advance.
  • a predetermined threshold value (for example, a value of 80% of the capacity number) is also defined in advance based on the capacity number, and a condition that the current request number does not exceed the threshold value is also set in advance. That is, the load monitoring unit 102 relates to the load state of the server 2 by monitoring whether or not the condition is satisfied.
  • the waiting time is calculated according to (1). ...
  • delay_sec represents a waiting time.
  • request_per_sec indicates the number of requests that reach the server 2 per second.
  • capacity_per_sec indicates the number of requests that can be processed by the server 2 per second. That is, in this embodiment, a value obtained by dividing the current number of requests (capacity_per_sec) by the number of capacities (capacity_per_sec) is employed as the waiting time (delay_sec).
  • the waiting time calculation method is not particularly limited to the method of the present embodiment according to the formula (1). For example, considering the performance of the network N and the DB writing performance, a different waiting time for each request. You may employ
  • the request execution unit 104 executes the requests in the storage order (arrival order) of the request buffer 201 in FIG. 5 and generates a response.
  • the response transmission control unit 105 transmits a response to the player terminal 1 that transmitted the corresponding request, and notifies the player terminal 1 of the above-described waiting time.
  • Each of the plurality of player terminals 1 (player terminals 1-A, 1-B, 1-C in the example of FIG. 5) sends the next request after the elapse of the notified waiting time. To access.
  • a waiting time is set when a response is transmitted to each of the plurality of player terminals 1.
  • the transmission timing of the response is slightly shifted for each of the plurality of player terminals 1.
  • each of the plurality of player terminals 1 has a slightly different waiting time (remaining time until the next request is transmitted). That is, a huge number of player terminals 1 (requests to be transmitted) are stored in a huge virtual queue 202. Thereby, congestion in the server 2 is prevented.
  • the position in the virtual queue 202 is not exact, and may be slightly different depending on the performance of the network N used for waiting time notification and request transmission. It doesn't matter.
  • the queuing calculation for sending a request from the virtual queue 202 to the request buffer 201 on the server 2 is realized only by setting the waiting time without performing a comparison operation between the player terminals 1. . Therefore, this queuing can always be performed at a cost of 0 (n).
  • the fraud monitoring unit 106 also functions as shown in FIG. The fraud monitoring unit 106 monitors whether the request received under the control of the request reception control unit 101 is transmitted from the player terminal 1 while keeping the waiting time.
  • the list shown in FIG. 6 is stored in the waiting time DB 111.
  • a predetermined one line in the list of FIG. 6 corresponds to a predetermined one player terminal 1. That is, a predetermined line stores the client ID, the time when the last request arrived, and the assigned waiting time for the corresponding player terminal 1.
  • the waiting time DB 111 manages the arrival time of the immediately previous request (the time when the last request arrived) and the waiting time in association with each other. Therefore, the fraud monitoring unit 106 searches the waiting time DB 111 using the client ID included in the request, and the request actually arrives as “time when the last request arrived” + “assigned waiting time”. Check against time.
  • the fraud monitoring unit 106 determines whether or not the player terminal 1 that transmitted the request is incompatible based on the comparison result.
  • a predetermined penalty process is executed for the player terminal 1 determined to be illegal.
  • the content of the penalty process is not particularly limited. For example, in this embodiment, a process is adopted in which a request from an unauthorized player terminal 1 is discarded and no response is returned.
  • the fraud monitoring unit 106 for example, only requests about 10% of a part of requests, more specifically, randomly extracted. You may check.
  • the penalty process for example, a process of discarding a request from the player terminal 1 in which fraud is recognized for a predetermined time (for example, 5 minutes) can be employed.
  • the functional configuration of the server 2 for realizing the preventive load distribution process (see FIG. 5) has been described above.
  • a functional configuration of the player terminal 1 when the preventive load distribution process is executed will be described.
  • a command receiving unit 121 As shown in FIG. 4, in the CPU 21 of the player terminal 1, a command receiving unit 121, a waiting time setting unit 122, a request transmission control unit 123, a display control unit 124, a response reception control unit 125, and a command execution The unit 126 functions.
  • the player can make a predetermined input to the touch operation input unit 26 while a screen (which will be described later with reference to FIGS. 7 to 9) on which commands can be input is displayed on the display unit 27.
  • a predetermined command is input by performing a touch operation (for example, a tap operation).
  • the command receiving unit 121 receives such a predetermined command.
  • the waiting time setting unit 122 sets the waiting time specified by the information.
  • the waiting time setting unit 122 sets a predetermined time as the waiting time.
  • the predetermined time is not particularly limited, and may be a preset fixed time or a variable time.
  • the predetermined time includes 0.
  • the waiting time of 0 means that when a command is accepted, the command is immediately transmitted as a request.
  • the request transmission control unit 123 transmits a command as a request to the server 2 via the communication unit 30 after the waiting time set by the waiting time setting unit 122 has elapsed.
  • the command receiving unit 121, the waiting time setting unit 122, and the request transmission control unit 123 function on the player terminal 1 side, thereby realizing the preventive load balancing process.
  • the conventional terminal side where no measures are taken is in a standby state until the “unexpected waiting time” elapses. That is, for a player or terminal, the time during which a standby state continues without a command being immediately executed after a command is input is an “unexpected waiting time”. In addition, the length of the “unexpected waiting time” changes depending on the state of congestion on the server side, which is unknown to the player and the terminal. Therefore, if a “unexpected waiting time” occurs and the terminal enters a standby state, the player cannot predict when the command will be executed. As a result, the player gets bored or feels some stress.
  • the “waiting time” in the present embodiment is a time parameter intentionally generated on the server 2 side, and is a concept that is essentially different from the conventional “unexpected waiting time”. That is, the player terminal 1 has predicted that such “waiting time (time parameter)” will be reached. Therefore, the player terminal 1 can use the “waiting time (time parameter)” to take measures to prevent the player from getting bored and stressed. Specifically, in this embodiment, the player terminal 1 makes the command input and the command execution asynchronous, and sets the speed of the time flow from the command input to the command execution as “wait time (time Parameter) ”. Then, the player terminal 1 visually presents the speed of this time flow to the player. Such measures make it possible to prevent the player from getting bored and stressed. More specifically, in the present embodiment, the display control unit 124 performs control to display the game screen as shown in FIGS. 7 to 9 on the display unit 27, so that the player is not bored and stressed. I am trying not to.
  • FIG. 7 is a diagram illustrating an example of the game screen of the present embodiment.
  • a battle screen 221 in, for example, RPG (Roll Playing Game) is displayed above the game screen 210 of FIG.
  • a button group area 222 in which buttons for the player to select commands (hereinafter referred to as “command selection buttons”) are displayed.
  • a command queue 223 in which an icon indicating a command (hereinafter referred to as “command icon”) flows in a certain direction is displayed.
  • a player inputs a corresponding command by performing a tap operation on a desired command selection button among one or more command selection buttons arranged in the button group region 222.
  • the command queue 223 is implemented as a FIFO (First-in, First-out) queue. Therefore, a command icon corresponding to a command input by the player (a command selection button that has been tapped) is added to the tail of the command queue 223 (rightmost in the example of FIG. 7). That is, when a plurality of types of command selection buttons are tapped by the player, the plurality of types of command icons are sequentially stored in the command queue 223 in the order in which the tapping operations are performed, and the command queue 223 is sequentially left-sided. Move towards.
  • the moving speed of the command icon in the command queue 223 is not constant but varies according to the waiting time. That is, the longer the waiting time set by the server 2, the slower the movement speed of the command icon. In other words, if the notification of the waiting time from the server 2 is grasped as an instruction from the server 2, the moving speed of the command icon in the command queue 223 is adjusted according to the instruction from the server 2.
  • the moving speed of the command icon in the command queue 223 corresponds to the speed of time flow on the player terminal 1 side, and is controlled according to the “waiting time (time parameter)” set by the server 2.
  • the command selection buttons themselves arranged in the button group area 222 are those conventionally used in games such as general RPG.
  • a command selection button is pressed on a client (a conventional terminal corresponding to the player terminal 1 of the present embodiment)
  • a request is transmitted to the conventional server, and a response is received from the server. Is executed. Since the time required from the transmission of the request to the reception of the response is usually a short time, the player feels that the press of the command selection button and the execution of the command are synchronized. Therefore, if the server is in a heavy load state and a time lag occurs between the press of the command selection button and the execution of the command, the player is stressed or bored.
  • a UI User Interface
  • Such a UI is an asynchronous input of a command.
  • the time length of this time lag is variably controlled by the waiting time (time parameter) given from the server 2, and the result of the variable control is visualized, that is, the speed of the time flow is visualized. That is, when the command selection button is pressed, the corresponding command icon is stored in the command queue 223 and starts moving to the left.
  • the movement speed of the command icon corresponds to the speed of the time flow on the terminal 1 side, and is variably controlled according to the waiting time designated by the server 2.
  • the response reception control unit 125 in FIG. 4 executes control to receive the response.
  • the response reception control unit 125 also receives the information and provides it to the waiting time setting unit 122.
  • the command execution unit 126 executes the command.
  • commands can be edited. That is, when asynchronous command input is adopted, the player can input a second command after inputting a predetermined first command until the first command is executed. That is, a plurality of types of commands can be input before one type of command is executed. Therefore, it is possible to edit the command at a stage before transmitting the command as a request.
  • FIG. 8 is a schematic diagram for explaining command editing.
  • six types of first to sixth commands are sequentially input in that order, and command icons C1 to C6 corresponding to the first to sixth commands are respectively displayed in the command queue. 223.
  • first position the position where the command icon is stored when the command is input.
  • Each of the command icons C1 to C6 sequentially moves in the order from the first position to the left at a moving speed corresponding to the waiting time (time parameter).
  • the request icon Transmission can be performed.
  • the predetermined position where the command icon reaches when the request is transmitted in this way is hereinafter referred to as “second position”.
  • the command icon existing in the right range R from the first position to the second position corresponds to the command at the stage before request transmission. Therefore, the player can freely edit these commands. That is, in the example of FIG. 8, the second command to the sixth command corresponding to the command icons C2 to C6 can be edited.
  • the left range from the second position to the position where the command is executed in the example of FIG.
  • the position where the character string of “invoking” is displayed hereinafter referred to as “third position”.
  • the command icon existing in L corresponds to a command in a stage where a request has already been transmitted and a response is waiting to be received. Therefore, the player cannot edit these commands. That is, in the example of FIG. 8, the first command corresponding to the command icon C1 cannot be edited.
  • the command editing operation is not particularly limited.
  • the player can edit a command corresponding to the command icon by performing a predetermined touch operation on the command icon to be edited. Specifically, for example, the player can cancel the fifth command corresponding to the command icon C5 by moving the command icon C5 to the outside of the command queue 223 by a drag operation. Further, for example, the player can execute (activate) the second command and the fourth command corresponding to each of the command icons C2 and C4 by changing the order (arrangement position) of the command icons C2 and C4 by a drag operation. The order can be changed.
  • the player taps the command selection button arranged in the button group area 222.
  • the command selection button By operating or dragging the command icon in the command queue 223, the corresponding command can be added or edited.
  • the type of command editing is not particularly limited, and any type such as the above-described cancellation or order change can be adopted.
  • the player can input a plurality of types of commands at a high speed and change them appropriately according to the game situation, etc. You can deeply configure the tactics of the game.
  • FIG. 9 is a game screen transition diagram showing a specific example of asynchronous command input.
  • the player selects the first character in the frame 251 (actually, the frame 251 may not be displayed) among the characters displayed on the battle screen 221.
  • the first character can be selected by performing a tap operation.
  • a button group area 222 in which a plurality of command selection buttons are arranged is displayed as a list of a plurality of commands held by the first character.
  • the command icon C7 corresponding to the command selection button B7 is added to the first position at the end of the command queue 223, and movement to the left is started.
  • the player is the second character in the frame 252 (actually, the frame 252 may not be displayed) among the characters displayed on the battle screen 221.
  • the second character can be selected by tapping.
  • a button group area 222 in which a plurality of command selection buttons are arranged is displayed as a list of a plurality of commands held by the second character.
  • the player performs a tap operation on the command selection button B8.
  • the command icon C8 corresponding to the command selection button B8 is added to the first position at the end of the command queue 223, and movement to the left is started.
  • the command icon C7 has moved further to the left.
  • the player is the third character in the frame 253 (actually, the frame 253 may not be displayed) among the characters displayed on the battle screen 221.
  • the third character can be selected by tapping.
  • a button group area 222 in which a plurality of command selection buttons are arranged is displayed as a list of a plurality of commands held by the third character.
  • the command icon C9 corresponding to the command selection button B9 is added to the first position at the end of the command queue 223, and movement to the left is started. During this time, the command icon C8 has moved further to the left.
  • the command icon C7 passes through the second position on the left side (as a result, the corresponding command is transmitted as a request to the server 2 and a response is received from the server 2), and reaches the third position. is doing. Accordingly, at this time, the command corresponding to the command icon C7 (command selection button B7) input on the game screen on the left side of FIG. 8 is executed.
  • FIG. 10 is a flowchart illustrating the processing flow on the server 2 side.
  • the load monitoring unit 102 determines whether the load is large. That is, the load monitoring unit 102 monitors whether or not the current request count satisfies a condition that the predetermined threshold value based on the capacity count does not exceed, based on the resource usage status of the server 2. If the condition is satisfied, that is, if the current number of requests does not exceed the threshold, it is determined as NO in step S1, and the process proceeds to step S3.
  • the waiting time calculation unit 103 calculates the waiting time as zero.
  • step S2 the waiting time calculation unit 103 calculates the waiting time according to, for example, the above equation (1).
  • step S4 the request reception control unit 101 determines whether there is a request.
  • step S9 the CPU 51 of the server 2 determines whether or not there is an instruction to end the process.
  • an instruction to end the process is not particularly limited, but in this embodiment, power-off of the server 2 is adopted. That is, when the power is cut off in the server 2, it is determined as YES in step S9, and the processing on the server 2 side is ended. On the other hand, unless the server 2 is powered off, it is determined as NO in step S9, the process returns to step S1, and the subsequent processes are repeated.
  • step S4 when a request is transmitted from a predetermined one of the plurality of player terminals 1 (player terminals 1-1 to 1-m in the example of FIG. 1), it is determined as YES in step S4, and the process Advances to step S5.
  • step S5 the fraud monitoring unit 106 determines whether or not the request waiting time is appropriate.
  • the fraud monitoring unit 106 searches the waiting time associated with the client ID included in the request from the list (see FIG. 9) stored in the waiting time DB 111. If the request is transmitted at a timing earlier than the appropriate time specified based on the search result, it is determined as NO in step S5, and the process proceeds to step 6. In step S6, the fraud monitoring unit 106 performs a penalty process on the unauthorized player terminal 1 that has transmitted the request. Thereby, a process progresses to step S9 and the process after it is repeated. On the other hand, if the request waiting time is appropriate, it is determined as YES in step S5, and the process proceeds to step S7. In step S7, the request execution unit 104 executes the request and generates a response. In step S ⁇ b> 8, the response transmission control unit 105 transmits the response and the waiting time to the player terminal 1. Thereafter, the process proceeds to step S9, and the subsequent processes are repeated.
  • FIG. 11 is a flowchart for explaining the flow of processing on the player terminal 1 side.
  • the processing on the player terminal 1 side in FIG. 11 is started by a predetermined event during game execution, for example, a battle event in RPG or the like.
  • step S21 the display control unit 124 causes the display unit 27 to display a game screen including a command selection UI and a queue.
  • the command selection UI corresponds to, for example, the button group area 222 in which the command selection buttons described with reference to FIGS.
  • the command queue 223 corresponds to the queue.
  • step S22 the command receiving unit 121 determines whether a command has been input.
  • step S34 the CPU 21 of the player terminal 1 determines whether or not there is an instruction to end the process.
  • the process end instruction is not particularly limited, but in the present embodiment, an instruction to end the predetermined event (for example, the first event) is adopted. That is, when the predetermined event ends, YES is determined in step S34, and the process on the player terminal 1 side ends.
  • the predetermined event is continuing, it is determined as NO in Step S34, and the process is returned to Step S21, and the subsequent processes are repeated.
  • Step S ⁇ b> 23 the waiting time setting unit 122 determines whether or not the waiting time has been notified from the server 2. When the waiting time has not been notified from the server 2 (including the case where the waiting time is set to 0 in step S3 of FIG. 10), it is determined as NO in step S23, and the process proceeds to step S24.
  • step S24 the waiting time setting unit 122 sets a specified waiting time.
  • the prescribed waiting time is a time parameter indicating a “reference speed” for the speed of time flow on the player terminal 1 side.
  • step S24 When the process in step S24 is completed, the process proceeds to step S26.
  • step S25 On the other hand, when the waiting time has been notified (when the information indicating the waiting time is added to the response received in the previous step S32), it is determined as YES in step S23, The process proceeds to step S25.
  • the waiting time setting unit 122 sets the waiting time from the server 2.
  • the waiting time from the server 2 is a time parameter for changing the speed of the time flow on the player terminal 1 side with respect to the reference speed as described above, and is set by the server 2. It is a time parameter.
  • step S26 the display control unit 124 calculates the moving speed of the command icon (time flow speed on the player terminal 1 side) using the waiting time set in step S24 or S25.
  • the display control unit 124 uses the moving pixel amount per frame as the moving speed. Calculate. More specifically, for example, in a game system in which the screen is updated every 50 msec, information indicating a waiting time of “1000 msec” is notified from the server 2.
  • the display control unit 124 calculates the movement speed so that the command icon arrives in one second from the last first position in the command queue 223 in the above example to the second position where the request is transmitted. To do. That is, when the command icon is arranged at the first position, the display control unit 124 calculates a value obtained by dividing the number of pixels from the icon to the second position by (1000/50) by the moving pixel amount per frame ( (Movement speed).
  • step S27 the display control unit 124 starts moving and displaying the command icon. That is, in the above example, the command icon is arranged at the last first position in the command queue 223 and starts moving to the left.
  • step S ⁇ b> 28 the command receiving unit 121 determines whether there is an operation on the command icon. If there is a drag operation or the like on the command icon, it is determined as YES in Step S28, and the process proceeds to Step S29.
  • step S29 the display control unit 124 executes an editing process such as deleting a command or changing the order. Thereby, a process progresses to step S30. On the other hand, if there is no drag operation or the like on the command icon, it is determined as NO in step S28, and the process proceeds to step S30 without executing the command editing process (the process of step S29).
  • step S30 the display control unit 124 determines whether or not the waiting time has elapsed. If the waiting time has not elapsed, it is not time to transmit the request, so the process returns to step S28 and the subsequent processes are repeated. In other words, the command editing process can be executed by operating the command icon until the request is transmitted.
  • Step S30 When the waiting time elapses, it is determined as YES in Step S30, and the process proceeds to Step S31.
  • step S31 the request transmission control unit 123 transmits a command to the server 2 as a request. As a result, it is determined as YES in step S4 of FIG. 10, and a response and a waiting time are transmitted to the player terminal 1 in step S8 unless the request is an unauthorized request.
  • step S32 the response reception control unit 125 receives the response and the waiting time.
  • step S33 the command execution unit 126 executes a command. Thereby, a process progresses to step S34 and the process after it is repeated.
  • steps S27 to S33 are described as a part of the processes in steps S21 to S34.
  • asynchronous input of commands is realized in the present embodiment, so that the processing in steps S27 to S33 is performed for each of a plurality of commands each time a plurality of commands are input. Are executed in parallel.
  • the functional configuration of FIG. 4 is merely an example, and is not particularly limited. That is, it is sufficient that the information processing system has a function capable of executing the above-described series of processes as a whole, and what functional block is used to realize this function is not particularly limited to the example of FIG. Further, the location of the functional block is not particularly limited to that in FIG. 4 and may be arbitrary.
  • the functional block of the server 2 may be transferred to the player terminal 1 or the like, and conversely, the functional block of the terminal 1 may be transferred to the server 2 or the like.
  • one functional block may be constituted by hardware alone, software alone, or a combination thereof.
  • a program constituting the software is installed on a computer or the like from a network or a recording medium.
  • the computer may be a computer incorporated in dedicated hardware.
  • the computer may be a computer capable of executing various functions by installing various programs, for example, a general-purpose smartphone or personal computer other than a server.
  • the recording medium including such a program is not only constituted by a removable medium (not shown) distributed separately from the apparatus main body in order to provide the program to the player, but is also provided to the player in a state of being preinstalled in the apparatus main body. It is composed of a provided recording medium or the like.
  • the step of describing the program recorded on the recording medium is not limited to the processing performed in time series along the order, but is not necessarily performed in time series, either in parallel or individually.
  • the process to be executed is also included.
  • the term “system” means an overall apparatus configured by a plurality of devices, a plurality of means, and the like.
  • an information processing system to which the present invention is applied can take various embodiments having the following configurations, including the information processing system as the embodiment of FIG. 1 described above. That is, an information processing system to which the present invention is applied is It includes a server (for example, server 2 in FIG. 1) and a plurality of terminals (for example, player terminals 1-1 to 1-m in FIG. 1) that transmit a predetermined request to the server.
  • the server Monitoring means for example, the load monitoring unit 102 in FIG. 4) for monitoring whether or not a predetermined condition relating to request processing is satisfied; When the predetermined condition is not satisfied, a waiting time calculating means (for example, the waiting time calculating unit 103 in FIG.
  • Request execution means for example, the request execution unit 104 in FIG. 4 that executes the requests in the order of arrival and generates a response
  • First transmission control means for transmitting the response to the terminal that transmitted the corresponding request and executing control for transmitting the information indicating the waiting time to the terminal when the waiting time is calculated.
  • the terminal Command accepting means for example, command accepting unit 121 in FIG. 4 for accepting a predetermined command; When the information indicating the waiting time is transmitted from the server, the waiting time specified by the information is set. When the information is not transmitted, the predetermined time is set as the waiting time.
  • Waiting time setting means for example, waiting time setting unit 122 in FIG. 4
  • Display control means for controlling the speed of the time flow on the terminal side in accordance with the set waiting time and controlling the display of images that change at the speed of the time flow (for example, the display control unit in FIG. 4) 124)
  • a second transmission control means for example, the request transmission control unit 123 in FIG. 4) that executes control to transmit the command to the server as a request after the set waiting time has elapsed; Is provided.
  • the above-described command asynchronous input is realized. Then, according to the “waiting time” set as a time parameter by the server or the reference “predetermined time”, the speed of the time flow on the terminal side is controlled, and the speed of the time flow is visualized. And presented to the user (player in the case of a game). As a result, the user does not get tired and does not feel stress until the command is executed after the command is input.
  • the information processing system to which the present invention is applied does not require any additional server hardware or network equipment when distributing the load, and therefore can be realized at a much lower cost than before.
  • the information processing system to which the present invention is applied can be implemented using existing application protocols (http, https, Web-Socket, etc.), an existing load balancer can be used as it is.
  • the waiting time calculating means of the server can calculate the waiting time based on the number of requests that arrive per unit time and the number of requests that can be processed per unit time. As a result, an appropriate time based on the number of requests that can be processed per unit time (capacity) and the number of requests that arrive per unit time (actual result) is set as the waiting time. As a result, preventive load distribution processing can be realized more efficiently.
  • the server Management means (for example, the waiting time DB 111 and the CPU 51 in FIG. 4) that associates and manages the arrival time of the immediately preceding request and the waiting time for each of the plurality of terminals,
  • second monitoring means (for example, fraud monitoring unit 106 in FIG. 4) monitors whether the terminal that transmitted the request has kept the waiting time based on the management content of the management means.
  • Can be further provided As a result, it is possible to easily execute various penalty processes for an unauthorized terminal (a user, a player in the case of a game) who does not observe the waiting time.
  • the display control means of the terminal controls the speed of the time flow on the terminal side according to the set waiting time, and displays an image that changes at the speed of the time flow.
  • the transmission control means executes control to transmit the command to the server as a request after the set waiting time has elapsed.
  • the “image that changes at the speed of the time flow” is not limited to the above-described embodiment, and an arbitrary moving image, for example, an animation in which a character in the game moves when a game is adopted, etc. Can also be adopted.
  • the “waiting time” set on the terminal side is a parameter for controlling the speed of time flow on the terminal side, and is used in the following two methods.
  • the first method is a method used as a parameter for controlling the playback time of a moving image.
  • the second method is a method used as a parameter for controlling the timing at which the next request is transmitted from the terminal to the server. Thereby, the control of the transmission control means can be realized.
  • the “image changing at the speed of the current flow” may be an arbitrary moving image, but the symbol indicating the command is moved from the first position to the second position as in the above-described embodiment. It is preferable that the image indicates.
  • the symbol moving speed corresponds to the time flow speed on the terminal side. That is, the image that changes at the speed of the time flow is an image that shows how the symbol is moved toward the second position at the moving speed.
  • the display control means of the terminal As a control for displaying an image showing the movement of the symbol indicating the command from the first position to the second position, When the command is accepted, the symbol is placed in the first position, Determining a moving speed of the symbol such that the symbol moves from the first position to the second position with the set waiting time; Moving the symbol toward the second position at the moving speed; Execute the control to display the image showing the situation,
  • the transmission control means can transmit the command as a request to the server when the symbol reaches the second position.
  • the display control means controls display of an image showing a state in which the symbol is moved from the first position to the third position via the second position, Command execution means for executing processing corresponding to the command based on the response from the server corresponding to the command when the symbol reaches the third position; Can be.
  • the command receiving means sequentially receives a plurality of commands
  • the display control means displays an image showing a state in which a plurality of symbols corresponding to each of the plurality of commands are moved from the first position to the second position in order of command reception,
  • the symbol before the second position is further provided with a command order changing means for accepting an operation for changing the order with other symbols as an instruction to change the execution order of commands corresponding to the symbol. You may do it.
  • the image processing apparatus further includes command cancellation means for receiving an operation of deleting the symbol before reaching the second position from the image as a command cancellation instruction corresponding to the symbol. You may do it.

Abstract

サーバでの輻輳を防止すると共に、端末側のユーザにストレスを与えずかつ飽きさせないようにする技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術を確立すること。 サーバ2の負荷監視部102は、リクエストの処理に関する所定条件を満たしているか否かを監視する。待ち時間演算部103は、所定条件を満たしていない場合、プレイヤー端末1側での時間の流れの速度を制御する時間パラメータとして待ち時間を演算する。リクエスト実行部104は、リクエストを到達順に実行して、レスポンスを生成する。レスポンス送信制御部105は、レスポンスを、対応するリクエストを送信したプレイヤー端末1に送信すると共に、待ち時間が演算されている場合には当該待ち時間を示す情報も併せてプレイヤー端末1に送信する制御を実行する。

Description

情報処理システム、サーバ及びプログラム、並びに端末及びプログラム
 本発明は、情報処理システム、サーバ及びプログラム、並びに端末及びプログラムに関する。
 従来から、スマートフォン等の端末で実行可能なゲームとして、マルチバトル等複数のプレイヤーが参加可能なゲームが存在する(例えば特許文献1参照)。
 このようなゲームでは、次のようなリクエスト&レスポンス方式が採用されている場合が多い。即ち、プレイヤーが端末を操作してコマンドを入力すると、端末は、当該コマンドをリクエストとしてサーバに送信する。サーバは、リクエストを実行し、その実行結果等をレスポンスとして端末に送信する。
WO2014/098237パンフレット
 近年のモバイルコンピューティングの発達により、ゲームのクライアント(端末)の数は加速度的に増加している。このため、膨大な数の端末によりゲームが同時に実行されることとなり、多数の端末からのリクエストがサーバに集中してしまい、サーバが輻輳状態に陥るおそれがある。
 従って、リクエスト&レスポンス方式が採用されたゲームでは、サーバでの輻輳を防止する技術が必要になる。
 しかしながら、このような技術として好適な技術が見受けられない状況である。
 具体的には例えば、特許文献1に記載の技術は、リクエスト&レスポンス方式とは別の方式を採用した技術である。
 また例えば、サーバの負荷を低減する従来の技術としては、並列化と、非同期I/Oが存在する。しかしながら、これらの技術は、リクエスト&レスポンス方式が採用されたゲームに対しては不適である。
 即ち、並列化とは、サーバ・インフラ内の計算機資源(ノード)を増加させる技術であり、クライアントの増大に応じてサーバを増設し、サーバ・インフラ全体の処理能力を高め、より多くのリクエストを処理可能とする技術である。
 従って、並列化を適用する場合、サーバ負荷の上昇に合わせてアドホックにサーバを増設することになる。
 しかしながら、サーバの増設は、クライアント数(端末数)の増加が極めて早いゲーム分野では、現実的ではない。
 また、並列化を適用する場合、サーバ・インフラ内部に膨大な数の計算ノードを予め用意する必要がある。
 このことは、インフラの維持コストの大幅増につながるため、経済的ではない。
 非同期I/Oは、I/Oに伴う待ち時間を利用して、1つのスレッド/プロセスが複数のクライアントと通信を行う技術であり、サーバのCPUの利用効率を向上させることができる。
 しかしながら、非同期I/Oは、クライアント数(端末数)が急激に増加した場合の輻輳を防ぐ機能を有していない。
 このように、サーバでの輻輳を防止する技術として、リクエスト&レスポンス方式が採用されたゲームに適用して好適な技術が見受けられない状況である。
 なお、リクエスト&レスポンス方式はゲームに特に限定されない。つまり、上記状況を換言すると、サーバでの輻輳を防止する技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術が見受けられない状況である。
 さらに、たとえサーバでの輻輳の防止自体が実現できたとしても、その結果として、端末を操作するユーザ(ゲームの場合プレイヤー)に不要なストレスを与えたり飽きさせる事態になることは避けなければならない。
 本発明は、このような状況に鑑みてなされたものであり、サーバ側での輻輳を防止すると共に、端末側のユーザ(ゲームの場合プレイヤー)にストレスを与えずかつ飽きさせないようにする技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術を確立することを目的とする。
 上記目的を達成するため、本発明の一態様の情報処理システムは、
 サーバと、当該サーバに所定のリクエストを送信する複数の端末とを含む情報処理システムにおいて、
 前記サーバは、
 リクエストの処理に関する所定条件を満たしているか否かを監視する監視手段と、
 前記所定条件を満たしていない場合、端末側でのリクエストの送信までの待ち時間を演算する待ち時間演算手段と、
 リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
 前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段と、
 を備え、
 前記端末は、
 所定のコマンドを受け付けるコマンド受付手段と、
 前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
 設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
 設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段と、
 を備える。
 本発明の一態様のサーバは、
 所定のリクエストを送信する複数の端末と通信をするサーバにおいて、
 リクエストの処理に関する所定条件を満たしているか否かを監視する第1監視手段と、
 前記所定条件を満たしていない場合、端末側での時間の流れの速度を制御する時間パラメータとして待ち時間を演算する待ち時間演算手段と、
 リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
 前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御手段と、
 を備える。
 本発明の一態様の第1プログラムは、上述の本発明の一態様のサーバに対応するプログラムである。
 本発明の一態様の端末は、
 リクエストに対するレスポンスを、当該リクエストを送信した端末に送信すると共に、所定条件を満たしている場合には次のリクエストの送信までの待ち時間を示す情報も併せて当該端末に送信するサーバとの間で通信をする端末において、
 所定のコマンドを受け付けるコマンド受付手段と、
 前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
 設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
 設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御手段と、
 を備える。
 本発明の一態様の第2プログラムは、上述の本発明の一態様の端末に対応するプログラムである。
 本発明によれば、サーバ側での輻輳を防止すると共に、端末側のユーザ(ゲームの場合プレイヤー)にストレスを与えずかつ飽きさせないようにする技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術を確立することができる。
本発明の一実施形態に係る情報システムの構成を示すブロック図である。 図2は、図1の情報処理システムのうち、本発明の端末の一実施形態としてのプレイヤー端末のハードウェア構成を示すブロック図である。 図1の情報処理システムのうち、本発明の一実施形態に係るサーバのハードウェア構成を示すブロック図である。 図2のプレイヤー端末と図3のサーバの機能的構成例を示す機能ブロック図である。 図4の機能的構成を有するサーバが実行する予防的負荷分散処理の概要説明するための模式図である。 図5の待ち時間DBに格納されているリストの一例を示す図である。 本実施形態のゲーム画面の一例を示す図である。 コマンドの編集を説明するための模式図である。 マンドの非同期入力の具体例を示すゲーム画面の遷移図である。 図4の機能的構成を有するサーバ側の処理の流れの一例を説明するフローチャートである。 図4の機能的構成を有するプレイヤー端末側の処理の流れの一例を説明するフローチャートである。
 以下、本発明の実施形態について、図面を用いて説明する。
 なお、以下において、単に「画像」と呼ぶ場合には、「動画像」と「静止画像」との両方を含むものとする。
 また、「動画像」には、次の第1処理乃至第3処理の夫々により表示される画像を含むものとする。
 第1処理とは、平面画像(2D画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対して、複数枚からなる一連の静止画像を時間経過と共に連続的に切り替えて表示させる処理をいう。具体的には例えば、2次元アニメーション、いわゆるパラパラ漫画的な処理が第1処理に該当する。
 第2処理とは、立体画像(3Dモデルの画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対応するモーションを設定しておき、時間経過と共に当該モーションを変化させて表示させる処理をいう。具体的には例えば、3次元アニメーションが第2処理に該当する。
 第3処理とは、オブジェクト(例えばゲームキャラクタ)の夫々の動作に対応した映像(即ち動画)を準備しておき、時間経過と共に当該映像を流していく処理をいう。
 図1は、本発明の一実施形態に係る情報処理システムの構成を示している。
 図1に示す情報処理システムは、m人(mは1以上の任意の整数値)のプレイヤーの夫々により使用されるプレイヤー端末1-1乃至1-mと、サーバ2とを含むシステムである。プレイヤー端末1-1乃至1-mの夫々と、サーバ2とは、インターネット等の所定のネットワークNを介して相互に接続されている。
 サーバ2は、プレイヤー端末1-1乃至1-mの夫々に対してゲームの実行環境を提供し、プレイヤー端末1-1乃至1-mの夫々において実行されるゲームに関する各種各様のサービスを提供する。
 なお、以下、プレイヤー端末1-1乃至1-mの夫々を個々に区別する必要がない場合、これらをまとめて「プレイヤー端末1」と呼ぶ。
 図2は、図1の情報処理システムのうち、本発明の端末の一実施形態としてのプレイヤー端末1のハードウェア構成を示すブロック図である。
 プレイヤー端末1は、スマートフォン等で構成される。
 プレイヤー端末1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、入力部28と、記憶部29と、通信部30と、ドライブ31と、を備えている。
 CPU21は、ROM22に記録されているプログラム、又は、記憶部29からRAM23にロードされたプログラムに従って各種の処理を実行する。
 RAM23には、CPU21が各種の処理を実行する上において必要なデータ等も適宜記憶される。
 CPU21、ROM22及びRAM23は、バス24を介して相互に接続されている。このバス24にはまた、入出力インターフェース25も接続されている。入出力インターフェース25には、タッチ操作入力部26、表示部27、入力部28、記憶部29、通信部30及びドライブ31が接続されている。
 タッチ操作入力部26は、例えば表示部27の表示面に積層される静電容量式又は抵抗膜式(感圧式)の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
 ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触又は近接の操作をいう。タッチ操作入力部26に対して接触又は近接する物体は、例えばプレイヤーの指やタッチペン等である。なお、以下、タッチ操作がなされた位置を「タッチ位置」と呼び、タッチ位置の座標を「タッチ座標」と呼ぶ。
 表示部17は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
 このように、本実施形態では、タッチ操作入力部26と表示部27とにより、タッチパネルが構成されている。
 入力部28は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
 記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
 通信部30は、インターネットを含むネットワークNを介して他の装置(図1の例ではサーバ2や他のプレイヤー端末1)との間で行う通信を制御する。
 ドライブ31は、必要に応じて設けられる。ドライブ31には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア41が適宜装着される。ドライブ31によってリムーバブルメディア41から読み出されたプログラムは、必要に応じて記憶部29にインストールされる。また、リムーバブルメディア41は、記憶部29に記憶されている各種データも、記憶部29と同様に記憶することができる。
 図3は、図1の情報処理システムのうち、本発明の一実施形態に係るサーバ2のハードウェア構成を示すブロック図である。
 サーバ2は、CPU51と、ROM52と、RAM53と、バス54と、入出力インターフェース55と、出力部56と、入力部57と、記憶部58と、通信部59と、ドライブ60とを備えている。
 サーバ2の構成は、プレイヤー端末1のタッチパネルを除いた構成と基本的に同様であるので、ここではその説明は省略する。
 このような図2のプレイヤー端末1及び図3のサーバ2の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末1でゲームの実行が可能になる。
 本実施形態では、マルチバトル等の複数のプレーヤが参加するゲームが対象であり、リクエスト&レスポンス方式が採用されている。
 即ち本実施形態では、複数のプレイヤー端末1の夫々は、ゲームを同時に実行しており、当該ゲームのコマンドをリクエストとしてサーバ2に逐次送信する。サーバ2は、複数のプレイヤー端末1の夫々からのリクエストを受信し、夫々のリクエストを順次実行して、夫々の実行結果等をレスポンスとして複数のプレイヤー端末1の夫々に対して送信する。複数のプレイヤー端末1の夫々は、レスポンスを受信すると、コマンドを実行する。
 ここで、多数のプレイヤー端末1からリクエストが送信されて、サーバ2が所定の単位時間あたりに実行可能な処理量(ピーク)を超えると、サーバ2で制御不可能な輻輳が発生してしまう。
 この場合、プレイヤー端末1にとっては、リクエストに対するレスポンスの到達が遅延する。この遅延は予期せぬものであるため、ユーザにとっては、ゲームのコマンドが実行されない或いは実行されるのが非常に遅いと感じて、飽きてしまったり、ストレスを覚えたりする場合がある。
 そこで、本実施形態のプレイヤー端末1とサーバ2は、サーバ側での輻輳を防止すると共に、端末側のプレイヤーにストレスを与えずかつ飽きさせないようにするための機能を有している。
 図4は、このような機能を発揮するためのプレイヤー端末1とサーバ2の機能的構成例を示す機能ブロック図である。
 図4に示すように、サーバ2のCPU51においては、リクエスト受信制御部101と、負荷監視部102と、待ち時間演算部103と、リクエスト実行部104と、レスポンス送信制御部105と、不正監視部106とが機能する。
 サーバ2の記憶部58の一領域には、待ち時間DB111が設けられる。
 リクエスト受信制御部101は、プレイヤー端末1から送信されてきたリクエストを通信部59にて受信することを制御する。
 負荷監視部102は、リクエストの処理に関する所定条件を満たしているか否かを監視する。
 所定条件は、リクエストに関する条件であれば足り、例えば、現在のリクエストの数が所定の閾値を超えていないという条件を採用することができる。所定の閾値や所定条件等の具体例については後述する。
 待ち時間演算部103は、所定条件を満たしていない場合(例えば単位時間当たりに処理可能な閾値数を超えた場合)、プレイヤー端末1側でのリクエストの送信までの待ち時間を演算し、その演算結果を待ち時間DB111に記憶させる。
 ここで、「待ち時間」とは、次のリクエストの送信を許可するまでの時間パラメータであって、プレイヤー端末1側で実行中のゲームの時間経過(時間の流れの速度)を制御するためのパラメータをいい、例えば「現在時刻からプラス何秒」というような相対的な値として演算される。
 即ち、待ち時間DB111は、複数のプレイヤー端末1(本実施形態ではプレイヤー端末1-1乃至1-m)毎に、待ち時間等の情報をリスト化して記憶している。なお、待ち時間DB111に記憶されているリストの具体例については、図6を参照して後述する。
 リクエスト実行部104は、リクエストを到達順に実行して、レスポンスを生成する。
 レスポンス送信制御部105は、レスポンスを、対応するリクエストを送信したプレイヤー端末1に送信すると共に、待ち時間が演算されている場合には当該待ち時間を示す情報も併せてプレイヤー端末1に送信する制御を実行する。
 詳細については後述するが、複数のプレイヤー端末1の夫々は、レスポンスと共に待ち時間を示す情報を受信した場合には、次回のリクエストについては、コマンド等を受付けたタイミングから当該待ち時間が経過した後に、サーバ2に送信する。
 このようにして、サーバ2は、制御不可能な輻輳が発生する前に(所定の条件を満たさなくなることで)、複数のプレイヤー端末1の夫々に対して待ち時間を設定する。つまり、サーバ2は、複数のプレイヤー端末1の夫々に対してリクエストを送信する頻度を制御する。
 これにより、複数のプレイヤー端末1の夫々が少しずつ待ち時間を共有するといった、時間軸方向の予防的な負荷分散処理(以下、「予防的負荷分散処理」と呼ぶ)が実現される。
 さらに以下、図5を参照して、予防的負荷分散処理について説明する。
 図5は、予防的負荷分散処理の概要を説明するための模式図である。
 図5の左側のリクエストバッファ201は、リクエスト処理用のバッファであり、サーバ2に実在する。例えば図4等には図示しないが、本実施形態では記憶部58にリクエストバッファ201が存在するものとする。
 リクエストバッファ201内の黒丸印が、所定のプレイヤー端末1から送信されたサーバ2で受信済みのリクエストを示している。即ち、サーバ2側のリクエスト実行部104により実行中又は実行待ちのリクエストを示している。ここで、黒丸印内の符号は、リクエストを送信したプレイヤー端末1を示している。即ち、1Aの黒丸印は、プレイヤー端末1-Aから送信されたリクエストを示している。1Bの黒丸印は、プレイヤー端末1-Bから送信されたリクエストを示している。1Cの黒丸印は、プレイヤー端末1-Cから送信されたリクエストを示している。
 リクエストバッファ201は、サーバ2に届いた順にリクエストを格納し、届いた順にリクエスト実行部104に出力して実行させるFIFOキューである。
 図5の右側の仮想待ち行列202は、サーバ2から複数のプレイヤー端末1(図5の例では説明の便宜上プレイヤー端末1-A,1-B,1-C)の夫々に待ち時間が通知されることにより、仮想的に構成される待ち行列である。
 仮想待ち行列202内の白丸印が、所定のプレイヤー端末1から未送信のリクエストを示している。即ち、プレイヤー端末1側ではコマンドが入力されてから、待ち時間分だけ送信が遅延しているリクエストが、白丸印である。待ち時間が経過して送信可能になったリクエストには、「Delay-time expired」という記述が施されている。
 即ち、この仮想待ち行列202は、サーバ2上のメモリ領域やディスク領域を消費して構築されるものではなく、プレイヤー端末1の夫々が、サーバ2から通知された待ち時間が経過するまで、次のリクエストの送信を待つ動作により、実質的に、あたかもプレイヤー端末1の夫々が1つの行列内に並ぶようにふるまうことにより構成される。
 図5の例では、複数のプレイヤー端末1-A,1-B,1-Cの夫々に対して、待ち時間3000msecが設定されている。
 リクエストの実行は、リクエストバッファ201の格納順である。換言すると、所定の1タイミングには、少なくとも1つのリクエストが実行される。また、各リクエスト同士に依存関係がない場合は、サーバ2は、リクエストバッファ201からの複数のリクエストを一時に取り出し、並列に実行してもよい。
 例えば、仮想待ち行列202の上から2番目のリクエストは、プレイヤー端末1-Bにおいて待ち時間が経過したリクエストである。従って、当該リクエストは、プレイヤー端末1-Bからサーバ2に送信され、サーバ2のリクエストバッファ201に格納され、それより前に格納されたリクエストがリクエストバッファ201に存在しなくなった段階で、リクエスト実行部104により実行される。
 このようにしてリクエスト実行部104により当該リクエスト(リクエストバッファ201の上から2番目のリクエスト)が実行されると、レスポンス送信制御部105は、レスポンスを、プレイヤー端末1―Bに送信すると共に、待ち時間の値「3000msec」も併せてプレイヤー端末1-Bに通知する。
 このようにしてプレーヤー端末1-Bに通知された待ち時間の値は、リクエストが送信可能になるまでの残り時間という観点で、全てのプレイヤー端末1(図5の例ではプレイヤー端末1-A,1-B,1-C)の中で最大値となる。従って、仮想待ち行列202の最後尾(図5の例では上から5番目の白丸印)に追加されることになる。
 ここで着目すべき点は、図5を用いて説明した予防的負荷分散処理では、プレイヤー端末1同士のP2P通信は行われておらず、サーバ2へのアクセス頻度が複数のプレイヤー端末1毎にサーバ2側で自律分散的に決定されている点である。
 これにより、サーバ2へ到着するリクエストの単位時間内の総数が制御され、サーバ2での輻輳が防止される。
 具体的には本実施形態では、サーバ2に到着するリクエストの単位時間内の総数を制御することを目的として、サーバ2の単位時間内の処理可能リクエスト数(以下「キャパシティ数」と呼ぶ)が事前に見積られている。
 そして、このキャパシティ数に基づいて所定の閾値(例えばキャパシティ数の80%の値)も予め定義され、現在のリクエスト数が当該閾値を超えないことという条件も予め設定されている。
 つまり、負荷監視部102は、当該条件を満たしているか否かを監視することで、サーバ2の負荷状態を関している。
 待ち時間演算部103は、前記条件を満たしていない場合、つまり、現在のリクエスト数が当該閾値を超えた場合(以下、このような場合を「負荷大」の場合と呼ぶ)、例えば次の式(1)に従って待ち時間を演算する。
Figure JPOXMLDOC01-appb-M000001
                           ・・・(1)
 式(1)において、delay_secは待ち時間を示している。request_per_secは、1秒間にサーバ2に到達するリクエスト数を示している。capacity_per_secは、サーバ2に1秒間に処理可能なリクエスト数を示している。
 即ち、本実施形態では、待ち時間(delay_sec)として、現在のリクエスト数(capacity_per_sec)をキャパシティ数(capacity_per_sec)で除算した値が採用されている。
 このような値を採用することにより、単位時間内にキャパシティ数を超過するリクエストが到達することが予想される場合(負荷大となる場合)、超過分のリクエストは図5の仮想待ち行列202に格納されるので、図5を用いて上述したように、単位時間内に処理可能なリクエストのみがサーバに到達する、といった制御が実現される。
 なお、待ち時間の演算手法は、特に式(1)に従った本実施形態の手法に限定されず、例えば、ネットワークNの性能やDBの書き込み性能等を考慮し、リクエスト毎に異なる待ち時間を演算する手法を採用してもよい。
 リクエスト実行部104は、図5のリクエストバッファ201の格納順(到達順)にリクエストを実行して、レスポンスを生成する。
 レスポンス送信制御部105は、レスポンスを、対応するリクエストを送信したプレイヤー端末1に送信すると共に、上述の待ち時間を当該プレイヤー端末1に通知する。
 複数のプレイヤー端末1(図5の例ではプレイヤー端末1-A,1-B,1-C)の夫々は、次のリクエストを送信する際には、通知された待ち時間の経過後に、サーバ2にアクセスする。
 このようにして、複数のプレイヤー端末1の夫々に対して、レスポンスが送信される際に待ち時間が設定される。
 ここで、レスポンスの送信タイミングは、複数のプレイヤー端末1毎に少しずつずれている。その結果、上述した図5に示すように、複数のプレイヤー端末1の夫々が少しずつ異なる待ち時間(次のリクエストを送信するまでの残り時間)を有することになる。つまり、膨大な数のプレイヤー端末1(送信予定のリクエスト)が、あたかも巨大な仮想待ち行列202に格納されることになる。
 これにより、サーバ2における輻輳が防止される。
 なお、仮想待ち行列202内の位置は厳密なものではなく、待ち時間の通知やリクエストの送信に用いるネットワークNの性能により、多少前後する可能性があるが、ゲーム分野に適用する場合には特に問題とならない。
 また、この仮想待ち行列202からサーバ2上のリクエストバッファ201に対してリクエストを送出するためのキューイングの演算は、プレイヤー端末1間の比較操作を伴わず、待ち時間の設定のみで実現される。従って、このキューイングは常に0(n)のコストで実施が可能である。
 ただし、このような待ち時間を複数のプレイヤー端末1に通知しただけでは、当該待ち時間を守らない不正なプレイヤー端末1がでてくるおそれがある。
 そこで、本実施形態のサーバ2においては、図4に示すように不正監視部106も機能する。
 不正監視部106は、リクエスト受信制御部101の制御により受信されたリクエストが、待ち時間を守ってプレイヤー端末1から送信されたものか否かを監視している。
 具体的には例えば本実施形態では、図6に示すリストが待ち時間DB111に格納されている。
 図6のリストの所定の1行は、所定の1つのプレイヤー端末1に対応している。即ち、所定の1行には、対応するプレイヤー端末1についての、クライアントID、最後のリクエストが到達した時間、及び、割り当てた待ち時間が格納されている。換言すると、待ち時間DB111は、直前のリクエストの到達時刻(最後のリクエストが到達した時間)、及び待ち時間を対応付けて管理している。
 そこで、不正監視部106は、リクエストに含まれるクライアントIDを用いて、待ち時間DB111を検索し、「最後のリクエストが到達した時間」+「割り当てた待ち時間」と、当該リクエストが実際に到達した時間とを照合する。
 そして、不正監視部106は、その照合結果に基づいて、当該リクエストを送信したプレイヤー端末1が不性であるか否かを判定する。
 不正であると判定されたプレイヤー端末1に対しては、所定のペナルティ処理が実行される。
 ペナルティ処理の内容は、特に限定されないが、例えば本実施形態では、不正なプレイヤー端末1からのリクエストを破棄し、レスポンスを返さないという処理が採用されている。
 なお、全てのリクエストの正当性を確認するとコストが大きい等の観点から、不正監視部106は、例えば一部のリクエスト、より具体的には無作為に抽出した全体の10%程度のリクエストのみを確認してもよい。この場合、ペナルティ処理としては例えば、所定時間(例えば5分間)、不正が認められたプレイヤー端末1からのリクエストを破棄する等の処理を採用することができる。
 以上、予防的負荷分散処理(図5参照)を実現するためのサーバ2の機能的構成について説明した。
 次に、予防的負荷分散処理が実行される際のプレイヤー端末1の機能的構成について説明する。
 図4に示すように、プレイヤー端末1のCPU21においては、コマンド受付部121と、待ち時間設定部122と、リクエスト送信制御部123と、表示制御部124と、レスポンス受信制御部125と、コマンド実行部126とが機能する。
 プレイヤーは、ゲーム実行中において、コマンドの入力が可能な画面(図7乃至図9を参照して後述する)が表示部27に表示されている状態で、タッチ操作入力部26に対して所定のタッチ操作(例えばタップ操作等)をすることで、所定のコマンドを入力する。
 コマンド受付部121は、このような所定のコマンドを受け付ける。
 待ち時間設定部122は、サーバ2から待ち時間を示す情報が送信されてきた場合には、当該情報で特定される待ち時間を設定する。これに対して、待ち時間設定部122は、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する。ここで、所定時間は、特に限定されず、予め設定された固定時間でもよいし、可変時間でもよい。また、所定時間には0も含むものとする。ここで、待ち時間が0とは、コマンドが受け付けられると即座に当該コマンドがリクエストとして送信されることを意味する。
 リクエスト送信制御部123は、待ち時間設定部122により設定された待ち時間の経過後に、コマンドをリクエストとして、通信部30を介してサーバ2に送信する。
 このようにして、プレイヤー端末1側で、コマンド受付部121、待ち時間設定部122、及びリクエスト送信制御部123が機能することで、予防的負荷分散処理が実現される。
 ただし、プレイヤーにとっては、所定のコマンドを入力した後、当該所定のコマンドが実行されるまでに、待ち時間分だけ待たされることには変わりはない。この場合、プレイヤー端末1側で何ら措置を施さないと、プレイヤーは飽きてしまったり、何らかのストレスを覚えるおそれがある。
 ここで重要な点は、従来においては、プレイヤーの端末側では、コマンド入力と、当該コマンドの実行とは同期することが前提となっていた点である。つまり、従来のプレイヤーは、コマンドを入力すると、即座に当該コマンドが実行されるはず、という意識を持っていた。
 このため、端末やプレイヤーにとっては、コマンド入力後、当該コマンドに対応するリクエストがサーバに送信され、そのレスポンスがサーバから到達し、当該レスポンスに基づいてコマンドが実行されるまでの時間が長くなると、それは「予期せぬ待ち時間」として把握される。
 つまり、従来のサーバにおいて輻輳が発生したことにより、この「予期せぬ待ち時間」が発生することは、端末やプレイヤーにとって想定外のことである。
 このような「予期せぬ待ち時間」に対して端末側に何らかの措置を事前に施すことは困難である。このため、何ら措置を施していない従来の端末側では、「予期せぬ待ち時間」が経過するまで、待機状態となる。つまり、プレイヤーや端末にとっては、コマンド入力後、即座にコマンドが実行されずに待機状態が継続する時間が、「予期せぬ待ち時間」である。しかも、この「予期せぬ待ち時間」の長さは、プレイヤーや端末の与り知らぬサーバ側の輻輳の状態によって変化してしまう。従って、「予期せぬ待ち時間」が発生して端末側で待機状態になると、プレイヤーは、いつになったらコマンドが実行されるのかを予測することができなくなる。これにより、プレイヤーは、飽きてしまったり、何らかのストレスを覚えてしまうことになる。
 これに対して、本実施形態における「待ち時間」とは、サーバ2側で意図的に発生させた時間パラメータであり、従来の「予期せぬ待ち時間」とは本質的に異なる概念である。
 つまり、プレイヤー端末1は、このような「待ち時間(時間パラメータ)」が到達することは予測済みである。従って、プレイヤー端末1側で、「待ち時間(時間パラメータ)」を用いて、プレイヤーを飽きさせずかつストレスを与えないようにするための措置を施すことが可能になる。
 具体的には本実施形態では、プレイヤー端末1は、コマンドの入力と、コマンドの実行とを非同期にして、コマンドの入力から当該コマンドの実行までの時間の流れの速度を、「待ち時間(時間パラメータ)」に応じて制御する。そして、プレイヤー端末1は、この時間の流れの速度をプレイヤーに視覚的に提示する。このような措置により、プレイヤーを飽きさせずかつストレスを与えないようにすることが可能になる。
 より具体的には本実施形態では、表示制御部124は、図7乃至図9に示すようなゲーム画面を表示部27に表示する制御を実行することで、プレイヤーを飽きさせずかつストレスを与えないようにしている。
 図7は、本実施形態のゲーム画面の一例を示す図である。
 図7のゲーム画面210の上方には、例えばRPG(Roll Playing Game)における戦闘画面221が表示される。
 この戦闘画面221の下方に、プレイヤーがコマンドを選択するためのボタン(以下、「コマンド選択ボタン」と呼ぶ)が配置されたボタン群領域222が表示される。さらにその下方に、コマンドを示すアイコン(以下、「コマンドアイコン」と呼ぶ)があたかも一定方向に流れていくコマンドキュー223が表示される。
 プレイヤーは、ボタン群領域222に配置された1以上のコマンド選択ボタンのうち、所望のコマンド選択ボタンに対してタップ操作をすることで、対応するコマンドを入力する。
 コマンドキュー223は、FIFO(First-in,First-out)のキューとして実装されている。従って、プレイヤーにより入力されたコマンド(タップ操作されたコマンド選択ボタン)に対応するコマンドアイコンは、コマンドキュー223の最後尾(図7の例では最右側)に追加される。
 つまり、プレイヤーにより複数種類のコマンド選択ボタンがタップ操作されると、タップ操作がなされた順番で、複数種類のコマンドアイコンの夫々がコマンドキュー223に順次格納されて、当該コマンドキュー223内を順次左方に移動していく。
 そして、左端(図7の例では「発動」という文字列が記載された端)に到達したコマンドアイコンから、対応するコマンドが実行されるようになっている。
 ここで、コマンドキュー223内のコマンドアイコンの移動速度は、一定ではなく、待ち時間に応じて可変する。即ち、サーバ2から設定された待ち時間が長いほど、コマンドアイコンの移動速度は遅くなる。換言すると、サーバ2からの待ち時間の通知をサーバ2からの指示と把握するならば、サーバ2からの指示に応じて、コマンドキュー223の中のコマンドアイコンの移動速度が調整される。
 このように、コマンドキュー223内のコマンドアイコンの移動速度が、プレイヤー端末1側での時間の流れの速度に該当し、サーバ2により設定された「待ち時間(時間パラメータ)」に応じて制御される。
 従って、プレイヤーにとっては、コマンドが発動(実行)されるまでの時間の流れの速度が可視化される。つまり、プレイヤーは、あとどのぐらい待てばコマンドが発動されるのかを容易に視認することができる。これにより、プレイヤーは、ストレスもさほど受けずに、コマンドが発動されるまで飽きずに待つことができる。
 換言すると、このようなコマンドキュー223を導入したことで、コマンドの非同期入力とプレイヤー端末1側での時間の流れの速度制御とその可視化が実現され、その結果として、プレイヤーにストレスを与えずかつ飽きさせることない状態で、予防的負荷分散処理を実現することが可能になる。
 以下、コマンドの非同期入力について説明する。
 即ち、ボタン群領域222に配置されるコマンド選択ボタン自体は、一般的なRPG等のゲームにおいて従来から用いられているものである。
 従来においては、クライアント(本実施形態のプレイヤー端末1に相当する従来の端末)においてコマンド選択ボタンが押下されると、従来のサーバにリクエストが送信され、当該サーバからレスポンスが受信された後、コマンドが実行される。このリクエストの送信からレスポンスの受信までに要する時間は通常短時間であるため、プレイヤーにとっては、コマンド選択ボタンの押下とコマンドの実行とは同期しているように感じられる。それゆえ、サーバが負荷大の状態になり、コマンド選択ボタンの押下からコマンドの実行までの間にタイムラグが発生すると、プレイヤーは、ストレスを受けたり、飽きてしまうことになる。
 これに対して、本実施形態では、コマンド選択ボタンの押下タイミングと、コマンドの実行とにはタイムラグがあることが前提となっているUI(User Interface)が採用されている。このようなUIが、コマンドの非同期入力である。そして、このタイムラグの時間長が、サーバ2から与えられた待ち時間(時間パラメータ)により可変制御され、その可変制御の結果の視覚化、即ち時間の流れの速度の視覚化が行われる。
 即ち、コマンド選択ボタンが押下されると、対応するコマンドアイコンがコマンドキュー223に格納されて、左方への移動を開始する。このコマンドアイコンの移動速度が、端末1側での時間の流れの速度に該当し、サーバ2から指定された待ち時間に応じて可変制御される。そして、サーバ2から指定された待ち時間が経過すると、リクエストがサーバ2に送信される。サーバ2側では予防的負荷分散処理が実行されているので、負荷大になることなく、短時間でレスポンスが送信されてくる。
 すると、図4のレスポンス受信制御部125は、当該レスポンスを受信する制御を実行する。ここで、待ち時間を示す情報も送信されてきている場合、レスポンス受信制御部125は、当該情報も受信して、待ち時間設定部122に提供する。コマンド実行部126は、レスポンスが受信されると、コマンドを実行する。
 このような一連の処理についていま現在どの程度まで進んでいるのか、つまり、あとどのぐらい時間が経てばコマンドが実行されるのかについては、対応するコマンドアイコンのコマンドキュー223の移動状況を視認することで、プレイヤーは容易に把握することができる。このため、プレイヤーは、ストレスを受けたり、飽きてしまうことなく、コマンドの実行を待つことができる。
 さらに、このようなコマンドの非同期入力を採用することで、コマンドの編集も可能になる。
 即ち、コマンドの非同期入力を採用すると、プレイヤーは、所定の第1コマンドを入力した後、当該第1コマンドが実行されるまでの間、さらに第2コマンドを入力することができる。つまり、1の種類のコマンドが実行される前に、複数種類のコマンドの入力が可能になる。
 従って、コマンドをリクエストとして送信する前の段階であれば、当該コマンドの編集も可能になる。
 図8は、コマンドの編集を説明するための模式図である。
 図8の例では、6種類の第1コマンド乃至第6コマンドがその順番で順次入力され、第1コマンド乃至第6コマンドの夫々に対応するコマンドアイコンC1乃至C6の夫々が、その順番でコマンドキュー223に格納されている。ここで、コマンド入力時にコマンドアイコンが格納される位置を以下「第1位置」と呼ぶ。コマンドアイコンC1乃至C6の夫々は、その順番で順次、待ち時間(時間パラメータ)に応じた移動速度で第1位置から左方に移動していく。
 ここで、コマンドアイコンの移動速度(プレイヤー端末1側での時間の流れの速度)は待ち時間に応じて変更されるので、コマンドキュー223内の所定位置にコマンドアイコンが到達したときに、リクエストの送信を行うことが可能になる。このように、リクエストが送信される時にコマンドアイコンが到達する所定位置を、以下「第2位置」と呼ぶ。
 コマンドキュー223のうち、第1位置から第2位置までの右側の範囲Rに存在するコマンドアイコンは、リクエスト送信前の段階のコマンドに対応するものである。従って、プレイヤーは、これらのコマンドを自由に編集できる。つまり、図8の例では、コマンドアイコンC2乃至C6に対応する第2コマンド乃至第6コマンドが編集可能である。
 これに対して、第2位置から、コマンドが実行される位置(図8の例では「発動」の文字列が表示される位置であり、以下「第3位置」と呼ぶ)までの左側の範囲Lに存在するコマンドアイコンは、リクエストが既に送信されてレスポンスの受信を待っている段階のコマンドに対応するものである。従って、プレイヤーは、これらのコマンドを編集することができない。つまり、図8の例では、コマンドアイコンC1に対応する第1コマンドは編集不可能である。
 コマンドの編集の操作等は、特に限定されない。例えば本実施形態では図8に示すように、プレイヤーは、編集対象のコマンドアイコンに対して所定のタッチ操作をすることで、当該コマンドアイコンに対応するコマンドの編集をすることができる。
 具体的には例えば、プレイヤーは、ドラッグ操作で、コマンドアイコンC5をコマンドキュー223の外側に移動させることで、当該コマンドアイコンC5に対応する第5コマンドをキャンセルすることができる。
 また例えば、プレイヤーは、ドラッグ操作で、コマンドアイコンC2,C4の順番(配置位置)を入れ替えることで、当該コマンドアイコンC2,C4の夫々にに対応する第2コマンド,第4コマンドの実行(発動)の順番を変更することができる。
 このように、コマンドキュー223内のコマンドアイコンの移動速度が低下したとき、即ち、サーバ2から待ち時間が設定されたとき、プレイヤーは、ボタン群領域222に配置されたコマンド選択ボタンに対してタップ操作したり、コマンドキュー223内のコマンドアイコンに対してドラッグ操作をすることで、対応するコマンドの追加や編集を行うことができる。ここで、コマンドの編集の種類は、特に限定されず、上述したキャンセルや、順序の入れ替え等任意の種類を採用することができる。
 これにより、コマンドの非同期入力を採用していない従来の方式と比較して、プレイヤーは、複数種類のコマンドを高速に入力し、かつ、それらをゲームの状況等に応じて適宜変更しながら、より深く当該ゲームの戦術を構成することができるようになる。
 図9は、コマンドの非同期入力の具体例を示すゲーム画面の遷移図である。
 図9の左側のゲーム画面が表示された状態で、プレイヤーは、戦闘画面221に表示されたキャラクタのうち、枠251(実際には枠251は表示されなくてもよい)内の第1キャラクタをタップ操作することで、当該第1キャラクタを選択することができる。
 すると、第1キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
 ここで、プレイヤーは、コマンド選択ボタンB7に対してタップ操作をしたものとする。すると、コマンド選択ボタンB7に対応するコマンドアイコンC7が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。
 次に、図9の中央のゲーム画面として示すように、プレイヤーは、戦闘画面221に表示されたキャラクタのうち、枠252(実際には枠252は表示されなくてもよい)内の第2キャラクタをタップ操作することで、当該第2キャラクタを選択することができる。
 すると、第2キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
 ここで、プレイヤーは、コマンド選択ボタンB8に対してタップ操作をしたものとする。すると、コマンド選択ボタンB8に対応するコマンドアイコンC8が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。この間、コマンドアイコンC7はさらに左方に移動している。
 このように、コマンドの非同期入力を採用することで、先に入力したコマンドがサーバ2に対してリクエストとして送信される前であっても、次のコマンドの入力が可能になる。
 次に、図9の右側のゲーム画面として示すように、プレイヤーは、戦闘画面221に表示されたキャラクタのうち、枠253(実際には枠253は表示されなくてもよい)内の第3キャラクタをタップ操作することで、当該第3キャラクタを選択することができる。
 すると、第3キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
 ここで、プレイヤーは、コマンド選択ボタンB9に対してタップ操作をしたものとする。すると、コマンド選択ボタンB9に対応するコマンドアイコンC9が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。この間、コマンドアイコンC8はさらに左方に移動している。
 コマンドアイコンC7は、さらなる左方の第2位置を通過して(その結果、対応するコマンドがサーバ2に対してリクエストとして送信され、サーバ2からのレスポンスが受信されて)、第3位置まで到達している。従って、この時点で図8の左側のゲーム画面において入力されたコマンド、即ちコマンドアイコンC7(コマンド選択ボタンB7)に対応するコマンドが実行される。
 以上、図4乃至図9を参照して、予防的負荷分散処理及びコマンドの非同期入力を実現可能にするためのプレイヤー端末1及びサーバ2の機能的構成について説明した。
 次に、図10及び図11を参照して、このような機能的構成を有するプレイヤー端末1及びサーバ2の処理の流れを説明する。
 図10は、サーバ2側の処理の流れを説明するフローチャートである。
 ステップS1において、負荷監視部102は、負荷大か否かを判定する。
 即ち、負荷監視部102は、サーバ2のリソースの使用状況から、現在のリクエスト数が、キャパシティ数に基づく所定の閾値を超えないという条件を満たしているか否かを監視する。
 前記条件を満たしている場合、つまり、現在のリクエスト数が当該閾値を超えていない場合、ステップS1においてNOであると判定されて、処理はステップS3に進む。
 ステップS3において、待ち時間演算部103は、待ち時間を0として演算する。
 これに対して、前記条件を満たしていない場合、つまり、現在のリクエスト数が当該閾値を超えている場合、負荷大であるとしてステップS1においてYESであると判定され、処理はステップS2に進む。ステップS2において、待ち時間演算部103は、例えば上述の式(1)に従って待ち時間を演算する。
 ステップS4において、リクエスト受信制御部101は、リクエストが有るか否かを判定する。
 リクエストが無い場合には、ステップS4においてNOであると判定されて、処理はステップS9に進む。
 ステップS9において、サーバ2のCPU51は、処理の終了指示が有ったか否かを判定する。ここで、処理の終了指示は、特に限定されないが、本実施形態ではサーバ2の電源遮断が採用されている。つまり、サーバ2において電源が遮断されると、ステップS9においてYESであると判定されて、サーバ2側の処理は終了になる。
 これに対して、サーバ2において電源が遮断されない限り、ステップS9においてNOであると判定されて処理はステップS1に戻され、それ以降の処理が繰り返される。
 ここで、複数のプレイヤー端末1(図1の例ではプレイヤー端末1-1乃至1-m)のうち所定の1台からリクエストが送信されると、ステップS4においてYESであると判定されて、処理はステップS5に進む。
 ステップS5において、不正監視部106は、リクエストの待ち時間が適正か否かを判定する。
 即ち、不正監視部106は、待ち時間DB111に格納されたリスト(図9参照)から、リクエストに含まれるクライアントIDと対応付けられた待ち時間等を検索する。
 その検索結果に基づいて特定される適正な時間よりも早いタイミングでリクエストが送信されてきた場合、不正であるとしてステップS5においてNOであると判定されて処理はステップ6に進む。
 ステップS6において、不正監視部106は、リクエストを送信してきた不正なプレイヤー端末1に対して、ペナルティ処理を実行する。これにより、処理はステップS9に進み、それ以降の処理が繰り返される。
 これに対して、リクエストの待ち時間が適正であれば、ステップS5においてYESであると判定されて、処理はステップS7に進む。
 ステップS7において、リクエスト実行部104は、リクエストを実行し、レスポンスを生成する。
 ステップS8において、レスポンス送信制御部105は、レスポンスと待ち時間をプレイヤー端末1に送信する。
 その後処理はステップS9に進み、それ以降の処理が繰り返される。
 このようなサーバ2側の処理に対して、プレイヤー端末1側の処理の流れは、図11に示されるようになる。
 即ち、図11は、プレイヤー端末1側の処理の流れを説明するフローチャートである。
 図11のプレイヤー端末1側の処理は、ゲーム実行中の所定のイベント、例えばRPGにおける戦闘のイベント等により開始される。
 ステップS21において、表示制御部124は、コマンド選択用UI、キューを含むゲーム画面を表示部27に表示させる。
 ここで、コマンド選択用UIとは、例えば上述の図7乃至図9で説明したコマンド選択ボタンが配置されたボタン群領域222が該当する。キューとは、例えばコマンドキュー223が該当する。
 ステップS22において、コマンド受付部121は、コマンドが入力されたか否かを判定する。
 コマンドが入力されていない場合、ステップS22においてNOであると判定されて、処理はステップS34に進む。
 ステップS34において、プレイヤー端末1のCPU21は、処理の終了指示が有ったか否かを判定する。ここで、処理の終了指示は、特に限定されないが、本実施形態では上記所定のイベント(例えば先頭のイベント等)の終了の指示が採用されている。つまり、所定のイベントが終了すると、ステップS34においてYESであると判定されて、プレイヤー端末1側の処理は終了になる。
 これに対して、所定のイベントが継続中である場合、ステップS34においてNOであると判定されて処理はステップS21に戻され、それ以降の処理が繰り返される。
 所定のコマンド選択ボタンがタップ操作されて、対応するコマンドがコマンド受付部121により受け付けられると、ステップS22においてYESであると判定されて処理はステップS23に進む。
 ステップS23において、待ち時間設定部122は、サーバ2から待ち時間が通知済みか否かを判定する。
 サーバ2から待ち時間が未通知の場合(図10のステップS3で待ち時間が0に設定された場合も含む)、ステップS23においてNOであると判定されて、処理はステップS24に進む。
 ステップS24において、待ち時間設定部122は、規定の待ち時間を設定する。ここで、規定の待ち時間とは、プレイヤー端末1側での時間の流れの速度についての「基準速度」を示す時間パラメータである。このようなステップS24の処理が終了すると、処理はステップS26に進む。
 これに対して、待ち時間が通知済みの場合(前回のステップS32において受信されたレスポンスに対して、待ち時間を示す情報が付加されていた場合)、ステップS23においてYESであると判定されて、処理はステップS25に進む。
 ステップS25において、待ち時間設定部122は、サーバ2からの待ち時間を設定する。ここで、サーバ2からの待ち時間とは、上述したように、プレイヤー端末1側での時間の流れの速度を基準速度に対して変更するための時間パラメータであって、サーバ2により設定される時間パラメータである。このようなステップS25の処理が終了すると、処理はステップS26に進む。
 ステップS26において、表示制御部124は、ステップS24又はS25において設定された待ち時間を用いて、コマンドアイコンの移動速度(プレイヤー端末1側での時間の流れの速度)を演算する。
 具体的には例えば、コマンドアイコンの描画方式として、多くのゲームシステムで採用されているフレーム描画方式が採用されている場合、表示制御部124は、1フレームあたりの移動ピクセル量を、移動速度として演算する。
 より具体的には例えば、50msec毎に画面が更新されるゲームシステムにおいて、サーバ2から「1000msec」という待ち時間を示す情報が通知されものとする。この場合、表示制御部124は、上述の例のコマンドキュー223内の最後尾の第1位置から、リクエストが送信される第2位置まで1秒間でコマンドアイコンが到達するように、移動速度を演算する。即ち、表示制御部124は、コマンドアイコンを第1位置に配置した場合における、当該アイコンから第2位置までのピクセル数を(1000/50)で除算した値を、1フレームあたりの移動ピクセル量(移動速度)として演算する。
 ステップS27において、表示制御部124は、コマンドアイコンの移動表示を開始させる。
 即ち、上述の例で言えば、コマンドアイコンは、コマンドキュー223内の最後尾の第1位置に配置され、左方に移動を開始する。
 ステップS28において、コマンド受付部121は、コマンドアイコンの操作が有ったか否かを判定する。
 コマンドアイコンに対するドラッグ操作等が有った場合、ステップS28においてYESであると判定されて、処理はステップS29に進む。
 ステップS29において、表示制御部124は、コマンドを削除したり順番を変更等する編集処理を実行する。これにより、処理はステップS30に進む。
 これに対して、コマンドアイコンに対するドラッグ操作等が無かった場合、ステップS28においてNOであると判定されて、コマンドの編集処理(ステップS29の処理)は実行されずに、処理はステップS30に進む。
 ステップS30において、表示制御部124は、待ち時間が経過したか否かを判定する。
 待ち時間が経過していない場合、リクエストを送信するタイミングでないので、処理はステップS28に戻され、それ以降の処理が繰り返される。即ち、リクエストが送信されるまでの間、コマンドアイコンの操作による、コマンドの編集処理の実行が可能になる。
 待ち時間が経過すると、ステップS30においてYESであると判定されて、処理はステップS31に進む。
 ステップS31において、リクエスト送信制御部123は、コマンドをリクエストとしてサーバ2に送信する。
 これにより、図10のステップS4においてYESであると判定されて、不正なリクエストでない限り、ステップS8においてレスポンスと待ち時間がプレイヤー端末1に送信されてくる。
 ステップS32において、レスポンス受信制御部125は、レスポンスと待ち時間を受信する。
 ステップS33において、コマンド実行部126は、コマンドを実行する。
 これにより、処理はステップS34に進み、それ以降の処理が繰り返される。
 なお、説明の便宜上、図11のフローチャートでは、ステップS27乃至S33の処理は、ステップS21乃至S34内の一環の処理として記載されている。
 ただし、実際には上述したように、本実施形態ではコマンドの非同期入力が実現されているので、ステップS27乃至S33の処理は、複数のコマンドが入力される毎に、複数のコマンドの夫々に対する処理として並行して実行される。
 以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
 例えば、図4の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図4の例に限定されない。また、機能ブロックの存在場所も、図4に特に限定されず、任意でよい。例えば、サーバ2の機能ブロックをプレイヤー端末1等に移譲させてもよいし、逆に端末1の機能ブロックをサーバ2等に移譲させてもよい。
 また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
 各機能ブロックの処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
 コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
 このようなプログラムを含む記録媒体は、プレイヤーにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でプレイヤーに提供される記録媒体等で構成される。
 なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
 また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
 換言すると、本発明が適用される情報処理システムは、上述の図1の実施形態としての情報処理システムを含め、次のような構成を有する各種各様の実施形態を取ることができる。
 即ち、本発明が適用される情報処理システムは、
 サーバ(例えば図1等のサーバ2)と、当該サーバに所定のリクエストを送信する複数の端末(例えば図1等プレイヤー端末1-1乃至1-m)とを含む。
 前記サーバは、
 リクエストの処理に関する所定条件を満たしているか否かを監視する監視手段(例えば図4の負荷監視部102)と、
 前記所定条件を満たしていない場合、端末側でのリクエストの送信までの待ち時間を演算する待ち時間演算手段(例えば図4の待ち時間演算部103)と、
 リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段(例えば図4のリクエスト実行部104)と、
 前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段(例えば図4のレスポンス送信制御部105)と、
 を備える。
 前記端末は、
 所定のコマンドを受け付けるコマンド受付手段(例えば図4のコマンド受付部121)と、
 前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段(例えば図4の待ち時間設定部122)と、
 設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段(例えば図4の表示制御部124)と、
 設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段(例えば図4のリクエスト送信制御部123)と、
 を備える。
 ここで、例えばサーバ側の有限の計算機資源の処理能力を予め把握し、当該処理能力内のリクエストが到達することを前提として「所定の条件」を設定することができる。これにより、当該処理能力を超過するリクエストが到達して、サーバ負荷がピークに達する前に、各端末からのリクエストの到達を時間方向に分散することが可能になる。即ち、予防的負荷分散処理が実現可能になる。
 つまり、サーバ・インフラの処理能力を超えるリクエストが来るときには、各端末に対して待ち時間が夫々設定されて、当該待ち時間が到達した順にリクエストが順次サーバに送信されてくる。これにより、サーバは、致命的な輻輳を起こすことなく、それらのリクエストを処理することができる。
 このようにして、サーバでの輻輳を防止する技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術が確立される。
 さらに、端末側では、所定のコマンドが受け付けられてから、当該コマンドのリクエストが送信されるまでにはタイムラグがあることが前提となっているため、上述のコマンド非同期入力が実現される。
 そして、サーバにより時間パラメータとして設定される「待ち時間」、又は基準となる「所定時間」に応じて、端末側での時間の流れの速度が制御され、その時間の流れの速度が視覚化されてユーザ(ゲームの場合プレイヤー)に提示される。
 これにより、ユーザは、コマンド入力後当該コマンドの実行までの間、飽きずにかつストレスを覚えずに済むようになる。
 また、本発明が適用される情報処理システムでは、負荷分散をする際に追加のサーバハードウェアやネットワーク設備を特に必要としないため、従来よりも極めて実施コストで実現可能である。さらに、本発明が適用される情報処理システムは、既存のアプリケーション・プロトコル(httpやhttps、Web Socket等)を用いて実装することができるため、既存のロードバランサをそのまま併用することができる。
 ここで、サーバの前記待ち時間演算手段は、単位時間あたりに到達するリクエストの数と、当該単位時間あたりに処理可能なリクエストの数とに基づいて、前記待ち時間を演算することができる。
 これにより、単位時間あたりに処理可能なリクエストの数(キャパシティ)と、単位時間あたりに到達するリクエストの数(実績)とに基づく適切な時間が、待ち時間として設定される。その結果、予防的負荷分散処理がより効率的に実現可能になる。
 また、サーバは、
 前記複数の端末毎に、直前のリクエストの到達時刻、及び前記待ち時間を対応付けて管理する管理手段(例えば図4の待ち時間DB111及びCPU51)と、
 リクエストが到達した際に、前記管理手段の管理内容に基づいて、当該リクエストを送信した前記端末が前記待ち時間を守ったか否かを監視する第2監視手段(例えば図4の不正監視部106)と、
 をさらに備えるようにすることができる。
 これにより、待ち時間を守らない不正な端末(ユーザであり、ゲームの場合プレイヤー)に対して各種ペナルティ処理を実行することが容易に可能になる。
 ここで、端末の表示制御手段は、上述したように、設定された待ち時間に応じて、端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する。
 また、送信制御手段は、設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する。
 ここで、「当該時間の流れの速度で変化する画像」は、上述の実施形態に限定されず、任意の動画像、例えばゲームが採用されている場合には当該ゲーム内のキャラクタが動くアニメーション等を採用することもできる。
 この場合、端末側で設定される「待ち時間」とは、端末側での時間の流れの速度を制御するパラメータであり、次の2通りの方法で使用される。
 1つ目の方法は、動画像の再生時間を制御するパラメータとして用いる方法である。これにより、「当該時間の流れの速度で変化する画像」が実現可能になる。
 2つ目の方法は、端末から次のリクエストがサーバへ送信されるタイミングを制御するパラメータとして用いる方法である。これにより、送信制御手段の制御が実現可能になる。
 このように「当該時間の流れの速度で変化する画像」は、任意の動画像で足りるが、上述の実施形態のように、コマンドを示すシンボルを、第1位置から第2位置まで移動させる様子を示す画像であると好適である。
 この場合、シンボルの移動速度が、端末側での時間の流れの速度に該当する。つまり、当該時間の流れの速度で変化する画像とは、当該移動速度で前記シンボルを前記第2位置に向かって移動させる様子を示す画像である。
 ユーザ(ゲームの場合プレイヤー)は、このような画像を視認することで、その時間の流れの速度を即座にかつ明確に認識することができるようになる。即ち、ユーザは、あとどのぐらいでコマンドが実行されるのかを即座にかつ明確に視認することができる。その結果、ユーザは、より一段と、飽きずにかつストレスを覚えずに済むようになる。
 具体的には、端末の前記表示制御手段は、
 コマンドを示すシンボルを、第1位置から第2位置まで移動させる様子を示す画像を表示する制御として、
 前記コマンドが受け付けられたときには前記シンボルを第1位置に配置させ、
 設定された前記待ち時間で前記シンボルが前記第1位置から前記第2位置まで移動するように、前記シンボルの移動速度を決定し、
 当該移動速度で前記シンボルを前記第2位置に向かって移動させる、
 様子を示す画像を表示させる制御を実行し、
 前記送信制御手段は、前記シンボルが前記第2位置に到達したときに、前記コマンドをリクエストとして前記サーバに送信することができる。
 ここで、シンボルが第2位置に到達した際にリクエストが端末からサーバに送信される。予防的負荷分散処理が実行されていたとしても、リクエストの送信からレスポンスの受信までには短時間であるが、一定のタイムラグは生ずる。つまり、シンボルが第2位置に到達してから、コマンドが実行(発動)されるまでに、一定のタイムラグが生ずる。
 そこで、前記表示制御手段は、前記シンボルを、前記第1位置から前記第2位置を経由して第3位置まで移動させる様子を示す画像の表示を制御し、
 前記シンボルが前記第3位置に到達したときに、前記コマンドに対応する前記サーバからの前記レスポンスに基づいて、当該コマンドに対応する処理を実行するコマンド実行手段をさらに備える、
 ようにすることができる。
 前記コマンド受付手段は、複数のコマンドを順次受け付け、
 前記表示制御手段は、前記複数のコマンドの夫々に対応する複数のシンボルを、コマンドの受付け順に、前記第1位置から第2位置まで夫々移動させる様子を示す画像を表示させ、
 前記第2位置に到達する前のシンボルについては、他のシンボルとの順番を入れ替える操作を、当該シンボルに対応するコマンドの実行順番の変更指示として受け付けるコマンド順番変更手段をさらに備える、
 ようにしてもよい。
 また、前記第2位置に到達する前のシンボルに対して前記画像から削除する操作を、当該シンボルに対応するコマンドの取消指示として受け付けるコマンド取消手段をさらに備える、
 ようにしてもよい。
 これにより、ユーザ(ゲームの場合プレイヤー)は、コマンドを入力した後に、別のコマンドを入力してコマンドの実行(発動)順番を変更したり、コマンドを削除したり等の編集操作が容易に可能になる。その結果として、ユーザにより一段とストレスを与えずかつ飽きさせることなく、予防的負荷分散処理を実現することが可能になる。
 1、1-1乃至1-m・・・プレイヤー端末、2・・・サーバ、21・・・CPU、51・・・CPU、101・・・リクエスト受信制御部、102・・・負荷監視部、103・・・待ち時間演算部、104・・・リクエスト実行部、105・・・レスポンス送信制御部、106・・・不正監視部、111・・・待ち時間DB、121・・・コマンド受付部、122・・・待ち時間設定部、123・・・リクエスト送信制御部、124・・・表示制御部、125・・・レスポンス受信制御部、126・・・コマンド実行部

Claims (11)

  1.  サーバと、当該サーバに所定のリクエストを送信する複数の端末とを含む情報処理システムにおいて、
     前記サーバは、
     リクエストの処理に関する所定条件を満たしているか否かを監視する監視手段と、
     前記所定条件を満たしていない場合、端末側でのリクエストの送信までの待ち時間を演算する待ち時間演算手段と、
     リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
     前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段と、
     を備え、
     前記端末は、
     所定のコマンドを受け付けるコマンド受付手段と、
     前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
     設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
     設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段と、
     を備える、
     情報処理システム。
  2.  所定のリクエストを送信する複数の端末と通信をするサーバにおいて、
     リクエストの処理に関する所定条件を満たしているか否かを監視する第1監視手段と、
     前記所定条件を満たしていない場合、端末側での時間の流れの速度を制御する時間パラメータとして待ち時間を演算する待ち時間演算手段と、
     リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
     前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御手段と、
     を備えるサーバ。
  3.  前記待ち時間演算手段は、単位時間あたりに到達するリクエストの数と、当該単位時間あたりに処理可能なリクエストの数とに基づいて、前記待ち時間を演算する
     請求項2に記載のサーバ。
  4.  前記複数の端末毎に、直前のリクエストの到達時刻、及び前記待ち時間を対応付けて管理する管理手段と、
     リクエストが到達した際に、前記管理手段の管理内容に基づいて、当該リクエストを送信した前記端末が前記待ち時間を守ったか否かを監視する第2監視手段と、
     を備える請求項2又は3に記載のサーバ。
  5.  所定のリクエストを送信する複数の端末と通信をするコンピュータに、
     リクエストの処理に関する所定条件を満たしているか否かを監視する監視ステップと、
     前記所定条件を満たしていない場合、端末側での時間の流れの速度を制御する時間パラメータとして待ち時間を演算する待ち時間演算ステップと、
     リクエストを到達順に実行して、レスポンスを生成するリクエスト実行ステップと、
     前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御ステップと、
     を含む制御処理を実行させるプログラム。
  6.  リクエストに対するレスポンスを、当該リクエストを送信した端末に送信すると共に、所定条件を満たしている場合には次のリクエストの送信までの待ち時間を示す情報も併せて当該端末に送信するサーバとの間で通信をする端末において、
     所定のコマンドを受け付けるコマンド受付手段と、
     前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
     設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
     設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御手段と、
     を備える端末。
  7.  前記表示制御手段は、
     コマンドを示すシンボルを、第1位置から第2位置まで移動させる様子を示す画像を表示する制御として、
     前記コマンドが受け付けられたときには前記シンボルを第1位置に配置させ、
     設定された前記待ち時間で前記シンボルが前記第1位置から前記第2位置まで移動するように、前記シンボルの移動速度を決定し、
     当該移動速度で前記シンボルを前記第2位置に向かって移動させる、
     様子を示す画像を表示させる制御を実行し、
     前記送信制御手段は、前記シンボルが前記第2位置に到達したときに、前記コマンドをリクエストとして前記サーバに送信する、
     請求項6に記載の端末。
  8.  前記表示制御手段は、前記シンボルを、前記第1位置から前記第2位置を経由して第3位置まで移動させる様子を示す画像の表示を制御し、
     前記シンボルが前記第3位置に到達したときに、前記コマンドに対応する前記サーバからの前記レスポンスに基づいて、当該コマンドに対応する処理を実行するコマンド実行手段をさらに備える、
     請求項7に記載の端末。
  9.  前記コマンド受付手段は、複数のコマンドを順次受け付け、
     前記表示制御手段は、前記複数のコマンドの夫々に対応する複数のシンボルを、コマンドの受付け順に、前記第1位置から第2位置まで夫々移動させる様子を示す画像を表示させ、
     前記第2位置に到達する前のシンボルについては、他のシンボルとの順番を入れ替える操作を、当該シンボルに対応するコマンドの実行順番の変更指示として受け付けるコマンド順番変更手段をさらに備える、
     請求項7又は8に記載の端末。
  10.  前記第2位置に到達する前のシンボルに対して前記画像から削除する操作を、当該シンボルに対応するコマンドの取消指示として受け付けるコマンド取消手段をさらに備える、
     請求項7乃至9のうち何れか1項に記載の端末。
  11.  リクエストに対するレスポンスを、当該リクエストを送信した端末に送信すると共に、所定条件を満たしている場合には次のリクエストの送信までの待ち時間を示す情報も併せて当該端末に送信するサーバとの間で通信の制御をするコンピュータに、
     所定のコマンドを受け付けるコマンド受付ステップと、
     前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定ステップと、
     設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御ステップと、
     設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御ステップと、
     を含む制御処理を実行させるプログラム。
PCT/JP2016/064611 2015-05-22 2016-05-17 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム WO2016190169A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020177025244A KR101944460B1 (ko) 2015-05-22 2016-05-17 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램
CN201680028888.7A CN107614073B (zh) 2015-05-22 2016-05-17 信息处理系统、服务器、终端、介质和控制处理方法
US15/820,330 US10708186B2 (en) 2015-05-22 2017-11-21 Information processing system, server, and program, and terminal and program
HK18104238.4A HK1244743A1 (zh) 2015-05-22 2018-03-28 信息處理系統、服務器和程序、以及終端和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-104218 2015-05-22
JP2015104218A JP5933076B1 (ja) 2015-05-22 2015-05-22 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/820,330 Continuation US10708186B2 (en) 2015-05-22 2017-11-21 Information processing system, server, and program, and terminal and program

Publications (1)

Publication Number Publication Date
WO2016190169A1 true WO2016190169A1 (ja) 2016-12-01

Family

ID=56102954

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/064611 WO2016190169A1 (ja) 2015-05-22 2016-05-17 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム

Country Status (6)

Country Link
US (1) US10708186B2 (ja)
JP (1) JP5933076B1 (ja)
KR (1) KR101944460B1 (ja)
CN (1) CN107614073B (ja)
HK (1) HK1244743A1 (ja)
WO (1) WO2016190169A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107422938A (zh) * 2017-06-21 2017-12-01 网易(杭州)网络有限公司 信息处理方法、装置、电子设备及存储介质
JP6979292B2 (ja) * 2017-06-28 2021-12-08 株式会社タイトー ゲーム機
JP6546676B1 (ja) * 2018-03-26 2019-07-17 株式会社リクルート 順番管理システム、順番管理サーバ、およびプログラム
CN108970115A (zh) * 2018-07-13 2018-12-11 腾讯科技(深圳)有限公司 对战游戏中的信息显示方法、装置、设备及存储介质
JP6595737B1 (ja) * 2019-04-12 2019-10-23 株式会社Cygames 情報処理システムおよび情報処理方法
JP7346203B2 (ja) 2019-04-12 2023-09-19 株式会社Cygames 情報処理システムおよび情報処理方法
JP7377770B2 (ja) * 2020-06-10 2023-11-10 株式会社ポケモン ゲームプログラム、方法、情報処理装置
US20220014884A1 (en) * 2020-07-07 2022-01-13 Metrolla Inc. Method For Wireless Event-Driven Everything-to-Everything (X2X) Payload Delivery

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115095A (ja) * 1998-10-02 2000-04-21 Matsushita Electric Ind Co Ltd 放送データ送信装置及び受信装置
JP2008204268A (ja) * 2007-02-21 2008-09-04 Nippon Telegr & Teleph Corp <Ntt> サーバ装置およびリクエスト整理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001307285A (ja) * 2000-04-26 2001-11-02 Hankyu Corp タクシー予約システム、適切交通手段教示システム、タクシー予約方法、適切交通手段教示方法および記録媒体
JP3548729B2 (ja) * 2001-03-29 2004-07-28 株式会社スクウェア・エニックス ビデオゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲームのプログラム及びビデオゲーム処理方法及びビデオゲーム処理装置
US7594022B2 (en) * 2004-04-21 2009-09-22 Microsoft Corporation Regulating client requests in an electronic messaging environment
US8032799B2 (en) * 2008-09-17 2011-10-04 International Business Machines Corporation System and method for managing server performance degradation in a virtual universe
JP5767223B2 (ja) * 2009-08-12 2015-08-19 アップル インコーポレイテッド 遅延時間を規定する拒否応答
US9009253B2 (en) * 2011-02-16 2015-04-14 Yahoo! Inc. Optimizing server resources using multiple retry for high traffic websites
JP5701708B2 (ja) * 2011-07-26 2015-04-15 株式会社日立製作所 通信システム
CN103096377A (zh) * 2011-11-07 2013-05-08 中兴通讯股份有限公司 网络拥塞状态下控制终端响应触发的方法及系统
WO2014098237A1 (ja) 2012-12-21 2014-06-26 グリー株式会社 ゲーム制御方法、サーバ装置、及び情報記録媒体
JP5648041B2 (ja) * 2012-12-25 2015-01-07 楽天株式会社 申込受付システム、申込受付システムの制御方法、及びプログラム
JP5770782B2 (ja) * 2013-05-23 2015-08-26 株式会社オプティム オペレータ端末、ユーザ端末、所要時間通知方法、及びオペレータ端末用プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115095A (ja) * 1998-10-02 2000-04-21 Matsushita Electric Ind Co Ltd 放送データ送信装置及び受信装置
JP2008204268A (ja) * 2007-02-21 2008-09-04 Nippon Telegr & Teleph Corp <Ntt> サーバ装置およびリクエスト整理方法

Also Published As

Publication number Publication date
CN107614073B (zh) 2020-11-13
US10708186B2 (en) 2020-07-07
JP5933076B1 (ja) 2016-06-08
HK1244743A1 (zh) 2018-08-17
CN107614073A (zh) 2018-01-19
KR101944460B1 (ko) 2019-01-31
KR20170115094A (ko) 2017-10-16
US20180077063A1 (en) 2018-03-15
JP2016214639A (ja) 2016-12-22

Similar Documents

Publication Publication Date Title
JP5933076B1 (ja) 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
KR101595075B1 (ko) 클라우드 기반 게임 시스템에서의 부하 균형
US9433862B2 (en) Dynamic allocation of computing resources in remote gaming environment
JP6272864B2 (ja) ゲーム移動
CN103181177B (zh) 图像处理系统、图像处理方法、运动图像发送装置、运动图像接收装置
JP2023089076A (ja) コンピューティングシステム及び方法
CN109496432A (zh) 流媒体直播方法及系统
EP2654911A2 (en) Load balancing between general purpose processors and graphics processors
WO2014015207A1 (en) Game browsing
JP2013164845A (ja) 振動装置間振動伝達を制御する装置及び方法
JP2015531629A6 (ja) ゲーム移動
CN114667173A (zh) 用于云游戏和5g的边缘计算代理
TW201720115A (zh) 個體網站的功耗估計
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
WO2014026380A1 (en) Falling back from three-dimensional video
JP2008289030A (ja) 画面描画転送システム
US8751564B2 (en) Reducing latency for served applications by anticipatory preprocessing
JP5982436B2 (ja) 画面転送サーバ装置、および画面転送方法
US10514959B2 (en) Distributed virtual local operating system stored in cloud and its method
JP6826295B1 (ja) コンピュータプログラム、情報処理装置及び情報処理方法
CN108885565A (zh) 对游戏模式的操作系统支持
JP7335536B2 (ja) コンピュータプログラム、情報処理装置及び情報処理方法
KR102204223B1 (ko) 원격 접속을 위한 장치, 시스템 및 방법
CN113952724A (zh) 云游戏角色控制方法、装置、存储介质及电子设备

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: 16799875

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20177025244

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16799875

Country of ref document: EP

Kind code of ref document: A1