WO2005045719A1 - 集計システム - Google Patents

集計システム Download PDF

Info

Publication number
WO2005045719A1
WO2005045719A1 PCT/JP2004/016109 JP2004016109W WO2005045719A1 WO 2005045719 A1 WO2005045719 A1 WO 2005045719A1 JP 2004016109 W JP2004016109 W JP 2004016109W WO 2005045719 A1 WO2005045719 A1 WO 2005045719A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
information
array
operation information
user management
Prior art date
Application number
PCT/JP2004/016109
Other languages
English (en)
French (fr)
Inventor
Takashige Fukazawa
Yutaka Hiruma
Koji Arakaki
Tatsuharu Mishina
Original Assignee
Eath Co,Ltd.
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 Eath Co,Ltd. filed Critical Eath Co,Ltd.
Priority to CN200480007643.3A priority Critical patent/CN1762141B/zh
Priority to EP04793217A priority patent/EP1684220A4/en
Priority to US10/553,422 priority patent/US7430603B2/en
Priority to JP2005515276A priority patent/JP3957220B2/ja
Publication of WO2005045719A1 publication Critical patent/WO2005045719A1/ja
Priority to US12/155,044 priority patent/US7987265B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • the present invention relates to a tallying system, and more particularly to a tallying system capable of tallying information operated by a large number of users in a short time via a communication network such as the Internet at a high speed and ordering the information. Things. Background art
  • voting information operated by a viewer (user) in conjunction with a viewer participation program on a television
  • Patent Document 1 discloses a system in which voting information of viewers is collected by a www server via the Internet.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2002-344928
  • the conventional WWW server system as described above includes, for example, a load balancer, an http server, an RDB server, and the like.
  • these devices have the following problems in terms of speeding up.
  • Layer 7 load balancer decodes application protocol for transferring the same user to the same http server, and specifies http server while searching for and retaining past! / There was a limit to the speed due to processing. Also, since load distribution is performed based on the stored user information, proportional expansion is impossible! / ⁇ ⁇ There were also problems.
  • An object of the present invention is to solve the conventional problems as described above.
  • a special ID number is assigned to a user, and this ID number is included in operation information from the user.
  • the user proxy server arbitrarily assigned to the call specifies the user management server by calculation from this ID number, thereby connecting to a specific user management server at high speed.
  • the user management server updates user data based on operation information by accessing the user information recorded by calculation at high speed without performing a timely search from this ID number.
  • Another feature is that information calculated for each user from a plurality of user management servers, for example, headcount data corresponding to score information such as the elapsed time of the reception start force is stored in special transfer array data. is there.
  • the number of persons corresponding to the score information is obtained in the entire system by collecting the transfer sequence data in a predetermined numbering server and performing addition and synthesis.
  • the transfer array data can be divided according to a certain rule, and when the data is divided, multiple servers can perform addition and synthesis, thereby improving performance.
  • the reception Another feature is that the number of transfer array data is converted in order.
  • the configuration of the present invention has the following effects. According to the configuration of the present invention, it is not necessary for the load balancer to transfer the same user to the same user proxy server, so that it is possible to assign packets to arbitrary user proxy servers in the order of arrival at the layer 3 level. Since there is no need to store information for decentralization or to decode and judge application protocols, high-speed processing is possible, and it can be arbitrarily added.
  • the user proxy server divides the user ID by the number of user management servers, and the remainder can specify the user management server storing the user information, so that there is no need to search. Can be relayed at high speed.
  • the user management server stores the user information at the position of the array whose index is the quotient obtained by dividing the user ID by the number of user management servers, so referencing the user information without having to search And rewriting can be performed at high speed.
  • special transfer array data is used for collecting and distributing user information data distributed and processed by a plurality of user management servers. Since the transferred array data is composed of only the unit of the head count data corresponding to the score information where the data exists, the amount of data transferred between the servers is reduced, and the processing Z transfer time is shortened. .
  • the transfer sequence data is simultaneously generated by a plurality of user management servers, and the process of assigning order information to the user information from the distributed sequence is also simultaneously performed by the plurality of user management servers in a distributed manner. Therefore, the processing speed is increased. Furthermore, it is possible to simultaneously perform distributed processing by a plurality of user management servers for combining processing of a plurality of transfer arrays. As a result, user data distributed to a plurality of user management servers can be collected at one location and the order can be obtained at high speed without the need to perform sort processing.
  • the user management server stores user information and operation information in a memory in order to operate at the highest possible speed. Functions and security similar to existing WWW / RDB systems that require There is an effect that a system that can easily increase the processing capacity can be developed while securing the same.
  • the system of the present invention is capable of quickly summarizing response processing and priority processing by ordering even if a large number of calls are concentrated in a short time, and increases the number of user management servers and the like as necessary. This has the effect that the processing capacity can be easily increased.
  • FIG. 1 is a block diagram showing a configuration of an entire system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration of an aggregation node 11-13 of the present invention.
  • FIG. 3 is a block diagram showing a configuration of a management and registration node of the present invention.
  • FIG. 4 is a flowchart 1 showing exchange of processing between the devices of the present invention.
  • FIG. 5 is a flowchart 2 showing exchange of processing between the devices of the present invention.
  • FIG. 6 is a flowchart showing details of operation information registration processing of the present invention.
  • FIG. 7 is an explanatory diagram showing a data configuration of a transfer array of the present invention.
  • FIG. 8 is a flowchart showing details of a total Z ranking process of the present invention.
  • FIG. 9 is an explanatory diagram 1 illustrating an example of a process of registering operation information.
  • FIG. 10 is an explanatory diagram 2 illustrating an example of a process of registering operation information.
  • FIG. 11 is an explanatory diagram 3 showing an example of the operation information registration process.
  • FIG. 12 is an explanatory diagram 4 showing an example of a process of registering operation information.
  • FIG. 13 is an explanatory view 1 showing an example of the processing in S40 of FIG. 8.
  • FIG. 14 is an explanatory diagram 1 showing a processing example of S41-S45 in FIG.
  • FIG. 15 is an explanatory diagram 2 showing a processing example of S40 in FIG. 8.
  • FIG. 16 is an explanatory diagram 2 showing a processing example of S41-S45 in FIG. 8;
  • FIG. 17 is an explanatory diagram showing a processing example of S50 and S51 in FIG. 8;
  • FIG. 18 is an explanatory view 1 showing an example of the processing in S52 and S53 in FIG.
  • FIG. 19 is an explanatory diagram 2 showing a processing example of S52 and S53 in FIG.
  • FIG. 20 is an explanatory view 1 showing an example of the processing in S55 to S59 in FIG.
  • FIG. 21 is an explanatory diagram 2 showing a processing example of S55-S59 in FIG.
  • FIG. 22 is an explanatory diagram 3 showing a processing example of S55-S59 in FIG.
  • FIG. 23 is an explanatory diagram 4 showing a processing example of S55-S59 in FIG. 8;
  • FIG. 24 is an explanatory diagram 5 showing a processing example of S55-S59 in FIG. 8.
  • FIG. 25 is an explanatory diagram 6 showing a processing example of S55-S59 in FIG. 8.
  • FIG. 26 is an explanatory diagram 7 showing a processing example of S55-S59 in FIG. 8.
  • FIG. 27 is an explanatory diagram 8 showing a processing example of S55-S59 in FIG. 8.
  • FIG. 28 is an explanatory diagram showing a processing example of S70 in FIG. 8.
  • FIG. 29 is an explanatory diagram showing a processing example of S71 in FIG. 8.
  • FIG. 30 is an explanatory diagram showing a processing example of S72 in FIG. 8.
  • FIG. 31 is an explanatory diagram showing a state in which the ordering process has been completed.
  • FIG. 32 is a flowchart showing exchanges between respective devices according to the second embodiment of the present invention.
  • FIG. 33 is an explanatory diagram showing a tabulation Z ordering process according to the second embodiment of the present invention.
  • FIG. 34 is a flowchart showing a sequence imparting process of the second embodiment of the present invention c
  • FIG. 36 is a flowchart showing a sequence conversion process of the second embodiment of the present invention c
  • FIG. 3A is a flowchart showing a lower hierarchical routine according to the second embodiment.
  • Example 1 An embodiment of an order assigning system capable of quickly summarizing information operated by a viewer in conjunction with a television program via the Internet and performing ordering will be disclosed below.
  • Example 1 An embodiment of an order assigning system capable of quickly summarizing information operated by a viewer in conjunction with a television program via the Internet and performing ordering will be disclosed below.
  • FIG. 1 is a block diagram showing a configuration of an entire system according to an embodiment of the present invention.
  • the Internet 22 is connected to a plurality of mobile communication networks A25 and B28 via gateways 23 and 24, and the mobile terminal 30 can be connected to the Internet via base stations 26 and 29.
  • a DNS (domain name server) 16 and a PC terminal 33 are also connected to the Internet.
  • Such a configuration is well known.
  • the user accesses the counting system of the present invention using the portable terminal 30 while watching the television program broadcast from the television station 20 on the television 31.
  • the Internet 22 is connected to the registration node 10 of the present invention and three aggregation nodes All, B12, and C13. These nodes are also connected to a private network (PN) 21.
  • the management node 14 and the studio terminal 15 of the present invention are also connected to the PN 21.
  • the PN 21 may be configured by a dedicated line or the like, or a VPN (Virtual Private Network) may be installed in the Internet 22. Further, all devices may be connected via the Internet without providing the PN21.
  • At least one aggregation node is sufficient, but by distributing calls as shown in the figure, even if the line connected to one aggregation node is congested or down, another aggregation node is used.
  • the program can be continued by the data of the node.
  • FIG. 2 is a block diagram showing a configuration of the tallying nodes 11 to 13 of the present invention.
  • a plurality of load balancers 41 connected to the Internet 22 via the router 40 and the LAN 45 are set with different IP addresses, and the calls (access) arrive in a distributed manner by the well-known DNS 16.
  • Each load balancer 41 sequentially selects one of the plurality of user proxy servers 42 and transfers the calls in the order of arrival.
  • the user proxy server 2 connected to the load balancer 41 via the LAN 46 performs processing to be described later, converts a form, specifies the user management server 43, transfers a call, and responds.
  • the user management server 43 connected to the user proxy server 2 via LAN 46 It performs the processing described later, and records and retains the operation information and the like transmitted from the user, outputs the total information, registers the order information, and the like.
  • the various servers used in the present invention can be realized by creating and installing a program of the present invention described later on a commercially available server device.
  • FIG. 3 is a block diagram showing the configuration of the management and registration node of the present invention.
  • FIG. 3A is a block diagram showing the configuration of the management node 14.
  • the management node 14 receives status data from the status management server 51 that manages the processing status of the entire system, the aggregated data from the user management server 43 of the aggregation node, and assigns an order to the numbering server 53 and the user management server 43.
  • a ranking table integration server 52 is provided which receives a fixed (eg, higher) order data and generates a ranking table required for the program.
  • FIG. 3B is a block diagram showing the configuration of the registration node 10, in which a registration server is installed. Note that the management node, registration node, and aggregation node may be integrated and installed in one place.
  • FIG. 4 is a flowchart 1 showing exchange of processing between the devices of the present invention.
  • This flowchart shows the registration process and the participation preparation process!
  • the user starts the browser of the terminal 30 and accesses the registration server 61 (Sl).
  • the registration server 61 returns the registration page (S2) and is displayed on the terminal (S3).
  • the user enters personal information such as name and address (S4).
  • the registration server 61 Upon receiving the personal information, the registration server 61 receives a hash code (a value randomly distributed) of a key character string (address, name, age, a unique user identifier obtained from a mobile communication network, etc.). ) Is divided to select an aggregation node to be stored.
  • the hash code h of the character string is calculated by the following method, for example.
  • s [i] is the ith character code of the character string
  • n is the length of the character string
  • the user management server number is specified by the remainder obtained by dividing this hash value by the number of user management servers in the aggregation node to be connected. This process ensures that the same user is always connected to the same user management server and cannot be registered more than once, This is for even distribution to the user management server.
  • the registration server 61 transfers the registration information to the selected user management server 43 (S5).
  • the user management server 43 registers personal information and the like at the new sequence position I of the sequence for registering user information, and notifies the registration server 61 of the generated ID number (S6).
  • Registration server 61 transmits a participation page in which the received ID number is embedded to the terminal.
  • the participation page contains the address and ID number of the selected aggregation node, and when the user performs a participation operation on the participation page, the participation information including the ID is transmitted to the selected aggregation node (S8). ).
  • the load balancer transfers the call to an arbitrary user proxy server in the order of arrival (S9).
  • the user proxy server 42 receives the participation information, it transmits an operation page in which the ID number is embedded. (S10) is displayed on the terminal (S11). You are now ready to participate.
  • FIG. 5 is a flowchart 2 showing the exchange of processing between the devices of the present invention.
  • This flowchart shows a single tally of quizzes and questionnaire responses related to the program. In practice, this process is repeated several times within the program.
  • the status management server 51 instructs the “preparation” state based on the instruction from the studio terminal 15 (S24). In the “prepared” state, even if the terminal is operated and the operation information is transmitted, only the same operation page is returned on the user proxy server, and no processing is performed.
  • the status management server 51 instructs the “collection” state based on the response reception start instruction from the studio terminal 15 (S25).
  • the “collection” state when the user operates the terminal and transmits the operation information, the user is connected to the specified aggregation node, and the load balancer transfers the call to an arbitrary user proxy server in the order of arrival (S13).
  • the user proxy server 42 uses a different data format for each user terminal. Based on the remainder obtained by dividing the ID number included in the received operation information by the number of user management servers in the node, determine the user management server number and transfer the operation information to the user management server (S 14). The user management server 43 obtains the array position based on the quotient obtained by dividing the ID number of the received operation information by the number of user management servers in the node, and records the user information (S15).
  • operation information such as information on the button pressed by the user is recorded in the second user data of the array together with time information (elapsed time from the start of collection in milliseconds).
  • the user management server 43 When the recording of the information is completed, the user management server 43 notifies the completion to the user proxy server, and the user proxy server 42 transmits an operation page to the terminal (S16). The operation page is displayed again on the terminal (S17). If the user performs an operation multiple times during the collection time, the operation information or the like may be overwritten, or the operation information after the second time may be ignored.
  • the status management server 51 instructs the “aggregation” state based on the aggregation (acceptance end) instruction from the studio terminal 15 (S26).
  • the terminal device In the “aggregate” state, even if the terminal device transmits the operation information, the terminal device simply returns the same operation page to the user proxy server, and no processing is performed.
  • the user management server 43 sets, for example, a user's operation information and time information power score, generates user information array power as shown in FIG. 7, and transmits it to a predetermined numbering server 53 (S 18).
  • sequence data is collected from a plurality of user management servers, the score is converted into a ranking by a method described later, and the ranking information is distributed to the user management server 43 again (S19). .
  • a plurality of numbering servers 53 are described. This is for distributing a plurality of ordering processes such as a total score and a score of each question in a distributed manner. Need to be done by one numbering server.
  • the user management server 43 assigns a ranking to the users based on the distributed ranking information, and transmits information in a predetermined range, such as personal information of the top 10 persons, to the ranking integration server 52. (S20).
  • the order integration server 52 integrates (combines) the order tables based on the information received from the plurality of user management servers 3 and transmits them to the studio terminal or an external Web server function for public disclosure. Also, the completion of the ordering is notified to the status management server. (S21)
  • FIG. 5 discloses an example in which tallying is not performed during “collection”, all user management servers are periodically or aperiodically, such as every second, during collection. By executing the processing of S18, it is also possible to perform an interim aggregation. Interim tabulation reveals information on top users and the number of respondents up to the present in almost real time.
  • FIG. 6 is a flowchart showing details of the operation information collecting process of the present invention.
  • FIGS. 9A and 9B are explanatory diagrams showing an example of a process of collecting operation information.
  • the server of index 1 stores the user information array in the user information array. It is assumed that three users having array indexes 0, 1, and 2 are registered.
  • the load balancer transfers the call to an arbitrary user proxy server in the order of arrival.
  • the user proxy server converts the data input in S30 into a user management server format and unifies the data. This is necessary because the data format differs for each terminal ( Figure 10).
  • the user management server 43 obtains an array position (array index) based on a quotient obtained by dividing the ID number of the operation information received in S33 by the number of user management servers.
  • the user management server 43 notifies the user proxy server of the completion.
  • the load balancer merely distributes the call to an arbitrary proxy server, so that high-speed processing can be performed and expansion can be easily performed.
  • the user proxy server can identify the user management server to which the ID number is to be transferred by a simple operation, so high-speed processing is possible and expansion is easy.
  • the user management server can determine the position of the user information array in which data is to be stored by a simple operation, so that high-speed processing is possible and expansion is easy.
  • the present inventor can use this system in cooperation with a TV program, and can normally accept and respond to tens of thousands of access Z seconds during peak hours and tens of thousands of accesses in about 10 seconds, and order the access. did it.
  • FIG. 8 is a flowchart showing details of the tabulation Z ranking process of the present invention.
  • the information array of the n-th user is acquired. Then, a score is set for each user.
  • the operation information “3” is the correct answer
  • the reception time information which is the elapsed time from the start of collection in milliseconds, is given to the correct answerer (by the deduction method).
  • the original score information to assign the order in addition to the operation time information of the correct answer for each question, the number of correct answers, the total operation time of the correct answers of multiple questions, a combination of these, etc. can be calculated as necessary It is.
  • FIG. 13 and FIG. 15 are explanatory diagrams illustrating a processing example of S40.
  • FIG. 7 is an explanatory diagram showing the data configuration of the delivery array of the present invention.
  • the score (reception time) information is a force that is the elapsed time information of the collection start force in milliseconds.This is regarded as 64-bit score information, and the number of people for each score specified by the 64-bit is Numerical data indicating the ranking
  • the lowest layer is a numerical unit 77 with 256 numerical values (8 bits). Therefore, for example, the numerical value unit 77 in the upper right of FIG. 7 stores the data of the number of users who answered correctly between 0 ms and 255 ms after the collection was started.
  • S45 1 is calculated for the number of people data at the position corresponding to the score information in the numerical value unit.
  • S46 it is determined whether or not the processing is completed for all the correct user data. If the determination result is negative, the processing returns to S40. If the determination is affirmative, the processing shifts to S47. In S47, the generated transfer array data is output to the numbering server.
  • FIGS. 14 and 16 are explanatory diagrams showing processing examples of S41 to S45.
  • the downward arrow in the transfer array in the figure indicates the pointer, and the X indicates that the pointer is not set.
  • “referencing” means setting a pointer to a lower unit in a higher pointer unit.
  • the least significant array unit of the next order is generated, and 1 is added to the number data of the address 0.
  • transfer sequence data is input from the user management server.
  • S51 it is determined whether or not the input has been completed from all the sanoes. If the determination result is negative, the force shifts to S50. If the determination is positive, the process shifts to S52.
  • S52 a plurality of delivery arrays are combined by summing the number of people data having the same score.
  • S53 it is determined whether or not the synthesis of all the transfer sequences has been completed. If the determination result is negative, the process proceeds to S52, but if the determination result is positive, the process proceeds to S54.
  • FIG. 17 is an explanatory diagram showing the processing f-th column in S50 and S51.
  • 18 and FIG. 19 are explanatory diagrams showing processing examples of S52 and S53.
  • synthesizing an array add the value of the other numerical unit at the same scoring position to the numerical value of the user management server with the lowest index among the numerical data units that exist in the collected array.
  • the index is the youngest among the arrays collected by the pointers to the numerical units, and the index is registered in the array.
  • the numerical unit with index 1 is registered in the array with index 0, and the numerical unit with the same score position at index 2 is registered.
  • the data at address 255 is added.
  • the data of address 0 of the numerical unit at the same score position of index 2 is added to address 0 of the next numerical unit. Create a new array and receive it All the numerical data of the array may be added to the same score position of the new array.
  • FIG. 20 to FIG. 27 are explanatory diagrams showing processing examples of S55 to S59.
  • the first process is the process of S55
  • the second process is the process of S56
  • the third process is the process of S57.
  • the position of interest is +1 during the transition from FIG. 21 to FIG.
  • FIG. 27 shows a state in which the ordering process has been completed. Numerical units connected by pointers are set with a numerical value of 18 indicating the order.
  • the sequence is input in S70.
  • S71 the n-th user information array is acquired.
  • S72 order data is also obtained for the correct answer based on the score information based on the score information, and written in the user information array.
  • S73 it is determined whether or not the ordering process has been completed for all users. If the determination result is negative, the process proceeds to S71, but if the determination result is affirmative, the process ends. By the above processing, the ranking is written in the user information of each user management server.
  • FIG. 28 is an explanatory diagram showing a processing example of S70.
  • FIG. 29 is an explanatory diagram showing a processing example of S71. In this example, information about user 2 (index 0) is obtained.
  • FIG. 30 is an explanatory diagram showing a processing example of S72. In this example, the numbering array is traced based on the score (255) of the user 2, the ranking data “2” is acquired, and set in the user information array.
  • FIG. 31 is an explanatory diagram showing a state where the ordering process is completed in all the user management servers.
  • the processing capability is easily expanded by dispersing and processing the calorie calculation synthesis and the order data generation processing in the plurality of user management servers 43.
  • FIG. 32 is a flowchart showing exchanges between respective devices according to the second embodiment of the present invention.
  • the number management server 43 is not provided, and the Generate The only difference from the first embodiment is the part of S27.
  • FIG. 33 is an explanatory diagram showing the tabulation Z ordering process of S27 in the second embodiment of the present invention.
  • the number of the user management servers 43 is three, but this number can be arbitrarily increased or decreased.
  • Each user management server 0 (80) -2 (82) has reception data 80-82, which is user information storing user operation information.
  • Each user management server divides the received data and generates a transfer array for the number of management servers. The structure of this sequence is identical to that shown in FIG. In order to equalize the data amount of each array, the data is distributed by the lower value of the score. (Details will be described later)
  • Each user management server acquires the transfer sequence to be synthesized by another server, and distributes the transfer sequence to be synthesized by another server to another server.
  • user management server 0 80
  • the transfer arrays to be synthesized by the user are all prepared, the arrays are added and synthesized.
  • the user management server 0 (80) adds and synthesizes three arrays A-0 (83), B-0 (86), and C0 (89) force arrays ABC-0 (92). Since addition processing is distributed by a plurality of servers, the processing capacity can be easily increased or decreased by increasing or decreasing the number of servers.
  • the addition-synthesized array stores the number-of-person data for each score (elapsed time).
  • the head data is added to the head data and converted into order data ABC-0 (95), ABC-1 (96), and ABC-2 (97).
  • This process is performed in each user management server in parallel. Note that one user management server may convert the data into order data and distribute the result to all user management servers, but the time required for ordering can be made almost the same.
  • the same arrays ABC-0 (95), ABC-1 (96), ABC-2 (97) storing order data are held in each user management server! .
  • each user management server manages and assigns an order to the user information (acceptance data).
  • FIG. 34 is a flowchart showing the order assigning process in S27 according to the second embodiment of the present invention. This process is started in each user management server 3 in accordance with a tally instruction from the status management server 51.
  • S80 transfer arrays for the number of user management servers are prepared, and in S81, an array generation process described later is called. Here, transfer arrays for the number of user management servers are generated.
  • S82 0 is substituted for the variable a.
  • S83 as soon as the transfer sequence data is prepared, the transfer sequence data to be added by the own server is acquired from the ath server.
  • S84 it is determined whether or not a is equal to or more than the user management server number max. If the determination result is negative, the process proceeds to S85. If the determination is affirmative, the process proceeds to S86. In S85, 1 is added to a, and the flow shifts to S83. In S86, the contents of all the transfer arrays to be processed by the own server are added and synthesized.
  • the synthesizing method is the same as the processing in S52 and S53 of the first embodiment.
  • the order conversion process is called. By this processing, the data on the number of people in the array is integrated and converted into order data.
  • the order addition process is called. By this processing, the order is given to the user information (acceptance data) managed by each user management server.
  • FIG. 35 is a flowchart showing the contents of the array generation processing (S81) according to the second embodiment of the present invention.
  • the transfer of user information divided into the number of user management servers This is the process of generating an array.
  • the score information is calculated from the unprocessed user information (acceptance data) and written into the user information.
  • the remainder obtained by dividing the score of the user by the preset number of management servers is assigned to a variable b.
  • a quotient obtained by dividing the user's score by the number of management servers is substituted for the variable c.
  • the b-th transfer sequence is selected.
  • the transfer array is followed in the order of higher power based on the value of the variable c. Specifically, c is divided into the number of layers corresponding to the number of bits (for example, 8 bits) corresponding to the hierarchy, and a value obtained by dividing c in the higher-order array unit and an address corresponding to the lower-order array unit to the corresponding address are valid. Check if the pointer exists.
  • S 105 it is determined whether or not a lower-order array exists. If the determination result is negative, the process proceeds to S 106. If the determination is affirmative, the process proceeds to S 107. In S106, a lower-order array unit and a pointer pointing to it are newly generated. In S107, it is determined whether or not the lowest alignment force is present. If the determination result is negative, the process proceeds to S104. If the force is positive, the process proceeds to S108.
  • S108 1 is added to the head count data corresponding to the lower-order predetermined bit of c in the lowest-order array unit.
  • S109 it is determined whether or not the process is completed. If the determination result is negative, the process proceeds to S100. If the determination is positive, the process ends.
  • a transfer array divided into the number of user management servers is generated. Since the information amount of each array is distributed by the lower value (b) of the score information, the number of people information included in each array is almost equal, and the load of the addition and combining process in each user management server is also reduced. It can be expected to be almost even.
  • FIG. 36 is a flowchart showing the contents of the order conversion process (S91) according to the second embodiment of the present invention.
  • S121 it is checked whether the ⁇ th pointer of the uppermost array unit is valid (exists).
  • S122 it is determined whether it is valid or not. If the determination result is negative, the process proceeds to S124, but if it is affirmative, the process proceeds to S123.
  • the lower layer routine is called (called) using the layer value (L + l) and the valid pointer information in S121 as arguments.
  • 1 is added to P.
  • S125 it is determined whether P is equal to or greater than 256. If the determination result is negative, the process proceeds to S121. If the determination is positive, the process ends.
  • FIG. 37 is a flowchart showing a lower hierarchical routine according to the second embodiment.
  • This processing routine is called recursively for each hierarchy.
  • the variables used in the power routine are independent for each hierarchy.
  • the processing in the lowest hierarchy and the processing in the middle hierarchy are separated.
  • S130 it is determined whether or not it is the lowest layer. If the determination result is negative, the process proceeds to S131. If the result is positive, the process proceeds to S137.
  • P P
  • the lower layer routine is called using the layer value (L + 1) and the valid pointer information in S132 as arguments.
  • 1 is added to P.
  • P it is determined whether or not P is 256 or more. If the determination result is negative, the force shifts to S132. If the determination is affirmative, the process ends and returns to the original routine.
  • P is initialized to 0.
  • the upper routine power also initializes the power counter Q of the number of valid arrays passed to one.
  • the Pth number data of the Qth array unit is read.
  • S140 it is determined whether or not the number of persons is one or more. If the determination result is negative, the process proceeds to S144. If the result is positive, the process proceeds to S141. In S141, the number data is substituted into variable # ⁇ to temporarily hold the data. In S142, the order ⁇ is written to the ⁇ th of the Qth array unit. In S143, the ranking is updated by substituting J + ⁇ for ranking ⁇ .
  • FIG. 38 is a flowchart showing the contents of the order adding process (S92) according to the second embodiment of the present invention.
  • S150 unprocessed score information of the user information arrangement power is acquired.
  • S151 the remainder obtained by dividing the score of the user by the number of management servers is substituted for the variable b.
  • S152 the quotient obtained by dividing the score of the user by the number of management servers is substituted for the variable c.
  • the b-th transfer sequence is selected.
  • the transfer array is followed based on the value of variable c.
  • the order data is read from the least significant array unit based on the value of the variable c, and is written to the corresponding user information.
  • the portable terminal has been disclosed.
  • a general PC terminal connected to the Internet may be used.
  • it may be assigned to a plurality of user management servers in the order of acceptance to the registration server.
  • the ordering process is performed such that the user with the highest number of correct answers is ranked higher by one ordering process, and if the number of correct answers is the same, the user with the shorter average answer time is ranked higher. For example, if Mr. A has 3 correct answers, average time of correct answer is 13 seconds, Mr. B has 2 correct answers, average time of correct answer is 13 seconds, and Mr. C has 2 correct answers, average time of correct answer is 5 seconds. Find the score using the formula.
  • Score (OxFFFFFFFFFFFFFFFF—Number of correct answers * 0 ⁇ 100000000 + Average time of correct answer)
  • the meaning of this formula is the maximum number that can be represented in the array minus the half of the maximum number that can be represented in the array (32 bits) + the average time of the correct answer.
  • the system of the present invention is ordered from the smallest value, so Mr. A ranks first, Mr. B ranks third,
  • data such as operation information, accumulated information, reception time, and the like within a range that can be represented by an array can be handled in various orderings by bit shifting and exchanging or combining + and-. .
  • the data can be expressed only by using 13 arrays of 2 elements under OxFFFFFF (upper 3 rows), one each for the following, and convenient array of 256 elements.
  • the transfer array of the present invention is characterized in that the data compression effect is maximized when a large number of approximate values exist.
  • the number of correct answers falls within the range of 1 to 255 (0xFF) seconds for 11 ⁇ ( ⁇ ) questions.
  • the ability to disclose an example of receiving and processing button information with a user's button operation as a trigger is applied to the following combinations of trigger and information. And flexible information collection is possible. For example, the following can be considered as a method of generating operation information (trigger).
  • the following can be considered as the operation information.
  • the system of the present invention executes the ordering process in a short time, such as a system in which answer information and the like operated by the user in association with the television viewer-participating program are totaled and reflected in the program. It can be applied to the use of the system that needs it Further, the order assignment system of the present invention is not limited to a system linked to a television program, but can be used in a limited amount of time, such as in ticket sales, gambling and game odds counting, auctions, and rankings of network participating games. Applicable to any system where access is concentrated and ordering is required.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 利用者操作情報を通信網を介して高速に集計し、順番付けが可能な集計システムを提供する。利用者にID番号をふり、代理サーバが利用者からのID番号付きの操作情報をID番号に基づいて特定の管理サーバへ高速に転送する。管理サーバはこのID番号に基づいて利用者情報へ高速にアクセスする。また、所定のサーバが特殊な受け渡し配列データを使用して受付開始からの経過時間等の得点情報と対応した人数データを収集し、合成して、その受け渡し配列に順番情報を格納して管理サーバへ配信する。ロードバランサーは呼を任意の代理サーバへ割り当て、代理サーバは呼を高速に中継でき、管理サーバは高速に利用者情報の参照を行うことができる。また、複数の管理サーバによって分散処理されるので拡張が容易である。

Description

佳き 技術分野
[0001] 本発明は、集計システムに関するものであり、特に、短時間に多数の利用者が操作 した情報をインターネット等の通信網を介して高速に集計して順番付けが可能な集 計システムに関するものである。 背景技術
[0002] 従来、テレビの視聴者参加番組と連動して視聴者 (利用者)が操作した投票情報な 田
ど^^計して番組に反映するためのシステムが提案されている。例えば、下記特許 文献 1には、インターネットを介して視聴者の投票情報を wwwサーバによって収集 するシステムが開示されている。
特許文献 1:特開 2002-344928号公報
発明の開示 発明が解決しょうとする課題
[0003] 上記したような従来の WWWサーバシステムは例えば、ロードバランサ、 httpサーバ 、 RDBサーバ等力も構成されている。ところが、これらの装置においては、高速化に 対して以下のような問題点があった。
レイヤ 7ロードバランサ (セッション管理機能搭載)においては、同一利用者を同一 httpサーバへ転送するためのアプリケーションプロトコルの解読や、保持して!/、る過 去の情報を検索しながら httpサーバを特定する処理のために速度に限界があった。 また、保存している利用者情報を元に負荷分散を行うため、比例的な増設は不可能 であると!/ヽぅ問題点もあった。
[0004] httpサーバ (セッション管理機能、テーブルキャッシュ機能搭載)の並列配備による パフォーマンスの限界は RDBに依存する。そして、同一利用者は同一 httpサーバで 処理しなければ、並列して!、る他の httpサーバとの整合性がつかな 、と 、う問題点が あった。これは RDBサーバに負担をかけない為にキャッシュしているのが原因である RDBサーバは RDBである以上、性能をコストに比例させて増強する事は不可能で あり、非常に高価なシステムを使用したとしても集中するアクセスには対応できないと いう問題点があった。
[0005] また、上記したような従来のシステムにおいて、例えば利用者が送信したクイズの回 答の操作情報に基づき、正解操作を早く送信した利用者の順に順番を付けようとし た場合には、 WWWサーバにぉ 、て全ての利用者情報にっ 、て順番付け処理を行 うことになる力 処理を高速ィ匕するために WWWサーバを複数台設置した場合には、 順番付け処理を行うために、利用者の操作情報等を 1台のサーバに収集して順番付 け処理を行い、結果を複数台の WWWサーバに分配する必要がある。
[0006] ところが、各 WWWサーバから全ての利用者情報を単に収集し、ある 、は順番付け した結果データを分配したのでは、転送するデータ量が大きくなると共に、収集した データを統合して順番付けする処理、ある 、は各 WWWサーバにぉ 、て利用者デー タに順番情報を反映する処理の負荷が大きくなり、結果が出るまでに時間がかかつ てしまうという問題点があった。本発明の目的は上記したような従来の問題点を解決 することにある。
課題を解決するための手段
[0007] 本発明は、利用者に特殊な ID番号をふり、利用者からの操作情報にこの ID番号を 含ませる。そして、呼に任意に割り当てられた利用者代理サーバがこの ID番号から 計算により利用者管理サーバを指定することによって、特定の利用者管理サーバへ 高速に接続させることを最も主要な特徴とする。また、利用者管理サーバにおいて、 この ID番号から時間の力かる検索をせずに計算によって記録されている利用者情報 へ高速にアクセスし、操作情報を元に利用者データを更新することも特徴とする。
[0008] また、複数の利用者管理サーバから利用者毎に算出される情報、例えば受付開始 力 の経過時間等の得点情報と対応した人数データを特殊な受け渡し配列データ に格納する点に特徴がある。また、受け渡し配列データを所定の番付サーバに収集 し、加算合成する事によりシステム全体で得点情報に対応した人数が求められる。ま た、受け渡し配列データは一定のルールで分割する事が可能で、分割した場合に複 数のサーバで加算合成が可能になり、性能を向上できる。更に、加算合成された受 け渡し配列データの人数を順番に変換する点にも特徴がある。
発明の効果
[0009] 本発明の構成によって以下のような効果がある。本発明の構成によれば、ロードバ ランサにおいて同一利用者を同一利用者代理サーバへ転送する必要がないので、 パケットをレイヤ 3レベルで到着順に任意の利用者代理サーバへ順に割り当てること が可能であり、分散をするための情報保存やアプリケーションプロトコルの解読、判定 の必要がないため高速処理が可能であり、且つ任意に増設可能である。
[0010] 利用者代理サーバは、利用者の IDを利用者管理サーバ数で除算し、その余りで 利用者情報を格納している利用者管理サーバを指定できるため、検索をする必要が なぐ情報を高速に中継転送する事が出来る。利用者管理サーバは、利用者の IDを 利用者管理サーバ数で除算した商をインデックスとする配列の位置に利用者の情報 が格納されているので、検索をする必要がなぐ利用者情報の参照や書き換えを高 速に行うことが可能である。
[0011] また、本発明の構成によれば、複数の利用者管理サーバによって分散処理される 利用者情報データの収集 Z分配に特殊な受け渡し配列データを使用する。この受 け渡し配列データはデータが存在する得点情報に対応した人数データのユニットの みで構成されているため、サーバ間で転送されるデータ量が減少し、処理 Z転送時 間が短縮される。
[0012] また、複数の利用者管理サーバによって同時に受け渡し配列データが生成され、 また配信された配列から利用者情報に順番情報を付与する処理も複数の利用者管 理サーバによって同時に分散処理されるので、処理が高速化される。更に、複数の 受け渡し配列の合成処理についても複数の利用者管理サーバによって同時に分散 処理させることが可能である。これにより、複数の利用者管理サーバに分散された利 用者データを、 1ケ所に集めてソート処理を行う必要がなぐ高速に順番を求める事 ができる。
また、本発明の構成では、利用者管理サーバは最大限高速に動作させるために、 メモリーに利用者情報や操作情報等を保存しているが、保存方法に RDB等を使用 する事により、永続性の必要な既存の WWW/RDBシステム等と同様な機能と安全性 を確保しながら、処理能力を容易に増加できるシステムが展開できるという効果があ る。
従って、本発明のシステムは短時間に大量の呼が集中しても高速に応答処理や順 番付けによる優劣処理等の集計が可能であり、かつ必要に応じて利用者管理サー バ等を増やす事により、処理能力を容易に増加できるという効果がある。
図面の簡単な説明
図 1]本発明の実施例のシステム全体の構成を示すブロック図である。
図 2]本発明の集計ノード 11一 13の構成を示すブロック図である。
図 3]本発明の管理、登録ノードの構成を示すブロック図である。
図 4]本発明の各装置間の処理のやり取りを示すフロー図 1である。
図 5]本発明の各装置間の処理のやり取りを示すフロー図 2である。
図 6]本発明の操作情報の登録処理の詳細を示すフローチャートである。
図 7]本発明の受け渡し配列のデータ構成を示す説明図である。
図 8]本発明の集計 Z順位付け処理の詳細を示すフローチャートである。
図 9]操作情報の登録処理の例を示す説明図 1である。
図 10]操作情報の登録処理の例を示す説明図 2である。
図 11]操作情報の登録処理の例を示す説明図 3である。
図 12]操作情報の登録処理の例を示す説明図 4である。
図 13]図 8の S40の処理例を示す説明図 1である。
図 14]図 8の S41— S45の処理例を示す説明図 1である。
図 15]図 8の S40の処理例を示す説明図 2である。
図 16]図 8の S41— S45の処理例を示す説明図 2である。
図 17]図 8の S50、 S51の処理例を示す説明図である。
図 18]図 8の S52、 S53の処理例を示す説明図 1である。
図 19]図 8の S52、 S53の処理例を示す説明図 2である。
図 20]図 8の S55— S59の処理例を示す説明図 1である。
図 21]図 8の S55— S59の処理例を示す説明図 2である。
図 22]図 8の S55— S59の処理例を示す説明図 3である。 [図 23]図 8の S55— S59の処理例を示す説明図 4である。
[図 24]図 8の S55— S59の処理例を示す説明図 5である。
[図 25]図 8の S55— S59の処理例を示す説明図 6である。
[図 26]図 8の S55— S59の処理例を示す説明図 7である。
[図 27]図 8の S55— S59の処理例を示す説明図 8である。
[図 28]図 8の S70の処理例を示す説明図である。
[図 29]図 8の S71の処理例を示す説明図である。
[図 30]図 8の S72の処理例を示す説明図である。
[図 31]順番付け処理が完了した状態を示す説明図である。
[図 32]本発明の第 2実施例の各装置間のやり取りを示すフロー図である。
[図 33]本発明の第 2実施例の集計 Z順番付け処理を示す説明図である。
[図 34]本発明の第 2実施例の順番付与処理を示すフローチャートである c
[図 35]本発明の第 2実施例の配列生成処理を示すフローチャートである c
[図 36]本発明の第 2実施例の順番変換処理を示すフローチャートである c
[図 3ァ]第 2実施例の下位階層ルーチンを示すフローチャートである。
[図 38]本発明の第 2実施例の順番付加処理を示すフローチャートである c 符号の説明
10…登録ノード
11一 13…集計ノード
14…管理ノード
15· ··スタジオ端末
16- --DNS
20· "テレビ局
21· ··プライベートネットワーク
22…インターネット
25、 28· ··移動体通信網
30· ··携帯端末 (携帯電話機)
31…テレビ 発明を実施するための最良の形態
[0015] 以下に、テレビの番組と連動して視聴者が操作した情報をインターネットを介して高 速に集計し、順番付けを行うことが可能な順番付与システムの実施例を開示する。 実施例 1
[0016] 図 1は、本発明の実施例のシステム全体の構成を示すブロック図である。インターネ ット 22はゲートウェイ 23、 24を介して複数の移動体通信網 A25、 B28と接続されて おり、携帯端末 30は基地局 26、 29を介してインターネットに接続可能である。インタ 一ネットには DNS (ドメインネームサーノ) 16や PC端末 33も接続されている。なお、 このような構成は周知である。利用者 (視聴者)はテレビ局 20から放送されるテレビ番 組をテレビ 31で視聴しながら、携帯端末 30を使用して本発明の集計システムにァク セスする。
[0017] インターネット 22には、本発明の登録ノード 10、 3つの集計ノード Al l、 B12、 C13 が接続されている。これらのノードはプライベートネットワーク(以下 PNと記す) 21にも 接続されている。 PN21には本発明の管理ノード 14、スタジオ端末 15も接続されて いる。 PN21は専用回線等によって構成してもよいし、インターネット 22内に VPN (仮 想プライベートネットワーク)を設置してもよい。更に PN21を設けずに、全ての装置を インターネット経由で接続してもよい。
[0018] 集計ノードは最低 1つあればよいが、図示するように分散配置して呼を分散させるこ とによって、 1箇所の集計ノードへ接続する回線が輻輳あるいはダウンしても他の集 計ノードのデータによって番組が続行できる。
[0019] 図 2は、本発明の集計ノード 11一 13の構成を示すブロック図である。ルータ 40、 L AN45を介してインターネット 22と接続された複数のロードバランサ 41は、それぞれ 異なる IPアドレスを設定されており、周知の DNS16の働きによって呼 (アクセス)が分 散して到着する。それぞれのロードバランサ 41は、複数の利用者代理サーバ 42の内 の 1つを順番に選択して呼を到着順に転送する。
[0020] LAN46を介してロードバランサ 41と接続された利用者代理サーノ 2は、後述す る処理を行い、フォームの変換、利用者管理サーバ 43の特定および呼の転送、応答 を行う。 LAN46を介して利用者代理サーノ 2と接続された利用者管理サーバ 43は 、後述する処理を行い、利用者から送信された操作情報等の記録、保持、集計情報 の出力、順番情報の登録等を行う。なお、本発明において使用する各種サーバは巿 販のサーバ装置に後述する本発明のプログラムを作成し、インストールすることにより 実現可能である。
[0021] 図 3は、本発明の管理、登録ノードの構成を示すブロック図である。図 3 (a)は管理 ノード 14の構成を示すブロック図である。管理ノード 14には、システム全体の処理状 態を管理するステータス管理サーバ 51、集計ノードの利用者管理サーバ 43から集 計データを受け取り、順番を付与する番付サーバ 53、利用者管理サーバ 43から特 定 (例えば上位等)の順番データを受け取り、番組に必要な順位表を生成する順位 表統合サーバ 52が設置されている。図 3 (b)は登録ノード 10の構成を示すブロック 図であり、登録サーバが設置されている。なお、管理ノード、登録ノード、集計ノード を統合して一箇所に設置してもよ 、。
[0022] 図 4は、本発明の各装置間の処理のやり取りを示すフロー図 1である。このフロー図 は登録処理および参加準備処理を示して!/、る。利用者は端末 30のブラウザを起動し て登録サーバ 61へアクセスする(Sl)。登録サーバ 61は登録ページを返送し(S2)、 端末に表示される (S3)。利用者は氏名や住所等の個人情報を入力する(S4)。
[0023] 登録サーバ 61は個人情報を受け取ると、キーとなる文字列 (住所、氏名、年齢や移 動体通信網から得たユニークな利用者識別子等)のハッシュコード (無造作に分散さ れた値)を除算し、格納すべき集計ノードを選出する。文字列のハッシュコード hは、 例えば次の方法で計算される。
Figure imgf000009_0001
+ s[l]*3r(n- 2) + ... + s[n— 1]
ここで、 s[i]は文字列の i番目の文字コード、 nは文字列の長さ、 "はべき乗を示す。 なお、同じ文字列に同じ数字 (コード)が割り当てられるのであれば、意識的に分散さ れた値 (例えば北海道の利用者へは北海道の集計ノードが選ばれるように)でもかま わない。
次に、このハッシュ値を接続すべき集計ノード内の利用者管理サーバ数で除算した 余りによつて利用者管理サーバ番号を指定する。この処理は、同じ利用者は必ず同 じ利用者管理サーバに接続され、複数回登録できないようにすると共に、呼を複数の 利用者管理サーバに均等に分配するためのものである。登録サーバ 61は、選択した 利用者管理サーバ 43に登録情報を転送する(S5)。
[0024] 登録情報を受け取った利用者管理サーバ 43は、利用者情報を登録する配列の新 規配列位置 I (例えば既に 0、 1の 2人の利用者が登録されて 、れば 1 = 2)および利用 者管理サーバ数 N (例えば N= 3とする)、自分の利用者管理サーバ番号 M (例えば M= lとする)から「ID番号」を生成する。生成式は、 ID = I X N + Mであり、上記例で は ID= 2 X 3 + 1 = 7となる。利用者管理サーバ 43は、利用者情報を登録する配列 の新規配列位置 Iに個人情報等を登録し、生成した ID番号を登録サーバ 61に通知 する(S6)。
[0025] 登録サーバ 61は、受け取った ID番号を埋め込んだ参加ページを端末に送信する
(S7)。この参加ページには選択された集計ノードのアドレスと ID番号が記載されて おり、利用者が参加ページで参加操作をすると IDを含んだ参加情報が選択された集 計ノードに送信される(S8)。
[0026] 集計ノードにおいては、ロードバランサが呼を到着順に任意の利用者代理サーバ に転送し (S9)、利用者代理サーバ 42は参加情報を受信すると、 ID番号を埋め込ん だ操作ページを送信し (S10)、端末に表示される(Sl l)。これで参加準備が完了す る。
[0027] 図 5は、本発明の各装置間の処理のやり取りを示すフロー図 2である。このフロー図 は、番組と関連したクイズやアンケートの回答の 1回の集計処理を示しており、実際に はこの処理を番組内で複数回繰り返す。まず、ステータス管理サーバ 51はスタジオ 端末 15からの指示に基づき、「準備」状態を指示する (S24)。「準備」状態において は、端末を操作して操作情報を送信しても利用者代理サーバにおいて同じ操作べ ージを返信するのみであり、何ら処理はされない。
[0028] 次に、ステータス管理サーバ 51はスタジオ端末 15からの回答受付開始指示に基 づき、「収集」状態を指示する(S25)。「収集」状態において、利用者が端末を操作し て操作情報を送信すると、指定された集計ノードに接続され、ロードバランサが呼を 到着順に任意の利用者代理サーバに転送する(S13)。
[0029] 利用者代理サーバ 42においては、利用者の端末毎に異なるデータフォーマットを 統一し、受信した操作情報に含まれる ID番号をノード内の利用者管理サーバ数で除 算した余りに基づき、利用者管理サーバ番号を求め、当該利用者管理サーバへ操 作情報を転送する(S 14)。利用者管理サーバ 43においては、受信した操作情報の I D番号をノード内の利用者管理サーバ数で除算した商に基づき、配列位置を求め、 利用者情報を記録する(S15)。
例えば商 = 2であれば、配列の 2番の利用者データに利用者の押したボタンの情 報等の操作情報を時間情報 (ミリ秒単位の収集開始からの経過時間)と共に記録す る。なお、この配列データはメモリ上に配置しておくことによって処理をより高速ィ匕す ることがでさる。
[0030] 利用者管理サーバ 43は、情報の記録が完了すると利用者代理サーバに完了を通 知し、利用者代理サーバ 42は操作ページを端末に送信する(S16)。端末では操作 ページが再び表示される(S 17)。なお、利用者が収集時間中に複数回の操作を行 つた場合には、操作情報等を上書きしてもよいし、 2回目以降の操作情報を無視する ようにしてもよい。
[0031] 次に、ステータス管理サーバ 51はスタジオ端末 15からの集計 (受付終了)指示に 基づき、「集計」状態を指示する (S26)。「集計」状態においては、端末力も操作情報 を送信しても利用者代理サーバにぉ 、て同じ操作ページを返信するのみであり、何 ら処理はされない。利用者管理サーバ 43は、例えば利用者の操作情報および時間 情報力 得点を設定し、利用者情報配列力 図 7に示すような受け渡し配列データを 生成して所定の番付サーバ 53に送信する(S 18)。
[0032] 番付サーバ 53においては、複数の利用者管理サーノから配列データを収集し、後 述する方法で得点を順位に変換して、順位情報を再び利用者管理サーバ 43に配信 する(S19)。なお、図 3には複数の番付サーバ 53が記載されている力 これは総合 得点と各設問の得点など複数の順番付け処理を分散して行うためのものであり、 1つ の順番付け処理は 1台の番付サーバによって行う必要がある。利用者管理サーバ 43 においては、配信された順位情報に基づき、利用者に順位を付与すると共に、例え ば上位 10名の個人情報など、予め定められた範囲の情報を順位統合サーバ 52に 送信する(S20)。 [0033] 順位統合サーバ 52においては、複数の利用者管理サーノ 3から受信した情報に 基づき順位表を統合 (合成)し、スタジオ端末や外部の Webサーバ機能等へ送信し て公開する。また、順番付けの完了をステータス管理サーバに通知する。 (S21)
[0034] 以上のような構成および処理によって、短時間に呼が集中しても遅延や誤動作す ることなく、高速な集計、順番付けが可能となる。なお、図 5においては、「収集」中は 集計を行わない例を開示したが、収集中に例えば 1秒ごとなどのような周期的にある いは非周期的に全ての利用者管理サーバ 43が S18の処理を実行することにより、中 間集計を行うことも可能である。中間集計によって上位の利用者情報や現在までの 回答者数などがほぼリアルタイムに判明する。
[0035] 次に、操作情報の集計 Z順位付け処理をより詳細に説明する。図 6は、本発明の 操作情報の収集処理の詳細を示すフローチャートである。また、図 9一 12は、操作情 報の収集処理の例を示す説明図である。なお、図 9一 12の例においては、サーバィ ンデッタス 0、 1、 2の 3台の利用者管理サーバ(=利用者マネージャー)が配置されて おり、例えばインデックス 1のサーバには利用者情報配列に配列インデックス 0、 1、 2 の 3人の利用者が登録されて ヽるものとする。
[0036] 図 6において、 S13においては、ロードバランサは呼を到着順に任意の利用者代理 サーバに転送する。利用者代理サーバは S 30にお 、て入力されたデータを利用者 管理サーバ形式に変換 Z統一する。これは、各端末ごとにデータ形式が異なるため に必要である(図 10)。
[0037] 利用者代理サーバ 42は、 S31において受信した操作情報に含まれる ID番号を利 用者管理サーバ数で除算した余りに基づき、利用者管理サーバ番号を求め、当該 利用者管理サーバへ操作情報を転送する。例えば ID番号が 7であり、利用者管理サ ーバ数 N = 3であれば、利用者管理サーバ番号 Mは 7÷ 3の余り = 1となる。 S32に おいては、余りと一致するインデックスの利用者管理サーバへ利用者の操作情報を 出力する(図 11)。
[0038] 利用者管理サーバ 43は、 S33において受信した操作情報の ID番号を利用者管理 サーバ数で除算した商に基づき、配列位置 (配列インデックス)を求める。 S34にお いては、受信した利用者の操作情報を記録する。例えば商 = 2であれば、配列イン デッタス 2番の利用者データに利用者の押したボタンの情報等の操作情報を時間情 報 (ミリ秒単位の収集開始力もの経過時間)と共に記録する(図 12)。 S35において、 利用者管理サーバ 43は、情報の記録が完了すると利用者代理サーバに完了を通知 する。
[0039] 以上の処理において、ロードバランサは単に呼を任意の代理サーバに分配するの みであるので高速処理が可能となり、かつ増設も容易である。利用者代理サーバは 受信した ID番号力 簡単な演算で転送すべき利用者管理サーバが判明するので、 やはり高速処理が可能となり、増設も容易である。利用者管理サーバは、やはり簡単 な演算によってデータを格納すべき利用者情報配列位置が判明するので、やはり高 速処理が可能となり、増設も容易である。
本発明者はこのシステムを実際にテレビ番組と連携して使用し、ピーク時に数千ァ クセス Z秒、 10秒程度で数万アクセスを正常に受け付けて応答し、アクセスの順番 付けを行うことができた。
[0040] 図 8は、本発明の集計 Z順位付け処理の詳細を示すフローチャートである。また、 図 13— 31は、集計 Z順位付け処理の例を示す説明図である。なお、図 13— 31の 例においては、サーバインデックス 0、 1、 2の 3台の利用者管理サーバ(=利用者マ ネージャー)が配置されて 、るものとする。
[0041] 利用者管理サーバにおいては、 S40において、 n人目の利用者の情報配列を取得 する。そして、各利用者ごとに得点を設定する。この例においては操作情報「3」が正 解とし、正解者につ!ヽてミリ秒単位の収集開始からの経過時間である受付時間情報 を (減点法による)得点とする。なお、順番を付ける元の得点情報としては問題毎の正 解者の操作時間情報のほか、正解数、複数の問題の正解の操作時間の合計時間、 これらの組み合わせなどを必要に応じて算出可能である。図 13、図 15は、 S40の処 理例を示す説明図である。
[0042] S41においては、得点情報に基づき、受け渡し配列をたどる。図 7は、本発明の受 け渡し配列のデータ構成を示す説明図である。得点 (受付時間)情報は前記したよう に、ミリ秒単位の収集開始力もの経過時間情報である力 これを 64ビットの得点情報 と見なし、この 64ビットで特定される得点毎に人数ある 、は順位を示す数値データを 記憶する。但し、受け渡し配列のデータは 256個(=8ビット)のポインタあるいは数値 データの配列ユニットを単位とし、人数が 0以外のデータを含む最下位の数値ュ-ッ トおよびそのユニットを直接あるいは間接に指定するポインタを含むポインタユニット のみが生成される。
[0043] 受け渡し配列は図 7に示すように 8個の階層を有し、上位の 7つの階層のそれぞれ が前記した 64ビットの得点情報の内の 8ビット分( = 256個)のポインタユニット 70、 7 1、 72· ··からなつている。最下位層は 256個(8ビット分)の数値力もなる数値ユニット 77である。従って、例えば図 7の右上の数値ユニット 77には収集開始後 0ミリ秒一 25 5ミリ秒までに正解した利用者の人数データ等が格納される。そして、この数値ュ-ッ ト 77に 0以外の数値がある場合にはこのユニットを指す上位の 7階層のポインタュ- ット 70、 71、 72· ··も生成される。
[0044] ミリ秒を単位として 64ビットで時間を表すと天文学的な長さとなり、受け渡し配列の 全ての数値ユニット 77が生成されるとデータ量も天文学的な量となる力 限られた時 間帯に得点データが集中している場合には受け渡し配列のデータ量は少量で済み 、ノソコン等において十分扱える量となる。
[0045] 図 8に戻って、 S42においては、上位力も 64ビットの得点情報と対応する配列が存 在する力否かが判定され、判定結果が否定の場合には S43に移行して新たな配列 ユニットを生成し、上位ユニットにこの配列ユニットへのポインタを設定する。 S44にお いては、最下位の配列(=数値ユニット)力否かが判定され、判定結果が否定の場合 には S41に移行する力 肯定の場合には S45〖こ移行する。
[0046] S45においては、数値ユニット内の得点情報と対応する位置の人数データに 1をカロ 算する。 S46においては全ての正解利用者データについて処理が完了した力否か が判定され、判定結果が否定の場合には S40に戻る力 肯定の場合には S47に移 行する。 S47においては、生成した受け渡し配列データを番付サーバに出力する。
[0047] 図 14、図 16は、 S41— S45の処理例を示す説明図である。図中の受け渡し配列 中の下向き矢印はポインタを示し、 X印はポインタは設定されていない状態を示す。 図 14においては、最下位の配列ユニット(=数値ユニット)までが生成 Z参照され、 最下位配列ユニットの 255番地 (得点の下位 8ビット = 255に対応)の人数データ(初 期値は 0)に 1が加算される。なお、「参照する」とは上位のポインタユニット内に下位 のユニットを指すポインタを設定することを意味する。図 16においては、次の順位の 最下位配列ユニットが生成され、その 0番地の人数データに 1が加算される。
[0048] 番付サーバ 53において、 S50においては、利用者管理サーバから受け渡し配列 データを入力する。 S51においては、全サーノから入力が完了したか否かが判定さ れ、判定結果が否定の場合には S50に移行する力 肯定の場合には S52に移行す る。 S52においては、同じ得点の人数データを合計することにより複数の受け渡し配 列の合成を行う。 S53においては、全ての受け渡し配列の合成が完了したか否かが 判定され、判定結果が否定の場合には S52に移行するが、肯定の場合には S54に 移行する。以上の処理によって人数データが格納された配列が生成される。
[0049] S54においては、変数等の初期化を行う。即ち、今回順番 =0、次順番 =1に設定し、 注目配列位置を 0 (=先頭)に設定する。 S55においては、今回順番に次順番の値 を代入する。 S56においては、注目配列の値を次順番に加算する。 S57においては 、今回順番の値を注目配列に代入する。 S58にお 、ては、注目配列の位置を + 1す る。 S59においては、存在する人数データが全て処理完了したか否かが判定され、 判定結果が否定の場合には S55に移行するが、肯定の場合には S60に移行する。 以上の処理によって順番データが格納された配列が生成される。 S60においては、 生成された順番配列を各利用者管理サーバに出力する。
[0050] 図 17ίま、 S50、 S51の処理 f列を示す説明図である。また、図 18、図 19ίま、 S52、 S 53の処理例を示す説明図である。配列の合成時には、収集した配列の中で存在す る数値データユニットの内のインデックスが最も若い利用者管理サーバの数値ュ-ッ トに他の同じ得点位置の数値ユニットの値を加算し、この数値ユニットへのポインタが 収集した配列の中でインデックスが最も若 、配列に登録されて 、なければ登録する ことによって合成する。図 18、図 19においては、インデックス 0の配列には最も順位 の高 、数値ユニットがな 、ので、インデックス 1の数値ユニットがインデックス 0の配列 に登録され、インデックス 2の同じ得点位置の数値ユニットの 255番地のデータが加 算される。更に、次の順位の数値ユニットの 0番地にインデックス 2の同じ得点位置の 数値ユニットの 0番地のデータが加算される。なお、新たな配列を生成して、受信した 配列の全ての数値データを新配列の同じ得点位置に加算してもよい。
[0051] 図 20—図 27は、 S55— S59の処理例を示す説明図である。図中第 1処理が S55 の処理であり、第 2処理が S56の処理であり、第 3処理が S57の処理である。また、図 20力 図 21に、図 21から図 22に移行する間に注目配列位置が + 1されている。図 2 7は、順番付け処理が完了した状態を示しており、ポインタで連結された数値ユニット には順位を示す 1一 8の数値が設定されている。
[0052] 利用者管理サーバにおいては、 S70において順番配列を入力する。 S71において は、 n人目の利用者情報配列を取得する。 S72においては、正解者について得点情 報に基づいて順番配列力も順番データを取得し、利用者情報配列に書き込む。 S73 においては、全ての利用者について順番付け処理が完了したか否かが判定され、判 定結果が否定の場合には S71に移行するが、肯定の場合には処理を終了する。以 上の処理によって、各利用者管理サーバの利用者情報内に順位が書き込まれる。
[0053] 図 28は、 S70の処理例を示す説明図である。図 29は、 S71の処理例を示す説明 図である。この例においては、利用者 2 (インデックス 0)についての情報を取得する。 図 30は、 S72の処理例を示す説明図である。この例においては、利用者 2の得点(2 55)に基づいて番付配列をたどり、順位データ「2」を取得し、利用者情報配列に設 定する。図 31は、全ての利用者管理サーバにおいて順番付け処理が完了した状態 を示す説明図である。
実施例 2
[0054] 次に第 2実施例について説明する。第 1実施例においては順番データの生成は番 付サーバ 53が行っている力 番付サーバ 53に全ての利用者管理サーノ 3のデー タを収集して受け渡し配列の合成を行う必要があり、処理のネックになる恐れがある。 また、番付サーバ 53の処理中は利用者管理サーバ 43は結果待ち状態で処理はし ていない。そこで第 2実施例においては、複数の利用者管理サーバ 43においてカロ 算合成や順番データの生成処理を分散して処理することにより、容易に処理能力を 拡張できるようにしたものである。
[0055] 図 32は、本発明の第 2実施例の各装置間のやり取りを示すフロー図である。第 2実 施例においては、番付サーバを設けず、利用者管理サーバ 43において順番データ を生成する。第 1実施例と異なる点は S 27の部分のみである。
[0056] 図 33は、本発明の第 2実施例における S27の集計 Z順番付け処理を示す説明図 である。第 2実施例としては例えば利用者管理サーバ 43の台数を 3台とするが、この 台数は任意に増減可能である。各利用者管理サーバ 0 (80)— 2 (82)にはそれぞれ 利用者の操作情報が格納された利用者情報である受け付けデータ 80— 82が存在 する。各利用者管理サーバにおいては、この受け付けデータを分割して管理サーバ 台数分の受け渡し配列を生成する。この配列の構造は図 7に示したものと同一である 。各配列のデータ量を均等にするために得点の下位の値により分配する。(詳細は 後述する)
[0057] 各利用者管理サーバにおいては、自分が合成すべき受け渡し配列を他のサーバ 力 取得し、他のサーバにて合成すべき受け渡し配列については他のサーバへ配 布する。例えば利用者管理サーバ 0 (80)は、生成した 3つの配列 83— 85の内の 2 つの配列 84、 85は他のサーバへ配布し、他の利用者管理サーバ 1、 2から 2つの配 列 B— 0 (86)、 C 0 (89)を取得する。
[0058] 自分が合成すべき受け渡し配列が揃うと、配列を加算合成する。例えば利用者管 理サーバ 0 (80)は、 3つの配列 A— 0 (83)、 B— 0 (86)、 C 0 (89)力 配列 ABC— 0 (92)を加算合成する。加算合成が複数のサーバによって分散処理されるので、サー バ数を増減することにより、処理能力を容易に増減可能である。
[0059] 加算合成された配列は、他の全ての利用者管理サーバにも配布される。従って全 ての利用者管理サーバにおいて配布が完了した時点においては、全ての利用者管 理サーバが加算合成された同じ配列 ABC— 0 (92)、 ABC— 1 (93)、 ABC— 2 (94)を 保持している。
[0060] 加算合成された配列には、各得点 (経過時間)ごとの人数データが格納されて 、る 。次にこの人数データを先頭力 積算して順番データ ABC— 0 (95)、 ABC— 1 (96) 、 ABC— 2 (97)に変換する。この処理は各利用者管理サーバにおいて並行して行わ れる。なお、 1台の利用者管理サーバにおいて順番データに変換して、その結果を 全ての利用者管理サーバに配信してもよいが、順番付けにかかる時間はほぼ同じで める。 [0061] 以上の処理によって、各利用者管理サーバには順番データが格納された同じ配列 ABC— 0 (95)、 ABC— 1 (96)、 ABC— 2 (97)が保持されて!、る。最後に、この順番 データを参照して、各利用者管理サーバが管理して 、る利用者情報 (受け付けデー タ)に順番を付与していく。
[0062] 図 34は、本発明の第 2実施例における S27の順番付与処理を示すフローチャート である。この処理は、ステータス管理サーバ 51からの集計指示によって各利用者管 理サーノ 3においてそれぞれ起動される。 S80においては、利用者管理サーバ台 数分の受け渡し配列を準備し、 S81においては、後述する配列生成処理を CALLす る。ここで利用者管理サーバ台数分の受け渡し配列が生成される。
[0063] S82においては、変数 aに 0を代入する。 S83においては、受け渡し配列データが 準備でき次第、 a番目のサーバから自サーバで加算する受け渡し配列データを取得 する。 S84においては、 aが利用者管理サーバ台数 max以上か否かが判定され、判 定結果が否定の場合には S85に移行する力 肯定の場合には S86に移行する。 S8 5においては aに 1を加算して S83に移行する。 S86においては、自サーバで処理す べき全ての受け渡し配列の内容を加算合成する。合成方法は第 1実施例の S52、 S 53の処理と同一である。
[0064] S87においては、変数 aに 0を代入する。 S88においては、受け渡し配列データが 準備でき次第、 a番目のサーバから加算合成された受け渡し配列データを取得する。 S89においては、 aが管理サーバ台数 max以上力否かが判定され、判定結果が否定 の場合には S90に移行する力 肯定の場合には S91に移行する。 S90においては、 aに 1を加算して S88に移行する。以上の処理により、全ての利用者管理サーノ 3が 加算合成された同じ配列を保持する状態となる。
[0065] S91においては、順番変換処理を CALLする。この処理により、配列内の人数デー タが積算されて順番データに変換される。 S92においては、順番付加処理を CALL する。この処理によって、各利用者管理サーバが管理している利用者情報 (受け付け データ)に順番が付与される。
[0066] 図 35は、本発明の第 2実施例の配列生成処理(S81)の内容を示すフローチャート である。この処理は、利用者管理サーバ台数分に分割された利用者情報の受け渡し 配列を生成する処理である。 S100においては、未処理の利用者情報 (受け付けデ ータ)から得点情報を算出すると共に利用者情報に書き込む。 S101においては、利 用者の得点を予め設定されている管理サーバ台数で除算した余りを変数 bに代入す る。 S102においては、利用者の得点を管理サーバ台数で除算した商を変数 cに代 入する。
[0067] S103においては、 b番目の受け渡し配列を選択する。 S104においては、変数 cの 値に基づいて受け渡し配列を上位力 順にたどる。具体的には、 cを階層に対応する ビット数 (例えば 8ビット)毎に階層数分に区切り、上位力 配列ユニット内の cを区切 つた値と対応するアドレスに下位の配列ユニットを指す有効なポインタが存在するか 否かをチェックする。
[0068] S 105においては、下位の配列が存在するか否かが判定され、判定結果が否定の 場合には S 106に移行する力 肯定の場合には S107に移行する。 S106において は、新たに下位の配列ユニットおよびそれを指すポインタを生成する。 S 107におい ては、最下位配列力否かが判定され、判定結果が否定の場合には S 104に移行する 力 肯定の場合には S108に移行する。
[0069] S108においては、最下位の配列ユニット内の cの下位所定ビットと対応する人数デ ータに 1を加算する。 S109においては、完了か否かが判定され、判定結果が否定の 場合には S 100に移行する力 肯定の場合には処理を終了する。以上の処理により 、利用者管理サーバ台数分に分割された受け渡し配列が生成される。各配列の情 報量は、得点情報の下位の値 (b)により分配されているので、各配列に含まれる人 数情報はほぼ均等になり、各利用者管理サーバにおける加算合成処理の負荷もほ ぼ均等になることが期待できる。
[0070] 図 36は、本発明の第 2実施例の順番変換処理 (S91)の内容を示すフローチャート である。 S120においては、変数等の初期化 CF (人数データー時保持変数) =0、 K( 順番データ) = 1、 Ρ (最上位階層の配列スキャン用カウンタ) =0、 L (階層) =0 (最 上位))を行う。 S121においては、最上位の配列ユニットの Ρ番目のポインタが有効( 存在する)か否かチェックする。 S 122においては、有効か否かが判定され、判定結 果が否定の場合には S124に移行するが、肯定の場合には S123に移行する。 [0071] S123においては、階層値 (L+ l)および S121における有効なポインタ情報を引 数として下位階層ルーチンを CALL (呼び出し)する。 S124においては、 Pに 1を加算 する。 S 125においては、 Pが 256以上か否かが判定され、判定結果が否定の場合 には S 121に移行する力 肯定の場合には処理を終了する。
[0072] 図 37は、第 2実施例の下位階層ルーチンを示すフローチャートである。この処理ル 一チンは階層毎に再帰呼び出しされる力 ルーチンで使用される変数はそれぞれの 階層で独立している。また、最下位の階層における処理と中間階層における処理は 分離されている。 S 130においては、最下位層か否かが判定され、判定結果が否定 の場合には S131に移行する力 肯定の場合には S137に移行する。
[0073] S131— S136は中間階層(L= l一 6)における処理である。 S131においては、 P
=0に初期化する。 S132においては、上位のルーチンからの引数によって指定され た配列ユニットの P番目のポインタが有効(存在する)か否かチェックする。 S 133にお いては、有効力否かが判定され、判定結果が否定の場合には S135に移行するが、 肯定の場合には S134に移行する。
[0074] S134においては、階層値 (L+ 1)および S132における有効なポインタ情報を引 数として下位階層ルーチンを CALLする。 S135においては、 Pに 1を加算する。 S13 6においては、 Pが 256以上か否かが判定され、判定結果が否定の場合には S132 に移行する力 肯定の場合には処理を終了して元のルーチンに戻る。
[0075] S137— S147は最下位層 (L = 7)における処理である。 S137においては、 P = 0 に初期化する。 S 138においては、上位ルーチン力も渡された有効な配列の数の力 ゥンタ Qを 1に初期化する。 S 139においては、 Q番目の配列ユニットの P番目の人数 データを読み出す。
[0076] S140においては、人数が 1以上力否かが判定され、判定結果が否定の場合には S144に移行する力 肯定の場合には S141に移行する。 S141においては、人数デ ータを一時保持するために変 #αに代入する。 S142においては、順位 Κを Q番目の 配列ユニットの Ρ番目に書き込む。 S 143においては、 J +Κを順位 Κに代入して順位 を更新する。
[0077] S144においては Qに 1をカ卩算する。 S145においては、 Qが上位ルーチンから渡さ れた有効な配列の数より大きいか否かが判定され、判定結果が否定の場合には S13 9に移行する力 肯定の場合には S146に移行する。 S146においては Pに 1を加算 する。 S 147においては Pが 256以上か否かが判定され、判定結果が否定の場合に は S138に移行する力 肯定の場合には処理を終了して元のルーチンに戻る。以上 の処理により、各配列内の人数データが順番データに変換される。
[0078] 図 38は、本発明の第 2実施例の順番付加処理 (S92)の内容を示すフローチャート である。 S150においては、利用者情報配列力 未処理の得点情報を取得する。 S1 51においては、利用者の得点を管理サーバ台数で除算した余りを変数 bに代入する 。 S152においては、利用者の得点を管理サーバ台数で除算した商を変数 cに代入 する。 S153においては、 b番目の受け渡し配列を選択する。
[0079] S154においては、変数 cの値に基づいて受け渡し配列をたどる。 S155において は、変数 cの値に基づいて最下位配列ユニットから順番データを読み出して、該当す る利用者情報に書き込む。 S156においては、完了力否かが判定され、判定結果が 否定の場合には S150に移行する力 肯定の場合には処理を終了して元のルーチン に戻る。
[0080] 以上実施例を開示したが、以下のような変形例も考えられる。実施例においては、 携帯端末を使用する例を開示したが、インターネットに接続されている一般の PC端 末を使用することも可能である。この場合には、例えば登録サーバへの受け付け順 に複数の利用者管理サーバへ割り振るようにしてもょ 、。
[0081] 実施例としては操作までの時間を得点として順番を付与する例を開示したが、以下 に本発明の受け渡し配列のより効果的な使用方法を開示する。この例においては 1 回の順番付け処理によって、正解問数が多い利用者がより上位になり、正解問数が 同数の場合には正解平均時間の短い利用者がより上位になるように順番を付与する 例えば、 Aさんは 3問正解、正解平均時間 13秒、 Bさんは 2問正解、正解平均時間 13秒、 Cさんは 2問正解、正解平均時間 5秒であった場合、例えば以下の計算式で 得点を求める。
[0082] 得点 = (OxFFFFFFFFFFFFFFFF—正解数 *0χ100000000 +正解平均時間) この式の意味は、配列表現できる最大数一正解数を左へ配列表現できる最大数の 半分(32ビット)シフト +正解平均時間である。各人の得点は、以下のようになる。
[0083] Aさん 0xFFFFFFFFFFFFFFFF-0x300000000+0xD=0xFFFFFFFD0000000C
Bさん 0xFFFFFFFFFFFFFFFF-0x200000000+0xD=0xFFFFFFFE0000000C 。さん 0xFFFFFFFFFFFFFFFF-0x200000000+0x5=0xFFFFFFFE00000004 本発明のシステムは値の小さい順に順番が付くので、 Aさんが 1位、 Bさんが 3位、
Cさんが 2位となる。
[0084] このように、配列の表現できる範囲の中で操作情報や蓄積情報、受付時間等の各 データをビットシフトと +—の入れ替えや組み合わせで、 、ろ 、ろな順番付に対応で きる。そして、この例においては、受け渡し配列は OxFFFFFF (上位 3段)の下に 2つの 配列、以下 1つづつ、都合 256要素の配列を 13個使用するだけでデータを表現でき る。つまり、本発明の受け渡し配列は、近似した値が大量に存在した時に最もデータ 圧縮効果が出ると 、う特徴がある。
[0085] この例において、正解数 1一 ΙΟ(ΟχΑ)問で秒数力 一 255(0xFF)秒の範囲に収まって
V、る場合、 10億人分の情報が存在しても各階層の配列が
1+1+1+0χΑ+0χΑ+0χΑ+0χΑ+0χΑ=53で 53*256*4Byte (—般的な 1要素のサイ )で最 大約 54Kバイトで済む。また、正解数 1一 100(0x64)問で秒数カ^ー 65535(0xFFFF)と
V、う比較的広域な値の範囲の場合は
1+1+1+0X64+0X64+0X64+0X64+(0X64*0XFF)=26003で最大約 26Mバイトの転送で済 む。実際には、正解数や正解平均時間に山 (片寄り)ができるため、データ量はさらに 小さくなる。このように、連続していなくても、片寄りの多い得点にも効果が出る特徴が める。
[0086] 実施例にお!、ては、利用者のボタン操作をトリガーとして、ボタン情報を受信して処 理する例を開示した力 本発明は、以下のようなトリガーと情報の組み合わせに適用 して柔軟な情報収集が可能である。操作情報の発生方法 (トリガ)には、例えば以下 のものが考えられる。
(1)操作トリガ、(2) 0— 9 (テンキー等)の操作、(3) 1— 12(テレビのリモコン等)の操 作、(4)その他の (色や形等)各種ボタンの操作、(5)選択 (一覧等)操作、(6)明暗( 光センサ)変化、(7)気温 (温度計)変化、(8)気圧 (気圧計)変化、(9)速度 (速度計や ジャイロセンサ等)変化、(10)加速度 (ジャイロセンサ等)変化、(11)時間 (時計や GPS 等)変化、(12)位置 ?3等)変化、(13)高度 ?3等)変化、(14)感情 (脳波等)変化 、(15)振る舞い (ジェスチャー等の動き等)変化、(16)その他、変化が判断のできるも の
[0087] また、操作情報としては以下のようなものが考えられる。(1)数字情報、(2)文字情 報、(3)選択子情報、(4)明暗情報、(5)気温情報、(6)気圧情報、(7)速度情報、 ( 8)加速度情報、(9)時間情報、(10)位置情報、(11)高度情報、(12)感情情報、 (1 3)振る舞い情報
産業上の利用可能性
[0088] 本発明のシステムは、テレビの視聴者参加番組と連動して利用者が操作した回答 情報などを集計して番組に反映するシステムなどのような、短時間で順番付け処理を 実行する必要があるシステムの用途に適用できる。更に、本発明の順番付与システ ムは、テレビの番組との連動システムに限らず、チケット販売、ギャンブルや試合のォ ッズ集計、オークション、ネットワーク参加ゲームのランキングなど、限られた時間に大 量アクセスが集中し、かつ順番付けを行う必要のある任意のシステムに適用可能であ る。

