US20220067683A1 - System for facilitating real-time transactions - Google Patents
System for facilitating real-time transactions Download PDFInfo
- Publication number
- US20220067683A1 US20220067683A1 US17/523,729 US202117523729A US2022067683A1 US 20220067683 A1 US20220067683 A1 US 20220067683A1 US 202117523729 A US202117523729 A US 202117523729A US 2022067683 A1 US2022067683 A1 US 2022067683A1
- Authority
- US
- United States
- Prior art keywords
- data
- server computer
- requests
- subsets
- computer system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/16—Payments settled via telecommunication systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
Definitions
- the present invention relates to a system for facilitating real-time transactions of data representing monetary value between clients in a computer network, and in particular to network and server architecture enabling fast and secure execution of high numbers of such transactions within short time frames.
- the present invention is concerned with a system allowing transactions between consumers, businesses and banks to be effected real-time.
- Embodiments of the invention seek to bring about a network and server architecture enabling fast and secure real-time execution of high numbers of monetary transactions.
- embodiments provide a system for facilitating real-time transactions of data representing monetary value between clients in a computer network comprising at least one first client and a transaction server computer system, the first client being associated with a set of data representing a balance of monetary value, the set of data being stored in the transaction server computer system, wherein the transaction server computer system is configured for receiving requests for transactions of data representing an amount of monetary value, via the computer network, from a plurality of second clients for real-time updates of the first client's set of data, and wherein the transaction server computer system is configured to:
- the update of the first client's subset of data may in particular reside in drawing of monetary value from the first client's set of data to reduce the balance of monetary value represented thereby.
- the request for a transaction may reside in a request from one of the second clients to transfer or wire an amount of monetary value from the set of data to a further set of data representing a monetary balance of the requesting second client.
- each request for transactions is compared to the balance of each subset of data to ensure that the amount of monetary value to be drawn does not exceed the sub-balance of the subset of the set of data to which the request in question is designated.
- the transaction server computer system may be configured to decline a request in case the amount to be drawn exceeds the available balance of the set of data.
- embodiments of the invention may handle the same number of transactions as systems known in the art, but with significantly less computing power. Accordingly, embodiments of the present invention may decrease the demand on hardware. Further, by more efficient handling of the requests for transactions and updates, the energy consumption may be reduced by embodiments of the invention further reducing the demand on resources.
- Clients may include computer networks of monetary institutions such as banks.
- the computer networks of the monetary institutions may comprise at least one secured gateway, such as a firewall, for establishing secured data communication gateways.
- secured data communication gateways are advantageously situated between the computer networks of the clients and any external computers.
- the clients are banks, the transactions of data representing monetary value happen between banks. Such transactions may be referred to as bank to bank transfers.
- the plurality of second clients may receive requests for transactions from external clients.
- Such external clients may be computers on an external network such as the internet.
- the computers may be operated by the second clients' costumers being e.g., individual persons or companies.
- the transactions may also be generated from computers within the computer network of third party money handlers specialized in facilitating money transfers.
- the requests for transactions may also be generated within the computer networks of the individual second clients.
- the transaction server computer system may be a central server, e.g., at regional, national or supranational level, administered by a trusted third party, such as a central bank. Alternatively, it may be a further party trusted by the monetary institutions and a central bank. As another alternative, the transaction server computer may solely be the further party trusted by the monetary institutions.
- embodiments of the system according to the present invention may comprise an administrative authority computer system.
- the first client may have an account defining a real balance of monetary value within the administrative authority computer system, and this account may be mirrored on the first client's set of data stored in the transaction computer system.
- mirroring the account on the set of data should be understood as comparing or equating the balance of real money defined by the account with the balance of monetary value represented by the set of data. Such mirroring may be carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set of data.
- Update of the real balance may be performed intermittently, i.e., after a certain number of requests has been processed by the transaction server computer system, thus causing latency delays only of updates of the real balances which need to occur only at intervals of, e.g., six hours, one hour or 15 minutes. The intervals may also be defined by accumulated transaction amounts, the number of transactions carried out, etc.
- the first client's account in the administrative authority computer system may be mirrored on the first client's set of data only at given intervals.
- Mirroring of the account on to the set of data should preferably be carried out in order to ensure that the real balance at the administrative authority server computer system adequately reflects the balance represented by the set of data, as updated according to the requests, at the transaction server computer system.
- mirroring is preferably performed in relation to update of the real balance defined by the account.
- the step of mirroring may form part of the invention as claimed herein, or may be performed by a software component connected to the system according to the invention.
- real-time transactions refer to transactions that are processed as they are received.
- requests for updates of data representing monetary value are not accumulated over time and subsequently processed in bundles of accumulated requests, but rather the requests are individually processed by the transaction server computer system, preferably one by one.
- each request for update of data representing monetary value may cause the set of data to be updated and the balance represented by the set of data to change.
- Real-time transactions may also be referred to as instant payments.
- the data structure of the transaction server computer system wherein the first client's set of data is stored, comprises at least the first subset of the first client's set of data and the second subset of the first clients set of data.
- the data structure may also comprise a larger number of subsets of data such as, e.g., three, four, five, eight, ten, 15 or 20.
- the amount of monetary value represented by the accumulated sub-balances of the subsets of data may be equal to the monetary value represented by the set of data.
- the data structure wherein the first client's set of data is stored may be physically stored in a memory of a single server computer or at least two server computers of the transaction server computer system.
- the transaction server computer system when the transaction server computer system receives a plurality of requests for updates of the first client's set of data, the transaction server computer system reserves the first subset of data for the first one of the requests and reserves the second subset of data for the second one of the requests.
- the reserved first and second subsets of data are preferably unavailable for update in accordance with any request other than the request they are reserved for. By reserving a subset of data for a particular request for update, it is ensured that the reserved subset of data is only updated in accordance with one of the requests at a time.
- the transaction server computer system may be configured to determine if the envisaged update of the reserved subset of data will cause the sub-balance represented by the reserved subset of data to become negative.
- the first and second subsets of data are updated simultaneously.
- the simultaneous update of the first and second subsets of data may allow the first client's set of data to be updated in response to more than one request at a time. As also described above, this will increase the rate at which requests for update of the first client's set of data is able to be processed by the system.
- a subset of data may be released once it has been updated so that it is available for further updates.
- the transaction server computer system may be configured to update more than one subset of data in accordance with a single request for update of the first clients set of data.
- the computer network may comprise a plurality of first clients, each first client being associated with a respective set of data.
- the transaction server computer system may comprise:
- the dedicated first and second processing units allow for parallel processing of handling of receipt of requests by the first processing unit and updating first and second subsets of data by the second processing unit enabling overcoming of potential bottlenecks, and consequently more updates per unit time may be achieved. More specifically, this may allow the first processing unit to handle receipt of requests even if the second processing is fully or almost fully occupied by updating the first and second subsets of data. Similarly, this may allow the second processing unit to update the first and second subsets of data even if the first processing unit is fully or almost fully occupied handling receipt of requests.
- first processing unit and the second processing unit allow the first processing unit and the second processing unit to be configured to have individual computing capacities and possibly to have computing capacities chosen so as to optimize the work load balancing between the first and second processing units. This allows the transaction server computer system to be further optimized in way that minimizes the amount of time the first processing unit may have to wait for the second processing unit to finish and vice versa.
- the first processing unit and second processing units are preferably separate CPUs or separate CPU cores.
- the second processing unit may be a parallel processing unit comprising multiple cores in a single CPU or multiple CPUs. This allows for parallel processing of multiple subsets of data simultaneously on individual CPUs or CPU cores enabling more updates per unit time to be achieved.
- Each of the subsets of data may be processed at a dedicated one of the CPUs or CPU cores of the parallel processing unit, so that each subset of data is processed by one of the processors or processor cores different from any other one of the processors or processor cores.
- each of the CPUs or CPU cores is preferably dedicated to process a single subset of data. Accordingly, processing of each subset of data may be performed with little or no impact on the processing of other subsets of data. This may further increase the number of updates per unit time achieved.
- the transaction server computer system may be configured to determine, upon receipt of a third one of the requests, if the first and second subsets of data are reserved, and in the affirmative, perform an update of the set of data according to a predefined auxiliary updating scheme.
- the transaction server computer is configured to handle the case when the third one of the requests for update of the first client's set of data is received before updates according to the first and second one of the requests are completed.
- the predefined auxiliary updating scheme may be to store the third one of the requests and to determine if the first and second subsets of data are reserved at predefined intervals in time.
- the predefined intervals in time may be on, e.g., the microsecond scale, millisecond scale or second scale.
- the transaction server computer system may then continue to determine if the first and second subsets of data are reserved until at least one of the first and second subsets of data is not reserved. At this point, the at least one of the unreserved subsets of data is reserved for the third one of the requests.
- the predefined auxiliary updating scheme may be to determine if the third subset of data is reserved. If the third subset of data is not reserved, the third subset of data may be updated according to the third request. If the third subset of data is reserved and in case the data structure comprises four subsets of data, the predefined updating scheme may be to determine if the fourth subset of data is reserved.
- This auxiliary updating scheme may be applied in systems wherein the data structure comprises any number of subsets of data larger than two. In this case, the system is potentially able to simultaneously process as many requests for update of the first client's set of data as the number of subsets of data the data structure comprises.
- the transaction server computer system may be configured to:
- each sub-request of the first set of sub-requests is for transaction of data representing a sub-amount of monetary value.
- the accumulated sub-amounts of the sub-requests are equal to the amount of monetary value represented by the data requested to be transferred by the request, from which the sub-requests are derived.
- the request is split between the first subset of data and the second subset of data.
- the data structure comprises more than two subsets of data, more than two subsets of data may be reserved and then updated simultaneously in accordance with the plurality of sub-requests.
- the transaction server computer system may be configured to:
- the request may be processed by the system even if the amount of monetary value represented by the data to be transferred exceeds the amount of monetary value represented by the sub-balance of any one of the subsets of data. Furthermore, because the number of subsets of data necessary to process the request without any one of the sub-balances becoming negative is reserved simultaneously, it may be ensured that if any subset of data is reserved for the request, all the subsets of data necessary for processing the request are reserved. Accordingly, it may be avoided that any one of the subsets of data is reserved for the request without the request being able to be processed.
- each sub-request of the second set of sub-requests is for transaction of data representing a sub-amount of monetary value.
- the accumulated sub-amounts of the sub-requests of the second set of sub-requests are equal to the amount of monetary value represented by the data requested to be transferred by the request the sub-requests are generated from.
- the request is divided into the second set of sub-requests in such a manner that each sub-amount is no larger than the sub-balance of a designated one of the reserved subsets of data.
- the transaction server computer system may be configured to change the number of subsets of data stored in the data structure based on an evaluation of the number of received requests within a specified period of time.
- the transaction computer system is configured to optimize the number of subsets in the data structure.
- the number of subsets of data in the data structure increases, the need for maintenance of the data structure increases.
- the data integrity of each subset of data should be ensured, data communication to and from each subset of data should be possible and the first client's set of data increases in complexity with an increasing number of subset of data.
- the number of requests the system can process simultaneously increases.
- an optimum number of subsets of data in the data structure may exist and the transaction server computer system may be configured to vary the number of subsets of data on the basis of predefined or pre-set user setting, or on the basis of a determination of requests, available computational resources, such as CPU power or memory availability, computational load, etc., preferably with a view to approaching the optimum number.
- the evaluation may include a comparison of the number of received requests within a specified period of time with a first threshold number and a second threshold number.
- the transaction server computer system if the number of received requests is larger than the first threshold number, the transaction server computer system is configured to increase the number of subsets of data. Accordingly, if the number of received requests is smaller than the second threshold number, the transaction server computer system may be configured to decrease the number of subsets of data.
- the first threshold number may be equal to are larger than the second threshold number. The closer the two threshold numbers are to each other, the more often the number of subsets of data is changed and the more likely it is that the number of subsets corresponds to a suitable number of subsets based on the evaluation.
- the specified period of time may be a recently elapsed period of time.
- the number of subsets may be set (optimized) with respect to the current need for request processing.
- the specified period of time may alternatively be a period of time in the past, e.g., a period that ended one year ago, one month ago or one day ago.
- the number of subsets may be varied (optimized) in accordance with previously observed trends in request processing needs that may reoccur.
- the transaction server computer system may be configured to change the number of subsets of data stored in the data structure based on an evaluation of the amount of monetary value represented by the data requested to be transferred within a specified period of time. This allows the transaction server computer, e.g., reduce the number of subset of data if first share of the requests received are for amounts larger than a first threshold amount or increase the number of subsets of data if a second share of the requests received are for amounts smaller than a second threshold amount. This may increase the number of transactions the system is able to handle per unit of time.
- the transaction server computer system may be configured to:
- the transaction server computer system may be able to preferentially reserve the subsets of data with the largest sub-balances in response to receipt of requests for transactions of data representing first amounts of monetary value which are larger than second amounts of monetary value of other requests.
- the transaction server computer system may also be able to preferentially reserve the subsets of data with the smallest sub-balances of the subsets of data in response to receipt of requests for transactions of data representing third amounts of monetary value which are smaller than fourth amounts of monetary value of other requests. Accordingly, the number of subsets of data reserved to process a request for data representing a relatively large amount of monetary value may be reduced.
- the subsets of data with the smallest sub-balances may be allowed to process requests for relatively small amounts without a few requests for relatively large amounts reserving a large number of the subsets with the smallest sub-balances. Accordingly, the amount of monetary value represented by the set of data may be reduced.
- the transaction server computer system may also be able assign requests to a prioritized sequence of subsets or groups of subsets in the prioritized list. For instance, upon receipt of a request for a first amount of monetary value larger than second amounts of monetary, the transaction server computer may assign the plurality of sub-requests derived from the request to the unreserved subsets of data with the largest sub-balances at the time of reservation of subsets for the plurality of sub-requests. This may further reduce the number subsets reserved to process a request for data representing a relatively large amount of monetary value may be reduced.
- the second and fourth amounts of monetary value may be varied to change what subsets of data on the prioritized list are being preferentially reserved for requests representing certain amounts of monetary value.
- the second and fourth amounts may be varied in response to, e.g., variation in the sub-balances of the subsets of data on the prioritized list, the average amount of monetary value represented by requests received within the specified interval or the minimum and/or maximum amount of monetary value represented by requests received within the specified interval.
- the specified interval according to this embodiment may be intervals defined by, e.g., the number of requests received, the accumulated request amounts, the accumulated request amounts, the number of transactions carried out, etc.
- the transaction server computer system may comprise a plurality of individual data storage units, and wherein each subset of data is stored in an individual data storage unit. This may decrease the time it takes to update each subset of data because each data storage unit only has to update one subset of data at a time.
- the transaction server computer system may comprise a plurality of server computers, in which case all data associated with the first client is preferably stored in a single server computer. In case this case all requests for update of the first client's set of data are sent to the single server computer. Also, the data structure and thus the subsets of data are stored in the single server computer. Accordingly, it may be avoided that communication between server computers is necessary to, e.g., determine sub-balances of the subsets of data, determine the balance of the set of data from the accumulated sub-balances of the subsets of data, update the subsets of data in accordance with the plurality of sub-requests or generate and populate the prioritized list of the subsets of data.
- the single server computer may store data associated with the first client only.
- each server computer is dedicated a single first client even of the computer network comprises a plurality of first clients. Accordingly, each server computer only handles requests for updates of the single client's set of data.
- data traffic for requests for updates of a plurality of first clients' sets of data is split between a plurality of server computers and the chance of data traffic bottlenecks occurring in the system may be reduced.
- the subsets of data associated with the first client may be stored on at least two server computers, in which case no set of sub-requests is processed on more than one server computer.
- at least the first and second subsets of data are stored on a first server computer and at least a third and fourth subset of data are stored on a second server computer.
- This allows the totality of requests for update of the single client's set of data to be split between at least two server computers. Accordingly, each server computer receives a smaller number of requests for update of the first client's set of data. Thus, the number of requests processed per unit of time may be increased. Furthermore, because no set of sub-requests is processed on more than one server computer, less communication between the at least two server computers may be required upon receipt of a single request.
- the transaction server computer system may be configured to determine the sub-balances of all subsets of data at predefined intervals in time. Based on the determined sub-balances of all the subsets of data, the transaction server computer system may be able to determine if, e.g., sub-balances of subsets of data are different from a threshold sub-balance interval preferably have their sub-balances adjusted, the balance of the set of data is different from a threshold balance interval and preferably have the balance adjusted, etc. Accordingly, the transaction server computer system may be able to improve operation of the system.
- the intervals in time may be, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc.
- the transaction server computer system may be configured to issue requests for transfer of data representing an amount of monetary value between subsets of data of the first client's set of data based on at least the sub-balances of the subsets of data.
- the transaction server computer system may be able to vary the sub-balances of the subsets of data and possibly even out differences between the individual sub-balances of individual subsets of data. This may increase the number transactions processed per unit of time as the chance of subsets of data reaching zero or near-zero balance may be reduced.
- the transaction server computer system may define at least a first and a second threshold sub-balance. In this case, if the sub-balance of the first subset of data is smaller than the first threshold sub-balance, the transaction server computer system may issue a request for transfer of data representing an amount of monetary value from the second subset of data to the first subset of data. Hereby the sub-balance of the first subset of data is increased. Conversely, if the sub-balance of the first subset of data is larger than the second threshold sub-balance, the transaction server computer system may issue a request for transfer of data representing an amount of monetary value from the first subset of data to the second subset of data.
- the transaction server computer system may define more than two threshold sub-balances. It may for instance assign each subset of data to a group and define a different pair of first and second threshold sub-balances to each group of subsets of data. It may also define a different pair of first and second threshold sub-balances to each subset of data. Accordingly, the transaction server computer system may be able to vary the sub-balances of each subset of data or group of subsets of data to define and populate the prioritized list of subsets of data or groups of subsets of data in an enhanced manner, thus possibly increasing the number of transactions the system is able to process per unit of time.
- the transaction server computer system may be configured to delete all subsets of data and create new subsets of data, the balance of each client's set of data being unaffected in the process.
- the transaction server computer system may be able to vary the sub-balances of some or all subsets of data without issuing requests for transactions between the subsets of data.
- the balance of the set of data may be divided into the sub-balances of the new subsets of data by the transaction server computer system according to any predefined or adaptable rule-set.
- transaction server computer system is configured to issue requests for transactions between subsets of data
- transaction server computer system is configured to delete all subsets of data and create new subsets of data.
- the latter embodiments may have the possible advantage of reduced processing capacity and time consumption necessary in relation to varying the sub-balances of the subsets of data.
- the transaction server computer system may be configured to issue requests for transfer of data representing an amount of monetary value to the first client's set of data, the number of requests and the amount of monetary value represented by the data requested to be transferred may be based on at least the balance of the set of data.
- the transaction server computer system may be able to vary the balance of the first client's set of data. Accordingly, the chance of the balance of the set of data reaching zero or near-zero balance may be reduced, which may increase the number of transactions the system is able to process per unit of time. The chance that the balance of the set of data becomes unnecessarily large may also be avoided.
- the requests may be sent to some external set of data representing an external amount of monetary value.
- the external set of data may be stored by the first client itself or it may alternatively be stored by an administrative authority server computer system, which may be controlled by, e.g., a central bank.
- the requests for transfer of data representing an amount of monetary value to the first client's set of data may be issued at predefined intervals in time, such as, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc.
- the computer network further comprises an administrative authority server computer system within which at least the first client has an account defining a real balance of monetary value, wherein the balance of monetary value represented by the set of data in the transaction server computer system mirrors the real balance of monetary value.
- the computer network comprises:
- embodiments of the system according to the present invention may thus comprise the administrative authority computer system.
- the first client may have an account defining a real balance of monetary value within the administrative authority computer system, and this account may be mirrored on the first client's set of data stored in the transaction computer system.
- mirroring the account on the set of data should be understood as comparing or equating the balance of real money defined by the account with the balance of monetary value represented by the set of data. Such mirroring may be carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set of data.
- Update of the real balance may be performed intermittently, i.e., after a certain number of requests has been processed by the transaction server computer system, thus causing latency delays only of updates of the real balances which need to occur only at intervals of, e.g., six hours, one hour or 15 minutes. The intervals may also be defined by accumulated transaction amounts, the number of transactions carried out, etc.
- the first client's account in the administrative authority computer system may be mirrored on to the first client's set of data only at given intervals.
- Mirroring of the account on to the set of data should preferably be carried out in order to ensure that the real balance at the administrative authority server computer system adequately reflects the balance represented by the set of data, as updated according to the requests, at the transaction server computer system.
- mirroring is preferably performed in relation with update of the real balance defined by the account.
- the step of mirroring may form part of the invention as claimed herein, or may be performed by a software component connected to the system according to the invention.
- the plurality of first secure tunnels and the at least one second secure tunnel may comprise one or more secured data gateways such as firewalls.
- the system may comprise secured data gateways at each end of the secure tunnels.
- the first secure tunnels may also comprise means for data encryption. In this case, some or all of the requests sent through the secure tunnels may be encrypted to reduce the risk of request interception by unauthorized external clients.
- the secured tunnels may comprise a packet filtering module in which certain filter instructions are applied to all data packets transmitted through the secured tunnels. This may improve the possibilities of authorized requests being transmitted and accepting, while unauthorized requests are rejected.
- the secure tunnels may also be configured to send a message to the computer at the other end of the tunnel to redirect to a proxy server of the tunnel.
- the computer at the other end of the tunnel may send a token and the request for the resource the proxy server. If the token is valid, the request is forwarded through the secure tunnel, otherwise, the computer at the other end of the secured tunnel must first be authenticated. This may also improve the possibilities of authorized requests being transmitted and accepting, while unauthorized requests are rejected.
- the computer network further comprises an administrative authority server computer system within which at least the first client has an account defining a real balance of monetary value, wherein the balance of monetary value represented by the set of data in the transaction server computer system mirrors the real balance of monetary value; and wherein:
- FIG. 1 illustrates an embodiment of a system for real-time transactions of data representing monetary value
- FIG. 2 illustrates an embodiment of a system for real-time transactions of data representing monetary value
- FIG. 3-5 illustrate flow charts of real-time transactions according to embodiments
- FIG. 6-7 illustrate systems according to embodiments.
- FIG. 8-10 illustrate systems according to embodiments.
- FIG. 1 illustrates a system 100 for real-time transactions of data representing monetary value between clients in a computer network.
- the transactions of data representing monetary value in the system cause transactions of monetary value.
- real-time transactions is to be understood as transactions being facilitated by the system in real-time as they are generated.
- Another common term for real-time transactions is instant payments.
- requests 102 for transactions of data representing an amount of monetary value is generated by a multitude of agents by way of local computer systems 104 .
- the requests are sent to a cloud 106 , e.g., the internet, and from the cloud 106 to a plurality of second clients 108 .
- Each second client has a firewall 110 a that requests 102 from the cloud 106 passes through.
- the firewalls 110 a improve the data security of the second clients and decrease the risk of fraudulent requests being transmitted from the cloud 106 to the second clients 108 .
- the requests 102 are forwarded through a data pathway comprising respective second client's firewall 110 b, respective secure tunnels 112 and a firewall 114 a at the other end of the secure tunnel 112 , the firewall 114 a being administered by the administrator of a server computer system 116 .
- Each second client 108 and each second client's firewalls 110 a and 110 b are administered by the respective second client's administrator.
- the server computer system 116 Upon receipt of the request 102 , the server computer system 116 reserves and updates the first clients' sets of data 118 in accordance with the requests. Each second client's set of data 118 is divided into a plurality of subsets of data. The plurality of subsets of data are reserved and then updated simultaneously in response to receipt of a plurality of requests 102 . It is achieved that a plurality of the requests 102 for update of the set of data 118 can be processed in parallel, i.e., at the same time. Thus, transaction speed is improved, and more updates per unit of time may thus be performed.
- a first processing unit processes receipt of the request 102 and instructs a second processing unit reserves and updates the subsets of data simultaneously. This further allows processing of requests to be handled in parallel with an increase in transaction speed and hardware utilisation as a result.
- the update of the first client's set of data 118 may in particular reside in drawing of monetary value from the first client's set of data 118 to reduce the balance of monetary value represented thereby.
- the request 102 for a transaction may reside in a request 102 from one of the second clients 108 to transfer or wire an amount of monetary value from the first client's set of data to a further set of data representing a monetary balance of the requesting second client 108 .
- each request 102 for transactions is compared to the balance of each subset of data to ensure that the amount of monetary value to be drawn does not exceed the sub-balance of the subset of the set of data to which the request in question is designated.
- the transaction server computer system 116 may be configured to decline a request in case the amount to be drawn exceeds the available balance of the first client's set of data 118 .
- the administrator of the server computer system 116 also administers the firewalls 114 a and 114 b associated with the server computer system 116 .
- the transaction server computer system 116 is configured to issue requests 122 for transfer of data representing an amount of monetary value to the first client's set of data 118 .
- the number of requests 122 and the amount of monetary value represented by the data requested to be transferred may be based on at least the balance of the set of data. Accordingly, the transaction server computer system 116 is able to vary the balance of the first client's set of data 118 .
- the chance of the balance of the set of data reaching zero or near-zero balance is then reduced, which increases the number of transactions the system 100 is able to process per unit of time. The chance that the balance of the set of data becomes unnecessarily large may also be avoided.
- the requests 122 are sent from the server computer system 116 through a data pathway comprising a firewall 114 b, a secured tunnel 120 and a firewall 123 a.
- the requests 122 are sent to respective first clients' account 124 representing an amount of monetary value.
- the accounts 124 are stored by an administrative authority server computer system 126 , which may be controlled by, e.g., a central bank.
- the administrator of the administrative authority server computer system 126 also administers the firewall 123 a associated with the administrative authority server computer system 126 .
- the first client's account 124 defines a real balance of monetary value within the administrative authority computer system 126 , and this account 124 is mirrored on the first client's set of data 118 stored in the transaction computer system 116 .
- mirroring the account 126 on the set of data 118 is carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set of data 118 .
- the requests 122 for transfer of data representing an amount of monetary value to the first client's set of data 118 are issued at predefined intervals in time, such as, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc.
- the risk of processing of fraudulent requests may be avoided or reduced.
- processing of fraudulent requests may only be possible in the unlikely event that administrators of the computer networks at both ends of the secure tunnel 120 contribute to the fraud.
- processing of fraudulent requests by the transaction server computer system 116 and the second clients 108 may be reduced or avoided.
- the clients are in the form of monetary institutions and in response to a first request, a first monetary institution acts as a first client and a second monetary institution acts as a second client. Whereas in response to a second request, the first monetary institution acts as a second client and the second monetary institution acts as a first client. That is, requests for transactions may be exchanged between all monetary institutions in the system.
- the monetary institutions 128 are able to act as both first clients 129 and second clients 108 .
- FIG. 2 illustrates a data communication pathway between the administrative authority server computer system 126 and the monetary institutions 128 .
- the transaction server computer system 116 is configured to issue requests 122 for transfer of data representing an amount of monetary value to the first client's set of data 118 at predefined intervals in time, and this may be done in relation to mirroring of the first client's set of data 118 and the first client's account 124 .
- the real balances of the accounts 124 are updated.
- a firewall 123 b respective secure tunnels 130 and firewalls 110 c of the monetary institutions 128 , requests 132 for update of the real balances of money represented by the first clients' accounts 124 are sent to the monetary institutions 128 acting as first clients 129 .
- the data pathways for the requests 122 comprising firewalls 110 c and 123 b and secure tunnels 130 are not linked to the transaction server computer system.
- FIGS. 3-5 illustrate flow-charts of the process of updating the first client's set of data 118 stored in a data structure of the transaction server computer system 116 .
- the set of data 118 is divided into a first subset of data 134 and a second subset of data 136 .
- a first request 102 a and a second request 102 for update of the first client's set of data 118 are received simultaneously.
- the two requests 102 a and 102 b are received from the same second client 108 a
- the first request 102 a is received from a first second 108 a
- the second request 102 b is received from a second client 108 b.
- the first request 102 a is forwarded 134 to the first subset of data 138
- the second request 102 b is forwarded 136 to the second subset of data 140
- the respective subsets of data 138 and 140 are then reserved in step 142 a and 142 b for respective requests 102 a and 102 b.
- steps 144 a and 144 b the subsets of data 138 and 140 are updated simultaneously.
- the subsets of data 138 and 140 are released in step 146 a and 146 b.
- the released subsets of data are available for further updates and the process of reserving 142 a, 142 b and updating 144 a, 142 b the subsets of data 138 and 140 may be repeated in response to further requests.
- a third request 102 c for update of the first client's set of data 118 is received from the second client 108 b while both subsets of data 138 and 140 are reserved for processing of the first request 102 a and the second request 102 b.
- the set of data 118 is updated according to a predefined auxiliary updating scheme in response to receipt of the third request 102 c.
- the predefined auxiliary updating scheme is to store the third request 102 c and to determine if the first and second subsets of data 138 and 140 are reserved at predefined intervals in time.
- the predefined intervals in time may be on, e.g., the microsecond scale, millisecond scale or second scale.
- the transaction server computer system 116 may then continue to determine if the first and second subsets of data 138 and 140 are reserved until at least one of the first and second subsets of data 138 and 140 is released. At this point, the released subset of data is reserved for the third request 102 c.
- FIG. 6 illustrates a system wherein the transaction server computer system 116 stores the first client's set of data 118 in a data structure comprising eight subsets of data 138 , 140 , 148 - 158 .
- the transaction server computer system 116 In response to receipt of the first request 102 a, the transaction server computer system 116 simultaneously reserve three subsets of data 138 , 140 and 148 defining sub-balances large enough for the accumulated sub-balances of the reserved subsets of data 138 , 140 and 148 to be at least as large as the amount of monetary value represented by the data requested to be transferred by the first request 102 a.
- the transaction server computer system 116 then divides the first request 102 a into a first set of sub-requests 160 with three sub-requests and updates the three subsets of data 138 , 140 and 148 in accordance with the first set of sub-requests 160 . Accordingly, in response to receipt of the second request 102 b, the transaction server computer system 116 generates a second set of sub-requests 162 with two sub-requests and reserves and updates the fourth and fifth subsets of data 150 and 152 in accordance with the second set of sub-requests 162 .
- the transaction server computer system 116 could also reserve and update, e.g., the second subset of data 140 , the fifth subset of data 152 and the seventh subset of data 158 in accordance with the first set of sub-request 160 , while reserving and updating other subsets of data in accordance with the second set of sub-requests. Moreover, the transaction server computer system 116 may reserve and update any combination of subsets of data in accordance with any set of sub-requests as long as the set of sub-requests and the combination of subsets of data conforms to the rules laid out just above for the transaction server computer system 116 .
- FIG. 7 illustrates a system 100 wherein the transaction server computer system 116 is configured to generate and populate a prioritized list of seven subsets of data 138 , 140 , 148 - 156 .
- the prioritized list is generated and populated with subsets of data with increasingly large balances so that the first subset of data 138 represents a balance of monetary units smaller than the balance of the second subset of data 140 .
- the balance of the second subset of data 140 is smaller than the balance of the third subset of data 148 , and so forth.
- a first request 102 a for transaction of data representing a relatively large amount of monetary unit is forwarded to the set of data 118 .
- the transaction server computer system 116 then divides the request 102 a into a first set of sub-requests 160 .
- the transaction server computer system 116 reserves and updates the sixth and seventh subsets of data 154 and 156 in accordance with the first set of sub-requests 160 . Accordingly, in response to receipt of a second request 102 b for transaction of data representing a relatively small amount of monetary units, the transaction server computer system 116 reserves and updates the first and second subsets of data 138 and 140 .
- the transaction server computer system 116 is then able to preferentially reserve the subsets of data with the largest sub-balances in response to receipt of the first request 102 a for transaction of data representing a first amount of monetary value which is larger than a second amount of monetary value of the second request 102 b.
- the transaction server computer system 116 is also able to preferentially reserve the subsets of data with the smallest sub-balances of the subsets of data 138 , 140 , 148 - 156 in response to receipt of the second request 102 b for transaction of data representing the second amount of monetary value which is smaller than the first amount of monetary value of the first request 102 a.
- FIGS. 8-10 illustrate systems 100 wherein the transaction server computer system 116 stores the subsets of data 138 , 140 , 148 and 150 associated with the first client on two different server computers 164 and 166 .
- the first and second subsets 138 and 140 are stored on a first server computer 164 and third and fourth subsets of data 148 and 150 are stored on a second server computer 166 .
- the transaction server computer system 116 comprises a second processing unit, which in turn comprises multiple CPUs.
- the first server computer 164 comprises a first CPU handling reservation and update of the first and second subsets 138 and 140
- the second server computer 166 comprises a second CPU handling reservation and update of the third and fourth subsets of data 148 and 150 .
- the first request 102 a is received from the first second client 108 a and forwarded to the first server computer 164 and the first subset of data 138 is reserved and updated in accordance with the first request 102 a.
- the second request 102 b is received from the second client 102 b and forwarded to the second server computer 166 and the third subset of data 148 is reserved and updated accordance with the second request 102 b.
- the first request 102 a is received from the first second client 108 a and forwarded to the first server computer 164 and the first subset of data 138 is reserved and updated in accordance with the first request 102 a.
- the second request 102 b is received from the second client 102 b and forwarded to the first server computer 164 and the second subset of data 148 is reserved and updated accordance with the second request 102 b.
- the first and second requests 102 a and 102 b are received from the first second client 108 a.
- the first request 102 a is forwarded to the first server computer 164 and the first subset of data 138 is reserved and updated in accordance with the first request 102 a.
- the second request 102 b is forwarded to the second server computer 166 and the third subset of data 148 is reserved and updated accordance with the second request 102 b.
- the systems 100 embodied in FIGS. 8-10 may be configured to a request into a set of a plurality of sub-requests 160 .
- no set of sub-requests 160 is processed on more than one server computer.
- test 1 and test 2 are not embodiments of the present invention.
- Test 3 was performed in a test environment emulating a system for facilitating real-time transactions according to an embodiment of the invention. All tests are performed on the same computer system with the same hardware configuration for each test.
- the raw data of all three tests are reported in Table 1 below.
- the column ‘No. of Part.’ denotes the number of clients, wherein each client may act as both a first and second client.
- the column ‘Slices’ denotes the number of subsets of data each second client's set of data is divided into.
- Counter is the total number of updates of second clients' sets of data, which corresponds to transactions of monetary value as described above.
- the ‘Duration’ is measured in seconds and the ‘Throughput’ is measured in updates, i.e., transactions per second [tx/s].
- embodiments of the invention can handle the same number of transactions as systems known in the art, but with significantly less computing power. Accordingly, embodiments of the present invention decreases the demand on hardware. Further, by recording the CPU load during the tests, it is seen that the energy consumption for handling the same number of transactions was significantly lower in test 3 than in test 2 due to the more efficient handling of the requests and updates. Accordingly, embodiments of present invention optimise energy consumption further reducing the demand on resources.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
- The present invention relates to a system for facilitating real-time transactions of data representing monetary value between clients in a computer network, and in particular to network and server architecture enabling fast and secure execution of high numbers of such transactions within short time frames.
- The evolution of communications infrastructure, including the Internet and mobile telecommunications systems has resulted in the development of new platforms for effecting monetary transactions. The number of non-cash payments is steadily increasing, credit card transactions being effected not only via credit card terminals but also via Internet service such as PayPal®, smartphone applets, or similar systems. Still today, however, transactions are often not effected immediately, i.e., real-time, but with a delay of, typically, one banking day. Frequently, data representative of transactions are collected centrally within IT systems of banks, card suppliers or other entities throughout a certain period of time, such as one day, following which net amounts of monetary value are transferred between bank accounts, possibly through an intermediary authority, such as a central bank or other trusted party.
- The present invention is concerned with a system allowing transactions between consumers, businesses and banks to be effected real-time. Embodiments of the invention seek to bring about a network and server architecture enabling fast and secure real-time execution of high numbers of monetary transactions.
- In a first aspect, embodiments provide a system for facilitating real-time transactions of data representing monetary value between clients in a computer network comprising at least one first client and a transaction server computer system, the first client being associated with a set of data representing a balance of monetary value, the set of data being stored in the transaction server computer system, wherein the transaction server computer system is configured for receiving requests for transactions of data representing an amount of monetary value, via the computer network, from a plurality of second clients for real-time updates of the first client's set of data, and wherein the transaction server computer system is configured to:
- store the first client's set of data in a data structure, wherein the data structure comprises at least a first subset of the first client's set of data and a second subset of the first client's set of data, each subset of data defining a sub-balance representing an amount of monetary value;
- reserve each of the first and second subsets of data for a respective first and second one of the requests upon receipt of the requests;
- update the first subset of data in accordance with the first request, and simultaneously update the second subset of data in accordance with the second request.
- By dividing the set of data representing the balance of monetary value into first and second subsets and by updating the first and second subsets simultaneously, it is achieved that two of the requests for update of the set of data can be processed in parallel, i.e., at the same time. Thus, transaction speed is improved, and more updates per unit of time may thus be performed. The update of the first client's subset of data may in particular reside in drawing of monetary value from the first client's set of data to reduce the balance of monetary value represented thereby. For example, the request for a transaction may reside in a request from one of the second clients to transfer or wire an amount of monetary value from the set of data to a further set of data representing a monetary balance of the requesting second client. In one embodiment of the invention, each request for transactions is compared to the balance of each subset of data to ensure that the amount of monetary value to be drawn does not exceed the sub-balance of the subset of the set of data to which the request in question is designated. Alternatively, or additionally, the transaction server computer system may be configured to decline a request in case the amount to be drawn exceeds the available balance of the set of data.
- Further, increase in transaction speed may be achieved without changing the computer hardware configuration of the system for transactions. This has several tangible effects in the physical world outside the bits and bytes of a computer system. Firstly, embodiments of the invention may handle the same number of transactions as systems known in the art, but with significantly less computing power. Accordingly, embodiments of the present invention may decrease the demand on hardware. Further, by more efficient handling of the requests for transactions and updates, the energy consumption may be reduced by embodiments of the invention further reducing the demand on resources.
- Clients may include computer networks of monetary institutions such as banks. The computer networks of the monetary institutions may comprise at least one secured gateway, such as a firewall, for establishing secured data communication gateways. Such secured data communication gateways are advantageously situated between the computer networks of the clients and any external computers. In case the clients are banks, the transactions of data representing monetary value happen between banks. Such transactions may be referred to as bank to bank transfers.
- The plurality of second clients may receive requests for transactions from external clients. Such external clients may be computers on an external network such as the internet. The computers may be operated by the second clients' costumers being e.g., individual persons or companies. The transactions may also be generated from computers within the computer network of third party money handlers specialized in facilitating money transfers. The requests for transactions may also be generated within the computer networks of the individual second clients.
- The transaction server computer system may be a central server, e.g., at regional, national or supranational level, administered by a trusted third party, such as a central bank. Alternatively, it may be a further party trusted by the monetary institutions and a central bank. As another alternative, the transaction server computer may solely be the further party trusted by the monetary institutions.
- In addition to the transaction server computer system, embodiments of the system according to the present invention may comprise an administrative authority computer system. In such embodiments, the first client may have an account defining a real balance of monetary value within the administrative authority computer system, and this account may be mirrored on the first client's set of data stored in the transaction computer system. In the present context, mirroring the account on the set of data should be understood as comparing or equating the balance of real money defined by the account with the balance of monetary value represented by the set of data. Such mirroring may be carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set of data.
- By performing the update in accordance with the requests for transactions at the mirrored set of data, latency delays caused by update of the real balance of the accounts of the monetary institutions at the administrative authority computer system may be reduced or avoided. Accordingly, by mirroring the real data and the set of data at the transaction server computer system, a further increase of transaction speed may be achieved. Update of the real balance may be performed intermittently, i.e., after a certain number of requests has been processed by the transaction server computer system, thus causing latency delays only of updates of the real balances which need to occur only at intervals of, e.g., six hours, one hour or 15 minutes. The intervals may also be defined by accumulated transaction amounts, the number of transactions carried out, etc.
- Similarly, the first client's account in the administrative authority computer system may be mirrored on the first client's set of data only at given intervals. Mirroring of the account on to the set of data should preferably be carried out in order to ensure that the real balance at the administrative authority server computer system adequately reflects the balance represented by the set of data, as updated according to the requests, at the transaction server computer system. As such, mirroring is preferably performed in relation to update of the real balance defined by the account. The step of mirroring may form part of the invention as claimed herein, or may be performed by a software component connected to the system according to the invention.
- In present context, the term real-time transactions refer to transactions that are processed as they are received. As a consequence, requests for updates of data representing monetary value are not accumulated over time and subsequently processed in bundles of accumulated requests, but rather the requests are individually processed by the transaction server computer system, preferably one by one. In this way, each request for update of data representing monetary value may cause the set of data to be updated and the balance represented by the set of data to change. Real-time transactions may also be referred to as instant payments.
- The data structure of the transaction server computer system, wherein the first client's set of data is stored, comprises at least the first subset of the first client's set of data and the second subset of the first clients set of data. The data structure may also comprise a larger number of subsets of data such as, e.g., three, four, five, eight, ten, 15 or 20. The amount of monetary value represented by the accumulated sub-balances of the subsets of data may be equal to the monetary value represented by the set of data. The data structure wherein the first client's set of data is stored may be physically stored in a memory of a single server computer or at least two server computers of the transaction server computer system.
- In the embodiment as above, when the transaction server computer system receives a plurality of requests for updates of the first client's set of data, the transaction server computer system reserves the first subset of data for the first one of the requests and reserves the second subset of data for the second one of the requests. The reserved first and second subsets of data are preferably unavailable for update in accordance with any request other than the request they are reserved for. By reserving a subset of data for a particular request for update, it is ensured that the reserved subset of data is only updated in accordance with one of the requests at a time. The transaction server computer system may be configured to determine if the envisaged update of the reserved subset of data will cause the sub-balance represented by the reserved subset of data to become negative. In this case, it may be determined at the point in time when a subset is reserved for the first or second one of the requests, if the update in response to the first or second one of the requests should be allowed. It is then possible to notify the sender of the first or second request, i.e., the second client, if the transaction is allowable or if it will be rejected even before the set of data is updated.
- After the first subset of data has been reserved for update according to the first one of the requests and the second subset of data has been reserved for update according to the second one of the requests, the first and second subsets of data are updated simultaneously. The simultaneous update of the first and second subsets of data may allow the first client's set of data to be updated in response to more than one request at a time. As also described above, this will increase the rate at which requests for update of the first client's set of data is able to be processed by the system. Once either one of the first or second subset of data has been updated there is no longer need for the respective subset of data to be reserved. Accordingly, a subset of data may be released once it has been updated so that it is available for further updates.
- The transaction server computer system may be configured to update more than one subset of data in accordance with a single request for update of the first clients set of data.
- The computer network may comprise a plurality of first clients, each first client being associated with a respective set of data.
- The transaction server computer system may comprise:
- a first processing unit for processing receipt of the requests for transactions; and
- a second processing unit for reserving each of the first and second subsets of data for the respective first and second ones of the requests upon receipt of the requests, and for updating the first subset of data in accordance with the first request, and for simultaneously updating the second subset of data in accordance with the second request;
- wherein the first processing unit is further configured to instruct the second processing unit to store the first client's set of data in the data structure, reserve each of the first and second subsets of data for the respective first and second ones of the requests upon receipt of the requests, and to update the first subset of data in accordance with the first request, and to simultaneously update the second subset of data in accordance with the second request.
- The dedicated first and second processing units allow for parallel processing of handling of receipt of requests by the first processing unit and updating first and second subsets of data by the second processing unit enabling overcoming of potential bottlenecks, and consequently more updates per unit time may be achieved. More specifically, this may allow the first processing unit to handle receipt of requests even if the second processing is fully or almost fully occupied by updating the first and second subsets of data. Similarly, this may allow the second processing unit to update the first and second subsets of data even if the first processing unit is fully or almost fully occupied handling receipt of requests.
- Further, such embodiments allow the first processing unit and the second processing unit to be configured to have individual computing capacities and possibly to have computing capacities chosen so as to optimize the work load balancing between the first and second processing units. This allows the transaction server computer system to be further optimized in way that minimizes the amount of time the first processing unit may have to wait for the second processing unit to finish and vice versa.
- The first processing unit and second processing units are preferably separate CPUs or separate CPU cores.
- The second processing unit may be a parallel processing unit comprising multiple cores in a single CPU or multiple CPUs. This allows for parallel processing of multiple subsets of data simultaneously on individual CPUs or CPU cores enabling more updates per unit time to be achieved.
- Each of the subsets of data may be processed at a dedicated one of the CPUs or CPU cores of the parallel processing unit, so that each subset of data is processed by one of the processors or processor cores different from any other one of the processors or processor cores. In this case, each of the CPUs or CPU cores is preferably dedicated to process a single subset of data. Accordingly, processing of each subset of data may be performed with little or no impact on the processing of other subsets of data. This may further increase the number of updates per unit time achieved.
- The transaction server computer system may be configured to determine, upon receipt of a third one of the requests, if the first and second subsets of data are reserved, and in the affirmative, perform an update of the set of data according to a predefined auxiliary updating scheme. In this case, the transaction server computer is configured to handle the case when the third one of the requests for update of the first client's set of data is received before updates according to the first and second one of the requests are completed.
- The predefined auxiliary updating scheme may be to store the third one of the requests and to determine if the first and second subsets of data are reserved at predefined intervals in time. The predefined intervals in time may be on, e.g., the microsecond scale, millisecond scale or second scale. The transaction server computer system may then continue to determine if the first and second subsets of data are reserved until at least one of the first and second subsets of data is not reserved. At this point, the at least one of the unreserved subsets of data is reserved for the third one of the requests.
- In case the data structure comprises three subsets of data, the predefined auxiliary updating scheme may be to determine if the third subset of data is reserved. If the third subset of data is not reserved, the third subset of data may be updated according to the third request. If the third subset of data is reserved and in case the data structure comprises four subsets of data, the predefined updating scheme may be to determine if the fourth subset of data is reserved. This auxiliary updating scheme may be applied in systems wherein the data structure comprises any number of subsets of data larger than two. In this case, the system is potentially able to simultaneously process as many requests for update of the first client's set of data as the number of subsets of data the data structure comprises.
- The transaction server computer system may be configured to:
- determine, upon reservation of the first subset of data for one of the requests, if an envisaged update of the reserved subset of data in response to that request would cause the sub-balance of the reserved subset of data to become negative;
- if it is determined that the sub-balance of the reserved subset of data would become negative: divide the request into a first set of a plurality of sub-requests, reserve the second subset of data, and update the first and second subsets of data simultaneously in accordance with the plurality of sub-requests.
- In this case, the request may be processed by the system even if the amount of monetary value represented by the data to be transferred exceeds the amount of monetary value represented by the sub-balance of the reserved subset of data. According to this embodiment, each sub-request of the first set of sub-requests is for transaction of data representing a sub-amount of monetary value. The accumulated sub-amounts of the sub-requests are equal to the amount of monetary value represented by the data requested to be transferred by the request, from which the sub-requests are derived. Accordingly, the request is split between the first subset of data and the second subset of data. In case the data structure comprises more than two subsets of data, more than two subsets of data may be reserved and then updated simultaneously in accordance with the plurality of sub-requests.
- The transaction server computer system may be configured to:
- determine the sub-balances of a plurality of subsets of data in response to receipt of one of the requests;
- simultaneously reserve a number of subsets of data defining sub-balances large enough for the accumulated sub-balances of the reserved subsets of data to be at least as large as the amount of monetary value represented by the data requested to be transferred;
- divide the request into a second set of sub-requests, the number of sub-requests in the second set of sub-requests being equal to the number of reserved subsets of data;
- update the reserved subsets of data simultaneously in accordance with the second set of sub-requests.
- In this case, the request may be processed by the system even if the amount of monetary value represented by the data to be transferred exceeds the amount of monetary value represented by the sub-balance of any one of the subsets of data. Furthermore, because the number of subsets of data necessary to process the request without any one of the sub-balances becoming negative is reserved simultaneously, it may be ensured that if any subset of data is reserved for the request, all the subsets of data necessary for processing the request are reserved. Accordingly, it may be avoided that any one of the subsets of data is reserved for the request without the request being able to be processed.
- According to this embodiment, each sub-request of the second set of sub-requests is for transaction of data representing a sub-amount of monetary value. Also, the accumulated sub-amounts of the sub-requests of the second set of sub-requests are equal to the amount of monetary value represented by the data requested to be transferred by the request the sub-requests are generated from. Furthermore, the request is divided into the second set of sub-requests in such a manner that each sub-amount is no larger than the sub-balance of a designated one of the reserved subsets of data.
- The transaction server computer system may be configured to change the number of subsets of data stored in the data structure based on an evaluation of the number of received requests within a specified period of time.
- According to this embodiment, the transaction computer system is configured to optimize the number of subsets in the data structure. In general, as the number of subsets of data in the data structure increases, the need for maintenance of the data structure increases. Moreover, for example the data integrity of each subset of data should be ensured, data communication to and from each subset of data should be possible and the first client's set of data increases in complexity with an increasing number of subset of data. On the other hand, as the number of subsets of data in the data structure increases, the number of requests the system can process simultaneously also increases. Thus, an optimum number of subsets of data in the data structure may exist and the transaction server computer system may be configured to vary the number of subsets of data on the basis of predefined or pre-set user setting, or on the basis of a determination of requests, available computational resources, such as CPU power or memory availability, computational load, etc., preferably with a view to approaching the optimum number.
- The evaluation may include a comparison of the number of received requests within a specified period of time with a first threshold number and a second threshold number. In this case, if the number of received requests is larger than the first threshold number, the transaction server computer system is configured to increase the number of subsets of data. Accordingly, if the number of received requests is smaller than the second threshold number, the transaction server computer system may be configured to decrease the number of subsets of data. The first threshold number may be equal to are larger than the second threshold number. The closer the two threshold numbers are to each other, the more often the number of subsets of data is changed and the more likely it is that the number of subsets corresponds to a suitable number of subsets based on the evaluation.
- The specified period of time may be a recently elapsed period of time. In this case, the number of subsets may be set (optimized) with respect to the current need for request processing. The specified period of time may alternatively be a period of time in the past, e.g., a period that ended one year ago, one month ago or one day ago. In this case, the number of subsets may be varied (optimized) in accordance with previously observed trends in request processing needs that may reoccur.
- The transaction server computer system may be configured to change the number of subsets of data stored in the data structure based on an evaluation of the amount of monetary value represented by the data requested to be transferred within a specified period of time. This allows the transaction server computer, e.g., reduce the number of subset of data if first share of the requests received are for amounts larger than a first threshold amount or increase the number of subsets of data if a second share of the requests received are for amounts smaller than a second threshold amount. This may increase the number of transactions the system is able to handle per unit of time.
- The transaction server computer system may be configured to:
- determine the sub-balances of each of the plurality of subsets of data at predetermined intervals;
- generate and populate a prioritized list of the subsets of data, wherein the prioritized list ranks the subsets or groups of the subsets according to their associated sub-balances;
- select one of the subsets or groups of subsets in the prioritized list for each one of the requests on the basis of the prioritized list;
- assign each of the requests to the selected subset or groups of subsets; and subsequently update at least one of the subsets of data of the selected subset or groups of the subsets in accordance with each one of the requests.
- In this case, the transaction server computer system may be able to preferentially reserve the subsets of data with the largest sub-balances in response to receipt of requests for transactions of data representing first amounts of monetary value which are larger than second amounts of monetary value of other requests. Conversely, the transaction server computer system may also be able to preferentially reserve the subsets of data with the smallest sub-balances of the subsets of data in response to receipt of requests for transactions of data representing third amounts of monetary value which are smaller than fourth amounts of monetary value of other requests. Accordingly, the number of subsets of data reserved to process a request for data representing a relatively large amount of monetary value may be reduced. Furthermore, the subsets of data with the smallest sub-balances may be allowed to process requests for relatively small amounts without a few requests for relatively large amounts reserving a large number of the subsets with the smallest sub-balances. Accordingly, the amount of monetary value represented by the set of data may be reduced.
- The transaction server computer system may also be able assign requests to a prioritized sequence of subsets or groups of subsets in the prioritized list. For instance, upon receipt of a request for a first amount of monetary value larger than second amounts of monetary, the transaction server computer may assign the plurality of sub-requests derived from the request to the unreserved subsets of data with the largest sub-balances at the time of reservation of subsets for the plurality of sub-requests. This may further reduce the number subsets reserved to process a request for data representing a relatively large amount of monetary value may be reduced.
- The second and fourth amounts of monetary value may be varied to change what subsets of data on the prioritized list are being preferentially reserved for requests representing certain amounts of monetary value. The second and fourth amounts may be varied in response to, e.g., variation in the sub-balances of the subsets of data on the prioritized list, the average amount of monetary value represented by requests received within the specified interval or the minimum and/or maximum amount of monetary value represented by requests received within the specified interval.
- The specified interval according to this embodiment may be intervals defined by, e.g., the number of requests received, the accumulated request amounts, the accumulated request amounts, the number of transactions carried out, etc.
- The transaction server computer system may comprise a plurality of individual data storage units, and wherein each subset of data is stored in an individual data storage unit. This may decrease the time it takes to update each subset of data because each data storage unit only has to update one subset of data at a time.
- The transaction server computer system may comprise a plurality of server computers, in which case all data associated with the first client is preferably stored in a single server computer. In case this case all requests for update of the first client's set of data are sent to the single server computer. Also, the data structure and thus the subsets of data are stored in the single server computer. Accordingly, it may be avoided that communication between server computers is necessary to, e.g., determine sub-balances of the subsets of data, determine the balance of the set of data from the accumulated sub-balances of the subsets of data, update the subsets of data in accordance with the plurality of sub-requests or generate and populate the prioritized list of the subsets of data. Thus, the number of requests processed per unit of time may be increased. The single server computer may store data associated with the first client only. In this case, each server computer is dedicated a single first client even of the computer network comprises a plurality of first clients. Accordingly, each server computer only handles requests for updates of the single client's set of data. Thus, data traffic for requests for updates of a plurality of first clients' sets of data is split between a plurality of server computers and the chance of data traffic bottlenecks occurring in the system may be reduced.
- The subsets of data associated with the first client may be stored on at least two server computers, in which case no set of sub-requests is processed on more than one server computer. According to this embodiment, at least the first and second subsets of data are stored on a first server computer and at least a third and fourth subset of data are stored on a second server computer. This allows the totality of requests for update of the single client's set of data to be split between at least two server computers. Accordingly, each server computer receives a smaller number of requests for update of the first client's set of data. Thus, the number of requests processed per unit of time may be increased. Furthermore, because no set of sub-requests is processed on more than one server computer, less communication between the at least two server computers may be required upon receipt of a single request.
- The transaction server computer system may be configured to determine the sub-balances of all subsets of data at predefined intervals in time. Based on the determined sub-balances of all the subsets of data, the transaction server computer system may be able to determine if, e.g., sub-balances of subsets of data are different from a threshold sub-balance interval preferably have their sub-balances adjusted, the balance of the set of data is different from a threshold balance interval and preferably have the balance adjusted, etc. Accordingly, the transaction server computer system may be able to improve operation of the system.
- The intervals in time may be, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc.
- The transaction server computer system may be configured to issue requests for transfer of data representing an amount of monetary value between subsets of data of the first client's set of data based on at least the sub-balances of the subsets of data. In this case, the transaction server computer system may be able to vary the sub-balances of the subsets of data and possibly even out differences between the individual sub-balances of individual subsets of data. This may increase the number transactions processed per unit of time as the chance of subsets of data reaching zero or near-zero balance may be reduced.
- The transaction server computer system may define at least a first and a second threshold sub-balance. In this case, if the sub-balance of the first subset of data is smaller than the first threshold sub-balance, the transaction server computer system may issue a request for transfer of data representing an amount of monetary value from the second subset of data to the first subset of data. Hereby the sub-balance of the first subset of data is increased. Conversely, if the sub-balance of the first subset of data is larger than the second threshold sub-balance, the transaction server computer system may issue a request for transfer of data representing an amount of monetary value from the first subset of data to the second subset of data. This may allow the transaction server computer system to decrease the number of subsets of data with zero or near-zero sub-balances. It may also prevent subsets of data from having unnecessarily large sub-balances. Similar functionality is readily conceivable if the data structure comprises more than two subsets of data.
- The transaction server computer system may define more than two threshold sub-balances. It may for instance assign each subset of data to a group and define a different pair of first and second threshold sub-balances to each group of subsets of data. It may also define a different pair of first and second threshold sub-balances to each subset of data. Accordingly, the transaction server computer system may be able to vary the sub-balances of each subset of data or group of subsets of data to define and populate the prioritized list of subsets of data or groups of subsets of data in an enhanced manner, thus possibly increasing the number of transactions the system is able to process per unit of time.
- The transaction server computer system may be configured to delete all subsets of data and create new subsets of data, the balance of each client's set of data being unaffected in the process. In this case, the transaction server computer system may be able to vary the sub-balances of some or all subsets of data without issuing requests for transactions between the subsets of data. The balance of the set of data may be divided into the sub-balances of the new subsets of data by the transaction server computer system according to any predefined or adaptable rule-set. Accordingly, some or all the advantages described with respect to embodiments wherein the transaction server computer system is configured to issue requests for transactions between subsets of data may apply to embodiments wherein the transaction server computer system is configured to delete all subsets of data and create new subsets of data. The latter embodiments may have the possible advantage of reduced processing capacity and time consumption necessary in relation to varying the sub-balances of the subsets of data.
- The transaction server computer system may be configured to issue requests for transfer of data representing an amount of monetary value to the first client's set of data, the number of requests and the amount of monetary value represented by the data requested to be transferred may be based on at least the balance of the set of data. In this case, the transaction server computer system may be able to vary the balance of the first client's set of data. Accordingly, the chance of the balance of the set of data reaching zero or near-zero balance may be reduced, which may increase the number of transactions the system is able to process per unit of time. The chance that the balance of the set of data becomes unnecessarily large may also be avoided. This may reduce any cost the first client may have in relation to making the amount of monetary value represented by the balance of the first client's set of data available to the system. The requests may be sent to some external set of data representing an external amount of monetary value. The external set of data may be stored by the first client itself or it may alternatively be stored by an administrative authority server computer system, which may be controlled by, e.g., a central bank.
- The requests for transfer of data representing an amount of monetary value to the first client's set of data may be issued at predefined intervals in time, such as, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc.
- According to embodiments, the computer network further comprises an administrative authority server computer system within which at least the first client has an account defining a real balance of monetary value, wherein the balance of monetary value represented by the set of data in the transaction server computer system mirrors the real balance of monetary value. In such embodiments the computer network comprises:
- a plurality of first secure tunnels, each of which connects one of the clients to the transaction server computer system for passing the requests from the second clients to the transaction server computer system;
- at least one second secure tunnel, which connects the transaction server computer system to the administrative authority server computer system for mirroring the real balance of monetary value at the administrative authority server computer system and the balance represented by the set of data at the transaction server computer system.
- In addition to the transaction server computer system, embodiments of the system according to the present invention may thus comprise the administrative authority computer system. In such embodiments, the first client may have an account defining a real balance of monetary value within the administrative authority computer system, and this account may be mirrored on the first client's set of data stored in the transaction computer system. In the present context, mirroring the account on the set of data should be understood as comparing or equating the balance of real money defined by the account with the balance of monetary value represented by the set of data. Such mirroring may be carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set of data.
- By performing the update in accordance with the requests for transactions at the mirrored set of data, latency delays caused by update of the real balance of the accounts of the monetary institutions at the administrative authority computer system may be reduced or avoided. Accordingly, by mirroring the real data and the set of data at the transaction server computer system, a further increase of transaction speed may be achieved. Update of the real balance may be performed intermittently, i.e., after a certain number of requests has been processed by the transaction server computer system, thus causing latency delays only of updates of the real balances which need to occur only at intervals of, e.g., six hours, one hour or 15 minutes. The intervals may also be defined by accumulated transaction amounts, the number of transactions carried out, etc.
- Similarly, the first client's account in the administrative authority computer system may be mirrored on to the first client's set of data only at given intervals. Mirroring of the account on to the set of data should preferably be carried out in order to ensure that the real balance at the administrative authority server computer system adequately reflects the balance represented by the set of data, as updated according to the requests, at the transaction server computer system. As such, mirroring is preferably performed in relation with update of the real balance defined by the account. The step of mirroring may form part of the invention as claimed herein, or may be performed by a software component connected to the system according to the invention.
- The plurality of first secure tunnels and the at least one second secure tunnel may comprise one or more secured data gateways such as firewalls. For instance, the system may comprise secured data gateways at each end of the secure tunnels. The first secure tunnels may also comprise means for data encryption. In this case, some or all of the requests sent through the secure tunnels may be encrypted to reduce the risk of request interception by unauthorized external clients. The secured tunnels may comprise a packet filtering module in which certain filter instructions are applied to all data packets transmitted through the secured tunnels. This may improve the possibilities of authorized requests being transmitted and accepting, while unauthorized requests are rejected. The secure tunnels may also be configured to send a message to the computer at the other end of the tunnel to redirect to a proxy server of the tunnel. In this case, the computer at the other end of the tunnel may send a token and the request for the resource the proxy server. If the token is valid, the request is forwarded through the secure tunnel, otherwise, the computer at the other end of the secured tunnel must first be authenticated. This may also improve the possibilities of authorized requests being transmitted and accepting, while unauthorized requests are rejected.
- According to embodiments, the computer network further comprises an administrative authority server computer system within which at least the first client has an account defining a real balance of monetary value, wherein the balance of monetary value represented by the set of data in the transaction server computer system mirrors the real balance of monetary value; and wherein:
- the first and second clients are configured to be administered by respective client administrators; the administrative authority server computer system is configured to be administered by an authority administrator different from the client administrators, and
- the transaction server computer system is configured to be administered by a trusted third party different from client administrators and the authority administrator;
- and wherein the computer network comprises:
- a plurality of first secure tunnels, each of which connects one of the clients to the transaction server computer system for passing the requests from the second clients to the transaction server computer system;
- at least one second secure tunnel, which connects the transaction server computer system to the administrative authority server computer system for mirroring the real balance of monetary value at the administrative authority server computer system and the balance represented by the set of data at the transaction server computer system.
- By having administrators administering the first and second clients, different from the administrators of the administrative authority server computer system, the risk of processing of fraudulent requests may be avoided or reduced. With the secure tunnels in place, processing of fraudulent requests may only be possible in the unlikely event that administrators of the computer networks at both ends of the secure tunnels contribute to the fraud. Similarly processing of fraudulent requests by the transaction server computer system and the clients may be reduced or avoided.
- Embodiments of the invention will now be described in further described with reference to the accompanying drawings, in which:
-
FIG. 1 illustrates an embodiment of a system for real-time transactions of data representing monetary value; -
FIG. 2 illustrates an embodiment of a system for real-time transactions of data representing monetary value; -
FIG. 3-5 illustrate flow charts of real-time transactions according to embodiments; -
FIG. 6-7 illustrate systems according to embodiments; and -
FIG. 8-10 illustrate systems according to embodiments. - It should be understood that the detailed description and specific example, while indicating an embodiment, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.
-
FIG. 1 illustrates asystem 100 for real-time transactions of data representing monetary value between clients in a computer network. The transactions of data representing monetary value in the system cause transactions of monetary value. In present context, the term real-time transactions is to be understood as transactions being facilitated by the system in real-time as they are generated. Another common term for real-time transactions is instant payments. - In the embodiment illustrated in
FIG. 1 ,requests 102 for transactions of data representing an amount of monetary value is generated by a multitude of agents by way oflocal computer systems 104. The requests are sent to acloud 106, e.g., the internet, and from thecloud 106 to a plurality ofsecond clients 108. Each second client has afirewall 110 a that requests 102 from thecloud 106 passes through. Thefirewalls 110 a improve the data security of the second clients and decrease the risk of fraudulent requests being transmitted from thecloud 106 to thesecond clients 108. From respectivesecond clients 108, therequests 102 are forwarded through a data pathway comprising respective second client'sfirewall 110 b, respectivesecure tunnels 112 and afirewall 114 a at the other end of thesecure tunnel 112, thefirewall 114 a being administered by the administrator of aserver computer system 116. Eachsecond client 108 and each second client's 110 a and 110 b are administered by the respective second client's administrator.firewalls - Upon receipt of the
request 102, theserver computer system 116 reserves and updates the first clients' sets ofdata 118 in accordance with the requests. Each second client's set ofdata 118 is divided into a plurality of subsets of data. The plurality of subsets of data are reserved and then updated simultaneously in response to receipt of a plurality ofrequests 102. It is achieved that a plurality of therequests 102 for update of the set ofdata 118 can be processed in parallel, i.e., at the same time. Thus, transaction speed is improved, and more updates per unit of time may thus be performed. In embodiments, a first processing unit processes receipt of therequest 102 and instructs a second processing unit reserves and updates the subsets of data simultaneously. This further allows processing of requests to be handled in parallel with an increase in transaction speed and hardware utilisation as a result. - The update of the first client's set of
data 118 may in particular reside in drawing of monetary value from the first client's set ofdata 118 to reduce the balance of monetary value represented thereby. For example, therequest 102 for a transaction may reside in arequest 102 from one of thesecond clients 108 to transfer or wire an amount of monetary value from the first client's set of data to a further set of data representing a monetary balance of the requestingsecond client 108. In one embodiment of the invention, eachrequest 102 for transactions is compared to the balance of each subset of data to ensure that the amount of monetary value to be drawn does not exceed the sub-balance of the subset of the set of data to which the request in question is designated. Alternatively, or additionally, the transactionserver computer system 116 may be configured to decline a request in case the amount to be drawn exceeds the available balance of the first client's set ofdata 118. - The administrator of the
server computer system 116 also administers the 114 a and 114 b associated with thefirewalls server computer system 116. - The transaction
server computer system 116 is configured to issuerequests 122 for transfer of data representing an amount of monetary value to the first client's set ofdata 118. The number ofrequests 122 and the amount of monetary value represented by the data requested to be transferred may be based on at least the balance of the set of data. Accordingly, the transactionserver computer system 116 is able to vary the balance of the first client's set ofdata 118. The chance of the balance of the set of data reaching zero or near-zero balance is then reduced, which increases the number of transactions thesystem 100 is able to process per unit of time. The chance that the balance of the set of data becomes unnecessarily large may also be avoided. This may reduce any cost the first client may have in relation to making the amount of monetary value represented by the balance of the first client's set of data available to thesystem 100. Therequests 122 are sent from theserver computer system 116 through a data pathway comprising afirewall 114 b, asecured tunnel 120 and afirewall 123 a. Therequests 122 are sent to respective first clients'account 124 representing an amount of monetary value. Theaccounts 124 are stored by an administrative authorityserver computer system 126, which may be controlled by, e.g., a central bank. The administrator of the administrative authorityserver computer system 126 also administers thefirewall 123 a associated with the administrative authorityserver computer system 126. - The first client's
account 124 defines a real balance of monetary value within the administrativeauthority computer system 126, and thisaccount 124 is mirrored on the first client's set ofdata 118 stored in thetransaction computer system 116. In the present context, mirroring theaccount 126 on the set ofdata 118 is carried out so that the balance of real money is equal to or at least as large as the monetary value represented by the set ofdata 118. - The
requests 122 for transfer of data representing an amount of monetary value to the first client's set ofdata 118 are issued at predefined intervals in time, such as, e.g., once every day, 12 hours, 1 hour, 30 minutes, 15 minutes, 5 minutes, 30 seconds, etc. - By having administrators administering the first and second clients, different from the administrators of the administrative authority
server computer system 126, the risk of processing of fraudulent requests may be avoided or reduced. With thesecure tunnel 120 in place, processing of fraudulent requests may only be possible in the unlikely event that administrators of the computer networks at both ends of thesecure tunnel 120 contribute to the fraud. Similarly processing of fraudulent requests by the transactionserver computer system 116 and thesecond clients 108 may be reduced or avoided. - For the purpose of illustrating the relationship between the clients, these are exemplified in the embodiment of
FIG. 2 . In this embodiment, the clients are in the form of monetary institutions and in response to a first request, a first monetary institution acts as a first client and a second monetary institution acts as a second client. Whereas in response to a second request, the first monetary institution acts as a second client and the second monetary institution acts as a first client. That is, requests for transactions may be exchanged between all monetary institutions in the system. - In the embodiment illustrated in
FIG. 2 , themonetary institutions 128 are able to act as bothfirst clients 129 andsecond clients 108. As such,FIG. 2 illustrates a data communication pathway between the administrative authorityserver computer system 126 and themonetary institutions 128. As discussed with reference toFIG. 1 , the transactionserver computer system 116 is configured to issuerequests 122 for transfer of data representing an amount of monetary value to the first client's set ofdata 118 at predefined intervals in time, and this may be done in relation to mirroring of the first client's set ofdata 118 and the first client'saccount 124. - After the
requests 122 for transfer of data representing an amount of monetary value to the first client's set ofdata 118 are issued, the real balances of theaccounts 124 are updated. Through afirewall 123 b, respectivesecure tunnels 130 andfirewalls 110 c of themonetary institutions 128,requests 132 for update of the real balances of money represented by the first clients'accounts 124 are sent to themonetary institutions 128 acting asfirst clients 129. The data pathways for therequests 122 comprising 110 c and 123 b andfirewalls secure tunnels 130 are not linked to the transaction server computer system. -
FIGS. 3-5 illustrate flow-charts of the process of updating the first client's set ofdata 118 stored in a data structure of the transactionserver computer system 116. The set ofdata 118 is divided into a first subset ofdata 134 and a second subset ofdata 136. InFIG. 3 andFIG. 4 afirst request 102 a and asecond request 102 for update of the first client's set ofdata 118 are received simultaneously. InFIG. 3 the two 102 a and 102 b are received from the samerequests second client 108 a, whereas inFIG. 4 thefirst request 102 a is received from a first second 108 a and thesecond request 102 b is received from asecond client 108 b. Thefirst request 102 a is forwarded 134 to the first subset ofdata 138, while thesecond request 102 b is forwarded 136 to the second subset ofdata 140. The respective subsets of 138 and 140 are then reserved indata step 142 a and 142 b for 102 a and 102 b. Inrespective requests 144 a and 144 b the subsets ofsteps 138 and 140 are updated simultaneously. Finally, the subsets ofdata 138 and 140 are released indata 146 a and 146 b. The released subsets of data are available for further updates and the process of reserving 142 a, 142 b and updating 144 a, 142 b the subsets ofstep 138 and 140 may be repeated in response to further requests.data - In
FIG. 5 athird request 102 c for update of the first client's set ofdata 118 is received from thesecond client 108 b while both subsets of 138 and 140 are reserved for processing of thedata first request 102 a and thesecond request 102 b. In this case, the set ofdata 118 is updated according to a predefined auxiliary updating scheme in response to receipt of thethird request 102 c. The predefined auxiliary updating scheme is to store thethird request 102 c and to determine if the first and second subsets of 138 and 140 are reserved at predefined intervals in time. The predefined intervals in time may be on, e.g., the microsecond scale, millisecond scale or second scale. The transactiondata server computer system 116 may then continue to determine if the first and second subsets of 138 and 140 are reserved until at least one of the first and second subsets ofdata 138 and 140 is released. At this point, the released subset of data is reserved for thedata third request 102 c. -
FIG. 6 illustrates a system wherein the transactionserver computer system 116 stores the first client's set ofdata 118 in a data structure comprising eight subsets of 138, 140, 148-158. In response to receipt of thedata first request 102 a, the transactionserver computer system 116 simultaneously reserve three subsets of 138, 140 and 148 defining sub-balances large enough for the accumulated sub-balances of the reserved subsets ofdata 138, 140 and 148 to be at least as large as the amount of monetary value represented by the data requested to be transferred by thedata first request 102 a. The transactionserver computer system 116 then divides thefirst request 102 a into a first set ofsub-requests 160 with three sub-requests and updates the three subsets of 138, 140 and 148 in accordance with the first set ofdata sub-requests 160. Accordingly, in response to receipt of thesecond request 102 b, the transactionserver computer system 116 generates a second set ofsub-requests 162 with two sub-requests and reserves and updates the fourth and fifth subsets of 150 and 152 in accordance with the second set ofdata sub-requests 162. The transactionserver computer system 116 could also reserve and update, e.g., the second subset ofdata 140, the fifth subset ofdata 152 and the seventh subset ofdata 158 in accordance with the first set ofsub-request 160, while reserving and updating other subsets of data in accordance with the second set of sub-requests. Moreover, the transactionserver computer system 116 may reserve and update any combination of subsets of data in accordance with any set of sub-requests as long as the set of sub-requests and the combination of subsets of data conforms to the rules laid out just above for the transactionserver computer system 116. -
FIG. 7 illustrates asystem 100 wherein the transactionserver computer system 116 is configured to generate and populate a prioritized list of seven subsets of 138, 140, 148-156. In the embodiments ofdata FIG. 7 the prioritized list is generated and populated with subsets of data with increasingly large balances so that the first subset ofdata 138 represents a balance of monetary units smaller than the balance of the second subset ofdata 140. The balance of the second subset ofdata 140 is smaller than the balance of the third subset ofdata 148, and so forth. Afirst request 102 a for transaction of data representing a relatively large amount of monetary unit is forwarded to the set ofdata 118. The transactionserver computer system 116 then divides therequest 102 a into a first set ofsub-requests 160. The transactionserver computer system 116 then reserves and updates the sixth and seventh subsets of 154 and 156 in accordance with the first set ofdata sub-requests 160. Accordingly, in response to receipt of asecond request 102 b for transaction of data representing a relatively small amount of monetary units, the transactionserver computer system 116 reserves and updates the first and second subsets of 138 and 140.data - In the
system 100 illustrated inFIG. 7 , the transactionserver computer system 116 is then able to preferentially reserve the subsets of data with the largest sub-balances in response to receipt of thefirst request 102 a for transaction of data representing a first amount of monetary value which is larger than a second amount of monetary value of thesecond request 102 b. Conversely, the transactionserver computer system 116 is also able to preferentially reserve the subsets of data with the smallest sub-balances of the subsets of 138, 140, 148-156 in response to receipt of thedata second request 102 b for transaction of data representing the second amount of monetary value which is smaller than the first amount of monetary value of thefirst request 102 a. -
FIGS. 8-10 illustratesystems 100 wherein the transactionserver computer system 116 stores the subsets of 138, 140, 148 and 150 associated with the first client on twodata 164 and 166. In these embodiments, the first anddifferent server computers 138 and 140 are stored on asecond subsets first server computer 164 and third and fourth subsets of 148 and 150 are stored on adata second server computer 166. In embodiments, the transactionserver computer system 116 comprises a second processing unit, which in turn comprises multiple CPUs. In one embodiment, thefirst server computer 164 comprises a first CPU handling reservation and update of the first and 138 and 140, and thesecond subsets second server computer 166 comprises a second CPU handling reservation and update of the third and fourth subsets of 148 and 150.data - In
FIG. 8 thefirst request 102 a is received from the firstsecond client 108 a and forwarded to thefirst server computer 164 and the first subset ofdata 138 is reserved and updated in accordance with thefirst request 102 a. Thesecond request 102 b is received from thesecond client 102 b and forwarded to thesecond server computer 166 and the third subset ofdata 148 is reserved and updated accordance with thesecond request 102 b. - In
FIG. 9 thefirst request 102 a is received from the firstsecond client 108 a and forwarded to thefirst server computer 164 and the first subset ofdata 138 is reserved and updated in accordance with thefirst request 102 a. Thesecond request 102 b is received from thesecond client 102 b and forwarded to thefirst server computer 164 and the second subset ofdata 148 is reserved and updated accordance with thesecond request 102 b. - In
FIG. 10 the first and 102 a and 102 b are received from the firstsecond requests second client 108 a. Thefirst request 102 a is forwarded to thefirst server computer 164 and the first subset ofdata 138 is reserved and updated in accordance with thefirst request 102 a. Thesecond request 102 b is forwarded to thesecond server computer 166 and the third subset ofdata 148 is reserved and updated accordance with thesecond request 102 b. - The
systems 100 embodied inFIGS. 8-10 may be configured to a request into a set of a plurality ofsub-requests 160. In this case, no set ofsub-requests 160 is processed on more than one server computer. - In order to ascertain the effect of the invention with regard to the number of updates or transactions per unit time, the following tests were performed:
-
- 1. One first client receiving requests for update of its set of data, the set of data not being divided into subsets of data;
- 2. 16 clients that are acting as first and second clients sending and receiving requests for updates of respective sets of data, each client's set of data not being divided into subsets of data; and
- 3. 16 clients that are acting as first and second clients sending and receiving requests for updates of respective sets of data, each client's set of data being divided into 8 subsets of data.
- Accordingly, the configurations of test 1 and test 2 are not embodiments of the present invention. Test 3 was performed in a test environment emulating a system for facilitating real-time transactions according to an embodiment of the invention. All tests are performed on the same computer system with the same hardware configuration for each test.
- The raw data of all three tests are reported in Table 1 below. The column ‘No. of Part.’ denotes the number of clients, wherein each client may act as both a first and second client. The column ‘Slices’ denotes the number of subsets of data each second client's set of data is divided into. ‘Count’ is the total number of updates of second clients' sets of data, which corresponds to transactions of monetary value as described above. The ‘Duration’ is measured in seconds and the ‘Throughput’ is measured in updates, i.e., transactions per second [tx/s].
-
TABLE 1 Test Case No. of Part. Slices Count Duration Throughput #1 1 1 2520 17.129 s 147 tx/s #2 16 1 2512 31.724 s 79 tx/s #3 16 8 2512 12.170 s 206 tx/s - From the results of Table 1, it is seen that as the number of clients was increased without dividing sets of data into subsets of data, the number of updates per second was significantly decreased, likely due to bottleneck formation caused by reserved and thus unavailable sets of data.
- Further, it is seen that with the same number of clients (16) and updates of a plurality of subsets of data (8) in accordance with embodiments of the invention, the number of updates per second more than doubled. Accordingly, thanks to the implementation of a system according to embodiments of the invention a significant increase in transaction speed was achieved.
- Notably, the increase in transaction speed was achieved without changing the computer hardware configuration of the system for transactions. This has several tangible effects in the physical world outside the bits and bytes of the computer system. Firstly, embodiments of the invention can handle the same number of transactions as systems known in the art, but with significantly less computing power. Accordingly, embodiments of the present invention decreases the demand on hardware. Further, by recording the CPU load during the tests, it is seen that the energy consumption for handling the same number of transactions was significantly lower in test 3 than in test 2 due to the more efficient handling of the requests and updates. Accordingly, embodiments of present invention optimise energy consumption further reducing the demand on resources.
- Finally, it is noted that although the reported test was performed with 8 subsets of data for each first client, the overall trends of results would be readily appreciated by a person skilled in the art to apply in systems with down to two subsets of data for each first client.
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/523,729 US20220067683A1 (en) | 2016-06-23 | 2021-11-10 | System for facilitating real-time transactions |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP16176072 | 2016-06-23 | ||
| EP16176072.3 | 2016-06-23 | ||
| PCT/EP2017/065539 WO2017220779A1 (en) | 2016-06-23 | 2017-06-23 | System for facilitating real-time transactions |
| US201816311284A | 2018-12-19 | 2018-12-19 | |
| US17/523,729 US20220067683A1 (en) | 2016-06-23 | 2021-11-10 | System for facilitating real-time transactions |
Related Parent Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2017/065539 Continuation WO2017220779A1 (en) | 2016-06-23 | 2017-06-23 | System for facilitating real-time transactions |
| US16/311,284 Continuation US11200551B2 (en) | 2016-06-23 | 2017-06-23 | System for facilitating real-time transactions |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20220067683A1 true US20220067683A1 (en) | 2022-03-03 |
Family
ID=56203261
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/311,284 Active 2037-09-11 US11200551B2 (en) | 2016-06-23 | 2017-06-23 | System for facilitating real-time transactions |
| US17/523,729 Pending US20220067683A1 (en) | 2016-06-23 | 2021-11-10 | System for facilitating real-time transactions |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/311,284 Active 2037-09-11 US11200551B2 (en) | 2016-06-23 | 2017-06-23 | System for facilitating real-time transactions |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US11200551B2 (en) |
| EP (1) | EP3475907A1 (en) |
| BR (1) | BR112018076673B1 (en) |
| CA (1) | CA3027461C (en) |
| WO (1) | WO2017220779A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11107085B2 (en) * | 2020-01-16 | 2021-08-31 | Aci Worldwide Corporation | System and method for fraud detection |
Citations (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5615337A (en) * | 1995-04-06 | 1997-03-25 | International Business Machines Corporation | System and method for efficiently processing diverse result sets returned by a stored procedures |
| US6321274B1 (en) * | 1996-06-28 | 2001-11-20 | Microsoft Corporation | Multiple procedure calls in a single request |
| US20030182230A1 (en) * | 2002-02-14 | 2003-09-25 | Zachary Pessin | Apparatus and method of a distributed capital system |
| US20050015471A1 (en) * | 2003-07-18 | 2005-01-20 | Zhang Pu Paul | Secure cluster configuration data set transfer protocol |
| US20060015437A1 (en) * | 2004-07-14 | 2006-01-19 | Mani Kulasooriya | Systems and methods for performing international money exchanges |
| US20060212407A1 (en) * | 2005-03-17 | 2006-09-21 | Lyon Dennis B | User authentication and secure transaction system |
| US20070271570A1 (en) * | 2006-05-17 | 2007-11-22 | Brown Douglas P | Managing database utilities to improve throughput and concurrency |
| US20100153451A1 (en) * | 2008-12-16 | 2010-06-17 | Delia Wayne M | Multifactor authentication with changing unique values |
| US20100312814A1 (en) * | 2006-12-20 | 2010-12-09 | OMX Technology | Intelligent information dissemination |
| US20110208640A1 (en) * | 2010-02-19 | 2011-08-25 | Bank Of America Corporation | Ticketed funds transfers between a brokerage account and a deposit account |
| US20110246817A1 (en) * | 2010-03-31 | 2011-10-06 | Security First Corp. | Systems and methods for securing data in motion |
| US20110296440A1 (en) * | 2010-05-28 | 2011-12-01 | Security First Corp. | Accelerator system for use with secure data storage |
| US20120072723A1 (en) * | 2010-09-20 | 2012-03-22 | Security First Corp. | Systems and methods for secure data sharing |
| US20120084135A1 (en) * | 2010-10-01 | 2012-04-05 | Smartslips Inc. | System and method for tracking transaction records in a network |
| US20120166576A1 (en) * | 2010-08-12 | 2012-06-28 | Orsini Rick L | Systems and methods for secure remote storage |
| US20130346380A1 (en) * | 2012-06-26 | 2013-12-26 | Sap Ag | Database access acceleration |
| US20140006297A1 (en) * | 2012-07-02 | 2014-01-02 | Serve Virtual Enterprises, Inc. | Systems and methods for transferring value via a social network |
| US20140006283A1 (en) * | 2012-07-02 | 2014-01-02 | Serve Virtual Enterprises, Inc. | Systems and methods for managing multiple identifiers |
| US20140279540A1 (en) * | 2013-03-15 | 2014-09-18 | Fulcrum Ip Corporation | Systems and methods for a private sector monetary authority |
| US20140344326A1 (en) * | 2013-05-15 | 2014-11-20 | Citrix Systems, Inc. | Systems and methods for deploying a spotted virtual server in a cluster system |
| US8965861B1 (en) * | 2012-06-28 | 2015-02-24 | Amazon Technologies, Inc. | Concurrency control in database transactions |
| US9100330B1 (en) * | 2012-07-13 | 2015-08-04 | Emc Corporation | Introduction of read delay or write delay in servers of a geographically distributed data processing system so that clients read up-to-date data |
| US20150244804A1 (en) * | 2014-02-21 | 2015-08-27 | Coho Data, Inc. | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities |
| US20150271183A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150269539A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150269541A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150277964A1 (en) * | 2014-03-31 | 2015-10-01 | Mastercard International Incorporated | Systems and methods for throttling transaction processing based on constrained sub-systems |
| US20160057226A1 (en) * | 2014-08-22 | 2016-02-25 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
| US20160065370A1 (en) * | 2014-08-29 | 2016-03-03 | Eric Le Saint | Methods for secure cryptogram generation |
| US20160191509A1 (en) * | 2014-12-31 | 2016-06-30 | Nexenta Systems, Inc. | Methods and Systems for Key Sharding of Objects Stored in Distributed Storage System |
| US20160224393A1 (en) * | 2015-02-03 | 2016-08-04 | Ca, Inc. | System and method of distributing processes stored in a common database |
| US20160253326A1 (en) * | 2015-02-27 | 2016-09-01 | Zoomdata, Inc. | Prioritization of retrieval and/or processing of data |
| US20160337426A1 (en) * | 2015-05-14 | 2016-11-17 | Hola Networks Ltd. | System and Method for Streaming Content from Multiple Servers |
| US20170289236A1 (en) * | 2016-03-30 | 2017-10-05 | Task Performance Group, Inc. | Cloud Operating System and Method |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5793846A (en) * | 1985-07-10 | 1998-08-11 | Ronald A. Katz Technology Licensing, Lp | Telephonic-interface game control system |
| US6216139B1 (en) * | 1995-11-20 | 2001-04-10 | Execware | Integrated dialog box for rapidly altering presentation of parametric text data objects on a computer display |
| JP3348367B2 (en) * | 1995-12-06 | 2002-11-20 | 富士通株式会社 | Multiple access method and multiple access cache memory device |
| US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
| US5875440A (en) * | 1997-04-29 | 1999-02-23 | Teleran Technologies, L.P. | Hierarchically arranged knowledge domains |
| DE992120T1 (en) * | 1997-06-23 | 2001-01-25 | Micrilor, Inc. | WIRELESS MESSAGE TRANSMISSION SYSTEM FOR SENDING AND RECEIVING DATA WITH INCREASED DATA RATE AND RELIABILITY |
| US6055539A (en) * | 1997-06-27 | 2000-04-25 | International Business Machines Corporation | Method to reduce I/O for hierarchical data partitioning methods |
| US6212526B1 (en) * | 1997-12-02 | 2001-04-03 | Microsoft Corporation | Method for apparatus for efficient mining of classification models from databases |
| US6122639A (en) * | 1997-12-23 | 2000-09-19 | Cisco Technology, Inc. | Network device information collection and change detection |
| US6233286B1 (en) * | 1998-03-27 | 2001-05-15 | Lucent Technologies Inc. | Path-oriented decoder using refined receiver trellis diagram |
| US6084688A (en) * | 1998-04-30 | 2000-07-04 | Xerox Corporation | Network print server with page-parallel decomposing |
| US6088511A (en) * | 1998-05-13 | 2000-07-11 | Microsoft Corporation | Nested parallel 2D Delaunay triangulation method |
| US6196466B1 (en) * | 1998-06-09 | 2001-03-06 | Symbol Technologies, Inc. | Data compression method using multiple base number systems |
| US20030140007A1 (en) * | 1998-07-22 | 2003-07-24 | Kramer Glenn A. | Third party value acquisition for electronic transaction settlement over a network |
| US6098881A (en) * | 1998-07-22 | 2000-08-08 | Mag-Tek, Inc. | Magnetic stripe card verification system |
| US6578068B1 (en) * | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
| US6571282B1 (en) * | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
| US20040073530A1 (en) * | 2000-12-06 | 2004-04-15 | David Stringer-Calvert | Information management via delegated control |
| US7640547B2 (en) * | 2002-02-08 | 2009-12-29 | Jpmorgan Chase & Co. | System and method for allocating computing resources of a distributed computing system |
| US8489742B2 (en) * | 2002-10-10 | 2013-07-16 | Convergys Information Management Group, Inc. | System and method for work management |
| US8458067B2 (en) * | 2003-05-06 | 2013-06-04 | American Express Travel Related Services Company, Inc. | System and method for emergency tracking |
| US20130144783A1 (en) * | 2003-06-30 | 2013-06-06 | American Express Travel Related Services Company, Inc. | System and method for a supplier to supplier payment system to process a transaction |
| US7231376B1 (en) * | 2005-04-21 | 2007-06-12 | Sun Microsystems, Inc. | Method for high-level parallelization of large scale QP optimization problems |
| US7310652B1 (en) * | 2005-08-08 | 2007-12-18 | At&T Corp. | Method and apparatus for managing hierarchical collections of data |
| US7246035B1 (en) * | 2006-01-13 | 2007-07-17 | Palit Charles D | Multi-frame sampling system and method for statistical analysis |
| US20100153740A1 (en) * | 2008-12-17 | 2010-06-17 | David Dodgson | Data recovery using error strip identifiers |
| GB2467530A (en) * | 2009-02-03 | 2010-08-11 | Eservglobal Uk Ltd | Credit transfer between telecommunications networks |
| WO2010127365A1 (en) * | 2009-05-01 | 2010-11-04 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
| US20100293108A1 (en) * | 2009-05-14 | 2010-11-18 | Sam Gurvitch | Automated Practice Management System |
| US20110119119A1 (en) * | 2009-11-16 | 2011-05-19 | Sosbuzz, Inc. | Advertiser invoicing system |
| US9053200B2 (en) * | 2009-12-14 | 2015-06-09 | Appfolio, Inc. | Systems and methods for sorting, grouping, and rendering subsets of large datasets over a network |
| US8965860B2 (en) * | 2010-04-01 | 2015-02-24 | Salesforce.Com, Inc. | Methods and systems for bulk uploading of data in an on-demand service environment |
| US10248964B1 (en) * | 2010-07-30 | 2019-04-02 | American Express Travel Related Services Company, Inc. | System and method for rewards redemption |
| US8914545B2 (en) * | 2011-04-27 | 2014-12-16 | Iii Holdings 1, Llc | Systems and methods for lossless compression of data and high speed manipulation thereof |
| US8412631B2 (en) * | 2011-05-13 | 2013-04-02 | American Express Travel Related Services Company, Inc. | Cloud enabled payment processing system and method |
| US20130282542A1 (en) * | 2012-04-18 | 2013-10-24 | The Royal Bank Of Scotland Plc | Method, apparatus and system for retrieving financial data |
| US20140180808A1 (en) * | 2012-12-22 | 2014-06-26 | Coupons.Com Incorporated | Generation and management of dynamic electronic offers |
| US9471628B2 (en) * | 2013-03-04 | 2016-10-18 | Mastercard International Incorporated | Methods and systems for calculating and retrieving analytic data |
| US9940608B2 (en) * | 2013-05-16 | 2018-04-10 | Mts Holdings, Inc. | Real time EFT network-based person-to-person transactions |
| US10515370B2 (en) * | 2013-10-09 | 2019-12-24 | The Toronto-Dominion Bank | Systems and methods for providing tokenized transaction accounts |
| US9710801B2 (en) * | 2014-04-22 | 2017-07-18 | American Express Travel Related Services Company, Inc. | Systems and methods for charge splitting |
| US9430663B2 (en) * | 2014-06-11 | 2016-08-30 | Live Nation Entertainment, Inc. | Dynamic filtering and precision alteration of query responses responsive to request load |
| CN105447604B (en) | 2014-08-04 | 2020-01-21 | 阿里巴巴集团控股有限公司 | Account processing method and device |
| US10157215B2 (en) * | 2016-01-13 | 2018-12-18 | American Express Travel Related Services Company, Inc. | System and method for managing data and updates to a database structure |
| US10037194B2 (en) * | 2016-01-22 | 2018-07-31 | American Express Travel Related Services Company, Inc. | Systems and methods for visual data management |
-
2017
- 2017-06-23 EP EP17731181.8A patent/EP3475907A1/en not_active Ceased
- 2017-06-23 BR BR112018076673-9A patent/BR112018076673B1/en not_active IP Right Cessation
- 2017-06-23 US US16/311,284 patent/US11200551B2/en active Active
- 2017-06-23 CA CA3027461A patent/CA3027461C/en active Active
- 2017-06-23 WO PCT/EP2017/065539 patent/WO2017220779A1/en not_active Ceased
-
2021
- 2021-11-10 US US17/523,729 patent/US20220067683A1/en active Pending
Patent Citations (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5615337A (en) * | 1995-04-06 | 1997-03-25 | International Business Machines Corporation | System and method for efficiently processing diverse result sets returned by a stored procedures |
| US6321274B1 (en) * | 1996-06-28 | 2001-11-20 | Microsoft Corporation | Multiple procedure calls in a single request |
| US20030182230A1 (en) * | 2002-02-14 | 2003-09-25 | Zachary Pessin | Apparatus and method of a distributed capital system |
| US20050015471A1 (en) * | 2003-07-18 | 2005-01-20 | Zhang Pu Paul | Secure cluster configuration data set transfer protocol |
| US20060015437A1 (en) * | 2004-07-14 | 2006-01-19 | Mani Kulasooriya | Systems and methods for performing international money exchanges |
| US20060212407A1 (en) * | 2005-03-17 | 2006-09-21 | Lyon Dennis B | User authentication and secure transaction system |
| US20070271570A1 (en) * | 2006-05-17 | 2007-11-22 | Brown Douglas P | Managing database utilities to improve throughput and concurrency |
| US20100312814A1 (en) * | 2006-12-20 | 2010-12-09 | OMX Technology | Intelligent information dissemination |
| US20100153451A1 (en) * | 2008-12-16 | 2010-06-17 | Delia Wayne M | Multifactor authentication with changing unique values |
| US20110208640A1 (en) * | 2010-02-19 | 2011-08-25 | Bank Of America Corporation | Ticketed funds transfers between a brokerage account and a deposit account |
| US20110246817A1 (en) * | 2010-03-31 | 2011-10-06 | Security First Corp. | Systems and methods for securing data in motion |
| US20110296440A1 (en) * | 2010-05-28 | 2011-12-01 | Security First Corp. | Accelerator system for use with secure data storage |
| US20120166576A1 (en) * | 2010-08-12 | 2012-06-28 | Orsini Rick L | Systems and methods for secure remote storage |
| US20120072723A1 (en) * | 2010-09-20 | 2012-03-22 | Security First Corp. | Systems and methods for secure data sharing |
| US20120084135A1 (en) * | 2010-10-01 | 2012-04-05 | Smartslips Inc. | System and method for tracking transaction records in a network |
| US20130346380A1 (en) * | 2012-06-26 | 2013-12-26 | Sap Ag | Database access acceleration |
| US8965861B1 (en) * | 2012-06-28 | 2015-02-24 | Amazon Technologies, Inc. | Concurrency control in database transactions |
| US20140006297A1 (en) * | 2012-07-02 | 2014-01-02 | Serve Virtual Enterprises, Inc. | Systems and methods for transferring value via a social network |
| US20140006283A1 (en) * | 2012-07-02 | 2014-01-02 | Serve Virtual Enterprises, Inc. | Systems and methods for managing multiple identifiers |
| US9100330B1 (en) * | 2012-07-13 | 2015-08-04 | Emc Corporation | Introduction of read delay or write delay in servers of a geographically distributed data processing system so that clients read up-to-date data |
| US20140279540A1 (en) * | 2013-03-15 | 2014-09-18 | Fulcrum Ip Corporation | Systems and methods for a private sector monetary authority |
| US20140344326A1 (en) * | 2013-05-15 | 2014-11-20 | Citrix Systems, Inc. | Systems and methods for deploying a spotted virtual server in a cluster system |
| US20150244804A1 (en) * | 2014-02-21 | 2015-08-27 | Coho Data, Inc. | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities |
| US20150271183A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150269539A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150269541A1 (en) * | 2014-03-18 | 2015-09-24 | nTrust Technology Solutions Corp. | Virtual currency system |
| US20150277964A1 (en) * | 2014-03-31 | 2015-10-01 | Mastercard International Incorporated | Systems and methods for throttling transaction processing based on constrained sub-systems |
| US20160057226A1 (en) * | 2014-08-22 | 2016-02-25 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
| US20160065370A1 (en) * | 2014-08-29 | 2016-03-03 | Eric Le Saint | Methods for secure cryptogram generation |
| US20160191509A1 (en) * | 2014-12-31 | 2016-06-30 | Nexenta Systems, Inc. | Methods and Systems for Key Sharding of Objects Stored in Distributed Storage System |
| US20160224393A1 (en) * | 2015-02-03 | 2016-08-04 | Ca, Inc. | System and method of distributing processes stored in a common database |
| US20160253326A1 (en) * | 2015-02-27 | 2016-09-01 | Zoomdata, Inc. | Prioritization of retrieval and/or processing of data |
| US20160337426A1 (en) * | 2015-05-14 | 2016-11-17 | Hola Networks Ltd. | System and Method for Streaming Content from Multiple Servers |
| US20170289236A1 (en) * | 2016-03-30 | 2017-10-05 | Task Performance Group, Inc. | Cloud Operating System and Method |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3475907A1 (en) | 2019-05-01 |
| BR112018076673A2 (en) | 2019-04-02 |
| CA3027461C (en) | 2022-06-21 |
| US11200551B2 (en) | 2021-12-14 |
| US20190333035A1 (en) | 2019-10-31 |
| WO2017220779A1 (en) | 2017-12-28 |
| BR112018076673B1 (en) | 2022-07-19 |
| CA3027461A1 (en) | 2017-12-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11930072B2 (en) | Load balancing in blockchain environments | |
| CN109064146B (en) | A digital currency transaction method, device, system, terminal and client wallet | |
| EP3920505A1 (en) | Data processing method and apparatus in blockchain network, storage medium, and computer device | |
| US11201751B2 (en) | System and method for off-chain cryptographic transaction verification | |
| US12425245B2 (en) | Blockchain-based data processing method, apparatus and device, and storage medium | |
| US20210176239A1 (en) | Facial Recognition, Image Analysis, and Decentralized Learning Framework Using Adaptive Security Protocols in Distributed Terminal Network | |
| US20200092084A1 (en) | System and methods for operating a blockchain network | |
| CN109508970B (en) | Remittance method and device based on block chain | |
| CN111901249A (en) | Service current limiting method, device, equipment and storage medium | |
| WO2010106395A1 (en) | A policy-based payment transaction routing service for credit card payment processing | |
| CN108009818B (en) | Online payment method and system based on distributed network | |
| KR101837167B1 (en) | Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same | |
| CN109300038B (en) | Resource flow transaction system | |
| KR20180102269A (en) | System and method for supporting external interface based on block chain | |
| EP3656086A1 (en) | Fallback authorization routing | |
| CN110417888A (en) | Flow control methods, volume control device and electronic equipment | |
| WO2021048056A1 (en) | A method and system for executing fast and safe transactions involving a high-latency blockchain | |
| US20220216990A1 (en) | Systems and Methods Using Distributed Ledgers to Correct for Missing One Time Passwords in Event Processing | |
| Ivanov et al. | Blockumulus: a scalable framework for smart contracts on the cloud | |
| CN118733281A (en) | Financial transaction security verification system and method based on blockchain | |
| US10419359B2 (en) | Resource path monitoring | |
| US20220067683A1 (en) | System for facilitating real-time transactions | |
| Subramanian et al. | Rebalancing in acyclic payment networks | |
| Qushtom et al. | A high performance two-layer consensus architecture for blockchain-based IoT systems | |
| CN109325858B (en) | Resource flow transaction method and device, computer equipment and computer readable medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MASTERCARD PAYMENT SERVICES DENMARK A/S, DENMARK Free format text: CHANGE OF NAME;ASSIGNOR:CENTURION DK A/S;REEL/FRAME:058078/0224 Effective date: 20210304 Owner name: NETS DENMARK A/S, NORWAY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NETS BRANCH NORWAY;REEL/FRAME:058078/0202 Effective date: 20170908 Owner name: NETS BRANCH NORWAY, NORWAY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HEGGE, JON ARNE;DASVAND, ESPEN;KORSHAVN, LEIF JOHN;AND OTHERS;SIGNING DATES FROM 20170822 TO 20170829;REEL/FRAME:058078/0181 Owner name: CENTURION DK A/S, DENMARK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NETS DENMARK A/S;REEL/FRAME:058078/0135 Effective date: 20191007 |
|
| AS | Assignment |
Owner name: NETS DENMARK A/S, DENMARK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S COUNTRY FROM NORWAY TO DENMARK PREVIOUSLY RECORDED ON REEL 058078 FRAME 0202. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:NETS BRANCH NORWAY;REEL/FRAME:058216/0910 Effective date: 20170908 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION COUNTED, NOT YET MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |