Systems and methods for asynchronously consolidating and transmitting data

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.

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.

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, 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.

FIG. 1is a schematic diagram illustrating an example multi-party payment platform system20for 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 a merchant24. To accept payment with the transaction card, merchant24must 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 cardholder22tenders payment for a purchase with a transaction card, merchant24requests authorization from a merchant bank26for 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's22account data from a magnetic stripe, a chip, embossed characters, or the like, included on the transaction card and communicates electronically with the processing computers of merchant bank26. In the context of transactions with online merchants, a cardholder22may provide cardholder account data, such as an account number, a card verification number, an expiration date, or the like, through a website. Alternatively, merchant bank26may 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 an interchange network28, computers of merchant bank26or merchant processor will communicate with computers of an issuer bank30to determine whether cardholder's22account32is in good standing and whether the purchase is covered by cardholder's22available 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 to merchant24.

In the example embodiment, cardholder22provides cardholder account data, such as a biometric sample. During authorization, one or more parties to the transaction, such as interchange network28, may communicate with a sub-processing system29that is configured to perform an authorization sub-process associated with the transaction. In the example embodiment, sub-processing system29performs authorization of transaction data (which includes account data) for payment transactions. Interchange network28includes a worker computing device which is capable of consolidating multiple individual computer messages into a single batched message for sending to sub-processor29for improved overall processing. During operation, interchange network28transmits transaction data to sub-processing system29using a MQ message as a part of the overall authorization process for payment transactions. In some situations, sub-processing system29may 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's22account32is decreased. Normally, a charge for a payment transaction is not posted immediately to cardholder's22account32because bankcard associations, such as Mastercard International Incorporated®, have promulgated rules that do not allow merchant24to 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. When merchant24ships or delivers the goods or services, merchant24captures 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 cardholder22cancels a transaction before it is captured, a “void” is generated. If cardholder22returns goods after the transaction has been captured, a “credit” is generated. Interchange network28and/or issuer bank30stores 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 as merchant bank26, interchange network28, and issuer 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 among merchant24, merchant bank26, and issuer bank30. Settlement refers to the transfer of financial data or funds among merchant's24account, merchant bank26, and issuer bank30related 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 between issuer bank30and interchange network28, and then between interchange network28and merchant bank26, and then between merchant bank26and merchant24.

FIG. 2is a simplified block diagram of an example processing system100for consolidating multiple computer messages in a single batched message. Processing system100includes a plurality of computing devices connected in communication in accordance with the present disclosure. In the example embodiment, processing system100may be used for processing payment transactions in the interchange environment shown inFIG. 1.

More specifically, in the example embodiment, processing system100includes a server system112in communication with a sub-processing system29(also shown inFIG. 1), and/or other client computer systems114associated with merchants, merchant banks, payment networks, and/or issuer banks. In the example embodiment, server system112includes at least database server116and worker computing device118. In the example embodiment, at least one sub-processing system29receives, from server system112, computer messages, such as authorization request messages of payment transactions, and provides responses to server system112. In some embodiments, sub-processing system29is a third-party computing system. In other embodiments, sub-processing system29may be a component or module executed by server system112. In still other embodiments, sub-processing system29may be associated with any of the parties to the transaction authorization process.

In the example embodiment, server system112is also in communication with a plurality of client sub-systems, also referred to as client computer systems114. In one embodiment, client computer systems114are computers including a web browser, such that server system112is accessible to client computer systems114using the Internet. Client computer systems114and/or sub-processing system29are interconnected to the Internet through many interfaces including a network 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 systems114could be any device capable of interconnecting to the Internet including a web-based phone, PDA, or other web-based connectable equipment.

Database server116is connected to database120, which contains information on a variety of matters, as described below in greater detail. In one embodiment, database120is centralized and stored on server system112and can be accessed by potential users at one of client computer systems114by logging onto server system112through one of client computer systems114. In an alternative embodiment, database120is stored remotely from server system112and may be non-centralized.