Claims

請求の範囲
[1] 利用者毎に ID番号を生成する ID生成手段と、
端末カゝら前記 ID番号を含む操作情報が送信されるようなページ情報を端末へ送信 するページ送信手段と、
端末から送信された前記 ID番号を含む操作情報を受信し、 ID番号に基づ 1ゝて接 続すべき利用者管理手段を特定して、当該操作情報を特定した利用者管理手段に 転送する操作情報転送手段と、
前記操作情報転送手段から転送されてきた操作情報を受付時間情報と共に利用 者と対応して記憶手段に記憶させる複数の利用者管理手段と、
それぞれが利用者情報を分担して記憶する、前記利用者管理手段と対応した複数 の記憶手段と
を備えたことを特徴とする集計システム。
[2] 前記利用者管理手段の数を N、前記記憶手段における利用者情報の登録位置に 対応する数値を I、利用者を登録する前記利用者管理手段の番号を Mとすると、前 記 ID番号は、 ID = I X N + Mで表される数値を含むことを特徴とする請求項 1に記載 の集計システム。
[3] 前記操作情報転送手段は、前記 ID番号を利用者管理手段の数 Nで除算した余り に基づ!、て接続すべき利用者管理手段を特定し、
前記利用者管理手段は、前記 ID番号を利用者管理手段の数 Nで除算した商に基 づいて前記記憶手段における利用者情報の登録位置を特定することを特徴とする請 求項 2に記載の集計システム。
[4] 更に、前記操作情報転送手段を複数備え、端末から送信されてきた操作情報を複 数の前記操作情報転送手段に分配する負荷分散手段を備えたことを特徴とする請 求項 1に記載の集計システム。
[5] 更に、複数の前記記憶手段に記憶された利用者の操作情報および受付時間情報 の少なくとも一方に基づき、利用者情報に順番を付与する順番付与手段を備えたこ とを特徴とする請求項 1に記載の集計システム。
[6] 前記順番付与手段は複数の前記記憶手段と対応して複数設けられ、 前記記憶手段に記憶されている情報を複数の前記順番付与手段に分配するため の複数の受け渡し配列を生成する配列生成手段と、
自己が合成すべき複数の前記受け渡し配列を収集して合成し、合成結果を配布す る合成手段と、
合成した配列の人数データを順番データに変換する変換手段と、
前記順番データに基づき、対応する記憶手段に記憶されて 、る利用者情報に順番 を付与する順番付与手段と
を含むことを特徴とする請求項 5に記載の集計システム。
[7] 前記受け渡し配列は、所定数の 1次元データ配列力 なる配列ユニットの集合であ り、
最下位層の配列ユニットには、順番をつけるべき数値と対応した配列位置に格納さ れた当該数値を有する情報の数を示すデータが格納され、
上位の複数層の配列ユニットの順番をつけるべき数値と対応した配列位置には、 下位の配列ユニット位置を示すポインタが格納され、
配列ユニットは、内部あるいは下位に有効なデータが存在する配列ユニットのみが 生成される
ことを特徴とする請求項 6に記載の集計システム。
[8] 前記順番をつけるべき数値は、利用者の個人情報、利用者の環境、利用者の操作 情報、受付開始からの経過時間から求めた得点であり、その得点の小さい順に順番 を付与することを特徴とする請求項 6に記載の集計システム。
[9] 利用者毎に ID番号を生成するステップと、
端末カゝら前記 ID番号を含む操作情報が送信されるようなページ情報を端末へ送信 するステップと、
端末から送信された前記 ID番号を含む操作情報を受信し、 ID番号に基づ 1ゝて接 続すべき利用者管理手段を特定して、当該操作情報を特定した利用者管理手段に 転送するステップと、
利用者管理手段において転送されてきた操作情報を利用者の情報と対応して受 付時間情報と共に記憶するステップと を含むことを特徴とする集計方法。
PCT/JP2004/016109 2003-11-10 2004-10-29 集計システム WO2005045719A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN200480007643.3A CN1762141B (zh) 2003-11-10 2004-10-29 合计***
EP04793217A EP1684220A4 (en) 2003-11-10 2004-10-29 compilation
US10/553,422 US7430603B2 (en) 2003-11-10 2004-10-29 Aggregation system
JP2005515276A JP3957220B2 (ja) 2003-11-10 2004-10-29 集計システム
US12/155,044 US7987265B2 (en) 2003-11-10 2008-05-29 Aggregation system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003379467 2003-11-10
JP2003-379467 2003-11-10
JP2003379466 2003-11-10
JP2003-379466 2003-11-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/155,044 Continuation US7987265B2 (en) 2003-11-10 2008-05-29 Aggregation system

