Movatterモバイル変換


[0]ホーム

URL:


US10628211B2 - Systems and methods for asynchronously consolidating and transmitting data - Google Patents

Systems and methods for asynchronously consolidating and transmitting data
Download PDF

Info

Publication number
US10628211B2
US10628211B2US15/624,558US201715624558AUS10628211B2US 10628211 B2US10628211 B2US 10628211B2US 201715624558 AUS201715624558 AUS 201715624558AUS 10628211 B2US10628211 B2US 10628211B2
Authority
US
United States
Prior art keywords
message
messages
computer
computing device
individual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US15/624,558
Other versions
US20180365049A1 (en
Inventor
Shawn Rafiee
Avijit Kanyal
Richard Michael Navarro
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mastercard International Inc
Original Assignee
Mastercard International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mastercard International IncfiledCriticalMastercard International Inc
Priority to US15/624,558priorityCriticalpatent/US10628211B2/en
Assigned to MASTERCARD INTERNATIONAL INCORPORATEDreassignmentMASTERCARD INTERNATIONAL INCORPORATEDASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: RAFIEE, Shawn, KANYAL, Avijit, NAVARRO, RICHARD MICHAEL
Priority to PCT/US2018/031989prioritypatent/WO2018231383A1/en
Priority to CN201810616393.7Aprioritypatent/CN109150952B/en
Publication of US20180365049A1publicationCriticalpatent/US20180365049A1/en
Application grantedgrantedCritical
Publication of US10628211B2publicationCriticalpatent/US10628211B2/en
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

A worker computing device for asynchronous data consolidation and transmission over a computer network is provided. The worker computing device includes a processor communicatively coupled to continuously receive a plurality of individual computer messages from a source and accumulate the plurality of individual computer messages within a queue until at least one threshold value is reached. The worker computing device is also configured to consolidate the plurality of individual computer messages accumulated within the queue into a single batched message when the at least one threshold value is reached. The worker computing device is further configured to compress and serialize each individual message within the single batched message, and send the single batched message over the computer network.

Description

BACKGROUND
The field of the present disclosure relates generally to networks and, more particularly, to systems and methods for asynchronously consolidating and transmitting multiple computer messages as single batched messages for improving the number of individual messages capable of being sent over a computer network.
Computer devices transmit messages back and forth over networks. For example, a remote computing device may send a computer message to a server device for processing. Part of that processing may require the server to send messages to a sub-processing device for further processing of data, and then return the messages with the sub-processed data. In some cases, these devices must perform these tasks within a predefined time or processing may be subject to cancelling. It is important to have sufficient bandwidth to process these computer messages.
For example, conventional payment processing systems process large volumes of payment transaction messages. During a typical payment transaction, a processing system receives an authorization request message from, for example, an acquirer device for processing. In some situations, the processing system is under a service level agreement (SLA) to provide a response to the authorization request message within a predefined period of time (SLA response time). If the processing system fails to respond to the authorization request message within the SLA response time, the transaction may automatically be denied. Such denied transactions are detrimental to the payment processor as well as the other parties to the transaction, such as the cardholder consumer, the merchant, and the acquirer.
During at least some payment transactions, consumers (e.g., cardholders) provide account data that may be used to authorize the consumer as an authorized user of the payment card. In some cases, the consumer may also provide other data (e.g., device data that may also be used in authorizing the transaction). The processing system may utilize a sub-processing system, such as a fraud detector system, to analyze the transaction data (e.g., comparing a sample biometric data from the transaction data to a reference biometric data of the authorized user stored in the system) included in the authorization request message. In these known systems, the sub-processing system transmits the authorization request message using one message per transaction. During normal operations, the sub-processing system may, for example, respond to an authorization request message within seconds. However, under certain circumstances, such as periods of large transaction volume, the sub-processing system may become constrained. For example, under larger volumes, the response time for authorization request messages may increase to 2× seconds. This increase in time caused by the sub-processing system may cause the overall transaction to violate an SLA, and thus cause the transactions to be denied.
BRIEF DESCRIPTION
In one aspect, a worker computing device for asynchronous data consolidation and transmission over a computer network is provided. The worker computing device includes a processor communicatively coupled to a memory and is configured to continuously receive a plurality of individual computer messages from a source, and accumulate the plurality of individual computer messages within a queue until at least one threshold value is reached. The worker computing device is also configured to consolidate the plurality of individual computer messages accumulated within the queue into a single batched message when the at least one threshold value is reached, to further serialize each individual message within the single batched message, and send the single batched message over the computer network.
In another aspect, a computer-implemented method for asynchronous data consolidation and transmission over a computer network is provided. The method is performed using a worker computing device that includes at least one processor in communication with at least one memory device. The method includes continuously receiving a plurality of individual computer messages from a source and accumulating the plurality of individual computer messages within a queue until at least one threshold value is reached. The method also includes consolidating the plurality of individual computer messages accumulated within the queue into a single batched message when the at least one threshold value is reached, further serializing, by the worker computing device, each individual message within the single batched message, and sending, by the worker computing device, the single batched message over the computer network.
In yet another aspect, a non-transitory computer readable medium that includes executable instructions for asynchronous data consolidation and transmission over a computer network is provided. When the computer executable instructions are executed by a worker computing device that includes at least one processor in communication with at least one memory device, the computer executable instructions cause the worker computing device to continuously receive a plurality of individual computer messages from a source and accumulate the plurality of individual computer messages within a queue until at least one threshold value is reached. The computer executable instructions also cause the worker computing device to consolidate the plurality of individual computer messages accumulated within the queue into a single batched message when the at least one threshold value is reached, to further serialize each individual message within the single batched message, and send the single batched message over the computer network.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1-9 show example embodiments of the methods and systems described herein.
FIG. 1 is a schematic diagram illustrating an example multi-party payment platform system for asynchronously consolidating and transmitting multiple computer messages.
FIG. 2 is a simplified block diagram of an example processing system for asynchronously consolidating multiple computer messages.
FIG. 3 is an expanded block diagram of an example embodiment of a server architecture of a processing system including other computing devices in accordance with one embodiment of the present disclosure.
FIG. 4 illustrates an example configuration of a user system operated by a user, such as the cardholder shown inFIG. 1.
FIG. 5 illustrates an example configuration of a server system such as the server system shown inFIGS. 2 and 3.
FIG. 6 is an example payment transaction environment including a payment processing system in which processing steps of asynchronously consolidating and transmitting multiple computer messages are managed by a worker computing device.
FIG. 7 is an example method for asynchronously consolidating multiple computer messages in the payment transaction environment shown inFIG. 6.
FIG. 8 illustrates an example of asynchronous thread sequence used for implementing the method shown inFIG. 7.
FIG. 9 shows an example configuration of a database within a computing device, along with other related computing components, that may be used to consolidate multiple computer messages in one message and transmit the message to the sub-processing system shown inFIG. 6.
DETAILED DESCRIPTION
Systems and methods are described herein for asynchronous data consolidation and transmission over a computer network. In the example embodiment, a processing system utilizes a sub-processing system to analyze transaction data in an authorization request message, and more specifically, the sub-system analyzes cardholder account data, such as sample biometric data, collected from a cardholder during a payment transaction. The processing system transmits the authorization request message to the sub-processing system. The sub-processing system performs the necessary sub-processing steps to perform the authorization, and the sub-processing system transmits a response back to the processing system. The processing system may asynchronously consolidate and transmit the authorization request message to a message queue (MQ) using IBM® WebSphere MQ. (IBM is a registered trademark of International Business Machines Corporation located in Armonk, N.Y.). These messages are referred to hereinafter as MQ messages.
In the example embodiment, the processing system includes a worker computing device that consolidates multiple computer messages in one MQ message. In the example embodiment, the computer messages include authorization request messages for payment card payment transactions (e.g., ISO 8583 messages). The processing system may be under a service level agreement (SLA) that defines a maximum response time to process each authorization request message. The worker computing device consolidates multiple computer messages in one MQ message to meet the SLA response time for processing the authorization request messages (e.g., the amount of time elapsed between the time an authorization message is sent to the sub-processing system and the time a response is received from the sub-processing system), and asynchronously transmits the MQ message over a computer network.
During periods of large volume, the average response time(s) of the sub-processing system may climb. In some unrestrained situations, higher response times may cause the overall processing system to become noncompliant with the SLA, and thus cause some transactions to be denied. If the response times of the sub-processing system exceed the SLA response time requirement, most or all transactions may be denied due to the SLA timeout. The worker computing device utilizes a batch worker and a batch manager to consolidate multiple computer messages in one MQ message and schedule the time the MQ message has to be transmitted. The batch manager is configured to set a maximum number of individual computer messages per MQ message (e.g., batched message of multiple individual messages). The batch manager also creates a batch timer and schedules it to run based on a predefined time threshold. The batch timer is configured to compare the current time with the last time a computer message was added to the MQ message. The worker computing device also utilizes a controller worker, an output adaptor, and an input adaptor.
In other words, the worker computing device accumulates a plurality of individual computer messages (e.g., authorization or clearing messages) in a message queue. The worker computing device monitors the time that the messages are being accumulated and/or the number of messages being accumulated. There is a threshold value stored for either the time to accumulate or the number of messages that can be accumulated. Once a threshold level is satisfied, the queue is closed and the multiple messages are consolidated into a single batched message. By so doing, the number of messages capable of being processed through the system can be increased and the SLA can be better complied with.
In the example embodiment, a controller worker component is configured to manage the authorization and/or a clearing process. In alternative embodiments, the controller worker component is configured to manage any other transaction processes, such as an authentication and/or settlement process. The controller worker component may transmit computer messages to the output adaptor, may add data to the computer messages, and/or may filter the computer messages. In the example embodiment, the batch manager is configured to receive and accumulate computer messages. The batch worker is also configured to define the volume threshold, and also contains a batch timer which defines the time threshold. A batch worker component accepts accumulated computer messages from the batch manager once a time and/or volume threshold has been met and consolidates them. The batch worker component then sends the consolidated messages to an output adaptor configured to serialize and compress the consolidated computer messages in one MQ message, and asynchronously transmits the MQ message. In the example embodiment, the input adaptor is configured to receive MQ messages containing multiple computer messages, parse each computer message in each MQ message, and return each computer message one at a time to a data access object (DAO). Consolidating multiple computer messages in one MQ message helps improve the number of computer messages that can be successfully submitted and processed within the boundaries of the SLA, and based on the busyness of the sub-processing system.
In another embodiment, the worker computing device compares the number of computer messages in one MQ message to a predetermined number of computer messages set in the worker computing device. Once the number of computer messages in the MQ messages reaches the predetermined number of computer messages, the worker computing device transmits the MQ message to the MQ. For example, if the predetermined number of computer messages is fifty, the worker computing device compares the number of computer messages collected in the MQ message and if the number of transactions is equal to fifty, the worker computing device batches the computer messages and asynchronously transmits the MQ message to the MQ. However, if the number of computer messages is less than fifty, the worker computing device does not transmit the MQ message and continues collecting computer messages.
In another embodiment, the worker computing device compares the last time a computer message was added to a MQ message and a predefined time for transmitting a MQ message. In other words, the predefined time sets how often the worker computing device has to transmit a MQ message. For example, if the worker computing device is configured to transmit MQ messages either when the MQ message has fifty computer messages or when two seconds have elapsed since the worker computing device received the last computer message, the worker computing device will asynchronously transmit the MQ message after two seconds have elapsed even if the MQ message has less than 50 computer messages.
A technical effect of the systems and processes described herein include at least one of: (a) identifying, in the memory, a threshold value; (b) transmitting a plurality of computer messages to a sub-processing system; (c) consolidating, by the processor, the plurality of computer messages in a single MQ message; (d) batching, serializing, compressing, and asynchronously transmitting the MQ message to the MQ; (e) increasing the number of messages that can be sent through a computer network for increased bandwidth and increased processing; and (e) comparing the average response time and a service level agreement (SLA) time, wherein altering the threshold values is further based at least in part on the comparing.
As used herein, a processor may include any programmable system including systems using micro-controllers, reduced instruction set circuits (RISC), application specific integrated circuits (ASICs), logic circuits, and any other circuit or processor capable of executing the functions described herein. The above examples are example only, and are thus not intended to limit in any way the definition and/or meaning of the term “processor.”
As used herein, the terms “software” and “firmware” are interchangeable, and include any computer program stored in memory for execution by a processor, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are example only, and are thus not limiting as to the types of memory usable for storage of a computer program.
In one embodiment, a computer program is provided, and the program is embodied on a computer readable medium. In an example embodiment, the system is executed on a single computer system, without requiring a connection to a server computer. In a further embodiment, the system is being run in a Windows® environment (Windows is a registered trademark of Microsoft Corporation, Redmond, Wash.). In yet another embodiment, the system is run on a mainframe environment and a UNIX® server environment (UNIX is a registered trademark of X/Open Company Limited located in Reading, Berkshire, United Kingdom). The application is flexible and designed to run in various different environments without compromising any major functionality. In some embodiments, the system includes multiple components distributed among a plurality of computing devices. One or more components may be in the form of computer-executable instructions embodied in a computer-readable medium. The systems and processes are not limited to the specific embodiments described herein. In addition, components of each system and each process can be practiced independent and separate from other components and processes described herein. Each component and process can also be used in combination with other assembly packages and processes.
As used herein, the terms “transaction card,” “financial transaction card,” and “payment card” refer to any suitable transaction card, such as a credit card, a debit card, a prepaid card, a charge card, a membership card, a promotional card, a frequent flyer card, an identification card, a prepaid card, a gift card, and/or any other device that may hold payment account data, such as mobile phones, Smartphones, personal digital assistants (PDAs), key fobs, and/or computers. Each type of transactions card can be used as a method of payment for performing a transaction. As used herein, the term “payment account” is used generally to refer to the underlying account with the transaction card. In addition, cardholder card account behavior can include but is not limited to purchases, management activities (e.g., balance checking), bill payments, achievement of targets (meeting account balance goals, paying bills on time), and/or product registrations (e.g., mobile application downloads).
The following detailed description illustrates embodiments of the disclosure by way of example and not by way of limitation. It is contemplated that the disclosure has general application to processing financial transaction data by a third party in industrial, commercial, and residential applications.
As used herein, an element or step recited in the singular and proceeded with the word “a” or “an” should be understood as not excluding plural elements or steps, unless such exclusion is explicitly recited. Furthermore, references to “example embodiment” or “one embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
FIG. 1 is a schematic diagram illustrating an example multi-partypayment platform system20 for processing payment transactions and, more specifically, for consolidating and transmitting multiple computer messages in accordance with this disclosure. Embodiments described herein may relate to a payment processing system, such as a credit card or debit card payment system using the Mastercard® interchange network. The Mastercard® interchange network is a set of proprietary communications standards promulgated by Mastercard International Incorporated® for the exchange of financial transaction data and the settlement of funds between financial institutions that are registered with Mastercard International Incorporated®. (Mastercard is a registered trademark of Mastercard International Incorporated located in Purchase, N.Y.).
In the payment processing system described herein, a financial institution called the “issuer” issues a transaction card, such as a credit card or a debit card, to a consumer or cardholder22, who uses the transaction card to tender payment for a purchase from amerchant24. To accept payment with the transaction card,merchant24 must normally establish an account with a financial institution that is part of the financial payment system. This financial institution is usually called the “merchant bank,” the “acquiring bank,” or the “acquirer.” When cardholder22 tenders payment for a purchase with a transaction card,merchant24 requests authorization from amerchant bank26 for the amount of the purchase. The request may be performed over the telephone or on a website, but is oftentimes performed through the use of a point-of-sale (POS) terminal, which reads cardholder's22 account data from a magnetic stripe, a chip, embossed characters, or the like, included on the transaction card and communicates electronically with the processing computers ofmerchant bank26. In the context of transactions with online merchants, a cardholder22 may provide cardholder account data, such as an account number, a card verification number, an expiration date, or the like, through a website. Alternatively,merchant bank26 may authorize a third party to perform processing on its behalf. In this case, the POS terminal will be configured to communicate with the third party to perform transaction processing on its behalf. In this case, the POS terminal may be configured to communicate with the third party. Such a third party is usually called a “merchant processor,” an “acquiring processor,” or a “third party processor.”
Using aninterchange network28, computers ofmerchant bank26 or merchant processor will communicate with computers of anissuer bank30 to determine whether cardholder's22account32 is in good standing and whether the purchase is covered by cardholder's22 available credit line. Based on these determinations, the request for authorization will be declined or accepted. If the request is accepted, an authorization code is issued tomerchant24.
In the example embodiment, cardholder22 provides cardholder account data, such as a biometric sample. During authorization, one or more parties to the transaction, such asinterchange network28, may communicate with asub-processing system29 that is configured to perform an authorization sub-process associated with the transaction. In the example embodiment,sub-processing system29 performs authorization of transaction data (which includes account data) for payment transactions.Interchange network28 includes a worker computing device which is capable of consolidating multiple individual computer messages into a single batched message for sending to sub-processor29 for improved overall processing. During operation,interchange network28 transmits transaction data tosub-processing system29 using a MQ message as a part of the overall authorization process for payment transactions. In some situations,sub-processing system29 may become constrained such that response times are delayed.
When a request for authorization (i.e., authorization request message) is accepted, the available credit line of cardholder's22account32 is decreased. Normally, a charge for a payment transaction is not posted immediately to cardholder's22account32 because bankcard associations, such as Mastercard International Incorporated®, have promulgated rules that do not allowmerchant24 to charge, or “capture,” a transaction until goods are shipped or services are delivered. However, with respect to at least some debit card transactions, a charge may be posted at the time of the transaction. Whenmerchant24 ships or delivers the goods or services,merchant24 captures the transaction by, for example, appropriate data entry procedures on the POS terminal. This may include bundling of approved transactions daily for standard retail purchases. If cardholder22 cancels a transaction before it is captured, a “void” is generated. If cardholder22 returns goods after the transaction has been captured, a “credit” is generated.Interchange network28 and/orissuer bank30 stores the payment transaction information, such as a type of merchant, amount of purchase, date of purchase, in a database120 (shown inFIG. 2).
After a purchase has been made, a clearing process occurs to transfer additional transaction data related to the purchase among the parties to the transaction, such asmerchant bank26,interchange network28, andissuer bank30. More specifically, during and/or after the clearing process, additional data, such as a time of purchase, a merchant name, a type of merchant, purchase information, cardholder account data, a type of transaction, savings information, itinerary information, information regarding the purchased item and/or service, and/or other suitable information, is associated with a transaction and transmitted between parties to the transaction as transaction data, and may be stored by any of the parties to the transaction.
After a transaction is authorized and cleared, the transaction is settled amongmerchant24,merchant bank26, andissuer bank30. Settlement refers to the transfer of financial data or funds among merchant's24 account,merchant bank26, andissuer bank30 related to the transaction. Usually, transactions are captured and accumulated into a “batch,” which is settled as a group. More specifically, a transaction is typically settled betweenissuer bank30 andinterchange network28, and then betweeninterchange network28 andmerchant bank26, and then betweenmerchant bank26 andmerchant24.
FIG. 2 is a simplified block diagram of anexample processing system100 for consolidating multiple computer messages in a single batched message.Processing system100 includes a plurality of computing devices connected in communication in accordance with the present disclosure. In the example embodiment,processing system100 may be used for processing payment transactions in the interchange environment shown inFIG. 1.
More specifically, in the example embodiment,processing system100 includes aserver system112 in communication with a sub-processing system29 (also shown inFIG. 1), and/or otherclient computer systems114 associated with merchants, merchant banks, payment networks, and/or issuer banks. In the example embodiment,server system112 includes atleast database server116 andworker computing device118. In the example embodiment, at least onesub-processing system29 receives, fromserver system112, computer messages, such as authorization request messages of payment transactions, and provides responses toserver system112. In some embodiments,sub-processing system29 is a third-party computing system. In other embodiments,sub-processing system29 may be a component or module executed byserver system112. In still other embodiments,sub-processing system29 may be associated with any of the parties to the transaction authorization process.
In the example embodiment,server system112 is also in communication with a plurality of client sub-systems, also referred to asclient computer systems114. In one embodiment,client computer systems114 are computers including a web browser, such thatserver system112 is accessible toclient computer systems114 using the Internet.Client computer systems114 and/orsub-processing system29 are interconnected to the Internet through many interfaces including anetwork connection115, such as a local area network (LAN) or a wide area network (WAN), dial-in-connections, cable modems, special high-speed Integrated Services Digital Network (ISDN) lines, and RDT networks.Client computer systems114 could be any device capable of interconnecting to the Internet including a web-based phone, PDA, or other web-based connectable equipment.
Database server116 is connected todatabase120, which contains information on a variety of matters, as described below in greater detail. In one embodiment,database120 is centralized and stored onserver system112 and can be accessed by potential users at one ofclient computer systems114 by logging ontoserver system112 through one ofclient computer systems114. In an alternative embodiment,database120 is stored remotely fromserver system112 and may be non-centralized.
Database120 may include a single database having separated sections or partitions or may include multiple databases, each being separate from each other.Database120 may store transaction data generated as part of sales activities and savings activities conducted over the processing network including data relating to merchants, cardholders or customers, issuers, acquirers, savings amounts, savings account data, and/or purchases made.Database120 may also store cardholder account data including at least one of a cardholder name, a cardholder address, an account number, an account identifier, and other cardholder account data.Database120 may also store merchant data including a merchant identifier that identifies each merchant registered to use the network, and instructions for settling transactions including merchant bank account data.Database120 may also store purchase data associated with items being purchased by a cardholder from a merchant, and authorization request data.Database120 may also store liability acceptance information associated with parties to the transaction, such as merchants, merchant banks, payment networks, and/or issuer banks. Further,database120 may also store rules for default liability and/or liability acceptance indicators for particular transactions.
In the example embodiment, one ofclient computer systems114 may be associated with merchant bank26 (shown inFIG. 1) while another one ofclient computer systems114 may be associated with issuer bank30 (shown inFIG. 1).Server system112 may be associated withinterchange network28 or a payment processor. In the example embodiment,server system112 is associated with a network interchange, such as interchange network28 (shown inFIG. 1), and may be referred to as an interchange computer system or a payment processing computing device.Server system112 may be used for processing transaction data. In addition,client computer systems114 may include a computer system associated with at least one of an online bank, a bill payment outsourcer, a merchant bank, a merchant processor, an issuer bank associated with a transaction card, an issuer processor, a remote payment system, a token requestor, a token provider, and/or a biller.
In the example embodiment,worker computing device118 is located within or in communication withserver system112 and may include a controller worker component, an output adaptor component, a batch worker component, a batch manager component, and a batch timer component (all described below). Theworker computing device118 is communicatively coupled to an input adaptor located insub-processing system29.Worker computing device118 and input adaptor ofsub-processing system29 are interconnected via a network (e.g., the Internet) through many interfaces including anetwork connection115, such as a local area network (LAN) or a wide area network (WAN), dial-in-connections, cable modems, special high-speed Integrated Services Digital Network (ISDN) lines, and RDT networks.
FIG. 3 is an expanded block diagram of an example embodiment of a server architecture of aprocessing system122 including other computing devices in accordance with one embodiment of the present disclosure. In the example embodiment,processing system122 is similar to processing system100 (shown inFIG. 2). Components inprocessing system122, identical to components ofprocessing system100, are identified inFIG. 3 using the same reference numerals as used inFIG. 2.Processing system122 includesserver system112,client computer systems114,worker computing device118, andsub-processing system29.Server system112 further includesdatabase server116, anapplication server124, aweb server126, a user authentication server128, adirectory server130, and amail server132. Astorage device134 is coupled todatabase server116 anddirectory server130.Servers116,124,126,128,130, and132 are coupled in a local area network (LAN)136. In the example embodiment,client systems114 include anissuer bank workstation138, amerchant bank workstation140, a thirdparty processor workstation142, third parties146 (e.g., cardholders, customers, auditors, developers, cardholders (i.e., consumers), merchants, acquirers, issuers, etc.), and amanager workstation156. In addition,issuer bank workstation138,merchant bank workstation140, and thirdparty processor workstation142 may be coupled toLAN136 using network connection115 (shown inFIG. 2).Workstations138,140, and142 are coupled toLAN136 using an Internet link or are connected through an Intranet.
Eachworkstation138,140, and142 is a personal computer having a web browser. Although the functions performed at the workstations typically are illustrated as being performed atrespective workstations138,140, and142, such functions can be performed at one of many personal computers coupled toLAN136.Workstations138,140, and142 are illustrated as being associated with separate functions only to facilitate an understanding of the different types of functions that can be performed by individuals having access toLAN136.
Server system112 is configured to be communicatively coupled to various individuals, including employees144 (using a workstation154) and tothird parties146 using an ISP Internet connection148. The communication in the example embodiment is illustrated as being performed using the Internet, however, any other wide area network (WAN) type communication can be utilized in other embodiments, i.e., the systems and processes are not limited to being practiced using the Internet. In addition, and rather thanWAN150,LAN136 could be used in place ofWAN150.
In the example embodiment, any authorized individual having aworkstation154 can accessprocessing system122. In some embodiments,manager workstation156 is located at a remote location.Workstations154 and156 are personal computers having a web browser. Also,workstations154 and156 are configured to communicate withserver system112. Furthermore, user authentication server128 communicates with remotely located client systems, includingmanager workstation156 using a telephone link. User authentication server128 is configured to communicate withworkstations138,140, and142 as well.
FIG. 4 illustrates an example configuration of auser system202 operated by auser201, such as cardholder22,merchant24 or other user (shown inFIG. 1).User system202 may include, but is not limited to,client computer systems114,138,140, and142,worker computing device118,sub-processing system29,workstations154, andmanager workstation156, as illustrated inFIG. 3. In the example embodiment,user system202 includes aprocessor205 for executing instructions. In some embodiments, executable instructions are stored in amemory area210.Processor205 may include one or more processing units, for example, a multi-core configuration.Memory area210 is any device allowing information such as executable instructions and/or written works to be stored and retrieved.Memory area210 may include one or more computer readable media.
User system202 also includes at least onemedia output component215 for presenting information touser201.Media output component215 is any component capable of conveying information touser201. In some embodiments,media output component215 includes an output, such as a video adapter and/or an audio adapter. An output adapter is operatively coupled toprocessor205 and may also be operatively coupled to an output device such as a display device, a liquid crystal display (LCD), organic light emitting diode (OLED) display, or “electronic ink” display, or an audio output device, a speaker or headphones.
In some embodiments,user system202 includes aninput device220 for receiving input fromuser201.Input device220 may include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel, a touch pad, a touch screen, a gyroscope, an accelerometer, a position detector, or an audio input device. A single component such as a touch screen may function as both an output device ofmedia output component215 andinput device220.User system202 may also include acommunication interface225, which may be communicatively coupled to a remote device such asserver system112.Communication interface225 may include, for example, a wired or wireless network adapter or a wireless data transceiver for use with a mobile phone network, Global System for Mobile communications (GSM), 3G, or other mobile data network or Worldwide Interoperability for Microwave Access (WIMAX).
Stored inmemory area210 are, for example, computer readable instructions for providing a user interface touser201 viamedia output component215 and, optionally, receiving and processing input frominput device220. A user interface may include, among other possibilities, a web browser, and client application. Web browsers enable users, such asuser201, to display and interact with media and other information typically embedded on a web page or a website fromserver system112. A client application allowsuser201 to interact with a server application fromserver system112.
FIG. 5 illustrates an example configuration of aserver system301 such as server system112 (shown inFIGS. 2 and 3). In some embodiments,server system301 may be similar to sub-processing system29 (shown inFIGS. 1-3).Server system301 may include, but is not limited to,database server116,application server124,web server126, user authentication server128,directory server130, andmail server132.
Server system301 includes aprocessor305 for executing instructions. Instructions may be stored in amemory area310, for example.Processor305 may include one or more processing units (e.g., in a multi-core configuration) for executing instructions. The instructions may be executed within a variety of different operating systems on theserver system301, such as UNIX, LINUX, Microsoft Windows®, etc. It should also be appreciated that upon initiation of a computer-based method, various instructions may be executed during initialization. Some operations may be required in order to perform one or more processes described herein, while other operations may be more general and/or specific to a particular programming language (e.g., C, C #, C++, Java, or other suitable programming languages, etc.).
Processor305 is operatively coupled to acommunication interface315 such thatserver system301 is capable of communicating with a remote device such as a user system or anotherserver system301. For example,communication interface315 may receive requests fromclient computer system114 via the Internet, as illustrated inFIGS. 2 and 3.
Processor305 may also be operatively coupled to astorage device134.Storage device134 is any computer-operated hardware suitable for storing and/or retrieving data. In some embodiments,storage device134 is integrated inserver system301. For example,server system301 may include one or more hard disk drives asstorage device134. In other embodiments,storage device134 is external toserver system301 and may be accessed by a plurality ofserver systems301. For example,storage device134 may include multiple storage units such as hard disks or solid state disks in a redundant array of inexpensive disks (RAID) configuration.Storage device134 may include a storage area network (SAN) and/or a network attached storage (NAS) system.
In some embodiments,processor305 is operatively coupled tostorage device134 via astorage interface320.Storage interface320 is any component capable of providingprocessor305 with access tostorage device134.Storage interface320 may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or anycomponent providing processor305 with access tostorage device134.
Memory area310 may include, but is not limited to, random access memory (RAM) such as dynamic RAM (DRAM) or static RAM (SRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and non-volatile RAM (NVRAM). The above memory types are exemplary only, and are thus not limiting as to the types of memory usable for storage of a computer program.
FIG. 6 is an examplepayment transaction environment600 includingprocessing system122 in which processing steps are managed byworker computing device118. In the example embodiment, computer messages areauthorization request messages602 which are transmitted frommerchant banks26 and/oracquirer systems620.Acquirer systems620 are in communication with an interchange network630 (e.g., a payment processor, such as interchange network28 (shown inFIG. 1)) and, more specifically, withprocessing system122.Acquirer systems620 interact withnetwork630 during authorization of payment transactions.
In the example embodiment,acquirer systems620 transmitauthorization request messages602 to network630 for authorization processing. Further,network630 is under a service level agreement (SLA) to respond to someauthorization request messages602 within a predefined number of milliseconds. Ifnetwork630 does not respond within an SLA time limit, theauthorization request message602 may fail. In other words, ifnetwork630 does not provide a quick enough response, the failedauthorization request message602 will cause the transaction to be automatically denied. As such, the timeliness of authorization request message processing bynetwork630 impacts the amount of failed authorization request messages and denied transactions, which negatively affects the parties involved in the transaction, such as the cardholder consumer, the merchant, the acquirer, the issuer, and the processing network. As used herein, the phrase service level agreement (SLA) time may be used to refer to a contractually agreed-upon response time cap, or it may be used more generally to refer to a maximum processing time that a processing system is given to respond to a request, regardless of how the SLA time is set.
Authorization request messages602, in the example embodiment, include cardholder account data, such as a biometric sample, associated with the payment transaction initiated by the consumer. More specifically, during the initiation of a payment transaction, the consumer may provide a biometric sample such as, for example, a fingerprint, an iris scan, eye movement, voice sample, or a facial scan. The biometric sample is used during the authorization of the consumer (e.g., used to determine whether or not the consumer is the legitimate cardholder).
As is known in the art, biometric samples may be used to authorize individuals. One known, broad method of biometrics (e.g., biometric authorization) involves collecting a biometric sample (e.g., biometric identifiers) of a suspect (e.g., the person under examination) and comparing that sample to an authentic, pre-collected “target sample” or “reference sample” of a target individual (e.g., the person privileged for authorization). Known biometric identifiers include physiological characteristics, such as, for example, fingerprint, face recognition, palm print, hand geometry, iris recognition, retina and odor/scent, and may also include behavioral characteristics, such as, for example, typing rhythm, gait, and voice. Comparison algorithms are often specific to the particular type of biometric data at issue. Some biometric comparisons are known to be computationally intensive. In addition, target sample data may be considered sensitive, and may require careful data protection procedures, which may lead to a more scrutinize process that may require more time than any other process during the transaction process.
In the example embodiment,network630 is in communication with anauthentication sub-processor650. In some embodiments,authentication sub-processor650 is a third-party entity that provides authentication and/or authorization services and support processing related to biometric samples of cardholder22 (shown inFIG. 1). For example,authentication sub-processor650 may be a governmental entity or another entity, such as an issuing bank, that matches transaction data with target samples from a repository of transaction target samples that may be used to authorize payment transactions (e.g., establishing biometric identity). In other embodiments,authentication sub-processor650 is a server or application component withinnetwork630. In still other embodiments,authentication sub-processor650 supports additional tasks associated with payment card authorization request messages.
In the examplepayment transaction environment600, a “suspect” consumer provides a biometric sample as a part of anauthorization request message602.Network630 receives the biometric sample along with theauthorization request message602 and performstransmission640 of the biometric sample and other associated authorization data toauthentication sub-processor650.Authentication sub-processor650 identifies a target sample from the other associated authorization data, compares the biometric sample to the target sample, and transmits anauthorization response660 to network630 with biometric authorization data, such as affirming or denying the authorization. After receipt ofauthorization response660, and after performing any other authorization processing,network630 transmits aresponse670, in response toauthorization request message602, includingauthorization response660 indicating the network's630 disposition on authorization.Network630 may transmitresponse670 to a requestor, such asacquirer system620.
In the example embodiment,network630 monitors response times associated with the processing ofauthorization request messages602. The time that elapses betweenreceipt625 of anauthorization request message602 and theresponse670 bynetwork630 to theauthorization request message602 is a “response time” for that particular request in the example embodiment (e.g., complete processing request time). In other embodiments,network630 monitors a response time as the time that elapses betweentransmission640 of the authorization request message toauthentication sub-processor650 andauthorization response660 back from the request (e.g., sub-processing request time).
In the example embodiment, aworker computing device118 asynchronously consolidates multipleauthorization request messages602 in one MQ message (including biometric data) and is sent astransmission640. In some embodiments, aworker computing device118 batches individual computer messages (e.g., authorization messages) in one MQ message and transmits the MQ message astransmission640 when the number of individual computer messages in the MQ message reaches a predetermined number. In other embodiments,worker computing device118 batches individual computer messages (e.g., authorization messages) in one MQ message and transmits the MQ message when a predefined time has elapsed after the last authorization request message was batched in the MQ message. By batching multiple authorization messages within a single MQ message,server system112 is able to process more transactions within the SLA time limit. Thus fewer transactions will be denied for failing to comply with the SLA.
FIG. 7 is anexample method700 of consolidating multiple computer messages in apayment transaction environment600 such as shown inFIG. 6. In the example embodiment,method700 is performed by a worker computing device such as worker computing device118 (shown inFIGS. 2 and 6) in conjunction with a computing system such as server system112 (shown inFIG. 2), processing system122 (shown inFIGS. 3 and 6), or computing device910 (shown inFIG. 9).
In the example embodiment,method700 includes continuously receiving710 a plurality of individual computer messages from a source, and accumulating720 the plurality of individual computer messages within a queue until at least one threshold value is reached.Method700 also includes consolidating730 the plurality of individual computer messages accumulated within the queue into a single batched message, such as a MQ message.Method700 further includes identifying, in the memory, a threshold level and/or threshold value. In some embodiments, the threshold value is based at least in part on one or more of a demand for processing and a predefined level set by the worker computing device. In other embodiments, the threshold value is based at least in part on one or more of the average response time and a service level agreement (SLA) time.Method700 may also include comparing at least one of time and volume to the predetermined threshold value, and batching the plurality of computer messages into the single batched message.Method700 further includes serializing740 each computer message of within the single batched message, compressing each individual computer message of the plurality of computer messages, and sending750 the single batched message over the computer network. In some embodiments, comparing at least one of time and volume to a predefined threshold value includes comparing the time that elapsed since the last computer message was consolidated prior to comparing the volume of the single message to the predefined threshold value.Method700 may also include comparing the average response time and a service level agreement (SLA) time, where altering the threshold value is further based at least in part on the comparing.
In some embodiments,method700 includes asynchronously transmitting the MQ message to a database, an API call, or any other destination where the data of the multiple computer messages consolidated in the MQ message may be needed. In some embodiments,method700 may include altering the threshold value based at least in part on the average response time. Further, in the example embodiment,method700 is performed asynchronously to the clearing process or other transaction process that may perform during a payment transaction. As such,method700 is independent from other processes occurring during the payment transaction. Thus,method700 is able to process data without holds and/or interruptions from other processes, which decreases the data processing required bymethod700.
FIG. 8 illustrates an exampleasynchronous thread sequence800 used for implementing the method shown inFIG. 7.Asynchronous thread sequence800 runs asynchronously from the main transaction process sequence in order to decrease processing time of some specific transaction processes, such as authorization request message processes. In the example embodiment,asynchronous thread sequence800 is performed byworker computing device118 that receives individual computer messages fromserver system112.Asynchronous thread sequence800 includes acontroller worker801, output adaptor802,batch worker803,batch manager804, andbatch timer805 for consolidating multiple computer messages in one MQ message, and scheduling the time the MQ message is transmitted.Controller worker801 sends individual computer messages to output adaptor802. Output adaptor802 then instantiatesbatch worker803 and sendsbatch worker803 individual computer messages that require sub-processing.Batch worker803 sends individual computer messages tobatch manager804, which creates a static list of messages.Batch manager804 is configured to set a predetermined number of individual computer messages per each MQ message.
Batch manager804 also createsbatch timer805 and schedules it to run based on a predefined time threshold.Batch timer805 is configured to compare the current time with the last time a computer message was added to the MQ message. When either the number value established bybatch manager804 or the time value established bybatch timer805 is satisfied, the individual computer messages inbatch manager804's static list is returned tobatch worker803.Batch worker803 further consolidates the individual messages and sends them to output adaptor802. Output adaptor802 then serializes the individual messages and sends them as a single MQ message acrossnetwork connection115 to aninput adaptor806 ofsub-processing system29.Input adaptor806 is configured to de-serialize the individual messages and provide them one at a time to sub-processor29 for sub-processing. Response messages are sent fromsub-processing system29 toserver system112 individually and asynchronously over aconnection117.Network connections115 and117 may be the same connection.
FIG. 9 shows anexample configuration900 of adatabase920 within acomputing device910, along with other related computing components, that may be used to process payment transactions and, more specifically, consolidate multiple computer messages in one MQ message. In some embodiments,computing device910 is similar to server system112 (shown inFIG. 2), processing system122 (shown inFIGS. 3 and 6), and/or server system301 (shown inFIG. 5).Database920 is coupled to several separate components withincomputing device910, which perform specific tasks.
In the example embodiment,database920 includestransaction data922,system state data924, andthreshold data926. In some embodiments,database920 is similar to database120 (shown inFIG. 2).Transaction data922 includes information associated with payment transaction data, such as authorization request messages602 (shown inFIG. 6).System state data924 includes information associated with response times and average response times, current and historical data such as processing rates, such as described in reference toFIG. 6.Threshold data926 includes data associated with worker computing device and predefined threshold values, such as described inmethod700.
Computing device910 includes thedatabase920, as well asdata storage devices930.Computing device910 also includes a consolidatingcomponent940, which may be similar to worker computing device118 (shown inFIGS. 2 and 6), for consolidating multiple computer messages in one MQ message and transmitting the MQ message across a MQ.Computing device910 also includes anauthorization component950 for processing transaction data. Aresponse tracking component960 is also included for tracking and managing transaction data during their pendency at network630 (shown inFIG. 6). Acommunications component970 is also included for receiving transaction data and transmitting MQ messages across the MQ. Aprocessing component980 assists with execution of computer-executable instructions associated with the system.
As will be appreciated based on the foregoing specification, the above-described embodiments of the disclosure may be implemented using computer programming or engineering techniques including computer software, firmware, hardware or any combination or subset thereof, wherein the technical effect is a flexible system for processing transactions across a MQ. Any such resulting program, having computer-readable code means, may be embodied or provided within one or more computer-readable media, thereby making a computer program product, e.g., an article of manufacture, according to the discussed embodiments of the disclosure. The computer-readable media may be, for example, but is not limited to, a fixed (hard) drive, diskette, optical disk, magnetic tape, semiconductor memory such as read-only memory (ROM), and/or any transmitting/receiving medium, such as the Internet or other communication network or link. The article of manufacture containing the computer code may be made and/or used by executing the code directly from one medium, by copying the code from one medium to another medium, or by transmitting the code over a network.
These computer programs (also known as programs, software, software applications, “apps”, or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The “machine-readable medium” and “computer-readable medium,” however, do not include transitory signals. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
This written description uses examples to disclose the disclosure, including the best mode, and also to enable any person skilled in the art to practice the disclosure, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the disclosure is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims. As will be appreciated based on the foregoing specification, the above-discussed embodiments of the disclosure may be implemented using computer programming or engineering techniques including computer software, firmware, hardware or any combination or subset thereof. Any such resulting computer program, having computer-readable and/or computer-executable instructions, may be embodied or provided within one or more computer-readable media, thereby making a computer program product, i.e., an article of manufacture, according to the discussed embodiments of the disclosure. These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language.
As used herein, the terms “machine-readable medium,” “computer-readable medium,” and “computer-readable media” refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The “machine-readable medium,” “computer-readable medium,” and “computer-readable media,” however, do not include transitory signals (i.e., they are “non-transitory”). The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.

Claims (21)

What is claimed is:
1. A worker computing device for asynchronous data consolidation and transmission over a computer network, the worker computing device comprising at least one processor and a memory, the worker computing device configured to:
continuously receive a plurality of individual computer messages from a source;
monitor a response time associated with each of the plurality of computer messages;
compare the monitored response time of each message to a service level agreement (SLA) time threshold value;
accumulate the plurality of individual computer messages within a queue until one of i) the response time associated with one of the plurality of computer messages reaches the SLA time threshold value and ii) at least one other threshold value is reached;
consolidate the plurality of individual computer messages accumulated within the queue into a single batched message in response to one of the threshold values being reached;
serialize each individual message within the single batched message;
send the single batched message over the computer network to a sub-processing system; and
in response to sending the single batched message, receive a plurality of response messages, each response message being associated with a respective serialized individual message.
2. The worker computing device ofclaim 1 wherein the at least one other threshold value comprises at least one of i) a time value for accumulating the plurality of individual computer messages within the queue, and ii) a number value of individual messages accumulated in the queue, wherein when at least one of the time value and the number value is satisfied, the queue is closed and the accumulated messages are consolidated.
3. The worker computing device ofclaim 1 wherein the plurality of individual computer messages includes authorization request messages for payment transactions initiated by a cardholder, the authorization request messages including biometric data for authenticating the cardholder as a legitimate cardholder, and wherein the batch message is transmitted to a biometric sub-processing system.
4. The worker computing device ofclaim 1 wherein the single batched message is transmitted to an input adaptor, the input adaptor configured to parse the single batched message into multiple individual computer messages for processing.
5. The worker computing device ofclaim 1 wherein the worker computing device comprises a batch manager component and an output adaptor component, the batch manager component configured to consolidate the plurality of individual computer messages into the single batched message and transmit the single batched message to the output adaptor.
6. The worker computing device ofclaim 5 wherein the output adaptor component is configured to accept the consolidated message, serialize each individual message within the consolidated message received from the batch manager component, and send the serialized message over the computer network.
7. The worker computing device ofclaim 3 wherein the individual computer messages include authorization request messages for payment transactions initiated by a cardholder with a merchant using a payment card, wherein the authorization request messages include candidate biometric data, and wherein the worker computing device is configured to send the single batched message to a sub-processing system for comparing the candidate biometric data to stored biometric data, and verify the cardholder as the legitimate cardholder.
8. A computer-implemented method for asynchronous data consolidation and transmission over a computer network, said method performed using a worker computing device comprising at least one processor in communication with at least one memory device, said method comprising:
continuously receiving, by the worker computing device, a plurality of individual computer messages from a source;
monitoring, by the worker computing device, a response time associated with each of the plurality of computer messages;
comparing, by the worker computing device, the measured response time of each message to a service level agreement (SLA) time threshold value;
accumulating, by the worker computing device, the plurality of individual computer messages within a queue until one of i) the response time associated with one of the plurality of computer messages reaches the SLA time threshold value and ii) at least one other threshold value is reached;
consolidating, by the worker computing device, the plurality of individual computer messages accumulated within the queue into a single batched message in response to one of the threshold values being reached;
serializing, by the worker computing device, each individual message within the single batched message;
sending, by the worker computing device, the single batched message over the computer network to a sub-processing system; and
in response to sending the single batched message, receive a plurality of response messages, each response message being associated with a respective serialized individual message.
9. The method ofclaim 8 wherein accumulating the plurality of individual computer messages within the queue further comprises accumulating the plurality of individual computer messages within the queue until at least one other threshold value is reached, wherein the at least one other threshold values includes i) a time value for accumulating the plurality of individual computer messages within the queue, and ii) a number value of individual messages accumulated in the queue, and wherein when at least one of the time value and the number value is satisfied, the queue is closed and the accumulated messages are consolidated.
10. The method ofclaim 8 wherein the plurality of individual computer messages include authorization request messages for payment transactions initiated by a cardholder, the authorization request messages including biometric data for authenticating the cardholder as a legitimate cardholder, and wherein sending the single batched message further comprises sending the single batched message to a biometric sub-processing system.
11. The method ofclaim 8 wherein sending the single batched message further comprises sending the single batched message to an input adaptor, the input adaptor configured to parse the single batched message into multiple individual computer messages for processing.
12. The method ofclaim 8 wherein the worker computing device includes a batch manager component and an output adaptor component, and wherein consolidating the plurality of individual computer messages further comprises consolidating, by the batch manager component, the plurality of individual computer messages and sending the consolidated message to the output adaptor.
13. The method ofclaim 12 wherein serializing each individual message further comprises receiving, by the output adaptor component, the consolidated message from the batch manager component and serializing each individual message within the consolidated message.
14. The method ofclaim 10 wherein continuously receiving the plurality of individual computer messages includes continuously receiving authorization request messages for payment transactions initiated by a cardholder with a merchant using a payment card, wherein the authorization request messages include candidate biometric data, and wherein said method further comprises sending the batched message to a sub-processing system for comparing the candidate biometric data to stored biometric data, and verifying the cardholder as the legitimate cardholder.
15. A non-transitory computer-readable medium that includes computer-executable instructions for asynchronous data consolidation and transmission over a computer network, wherein when executed by a worker computing device comprising at least one processor in communication with at least one memory device, the computer-executable instructions cause the worker computing device to:
continuously receive a plurality of individual computer messages from a source;
monitor a response time associated with each of the plurality of computer messages;
compare the monitored response time of each message to a service level agreement (SLA) time threshold value;
accumulate the plurality of individual computer messages within a queue until one of i) the response time associated with one of the plurality of computer messages reaches the SLA time threshold value is reached and ii) at least one other threshold value is reached;
consolidate the plurality of individual computer messages accumulated within the queue into a single batched message in response to one of the threshold values being reached;
serialize each individual message within the single batched message;
send the single batched message over the computer network to a sub-processing system; and
in response to sending the single batched message, receive a plurality of response messages, each response message being associated with a respective serialized individual message.
16. The non-transitory computer-readable medium ofclaim 15 wherein the at least one other threshold value comprises at least one of i) a time value for accumulating the plurality of individual computer messages within the queue, and ii) a number value of individual messages accumulated in the queue, and wherein when at least one of the time value and the number value is satisfied, the queue is closed and the accumulated messages are consolidated.
17. The non-transitory computer-readable medium ofclaim 15 wherein the plurality of individual computer messages includes authorization request messages for payment transactions initiated by a cardholder, the authorization request messages including biometric data for authenticating the cardholder as a legitimate cardholder, and wherein the batch message is transmitted to a biometric sub-processing system.
18. The non-transitory computer-readable medium ofclaim 15 wherein the single batched message is transmitted to an input adaptor, the input adaptor configured to parse the single batched message into multiple individual computer messages for processing.
19. The non-transitory computer-readable medium ofclaim 15 wherein the computer-executable instructions further cause the worker computing device to consolidate the plurality of individual computer messages into the single batched message, using a batch manager component, and transmit the single batched message to an output adaptor component.
20. The non-transitory computer-readable medium ofclaim 19 wherein the computer-executable instructions further cause the worker computing device to accept the single batched message from the batch manager component, serialize each individual message within the single batched message using the output adaptor component, and send the serialized message over the computer network.
21. The non-transitory computer-readable medium ofclaim 17 wherein the individual computer messages include authorization request messages for payment transactions initiated by a cardholder with a merchant using a payment card, wherein the authorization request messages include candidate biometric data, and wherein the computer-executable instructions further cause the worker computing device to send the batched message to a sub-processing system for comparing the candidate biometric data to stored biometric data, and verify the cardholder as the legitimate cardholder.
US15/624,5582017-06-152017-06-15Systems and methods for asynchronously consolidating and transmitting dataActive2038-01-13US10628211B2 (en)