Database120may include a single database having separated sections or partitions or may include multiple databases, each being separate from each other. Database120may 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. Database120may 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. Database120may 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. Database120may also store purchase data associated with items being purchased by a cardholder from a merchant, and authorization request data. Database120may also store liability acceptance information associated with parties to the transaction, such as merchants, merchant banks, payment networks, and/or issuer banks. Further, database120may also store rules for default liability and/or liability acceptance indicators for particular transactions.

In the example embodiment, one of client computer systems114may be associated with merchant bank26(shown inFIG. 1) while another one of client computer systems114may be associated with issuer bank30(shown inFIG. 1). Server system112may be associated with interchange network28or a payment processor. In the example embodiment, server system112is 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 system112may be used for processing transaction data. In addition, client computer systems114may 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 device118is located within or in communication with server system112and 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). The worker computing device118is communicatively coupled to an input adaptor located in sub-processing system29. Worker computing device118and input adaptor of sub-processing system29are interconnected via a network (e.g., the Internet) through many interfaces including a network 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. 3is an expanded block diagram of an example embodiment of a server architecture of a processing system122including other computing devices in accordance with one embodiment of the present disclosure. In the example embodiment, processing system122is similar to processing system100(shown inFIG. 2). Components in processing system122, identical to components of processing system100, are identified inFIG. 3using the same reference numerals as used inFIG. 2. Processing system122includes server system112, client computer systems114, worker computing device118, and sub-processing system29. Server system112further includes database server116, an application server124, a web server126, a user authentication server128, a directory server130, and a mail server132. A storage device134is coupled to database server116and directory server130. Servers116,124,126,128,130, and132are coupled in a local area network (LAN)136. In the example embodiment, client systems114include an issuer bank workstation138, a merchant bank workstation140, a third party processor workstation142, third parties146(e.g., cardholders, customers, auditors, developers, cardholders (i.e., consumers), merchants, acquirers, issuers, etc.), and a manager workstation156. In addition, issuer bank workstation138, merchant bank workstation140, and third party processor workstation142may be coupled to LAN136using network connection115(shown inFIG. 2). Workstations138,140, and142are coupled to LAN136using an Internet link or are connected through an Intranet.

Each workstation138,140, and142is a personal computer having a web browser. Although the functions performed at the workstations typically are illustrated as being performed at respective workstations138,140, and142, such functions can be performed at one of many personal computers coupled to LAN136. Workstations138,140, and142are 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 to LAN136.

Server system112is configured to be communicatively coupled to various individuals, including employees144(using a workstation154) and to third parties146using 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 than WAN150, LAN136could be used in place of WAN150.

In the example embodiment, any authorized individual having a workstation154can access processing system122. In some embodiments, manager workstation156is located at a remote location. Workstations154and156are personal computers having a web browser. Also, workstations154and156are configured to communicate with server system112. Furthermore, user authentication server128communicates with remotely located client systems, including manager workstation156using a telephone link. User authentication server128is configured to communicate with workstations138,140, and142as well.

FIG. 4illustrates an example configuration of a user system202operated by a user201, such as cardholder22, merchant24or other user (shown inFIG. 1). User system202may include, but is not limited to, client computer systems114,138,140, and142, worker computing device118, sub-processing system29, workstations154, and manager workstation156, as illustrated inFIG. 3. In the example embodiment, user system202includes a processor205for executing instructions. In some embodiments, executable instructions are stored in a memory area210. Processor205may include one or more processing units, for example, a multi-core configuration. Memory area210is any device allowing information such as executable instructions and/or written works to be stored and retrieved. Memory area210may include one or more computer readable media.

