WO2019064058A1 - COMPUTERIZED TRANSACTION MANAGEMENT MODULE FOR BLOCK CHAIN NETWORKS - Google Patents
COMPUTERIZED TRANSACTION MANAGEMENT MODULE FOR BLOCK CHAIN NETWORKS Download PDFInfo
- Publication number
- WO2019064058A1 WO2019064058A1 PCT/IB2018/000368 IB2018000368W WO2019064058A1 WO 2019064058 A1 WO2019064058 A1 WO 2019064058A1 IB 2018000368 W IB2018000368 W IB 2018000368W WO 2019064058 A1 WO2019064058 A1 WO 2019064058A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- parent
- child
- hardcoded
- transaction table
- 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.)
- Ceased
Links
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- 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/22—Payment schemes or models
- G06Q20/229—Hierarchy of users of accounts
- G06Q20/2295—Parent-child type, e.g. where parent has control on child rights
-
- 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
-
- 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/386—Payment protocols; Details thereof using messaging services or messaging apps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
- G06Q2220/00—Business processing using cryptography
Definitions
- a first bank can transmit a transaction to a second bank to perform a bank transaction such as to transfer money to the second bank.
- One type of network that can be used to facilitate secure online transactions is a blockchain network.
- the blockchain network is a decentralized and distributed digital ledger used to record transactions across a plurality of computers so that records cannot be altered retroactively without alteration of all subsequent blocks and the collusion of the blockchain network. This allows participants to verify and audit transactions inexpensively. In this way, the blockchain network provides a high degree of data security.
- a non-transitory computer-readable medium and/or a computer program that stores computer-executable instructions that when executed by a processor of a computer causes the processor to: maintain a static maintenance table comprising hardcoded properties of a first entity, wherein a hardcoded value comprises at least one of a host name, a proxy, an entity identifier, or a representational state transfer (REST) uniform resource locator (URL); maintain a parent transaction table comprising columns of data that are updated less than a threshold frequency, wherein the parent transaction table comprises a primary parent key and a primary child key; maintain a child transaction table comprising columns of data that are updated greater than the threshold frequency, wherein the child transaction table comprises the primary parent key, the primary child key, and a name of the parent transaction table; receive a transaction to communicate between a first computing device of the entity and a second computing device of a second entity over a block chain network; validate the transaction using the hardcoded properties within the static maintenance table; populate values into
- the non-transitory computer- readable medium may include executable instructions, in combination with the features above, for performing one or more combinations of the following features: utilize the parent transaction table and the child transaction table to facilitate the communication of the transaction over the block chain network to the second computing device; utilize a table object file to create the static maintenance table, the parent transaction table, and the child transaction table using table structure information within the table object file; execute a function to add a hardcoded property into the static maintenance table; execute a function to update a hardcoded property into the static maintenance table; execute a function to disable a hardcoded property; and in response to a determination that the hardcoded property is used, enable the hardcoded property; query the static maintenance table to identify a set of hardcoded properties used to communicate with the second entity over the block chain network; and transmit the transaction over the block chain network using the set of hardcoded properties; store a transaction identifier of the transaction as the primary parent key based upon the transaction being an initial transaction; and store a
- a computer system comprising: a processor connected to memory; and a transaction management module stored on a non-transitory computer readable medium and configured with instructions that when executed by the processor cause the processor to: maintain a static maintenance table comprising hardcoded properties of a first entity, wherein a hardcoded value comprises at least one of a host name, a proxy, an entity identifier, or a representational state transfer (REST) uniform resource locator (URL); maintain a parent transaction table comprising columns of data that are updated less than a threshold frequency, wherein the parent transaction table comprises a primary parent key and a primary child key; maintain a child transaction table comprising columns of data that are updated greater than the threshold frequency, wherein the child transaction table comprises the primary parent key, the primary child key, and a name of the parent transaction table; receive a transaction to communicate between a first computing device of the entity and a second computing device of a second entity over a block chain network; validate the transaction using the hardcoded properties within the
- the computer system further comprises executable instructions, in combination with the features above, for performing one or more combinations of the following features: populate at least one of the parent transaction table and the child transaction table with a status column used to store a status of the transaction; populate at least one of the parent transaction table and the child transaction table with a destination entity column used to track a destination of transactions and a source entity column used to track a source of transactions; execute a function to update the transaction by: validating a number of arguments of the update by iterating through a table object file to determine a number of columns within the parent transaction table and the child transaction table; and in response to validating the number of arguments as corresponding to the number of columns, implementing the update by iterating through the parent transaction table and the child transaction table to insert values according to an order of the arguments; receive a request for the transaction; query the child transaction table using the child primary key to access data of the transaction and the parent primary key; and query the parent transaction table using the parent primary key to access data of the
- FIG. 1A illustrates an embodiment of a system associated with managing transactions communicated over a blockchain network.
- FIG. 1 B illustrates an embodiment of a static maintenance table, a parent transaction table, and a child transaction table.
- FIG. 2 illustrates an embodiment of a method associated with managing transactions communicated over a blockchain network.
- FIG. 3A illustrates an embodiment of a system associated with managing transactions communicated over a blockchain network, where a message associated with a transaction is transmitted from an application to a second application.
- FIG. 3B illustrates an embodiment of a system associated with managing transactions communicated over a blockchain network, where an application receives a message associated with a transaction from a second application.
- FIG. 4 illustrates an embodiment of a non-transitory computer-readable medium.
- FIG. 5 illustrates an embodiment of a computing system configured with the example systems and/or methods disclosed.
- FIG. 6 illustrates an embodiment of an integrated business system and an enterprise network in which an embodiment of the invention may be implemented.
- FIG. 7 illustrates an embodiment of a multi-tenant distributed computing service platform.
- a transaction management module such as a hyperledger component with chain code, is configurable to connect to and communicate over various types of blockchain networks and/or future implementations of blockchain networks. Because each blockchain provider can provide their own implementation of a blockchain network that can differ from implementations by other blockchain providers, the transaction management module provides an extensible mechanism for connecting to current and future implementations of blockchain networks. In this way, a substantial amount of computing and storage resources can be conserved because custom programming code does not have to written, stored, and executed for each type of blockchain network.
- the transaction management module is also configurable to connect to and communicate with various types of applications that are to communicate over the blockchain network.
- the transaction management module can facilitate the implementation of various types of business use cases without the need to create custom programming code for each use case.
- the transaction management module can facilitate the routing of messages, such as transactions, between applications hosted by different computing devices.
- the computer system 100 includes a transaction management module 105, which can be configured to execute on a computer, such as computer 515 of FIG. 5.
- the transaction management module 105 is configured to facilitate the transmission of messages for various use cases between various types of applications over various types of blockchain networks.
- the transaction management module 105 is configured to provide communication over the blockchain network 1 15 between a first bank application of a first bank and a second bank application of a second bank, such as to facilitate transactions between the first bank and the second bank.
- the terms transaction and message can be used interchangeably to refer to communication between two entities or computing devices over a blockchain network.
- the transaction management module 105 can utilize a table object file to create a static maintenance table 125, a parent transaction table 130, a child transaction table 135, and/or other tables utilized for routing transactions over the blockchain network 1 15.
- the table object file comprises a table json file or a file with some other data format such as XML.
- the table object file comprises data that can be used to create tables in a database.
- the table object file can comprise a structure format for the tables that will store transaction data, such as a structure format defining particular tables, columns, rows, expected data types, etc. In this way, table structure information within the table object file is used to create the tables.
- the transaction management module 105 maintains the static maintenance table 125 to store hardcoded properties of a first entity.
- the hardcoded properties comprise bank codes, proxies, business logic of the bank to process transactions (e.g., logic to handle the transfer of money to/from the bank), bank identifiers, etc.
- the transaction management module 105 ensures that bank properties are hardcoded, maintained properly, updated when required, and called upon when needed.
- the hardcoded properties comprise a host name of a server/service of the bank , a proxy, an entity identifier such as a bank code of the bank, and/or a representational state transfer (REST) uniform resource locator (URL) of where a financial bank adaptor is functioning.
- the transaction management module 105 is configured to execution functionality to add hardcoded properties, update hardcoded properties, disable hardcoded properties, and/or enable hardcoded properties.
- the static maintenance table 125 comprises one or more of a bank identifier column, a bank codes column, a proxies column, a hostname column, a hyperledger column, and a REST URL column, as illustrated in FIG. 1 B.
- a bank name or other bank identifier is populated within the bank identifier column.
- An international bank code (a Society for Worldwide Interbank Financial Telecommunication (SWIFT) code or bank Identification Code (BIC)) that identifies a bank worldwide is populated within the bank codes column.
- Properties of proxies and/or other system and functionality related utilities are populated within the proxies column.
- a hostname of a bank server/service is populated within the hostname column.
- a hyperledger being used by the bank is populated within the hyperledger column.
- the hyperledger is used by the bank to record transactions of the bank.
- the REST URL of the bank such as a URL of a RESTful web service of the bank, is stored in the REST URL column.
- the transaction management module 105 maintains the parent transaction table 130 to comprise columns of data that are updated less than a threshold frequency, such as infrequently updated bank data.
- the parent transaction table 130 comprises a primary parent key of the parent transaction table 130 (e.g. , corresponding to an initial transaction identifier of an initial transaction) and a primary child key of the child transaction table 135 (e.g. , corresponding to a current transaction identifier of a current transaction).
- the parent transaction table 130 comprises one or more columns of infrequently updated bank and transaction data, a status column, a transaction destination column, a transaction source column, response data columns, and notify sender/receiver columns, as illustrated in FIG. 1 B.
- Each row of the parent transaction table 130 can correspond to a particular transaction.
- a status of a transaction is populated within the status column, such as unprocessed (e.g. , when a transaction first enters the hyperledger), ready to process, and/or other stages of processing the transaction.
- a destination bank of the transaction is populated within the transaction destination column, and a source bank of the transaction is populated within the transaction source column.
- Response data columns are used to store information that is regularly exchanged between the source bank and the destination bank based upon the various stages of processing the transaction. Boolean values indicating whether short transaction messages are to be sent to the source bank (sender) and the destination bank (receiver) are stored within the notify sender/receive columns.
- the transaction management module 105 maintains the child transaction table 135 to comprise columns of data that are updated greater than the threshold frequency, such as frequently updated bank data.
- the child transaction table 135 comprises the primary parent key, the primary child key, and a name of the parent transaction table 130.
- the child transaction table 135 comprises one or more columns of frequently updated bank and transaction data, a status column, a transaction destination column, a transaction source column, response data columns, and notify sender/receiver columns, as illustrated in FIG. 1 B.
- Each row of the child transaction table 135 can correspond to a particular transaction.
- a status of a transaction is populated within the status column, such as unprocessed, ready to process, and/or other stages of processing the transaction.
- a destination bank of the transaction is populated within the transaction destination column, and a source bank of the transaction is populated within the transaction source column.
- Response data columns are used to store information that is regularly exchanged between the source bank and the destination bank based upon the various stages of processing the transaction. Boolean values indicating whether short transaction messages are to be sent to the source bank (sender) and the destination bank (receiver) are stored within the notify sender/receive columns.
- the transaction management module 105 receives a transaction to communicate between a first computing device and a second computing device over the blockchain network 1 15.
- the transaction was created by the application 1 10.
- the application 1 10 sends the transaction to the messaging module 140.
- the transaction is then sent from the messaging module 140 to the transaction management module 105 for transmission over the blockchain network 1 15 to a computing device 120.
- the transaction is received by the transaction management module 105 over the blockchain network 1 15 from the computing device 120.
- the transaction is routed from the transaction management module 105 to the messaging module 140 for processing and delivery to the application 1 10.
- the transaction management module 105 validates the transaction using the hardcoded properties within the static maintenance table 125.
- the hardcoded properties are used to determine whether a source bank code and a destination bank code are valid, whether the transaction has the proper security and authentication, etc.
- a bank code (or bank identifier) of a transaction is validated by first determining whether the bank code belongs to a list of maintained source codes. Next, a determination is made as to whether the bank code belongs to a list of maintained destination codes. Finally, a determination is made to ensure that the source bank code and the destination bank codes are not the same. Once validated, the transaction is added into the parent transaction table 130 and/or the child transaction table 135 by populating the tables with values in the same order as arguments of the transaction.
- the transaction management module 105 is configured to populate values into columns of the parent transaction table 1 30 and/or the child transaction table 135 according to an order of arguments of the transaction.
- the transaction management module 105 may store a transaction identifier of the transaction as the primary parent key based upon the transaction being an initial transaction. If the transaction is a current transaction, then the transaction management module 105 may store the transaction identifier as the primary child key.
- the transaction management module 105 may populate the tables with a status column used to store a status of the transaction. The status can change based upon a current stage of processing the transaction such as unprocessed, ready to process, etc.
- the transaction management module 105 can populate the tables with a destination entity column used to track destinations of transactions (e.g.
- the transaction management module 105 can populate the tables with a response column used to store information that is routinely exchanged between a source and destination based on various stages of processing transactions, such as information that is accessed, processed, transmitted, etc. greater than a threshold frequency.
- the transaction management module 105 can populate the tables with a notify sender variable, such as a Boolean value, indicating whether a short message with updated values from the transaction is to be sent to the source.
- the transaction management module 105 adds the transaction into the tables by validating bank identifiers and/or bank codes of the transaction with the hardcoded properties within the static maintenance table 125. In one embodiment, a determination is made as to whether one of the bank codes of the transaction is within a list of maintained source bank codes, if another of the bank codes of the transaction is within a list of maintained destination bank codes, and/or whether source and destination bank codes are different. After validation, the transaction is added by adding parent and child key columns into the parent transaction table 130, such as by adding the parent and child key columns as the first two columns within the parent transaction table 130.
- the parent transaction table 130 is iterated through by entering values of the transaction into the parent transaction table 130 in a same order as arguments of the transaction.
- the child and parent keys such as the primary child key and the primary parent key, are each added into the child transaction table 135, such as being added as the first two columns in the child transaction table 135.
- the child transaction table 135 is iterated through by entering values of the transaction into the child transaction table 135 in a same order as arguments of the transaction.
- an update is validated by verifying a number of arguments of the update by iterating through the table object file used to create the tables to identify a number of columns in the tables to update.
- the transaction is updated by iterating through targeted tables by entering values from the update in a same order as arguments of the update.
- a child key such as the primary child key, is updated in the child transaction table 135 and the parent transaction table 130.
- the transaction management module 105 queries the transaction using the concept of the primary child key and the primary parent key. The transaction is queried by fetching columns from the child transaction table 135 using the primary child key that is equal to a current transaction identifier. This provides data of columns that are frequently updated.
- the primary child key as the current transaction identifier is used to find the primary parent key that can be used to query the parent transaction table 130 for data within less frequently updated columns. In this way, the primary parent key and the primary child key are used to complete the query for the transaction.
- a result of the query may comprise a string, such as in a json format with comma separated entries.
- an array list of failed transactions are maintained.
- an attempt to transmit the failed transaction across the blockchain network 1 15 is attempted again (e.g., performance of an HTTP post). If success then, the failed transaction is removed from the array list.
- a call to invoke a function may trigger an event listener.
- a primary parent key as a parent transaction identifier is used to fetch a corresponding transaction.
- the parent transaction identifier is used to query entity information to identify a source entity and a destination entity, such as a source bank and a destination bank of the transaction. If an identifier of the source or destination entities match an identifier of the application 1 10, then the calls is processed, otherwise the call is ignored because it relates to a different entity accessible over the blockchain network 1 15.
- Boolean variables of notify sender and notify receiver can be checked to determine how to format messages of the transaction and what messages to send to the source entity and the destination entity.
- a destination entity gets a full message regardless of a value of the notify receiver (e.g. , a message regarding the entire transaction). The source entity is sent a short message if notify sender is true, otherwise no message is sent. If the transaction is an update transaction, then the destination entity gets a short message if the notify receiver is true (e.g., a message regarding updates to the transaction), otherwise no message is sent. The destination entity gets a short message if the notify sender is true, otherwise no message is sent.
- the transaction management module 105 utilizes the parent transaction table 130 and/or the child transaction table 135 to facilitate the communication of the transaction over the blockchain network 1 15 to the destination, such as to the computing device 120.
- the static maintenance table 125 is queried to identify a set of hardcoded properties used to communicate with the destination over the blockchain network 1 15.
- the set of hardcoded properties are used to transmit the transaction over the blockchain network 1 15.
- the set of hardcoded properties could specify a communication mechanism to use.
- the communication mechanism comprises a query change notification mechanism for communicating notifications of messages through a database.
- the communication mechanism comprises a queue mechanism to communicate messages through a queue.
- the communication mechanism comprises tabling polling mechanism to pull messages from a message table.
- the communication mechanism comprises a hypertext transfer protocol (HTTP) representation state transfer (REST) mechanism for receiving messages from a RESTful server.
- HTTP hypertext transfer protocol
- REST representation state transfer
- the communication mechanism comprises socket mechanism to receive messages.
- the communication mechanism comprises a simple object access protocol (SOAP) mechanism for communication.
- SOAP simple object access protocol
- a request for the transaction is received by the transaction management module 105.
- the child transaction table 135 is queried by the transaction management module 105 using the child primary key to access data of the transaction and the parent primary key.
- the child primary key may comprise a current transaction identifier of the transaction.
- the transaction management module 105 queries the parent transaction table 130 using the parent primary key to access data of the transaction.
- an instruction to update the transaction is received by the transaction management module 105. Accordingly, the transaction management module 105 executes a function to update the transaction.
- a number of arguments of the update are validated by iterating through the table object file to determine a number of columns within the parent transaction table 130 and/or the child transaction table 135.
- the update is implemented by iterating through the parent transaction table 130 and/or the child transaction table 135 to insert values of the update according to an order of the arguments.
- a computer implemented method 200 associated with managing transactions communicated over a blockchain network is illustrated.
- the method 200 is performed by the transaction management module 105 utilizing various computing resources of the computer 515, such as the processor 520 for executing instructions associated with receiving, storing, processing, and/or transmitting transactions.
- Memory 535 and/or disks 555 are used for storing transaction data, the static maintenance table 125, the parent transaction table 130, the child transaction table 135, etc.
- Network hardware is used for communicating data structures and/or other data between the computer 515 and remote computers over a network, such as a blockchain network.
- the method 200 is triggered upon receiving a request to store, process, and/or transmit a transaction.
- the transaction management module 105 maintains the static maintenance table 125 populated with hardcoded properties of a first entity, such as a first bank, as illustrated by example system 300 of FIG. 3A.
- the hardcoded properties can comprise a host name of a computing device associated with the first bank, a proxy, an identifier of the first bank, a REST/URL, and/or other properties of the first bank.
- a second transaction management module 305 associated with a second entity, such as a second bank may maintain a second static maintenance table 310 of hardcoded properties of the second entity.
- the transaction management module 105 maintains the parent transaction table 130 comprising columns of data that are updated less than a threshold frequency.
- the second transaction management module 305 maintains a second parent transaction table 315 comprising columns of data that are updated less than a threshold frequency.
- the transaction management module 105 maintains the child transaction table 135 comprising columns of data that are updated greater than a threshold frequency.
- the second transaction management module 305 maintains a second child transaction table 320 comprising columns of data that are updated greater than a threshold frequency.
- a message associated with a transaction is received by the messaging module 140 from the application 1 10 that is sending 390 the message for delivery 395 to a second application 325 through a blockchain network 1 15.
- the message may be related to a transaction between a first bank and a second bank, and thus is being transmitted from the application 1 10 of the first bank over the blockchain network 1 15 to the second application 325 of the second bank.
- the message is received through a channel-in interface 335 according to a channel configuration (e.g. , a selection and implementation of communication functionality used by the application 1 10).
- a parser component 345 uses parser configuration to parse the message into a message object for further processing.
- a processor component 350 uses a processor configuration to process the message object using validation and logic, such as to ensure that a source bank and destination bank of the transaction are valid.
- a translation component 355 uses a translation configuration to format the message into a formatted message having a format used by a destination, such as the transaction management module 105. The formatted message is routed through the channel-out interface 340 to the transaction management module 105 according to a channel configuration (e.g. , a selection and implementation of communication functionality used by the transaction management module 105).
- the transaction is received by the transaction management module 105.
- the transaction is validated using the hardcoded properties within the static maintenance table 125.
- values are populated into columns of the parent transaction table 130 and/or the child transaction table 135 according to an order of arguments of the transaction as specified by the message.
- the parent transaction table 130, the child transaction table 135, and/or the static maintenance table 125 are used to route the transaction, such as the formatted message, over the blockchain network 1 15 to the second transaction management module 305 that may receive, process, and route the transaction to a second messaging module 360 using the second static maintenance table 310, the second parent transaction table 315, and/or the second child transaction table 320.
- the second transaction management module 305 receives the formatted message as a routed message.
- the second messaging module 360 receives the routed message from the second transaction management module 305 through a second channel-in interface 365 according to a channel configuration (e.g., a selection and implementation of communication functionality used by the second transaction management module 305).
- a second parser component 375, a second processor component 380, and a second translation component 385 of the second messaging module 360 process the routed message to create a formatted message.
- the formatted message is routed through a second channel-out interface 370 for delivery 395 to the second application 325 according to a channel configuration (e.g., a selection and implementation of communication functionality used by the second application 325).
- Fig. 3B illustrates the second application 325 sending 397 a second message for delivery 399 to the application 1 10.
- the second messaging module 360 receives the second message through the channel-in interface 365 according to the channel configuration (e.g., a selection and implementation of communication functionality used by the second application 325).
- the second parser component 375, the second processor component 380, and the second translation component 385 of the second messaging module 360 process the second message to create a second formatted message.
- the second formatted message is routed through the channel-out interface 370 according to the channel configuration to the second transaction management module 305 (e.g., a selection and implementation of communication functionality used by the second transaction management module 305).
- the second transaction management module 305 utilizes the second static maintenance table 310, the second parent transaction table 315, and/or the second child transaction table 320 to receive, process, and/or route a second transaction associated with the second message over the blockchain network 1 15.
- the second transaction management module 305 routes the second formatted message over the blockchain network 1 15 to the transaction management module 105.
- the transaction management module 105 receives the second formatted message as a second routed message.
- the messaging module 140 receives the second routed message from the transaction management module 105 through the channel-in interface 335 according to the channel configuration (e.g., a selection and implementation of communication functionality used by the transaction management module 105).
- the parser component 345, the processor component 350, and the translation component 355 of the messaging module 140 process the second routed message to create a second formatted message.
- the second formatted message is routed through the channel-out interface 340 for delivery 399 to the application 1 10 according to a channel configuration (e.g. , a selection and implementation of communication functionality used by the application 1 10).
- FIG. 4 is an illustration of a scenario 400 involving an example non- transitory computer-readable medium 405.
- one or more of the components described herein are configured as program modules, such as the transaction management module 105, stored in the non-transitory computer- readable medium 405.
- the program modules are configured with stored instructions, such as processor-executable instructions 420, that when executed by at least a processor, such as processor 440, cause the computing device to perform the corresponding function(s) as described herein.
- the, functionality of the transaction management module 105, stored in the non- transitory computer-readable medium 405 may be executed by the processor 440 as the processor-executable instructions 420 to perform an embodiment 425 of the method 200 of Fig. 2.
- the non-transitory computer-readable medium 405 includes the processor-executable instructions 420 that when executed by a processor 440 cause performance of at least some of the provisions herein.
- the non-transitory computer-readable medium 405 includes a memory semiconductor (e.g. , a semiconductor utilizing static random access memory (SRAM), dynamic random access memory (DRAM), and/or synchronous dynamic random access memory (SDRAM) technologies), a platter of a hard disk drive, a flash memory device, or a magnetic or optical disc (such as a compact disk (CD), a digital versatile disk (DVD), or floppy disk).
- a memory semiconductor e.g. , a semiconductor utilizing static random access memory (SRAM), dynamic random access memory (DRAM), and/or synchronous dynamic random access memory (SDRAM) technologies
- SSDRAM synchronous dynamic random access memory
- CD compact disk
- DVD digital versatile disk
- floppy disk floppy disk
- the example non-transitory computer-readable medium 405 stores computer-readable data 410 that, when subjected to reading 415 by a reader 435 of a device 430 (e.g. , a read head of a hard disk drive, or a read operation invoked on a solid-state storage device), express the processor- executable instructions 420.
- the processor-executable instructions 420 when executed cause performance of operations, such as at least some of the example method 200 of FIG. 2, for example.
- the processor-executable instructions 420 are configured to cause implementation of a system, such as at least some of the example system 100 of FIG. 1 A, for example.
- FIG. 5 illustrates an example computing device 500 that is configured and/or programmed with one or more of the example systems and methods described herein, and/or equivalents.
- the example computing device 500 may be the computer 515 that includes a processor 520, a memory 535, and I/O ports 545 operably connected by a bus 525.
- the computer 515 may include logic of the transaction management module 105 configured to facilitate the system 100 and/or the method 200 shown in FIGS. 1 -2.
- the logic of the transaction management module 105 may be implemented in hardware, a non-transitory computer-readable medium 505 with stored instructions, firmware, and/or combinations thereof.
- the logic of the transaction management module 105 is illustrated as a hardware component attached to the bus 525, it is to be appreciated that in other embodiments, the logic of the transaction management module 105 could be implemented in the processor 520, stored in memory 535, or stored in disk 555.
- logic of the transaction management module 105 or the computer 515 is a means (e.g., structure: hardware, non-transitory computer-readable medium, firmware) for performing the actions described.
- the computing device may be a server operating in a cloud computing system, a server configured in a Software as a Service (SaaS) architecture, a smart phone, laptop, tablet computing device, and so on.
- SaaS Software as a Service
- the means may be implemented, for example, as an application specific integrated circuit (ASIC) programmed to implement rule based source sequencing for allocation.
- the means may also be implemented as stored computer executable instructions that are presented to computer 515 as data 510 that are temporarily stored in memory 535 and then executed by processor 520.
- the logic of the transaction management module 105 may also provide means (e.g., hardware, non-transitory computer-readable medium 505 that stores executable instructions, firmware) for performing rule based source sequencing for allocation.
- the processor 520 may be a variety of various processors including dual microprocessor and other multi-processor architectures.
- the memory 535 may include volatile memory and/or non-volatile memory.
- Non-volatile memory may include, for example, read-only memory (ROM), programmable read-only memory (PROM), and so on.
- Volatile memory may include, for example, random access memory (RAM), static random-access memory (SRAM), dynamic random access memory (DRAM), and so on.
- the disks 555 may be operably connected to the computer 515 via, for example, the I/O interface 540 (e.g. , card, device) and the I/O ports 545.
- the I/O interface 540 e.g. , card, device
- the disks 555 may be, for example, a magnetic disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, a memory stick, and so on. Furthermore, the disks 555 may be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, and so on.
- the memory 535 can store a process, such as within the non-transitory computer-readable medium 505, and/or data 510, for example.
- the disk 555 and/or the memory 535 can store an operating system that controls and allocates resources of the computer 515.
- the computer 515 may interact with input/output (I/O) devices via the I/O interfaces 540 and the I/O ports 545.
- the I/O devices may be, for example, a keyboard, a microphone, a pointing and selection device, cameras, video cards, displays, the disks 555, the network devices 550, and so on.
- the I/O ports 545 may include, for example, serial ports, parallel ports, and USB ports.
- I/O controllers 530 may connect the I/O interfaces 540 to the bus 525.
- the computer 515 can operate in a network environment and thus may be connected to the network devices 550 via the I/O interfaces 540, and/or the I/O ports 545. Through the network devices 550, the computer 515 may interact with a network. Through the network, the computer 515 may be logically connected to remote computers (e.g. , the computer 515 may reside within a distributed computing environment to which clients may connect). Networks with which the computer 515 may interact include, but are not limited to, a local area network (LAN), a new area network (WAN), and other networks.
- LAN local area network
- WAN new area network
- FIG. 6 is a diagram illustrating a system 600 in which an embodiment of the invention may be implemented.
- Enterprise network 604 may be associated with a business enterprise, such as a retailer, merchant, service provider, or other type of business.
- a business enterprise such as a retailer, merchant, service provider, or other type of business.
- ASP application service provider
- the business enterprise may comprise fewer or no dedicated facilities or business network at all, provided that its end users have access to an internet browser and an internet connection.
- the enterprise network 604 is represented by an on-site local area network 606 to which a plurality of personal computers 608 are connected, each generally dedicated to a particular end user, such as a service agent or other employee (although such dedication is not required), along with an exemplary remote user computer 610 that can be, for example, a laptop computer or tablet computer of a traveling employee having internet access through a public Wi-Fi access point, or other internet access method.
- the end users (consumers) associated with computers 608 and 610 may possess an internet-enabled smartphone or other electronic device (such as a PDA, tablet, laptop computer) having wireless internet access or other synchronization capabilities.
- Users of the enterprise network 604 interface with the integrated business system 602 across the Internet 612 or another suitable communications network or combination of networks.
- Integrated business system 602 which may be hosted by a dedicated third party, may include an integrated business server 614 and a web interface server 616, coupled as shown in FIG. 6. It is to be appreciated that either or both of the integrated business server 614 and the web interface server 616 may be implemented on one or more different hardware systems and components, even though represented as singular units in FIG. 6.
- integrated business server 614 comprises an ERP module 618 and further comprises a CRM module 620.
- ERP module 618 it will be desirable for the ERP module 618 to share methods, libraries, databases, subroutines, variables, etc. , with CRM module 620, and indeed ERP module 618 may be intertwined with CRM module 620 into an integrated Business Data Processing Platform (which may be single tenant, but is typically multi-tenant).
- the ERP module 618 may include, but is not limited to, a finance and accounting module, an order processing module, a time and billing module, an inventory management and distribution module, an employee management and payroll module, a calendaring and collaboration module, a reporting and security module, and other ERP-related modules.
- the CRM module 620 may include, but is not limited to, a sales force automation (SFA) module, a marketing automation module, a contact list module (not shown), a call center support module, a web-based customer support module, a reporting and security module, and other CRM-related modules.
- SFA sales force automation
- the integrated business server 614 (or multi- tenant data processing platform) further may provide other business functionalities including a web store/eCommerce module 622, a partner and vendor management module 624, and an integrated reporting module 630.
- An SCM (supply chain management) module 626 and PLM (product lifecycle management) module 628 may also be provided.
- Web interface server 616 is configured and adapted to interface with the integrated business server 614 to provide one or more web-based user interfaces to end users of the enterprise network 604. [0063] The integrated business system shown in FIG.
- a server is a physical computer dedicated to providing data storage and an execution environment for one or more software applications or services intended to serve the needs of the users of other computers that are in data communication with the server, for instance via a public network such as the Internet or a private "intranet” network.
- the server, and the services it provides, may be referred to as the "host” and the remote computers, and the software applications running on the remote computers, being served may be referred to as "clients.”
- clients Depending on the computing service(s) that a server offers it could be referred to as a database server, data storage server, file server, mail server, print server, web server, etc.
- a web server is a most often a combination of hardware and the software that helps deliver content, commonly by hosting a website, to client web browsers that access the web server via the Internet.
- FIG. 7 is a diagram illustrating elements or components of an example operating environment 700 in which an embodiment of the invention may be implemented.
- a variety of clients 702 incorporating and/or incorporated into a variety of computing devices may communicate with a distributed computing service/platform 708 through one or more networks 714.
- a client may incorporate and/or be incorporated into a client application (e.g., software) implemented at least in part by one or more of the computing devices.
- suitable computing devices include personal computers, server computers 704, desktop computers 706, laptop computers 707, notebook computers, tablet computers or personal digital assistants (PDAs) 710, smart phones 712, cell phones, and consumer electronic devices incorporating one or more computing device components, such as one or more electronic processors, microprocessors, central processing units (CPU), or controllers.
- suitable networks 714 include networks utilizing wired and/or wireless communication technologies and networks operating in accordance with any suitable networking and/or communication protocol (e.g., the Internet).
- the computing devices noted represent the endpoint of the customer support delivery process, i.e., the consumer's device.
- the distributed computing service/platform (which may also be referred to as a multi-tenant business data processing platform) 708 may include multiple processing tiers, including a user interface tier 716, an application server tier 720, and a data storage tier 724.
- the user interface tier 716 may maintain multiple user interfaces 718, including graphical user interfaces and/or web-based interfaces.
- the user interfaces may include a default user interface for the service to provide access to applications and data for a user or “tenant” of the service (depicted as “Service III” in the figure), as well as one or more user interfaces that have been specialized/customized in accordance with user specific requirements (e.g., represented by "Tenant A III", “Tenant Z III” in the figure, and which may be accessed via one or more APIs).
- the default user interface may include components enabling a tenant to administer the tenant's participation in the functions and capabilities provided by the service platform, such as accessing data, causing the execution of specific data processing operations, etc.
- Each processing tier shown in the figure may be implemented with a set of computers and/or computer components including computer servers and processors, and may perform various functions, methods, processes, or operations as determined by the execution of a software application or set of instructions.
- the data storage tier 724 may include one or more data stores, which may include a Service Data store 725 and one or more Tenant Data stores 726.
- Each tenant data store 726 may contain tenant-specific data that is used as part of providing a range of tenant-specific business services or functions, including but not limited to ERP, CRM, eCommerce, Human Resources management, payroll, etc.
- Data stores may be implemented with any suitable data storage technology, including structured query language (SQL) based relational database management systems (RDBMS).
- SQL structured query language
- RDBMS relational database management systems
- distributed computing service/platform 708 may be multi-tenant and service platform 708 may be operated by an entity in order to provide multiple tenants with a set of business related applications, data storage, and functionality.
- These applications and functionality may include ones that a business uses to manage various aspects of its operations.
- the applications and functionality may include providing web-based access to business information systems, thereby allowing a user with a browser and an Internet or intranet connection to view, enter, process, or modify certain types of business information.
- business information systems may include an Enterprise Resource Planning (ERP) system that integrates the capabilities of several historically separate business computing systems into a common system, with the intention of streamlining business processes and increasing efficiencies on a business-wide level.
- ERP Enterprise Resource Planning
- the capabilities or modules of an ERP system may include (but are not required to include, nor limited to only including): accounting, order processing, time and billing, inventory management, retail point of sale (POS) systems, eCommerce, product information management (PIM), demand/material requirements planning (MRP), purchasing, content management systems (CMS), professional services automation (PSA), employee management/payroll, human resources management, and employee calendaring and collaboration, as well as reporting and analysis capabilities relating to these functions.
- Such functions or business applications are typically implemented by one or more modules of software code/instructions that are maintained on and executed by one or more servers 722 that are part of the platform's Application Server Tier 720.
- CRM Customer Relationship Management
- SFA sales force automation
- RMA returns management authorization
- loyalty program support loyalty program support
- web-based customer support as well as reporting and analysis capabilities relating to these functions.
- a business information system/platform may also include one or more of an integrated partner and vendor management system, eCommerce system (e.g., a virtual storefront application or platform), product lifecycle management (PLM) system, Human Resources management system (which may include medical/dental insurance administration, payroll, etc.), or supply chain management (SCM) system.
- eCommerce system e.g., a virtual storefront application or platform
- PLM product lifecycle management
- Human Resources management system which may include medical/dental insurance administration, payroll, etc.
- SCM supply chain management
- Such functions or business applications are typically implemented by one or more modules of software code/instructions that are maintained on and executed by one or more servers 722 that are part of the platform's Application Server Tier 720.
- an integrated business system comprising ERP, CRM, and other business capabilities, as for example where the integrated business system is integrated with a merchant's eCommerce platform and/or "web-store."
- a customer searching for a particular product can be directed to a merchant's website and presented with a wide array of product and/or services from the comfort of their home computer, or even from their mobile phone.
- the integrated business system can process the order, update accounts receivable, update inventory databases and other ERP-based systems, and can also automatically update strategic customer information databases and other CRM-based systems.
- These modules and other applications and functionalities may advantageously be integrated and executed by a single code base accessing one or more integrated databases as necessary, forming an integrated business management system or platform.
- the integrated business system shown in FIG. 7 may be hosted on a distributed computing system made up of at least one, but typically multiple, "servers."
- a server is a physical computer dedicated to providing data storage and an execution environment for one or more software applications or services intended to serve the needs of the users of other computers that are in data communication with the server, for instance via a public network such as the Internet or a private "intranet” network.
- a business may utilize systems provided by a third party.
- a third party may implement an integrated business system/platform as described above in the context of a multi-tenant platform, wherein individual instantiations of a single comprehensive integrated business system are provided to a variety of tenants.
- One advantage to such multi-tenant platforms is the ability for each tenant to customize their instantiation of the integrated business system to that tenant's specific business needs or operational methods.
- Each tenant may be a business or entity that uses the multi-tenant platform to provide business data and functionality to multiple users. Some of those multiple users may have distinct roles or responsibilities within the business or entity.
- a tenant may desire to modify or supplement the functionality of an existing platform application by introducing an extension to that application, where the extension is to be made available to the tenant's employees and/or customers.
- an extension may be applied to the processing of the tenant's business related data that is resident on the platform.
- the extension may be developed by the tenant or by a 3rd party developer and then made available to the tenant for installation.
- the platform may include a "library" or catalog of available extensions, which can be accessed by a tenant and searched to identify an extension of interest.
- Software developers may be permitted to "publish" an extension to the library or catalog after appropriate validation of a proposed extension.
- a multi-tenant service platform may permit a tenant to configure certain aspects of the available service(s) to better suit their business needs.
- aspects of the service platform may be customizable, and thereby enable a tenant to configure aspects of the platform to provide distinctive services to their respective users or to groups of those users.
- a business enterprise that uses the service platform may want to provide additional functions or capabilities to their employees and/or customers, or to cause their business data to be processed in a specific way in accordance with a defined workflow that is tailored to their business needs, etc.
- Tenant custom izations to the platform may include custom functionality (such as the capability to perform tenant or user-specific functions, data processing, or operations) built on top of lower level operating system functions.
- Some multi-tenant service platforms may offer the ability to customize functions or operations at a number of different levels of the service platform, from aesthetic modifications to a graphical user interface to providing integration of components and/or entire applications developed by independent third party vendors. This can be very beneficial, since by permitting use of components and/or applications developed by third party vendors, a multi-tenant service can significantly enhance the functionality available to tenants and increase tenant satisfaction with the platform.
- an independent software developer may create an extension to a particular application that is available to users through a multi-tenant data processing platform.
- the extension may add new functionality or capabilities to the underlying application.
- tenants/users of the platform may wish to add the extension to the underlying application in order to be able to utilize the enhancements to the application that are made possible by the extension.
- the developer may wish to upgrade or provide a patch to the extension as they recognize a need for fixes or additional functionality that would be beneficial to incorporate into the extension.
- the developer may prefer to make the upgrade available to only a select set of users (at least initially) in order to obtain feedback for improving the newer version of the extension, to test the stability of the extension, or to assist them to segment the market for their extension(s).
- a non-transitory computer readable/storage medium is configured with stored computer executable instructions of an algorithm/executable application that when executed by a machine(s) cause the machine(s) (and/or associated components) to perform the method.
- Example machines include but are not limited to a processor, a computer, a server operating in a cloud computing system, a server configured in a Software as a Service (SaaS) architecture, a smart phone, and so on).
- SaaS Software as a Service
- a computing device is implemented with one or more executable algorithms that are configured to perform any of the disclosed methods.
- the disclosed methods or their equivalents are performed by either: computer hardware configured to perform the method; or computer instructions embodied in a module stored in a non- transitory computer-readable medium where the instructions are configured as an executable algorithm configured to perform the method when executed by at least a processor of a computing device.
- references to "one embodiment”, “an embodiment”, “one example”, “an example”, and so on, indicate that the embodiment(s) or example(s) so described may include a particular feature, structure, characteristic, property, element, or limitation, but that not every embodiment or example necessarily includes that particular feature, structure, characteristic, property, element or limitation. Furthermore, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, though it may.
- a "data structure”, as used herein, is an organization of data in a computing system that is stored in a memory, a storage device, or other computerized system.
- a data structure may be any one of, for example, a data field, a data file, a data array, a data record, a database, a data table, a graph, a tree, a linked list, and so on.
- a data structure may be formed from and contain many other data structures (e.g. , a database includes many data records). Other examples of data structures are possible as well, in accordance with other embodiments.
- Computer-readable medium or “computer storage medium”, as used herein, refers to a non-transitory medium that stores instructions and/or data configured to perform one or more of the disclosed functions when executed. Data may function as instructions in some embodiments.
- a computer-readable medium may take forms, including, but not limited to, non-volatile media, and volatile media. Non-volatile media may include, for example, optical disks, magnetic disks, and so on. Volatile media may include, for example, semiconductor memories, dynamic memory, and so on.
- a computer-readable medium may include, but are not limited to, a floppy disk, a flexible disk, a hard disk, a magnetic tape, other magnetic medium, an application specific integrated circuit (ASIC), a programmable logic device, a compact disk (CD), other optical medium, a random access memory (RAM), a read only memory (ROM), a memory chip or card, a memory stick, solid state storage device (SSD), flash drive, and other media from which a computer, a processor or other electronic device can function with.
- ASIC application specific integrated circuit
- CD compact disk
- RAM random access memory
- ROM read only memory
- memory chip or card a memory chip or card
- SSD solid state storage device
- flash drive and other media from which a computer, a processor or other electronic device can function with.
- Each type of media if selected for implementation in one embodiment, may include stored instructions of an algorithm configured to perform one or more of the disclosed and/or claimed functions.
- Logic represents a component that is implemented with computer or electrical hardware, a non-transitory medium with stored instructions of an executable application or program module, and/or combinations of these to perform any of the functions or actions as disclosed herein, and/or to cause a function or action from another logic, method, and/or system to be performed as disclosed herein.
- Equivalent logic may include firmware, a microprocessor programmed with an algorithm, a discrete logic (e.g., ASIC), at least one circuit, an analog circuit, a digital circuit, a programmed logic device, a memory device containing instructions of an algorithm, and so on, any of which may be configured to perform one or more of the disclosed functions.
- logic may include one or more gates, combinations of gates, or other circuit components configured to perform one or more of the disclosed functions. Where multiple logics are described, it may be possible to incorporate the multiple logics into one logic. Similarly, where a single logic is described, it may be possible to distribute that single logic between multiple logics. In one embodiment, one or more of these logics are corresponding structure associated with performing the disclosed and/or claimed functions. Choice of which type of logic to implement may be based on desired system conditions or specifications. For example, if greater speed is a consideration, then hardware would be selected to implement functions. If a lower cost is a consideration, then stored instructions/executable application would be selected to implement the functions.
- An "operable connection”, or a connection by which entities are “operably connected”, is one in which signals, physical communications, and/or logical communications may be sent and/or received.
- An operable connection may include a physical interface, an electrical interface, and/or a data interface.
- An operable connection may include differing combinations of interfaces and/or connections sufficient to allow operable control.
- two entities can be operably connected to communicate signals to each other directly or through one or more intermediate entities (e.g. , processor, operating system, logic, non- transitory computer-readable medium).
- Logical and/or physical communication channels can be used to create an operable connection.
- "User" as used herein, includes but is not limited to one or more persons, computers or other devices, or combinations of these.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- General Health & Medical Sciences (AREA)
- Child & Adolescent Psychology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020517988A JP6971395B2 (ja) | 2017-09-29 | 2018-03-20 | ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール |
| CN201880062805.5A CN111247550B (zh) | 2017-09-29 | 2018-03-20 | 用于区块链网络的计算机化交易管理模块 |
| EP18719993.0A EP3688708A1 (en) | 2017-09-29 | 2018-03-20 | Computerized transaction management module for blockchain networks |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN201721034642 | 2017-09-29 | ||
| IN201721034642 | 2017-09-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019064058A1 true WO2019064058A1 (en) | 2019-04-04 |
Family
ID=62046972
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2018/000368 Ceased WO2019064058A1 (en) | 2017-09-29 | 2018-03-20 | COMPUTERIZED TRANSACTION MANAGEMENT MODULE FOR BLOCK CHAIN NETWORKS |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US10592993B2 (enExample) |
| EP (1) | EP3688708A1 (enExample) |
| JP (1) | JP6971395B2 (enExample) |
| CN (1) | CN111247550B (enExample) |
| WO (1) | WO2019064058A1 (enExample) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112306648A (zh) * | 2020-10-29 | 2021-02-02 | 平安科技(深圳)有限公司 | 事务调用方法、装置、电子设备及存储介质 |
| JP2022549367A (ja) * | 2019-09-30 | 2022-11-24 | セールスフォース ドット コム インコーポレイティッド | 複数のレベルを有する階層を可能にするネスト化テナンシー |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110046156A (zh) | 2018-12-20 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 基于区块链的内容管理系统及方法、装置、电子设备 |
| US10991045B2 (en) * | 2019-04-29 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Blockchain-based settlement method, apparatus, and electronic device |
| CN111553669B (zh) * | 2020-04-28 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 一种交易路由方法、装置及计算机可读存储介质 |
| US11556517B2 (en) | 2020-05-17 | 2023-01-17 | International Business Machines Corporation | Blockchain maintenance |
| US12041160B2 (en) * | 2020-08-31 | 2024-07-16 | International Business Machines Corporation | Redactable blockchain |
| CN112478518B (zh) * | 2020-12-23 | 2021-11-02 | 浙江星霸环保工程有限公司 | 基于区块链的垃圾分类投放装置 |
| TWI778478B (zh) * | 2020-12-25 | 2022-09-21 | 中國信託商業銀行股份有限公司 | 交易資料整合設備與交易資料整合方法 |
| US20220029814A1 (en) * | 2021-06-02 | 2022-01-27 | Fujitsu Limited | Non-transitory computer-readable storage medium, information processing method, and information processing apparatus |
| US12073399B2 (en) * | 2021-09-13 | 2024-08-27 | Shopify Inc. | Systems and methods for blockchain network congestion-adaptive digital asset event handling |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100205093A1 (en) * | 2006-10-16 | 2010-08-12 | Q2 Software, Inc. | Method and system for an inter-financial institution transactional network |
| US20140236811A1 (en) * | 2013-02-15 | 2014-08-21 | Uniloc Luxembourg S.A. | Efficient inter-bank funds transfers |
| US20170236104A1 (en) * | 2016-02-12 | 2017-08-17 | D+H Usa Corporation | Peer-to-Peer Financial Transactions Using A Private Distributed Ledger |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2835636A1 (fr) * | 2002-02-07 | 2003-08-08 | Carmel Giacopino | Systeme permettant d'effectuer des echanges d'information et des transactions |
| JP2005214779A (ja) * | 2004-01-29 | 2005-08-11 | Xanavi Informatics Corp | ナビゲーション装置および地図データ更新方法 |
| US10491662B2 (en) * | 2011-01-27 | 2019-11-26 | Computenext, Inc. | Dynamically organizing cloud computing resources to facilitate discovery |
| US10490304B2 (en) | 2012-01-26 | 2019-11-26 | Netspective Communications Llc | Device-driven non-intermediated blockchain system over a social integrity network |
| US10855760B2 (en) * | 2013-11-07 | 2020-12-01 | Cole Asher Ratias | Systems and methods for synchronizing content and information on multiple computing devices |
| US20170236084A1 (en) * | 2013-12-12 | 2017-08-17 | NetSuite Inc. | System and methods for implementing custom transactions within a multi-tenant platform |
| SG11201708000PA (en) | 2015-03-31 | 2017-10-30 | Nasdaq Inc | Systems and methods of blockchain transaction recordation |
| US10097356B2 (en) * | 2015-07-02 | 2018-10-09 | Nasdaq, Inc. | Systems and methods of secure provenance for distributed transaction databases |
| US11488147B2 (en) * | 2015-07-14 | 2022-11-01 | Fmr Llc | Computationally efficient transfer processing and auditing apparatuses, methods and systems |
| US20170048209A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
| US20170017936A1 (en) * | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
| US11562353B2 (en) * | 2015-11-24 | 2023-01-24 | Mastercard International Incorporated | Method and system for gross settlement by use of an opaque blockchain |
| EP3411824B1 (en) | 2016-02-04 | 2019-10-30 | Nasdaq Technology AB | Systems and methods for storing and sharing transactional data using distributed computer systems |
| US10475030B2 (en) * | 2016-02-22 | 2019-11-12 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
| SG10202011641RA (en) * | 2016-02-23 | 2021-01-28 | Nchain Holdings Ltd | Tokenisation method and system for implementing exchanges on a blockchain |
| CN106055597B (zh) * | 2016-05-24 | 2022-05-20 | 布比(北京)网络技术有限公司 | 数字交易系统、及用于其的账户信息查询方法 |
| WO2018006072A1 (en) * | 2016-06-30 | 2018-01-04 | Clause, Inc. | Systems and method for forming, storing, managing,and executing contracts |
| GB201611948D0 (en) * | 2016-07-08 | 2016-08-24 | Kalypton Int Ltd | Distributed transcation processing and authentication system |
| CN111083220B (zh) | 2016-08-29 | 2022-08-12 | 中国银联股份有限公司 | 提供金融服务应用的方法 |
| CN106504089A (zh) | 2016-10-14 | 2017-03-15 | 平安科技(深圳)有限公司 | 基于区块链的基金申购交易方法及系统 |
| WO2018106879A1 (en) * | 2016-12-07 | 2018-06-14 | Coogan Pushner Diane | Municipal solvency index |
| CN107077674B (zh) * | 2016-12-29 | 2021-06-11 | 达闼机器人有限公司 | 交易验证处理方法、装置及节点设备 |
| GB2559165A (en) * | 2017-01-29 | 2018-08-01 | Cabrera Fernandez Florencio | Blockchain zero checksum trading system |
| US10225078B2 (en) * | 2017-02-09 | 2019-03-05 | International Business Machines Corporation | Managing a database management system using a blockchain database |
| GB2559592A (en) * | 2017-02-09 | 2018-08-15 | Mollah Stephen | Blockchain (ML) Technology |
| US10452998B2 (en) * | 2017-03-19 | 2019-10-22 | International Business Machines Corporation | Cognitive blockchain automation and management |
| CN107194798B (zh) * | 2017-04-28 | 2021-07-20 | 广东网金控股股份有限公司 | 一种基于区块链联盟链的银行清算方法 |
| WO2019089654A1 (en) * | 2017-10-30 | 2019-05-09 | Pricewaterhousecoopers Llp | Implementation of continuous real-time validation of distributed data storage systems |
-
2018
- 2018-03-19 US US15/924,784 patent/US10592993B2/en active Active
- 2018-03-20 WO PCT/IB2018/000368 patent/WO2019064058A1/en not_active Ceased
- 2018-03-20 CN CN201880062805.5A patent/CN111247550B/zh active Active
- 2018-03-20 EP EP18719993.0A patent/EP3688708A1/en active Pending
- 2018-03-20 JP JP2020517988A patent/JP6971395B2/ja active Active
-
2020
- 2020-03-16 US US16/819,392 patent/US11348187B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100205093A1 (en) * | 2006-10-16 | 2010-08-12 | Q2 Software, Inc. | Method and system for an inter-financial institution transactional network |
| US20140236811A1 (en) * | 2013-02-15 | 2014-08-21 | Uniloc Luxembourg S.A. | Efficient inter-bank funds transfers |
| US20170236104A1 (en) * | 2016-02-12 | 2017-08-17 | D+H Usa Corporation | Peer-to-Peer Financial Transactions Using A Private Distributed Ledger |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022549367A (ja) * | 2019-09-30 | 2022-11-24 | セールスフォース ドット コム インコーポレイティッド | 複数のレベルを有する階層を可能にするネスト化テナンシー |
| JP7397977B2 (ja) | 2019-09-30 | 2023-12-13 | セールスフォース インコーポレイテッド | 複数のレベルを有する階層を可能にするネスト化テナンシー |
| CN112306648A (zh) * | 2020-10-29 | 2021-02-02 | 平安科技(深圳)有限公司 | 事务调用方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3688708A1 (en) | 2020-08-05 |
| US10592993B2 (en) | 2020-03-17 |
| CN111247550A (zh) | 2020-06-05 |
| CN111247550B (zh) | 2023-08-15 |
| US20200219203A1 (en) | 2020-07-09 |
| JP2020535550A (ja) | 2020-12-03 |
| US20190102842A1 (en) | 2019-04-04 |
| JP6971395B2 (ja) | 2021-11-24 |
| US11348187B2 (en) | 2022-05-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11348187B2 (en) | Computerized transaction management module for blockchain networks | |
| US10977629B2 (en) | Computerized messaging module for blockchain networks | |
| US11635993B2 (en) | Computerized control of execution pipelines | |
| US11379438B2 (en) | Database migration between computing platforms using virtual backups | |
| AU2019236628B2 (en) | Integrated entity view across distributed systems | |
| US11366805B2 (en) | Integrated entity view across distributed systems | |
| US9582594B2 (en) | Method and system for centralized issue tracking | |
| US11036682B2 (en) | Flexible energy information aggregation | |
| US11757990B2 (en) | Data synchronization in a cloud computing environment | |
| US11068286B2 (en) | Smart context aware support engine for applications | |
| US11005838B2 (en) | Computer implemented monitoring process for personalized event detection and notification transmission | |
| US10572302B2 (en) | Computerized methods and systems for executing and analyzing processes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18719993 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2020517988 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2018719993 Country of ref document: EP Effective date: 20200429 |