(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-13
(54)【発明の名称】分散型台帳ベースのMaaSプラットフォーム上におけるトランザクションセキュリティ
(51)【国際特許分類】
G06Q 50/30 20120101AFI20220706BHJP
【FI】
G06Q50/30
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021564379
(86)(22)【出願日】2020-04-28
(85)【翻訳文提出日】2021-10-28
(86)【国際出願番号】 IB2020054008
(87)【国際公開番号】W WO2020222125
(87)【国際公開日】2020-11-05
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-04-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100092093
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100151987
【氏名又は名称】谷口 信行
(72)【発明者】
【氏名】村尾 貞佳
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC41
(57)【要約】
分散型台帳ベースのモビリティアズアサービス(MaaS)プラットフォーム上におけるトランザクションセキュリティの実装のためのシステム及び方法を提供する。システムは、輸送プロバイダの発行者ノードから輸送サービスに関連するトランザクション要求を受け取るメッセージブローカ装置を含む。メッセージブローカ装置は、メッセージブローカ装置上にホストされたAPIゲートウェイを介して輸送プロバイダの加入者ノードにトランザクション要求をルーティングする。APIゲートウェイは、トランザクション要求に一連のセキュリティルールを適用することに基づいてトランザクション要求の妥当性を確認する。加入者ノードは、第1の状態オブジェクトを記憶する分散型台帳の第1のノードに関連する。第1の状態オブジェクトは、輸送サービスに関連するトランザクションデータを含む。分散型台帳ノードは、加入者ノードを介してAPIゲートウェイから妥当性確認された第1のトランザクション要求を受け取り、受け取られたトランザクション要求に基づいてトランザクションデータを更新する。
【選択図】
図11
【特許請求の範囲】
【請求項1】
回路を含むメッセージブローカ装置を備えたシステムであって、前記回路は、
複数の輸送プロバイダのうちの第1の輸送プロバイダの第1の発行者ノードから輸送サービスに関連する第1のトランザクション要求を受け取り、
前記メッセージブローカ装置上にホストされたアプリケーションプログラミングインターフェイス(API)ゲートウェイを介して、前記受け取られた第1のトランザクション要求に関連する前記第1の輸送プロバイダの第1の加入者ノードに前記第1のトランザクション要求をルーティングする、
ように構成され、
前記APIゲートウェイは、前記受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、前記ルーティングされる第1のトランザクション要求の妥当性を確認し、
前記第1の加入者ノードは、分散型台帳の第1のノードに関連し、
前記第1のノードは、前記輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクトを記憶し、
前記第1のノードは、
前記第1の加入者ノードを介して前記APIゲートウェイから前記妥当性確認された第1のトランザクション要求を受け取り、
前記受け取られた第1のトランザクション要求に基づいて、前記第1のノードに記憶された前記トランザクションデータを更新する、
ように構成される、
ことを特徴とするシステム。
【請求項2】
前記第1の発行者ノードは、前記第1の輸送プロバイダの乗車予約アプリケーション、改札機又は販売時点情報管理(PoS)のうちの1つ又は2つ以上である、
請求項1に記載のシステム。
【請求項3】
前記分散型台帳は、モビリティアズアサービス(MaaS)プロバイダに関連するMaaSプロバイダノードとしての取引先ノードを含む、
請求項1に記載のシステム。
【請求項4】
複数のMaaSプロバイダに関連する複数の分散型台帳をさらに含み、該複数の分散型台帳の各々は、対応するMaaSプロバイダのMaaSプロバイダノードとしての前記取引先ノードを含む、
請求項3に記載のシステム。
【請求項5】
前記APIゲートウェイは、前記ルーティングされる第1のトランザクション要求が有効なインターネットプロトコル(IP)アドレス範囲内のIPアドレスに関連するとの判定に基づいて、前記ルーティングされる第1のトランザクション要求の妥当性を確認する、
請求項1に記載のシステム。
【請求項6】
前記APIゲートウェイは、前記ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するとの判定に基づいて、前記ルーティングされる第1のトランザクション要求を却下する、
請求項1に記載のシステム。
【請求項7】
前記APIゲートウェイは、前記第1の発行者ノードがボットであるとの判定に基づいて、前記ルーティングされる第1のトランザクション要求を却下する、
請求項1に記載のシステム。
【請求項8】
前記APIゲートウェイは、前記ルーティングされる第1のトランザクション要求に有効な署名が行われているとの判定に基づいて、前記ルーティングされる第1のトランザクション要求の妥当性を確認する、
請求項1に記載のシステム。
【請求項9】
前記APIゲートウェイは、前記第1の発行者ノードの真正性及び認可の検証に基づいて、前記ルーティングされる第1のトランザクション要求の妥当性を確認する、
請求項1に記載のシステム。
【請求項10】
前記一連のセキュリティルールは、
前記ルーティングされる第1のトランザクション要求が有効なインターネットプロトコル(IP)アドレス範囲内のIPアドレスに関連するかどうかを判定するための第1のルール、
前記ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するかどうかを判定するための第2のルール、
前記第1の発行者ノードがボットであるかどうかを判定するための第3のルール、
前記ルーティングされる第1のトランザクション要求に有効な署名が行われているかどうかを判定するための第4のルール、及び、
前記第1の発行者ノードの真正性及び認可の検証に基づいて前記ルーティングされる第1のトランザクション要求の妥当性を確認するための第5のルール、
のうちの1つ又は2つ以上を含む、請求項1に記載のシステム。
【請求項11】
前記第1の加入者ノード上にホストされたAPIエージェントをさらに備え、前記APIゲートウェイは、
前記APIエージェントから、前記第1の加入者ノードの定期メンテナンス、突発的メンテナンス又は非定期メンテナンスのうちの1つを示す、前記加入者ノードに関連する動作状態を受け取り、
前記受け取られた動作状態に基づいて、前記ルーティングされる第1のトランザクション要求を保留し、
前記第1の加入者ノードの前記動作状態がアクティブであるとの判定に基づいて、前記第1のトランザクション要求を前記第1の加入者ノードに再ルーティングする、
請求項1に記載のシステム。
【請求項12】
前記第1の加入者ノード上にホストされたAPIエージェントをさらに備え、該APIエージェントは、
前記APIゲートウェイを介して、前記妥当性確認された第1のトランザクション要求を受け取り、
前記妥当性確認された第1のトランザクション要求が前記第1の加入者ノードの情報アクセスポリシーに従っているとの判定に基づいて、前記妥当性確認された第1のトランザクション要求を前記第1の加入者ノードに転送する、
ように構成され、前記情報アクセスポリシーは、前記輸送サービスに関連するビジネスルール及び制約を含む、
請求項1に記載のシステム。
【請求項13】
前記第1のノードは、
前記第1の加入者ノードを介して前記APIゲートウェイから前記妥当性確認された第1のトランザクション要求を受け取り、
前記受け取られた第1のトランザクション要求におけるトランザクションメッセージに基づいて、前記第1の状態オブジェクトを更新して第2の状態オブジェクトを出力し、
前記第1の状態オブジェクト及び前記第2の状態オブジェクトを含むトランザクションを構築し、
前記構築されたトランザクションに署名し、
前記第1の状態オブジェクトに含まれる第1のスマートコントラクトを実行した第1の結果が前記第2の状態オブジェクトに含まれる第2のスマートコントラクトを実行した第2の結果に一致するとの判定に基づいて、前記署名済みトランザクションを検証し、
前記検証されたトランザクションを取引先ノードと共有する、
ようにさらに構成される、請求項1に記載のシステム。
【請求項14】
前記取引先ノードは、
前記共有されるトランザクションに連署し、
前記連署済みトランザクションを前記第1のノードと共有するように構成される、
請求項13に記載のシステム。
【請求項15】
コンセンサスノードをさらに備え、該コンセンサスノードは、
前記第1のノードから前記連署済みトランザクションを受け取り、
前記受け取られた連署済みトランザクションを公証して前記コンセンサスノードの署名を含め、
前記公証済みトランザクションを前記第1のノードと共有する、
ように構成される、請求項14に記載のシステム。
【請求項16】
前記第1のノードは、前記公証済みトランザクションを記憶するように構成され、
前記公証済みトランザクションは、前記第1のノード及び前記取引先ノードがアクセスできる前記更新されたトランザクションデータを含む、
請求項15に記載のシステム。
【請求項17】
前記受け取られた第1のトランザクション要求は、ユーザの前記輸送サービスの作成に関連するcreateメッセージ、前記ユーザの前記輸送サービスの開始に関連するget-inメッセージ、又は前記輸送サービスの完了に関連するget-outメッセージのうちの1つを含む、
請求項1に記載のシステム。
【請求項18】
前記トランザクションデータは、発券情報、サブスクリプション情報、支払情報、収益分配情報又は輸送サービス情報のうちの1つ又は2つ以上に関連する、
請求項1に記載のシステム。
【請求項19】
方法であって、
メッセージブローカ装置と、第1の加入者ノードと、分散型台帳の第1のノードと、前記メッセージブローカ装置上にホストされたアプリケーションプログラミングインターフェイス(API)ゲートウェイとを備えたシステムにおいて、
前記メッセージブローカ装置が、複数の輸送プロバイダのうちの第1の輸送プロバイダの第1の発行者ノードから、輸送サービスに関連する第1のトランザクション要求を受け取ることと、
前記メッセージブローカ装置が、前記APIゲートウェイを介して前記第1の輸送プロバイダの前記第1の加入者ノードに前記第1のトランザクション要求をルーティングすることと、
前記APIゲートウェイが、前記受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、前記ルーティングされる第1のトランザクション要求の妥当性を確認することと、
を含み、
前記第1の加入者ノードは、前記分散型台帳の前記第1のノードに関連し、
前記第1のノードは、前記輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクトを記憶し、前記方法は、
前記第1のノードが、前記第1の加入者ノードを介して前記APIゲートウェイから前記妥当性確認された第1のトランザクション要求を受け取ることと、
前記第1のノードが、前記受け取られた第1のトランザクション要求に基づいて、前記第1のノードに記憶された前記トランザクションデータを更新することと、
をさらに含むことを特徴とする方法。
【請求項20】
前記一連のセキュリティルールは、
前記ルーティングされる第1のトランザクション要求が有効なインターネットプロトコル(IP)アドレス範囲内のIPアドレスに関連するかどうかを判定するための第1のルール、
前記ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するかどうかを判定するための第2のルール、
前記第1の発行者ノードがボットであるかどうかを判定するための第3のルール、
前記ルーティングされる第1のトランザクション要求に有効な署名が行われているかどうかを判定するための第4のルール、及び、
前記第1の発行者ノードの真正性及び認可の検証に基づいて前記ルーティングされる第1のトランザクション要求の妥当性を確認するための第5のルール、
のうちの1つ又は2つ以上を含む、請求項19に記載の方法。
【請求項21】
前記APIゲートウェイが、前記第1の加入者ノード上にホストされたAPIエージェントから、前記第1の加入者ノードの定期メンテナンス、突発的メンテナンス又は非定期メンテナンスのうちの1つを示す、前記第1の加入者ノードに関連する動作状態を受け取ることと、
前記APIゲートウェイが、前記受け取られた動作状態に基づいて、前記ルーティングされる第1のトランザクション要求を保留することと、
前記APIゲートウェイが、前記第1の加入者ノードの前記動作状態がアクティブであるとの判定に基づいて、前記第1のトランザクション要求を前記第1の加入者ノードに再ルーティングすることと、
をさらに含む請求項19に記載の方法。
【請求項22】
前記第1の加入者ノード上にホストされた前記APIエージェントが、前記APIゲートウェイを介して、前記妥当性確認された第1のトランザクション要求を受け取ることと、
前記APIエージェントが、前記妥当性確認された第1のトランザクション要求が前記第1の加入者ノードの情報アクセスポリシーに従っているとの判定に基づいて、前記妥当性確認された第1のトランザクション要求を前記第1の加入者ノードに転送することと、
をさらに含み、前記情報アクセスポリシーは、前記輸送サービスに関連するビジネスルール及び制約を含む、
請求項19に記載の方法。
【請求項23】
前記第1のノードが、前記第1の加入者ノードを介して前記APIゲートウェイから前記妥当性確認された第1のトランザクション要求を受け取ることと、
前記第1のノードが、前記受け取られた第1のトランザクション要求におけるトランザクションメッセージに基づいて、前記第1の状態オブジェクトを更新して第2の状態オブジェクトを出力することと、
前記第1のノードが、前記第1の状態オブジェクト及び前記第2の状態オブジェクトを含むトランザクションを構築することと、
前記第1のノードが、前記構築されたトランザクションに署名することと、
前記第1のノードが、前記第1の状態オブジェクトに含まれる第1のスマートコントラクトを実行した第1の結果が前記第2の状態オブジェクトに含まれる第2のスマートコントラクトを実行した第2の結果に一致するとの判定に基づいて、前記署名済みトランザクションを検証することと、
前記第1のノードが、前記検証されたトランザクションを取引先ノードと共有することと、
をさらに含む請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照/引用による組み入れ〕
本出願は、2019年5月1日に出願された米国仮特許出願第62/841,528号に対する優先権を主張するものであり、この文献はその内容全体が引用により本明細書に組み入れられる。
【0002】
本開示の様々な実施形態は、モビリティアズアサービス(Mobility-as-a-Service:MaaS)及び分散型台帳技術に関する。具体的には、本開示の様々な実施形態は、分散型台帳ベースのMaaSプラットフォーム上におけるトランザクションセキュリティの実装のためのシステム及び方法に関する。
【背景技術】
【0003】
多くの輸送プロバイダは、クローズドプラットフォームに基づくインフラを通じて自社のサービスを提供する。例えば、輸送プロバイダは、旅行の作成、支払い又は管理のために、(改札機(ticketing gates)及び販売時点情報管理(PoS)装置などの)個別の発券インフラ、又は(チケット予約アプリケーション又は配車(ride hailing)アプリケーションなどの)個別のアプリケーションを有することができる。
【0004】
輸送プロバイダの数の増加と共に、複数の輸送プロバイダのサービスに依拠し得る旅行の作成、支払い及び管理のための統一ゲートウェイを提供できるMaaSプラットフォームに対する需要が存在している。典型的なMaaSプラットフォームは、航空会社、配車会社、レンタカー会社、相乗り(carpooling)会社、鉄道網会社、又はこれらの組み合わせなどの複数の輸送プロバイダの参加を含むことができる。通常、MaaSプラットフォーム上の各輸送プロバイダは、他の輸送プロバイダのインフラとの接続性が最低限しか又は全く存在しないクローズドインフラを有する。接続性が限られていることで、個々の輸送プロバイダは、共通請求(common billing)、ルート計画及び収益分配(revenue sharing)などに関連する信用上及びプライバシー上の懸念を抱えている場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
当業者には、説明したシステムと、本出願の残り部分において図面を参照しながら示す本開示のいくつかの態様とを比較することにより、従来の慣習的な手法の限界及び不利点が明らかになるであろう。
【課題を解決するための手段】
【0006】
実質的に少なくとも1つの図に示し、及び/又はこれらの図に関連して説明し、特許請求の範囲にさらに完全に示すような、分散型台帳ベースのMaaSプラットフォーム上におけるトランザクションセキュリティの実装のためのシステム及び方法を提供する。
【0007】
全体を通じて同じ要素を同じ参照符号によって示す添付図面を参照しながら本開示の以下の詳細な説明を検討することにより、本開示のこれらの及びその他の特徴及び利点を理解することができる。
【図面の簡単な説明】
【0008】
【
図1】本開示の実施形態による、モビリティアズアサービス(MaaS)プラットフォーム上におけるトランザクションセキュリティの実装のための例示的なネットワーク環境の図である。
【
図2】本開示の実施形態による、発行者ノードからのトランザクション要求に基づいて分散型台帳のノード上のトランザクションデータを更新する例示的な動作を示すシーケンス図である。
【
図3】本開示の実施形態による、発行者ノードからのトランザクション要求に対して加入者ノードの情報アクセスポリシーを適用する例示的な動作を示すシーケンス図である。
【
図4】本開示の実施形態による、分散型台帳を通じてトランザクション要求を満たす一連の動作を示すシーケンス図である。
【
図5】本開示の実施形態による、加入者ノードの様々な動作状態についてのトランザクション要求の処理に関連する一連の動作を示すシーケンス図である。
【
図6】本開示の実施形態による、加入者ノード、分散型台帳のノード、分散型台帳に関連する取引先ノード、及び分散型台帳に関連するコンセンサスノードの例示的な実装を示すブロック図である。
【
図7】本開示の実施形態による例示的なメッセージブローカ装置のブロック図である。
【
図8】本開示の実施形態による例示的な加入者ノードのブロック図である。
【
図9】本開示の実施形態による例示的な発行者ノードのブロック図である。
【
図10】本開示の実施形態による例示的なMaaSベースのシステムのブロック図である。
【
図11】本開示の実施形態による、セキュアなトランザクション処理のための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0009】
開示するモビリティアズアサービス(MaaS)プラットフォーム上におけるトランザクションセキュリティの実装のためのシステム及び方法では、後述する実装を見出すことができる。開示するシステムは、複数の同種又は異種の輸送プロバイダ、並びに改札機、アプリケーション及び/又はPoS装置などのこれらのインフラが共通のMaaSプラットフォーム上で様々な輸送サービスを提供するように動作するのを容易にすることができる連合輸送管理システム(federated transportation management system)とすることができる。各輸送プロバイダは、セキュアなデータ所有権を享受できるとともに、分散型台帳を通じて関連するトランザクションデータの共同使用を制御することができる。これにより、様々な輸送プロバイダ間の接続性を向上させることができる。
【0010】
輸送プロバイダ間のITインフラが共有されると、各個々の輸送プロバイダは、情報技術(IT)インフラの所有権に関連するコスト、並びに運用及びインフラ拡張に掛かる資本支出を節約することができる。また、分散型台帳は、MaaS輸送サービスに関連するトランザクションの当事者であることができる関係輸送プロバイダに関連する分散型台帳上のトランザクションデータレコードに基づいて、MaaS輸送サービスのための輸送プロバイダ間の収益の共有を容易にすることもできる。
【0011】
本開示の例示的な態様は、メッセージブローカ装置上にホストされたアプリケーションプログラミングインターフェイス(API)ゲートウェイを介して、輸送プロバイダの発行者ノード(publisher node)から受け取られたトランザクション要求を輸送プロバイダの加入者ノード(subscriber node)にルーティングするように構成できるメッセージブローカ装置を含むシステムを提供する。輸送プロバイダは、MaaS輸送サービスに関連する複数の輸送プロバイダのうちの1つとすることができる。発行者ノードは、例えば輸送プロバイダの予約アプリケーション、改札機、又は販売時点情報管理(PoS)装置を含むことができる。
【0012】
APIゲートウェイは、トランザクション要求が加入者ノードに配布される前に、ルーティングされたトランザクション要求に一連のセキュリティルールを適用してトランザクション要求の妥当性を確認することができる。輸送プロバイダの加入者ノードは、MaaS輸送サービスのトランザクションデータを含むことができる状態オブジェクトを記憶できる分散型台帳(例えば、ブロックチェーンベースの台帳)のノードに関連することができる。分散型台帳のノードは、妥当性確認されたトランザクション要求を受け取り、受け取られたトランザクション要求に基づいて、分散型台帳のノードに記憶されたトランザクションデータを更新することができる。
【0013】
図1は、本開示の実施形態による、モビリティアズアサービス(MaaS)プラットフォーム上におけるトランザクションセキュリティの実装のための例示的なネットワーク環境の図である。
図1にはネットワーク環境100を示す。ネットワーク環境100は、MaaS輸送サービスの複数の輸送プロバイダに関連する第1の発行者ノード102a、第2の発行者ノード102b及び第nの発行者ノード102n(以下、まとめて複数の発行者ノード102と呼ぶ)を含む。
【0014】
ネットワーク環境100は、アプリケーションプログラミングインターフェイス(API)ゲートウェイ106をホストすることができるメッセージブローカ装置104をさらに含むことができる。ネットワーク環境100は、複数の輸送プロバイダに関連する第1の加入者ノード108a、第2の加入者ノード108b及び第nの加入者ノード108n(以下、まとめて複数の加入者ノード108と呼ぶ)をさらに含むことができる。
図1の発行者ノード、APIエージェント及び加入者ノードの数は、一例として示すものにすぎない。本開示は、その範囲から逸脱することなく、これより多い又は少ない数の発行者ノード、APIエージェント及び加入者ノードにも適用可能とすることができる。
【0015】
メッセージブローカ装置104は、以下に限定するわけではないが、Message Queuing Telemetry Transport(MQTT)ベースのメッセージングプロトコル、Advanced Message Queuing Protocol(AMQP)ベースのメッセージングプロトコル、又はメッセージ指向ミドルウェア(Message-Oriented Middleware:MOM)ベースのメッセージングフレームワークなどの好適なパブリッシュ-サブスクライブ型ネットワークプロトコルを通じて複数の発行者ノード102の各々及び複数の加入者ノード108の各々と通信するように構成することができる。
【0016】
複数の加入者ノード108の各々は、複数のAPIエージェント110からの対応するAPIエージェントをホストして、対応する加入者ノードとAPIゲートウェイ106との間のインターフェイスを提供することができる。例えば、第1の加入者ノード108aは第1のAPIエージェント110aをホストすることができ、第2の加入者ノード108bは第2のAPIエージェント110bをホストすることができ、第nの加入者ノード108nは第nのAPIエージェント110nをホストすることができる。
【0017】
複数の加入者ノード108の各々は、分散型台帳112の対応するノードに関連することができる。例えば、第1の加入者ノード108aは第1のノード112aに関連することができ、第2の加入者ノード108bは第2のノード112bに関連することができ、第nの加入者ノード108nは第nのノード112nに関連することができる。
【0018】
ネットワーク環境100は、それぞれが分散型台帳112に関連することができる取引先(counter-party)ノード114及びコンセンサス(consensus)ノード116をさらに含むことができる。例えば、分散型台帳112は、(MaaSプロバイダノードも呼ばれる)取引先ノード114及びコンセンサスノード116を含むことができる。ある実施形態では、分散型台帳112の少なくとも2つのノードが、輸送サービスに関連するトランザクションデータ118を記憶することができる。輸送サービスは、複数の輸送プロバイダのうちの1つ又は2つ以上、及び/又は統合MaaSインターフェイス又は複数の発行者ノード102を通じて輸送サービスを利用できるユーザ120に関連することができる。
【0019】
例えば、トランザクションデータ118は、(初期状態オブジェクトとも呼ばれる)第1の状態オブジェクト118a及び第2の状態オブジェクト118b(すなわち、初期状態オブジェクトの更新バージョンに対応するもの)などの一連の状態オブジェクトを含むことができる。各状態オブジェクトは、スマートコントラクト、コントラクトコード(又はトランザクションの当事者が合意する基礎となるトランザクションのルール)及び(発行者ノードからのトランザクション要求に基づいてトランザクションデータ118が更新された時に更新できる)状態特性を含むことができるトランザクションデータ118のバージョンを記憶することができる。
【0020】
複数の発行者ノード102の各発行者ノードは、メッセージブローカ装置104を通じて複数の加入者ノード108のうちの1つ又は2つ以上の加入者ノードにトランザクション要求を発行するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。各発行者ノードは、(1又は2以上の輸送プロバイダのサービスから成る旅行に関連する輸送サービスの作成、開始又は終了などの)MaaSトランザクションに関連する事象の発生に基づいてトランザクション要求を発行することができる。複数の発行者ノード102の例としては、以下に限定するわけではないが、発行者ノードに関連する乗車予約アプリケーション、改札機、又は販売時点情報管理(PoS)装置を挙げることができる。
【0021】
ある実施形態では、複数の発行者ノード102の各々を、輸送プロバイダに関連する輸送サービス端末にインストールすることができる。輸送サービス端末の輸送サービスインターフェイスは、ユーザ120からのユーザ入力に基づいてMaaSトランザクションに関連する事象をトリガできるユーザインターフェイスに対応することができる。
【0022】
限定ではなく一例として、第1の発行者ノード102aは、第1の発行者ノード102aがユーザ120からユーザ入力を受け取ることができるようにするユーザインターフェイスを提供することができる。受け取られたユーザ入力は、ユーザ120のMaaSベースの輸送サービスの作成要求を示すことができる。第1の発行者ノード102aは、このような受け取られたユーザ入力に応答して、ユーザ120のMaaSベースの輸送サービスの作成に関連するcreate(作成)メッセージを含むことができるトランザクション要求を生成することができる。或いは、第1の発行者ノード102aは、ユーザ120がMaaSベースの輸送サービスを開始した時に、ユーザ120のMaaSベースの輸送サービスの開始に対応できるget-in(参加)メッセージを含むことができるトランザクション要求を生成することもできる。一例として、このようなMaaSベースの輸送サービスの開始は、ユーザ120が(輸送プロバイダに関連する)列車に乗るために鉄道改札機(第1の発行者ノード102a)を通って入った時、又はタクシーの乗車を開始した時などの事象検出に関連することができる。或いは、第1の発行者ノード102aは、ユーザ120がMaaSベースの輸送サービスの利用を完了した時に、ユーザ120のMaaSベースの輸送サービスの完了に対応できるget-out(退出)メッセージを含むことができるトランザクション要求を生成することもできる。一例として、このようなMaaSベースの輸送サービスの完了は、ユーザ120が(輸送プロバイダに関連する)列車から降りた後に電子鉄道出口(第1の発行者ノード102a)を通って出た時、又はタクシーの乗車が終了した時などの事象検出に関連することができる。
【0023】
メッセージブローカ装置104は、複数の発行者ノード102から複数の加入者ノード108にトランザクション要求をルーティングするように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。メッセージブローカ装置104は、ルーティングされるトランザクション要求のセキュリティフィルタリングを実行するAPIゲートウェイ106をホストするようにさらに構成することができる。例えば、メッセージブローカ装置104は、第1の輸送プロバイダの第1の発行者ノード102aから、マルチモーダル輸送サービスに関連する第1のトランザクション要求を受け取ることができる。さらに、メッセージブローカ装置104は、APIゲートウェイ106を介して第1の輸送プロバイダの第1の加入者ノード108aに第1のトランザクション要求をルーティングすることができる。メッセージブローカ装置104の例としては、以下に限定するわけではないが、アプリケーションサーバ、クラウドサーバ、メインフレームサーバ、データベースサーバ、ファイルサーバ、ウェブサーバ、又はその他のタイプのサーバを挙げることができる。
【0024】
APIゲートウェイ106は、メッセージブローカ装置104によってルーティングされるトランザクション要求に一連のセキュリティルールを適用するように構成できる好適なロジック、コード及び/又はインターフェイスを含むことができる。APIゲートウェイ106は、一連のセキュリティルールの適用に基づいてトランザクション要求の妥当性を確認し、妥当性確認されたトランザクション要求を1又は2以上の加入者ノードに転送することができる。一例として、APIゲートウェイ106は、受け取られた第1のトランザクション要求に一連のセキュリティルールを適用したことに基づいて、第1の発行者ノード102aからルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。APIゲートウェイ106は、第1のトランザクション要求の妥当性確認に基づいて第1のトランザクション要求を第1の加入者ノード108aに転送し、或いは第1のトランザクション要求の妥当性が確認されなかった場合には第1のトランザクション要求を却下することができる。別の例として、APIゲートウェイ106は、第1の加入者ノード108aの動作状態(例えば、アクティブ/非アクティブな状態)に基づいて、第1の加入者ノード108aにルーティングされるトランザクション要求を保留するように構成することもできる。さらに、APIゲートウェイ106は、第1の加入者ノード108aの動作状態がアクティブであるとの判定に基づいて、保留したトランザクション要求を第1の加入者ノード108aに再ルーティングすることができる。1つの実施形態では、APIゲートウェイ106を、メッセージブローカ装置104上に展開又はホストできるソフトウェアアプリケーションとして実装することができる。
【0025】
複数の加入者ノード108の各々は、複数の発行者ノード102のうちの1又は2以上の発行者ノードからトランザクション要求を受け取るように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。例えば、第1の輸送プロバイダの第1の加入者ノード108aは、メッセージブローカ装置104に登録して、同じ輸送プロバイダ(すなわち、第1の輸送プロバイダ)の第1の発行者ノード102aからのトランザクション要求を受け取るように同意することができる。このようなシナリオでは、第1の発行者ノード102aによって発行されたトランザクション要求をメッセージブローカ装置104がAPIゲートウェイ106を介してルーティングし、APIゲートウェイがこのトランザクション要求の妥当性を確認してから第1の加入者ノード108aにルーティングすることができる。加入者ノードの実装例としては、以下に限定するわけではないが、ウェブサーバ、エッジデバイス、エッジノード、クラウドサーバ、一群のクラウドベースサーバ、ワークステーション、又はフォグコンピューティング能力を有するいずれかのコンピュータ装置又はシステムを挙げることができる。
【0026】
複数のAPIエージェント110の各々は、複数の加入者ノード108のうちの対応する加入者ノードに関連する動作状態情報を維持するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。(第1のAPIエージェント110aなどの)APIエージェントは、トランザクション要求が加入者ノードに関連する輸送プロバイダの情報アクセスポリシー(例えば、ビジネスルール又は制約)に従っている場合に、このトランザクション要求を(第1の加入者ノード108aなどの)対応する加入者ノードに転送するように構成することができる。各APIエージェントは、加入者ノード上の又は加入者ノードに通信可能に接続された別のノード(例えば、エッジノード)上のサーバベースのアプリケーションとして実装することができる。
【0027】
ある実施形態では、分散型台帳112を、不変のデータ操作記録又はトランザクション記録を維持することができる非集中的な分散型データベースシステムとすることができる。一連のデータ操作は、ブロックとしてグループ化するとともに以前のデータ操作ブロックにさらにリンクさせて複数のブロックチェーンを形成することができる。全てのデータ操作ブロックは非集中方式で記憶することができ、これによって分散型台帳112の少なくとも2つの参加者又はノードが、これらの参加者又はノードが参加できる1又は2以上のトランザクションに関連する複数のブロックの一部を記憶することができる。さらに、分散型台帳112は、例えば(輸送プロバイダノードとも呼ばれる第1の輸送プロバイダの第1のノード112aなどの)モビリティプロバイダノードなどの複数の当事者と取引先ノード114(すなわち、MaaSプロバイダノード)との間におけるスマートコントラクトの展開を可能にすることができるオペレーティングシステム(例えば、Java Virtual Machine(JVM))を含むことができる。
【0028】
限定ではなく一例として、分散型台帳112は、Cordaブロックチェーン、Ethereumブロックチェーン、又はHyperledgerブロックチェーンとすることができる。分散型台帳112(例えば、Cordaブロックチェーン)は、分散型台帳112が追跡できる一連の不変の状態オブジェクトを記憶することができる。状態オブジェクトは、当事者間のスマートコントラクト、コントラクトコード(トランザクションのルール)、及び一定の状態値を有する状態特性を含むコンテンツなどのトランザクションデータを含むことができる。スマートコントラクトは、スマートコントラクトの複数の当事者が互いに相互作用するように合意できる一連の条件を含むことができる。スマートコントラクトは、分散型台帳112の1又は2以上のノード上で動作することができ、トランザクションを生成する状態オブジェクト間の遷移を管理することができる。スマートコントラクトは、一度書かれると多くの状態オブジェクトに再使用することができ、暗号ハッシュを通じて準拠法的散文(governing legal prose)を参照することができる。
【0029】
分散型台帳112は、セキュアな暗号ハッシュを使用して当事者及びデータを識別するとともに、状態オブジェクトを以前のバージョンの状態オブジェクトにリンクしてプロビナンスチェーン(chains of provenance)を提供することもできる。分散型台帳112には、関連する一群の当事者のみが閲覧できるように一群の当事者間のトランザクションを記憶することができる。トランザクションに関連する当事者は、そのトランザクションの現在の状態オブジェクトをボールト(vault)(分散型台帳112に関連するデータベース)に記憶することができる。トランザクションを閲覧又は処理する(例えば、トランザクションの妥当性を確認する)資格がある別の当事者は、ボールトからトランザクションの現在の状態オブジェクトを検索することができる。また、分散型台帳112の各状態オブジェクトは、関連するトランザクションに参加できる当事者又はノード間のスマートコントラクトを含むことができる。
【0030】
分散型台帳112上では、参加者又はノード(例えば、第1のノード112a)が入力状態オブジェクト(例えば、第1の状態オブジェクト118a)の状態特性を更新して出力状態オブジェクト(例えば、第2の状態オブジェクト118b)を作成することによって、トランザクションを更新することができる。これにより、更新済みトランザクションは(トランザクションデータ118に関連することができる)プロビナンスチェーンを作成することができる。分散型台帳112は、更新済みトランザクションの妥当性の判定、及び更新済みトランザクションの一意性の判定に基づいて、更新済みトランザクションのためのコンセンサスを提供することができる。ある実施形態では、更新済みトランザクションに関連するノードの参加者が、トランザクションに関連するスマートコントラクト及び妥当性確認ロジックを個別に実行することによって更新済みトランザクションの妥当性を判定することができる。さらに、分散型台帳112に関連するコンセンサスノード(例えば、コンセンサスノード116)は、現在のトランザクションと同じ入力状態オブジェクトを使用してコンセンサスに達したトランザクションが他に存在しないとのチェックに基づいて更新済みトランザクションの一意性を判定することができる。
【0031】
ある実施形態によれば、分散型台帳112は、クライアント側インターフェイス(フロントエンド)及びサーバ側インターフェイス(バックエンド)を含むことができる非集中型アプリケーションに関連することができる。非集中型アプリケーションは、ブロックチェーンに関連するワークフロー(例えば、
図6で説明するようなCordaフロー)を実行して(分散型台帳112の第1のノード112aなどの)分散型台帳112のノード上にトランザクションを記録するように構成することができる。クライアント側インターフェイスは、複数の加入者ノード108の各々においてホストされ、加入者ノードに関連するクライアントを詰め込むように構成することができる。例えば、非集中型アプリケーションのクライアント側インターフェイスは、各加入者ノード及び取引先ノード114(すなわち、MaaSプロバイダノード)上に構成することができる遠隔手続き呼出し(Remote Procedure Call:RPC)クライアントとすることができる。非集中型アプリケーションのサーバ側インターフェイスは、対応する加入者ノード及び取引先ノード114に関連する分散型台帳112の各ノード上で動作することができる。
【0032】
ある実施形態では、発行者ノードからのトランザクション要求によって、(分散型台帳112の第1のノード112aなどの)モビリティプロバイダノードとMaaSプロバイダノード(すなわち、取引先ノード114)との間のMaaSトランザクションを開始することができる。分散型台帳112は、2つの当事者間の、すなわちモビリティプロバイダノード(例えば、第1のモビリティプロバイダの第1のノード112a)とMaaSプロバイダノード(すなわち、取引先ノード114)との間のMaaSトランザクションのレコードを記憶することができる。
【0033】
複数のMaaSプロバイダの場合には、ネットワーク環境100が複数のMaaSプロバイダノードを含むことができ、これらの各々を特定のMaaSプロバイダに関連付けてそれぞれのMaaSプロバイダの個別の分散型台帳に含めることができる。いくつかのシナリオでは、複数のMaaSプロバイダノードを分散型台帳112などの共通の分散型台帳に含めることができる。
【0034】
ある実施形態では、第1のノード112aを、分散型台帳112の多くのデータベースノードのうちの1つとすることができ、APIゲートウェイ106から第1の加入者ノード108aを介して、妥当性確認された第1のトランザクション要求を受け取るように構成することができる。第1のノード112aは、受け取られた第1のトランザクション要求内のトランザクションメッセージに基づいて、分散型台帳112に関連する初期状態オブジェクト(例えば、初期状態オブジェクト118a)を更新し、更新済み状態オブジェクト(例えば、第2の状態オブジェクト118b)を出力するように構成することができる。第1のノード112aは、初期状態オブジェクト(例えば、初期トランザクションデータを含む第1の状態オブジェクト118a)及び更新済み状態オブジェクト(例えば、更新済みトランザクションデータを含む第2の状態オブジェクト118b)を含むことができるトランザクションを構築するようにさらに構成することができる。
【0035】
取引先ノード114はMaaSプロバイダに関連することができ、MaaSプロバイダノードと呼ぶこともできる。ある実施形態では、取引先ノード114が、複数の加入者ノード108のうちのある加入者ノードによって受け取られたトランザクション要求を処理するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。コンセンサスノード116は、分散型台帳112に関連するトランザクションを公証(notarize)するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。
【0036】
動作中、第1の輸送プロバイダの第1の発行者ノード102aは、第1の発行者ノード102aの(例えば、
図9に示すような)ユーザインターフェイスを介してユーザ120から入力を受け取ることができる。この入力は、ユーザ120に関連する旅行計画に基づいて輸送サービス(すなわち、MaaSサービス)を作成するための要求を含むことができる。輸送サービスは、1又は2以上の同種又は異種の輸送プロバイダの個々のサービス提供の組み合わせとすることができる。例えば、MaaSプロバイダの改札機、配車アプリケーション又はPoS端末は、ユーザ120からの入力を介してマルチモーダル輸送サービス(例えば、バス、タクシー及びフライトの組み合わせ)の作成要求を受け取ることができる。本明細書におけるマルチモーダル輸送サービスは、例えば列車サービス、バスサービス、タクシーサービス、地下鉄サービス、航空機サービス、海運サービス、配車サービス、カーシェアリングサービス、相乗りサービス、レンタカーサービス、バイクシェアリングサービス、又はこれらの組み合わせを含むことができる。
【0037】
ある実施形態では、第1の発行者ノード102aを、ユーザ120からの入力に基づいて第1のトランザクション要求を生成するように構成することができる。第1のトランザクション要求は、createメッセージに対応できるトランザクションメッセージを含むことができる。例えば、createメッセージは、輸送プロバイダの詳細、輸送サービスに関連する旅行計画/ルート、出発地、目的地、又は出発地と目的地との間の中間的な場所を含むことができる。createメッセージは、ユーザ120によって予約された輸送サービスのバンドルに関連する支払い明細を含むこともできる。
【0038】
第1の発行者ノード102aは、輸送プロバイダの輸送サービス(例えば、バス、タクシー及びフライト)に関連することができる全ての加入者ノードに、createメッセージを含む第1のトランザクション要求を送信することができる。分散型台帳112の対応するノードは、関連する輸送プロバイダの加入者ノードにおけるcreateメッセージの受信に基づいて初期状態オブジェクトを作成し、この初期状態オブジェクトを分散型台帳112に記憶することができる。
【0039】
別の実施形態では、輸送プロバイダに関連する(第1の発行者ノード102aなどの)発行者ノードが、ユーザ120のための輸送サービスの開始時に、メッセージブローカ装置104を通じて輸送プロバイダの(第1の加入者ノード108aなどの)加入者ノードに、get-inメッセージを含むことができるトランザクション要求を送信することができる。
【0040】
別の実施形態では、(第1の発行者ノード102aなどの)発行者ノードが、ユーザ120のための輸送サービスの完了時に、(第1の加入者ノード108aなどの)加入者ノードに、get-outメッセージを含むことができるトランザクション要求を送信することができる。
【0041】
第1の発行者ノード102aは、メッセージブローカ装置104に第1のトランザクション要求を送信するように構成することができる。メッセージブローカ装置104は、第1の発行者ノード102aからトランザクション要求を受け取り、この第1のトランザクション要求をAPIゲートウェイ106を介して第1の輸送プロバイダの第1の加入者ノード108aにルーティングするように構成することができる。APIゲートウェイ106は、受け取られた第1のトランザクション要求に一連のルールを適用することに基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。例えば、APIゲートウェイ106は、第1のトランザクション要求が有効な署名を有しているかどうか、正当なIPアドレスに関連するかどうか、サイバー攻撃に関連する悪意ある挙動に対応していないかどうか、及び/又はボットによって送信されたものでないかどうかの判定に基づいて、受け取られた第1のトランザクション要求に対してセキュリティフィルタリングを実行することができる。APIゲートウェイ106によって行われるセキュリティフィルタリングは、加入者ノードに正当なトランザクション要求のみが転送されることを確実にすることができる。このブローカエンドにおけるセキュリティフィルタリングに伴い、各個々の加入者ノードは不当なトランザクション要求をフィルタ処理するチェックを省略することができ、これによってメッセージ/トランザクション処理能力が良好になる。APIゲートウェイ106(又はメッセージブローカ装置104)は、第1のトランザクション要求の妥当性確認に基づいて第1のトランザクション要求を第1の加入者ノード108aに送信するように構成することができる。APIゲートウェイ106は、トランザクション要求トラフィックの有効化、無効化又はモニタリングを行う制御機構を提供することもできる。
【0042】
ある実施形態では、第1のAPIエージェント110aを、APIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取るように構成することができる。第1のAPIエージェント110aは、妥当性確認された第1のトランザクション要求が第1の加入者ノード108aに関連する輸送プロバイダの情報アクセスポリシーに従っているかどうかを判定することができる。情報アクセスポリシーは、輸送プロバイダのビジネスルール又は制約に対応することができる。妥当性確認された第1のトランザクション要求が情報アクセスポリシーに従っている場合、第1のAPIエージェント110aは、妥当性確認された第1のトランザクション要求を第1の加入者ノード108aに転送することができる。従って、第1のAPIエージェント110aを通じて、輸送プロバイダ固有の又は加入者ノード固有のトランザクション要求のフィルタリングを実施することができる。
【0043】
第1の加入者ノード108aは、第1のAPIエージェント110aから妥当性確認された第1のトランザクション要求を受け取り、この妥当性確認された第1のトランザクション要求を第1のノード112aに送信するように構成することができる。第1のノード112aは、受け取られた第1のトランザクション要求に基づいて、輸送サービスの第1の状態オブジェクト118aを検索し、第1の状態オブジェクト118aに含まれるトランザクションデータを更新することができる。トランザクションデータは、以下に限定するわけではないが、発券情報、サブスクリプション情報、支払情報、収益分配情報又は輸送サービス情報などの情報に関連することができる。
【0044】
例示的なシナリオでは、11:00AMにバスに乗車して空港に向かい、1:00PMに空港から飛行機に搭乗し、その後に8:00PMに空港からタクシーに乗車してホテルに向かうように予定されたユーザ120の旅行計画のための輸送サービスを作成することができる。バスの乗車については、ユーザ120がバスの乗車を開始すると、バス乗車プロバイダに関連する発行者ノードが、バス乗車プロバイダの加入者ノードにトランザクション要求を送信することができる。このトランザクション要求は、(乗車又は下車地点、乗車時間などの)旅行の詳細、サブスクリプションの詳細又はユーザ詳細を含むget-inメッセージを含むことができる。旅程の最後にユーザ120がバスから降りると、バス乗車プロバイダに関連する発行者ノードは、再びバス乗車プロバイダの加入者ノードにトランザクション要求を送信することができる。このトランザクション要求は、(旅行時間、下車地点などの)旅行の詳細、サブスクリプションの詳細、旅行請求額又はユーザ詳細を含むget-outメッセージを含むことができる。加入者ノードは、get-inメッセージ又はget-outメッセージの各々について、その分散型台帳112のノードにget-inメッセージ又はget-outメッセージを転送することができる。分散型台帳112のノードは、get-inメッセージ又はget-outメッセージに基づいて初期状態オブジェクトを更新して、更新済みトランザクションデータを含む新たな状態オブジェクトを作成することができる。
【0045】
例えば、初期状態オブジェクトの状態特性が(マルチトリップ)輸送サービスのための500USドル(USD)の支払い総額を含む場合、新たな状態オブジェクトの更新済みトランザクションデータは、この支払い総額と、バス乗車プロバイダに関連する旅行のための10USDの請求額とを含むことができる。同様に、輸送サービスの他の全ての旅行(フライト及びホテルまでのタクシー)については、フライトプロバイダ及びタクシー乗車プロバイダの分散型台帳112のそれぞれのノードが、ユーザ120が航空機での旅行及びタクシーでの旅行を完了できる順序で連続して新たな状態オブジェクトを更新することができる。取引先ノード114(すなわち、MaaSプロバイダノード)は、最後の旅行の終了時に(どちらか最後に更新された方の)状態オブジェクトを読み出して、バス乗車プロバイダ、フライトプロバイダ及びタクシー乗車プロバイダのそれぞれについて支払いを精算することができる。
【0046】
説明する実施形態では、同種の輸送プロバイダ(例えば、複数のタクシー乗車プロバイダ会社)又は異種の輸送プロバイダ(マルチモーダル輸送プロバイダ)が、同種の一群の装置、アプリケーション又は改札機、或いは様々な輸送プロバイダの異種の一群の改札機、アプリケーション及びPoS装置を通じて輸送サービスを提供することができる。
【0047】
各輸送プロバイダは、分散型台帳112を通じてトランザクションデータ118のセキュアなデータ所有権を享受することができる。本開示のMaaSプラットフォームは分散型台帳112を使用して実装されるので、各輸送プロバイダは分散型台帳112上にノードを所有することができる。輸送プロバイダに関連する分散型台帳112のノードは、自社に関連するトランザクションデータを記憶することができる。取引先ノード114(すなわち、MaaSプロバイダノード)も、同じトランザクションデータを記憶することができる。これにより、MaaSプロバイダと輸送プロバイダとの間でのセキュアなデータ所有権を保証することができる。また、これによって様々な輸送プロバイダ間の接続性を向上させることもできる。輸送プロバイダ間で情報技術(IT)を共有することで、各輸送プロバイダが独自のクローズドプラットフォームITインフラを維持する場合のコストに比べて各輸送プロバイダの所有ITインフラに関連するコストを抑えることができる。分散型台帳112は、分散型台帳112上のトランザクションデータレコードに基づいて、複数の輸送プロバイダの発券管理、サブスクリプション管理、支払管理、収益分配及び/又は輸送サービス管理を容易にすることができる。
【0048】
図2は、本開示の実施形態による、発行者ノードからのトランザクション要求に基づいて分散型台帳のノード上でトランザクションデータを更新する例示的な動作を示すシーケンス図である。
図2の説明は、
図1の要素に関連して行う。
図2には、202~212の一連の動作を示すシーケンス
図200を示す。この一連の動作は、以下に限定するわけではないが、第1の発行者ノード102a、メッセージブローカ装置104、APIゲートウェイ106、第1の加入者ノード108a又は分散型台帳112の第1のノード112aなどの、ネットワーク環境100の様々な要素によって実行することができる。
【0049】
202において、第1の輸送プロバイダの第1の発行者ノード102aが第1のトランザクション要求を開始することができる。ある実施形態では、第1の発行者ノード102aが、第1の発行者ノード102aのUIを通じてユーザ120から入力を受け取ることができる。この入力は、輸送サービスに関連するトランザクションの開始(又は作成)要求を含むことができる。例えば、この入力は、1又は2以上の輸送プロバイダ(例えば、タクシーサービスプロバイダ、バスサービスプロバイダ及び地下鉄サービスプロバイダ)の個々のサービス提供を組み合わせて第1の場所から第2の場所に移動するためのユーザ120の要求を含むことができる。第1の発行者ノード102aは、このようなユーザ120からの入力に基づいて、createメッセージを含むことができる第1のトランザクション要求を生成するように構成することができる。例えば、createメッセージ(例えば、レコードの最初のインスタンス)は、出発地、目的地、又は出発地と目的地との間の中間的な場所などの、輸送サービスに関連する旅行計画/ルートを含むことができる。createメッセージは、ユーザ120によって予約された輸送サービスのバンドルに関連する支払い明細も含むこともできる。createメッセージは、分散型台帳112上で初期状態オブジェクトを作成するために使用することができる。以下の表1にcreateメッセージフィールドの例をリストする。
表1:createメッセージの例示的なフィールド及びその説明
【0050】
表1では、createメッセージが、(ユーザ120が輸送サービスのための単一の旅行チケットを有することができる)「パス」トランザクション、又は(ユーザ120が一定期間にわたって輸送サービスを使用するためのMaaSプロバイダとの有料サブスクリプションを有することができる)「サブスクリプション」トランザクションの一方とすることができるトランザクションのモードを含む。transaction type(トランザクションタイプ)フィールドは、第1のトランザクション要求がcreateメッセージに対応することを示すことができる。pass/subscription ID(パス/サブスクリプションID)フィールドは、ユーザ120のパス又はサブスクリプションのIDを示し、subscription status(サブスクリプションステータス)フィールドは、ユーザ120によって保持されているサブスクリプションの状態(例えば、期限切れ/機能中)を示すことができる。createメッセージは、作成されたMaaSサービスに関連することができる輸送プロバイダ名、及びトランザクションを行える相手先であるMaaSプロバイダ名を含むこともできる。さらに、createメッセージは、トランザクション時間(すなわち、createメッセージのタイムスタンプ)、パス又はサブスクリプションのためのワンタイムID、トランザクションの場所、及び(場所フィールドが存在しない場合には)トランザクションの局IDを含むことができる。
【0051】
1つのシナリオでは、第1の輸送プロバイダに関連する旅行が開始されると、第1の輸送プロバイダの第1の発行者ノード102aが、第1の加入者ノード108aのためのget-inメッセージを含むことができる第1のトランザクション要求をメッセージブローカ装置104に送信することができる。例えば、輸送サービスは、11:00AMにバスに乗車して空港に向かい、1:00PMに飛行機に搭乗し、8:00PMにタクシーに乗車するためのユーザ120の予定計画に対応することができる。ユーザ120がタクシー乗車を開始すると、タクシープロバイダに関連する発行者ノードは、タクシープロバイダに関連する対応するget-inメッセージを含むトランザクション要求を生成することができる。get-inメッセージは、タクシーの旅程の開始時間及びタクシーの現在位置などの詳細を含むことができる。get-inメッセージは、分散型台帳112の関連するノードにおいて第1の輸送プロバイダ(例えば、タクシーサービスプロバイダ)の第1のトランザクション要求に基づいて更新済み状態オブジェクトを作成するために使用することができる。以下の表2に、get-inメッセージのフィールド例をリストする。
表2: get-inメッセージの例示的なフィールド及びその説明
【0052】
表2の例示的なフィールドは、表1に示すフィールドと同様のものである。従って、簡潔にするために、このような例示的なフィールドの説明は本開示から省略する。
【0053】
第1の輸送プロバイダに関連する旅行が終了するシナリオでは、第1の発行者ノード102a(又は第1の輸送プロバイダの別の発行者ノード)が、get-outメッセージを含むことができるトランザクション要求を開始することができる。上記の輸送サービスの例を参照すると、タクシープロバイダに関連する発行者ノードは、ユーザ120がタクシーの旅程の最後にタクシーから降りた時に、タクシープロバイダに関連する対応するget-outメッセージを含むトランザクション要求を生成することができる。get-outメッセージは、タクシーの旅程の完了時間及びタクシーの現在位置(すなわち、目的地)などの詳細を含むことができる。get-outメッセージは、分散型台帳112の関連するノードにおいて第1の輸送プロバイダ(例えば、タクシーサービスプロバイダ)のトランザクション要求に関連する別の更新済み状態オブジェクトを作成するために使用することができる。以下の表3に、get-outメッセージのフィールド例をリストする。
表3: get-outメッセージの例示的なフィールド及びその説明
【0054】
表3の例示的なフィールドは、表1に示すフィールドと同様のものである。従って、簡潔にするために、このような例示的なフィールドの説明は本開示から省略する。
【0055】
204において、第1の発行者ノード102aが、メッセージブローカ装置104に第1のトランザクション要求を送信することができる。メッセージブローカ装置104は、第1の発行者ノード102aから第1のトランザクション要求を受け取ることができる。
【0056】
206において、メッセージブローカ装置104が、APIゲートウェイ106を介して第1の輸送プロバイダの第1の加入者ノード108aに第1のトランザクション要求をルーティングすることができる。ある実施形態では、複数の加入者ノード108aの各々が、関連するサブスクリプション要求をメッセージブローカ装置104に送信することによって1又は2以上のトランザクション要求にサブスクライブすることができる。例えば、MQTTメッセージがトランザクション要求である場合、加入者ノードは特定のトピックにサブスクライブして、このトピックを含むトランザクション要求を受け取ることができる。さらに、発行者ノードは、メッセージブローカ装置104における特定のトピックにトランザクション要求としてのメッセージを発行又は送信することができる。あるトピックは、メッセージのコンテンツのタイプを示すことができるとともにMQTTメッセージのアドレス指定及びルーティングに使用できるMQTTメッセージの主題に対応することができる。メッセージブローカ装置104は、第1のトランザクション要求に含まれるトランザクションメッセージ内の情報、及びAPIゲートウェイ106を介して複数の加入者ノード108から受け取られたサブスクリプション要求に基づいて、第1のトランザクション要求をルーティングすることができる。
【0057】
例えば、表1では、第1のトランザクション要求に含まれるトランザクションメッセージが輸送プロバイダ(例えば、第1の輸送プロバイダ)名を示す。第1の加入者ノード108aが第1の輸送プロバイダ(例えば、タクシープロバイダ)に関連するトランザクション要求にサブスクライブした場合、メッセージブローカ装置104は、APIゲートウェイ106を介して第1の輸送プロバイダ(すなわち、タクシープロバイダ)の第1の加入者ノード108aに第1のトランザクション要求をルーティングすることができる。
【0058】
208において、APIゲートウェイ106は、トランザクション要求の妥当性を確認するために、ルーティングされる第1のトランザクション要求のセキュリティフィルタリングを実行することができる。セキュリティフィルタリングでは、本明細書で説明するような一連のセキュリティルールに基づいて、ルーティングされる第1のトランザクション要求の妥当性をチェックすることができる。
【0059】
一連のセキュリティルールは、トランザクション要求が有効なIPアドレス範囲内のIPアドレスに関連するかどうかをチェックするための第1のルールを含むことができる。一連のセキュリティルールは、トランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するかどうかをチェックするための第2のルールと、受け取られたトランザクション要求の発行者ノードがボットであるかどうかをチェックするための第3のルールとをさらに含むことができる。一連のセキュリティルールは、トランザクション要求に関連するメッセージ署名が有効であるかどうかをチェックするための第4のルールと、関連する一意のID、IPアドレス又はアクセストークンに基づいて(第1のノード112Aなどの)モビリティプロバイダにトランザクション要求を提出するためのクライアント(すなわち、発行者ノード)の真正性及び認可の検証に基づいてトランザクション要求の妥当性を確認するための第5のルールとを含むことができる。(第1のルールから第5のルールまでの)上記の順序での一連のセキュリティルールの適用は、ネットワーク層、その後のトランスポート/セッション層及びプレゼンテーション/アプリケーション層などの様々な開放型システム間相互接続(Open Systems Interconnection:OSI)モデル層上におけるトランザクション要求のセキュリティフィルタリングを引き起こすことができるので有利と考えられる。
【0060】
1つの実施形態では、APIゲートウェイ106を、ルーティングされる第1のトランザクション要求が有効なIPアドレス範囲内のIPアドレスに関連するとの判定に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。例えば、第1の発行者ノード102aは、第1のトランザクション要求のトランザクションメッセージに、第1の発行者ノード102aに関連するソースIPアドレスを埋め込むことができる。APIゲートウェイ106は、複数の輸送プロバイダに関連することができる有効なホワイトリスト上のIPアドレスの範囲を維持することができる。第1の発行者ノード102aに関連するソースIPアドレスが有効なホワイトリスト上のIPアドレスの範囲内にある場合、ルーティングされる第1のトランザクション要求の妥当性を確認することができる。
【0061】
別の実施形態では、APIゲートウェイ106を、ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するとの判定に基づいて、ルーティングされる第1のトランザクション要求を却下するように構成することができる。1つの例として、APIゲートウェイ106は、一定期間内に第1の加入者ノード108aから(第1のトランザクション要求を含む)トランザクション要求が高頻度で受け取られたことに基づいて、第1のトランザクション要求がサービス妨害(DoS)攻撃に対応するかどうかを判定することができる。別の例として、APIゲートウェイ106は、第1のトランザクション要求に関連するパラメータに基づいて、第1のトランザクション要求がクロスサイトリクエストフォージェリ(Cross-site Request Forgery:XSRF)攻撃に対応するかどうかを判定することもできる。このようなパラメータの例としては、以下に限定するわけではないが、第1のトランザクション要求に関連するユニフォームリソースロケータ(URL)、メッセージヘッダ又はクッキーを挙げることができる。第1のトランザクション要求がDoS攻撃又はXRSF攻撃に関連すると判定された場合、APIゲートウェイ106は第1のトランザクション要求を却下することができる。また、いくつかの実施形態では、APIゲートウェイ106が、第1の発行者ノード102a(又は関連するクライアントID又はIPアドレス範囲)を、それぞれがメッセージブローカ装置104にメッセージ(又はトランザクション要求)を発行できないブラックリスト発行者のリストに追加することもできる。
【0062】
別の実施形態では、APIゲートウェイ106を、第1の発行者ノード102aがボットであるとの判定に基づいて、ルーティングされる第1のトランザクション要求を却下するように構成することができる。例えば、APIゲートウェイ106は、侵入検出システムを使用して、第1のトランザクション要求に関連する第1の発行者ノード102aがボットであるかどうかを検出することができる。侵入検出システムは、異常ベースの侵入検出技術、署名ベースの侵入検出技術、又はドメインネームサービス(DNS)ベースの侵入検出技術のうちの1つ又は2つ以上を使用して、第1の発行者ノード102aがボットであることを検出することができる。
【0063】
別の実施形態では、APIゲートウェイ106が、チャレンジレスポンスベースのボット検出技術を使用して第1の発行者ノード102aがボットであるかどうかを検出することができる。例えば、メッセージブローカ装置104は、それぞれの発行者ノードが最初にメッセージブローカ装置104に対してTCP/IPポートを登録し又は開いた時に、各発行者ノードとの間で一意のコードを共有することができる。APIゲートウェイ106は、第1のトランザクション要求が受け取られると、一意のコードを要求するチャレンジ問題を第1の発行者ノード102aに送信することができる。第1のトランザクション要求に関連する第1の発行者ノード102aが一意のコードで応答できない場合、APIゲートウェイ106は、第1の発行者ノード102aがボットであると判定することができる。
【0064】
1つの実施形態では、APIゲートウェイ106を、ルーティングされる第1のトランザクション要求に有効な署名が行われているとの判定に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。例えば、第1の発行者ノード102aは、第1の発行者ノード102aに関連する秘密鍵を使用して第1のトランザクション要求に署名(例えば、メッセージ認証コード又はチェックサム)を行うことができる。APIゲートウェイ106は、第1の発行者ノード102aに関連する公開鍵に基づいて署名の妥当性を確認することができる。公開鍵は、APIゲートウェイ106及び/又はメッセージブローカ装置104に既知のものとすることができる。このような妥当性確認は、(トランザクションメッセージを含む)第1のトランザクション要求が悪意あるエンティティによって改竄されたものでないことを保証することができる。
【0065】
1つの実施形態では、APIゲートウェイ106を、特定のモビリティ/輸送プロバイダのクライアント(すなわち、第1の発行者ノード102aなどの発行者ノード)の真正性及び認可の検証に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。一例として、APIゲートウェイ106は、第1のトランザクション要求に関連する一意のID、IPアドレス又はアクセストークンに基づいて、第1のトランザクション要求を送信した第1の発行者ノード102aの真正性及び認可を検証することができる。IPアドレスは、第1のトランザクション要求にソースIPアドレスとして含めることができ、アクセストークンは、第1のトランザクション要求のトランザクションメッセージのヘッダに埋め込むことができる。APIゲートウェイ106は、IPアドレスと発行者の認可されたIPアドレスのリストとの比較に基づいて、第1の発行者ノード102aの認可を検証するように構成することができる。これに加えて又はこれに代えて、APIゲートウェイ106は、アクセストークンと、APIゲートウェイ106によって発行された一連の認可されたアクセストークンとの比較に基づいて認可を検証することもできる。ある実施形態では、認可の検証が、トランザクションメッセージの送信者(例えば、第1の発行者ノード102a)を認可済み送信者として検証することに対応することができる。
【0066】
ある実施形態では、第1のトランザクション要求内のトランザクションメッセージのヘッダに一意のIDを埋め込むことができる。各トランザクション要求は、特定のシーケンス番号又は一意のIDを有するトランザクションメッセージと共に受け取ることができる。APIゲートウェイ106は、受け取られたトランザクションメッセージの一意のIDと以前のトランザクションメッセージの一意のIDとの比較に基づいて第1のトランザクション要求の真正性を検証するように構成することができる。ある実施形態では、真正性の検証が、トランザクションメッセージの完全性の検証に対応することができる。第1のトランザクション要求の真正性及び認可の検証は、ネットワーク環境100が複数のモビリティプロバイダ及び複数のMaaSプロバイダを含むシナリオで役立つことができる。
【0067】
210において、APIゲートウェイ106が、妥当性確認された第1のトランザクション要求を第1の加入者ノード108aに送信することができる。第1のトランザクション要求は、第1のトランザクション要求の妥当性確認の結果に基づいて(すなわち、第1のトランザクション要求に一連のルールを適用した結果として)第1の加入者ノード108aに送信することができる。
【0068】
212において、第1の加入者ノード108aが、妥当性確認された第1のトランザクション要求を第1のノード112aに送信することができる。第1のノード112aは、第1の加入者ノード108aから妥当性確認された第1のトランザクション要求を受け取ることができる。
【0069】
214において、第1のノード112aが、受け取られた妥当性確認された第1のトランザクション要求に基づいて、分散型台帳112の第1のノード112aに記憶されたトランザクションデータ(例えば、トランザクションデータ118)を更新することができる。第1のノード112aにおけるトランザクションデータの更新については、例えば
図4でさらに説明する。
【0070】
図3は、本開示の実施形態による、加入者ノードからのトランザクション要求に加入者ノードの情報アクセスポリシーを適用する例示的な動作を示すシーケンス図である。
図3の説明は、
図1及び
図2の要素に関連して行う。
図3には、302~308の一連の動作を示すシーケンス
図300を示しており、これらの動作は、以下に限定するわけではないが、APIゲートウェイ106、第1のAPIエージェント110a及び第1の加入者ノード108aなどの、ネットワーク環境100の様々な要素によって実行することができる。
【0071】
302において、APIゲートウェイ106が、ルーティングされる第1のトランザクション要求の妥当性を確認することができる。第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認することについては、例えば
図2の208において説明した。304において、APIゲートウェイ106が、妥当性確認された第1のトランザクション要求を第1のAPIエージェント110aに送信することができる。
【0072】
306において、第1のAPIエージェント110aが、APIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取り、妥当性確認された第1のトランザクション要求に第1の加入者ノード108aの情報アクセスポリシーを適用することができる。
【0073】
ある実施形態では、情報アクセスポリシーが、輸送サービスに関連するビジネスルール及び制約を含むことができる。限定ではなく一例として、第1の加入者ノード108aに関連する第1のノード112aが定期メンテナンス又は非定期メンテナンス中である場合には、輸送サービスに関連する第1のポリシーが、第1のAPIエージェント110aにトランザクション要求を却下又は保留するように求めることができる。同様に、トランザクション要求に関連する輸送プロバイダが輸送サービスに含まれる旅行をキャンセルした場合には、輸送サービスに関連する第2のポリシーが、第1のAPIエージェント110aにこのトランザクション要求を却下するように求めることができる。
【0074】
別の実施形態では、ビジネスルール及び制約を、第1の加入者ノード108aに関連する第1の輸送プロバイダに固有のものとすることができる。限定ではなく一例として、第1の輸送プロバイダの第1のビジネスルールは、第1の輸送プロバイダが稼動している特定の時刻又は曜日にトランザクション要求に関連する輸送サービスが提供されるように求めることができる。同様に、第1の輸送プロバイダの第2のビジネスルールは、第1の輸送プロバイダが提供する旅行サービスに関連するサービス可能な場所、原価モデル、旅行価格設定、支払いモード、サブスクリプションタイプ、販促提供物又はクーポンに関連する制約を含むことができる。第1のAPIエージェント110aは、トランザクションメッセージが第1の輸送プロバイダの情報アクセスポリシーに従っているかどうかをチェックすることができる。
【0075】
308において、第1のAPIエージェント110aが、第1のトランザクション要求が第1の輸送プロバイダの情報アクセスポリシーに従っているかどうかに基づいて、第1の加入者ノード108aに第1のトランザクション要求を送信することができる。第1の加入者ノード108aは、第1のAPIエージェント110aから第1のトランザクション要求を受け取ることができる。
【0076】
図4は、本開示の実施形態による、分散型台帳を通じてトランザクション要求を満たす一連の動作を示すシーケンス図である。
図4の説明は、
図1、
図2及び
図3の要素に関連して行う。
図4には、402~426とすることができる一連の動作を示すシーケンス
図400を示しており、これらの動作は、以下に限定するわけではないが、分散型台帳112の第1のノード112a、第1の加入者ノード108a、取引先ノード114及びコンセンサスノード116などの、ネットワーク環境100の様々な要素によって実行することができる。
【0077】
402において、第1のノード112aが第1の状態オブジェクトを記憶することができる。ある実施形態では、第1のノード112aが、(S1として示す)第1の状態オブジェクト428を、トランザクションデータを含む初期状態オブジェクトとして分散型台帳112に記憶することができる。例えば、最初に、第1の発行者ノード102aから(
図2にも示す)createメッセージを含むトランザクション要求を受け取ることができる。第1の発行者ノード102aは、createメッセージを含む第1のトランザクション要求を、MaaSベースの輸送サービスに関連する輸送プロバイダ(例えば、バス、タクシー及び航空機)の全ての関連する加入者ノードに送信することができる。第1のトランザクション要求を受け取った各加入者ノードでは、分散型台帳112のそれぞれのノードが初期状態オブジェクトを作成してそれぞれのノードに記憶することができる。
【0078】
1つの例として、状態オブジェクトは、(MaaSベースの)輸送サービスの契約の当事者(すなわち、輸送プロバイダ及びMaaSサービスプロバイダ)を識別する情報を含むことができる。状態オブジェクトは、当事者が合意できるスマートコントラクトをさらに含むことができる。スマートコントラクトは、状態オブジェクトを更新するための各トランザクション要求について、スマートコントラクトが更新を可能にするためにトランザクション要求が従わなければならないルールを強要することができる。
【0079】
例えば、これらのルールのうちの1つは、ユーザが(MaaSベースの)輸送サービス全体について行う支払いの総額を超える旅行金額を個々の輸送プロバイダが請求すべきではないと命じることができる。別のルールは、ユーザが(MaaSベースの)輸送サービス全体について行う支払いの総額から他の輸送プロバイダの旅行請求額を差し引いた後に残った差額を超える旅行金額を個々の輸送プロバイダが請求すべきではないと命じることができる。別のルールは、誤って作成された請求書がユーザに過小又は過大に旅行の請求を行わないように、旅行請求額は最小値を超えるべきであるが設定閾値金額未満とすべきであると命じることができる。ユーザ120が(MaaSベースの)輸送サービス全体について行う支払いの総額の割合分担(percentage share)に個々の輸送プロバイダが合意した場合には、別のルールが、この割合分担に基づく金額を超える金額を個々の輸送プロバイダが請求すべきではないと命じることができる。
【0080】
1つの実施形態では、状態オブジェクトが、状態特性などのトランザクションデータを含むことができる。状態特性は、支払い明細、旅行詳細、旅行状況(例えば、ユーザが利用した又は未だ利用していない旅行)、発券情報、異なる輸送プロバイダに関連する請求情報などの詳細を含むことができる。
【0081】
404において、第1の加入者ノード108aが、妥当性確認された(例えば、
図2の208において妥当性確認された)第1のトランザクション要求を第1のノード112aに送信することができる。少なくとも1つの実施形態では、第1の加入者ノード108aが、第1のノード112aにおける関連するRPCクライアントへのトランザクションコールを生成するように構成できる遠隔手続き呼出し(RPC)サーバを含むことができる。トランザクションコールは、妥当性確認された第1のトランザクション要求に含まれるトランザクションメッセージに基づいて生成することができる。例えば、トランザクションメッセージは、get-inメッセージ又はget-outメッセージに対応することができる。
【0082】
図4では、第1の加入者ノード108aを、第1のノード112a上でトランザクションを開始するためのコールを処理するように示している。しかしながら、本開示はこのように限定されるものではなく、いくつかの実施形態では、第1の加入者ノード108aが、第1のトランザクション要求に関連する同時実行制御、スレッド管理、処理リソース及び処理プロトコルに関与することもできる。これに加えて又はこれに代えて、第1の加入者ノード108aは、ユーザが取ったルートの記憶、発券情報(例えば、パス及びサブスクリプション)の管理、旅行の追跡、ユーザプロファイルの管理、ユーザの傾向/好みの管理、及び位置ベースサービスの処理に関与することもできる。ある実施形態では、ユーザの好み及びユーザプロファイルに基づいて、記憶されたルート、発券情報、追跡されたユーザの旅行及び位置ベースサービスに関連する情報をユーザへの将来的なスマートルーティングオプションの推奨に使用することができる。
【0083】
406において、第1のノード112aが、第1の状態オブジェクト428(S1)を更新して(S2として示す)第2の状態オブジェクト430を作成することができる。ある実施形態では、第1のノード112aが、第1のノード112aから第1の状態オブジェクト428(すなわち、S1)を検索し、更新済み状態オブジェクトを第2の状態オブジェクト430(すなわち、S2)として作成することができる。例えば、第1のトランザクション要求は、ユーザ120がタクシーに乗車してタクシーの旅程を開始した時に生成できるget-inメッセージを含むことができる。第1のノード112aは、初期状態オブジェクトのトランザクションデータ(例えば、状態特性)を更新することによって初期状態オブジェクト(例えば、S1として示す第1の状態オブジェクト428)を更新して、更新済み状態オブジェクト(例えば、S2として示す第2の状態オブジェクト430)を作成することができる。ある例では、第1のノード112aが、タクシーサービスプロバイダに関する詳細、そのトランザクションについてタクシーサービスプロバイダ及びMaaSプロバイダに支払うべき金額、並びにトランザクションの現在の状態などのトランザクションデータ(例えば、状態特性)を更新することができる。現在の状態は、例えばユーザ120によって利用されたサービスの指示、及び未だ利用されていないサービスの指示を含むことができる。
【0084】
408において、第1のノード112aが、第1のトランザクション要求に関連するトランザクション434aを構築することができる。例えば、第1のノード112aは、トランザクション434aを構築するためにトランザクションビルダフォームを生成し、このトランザクションビルダフォームに第1の状態オブジェクト428(すなわち、S1)、コマンド432及び第2の状態オブジェクト430(すなわち、S2)を追加することができる。コマンド432は、第1の状態オブジェクト428(すなわち、S1)から第2の状態オブジェクト430(すなわち、S2)への遷移に関連する命令又はコードを含むことができる。各状態オブジェクトは、関連するスマートコントラクトを含むことができる。例えば、第1の状態オブジェクト428(すなわち、S1)は(C1として示す)第1のスマートコントラクト428aを含むことができ、第2の状態オブジェクト430(すなわち、S2)は(C2として示す)第2のスマートコントラクト430aを含むことができる。
【0085】
410において、第1のノード112aが、構築されたトランザクション434aに署名することができる。ある実施形態では、第1のノード112aが、構築されたトランザクション434aに第1のノード112a(又は第1の輸送プロバイダ)を代表して(Sig1として示す)第1の署名436を添付して署名済みトランザクション434bを作成することができる。
【0086】
412において、第1のノード112aが、署名済みトランザクション434bを検証することができる。ある実施形態では、第1のノード112aが、第1のスマートコントラクト428a及び第2のスマートコントラクト430aの両方を実行することができる。署名済みトランザクション434bは、第1のスマートコントラクト428a(すなわち、C1)を実行した第1の結果が第2のスマートコントラクト430a(すなわち、C2)を実行した第2の結果に一致するとの判定に基づいて検証することができる。
【0087】
414において、第1のノード112aが、検証されたトランザクション434bを取引先ノード114(MaaSプロバイダノード)に送信することができる。取引先ノード114は、第1のノード112aから検証された署名済みトランザクション434bを受け取ることができる。
【0088】
416において、取引先ノード114が、検証されたトランザクション434bに連署(counter-sign)することができる。ある実施形態では、取引先ノード114が、検証されたトランザクション434bに取引先ノード114を代表して(Sig2として示す)第2の署名438を添付して連署済みトランザクション434cを作成することができる。
【0089】
418において、取引先ノード114が、連署済みトランザクション434cを第1のノード112aに送信することができる。第1の加入者ノード108aは、取引先ノード114から連署済みトランザクション434cを受け取ることができる。
【0090】
420において、第1のノード112aが、連署済みトランザクション434cをコンセンサスノード116に送信することができる。コンセンサスノード116は、第1のノード112aから連署済みトランザクション434cを受け取ることができる。
【0091】
422において、コンセンサスノード116が、連署済みトランザクション434cを公証することができる。ある実施形態では、コンセンサスノード116が、連署済みトランザクション434cにコンセンサスノード116を代表して(Sig3として示す)第3の署名440を添付して公証済みトランザクション434dを作成することができる。
【0092】
424において、コンセンサスノード116が、公証済みトランザクション434dを第1のノード112aに送信することができる。第1のノード112aは、コンセンサスノード116から公証済みトランザクション434dを受け取ることができる。
【0093】
426において、第1のノード112aが、公証済みトランザクション434dを分散型台帳112の第1のノード112a上にレコードとして記憶して、トランザクションデータの更新を分散型台帳112上に記録することができる。ある実施形態では、公証済みトランザクション434dが、第1のノード112a及び取引先ノード114がアクセスできる更新済みトランザクションデータを含むことができる。例えば、トランザクションデータは、輸送サービスの発券情報、サブスクリプション情報、支払情報、収益分配情報又は輸送サービス情報のうちの1つ又は2つ以上に関連する状態特性を含むことができる。MaaSプロバイダは、更新済みトランザクションデータ内の収益分配情報を使用して輸送プロバイダに対する支払いを精算することができる。
【0094】
ある実施形態では、分散型台帳112のノードが、トランザクションに(チェックサム、又はノードに知られている公開鍵/秘密鍵に基づく)デジタル署名又は暗号署名を添付することによってトランザクションに署名することができる。例えば、コンセンサスノード116は、連署済みトランザクション434cにコンセンサスノード116の秘密鍵に関連するデジタル署名を添付することによって連署済みトランザクション434cを公証することができる。コンセンサスノード116のデジタル署名は、コンセンサスノード116の公開鍵を有するいずれかのノードが検証することができる。
【0095】
1又は2以上の実施形態では、取引先ノード114及びコンセンサスノード116をクラウドサーバ又はエッジノード上に実装することができる。MaaSプロバイダ(すなわち、MaaS会社)は、取引先ノード114を使用して、1又は2以上の輸送プロバイダによって提供される輸送サービスに関連するトランザクションを集約することができる。各加入者ノード及び分散型台帳112の対応するノードは、対応する輸送プロバイダに関連する輸送プロバイダノードを共に構成することができる。輸送プロバイダノードは、通信設備のITインフラのクラウドサーバ又はエッジノード上に実装することができる。これにより、このようなノードがユーザトラフィック又はトランザクショントラフィックの近傍に存在することに起因してトランザクションスループットの向上に役立つことができる。
【0096】
図4には、単一のトランザクション要求によって第1の状態オブジェクト428を更新するための402~426の一連の動作を示している。典型的なMaaSベースの輸送サービスのフルフィルメントでは、輸送プロバイダのそれぞれの加入者ノードに異なる発行者ノードを介して一連のトランザクション要求を提供し、これらの各輸送プロバイダが、分散型台帳112のそれぞれのノード上でトランザクションを呼び出して402~426の一連の動作を繰り返すことによって(第2の状態オブジェクト430などの)以前に更新済みの状態オブジェクトを更新することができる。
【0097】
図5は、本開示の実施形態による、加入者ノードの様々な動作状態についてのトランザクション要求の処理に関連する一連の動作を示すシーケンス図である。
図5の説明は、
図1、
図2、
図3及び
図4の要素に関連して行う。
図4には、502~510の一連の動作を示すシーケンス
図400を示しており、これらの一連の動作は、以下に限定するわけではないが、APIゲートウェイ106、第1のAPIエージェント110a及び第1の加入者ノード108aなどの、ネットワーク環境100の様々な要素によって実行することができる。
【0098】
502において、APIゲートウェイ106が、メッセージブローカ装置104から(
図2の206においてルーティングされた)第1のトランザクション要求を受け取ることができる。第1のトランザクション要求は、メッセージブローカ装置104がAPIゲートウェイ106を介して第1の輸送プロバイダの第1の加入者ノード108aにルーティングすることができる。
【0099】
504において、第1の加入者ノード108aが、その動作状態を第1のAPIエージェント110aに送信することができる。いくつかの実施形態では、第1のAPIエージェント110aが、第1の加入者ノード108aの動作状態を継続的又は定期的にモニタして、第1の加入者ノード108aの動作状態を記憶することができる。動作状態は、第1の加入者ノード108aがアクティブな状態にあるか、それとも非アクティブな状態にあるかを示すことができる情報を含むことができる。第1の加入者ノード108aが非アクティブな状態にある場合、動作状態内の情報は、第1の加入者ノード108aの定期メンテナンス、突発的メンテナンス又は非定期メンテナンスなどの非アクティブな状態の原因/条件を示すこともできる。例えば、タクシーサービスプロバイダに関連する加入者ノードが、サーバファームウェアのアップグレード又はネットワーク障害に起因して非アクティブな状態の場合がある。この加入者ノードは、分散型台帳112の関連するノードの停止時間に起因して非アクティブな状態の場合もある。
【0100】
506において、第1のAPIエージェント110aが、APIゲートウェイ106に第1の加入者ノード108aの動作状態を送信することができる。ある実施形態では、第1の加入者ノード108aの動作状態が非アクティブな状態であるとの判定に基づいて動作状態を送信することができる。APIゲートウェイ106は、複数の加入者ノード108のうちの他の加入者ノードの動作状態を受け取ることもできる。
【0101】
508において、APIゲートウェイ106が、第1の加入者ノード108aの動作状態に基づいて第1のトランザクション要求を保留することができる。例えば、定期又は非定期メンテナンスに起因して第1の加入者ノード108aの動作状態が非アクティブな状態にある場合、APIゲートウェイ106は第1のトランザクション要求を保留又は記憶することができる。いくつかの実施形態では、ほとんどの又は全てのノードの動作状態が非アクティブである場合、APIゲートウェイ106は、他の全ての発行者ノードからのさらなるトランザクション要求を保留又は却下し、このような発行者ノードの各々の動作状態が変化するまでさらなるトランザクション要求の発行を停止するように各ノードに個別に通知することができる。
【0102】
510において、第1の加入者ノード108aが、その更新された動作状態を第1のAPIエージェント110aに送信することができる。512において、第1のAPIエージェント110aが、第1の加入者ノード108aの更新された動作状態をAPIゲートウェイ106に送信することができる。
【0103】
514において、APIゲートウェイ106が、第1の加入者ノード108aの更新された動作状態に基づいて、保留(又は記憶)された第1のトランザクション要求を第1の加入者ノード108aにルーティング(又は再ルーティング)することができる。例えば、更新された動作状態がアクティブな状態であると判定された場合、APIゲートウェイ106は、第1のトランザクション要求を第1の加入者ノード108aに再ルーティングすることができる。
【0104】
APIゲートウェイ106は、加入者ノードの非アクティブな状態中にはトランザクション要求を保留し、加入者ノードが動作的にアクティブになった時に加入者ノードにトランザクション要求を再ルーティングするので、加入者ノードの計画的な、計画外の又は突発的なメンテナンスにもかかわらず加入者ノードへのトランザクション要求の配布が保証される。いくつかの実施形態では、複数の加入者ノードが単一の輸送プロバイダに関連することができる。標的加入者ノードが動作的に非アクティブな状態にある場合、APIゲートウェイ106は、動作的にアクティブな状態であると考えられる同じ輸送プロバイダの別の加入者ノードに(元々は標的加入者ノードのために発行された)トランザクション要求を再ルーティングすることができる。
【0105】
いくつかの実施形態では、APIゲートウェイ106が、第1の加入者ノード108aの動作状態にかかわらず第1のトランザクション要求を第1のAPIエージェント110aに配布することができる。このような場合、第1のAPIエージェント110aは、第1の加入者ノード108aの現在の動作状態がアクティブな状態に変化するまで、第1の加入者ノード108aからの第1のトランザクション要求を保留している間に第1の加入者ノード108aの動作状態をモニタすることができる。第1のAPIエージェント110aは、第1の加入者ノード108aが動作的にアクティブな状態になった時に、保留していた第1のトランザクション要求を第1の加入者ノード108aに転送することができる。
【0106】
図6は、本開示の実施形態による、加入者ノード、分散型台帳のノード、分散型台帳に関連する取引先ノード及び分散型台帳に関連するコンセンサスノードの例示的な実装を示すブロック図である。
図6の説明は、
図1、
図2、
図3、
図4及び
図5の要素に関連して行う。
図6には、第1の加入者ノード108a、分散型台帳112の第1のノード112a、取引先ノード114及びコンセンサスノード116のブロック
図600を示す。
【0107】
図6では、第1の発行者ノード102aが、第1のトランザクション要求をMQTTメッセージとしてメッセージブローカ装置104に送信できるMQTT発行者(すなわち、MQTTクライアント)に対応することができる。メッセージブローカ装置104は、APIゲートウェイ106を介して第1のトランザクション要求を第1の加入者ノード108aにルーティングできるMQTTメッセージブローカに対応することができる。第1の加入者ノード108aは、MQTTベースのメッセージングプロトコルに従って第1のトランザクション要求を受け取ることができる(やはりMQTTクライアントである)MQTT加入者とすることができる。
【0108】
第1の加入者ノード108aは、それぞれJavaベースのプラットフォーム606上で実行できるMQTT加入者モジュール602及び遠隔手続き呼出し(RPC)クライアントモジュール604(例えば、非同期RPCクライアント)を含むことができる。MQTT加入者モジュール602は、第1のトランザクション要求(すなわち、MQTTメッセージ)を受け取り、RPCクライアントモジュール604への受け取られた第1のトランザクション要求を、1又は2以上のRPCコールを通じて分散型台帳112の第1のノード112aに転送することができる。
【0109】
ある実施形態では、分散型台帳112の第1のノード112aが、それぞれJavaプラットフォームベースのCordaブロックチェーン612上で実行できるRPCサーバモジュール608及びCordaフローモジュール610を含むことができる。第1のノード112aでは、RPCサーバモジュール608が、RPCクライアントモジュール604の1又は2以上のRPCコールを通じてRPCクライアントモジュール604から第1のトランザクション要求を受け取ることができる。分散型台帳112の第1のノード112aは、Postgres(ポストグレス)ベースのデータベースプラットフォーム616上で実行できるリレーショナルデータベース(RDB)モジュール614を含むことができる。RDBモジュール614は、Java Database Connectivity(JDBC)APIに従って、RPCサーバモジュール608からデータベースクエリを受け取ることができる。
【0110】
ある実施形態では、取引先ノード114も、それぞれが第1のノード112aのモジュールに類似できるモジュールを含むことができる。
図6には示していないが、コンセンサスノード116も、それぞれが第1のノード112aのモジュールに類似できるモジュールを含むことができる。
【0111】
動作中、第1のノード112aは、
図4の402で説明したように第1の状態オブジェクト428(すなわち、S1)を第1のノード112aのRDBモジュール614に記憶することができる。第1の加入者ノード108aは、(
図4の404で説明したように)メッセージブローカ装置104からの(MQTT加入者モジュール602がMQTTメッセージとして受け取った)第1のトランザクション要求を(APIゲートウェイ106を介して)第1のノード112aに送信するように構成することができる。一例として、第1の加入者ノード108aのRPCクライアントモジュール604は、受け取られた第1のトランザクション要求を1又は2以上のRPCコールを通じてRPCサーバモジュール608に送信することができ、RPCサーバモジュール608は、第1のトランザクション要求を第1のノード112aのCordaフローモジュール610に転送することができる。
【0112】
最初に、第1のノード112aのCordaフローモジュール610は、
図4の406で説明したように第1の状態オブジェクト428(すなわち、S1)を更新して第2の状態オブジェクト430(すなわち、S2)を作成することができる。その後、第1のノード112aのCordaフローモジュール610は、(
図4の408で説明したように)第1のトランザクション要求に基づいてトランザクション434aを構築し、(
図4の410で説明したように)構築されたトランザクション434aに署名して署名済みトランザクション434bを生成して、(
図4の412で説明したように)署名済みトランザクション434bを検証することができる。Cordaフローモジュール610は、(
図4の414で説明したように)検証済みトランザクション434bを取引先ノード114に送信することができる。取引先ノード114のCordaフローモジュールは、(
図4の416で説明したように)検証済みトランザクション434bに連署して連署済みトランザクション434cを生成し、(
図4の418で説明したように)連署済みトランザクション434cを第1のノード112aに送信することができる。第1のノード112aのCordaフローモジュール610は、(
図4の420で説明したように)連署済みトランザクション434cをコンセンサスノード116に送信することができる。コンセンサスノード116のCordaフローモジュールは、(
図4で説明したように)連署済みトランザクション434cを公証して公証済みトランザクション434dを作成し、(
図4の424で説明したように)公証済みトランザクション434dを第1のノード112aに返送することができる。第1のノード112aのCordaフローモジュール610は、第1のノード112aのRDBモジュール614を通じて公証済みトランザクション434dをトランザクションレコードとして記憶することができる。公証済みトランザクション434dは、第1のノード112a及び取引先ノード114がアクセスできる更新済みトランザクションデータを含むことができる。
【0113】
当業者であれば、
図6の各モジュールは、
図6に示すそれぞれのモジュールの定義された一連の動作を実行するソフトウェアプログラム、又はこのようなソフトウェアプログラムが実行される回路に対応することができると理解するであろう。
【0114】
図7は、本開示の実施形態による例示的なメッセージブローカ装置のブロック図である。
図7の説明は、
図1、
図2、
図3、
図4、
図5及び
図6の要素に関連して行う。
図7には、
図1のメッセージブローカ装置104のブロック
図700を示す。メッセージブローカ装置104は、回路702と、メモリ704と、入力/出力(I/O)装置706と、ネットワークインターフェイス708とを含む。メッセージブローカ装置104上には、APIゲートウェイ106をホストすることができる。
【0115】
回路702は、ネットワークインターフェイス708を使用して複数の発行者ノード102及び複数の加入者ノード108と通信するように構成することができる。回路702は、メッセージブローカ装置104及びAPIゲートウェイ106によって実行されるべき動作のための命令を実行するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。回路702の実装例としては、中央処理装置(CPU)、x86ベースのプロセッサ、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサ、グラフィカルプロセッシングユニット(GPU)、コプロセッサ、その他のプロセッサ、及び/又はこれらの組み合わせを挙げることができる。
【0116】
メモリ704は、回路702が実行できる命令を記憶するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。メモリ704の実装例としては、以下に限定するわけではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ハードディスクドライブ(HDD)、及び/又はセキュアデジタル(SD)カードを挙げることができる。
【0117】
I/O装置706は、入力を受け取り、受け取られた入力に基づいて出力を提供するように構成できる好適なロジック、回路及び/又はインターフェイスを含むことができる。I/O装置706は、回路702と通信するように構成できる様々な入力及び出力装置を含むことができる。I/O装置706の例としては、以下に限定するわけではないが、タッチ画面、キーボード、マウス、ジョイスティック、ディスプレイ装置、マイク、又はスピーカを挙げることができる。
【0118】
ネットワークインターフェイス708は、1又は2以上の通信ネットワーク(図示せず)を介してメッセージブローカ装置104、複数の発行者ノード102及び複数の加入者ノード108間の通信を可能にするように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ネットワークインターフェイス708は、1又は2以上の通信ネットワークとの有線又は無線通信をサポートする既知の技術を実装することができる。
【0119】
ネットワークインターフェイス708は、以下に限定するわけではないが、アンテナ、周波数変調(FM)トランシーバ、無線周波数(RF)トランシーバ、1又は2以上の増幅器、チューナ、1又は2以上の発振器、デジタルシグナルプロセッサ、コーダ-デコーダ(CODEC)チップセット、加入者識別モジュール(SIM)カード、及び/又はローカルバッファを含むことができる。ネットワークインターフェイス708は、インターネット、イントラネットなどのネットワーク、及び/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)などの無線ネットワークと無線通信を介して通信することができる。無線通信は、ロングタームエボリューション(LTE)、グローバルシステムフォーモバイルコミュニケーション(GSM)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(W-CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、ワイヤレスフィディリティー(Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、及び/又はIEEE 802.11n)、ボイスオーバーインターネットプロトコル(VoIP)、Wi-MAX、電子メール用プロトコル、インスタントメッセージング及び/又はショートメッセージサービス(SMS)などの複数の通信規格、プロトコル及び技術のうちのいずれかを使用することができる。
【0120】
図1、
図2、
図3、
図4、
図5及び
図6で説明したようなメッセージブローカ装置104によって実行される機能又は動作は、回路702によって実行することができる。回路702によって実行される動作については、例えば
図1、
図2、
図3、
図4、
図5及び
図6で詳細に説明している。
【0121】
図8は、本開示の実施形態による例示的な加入者ノードのブロック図である。
図8の説明は、
図1、
図2、
図3、
図4、
図5、
図6及び
図7の要素に関連して行う。
図8には、第1の加入者ノード108aのブロック
図800を示す。第1の加入者ノード108aは、回路802と、メモリ804と、I/O装置806と、ネットワークインターフェイス808とを含む。第1の加入者ノード108aは、第1の加入者ノード108a上にホストできる第1のAPIエージェント110aをさらに含むことができる。
【0122】
回路802は、ネットワークインターフェイス808を使用してメッセージブローカ装置104及び第1のノード112aと通信するように構成することができる。回路802は、第1の加入者ノード108a及び第1のAPIエージェント110aによって実行されるべき動作のための命令を実行するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。回路802の実装例としては、CPU、x86ベースのプロセッサ、RISCプロセッサ、ASICプロセッサ、CISCプロセッサ、GPU、コプロセッサ、又はこれらの組み合わせを挙げることができる。
【0123】
メモリ804は、回路802が実行できる命令を記憶するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。メモリ804の実装例としては、以下に限定するわけではないが、RAM、ROM、HDD及び/又はSDカードを挙げることができる。
【0124】
I/O装置806は、入力を受け取り、受け取られた入力に基づいて出力を提供するように構成できる好適なロジック、回路及び/又はインターフェイスを含むことができる。I/O装置806は、回路802と通信するように構成できる様々な入力及び出力装置を含むことができる。I/O装置806の例としては、以下に限定するわけではないが、タッチ画面、キーボード、マウス、ジョイスティック、ディスプレイ装置、マイク及びスピーカを挙げることができる。
【0125】
ネットワークインターフェイス808は、1又は2以上の通信ネットワークを介して第1の加入者ノード108a、メッセージブローカ装置104及び第1のノード112a間の通信を可能にするように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ネットワークインターフェイス808は、1又は2以上の通信ネットワークとの有線又は無線通信をサポートする既知の技術を実装することができる。ネットワークインターフェイス808の機能は、例えば
図7で説明したようなネットワークインターフェイス708の機能と同じものとすることができる。従って本開示では、簡潔にするためにネットワークインターフェイス808の説明については省略する。
【0126】
図1、
図2、
図3、
図4、
図5及び
図6で説明したような第1の加入者ノード108aによって実行される機能又は動作は、回路802によって実行することができる。回路802によって実行される動作については、例えば
図1、
図2、
図3、
図4、
図5及び
図6で詳細に説明している。
【0127】
図9は、本開示の実施形態による例示的な発行者ノードのブロック図である。
図9の説明は、
図1、
図2、
図3、
図4、
図5、
図6、
図7及び
図8の要素に関連して行う。
図9には、第1の発行者ノード102aのブロック
図900を示す。第1の発行者ノード102aは、回路902と、メモリ904と、I/O装置906と、ネットワークインターフェイス912とを含む。I/O装置906は、ディスプレイ装置908及びUI910を含むことができる。
【0128】
回路902は、ネットワークインターフェイス912を使用してメッセージブローカ装置104と通信するように構成することができる。回路902は、第1の発行者ノード102aによって実行されるべき動作のための命令を実行するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。回路902の実装例としては、CPU、x86ベースのプロセッサ、RISCプロセッサ、ASICプロセッサ、CISCプロセッサ、GPU、コプロセッサ、又はこれらの組み合わせを挙げることができる。
【0129】
メモリ904は、回路902が実行できる命令を記憶するように構成できる好適なロジック、回路、コード及び/又はインターフェイスを含むことができる。メモリ904の実装例としては、以下に限定するわけではないが、RAM、ROM、HDD及び/又はSDカードを挙げることができる。
【0130】
I/O装置906は、入力を受け取り、受け取られた入力に基づいて出力を提供するように構成できる好適なロジック、回路及び/又はインターフェイスを含むことができる。I/O装置906は、回路902と通信するように構成できる様々な入力及び出力装置を含むことができる。I/O装置906の例としては、以下に限定するわけではないが、タッチ画面、キーボード、マウス、ジョイスティック、ディスプレイ装置(例えば、ディスプレイ装置908)、マイク及びスピーカを挙げることができる。
【0131】
ディスプレイ装置908は、(ユーザ120などの)ユーザが新たな輸送サービスの要求、輸送サービスの開始又は輸送サービスの終了を行えるようにするUI910を表示するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。例えば、ディスプレイ装置908は、POSのディスプレイ、スマートフォン又は改札機に対応することができる。
【0132】
ネットワークインターフェイス912は、第1の発行者ノード102aとメッセージブローカ装置104との間の通信を可能にするように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ネットワークインターフェイス912は、通信ネットワークとの有線又は無線通信をサポートする既知の技術を実装することができる。ネットワークインターフェイス912の機能は、例えば
図7で説明したようなネットワークインターフェイス708の機能と同じものとすることができる。従って本開示では、簡潔にするためにネットワークインターフェイス912の説明については省略する。
【0133】
図1、
図2、
図3、
図4、
図5及び
図6で説明したような第1の発行者ノード102aによって実行される機能又は動作は、回路902によって実行することができる。回路902によって実行される動作については、例えば
図1、
図2、
図3、
図4、
図5及び
図6で詳細に説明している。
【0134】
図10は、本開示の実施形態による例示的なMaaSベースのシステムのブロック図である。
図10の説明は、
図1、
図2、
図3、
図4、
図5、
図6、
図7、
図8及び
図9の要素に関連して行う。
図10にはシステム1002のブロック
図1000を示す。システム1002は、複数の発行者ノード102と、メッセージブローカ装置104と、複数の加入者ノード108とを含む。メッセージブローカ装置104はAPIゲートウェイ106をホストすることができ、複数の加入者ノード108の各々は、複数のAPIエージェント110のうちの対応するAPIエージェントをホストすることができる。システム1002の各エンティティの動作については、例えば
図1、
図2、
図3、
図4、
図5、
図6、
図7、
図8及び
図9で詳細に説明している。
【0135】
図11は、本開示の実施形態によるセキュアなトランザクション処理のための例示的な方法を示すフローチャートである。
図11の説明は、
図1、
図2、
図3、
図4、
図5、
図6、
図7、
図8、
図9及び
図10の要素に関連して行う。
図11にはフローチャート1100を示す。フローチャート1100の例示的な方法は、例えば
図1の第1のノード112a、メッセージブローカ装置104、APIゲートウェイ106及び第1の加入者ノード108aなどのいずれかのコンピュータシステムによって実行することができる。フローチャート1100の例示的な方法は、1102から開始して1104に進むことができる。
【0136】
1104において、createメッセージを含む初期トランザクション要求を受け取ることができる。ある実施形態では、第1の加入者ノード108aを、第1の発行者ノード102aから初期トランザクション要求を受け取るように構成することができる。初期トランザクション要求は、輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクト428(すなわち、S1)を作成するためのcreateメッセージを含むことができる。ある実施形態では、1108~1114の動作に従って初期トランザクション要求を受け取り、その後に妥当性確認することができる。妥当性確認後、第1の加入者ノード108aは妥当性確認された初期トランザクション要求を受け取り、妥当性確認された初期トランザクション要求を、1106で説明するようなユーザ120の新たな輸送サービスのためのレコードのインスタンスの記憶及び作成のために分散型台帳112の第1のノード112aに送信することができる。
【0137】
1106において、輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクト428(すなわち、S1)を記憶することができる。ある実施形態では、第1の加入者ノード108aに関連することができる分散型台帳112の第1のノード112aを、第1の状態オブジェクト428(すなわち、S1)を記憶するように構成することができる。第1のノード112aは、新たな輸送サービスのためのcreateメッセージを含む初期トランザクション要求を受け取り、ユーザ120の新たな輸送サービスのための新規レコードを第1のノード112aにおいて作成することができる。第1のノード112aにおける新規レコードは、第1の状態オブジェクト428(すなわち、S1)に対応することができる。第1の状態オブジェクト428の詳細については、例えば
図4で説明した。
【0138】
1108において、第1の輸送の第1の発行者ノード102aから輸送サービスに関連する第1のトランザクション要求を受け取ることができる。ある実施形態では、メッセージブローカ装置104を、第1の発行者ノード102aから第1のトランザクション要求を受け取るように構成することができる。
【0139】
1110において、APIゲートウェイ106を介して第1の輸送プロバイダの第1の加入者ノード108aに第1のトランザクション要求をルーティングすることができる。ある実施形態では、メッセージブローカ装置104を、APIゲートウェイ106を介して第1の加入者ノード108aに第1のトランザクション要求をルーティングするように構成することができる。
【0140】
1112において、受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、ルーティングされた第1のトランザクション要求の妥当性を確認することができる。ある実施形態では、APIゲートウェイ106を、受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、ルーティングされた第1のトランザクション要求の妥当性を確認するように構成することができる。一連のセキュリティルールに基づく受け取られた第1のトランザクション要求のセキュリティフィルタリングについては、例えば
図2で説明した。
【0141】
1114において、第1の加入者ノード108aを介して、APIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取ることができる。ある実施形態では、分散型台帳112の第1のノード112aを、第1の加入者ノード108aを介してAPIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取るように構成することができる。
【0142】
1116において、受け取られた第1のトランザクション要求に基づいて、第1のノード112aに記憶されたトランザクションデータを更新することができる。ある実施形態では、第1のノード112aを、受け取られた第1のトランザクション要求に基づいて、第1のノード112aに記憶されたトランザクションデータを更新するように構成することができる。ある実施形態では、第1のノード112aが、初期状態オブジェクト(例えば、第1の状態オブジェクト428)を更新済み状態オブジェクト(例えば、第2の状態オブジェクト430)に更新することができる。例えば、更新済み状態オブジェクトは、受け取られたトランザクション要求に基づく、初期状態オブジェクトに含まれる状態特性の更新に対応することができる。第1のノード112aに記憶されたトランザクションデータの更新については、例えば
図4で説明した。制御は、さらに終了に進むことができる。
【0143】
フローチャート1100を1104、1106、1108、1110、1112、1114及び1116などの個々の動作として説明したが、本開示はこのように限定されるものではない。従って、いくつかの実施形態では、開示する実施形態の本質を損なうことなく、このような個別の動作を特定の実装に応じてさらなる動作にさらに分割し、より少ない動作に組み合わせ、又は削除することができる。
【0144】
本開示の例示的な態様は、複数の輸送プロバイダのうちの(第1の発行者ノード102aなどの)第1の輸送プロバイダの第1の発行者ノードから輸送サービスに関連する第1のトランザクション要求を受け取るように構成された(回路202などの)回路を含む(メッセージブローカ装置104などの)メッセージブローカ装置を含むことができるシステムを含むことができる。回路202は、メッセージブローカ装置104上にホストされた(APIゲートウェイ106などの)APIゲートウェイを介して、受け取られた第1のトランザクション要求に関連する第1の輸送プロバイダの(第1の加入者ノード108aなどの)第1の加入者ノードに第1のトランザクション要求をルーティングするように構成することができる。APIゲートウェイ106は、受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。第1の加入者ノード108aは、(分散型台帳112などの)分散型台帳の(第1のノード112aなどの)第1のノードに関連することができる。第1のノード112aは、輸送サービスに関連するトランザクションデータを含むことができる(第1の状態オブジェクト428などの)第1の状態オブジェクトを記憶するように構成することができる。第1のノード112aは、第1の加入者ノード108aを介してAPIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取り、受け取られた第1のトランザクション要求に基づいて、第1のノード112aに記憶されたトランザクションデータを更新するように構成することができる。
【0145】
ある実施形態では、第1の発行者ノード102aを、以下に限定するわけではないが、第1の輸送プロバイダの乗車予約アプリケーション、改札機又は販売時点情報管理(PoS)のうちの1つとすることができる。
【0146】
ある実施形態では、分散型台帳112が、モビリティアズアサービス(MaaS)プロバイダに関連するMaaSプロバイダノードを含むことができる。システムは、複数のMaaSプロバイダに関連する複数の分散型台帳をさらに含むことができる。複数の分散型台帳の各々は、対応するMaaSプロバイダのMaaSプロバイダノードを含むことができる。
【0147】
ある実施形態では、APIゲートウェイ106を、ルーティングされる第1のトランザクション要求が有効なインターネットプロトコル(IP)アドレス範囲内のIPアドレスに関連するとの判定に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するようにさらに構成することができる。さらに、APIゲートウェイ106は、ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するとの判定に基づいて、ルーティングされる第1のトランザクション要求を却下するように構成することができる。また、APIゲートウェイ106は、第1の発行者ノードがボットであるとの判定に基づいて、ルーティングされる第1のトランザクション要求を却下するように構成することもできる。APIゲートウェイ106は、ルーティングされる第1のトランザクション要求に有効な署名が行われているとの判定に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。APIゲートウェイ106は、第1の発行者ノード102aの真正性及び認可の検証に基づいて、ルーティングされる第1のトランザクション要求の妥当性を確認するように構成することができる。
【0148】
ある実施形態では、一連のセキュリティルールが、ルーティングされる第1のトランザクション要求が有効なインターネットプロトコル(IP)アドレス範囲内のIPアドレスに関連するかどうかを判定するための第1のルール、ルーティングされる第1のトランザクション要求がサイバー攻撃に関連する悪意ある挙動に対応するかどうかを判定するための第2のルール、第1の発行者ノード102aがボットであるかどうかを判定するための第3のルール、ルーティングされる第1のトランザクション要求に有効な署名が行われているかどうかを判定するための第4のルール、並びにルーティングされる第1のトランザクション要求の妥当性を第1の発行者ノード102aの真正性及び認可の検証に基づいて確認するための第5のルールのうちの1つ又は2つ以上を含むことができる。
【0149】
ある実施形態では、システムが、第1の加入者ノード108a上にホストされた(第1のAPIエージェント110aなどの)APIエージェントをさらに含むことができる。APIゲートウェイ106は、第1のAPIエージェント110aから第1の加入者ノード108aに関連する動作状態情報を受け取るように構成することができる。受け取られた動作状態は、第1の加入者ノード108aの定期メンテナンス、突発的メンテナンス、又は非定期メンテナンスのうちの1つを示すことができる。APIゲートウェイ106は、受け取られた動作状態に基づいて、ルーティングされる第1のトランザクション要求を保留するように構成することができる。或いは、APIゲートウェイ106は、第1の加入者ノード108aの動作状態がアクティブであるとの判定に基づいて、第1のトランザクション要求を第1の加入者ノード108aに再ルーティングするように構成することができる。
【0150】
ある実施形態では、第1のAPIエージェント110aを、APIゲートウェイ106を介して、妥当性確認された第1のトランザクション要求を受け取るように構成することができる。第1のAPIエージェント110aは、妥当性確認された第1のトランザクション要求が第1の加入者ノード108aの情報アクセスポリシーに従っているとの判定に基づいて、妥当性確認された第1のトランザクション要求を第1の加入者ノード108aに転送するように構成することができる。情報アクセスポリシーは、輸送サービスに関連するビジネスルール及び制約を含むことができる。
【0151】
ある実施形態では、第1のノード112aを、第1の加入者ノード108aを介して、APIゲートウェイ106から妥当性確認された第1のトランザクション要求を受け取り、受け取られた第1のトランザクション要求内のトランザクションメッセージに基づいて、第1の状態オブジェクトを更新して(第2の状態オブジェクト430などの)第2の状態オブジェクトを出力するように構成することができる。第1のノード112aは、第1の状態オブジェクト及び第2の状態オブジェクトを含むトランザクションを構築するようにさらに構成することができる。
【0152】
第1のノード112aは、構築されたトランザクション434aに署名し、署名済みトランザクション434bを検証するようにさらに構成することができる。署名済みトランザクション434bの検証は、第1の状態オブジェクト(428)に含まれる第1のスマートコントラクトを実行した第1の結果が、第2の状態オブジェクト430に含まれる第2のスマートコントラクトを実行した第2の結果に一致するとの判定に基づくことができる。第1のノード112aは、検証済みトランザクションを(取引先ノード114などの)取引先ノードと共有するように構成することができる。
【0153】
ある実施形態では、取引先ノード114を、共有されたトランザクションに連署して、連署済みトランザクション434cを第1のノード112aと共有するように構成される。ある実施形態では、システムが、第1のノード112aから連署済みトランザクション434cを受け取り、連署済みトランザクション434cを公証してコンセンサスノード116の署名を含め、公証済みトランザクション434dを第1のノード112aと共有するように構成できる(コンセンサスノード116などの)コンセンサスノードをさらに含むことができる。ある実施形態では、第1のノード112aを、公証済みトランザクション434dを記憶するように構成することができる。公証済みトランザクション434dは、分散型台帳112の第1のノード112a及び取引先ノード114がアクセスできる更新済みトランザクションデータを含むことができる。
【0154】
ある実施形態では、受け取られた第1のトランザクション要求が、(ユーザ120などの)ユーザの輸送サービスの作成に関連するcreateメッセージ、ユーザ120の輸送サービスの開始に関連するget-inメッセージ、又は輸送サービスの完了に関連するget-outメッセージのうちの1つを含むことができる。トランザクションデータは、輸送サービスに関連する発券情報、サブスクリプション情報、支払情報、収益分配情報、又は輸送サービス情報のうちの1つ又は2つ以上に関連することができる。
【0155】
本開示は、ハードウェアで実現することも、又はハードウェアとソフトウェアとの組み合わせで実現することもできる。本開示は、少なくとも1つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアとの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能も実行する集積回路の一部を含むハードウェアで実現することができる。
【0156】
本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムとは、情報処理能力を有するシステムに特定の機能を直接的に、或いはa)別の言語、コード又は表記法への変換、b)異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、あらゆる言語、コード又は表記法におけるあらゆる表現を意味する。
【0157】
いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することもできると理解するであろう。また、本開示の範囲から逸脱することなく、特定の状況又は内容を本開示の教示に適合させるように多くの修正を行うこともできる。従って、本開示は、開示した特定の実施形態に限定されるものではなく、添付の特許請求の範囲内に収まる全ての実施形態を含むように意図される。
【符号の説明】
【0158】
1102 開始
1104 輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクトを作成するためのcreateメッセージを含む初期トランザクション要求を受信
1106 輸送サービスに関連するトランザクションデータを含む第1の状態オブジェクトを分散型台帳の第1のノード上に記憶
1108 メッセージブローカ装置が、複数の輸送プロバイダのうちの第1の輸送プロバイダの第1の発行者ノードから輸送サービスに関連する第1のトランザクション要求を受信
1110 メッセージブローカ装置が、APIゲートウェイを介して第1のトランザクション要求を第1の輸送プロバイダの第1の加入者ノードにルーティング
1112 APIゲートウェイが、受け取られた第1のトランザクション要求に一連のセキュリティルールを適用することに基づいて、ルーティングされた第1のトランザクション要求の妥当性を確認
1114 第1のノードが、第1の加入者ノードを介してAPIゲートウェイから妥当性確認された第1のトランザクション要求を受信
1116 第1のノードが、受け取られた第1のトランザクション要求に基づいて、第1のノードに記憶されたトランザクションデータを更新
【国際調査報告】