Priority Applications (3)

Application NumberPriority DateFiling DateTitle
US15/624,558US10628211B2 (en)2017-06-152017-06-15Systems and methods for asynchronously consolidating and transmitting data
PCT/US2018/031989WO2018231383A1 (en)2017-06-152018-05-10Systems and methods for asynchronously consolidating and transmitting data
CN201810616393.7ACN109150952B (en)2017-06-152018-06-15System and method for asynchronously integrating and transmitting data

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US15/624,558US10628211B2 (en)2017-06-152017-06-15Systems and methods for asynchronously consolidating and transmitting data

Publications (2)

Publication NumberPublication Date
US20180365049A1 US20180365049A1 (en)2018-12-20
US10628211B2true US10628211B2 (en)2020-04-21

Family

ID=62705655

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US15/624,558Active2038-01-13US10628211B2 (en)2017-06-152017-06-15Systems and methods for asynchronously consolidating and transmitting data

Country Status (3)

CountryLink
US (1)US10628211B2 (en)
CN (1)CN109150952B (en)
WO (1)WO2018231383A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20240257099A1 (en)*2023-01-312024-08-01Marqeta, Inc.Dynamically assigning card account parameters for just-in-time electronic card transactions

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10459778B1 (en)*2018-07-162019-10-29Microsoft Technology Licensing, LlcSending messages between threads
US11288640B2 (en)*2019-08-302022-03-29Salesforce.Com, Inc.Cloud computing platform, method and system having a payments platform for integrating an asynchronous payment gateway service with the cloud computing platform
EP4099195A4 (en)*2020-01-302023-01-25NEC CorporationServer device, terminal, authentication system, authentication method, and storage medium
CN116755637B (en)*2023-08-172024-02-09深圳华锐分布式技术股份有限公司Transaction data storage method, device, equipment and medium

