Information processing systems, information processing methods, and programs
The system optimizes settlement processing by shuffling and distributing data across threads based on processing speed and method, addressing inefficiencies in existing systems and improving overall processing efficiency.
Patent Information
- Application Number
- JP2025022164
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-14
- Publication Date
- 2026-08-26
- Estimated Expiration
- 2045-02-14
AI Technical Summary
Existing information processing systems experience prolonged completion times for settlement processing due to uneven distribution of settlement data across threads, leading to inefficiencies.
An information processing system that includes a processor to shuffle and distribute settlement data to multiple threads in parallel, ensuring balanced processing loads by shuffling payment data based on processing speed and method, thereby optimizing thread distribution.
This approach enhances processing efficiency by minimizing imbalances in thread processing times and reducing overall settlement completion time.
Smart Images

Figure 2026136584000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing system, an information processing method, and a program.
Background Art
[0002] Conventionally, for example, as disclosed in Patent Document 1, an information processing system for performing settlement by outputting settlement data corresponding to the purchase of a product or service has been disclosed. In such an information processing system, when performing settlement based on a large number of settlement data, the settlement data is allocated to each of a plurality of threads and output in parallel.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in such an information processing system, the time until settlement is completed in some of the plurality of threads may be long.
Means for Solving the Problems
[0005] The information processing system for solving the above problems is an information processing system including at least one processor, the at least one processor receiving a settlement request including a plurality of settlement data from a terminal device, shuffling the plurality of settlement data included in the settlement request, allocating the shuffled plurality of settlement data to each of a plurality of threads, and causing settlement based on the plurality of settlement data by outputting the plurality of settlement data allocated to each of the plurality of threads in parallel for each of the plurality of threads.
[0006] An information processing method that solves the above problem involves at least one processor receiving a payment request containing multiple payment data from a terminal device, shuffling the multiple payment data included in the payment request, distributing the shuffled multiple payment data to multiple threads, and performing a payment based on the multiple payment data by having the distributed multiple payment data output in parallel to each of the multiple threads.
[0007] A program that solves the above problem causes at least one processor to perform the following actions: receive a payment request containing multiple payment data from a terminal device; shuffle the multiple payment data contained in the payment request; distribute the shuffled multiple payment data to multiple threads; and perform payment based on the multiple payment data by having each of the multiple threads output the distributed multiple payment data in parallel. [Effects of the Invention]
[0008] According to the present invention, the processing efficiency of payment processing can be improved. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 shows the overall configuration of the information processing system according to the first embodiment. [Figure 2] Figure 2 shows the settlement request database of the first embodiment. [Figure 3] Figure 3 shows the payment management database of the first embodiment. [Figure 4] Figure 4 is a diagram showing the control details related to payment data in the first embodiment. [Figure 5] Figure 5 is a flowchart showing the settlement request management process of the first embodiment. [Figure 6] Figure 6 is a flowchart showing the payment control process of the first embodiment. [Figure 7]Figure 7 is a flowchart showing the settlement result management process of the first embodiment. [Figure 8] Figure 8 is a flowchart showing the payment control process of the second embodiment. [Figure 9] Figure 9 is a flowchart showing the payment control process of the third embodiment. [Modes for carrying out the invention]
[0010] [First Embodiment] One embodiment of an information processing system, an information processing method, and a program will be described. <Configuration of Information Processing System 10> As shown in Figure 1, the information processing system 10 is a system for performing settlements. In particular, the information processing system 10 is a system for performing periodic settlements. Periodic settlements are settlements that are performed regularly and continuously. Periodic settlements may be, for example, daily, weekly, monthly, or annual settlements.
[0011] The information processing system 10 includes an information processing device 11. The information processing system 10 may also include a payment gateway 12. The information processing system 10 may also include a payment processing server 13 and a payment server 14. The information processing system 10 may include multiple payment processing servers 13 and multiple payment servers 14. The information processing system 10 may also include a terminal device 19.
[0012] The information processing device 11, in response to a payment request from the terminal device 19, directs the payment to the payment server 14 via the payment gateway 12 and the payment processing server 13. In particular, the information processing device 11 directs the payment to the payment server 14 in response to periodic payment requests from the terminal device 19. Each payment request includes at least one payment data. The payment data is data relating to the details of a single payment.
[0013] The information processing device 11 outputs settlement data to the settlement gateway 12. The information processing device 11 includes a plurality of threads. The information processing device 11 can sequentially output settlement data in parallel through the plurality of threads.
[0014] The information processing device 11 receives a settlement result from the settlement server 14 via the settlement gateway 12 and the settlement agency server 13. The information processing device 11 transmits the settlement result to the terminal device 19.
[0015] Based on the settlement data from the information processing device 11, the settlement gateway 12 causes the settlement server 14 to perform settlement via the settlement agency server 13. The settlement gateway 12 receives settlement data output in parallel from a plurality of threads in the information processing device 11. The settlement gateway 12 receives a settlement result from the settlement server 14 via the settlement agency server 13. The settlement gateway 12 transmits the settlement result to the information processing device 11.
[0016] The settlement agency server 13 performs settlement on behalf. The settlement agency server 13 receives settlement data from the terminal device 19 via the information processing device 11 and the settlement gateway 12. The settlement agency server 13 transmits the settlement data to the settlement server 14 corresponding to the settlement data. The settlement agency server 13 receives a settlement result from the settlement server 14. The settlement agency server 13 transmits the settlement result to the settlement gateway 12. The settlement agency server 13 may be managed by an administrator of the settlement agency company.
[0017] The settlement server 14 is a server that performs settlement. The settlement server 14 receives settlement data from the terminal device 19 via the information processing device 11, the settlement gateway 12, and the settlement agency server 13. The settlement server 14 performs settlement based on the settlement data. The settlement server 14 transmits the settlement result to the settlement agency server 13. The settlement server 14 may be managed by an administrator of the credit card issuer.
[0018] The terminal device 19 makes a payment request. The terminal device 19 transmits a payment request to the information processing device 11. The terminal device 19 receives a payment result corresponding to the payment request from the information processing device 11. The terminal device 19 may be managed by the person who requested the payment for which the payment request was made.
[0019] The information processing device 11, the payment gateway 12, the payment agency server 13, the payment server 14, and the terminal device 19 may be able to communicate with each other via a network not shown. Hereinafter, the description of communication via the network for the information processing device 11, the payment gateway 12, the payment agency server 13, the payment server 14, and the terminal device 19 will be omitted.
[0020] <Configuration of the information processing device 11> The information processing device 11 may be realized by at least one computer. The information processing device 11 includes at least one processor 20 and at least one memory 21. The information processing device 11 includes a communication interface 22. In the figure, the interface is shown as I / F.
[0021] The processor 20 controls the information processing device 11. The processor 20 is configured to execute processing based on a program 26 stored in the memory 21. The processor 20 may be a CPU (Central Processing Unit), a GPU (Graphic Processing Unit), or an NPU (Neural network Processing Unit). The processor 20 may include an integrated circuit, such as an application-specific integrated circuit, for example, or may be an integrated circuit. The processor 20 may be a combination of these.
[0022] Memory 21 is configured to store program 26. Memory 21 is a non-temporary computer-readable medium for storing program 26, but may also include temporary computer-readable medium. Here, non-temporary computer-readable medium includes, for example, magnetic recording media, magneto-optical media, and semiconductor memory such as RAM (Random Access Memory). Program 26 may include dedicated applications for using the information processing system 10. Memory 21 stores database 27. Memory 21 may also be composed of multiple types of non-temporary computer-readable mediums. For example, memory 21 may be composed of a magnetic recording medium and semiconductor memory.
[0023] The communication interface 22 is implemented as hardware, software, or a combination thereof. The communication interface 22 sends and receives data to and from the payment gateway 12 and the terminal device 19. The information processing device 11 may include an input device and a display device.
[0024] The payment gateway 12, payment processing server 13, payment server 14, and terminal device 19 are configured in the same way as the information processing device 11. Therefore, a description of the processors, memory, and communication interfaces of the payment gateway 12, payment processing server 13, payment server 14, and terminal device 19 is omitted.
[0025] <Data structure of database 27> As shown in Figure 2, the memory 21 of the information processing device 11 stores the settlement request database 30 as database 27. The settlement request database 30 is a database for managing settlement requests.
[0026] The settlement request database 30 comprises at least one dataset 30A. The dataset 30A associates a request identifier, a requester identifier, settlement conditions, the number of settlements, and the request type. In the diagram, the identifier is referred to as ID.
[0027] The request identifier is data that identifies the payment request. The requester identifier is data that identifies the requester who made the payment request. The payment conditions indicate the conditions for making a payment based on the payment request. The payment conditions may include the payment date for making a payment based on a periodic payment request, or the payment date and time. The number of payments is data that indicates the number of payment data included in a single payment request. The number of payments may be data that can be set by the requester.
[0028] The request type is data indicating the type of payment request. The request type may include normal, high-speed, and slow types. The normal type is a type of payment request that contains multiple payment data regardless of processing speed. The high-speed type is a type of payment request that contains multiple payment data with a fast processing speed. The slow type is a type of payment request that contains multiple payment data with a slow processing speed. The request type may also be data that can be set by the requester.
[0029] As shown in Figure 3, the memory 21 of the information processing device 11 stores the settlement management database 31 as database 27. The settlement management database 31 is a database related to settlement data included in settlement requests.
[0030] The payment management database 31 includes at least one dataset 31A. The dataset 31A is associated with a request identifier, payment identifier, thread identifier, payment destination identifier, payment method, payment amount, payment token, management flag, and status.
[0031] The payment identifier is data that can identify the payment data. The thread identifier is data that can identify the thread that outputs the payment data to the payment gateway 12. The payment method is data indicating the payment method. The payment method may include multiple payment methods. It may include credit card payment and point payment, or a combination of credit card payment and point payment. When either credit card payment or point payment is used, the processing speed is faster than when both are used. The payment amount may include at least one of the payment amount and the points used for payment.
[0032] A payment token is data that tokenizes an identifier used for payment. This identifier may include numbers associated with credit cards or loyalty cards.
[0033] Management flags are data used to manage settlement data. Management flags may also be data that identifies whether the settlement process is fast or slow. Management flags may also indicate whether a settlement is invalid or not. Data that is invalid does not trigger any actual settlement processing. Therefore, invalid data is processed faster than data that is valid.
[0034] The management flag may include data indicating whether the credit card has expired. The management flag may also include data indicating whether the credit card's spending limit has been reached. The management flag may also be data set by the requester.
[0035] The status is data indicating the progress of the settlement process. The status may include at least one of the following statuses: preparing, waiting for output, waiting for result, waiting for reply, and completed. The preparing status is the status in which preparation for outputting settlement data is underway after receiving a settlement request. The waiting for output status is the status in which preparation for outputting settlement data is complete and the system is waiting for an instruction to output the settlement data. The waiting for result status is the status in which output of settlement data has been completed and the system is waiting to receive the settlement result based on the settlement data. The waiting for reply status is the status in which the system has received the settlement result based on the settlement data and is waiting for an instruction to send the settlement result based on the settlement data back to the terminal device 19. The waiting for reply status may include data that can identify the settlement result based on the settlement data. The completed status is the status in which the return of the settlement result based on the settlement data to the terminal device 19 has been completed.
[0036] <Control details regarding payment data> Now, referring to Figure 4, we will explain the control details regarding the payment data included in the payment request.
[0037] As shown in Figure 4, the payment request transmitted from the terminal device 19 to the information processing device 11 contains multiple payment data in an arbitrary order. To facilitate understanding of the invention, we will explain, as an example, that the payment request contains four payment data.
[0038] A payment request contains two payment data entries that are processed slowly and two payment data entries that are processed quickly. The slow and fast payment data entries tend to be stored in a grouped order.
[0039] In the information processing device 11, multiple payment data are distributed to multiple threads and output to the payment gateway 12. For example, the first and second payment data may be distributed to different threads. In this way, multiple payment data are output sequentially in parallel to multiple threads.
[0040] In such cases, if payment data with slow processing speeds and payment data with fast processing speeds are stored in a grouped order, the distribution of slow and fast payment data may be uneven across multiple threads. As a result, some threads may end up with a concentration of slow payment data.
[0041] For this reason, in this embodiment, the multiple payment data included in a payment request are shuffled and then distributed to multiple threads. This prevents the distribution of slow-processing payment data to multiple threads in an uneven manner. As a result, the concentration of slow-processing payment data in some of the multiple threads can be suppressed. Therefore, the processing efficiency of payment processing can be improved.
[0042] <Payment Request Management Processing> The settlement request management process will be explained with reference to Figure 5. The settlement request management process is executed by the processor 20 at predetermined intervals.
[0043] As shown in Figure 5, in step S10, the processor 20 determines whether or not it has received a payment request from the terminal device 19. If the processor 20 determines that it has not received a payment request from the terminal device 19, it terminates the payment request management process. If the processor 20 determines that it has received a payment request from the terminal device 19, it proceeds to step S11. In this way, the processor 20 receives a payment request containing multiple payment data from the terminal device 19.
[0044] In step S11, the processor 20 executes a payment request registration process. In this process, the processor 20 stores the payment request in memory 21. The processor 20 generates a request identifier corresponding to the payment request. The processor 20 reads the client identifier, payment conditions, number of payments, and request type contained in the payment request. The processor 20 registers the request identifier, client identifier, payment conditions, number of payments, and request type in the payment request database 30, associating them with each other.
[0045] The processor 20 generates a payment identifier corresponding to the payment data included in the payment request. The processor 20 reads the payment destination identifier, payment method, payment amount, payment token, and management flag included in the payment data. For each of the multiple payment data included in the payment request, the processor 20 associates the request identifier, payment identifier, payment destination identifier, payment method, payment amount, payment token, and management flag and registers them in the payment management database 31. The processor 20 registers a "preparing" status in the payment management database 31 to correspond to all of the multiple payment data included in the payment request.
[0046] <Payment control processing> The payment control process will be explained with reference to Figure 6. The payment control process is executed by the processor 20 at predetermined intervals.
[0047] As shown in Figure 6, in step S20, the processor 20 determines whether the settlement conditions have been met. The processor 20 refers to the settlement request database 30 and determines whether the settlement conditions have been met based on the settlement conditions registered in the settlement request database 30. The settlement conditions are met when the settlement date for the periodic settlement arrives.
[0048] If processor 20 determines that the settlement conditions are not met, it terminates the settlement control process. If processor 20 determines that the settlement conditions are met, it proceeds to step S21.
[0049] In step S21, the processor 20 executes a settlement data acquisition process. In this process, the processor 20 reads multiple settlement data included in the settlement request for which the settlement conditions have been met from the memory 21. As a result, the processor 20 acquires multiple settlement data.
[0050] In step S22, the processor 20 performs a settlement data shuffling process. In this process, the processor 20 shuffles the order of the multiple settlement data obtained in step S21. In this way, the processor 20 shuffles the multiple settlement data included in the settlement request.
[0051] In step S23, the processor 20 executes settlement data distribution processing. In this process, the processor 20 distributes the multiple settlement data that were shuffled in step S22 to multiple threads. Based on the result of distributing the multiple settlement data to the threads, the processor 20 registers thread identifiers in the settlement request database 30 so as to correspond to settlement identifiers. The processor 20 registers output waiting status in the settlement management database 31 so as to correspond to the settlement data that has been distributed to one of the multiple threads.
[0052] In step S24, the processor 20 executes the settlement data output process. In this process, the processor 20 refers to the settlement management database 31 and outputs settlement data corresponding to the thread identifier for each of the multiple threads. The processor 20 may also output settlement data corresponding to the thread identifier for each of the multiple threads by calling the API (application programming interface) of the settlement gateway 12. This causes the processor 20 to output settlement data to the settlement gateway 12 in parallel for each of the multiple threads. The processor 20 registers a result waiting status in the settlement management database 31 corresponding to the settlement data output to any of the multiple threads.
[0053] In step S25, the processor 20 determines whether the output of all settlement data included in the settlement request has been completed. In this process, the processor 20 determines that the output of all settlement data included in the settlement request has been completed when the status of all settlement data included in the settlement request in the settlement management database 31 becomes the output status.
[0054] If the processor 20 determines that the output of all settlement data included in the settlement request has not been completed, it proceeds to step S24. If the processor 20 determines that the output of all settlement data included in the settlement request has been completed, it terminates the settlement control process.
[0055] In this way, the processor 20 performs settlements based on multiple settlement data by sequentially outputting multiple settlement data, which have been distributed to multiple threads, to each of the multiple threads in parallel.
[0056] <Settlement Result Management Processing> The settlement result management process will be explained with reference to Figure 7. The settlement result management process is executed by the processor 20 at predetermined intervals.
[0057] As shown in Figure 7, in step S40, the processor 20 determines whether or not it has received a payment result corresponding to the payment data from the payment gateway 12. If the processor 20 determines that it has not received a payment result from the payment gateway 12, it proceeds to step S42. If the processor 20 determines that it has received a payment result from the payment gateway 12, it proceeds to step S41. In this way, the processor 20 obtains a payment result for each of the multiple payment data.
[0058] In step S41, the processor 20 executes the settlement result registration process. In this process, the processor 20 registers a pending reply status in the settlement management database 31 to correspond to the settlement data for which the settlement result has been received. The processor 20 registers data that can identify the settlement result as a status in the settlement management database 31 to correspond to the settlement data for which the settlement result has been received.
[0059] In step S42, the processor 20 determines whether or not it has received the settlement results for all the settlement data included in the settlement request. If the processor 20 determines that it has not received the settlement results for all the settlement data included in the settlement request, it terminates the settlement result management process. If the processor 20 determines that it has received the settlement results for all the settlement data included in the settlement request, it proceeds to step S43.
[0060] In step S43, the processor 20 executes the settlement result transmission process. In this process, the processor 20 transmits the settlement results of all settlement data to the terminal device 19. Thus, when the processor 20 obtains all settlement results corresponding to the multiple settlement data included in the settlement request, it transmits all settlement results to the terminal device 19. The processor 20 registers the completion status in the settlement management database 31 to correspond to all settlement data for which settlement results have been returned to the terminal device 19.
[0061] <Operation and Effects of the First Embodiment> The operation and effects of the first embodiment will now be described. (1-1) The processor 20 shuffles the multiple payment data included in the payment request and distributes the shuffled payment data to multiple threads. The processor 20 performs payment based on the multiple payment data by outputting the distributed payment data to each thread in parallel. This configuration makes it possible to suppress the imbalance between payment data with slow processing speeds and payment data with fast processing speeds across multiple threads. As a result, it is possible to suppress the concentration of payment data with slow processing speeds in some of the multiple threads. This makes it possible to suppress the imbalance in the time it takes for payment to be completed across multiple threads. Therefore, the processing efficiency of payment processing can be improved.
[0062] (1-2) When the processor 20 has obtained all settlement results corresponding to the multiple settlement data included in the settlement request, it transmits all settlement results to the terminal device 19. This reduces the time required to obtain all settlement results corresponding to the multiple settlement data included in the settlement request. This reduces the time required to transmit all settlement results to the terminal device 19. Therefore, the processing efficiency of the settlement process can be improved.
[0063] [Second Embodiment] Next, a second embodiment will be described. In the following description, the same reference numerals will be used for components that have already been described in the embodiments, and redundant explanations will be omitted or simplified.
[0064] <Payment control processing> As shown in Figure 8, in the second embodiment, in the settlement control process, when step S21 is completed, the processor 20 moves to step S26. In step S26, the processor 20 determines whether the splitting condition is met. The splitting condition can be met when the number of settlement data included in the settlement request is equal to or greater than a second threshold. The second threshold corresponds to a number of settlement data such that the control load does not become extremely high in order to shuffle the multiple settlement data. The splitting condition is an example of the second condition.
[0065] The processor 20 refers to the settlement request database 30 and reads the number of settlements corresponding to settlement requests for which the settlement conditions have been met. If the number of settlements is equal to or greater than the second threshold, the processor 20 determines that the splitting condition has been met.
[0066] If processor 20 determines that the partitioning condition is not met, it proceeds to step S28. If processor 20 determines that the partitioning condition is met, it proceeds to step S27.
[0067] In step S27, the processor 20 performs settlement data partitioning. In this process, the processor 20 divides the multiple settlement data included in the settlement request into multiple processing groups. Each processing group is a group for performing settlement processing.
[0068] More specifically, the processor 20 may determine the number of divisions based on the number of settlements. The processor 20 may set a larger number of divisions when the number of settlements is the first number of settlements than when the number of settlements is the second number of settlements, which is smaller than the first number of settlements. The first and second number of settlements are settlements equal to or greater than the second threshold. In this way, the processor 20 divides the multiple settlement data included in a settlement request into multiple processing groups when the division conditions are met, based on the multiple settlement data included in the settlement request.
[0069] In step S28, the processor 20 determines whether the shuffle condition is met. The shuffle condition is met when the number of settlement data included in the settlement request is equal to or greater than the first threshold. The shuffle condition may also be met when the number of settlement data divided into processing groups is equal to or greater than the first threshold. The first threshold corresponds to a number of settlement data such that the processing speed of the settlement process does not become extremely low even if multiple settlement data are not shuffled. The first threshold is smaller than the second threshold. The shuffle condition corresponds to an example of the first condition.
[0070] If processor 20 determines that the shuffling condition is not met, it proceeds to step S23. If processor 20 determines that the shuffling condition is met, it proceeds to step S22.
[0071] In step S22, the processor 20 shuffles the multiple settlement data. The processor 20 shuffles the multiple settlement data that have been divided into processing groups. The processor 20 does not shuffle the multiple settlement data when the shuffle condition is not met, and shuffles the multiple settlement data when the shuffle condition is met.
[0072] In the second embodiment, if the processor 20 is divided into multiple processing groups, it executes steps S22 to S25 and S28 for each processing group. Specifically, the processor 20 can shuffle the multiple settlement data divided into processing groups. The processor 20 distributes the multiple settlement data divided into processing groups to multiple threads. The processor 20 outputs multiple settlement data for each of the multiple threads. When the processor 20 has output all the settlement data divided into multiple processing groups, and has output all the settlement data divided into multiple processing groups, it terminates the settlement control process.
[0073] <Operation and Effects of the Second Embodiment> The operation and effects of the second embodiment will now be described. (2-1) The processor 20 shuffles multiple settlement data when the shuffle condition is met. The shuffle condition is met when the number of settlement data included in the settlement request is equal to or greater than the first threshold. With this configuration, when the number of multiple settlement data included in the settlement request is less than the first threshold, the multiple settlement data are not shuffled. This reduces the control load caused by shuffling multiple settlement data.
[0074] (2-2) The processor 20 divides the multiple settlement data included in the settlement request into multiple processing groups based on the multiple settlement data included in the settlement request. With this configuration, the multiple settlement data included in the settlement request can be divided into multiple processing groups. This reduces the control load caused by shuffling the multiple settlement data.
[0075] (2-3) The processor 20 divides multiple settlement data into multiple sets when the division condition is met. The division condition is met when the number of multiple settlement data included in a settlement request is equal to or greater than the second threshold. With this configuration, even if the number of multiple settlement data included in a settlement request is equal to or greater than the second threshold, the multiple settlement data can be divided into multiple processing groups. This reduces the control load caused by shuffling multiple settlement data.
[0076] [Third Embodiment] Next, a third embodiment will be described. <Payment control processing> As shown in Figure 9, in the third embodiment, in the settlement control process, when step S21 is completed, the processor 20 moves to step S29. In step S29, the processor 20 executes settlement data determination processing. In this process, the processor 20 determines the processing speed of each of the settlement data based on the multiple settlement data included in the settlement request.
[0077] The processor 20 refers to the settlement management database 31 and reads a management flag for each of the multiple settlement data. The processor 20 may also determine that settlement data associated with a management flag indicating a high settlement processing speed is settlement data with a high processing speed.
[0078] More specifically, the processor 20 may determine that payment data that is invalid is payment data with a high processing speed. The processor 20 may also determine that payment data associated with a management flag indicating a low processing speed is payment data with a low processing speed.
[0079] The processor 20 refers to the payment management database 31 and reads the payment method for each of the multiple payment data. The processor 20 may determine that payment data employing either credit card payment or points payment is payment data with a high processing speed. The processor 20 may also determine that payment data employing both credit card payment and points payment is payment data with a low processing speed. In other words, for each of the multiple payment data, the processor 20 may determine that payment data containing multiple payment methods is payment data with a low processing speed.
[0080] In step S28, the processor 20 determines whether the shuffle condition is met. In the third embodiment, the shuffle condition is met when the proportion of settlement data among the multiple settlement data included in the settlement request that is determined to have a high processing speed is less than a specified proportion. For example, the specified proportion may be 80%. In this way, the processor 20 determines whether the shuffle condition is met based on the result determined in step S29.
[0081] The processor 20 may refer to the settlement request database 30 and determine whether the shuffle condition has been met based on the request type. The processor 20 may determine that the shuffle condition has been met when the request type is a normal type or a slow type. The processor 20 may determine that the shuffle condition has not been met when the request type is a fast type.
[0082] If processor 20 determines that the shuffling condition is not met, it proceeds to step S23. If processor 20 determines that the shuffling condition is met, it proceeds to step S22.
[0083] When step S23 is completed, processor 20 moves to step S30. In step S30, processor 20 executes a distribution result determination process. In this process, processor 20 determines, for each thread, the proportion of settlement data with a high processing speed among the settlement data distributed to each thread in step S23.
[0084] In step S31, the processor 20 determines whether the confirmation condition is met. The confirmation condition is met when the difference in the percentage of settlement data that is determined to have a high processing speed among the settlement data distributed to each of the multiple threads falls below the third threshold. The third threshold corresponds to a value such that the processing speed of settlement processing does not become extremely large across multiple threads. The confirmation condition is an example of the third condition. The confirmation condition does not have to be met if the shuffle condition is not met and the process proceeds to step S23.
[0085] If processor 20 determines that the definitive condition is met, it proceeds to step S24. If processor 20 determines that the definitive condition is not met, it proceeds to step S22 again.
[0086] In this way, the processor 20 repeatedly shuffles the multiple settlement data until the distribution condition is met. As a result, the processor 20 shuffles the multiple settlement data in a way that minimizes the difference in processing speed among multiple threads.
[0087] <Operation and Effects of the Third Embodiment> The operation and effects of the third embodiment will now be described. (3-1) The processor 20 makes a determination regarding the processing speed for each of the multiple payment data. The processor 20 shuffles the multiple payment data so that the difference in processing speed for each of the multiple threads is minimized. With this configuration, by making a determination regarding the processing speed for each of the multiple payment data, the difference in processing speed for each of the multiple threads can be minimized. Therefore, the processing efficiency of payment processing can be improved.
[0088] (3-2) For each of the multiple payment data, the processor 20 determines that the payment data that is invalid will be processed as payment data with a high processing speed. With this configuration, by determining that the payment data that is invalid will be processed as payment data with a high processing speed, the difference in processing speed among multiple threads can be reduced. Therefore, the processing efficiency of payment processing can be improved.
[0089] (3-3) For each set of settlement data, the processor 20 determines that settlement data containing multiple settlement methods is settlement data with a low processing speed. With this configuration, by determining that settlement data containing multiple settlement methods is settlement data with a low processing speed, the difference in processing speed among multiple threads can be reduced. Therefore, the processing efficiency of settlement processing can be improved.
[0090] (3-4) Multiple payment methods include credit card payments and point payments. With this configuration, by determining that payment data containing multiple payment methods, such as credit card payments and point payments, is payment data with a low processing speed, the difference in processing speed among multiple threads can be reduced. Therefore, the processing efficiency of payment processing can be improved.
[0091] (3-5) The shuffling condition is met when the proportion of payment data among the multiple payment data included in a payment request that is determined to have a high processing speed is less than a specified proportion. With this configuration, when the proportion of payment data with a high processing speed among the multiple payment data included in a payment request is less than a specified proportion, the multiple payment data is shuffled. When the proportion of payment data with a high processing speed among the multiple payment data included in a payment request is equal to or greater than the specified proportion, the multiple payment data is not shuffled. This makes it possible to shuffle the multiple payment data as needed, taking into account the proportion of payment data with a high processing speed among the multiple payment data included in a payment request. Therefore, the control load due to shuffling multiple payment data can be reduced, and the processing efficiency of payment processing can be improved.
[0092] (3-6) The processor 20 repeatedly shuffles multiple settlement data until a definitive condition is met. The definitive condition is met when the difference in the proportion of settlement data determined to have a high processing speed among the settlement data distributed to each of the multiple threads falls below the third threshold. With this configuration, settlement data can be shuffled and distributed to each of the multiple threads so that the difference in the proportion of settlement data with a high processing speed falls below the third threshold. Therefore, the processing efficiency of settlement processing can be improved.
[0093] [Example of changes] This embodiment can be implemented with the following modifications. This embodiment and the following modifications can be combined with each other to the extent that they do not contradict each other technically.
[0094] In the second embodiment, the processor 20 may determine whether the partitioning condition is met based on the data capacity of the multiple settlement data included in the settlement request and the storage capacity of the memory 21. The storage capacity of the memory 21 referred to here is, for example, the storage capacity of the semiconductor memory. For example, the processor 20 may determine that the partitioning condition is met when the data capacity of the settlement data included in the settlement request is greater than the storage capacity of the memory 21. The data capacity of the settlement data included in the settlement request referred to here is, for example, the capacity of the semiconductor memory based on the capacity that can load the settlement data into the semiconductor memory.
[0095] In the second embodiment, the processor 20 may determine whether the splitting condition is met based on the data capacity of the settlement request. The processor 20 may determine whether the splitting condition is met based on the data capacity of the settlement data included in the settlement request.
[0096] In the second embodiment, the processor 20 may determine whether a payment is invalid or whether it is payment data that includes multiple payment methods, based on at least one of these two factors.
[0097] In the third embodiment, the processor 20 may determine whether the processing speed is high or low based on the data capacity of the payment data. The processor 20 may determine that the processing speed is low when the data capacity of the payment data is large.
[0098] In the third embodiment, the processor 20 may satisfy the definitive condition when, for each of the multiple threads, the proportion of settlement data with a fast processing speed among the settlement data included in the settlement request is within an acceptable range including the average proportion.
[0099] In the third embodiment, the processor 20 may determine the processing speed based on the type of payment method. For example, the processor 20 may determine that payment data for which the payment method is credit card payment is fast processing data, and payment data for which the payment method is points payment is slow processing data.
[0100] In the third embodiment, the processor 20 may determine the processing speed based on the payment token. The processor 20 may also determine the processing speed based on the payment destination identifier. For example, the processor 20 may determine, based on the payment token or payment destination identifier, that payment data for a payment destination in a first country is fast processing data, and that payment data for a payment destination in a second country is slow processing data. For example, the processor 20 may determine, based on the payment token or payment destination identifier, that payment data for a domestic payment destination is fast processing data, and that payment data for a foreign payment destination is slow processing data.
[0101] In the third embodiment, the shuffling condition may be met when at least one of the following is true: the proportion of high-speed settlement data is less than a specified proportion, and the request type is either normal or slow. The shuffling condition may also be met when both of the following are true: the proportion of high-speed settlement data is less than a specified proportion, and the request type is either normal or slow.
[0102] The processor 20 may perform the settlement data shuffling process and the settlement data distribution process as the same process. The above embodiments may be combined as appropriate. For example, the processor 20 may perform the settlement data splitting process of the second embodiment and the settlement data determination process and distribution result determination process of the third embodiment.
[0103] The processor 20 may set a management flag based on the payment token. More specifically, the processor 20 may send a query request to the payment server 14 via the payment gateway 12 and the payment processing server 13 to determine whether the payment is invalid or not. The query request may include the payment token. The processor 20 may receive the query result from the payment server 14 and set a management flag indicating whether the payment is invalid or not based on the query result. The processor 20 may also send a query request to a point management server (not shown) to determine whether the payment is invalid or not. The processor 20 may receive the query result from the point management server and set a management flag indicating whether the payment is invalid or not based on the query result.
[0104] The processor 20 may set the request type based on the management flag. Based on the management flag, the processor 20 may determine the proportion of settlement data with a fast processing speed among all settlement data included in the settlement request, and set the request type to high-speed type if it is equal to or greater than a predetermined proportion.
[0105] Request types may be classified into two levels (slow-speed and high-speed) rather than three levels (normal, slow-speed, and fast-speed), or into four or more levels. Request types do not necessarily have to be included in payment requests.
[0106] The number of settlements does not need to be set by the requester and may not be included in the settlement request. In such cases, the processor 20 may count the number of settlement data included in the settlement request as the number of settlements and register it in the settlement request database 30.
[0107] In the information processing device 11, the processor 20 may read a program from memory provided by a device other than the information processing device 11 and execute processing based on the read program. The device other than the information processing device 11 may or may not be included in the information processing system 10. In other words, the information processing system 10 may or may not have memory in which programs are stored.
[0108] The payment gateway 12 may receive payment data from a device other than the information processing device 11. For example, the payment gateway 12 may receive payment data from an e-commerce server that conducts electronic commerce. For example, the payment gateway 12 may receive payment data from a reservation server that makes reservations for accommodations, etc. For example, the payment gateway 12 may receive payment data from a payment management server that handles payments other than recurring payments.
[0109] The information processing device 11, payment gateway 12, payment processing server 13, payment server 14, and terminal device 19 may each have the same administrator or different administrators. For example, the information processing device 11 and payment gateway 12 may have the same administrator. For example, multiple payment processing servers 13 and multiple payment servers 14 may include servers that have the same administrator as the information processing device 11 and payment gateway 12, and servers that have different administrators than the information processing device 11 and payment gateway 12.
[0110] The information processing device 11 may consist of at least one server, or it may consist of multiple servers. If the information processing device 11 consists of multiple servers, each server may have a divided set of functions of the information processing device 11.
[0111] The information processing system 10 does not necessarily have to include a payment gateway 12 and a payment processing server 13. In such cases, the information processing device 11 may include some or all of the functions of the payment gateway 12 and the payment processing server 13. Thus, the information processing system 10 only needs to include at least one server, including the information processing device 11. In other words, the information processing system 10 may consist of the information processing device 11 alone.
[0112] As used herein, the expression "at least one of" means one or more of the desired options. For example, as used herein, if there are two options, the expression "at least one of" means either one option or both of the two options. As another example, as used herein, if there are three or more options, the expression "at least one of" means either one option or any combination of two or more options.
[0113] [Note] The technical concepts that can be gleaned from the embodiments and modifications described above are outlined below. [1] The information processing system is an information processing system comprising at least one processor, the at least one processor performing the following: receiving a payment request including a plurality of payment data from a terminal device; shuffling the plurality of payment data included in the payment request; distributing the shuffled plurality of payment data to a plurality of threads; and performing a payment based on the plurality of payment data by having the plurality of threads output the plurality of payment data distributed to the plurality of threads in parallel to the plurality of threads.
[0114] The information processing system described in [2][1], wherein shuffling the plurality of settlement data includes shuffling the plurality of settlement data when the first condition is met, and the first condition can be met when the number of settlement data included in the settlement request is equal to or greater than a first threshold.
[0115] An information processing system according to [3][1] or [2], wherein the at least one processor performs the division of the plurality of settlement data included in the settlement request into a plurality of processing groups based on the plurality of settlement data included in the settlement request, and shuffling the plurality of settlement data includes shuffling the divided plurality of settlement data for each of the plurality of processing groups.
[0116] The information processing system described in [4][3], wherein dividing the plurality of settlement data into multiple parts includes dividing the plurality of settlement data into multiple parts when the second condition is met, and the second condition can be met when the number of the plurality of settlement data included in the settlement request is equal to or greater than the second threshold.
[0117] An information processing system according to any one of [5] [1] to [4], wherein at least one processor performs the following: obtaining a settlement result for each of the plurality of settlement data; and transmitting all the settlement results to the terminal device when all settlement results corresponding to the plurality of settlement data included in the settlement request have been obtained.
[0118] An information processing system according to any one of paragraphs [6], [1] to [5], wherein at least one processor performs a determination regarding the processing speed for each of the plurality of settlement data, and shuffling the plurality of settlement data includes shuffling the plurality of settlement data in such a way that the difference in processing speed for each of the plurality of threads becomes small.
[0119] The information processing system described in [7][6], wherein determining the processing speed is high or low includes determining, for each of the plurality of settlement data, that settlement data for which the settlement is invalid is settlement data with a high processing speed.
[0120] The information processing system described in [8], [6] or [7], wherein determining the processing speed is high or low includes determining, for each of the multiple settlement data, that settlement data containing multiple settlement methods is settlement data with a low processing speed.
[0121] The information processing system described in [9][8], wherein the plurality of payment methods include credit card payment and point payment. An information processing system as described in any one of paragraphs
[10] , [6] to [9], wherein shuffling the plurality of settlement data includes shuffling the plurality of settlement data when the first condition is met, and the first condition can be met when the proportion of the plurality of settlement data included in the settlement request that is determined to be settlement data with a high processing speed is less than a specified proportion.
[0122] An information processing system according to any one of
[11] , [6] to
[10] , wherein shuffling the plurality of settlement data includes repeatedly shuffling the plurality of settlement data until the third condition is met, and the third condition can be met when the difference in the proportion of settlement data that is determined to be high processing speed among the settlement data distributed to each of the plurality of threads is less than or equal to the third threshold.
[0123]
[12] The information processing method includes at least one processor receiving a payment request containing a plurality of payment data from a terminal device, shuffling the plurality of payment data contained in the payment request, distributing the shuffled plurality of payment data to a plurality of threads, and performing a payment based on the plurality of payment data by having the distributed plurality of payment data output in parallel to the plurality of threads.
[0124]
[13] The program causes at least one processor to receive a payment request containing multiple payment data from a terminal device, shuffle the multiple payment data contained in the payment request, distribute the shuffled multiple payment data to multiple threads, and perform a payment based on the multiple payment data by having each of the multiple threads output the distributed multiple payment data in parallel. [Explanation of symbols]
[0125] 10... Information processing system, 11... Information processing device, 20... Processor, 21... Memory, 30... Payment request database, 31... Payment management database.
Claims
1. An information processing system comprising at least one processor, The aforementioned at least one processor is Receiving a payment request containing multiple payment data from a terminal device, Shuffling the multiple payment data included in the payment request, Distributing the shuffled set of payment data to each of the threads, The payment is made based on the payment data by having the multiple payment data, which have been distributed to each of the multiple threads, output in parallel to each of the multiple threads, Execute Information processing system.
2. The information processing system according to claim 1, Shuffling the aforementioned multiple payment data includes shuffling the aforementioned multiple payment data when the first condition is met. The first condition can be met when the number of settlement data included in the settlement request is equal to or greater than a first threshold. Information processing system.
3. The information processing system according to claim 1, The at least one processor performs the task of dividing the multiple settlement data included in the settlement request into multiple processing groups based on the multiple settlement data included in the settlement request. Shuffling the aforementioned multiple payment data includes shuffling the divided multiple payment data for each of the multiple payment data divided into each of the multiple processing groups. Information processing system.
4. The information processing system according to claim 3, Dividing the aforementioned multiple payment data into multiple parts includes dividing the aforementioned multiple payment data into multiple parts when the second condition is met, The second condition can be met when the number of settlement data included in the settlement request is equal to or greater than the second threshold. Information processing system.
5. The information processing system according to claim 1, The aforementioned at least one processor is To obtain the settlement result for each of the aforementioned multiple settlement data, When all settlement results corresponding to the multiple settlement data included in the settlement request are obtained, all settlement results are transmitted to the terminal device. Execute Information processing system.
6. An information processing system according to any one of claims 1 to 5, The at least one processor performs a determination regarding the processing speed for each of the multiple payment data sets, Shuffling the aforementioned multiple payment data includes shuffling the aforementioned multiple payment data in such a way that the difference in processing speed for each of the aforementioned multiple threads is minimized. Information processing system.
7. The information processing system according to claim 6, The determination of the processing speed includes determining, for each of the multiple payment data, that the payment data that is invalid is the payment data with a high processing speed. Information processing system.
8. The information processing system according to claim 6, The determination of whether the processing speed is high or low includes determining, for each of the multiple payment data, that payment data containing multiple payment methods is payment data with a low processing speed. Information processing system.
9. The information processing system according to claim 8, The aforementioned payment methods include credit card payments and point payments. Information processing system.
10. The information processing system according to claim 6, Shuffling the aforementioned multiple payment data includes shuffling the aforementioned multiple payment data when the first condition is met. The first condition can be met when the proportion of payment data among the multiple payment data included in the payment request that is determined to be payment data with a high processing speed is less than a specified proportion. Information processing system.
11. The information processing system according to claim 6, Shuffling the aforementioned set of payment data includes repeatedly shuffling the aforementioned set of payment data until the third condition is met. The third condition can be met if the difference in the proportion of settlement data that is determined to have a high processing speed among the settlement data distributed to each of the multiple threads is less than or equal to the third threshold. Information processing system.
12. At least one processor, Receiving a payment request containing multiple payment data from a terminal device, Shuffling the multiple payment data included in the payment request, Distributing the shuffled set of payment data to each of the threads, The process involves distributing the aforementioned multiple payment data and outputting them in parallel for each of the multiple threads, thereby enabling payment based on the aforementioned multiple payment data. Execute Information processing methods.
13. At least one processor, Receiving a payment request containing multiple payment data from a terminal device, Shuffling the multiple payment data included in the payment request, Distributing the shuffled set of payment data to each of the threads, The payment is made based on the payment data by having the multiple payment data, which have been distributed to each of the multiple threads, output in parallel to each of the multiple threads, To execute program.
Citation Information
Patent Citations
Information processing device, information processing method, and information processing program
JP6957711B1