[0015] 以下で説明する実装は、モビリティ・アズ・ア・サービス(MaaS)ネットワーク上でのアグリゲーション及びアーカイバルのためのトランザクションレコードの管理のための開示されるシステム及び方法に見出すことができる。開示されるシステムは、複数の同種又は異種モビリティプロバイダ及びそれらのインフラストラクチャ、例えば、チケッティングゲート、アプリケーション、及び/又はポイント・オブ・セールス(PoS)デバイスがMaaSネットワーク上で動作して様々なモビリティサービスを提供することを容易にすることができる複合輸送管理システムの一部とすることができる。各モビリティプロバイダは、セキュアなデータ所有権を有することができ、分散型台帳を通じて関連するトランザクションレコードの共同使用を制御することができる。これにより、様々なモビリティプロバイダ間の接続性を強化することができる。このシステムは、分散型台帳を通じて制御された関連するトランザクションレコードの共同使用に基づいて、異なるモビリティプロバイダ間のレベニューシェアリング(revenue sharing)モデル、ローミング管理及び契約管理の処理を更に強化することができる。
[0016] 本開示の例示的な態様は、MaaSネットワークと関連付けられる複数のノードパッケージを含むことができるシステムを提供する。複数のノードパッケージの各々は、サブスクライバノードと、第1の分散型台帳のモビリティプロバイダ(MP)ノードと、第2の分散型台帳のMaaSノードとを含むことができる。MaaSネットワークは、複数のパブリッシャノードと、ブローカノードデバイスとを更に含むことができる。MaaSネットワークと関連付けられる1又は2以上のノードは、MaaSモビリティサービスに含まれる一連の旅行プランのうちの旅行プランと関連付けられる複数のトランザクションレコードを処理するように構成することができる。トランザクションレコードは、旅行ユーザ(例えばローミングユーザ)と更に関連付けられることができる。複数のトランザクションレコードは、限定するものではないが、チケッティング情報、サブスクリプション情報、支払い情報、レベニューシェアリング情報、又はモビリティサービス情報などの情報と関連付けられることができる。複数のトランザクションレコードの各々は、複数のノードパッケージのうちの第1のノードパッケージのサブスクライバノード(例えば、第1のサブスクライバノード)によって受け取られるトランザクションメッセージと関連付けられることができる。トランザクションメッセージは、ブローカノードデバイスを介して、パブリッシャノード(例えば、複数のパブリッシャノードのうちの第1のパブリッシャノード)から、サブスクライバノードによって受信されることができる。
[0017] 開示されるシステムは、アグリゲータデータベースノードと、アーカイバルデータベースノードとを更に含むことができる。アグリゲータデータベースノードは、複数のノードパッケージの各々に通信可能に結合されることができ、アーカイバルデータベースノードは、アグリゲータデータベースノードに通信可能に結合されることができる。複数のノードパッケージからの第1のノードパッケージの第1のMaaSノードは、第1のMaaSノード上に記憶される複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するように構成することができる。第1のデータ保持閾値と、第1のMaaSノード上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づいて、複数のトランザクションレコードから、第1のトランザクションレコードのセットを選択することができる。
[0018] 第1のノードパッケージの第1のMaaSノードは、アグリゲータデータベースノードでの記憶のために、アグリゲータデータベースノードに選択された第1のトランザクションレコードのセットを送信するように更に構成することができる。第1のMaaSノードにおける第1のトランザクションレコードのセットの第1の記憶持続期間の完了に基づいて、第1のMaaSノードから、アグリゲータデータベースノードに、選択された第1のトランザクションレコードのセットを送信することができる。例えば、第1のデータ保持閾値は、3日とすることができる。したがって、第1のMaaSノードにおける3日間にわたる第1のトランザクションレコードのセットの記憶の後に、アグリゲータデータベースノードに、第1のトランザクションレコードのセットを送信することができる。
[0019] 第1のMaaSノードは、アグリゲータデータベースノードへの選択された第1のトランザクションレコードのセットの送信に基づいて、第1のMaaSノードからの選択された第1のトランザクションレコードのセットを無効にする(又は作動しないようにする、すなわちソフトデリートする)ように更に構成することができる。したがって、第1の複数のトランザクションレコードからのより古いトランザクションレコードを、第1のMaaSノードにおいて無効にすることができ、任意の更なる使用のためにアグリゲータデータベースノード内に依然として保持することができる。
[0020] ある実施形態によれば、第1のMaaSノードは、アグリゲータデータベースノード上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するように更に構成することができる。第2のトランザクションレコードのセットの選択は、第2のデータ保持閾値と、アグリゲータデータベースノード上に記憶される第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づくことができる。第3のトランザクションレコードのセットは、第1のMaaSノードからアグリゲータデータベースノードによって受け取られることができる第1のトランザクションレコードのセットを含むことができる。アグリゲータデータベースノード内の第3のトランザクションレコードのセットは、第1のトランザクションレコードのセットと、アグリゲータデータベースノード上に既に記憶されている他のトランザクションレコード(第1のトランザクションレコードのセットよりも新しい又は古いものとすることができる)とを含むことができる。第2のデータ保持閾値は、例えば、60日とすることができる。アグリゲータデータベースノードは、アーカイバルデータベースノードでの記憶のために、アーカイバルデータベースノードに選択された第2のトランザクションレコードのセットを更に送信することができる。したがって、アグリゲータデータベースノードにおける60日間にわたる第2のトランザクションレコードのセットの記憶の後に、アーカイバルデータベースノードに、第2のトランザクションレコードのセットを送信することができる。
[0021] トランザクションレコードを記憶する必要がある全時間期間にわたって同じデータベース(例えばMaaSネットワークに関連するもの)上に全てのトランザクションレコードを記憶することができる従来のシステムとは対照的に、開示されるシステムは、MaaSノード上に記憶することができるより古いトランザクションレコードの選択を提供する。MaaSノード上のより古いトランザクションレコードの選択は、MaaSノードの記憶閾値(例えば第1のデータ保持閾値)と、MaaSノード上のこのようなより古いトランザクションレコードの記憶の持続期間とに基づくことができる。アグリゲータデータベースノードでの記憶のために、アグリゲータデータベースノードに選択されたより古いトランザクションレコードを移動させることができる。更に、アグリゲータデータベースノードの記憶閾値(例えば第2のデータ保持閾値)に基づいて、特定の時間期間にわたって、アグリゲータデータベースノードにおいてトランザクションレコードを記憶することができる。アーカイバルデータベースノード上での記憶のために、アーカイバルデータベースノードに、トランザクションレコード(そのアグリゲータデータベースノード上での記憶の持続期間がアグリゲータデータベースノードの記憶閾値を超えるもの)を更に移動させることができる。アグリゲータデータベースノード及びアーカイバルデータベースノードに他のトランザクションレコードを順次移行することができるので、MaaSノードが任意の所与の時間に限定された数のトランザクションレコードを記憶することができるように、アグリゲータデータベースノード及びアーカイバルデータベースノードの記憶閾値を構成することができる。このような規則的な移行は、MaaSネットワーク内の大規模トランザクションレコードの記憶及び管理を向上させることができる。更に、(記憶閾値に基づいて)任意の所与の時間にMaaSノードにおいて限定された数のトランザクションレコードを記憶することができるので、MaaSノード上に記憶されるトランザクションレコードと関連付けられるトランザクションの処理の遅延を最小にすることができる。
[0022] 更に、アグリゲータデータベースノードは、MaaSネットワーク及びMaaSネットワークの様々なモビリティプロバイダにわたって、非リアルタイムトランザクション処理のためのサポートを提供することができる。例えば、アグリゲータデータベースノードは、MaaSネットワークにわたって全てのモビリティプロバイダの1カ月のトランザクションレコードを含むことができる。(例えば毎月のトランザクションの完了のための)チケットトランザクションの統合、及び異なるモビリティプロバイダ及びMaaSネットワーク自体を管理する組織と関連付けられるレベニューシェアの計算のために、このようなトランザクションレコードを照合することができる。また、アーカイバルデータベースノードは、より長期間にわたって大量のトランザクションレコードを記憶して、長期にわたり記憶されるこのようなトランザクションレコードと関連付けられるトランザクションの監査及びコンプライアンスをサポートすることができる(例えば、異なる規制当局によって要求される場合があるように、3~5年間にわたってアーカイバルデータベースノード上にトランザクションレコードを記憶することができる)。更に、アーカイバルデータベースノードは、MaaSネットワークの管理に必要とされる場合があるように、MaaSネットワークと関連付けられるアドミニストレータシステムを通じて、MaaSネットワークと関連付けられる大規模トランザクションレコードの分析及び可視化をサポートすることもできる。
[0023] 図1は、本開示の実施形態による、共通データベースアーキテクチャに基づくモビリティ・アズ・ア・サービス(MaaS)プラットフォーム上での大規模トランザクション及びノードアーカイバルのサポートのための例示的なネットワーク環境の図である。図1を参照すると、ネットワーク環境100のブロック図が示されている。ネットワーク環境100は、第1のMaaSネットワーク102を含むことができ、第1のMaaSネットワーク102は、パブリッシュ-サブスクライブパターンと関連付けられることができる。第1のMaaSネットワーク102は、第1の複数のノードを含むことができ、第1の複数のノードは、クライアント層104、ブローカ層106、及びサーバ層108などの層として構成することができる。第1の複数のノードは、クライアント層104内の複数のパブリッシャノード110と、ブローカ層106内のブローカノードデバイス112とを含むことができる。第1の複数のノードは、サーバ層108内において、第1の複数のサブスクライバノード114A、114B、…114Nと、第1の分散型台帳の複数のモビリティプロバイダ(MP)ノード116A、116B、…116Nと、第2の分散型台帳の複数のMaaSノード118A、118B、…118Nと、アグリゲータデータベースノード122と、アーカイバルデータベースノード124と、キャッシュデータベースノード126とを更に含むことができる。第1の複数のサブスクライバノード114A、114B、…114Nと、複数のMPノード116A、116B、…116Nと、複数のMaaSノード118A、118B、…118Nとは、共同で、第1のMaaSネットワーク102の複数のノードパッケージ120を形成することができる。例えば、複数のノードパッケージ120のうちの第1のノードパッケージは、第1のサブスクライバノード114Aと、第1のMPノード116Aと、第1のMaaSノード118Aとを含むことができる。別の例では、複数のノードパッケージ120のうちの第2のノードパッケージは、第2のサブスクライバノード114Bと、第2のMPノード116Bと、第2のMaaSノード118Bとを含むことができる。アグリゲータデータベースノード122は、複数のノードパッケージ120に通信可能に結合されることができる。アーカイバルデータベースノード124は、アグリゲータデータベースノード122に通信可能に結合されることができる。クライアント層104内の複数のパブリッシャノード110は、ブローカノードデバイス112を通じて第1の複数のサブスクライバノード114A、114B、…114Nと通信するように構成することができる。
[0024] 図1に単一のブローカノードデバイス112が示されているが、本開示の範囲をこれに限定することはできない。ある実施形態では、ネットワーク環境100は、本開示の範囲から逸脱することなく、複数のブローカノードデバイス112を含むことができる。別の実施形態では、ネットワーク環境100は、1又は2以上のブローカノードデバイスの機能を含むことができるインテリジェントブローカノードを含むことができる。
[0025] 複数のパブリッシャノード110は、第1のパブリッシャノード110A、第2のパブリッシャノード110B、…及び第Nのパブリッシャノード110Nを含むことができる。第1の複数のサブスクライバノード114A、114B、…114Nは、第1のサブスクライバノード114A、第2のサブスクライバノード114B、…及び第Nのサブスクライバノード114Nを含むことができる。ある実施形態では、第1の複数のサブスクライバノード114A、114B、…114Nの各々は、データ(例えばトランザクションメッセージ)の通信のためのプラグインを通じてブローカノードデバイス112とインターフェイスされることができる。第1の複数のサブスクライバノード114A、114B、…114Nの各々は、それぞれのMPノード及びMaaSノードと関連付けられることができる。例えば、第1のサブスクライバノード114Aは、第1のMPノード116A及び第1のMaaSノード118Aの各々と関連付けられることができる。更に、第2のサブスクライバノード114Bは、第2のMPノード116B及び第2のMaaSノード118Bの各々と関連付けられることができる。同様に、第Nのサブスクライバノード114Nは、第NのMPノード116N及び第NのMaaSノード118Nの各々と関連付けられることができる。
[0026] ネットワーク環境100は、第1のサーバ128と、第1のMaaSネットワーク102のアドミニストレータ132によって動作させることができるアドミニストレータデバイス130とを更に含むことができる。ネットワーク環境100内に、ユーザ(図示せず)が更に存在することができ、ユーザは、複数のパブリッシャノード110と対話して、第1のMaaSネットワーク102の異なるモビリティプロバイダからのモビリティサービスに役立つことができる。
[0027] 第1のMaaSネットワーク102は、ノードのネットワーク、例えば、クライアント層104、ブローカ層106、及びサーバ層108内で動作するように構成することができる第1の複数のノードを含むことができる。第1のMaaSネットワーク102は、複数のモビリティプロバイダと関連付けられるMaaSモビリティサービスのためのトランザクション(例えばトランザクションメッセージ)を処理することができる。このようなモビリティプロバイダの各々は、第1のMaaSネットワーク102のクライアント層104及びサーバ層108の各々におけるノードのクラスタを所有、リース、又は管理することができる。例えば、第1のパブリッシャノード110A、第1のサブスクライバノード114A、及び第1のMPノード116Aは、第1のモビリティプロバイダと関連付けられることができる。第2のパブリッシャノード110B、第2のサブスクライバノード114B、及び第2のMPノード116Bは、第1のモビリティプロバイダと異なることができる第2のモビリティプロバイダと関連付けられることができる。
[0028] いくつかの実施形態では、第1のMaaSネットワーク102は、MaaSのための公開標準仕様をサポートすることができる。このような場合、第1のMaaSネットワーク102の様々なモビリティプロバイダと関連付けられる異なる会社の複数のパブリッシャノード110(例えば、チケットリーダ又はセンサデバイス)は、同種パブリッシャノードとして第1のMaaSネットワーク102に参加することができる。更に、レガシーなチケットリーダ又はセンサデバイスは、標準通信プロトコル、例えば、メッセージキューイングテレメトリトランスポート(MQTT)ベースのメッセージングプロトコル、アドバンストメッセージキューイングプロトコル(AMQP)ベースのメッセージングプロトコル、又はメッセージ指向ミドルウェア(MOM)ベースのメッセージングフレームワークのレバレッジに基づいて、第1のMaaSネットワーク102に接続することができる。標準通信プロトコルを使用することによって、第1のMaaSネットワーク102は、ユーザにチケットローミング機能を提供することができる。例えば、任意のモビリティプロバイダのチケットリーダは、MaaSモビリティサービスを求めてユーザの電子チケットをスキャンすることができ、第1のMaaSネットワーク102のシームレスかつセキュアなアクセスに基づいて(チケットの発行人に関係なく)ユーザにモビリティプロバイダのそれぞれのモビリティサービスを提供することができる。
[0029] ある実施形態によれば、複数のMPノード116A、116B、…116Nの各々は、第1のMaaSネットワーク102の別個のモビリティプロバイダと関連付けられることができる。デバイス、アプリケーション、又はチケッティングゲートの同種グループ、又はチケッティングゲート、アプリケーション、及びポイント・オブ・セールス(PoS)デバイスの異種グループを通じて、同種モビリティプロバイダ(例えば、複数のタクシープロバイダ会社又は複数の鉄道会社)又は異種モビリティプロバイダによって、MaaSモビリティサービスを提供することができる。MaaSモビリティサービスは、1又は2以上の同種又は異種モビリティプロバイダの個々のサーバ提供の組み合わせとすることができる。MaaSモビリティサービスは、例えば、電車サービス、バスサービス、タクシー/キャブサービス、地下鉄サービス、飛行機サービス、フリートサービス、ライドヘイリングサービス、カーシェアリングサービス、カープールサービス、カーレンタルサービス、自転車シェアリングサービス、又はこれらの組み合わせを含むことができる。
[0030] 複数のパブリッシャノード110A、110B、…110Nの各々は、それぞれのモビリティプロバイダのモビリティサービスのためのチケット処理クライアントとして動作するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。例えば、チケット処理クライアントとして、第1のパブリッシャノード110A、第2のパブリッシャノード110B、…及び第Nのパブリッシャノード110Nの各々は、チケットの読み取り、発行、再チャージ、又はキャンセルを行って、それぞれのモビリティサービスと関連付けられるイベントを作成することができる。このようなイベントに基づいて、第1のパブリッシャノード110A、第2のパブリッシャノード110B、…及び第Nのパブリッシャノード110Nの各々によって、トランザクションメッセージを生成することができ、ブローカノードデバイス112を通じて、第1のMaaSネットワーク102又は他のMaaSネットワークの1又は2以上のサブスクライバノードに、生成されたトランザクションメッセージを通信することができる。パブリッシャノードの例は、旅行計画又は予約アプリケーションを含む消費者電子デバイス、チケッティングゲート上のチケットリーダ、ポイント・オブ・セールス(PoS)デバイス上のチケッティングキオスク、モバイルPOS、チケット自動販売機、チケットを読み取って乗ることを開始又は終了することができる輸送手段のスマートドアを含むことができるが、これらに限定されない。
[0031] ブローカノードデバイス112は、パブリッシャノード(例えば第1のパブリッシャノード110A)から、好適なノード、例えばサブスクライバノード(例えば第1のサブスクライバノード114A)にトランザクションメッセージをルーティングするように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。ブローカノードデバイス112は、好適なパブリッシュ-サブスクライブネットワークプロトコル、例えば、メッセージキューイングテレメトリトランスポート(MQTT)ベースのメッセージングプロトコル、アドバンストメッセージキューイングプロトコル(AMQP)ベースのメッセージングプロトコル、又はメッセージ指向ミドルウェア(MOM)ベースのメッセージングフレームワーク(但し、これらに限定されない)を通じて、複数のパブリッシャノード110A、110B、…110Nの各々及び第1の複数のサブスクライバノード114A、114B、…114Nの各々と通信するように構成することができる。ブローカノードデバイス112の例示的な実装は、アプリケーションサーバ、クラウドサーバ、メインフレームサーバ、データベースサーバ、ウェブサーバ、又は他のタイプのサーバを含むことができるが、これらに限定されない。
[0032] 第1の複数のサブスクライバノード114A、114B、…114Nの各々は、ブローカノードデバイス112を通じて、複数のパブリッシャノード110A、110B、…110Nのうちの1又は2以上からトランザクションメッセージを受け取るように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。ある実施形態では、第1の複数のサブスクライバノード114A、114B、…114Nの各々は、データ(例えばトランザクションメッセージ)の通信のためのプラグインを通じてブローカノードデバイス112とインターフェイスされることができる。各トランザクションメッセージは、第1の複数のサブスクライバノード114A、114B、…114Nのうちの1又は2以上のサブスクライバノードによって加入することができるトピックを含むことができる。サブスクライバノードの例示的な実装は、ウェブサーバ、エッジデバイス、エッジノード、クラウドサーバ、クラウドベースのサーバのクラスタ、ワークステーション、又はフォグ又はクラウドコンピューティング機能を含む任意のコンピューティングデバイスを含むことができるが、これらに限定されない。
[0033] MPノード116A、116B、…116Nの各々は、それぞれのモビリティプロバイダと関連付けられるトランザクションレコードを記憶するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。例えば、第1のMPノード116Aは、第1のモビリティプロバイダと関連付けられるトランザクションレコードを記憶することができる。ある実施形態では、各MPノード上に記憶される各トランザクションレコードは、2パーティトランザクションと関連付けられることができる。例えば、特定のモビリティプロバイダのMPノード上に記憶されるトランザクションレコードは、モビリティプロバイダ及びMaaSプロバイダに関与することができるトランザクションと関連付けられることができる。トランザクションレコードは、ユーザの旅行のレコードを含むことができる。各旅行は、旅行の少なくとも1つの方法で第1のモビリティプロバイダによって提供することができるモビリティサービスに対応することができる。MPノード116A、116B、…116Nの各々は、第1のMaaSネットワーク102の様々なモビリティプロバイダのトランザクションレコードを記憶することができる分散型台帳116(例えば第1の分散型台帳)のノードと呼ぶことができる。ある実施形態では、各MPノードは、エッジデバイス、エッジノード、又はフォグ又はクラウドコンピューティング機能を含む分散型台帳ノードのうちの1つとして実装することができるが、これらに限定されない。
[0034] MaaSノード118A、118B、…118Nの各々は、第1のMaaSネットワーク102の全てのモビリティプロバイダと関連付けられるトランザクションレコードを記憶するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。モビリティプロバイダの各々と関連付けられるトランザクションレコードの記憶を使用して、ユーザにモビリティサービスを提供するモビリティプロバイダ間の旅行のトランザクションを決めることができる。ある実施形態では、各MaaSノード上に記憶される各トランザクションレコードは、マルチパーティトランザクションと関連付けられることができる。例えば、MaaSノード上に記憶されるトランザクションレコードは、第1のMaaSネットワーク102の1又は2以上のモビリティプロバイダとMaaSプロバイダとに関与することができるトランザクションと関連付けられることができる。このような場合、MPノード及びMaaSノードは、同じトランザクションを記憶することができる。MaaSノード118A、118B、…118Nの各々は、第1のMaaSネットワーク102と関連付けられるトランザクションレコードを記憶することができる分散型台帳118(例えば第2の分散型台帳)のノードに対応することができる。ある実施形態では、各MaaSノードは、エッジデバイス、エッジノード、又はフォグ又はクラウドコンピューティング機能を含む分散型台帳ノードのうちの1つとして実装することができるが、これらに限定されない。
[0035] ある実施形態では、複数のノードパッケージ120のうちの1又は2以上は、サブスクライバノードと、第1の分散型台帳の複数のMPノードと、第2の分散型台帳のMaaSノードとを含むことができる。例えば、複数のノードパッケージ120のうちの第1のノードパッケージは、第1のサブスクライバノード114Aと、第1のMPノード116Aと、第2のMPノード116Bと、第1のMaaSノード118Aとを含むことができる。別の例では、第2のノードパッケージは、第2のサブスクライバノード114Bと、第1のMPノード116Aと、第2のMaaSノード118Bとを含むことができる。別の例では、第3のノードパッケージは、第3のサブスクライバノード114Cと、第1のMPノード116Aと、第2のMPノード116Bと、第3のMaaSノード118Cとを含むことができる。複数のMPノードの各々は、第1のMaaSネットワーク102の別個のモビリティプロバイダと関連付けられることができる。ある例では、第1のMPノード116Aは、第1のモビリティプロバイダ(例えばタクシーサービスプロバイダ)と関連付けられることができ、第2のMPノード116Bは、第2のモビリティプロバイダ(例えば地下鉄サービスプロバイダ)と関連付けられることができる。
[0036] ある実施形態では、分散型台帳116及び/又は分散型台帳118の各々の少なくとも2つのノードは、MaaSモビリティサービスと関連付けられるトランザクションレコードを記憶することができる。MaaSモビリティサービスと関連付けられるトランザクションレコードは、初期状態オブジェクト及び初期状態オブジェクトの更新バージョンなどの状態オブジェクトのセットに含まれることができる。各状態オブジェクトは、スマートコントラクトと、契約コード(又はトランザクションのパーティが合意するトランザクションのルール)と、状態プロパティ(パブリッシャノードからのトランザクションメッセージに基づいてトランザクションレコードが更新された時に更新することができるもの)とを含むことができる。
[0037] 少なくとも1つの実施形態では、分散型台帳116及び分散型台帳118の各々は、データオペレーション又はトランザクションの不変レコードを維持することができる分散型(decentralized and distributed)データベースシステムとすることができる。データオペレーションのセットは、ブロックとして一緒にグループ化されることができ、データオペレーションの前のブロックに更にリンクされて、ブロックのチェーンを形成することができる。データオペレーションの全てのブロックを分散的に記憶することができることによって、分散型台帳116及び分散型台帳118の少なくとも2つの参加者又はノードは、少なくとも2つの参加者又はノードが参加することができる1又は2以上のトランザクションと関連付けられるブロックのサブセットを記憶することができる。更に、分散型台帳116及び分散型台帳118の各々は、複数のパーティ間、例えば第1のMaaSネットワーク102のモビリティプロバイダとMaaSプロバイダとの間のスマートコントラクトの展開を可能にすることができるオペレーティングシステム(例えば、Java仮想マシン(JVM))を含むことができる。
[0038] 限定ではなく一例として、分散型台帳116及び分散型台帳118の各々は、コルダ(Corda)ブロックチェーン、イーサリアム(Ethereum)ブロックチェーン、又はハイパーレジャー(Hyperledger)ブロックチェーンとすることができる。分散型台帳116及び分散型台帳118の各々は、それぞれの分散型台帳によって追跡することができる不変状態オブジェクトのセットを記憶することができる。状態オブジェクトは、(トランザクションレコードからの)トランザクションデータ、例えば、パーティ間のスマートコントラクト、契約コード(トランザクションのルール)、及び特定の状態値を有する状態プロパティを含むコンテンツを含むことができる。スマートコントラクトは、スマートコントラクトの複数のパーティが互いに対話することに合意することができる条件のセットを含むことができる。スマートコントラクトは、それぞれの分散型台帳の1又は2以上のノード上で実行することができ、状態オブジェクト間のトランザクションを支配して、トランザクションを生成することができる。スマートコントラクトは、一度書き込まれ、多数の状態オブジェクトのために再使用され、暗号ハッシュによって支配的な法的散文を意味することができる。
[0039] 分散型台帳116及び分散型台帳118の各々は、セキュアな暗号ハッシュを使用して、パーティ及びデータを識別し、また、状態オブジェクトの前のバージョンに状態オブジェクトをリンクして、出所(provenance)のチェーンを更に提供することができる。トランザクションと関連付けられるパーティのグループのみがトランザクションを見ることができるように、それぞれの分散型台帳上に(関連付けられたトランザクションレコードとして)パーティのグループ間のトランザクションを記憶することができる。トランザクションと関連付けられるパーティは、ボールト(すなわち、それぞれの分散型台帳と関連付けられるデータベース)内に、トランザクションの現在の状態オブジェクトを記憶することができる。トランザクションを見る又は処理する(例えば、トランザクションを検証する)資格のある別のパーティは、ボールトからトランザクションの現在の状態オブジェクトを取り出すことができる。更に、それぞれの分散型台帳の各状態オブジェクトは、関連付けられたトランザクションに参加することができるパーティ又はノード間のスマートコントラクトを含むことができる。
[0040] 分散型台帳116及び分散型台帳118の各々において、参加者又はノード(例えば、第1のMPノード116A及び/又は第1のMaaSノード118A)は、入力状態オブジェクトの状態プロパティを更新することによってトランザクションを更新して、出力状態オブジェクトを生成することができる。これによって、更新されたトランザクションは、トランザクションデータと関連付けられることができる出所のチェーンを作成することができる。分散型台帳116及び分散型台帳118の各々は、更新されたトランザクションの有効性の決定と更新されたトランザクションの一意性の決定とに基づいて、更新されたトランザクションについてのコンセンサスを提供することができる。ある実施形態では、更新されたトランザクションと関連付けられるノードの参加者は、スマートコントラクト及びトランザクションと関連付けられる検証ロジックの独立実行によって、更新されたトランザクションの有効性を決定することができる。更に、現在のトランザクションとして同じ入力状態オブジェクトを使用してコンセンサスに達した他のトランザクションが存在しないことをチェックすることに基づいて、更新されたトランザクションの一意性を決定することができる。
[0041] ある実施形態によれば、分散型台帳116及び分散型台帳118の各々は、クライアント側インターフェイス(フロントエンド)とサーバ側インターフェイス(バックエンド)とを含むことができる分散アプリケーションと関連付けられることができる。分散アプリケーションは、ワークフロー(例えばコルダ(Corda)フロー)を実装して、それぞれの分散型台帳のノード(例えばMPノード116A及び/又はMaaSノード118A)上にトランザクションを記録する(ことによって、関連付けられたトランザクションレコードを記憶する)ように構成することができる。クライアント側インターフェイスは、第1の複数のサブスクライバノード114A、114B、…114Nの各々にホストされることができ、サブスクライバノードと関連付けられるクライアント上にロードするように構成することができる。例えば、分散アプリケーションのクライアント側インターフェイスは、各サブスクライバノード上に構成することができるリモート・プロシージャ・コール(RPC)クライアントとすることができる。分散アプリケーションのサーバ側インターフェイスは、分散型台帳116及び分散型台帳118の各ノード上で実行することができる。
[0042] ある実施形態では、第1のMPノード116A及び第1のMaaSノード118Aの各々は、第1のサブスクライバノード114Aを介してトランザクションメッセージを受け取るように構成することができる。第1のMPノード116A及び第1のMaaSノード118Aの各々は、トランザクションメッセージに基づいて、分散型台帳116及び分散型台帳118の各々とそれぞれ関連付けられる初期状態オブジェクトを更新して、更新された状態オブジェクトを出力することができる。第1のMPノード116A及び第1のMaaSノード118Aの各々は、初期トランザクションデータを含む初期状態オブジェクトと、更新されたトランザクションデータを含む更新された状態オブジェクトとを含むことができるトランザクションを構築することができる。
[0043] アグリゲータデータベースノード122は、第1のMaaSネットワーク102の全てのモビリティプロバイダと関連付けられる第1の複数のトランザクションレコードのうちの第1のトランザクションレコードのセットを記憶するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。アグリゲータデータベースノード122内での第1のトランザクションレコードのセットの記憶は、第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの第1の記憶持続期間とに基づくことができる。ある実施形態では、アグリゲータデータベースノード122は、アグリゲーションロジックに基づいて、第1のトランザクションレコードのセットから選択されたトランザクションレコードを記憶するように構成することができる。ある実施形態によれば、アグリゲータデータベースノード122は、第1のMaaSネットワーク102のモビリティプロバイダと関連付けられる第1のトランザクションレコードのセットを記憶することができる第1のMaaSネットワーク102に関連する分散型台帳(例えば分散型台帳118)のノードとすることができる。別の実施形態によれば、アグリゲータデータベースノード122は、非分散型台帳(又はローカル)ノードとすることができる。
[0044] アーカイバルデータベースノード124は、第1のMaaSネットワーク102の全てのモビリティプロバイダと関連付けられる第2のトランザクションレコードのセットを記憶するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。アーカイバルデータベースノード124内での第2のトランザクションレコードのセットの記憶は、第2のデータ保持閾値と、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットの第2の記憶持続期間とに基づくことができる。第3のトランザクションレコードのセットは、アグリゲータデータベースノード122上に記憶することができる第1のトランザクションレコードのセットを少なくとも含むことができる。ある実施形態によれば、アーカイバルデータベースノード124は、第1のMaaSネットワーク102のモビリティプロバイダと関連付けられる第2のトランザクションレコードのセットを記憶することができる第1のMaaSネットワーク102に関連する分散型台帳(例えば分散型台帳118)のノードとすることができる。別の実施形態によれば、アーカイバルデータベースノード124は、照会機構を含まない非分散型台帳(又はローカル)ノードとすることができる。非分散型台帳ベースのノードは、コスト効率が良く、分散型台帳ベースのノードよりも高速であることができる。
[0045] キャッシュデータベースノード126は、高速一時メモリ又はデータベース内に頻繁に照会されたトランザクションレコードを記憶するように構成できる好適なロジック、回路、コード、及び/又はインターフェイスを含むことができる。キャッシュデータベースノード126は、他のデータベースノード、例えば、複数のMPノード116A、116B、…116N、複数のMaaSノード118A、118B、…118N、アグリゲータデータベースノード122、及びアーカイバルデータベースノード124の作業負荷の低減を可能にすることができる。
[0046] 第1のサーバ128は、アグリゲータデータベースノード122上に記憶される1又は2以上の第1のトランザクションレコードについて照会し、照会された1又は2以上の第1のトランザクションレコードと関連付けられる1又は2以上のトランザクションを検証するように構成できる好適なロジック、回路、インターフェイス、及び/又はコードを含むことができる。第1のサーバ128は、アーカイバルデータベースノード124上に記憶される1又は2以上の第2のトランザクションレコードについて照会し、照会された1又は2以上の第2のトランザクションレコードと関連付けられる統計情報の表示を制御するように更に構成することができる。いくつかの実施形態では、キャッシュデータベースノード126によって、1又は2以上の第2のトランザクションレコードがキャッシュされた場合、第1のサーバ128は、キャッシュデータベースノード126上に記憶される1又は2以上の第2のトランザクションレコードからの1又は2以上の第3のトランザクションレコードについて照会するように構成することができる。第1のサーバ128は、同様に、照会された1又は2以上の第3のトランザクションレコードと関連付けられる統計情報の表示を制御することができる。
[0047] ある実施形態によれば、第1のサーバ128は、API要求、例えば、トランザクション検証、分析、又は可視化と関連付けられるAPI要求を処理するように構成することができる。アグリゲータデータベースノード122上に記憶される1又は2以上の第1のトランザクションレコード及び/又はアーカイバルデータベースノード124(又はキャッシュデータベースノード126)上に記憶される1又は2以上の第2のトランザクションレコードに基づいて、API要求を処理することができる。ある実施形態によれば、第1のサーバ128は、JavaScript又はPython(但し、これらに限定されない)などのスクリプト言語に基づいてプログラムすることができるAPIサービスを提供することができる。第1のサーバ128は、ウェブアプリケーション、クラウドアプリケーション、HTTP要求、リポジトリオペレーション、ファイル転送などを通じてオペレーションを実行することができるクラウドサーバ又はクラウドサーバのクラスタとして実装することができる。第1のサーバ128の他の例示的な実装は、データベースサーバ、ファイルサーバ、ウェブサーバ、メディアサーバ、アプリケーションサーバ、メインフレームサーバ、又はクラウドコンピューティングサーバを含むことができるが、これらに限定されない。
[0048] 少なくとも1つの実施形態では、第1のサーバ128は、当業者に周知であるいくつかの技術を使用して、複数の分散クラウドベースのリソースとして実装することができる。当業者であれば、本開示の範囲を、2つの別個のエンティティとしての第1のサーバ128及びブローカノードデバイス112の実装に限定することはできないと理解するであろう。特定の実施形態では、第1のサーバ128の機能は、本開示の範囲から逸脱することなく、その全体が又は少なくとも部分的にブローカノードデバイス112に組み込まれることができる。
[0049] 作動時に、複数のノードパッケージ120からの第1のノードパッケージ(例えば、第1のサブスクライバノード114A、第1のMPノード116A及び第1のMaaSノード118A)のうちの第1のMaaSノード118Aは、第1のMaaSノード118A上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するように構成することができる。第1の複数のトランザクションレコードの各々は、第1のノードパッケージの第1のサブスクライバノード114Aによって受け取られるトランザクションメッセージと関連付けられることができる。第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づいて、第1のトランザクションレコードのセットを選択することができる。例えば、第1のデータ保持閾値が3日である場合、第1のMaaSノード118Aは、第1のトランザクションレコードのセットとして、3日以上の記憶持続期間(すなわち第1の記憶持続期間)を有する第1の複数のトランザクションレコードの全てのトランザクションレコードを選択することができる。更に、第1のMaaSノード118Aは、アグリゲータデータベースノード122での記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。例えば図4Bに、第1のトランザクションレコードのセットの選択及び選択された第1のトランザクションレコードのセットの送信の詳細を示す。
[0050] 第1のMaaSノード118Aは、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を更に制御することができる。第1のMaaSノード118Aは、第2のデータ保持閾値と、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づいて、第2のトランザクションレコードのセットの選択を制御することができる。第1のMaaSノード118Aは、アグリゲータデータベースノード122に、第2のデータ保持閾値及び第2の記憶持続期間に基づいて第2のトランザクションレコードのセットを選択するようにコマンドを送信することによって、第2のトランザクションレコードのセットの選択を制御することができる。例えば、第2のデータ保持閾値は、60日とすることができる。この場合、第1のMaaSノード118Aは、第2のトランザクションレコードのセットとして、60日以上の記憶持続期間(すなわち第2の記憶持続期間)を有するアグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットから全てのトランザクションレコードを選択するように、アグリゲータデータベースノード122を制御することができる。本明細書では、第3のトランザクションレコードのセットは、第1のMaaSノード118Aから受け取られる第1のトランザクションレコードのセットを少なくとも含むことができる。第3のトランザクションレコードのセットは、第1のトランザクションレコードのセットよりも古い又は新しいとすることができる他のトランザクションレコードを更に含むことができる。第1のMaaSノード118Aは、アーカイバルデータベースノード124での記憶のために、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を更に制御することができる。例えば図4Cに、第2のトランザクションレコードのセットの選択及び選択された第2のトランザクションレコードのセットの送信の詳細を示す。いくつかの実施形態では、複数のノードパッケージ120のうちの各ノードパッケージは、プラグインインターフェイスを介して、ブローカ層106を通じて、クライアント層104に接続されることができる。例えば図2に、プラグインインターフェイスの詳細を示す。
[0051] ある実施形態によれば、アグリゲータデータベースノード122及びアーカイバルデータベースノード124の各々と関連付けられる第1のサーバ128は、アグリゲータデータベースノード122に、アグリゲータデータベースノード122上に記憶される1又は2以上の第1のトランザクションレコードについてのクエリを送信するように構成することができる。例示的なシナリオでは、1又は2以上の第1のトランザクションレコードは、第1のサーバ128によって頻繁に照会されることができる。1又は2以上の第1のトランザクションレコードについて照会して、例えば、第1のMaaSネットワーク102を管理する組織と第1のMaaSネットワーク102の1又は2以上のモビリティプロバイダとの間の、又は第1のMaaSネットワーク102の2又は3以上のモビリティプロバイダ間の紛争を解決することができる。
[0052] 第1のサーバ128は、アグリゲータデータベースノード122から、照会された1又は2以上の第1のトランザクションレコードを更に受け取ることができる。受け取られた1又は2以上の第1のトランザクションレコードは、例えば、同じモビリティプロバイダ又は異なるモビリティプロバイダと関連付けられるトランザクションメッセージに関連することができる。また、第1のサーバ128は、照会された1又は2以上の第1のトランザクションレコードと関連付けられる1又は2以上のトランザクションを検証することができる。第1のサーバ128によって、1又は2以上のトランザクションの検証を実行して、例えば、紛争を解決することができる。例えば、第1のサーバ128は、トランザクションの総量、及び組織(すなわち、第1のMaaSネットワーク102を管理する組織)と、トランザクションと関連付けられるモビリティサービスを提供した場合がある1又は2以上のモビリティプロバイダとの間で分配される収入の総量を決定することができる。第1のサーバ128は、トランザクションの総量と分配された収入の総量との間の一致を検証することができる。更に、第1のサーバ128は、収入の分配が、組織と第1のMaaSネットワーク102の様々なモビリティプロバイダとの間の予め定められた収入分配合意に従っていることを検証することができる。ある実施形態では、収入分配は、スマートコントラクトなどの分散型台帳技術と関連付けられるプロトコルに基づくことができる。したがって、第1のサーバ128は、収入の分配が、組織と第1のMaaSネットワーク102の様々なモビリティプロバイダとの間のスマートコントラクトに従っていることを検証することができる。
[0053] ある実施形態によれば、第1のサーバ128は、アーカイバルデータベースノード124に、アーカイバルデータベースノード124上に記憶される1又は2以上の第2のトランザクションレコードについてのクエリを送信するように更に構成することができる。第1のサーバ128は、アーカイバルデータベースノード124から、照会された1又は2以上の第2のトランザクションレコードを更に受け取ることができる。アーカイバルデータベースノード124上に記憶される1又は2以上の第2のトランザクションレコードについて照会して、例えば、第1のMaaSネットワーク102と関連付けられる紛争解決、監査、及びコンプライアンスタスクを可能にすることができる。
[0054] 第1のサーバ128は、照会された1又は2以上の第2のトランザクションレコードと関連付けられる統計情報を更に表示することができる。照会された1又は2以上の第2のトランザクションレコードと関連付けられる統計情報は、照会された1又は2以上の第2のトランザクションレコードの各々のトランザクション識別(ID)、照会された1又は2以上の第2のトランザクションレコードの各々と関連付けられるタイムスタンプ、又は照会された1又は2以上の第2のトランザクションレコードの各々のルーティング経路を含むことができるが、これらに限定されない。統計情報は、各モビリティプロバイダにわたるトランザクションレコードの分配、各モビリティプロバイダにわたるトランザクション値の分配、日、週、月、又は年にわたるトランザクションレコードの分配、又は第1のMaaSネットワーク102のユーザにわたるトランザクションレコードの分配を更に含むことができるが、これらに限定されない。
[0055] ある実施形態によれば、キャッシュデータベースノード126は、アーカイバルデータベースノード124から、照会された1又は2以上の第2のトランザクションレコードを受け取るように構成することができる。キャッシュデータベースノード126は、受け取った1又は2以上の第2のトランザクションレコードを、キャッシュデータベースノード126上に記憶することができる。キャッシュデータベースノード126は、第1のサーバ128から、1又は2以上の第3のトランザクションレコードについてのクエリを更に受け取ることができる。1又は2以上の第3のトランザクションレコードは、キャッシュデータベースノード126上に記憶される1又は2以上の第2のトランザクションレコードに含まれることができる。キャッシュデータベースノード126は、1又は2以上の第3のトランザクションレコードについての受け取ったクエリに基づいて、1又は2以上の第3のトランザクションレコードを第1のサーバ128に送信することができる。いくつかの実施形態では、1又は2以上の第3のトランザクションレコードは、アーカイバルデータベースノード124の頻繁に照会されたトランザクションレコードとすることができる。したがって、使用のために、例えば、第1のMaaSネットワーク102と関連付けられる紛争解決、監査、及びコンプライアンスタスクのために、第1のサーバ128によって、1又は2以上の第3のトランザクションレコードに容易にアクセスすることができる。
[0056] ある実施形態では、第1のMaaSネットワーク102をスケールアップするために、複数のノードパッケージ120に1又は2以上の新規ノードパッケージを追加することができる。1又は2以上の新規ノードパッケージの各々は、サブスクライバノードと、モビリティプロバイダ(例えばローカルMPノード)及びMaaSプロバイダ(例えばローカルMaaSノード)のための予め構成されたノードのセットとを含むことができる。トランザクション性能及びスループットを強化するために、1又は2以上の新規ノードパッケージのうちのサブスクライバノード及び予め構成されたノードのセットは、エッジノード、エッジデバイス、又はフォグ又はクラウドコンピューティング対応デバイスのうちの1つとして展開することができるが、これらに限定されない。MaaSプロバイダノード(例えばローカルMaaSノード)は、データ統合のためのアグリゲータデータベースノード122(例えば中央ノード)と接続されることができる。更に、新規ノードパッケージのうちのサブスクライバノードは、例えば図2に更に説明するプラグインインターフェイス200を通じて、ブローカ層106(ブローカノードデバイス112を含む)に接続されることができる。ある実施形態では、アグリゲータデータベースノード122は、MaaSプロバイダと関連付けられる分散型台帳118のノードとすることができる。MaaSプロバイダノード(例えばローカルMaaSノード)がアグリゲータデータベースノード122と接続されることができると、MaaSプロバイダノード(例えばローカルMaaSノード)は、MaaSプロバイダノード(例えばローカルMaaSノード)上に記憶される複数のトランザクションレコードから第1のトランザクションレコードのセットを選択し、記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。第1のトランザクションレコードのセットの選択は、MaaSプロバイダノード(例えばローカルMaaSノード)上の複数のトランザクションレコードの各々の記憶持続期間と、MaaSプロバイダノード(例えばローカルMaaSノード)と関連付けられるデータ保持閾値とに基づくことができる。更に、アグリゲータデータベースノード122は、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットから第2のトランザクションレコードのセットを選択し、記憶のために、アーカイバルデータベースノード124に選択された第2のトランザクションレコードのセットを送信するように構成することができる。第2のトランザクションレコードのセットの選択及び送信は、アグリゲータデータベースノード122によってMaaSプロバイダノード(例えばローカルMaaSノード)からの命令を受け取ることに基づくことができる。第2のトランザクションレコードのセットの選択は、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの第2の記憶持続期間と、アグリゲータデータベースノード122の第2のデータ保持閾値とに基づくことができる。ある実施形態では、第3のトランザクションレコードのセットは、少なくとも第1のトランザクションレコードのセットを含むことができる。例えば図3及び図4A~図4Cに、トランザクションレコードのアーカイバルを示す。
[0057] ある実施形態では、複数のノードパッケージ120のうちの各ノードパッケージは、エッジノードのセット、エッジデバイスのセット、又はフォグ又はクラウドコンピューティング対応デバイスのセットのうちの1つとして実装することができる。各ノードパッケージのうちのノード(例えば、サブスクライバノード、MPノード、及びMaaSノード)は、第1のMaaSネットワーク102の複数のパブリッシャノード110A~110N(すなわち、クライアント層104)に物理的に近接して展開することができる。物理的近接は、トランザクションレイテンシを低減することができ、複数のノードパッケージ120の性能制限に基づいてクライアント層104の容量を制限することができ、これにより、トランザクション失敗を更に低減することができる。更に、第1のMaaSネットワーク102に新規ノードパッケージを追加することによって、第1のMaaSネットワーク102のトランザクション処理容量をスケールアップすることができる。このようなノードパッケージの各々は、構成テンプレートに基づいて容易にセットアップすることができ、予め構成されたMPノード及びMaaSノードのセットをサブスクライバノードに結合することができる。新規ノードパッケージのうちのサブスクライバノードは、プラグインインターフェイスを通じて、第1のMaaSネットワーク102のブローカノードデバイス112に接続されることができる。更に、新規ノードパッケージのうちのMaaSノードは、アグリゲータデータベースノード122に接続されることができる。その後、MaaSノードは、上記で説明したように、アグリゲータデータベースノード122への、及び次にアーカイバルデータベースノード124へのトランザクションレコードのアーカイバルを開始することができる。また、アグリゲータデータベースノード122は、MaaSプロバイダと1又は2以上のモビリティプロバイダとの間の収入分配と、例えば図5に説明するようなデータ分析とのために、複数のMaaSノード118A、118B、…118Nからマージされるトランザクションレコードを利用することができる。
[0058] 図2は、本開示の実施形態による、MaaSネットワークのノードパッケージのプラグインインターフェイスの例示的なブロック図である。図2の説明は、図1の要素に関連して行う。図2を参照すると、ブロック図200が示されている。ブロック図200は、複数のノードパッケージ120のうちの第1のノードパッケージ120Aを含むことができる。第1のノードパッケージ120Aは、第1のサブスクライバノード114Aと、第1のMPノード116Aと、第1のMaaSノード118Aとを含むことができる。
[0059] 第1のサブスクライバノード114Aと関連付けられるプラグインインターフェイスは、メッセージキュー(MQ)アプリケーションサーバ202を含むことができる。MQアプリケーションサーバ202は、メッセージレシーバ204と、メッセージバッファ206と、トランザクションコーラ(transaction caller)208と、同時性/スレッド管理プラグイン210と、モニタプラグイン212と、セキュリティプラグイン214と、ネットワークプロトコル・ハンドラ・プラグイン216とを含むことができる。ある実施形態では、メッセージレシーバ204、メッセージバッファ206、同時性/スレッド管理プラグイン210、モニタプラグイン212、セキュリティプラグイン214、及びネットワークプロトコル・ハンドラ・プラグイン216は、ベース機能を含む予め構築されたプラグインとすることができる。トランザクションコーラ208は、トランザクションメッセージを処理するために利用することができる、ユーザが構成できるプラグインとすることができる。
[0060] MQアプリケーションサーバ202は、(ブローカ層106を介して)クライアント層104とサーバ層108の第1のサブスクライバノード114Aとの間のプロセス間通信を可能にするように構成することができる。MQアプリケーションサーバ202は、トランザクションメッセージの送信及び受信のために、キュー(例えばメッセージキュー)を利用することができる。メッセージキューは、(MQTT又はAMQPなどの非同期メッセージングプロトコルに基づいて)非同期キューとして実装されて、クライアント層104の1又は2以上のパブリッシャノードから入力トランザクションメッセージを受け取り、メッセージキューを実装することができるサブスクライバノード(例えば第1のサブスクライバノード114A)に受け取った入力トランザクションメッセージを転送することができる。したがって、送信側パブリッシャノードと受信側サブスクライバノード(例えば第1のサブスクライバノード114A)との間のリアルタイム通信なしで、第1のサブスクライバノード114Aにトランザクションメッセージを非同期に配信することができる。第1のサブスクライバノード114Aが、受け取られた入力トランザクションメッセージを受け取り処理するために利用可能であることができるまで、メッセージキューは、第1のサブスクライバノード114Aのために受け取られた入力トランザクションメッセージを記憶することができる。
[0061] MQアプリケーションサーバ202は、受け取られた入力トランザクションメッセージを処理し、第1のMPノード116A及び第1のMaaSノード118A上での記憶のために、受け取られた入力トランザクションメッセージをトランザクションレコードに変換することができるメッセージ-トランザクション間パイプライン(図2に示す)を含むことができる。MQアプリケーションサーバ202がトランザクションメッセージを受け取ると、メッセージ-トランザクション間パイプラインを開始することができる。メッセージ-トランザクション間パイプラインは、異なるオペレーション、例えば、検証チェック(例えばモニタプラグイン212を使用)、セキュリティチェック(例えばセキュリティプラグイン214を使用)、パラメータ作成要求(モニタプラグイン212及び/又はネットワークプロトコル・ハンドラ・プラグイン216を使用)、ロギング(モニタプラグイン212を使用)、トランザクションコール(トランザクションコーラ208を使用)、トランザクション結果処理(モニタプラグイン212を使用)、及びトランザクションの作成後のアクション(例えば、第1のMPノード116A及び第1のMaaSノード118Aへの作成されたトランザクションレコードの送信)を実行することができる。ある実施形態では、メッセージ-トランザクション間パイプラインは、同時性/スレッド管理プラグイン210を使用して、同時入力トランザクションメッセージを同時に実行して管理することができる。更に、メッセージバッファ206を介して、メッセージ-トランザクション間パイプラインに、トランザクションメッセージをバッファリングすることができる。
[0062] ある実施形態では、入力トランザクションメッセージをトランザクションに変換するために、MQアプリケーションサーバ202は、トランザクションメッセージのヘッダ及びフォーマットを検証することができる。MQアプリケーションサーバ202は、メタ情報(例えばサブスクライバノード識別子及びタイムスタンプであるが、これらに限定されない)を追加することによって、トランザクションメッセージパラメータを作成するように構成することができる。トランザクションメッセージパラメータを作成することができると、MQアプリケーションサーバ202は、トランザクションコールを実行することができる。
[0063] メッセージレシーバ204は、複数のパブリッシャノード110のうちの1又は2以上のパブリッシャノード(例えば第1のパブリッシャノード110A)から入力トランザクションメッセージを受け取るように構成することができる。ある実施形態では、メッセージレシーバ204は、MQアプリケーションサーバ202の非同期メッセージキューを実装することができる。
[0064] メッセージバッファ206は、第1のサブスクライバノード114Aのバッファ(又は一時)メモリに、受け取られた入力トランザクションメッセージを記憶して、その後、第1のサブスクライバノード114Aによって、受け取られた入力トランザクションメッセージの各々を処理することができるように構成することができる。バッファメモリ206に、受け取られた入力トランザクションメッセージを記憶して、入力トランザクションメッセージの受信の速度と、第1のサブスクライバノード114Aによってトランザクションメッセージを処理することができる速度とを比較することができる。いくつかの実施形態では、第1のサブスクライバノード114Aによってトランザクションメッセージを処理することができる速度は、後続のMPノード(例えば第1のMPノード116A)のサイズに依存することができる。
[0065] トランザクションコーラ208は、第1のMaaSネットワーク102と関連付けられるアドミニストレータ132又は開発者によって管理者をつとめることができる、カスタマイズ可能なアプリケーション(例えば、Javaサーブレットアプリケーションなどのミドルウェアアプリケーション)とすることができる。トランザクションコーラ208を利用して、MQアプリケーションサーバ202の機能を拡張することができる。例えば、トランザクションコーラ208は、受け取られた入力トランザクションメッセージを処理し、第1の分散型台帳及び第2の分散型台帳上のリモート・プロシージャ・コール上のトランザクションコール(例えばスマートコントラクト)を実行して、第1のMPノード116A及び第1のMaaSノード118Aにおける関連付けられたトランザクションレコードの次の作成を行うようにするようにプログラムすることができる。
[0066] 同時性/スレッド管理プラグイン210は、第1のサブスクライバノード114Aと関連付けられるタスクの複数のスレッド(例えばプロセスの一部)を同時に実行するように構成することができる。同時性/スレッド管理プラグイン210は、複数のタスクを並列に実行することによって、第1のサブスクライバノード114Aの性能を向上させることができる。このようなタスクの例は、メッセージレシーバ204においてトランザクションメッセージを受け取ること、メッセージバッファ206に受け取られたトランザクションメッセージを記憶すること、及びトランザクションコーラ208によって、受け取られたトランザクションメッセージと関連付けられるトランザクションコールを実行して、受け取られたトランザクションメッセージを処理すること、を含むことができるが、これらに限定されない。
[0067] モニタプラグイン212は、MQアプリケーションサーバ202による入力トランザクションメッセージのトランザクションレコードへの変換と関連付けられるメッセージ-トランザクション間パイプラインをモニタするように構成することができる。また、モニタプラグイン212は、入力トランザクションメッセージを変換している間に発生する場合があるエラーを処理するように構成することができる。例えば、モニタプラグイン212は、受け取られたトランザクションメッセージと関連付けられるヘッダ及びフォーマットを検証し、ヘッダ及びフォーマットの検証に基づいて、受け取られたトランザクションメッセージが有効であるかどうかを判定することができる。また、モニタプラグイン212は、トランザクションメッセージと関連付けられる相関IDなどのトランザクション識別を記録して、トランザクションメッセージをトレースすることができるようにする。したがって、モニタプラグイン212は、トランザクションエラーを処理することができる。検証に基づいてエラーが検出された場合、モニタプラグイン212は、第1のサブスクライバノード114Aにアラートを送信することができる。これによって、モニタプラグイン212は、モニタ及びアラートプラグインとして、及び/又はトランザクションエラー処理プラグインとして働くことができる。
[0068] モニタプラグイン212は、MQアプリケーションサーバ202と関連付けられるリソース及びスループットをモニタするように更に構成することができる。例えば、モニタプラグイン212は、同時性/スレッド管理プラグイン210と関連付けられるプロセッサ利用をモニタすることができる。更に、モニタプラグイン212は、メッセージバッファ206のメモリ利用をモニタすることができる。更に、モニタプラグイン212は、メッセージレシーバ204と関連付けられるネットワーク利用又は利用可能なネットワーク帯域幅をモニタすることができる。これによって、モニタプラグイン212は、トランザクション管理プラグインとして働くこともできる。
[0069] セキュリティプラグイン214は、MQアプリケーションサーバ202がトランザクションメッセージを安全に受け取ることができるようにするように構成することができる。ある実施形態では、セキュリティプラグイン214は、各入力トランザクションメッセージのヘッダ内のコンテンツに基づいて、入力トランザクションメッセージの識別を可能にすることができる。例えば、ヘッダは、入力トランザクションメッセージの作成者/送信者の識別(例えばパブリッシャノードの識別)を含むことができる。セキュリティプラグイン214は、トランザクションメッセージの作成者又は送信者がホワイトリストの又は許可されたパブリッシャノードとして認識された時に、MQアプリケーションサーバ202による入力トランザクションメッセージの受信を可能にすることができる。これによって、セキュリティプラグイン214は、トランザクションメッセージの作成者又は送信者の識別に基づいて、トランザクションメッセージの受信と関連付けられる許可を管理し、トランザクションメッセージをフィルタリングすることができる。
[0070] ネットワークプロトコル・ハンドラ・プラグイン216は、予め定められたネットワークプロトコルに基づいて、第1のサブスクライバノード114Aが第1のMaaSネットワーク102の他のノード(例えば、ブローカノードデバイス112及び1又は2以上のパブリッシャノード)と通信できるようにするように構成することができる。ネットワークプロトコルは、第1のMaaSネットワーク102の複数のノード、例えば、第1のMaaSネットワーク102の複数のパブリッシャノード110、ブローカノードデバイス112及び第1の複数のサブスクライバノード114A、114B、…114Nの間のトランザクションメッセージの通信を支配することができるルールのセットを含むことができる。ネットワークプロトコルの例は、ハイパーテキスト転送プロトコル(HTTP)、MQTT、又はAMQPを含むことができるが、これらに限定されない。ネットワークプロトコル・ハンドラ・プラグイン216は、受け取られたトランザクションメッセージについてデータスキーム及びデータ品質チェックを実行するように更に構成することができる。例えば、ネットワークプロトコル・ハンドラ・プラグイン216は、第1のMaaSネットワーク102の他のノードと通信する第1のサブスクライバノード114Aによって、均一の予め定められたデータ要求又は応答フォーマット(例えば、JSON、CSV、又はXMLフォーマット)及び共通API/データスキームを付着することができることを検証することができる。これによって、ネットワークプロトコル・ハンドラ・プラグイン216は、ネットワークプロトコルプラグインとして、及びデータスキーム及びデータ品質チェックプラグインとして働くことができる。
[0071] 図3は、本開示の実施形態による、共通データベースアーキテクチャに基づくMaaSプラットフォーム上での大規模トランザクション及びノードアーカイバルのサポートを示す例示的なシーケンス図である。図3の説明は、図1及び図2の要素に関連して行う。図3を参照すると、302から316までのオペレーションのシーケンスを示すシーケンス図300が示されている。図1の第1のMaaSネットワーク102の様々なノード(例えば、第1のMaaSノード118A、アグリゲータデータベースノード122、及びアーカイバルデータベースノード124)によって、オペレーションのシーケンスを実行することができる。
[0072] 302において、第1のMaaSノード(例えば第1のMaaSノード118A)上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択することができる。ある実施形態によれば、第1のMaaSノード118Aは、第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するように構成することができる。第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づいて、第1のトランザクションレコードのセットを選択することができる。
[0073] ある実施形態によれば、第1のMaaSノード118Aは、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間と、第1のデータ保持閾値とを比較するように構成することができる。第1のMaaSノード118Aは、比較に基づいて、第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを更に選択することができる。例えば、第1のMaaSノード118Aが第1の複数のトランザクションレコードを記憶するための第1のデータ保持閾値は、3日とすることができる。第1のMaaSノード118Aは、第1の複数のトランザクションレコードの各々の第1の記憶持続期間と、第1のデータ保持閾値、すなわち3日とを比較することができる。第1の記憶持続期間は、第1のMaaSノード118Aにおいて、特定のトランザクションレコードを何時間、何日、何週間、又は何か月から記憶するかを示すことができる。比較に基づいて、第1のMaaSノード118Aは、第1のMaaSノード118A上の第1の記憶持続期間が3日よりも大きい第1の複数のトランザクションレコードから、第1のトランザクションレコードのセットとしてトランザクションレコードを選択することができる。例えば図4Aに、第1のMaaSノード118A上に記憶することができる第1の複数のトランザクションレコードの例を説明する。例えば図4Bに、第1のMaaSノード118A上に記憶される第1の複数のトランザクションレコードからの第1のトランザクションレコードのセットの選択の例を説明する。
[0074] 304において、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信するように構成することができる。選択された第1のトランザクションレコードのセットの第1の記憶持続期間が、第1のMaaSノード118A上の第1のデータ保持閾値を超えると(又は超えた後に)、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。
[0075] 306において、アグリゲータデータベースノード122への選択された第1のトランザクションレコードのセットの送信に基づいて、第1のMaaSノード118Aにおいて選択された第1のトランザクションレコードのセットを無効にすることができる。ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122への選択された第1のトランザクションレコードのセットの送信に基づいて、第1のMaaSノード118Aからの選択された第1のトランザクションレコードのセットを無効にする(又は作動しないようにする、すなわちソフトデリートする)ように構成することができる。特定のシナリオでは、第1のMaaSノード118Aは、アグリゲータデータベースノード122から、アグリゲータデータベースノード122における第1のトランザクションレコードのセットの受け取りの確認応答を受け取ることができる。いくつかの実施形態では、第1のMaaSノード118Aは、アグリゲータデータベースノード122からのこのような確認応答の受け取りに基づいて、第1のMaaSノード118Aからの選択された第1のトランザクションレコードのセットを無効にすることができる。選択された第1のトランザクションレコードのセットの無効化は、第1のMaaSノード118A上の有効データの量を低減することができるので、第1のMaaSネットワーク102の性能を強化することができる。別の実施形態では、第1のMaaSネットワーク102をオフライン(非分散型台帳)データベースシステムとして実装することができる時に、第1のMaaSノード118Aは、第1のMaaSノード118Aから選択された第1のトランザクションレコードのセットを削除するように構成することができる。例えば、第1のMaaSノード118Aからのより古いトランザクションレコード(例えば、第1の記憶持続期間が第1のデータ保持閾値を超える第1のトランザクションレコードのセット)の無効化(又は非作動化)は、より新しいトランザクションレコードのために、第1のMaaSノード118A上の記憶空間を空けることができる。これにより、第1のMaaSノード118Aを、より小型であるがより高速であるメモリを含むストレージとして実装することができ、これにより、第1のMaaSノード118Aの性能を強化し、第1のMaaSネットワーク102のトランザクションスループットを向上させることができる。
[0076] また、選択された第1のトランザクションレコードのセットの無効化は、複数のMaaSノード118A、118B、…118Nのうちのノードの数の低減を可能にすることができる。ノードの数の低減又はノードのリフレッシュは、トランザクションメッセージのための保持ポリシーに基づくことができる。保持ポリシーは、構成可能なものとして設定することができ、アグリゲータデータベースノード122にプッシュされるトランザクションメッセージに基づくことができる。更に、保持ポリシーは、特定の期間にわたって、複数のMaaSノード118A、118B、…118Nのうちの異なるノードにおいて、データ(例えばトランザクションメッセージ)の記憶のコンプライアンスに基づくことができる。例えば、保持ポリシーは、一般データ保護規則(GDPR)コンプライアンスポリシーに基づいて、トランザクションメッセージの記憶が6カ月の期間にわたるとすることができると記載することができる。更に、保持ポリシーは、MaaSプラットフォームからの構成可能な期間、ビジネスロジック又は要件に従っていることができる。複数のMaaSノード118A、118B、…118Nのうちのノードの数の低減又はリフレッシュによって、MaaSプラットフォームの性能を規則的に(例えば毎日)管理するように、保持ポリシーを維持することができる。いくつかの実施形態では、ユーザに対応する個人情報などのデータの匿名化のために、GDPRコンプライアンスポリシーなどのコンプライアンスポリシーを更に利用することができる。
[0077] 308において、アグリゲータデータベースノード122上に、第1のトランザクションレコードのセットを記憶することができる。ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122上に第1のトランザクションレコードのセットを記憶するように、アグリゲータデータベースノード122を制御するように構成することができる。例えば、第1のMaaSノード118Aは、アグリゲータデータベースノード122上に第1のトランザクションレコードのセットを記憶するように、アグリゲータデータベースノード122に命令を送信することができる。アグリゲータデータベースノード122上での第1のトランザクションレコードのセットの記憶によって、第1のサーバ128は、第1のトランザクションレコードのセットからの1又は2以上の第1のトランザクションレコードについて、アグリゲータデータベースノード122に照会することができる。
[0078] 310において、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットから、第2のトランザクションレコードのセットを選択することができる。ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するように構成することができる。例えば、第1のMaaSノード118Aは、第3のトランザクションレコードのセットから第2のトランザクションレコードのセットを選択するように(制御として)、アグリゲータデータベースノード122に命令を送信することができる。第2のデータ保持閾値と、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づいて、第2のトランザクションレコードのセットを選択することができる。ある実施形態では、第3のトランザクションレコードのセットは、第1のMaaSノード118Aからアグリゲータデータベースノード122によって受け取られてアグリゲータデータベースノード122上に記憶される第1のトランザクションレコードのセットを含むことができる。例えば、第3のトランザクションレコードのセットは、第1のトランザクションレコードのセットと、アグリゲータデータベースノード122上に記憶することができる他のトランザクションレコード(すなわち、より古いトランザクションレコード)とを含むことができる。
[0079] ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間と、第2のデータ保持閾値との比較を制御するように構成することができる。第1のMaaSノード118Aは、比較に基づいて、第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するように更に構成することができる。例えば、第1のMaaSノード118Aは、第3のトランザクションレコードのセットの各々の第2の記憶持続期間と第2のデータ保持閾値とを比較し、比較の結果に基づいて第2のトランザクションレコードのセットを選択するように、アグリゲータデータベースノード122に命令を送信することができる。ある実施形態によれば、第2のデータ保持閾値は、第1のデータ保持閾値よりも大きいとすることができる。代替の実施形態では、第2のデータ保持閾値は、第1のデータ保持閾値よりも低いとすることができる。例えば、第2のデータ保持閾値は、60日(すなわち、例えば3日の第1のデータ保持閾値よりも大きい)とすることができる。第1のMaaSノード118Aは、第3のトランザクションレコードのセットの各々の第2の記憶持続期間と、第2のデータ保持閾値、すなわち60日との比較を制御することができる。比較に基づいて、第1のMaaSノード118Aは、アグリゲータデータベースノード122上の第2の記憶持続期間が60日よりも大きい第3のトランザクションレコードのセットからの(第2のトランザクションレコードのセットとしての)トランザクションレコードの選択を制御することができる。例えば図4Cに、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択の例を説明する。
[0080] 312において、アーカイバルデータベースノード124に選択された第2のトランザクションレコードのセットを送信することができる。ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122からアーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を制御するように構成することができる。例えば、第1のMaaSノード118Aは、アーカイバルデータベースノード124に選択された第2のトランザクションレコードのセットを送信するように、アグリゲータデータベースノード122に命令を送信することができる。選択された第2のトランザクションレコードのセットの第2の記憶持続期間が、アグリゲータデータベースノード122上の第2のデータ保持閾値を超えると(又は超えた後に)、アグリゲータデータベースノード122は、アーカイバルデータベースノード124に選択された第2のトランザクションレコードのセットを送信することができる。
[0081] 314において、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信に基づいて、アグリゲータデータベースノード122において選択された第2のトランザクションレコードのセットを無効にする(又は作動しないようにする)ことができる。ある実施形態によれば、第1のMaaSノード118Aは、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信に基づいて、アグリゲータデータベースノード122において選択された第2のトランザクションレコードのセットの無効化(又は非作動化)を制御するように構成することができる。例えば、第1のMaaSノード118Aは、アグリゲータデータベースノード122によるアーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信に基づいて、アグリゲータデータベースノード122からの選択された第2のトランザクションレコードのセットを無効にするように、アグリゲータデータベースノード122に命令を送信することができる。別の実施形態では、アグリゲータデータベースノード122がオフライン(非分散型台帳)データベースシステムとして実装される時に、第1のMaaSノード118Aは、アグリゲータデータベースノード122において選択された第2のトランザクションレコードのセットを削除するように構成することができる。このような場合、アグリゲータデータベースノード122からのより古いトランザクションレコード(例えば、第2の記憶持続期間が第2のデータ保持閾値を超える第2のトランザクションレコードのセット)の削除又は無効化(又は非作動化)は、より新しいトランザクションレコードのために、アグリゲータデータベースノード122上の記憶空間を空けることができる。これにより、アグリゲータデータベースノード122を、より小型であるがより高速であるメモリを含むストレージとして実装することができ、これにより、アグリゲータデータベースノード122の性能を強化し、第1のサーバ128から受け取ることができる、トランザクションレコードについてのクエリと関連付けられるクエリ応答時間を向上させることができる。
[0082] 316において、アーカイバルデータベースノード124上に、第2のトランザクションレコードのセットを記憶することができる。ある実施形態によれば、第1のMaaSノード118Aは、アーカイバルデータベースノード124上に第2のトランザクションレコードのセットを記憶するように、アーカイバルデータベースノード124を制御するように構成することができる。例えば、第1のMaaSノード118Aは、アーカイバルデータベースノード124上に第2のトランザクションレコードのセットを記憶するように、アーカイバルデータベースノード124に命令を送信することができる。アーカイバルデータベースノード124上での第2のトランザクションレコードのセットの記憶によって、第1のサーバ128は、第2のトランザクションレコードのセットからの1又は2以上の第2のトランザクションレコードについて、アーカイバルデータベースノード124に照会することができる。
[0083] ある実施形態では、第1のMaaSノード118Aは、不正変更防止データ記憶技術に基づいて、アーカイバルデータベースノード124上に第2のトランザクションレコードのセットを記憶するように、アーカイバルデータベースノード124を制御するように構成することができる。例えば、第1のMaaSノード118Aは、不正変更防止データ記憶技術に基づいて第2のトランザクションレコードのセットを記憶するように、アーカイバルデータベースノード124に命令を送信することができる。ある例では、不正変更防止データ記憶技術は、(例えばテキストデータのための)データハッシング技術とすることができ、この技術を使用して、各トランザクションレコードのハッシュ値を計算することができる。ハッシュ値を使用して、トランザクションレコードの検索中にトランザクションレコードの改竄を判断することができる。ある実施形態では、オフラインデータベースシステムの場合、第1のMaaSノード118Aに各トランザクションレコードのハッシュ値を記憶することができ、各トランザクションレコードのハッシュ値を取り出して、トランザクションレコードの改竄を判断することができる。
[0084] 図4A、図4B、及び図4Cは、本開示の実施形態による、共通データベースアーキテクチャに基づくMaaSプラットフォーム上での大規模トランザクション及びノードアーカイバルのサポートのための例示的なシナリオを共同で示す。図4A、図4B、及び図4Cの説明は、図1、図2及び図3の要素に関連して行う。図4A、図4B、及び図4Cの例示的なシナリオは、第1のMaaSノード118Aと、アグリゲータデータベースノード122と、アーカイバルデータベースノード124とを含むことができる。図4A、図4B、及び図4Cの例示的なシナリオの各々は、特定の時間において、第1のMaaSノード118A、アグリゲータデータベースノード122、及びアーカイバルデータベースノード124上に記憶されるトランザクションレコードのスナップショットを示す。図4Aを参照すると、第1の例示的なシナリオ400Aが示されている。第1の例示的なシナリオ400Aは、第1のMaaSノード118A上での第1の複数のトランザクションレコードの記憶と、アグリゲータデータベースノード122上での1又は2以上のトランザクションレコードの記憶とを示す。第1のMaaSノード118A上に記憶される第1の複数のトランザクションレコードは、(例えば図4Aに示すような)「TR01」、「TR02」、「TR03」、…「TR11」などのトランザクションレコードを含むことができる。更に、アグリゲータデータベースノード122上に記憶される1又は2以上のトランザクションレコードは、(例えば図4Aに示すような)「TR12」及び「TR13」などのトランザクションレコードを含むことができる。
[0085] ある実施形態では、第1のMaaSノード118Aは、第1のサブスクライバノード114Aによって受け取られる関連付けられたトランザクションメッセージに基づいて、第1のMPノード116Aから、第1の複数のトランザクションレコード「TR01」、「TR02」、「TR03」、…「TR11」を受け取ることができる。図4Aは、第1のMaaSノード118A上の第1の複数のトランザクションレコード「TR01」、「TR02」、「TR03」、…「TR11」の各々の第1の記憶持続期間を更に示す。例えば、トランザクションレコード「TR01」は、10時間の記憶持続期間(すなわち第1の記憶持続期間)にわたって、第1のMaaSノード118A上に記憶することができる。トランザクションレコード「TR02」は、15時間の記憶持続期間(すなわち第1の記憶持続期間)にわたって、第1のMaaSノード118A上に記憶することができる。同様に、トランザクションレコード「TR09」は、3日と2時間の記憶持続期間(すなわち第1の記憶持続期間)にわたって、第1のMaaSノード118A上に記憶することができる。トランザクションレコード「TR10」は、3日と10時間の記憶持続期間(すなわち第1の記憶持続期間)にわたって、第1のMaaSノード118A上に記憶することができる。また、トランザクションレコード「TR11」は、3日と18時間の記憶持続期間(すなわち第1の記憶持続期間)にわたって、第1のMaaSノード118A上に記憶することができる。更に、第1の例示的なシナリオ400Aは、アグリゲータデータベースノード122上に記憶される1又は2以上のトランザクションレコードの記憶持続期間を示す。例えば、トランザクションレコード「TR12」は、4時間の記憶持続期間にわたって記憶することができ、トランザクションレコード「TR13」は、7時間の記憶持続期間にわたって、アグリゲータデータベースノード122上に記憶することができる。
[0086] 図4Bを参照すると、第2の例示的なシナリオ400Bが示されている。第2の例示的なシナリオ400Bは、第1のMaaSノード118Aによるアグリゲータデータベースノード122への第1のトランザクションレコードのセットの送信と、アグリゲータデータベースノード122上での第1のトランザクションレコードのセットの記憶とを示す。第2の例示的なシナリオ400Bでは、第1のデータ保持閾値は、例えば、3日とすることができる。第1のMaaSノード118Aは、第1のトランザクションレコードのセットとして、第1のデータ保持閾値(この場合、例えば3日)よりも大きい記憶持続期間(すなわち第1の記憶持続期間)を有する(第1の複数のトランザクションレコードからの)トランザクションレコードを選択するように構成することができる。第1のMaaSノード118Aは、例えば、毎日の特定の時間において、アグリゲータデータベースノード122に第1のトランザクションレコードのセットを送信することができる。
[0087] 例示的な実施形態では、第1のトランザクションレコードのセットは、トランザクションレコード「TR09」、「TR10」及び「TR11」を含むことができる。トランザクションレコード「TR09」は、「3日と2時間」の第1の記憶持続期間にわたって、第1のMaaSノード118Aに記憶することができる。トランザクションレコード「TR10」は、「3日と10時間」の第1の記憶持続期間にわたって、第1のMaaSノード118Aに記憶することができる。トランザクションレコード「TR11」は、図4Bに示すように「3日と18時間」の第1の記憶持続期間にわたって、第1のMaaSノード118Aに記憶することができる。したがって、第1のトランザクションレコードのセットの各々の第1の記憶持続期間が第1のデータ保持閾値、すなわち3日を超えるので、第1のMaaSノード118Aは、第1のトランザクションレコードのセット(すなわち「TR09」、「TR10」及び「TR11」)を選択して、アグリゲータデータベースノード122での記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。
[0088] ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122への選択された第1のトランザクションレコードのセットの送信の後に、第1のMaaSノード118Aからの選択された第1のトランザクションレコードのセット、すなわちトランザクションレコード「TR09」、「TR10」及び「TR11」を無効にするように更に構成することができる。アグリゲータデータベースノード122は、第1のMaaSノード118Aから第1のトランザクションレコードのセットを受け取り、(第1のMaaSノード118Aから受け取られる命令に基づいて、第1のMaaSノード118Aの制御の下で)アグリゲータデータベースノード122上に第1のトランザクションレコードのセットを記憶することができる。アグリゲータデータベースノード122上に第1のトランザクションレコードのセットを記憶すると、アグリゲータデータベースノード122上の第1のトランザクションレコードのセットの記憶持続期間を、図4Bに示すように「0」時間にリセットすることができる。したがって、選択された第1のトランザクションレコードのセットの送信及び無効化に基づいて、アグリゲータデータベースノード122は、トランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」を記憶することができ、第1のMaaSノード118Aは、第1のMaaSノード118A上の残りのトランザクションレコードとして、トランザクションレコード「TR01」、「TR02」、「TR03」、「TR04」、「TR05」、「TR06」、「TR07」、及び「TR08」を今記憶することができる。更に、アグリゲータデータベースノード122上のトランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」は、図4Bに示すように、受け取られた第1のトランザクションレコードのセット(すなわち「TR09」、「TR10」及び「TR11」)と、より古いトランザクションレコード(すなわち「TR12」及び「TR13」)とを含むことができる第3のトランザクションレコードのセットに対応することができる。
[0089] 図4Cを参照すると、第3の例示的なシナリオ400Cが示されている。第3の例示的なシナリオ400Cは、アグリゲータデータベースノード122によるアーカイバルデータベースノード124への第2のトランザクションレコードのセットの送信と、アーカイバルデータベースノード124上での第2のトランザクションレコードのセットの記憶とを示す。第3の例示的なシナリオ400Cでは、第2のデータ保持閾値は、例えば、60日とすることができる。第1のMaaSノード118Aは、第3のトランザクションレコードのセットから、第2のデータ保持閾値(この場合、例えば60日)よりも大きい記憶持続期間(すなわち第2の記憶持続期間)を有するトランザクションレコードを(第2のトランザクションレコードのセットとして)選択するように、アグリゲータデータベースノード122を制御するように構成することができる。例えば、第1のMaaSノード118Aは、第2のトランザクションレコードのセットを選択し、アーカイバルデータベースノード124に選択された第2のトランザクションレコードのセットを送信するように、アグリゲータデータベースノード122に命令を送信することができる。
[0090] アグリゲータデータベースノード122は、例えば、毎日又は週の特定の時間において、アーカイバルデータベースノード124に第2のトランザクションレコードのセットを送信することができる。したがって、その特定の時間に、第2のトランザクションレコードのセットをアーカイバルデータベースノード124に送信することができる。例示的な実施形態では、第3のトランザクションレコードのセットは、トランザクションレコード「TR01」、「TR02」、「TR03」、「TR04」、「TR05」、「TR06」、「TR07」、「TR08」、「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」を含むことができる。したがって、第3のトランザクションレコードのセットは、第1のトランザクションレコードのセット(すなわちトランザクションレコード「TR09」、「TR10」、及び「TR11」)を含むことができる。更に、第3のトランザクションレコードのセットは、第1のトランザクションレコードのセットと比較して、より古いトランザクションレコード(例えば「TR12」及び「TR13」)と、より新しいトランザクションレコード(例えば「TR01」、「TR02」、「TR03」、「TR04」、「TR05」、「TR06」、「TR07」、及び「TR08」)とを含むことができる。第3のトランザクションレコードのセットから選択することができる第2のトランザクションレコードのセットは、例えば、トランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」を含むことができる。図4Cに示すように、トランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」は、それぞれ、「60日と2時間」、「60日と2時間」、「60日と2時間」、「60日と6時間」、及び「60日と9時間」の第2の記憶持続期間にわたって、アグリゲータデータベースノード122に記憶することができる。したがって、第2のトランザクションレコードのセットの第2の記憶持続期間が第2のデータ保持閾値(この場合、すなわち60日)を超えるので、第2のトランザクションレコードのセットとして第2のトランザクションレコードのセットを選択して、アーカイバルデータベースノード124での記憶のために、アーカイバルデータベースノード124に送信することができる。
[0091] ある実施形態によれば、第1のMaaSノード118Aは、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信の後に、アグリゲータデータベースノード122からの選択された第2のトランザクションレコードのセット、すなわちトランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」の無効化を制御するように更に構成することができる。ある例では、第1のMaaSノード118Aは、アグリゲータデータベースノード122における選択された第2のトランザクションレコードのセットの無効化のために、アグリゲータデータベースノード122に命令を送信することができる。アーカイバルデータベースノード124は、アグリゲータデータベースノード122から第2のトランザクションレコードのセットを受け取り、(すなわち、第1のMaaSノード118Aから受け取られる命令に基づいて、第1のMaaSノード118Aの制御の下で)アーカイバルデータベースノード124上に第2のトランザクションレコードのセットを更に記憶することができる。アーカイバルデータベースノード124上に第2のトランザクションレコードのセットを記憶すると、アーカイバルデータベースノード124上の第2のトランザクションレコードのセットの記憶持続期間を0時間にリセットすることができる。したがって、選択された第2のトランザクションレコードのセットの送信及び無効化に基づいて、アーカイバルデータベースノード124は、トランザクションレコード「TR09」、「TR10」、「TR11」、「TR12」、及び「TR13」を記憶することができ、アグリゲータデータベースノード122は、図4Cに示すように、アグリゲータデータベースノード122上の残りのトランザクションレコードとして、トランザクションレコード「TR01」、「TR02」、「TR03」、「TR04」、「TR05」、「TR06」、「TR07」、及び「TR08」を記憶することができる。
[0092] 図4A~図4Cに日数(例えばそれぞれ3日及び60日)で示される第1のデータ保持閾値及び第2のデータ保持閾値は、単なる例にすぎないことに留意されたい。第1のMaaSノード118Aに適用可能な第1のデータ保持閾値及びアグリゲータデータベースノード122に適用可能な第2のデータ保持閾値は、本開示の範囲から何ら逸脱することなく、特定の秒、分、時間、週、月、又は年単位とすることができる。ある実施形態では、第1のMaaSネットワーク102又はブローカノードデバイス112は、第1のMaaSネットワーク102又はブローカノードデバイス112でのトランザクションメッセージのフローの決定に基づいて、第1のデータ保持閾値及び第2のデータ保持閾値を設定又は変更することができる。いくつかの実施形態では、第1のMaaSネットワーク102の第1のサブスクライバノード114A又は他のサブスクライバノードは、対応するサブスクライバノード(例えば第1のサブスクライバノード114A)でのトランザクションメッセージの受け取りに基づいて、第1のデータ保持閾値及び第2のデータ保持閾値を設定又は変更することができる。
[0093] 図4A~図4Cにおいて、トランザクションレコードを選択してアグリゲータデータベースノード122及びアーカイバルデータベースノード124に送信する第1のMaaSノード118Aは、単なる例として提示されていることに更に留意されたい。いくつかの実施形態では、本開示の範囲から何ら逸脱することなく、MPノード(例えば第1のMPノード116A)からトランザクションレコードを選択してアグリゲータデータベースノード122及びアーカイバルデータベースノード124に送信することができる。
[0094] 図5は、本開示の実施形態による、アグリゲーションロジックに基づくトランザクションレコードのアグリゲーションを示す例示的なシナリオである。図5の説明は、図1、図2、図3、図4A、図4B、及び図4Cの要素に関連して行う。図5を参照すると、例示的なシナリオ500が示されている。例示的なシナリオ500は、本開示の実施形態による、アグリゲーションロジックに基づくトランザクションレコードのアグリゲーションを示す。
[0095] 図5の例示的なシナリオ500は、複数のMPノード116A、116B、…116Nと、複数のMaaSノード118A、118B、…118Nと、アグリゲータデータベースノード122と、アーカイバルデータベースノード124とを含むことができる。図5の例示的なシナリオ500は、特定の時間において、複数のノードパッケージ120(例えば、第1のノードパッケージ、第2のノードパッケージ及び第3のノードパッケージ)、アグリゲータデータベースノード122、及びアーカイバルデータベースノード124に記憶されるトランザクションレコードのスナップショットを示す。第1のノードパッケージは、例えば図1に説明するように、例えば、第1のサブスクライバノード114Aと、第1のMPノード116Aと、第1のMaaSノード118Aとを含むことができる。第2のノードパッケージは、第2のサブスクライバノード114Bと、第1のMPノード116Aと、第2のMaaSノード118Bとを含むことができる。第3のノードパッケージは、第3のサブスクライバノード114Cと、第1のMPノード116Aと、第2のMPノード116Bと、第3のMaaSノード118Cとを含むことができる。(図1に示す)複数のノードパッケージ120のうちの1又は2以上は、例えば図5に示すように、サブスクライバノードと、第1の分散型台帳の複数のMPノードと、第2の分散型台帳のMaaSノードとを含むことができることに留意されたい。
[0096] トランザクションレコード「TR01」、トランザクションレコード「TR02」、及びトランザクションレコード「TR03」は、第1のノードパッケージの一部とすることができる。例えば、トランザクションレコード「TR01」、「TR02」及び「TR03」は、第1のMPノード116Aに存在することができる。また、トランザクションレコード「TR04」及びトランザクションレコード「TR05」は、第2のノードパッケージの一部とすることができる。例えば、トランザクションレコード「TR04」及び「TR05」は、図5に示すように、第1のMPノード116Aに存在することができる。更に、例えば、トランザクションレコード「TR05」、トランザクションレコード「TR06」、及びトランザクションレコード「TR07」は、第3のノードパッケージの一部とすることができる。例えば、図5に示すように、トランザクションレコード「TR05」は、第1のMPノード116Aに存在することができ、トランザクションレコード「TR06」及び「TR07」は、第2のMPノード116Bに存在することができる。
[0097] 特定の時間において、トランザクションレコード「TR01」…「TR07」が複数のMPノードに記憶された時に、トランザクションレコードの所有権は、複数のモビリティプロバイダ(例えば複数のMPノード)及び複数のMaaSノード118A、118B、…118Nにあることができる。換言すれば、MPノード及びMaaSノードの両方は、トランザクションレコードを見ることができる。第1のノードパッケージのうちの第1のMaaSノード118Aは、図5に示すように、第1のMPノード116Aからトランザクションレコード「TR01」、「TR02」及び「TR03」を受け取ることができる。第2のノードパッケージのうちの第2のMaaSノード118Bは、第1のMPノード116Aからトランザクションレコード「TR04」及び「TR05」を受け取ることができる。第3のMaaSノード118Cは、図5に示すように、第1のMPノード116Aからトランザクションレコード「TR05」、及び第2のMPノード116Bからトランザクションレコード「TR06」及び「TR07」を受け取ることができる。したがって、図5に示すように、複数のMPノードから複数のMaaSノード118A、118B、…118Nに全てのトランザクションレコードのコピーを転送することができる。現在の段階では、トランザクションレコード「TR01」…「TR07」の所有権は、複数のMaaSノード118A、118B、…118Nにあることができる。更に、複数のMaaSノード118A、118B、…118Nは、複数のノードパッケージ120からのトランザクションレコードを要約することができる。複数のノードパッケージ120のうちのノードパッケージに基づいて、トランザクションレコードを要約することができる。
[0098] ある実施形態では、要約されたトランザクションレコードを、アグリゲータデータベースノード122によって更に受け取ることができる。保持閾値及び/又は記憶持続期間(すなわち、例えば図4A~図4Cに説明する)に基づいて、及び更に複数のMPノードの各々に基づいて、トランザクションレコードを集約することができる。アグリゲータデータベースノード122は、各ノードパッケージと関連付けられる異なるMPノードのために集約されたトランザクションレコードを記憶することができる。例えば、図5に示すように、アグリゲータデータベースノード122は、第1のMaaSノード118Aに記憶される複数のレコード(すなわち、TR01-10時間、TR02-2時間、及びTR03-3時間)を集約することができる、「15時間の記憶持続期間を有するMP1」としての、第1のノードパッケージのうちの第1のMPノード116A(すなわち第1のモビリティプロバイダと関連付けられるもの)のために集約されたトランザクションレコードを記憶することができる。同様に、例えば、アグリゲータデータベースノード122は、第1のMaaSノード118Aに記憶される複数のレコード(すなわち、TR04-4時間、及びTR05-10時間)を集約することができる、「14時間の記憶持続期間を有するMP1」としての、第2のノードパッケージのうちの第1のMPノード116Aのために集約されたトランザクションレコードを更に記憶することができる。同様に、例えば、アグリゲータデータベースノード122は、「12時間の記憶持続期間を有するMP1」としての、第3のノードパッケージのうちの第1のMPノード116Aのために集約されたトランザクションレコードを更に記憶することができる。アグリゲータデータベースノード122は、第1のMaaSノード118Aに記憶される複数のレコード(すなわち、TR06-1時間、及びTR07-2時間)を集約することができる、「3時間の記憶持続期間を有するMP2」としての、第3のノードパッケージのうちの第2のMPノード116B(すなわち第2のモビリティプロバイダと関連付けられるもの)のために集約されたトランザクションレコードを更に記憶することができる。トランザクションレコードのアグリゲーションは、保持閾値及び/又は記憶持続期間に加えて、加入ユーザのデータサポートなどの他のパラメータに更に基づくことができる。いくつかの実施形態では、(例えば、特定の日又は週に対して選択される又は決済の完了に基づいて選択される)ビジネスロジックに基づいて、選択されたトランザクションレコードのみを集約して達成することができる。
[0099] ある実施形態では、集約されたトランザクションレコード(例えば、図5に示すような「15時間の記憶持続期間を有するMP1」、「14時間の記憶持続期間を有するMP1」、「12時間の記憶持続期間を有するMP1」、及び「3時間の記憶持続期間を有するMP2」)の記憶に加えて、アグリゲータデータベースノード122は、複数のノードパッケージ120の各々内の各MPノードに対して複数のMaaSノード118A、118B、…118Nのうちの対応するMaaSノードに記憶される全ての又は選択されたトランザクションレコードの正確なコピーを記憶することもできる。換言すれば、例えば、第1のMaaSノード118Aがトランザクションレコード「TR01」、「TR02」及び「TR03」(すなわち、第1のMPノード116Aから受け取られるもの)を記憶するので、同様に、アグリゲータデータベースノード122は、集約されたトランザクションレコード(例えば「15時間の記憶持続期間を有するMP1」)の記憶に加えて、トランザクションレコード「TR01」、「TR02」及び「TR03」(すなわち、第1のMaaSノード118Aから受け取られるもの)の正確なコピーを記憶することもできる。アグリゲータデータベースノード122内のトランザクションレコード(すなわち、対応するMaaSノードから受け取られるもの)の正確なコピーの記憶は、図5に明示的に示されていないが、例えば図4B~図4Cに説明して示すことに留意されたい。同様に、集約されたトランザクションレコードの記憶に加えて、アグリゲータデータベースノード122は、複数のノードパッケージ120の各々に対して異なるMPノード及びMaaSノードに記憶される全ての(又は選択された)トランザクションレコードを(すなわち同じ形式で)記憶することができる。
[0100] ある実施形態では、トランザクションレコードがアグリゲータデータベースノード122に記憶された時に、トランザクションレコードの所有権は、複数のMaaSノード118A、118B、…118Nにあることができる。複数のMaaSノード118A、118B、…118Nは、集約されたトランザクションレコードを、複数のモビリティプレーヤと共有することができる。モビリティプロバイダ間のレベニューシェアリングは、集約されたトランザクションレコードに基づくことができる。更に、アグリゲータデータベースノード122が分散型台帳ベースのデータベースである時に、分散型台帳技術のスマートコントラクト又は他のプロトコルに基づいて、レベニューシェアリングを実行することができる。いくつかの実施形態では、アグリゲータデータベースノード122が非分散型台帳ベースのデータベースである時に、ファイル交換のような通常のシェアリング機構に基づいて、又はアプリケーションプログラミングインターフェイス(API)を利用して、レベニューシェアリングを実行することができる。
[0101] 図5に示すように、アーカイバルデータベースノード124によって、アグリゲータデータベースノード122から、集約されたトランザクションレコードを更に受け取ることができる。アーカイバルデータベースノード124は、(例えば、アーカイバルデータベースノード124が、第2のデータ保持に基づいて、個々のトランザクションレコード「TR09~TR13」を受け取る図4Cに示すように)個々のトランザクションレコード「TR01」、…「TR07」の代わりに、要約されたトランザクションレコードを受け取ることができる。例えば、アーカイバルデータベースノード124は、アグリゲータデータベースノード122から、(「MP1」としての)第1のMPノード116Aと関連付けられる集約されたトランザクションレコードを受け取ることができる。アーカイバルデータベースノード124は、アグリゲータデータベースノード122から、(「MP2」としての)第2のMPノード116Bと関連付けられる集約されたトランザクションレコードを受け取ることもできる。(例えば)図5に示すように、アーカイバルデータベースノード124は、アグリゲータデータベースノード122に記憶される複数の集約されたレコード(すなわち、MP1-15時間、MP1-14時間、及びMP1-12時間)を集約することができる、「MP1-41時間の記憶持続期間」としての第1のMPノード116Aのために集約されたトランザクションレコードを受け取り記憶することができる。同様に、(例えば)図5に示すように、アーカイバルデータベースノード124は、「MP2-3時間の記憶持続期間」としての第2のMPノード116Bのために集約されたトランザクションレコードを受け取り記憶することができる。
[0102] ある実施形態では、集約されたトランザクションレコード(例えば、図5に示すような「MP1-41時間の記憶持続期間」及び「MP2-3時間の記憶持続期間」)の記憶に加えて、アーカイバルデータベースノード124は、複数のノードパッケージ120の各々と関連付けられる各MPノードに対してアグリゲータデータベースノード122に記憶される全ての又は選択されたトランザクションレコードの正確なコピーを記憶することもできる。換言すれば、例えば、第1のMaaSノード118Aがトランザクションレコード「TR01」、「TR02」及び「TR03」(すなわち、第1のMPノード116Aから受け取られるもの)を記憶するので、同様に、アーカイバルデータベースノード124は、集約されたトランザクションレコード(例えば「MP1-41時間の記憶持続期間」)の記憶に加えて、トランザクションレコード「TR01」、「TR02」及び「TR03」(すなわち、アグリゲータデータベースノード122から受け取られるもの)の正確なコピーを記憶することもできる。アーカイバルデータベースノード124内のトランザクションレコード(すなわち、アグリゲータデータベースノード122から受け取られるもの)の正確なコピーの記憶は、図5に明示的に示されていないが、例えば図4B~図4Cに説明して示すことに留意されたい。同様に、集約されたトランザクションレコードの記憶に加えて、アーカイバルデータベースノード124は、複数のノードパッケージ120の各々に対して異なるMPノード及びMaaSノードに記憶される全ての(又は選択された)トランザクションレコードを(すなわち同じ形式で)記憶することができる。
[0103] したがって、監査プロセス中に、アーカイバルデータベースノード124から、特定のモビリティプロバイダのための個々のトランザクションレコード(例えば、各ノードパッケージのMP1のための「TR01」、「TR02」、「TR03」、「TR04」、「TR05」)と、同じモビリティプロバイダのための集約されたトランザクションレコード(例えば「MP1-41時間の記憶持続期間」)とを取り出して、これらを更に比較して、記憶されたトランザクションレコードの正確さ(すなわちマッチング又はチェックサム検証)をチェックすることができる。例えば、各個々のトランザクションレコード(例えば、各ノードパッケージのMP1のための「TR01」、「TR02」、「TR03」、「TR04」、「TR05」)の記憶持続期間(単位:時間/日)の合計と、アーカイバルデータベースノード124に記憶される集約されたトランザクションレコードの集約された記憶持続期間(すなわち図5に示す「41時間」)とを比較して、同じモバイルプレーヤ(すなわち「MP1」)について正確さ(すなわちチェックサム検証)をチェックすることができるが、これに限定されない。
[0104] ある実施形態では、アーカイバルデータベースノード124は、分散型台帳ベースのデータベース(すなわちオンライン又はオンチェーンモード)とすることができ、モビリティプロバイダによって、アーカイバルデータベースノード124の所有権を管理することができる。したがって、レベニューシェアリングのために、モビリティプロバイダによって、アーカイバルデータベースノード124上のトランザクションレコードを利用することができる。いくつかの実施形態では、アーカイバルデータベースノード124は、非分散型台帳ベースのデータベース(すなわちオフライン又はオフチェーンモード)とすることができる。このような場合、モビリティプロバイダは、レベニューシェアリングのために、アーカイバルデータベースノード124に照会して、トランザクションレコードにアクセスすることができる。したがって、各モビリティプレーヤは、レベニューシェアリングのために、複数のMPノードのうちの各MPノードに対応する照合された又は集約されたトランザクションレコードにアクセスすることができる。図5に説明する/示す期間(すなわち、第1の記憶持続期間、第2の記憶持続期間、及び/又は保持閾値(単位:時間又は日))に基づくモビリティプロバイダ間のアグリゲーション及びレベニューシェアリングの実装は、単なる例にすぎないことに留意されたい。開示されるシステムは、トランザクションレコードと関連付けられるコスト値(例えば旅行に関連するコスト)に基づいて、異なるモビリティプロバイダ間のアグリゲーション及びレベニューシェアリングを実行することができる。
[0105] 図6は、本開示の実施形態による、共通データベースアーキテクチャに基づくMaaSプラットフォーム上での大規模トランザクション及びノードアーカイバルのサポートのためのシステムのブロック図である。図6の説明は、図1、図2、図3、図4A、図4B、図4C、及び図5の要素に関連して行う。図6を参照すると、システム600Aのブロック図が示されている。システム600Aは、第1のサブスクライバノード114Aと、第1のMPノード116Aと、第1のMaaSノード118Aと、アグリゲータデータベースノード122と、アーカイバルデータベースノード124と、第1のサーバ128とを含むことができる。
[0106] 第1のMPノード116Aは、プロセッサ602Aと、メモリ602Bと、ネットワークインターフェイス602Cとを含むことができる。第1のMaaSノード118Aは、プロセッサ604Aと、メモリ604Bと、ネットワークインターフェイス604Cとを含むことができる。また、アグリゲータデータベースノード122は、プロセッサ606Aと、メモリ606Bと、ネットワークインターフェイス606Cとを含むことができる。更に、アーカイバルデータベースノード124は、プロセッサ608Aと、メモリ608Bと、ネットワークインターフェイス608Cとを含むことができる。図示しないが、第1のサーバ128及び第1のサブスクライバノード114Aの各々も、プロセッサと、メモリと、ネットワークインターフェイスとを含むことができる。
[0107] 第1のサブスクライバノード114A、第1のMPノード116A、及び第1のMaaSノード118Aは、複数のノードパッケージ120のうちの第1のノードパッケージ120Aを形成することができる。アグリゲータデータベースノード122は、第1のMaaSノード118Aに通信可能に結合されることができる。アーカイバルデータベースノード124は、アグリゲータデータベースノード122に通信可能に結合されることができる。更に、第1のサーバ128は、アグリゲータデータベースノード122及びアーカイバルデータベースノード124の各々に通信可能に結合されることができる。
[0108] プロセッサ604Aは、メモリ604Bに記憶されている命令セットを実行するように構成できる好適なロジック、回路、及び/又はインターフェイスを含むことができる。プロセッサ604Aは、第1のMaaSノード118A又は他の任意のMaaSノードによって実行されるべき異なるオペレーションと関連付けられるプログラム命令を実行するように構成することができる。例えば、オペレーションのいくつかは、第1のMaaSノード118Aに記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択することと、記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することとを含むことができる。プロセッサ604Aは、アグリゲータデータベースノード上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御し、記憶のために、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を制御するように更に構成することができる。プロセッサ604Aは、当技術分野で公知のいくつかのプロセッサ技術に基づいて実装することができる。プロセッサ技術の例としては、以下に限定されるわけではないが、中央処理装置(CPU)、X86ベースのプロセッサ、縮小命令セットコンピュータ(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピュータ(CISC)プロセッサ、グラフィカル・プロセッシング・ユニット(GPU)、及び他のプロセッサを挙げることができる。プロセッサ602A、プロセッサ606A及びプロセッサ608Aの機能は、例えば図6又は図4A~図4Cに説明する第1のMaaSノード118Aのプロセッサ604Aの機能と同じとすることができる。したがって、プロセッサ602A、プロセッサ606A及びプロセッサ608Aの説明は、簡潔のために本開示から省略する。
[0109] メモリ604Bは、プロセッサ604Aによって実行されるべき1又は2以上の命令を記憶するように構成できる好適なロジック、回路、及び/又はインターフェイスを含むことができる。メモリ604Bは、第1の複数のトランザクションレコードを記憶するように構成することができる。メモリ604Bの実装の例としては、以下に限定されるわけではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、CPUキャッシュ、及び/又はセキュアデジタル(SD)カードを挙げることができる。メモリ602B、メモリ606B及びメモリ608Bの機能は、例えば図6に説明するメモリ604Bの機能と同じとすることができる。したがって、メモリ602B、メモリ606B及びメモリ608Bの説明は、簡潔のために本開示から省略する。
[0110] ネットワークインターフェイス604Cは、通信ネットワーク(図6に示さず)を介して、第1のMaaSノード118A、第1のMPノード116A、及びアグリゲータデータベースノード122(及びアーカイバルデータベースノード124)の対応するプロセッサ間の通信を容易にするように構成できる好適なロジック、回路、及びインターフェイスを含むことができる。ネットワークインターフェイス604Cは、第1のMaaSノード118Aと通信ネットワークとの有線又は無線通信をサポートするための様々な公知の技術を使用して実装することができる。ネットワークインターフェイス604Cとしては、以下に限定されるわけではないが、アンテナ、無線周波数(RF)トランシーバ、1又は2以上の増幅器、チューナ、1又は2以上の発振器、デジタルシグナルプロセッサ、コーダ・デコーダ(CODEC)チップセット、加入者識別モジュール(SIM)カード、又はローカルバッファ回路を挙げることができる。ネットワークインターフェイス604Cは、インターネット、イントラネット、又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及びメトロポリタンエリアネットワーク(MAN)などの無線ネットワークなどのネットワークと無線通信を介して通信するように構成することができる。無線通信は、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(W-CDMA)、ロングタームエボリューション(LTE)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、無線フィデリティ(Wi-Fi)(IEEE 802.11a、IEEE 802.11b、IEEE 802.11g又はIEEE802.11nなど)、ボイスオーバーインターネットプロトコル(VoIP)、ライトフィデリティ(Li-Fi)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(Wi-MAX)、電子メールプロトコル、インスタントメッセージング及びショートメッセージサービス(SMS)などの複数の通信規格、通信プロトコル及び通信技術のうちの1又は2以上を使用するように構成することができる。ネットワークインターフェイス602C、ネットワークインターフェイス606C及びネットワークインターフェイス608Cの機能は、例えば図6に説明するネットワークインターフェイス604Cの機能と同じとすることができる。したがって、ネットワークインターフェイス602C、ネットワークインターフェイス606C及びネットワークインターフェイス608Cの説明は、簡潔のために本開示から省略する。
[0111] 図7は、本開示の実施形態による、共通データベースアーキテクチャに基づくMaaSプラットフォーム上での大規模トランザクション及びノードアーカイバルのサポートのための方法の例示的なフローチャートを示す。図7の説明は、図1、図2、図3、図4A、図4B、図4C、図5及び図6の要素に関連して行う。図7を参照すると、フローチャート700が示されている。フローチャート700の例示的な方法は、例えば、図1の第1のMaaSノード118A又は他のMaaSノードによって、任意のコンピューティングシステムによって実行することができる。702においてフローチャート700の例示的な方法を開始して、704に進むことができる。
[0112] 704において、第1のMaaSノード(例えば第1のMaaSノード118A)上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択することができ、第1のトランザクションレコードのセットの選択は、第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づくことができる。ある実施形態によれば、第1のMaaSノード118Aのプロセッサ604Aは、第1のMaaSノード118A上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するように構成することができる。第1のトランザクションレコードのセットの選択は、第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づくことができる。ある例では、第1のデータ保持閾値は、3日とすることができる。第1の複数のトランザクションレコードの各々は、第1のノードパッケージ120Aの第1のサブスクライバノード(例えば第1のサブスクライバノード114A)によって受け取られるトランザクションメッセージと関連付けられることができる。例えば図2及び図4Bに、第1のトランザクションレコードのセットの選択を説明する。
[0113] 706において、アグリゲータデータベースノード122での記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信することができる。ある実施形態によれば、第1のMaaSノード118Aのプロセッサ604Aは、アグリゲータデータベースノード122での記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信するように構成することができる。例えば図2及び図4Bに、アグリゲータデータベースノード122への選択された第1のトランザクションレコードのセットの送信を説明する。
[0114] 708において、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御することができる。第2のトランザクションレコードのセットの選択は、第2のデータ保持閾値と、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づくことができる。ある実施形態によれば、第1のMaaSノード118Aのプロセッサ604Aは、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するように構成することができる。第3のトランザクションレコードのセットは、少なくとも第1のトランザクションレコードのセットを含むことができる。第2のトランザクションレコードのセットの選択は、第2のデータ保持閾値と、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づくことができる。いくつかの実施形態では、第2のデータ保持閾値は、第1のデータ保持閾値(例えば3日)よりも大きいとすることができる。例えば、第2のデータ保持閾値は、60日とすることができる。別の実施形態では、第2のデータ保持閾値は、第1のデータ保持閾値よりも小さいとすることができる。例えば、第2のデータ保持閾値は、1日とすることができる。例えば図2及び図4Cに、第2のトランザクションレコードのセットの選択を説明する。
[0115] 710において、アーカイバルデータベースノード124での記憶のために、アーカイバルデータベースノード(例えばアーカイバルデータベースノード124)への選択された第2のトランザクションレコードのセットの送信を制御することができる。ある実施形態によれば、第1のMaaSノード118Aのプロセッサ604Aは、アーカイバルデータベースノード124での第2のトランザクションレコードのセットの記憶のために、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を制御するように構成することができる。例えば図2及び図4Cに、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を説明する。
[0116] フローチャート700は、704、706、708及び710などの別個のオペレーションとして示されているが、本開示はこれに限定されるものではない。したがって、特定の実施形態では、このような別個のオペレーションは、開示された実施形態の本質を損なうことなく、特定の実装に応じて、追加のオペレーションに更に分割したり、より少ないオペレーションに結合したり、又は削除したりすることができる。
[0117] 本開示の様々な実施形態は、コンピュータ実行可能命令又は(システム600Aなどのシステムのための)機械及び/又はコンピュータによって実行可能な命令が記憶された非一時的コンピュータ可読媒体及び/又は記憶媒体を提供することができる。システムは、アグリゲータデータベースノード(例えばアグリゲータデータベースノード122)と、アーカイバルデータベースノード(例えばアーカイバルデータベースノード124)と、複数のノードパッケージ(例えば複数のノードパッケージ120)であって、複数のノードパッケージのうちの各ノードパッケージは、第1のモビリティ・アズ・ア・サービス(MaaS)ネットワークのサブスクライバノードと、第1の分散型台帳のモビリティプロバイダ(MP)ノードと、第2の分散型台帳のMaaSノードとを含むことができる、複数のノードパッケージと、を含むことができる。命令は、機械及び/又はコンピュータにオペレーションを実行させることができ、オペレーションは、複数のノードパッケージのうちの第1のノードパッケージの第1のMaaSノードによって、第1のMaaSノード上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するステップを含むことができる。第1のトランザクションレコードのセットの選択は、第1のデータ保持閾値と、第1のMaaSノード上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づくことができる。第1の複数のトランザクションレコードの各々は、第1のノードパッケージの第1のサブスクライバノードによって受け取られるトランザクションメッセージと関連付けられることができる。オペレーションは、第1のMaaSノードによって、アグリゲータデータベースノードでの記憶のために、アグリゲータデータベースノードに選択された第1のトランザクションレコードのセットを送信するステップを更に含むことができる。オペレーションは、第1のMaaSノードによって、アグリゲータデータベースノード上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するステップを更に含むことができる。第2のトランザクションレコードのセットの選択は、第2のデータ保持閾値と、アグリゲータデータベースノード上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づくことができる。アグリゲータデータベースノード上に記憶される第3のトランザクションレコードのセットは、少なくとも第1のトランザクションレコードのセットを含むことができる。オペレーションは、第1のMaaSノードによって、アーカイバルデータベースノードでの記憶のために、アーカイバルデータベースノードへの選択された第2のトランザクションレコードのセットの送信を制御するステップを更に含むことができる。
[0118] 本開示の例示的な態様は、システム(例えばシステム600A)を含むことができる。システム600Aは、複数のノードパッケージ(例えば複数のノードパッケージ120)を含むことができる。複数のノードパッケージ120の各々(例えば第1のノードパッケージ120A)は、第1のMaaSネットワーク(例えば第1のMaaSネットワーク102)のサブスクライバノード(例えば第1のサブスクライバノード114A)と、第1の分散型台帳のモビリティプロバイダ(MP)ノードと、第2の分散型台帳のMaaSノードとを含むことができる。システム600Aは、複数のノードパッケージ120の各々に通信可能に結合されるアグリゲータデータベースノード(例えばアグリゲータデータベースノード122)を更に含むことができる。システム600Aは、アグリゲータデータベースノード122に通信可能に結合されるアーカイバルデータベースノード(例えばアーカイバルデータベースノード124)を更に含むことができる。複数のノードパッケージ120からの第1のノードパッケージ120Aの第1のMaaSノード(例えば第1のMaaSノード118A)は、第1のMaaSノード118A上に記憶される第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを選択するように構成することができる。第1のトランザクションレコードのセットの選択は、第1のデータ保持閾値と、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間とに基づくことができる。第1の複数のトランザクションレコードの各々は、第1のノードパッケージ120Aの第1のサブスクライバノード114Aによって受け取られるトランザクションメッセージと関連付けられることができる。第1のMaaSノード118Aは、アグリゲータデータベースノード122での記憶のために、アグリゲータデータベースノード122に選択された第1のトランザクションレコードのセットを送信するように更に構成することができる。第1のMaaSノード118Aは、アグリゲータデータベースノード122上に記憶される第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を制御するように構成することができる。第2のトランザクションレコードのセットの選択は、第2のデータ保持閾値と、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間とに基づくことができる。第3のトランザクションレコードのセットは、少なくとも第1のトランザクションレコードのセットを含むことができる。更に、第1のMaaSノード118Aは、アーカイバルデータベースノード124での記憶のために、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信を制御するように構成することができる。
[0119] ある実施形態によれば、第1のMaaSノード118Aは、第1のMaaSノード118A上の第1の複数のトランザクションレコードの各々の第1の記憶持続期間と、第1のデータ保持閾値とを比較するように更に構成することができる。第1のMaaSノード118Aは、比較に基づいて、第1の複数のトランザクションレコードから第1のトランザクションレコードのセットを更に選択することができる。
[0120] ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122上の第3のトランザクションレコードのセットの各々の第2の記憶持続期間と、第2のデータ保持閾値との比較を制御するように更に構成することができる。第1のMaaSノード118Aは、比較に基づいて、第3のトランザクションレコードのセットからの第2のトランザクションレコードのセットの選択を更に制御することができる。
[0121] ある実施形態によれば、第1のMaaSノード118Aは、アグリゲータデータベースノード122への選択された第1のトランザクションレコードのセットの送信に基づいて、第1のMaaSノード118Aからの選択された第1のトランザクションレコードのセットを無効にするように更に構成することができる。
[0122] ある実施形態によれば、第1のMaaSノード118Aは、アーカイバルデータベースノード124への選択された第2のトランザクションレコードのセットの送信に基づいて、アグリゲータデータベースノード122からの選択された第2のトランザクションレコードのセットの無効化を制御するように更に構成することができる。
[0123] ある実施形態によれば、複数のノードパッケージ120の各々のサブスクライバノードは、プラグインインターフェイスを通じて、第1のMaaSネットワーク102に関連付けられることができる。プラグインインターフェイスは、ネットワークプロトコル・ハンドラ・プラグイン、セキュリティプラグイン、データスキーム及びデータ品質チェックプラグイン、モニタ及びアラートプラグイン、トランザクション管理プラグイン、トランザクションエラー処理プラグイン、又は同時スレッド管理プラグイン、のうちの少なくとも1つを含むことができる。
[0124] ある実施形態によれば、複数のノードパッケージ120のうちの1又は2以上は、サブスクライバノードと、第1の分散型台帳の複数のMPノード(例えば複数のMPノード116A、116B、…116N)と、第2の分散型台帳のMaaSノードとを含むことができる。
[0125] ある実施形態によれば、複数のMPノード116A、116B、…116Nの各々は、第1のMaaSネットワーク102の別個のモビリティプロバイダと関連付けられることができる。
[0126] ある実施形態によれば、システム600Aは、アグリゲータデータベースノード122及びアーカイバルデータベースノード124の各々と関連付けられる第1のサーバ(例えば第1のサーバ128)を更に含むことができる。第1のサーバ128は、アグリゲータデータベースノード122に、アグリゲータデータベースノード122上に記憶される1又は2以上の第1のトランザクションレコードについてのクエリを送信するように構成することができる。第1のサーバ128は、アグリゲータデータベースノード122から、照会された1又は2以上の第1のトランザクションレコードを受け取ることができる。第1のサーバ128は、照会された1又は2以上の第1のトランザクションレコードと関連付けられる1又は2以上のトランザクションを更に検証することができる。
[0127] ある実施形態によれば、第1のサーバ128は、アーカイバルデータベースノード124に、アーカイバルデータベースノード124上に記憶される1又は2以上の第2のトランザクションレコードについてのクエリを送信するように更に構成することができる。第1のサーバ128は、アーカイバルデータベースノード124から、照会された1又は2以上の第2のトランザクションレコードを更に受け取ることができる。第1のサーバ128は、照会された1又は2以上の第2のトランザクションレコードと関連付けられる統計情報を更に表示することができる。
[0128] ある実施形態によれば、システムは、キャッシュデータベースノード(例えばキャッシュデータベースノード126)を更に含むことができる。キャッシュデータベースノード126は、アーカイバルデータベースノード124から、照会された1又は2以上の第2のトランザクションレコードを受け取るように更に構成することができる。キャッシュデータベースノード126は、受け取った1又は2以上の第2のトランザクションレコードを、キャッシュデータベースノード126上に記憶することができる。キャッシュデータベースノード126は、第1のサーバ128から、キャッシュデータベースノード上に記憶される1又は2以上の第2のトランザクションレコードからの1又は2以上の第3のトランザクションレコードについてのクエリを受け取ることができる。キャッシュデータベースノード126は、1又は2以上の第3のトランザクションレコードについての受け取ったクエリに基づいて、1又は2以上の第3のトランザクションレコードを第1のサーバ128に送信することができる。
[0129] ある実施形態によれば、アグリゲータデータベースノード122及びアーカイバルデータベースノード124は、第1のMaaSネットワーク102に関連する分散型台帳ノードとすることができる。ある実施形態によれば、アグリゲータデータベースノード122及びアーカイバルデータベースノード124は、第1のMaaSネットワーク102に関連する非分散型台帳ノードとすることができる。
[0130] ある実施形態によれば、第2のデータ保持閾値は、第1のデータ保持閾値よりも大きいとすることができる。ある実施形態によれば、第2のデータ保持閾値は、第1のデータ保持閾値よりも低いとすることができる。
[0131] 本開示は、ハードウェアの形で実現することも、又はハードウェアとソフトウェアの組み合わせの形で実現することもできる。本開示は、少なくとも1つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能も実行する集積回路の一部を含むハードウェアの形で実現することができる。
[0132] 本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムとは、情報処理能力を有するシステムに、特定の機能を直接的に、或いはa)別の言語、コード又は表記法への変換、b)異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、あらゆる言語、コード又は表記法におけるあらゆる表現を意味する。
[0133] いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することができると理解するであろう。また、本開示の範囲から逸脱することなく、本開示の教示に特定の状況又は内容を適合させるための多くの変更を行うこともできる。したがって、本開示は、開示した特定の実施形態に限定されるものではなく、特許請求の範囲に該当する全ての実施形態を含むことが意図されている。