Citations (23)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2001016704A2 (en)1999-08-312001-03-08Accenture LlpSystem, method, and article of manufacture for a request sorter in a transaction services patterns environment
US6817018B1 (en)1993-10-082004-11-09International Business Machines CorporationMethod of transferring messages between computer programs across a network
US20070094336A1 (en)2005-10-242007-04-26Microsoft CorporationAsynchronous server synchronously storing persistent data batches
US20070234369A1 (en)*2006-04-032007-10-04Microsoft CorporationPolicy based message aggregation framework
US7289964B1 (en)1999-08-312007-10-30Accenture LlpSystem and method for transaction services patterns in a netcentric environment
US20070257103A1 (en)*2006-03-022007-11-08Douglas FisherMethod and system for performing two factor authentication in mail order and telephone order transactions
US20090241118A1 (en)2008-03-202009-09-24American Express Travel Related Services Company, Inc.System and method for processing interface requests in batch
US7707177B2 (en)2005-03-312010-04-27Ubs AgComputer network system for building, synchronising and/or operating a second database from/with a first database, and procedures for it
US20100125470A1 (en)*2008-11-142010-05-20Chisholm John DMethods and systems for providing a decision making platform
US20100301114A1 (en)*2009-05-262010-12-02Lo Faro Walter FMethod and system for transaction based profiling of customers within a merchant network
US20110167057A1 (en)*2010-01-042011-07-07Accenture Global Services GmbhModularized service level agreement reporting
US20110251952A1 (en)*2010-02-122011-10-13Mastercard International IncorporatedApparatus and method for bill presentment and payment
US8341134B2 (en)2010-12-102012-12-25International Business Machines CorporationAsynchronous deletion of a range of messages processed by a parallel database replication apply process
US20130339473A1 (en)2012-06-152013-12-19Zynga Inc.Real time analytics via stream processing
US20140229203A1 (en)*2013-02-112014-08-14Datavi, LLCPre-paid and closed loop transaction system
US20150227923A1 (en)2014-02-122015-08-13Mastercard International IncorporatedBiometric solution enabling high throughput fare payments and system access
US20150332331A1 (en)*2014-05-132015-11-19Pubmatic, Inc.Intelligent ad auction and sla compliance techniques
US20160092552A1 (en)*2014-09-262016-03-31Oracle International CorporationMethod and system for implementing efficient classification and exploration of data
US20160294784A1 (en)2015-03-302016-10-06International Business Machines CorporationEnhanced security when sending asynchronous messages
US20170004020A1 (en)*2015-06-302017-01-05Coursera, Inc.Automated batch application programming interfaces
US9607621B2 (en)2013-09-302017-03-28Bank Of America CorporationCustomer identification through voice biometrics
US9634962B2 (en)2015-04-142017-04-25International Business Machines CorporationPre-staging messages at a remote location
US20180018599A1 (en)*2016-07-182018-01-18Aetna Inc.Systems and methods for controlling business processes through information technology operational controls

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8458467B2 (en)*2005-06-212013-06-04Cisco Technology, Inc.Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
WO2007016567A2 (en)*2005-08-012007-02-08Volt Information Sciences Inc.Outsourced service level agreement provisioning management system and method
US20160132798A1 (en)*2013-07-262016-05-12Hewlett-Packard Development, L.P.Service-level agreement analysis
CN104717158B (en)*2015-03-022019-03-05中国联合网络通信集团有限公司A kind of method and device adjusting bandwidth scheduling strategy
US20170147962A1 (en)*2015-11-252017-05-25Upstream Works Software Ltd.Method and system for assigning service requests

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6817018B1 (en)1993-10-082004-11-09International Business Machines CorporationMethod of transferring messages between computer programs across a network
WO2001016704A2 (en)1999-08-312001-03-08Accenture LlpSystem, method, and article of manufacture for a request sorter in a transaction services patterns environment
US7289964B1 (en)1999-08-312007-10-30Accenture LlpSystem and method for transaction services patterns in a netcentric environment
US7707177B2 (en)2005-03-312010-04-27Ubs AgComputer network system for building, synchronising and/or operating a second database from/with a first database, and procedures for it
US20070094336A1 (en)2005-10-242007-04-26Microsoft CorporationAsynchronous server synchronously storing persistent data batches
US20070257103A1 (en)*2006-03-022007-11-08Douglas FisherMethod and system for performing two factor authentication in mail order and telephone order transactions
US20070234369A1 (en)*2006-04-032007-10-04Microsoft CorporationPolicy based message aggregation framework
US7890955B2 (en)2006-04-032011-02-15Microsoft CorporationPolicy based message aggregation framework
US20090241118A1 (en)2008-03-202009-09-24American Express Travel Related Services Company, Inc.System and method for processing interface requests in batch
US20100125470A1 (en)*2008-11-142010-05-20Chisholm John DMethods and systems for providing a decision making platform
US20100301114A1 (en)*2009-05-262010-12-02Lo Faro Walter FMethod and system for transaction based profiling of customers within a merchant network
US20110167057A1 (en)*2010-01-042011-07-07Accenture Global Services GmbhModularized service level agreement reporting
US20110251952A1 (en)*2010-02-122011-10-13Mastercard International IncorporatedApparatus and method for bill presentment and payment
US8341134B2 (en)2010-12-102012-12-25International Business Machines CorporationAsynchronous deletion of a range of messages processed by a parallel database replication apply process
US20130339473A1 (en)2012-06-152013-12-19Zynga Inc.Real time analytics via stream processing
US20140229203A1 (en)*2013-02-112014-08-14Datavi, LLCPre-paid and closed loop transaction system
US9607621B2 (en)2013-09-302017-03-28Bank Of America CorporationCustomer identification through voice biometrics
US20150227923A1 (en)2014-02-122015-08-13Mastercard International IncorporatedBiometric solution enabling high throughput fare payments and system access
US20150332331A1 (en)*2014-05-132015-11-19Pubmatic, Inc.Intelligent ad auction and sla compliance techniques
US20160092552A1 (en)*2014-09-262016-03-31Oracle International CorporationMethod and system for implementing efficient classification and exploration of data
US20160294784A1 (en)2015-03-302016-10-06International Business Machines CorporationEnhanced security when sending asynchronous messages
US20160294782A1 (en)2015-03-302016-10-06International Business Machines CorporationEnhanced security when sending asynchronous messages
US9634962B2 (en)2015-04-142017-04-25International Business Machines CorporationPre-staging messages at a remote location
US20170004020A1 (en)*2015-06-302017-01-05Coursera, Inc.Automated batch application programming interfaces
US20180018599A1 (en)*2016-07-182018-01-18Aetna Inc.Systems and methods for controlling business processes through information technology operational controls

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
"FTP Listing of/software/integration/wmq/docs/V7.0/PDFs/at public.dhe.ibm.com", Sep. 17, 2014, pp. 1-1, XP055495898, Retrieved from the Internet: URL:ftp://public.dhe.ibm.com/software/integration/wmq/docs/V7.0/PDFs/ [retrieved on Jul. 27, 2018].
"Intercommunication", Sep. 14, 2014, XP055495884, Retrieved from the Internet: URL:ftp://public.dhe.ibm.com/software/integration/wmq/docs/V7.0/PDFs/MQ-V7.0.1.4.PDF.zip [retrieved on Jul. 27, 2018]. Parts 1, 2, and 3.
"MQSeries.net :: View topic-IS08583 protocol support with broker", Jun. 16, 2010, XP055495979, Retrieved from the Internet: URL:http://mqseriesnetphpBBviewtopicphpt=54024&postdays=0&postorder=asc&start=0&sid=5le6793b7c0c5754fb6fe8d93d5c5ell [retrieved on Jul. 30, 2018], 4 pps.
"MQ-V7.0.1.4. PDF.zip contents", Sep. 14, 2014, XP055495904, Retrieved from the Internet:URL:ftp://public.dhe.ibm.com/software/integration/wmq/docs/V7.0/PDFs/MQ-V7.0.1.4.PDF.zip, [retrieved on Jul. 27, 2018].
"MQSeries.net :: View topic—IS08583 protocol support with broker", Jun. 16, 2010, XP055495979, Retrieved from the Internet: URL:http://mqseriesnetphpBBviewtopicphpt=54024&postdays=0&postorder=asc&start=0&sid=5le6793b7c0c5754fb6fe8d93d5c5ell [retrieved on Jul. 30, 2018], 4 pps.
PCT International Search Report and Written Opinion, Application No. PCT/US2018/031989, dated Aug. 8, 2018, 12 pps.
Peter Potkay et al: "MQSeries.net Forum Index > General IBM MQ Support > Batch size", Nov. 13, 2008, XP055495874, Retrieved from the Internet:URL:https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SC34-6931-01 [retrieved on Jul. 27, 2018], 3 pps.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20240257099A1 (en)*2023-01-312024-08-01Marqeta, Inc.Dynamically assigning card account parameters for just-in-time electronic card transactions

