JP2020535550A - ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール - Google Patents

ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール Download PDF

Info

Publication number
JP2020535550A
JP2020535550A JP2020517988A JP2020517988A JP2020535550A JP 2020535550 A JP2020535550 A JP 2020535550A JP 2020517988 A JP2020517988 A JP 2020517988A JP 2020517988 A JP2020517988 A JP 2020517988A JP 2020535550 A JP2020535550 A JP 2020535550A
Authority
JP
Japan
Prior art keywords
transaction
parent
child
hard
instruction
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.)
Granted
Application number
JP2020517988A
Other languages
English (en)
Other versions
JP2020535550A5 (ja
JP6971395B2 (ja
Inventor
パンディアン,マヘンドラン・ムース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle Financial Services Software Ltd
Original Assignee
Oracle Financial Services Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle Financial Services Software Ltd filed Critical Oracle Financial Services Software Ltd
Publication of JP2020535550A publication Critical patent/JP2020535550A/ja
Publication of JP2020535550A5 publication Critical patent/JP2020535550A5/ja
Application granted granted Critical
Publication of JP6971395B2 publication Critical patent/JP6971395B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/229Hierarchy of users of accounts
    • G06Q20/2295Parent-child type, e.g. where parent has control on child rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/386Payment protocols; Details thereof using messaging services or messaging apps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Business processing using cryptography

Abstract

ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連するシステム、方法および他の実施形態を記載する。一実施形態においては、方法は、第1のエンティティのハードコード化されたプロパティのスタティックメンテナンステーブルを維持するステップを含む。例示的な方法は、閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブルを維持するステップを含み得る。例示的な方法はまた、閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブルを維持するステップを含み得る。例示的な方法はまた、ブロックチェーンネットワークを介して通信すべきトランザクションを受取るステップと、ハードコード化されたプロパティを用いてトランザクションを確認するステップとを含み得る。例示的な方法はまた、親トランザクションテーブルおよび子トランザクションテーブルに値をポピュレートするステップと、このようなテーブルを用いて、ブロックチェーンネットワークを介するトランザクションの通信を容易にするステップとを含み得る。

Description

背景
多くのエンティティは、ネットワークを介してデータを通信するためにコンピュータを利用する。第1の銀行は、第2の銀行への送金などの銀行トランザクションを実行するために第2の銀行にトランザクションを送信することができる。安全なオンライントランザクションを容易にするために使用することができるネットワークの1タイプとしてブロックチェーンネットワークが挙げられる。ブロックチェーンネットワークは分散型および分配型のデジタル台帳であって、後続の全ブロックを変更したりブロックチェーンネットワークの結託させたりしなければ記録を遡及して変更することができないように、複数のコンピュータにわたるトランザクションを記録するために用いられている。これにより、関与者がトランザクションを低費用で検証および監査することが可能となる。このようにして、ブロックチェーンネットワークは高度なデータセキュリティを提供する。
エンティティが使用できる多くのブロックチェーンネットワークプロバイダが存在している。各々のエンティティは、ブロックチェーンネットワークを用いるためのさまざまなビジネス使用事例などの、ブロックチェーンネットワークにアクセスして使用する方法をそれら自体で実現し得る。したがって、特定のブロックチェーンネットワークプロバイダが如何にブロックチェーンネットワークを実現するかに応じて、特定用途向けのアプリケーションをその特定のブロックチェーンネットワークプロバイダに書込んで調整しなければならない。このアプリケーションも、エンティティがブロックチェーンネットワークへのアクセスおよびその使用をどのように実現し得るかに合わせてカスタマイズされなければならない。ビジネス使用事例ごとおよびブロックチェーンプロバイダごとにカスタムコードを作成し、格納し、維持することは非効率的であり、かなりの量のコンピューティングリソースを浪費してしまう。
概要
一実施形態において記載されている非一時的なコンピュータ読取り可能媒体および/またはコンピュータプログラムは、コンピュータ実行可能命令を格納している。コンピュータ実行可能命令は、コンピュータのプロセッサによって実行されると、当該プロセッサに、
第1のエンティティのハードコード化されたプロパティを含むスタティックメンテナンステーブルを維持させ、ハードコード化された値は、ホスト名、プロキシ、エンティティ識別子またはレプレゼンテーショナル・ステート・トランスファ(representational state transfer:REST)ユニフォーム・リソース・ロケータ(uniform resource locator:URL)のうち少なくとも1つを含み、当該コンピュータ実行可能命令はさらに、
閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブルを維持させ、当該親トランザクションテーブルは主親キーおよび主子キーを含み、当該コンピュータ実行可能命令はさらに、
当該閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブルを維持させ、子トランザクションテーブルは、主親キー、主子キー、および親トランザクションテーブルの名前を含み、当該コンピュータ実行可能命令はさらに、
ブロックチェーンネットワークを介して当該エンティティの第1のコンピューティングデバイスと第2のエンティティの第2のコンピューティングデバイスとの間で通信するためにトランザクションを受取らせ、
スタティックメンテナンステーブル内のハードコード化されたプロパティを用いてトランザクションを確認させ、
トランザクションの引数の順序に従って、親トランザクションテーブルのカラムおよび子トランザクションテーブルのカラムに値をポピュレートさせ、
親トランザクションテーブルおよび子トランザクションテーブルを利用して、ブロックチェーンネットワークを介する、第2のコンピューティングデバイスに対するトランザクションの通信を容易にさせる。
1つ以上の他の実施形態においては、非一時的なコンピュータ読取り可能媒体は以下の特徴の1つ以上の組合せを実行するために、実行可能命令を、上述の特徴と組合わせて含み得る。当該以下の特徴は、
親トランザクションテーブルおよび子トランザクションテーブルを利用して、ブロックチェーンネットワークを介する第2のコンピューティングデバイスに対するトランザクションの通信を容易にする特徴と、
テーブルオブジェクトファイルを利用して、テーブルオブジェクトファイル内のテーブル構造情報を用いてスタティックメンテナンステーブル、親トランザクションテーブルおよび子トランザクションテーブルを作成する特徴と、
ハードコード化されたプロパティをスタティックメンテナンステーブルに追加する機能を実行する特徴と、
スタティックメンテナンステーブル内のハードコード化されたプロパティを更新する機能を実行する特徴と、
ハードコード化されたプロパティを無効にするとともに、ハードコード化されたプロパティが用いられるという判断に応じて、ハードコード化されたプロパティを有効にする機能を実行する特徴と、
ブロックチェーンネットワークを介して第2のエンティティと通信するのに用いられる、ハードコード化されたプロパティのセットを識別するためにスタティックメンテナンステーブルにクエリするとともに、ハードコード化されたプロパティのセットを用いて、ブロックチェーンネットワークを介してトランザクションを送信する特徴と、
最初のトランザクションであるトランザクションに基づいてトランザクションのトランザクション識別子を主親キーとして格納する特徴と、
カレントトランザクションのカレントトランザクション識別子を主子キーとして格納する特徴とを含む。
別の実施形態においては、この明細書中に開示されるコンピュータシステムは、メモリに接続されたプロセッサと、非一時的なコンピュータ読取り可能媒体に格納されるとともに命令で構成されたトランザクション管理モジュールとを含む。当該命令は、プロセッサによって実行されると、当該プロセッサに、
第1のエンティティのハードコード化されたプロパティを含むスタティックメンテナンステーブルを維持させ、ハードコード化された値は、ホスト名、プロキシ、エンティティ識別子またはレプレゼンテーショナル・ステート・トランスファ(REST)ユニフォーム・リソース・ロケータ(URL)のうち少なくとも1つを含み、当該命令はさらに、
閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブルを維持させ、当該親トランザクションテーブルは主親キーおよび主子キーを含み、当該命令はさらに、
当該閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブルを維持させ、子トランザクションテーブルは、主親キー、主子キー、および親トランザクションテーブルの名前を含み、当該命令はさらに、
ブロックチェーンネットワークを介して当該エンティティの第1のコンピューティングデバイスと第2のエンティティの第2のコンピューティングデバイスとの間で通信するためにトランザクションを受取らせ、
スタティックメンテナンステーブル内のハードコード化されたプロパティを用いてトランザクションを確認させ、
トランザクションの引数の順序に従って、親トランザクションテーブルのカラムおよび子トランザクションテーブルのカラムに値をポピュレートさせ、
親トランザクションテーブルおよび子トランザクションテーブルを利用して、ブロックチェーンネットワークを介する第2のコンピューティングデバイスに対するトランザクションの通信を容易にさせる。
1つ以上の他の実施形態においては、コンピュータシステムはさらに、以下の特徴のうち1つ以上の組合せを実行するための実行可能命令を、上述の特徴と組合わせて、含む。当該以下の特徴は、
親トランザクションテーブルおよび子トランザクションテーブルのうち少なくとも1つにトランザクションの状態を格納するために用いられる状態カラムをポピュレートする特徴と、
親トランザクションテーブルおよび子トランザクションテーブルのうち少なくとも1つに、トランザクションの宛先を追跡するために用いられる宛先エンティティカラムと、トランザクションの発信元を追跡するために用いられる発信元エンティティカラムとをポピュレートする特徴と、
親トランザクションテーブルおよび子トランザクションテーブル内のカラムの数を判断するためにテーブルオブジェクトファイルを反復処理することにより更新の引数の数を確認することと、引数の数をカラムの数に対応するものと確認することに応じて、引数の順序に従って値を挿入するために親トランザクションテーブルおよび子トランザクションテーブルを反復処理することによって更新を実現することと、によって、トランザクションを更新する機能を実行する特徴と、
トランザクションについての要求を受取り、トランザクションのデータにアクセスするために子主キーと、親主キーとを用いて子トランザクションテーブルにクエリし、トランザクションのデータにアクセスするために親主キーを用いて親トランザクションテーブルにクエリする特徴とを含み、
子主キーはカレントトランザクション識別子を含み、当該以下の特徴はさらに、
失敗したトランザクションのアレイリストを維持し、アレイリスト内の失敗したトランザクションのために最後のトランザクション通信を試みてから経過する時間のしきい値量に応じて、失敗したトランザクションをブロックチェーンネットワークを介して送信しようと試みる特徴を含む。
明細書において援用され、その一部を構成する添付の図面は、開示されているさまざまなシステム、方法および他の実施形態を示す。図に例示される要素の境界(たとえば、箱、箱の群または他の形状)が、これら境界の一実施形態を表わすことが認識され得る。いくつかの実施形態においては、1つの要素が複数の要素として実現されてもよく、または、複数の要素が1つの要素として実現されてもよい。いくつかの実施形態においては、別の要素の内部コンポーネントとして示される要素が外部コンポーネントとして実現されてもよく、この逆であってもよい。さらに、要素は縮尺通りには図示されないこともある。
ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連するシステムの一実施形態を示す図である。 スタティックメンテナンステーブル、親トランザクションテーブルおよび子トランザクションテーブルの一実施形態を示す図である。 ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連する方法の一実施形態を示す図である。 トランザクションに関連付けられたメッセージが或るアプリケーションから第2のアプリケーションに送信されている、ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連するシステムの一実施形態を示す図である。 アプリケーションが第2のアプリケーションからのトランザクションに関連付けられたメッセージを受取っている、ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連するシステムの一実施形態を示す図である。 非一時的なコンピュータ読取り可能媒体の一実施形態を示す図である。 開示された例示的なシステムおよび/または方法で構成されるコンピューティングシステムの一実施形態を示す図である。 本発明の一実施形態が実現され得る、統合型ビジネスシステムおよびエンタープライズネットワークの一実施形態を示す図である。 マルチテナント分散型コンピューティングサービスプラットフォームの一実施形態を示す図である。
詳細な説明
ブロックチェーンネットワークを介して通信されるトランザクションを管理する、コンピュータ化されたシステムおよび方法をこの明細書中に記載する。チェーンコード付きのハイパーレッジャーコンポーネントなどのトランザクション管理モジュールは、さまざまなタイプのブロックチェーンネットワークおよび/またはブロックチェーンネットワークの将来のインプリメンテーションに接続するとともにそれらを介して通信するように構成可能である。各々のブロックチェーンプロバイダは、他のブロックチェーンプロバイダによるインプリメンテーションとは異なり得るブロックチェーンネットワークのそれら自体のインプリメンテーションを提供することができるので、トランザクション管理モジュールは、ブロックチェーンネットワークの現在のインプリメンテーションと将来のインプリメンテーションとに接続するための拡張可能なメカニズムを提供している。このようにして、相当な量のコンピューティングリソースおよびストレージリソースを保存することができる。なぜなら、ブロックチェーンネットワークのタイプごとにカスタムのプログラミングコードの書込み、格納および実行を行なう必要がないからである。
トランザクション管理モジュールはまた、ブロックチェーンネットワークを介して通信することとなっているさまざまなタイプのアプリケーションに接続して当該さまざまなタイプのアプリケーションと通信するように構成可能である。このため、トランザクション管理モジュールは、使用事例ごとにカスタムプログラミングコードを作成する必要なしに、さまざまなタイプのビジネス使用事例のインプリメンテーションを容易にすることができる。このようにして、トランザクション管理モジュールは、さまざまなコンピューティングデバイスによってホストされるアプリケーション間でトランザクションなどのメッセージのルーティングを容易にすることができる。
図1Aを参照すると、ブロックチェーンネットワーク115を介して通信されるトランザクションの管理に関連するコンピュータシステム100の一実施形態が示される。コンピュータシステム100は、図5のコンピュータ515などのコンピュータ上で実行するように構成可能なトランザクション管理モジュール105を含む。トランザクション管理モジュール105は、さまざまなタイプのブロックチェーンネットワークを介したさまざまなタイプのアプリケーション間でのさまざまな使用事例についてのメッセージの送信を容易にするように構成されている。一実施形態においては、トランザクション管理モジュール105は、第1の銀行と第2の銀行との間のトランザクションを容易にするなどのために、第1の銀行の第1の銀行アプリケーションと第2の銀行の第2の銀行アプリケーションとの間にブロックチェーンネットワーク115を介する通信を提供するように構成される。いくつかの例において、トランザクションおよびメッセージという語は、ブロックチェーンネットワークを介する2つのエンティティ間またはコンピューティングデバイス間の通信を指すものとして同義で使用できることが認識され得る。
トランザクション管理モジュール105は、テーブルオブジェクトファイルを利用して、スタティックメンテナンステーブル125、親トランザクションテーブル130、子トランザクションテーブル135、および/または、ブロックチェーンネットワーク115を介するトランザクションをルーティングするために利用される他のテーブルを作成することができる。一実施形態においては、テーブルオブジェクトファイルは、テーブルjsonファイル、または、XMLなどの他の何らかのデータフォーマットを有するファイルを含む。テーブルオブジェクトファイルは、データベース内にテーブルを作成するために使用することができるデータを含む。テーブルオブジェクトファイルは、トランザクションデータを格納するであろうテーブルについての構造フォーマット、たとえば、特定のテーブル、カラム、ロウ、予想されるデータタイプなどを規定する構造フォーマットなど、を含み得る。このようにして、テーブルオブジェクトファイル内のテーブル構造情報を用いてテーブルを作成する。
トランザクション管理モジュール105は、第1のエンティティのハードコード化されたプロパティを格納するためにスタティックメンテナンステーブル125を維持する。第1のエンティティが銀行である一実施形態においては、ハードコード化されたプロパティは、銀行コード、プロキシ、トランザクションを処理するための銀行のビジネス論理(たとえば、銀行への/からの送金を処理するための論理)、銀行識別子などを含む。トランザクション管理モジュール105は、銀行プロパティがハードコード化され、適切に維持され、必要に応じて更新され、必要に応じて呼出されることを確実にする。一実施形態においては、ハードコード化されたプロパティは、銀行のサーバ/サービスのホスト名、プロキシ、銀行の銀行コードなどのエンティティ識別子、および/または、金融銀行アダプタが機能しているレプレゼンテーショナル・ステート・トランスファ(REST)ユニフォーム・リソース・ロケータ(URL)を含む。トランザクション管理モジュール105は、ハードコード化されたプロパティを追加し、ハードコード化されたプロパティを更新し、ハードコード化されたプロパティを無効にし、および/または、ハードコード化されたプロパティを有効にする機能を実行するように構成される。
別の実施形態においては、スタティックメンテナンステーブル125は、図1Bに示されるように、銀行識別子カラム、銀行コードカラム、プロキシカラム、ホスト名カラム、ハイパーレッジャーカラムおよびREST URLカラムのうち1つ以上を含む。銀行名または他の銀行識別子は銀行識別子カラム内にポピュレートされる。銀行を世界的に識別する国際銀行コード(国際銀行間通信協会(Society for Worldwide Interbank Financial Telecommunication:SWIFT)コードまたは銀行識別コード(Bank Identification Code:BIC)は、銀行コードカラム内にポピュレートされる。プロキシならびに/または他のシステムおよび機能関連のユーティリティのプロパティはプロキシカラム内にポピュレートされる。銀行サーバ/サービスのホスト名はホスト名カラム内にポピュレートされる。銀行によって用いられているハイパーレッジャーは、ハイパーレッジャーカラム内にポピュレートされる。ハイパーレッジャーは、銀行のトランザクションを記録するために銀行によって用いられる。銀行のRESTfulウェブサービスのURLなどの銀行のREST URLは、REST URLカラムに格納される。
トランザクション管理モジュール105は、稀にしか更新されない銀行データなどの、閾値頻度よりも低い頻度で更新されるデータのカラムを含むように親トランザクションテーブル130を維持する。親トランザクションテーブル130は、(たとえば、最初のトランザクションの最初のトランザクション識別子に対応する)親トランザクションテーブル130の主親キーと、(たとえば、カレントトランザクションのカレントトランザクション識別子に対応する)子トランザクションテーブル135の主子キーとを含む。
一実施形態においては、親トランザクションテーブル130は、図1Bに示されるように、希にしか更新されない銀行およびトランザクションデータの1つ以上のカラム、状態カラム、トランザクション宛先カラム、トランザクション発信元カラム、応答データカラム、ならびに、通知送信側/受信側カラムを含む。親トランザクションテーブル130の各々のロウは特定のトランザクションに対応し得る。(たとえばトランザクションが最初にハイパーレッジャーを入力するときに)未処理である、処理の準備ができている、および/または、他のトランザクション処理段階などのトランザクションの状態が状態カラム内にポピュレートされる。トランザクションの宛先銀行がトランザクション宛先カラム内にポピュレートされ、トランザクションの発信元銀行がトランザクション発信元カラム内にポピュレートされる。応答データカラムは、さまざまなトランザクション処理段階に基づいて発信元銀行と宛先銀行との間で定期的に交換される情報を格納するために用いられる。発信元銀行(送信側)および宛先銀行(受信側)に短いトランザクションメッセージが送信されるべきであるかどうかを示すブール値が通知送信側/受信側カラム内に格納される。
トランザクション管理モジュール105は、頻繁に更新される銀行データなどの閾値頻度よりも高い頻度で更新されるデータのカラムを含むように子トランザクションテーブル135を維持する。子トランザクションテーブル135は、主親キー、主子キー、および親トランザクションテーブル130の名前を含む。一実施形態においては、子トランザクションテーブル135は、図1Bに示されるように、頻繁に更新された銀行およびトランザクションデータの1つ以上のカラム、状態カラム、トランザクション宛先カラム、トランザクション発信元カラム、応答データカラム、ならびに、通知送信側/受信側カラムを含む。子トランザクションテーブル135の各ロウは特定のトランザクションに対応し得る。未処理である、処理の準備ができている、および/または、他のトランザクション処理段階などのトランザクションの状態が状態カラム内にポピュレートされる。トランザクションの宛先銀行がトランザクション宛先カラム内にポピュレートされるとともに、トランザクションの発信元銀行がトランザクション発信元カラム内にポピュレートされる。応答データカラムは、さまざまなトランザクション処理段階に基づいて発信元銀行と宛先銀行との間で定期的に交換される情報を格納するために用いられる。発信元銀行(送信側)および宛先銀行(受信側)に短いトランザクションメッセージが送信されるべきであるかどうかを示すブール値が通知送信側/受信側カラム内に格納される。
トランザクション管理モジュール105は、ブロックチェーンネットワーク115を介して第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間で通信するためにトランザクションを受取る。一実施形態においては、トランザクションがアプリケーション110によって作成されていた。アプリケーション110はメッセージングモジュール140にトランザクションを送信する。次いで、このトランザクションは、ブロックチェーンネットワーク115を介してコンピューティングデバイス120に送信するためにメッセージングモジュール140からトランザクション管理モジュール105に送信される。別の実施形態においては、トランザクションが、コンピューティングデバイス120からブロックチェーンネットワーク115を介してトランザクション管理モジュール105によって受取られる。このトランザクションは、トランザクション管理モジュール105からメッセージングモジュール140にルーティングされて、処理されるとともにアプリケーション110に送達されることとなる。
トランザクション管理モジュール105は、スタティックメンテナンステーブル125内のハードコード化されたプロパティを用いてトランザクションを確認する。一実施形態においては、ハードコード化されたプロパティは、発信元銀行コードおよび宛先銀行コードが有効であるかどうか、トランザクションが適切なセキュリティおよび認証を有しているかどうか、などを判断するために用いられる。一実施形態においては、トランザクションの銀行コード(または銀行識別子)は、当該銀行コードが維持されている発信元コードのリストに属するかどうかを最初に判断することによって確認される。次に、銀行コードが維持されている宛先コードのリストに属するかどうかが判断される。最後に、発信元銀行コードおよび宛先銀行コードが同じではないことを確実にするための判断がなされる。確認がなされると、トランザクションの引数と同じ順序で値をテーブルにポピュレートすることによって、親トランザクションテーブル130および/または子トランザクションテーブル135にトランザクションが追加される。
トランザクション管理モジュール105は、トランザクションの引数の順序に従って、親トランザクションテーブル130および/または子トランザクションテーブル135のカラムに値をポピュレートするように構成される。トランザクション管理モジュール105は、最初のトランザクションであるトランザクションに基づいてトランザクションのトランザクション識別子を主親キーとして格納してもよい。トランザクションがカレントトランザクションである場合、トランザクション管理モジュール105はトランザクション識別子を主子キーとして格納してもよい。トランザクション管理モジュール105は、トランザクションの状態を格納するために用いられる状態カラムをテーブルにポピュレートしてもよい。状態は、未処理である、処理の準備ができているなどの現在のトランザクション処理段階に基づいて変化し得る。トランザクション管理モジュール105は、トランザクションの宛先を追跡するために用いられる宛先エンティティカラム(たとえば、宛先銀行名および/またはコード)と、トランザクションの発信元を追跡するために用いられる発信元エンティティカラム(たとえば、発信元銀行名および/またはコード)とをテーブルにポピュレートすることができる。トランザクション管理モジュール105は、さまざまなトランザクション処理段階に基づいて発信元と宛先との間で定期的に交換される情報(たとえば、閾値頻度よりも高い頻度でアクセスされる情報、処理される情報、送信される情報など)を格納するために用いられる応答カラムをテーブルにポピュレートすることができる。トランザクション管理モジュール105は、トランザクションからの更新済みの値を含む短いメッセージが発信元に送信されるべきかどうかを示す、ブール値などの通知送信側変数をテーブルにポピュレートすることができる。
トランザクションを追加する一実施形態においては、トランザクション管理モジュール105は、スタティックメンテナンステーブル125内のハードコード化されたプロパティでトランザクションの銀行識別子および/または銀行コードを確認することにより、トランザクションをテーブル内に追加する。一実施形態においては、トランザクションの銀行コードのうち1つの銀行コードが維持された宛先銀行コードのリスト内にある場合にトランザクションの銀行コードのうち別の銀行コードが維持された発信元銀行コードのリスト内にあるかどうか、および/または、発信元銀行コードと宛先銀行コードとが異なっているかどうかについての判断がなされる。確認後、親キーカラムおよび子キーカラムを最初の2つのカラムとして親トランザクションテーブル130内に追加することなどによって、親キーカラムおよび子キーカラムを親トランザクションテーブル130内に追加することによって、トランザクションが追加される。親トランザクションテーブル130は、トランザクションの引数と同じ順序でトランザクションの値を親トランザクションテーブル130に入力することによって反復される。次に、子トランザクションテーブル135に最初の2つのカラムとして追加されるような、主子キーおよび主親キーなどの子キーおよび親キーの各々が子トランザクションテーブル135に追加される。子トランザクションテーブル135は、トランザクションの引数と同じ順序でトランザクションの値を子トランザクションテーブル135に入力することによって反復される。
トランザクションを更新する一実施形態においては、更新すべきテーブルにおけるカラムの数を識別するためにテーブルを作成するのに用いられるテーブルオブジェクトファイルを反復処理することによって更新の引数の数を検証することにより、更新が確認される。トランザクションは、更新の引数と同じ順序で更新からの値を入力することにより、対象となるテーブルを反復処理することによって更新される。主子キーなどの子キーは、子トランザクションテーブル135および親トランザクションテーブル130において更新される。
トランザクションにクエリする一実施形態においては、トランザクション管理モジュール105は、主子キーおよび主親キーの概念を用いてトランザクションにクエリする。このトランザクションは、カレントトランザクション識別子と等しい主子キーを用いて、子トランザクションテーブル135からカラムをフェッチすることによってクエリされる。これにより、頻繁に更新されるカラムのデータが提供される。カレントトランザクション識別子としての主子キーは、それほど頻繁に更新されないカラム内のデータについて親トランザクションテーブル130にクエリするのに使用できる主親キーを見出すために用いられる。このようにして、主親キーおよび主子キーは、トランザクションについてのクエリを完了するために用いられる。クエリの結果は、エントリがカンマ区切りされているjsonフォーマットなどのストリングを含む可能性がある。
エラー処理の一実施形態においては、失敗したトランザクションのアレイリストが維持される。アレイリスト内の失敗したトランザクションのために、最後のトランザクション通信が試みられてから経過する時間のしきい値量に応じて、ブロックチェーンネットワーク115を介して当該失敗したトランザクションを送信する試みが再び試行される(たとえば、HTTP投稿の実行)。成功した場合、失敗したトランザクションがアレイリストから削除される。
イベントリスニングの一実施形態においては、機能を起動する呼出しがイベントリスナーをトリガし得る。親トランザクション識別子としての主親キーは、対応するトランザクションをフェッチするために用いられる。親トランザクション識別子は、トランザクションの発信元銀行および宛先銀行などの発信元エンティティおよび宛先エンティティを識別するためにエンティティ情報にクエリするのに用いられる。発信元エンティティまたは宛先エンティティの識別子がアプリケーション110の識別子と一致する場合、呼出しが処理されるが、それ以外の場合には、呼出しは無視される。なぜなら、その呼出しはブロックチェーンネットワーク115を介してアクセス可能な別のエンティティに関係しているからである。通知送信側および通知受信側のブール変数は、トランザクションのメッセージを如何にフォーマットするか、ならびに、発信元エンティティおよび宛先エンティティにどんなメッセージを送信するか、を判断するためにチェックすることができる。トランザクションがインサートトランザクションである場合、宛先エンティティは、通知受信側の値にかかわらず、全メッセージを得る(たとえば、トランザクション全体に関するメッセージ)。通知送信側が該当する場合、発信元エンティティは短いメッセージを送り、それ以外の場合、メッセージは送信されない。トランザクションが更新トランザクションである場合、通知受信側が該当する場合、宛先エンティティは短いメッセージを得る(たとえば、トランザクションに対する更新に関するメッセージ)。それ以外の場合、メッセージは送信されない。通知送信側が該当する場合、宛先エンティティは短いメッセージを得る。それ以外の場合、メッセージは送信されない。
トランザクション管理モジュール105は、コンピューティングデバイス120などの宛先に対するブロックチェーンネットワーク115を介するトランザクションの通信を容易にするために親トランザクションテーブル130および/または子トランザクションテーブル135を利用する。一実施形態においては、スタティックメンテナンステーブル125は、ブロックチェーンネットワーク115を介して宛先と通信するのに用いられるハードコード化されたプロパティのセットを識別するためにクエリされる。ハードコード化されたプロパティのセットはブロックチェーンネットワーク115を介してトランザクションを送信するために用いられる。ハードコード化されたプロパティのセットは、使用すべき通信メカニズムを指定し得た。一実施形態においては、通信メカニズムは、データベースを介するメッセージの通知を伝えるためのクエリ変更通知メカニズムを含む。別の実施形態においては、通信メカニズムは、待ち行列を介してメッセージを伝えるための待ち行列メカニズムを含む。別の実施形態においては、通信メカニズムは、メッセージテーブルからメッセージを抜出すためにテーブル化ポーリングメカニズムを含む。別の実施形態においては、通信メカニズムは、RESTfulサーバからメッセージを受取るためのハイパーテキスト転送プロトコル(hypertext transfer protocol:HTTP)RESTメカニズムを含む。別の実施形態においては、通信メカニズムは、メッセージを受取るためのソケットメカニズムを含む。別の実施形態においては、通信メカニズムは、通信のためのシンプル・オブジェクト・アクセス・プロトコル(simple object access protocol:SOAP)メカニズムを含む。
一実施形態においては、トランザクションについての要求がトランザクション管理モジュール105によって受取られる。子トランザクションテーブル135は、トランザクションのデータにアクセスするための子主キーと、親主キーとを用いて、トランザクション管理モジュール105によってクエリされる。子主キーは、トランザクションのカレントトランザクション識別子を含み得る。トランザクション管理モジュール105は、トランザクションのデータにアクセスするための親主キーを用いて、親トランザクションテーブル130にクエリする。
一実施形態においては、トランザクションを更新する命令がトランザクション管理モジュール105によって受取られる。したがって、トランザクション管理モジュール105は、トランザクションを更新する機能を実行する。特に、更新の引数の数は、親トランザクションテーブル130および/または子トランザクションテーブル135内のカラムの数を判断するためにテーブルオブジェクトファイルを反復処理することによって確認される。引数の数をカラムの数に対応するものとして確認することに応じて、引数の順序に従って更新の値を挿入するために、親トランザクションテーブル130および/または子トランザクションテーブル135を反復処理することによって、更新が実現される。
図2を参照すると、ブロックチェーンネットワークを介して通信されるトランザクションの管理に関連する、コンピュータによって実現される方法200の一実施形態が示される。一実施形態においては、方法200は、トランザクションの受取り、格納、処理および/または送信に関連付けられた命令を実行するために、プロセッサ520などのコンピュータ515のさまざまなコンピューティングリソースを利用して、トランザクション管理モジュール105によって実行される。メモリ535および/またはディスク555は、トランザクションデータ、スタティックメンテナンステーブル125、親トランザクションテーブル130、子トランザクションテーブル135などを格納するために用いられる。ネットワークハードウェアは、ブロックチェーンネットワークなどのネットワークを介してコンピュータ515とリモートコンピュータとの間でデータ構造および/または他のデータを通信するために用いられる。方法200は、トランザクションを格納する要求、トランザクションを処理する要求および/またはトランザクションを送信する要求を受取るとトリガされる。
205において、トランザクション管理モジュール105は、図3Aの例示的なシステム300によって示されるように、第1の銀行などの第1のエンティティのハードコード化されたプロパティがポピュレートされたスタティックメンテナンステーブル125を維持する。ハードコード化されたプロパティは、第1の銀行に関連付けられたコンピューティングデバイスのホスト名、プロキシ、第1の銀行の識別子、REST/URL、および/または、第1の銀行の他のプロパティを含み得る。同様に、第2の銀行などの第2のエンティティに関連付けられた第2のトランザクション管理モジュール305は、第2のエンティティのハードコード化されたプロパティの第2のスタティックメンテナンステーブル310を維持し得る。
210において、トランザクション管理モジュール105は、閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブル130を維持する。同様に、第2のトランザクション管理モジュール305は、閾値頻度未満の頻度で更新されるデータのカラムを含む第2の親トランザクションテーブル315を維持する。
215において、トランザクション管理モジュール105は、閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブル135を維持する。同様に、第2のトランザクション管理モジュール305は、閾値頻度よりも高い頻度で更新されるデータのカラムを含む第2の子トランザクションテーブル320を維持する。
一実施形態においては、トランザクションに関連付けられたメッセージは、アプリケーション110からメッセージングモジュール140によって受取られ、当該メッセージが送信(390)されて、ブロックチェーンネットワーク115を介して第2のアプリケーション325に送達(395)される。一実施形態においては、メッセージは、第1の銀行と第2の銀行との間のトランザクションに関連している可能性があり、このため、第1の銀行のアプリケーション110からブロックチェーンネットワーク115を介して第2の銀行の第2のアプリケーション325に送信されている。メッセージは、チャネル構成(たとえば、アプリケーション110によって用いられる通信機能の選択およびインプリメンテーション)に従ってチャネル・イン・インターフェイス335を通じて受取られる。パーサーコンポーネント345は、さらなる処理のために、パーサー構成を用いて、メッセージをメッセージオブジェクトにパースする。
プロセッサコンポーネント350は、トランザクションの発信元銀行および宛先銀行が有効であることを確実にするなどのために、確認および論理を用いてメッセージオブジェクトを処理するためにプロセッサ構成を用いる。トランスレーションコンポーネント355は、トランザクション管理モジュール105などの宛先によって用いられるフォーマットを有するフォーマットされたメッセージにメッセージをフォーマットするためにトランスレーション構成を用いる。フォーマットされたメッセージは、チャネル構成(たとえば、トランザクション管理モジュール105によって用いられる通信機能の選択およびインプリメンテーション)に従って、チャネル・アウト・インターフェイス340を介してトランザクション管理モジュール105にルーティングされる。
220において、トランザクションは、トランザクション管理モジュール105によって受取られる。225において、トランザクションは、スタティックメンテナンステーブル125内のハードコード化されたプロパティを用いて確認される。230において、メッセージによって指定されるとおりトランザクションの引数の順序に従って、値が親トランザクションテーブル130および/または子トランザクションテーブル135のカラムにポピュレートされる。235において、親トランザクションテーブル130、子トランザクションテーブル135および/またはスタティックメンテナンステーブル125を用いて、フォーマットされたメッセージなどのトランザクションをブロックチェーンネットワーク115を介して第2のトランザクション管理モジュール305にルーティングする。第2のトランザクション管理モジュール305は、第2のスタティックメンテナンステーブル310、第2の親トランザクションテーブル315および/または第2の子トランザクションテーブル320を用いて、トランザクションを受取り、処理して第2のメッセージングモジュール360にルーティングし得る。このようにして、第2のトランザクション管理モジュール305はフォーマットされたメッセージをルーティングされたメッセージとして受取る。第2のメッセージングモジュール360は、チャネル構成(たとえば、第2のトランザクション管理モジュール305によって用いられる通信機能の選択およびインプリメンテーション)に従って、ルーティングされたメッセージを、第2のトランザクション管理モジュール305から第2のチャネル・イン・インターフェイス365を通じて受取る。
第2のメッセージングモジュール360の第2のパーサーコンポーネント375、第2のプロセッサコンポーネント380および第2のトランスレーションコンポーネント385は、ルーティングされたメッセージを処理して、フォーマットされたメッセージを作成する。フォーマットされたメッセージは、チャネル構成(たとえば、第2のアプリケーション325によって用いられる通信機能の選択およびインプリメンテーション)に従って、第2のチャネル・アウト・インターフェイス370を通じてルーティングされて、第2のアプリケーション325に送達される(395)。
図3Bは、アプリケーション110に送達(399)すべき第2のメッセージを送信する(397)第2のアプリケーション325を示す。第2のメッセージングモジュール360は、チャネル構成(たとえば、第2のアプリケーション325によって用いられる通信機能の選択およびインプリメンテーション)に従ってチャネル・イン・インターフェイス365を通じて第2のメッセージを受取る。第2のメッセージングモジュール360の第2のパーサーコンポーネント375、第2のプロセッサコンポーネント380および第2のトランスレーションコンポーネント385は、第2のメッセージを処理して第2のフォーマットされたメッセージを作成する。第2のフォーマットされたメッセージは、チャネル構成(たとえば、第2のトランザクション管理モジュール305によって用いられる通信機能の選択およびインプリメンテーション)に従ってチャネル・アウト・インターフェイス370を通じて第2のトランザクション管理モジュール305にルーティングされる。
第2のトランザクション管理モジュール305は、第2のスタティックメンテナンステーブル310、第2の親トランザクションテーブル315および/または第2の子トランザクションテーブル320を利用して、第2のメッセージに関連付けられた第2のトランザクションをブロックチェーンネットワーク115を介して受取り、処理および/またはルーティングする。第2のトランザクション管理モジュール305は、第2のフォーマットされたメッセージを、ブロックチェーンネットワーク115を介してトランザクション管理モジュール105にルーティングする。このようにして、トランザクション管理モジュール105は第2のフォーマットされたメッセージを第2のルーティングされたメッセージとして受取る。メッセージングモジュール140は、チャネル構成(たとえば、トランザクション管理モジュール105によって用いられる通信機能の選択およびインプリメンテーション)に従って、トランザクション管理モジュール105からチャネル・イン・インターフェイス335を通じて第2のルーティングされたメッセージを受取る。
メッセージングモジュール140のパーサーコンポーネント345、プロセッサコンポーネント350およびトランスレーションコンポーネント355は、第2のルーティングされたメッセージを処理して、第2のフォーマットされたメッセージを作成する。第2のフォーマットされたメッセージは、チャネル構成(たとえば、アプリケーション110によって用いられる通信機能の選択およびインプリメンテーション)に従って、チャネル・アウト・インターフェイス340を通じてルーティングされてアプリケーション110に送達(399)される。
図4は、例示的な非一時的なコンピュータ読取り可能媒体405に関するシナリオ400を示す。一実施形態においては、この明細書中に記載されるコンポーネントのうち1つ以上は、非一時的なコンピュータ読取り可能媒体405に格納されたトランザクション管理モジュール105などのプログラムモジュールとして構成される。プログラムモジュールは、プロセッサ実行可能命令420などの格納された命令で構成される。プロセッサ実行可能命令420は、少なくともプロセッサ440などのプロセッサによって実行されると、コンピューティングデバイスに、この明細書中に記載される対応する機能を実行させる。一実施形態においては、非一時的なコンピュータ読取り可能媒体405に格納されるトランザクション管理モジュール105の機能は、図2の方法200の実施形態425を実行するために、プロセッサ実行可能命令420としてプロセッサ440によって実行されてもよい。
非一時的なコンピュータ読取り可能媒体405は、プロセッサ実行可能命令420を含む。プロセッサ実行可能命令420は、プロセッサ440によって実行されると、この明細書中に規定されるもののうち少なくともいくつかを実行させる。非一時的なコンピュータ読取り可能媒体405は、メモリ半導体(たとえば、スタティック・ランダム・アクセス・メモリ(static random access memory:SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory:DRAM)および/または同期ダイナミック・ランダム・アクセス・メモリ(synchronous dynamic random access memory:SDRAM)技術)を利用する半導体)、ハードディスクドライブのプラッタ、フラッシュメモリデバイス、または磁気ディスクもしくは光ディスク(コンパクトディスク(compact disk:CD)、デジタル・バーサタイル・ディスク(digital versatile disk:DVD)またはフロッピー(登録商標)ディスクなど)を含む。例示的な非一時的なコンピュータ読取り可能媒体405は、デバイス430のリーダ435によって読取られた(415)(たとえば、ハードディスクドライブの読取りヘッド、またはソリッドステートストレージデバイス上で呼出された読取り動作)ときにプロセッサ実行可能命令420を表わするコンピュータ読取り可能データ410を格納している。
いくつかの実施形態においては、プロセッサ実行可能命令420は、実行されると、たとえば、図2の例示的な方法200のうち少なくともいくつかなどの動作を実行させる。いくつかの実施形態においては、プロセッサ実行可能命令420は、たとえば、図1Aの例示的なシステム100のうちの少なくとも一部などのシステムを実現させるように構成されている。
図5は、この明細書中に記載される例示的なシステムおよび方法ならびに/またはこれらの同等例のうち1つ以上で構成および/またはプログラムされる例示的なコンピューティングデバイス500を示す。例示的なコンピューティングデバイス500は、バス525によって動作可能に接続されているプロセッサ510、メモリ535および入出力(input/output:I/O)ポート545を含むコンピュータ515であってもよい。一実施形態においては、コンピュータ515は、図1および図2に示されるシステム100および/または方法200を容易にするように構成されたトランザクション管理モジュール105の論理を含み得る。さまざまな実施形態においては、トランザクション管理モジュール105の論理は、ハードウェア、命令が格納された非一時的なコンピュータ読取り可能媒体505、ファームウェアおよび/またはこれらの組合せで実現されてもよい。トランザクション管理モジュール105の論理がバス525に取付けられたハードウェア構成要素として例示されているとともに、他の実施形態においては、トランザクション管理モジュール105の論理がプロセッサ520において実現され得るか、メモリ535に格納され得るか、またはディスク555に格納され得ることが認識されるはずである。
一実施形態においては、トランザクション管理モジュール105またはコンピュータ515の論理は、記載された動作を実行するための手段(たとえば、構造:ハードウェア、非一時的なコンピュータ読取り可能媒体、ファームウェア)である。いくつかの実施形態においては、コンピューティングデバイスは、クラウド・コンピューティング・システムにおいて動作するサーバ、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであってもよい。
手段は、たとえば、割当てのためのルールベースのソースシーケンシングを実現するようにプログラムされた特定用途向け集積回路(application specific integrated circuit:ASIC)として実現されてもよい。手段はまた、メモリ535に一時的に格納されてプロセッサ520によって実行されるデータ510としてコンピュータ515に提示される、格納されたコンピュータ実行可能命令として実現されてもよい。
トランザクション管理モジュール105の論理はまた、割当てのためのルールベースのソースシーケンシングを実行するための手段(たとえば、ハードウェア、実行可能命令を格納する非一時的なコンピュータ読取り可能媒体705、ファームウェア)を提供し得る。
コンピュータ515の例示的な構成を概略的に記載しているが、プロセッサ520は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含むさまざまなプロセッサであってもよい。メモリ535は、揮発性メモリおよび/または不揮発性メモリを含み得る。不揮発性メモリは、たとえば、読取り専用メモリ(read-only memory:ROM)、プログラマブル読取り専用メモリ(programmable read-only memory:PROM)などを含み得る。揮発性メモリは、たとえば、ランダム・アクセス・メモリ(random access memory:RAM)、スタティック・ランダム・アクセス・メモリ(static random-access memory:SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory:DRAM)などを含み得る。
ディスク555は、たとえば、I/Oインターフェイス540(たとえばカード、デバイス)およびI/Oポート545を介してコンピュータ515に動作可能に接続されてもよい。ディスク555は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、ジップドライブ、フラッシュメモリカード、メモリスティックなどであってもよい。さらに、ディスク555は、CD−ROMドライブ、CD−Rドライブ、CD−RWドライブ、DVD ROMなどであってもよい。メモリ535は、たとえば、非一時的なコンピュータ読取り可能媒体505内などに、プロセスおよび/またはデータ510を格納することができる。ディスク555および/またはメモリ535は、コンピュータ515のリソースを制御して割当てるオペレーティングシステムを格納することができる。
コンピュータ515は、I/Oインターフェイス540およびI/Oポート545を介して入出力(I/O)デバイスと対話してもよい。I/Oデバイスは、たとえば、キーボード、マイクロホン、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク555、ネットワークデバイス550などであってもよい。I/Oポート545は、たとえば、シリアルポート、パラレルポートおよびUSBポートを含み得る。I/Oコントローラ530は、I/Oインターフェイス540をバス525に接続してもよい。
コンピュータ515は、ネットワーク環境において動作可能であり、このため、I/Oインターフェイス540および/またはI/Oポート545を介してネットワークデバイス550に接続されてもよい。ネットワークデバイス550を介して、コンピュータ515がネットワークと対話してもよい。ネットワークを介して、コンピュータ515がリモートコンピュータに論理的に接続されてもよい(たとえば、コンピュータ515は、クライアントが接続し得る分散型コンピューティング環境内に存在していてもよい)。コンピュータ515が対話し得るネットワークは、ローカルエリアネットワーク(local area network:LAN)、新しいエリアネットワーク(WAN)および他のネットワークを含み得るがこれらに限定されない。
図6は、本発明の一実施形態が実現され得るシステム600を示す図である。エンタープライズネットワーク604は、小売り業者、小売商、サービスプロバイダまたは他の業種などのビジネスエンタープライズに関連付けられ得る。代替的には、アプリケーション・サービス・プロバイダ(application service provider:ASP)によってホストされる(マルチテナントデータ処理プラットフォームなどの)統合型ビジネスシステムの利点に従うと、ビジネスエンタープライズは、そのエンドユーザがインターネットブラウザおよびインターネット接続にアクセスするという前提であれば、専用の設備またはビジネスネットワークを全く含まないかまたはごく少ししか含まない可能性がある。説明を単純かつ明瞭にするために、エンタープライズネットワーク604は、複数のパーソナルコンピュータ608が接続されるオン・サイトのローカルエリアネットワーク606によって表わされている。複数のパーソナルコンピュータ608は各々、一般に、例示的なリモートユーザコンピュータ610と共に、サービスエージェントまたは他の従業員などの特定のエンドユーザに専用のものである(が、このような専用性は不要である)。例示的なリモートユーザコンピュータ610は、たとえば、公共のWi−Fiアクセスポイントを介してまたは他のインターネットアクセス方法によってインターネットアクセスできる移動する従業員のラップトップコンピュータまたはタブレット型コンピュータであり得る。コンピュータ608および610に関連付けられたエンドユーザ(消費者)は、無線インターネットアクセスまたは他の同期能力を有する(PDA、タブレット、ラップトップコンピュータなどの)インターネット対応のスマートフォンまたは他の電子機器を所有していてもよい。エンタープライズネットワーク604のユーザは、インターネット612または別の好適な通信ネットワークまたはネットワークの組合せを介して統合型ビジネスシステム602とのインターフェイスとなる。
専用の第三者によってホストされ得る統合型ビジネスシステム602は、図6に示されるように結合された統合型ビジネスサーバ614およびウェブインターフェイスサーバ616を含み得る。統合型ビジネスサーバ614およびウェブインターフェイスサーバ616のどちらかまたは両方が、図6に個々のユニットとして表わされているとしても、1つ以上のさまざまなハードウェアシステムおよびコンポーネント上で実現され得ることが認識されるはずである。
各々がビジネスを運営している複数の口座所有者/テナントのために第三者によってシステム602を動作させている典型例においては、統合型ビジネスサーバ614はERPモジュール618を含むとともに、CRMモジュール620をさらに含む。多くの場合、ERPモジュール618にとって、方法、ライブラリ、データベース、サブルーチン、変数などをCRMモジュール620と共有することが望ましいだろう。また、実際には、ERPモジュール618をCRMモジュール620と絡み合わせて、(単一のテナントであり得るが、典型的にはマルチテナントである)統合型ビジネスデータ処理プラットフォームにしてもよい。
ERPモジュール618は、財務会計モジュール、オーダー処理モジュール、時間および請求書作製モジュール、在庫管理および分配モジュール、従業員管理および給与計算モジュール、スケジュール調整および協調モジュール、報告およびセキュリティモジュール、ならびに他のERP関連モジュールを含み得るが、これらに限定されない。CRMモジュール620は、セールス・フォース・オートメーション(sales force automation:SFA)モジュール、マーケティングオートメーションモジュール、連絡先リストモジュール(図示せず)、コールセンターサポートモジュール、ウェブベース顧客サポートモジュール、報告およびセキュリティモジュール、ならびに他のCRM関連モジュールを含み得るが、これらに限定されない。統合型ビジネスサーバ614(またはマルチテナントデータ処理プラットフォーム)はさらに、ウェブストア/eコマース(eCommerce)モジュール622、パートナーおよびベンダー管理モジュール624、ならびに統合型報告モジュール630を含む他のビジネス機能を備えてもよい。サプライチェーン管理(supply chain management:SCM)モジュール626および製品ライフサイクル管理(product lifecycle management:PLM)モジュール628が設けられていてもよい。ウェブインターフェイスサーバ616は、1つ以上のウェブベースのユーザインターフェイスをエンタープライズネットワーク604のエンドユーザに提供するために統合型ビジネスサーバ614とのインターフェイスとなるように構成および適合されている。
図6に示される統合型ビジネスシステムは、少なくとも1つの(但し、複数の可能性もある)「サーバ」で構成される分散型コンピューティングシステム上でホストされてもよい。サーバは物理的コンピュータであって、たとえば、インターネットまたは専用の「イントラネット」ネットワークなどのパブリックネットワークを介してサーバとデータ通信する他のコンピュータのユーザのニーズを満たすように意図された1つ以上のソフトウェアアプリケーションまたはサービスのためのデータストレージおよび実行環境を提供するための専用の物理的コンピュータである。サーバと当該サーバが提供するサービスとが「ホスト」と称され得るとともに、当該サービスを受けているリモートコンピュータと、当該リモートコンピュータ上で動作するソフトウェアアプリケーションとが「クライアント」と称され得る。或るサーバが提供するコンピューティングサービスに応じて、そのサーバは、データベースサーバ、データストレージサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバなどと称され得る。ウェブサーバは、ほとんどの場合、一般にウェブサイトをホストすることによって、インターネットを介してウェブサーバにアクセスするクライアント・ウェブ・ブラウザに対してコンテンツを配信するのを支援するハードウェアとソフトウェアとの組合わせである。
図7は、本発明の実施形態が実現され得る例示的な動作環境700の要素または構成要素を示す図である。図示のとおり、さまざまなコンピューティングデバイスを組込んでいる、および/または、さまざまなコンピューティングデバイスに組込まれているさまざまなクライアント702は、1つ以上のネットワーク714を介して分散型コンピューティングサービス/プラットフォーム708と通信し得る。たとえば、クライアントは、少なくとも部分的に、コンピューティングデバイスのうち1つ以上によって実現されるクライアントアプリケーション(たとえば、ソフトウェア)を組込んでもよく、および/または、当該クライアントアプリケーションに組込まれてもよい。好適なコンピューティングデバイスの例は、パーソナルコンピュータ、サーバコンピュータ704、デスクトップコンピュータ706、ラップトップコンピュータ707、ノート型コンピュータ、タブレット型コンピュータまたは携帯情報端末(personal digital assistant:PDA)710、スマートフォン712、携帯電話、および家庭用電子機器を含み、1つ以上のコンピューティングデバイスコンポーネント、たとえば、1つ以上の電子プロセッサ、マイクロプロセッサ、中央処理装置(central processing unit:CPU)またはコントローラなどを組込んでいる。好適なネットワーク714の例は、任意の好適なネットワーキングおよび/または通信プロトコル(たとえば、インターネット)に従って動作する有線および/または無線の通信技術およびネットワークを利用するネットワークを含む。顧客サポートサービスの配信に関与する使用事例においては、上述のコンピューティングデバイスは、顧客サポート配信プロセスのエンドポイント(すなわち、消費者のデバイス)を表わしている。
分散型コンピューティングサービス/プラットフォーム(マルチテナントビジネスデータ処理プラットフォームとも称され得る)708は、ユーザインターフェイス層716、アプリケーションサーバ層720およびデータストレージ層724を含む複数の処理層を含み得る。ユーザインターフェイス層716は、グラフィカルユーザインターフェイスおよび/またはウェブベースのインターフェイスを含む複数のユーザインターフェイス718を維持し得る。ユーザインターフェイスは、(図において「サービスUI」と示されている)サービスのユーザまたは「テナント」のためにアプリケーションおよびデータへのアクセスを提供するサービスのためのデフォルトユーザインターフェイスと、さらには、ユーザ特有の要件に従って特化/カスタマイズされた(たとえば、図中に「テナントA UI」、…「テナントZ UI」で表されるとともに、1つ以上のAPIによってアクセスされ得る)1つ以上のユーザインターフェイスとを含み得る。デフォルトのユーザインターフェイスは、データへのアクセスなどのサービスプラットフォームによって提供される機能および能力へのテナントの関与をテナントが管理することを可能にするコンポーネント、特定のデータ処理動作を実行させるコンポーネントなどを含み得る。図に示される各々の処理層は、コンピュータのセットならびに/またはコンピュータサーバおよびプロセッサを含むコンピュータコンポーネントのセットで実現されてもよく、ソフトウェアアプリケーションまたは命令のセットを実行することによって判断されるようなさまざまな機能、方法、プロセスまたは動作を実行してもよい。データストレージ層724は、サービスデータストア725および1つ以上のテナントデータストア726を含み得る1つ以上のデータストアを含み得る。
各々のテナントデータストア726はテナント特有のデータを含み得る。テナント特有のデータは、ERP、CRM、eコマース、人事管理、給与計算などを含むがこれらに限定されない一連のテナント特有ビジネスサービスまたは機能を提供する一環として用いられる。データストアは、構造化照会言語(structured query language:SQL)ベースのリレーショナルデータベース管理システム(relational database management system:RDBMS)を含む任意の適切なデータストレージ技術で実現され得る。
本発明の一実施形態に従うと、分散型コンピューティングサービス/プラットフォーム708はマルチテナントであってもよく、サービスプラットフォーム708は、ビジネス関連アプリケーション、データストレージおよび機能のセットを複数のテナントに提供するためにエンティティによって動作させられてもよい。これらのアプリケーションおよび機能は、或るビジネスがその運営のさまざまな局面を管理するために用いるものであってもよい。たとえば、アプリケーションおよび機能はビジネス情報システムに対するウェブベースのアクセスを提供することを含んでいてもよく、これにより、ブラウザおよびインターネットまたはイントラネットに接続するユーザが、特定の種類のビジネス情報を閲覧、入力、処理または変更することが可能になる。
上述のとおり、このようなビジネス情報システムはエンタープライズ・リソース・プランニング(Enterprise Resource Planning:ERP)システムを含み得る。ERPシステムは、ビジネスプロセスを簡素化するとともにビジネス全体に渡るレベルで効率を高めることを意図して、いくつかの履歴上別個のビジネスコンピューティングシステムの能力を共通のシステムに統合するものである。一例として、ERPシステムの能力またはモジュールは、アカウンティング、オーダー処理、時間および請求書作製、在庫管理、小売り販売時点情報管理(point of sale:POS)システム、eコマース、製品情報管理(product information management:PIM)、需要/資材所要量計画(material requirements planning:MRP)、購買、コンテンツ管理システム(content management system:CMS)、プロフェッショナルサービスオートメーション(professional services automation:PSA)、従業員管理/給与計算、人事管理、従業員のスケジュール調整および協調、さらには、これらの機能に関する報告および分析能力を含み得る(が、これらを含む必要はなく、これらを含むもののみに限定されない)。このような機能またはビジネスアプリケーションは、典型的には、プラットフォームのアプリケーションサーバ層720の一部である1つ以上のサーバ722上で維持されるとともに1つ以上のサーバ722によって実行されるソフトウェアコード/命令の1つ以上のモジュールによって実現される。
統合型データ処理およびサービスプラットフォームの一部として提供され得る別のビジネス情報システムは、統合型顧客関係管理(Customer Relationship Management:CRM)システムであって、顧客をより良く理解することを支援し、既存の顧客に対するサービスを向上させ、新しく有益な顧客を獲得するのを支援するように設計されている。一例として、CRMシステムの能力またはモジュールは、セールス・フォース・オートメーション(SFA)、マーケティングオートメーション、連絡先リスト、コールセンターサポート、返品管理認可(returns management authorization:RMA)、ロイヤルティプログラムサポート、および、ウェブベースの顧客サポート、さらには、これらの機能に関する報告および分析能力を含み得る(が、これらを含む必要はなく、これらを含むもののみに限定されない)。ERPおよびCRMの機能に加えて、ビジネス情報システム/プラットフォームはまた、統合型パートナーおよびベンダー管理システム、eコマースシステム(たとえば、仮想のストアフロントアプリケーションまたはプラットフォーム)、製品ライフサイクル管理(product lifecycle management:PLM)システム、(医療/歯科保険管理、給与計算などを含み得る)人事管理システム、または、サプライチェーン管理(supply chain management:SCM)システムのうち1つ以上を含み得る。このような機能またはビジネスアプリケーションは、典型的には、プラットフォームのアプリケーションサーバ層720の一部である1つ以上のサーバ722上で維持されてこれら1つ以上のサーバ722によって実行されるソフトウェアコード/命令の1つ以上のモジュールによって実現される。
なお、機能上の利点および戦略上の利点がともに、ERP、CRMおよび他のビジネス能力を含む統合型ビジネスシステムを用いることによって獲得され得ることに留意されたい。この場合、たとえば、統合型ビジネスシステムは、小売商のeコマースプラットフォームおよび/または「ウェブストア」と統合されている。たとえば、特定の製品をサーチする顧客は、小売商のウェブサイトに誘導され得るとともに、顧客らの快適なホームコンピュータから、またはさらには顧客らの携帯電話からでさえ、多様な製品および/またはサービスが提示され得る。顧客がブラウザベースのインターフェイスを介してオンライン売買のトランザクションを開始すると、統合型ビジネスシステムは、オーダーを処理し、受取勘定を更新し、在庫データベースおよび他のERPベースのシステムを更新することができるとともに、戦略上重要な顧客情報データベースおよび他のCRMベースのシステムを自動的に更新することもできる。これらのモジュールならびに他のアプリケーションおよび機能は、有利には、統合型ビジネス管理システムまたはプラットフォームを形成する1つ以上の統合型データベースに必要に応じてアクセスする単一のコードベースによって統合および実行され得る。
図6に関連付けて上述したように、図7に示される統合型ビジネスシステムは、少なくとも1つの、但し典型的には複数の「サーバ」で構成される分散型コンピューティングシステム上でホストされてもよい。サーバは物理的コンピュータであって、たとえば、インターネットなどのパブリックネットワークまたはプライベートな「イントラネット」ネットワークを介してサーバとデータ通信する他のコンピュータのユーザのニーズを満たすように意図された1つ以上のソフトウェアアプリケーションまたはサービスのためのデータストレージおよび実行環境を提供するための専用の物理的コンピュータである。
ビジネスは、このような統合型ビジネスシステム自体を構築して維持するのではなく、第三者によって提供されるシステムを利用してもよい。このような第三者は、マルチテナントプラットフォームの文脈において上述されるように統合型ビジネスシステム/プラットフォームを実現してもよい。この場合、単一の包括的な統合型ビジネスシステムの個々のインスタンス化がさまざまなテナントに提供される。このようなマルチテナントプラットフォームについての1つの利点は、各々のテナントが、統合型ビジネスシステムのインスタンス化をそのテナント特有のビジネスニーズまたは運営方法に合わせてカスタマイズできることである。各々のテナントは、複数のユーザにビジネスデータおよび機能を提供するためにマルチテナントプラットフォームを用いるビジネスまたはエンティティであってもよい。これら複数のユーザのうちのいくつかのユーザは、ビジネスまたはエンティティ内で別個の役割または責任を有している可能性もある。
場合によっては、テナントは、そのアプリケーションに拡張を導入することによって既存のプラットフォームアプリケーションの機能を修正または補足することを所望する可能性もある。この場合、拡張はテナントの従業員および/または顧客に利用可能にされることとなっている。場合によっては、このような拡張は、プラットフォーム上に常駐するテナントのビジネス関連データの処理に適用されてもよい。この拡張は、テナントによって、または第3者である開発者によって開発されて、インストールできるようにテナントに利用可能にされていてもよい。プラットフォームは、テナントによってアクセスされ得るとともに対象となる拡張を識別するためにサーチされ得る、利用可能な拡張の「ライブラリ」またはカタログを含んでいてもよい。ソフトウェア開発者は、提案された拡張を適切に確認した後、ライブラリまたはカタログに対して拡張を「公表する」ことが許可され得る。
したがって、(eコマースプラットフォームに関連付けられた機能などの、それらの末端の顧客に対する何らかのサービスを提供することを含み得る)テナントらが所望するサービスおよび機能をこれらテナントが獲得することを許可しようとして、マルチテナントサービスプラットフォームは、テナントが、利用可能なサービスの特定の局面をそれらのビジネスニーズにより良く適合するように構成することを許可し得る。このように、サービスプラットフォームの局面はカスタマイズ可能あり得るとともに、これにより、テナントが、それぞれのユーザまたはそれらユーザのグループにそれぞれ特徴的なサービスを提供するようにプラットフォームの局面を構成することを可能にし得る。たとえば、サービスプラットフォームを用いるビジネスエンタープライズは、それらの従業員および/もしくは顧客に追加機能もしくは能力を提供すること、または、それらのビジネスニーズに合った規定済みのワークフローに従って特定の方法でそれらのビジネスデータを処理させることなどを所望する可能性もある。
プラットフォームに対するテナントカスタム化は、下位レベルのオペレーティングシステム機能の上に構築された特定用途向け機能(テナントまたはユーザ特有の機能、データ処理または動作を実行する能力など)を含み得る。いくつかのマルチテナントサービスプラットフォームは、グラフィカルユーザインターフェイスに対する審美上の変更から、独立した第三者ベンダーによって開発されたコンポーネントおよび/またはアプリケーション全体の統合の提供に至るまで、サービスプラットフォームのいくつかのさまざまなレベルで機能または動作をカスタマイズする能力を提供し得る。これは非常に有益であり得る。なぜなら、第三者ベンダーによって開発されたコンポーネントおよび/またはアプリケーションの使用を許可することにより、マルチテナントサービスが、テナントにとって利用可能な機能を著しく向上させて、プラットフォームに対するテナント満足感を高めることができるようになるからである。
上述のとおり、ユーザカスタム化に加えて、独立したソフトウェア開発者は、マルチテナントデータ処理プラットフォームを通じてユーザにとって利用可能となる特定のアプリケーションに対する拡張を作成してもよい。この拡張は、新しい機能または能力を基礎をなすアプリケーションに追加し得る。プラットフォームの1つ以上のテナント/ユーザは、拡張によって実現可能となるアプリケーションの機能向上を利用できるようにするために、この拡張を基礎をなすアプリケーションに追加することを所望するかもしれない。さらに、開発者は、拡張に組み込むのに有益となるであろう修正または付加的機能の必要性を認識していれば、パッチをアップグレードするかまたは拡張に提供することを所望するかもしれない。場合によっては、より新しいバージョンの拡張を改善するためのフィードバックを得るために、拡張の安定性をテストするために、または、拡張のために市場を区分化するのを支援するために、開発者は、(少なくとも最初は)選択されたユーザのセットだけがアップグレードを実施できるようにすることをより好む可能性がある。
別の実施形態においては、記載された方法および/またはそれらの同等例はコンピュータ実行可能命令で実現されてもよい。このため、一実施形態においては、非一時的なコンピュータ読取り可能/記憶媒体は、機械によって実行されたときに当該機械(および/または関連する構成要素)に方法を実行させるアルゴリズム/実行可能アプリケーションのコンピュータ実行可能命令が格納された状態で構成される。例示的な機械は、プロセッサ、コンピュータ、クラウド・コンピューティング・システムにおいて動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャで構成されるサーバ、スマートフォン、などを含むが、これらに限定されない。一実施形態においては、コンピューティングデバイスは、開示された方法のうちのいずれかを実行するように構成される1つ以上の実行可能なアルゴリズムで実現される。
1つ以上の実施形態においては、開示された方法またはそれらの同等例は、方法を実行するように構成されたコンピュータハードウェア、または、非一時的なコンピュータ読取り可能媒体に格納されてモジュールで具体化されるコンピュータ命令、のいずれかによって実行される。この場合、上記命令は、少なくともコンピューティングデバイスのプロセッサによって実行されたときに方法を実行するように構成された実行可能なアルゴリズムとして構成されている。
説明を簡潔にする目的で、図に例示された方法はアルゴリズムの一連のブロックとして図示および記載されているが、方法がブロックの順序によって限定されないことが認識されるはずである。いくつかのブロックは、図示および記載される他のブロックとは異なる順序で実施可能および/または同時に実施可能である。さらに、例示的な方法を実現するために、図示されるブロックがすべて用いられなくてもよい。ブロックは組合わされてもよく、または複数の動作/構成要素に分離されてもよい。さらに、付加的および/または代替的な方法は、ブロックには例示されていない追加の動作を用いることができる。
以下は、この明細書中において用いられる選択された用語の定義を含む。定義は、用語の範囲内にあるとともに実現するのに用いられ得る構成要素のさまざまな例および/または形式を含む。これらの例は、限定するように意図されたものではない。単数形および複数形の用語はともに上記定義の範囲内であり得る。
「一実施形態」、「実施形態」、「一例」、「例」などの言及は、そのように説明された実施形態または例が特定の特徴、構造、特性、性質、要素、または限定を含み得るものの、すべての実施形態または例が必ずしもその特定の特徴、構造、特性、性質、要素、または限定を含むとは限らない、ことを示す。さらに、「一実施形態においては」という句を繰り返し使用することは、必ずしも同じ実施形態を指すとは限らないものの、同じ実施形態を指す場合もある。
「データ構造」は、この明細書中において用いられているように、メモリ、ストレージデバイスまたは他のコンピュータ化されたシステムに格納されるコンピューティングシステムにおけるデータの構成である。データ構造は、たとえば、データフィールド、データファイル、データアレイ、データ記録、データベース、データテーブル、グラフ、ツリー、リンクされたリストなどのうちいずれか1つであってもよい。データ構造は、他の多くのデータ構造から形成されていてもよく、他の多くのデータ構造を含んでもよい(たとえば、データベースは多くのデータ記録を含む)。データ構造の他の例は、他の実施形態に従って、同様に実現可能である。
「コンピュータ読取り可能媒体」または「コンピュータ記憶媒体」は、この明細書中において用いられるとおり、実行されたときに、開示された機能のうち1つ以上を実行するように構成された命令および/またはデータを格納する非一時的な媒体を指している。データは、いくつかの実施形態において命令として機能し得る。コンピュータ読取り可能媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない形態を取ってもよい。不揮発性媒体は、たとえば、光ディスク、磁気ディスクなどを含み得る。揮発性媒体は、たとえば、半導体メモリ、ダイナミックメモリなどを含み得る。コンピュータ読取り可能媒体の一般的形態は、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス、コンパクトディスク(CD)、他の光学媒体、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、メモリチップまたはカード、メモリスティック、ソリッドステートストレージデバイス(solid state storage device:SSD)、フラッシュドライブ、および、コンピュータ、プロセッサまたは他の電子機器を機能させることができる他の媒体、を含み得るが、これらに限定されない。各々のタイプの媒体は、一実施形態において実現するために選択された場合、開示および/またはクレームされた機能のうち1つ以上を実行するように構成されたアルゴリズムの格納された命令を含み得る。
「論理」は、この明細書中において用いられるとおり、この明細書中に開示されるように機能または動作のいずれかを実行するように、および/または、この明細書中に開示されるように別の論理、方法および/またはシステムから機能または動作を実行させるように、コンピュータもしくは電気的ハードウェアで実現される構成要素、実行可能なアプリケーションもしくはプログラムモジュールの命令が格納された非一時的な媒体、ならびに/または、これらの組合せを表わす。同等の論理は、ファームウェア、アルゴリズムでプログラムされたマイクロプロセッサ、個別論理(たとえばASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムされた論理デバイス、アルゴリズムの命令を含むメモリデバイスなどを含んでいてもよい。これらはいずれも、開示された機能のうち1つ以上を実行するように構成され得る。一実施形態においては、論理は、1つ以上のゲート、ゲートの組合せ、または開示される機能のうち1つ以上を実行するように構成された他の回路部品を含んでいてもよい。複数の論理が説明される場合、その複数の論理を1つの論理に組込むことが可能であり得る。同様に、単一の論理が説明される場合、その単一の論理を複数の論理間に分散させることが可能であり得る。一実施形態においては、これらの論理のうち1つ以上は、開示および/またはクレームされた機能を実行することに係る対応する構造である。実現すべき論理のタイプの選択は、所望のシステム条件または規格に基づき得る。たとえば、より高速であることが重要視すべき事項であれば、機能を実現するためにハードウェアが選択されるだろう。より低コストが重要視すべき事項であれば、機能を実現するために格納された命令/実行可能なアプリケーションが選択されるだろう。
「動作可能な接続」またはエンティティが「動作可能に接続されている」接続は、信号、物理的通信、および/または論理的通信が送信および/または受信され得る接続である。動作可能な接続は、物理インターフェイス、電気インターフェイスおよび/またはデータインターフェイスを含み得る。動作可能な接続は、動作可能な制御を可能にするのに十分なインターフェイスおよび/または接続のさまざまな組合せを含み得る。たとえば、2つのエンティティは、互いに直接、または1つ以上の中間エンティティ(たとえばプロセッサ、オペレーティングシステム、論理、非一時的なコンピュータ読取り可能媒体)を介して、信号を互いに伝達するために動作可能に接続することができる。論理的および/または物理的な通信チャネルを用いて動作可能な接続を構築することができる。
ここに使用されるような「ユーザ」は、1人以上の人間、1つ以上のコンピュータもしくは他の装置、またはこれらの組合せを含むものの、これらに限定されない。
開示された実施形態を非常に詳細に例示および説明してきたが、添付された請求の範囲をそのような詳細に制限したり何らかの形で限定することは意図されていない。主題のさまざまな局面を説明する目的のために、構成要素または方法論のすべての考えられ得る組合せを説明することは、もちろん不可能である。したがって、この開示は、図示および説明された特定の詳細または実例に限定されない。
「含む」または「含んで」という用語が詳細な説明または請求項において採用されている範囲では、それは、「備える」という用語と同様の態様で包括的であるよう意図されている。なぜなら、その用語は、採用された場合、請求項において過渡的な言葉として解釈されるからである。
「または」という用語が詳細な説明または請求項において採用されている(たとえば、AまたはB)範囲では、それは、「AまたはBまたはそれら双方」を意味するよう意図されている。出願人が「AまたはBのどちらか一方だけ」を示すよう意図する場合には、「AまたはBのどちらか一方だけ」という句が使用されるであろう。このため、ここでの「または」という用語の使用は包括的使用であり、排他的使用ではない。

Claims (15)

  1. コンピュータ実行可能命令を格納する非一時的なコンピュータ読取り可能媒体であって、前記コンピュータ実行可能命令は、コンピュータのプロセッサによって実行されると、前記プロセッサに、
    第1のエンティティのハードコード化されたプロパティを含むスタティックメンテナンステーブルを維持させ、ハードコード化された値は、ホスト名、プロキシ、エンティティ識別子またはレプレゼンテーショナル・ステート・トランスファ(REST)ユニフォーム・リソース・ロケータ(URL)のうち少なくとも1つを含み、前記コンピュータ実行可能命令はさらに、
    閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブルを維持させ、前記親トランザクションテーブルは主親キーおよび主子キーを含み、前記コンピュータ実行可能命令はさらに、
    前記閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブルを維持させ、前記子トランザクションテーブルは、前記主親キー、前記主子キー、および前記親トランザクションテーブルの名前を含み、前記コンピュータ実行可能命令はさらに、
    ブロックチェーンネットワークを介して前記エンティティの第1のコンピューティングデバイスと第2のエンティティの第2のコンピューティングデバイスとの間で通信するためにトランザクションを受取らせ、
    前記スタティックメンテナンステーブル内の前記ハードコード化されたプロパティを用いて前記トランザクションを確認させ、
    前記トランザクションの引数の順序に従って、前記親トランザクションテーブルのカラムおよび前記子トランザクションテーブルのカラムに値をポピュレートさせ、
    前記親トランザクションテーブルおよび前記子トランザクションテーブルを利用して、前記ブロックチェーンネットワークを介する、前記第2のコンピューティングデバイスに対する前記トランザクションの通信を容易にさせる、非一時的なコンピュータ読取り可能媒体。
  2. 前記命令は、
    テーブルオブジェクトファイルを利用して、前記テーブルオブジェクトファイル内のテーブル構造情報を用いて前記スタティックメンテナンステーブル、前記親トランザクションテーブルおよび前記子トランザクションテーブルを作成するための命令を含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  3. 前記命令は、
    ハードコード化されたプロパティを前記スタティックメンテナンステーブルに追加する機能を実行するための命令を含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  4. 前記命令は、
    前記スタティックメンテナンステーブル内のハードコード化されたプロパティを更新する機能を実行するための命令を含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  5. 前記命令は、
    ハードコード化されたプロパティを無効にする機能を実行するための命令と、
    前記ハードコード化されたプロパティが用いられるという判断に応じて、前記ハードコード化されたプロパティを有効にするための命令とを含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  6. 前記命令は、
    前記ブロックチェーンネットワークを介して前記第2のエンティティと通信するために用いられる、ハードコード化されたプロパティのセットを識別するために前記スタティックメンテナンステーブルにクエリするための命令と、
    前記ハードコード化されたプロパティのセットを用いて、前記ブロックチェーンネットワークを介して前記トランザクションを送信するための命令とを含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  7. 前記命令は、
    最初のトランザクションである前記トランザクションに基づいて前記トランザクションのトランザクション識別子を前記主親キーとして格納するための命令を含む、請求項1に記載の非一時的なコンピュータ読取り可能媒体。
  8. 前記命令は、
    カレントトランザクションのカレントトランザクション識別子を前記主子キーとして格納するための命令を含む、請求項7に記載の非一時的なコンピュータ読取り可能媒体。
  9. コンピューティングシステムであって、
    メモリに接続されたプロセッサと、
    非一時的なコンピュータ読取り可能媒体に格納されるとともに命令で構成されたトランザクション管理モジュールとを含み、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
    第1のエンティティのハードコード化されたプロパティを含むスタティックメンテナンステーブルを維持させ、ハードコード化された値は、ホスト名、プロキシ、エンティティ識別子またはレプレゼンテーショナル・ステート・トランスファ(REST)ユニフォーム・リソース・ロケータ(URL)のうち少なくとも1つを含み、前記命令はさらに、
    閾値頻度未満の頻度で更新されるデータのカラムを含む親トランザクションテーブルを維持させ、前記親トランザクションテーブルは主親キーおよび主子キーを含み、前記命令はさらに、
    前記閾値頻度よりも高い頻度で更新されるデータのカラムを含む子トランザクションテーブルを維持させ、前記子トランザクションテーブルは、前記主親キー、前記主子キー、および前記親トランザクションテーブルの名前を含み、前記命令はさらに、
    ブロックチェーンネットワークを介して前記エンティティの第1のコンピューティングデバイスと第2のエンティティの第2のコンピューティングデバイスとの間で通信するためにトランザクションを受取らせ、
    前記スタティックメンテナンステーブル内の前記ハードコード化されたプロパティを用いて前記トランザクションを確認させ、
    前記トランザクションの引数の順序に従って、前記親トランザクションテーブルのカラムおよび前記子トランザクションテーブルのカラムに値をポピュレートさせ、
    前記親トランザクションテーブルおよび前記子トランザクションテーブルを利用して、前記ブロックチェーンネットワークを介する前記第2のコンピューティングデバイスに対する前記トランザクションの通信を容易にさせる、コンピューティングシステム。
  10. 前記命令は、前記プロセッサに、
    前記親トランザクションテーブルおよび前記子トランザクションテーブルのうち少なくとも1つに前記トランザクションの状態を格納するのに用いられる状態カラムをポピュレートさせる命令を含む、請求項9に記載のコンピューティングシステム。
  11. 前記命令は、前記プロセッサに、
    前記親トランザクションテーブルおよび前記子トランザクションテーブルのうち少なくとも1つに、トランザクションの宛先を追跡するのに用いられる宛先エンティティカラムと、トランザクションの発信元を追跡するのに用いられる発信元エンティティカラムとをポピュレートさせる命令を含む、請求項9に記載のコンピューティングシステム。
  12. 前記命令は、
    前記親トランザクションテーブルおよび前記子トランザクションテーブル内のカラムの数を判断するためにテーブルオブジェクトファイルを反復処理することによって、更新の引数の数を確認することと、
    前記引数の数を前記カラムの数に対応するものと確認することに応じて、前記引数の順序に従って値を挿入するために前記親トランザクションテーブルおよび前記子トランザクションテーブルを反復処理することにより更新を実現することと、
    によって前記トランザクションを更新する機能を前記プロセッサに実行させる命令を含む、請求項9に記載のコンピューティングシステム。
  13. 前記命令は、前記プロセッサに、
    前記トランザクションについての要求を受取らせ、
    前記トランザクションのデータにアクセスするための前記子主キーと、前記親主キーとを用いて、前記子トランザクションテーブルにクエリさせ、
    前記トランザクションのデータにアクセスするための前記親主キーを用いて、前記親トランザクションテーブルにクエリさせる、
    命令を含む、請求項9に記載のコンピューティングシステム。
  14. 前記子主キーはカレントトランザクション識別子を含む、請求項13に記載のコンピューティングシステム。
  15. 前記命令は、前記プロセッサに、
    失敗したトランザクションのアレイリストを維持させ、
    前記アレイリスト内の失敗したトランザクションのために最後のトランザクション通信を試みてから経過する時間のしきい値量に応じて、前記ブロックチェーンネットワークを介して前記失敗したトランザクションを送信するよう試みさせる、
    命令を含む、請求項9に記載のコンピューティングシステム。
JP2020517988A 2017-09-29 2018-03-20 ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール Active JP6971395B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201721034642 2017-09-29
IN201721034642 2017-09-29
PCT/IB2018/000368 WO2019064058A1 (en) 2017-09-29 2018-03-20 COMPUTERIZED TRANSACTION MANAGEMENT MODULE FOR BLOCK CHAIN NETWORKS

Publications (3)

Publication Number Publication Date
JP2020535550A true JP2020535550A (ja) 2020-12-03
JP2020535550A5 JP2020535550A5 (ja) 2021-01-21
JP6971395B2 JP6971395B2 (ja) 2021-11-24

Family

ID=62046972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020517988A Active JP6971395B2 (ja) 2017-09-29 2018-03-20 ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール

Country Status (5)

Country Link
US (2) US10592993B2 (ja)
EP (1) EP3688708A1 (ja)
JP (1) JP6971395B2 (ja)
CN (1) CN111247550B (ja)
WO (1) WO2019064058A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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
US11695559B2 (en) * 2019-09-30 2023-07-04 Salesforce, Inc. Nested tenancy that permits a hierarchy having a plurality of levels
CN111553669B (zh) * 2020-04-28 2021-09-10 腾讯科技(深圳)有限公司 一种交易路由方法、装置及计算机可读存储介质
US11556517B2 (en) 2020-05-17 2023-01-17 International Business Machines Corporation Blockchain maintenance
CN112306648A (zh) * 2020-10-29 2021-02-02 平安科技(深圳)有限公司 事务调用方法、装置、电子设备及存储介质
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005214779A (ja) * 2004-01-29 2005-08-11 Xanavi Informatics Corp ナビゲーション装置および地図データ更新方法
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
WO2017091305A1 (en) * 2015-11-24 2017-06-01 Mastercard International Incorporated Method and system for gross settlement by use of an opaque blockchain
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 (23)

* Cited by examiner, † Cited by third party
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
CN103733194A (zh) * 2011-01-27 2014-04-16 康姆普特奈科斯特有限公司 动态组织云计算资源以便于发现
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
JP6364132B2 (ja) 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
WO2017134281A1 (en) 2016-02-04 2017-08-10 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
MX2018010054A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo y sistema de tokenizacion para la implementacion de cambios de moneda en una cadena de bloques.
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
CN106230852A (zh) 2016-08-29 2016-12-14 中国银联股份有限公司 基于以太坊区块链技术的金融服务应用系统
CN106504089A (zh) 2016-10-14 2017-03-15 平安科技(深圳)有限公司 基于区块链的基金申购交易方法及系统
EP3552174A4 (en) * 2016-12-07 2020-05-27 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
GB2559592A (en) * 2017-02-09 2018-08-15 Mollah Stephen Blockchain (ML) Technology
US10225078B2 (en) * 2017-02-09 2019-03-05 International Business Machines Corporation Managing a database management system using a blockchain database
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005214779A (ja) * 2004-01-29 2005-08-11 Xanavi Informatics Corp ナビゲーション装置および地図データ更新方法
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
WO2017091305A1 (en) * 2015-11-24 2017-06-01 Mastercard International Incorporated Method and system for gross settlement by use of an opaque blockchain
US20170236104A1 (en) * 2016-02-12 2017-08-17 D+H Usa Corporation Peer-to-Peer Financial Transactions Using A Private Distributed Ledger

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
森崎 潤 他: "複数のソースファイルでハードコード化された情報に対する保守支援ツールの試作", 電子情報通信学会技術研究報告, vol. 107, no. 331, JPN6021033692, 12 November 2007 (2007-11-12), JP, pages 37 - 42, ISSN: 0004609454 *

Also Published As

Publication number Publication date
WO2019064058A1 (en) 2019-04-04
CN111247550A (zh) 2020-06-05
EP3688708A1 (en) 2020-08-05
US10592993B2 (en) 2020-03-17
US20200219203A1 (en) 2020-07-09
CN111247550B (zh) 2023-08-15
US11348187B2 (en) 2022-05-31
JP6971395B2 (ja) 2021-11-24
US20190102842A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
JP6971395B2 (ja) ブロックチェーンネットワークのためのコンピュータ化されたトランザクション管理モジュール
US11979285B2 (en) System and method for generic configuration management system application programming interface
US8146099B2 (en) Service-oriented pipeline based architecture
US20190102761A1 (en) Computerized messaging module for blockchain networks
AU2019236628B2 (en) Integrated entity view across distributed systems
US11379438B2 (en) Database migration between computing platforms using virtual backups
JP2024023461A (ja) 実行パイプラインのコンピュータ化された制御
US11366805B2 (en) Integrated entity view across distributed systems
US8104069B2 (en) Establishment of security federations
US20150095283A1 (en) Master schema shared across multiple tenants with dynamic update
US8756254B2 (en) Integration of CRM applications to ECS application user interface
JP7353306B2 (ja) 柔軟なエネルギー情報の集計
US9672572B2 (en) Real-time availability of omni-channel sales data
CN115136126A (zh) 用于移动应用的自定义验证和脚本的系统
US11757990B2 (en) Data synchronization in a cloud computing environment
US20220292584A1 (en) Combining data and notifications for multiple accounts of a common user
US10572302B2 (en) Computerized methods and systems for executing and analyzing processes
US11005838B2 (en) Computer implemented monitoring process for personalized event detection and notification transmission
US20240054026A1 (en) Federated distributed mutation
Sun et al. A muti-channel Online Selling Syndicates based on cloud structure
US10467077B2 (en) Configuration item integrity
Apiletti et al. Desidoo, a Big-Data Application to Join the Online and Real-World Marketplaces
US20150287040A1 (en) System enforced two-party verification process in customer support workflow
Apiletti et al. Desidoo, a Big-Data Application to Join the Online and Real-World Marketplaces.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R150 Certificate of patent or registration of utility model

Ref document number: 6971395

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150