System for providing voting service and method thereof
The method of using a CDN for first-type pages and a database server for second-type pages, combined with abuse detection, effectively manages traffic and ensures fair and reliable voting by preventing fraudulent activities.
Patent Information
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- CJ ENM CO LTD
- Filing Date
- 2023-07-20
- Publication Date
- 2026-07-29
AI Technical Summary
Existing voting systems face challenges in handling large-scale traffic surges and fraudulent voting attempts, necessitating a robust and reliable method to manage traffic and prevent abusive behavior while ensuring the integrity of voting data.
A method involving a user terminal that communicates with a Content Delivery Network (CDN) for first-type pages and a database server for second-type pages, combined with abuse detection techniques such as IP checks, browser identification, and signature verification, to manage traffic and validate voting data.
Efficiently controls large-scale traffic and enhances the fairness and reliability of voting processes by preventing abusive behavior and verifying the integrity of collected data.
Smart Images

Figure R1020230094566_ABST
Abstract
Description
Technology Field
[0001] This specification relates to a method for providing a robust and reliable voting service and a system for performing the same. Background Technology
[0002] As Hallyu content, including K-pop, spreads globally, attempts are being made in various places to break away from the existing trend where all content was planned internally by entertainment agencies and unilaterally released to the public.
[0003] A prime example is the member selection process during the production phase of idol groups. While agencies traditionally selected members through internal auditions and had them debut after a training period, recently, cases have emerged where viewers vote to select members through nationwide auditions, and the groups formed by these selected members debut immediately and continue their activities amidst great interest. Since groups that debut in this manner already have a fandom formed before their debut, it reduces the risks associated with the production phase; consequently, there is an increasing trend of producing groups based on viewer voting.
[0004] However, since these viewer votes are conducted through websites or applications provided by the production company, the nature of voting often leads to a sudden surge in traffic over a short period, requiring the configuration of a system to handle this. Furthermore, as fraudulent voting attempts frequently occur due to excessive fan devotion to a member, it is also necessary to devise measures to prevent such behavior and enhance the fairness and reliability of the voting process. The problem to be solved
[0005] The present specification aims to efficiently control large-scale traffic that may occur during the voting process.
[0006] In addition, the present specification aims to effectively prevent abusive behavior that may occur during the voting process.
[0007] In addition, this specification aims to verify the integrity of collected voting data.
[0008] The technical problems to be solved by this specification are not limited to those described above, and other technical problems can be inferred from the following embodiments. means of solving the problem
[0009] A method for providing a voting service through a user terminal comprises: receiving a request related to a page from a user; if the request is related to a first type page—the first type page is a page provided when a voting service category is activated—communicating with a Content Delivery Network (CDN) to process the request related to the first type page; and if the request is related to a second type page—the second type page is a page excluding the first type page—communicating with a database server to process the request related to the second type page.
[0010] Specifically, the step of processing a request related to the first type page includes the step of processing a display request for the first type page, and the step of processing a display request for the first type page may include the step of transmitting the display request to the CDN; the step of receiving page information including a Hypertext Markup Language (HTML) file that is not ready for rendering from a CDN server included in the CDN; and the step of displaying the first type page on the screen of the user terminal based on the page information.
[0011] Meanwhile, specifically, the step of processing a request related to the second type page includes the step of processing a request for access to the second type page, and the step of processing a request for display of the second type page may include the step of transmitting the display request to the database server; the step of receiving page information including an HTML file ready for rendering from the database server; and the step of displaying the second type page on the screen of the user terminal based on the page information.
[0012] Meanwhile, the first type page may include a selection page in which at least one of a plurality of options can be selected, and a voting completion page in which voting results are displayed after voting information for the option selected on the selection page has been submitted.
[0013] In one embodiment, the selection page displays an image of each of the plurality of options and a frame object corresponding to the number of selectable options, and the image of the selected option among the plurality of options may be displayed inside the frame object.
[0014] In another embodiment, the names of each of the plurality of options are displayed on the selection page, and the plurality of options may be displayed sorted based on the names.
[0015] In another embodiment, the first type page may further include a post-selection page that requests confirmation from the user regarding whether to submit the voting information prior to the submission of the voting information, or provides guidance on whether the voting information can be submitted. On the post-selection page, a submission button for the voting information is displayed, and upon selection of the submission button, a selected option, a Human Interaction Proof (HIP) interface, and a reconfirmation button are displayed. Upon selection of the reconfirmation button after passing the HIP, an advertisement video may be automatically played, and the post-selection page may transition to the voting completion page when the playback of the advertisement video is completed.
[0016] A method for providing a voting service through a server system including a Content Delivery Network (CDN) server and a database server comprises: receiving requests related to a first type page—the first type page being a page provided when a voting service category is activated—from a plurality of user terminals; selecting at least some of the requests based on the order in which the requests were received; and allocating resources to the selected requests for processing. The selecting step includes, whenever each of the selected requests is processed, newly selecting at least some of the remaining requests excluding the selected requests based on the order in which the requests were received.
[0017] In one embodiment, the method may further include the step of sending a waiting request to each user terminal that sent the remaining requests excluding the selected requests while the selected requests are being processed.
[0018] Meanwhile, in one embodiment, the processing step may include, in processing a request to submit voting information through the first type page, a step of determining whether to allow each of the selected requests; a step of collecting voting information corresponding to a request that is allowed among the selected requests; and a step of blocking a request that is not allowed among the selected requests.
[0019] For example, the step of determining whether to allow each of the selected requests may include determining as an unallowed request a request transmitted more than a preset number of times from a user terminal assigned the same IP (Internet Protocol) address, a request in which browser identification information is transmitted redundantly through the same browser, or a request transmitted through a browser corresponding to specific browser identification information.
[0020] For example, the step of determining whether to allow each of the selected requests may include: a step of verifying a combination of signature information for authenticating a voting service application installed on each user terminal that transmitted the selected requests and unique identification information of each user terminal; and a step of determining a request transmitted from a user terminal in which the combination is duplicated as an unallowed request.
[0021] For example, the step of determining whether to allow each of the selected requests may include: determining whether a clone application for the voting service application is installed on each of the user terminals based on the package name and installation directory of the voting service application installed on each of the user terminals that transmitted the selected requests; and determining a request transmitted from a user terminal determined to have the clone application installed as an unallowed request.
[0022] For example, the step of determining whether to allow each of the selected requests may include: determining whether an emulator for a voting service application is installed on each of the user terminals based on chipset information of the Central Processing Unit (CPU) of each of the user terminals that transmitted the selected requests; and determining a request transmitted from a user terminal determined to have the emulator installed as an unallowed request.
[0023] Meanwhile, in one embodiment, the method may further include the steps of: storing the collected voting information in a database as voting raw data according to a predefined schema; receiving a post-verification command from an administrator authenticated through signature information; determining the validity of each of the collected voting information based on the voting raw data according to the post-verification command; and finally determining the voting information determined to be valid as valid voting information.
[0024] In this regard, the step of determining the validity of each of the collected voting information may include: a step of identifying voting raw data among the voting raw data in which the email address included in the voting raw data is a temporarily generated address; and a step of determining voting information corresponding to the identified voting raw data as invalid voting information.
[0025] Meanwhile, in one embodiment, the method may further include the step of storing the collected voting information in a database as voting raw data according to a predefined schema; the step of allowing access to the voting raw data to an external server that has been granted data verification authority and has passed a pre-configured signature information-based authentication process; and the step of receiving a verification result from the external server that guarantees the integrity of the voting raw data. Additionally, the method may further include the step of transmitting a signal to any user terminal using the voting service indicating that the voting raw data is verified data.
[0026] According to the disclosed embodiment, a user terminal providing a voting service comprises: one or more processors; and a memory storing one or more commands executed by the one or more processors. The one or more processors are configured to receive a request related to a page from a user by executing the one or more commands, and if the request is related to a first type page—the first type page is a page provided when a voting service category is activated—they communicate with a Content Delivery Network (CDN) to process the request related to the first type page, and if the request is related to a second type page—the second type page is a page excluding the first type page—they communicate with a database server to process the request related to the second type page.
[0027] A server system including a Content Delivery Network (CDN) server and a database server, which provides a voting service according to an embodiment disclosed, comprises one or more processors; and a memory that stores one or more instructions executed by the one or more processors. The one or more processors are configured to receive requests related to a first type page—the first type page being a page provided when a voting service category is activated—from a plurality of user terminals by executing the one or more instructions, select at least some of the requests based on the order in which the requests were received, and allocate resources to the selected requests for processing. At this time, in selecting at least some of the requests, the one or more processors are configured to newly select at least some of the remaining requests, excluding the selected requests, based on the order in which the requests were received, whenever each of the selected requests is processed.
[0028] Specific details of other embodiments are included in the detailed description and drawings. Effects of the invention
[0029] According to the present specification, by separating servers that process related requests according to the type of page and distributing traffic, large-scale traffic that may occur during the voting process can be efficiently controlled.
[0030] In addition, according to the present specification, the fairness and reliability of voting can be enhanced by identifying acts judged as abusive based on detailed criteria among requests related to voting.
[0031] In addition, according to the present specification, by re-verifying the collected voting data through an authenticated third party, the possibility of vote manipulation can be prevented in advance, and the fairness and reliability of the vote can be further enhanced.
[0032] The effects of the invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description in the claims. Brief explanation of the drawing
[0033] Figure 1 is a schematic diagram showing the environment in which a voting service is provided. Figure 2 is a flowchart of a method for providing a voting service through a user terminal. FIG. 3 is a flowchart for specifically explaining how to process display requests for a first type page and a second type page. Figures 4a to 4g are example diagrams of voting service screens provided through a user terminal. Figure 5 is a flowchart of a method for providing voting services through a server system. Figure 6 is a flowchart to explain step S530 in more detail. FIGS. 7 to 10 are exemplary diagrams regarding an embodiment for distinguishing abuse among user requests. Figure 11 is a flowchart regarding an example of post-verification of collected voting information. FIG. 12 is a flowchart regarding an embodiment in which collected voting information is verified by an external server. Specific details for implementing the invention
[0034] The terms used in the embodiments have been selected to be as widely used as possible, taking into account their functions in this specification; however, these terms may vary depending on the intent of those skilled in the art, case law, the emergence of new technologies, etc. Additionally, in specific cases, terms have been arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the relevant explanatory sections. Therefore, terms used in this specification should be defined not merely by their names, but based on their meanings and the content throughout this specification.
[0035] When a part throughout the specification is described as "including" a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components. Furthermore, terms such as "...part" or "...module" as used in the specification refer to a unit that processes at least one function or operation; this unit may be implemented in hardware or software, or as a combination of hardware and software, and may not be clearly distinguishable in terms of specific operation, unlike the illustrated examples.
[0036] The expression "at least one of a, b, and c" described throughout the specification may include 'a alone', 'b alone', 'c alone', 'a and b', 'a and c', 'b and c', or 'a, b, and c all'.
[0037] The "terminal" or "user terminal" mentioned below may be implemented as a computer or portable terminal capable of connecting to a server or other terminal via a network. Here, the computer includes, for example, a notebook, desktop, or laptop equipped with a web browser, and the portable terminal may include, for example, any type of handheld-based wireless communication device that ensures portability and mobility, such as a communication-based terminal like IMT (international mobile telecommunication), CDMA (code division multiple access), W-CDMA (w-code division multiple access), or LTE (long term evolution), as well as smartphones, tablet PCs, etc.
[0038] In the following description, terms such as "transmission," "communication," "sending," "receiving," and other terms of similar meaning regarding signals, messages, or information include not only the direct transmission of information, messages, or information from one component to another, but also transmission through other components.
[0039] In particular, "transmitting" or "transmitting" a signal, message, or information as a component indicates the final destination of the signal, message, or information, and does not mean a direct destination. The same applies to the "reception" of a signal, message, or information. Furthermore, in this specification, two or more data or information are "related" means that if one data (or information) is obtained, at least a portion of another data (or information) can be obtained based thereon.
[0040] Additionally, terms such as first, second, etc., may be used to describe various components, but said components should not be limited by said terms. said terms may be used for the purpose of distinguishing one component from another.
[0041] For example, without departing from the scope of the rights of this specification, the first component may be named the second component, and similarly, the second component may also be named the first component.
[0042] Below, with reference to the attached drawings, embodiments of this specification are described in detail so that those skilled in the art can easily implement them. However, this specification may be implemented in various different forms and is not limited to the embodiments described herein.
[0043] Embodiments of the present specification will be described in detail below with reference to the drawings.
[0045] In describing the embodiments, technical details that are well known in the technical field to which the present invention belongs and are not directly related to the present invention are omitted. This is intended to convey the essence of the present invention more clearly without obscuring it by omitting unnecessary explanations.
[0046] For the same reason, some components in the attached drawings have been exaggerated, omitted, or schematically depicted. Additionally, the size of each component does not entirely reflect its actual dimensions. Identical or corresponding components in each drawing have been assigned the same reference numbers.
[0047] The advantages and features of the present invention and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below but can be implemented in various different forms. These embodiments are provided merely to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Throughout the specification, the same reference numerals refer to the same components.
[0048] It will be understood that each block of the process flow diagrams and combinations of the flow diagrams can be executed by computer program instructions. Since these computer program instructions can be loaded into the processor of a general-purpose computer, a special-purpose computer, or other programmable data processing equipment, the instructions executed through the processor of the computer or other programmable data processing equipment create means to perform the functions described in the flow diagram block(s). Since these computer program instructions can also be stored in computer-available or computer-readable memory that can be directed toward the computer or other programmable data processing equipment to implement the function in a specific way, the instructions stored in computer-available or computer-readable memory can also produce a manufactured item containing the means of instruction to perform the function described in the flow diagram block(s). Since computer program instructions can be loaded onto a computer or other programmable data processing equipment, instructions that perform a series of operation steps on the computer or other programmable data processing equipment to create a process executed by the computer can also provide steps for executing the functions described in the flowchart block(s).
[0049] Additionally, each block may represent a module, segment, or part of code containing one or more executable instructions for executing a specified logical function(s). It should also be noted that in some alternative execution examples, the functions mentioned in the blocks may occur out of order. For instance, two blocks described in succession may actually be executed substantially simultaneously, or the blocks may be executed in reverse order according to their corresponding functions.
[0051] Figure 1 is a schematic diagram showing the environment in which a voting service is provided.
[0052] The user terminal (100) may receive input from the user through an input device (e.g., keyboard, touch panel, microphone) or provide information to the user through an output device (e.g., speaker, screen). Additionally, the user terminal (100) may communicate with each other through a network connected to the server system (200) or communicate with other external devices. In this specification, the user terminal (100) is a collective term for a personal computer (PC), tablet, smartphone, etc., and the distinction may be made according to the way the user accesses the voting service. For example, if the user accesses a website to check voting-related instructions or checks information about a TV program where voting takes place, a PC may function as the user terminal (100), and if the user runs a voting service application to participate in voting, a smartphone may function as the user terminal (100).
[0053] Although the user terminal (100) is depicted as a single unit in FIG. 1, this is for convenience of explanation, and according to the embodiments of the present specification, multiple user terminals may communicate with the server system (200) simultaneously or sequentially. Accordingly, the term 'user terminal (100)' below should be understood as referring to any user terminal using the voting service, rather than to a specific terminal communicating with the server system (200).
[0054] The server system (200) collectively refers to servers that communicate with each user's terminal to provide voting services to multiple users. In this specification, the server system (200) refers to a system including a Content Delivery Network (CDN) server and a database server. That is, the server system (200) may include one or more additional servers in addition to the CDN server or the database server. In this specification, the mutual communication between the user terminal (100) and the server system (200) includes the mutual communication between the user terminal (100) and at least some of the servers within the server system (200).
[0055] The server system (200) manages traffic generated by communication with the user terminal (100) in providing a voting service, allocates resources to process it efficiently, collects information submitted from the user terminal (100) and stores it in a database, and controls the user terminal so that processed information can be provided to the user through the output device of the user terminal (100).
[0056] The user terminal (100) and the server system (200) can communicate with each other or with other external devices through a connected network. In this case, the network may include a local area network (LAN), a wide area network (WAN), a value-added network (VAN), a mobile radio communication network, a satellite communication network, and combinations thereof. The network is a data communication network in a comprehensive sense that enables each constituent entity shown in FIG. 1 to communicate smoothly with each other, and may include a wired internet network, a wireless internet network, and a mobile wireless communication network. Wireless communication technologies used in the network may include, for example, Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), Zigbee, Wi-Fi Direct (WFD), Ultra Wideband (UWB), Infrared Data Association (IrDA), Near Field Communication (NFC), but are not limited thereto.
[0057] Meanwhile, according to one embodiment, the user terminal (100) or the server system (200) may include at least one processor and a memory that stores at least one instruction executed by the processor. In one embodiment, the user terminal (100) may be connected to the server system (200) through a transceiver or a communication interface and may exchange data, and the server system (200) may also be connected to the user terminal (100) through a transceiver or a communication interface.
[0058] A processor can perform at least one method described below through FIGS. 1 to 11, and a memory can store information for performing at least one method described below through FIGS. 1 to 11. The memory may be volatile memory or non-volatile memory. Additionally, the processor of the user terminal (100) may control the user terminal (100) to execute a program and provide information, and the processor of the server system (200) may likewise control the server system (200) to execute a program and provide information. Additionally, the code of the program executed by each processor may be stored in memory.
[0059] The processor of the user terminal (100) can be configured to receive a request related to a page from a user by executing a command stored in memory, and if the received request is a request related to a first type page, communicate with a Content Delivery Network (CDN) to process a request related to a first type page (a page provided when the voting service category is activated).
[0060] Meanwhile, the process of the server system (200) can be configured to receive requests related to a first type page (a page provided when the voting service category is activated) from multiple user terminals by executing a command stored in memory, select at least some of the requests based on the order in which the requests are received, and allocate resources to the selected requests for processing.
[0061] In describing with reference to FIG. 1, it is assumed that the user terminal (100) and the server system (200) include only the components related to the present embodiment. However, depending on the embodiment, the user terminal (100) and the server system (200) may each additionally include other general-purpose components, which can be understood by those with ordinary knowledge in the technical field related to the present embodiment.
[0063] FIG. 2 is a flowchart of a method for providing a voting service through a user terminal (100).
[0064] As described, the user terminal (100) receives a request related to a page from the user (S210). The user terminal (100) checks which type of page the received request is related to (S220), and if the request is related to a first type page—a page provided when the voting service category is activated—it communicates with a Content Delivery Network (CDN) (210) to process the request related to the first type page (S230), and if the request is related to a second type page—a page excluding the first type page—it communicates with a database server (220) to process the request related to the second type page (S240).
[0065] In other words, the user terminal (100) distinguishes the pages where requests occur, communicates with the CDN (210) to process requests related to the first type of page, and communicates with the database server (220) to process requests related to the second type of page. This is because, as certain types of pages may generate excessive traffic in the short term, the method of processing requests through the database server (220) can incur high costs as it requires multiple database servers to handle large-scale traffic. Furthermore, if the infrastructure becomes complex due to multiple database servers, the burden on infrastructure control may increase. On the other hand, the CDN (210) can accommodate much more traffic than the database server, and accordingly, it is possible to operate a relatively small number of database servers. However, the method using the database server (220) does not only have disadvantages; it actually has strengths in some aspects, such as Search Engine Optimization (SEO).
[0066] Accordingly, considering the characteristic that high traffic occurs during the voting time, the user terminal (100) uses a CDN (210) for requests related to the first type page, but uses a database server (220) for requests related to the second type page, as there is a low possibility that high traffic will occur instantaneously.
[0067] FIG. 3 is a flowchart for specifically explaining how to process display requests for a first type page and a second type page.
[0068] Steps S310 to S340 relate to a method for processing a display request for a first type page, and steps S350 to S380 relate to a method for processing a display request for a second type page.
[0069] Regarding the first type page, the user terminal (100) receives a request to display the first type page from the user (S310) and transmits the received display request to the CDN (S320). Subsequently, in response to the transmitted display request, the user terminal (100) receives page information containing a Hypertext Markup Language (HTML) file that is not ready for rendering from a CDN server included in the CDN (S330). Subsequently, based on the received page information, the user terminal (100) displays the first type page on the screen of the user terminal (100) (S340).
[0070] Specifically, the user terminal (100) receives a link from the CDN server that is accessible to an HTML file and a JavaScript file that are not ready for rendering, downloads the HTML file and the JavaScript file, and executes the JavaScript file to call an API (Application Programming Interface) for receiving data. Subsequently, as the CDN server responds to the request by the API, the user terminal (100) can reflect the data received through the API into the placeholder attribute of the HTML file and display an interactive page on the screen of the user terminal (100).
[0071] Meanwhile, regarding the second type page, the user terminal (100) receives a request from the user to display the second type page (S340) and transmits the received display request to the database server (220) (S360). Subsequently, the user terminal (100) receives page information containing an HTML file ready for rendering from the database server (220) in response to the transmitted display request (S370). Subsequently, the user terminal (100) displays the second type page on the screen of the user terminal (100) based on the received page information (S380).
[0072] Specifically, the database server (220) delivers an HTML file that is ready for rendering to the user terminal (100). As soon as the HTML file is delivered to the user terminal (100), rendering of the HTML file begins, and accordingly, the user can view the content of the second type page even while the user terminal (100) is downloading the JavaScript file. Subsequently, when the JavaScript file is successfully compiled on the user terminal (100), the second type page is displayed in an interactive state. While this method is more advantageous for certain purposes such as SEO, it is disadvantageous for handling sudden increases in traffic or large-scale traffic because it requires more server resources as the server prepares for rendering. Therefore, maximum efficiency can be achieved when combined with the above method using a CDN server.
[0074] Meanwhile, in this specification, 'first type page' collectively refers to a page provided within a voting service provided in the form of an application or web through a user terminal (100) when the voting service category is activated. According to an embodiment, the first type page may include 1) a selection page in which at least one of a plurality of options can be selected, and 2) a voting completion page in which voting results are displayed after voting information for the option selected on the selection page has been submitted. In an additional embodiment, the first type page may further include 3) a post-selection page that requests confirmation from the user regarding whether to submit voting information or provides guidance on whether voting information can be submitted prior to the submission of voting information. As such, there may be various first type pages related to voting, and representative examples including 1), 2), and 3) among these will be described below with reference to FIGS. 4a to 4g.
[0075] FIGS. 4a to 4g are example diagrams of a voting service screen provided through a user terminal. For convenience of explanation, FIGS. 4a to 4g are assumed to be page screens related to an audition program that selects idol group members to debut through voting. At the top of FIGS. 4a to 4g, the content of each page is divided into multiple tabs. The HOME tab displays the main page of a website that comprehensively displays various content, the INFO tab displays the profile page of the audition program's participants, and the MEDIA tab displays clip videos, promotional videos, etc. of the audition program. Additionally, the TALK tab displays a community service page (e.g., chat, guestbook, etc.) where multiple viewers (users) can participate. Meanwhile, the VOTE tab (401) is a voting service category, and when a user selects the VOTE tab (401), a first type page related to the voting service of the audition program may be displayed. If only the VOTE tab (401) is considered as a voting service category, the pages displayed when the user selects the HOME, INFO, MEDIA, and TALK tabs will correspond to the second type of pages.
[0076] First, FIGS. 4a to 4c illustrate cases where a first type of page related to voting in an audition program is not displayed. Individually, FIG. 4a shows a page displaying a notice (402) indicating that there is no ongoing voting; FIG. 4b shows a page displaying a notice (403) indicating that voting participation is possible via an app when accessing the website via a PC; and FIG. 4c shows a page displaying a notice (403) indicating that voting participation is possible via an app and an app-related link (404) when accessing the website in a mobile environment (tablet, smartphone, etc.). At this time, the link referenced by the app-related link (404) differs depending on whether the app is installed on the user terminal (100). For example, if the app is installed, the link to the corresponding page related to the voting service is referenced after running the app, and if the app is not installed, the link to the app download page can be referenced.
[0077] Meanwhile, FIGS. 4d to 4g illustrate cases where a first type of page related to voting in an audition program is displayed normally. Specifically, FIG. 4d is an example of a selection page where at least one of several candidate members can be selected, FIG. 4e is an example of a post-selection page displayed before voting information is submitted, and FIGS. 4f and 4g are examples of voting completion pages where voting results are displayed after voting information is submitted.
[0078] As illustrated in FIG. 4d, the selection page may display a frame object (405) corresponding to the number of selectable options and an image (406) of each of the multiple options. Additionally, the image of the selected option among the multiple options may be displayed inside the frame object (405). Furthermore, the selection page may display the names of each of the multiple options, and each option may be displayed sorted according to its name. The alphabet bar interface (407) between the two sections (405, 407) assists in easily navigating among numerous options to find the desired option, and can provide a function to display options with names starting with a specific alphabet on the screen when the user selects that alphabet. In this regard, the names of each option may be written in Korean, English, or a third language, and the part that serves as the sorting criterion for the options in the name may be the Korean surname character or the first letter of the English last name.
[0079] Meanwhile, in FIG. 4d, different graphic effects may be applied to the rectangular frames in which images (406) of each of the multiple options are displayed, depending on the characteristics of the options. For example, in 406, the frames of 4 of the 8 candidate members (Jeong Han-gil, Kwon Sa-rang, Oh Da-woon, Song Han-gyeol) are displayed with thick solid lines, while the frames of the remaining 4 members (Baek Song-yi, Jo Na-rae, Kang Eun-soo, Shim Eun-jeong) are displayed with dotted lines. These graphic effects may be applied based on various characteristics of each candidate member, such as their agency, training period, gender, vote percentage, number of votes, affiliated team, age, etc. In addition, at the bottom of FIG. 4d, an interface (408) indicating the number of currently selected options, an interface (409) for initializing selected options, and an interface (410) for submitting voting information for selected options are shown.
[0080] FIG. 4e illustrates a post-selection page that is switched when a user selects the 410 interface after selecting an option. If, as shown on the left side of FIG. 4e, the user selects 9 members (9 options) including Jeong Han-gil and Song Han-gyeol and then selects the 410 interface, the user terminal (100) may display a post-selection page requesting the user's confirmation regarding whether to submit voting information, depending on whether voting information can be submitted at present, or display various types of post-selection pages that inform the user that voting information cannot be submitted. For example, if voting information can be submitted, the user terminal (100) may display a post-selection page that includes the option (411) selected on the selection page, the HIP (Human Interaction Proof) interface (412), and a reconfirmation button (413).
[0081] According to the embodiment, the submission of voting information may be completed based on user input to the reconfirm button (413) after the HIP is passed based on user input, but it may not stop there and an advertisement video (414) may be automatically played. In this case, once the playback of the advertisement video is finished, the page after selection may be switched to a voting completion page. That is, by introducing an advertisement video (414) to induce users who wish to vote to watch the advertisement video, the profitability of the voting-related program can be improved through advertising fees.
[0082] Meanwhile, pages 415 to 418 shown at the bottom of FIG. 4e are various types of pages that indicate when voting information cannot be submitted, and each page provides the reason why voting information cannot be submitted. In order, examples include a page (415) for when a user commits voting-related fraud (abusing) or when a user attempting to submit voting information is on a blacklist, a page (416) for when a duplicate vote is attempted using the same device, a page (417) for when a vote is attempted when it is not within the voting period, and a page (418) for when the device's unique value (e.g., SSAID) is missing or when communication between the application and the server is not normal. In particular, the point in time that serves as the criterion for determining whether it corresponds to a pre-set voting period on page 417 can be set in various ways; for instance, even if the user enters the selection page or the post-selection page within the voting period, page 417 may be provided if the voting period has expired at the time of submitting voting information, or if the voting period has expired at the time of watching all of the video in 414.
[0083] Meanwhile, FIGS. 4f and 4g illustrate a voting completion page in which voting results are displayed after voting information for selected options has been submitted. FIG. 4f is a voting completion page in which the voting certificate (419), provided in the form of a bottom sheet, is not unfolded, and FIG. 4g is an example of a voting completion page in which the voting certificate (419) is unfolded. When the voting certificate (419) is not unfolded, the options selected by the user (including Jeong Han-gil and Song Han-gyeol) are displayed through a frame object (405), whereas when the voting certificate (419) is unfolded, the options selected by the user can be displayed in a grid form (411) within the voting certificate. Additionally, a stamp (422) proving the validity of the voting certificate is displayed at the bottom of the voting certificate (419), and the stamp (422) may display the nickname of the voting user, the date and time of voting, and the name of the institution proving the validity of the voting certificate. However, whether the stamp (422) is displayed, the type of information included in the stamp (422), etc., can be set in various ways depending on the embodiment. The voting certificate (419) can be stored and shared as is, and can be used as a means to authenticate each other's community activities and encourage each other's community activities among users watching a voting-related program. To this end, the voting certificate (419) may display a graphic object (420) that provides a function to download in image format or a graphic object (421) that provides a function to share on a social network service (SNS).
[0085] FIG. 5 is a flowchart of a method for providing voting services through a server system (200).
[0086] As described above, the server system (200) receives requests related to a first type page—a page provided when the voting service category is activated—from a plurality of user terminals (S510). Afterward, the server system (200) selects at least some of the requests based on the order in which each request was received (S520), and allocates resources to the selected requests for processing (S530). In step S520, whenever each selected request is processed, the server system (200) newly selects at least some of the remaining requests, excluding the selected requests based on the order in which the requests were received.
[0087] In an embodiment, the server system (200) can select a pre-set number of requests in order of the earliest received requests and manage the remaining unselected requests in a queue. This management method is particularly useful when handling rapidly increasing traffic, such as when managing voting in an audition program. In serverless environments, which are widely used to reduce the cost and time of server construction, or in auto-scaling environments where the number of servers is automatically changed according to the number of users, the server may go down at the beginning of server heating due to a sudden increase in traffic; however, through the above management method, requests within a range where the server will not go down can be processed first, and the remainder can be put on hold to prevent the server from going down.
[0088] In an embodiment, the server system (200) may send a waiting request to each user terminal that has sent the remaining requests excluding the selected requests while the selected requests are being processed. Specifically, the server system (200) may provide the waiting request to each user terminal in the form of a push notification, vibration, pop-up window, etc.
[0090] FIG. 6 is a flowchart for explaining step S530 in more detail. Specifically, FIG. 6 illustrates the process of processing a request to submit voting information via a first type page transmitted from a user terminal.
[0091] As described above, the server system (200) determines whether to allow each of the selected requests (S610), collects voting information corresponding to the allowed requests among the selected requests (S620), and blocks the requests among the selected requests that are not allowed (S630).
[0092] In this specification, a request to submit voting information contrary to a previously defined voting policy is collectively referred to as misconduct (abusing). In this regard, the fact that the server system (200) determines whether to allow a request includes determining whether the request constitutes abuse. While voting policies may be defined in various ways, representative examples are as follows.
[0093] 1) Frequency: 1 vote per day / 1 vote within the period
[0094] 2) Duplicate Voting: N people can vote per vote / Up to N people can be voted per vote / 1 person can be voted per vote
[0095] 3) Voting Results: Provides total votes, votes by candidate, and vote percentage by candidate / Provides total votes and vote percentage by candidate / Provides total votes only / Private
[0096] 4) Voting Scenario Flow: Voting Policy Introduction Page - Select Candidate - Submit - HIP - Watch Ad - Final Submission Complete
[0097] From the perspective of the user, the fairness of the vote must be guaranteed to encourage active participation by users (participants), to gain recognition for the reliability of the service, and furthermore, to enhance the success and profitability of the service. Therefore, distinguishing abuse through step S610 to allow or block each request is a very important matter; thus, Figures 7 to 10 below propose various techniques to distinguish abuse more accurately and thoroughly. Each technique can be applied individually, and it is also possible to apply two or more techniques in combination.
[0098] FIGS. 7 to 10 are exemplary diagrams regarding an embodiment for distinguishing abuse among user requests.
[0099] Referring to FIG. 7, the server system (200) can block requests transmitted more than a preset number of times from a user terminal assigned the same IP (Internet Protocol) address by determining them as unallowed requests. That is, if a user terminal assigned the same IP address continues to transmit requests exceeding the allowed number of times, the server system (200) can determine this as a duplicate vote that violates the voting policy.
[0100] Additionally, the server system (200) can block requests in which browser identification information is duplicated through the same browser, by determining them as unallowed requests. That is, even if the user terminal is different, if a request that duplicates a previously submitted request is submitted by logging in with a single ID on the same browser, the server system (200) can determine this as a duplicate vote that violates the voting policy.
[0101] Additionally, the server system (200) can block requests transmitted through a browser corresponding to specific browser identification information by determining them to be unauthorized requests. For example, some browsers are easy to link with proxy servers and support many add-on functions, such as changing IP addresses linked with a Virtual Private Network (VPN). Therefore, in order to prevent potential problems arising from such browsers, the server system (200) can determine requests transmitted through the browser as fraudulent votes that violate the voting policy.
[0102] Referring to FIG. 8, the server system (200) can verify the combination of 1) signature information for authenticating a voting service application installed on each user terminal that sent the selected requests and 2) unique identification information of each user terminal that sent the selected requests, and determine that a request sent from a user terminal with a duplicate combination is an unallowed request and block it.
[0103] For example, the signature information of 1) may include an encryption key, a decryption key, a PIN number, an electronic signature, iris recognition information, facial recognition information, fingerprint information, etc., and the unique identification information of 2) may include the IMEI (International Mobile Equipment Identity) of the user terminal, the wireless router network name (SSID), the UUID (Universally Unique Identifier), etc. Since the combination of 1) and 2) will be unique for each user terminal, the server system (200) can use the combination as a criterion for determining duplicate user terminals.
[0104] Meanwhile, FIG. 9 relates to an example of a voting abuse prevention method that is relatively effective in a mobile environment. Referring to FIG. 9, the server system (200) determines whether a clone application for a voting service application is installed on each user terminal based on the package name and installation directory of the voting service application installed on each user terminal that transmitted selected requests, and determines a request transmitted from a user terminal where a clone application is determined to be installed as an unauthorized request and blocks it.
[0105] To explain in detail, when using a clone app, multiple accounts can be operated without operations such as logging in / logging out, and thus there is a concern that it may be exploited for vote abuse, such as enabling duplicate voting. Therefore, determining whether a clone app is installed is significant for preventing vote abuse, and the server system (200) can use the package name and installation path (installation directory) as characteristics of the clone app. For example, the package name of the clone app is often created by adding or changing parts of it while being similar to the package name of the original app (voting service application), and the directory where the clone app is installed is mostly different from the directory where the original app is installed. Therefore, the server system (200) can determine whether the clone application has been installed based on this.
[0106] In an embodiment, the server system (200) may determine that a request transmitted from a user terminal where a clone application is installed is an allowed request if the request is transmitted through the original app of the user terminal, and may determine that a request is an unallowed request if the request is transmitted through the clone app. That is, rather than unconditionally blocking requests transmitted from a terminal where a clone app is installed, the accuracy of abuse identification may be improved by more finely distinguishing whether the source of the request is the original app or the clone app. However, in this case, the voting information within the request transmitted from the user terminal (100) must include information that can identify which app the request originated from. This can be chosen by the service provider or developer considering the accuracy of abuse identification, the volume of information transmitted and received, and the resources required accordingly.
[0107] Meanwhile, FIG. 10 relates to an example of a voting abuse prevention method that is relatively effective in a PC environment. Referring to FIG. 10, the server system (200) determines whether an emulator for a voting service application is installed on each user terminal based on the chipset information of the Central Processing Unit (CPU) of each user terminal that has transmitted selected requests, and can block requests transmitted from user terminals that are determined to have an emulator installed by determining them as unallowed requests.
[0108] Since emulators can also be exploited for vote abuse by virtually running voting service applications on PCs, determining whether an emulator is installed is just as important for preventing vote abuse as determining whether a clone app is installed.
[0109] However, similar to FIG. 9, the server system (200) may determine that a request transmitted from a user terminal that is determined to have an emulator installed is an allowed request if the request is transmitted through the original app of the user terminal, and may determine that the request is an unallowed request if the request is transmitted through the emulator. In other words, rather than unconditionally blocking requests transmitted from a terminal with an emulator installed, the accuracy of abuse identification may be improved by more finely distinguishing whether the source of the request is the original app or the emulator. However, in this case, the voting information within the request transmitted from the user terminal (100) must include information that can identify whether the request originated through the original app or through the emulator. This can be chosen by the service provider or developer considering the accuracy of abuse identification, the volume of information transmitted and received, and the resources required accordingly.
[0111] Figure 11 is a flowchart regarding an example of post-verification of collected voting information.
[0112] As described above with reference to FIG. 5, the server system (200) receives requests related to a first type page—a page provided when the voting service category is activated—from a plurality of user terminals (S510). Subsequently, the server system (200) selects at least some of the requests based on the order in which each request was received (S520), and allocates resources to the selected requests for processing (S530). In particular, as illustrated in FIG. 6, when processing requests for the submission of voting information through the first type page, the server system (200) may allow some of the requests for the submission of voting information to collect voting information, as represented by the examples in FIGs. 7 to 10, and block others without allowing them. However, even for voting information that has already been collected, there is a possibility that the validity may have been incorrectly determined during the collection process or that elements that were not fully considered may remain. Recently, as there have been continuous attempts to distort voting and undermine fairness using various voting abuse methods, strict post-verification of already collected voting information is required.
[0113] In this regard, the server system (200) stores the collected voting information in a database as voting raw data according to a predefined schema (S1110). Subsequently, the server system (200) receives a post-verification command from an administrator authenticated through signature information (S1120), and determines the validity of each of the collected voting information based on the voting raw data according to the received post-verification command (S1130). As a result, the server system (200) determines the voting information determined to be valid as the final valid voting information (S1140).
[0114] According to one embodiment, the voting raw data stored in the database by the server system (200) may include at least some of the following: voting date, user identification information, user terminal identification information (which may be distinguished by operating system or manufacturer), browser identification information, email address, user name, user nickname, and the time at which the voting raw data was entered into the database. If there is an error, such as at least some of the information included in the voting raw data being duplicated or not matching the voting period, the server system (200) may determine that the voting information corresponding to the voting raw data is invalid.
[0115] Meanwhile, according to one embodiment, regarding voting information that is determined to be invalid as a result of the judgment of S1130, the server system (200) may process the voting information as invalid according to the reason for the judgment (case 1), or report to the administrator that the voting information is likely to be abused without making a direct judgment (case 2).
[0116] As an example related to Case 1, the server system (200) can directly block voting information collected from a user's terminal using a temporarily generated email address by treating it as a dead vote. For example, the server system (200) can identify voting raw data among the voting raw data stored in the database as collected voting information, wherein the email address included in the voting raw data is a temporarily generated address, and determine the voting information corresponding to the identified voting raw data as invalid voting information and block it.
[0118] FIG. 12 is a flowchart illustrating an embodiment in which collected voting information is verified by an external server. While performing self-post verification of voting information by a server system (200) as in FIG. 11 would be effective in enhancing the fairness and reliability of the vote, verifying the data through an expert external agency can provide greater reliability to the public using the voting service.
[0119] In this regard, the server system (200) stores the collected voting information in a database as voting raw data according to a predefined schema (S1210). Subsequently, the server system (200) receives a request for access to the voting raw data from an external server (S1220). Accordingly, the server system (200) determines whether the external server is a server granted authority to verify the data (S1230) and determines whether the external server passes a pre-configured signature information-based authentication process (S1240). In this regard, the signature information-based authentication process (logic) for determining whether to allow access to the voting raw data can be configured in various ways.
[0120] If the external server is a server that is not granted data verification authority or fails to pass the signature information-based authentication process, the server system (200) blocks access to the voting raw data of the external server. Meanwhile, if the external server is a server that is granted data verification authority and passes the signature information-based authentication process, the server system (200) allows access to the voting raw data of the external server (S1250). According to an embodiment, the server system (200) can provide the voting raw data to the external server in the form of an API (Application Programming Interface).
[0121] Subsequently, the server system (200) receives a verification result from an external server that guarantees the integrity of the raw voting data (S1260). Subsequently, the server system (200) transmits a signal indicating that the raw voting data is verified data to any user terminal using the voting service (S1270). According to an embodiment, the signal transmitted by the server system (200) can be expressed in various forms, such as a message, a pop-up window, a push notification, a stamp, or a graphic object, so that the user can recognize that the raw voting data has been verified through a voting service application installed on the user terminal.
[0123] The device according to the embodiments described above may include a processor, memory for storing and executing program data, permanent storage such as a disk drive, a communication port for communicating with an external device, and user interface devices such as a touch panel, a key, a button, etc. Methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable code or program instructions executable on the processor. Here, computer-readable recording media include magnetic storage media (e.g., ROM (read-only memory), RAM (random-access memory), floppy disks, hard disks, etc.) and optical reading media (e.g., CD-ROM, DVD). Computer-readable recording media may be distributed across networked computer systems, allowing computer-readable code to be stored and executed in a distributed manner. The medium may be readable by a computer, stored in memory, and executed by a processor.
[0124] The present embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented by various numbers of hardware and / or software configurations that execute specific functions. For example, the embodiment may employ integrated circuit configurations such as memory, processing, logic, look-up tables, etc., capable of executing various functions by the control of one or more microprocessors or other control devices. Similar to how components may be implemented as software programming or software elements, the present embodiment may be implemented in programming or scripting languages such as C, C++, Java, assembler, etc., including various algorithms implemented as combinations of data structures, processes, routines, or other programming configurations. Functional aspects may be implemented as algorithms executed on one or more processors. Additionally, the present embodiment may employ prior art for electronic configuration, signal processing, message processing, and / or data processing. Terms such as “mechanism,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical and physical configurations. The above terms may include the meaning of a series of software processes (routines) in conjunction with processors, etc.
[0125] The aforementioned embodiments are merely examples, and other embodiments may be implemented within the scope of the claims set forth below.
Claims
Claim 1 A method for providing a voting service through a user terminal comprises: receiving a request related to a page from a user; determining whether the request is related to a first type page or a second type page; and communicating with either a Content Delivery Network (CDN) or a database server to process the request according to the result of the determination, wherein the step of processing the request comprises: if the result of the determination is that the request is related to the first type page, communicating with the CDN to process the request related to the first type page; and if the result of the determination is that the request is related to the second type page, communicating with the database server to process the request related to the second type page, wherein the first type page is a page provided when a voting service category is activated, and the second type page is a page excluding the first type page. Claim 2 A method for providing a voting service according to claim 1, wherein the step of processing a request related to the first type page includes the step of processing a display request for the first type page, and the step of processing a display request for the first type page includes the step of transmitting the display request to the CDN; the step of receiving page information including a Hypertext Markup Language (HTML) file that is not ready for rendering from any one CDN server included in the CDN; and the step of displaying the first type page on the screen of the user terminal based on the page information. Claim 3 A method for providing a voting service according to claim 1, wherein the step of processing a request related to the second type page includes the step of processing a request for display of the second type page, and the step of processing a request for display of the second type page includes the step of transmitting the display request to the database server; the step of receiving page information including an HTML file ready for rendering from the database server; and the step of displaying the second type page on the screen of the user terminal based on the page information. Claim 4 A method for providing a voting service according to claim 1, wherein the first type page comprises a selection page in which at least one of a plurality of options can be selected, and a voting completion page in which voting results are displayed after voting information for the option selected on the selection page has been submitted. Claim 5 A method for providing a voting service according to claim 4, wherein the selection page displays an image of each of the plurality of options and a frame object corresponding to the number of selectable options, and the image of the selected option among the plurality of options is displayed inside the frame object. Claim 6 A method for providing a voting service according to paragraph 4, wherein the name of each of the plurality of options is displayed on the selection page, and the plurality of options are displayed sorted based on the name. Claim 7 A method for providing a voting service according to claim 4, wherein the first type page further includes a post-selection page that requests confirmation from the user regarding whether to submit the voting information prior to the submission of the voting information, or guides whether the voting information can be submitted. Claim 8 A method for providing a voting service according to claim 7, wherein on the page after selection, a submission button for the voting information is displayed, and upon selection of the submission button, a selected option, a HIP (Human Interaction Proof) interface, and a reconfirmation button are displayed, and upon selection of the reconfirmation button after passing the HIP, an advertisement video is automatically played, and when the playback of the advertisement video is completed, the process switches to the voting completion page. Claim 9 A method for providing a voting service through a server system including a Content Delivery Network (CDN) server and a database server, comprising: receiving requests related to a first type page from a plurality of user terminals; selecting at least some of the requests based on the order in which the requests were received; and allocating resources to the selected requests for processing, wherein the first type page is a page provided when a voting service category is activated, and the selecting step comprises, whenever each of the selected requests is processed, newly selecting at least some of the remaining requests excluding the selected requests based on the order in which the requests were received, and the processing step comprises, in processing a request to submit voting information through the first type page, determining whether each of the selected requests is allowed; collecting voting information corresponding to the allowed requests among the selected requests; and blocking the unallowed requests among the selected requests. Claim 10 A method for providing a voting service according to claim 9, further comprising the step of transmitting a waiting request to each user terminal that transmitted the remaining requests excluding the selected requests while the selected requests are being processed. Claim 11 delete Claim 12 A method for providing a voting service according to claim 9, wherein the step of determining whether to allow each of the selected requests comprises determining as an unallowed request a request transmitted more than a preset number of times from a user terminal assigned the same IP (Internet Protocol) address, a request in which browser identification information is transmitted redundantly through the same browser, or a request transmitted through a browser corresponding to specific browser identification information. Claim 13 In claim 9, the step of determining whether to allow each of the selected requests comprises: a step of verifying a combination of signature information for authenticating a voting service application installed on each user terminal that transmitted the selected requests and unique identification information of each user terminal; and a step of determining a request transmitted from a user terminal in which the combination overlaps as an unallowed request. Claim 14 In claim 9, the step of determining whether to allow each of the selected requests comprises: determining whether a clone application for the voting service application is installed on each of the user terminals based on the package name and installation directory of the voting service application installed on each of the user terminals that transmitted the selected requests; and determining a request transmitted from a user terminal determined to have the clone application installed as an unallowed request. Claim 15 In claim 9, the step of determining whether to allow each of the selected requests comprises: determining whether an emulator for a voting service application is installed on each of the user terminals based on chipset information of the Central Processing Unit (CPU) of each of the user terminals that transmitted the selected requests; and determining a request transmitted from a user terminal determined to have an emulator installed as an unallowed request. Claim 16 A method for providing a voting service according to claim 9, further comprising: a step of storing the collected voting information in a database as voting raw data according to a predefined schema; a step of receiving a post-verification command from an administrator authenticated through signature information; a step of determining the validity of each of the collected voting information based on the voting raw data according to the post-verification command; and a step of finally determining the voting information determined to be valid as valid voting information. Claim 17 A method for providing a voting service according to claim 16, wherein the step of determining the validity of each of the collected voting information comprises: a step of identifying voting raw data among the voting raw data in which the email address included in the voting raw data is a temporarily generated address; and a step of determining voting information corresponding to the identified voting raw data as invalid voting information. Claim 18 A method for providing a voting service according to claim 9, further comprising: a step of storing the collected voting information in a database as voting raw data according to a predefined schema; a step of allowing access to the voting raw data to an external server that has been granted data verification authority and has passed a pre-configured signature information-based authentication process; and a step of receiving a verification result from the external server that guarantees the integrity of the voting raw data. Claim 19 A method for providing a voting service according to claim 18, further comprising the step of transmitting a signal indicating that the voting raw data is verified data to any user terminal using the voting service. Claim 20 A computer-readable, non-transient recording medium storing a program for executing the method of paragraph 1 on a computer. Claim 21 A user terminal providing a voting service, comprising: one or more processors; and a memory storing one or more commands executed by the one or more processors, wherein the one or more processors are configured to receive a request related to a page from a user by executing the one or more commands, determine whether the request is a request related to a first type page or a second type page, and, depending on the result of the determination, communicate with either a Content Delivery Network (CDN) or a database server to process the request, wherein the one or more processors are configured to, if the result of the determination is that the request is a request related to the first type page, communicate with the CDN to process the request related to the first type page, and if the result of the determination is that the request is a request related to the second type page, communicate with the database server to process the request related to the second type page, wherein the first type page is a page provided when the voting service category is activated, and the second type page is a page excluding the first type page. Claim 22 A server system comprising a Content Delivery Network (CDN) server and a database server that provides a voting service, comprising: one or more processors; and a memory that stores one or more commands executed by the one or more processors, wherein the one or more processors are configured to receive requests related to a first type page from a plurality of user terminals by executing the one or more commands, select at least some of the requests based on the order in which the requests are received, and allocate resources to the selected requests for processing, wherein the first type page is a page provided when a voting service category is activated, and wherein the one or more processors are configured to, in selecting at least some of the requests, newly select at least some of the remaining requests excluding the selected requests based on the order in which the requests are received whenever each of the selected requests is processed, and in allocating resources to the selected requests for processing, when processing a request to submit voting information through the first type page, determine whether each of the selected requests is allowed, collect voting information corresponding to the allowed requests among the selected requests, and block requests that are not allowed among the selected requests.
Citation Information
Patent Citations
Polling system
JP2005332095A