Also Published As

Publication numberPublication date
CN109150952B (en)2022-04-19
CN109150952A (en)2019-01-04
US20180365049A1 (en)2018-12-20
WO2018231383A1 (en)2018-12-20

Similar Documents

PublicationPublication DateTitle
US10242363B2 (en)Systems and methods for performing payment card transactions using a wearable computing device
US11222341B2 (en)Rules engine for applying rules from a reviewing network to signals from an originating network
US9547864B2 (en)Methods and systems for updating expiry information of an account
US20230410119A1 (en)System and methods for obtaining real-time cardholder authentication of a payment transaction
US20150012430A1 (en)Systems and methods for risk based decisioning service incorporating payment card transactions and application events
US20150363785A1 (en)Systems and methods for consumer authentication using behavioral biometrics
US8788421B2 (en)Systems and methods for processing electronic payments using a global payment directory
US10628211B2 (en)Systems and methods for asynchronously consolidating and transmitting data
US11562356B2 (en)Systems and methods for communicating liability acceptance with payment card transactions
US20190122218A1 (en)Methods and systems for reducing network traffic associated with fraudulent transactions
US11423408B2 (en)Rules engine for applying rules from a reviewing network to signals from an originating network
US20170116674A1 (en)Processing electronic signals to determine insurance risk
US20150095227A1 (en)Method and system for denying payment authorization requests associated with fraud
US11080714B2 (en)Systems and methods for providing stand-in authorization
US20130339237A1 (en)Methods and systems for investigating fraudulent transactions
US10924477B2 (en)System and methods for client identification and verification
US20160148296A1 (en)Method and system for providing a profile associated with a cardholder

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:MASTERCARD INTERNATIONAL INCORPORATED, NEW YORK

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RAFIEE, SHAWN;KANYAL, AVIJIT;NAVARRO, RICHARD MICHAEL;SIGNING DATES FROM 20170608 TO 20170609;REEL/FRAME:042731/0519

STPPInformation on status: patent application and granting procedure in general

Free format text:NON FINAL ACTION MAILED

STPPInformation on status: patent application and granting procedure in general

Free format text:RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPPInformation on status: patent application and granting procedure in general

Free format text:FINAL REJECTION MAILED

STPPInformation on status: patent application and granting procedure in general

Free format text:RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPPInformation on status: patent application and granting procedure in general

Free format text:NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCFInformation on status: patent grant

Free format text:PATENTED CASE

CCCertificate of correction
MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:4


[8]ページ先頭

©2009-2025 Movatter.jp