Publications (1)

Publication Number Publication Date
WO2005045719A1 true WO2005045719A1 (ja) 2005-05-19

Family

ID=34575940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/016109 WO2005045719A1 (ja) 2003-11-10 2004-10-29 集計システム

Country Status (4)

Country Link
US (2) US7430603B2 (ja)
EP (1) EP1684220A4 (ja)
JP (1) JP3957220B2 (ja)
WO (1) WO2005045719A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107886255A (zh) * 2017-12-05 2018-04-06 北京粉笔蓝天科技有限公司 一种成绩排名方法和***

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2879385A1 (fr) * 2004-12-09 2006-06-16 Thomson Licensing Sa Methode d'agregation de decouverte de service dans un reseau local et appareil implementant la methode
US7905777B2 (en) 2005-08-04 2011-03-15 Igt Methods and apparatus for auctioning an item via a gaming device
US8216065B2 (en) 2005-09-09 2012-07-10 Igt Gaming system having multiple adjacently arranged gaming machines which each provide a component for a multi-component game
US7885932B2 (en) 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
US7857699B2 (en) 2006-11-01 2010-12-28 Igt Gaming system and method of operating a gaming system having a bonus participation bidding sequence
US9462029B2 (en) * 2008-08-29 2016-10-04 Red Hat, Inc. Invoking serialized data streams
US20100057790A1 (en) * 2008-08-29 2010-03-04 Johnson R Brent Secure virtual tape management system with console and catalog monitoring and updating
US8214584B2 (en) * 2008-08-29 2012-07-03 Johnson R Brent Secure virtual tape management system with early read support options
US8423604B2 (en) * 2008-08-29 2013-04-16 R. Brent Johnson Secure virtual tape management system with balanced storage and multi-mirror options
US20130013605A1 (en) * 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
US10652318B2 (en) * 2012-08-13 2020-05-12 Verisign, Inc. Systems and methods for load balancing using predictive routing

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306068A (ja) * 1998-04-24 1999-11-05 Sony Corp 送信装置および送信方法、受信装置および受信方法、並びに送受信システムおよび送受信方法
JP2000315200A (ja) * 1998-09-24 2000-11-14 Alteon Web Systems Inc 分散されたロード平衡インターネットサーバ
JP2001229151A (ja) * 2000-02-15 2001-08-24 Sharp Corp 回答収集システム、回答収集方法、コンピュータを回答依頼装置として機能させるためのコンピュータ読取可能な記録媒体およびコンピュータを回答収集装置として機能させるためのコンピュータ読取可能な記録媒体
JP2002163241A (ja) * 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
JP2002344928A (ja) * 2001-05-15 2002-11-29 Hitachi Ltd 双方向型放送視聴システムおよびその制御方法
JP2003209570A (ja) * 2002-01-11 2003-07-25 Fujitsu Ltd 中継方法そのクライアント、サーバ、中継装置
JP2003256392A (ja) * 2002-03-04 2003-09-12 Ntt Comware Corp ロードバランス制御装置及びロードバランス制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09147029A (ja) 1995-11-27 1997-06-06 Matsushita Electric Ind Co Ltd 電子投票システム
JP3872909B2 (ja) 1998-11-04 2007-01-24 株式会社東芝 クラスタシステム
JP4189076B2 (ja) 1999-03-26 2008-12-03 株式会社東芝 耐障害コンピュータシステム
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
JP2002057645A (ja) * 2000-08-10 2002-02-22 Ntt Docomo Inc データ転送方法および移動体サーバー
AU2001288650A1 (en) * 2000-08-31 2002-03-13 Mixed Signals Technologies, Inc. Systems and method for interacting with users over a communications network
US7139792B1 (en) * 2000-09-29 2006-11-21 Intel Corporation Mechanism for locking client requests to a particular server
US20020077885A1 (en) * 2000-12-06 2002-06-20 Jared Karro Electronic voting system
US20020169756A1 (en) * 2001-05-10 2002-11-14 Biddulph David L. Voting system and method for secure voting with increased voter confidence
US7143169B1 (en) * 2002-04-04 2006-11-28 Cisco Technology, Inc. Methods and apparatus for directing messages to computer systems based on inserted data
US7860975B2 (en) * 2002-07-31 2010-12-28 Oracle America, Inc. System and method for secure sticky routing of requests within a server farm
US7774473B2 (en) * 2002-07-31 2010-08-10 Oracle America, Inc. System and method for sticky routing of requests within a server farm
US7379988B2 (en) * 2003-04-23 2008-05-27 International Business Machines Corporation Autonomic performance tuning of a distributed virtual storage server

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306068A (ja) * 1998-04-24 1999-11-05 Sony Corp 送信装置および送信方法、受信装置および受信方法、並びに送受信システムおよび送受信方法
JP2000315200A (ja) * 1998-09-24 2000-11-14 Alteon Web Systems Inc 分散されたロード平衡インターネットサーバ
JP2001229151A (ja) * 2000-02-15 2001-08-24 Sharp Corp 回答収集システム、回答収集方法、コンピュータを回答依頼装置として機能させるためのコンピュータ読取可能な記録媒体およびコンピュータを回答収集装置として機能させるためのコンピュータ読取可能な記録媒体
JP2002163241A (ja) * 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
JP2002344928A (ja) * 2001-05-15 2002-11-29 Hitachi Ltd 双方向型放送視聴システムおよびその制御方法
JP2003209570A (ja) * 2002-01-11 2003-07-25 Fujitsu Ltd 中継方法そのクライアント、サーバ、中継装置
JP2003256392A (ja) * 2002-03-04 2003-09-12 Ntt Comware Corp ロードバランス制御装置及びロードバランス制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1684220A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107886255A (zh) * 2017-12-05 2018-04-06 北京粉笔蓝天科技有限公司 一种成绩排名方法和***