User system202also includes at least one media output component215for presenting information to user201. Media output component215is any component capable of conveying information to user201. In some embodiments, media output component215includes an output, such as a video adapter and/or an audio adapter. An output adapter is operatively coupled to processor205and 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 system202includes an input device220for receiving input from user201. Input device220may 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 of media output component215and input device220. User system202may also include a communication interface225, which may be communicatively coupled to a remote device such as server system112. Communication interface225may 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 in memory area210are, for example, computer readable instructions for providing a user interface to user201via media output component215and, optionally, receiving and processing input from input device220. A user interface may include, among other possibilities, a web browser, and client application. Web browsers enable users, such as user201, to display and interact with media and other information typically embedded on a web page or a website from server system112. A client application allows user201to interact with a server application from server system112.

FIG. 5illustrates an example configuration of a server system301such as server system112(shown inFIGS. 2 and 3). In some embodiments, server system301may be similar to sub-processing system29(shown inFIGS. 1-3). Server system301may include, but is not limited to, database server116, application server124, web server126, user authentication server128, directory server130, and mail server132.

Server system301includes a processor305for executing instructions. Instructions may be stored in a memory area310, for example. Processor305may 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 the server 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.).

Processor305is operatively coupled to a communication interface315such that server system301is capable of communicating with a remote device such as a user system or another server system301. For example, communication interface315may receive requests from client computer system114via the Internet, as illustrated inFIGS. 2 and 3.

Processor305may also be operatively coupled to a storage device134. Storage device134is any computer-operated hardware suitable for storing and/or retrieving data. In some embodiments, storage device134is integrated in server system301. For example, server system301may include one or more hard disk drives as storage device134. In other embodiments, storage device134is external to server system301and may be accessed by a plurality of server systems301. For example, storage device134may include multiple storage units such as hard disks or solid state disks in a redundant array of inexpensive disks (RAID) configuration. Storage device134may include a storage area network (SAN) and/or a network attached storage (NAS) system.

In some embodiments, processor305is operatively coupled to storage device134via a storage interface320. Storage interface320is any component capable of providing processor305with access to storage device134. Storage interface320may 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 any component providing processor305with access to storage device134.

FIG. 6is an example payment transaction environment600including processing system122in which processing steps are managed by worker computing device118. In the example embodiment, computer messages are authorization request messages602which are transmitted from merchant banks26and/or acquirer systems620. Acquirer systems620are in communication with an interchange network630(e.g., a payment processor, such as interchange network28(shown inFIG. 1)) and, more specifically, with processing system122. Acquirer systems620interact with network630during authorization of payment transactions.

In the example embodiment, acquirer systems620transmit authorization request messages602to network630for authorization processing. Further, network630is under a service level agreement (SLA) to respond to some authorization request messages602within a predefined number of milliseconds. If network630does not respond within an SLA time limit, the authorization request message602may fail. In other words, if network630does not provide a quick enough response, the failed authorization request message602will cause the transaction to be automatically denied. As such, the timeliness of authorization request message processing by network630impacts 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, network630is in communication with an authentication sub-processor650. In some embodiments, authentication sub-processor650is 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-processor650may 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-processor650is a server or application component within network630. In still other embodiments, authentication sub-processor650supports additional tasks associated with payment card authorization request messages.

In the example payment transaction environment600, a “suspect” consumer provides a biometric sample as a part of an authorization request message602. Network630receives the biometric sample along with the authorization request message602and performs transmission640of the biometric sample and other associated authorization data to authentication sub-processor650. Authentication sub-processor650identifies a target sample from the other associated authorization data, compares the biometric sample to the target sample, and transmits an authorization response660to network630with biometric authorization data, such as affirming or denying the authorization. After receipt of authorization response660, and after performing any other authorization processing, network630transmits a response670, in response to authorization request message602, including authorization response660indicating the network's630disposition on authorization. Network630may transmit response670to a requestor, such as acquirer system620.

In the example embodiment, network630monitors response times associated with the processing of authorization request messages602. The time that elapses between receipt625of an authorization request message602and the response670by network630to the authorization request message602is a “response time” for that particular request in the example embodiment (e.g., complete processing request time). In other embodiments, network630monitors a response time as the time that elapses between transmission640of the authorization request message to authentication sub-processor650and authorization response660back from the request (e.g., sub-processing request time).