Also Published As

Publication number Publication date
US20060230158A1 (en) 2006-10-12
EP1684220A4 (en) 2012-02-15
JP3957220B2 (ja) 2007-08-15
JPWO2005045719A1 (ja) 2007-05-17
US7987265B2 (en) 2011-07-26
US7430603B2 (en) 2008-09-30
EP1684220A1 (en) 2006-07-26
US20080235377A1 (en) 2008-09-25

Similar Documents

Publication Publication Date Title
US7987265B2 (en) Aggregation system
CN1764916B (zh) 用于频率计数的方法和装置
KR101624246B1 (ko) 콘텐츠 자동 추천
CN110602514B (zh) 一种直播频道的推荐方法、装置、电子设备及存储介质
CN100384134C (zh) 播存网格环境下客户端资源检索及自动下载方法
EP3221797B1 (en) Testing systems and methods
CN101578603A (zh) 事件搜索
CN100442732C (zh) 关联控制设备、关联控制方法及服务关联***
JP6603645B2 (ja) リソース検索装置およびリソース検索方法
CN110099284A (zh) 一种快捷发言的生成方法、装置及服务器
JP4708383B2 (ja) 集計システム
US11063887B2 (en) Information processing apparatus, user terminal apparatus, and control method
CN110147514A (zh) 一种资源展示方法、装置及其设备
CN109145608A (zh) 一种基于区块链的数据处理方法及装置
Mizzaro et al. Retrieval of context-aware applications on mobile devices: how to evaluate?
JP6957079B2 (ja) 情報を提示するための方法及びデバイス
CN1762141B (zh) 合计***
CN114760240A (zh) 数据传输的方法、装置、电子设备及计算机可读存储介质
CN115174974A (zh) 基于未来网络的智慧影院***
CN105868367A (zh) 一种清理安卓设备中的根路径的方法、服务器和***
CN103080935A (zh) 内容搜索服务***和内容搜索服务方法
KR100476485B1 (ko) 랭킹 정보 통합 관리 시스템및 방법
CN116468486B (zh) 一种基于互联网平台的推广优化管理***
CN112825179A (zh) 一种医疗信息处理方法和相关装置
WO2004102424A1 (ja) 相互リンクシステム、情報処理装置、相互リンク方法、及び、その方法をコンピュータに実行させるプログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 20048076433

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2006230158

Country of ref document: US

Ref document number: 10553422

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2004793217

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005515276

Country of ref document: JP

WWP Wipo information: published in national office

Ref document number: 2004793217

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10553422

Country of ref document: US