In the example embodiment, a worker computing device118asynchronously consolidates multiple authorization request messages602in one MQ message (including biometric data) and is sent as transmission640. In some embodiments, a worker computing device118batches individual computer messages (e.g., authorization messages) in one MQ message and transmits the MQ message as transmission640when the number of individual computer messages in the MQ message reaches a predetermined number. In other embodiments, worker computing device118batches 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 system112is able to process more transactions within the SLA time limit. Thus fewer transactions will be denied for failing to comply with the SLA.

FIG. 7is an example method700of consolidating multiple computer messages in a payment transaction environment600such as shown inFIG. 6. In the example embodiment, method700is 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, method700includes continuously receiving710a plurality of individual computer messages from a source, and accumulating720the plurality of individual computer messages within a queue until at least one threshold value is reached. Method700also includes consolidating730the plurality of individual computer messages accumulated within the queue into a single batched message, such as a MQ message. Method700further 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. Method700may 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. Method700further includes serializing740each computer message of within the single batched message, compressing each individual computer message of the plurality of computer messages, and sending750the 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. Method700may 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, method700includes 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, method700may include altering the threshold value based at least in part on the average response time. Further, in the example embodiment, method700is performed asynchronously to the clearing process or other transaction process that may perform during a payment transaction. As such, method700is independent from other processes occurring during the payment transaction. Thus, method700is able to process data without holds and/or interruptions from other processes, which decreases the data processing required by method700.

FIG. 8illustrates an example asynchronous thread sequence800used for implementing the method shown inFIG. 7. Asynchronous thread sequence800runs 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 sequence800is performed by worker computing device118that receives individual computer messages from server system112. Asynchronous thread sequence800includes a controller worker801, output adaptor802, batch worker803, batch manager804, and batch timer805for consolidating multiple computer messages in one MQ message, and scheduling the time the MQ message is transmitted. Controller worker801sends individual computer messages to output adaptor802. Output adaptor802then instantiates batch worker803and sends batch worker803individual computer messages that require sub-processing. Batch worker803sends individual computer messages to batch manager804, which creates a static list of messages. Batch manager804is configured to set a predetermined number of individual computer messages per each MQ message.

Batch manager804also creates batch timer805and schedules it to run based on a predefined time threshold. Batch timer805is 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 by batch manager804or the time value established by batch timer805is satisfied, the individual computer messages in batch manager804's static list is returned to batch worker803. Batch worker803further consolidates the individual messages and sends them to output adaptor802. Output adaptor802then serializes the individual messages and sends them as a single MQ message across network connection115to an input adaptor806of sub-processing system29. Input adaptor806is configured to de-serialize the individual messages and provide them one at a time to sub-processor29for sub-processing. Response messages are sent from sub-processing system29to server system112individually and asynchronously over a connection117. Network connections115and117may be the same connection.

FIG. 9shows an example configuration900of a database920within a computing 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 device910is similar to server system112(shown inFIG. 2), processing system122(shown inFIGS. 3 and 6), and/or server system301(shown inFIG. 5). Database920is coupled to several separate components within computing device910, which perform specific tasks.

In the example embodiment, database920includes transaction data922, system state data924, and threshold data926. In some embodiments, database920is similar to database120(shown inFIG. 2). Transaction data922includes information associated with payment transaction data, such as authorization request messages602(shown inFIG. 6). System state data924includes 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 data926includes data associated with worker computing device and predefined threshold values, such as described in method700.

Computing device910includes the database920, as well as data storage devices930. Computing device910also includes a consolidating component940, 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 device910also includes an authorization component950for processing transaction data. A response tracking component960is also included for tracking and managing transaction data during their pendency at network630(shown inFIG. 6). A communications component970is also included for receiving transaction data and transmitting MQ messages across the MQ. A processing component980assists with execution of computer-executable instructions associated with the system.

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.