図面 (/)

技術 分散トランザクション処理及び認証システム

出願人 カリプトンインターナショナルリミテッド
発明者 デイビス、ラーズ
出願日 2017年7月7日 (2年9ヶ月経過) 出願番号 2019-521195
公開日 2019年9月5日 (7ヶ月経過) 公開番号 2019-525685
状態 不明
技術分野
  • -
主要キーワード 静的システム 単一機械 多重コンポーネント 外部機械 最終システム データターゲット プロセッサセット 多重モジュール
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2019年9月5日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

第1エンティティに関連するデバイスデータトランザクションレコーディング方法は、第1シードデータを決定するステップと、第1エンティティと第2エンティティとの間の第1データトランザクションのレコードを生成するステップと、少なくとも第1シードデータ及び第1データトランザクションのレコードを結合して第2シードデータを決定するステップと、第2シードデータをハッシュして第1ハッシュを生成するステップであって、第1ハッシュは、第1エンティティを含むデータトランザクションのヒストリーを含む、第1ハッシュを生成するステップと、第1データトランザクションのレコードに対する第1ハッシュをメモリに格納するステップとを含む。

概要

背景

トランザクション処理には、広範囲分散コンピュータ基盤システム及び、特に、支払いに関するトランザクションを行う多重ランザクション(transactors)を含むだけではなく、他の金融資産及び取引物理的アクセス制御、データに対する論理アクセスIoT(Internet of Things)を構成する管理、及びモニタリングデバイスなどにおけるトレード(trade)に関する。

最近、トランザクション処理システムを開発するとき、エンジニアは難しいトレードオフ(trade−offs)を行わなければならない。これは速度及び回復力処理量一貫性セキュリティーと性能、一貫性と拡張性などの間の選択が含まれる。このようなトレードオフは、常にシステム全体に影響を及ぼす侵害(compromises)を発生させる。支払い処理システムは、このようなトレードオフの効果を示す。それは1秒当たり600から数万のトランザクションを処理しなければならないこともあるが、ひたすらシステムの業務量において、しばらくの間に追加的な処理のためにそれを部分処理し、詳細を格納するだけであった。これはたびたび紛失したレコードを調整し、トランザクションを重複し、トランザクション時間からトランザクション処理時間までにアカウント超過して引き落されるという信用問題の露出などといった問題を発生させる。しかし、問題は支払いに制限されない。

全体的なトランザクションがロールバックされて(原子性)、データベースを一貫性のない状態にしておくことができず(一貫性)、互いに干渉できず(分離性)、さらにサーバが再び開始する時にも持続される(耐久性)場合、ACID(原子性、一貫性、分離性、及び耐久性)は、各データベーストランザクション成功しなければならないというデータベースに対する一貫性モデルである。

このモデルは、一般的に、既存の銀行支払いネットワーク及びその他の「ビッグデータ」の取引システムのような大規模システム可用性及び性能要求事項互換されないものと見なされる。代わりに、このようなシステムは、BASE一貫性(基本可用性)、ソフト状態、及び最終てきな一貫性に依存する。このモデルは、データベースが窮極的に一貫性のある状態に達することで充分であると主張する。銀行システムは、一貫性のある状態に達するために頻繁に調整チェックし、トランザクションの処理を一時中止しなければならないことから、このモードで作動する。トレードオフは大容量トランザクション処理で行われなければならないという概念は、基本的な形態で分散コンピュータシステムが一貫性、可用性、及びパーティション耐性(partition tolerance)といった3つの全てを同時に提供できない点を示すCAP整理に明示されている。現在のベスト思慮ソリューション(best practice solutions)は、新らに出現する現在の要件を満たすには多すぎる制限及びトレードオフを含んでいる。

IoTによって生成されたデータを調整する方法に対する問題は、エンジニアがネットワーク及びトランザクション処理システムを構築するとき、それらを行う必要があると考えるトレードオフの効果によって発生する。その効果のうちの1つは、共にモノインターネットを構成しているデバイスとサーバ間の通信に対するセキュリティーの欠如である。他の1つは、デバイスによって収集されたデータが実際に該当のデバイスにより検出された特定のイベントに関わっていることを保障できないことにある。

また、クラウド基盤情報格納システムは、このようなトレードオフの効果を示すが、多くの場合、究極的な一貫性のみを保障できる数多いサーバ及びシステムが膨大になる。
したがって、既知のシステムにおいて、BASE一貫性でのみ利益を取得できる大規模システムにACID一貫性を提供することが求められる。

概要

第1エンティティに関連するデバイスでデータトランザクションレコーディング方法は、第1シードデータを決定するステップと、第1エンティティと第2エンティティとの間の第1データトランザクションのレコードを生成するステップと、少なくとも第1シードデータ及び第1データトランザクションのレコードを結合して第2シードデータを決定するステップと、第2シードデータをハッシュして第1ハッシュを生成するステップであって、第1ハッシュは、第1エンティティを含むデータトランザクションのヒストリーを含む、第1ハッシュを生成するステップと、第1データトランザクションのレコードに対する第1ハッシュをメモリに格納するステップとを含む。

目的

したがって、既知のシステムにおいて、BASE一貫性でのみ利益を取得できる大規模システムにACID一貫性を提供する

効果

実績

技術文献被引用数
- 件
牽制数
- 件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

該当するデータがありません

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

第1エンティティに関連するデバイスデータトランザクションレコーディング方法において、第1シードデータを決定するステップと、前記第1エンティティと第2エンティティとの間の第1データトランザクションのレコードを生成するステップと、少なくとも前記第1シードデータ及び前記第1データトランザクションのレコードを結合して第2シードデータを決定するステップと、前記第2シードデータをハッシュして第1ハッシュを生成するステップであって、前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む、前記第1ハッシュを生成するステップと、前記第1データトランザクションの前記レコードに対する前記第1ハッシュをメモリに格納するステップと、を含むデータトランザクションレコーディング方法。

請求項2

前記第1シードデータは開始ハッシュを含む、請求項1に記載のデータトランザクションレコーディング方法。

請求項3

前記開始ハッシュは、前記第1エンティティを含む以前のデータトランザクションのレコードをハッシュした結果である、請求項2に記載のデータトランザクションレコーディング方法。

請求項4

前記開始ハッシュはランダムハッシュを含む、請求項2に記載のデータトランザクションレコーディング方法。

請求項5

前記ランダムハッシュは、前記デバイスからの署名、前記ランダムハッシュが生成された日付、及び前記ランダムハッシュが生成された時間のうちの少なくとも1つを含む、請求項4に記載のデータトランザクションレコーディング方法。

請求項6

第2シードデータを提供するステップは、前記第1シードデータ及び前記第1データトランザクションの前記レコードと第1ゼロ知識証明及び第2ゼロ知識証明を結合するステップをさらに含み、前記第1ゼロ知識証明は、前記開始ハッシュが前記第1エンティティを含む前記以前のデータトランザクションの真のハッシュを含むという証明を含み、前記第2ゼロ知識証明は、第2ハッシュが前記第2エンティティを含む以前のデータトランザクションの前記真のハッシュを含むという証明を含む、請求項1乃至請求項5のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項7

第2シードデータを提供するステップは、前記第1シードデータ、前記第1データトランザクションの前記レコード、前記第1ゼロ知識証明及び前記第2ゼロ知識証明と第3ゼロ知識証明を結合するステップをさらに含む、請求項6に記載のデータトランザクションレコーディング方法。

請求項8

前記第3ゼロ知識証明は、ランダムデータから生成される、請求項7に記載のデータトランザクションレコーディング方法。

請求項9

前記第3ゼロ知識証明は、前記第1ゼロ知識証明又は前記第2ゼロ知識証明の繰り返しである、請求項7に記載のデータトランザクションレコーディング方法。

請求項10

前記第3ゼロ知識証明は、前記第2ゼロ知識証明に対応する前記第1データトランザクションの第2レコードを用いて構成される、請求項7に記載のデータトランザクションレコーディング方法。

請求項11

前記第1データトランザクションは少なくとも2つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第1ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの前記第2ステージのレコードと前記第2ゼロ知識証明を結合するステップと、を含む、請求項6に記載のデータトランザクションレコーディング方法。

請求項12

第2シードデータを提供するステップは、前記第1データトランザクションの前記第2ステージのレコードから第3ゼロ知識証明を構成するステップと、前記第1データトランザクションの前記第2ステージのレコードと前記第2ゼロ知識証明及び前記第3ゼロ知識証明を結合するステップと、を含む、請求項11に記載のデータトランザクションレコーディング方法。

請求項13

前記第1データトランザクションは少なくとも3つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの前記第3ステージのレコードと前記第3ゼロ知識証明を結合するステップと、をさらに含む、請求項11に記載のデータトランザクションレコーディング方法。

請求項14

前記第1データトランザクションは少なくとも3つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、ランダムデータと前記第3ゼロ知識証明を結合するステップと、をさらに含む、請求項11に記載のデータトランザクションレコーディング方法。

請求項15

前記第1データトランザクションは少なくとも3つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの第4ステージのレコードと前記第2ゼロ知識証明を結合するステップと、を含み、前記第1データトランザクションの前記第4ステージは、前記第1データトランザクションの前記第3ステージの繰り返しである、請求項11に記載のデータトランザクションレコーディング方法。

請求項16

前記第1データトランザクションは少なくとも3つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと第3ゼロ知識証明を結合するステップをさらに含む、請求項11に記載のデータトランザクションレコーディング方法。

請求項17

前記第1ゼロ知識証明は、前記第1エンティティに関連する前記デバイスによって構成され、前記第2ゼロ知識証明は、前記第2エンティティに関連するデバイスによって構成される、請求項6乃至請求項16のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項18

前記第1ゼロ知識証明及び前記第2ゼロ知識証明を構成するステップは、キー交換アルゴリズムを使用するステップを含む、請求項17に記載のデータトランザクションレコーディング方法。

請求項19

前記キー交換アルゴリズムは、PAKEアルゴリズムを含む、請求項18に記載のデータトランザクションレコーディング方法。

請求項20

前記第2エンティティに関連するデバイスに前記第1ハッシュを送信するステップと、前記第2エンティティに関連するデバイスから第2ハッシュを受信するステップであって、前記第2ハッシュは、前記第2エンティティを含む以前のデータトランザクションのハッシュを含む、前記第2ハッシュを受信するステップと、前記第1パーティー及び前記第2パーティー間の第2データトランザクションのレコードを生成するステップと、前記第1ハッシュ及び前記第2ハッシュと前記第2データトランザクションの前記レコードを結合して第3シードデータを決定するステップと、前記第3シードデータをハッシュし、第3ハッシュを生成するステップであって、前記第3ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリー及び前記第2エンティティを含むデータトランザクションのヒストリーを含む、前記第3ハッシュを生成するステップと、前記第2データトランザクションの前記レコードに対する前記第3ハッシュを前記メモリに格納するステップと、をさらに含む、請求項1乃至請求項19のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項21

第3シードデータを提供するステップは、前記第2データトランザクションの前記レコード、前記第1ハッシュ及び前記第2ハッシュと、第3ゼロ知識証明及び第4ゼロ知識証明とを結合するステップをさらに含み、前記第3ゼロ知識証明は、前記第1ハッシュが前記第1データトランザクションの真のハッシュを含むという証明を含み、前記第4ゼロ知識証明は、前記第2ハッシュが前記第2エンティティを含む前記以前のデータトランザクションの前記真のハッシュを含むという証明を含む、請求項20に記載のデータトランザクションレコーディング方法。

請求項22

前記第2エンティティを含む前記以前のデータトランザクションは、前記第1データトランザクションである、請求項20又は請求項21に記載のデータトランザクションレコーディング方法。

請求項23

前記第1エンティティ及び前記第2エンティティの少なくとも一方の識別子と前記ハッシュのそれぞれを関連づけるステップをさらに含む、請求項1乃至請求項22のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項24

前記第1ハッシュを再算出するステップと、マッチング(match)を決定するために前記生成された第1ハッシュを前記再算出された第2ハッシュと比較するステップと、をさらに含む、請求項1乃至請求項23のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項25

前記比較が不成功である場合、追加データトランザクション取り消すステップをさらに含む、請求項24に記載のデータトランザクションレコーディング方法。

請求項26

前記第1データトランザクションに対応するシステムハッシュをシステムデバイスに生成するステップをさらに含む、請求項1乃至請求項25のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項27

第2シードデータを提供するステップは、前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記システムハッシュを結合するステップをさらに含む、請求項26に記載のデータトランザクションレコーディング方法。

請求項28

前記システムハッシュは、前記システムデバイス上の以前のデータトランザクションのレコードをハッシュした結果である、請求項26又は請求項27に記載のデータトランザクションレコーディング方法。

請求項29

第2シードデータを提供するステップは、ライセンスデバイスからライセンスハッシュを受信するステップと、前記第2シードデータを提供するために前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記ライセンスハッシュを結合するステップと、をさらに含む、請求項1乃至請求項28のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項30

前記ライセンスデバイスにおいて、前記第1ハッシュを受信するステップと、ライセンス入力を提供するために前記ライセンスハッシュと前記第1ハッシュを結合するステップと、前記ライセンス入力をハッシュして第2ライセンスハッシュを生成するステップと、をさらに含む、請求項29に記載のデータトランザクションレコーディング方法。

請求項31

第2シードデータを提供するステップは、ディレクトリデバイスからディレクトリハッシュを受信するステップと、前記第2シードデータを提供するために、前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記ディレクトリハッシュを結合するステップと、をさらに含む、請求項1乃至請求項30のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項32

前記ディレクトリサーバにおいて、前記第1ハッシュを受信するステップと、ディレクトリ入力を提供するために前記ディレクトリハッシュと前記第1ハッシュを結合するステップと、前記ディレクトリ入力をハッシュして第2ディレクトリハッシュを生成するステップと、をさらに含む、請求項31に記載のデータトランザクションレコーディング方法。

請求項33

第2シードデータを提供するステップは、前記第1データトランザクションに対する暗号化キーからキーハッシュを生成するステップと、前記第2シードデータを提供するために前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記キーハッシュを結合するステップと、をさらに含む、請求項1乃至請求項32のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項34

前記暗号化キーは、公開キー又は個人キーを含む、請求項33に記載のデータトランザクションレコーディング方法。

請求項35

前記第1シードデータ及び前記第1データトランザクションの前記レコードを結合するステップは、前記第1データトランザクションが完了するとすぐに実行される、請求項1乃至請求項34のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項36

前記メモリは遠隔デバイスに位置する、請求項1乃至請求項35のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項37

他のデバイスから受信されたハッシュに対応する前記第1ハッシュを前記遠隔デバイスで比較するステップをさらに含む、請求項36に記載のデータトランザクションレコーディング方法。

請求項38

前記デバイスに接続された他のデバイスに前記第1ハッシュを受信することを予想するよう通知するステップをさらに含む、請求項36又は請求項37に記載のデータトランザクションレコーディング方法。

請求項39

前記メモリにハッシュのチェーンを格納するステップをさらに含む、請求項1乃至請求項38のいずれか一項に記載のデータトランザクションレコーディング方法。

請求項40

送信された前記ハッシュのチェーンに対するアクセスを制限するように構成されたデバイス上に位置する第2メモリに前記ハッシュのチェーンを送信するステップをさらに含む、請求項39に記載のデータトランザクションレコーディング方法。

請求項41

前記ハッシュのチェーンでハッシュを修正又は削除するステップをさらに含み、前記ハッシュのチェーンでハッシュを修正又は削除するステップは、前記ハッシュのチェーンで対象のハッシュを再生成するステップと、前記レコードが修正されていないかの有無を確認するステップと、前記再生成されたハッシュをレコーディングするステップと、前記レコードを修正又は削除するステップと、前記対象のハッシュの結合及び前記修正および削除されたレコードをハッシュして前記レコードに対する新しいハッシュを生成するステップと、前記新しいハッシュをレコーディングするステップと、を含む、請求項39は請求項40に記載のデータトランザクションレコーディング方法。

請求項42

前記新しいハッシュを用いてシステムハッシュを生成するステップをさらに含む、請求項41に記載のデータトランザクションレコーディング方法。

請求項43

第1エンティティに関連するデバイスにおいて、前記デバイスは、請求項1乃至請求項42のいずれか一項に記載の方法を実行するデバイス。

請求項44

前記デバイスはサーバを含む、請求項43に記載のデバイス。

請求項45

前記デバイスはユーザデバイスを含む、請求項43に記載のデバイス。

請求項46

前記ユーザデバイスは、パーソナルコンピュータスマートフォンスマートタブレット又はモノインターネットIoT)可能デバイスのうち少なくとも1つを含む、請求項45に記載のデバイス。

請求項47

前記ユーザデバイスは、前記デバイス上のメモリで前記第1ハッシュを格納する、請求項46に記載のデバイス。

請求項48

前記ユーザデバイスは、該当サーバからオフラインである場合にのみ、前記デバイス上のメモリで前記第1ハッシュを格納する、請求項47に記載のデバイス。

請求項49

前記デバイスは、前記第2エンティティに関連するデバイスに前記第1ハッシュを送信する、請求項43乃至請求項48のいずれか一項に記載のデバイス。

請求項50

前記デバイスは、前記第1データトランザクションの前記レコードの署名及び暗号化されたコピーを前記第2エンティティに関連する前記デバイスに送信し、前記署名は、前記第1データトランザクションの前記レコードに対する配信先サーバの指示(indication)を含む、請求項49に記載のデバイス。

請求項51

前記デバイスは、特定のオフライン公開キーで前記レコードにサインする、請求項50に記載のデバイス。

請求項52

前記デバイスは、前記デバイスに属するキーで前記レコードにサインする、請求項50に記載のデバイス。

請求項53

前記配信先サーバのみが前記第1データトランザクションの前記レコードの前記暗号化されたコピーを解読できる、請求項50乃至請求項52のいずれか一項に記載のデバイス。

請求項54

前記デバイスが、対応するサーバへの接続を回復するとき、前記デバイスは、前記関連するハッシュ及びそのオフラインデータトランザクションの前記暗号化されたレコードを対応するサーバに送信する、請求項48乃至請求項53のいずれか一項に記載のデバイス。

請求項55

前記デバイスは、自身が保有する他のエンティティを含むデータトランザクションのレコードのコピーを前記他のエンティティに対応するサーバへの送信のために自身に対応するサーバに送信する、請求項54に記載のデバイス。

請求項56

前記送信することは、前記レコードが適用される全てのサーバに前記レコードを受信することを期待して通知することを含む、請求項55に記載のデバイス。

請求項57

前記デバイスは、前記第1データトランザクションでこの部分を識別するために固有の内部トランザクション番号を生成する、請求項43乃至請求項56のいずれか一項に記載のデバイス。

請求項58

ライセンスデバイスであって、第1エンティティに関連するデバイスから第1ハッシュを受信することであって、前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む、前記第1ハッシュを受信すること、ライセンス入力を提供するためにライセンスハッシュと前記第1ハッシュを結合すること、前記ライセンス入力をハッシュして第2ライセンスハッシュを生成すること、メモリに前記第2ライセンスハッシュを格納すること、を行うように構成されたライセンスデバイス。

請求項59

ディレクトリデバイスであって、第1エンティティに関連するデバイスから第1ハッシュを受信することであって、前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む、前記第1ハッシュを受信すること、ディレクトリ入力を提供するためにディレクトリハッシュと前記第1ハッシュを結合すること、前記ライセンス入力をハッシュして第2ディレクトリハッシュを生成すること、メモリに前記第2ディレクトリハッシュを格納すること、を行うように構成されたディレクトリデバイス。

請求項60

実行されるときコンピューティングデバイスが請求項1乃至請求項42のいずれか一項に記載の方法を実行させる複数のコード部分を含むコンピュータ可読記録媒体

請求項61

デバイスから第1サービスにアクセスする方法において、要求サーバに前記デバイスの識別子を提供するステップと、前記識別子に基づいて前記デバイスが前記第1サービスに対するアクセスを要求することを許可するステップと、前記デバイスが前記第1サービスが位置する第1ホストサーバから前記第1サービスにアクセスさせるステップであって、前記アクセスは、前記要求サーバを介して行われる、前記第1サービスにアクセスさせるステップと、を含む方法。

請求項62

前記許可するステップは、前記識別子に基づいて前記ユーザデバイスが前記第1サービスにアクセスするように許可されるかを確認するステップを含む、請求項61に記載の方法。

請求項63

確認するステップは、前記識別子に基づいて前記ユーザが少なくとも1つの基準(criteria)を満足するかを確認するステップを含む、請求項62に記載の方法。

請求項64

第1基準が前記第1ホストサーバ又は前記要求サーバに格納され、第2基準が他のサーバに位置する、請求項63に記載の方法。

請求項65

前記許可するステップは、前記要求サーバ及び前記第1ホストサーバ間の通信に対する署名を検証するステップを含む、請求項61乃至請求項64のいずれか一項に記載の方法。

請求項66

前記許可するステップは前記要求サーバで実行される、請求項61乃至請求項65のいずれか一項に記載の方法。

請求項67

前記許可するステップは、前記要求サーバで前記デバイスが前記第1サービスにアクセスするように以前に許可されたかを決定するステップを含む、請求項66に記載の方法。

請求項68

前記許可するステップはディレクトリサーバで実行される、請求項61乃至請求項65のいずれか一項に記載の方法。

請求項69

前記許可するステップは、前記要求サーバが前記ディレクトリサーバから前記デバイスに対する許可を要求するステップを含む、請求項68に記載の方法。

請求項70

前記アクセスさせるステップは、前記ディレクトリサーバが前記第1ホストサーバに対する識別子を前記要求サーバに送信するステップを含む、請求項68又は請求項69に記載の方法。

請求項71

前記識別子を許可するデータは、前記ディレクトリサーバに格納される、請求項68乃至請求項70のいずれか一項に記載の方法。

請求項72

第2サービスに対するアクセスを要求するステップと、前記識別子に基づいて前記デバイスが前記第2サービスにアクセスすることを許可するステップと、前記デバイスが前記要求サーバを介して前記第2サービスにアクセスさせるステップと、をさらに含む、請求項61乃至請求項71のいずれか一項に記載の方法。

請求項73

前記第2サービスは前記第1ホストサーバに位置する、請求項72に記載の方法。

請求項74

前記第2サービスは第2ホストサーバに位置する、請求項72に記載の方法。

請求項75

前記デバイスが前記第1サービスにアクセスすることを許可するステップは、第1ディレクトリサーバで実行され、前記ユーザデバイスが前記第2サービスにアクセスすることを許可するステップは、第2ディレクトリサーバで実行される、請求項72乃至請求項74のいずれか一項に記載の方法。

請求項76

第3サービスに対するアクセスを要求するステップと、前記識別子に基づいて前記デバイスが前記第3サービスにアクセスすることを許可するステップと、前記デバイスが前記第3サービスにアクセスさせるステップと、をさらに含む、請求項72乃至請求項75のいずれか一項に記載の方法。

請求項77

前記第2サービスは、前記第1ホストサーバ、前記第2ホストサーバ又は第3ホストサーバに位置する、請求項76に記載の方法。

請求項78

前記デバイスが前記第3サービスにアクセスすることを許可するステップは、第3ディレクトリサーバで実行される、請求項76又は請求項77に記載の方法。

請求項79

識別子を提供するステップは、前記デバイスが暗号化されたトンネルを介して前記要求サーバと通信するステップを含む、請求項61乃至請求項78のいずれか一項に記載の方法。

請求項80

それぞれの個別サーバで受信されるデータをキャッシュするステップをさらに含む、請求項61乃至請求項79のいずれか一項に記載の方法。

請求項81

それぞれのホストサーバは、二以上のサービスを提供する、請求項61乃至請求項80のいずれか一項に記載の方法。

請求項82

請求項61乃至請求項81のいずれか一項に記載の方法を実行するデバイス。

請求項83

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうち少なくとも1つを含む、請求項82に記載のデバイス。

請求項84

実行されるとき、コンピュータデバイスが請求項61乃至請求項81のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項85

第1データストアーから第2データストアーに第1データをスイッチングするための要求を提供するステップと、前記要求に含まれた識別子に基づいて前記第1データストアーの識別子をディレクトリサーバから決定するステップと、前記第1データストアーから前記第2データストアーに前記第1データをマイグレーションするステップと、を含むデータマイグレーション方法

請求項86

前記マイグレーションするステップは、前記ディレクトリサーバにおいて、前記第2データストアーで前記データに対する開始タイムスタンプ割り当てるステップと、前記第1データストアーで前記データに対する終了タイムスタンプを割り当てるステップと、を含む、請求項85に記載のデータマイグレーション方法。

請求項87

前記終了タイムスタンプの後に、前記第1データストアーを介して前記データにアクセスしようと試みる要求サーバに、前記ディレクトリサーバを介して前記第2データストアーで前記ユーザを検索するように指示するステップをさらに含む、請求項86に記載のデータマイグレーション方法。

請求項88

前記第1データストアーにおける前記データは、第1アカウント提供者との第1アカウント登録を含み、前記第2データストアーにおける前記データは、新しいアカウント提供者との第2アカウント登録を含む、請求項85乃至請求項87のいずれか一項に記載のデータマイグレーション方法。

請求項89

前記マイグレーションするステップは、前記現在のアカウント提供者から前記新しいアカウント提供者に前記第1アカウント登録に関する情報を送信するステップを含む、請求項88に記載のデータマイグレーション方法。

請求項90

前記情報は、登録(registrations)、残額(balances)、コンフィギュレーション(configurations)及び支払い指示(paymentinstructions)のうち少なくとも1つを含む、請求項89に記載のデータマイグレーション方法。

請求項91

マイグレーションするステップは、前記第1登録が前記現在のアカウント提供者から前記新しいアカウント提供者にスイッチされなければならないことを示す認証コード(authenticationcode)を確認するステップを含む、請求項88乃至請求項90のいずれか一項に記載のデータマイグレーション方法。

請求項92

前記第1アカウント登録は第1ユーザ・クリデンシャルを含み、前記第2アカウント登録は第2ユーザ・クリデンシャルを含む、請求項88乃至請求項91のいずれか一項に記載のデータマイグレーション方法。

請求項93

前記第1ユーザ・クリデンシャルは第1サーバに登録され、前記第2ユーザ・クリデンシャルは第2サーバに登録される、請求項92に記載のデータマイグレーション方法。

請求項94

前記第1アカウント提供者によって前記第1ユーザ・クリデンシャルを用いてユーザに伝えられる通信を受信するステップと、前記第2ユーザ・クリデンシャルを用いて前記通信を前記第2アカウント提供者にルーティングするステップと、をさらに含む、請求項93に記載のデータマイグレーション方法。

請求項95

前記第1クリデンシャルを使用する前記第1登録提供者で作られたデータトランザクションを、前記第2ユーザ・クリデンシャルを使用する前記第2登録提供者に反転させるステップをさらに含む、請求項93又は請求項94に記載のデータマイグレーション方法。

請求項96

前記トランザクション時に前記ユーザが前記第1ユーザ・クリデンシャルを使用したことを決定するステップを含む、請求項95に記載のデータマイグレーション方法。

請求項97

前記通信を送信するサーバは、前記第2ユーザ・クリデンシャルにアクセスするように承認されなければならない、請求項94乃至請求項96のいずれか一項に記載のデータマイグレーション方法。

請求項98

前記第1ユーザ・クリデンシャル及び前記第2ユーザ・クリデンシャルは同一である、請求項92乃至請求項97のいずれか一項に記載のデータマイグレーション方法。

請求項99

請求項85乃至請求項98のいずれか一項に記載の方法を実行するデバイス。

請求項100

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうち少なくとも1つを含む、請求項99に記載のデバイス。

請求項101

実行されるとき、コンピュータデバイスが請求項85乃至請求項98のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項102

第1エンティティから第2エンティティに第1通信を送信するステップであって、前記第1通信は2つ以上のデータフィールドを含み、それぞれのフィールドは個別ラベルを含む、前記第1通信を送信するステップと、前記第1エンティティから前記第2エンティティに第2通信を送信するステップであって、前記第2通信は前記2つ以上のデータフィールドを含み、前記第2通信における前記2つ以上のデータフィールドの順は、前記第1通信における前記2つ以上のデータフィールドの順と異なる、前記第2通信を送信するステップと、を含む通信方法

請求項103

ランダムフィールドを前記第2通信に追加するステップをさらに含む、請求項102に記載の通信方法。

請求項104

それぞれのフィールドは2つ以上の特徴を含み、少なくとも1つのフィールドで2つ以上の特徴のケースミキシングするステップをさらに含む、請求項102又は請求項103に記載の通信方法。

請求項105

前記第2通信を処理する前に、前記第2エンティティによって前記第2通信で前記フィールドを解読及び順序化するステップをさらに含む、請求項102乃至請求項104のいずれか一項に記載の通信方法。

請求項106

前記第2エンティティによって処理できないフィールドを廃棄するステップをさらに含む、請求項105に記載の通信方法。

請求項107

前記1エンティティ及び前記第2エンティティのうち少なくとも1つはサーバを含む、請求項102乃至請求項106のいずれか一項に記載の装置。

請求項108

前記1エンティティ及び前記第2エンティティのうち少なくとも1つは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスを含む、請求項102乃至請求項106のいずれか一項に記載の装置。

請求項109

請求項102乃至請求項108のいずれか一項に記載の方法を実行するデバイス。

請求項110

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうち少なくとも1つを含む、請求項109に記載のデバイス。

請求項111

実行されるとき、コンピュータデバイスが請求項102乃至請求項108のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項112

SSD(unstructuredsupplementaryservicedata)を介した通信方法において、第1デバイスと第2デバイスとの間のUSSDセッション開放するステップと、前記第1デバイスにおいて前記セッションで通信に対するサイファーテキスト(cyphertext)を生成するステップと、前記第1デバイスで前記サイファーテキストを符号化するステップと、前記第2デバイスで解読のために前記第1デバイスから前記第2デバイスに前記符号化されたサイファーテキストを送信するステップと、を含む通信方法。

請求項113

前記符号化するステップは、前記サイファーテキストを7ビット又は8ビットの文字ストリングに符号化するステップを含む、請求項112に記載の通信方法。

請求項114

前記サイファーテキストの長さが前記USSDセッションで前記許容されたスペースよりも長い場合、前記サイファーテキストを2つ又は2つ以上の部分に分割するステップと、前記2つ又は2つ以上の部分を個別的に送信するステップと、をさらに含む、請求項112又は請求項113に記載の通信方法。

請求項115

前記第2デバイスにおける解読のために、前記第2デバイスから前記サイファーテキストの全体に前記パートリアセンブルするステップを含む、請求項114に記載の通信方法。

請求項116

前記1及び第2デバイスを認証するステップをさらに含む、請求項112乃至請求項115のいずれか一項に記載の通信方法。

請求項117

認証するステップは、2つの通信コンピュータアプリケーション間プライバシー及びデータ無欠性を提供するアルゴリズムを使用するステップを含む、請求項116に記載の通信方法。

請求項118

認証するステップは、TLS(transportlayersecurity)を使用するステップを含む、請求項117に記載の通信方法。

請求項119

TLSを使用するステップは、第1セッションキーを生成するステップを含む、請求項118に記載の通信方法。

請求項120

第2セッションキーを生成するためにPAKEプロトコルネゴシエーション(PAKEprotocolnegotiation)を暗号化する前記第1セッションキーを使用するステップと、前記第2セッションキーを用いて前記第1デバイスと前記第2デバイスとの間の前記セッションで追加通信を暗号化するステップと、をさらに含む、請求項119に記載の通信方法。

請求項121

請求項112乃至請求項120のいずれか一項に記載の方法を実行するデバイス。

請求項122

実行されるとき、コンピュータデバイスが請求項112乃至請求項120のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項123

第1エンティティに関連する第1デバイスと第2エンティティに関連する第2デバイスとの間の通信方法において、前記第1デバイスで、第1共有秘密を用いて前記第1デバイス及び前記第2デバイス間の第1PAKEセッションを生成するステップと、前記第2デバイスから登録キー及び第2共有秘密を受信するステップと、第2PAKEセッションを生成するための第3共有秘密を提供するために、前記第1共有秘密、前記登録キー、及び前記第2共有秘密をハッシュするステップと、を含む通信方法。

請求項124

前記1エンティティ及び前記第2エンティティを認証するステップをさらに含む、請求項123に記載の通信方法。

請求項125

認証するステップは、2つの通信コンピュータアプリケーション間のプライバシー及びデータ無欠性を提供するアルゴリズムを使用するステップを含む、請求項124に記載の通信方法。

請求項126

前記認証するステップはTLSを使用するステップを含む、請求項125に記載の通信方法。

請求項127

第4共有秘密を用いて前記第1デバイス及び第3デバイス間の第2PAKEセッションを生成するステップをさらに含む、請求項123乃至請求項126のいずれか一項に記載の通信方法。

請求項128

前記第4共有秘密は、前記第1デバイスのために前記第3デバイスによって生成された認証コードを含む、請求項127に記載の通信方法。

請求項129

前記第1共有秘密は、前記第1デバイスのために前記第2デバイスによって生成された認証コードを含む、請求項123乃至請求項128のいずれか一項に記載の通信方法。

請求項130

前記認証コードは、前記第1デバイスのために識別子と共に前記第1デバイスに送信される、請求項129に記載の通信方法。

請求項131

前記識別子は、前記第1デバイスの電話番号又はシリアル番号を含む、請求項130に記載の通信方法。

請求項132

前記第1共有内緒は、前記1エンティティに関連する銀行カードのPAN(personalaccountnumber)を含む、請求項123乃至請求項131のいずれか一項に記載の通信方法。

請求項133

前記第1共有秘密は、前記1エンティティに関連する銀行カードの符号化されたシリアル番号を含む、請求項123乃至請求項131のいずれか一項に記載の通信方法。

請求項134

請求項123乃至請求項133のいずれか一項に記載の方法を実行するデバイス。

請求項135

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうち少なくとも1つを含む、請求項134に記載のデバイス。

請求項136

実行されるとき、コンピュータデバイスが請求項123乃至請求項133のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項137

サービスにアクセスする方法において、クリデンシャル及び前記クリデンシャルに対するコンテキストを提供するステップと、前記クリデンシャル及び前記コンテキストに基づいて前記サービスに対するアクセスを認証するステップと、を含む方法。

請求項138

前記サービスに対するアクセスを認証するステップは、前記クリデンシャル及び前記コンテキストのうちの少なくとも一方に基づいてサービスの一部に対するアクセスを認証するステップを含む、請求項137に記載の方法。

請求項139

前記クリデンシャルは、デバイス及び前記デバイスのプライマリユーザ(primaryuser)に関連する第1クリデンシャルを含む、請求項137又は請求項138に記載の方法。

請求項140

前記クリデンシャルは、デバイス及び前記デバイスのセカンダリーユーザに関連する第2クリデンシャルをさらに含む、請求項139に記載の方法。

請求項141

前記クリデンシャルに基づいて前記サービスに対するアクセスを認証するステップは、前記第1クリデンシャル及び前記第2クリデンシャルのそれぞれに基づいて前記プライマリユーザ及び前記セカンダリーユーザに対する異なるサービスに対するアクセスを認証するステップを含む、請求項140に記載の方法。

請求項142

前記デバイスは、前記プライマリユーザ及び前記セカンダリーユーザに対する異なる支出限度である前記異なるサービス及び銀行カードを含む、請求項141に記載の方法。

請求項143

前記クリデンシャルは、前記コンテキストに基づいて選択される、請求項137乃至請求項142のいずれか一項に記載の方法。

請求項144

前記サービスは、前記コンテキストに基づいて選択された複数のサービスを含む、請求項137乃至請求項143のいずれか一項に記載の方法。

請求項145

管理者又はユーザは、前記コンテキスト又はクリデンシャルを修正、追加又は取り消しできる、請求項137乃至請求項144のいずれか一項に記載の方法。

請求項146

前記クリデンシャルは、パスワード、PIN、及び他の直接認証クリデンシャル(directauthenticationcredential)のうち少なくとも1つを含む、請求項137乃至請求項145のいずれか一項に記載の方法。

請求項147

前記コンテキストは、前記クリデンシャルを提供するデバイス、前記デバイス上のアプリケーション、前記デバイスが接続されたネットワーク、前記デバイスの地理的位置、及びアクセスされる前記サービスのうち少なくとも1つを含む、請求項137乃至請求項146のいずれか一項に記載の方法。

請求項148

請求項137乃至請求項147のいずれか一項に記載の方法を実行するデバイス。

請求項149

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうち少なくとも1つを含む、請求項148に記載のデバイス。

請求項150

実行されるとき、コンピュータデバイスが請求項137乃至請求項147のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

請求項151

コンピュータシステム内の複数のモジュール間の通信方法において、第1モジュールからプロキシ共有メモリチャネルを伝達するステップと、前記プロキシから第2モジュールに前記共有メモリチャネルを伝達するステップであって、前記プロキシは、前記コンピュータシステムの前記カーネルバイパスして前記第1モジュールと前記第2モジュールとの間のデータを送信するハンドオフモジュールを含む、前記共有メモリチャネルを伝達するステップと、前記第1モジュールから前記第2モジュールにデータを送信するステップと、を含む通信方法。

請求項152

複数の要求を前記第1モジュールのバッファメモリでバッチされたメッセージ(batchedmessage)にバッチするステップと、前記第2モジュールに送信される前記バッチされたメッセージをキューイングするステップと、システム機能を許可する少なくとも1つのシステムフラグをセッティングするステップと、前記第2モジュールで前記少なくとも1つのシステムフラグをチェックするステップと、前記第2モジュールで前記バッチされたメッセージを処理するステップと、をさらに含む、請求項151に記載の通信方法。

請求項153

前記第1モジュールと前記第2モジュールとの間の少なくとも1つの共有メモリチャネルを設定するステップをさらに含む、請求項151又は請求項152に記載の通信方法。

請求項154

前記少なくとも1つの共有メモリチャネルを介して前記第1モジュールに応答する前記第2モジュールを含む、請求項153に記載の通信方法。

請求項155

前記少なくとも1つの共有メモリチャネルは、前記バッチされたメッセージを受信及びアセンブルし、前記第2モジュールに前記メモリの所有権を渡す、請求項153又は請求項154に記載の通信方法。

請求項156

前記少なくとも1つの共有メモリチャネルは、前記コンピュータシステムのネットワークスタック(networkstack)を介してバッチされたメッセージを受信する、請求項155に記載の通信方法。

請求項157

前記少なくとも1つの共有メモリチャネルは、HTTPゲートウェイを含む、請求項153乃至請求項156のいずれか一項に記載の通信方法。

請求項158

HTTPゲートウェイはウェブサービスとして用いられる、請求項151乃至請求項157のいずれか一項に記載の通信方法。

請求項159

通信は、パスワード認証されたキー交換プロトコルを使用する、請求項151乃至請求項158のいずれか一項に記載の通信方法。

請求項160

前記コンピュータシステムのネットワークスタックでゼロコピーネットワーキング(zero−copynetworking)を使用するステップをさらに含む、請求項151乃至請求項159のいずれか一項に記載の通信方法。

請求項161

前記コンピュータシステムのネットワークスタックでユーザモードネットワーキングを使用するステップをさらに含む、請求項151乃至請求項160のいずれか一項に記載の通信方法。

請求項162

前記第1モジュールから前記データ送信の前記コンポーネントが単一データストリームに結合され、前記第1モジュールで前記コンポーネントに分離されるようにデータを直列化するステップをさらに含む、請求項151乃至請求項161のいずれか一項に記載の通信方法。

請求項163

前記直列化は、各モジュールのエッジ抽象化される、請求項162に記載の通信方法。

請求項164

各モジュールのバッファメモリは、構成可能なバッファリング閾値を有する、請求項151乃至請求項163のいずれか一項に記載の通信方法。

請求項165

前記第1モジュール及び前記第2モジュールは、同じコンピューティングデバイス上に位置する、請求項151乃至請求項164のいずれか一項に記載の通信方法。

請求項166

前記第1モジュール及び前記第2モジュールは、異なるコンピューティングデバイス上に位置する、請求項151乃至請求項164のいずれか一項に記載の通信方法。

請求項167

前記第1モジュールから前記第2モジュールに送信されたデータはバージョンIDを運ぶ、請求項151乃至請求項166のいずれか一項に記載の通信方法。

請求項168

前記バージョンIDが前記第1モジュールから前記第2モジュールに送信された前記データに対して、最新であるかを検証するステップをさらに含む、請求項167に記載の通信方法。

請求項169

前記データのうち任意のデータがアップデートされる場合、前記バージョンIDを現在のバージョンに再検証するステップをさらに含む、請求項168に記載の通信方法。

請求項170

前記バージョンIDが検証されない場合、前記データ送信は失敗する、請求項169に記載の通信方法。

請求項171

前記第1モジュール及び前記第2モジュールのうち少なくとも1つは少なくとも1つのデータサービスモジュールを含み、前記コンピュータシステム内の各データ処理は、前記少なくとも1つのデータサービスモジュールを介して実行される、請求項151乃至請求項170のいずれか一項に記載の通信方法。

請求項172

前記少なくとも1つのデータサービスモジュールは、コアデータベースストアーによって実現されるデータストアーと通信する、請求項171に記載の通信方法。

請求項173

前記少なくとも1つのデータサービスモジュールは、前記データストアーに直接アクセスする前記コンピュータシステムのコンポーネントである、請求項172に記載の通信方法。

請求項174

前記コアデータベースストアーは、少なくとも1つの分散データベースを含む、請求項173に記載の通信方法。

請求項175

前記少なくとも1つの分散データベースは、別途読み出し及び記録アクセスチャネルを有する、請求項174に記載の通信方法。

請求項176

前記データストアーは、少なくとも1つの異種データベースにインタフェースを提供する、請求項173乃至請求項175のいずれか一項に記載の通信方法。

請求項177

前記データストアーは、複数のインタフェースタイプを提供する、請求項173乃至請求項176のいずれか一項に記載の通信方法。

請求項178

前記複数のインタフェースタイプは、少なくとも1つのSQL(StructuredQueryLanguage)インタフェース、セル及びコラムインタフェース(cellandcolumninterface)、文書インタフェース(documentinterface)、及び前記コアデータベースストアー上にあるグラフィックインタフェース(graphinterface)のうち少なくとも1つを含む、請求項177に記載の通信方法。

請求項179

前記データストアーレイヤに対する全ての記録は、1つ又は1つ以上のデータトランザクションの全て又は一部を制御する単一共有モジュールによって管理される、請求項176乃至請求項178のいずれか一項に記載の通信方法。

請求項180

少なくとも1つの前記共有モジュールのリダンダントバックアップ(redundantbackup)を作動させるステップをさらに含む、請求項179に記載の通信方法。

請求項181

全てのデータ変更は、シリアルの速いシーケンス(serialrapidsequence)で前記単一共有モジュールを介して行われる、請求項179又は請求項180に記載の通信方法。

請求項182

前記単一共有モジュールは、その自体をデータ・トランザクタクラスタ(datatransactorcluster)に示すホットバックアップ・リダンダンシーモデル(hotbackupredundancymodel)を使用し、前記データ・トランザクタ・クラスタは、ハイアラーキー(hierarchy)で1組のモジュールであり、各モジュールは、マスタモジュールが失敗する場合にデータトランザクションを制御する、請求項179乃至請求項181のいずれか一項に記載の通信方法。

請求項183

ドメインによって構成される規則に基づいて、複数のモジュール又は複数のデータストアーにわたってデータを分割するステップをさらに含む、請求項171乃至請求項182のいずれか一項に記載の通信方法。

請求項184

データトランザクションのレコード又は親データトランザクション(parentdatatransaction)のレコードのターゲットデータをハッシュするステップをさらに含む、請求項183に記載の通信方法。

請求項185

前記ハッシュするステップは、データパーティションの数と同じカーディナリティ(cardinality)を有する、請求項184に記載の通信方法。

請求項186

挙げられた地理的領域名字、及び通貨のうち少なくとも1つによってターゲットデータをハッシュするステップをさらに含む、請求項184又は請求項185に記載の通信方法。

請求項187

複数のデータパーティションの全てに前記少なくとも1つのデータサービスモジュールを介して少なくとも1つのデータ送信を行うステップをさらに含む、請求項171乃至請求項186のいずれか一項に記載の通信方法。

請求項188

複数のモジュールによって前記少なくとも1つのデータサービスモジュールを介して少なくとも1つのデータ送信を完了するステップをさらに含む、請求項171乃至請求項187のいずれか一項に記載の通信方法。

請求項189

前記少なくとも1つのデータサービスモジュール上の少なくとも1つのデータ送信を前記データストアーで複数のデータストレージノード上に保持するステップをさらに含む、請求項171乃至請求項188のいずれか一項に記載の通信方法。

請求項190

前記コンピュータシステムは、複数のデータサービスモジュールを含み、それぞれのデータサービスモジュールは、該当インスタンスに対する全ての前記ホットデータのキャッシュされた表現を含み、イン−メモリ(in−memory)またはイン−プロセス(in−process)データベースエンジンをホストする、請求項171乃至請求項189のいずれか一項に記載の通信方法。

請求項191

前記コンピュータシステムは、複数のデータサービスモジュールを含み、それぞれのデータサービスモジュールは、複数の異種又は同種データベースエンジンを含む、請求項171乃至請求項189のいずれか一項に記載の通信方法。

請求項192

全てのデータ読み出しが一貫し、対応するデータ記録を反映するように、前記データストアーに対するアクセスの同時性を管理するMVCC(MultiversionConcurrencyControl)バージョンシステムを使用するステップをさらに含む、請求項172乃至請求項191のいずれか一項に記載の通信方法。

請求項193

データレコードが前記データストアーに記録され、任意の後続データトランザクションが前記データレコードにアクセスする前に記録されたことが確認されるように、前記データストアーに対するアクセスの同時性を管理する悲観的一貫性(pessimisticconsistency)を使用するステップをさらに含む、請求項172乃至請求項191のいずれか一項に記載の通信方法。

請求項194

前記コンピュータシステムは、アプリケーションレイヤをさらに含み、前記少なくとも1つのデータサービスモジュールが前記レコードを記録し、前記データ送信を完了することを確認するまで、前記アプリケーションレイヤは、データトランザクションを進めることができない、請求項171乃至請求項193のいずれか一項に記載の通信方法。

請求項195

請求項151乃至請求項194のいずれか一項に記載の方法を実行するコンピューティングデバイス。

請求項196

実行されるときコンピュータデバイスが請求項151乃至請求項194のいずれか一項に記載の方法を実行させる複数のコード部分(codeportions)を含むコンピュータ可読記録媒体。

技術分野

0001

本発明は、単一の実施において全てのタイプのトランザクションを大規模かつ安全にリアルタイムで行う方法及びシステムに関する。

背景技術

0002

トランザクション処理には、広範囲分散コンピュータ基盤システム及び、特に、支払いに関するトランザクションを行う多重ランザクション(transactors)を含むだけではなく、他の金融資産及び取引物理的アクセス制御、データに対する論理アクセスIoT(Internet of Things)を構成する管理、及びモニタリングデバイスなどにおけるトレード(trade)に関する。

0003

最近、トランザクション処理システムを開発するとき、エンジニアは難しいトレードオフ(trade−offs)を行わなければならない。これは速度及び回復力処理量一貫性セキュリティーと性能、一貫性と拡張性などの間の選択が含まれる。このようなトレードオフは、常にシステム全体に影響を及ぼす侵害(compromises)を発生させる。支払い処理システムは、このようなトレードオフの効果を示す。それは1秒当たり600から数万のトランザクションを処理しなければならないこともあるが、ひたすらシステムの業務量において、しばらくの間に追加的な処理のためにそれを部分処理し、詳細を格納するだけであった。これはたびたび紛失したレコードを調整し、トランザクションを重複し、トランザクション時間からトランザクション処理時間までにアカウント超過して引き落されるという信用問題の露出などといった問題を発生させる。しかし、問題は支払いに制限されない。

0004

全体的なトランザクションがロールバックされて(原子性)、データベースを一貫性のない状態にしておくことができず(一貫性)、互いに干渉できず(分離性)、さらにサーバが再び開始する時にも持続される(耐久性)場合、ACID(原子性、一貫性、分離性、及び耐久性)は、各データベーストランザクション成功しなければならないというデータベースに対する一貫性モデルである。

0005

このモデルは、一般的に、既存の銀行支払いネットワーク及びその他の「ビッグデータ」の取引システムのような大規模システム可用性及び性能要求事項互換されないものと見なされる。代わりに、このようなシステムは、BASE一貫性(基本可用性)、ソフト状態、及び最終てきな一貫性に依存する。このモデルは、データベースが窮極的に一貫性のある状態に達することで充分であると主張する。銀行システムは、一貫性のある状態に達するために頻繁に調整チェックし、トランザクションの処理を一時中止しなければならないことから、このモードで作動する。トレードオフは大容量トランザクション処理で行われなければならないという概念は、基本的な形態で分散コンピュータシステムが一貫性、可用性、及びパーティション耐性(partition tolerance)といった3つの全てを同時に提供できない点を示すCAP整理に明示されている。現在のベスト思慮ソリューション(best practice solutions)は、新らに出現する現在の要件を満たすには多すぎる制限及びトレードオフを含んでいる。

0006

IoTによって生成されたデータを調整する方法に対する問題は、エンジニアがネットワーク及びトランザクション処理システムを構築するとき、それらを行う必要があると考えるトレードオフの効果によって発生する。その効果のうちの1つは、共にモノインターネットを構成しているデバイスとサーバ間の通信に対するセキュリティーの欠如である。他の1つは、デバイスによって収集されたデータが実際に該当のデバイスにより検出された特定のイベントに関わっていることを保障できないことにある。

0007

また、クラウド基盤情報格納システムは、このようなトレードオフの効果を示すが、多くの場合、究極的な一貫性のみを保障できる数多いサーバ及びシステムが膨大になる。
したがって、既知のシステムにおいて、BASE一貫性でのみ利益を取得できる大規模システムにACID一貫性を提供することが求められる。

発明が解決しようとする課題

0008

上述したように本発明は、現在のトレードオフによって考慮又は制限する必要のないトランザクションを処理する新しい方法に関する。本発明は、既存のシステムよりも数倍も大きい比率でトランザクションをリアルタイムに認証及び処理し、このようなトランザクションをリアルタイムに支払い又は処理及び完了する方法を提供する。

0009

リアルタイム支払いは、金融トランザクションにのみ適用されるものではない。これは即刻的な認証、許可、処理及び完了の一部又は全体から利益を取得できるか、求められる任意のトランザクションに適用される。これはアクセス制御からレコード有効性検査(recordsvalidation)、レコード及び文書交換(records and document exchange)、命令及び制御指示(command and control instructions)などに至るまで様々である。

0010

この方法は7種類の主な領域に構成される。
・任意のデータベース製品に極めて高いスケールでACID準拠のトランザクションを記録するための方法
・単一リアルタイムセッションの範囲内で極めて高いスケールで完全な数学的証明によりマルチプライベート元帳(multiple private ledgers)にわたってレコード認証を伝達するハッシュチェーンの実現
・拡張性問題を引き起こす「ハブ・アンドスポーク(hub and spoke)」アーキテクチャーを実現するものではなく、トランザクションサービス提供者などのメッシュネットワーク支援するディレクトリサービス
販売者又はユーザデバイス無線及び1つのトランザクションから次にトランザクションを処理するために使用するアプリケーション(又は、アプリ)をアップデートさせる拡張可能フレームワーク
・多様な相違トランザクションタイプ及び共通データベース構造を支援するアプリ間の移動行列として機能するデータサービスレイヤ
サービス又はデバイスがサービス又は機能のセットにアクセスさせるクリデンシャルアッドクセットをアセンブル及び提案する方法
・NFC(Near Field Communications)及びUSSD(Unstructured Supplementary Service Data)を含む任意のプロトコルで安全なリアルタイム通信を生成する方法
本発明のシステムは、処理方法のうち固有トランザクション数が増加することによりゼロ増分コスト(zero incremental cost)でリアルタイムトランザクション処理及び完了を達成する方法を提供する。

課題を解決するための手段

0011

一実施形態に係る第1エンティティに関連するデバイスでデータトランザクションレコーディング方法は、第1シードデータを決定するステップと、前記第1エンティティと第2エンティティとの間の第1データトランザクションの前記レコードを生成するステップと、少なくとも前記第1シードデータ及び前記第1データトランザクションのレコードを結合して第2シードデータを決定するステップと、前記第2シードデータをハッシュして第1ハッシュを生成するステップ(前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む)と、前記第1データトランザクションの前記レコードに対する前記第1ハッシュをメモリに格納するステップとを含むデータトランザクションレコーディング方法が提供される。他の実施形態によれば、前記方法は実行し、第1エンティティに関連するデバイスが提供される。他の実施形態によれば、実行されるときコンピューティングデバイスが前記方法を実行させる複数のコード部分を含むコンピュータで可読記録媒体が提供される。

0012

他の実施形態によれば、第1エンティティに関連するデバイスから第1ハッシュを受信し(前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む)、ライセンス入力を提供するためにライセンスハッシュと前記第1ハッシュを結合し、前記ライセンス入力をハッシュして第2ライセンスハッシュを生成し、及びメモリに前記第2ライセンスハッシュを格納するライセンスデバイスを提供する。

0013

他の実施形態によれば、第1エンティティに関連するデバイスから第1ハッシュを受信し(前記第1ハッシュは、前記第1エンティティを含むデータトランザクションのヒストリーを含む)、ディレクトリ入力を提供するためにディレクトリハッシュと前記第1ハッシュを結合し、前記ライセンス入力をハッシュして第2ディレクトリハッシュを生成し、及びメモリに前記第2ディレクトリハッシュを格納するディレクトリデバイスを提供する。

0014

他の実施形態によれば、デバイスから第1サービスにアクセスする方法は、要求サーバに前記デバイスの識別子を提供するステップと、前記識別子に基づいて前記デバイスが前記第1サービスに対するアクセスを要求することを許可するステップと、前記デバイスが前記第1サービスが位置する第1ホストサーバから前記第1サービスにアクセスさせるステップ(前記アクセスは、前記要求サーバを介して行われる)を含むアクセス方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0015

他の実施形態によれば、第1データストアーから第2データストアーに第1データをスイッチングするための要求を提供するステップと、前記要求に含まれた識別子に基づいて前記第1データストアーの識別子をディレクトリサーバから決定するステップと、前記第1データストアーから前記第2データストアーに前記第1データを移行するステップを含むデータ移行方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0016

他の実施形態によれば、第1エンティティから第2エンティティに第1通信(前記第1通信は2つ以上のデータフィールドを含み、それぞれのフィールドは、個別ラベルを含む)を送信するステップと、前記第1エンティティから前記第2エンティティに第2通信(前記第2通信は前記2つ以上のデータフィールドを含み、前記第2通信における前記フィールドの順は、前記第1通信における前記フィールドの順と異なる)を送信するステップを含む通信方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0017

他の実施形態によれば、USSD(unstructured supplementary service data)を通した通信方法において、第1デバイスと第2デバイス間のUSSDセッション開放するステップと、前記第1デバイスにおいて前記セッションで通信に対するサイファーテキスト(cypher text)を生成するステップと、前記第1デバイスで前記サイファーテキストを符号化するステップと、前記第2デバイスで解読のために前記第1デバイスから前記第2デバイスに前記符号化されたサイファーテキストを送信するステップとを含む通信方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0018

他の実施形態によれば、第1エンティティに関連する第1デバイスと第2エンティティに関連する第2デバイス間の通信方法において、前記第1デバイスで、第1共有秘密を用いて前記第1デバイス及び前記第2デバイス間の第1PAKEセッションを生成するステップと、前記第2デバイスから登録キー及び第2共有秘密を受信するステップと、第2PAKEセッションを生成するための第3共有秘密を提供するために前記第1共有秘密、前記登録キー、及び前記第2共有秘密をハッシュするステップとを含む通信方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0019

他の実施形態によれば、サービスにアクセスする方法において、クリデンシャル及び前記クリデンシャルに対するコンテキストを提供するステップと、前記クリデンシャル及び前記コンテキストに基づいて前記サービスに対するアクセスを認証するステップとを含むアクセス方法が提供される。他の実施形態によれば、前記方法を行うデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0020

他の実施形態によれば、コンピュータシステム内のモジュール間の通信方法において、第1モジュールからプロキシ共有メモリチャネルを伝達するステップと、前記プロキシから第2モジュールに前記共有メモリチャネルを伝達するステップ(前記プロキシは、前記コンピュータシステムの前記カーネルバイパスして前記第1モジュールと前記第2モジュールとの間のデータを送信するハンドオフモジュールを含む)と、前記第1モジュールから前記第2モジュールにデータを送信するステップとを含む通信方法が提供される。他の実施形態によれば、前記方法を行うコンピューティングデバイスが提供される。他の実施形態によれば、実行されるときコンピュータデバイスが前記方法を実行させる複数のコード部分(code portions)を含むコンピュータで可読記録媒体が提供される。

0021

前記第1シードデータは、開始ハッシュを含んでもよい。前記開始ハッシュは、前記第1エンティティを含む以前のデータトランザクションのレコードをハッシュした結果であり得る。前記開始ハッシュは、ランダムハッシュを含んでもよい。前記ランダムハッシュは、前記デバイスからの署名、前記ランダムハッシュが生成された日付及び/又は時間のうちの少なくとも1つを含んでもよい。

0022

第2シードデータを提供するステップは、前記第1シードデータ及び前記第1データトランザクションの前記レコードと第1ゼロ知識証明及び第2ゼロ知識証明を結合するステップをさらに含んでもよい。ここで、前記第1ゼロ知識証明は、前記開始ハッシュが前記第1エンティティに関連する前記以前のデータトランザクションの前記真のハッシュを含むという証明を含んでもよい。前記第2ゼロ知識証明は、第2ハッシュが前記第2エンティティに関連する以前のデータトランザクションの前記真のハッシュを含むという証明を含んでもよい。第2シードデータを提供するステップは、前記第1シードデータ、前記第1データトランザクションの前記レコード、前記第1ゼロ知識証明及び前記第2ゼロ知識証明と第3ゼロ知識証明を結合するステップをさらに含んでもよい。前記第3ゼロ知識証明は、ランダムデータから生成されてもよい。前記第3ゼロ知識証明は、前記第1ゼロ知識証明又は前記第2ゼロ知識証明の繰り返しであってもよい。前記第3ゼロ知識証明は、前記第2ゼロ知識証明に対応する前記第1データトランザクションの第2レコードを用いて構成してもよい。

0023

前記第1データトランザクションは少なくとも2つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第1ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの前記第2ステージのレコードと前記第2ゼロ知識証明を結合するステップを含んでもよい。第2シードデータを提供するステップは、前記第1データトランザクションの前記第2ステージのレコードから第3ゼロ知識証明を構成するステップと、前記第1データトランザクションの前記第2ステージのレコードと前記第2ゼロ知識証明及び前記第3ゼロ知識証明を結合するステップを含んでもよい。前記第1データトランザクションは少なくとも3つのステージを含み、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの前記第3ステージのレコードと前記第3ゼロ知識証明を結合するステップをさらに含んでもよい。

0024

前記第1データトランザクションは、少なくとも3つのステージを含んでもよく、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、ランダムデータと前記第3ゼロ知識証明を結合するステップをさらに含んでもよい。前記第1データトランザクションは、少なくとも3つのステージを含んでもよく、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと前記第1ゼロ知識証明を結合するステップと、前記第1データトランザクションの第4ステージのレコードと前記第2ゼロ知識証明を結合するステップを含んでもよく、前記第1データトランザクションの前記第4ステージは、前記第1データトランザクションの前記第3ステージの繰り返しであってもよい。

0025

前記第1データトランザクションは、少なくとも3つのステージを含んでもよくて、第2シードデータを提供するステップは、前記第1データトランザクションの前記第3ステージのレコードと第3ゼロ知識証明を結合するステップをさらに含んでもよい。

0026

前記第1ゼロ知識証明は、前記第1エンティティに関連する前記デバイスによって構成され、前記第2ゼロ知識証明は、前記第2エンティティに関連するデバイスによって構成され得る。

0027

前記第1ゼロ知識証明及び前記第2ゼロ知識証明を構成するステップは、キー交換アルゴリズムを使用するステップを含んでもよい。前記キー交換アルゴリズムはPAKEアルゴリズムを含んでもよい。

0028

前記方法は、前記第2エンティティに関連するデバイスに前記第1ハッシュを送信するステップと、前記第2エンティティに関連するデバイスから第2ハッシュを受信するステップ(前記第2ハッシュは、前記第2エンティティに関連する以前のデータトランザクションのハッシュを含む)と、前記第1パーティー及び前記第2パーティー間の第2データトランザクションのレコードを生成するステップと、前記第1ハッシュ及び前記第2ハッシュと前記第2データトランザクションの前記レコードを結合して第3シードデータを決定するステップと、前記第3シードデータをハッシュして第3ハッシュを生成するステップ(前記第3ハッシュは、前記第1エンティティに関連するデータトランザクションのヒストリー及び前記第2エンティティを含むデータトランザクションのヒストリーを含む)と、前記第2データトランザクションの前記レコードに対する前記第3ハッシュを前記メモリに格納するステップをさらに含んでもよい。

0029

第3シードデータを提供するステップは、前記第2データトランザクションの前記レコード、前記第1ハッシュ及び前記第2ハッシュと第3ゼロ知識証明及び第4ゼロ知識証明を結合するステップをさらに含み、前記第3ゼロ知識証明は、前記第1ハッシュが前記第1データトランザクションの真のハッシュを含むという証明を含み、前記第4ゼロ知識証明は、前記第2ハッシュが前記第2エンティティに関連する前記以前のデータトランザクションの前記真のハッシュを含むという証明を含んでもよい。前記第2エンティティに関連する前記以前のデータトランザクションは前記第1データトランザクションであってもよい。

0030

前記方法は、前記第1エンティティ及び/又は前記第2エンティティの識別子と前記ハッシュのそれぞれを関連づけるステップをさらに含んでもよい。前記方法は、前記第1ハッシュを再算出するステップと、マッチング(match)を決定するために前記生成された第1ハッシュを前記再算出された第2ハッシュと比較するステップをさらに含んでもよい。前記方法は、前記比較が不成功である場合、追加データトランザクションを取り消すステップをさらに含んでもよい。前記方法は、前記第1データトランザクションに対応するシステムハッシュをシステムデバイスに生成するステップをさらに含んでもよい。

0031

第2シードデータを提供するステップは、前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記システムハッシュを結合するステップをさらに含んでもよい。前記システムハッシュは、前記システムデバイス上の以前のデータトランザクションのレコードをハッシュした結果であってもよい。

0032

第2シードデータを提供するステップは、ライセンスデバイスからライセンスハッシュを受信するステップと、前記第2シードデータを提供するために前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記ライセンスハッシュを結合するステップをさらに含んでもよい。

0033

前記方法は、前記ライセンスデバイスで、前記第1ハッシュを受信するステップと、ライセンス入力を提供するために前記ライセンスハッシュと前記第1ハッシュを結合するステップと、前記ライセンス入力をハッシュして第2ライセンスハッシュを生成するステップをさらに含んでもよい。

0034

第2シードデータを提供するステップは、ディレクトリデバイスからディレクトリハッシュを受信するステップと、前記第2シードデータを提供するために前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記ディレクトリハッシュを結合するステップをさらに含んでもよい。

0035

前記方法は、前記ディレクトリサーバで、前記第1ハッシュを受信するステップと、ディレクトリ入力を提供するために前記ディレクトリハッシュと前記第1ハッシュを結合するステップと、前記ディレクトリ入力をハッシュして第2ディレクトリハッシュを生成するステップをさらに含んでもよい。

0036

第2シードデータを提供するステップは、前記第1データトランザクションに対する暗号化キーからキーハッシュを生成するステップと、前記第2シードデータを提供するために前記第1シードデータ及び前記第1データトランザクションの前記レコードと前記キーハッシュを結合するステップをさらに含んでもよい。前記暗号化つける公開キー又は個人キーを含んでもよい。

0037

前記第1シードデータ及び前記第1データトランザクションの前記レコードを結合するステップは、前記第1データトランザクションが完了するとすぐに実行されてもよい。前記メモリは遠隔デバイスに位置してもよい。前記方法は、他のデバイスから受信されたハッシュに対応する前記第1ハッシュを前記遠隔デバイスで比較するステップをさらに含んでもよい。前記方法は、前記デバイスに接続された他のデバイスに前記第1ハッシュを受信することを予想するよう通知するステップをさらに含んでもよい。

0038

前記方法は、前記メモリにハッシュチェーンを格納するステップをさらに含んでもよい。前記方法は、送信された前記ハッシュチェーンに対するアクセスを制限するように構成されたデバイスに位置する第2メモリに前記ハッシュチェーンを送信するステップをさらに含んでもよい。前記方法は、前記ハッシュチェーンでハッシュを修正又は削除するステップをさらに含み、前記ハッシュチェーンでハッシュを修正又は削除するステップは、前記ハッシュチェーンで対象のハッシュを再生成するステップと、前記レコードが修正されていないかの有無を確認するステップと、前記再生成されたハッシュをレコーディングするステップと、前記レコードを修正又は削除するステップと、前記対象のハッシュの結合及び前記修正及び削除されたレコードをハッシュして前記レコードに対する新しいハッシュを生成するステップと、前記新しいハッシュをレコーディングするステップを含んでもよい。前記方法は、前記新しいハッシュを用いてシステムハッシュを生成するステップをさらに含んでもよい。

0039

前記デバイスはサーバを含んでもよい。前記デバイスはユーザデバイスを含んでもよい。前記ユーザデバイスは、パーソナルコンピュータスマートフォンスマートタブレット又はモノのインターネット(IoT)可能デバイスのうちの少なくとも1つを含んでもよい。前記ユーザデバイスは前記デバイス上のメモリで前記第1ハッシュを格納してもよい。前記ユーザデバイスは、該当サーバからオフラインである場合にのみ、前記デバイス上のメモリで前記第1ハッシュを格納してもよい。前記デバイスは、前記第2エンティティに関連するデバイスに前記第1ハッシュを送信してもよい。前記デバイスは、前記第1データトランザクションの前記レコードに署名し、暗号化されたコピーを前記第2エンティティに関連する前記デバイスに送信し、前記署名は、前記第1データトランザクションの前記レコードに対する配信先サーバの表示を含んでもよい。前記デバイスは、特定のオフライン公開キーで前記レコードに署名してもよい。前記デバイスは、前記デバイスに属するキーで前記レコードに署名してもよい。前記配信先サーバのみが前記第1データトランザクションの前記レコードの前記暗号化されたコピーを解読してもよい。前記デバイスが対応するサーバと接続を回復するとき、前記デバイスは、前記関連するハッシュ及びそのオフラインデータトランザクションの前記暗号化されたレコードを対応するサーバに送信してもよい。前記デバイスは、自身が保有する他のエンティティを含むデータトランザクションのレコードのコピーを前記他のエンティティに対応するサーバへの送信のために自身に対応するサーバに送信してもよい。前記送信は、前記レコードが適用される全てのサーバに前記レコードを受信することを期待するよう通知することを含んでもよい。前記デバイスは、前記第1データトランザクションでこれの部分を識別するために固有の内部トランザクション番号を生成してもよい。

0040

前記許可するステップは、前記識別子に基づいて前記ユーザデバイスが前記第1サービスにアクセスするように許可されるかを確認するステップを含んでもよい。前記確認するステップは、前記識別子に基づいて前記ユーザが少なくとも1つの基準(criteria)を満足するかを確認するステップを含んでもよい。第1基準が前記第1ホストサーバ又は前記要求サーバに格納され、第2基準が他のサーバに位置してもよい。前記許可するステップは、前記要求サーバ及び前記第1ホストサーバ間の通信に対する署名を検証するステップを含んでもよい。

0041

前記許可するステップは、前記要求サーバで実行されてもよい。前記許可するステップは、前記要求サーバで前記デバイスが前記第1サービスにアクセスするように以前に許可されたかを決定するステップを含んでもよい。

0042

前記許可するステップは、ディレクトリサーバで実行されてもよい。前記許可するステップは、前記要求サーバが前記ディレクトリサーバから前記デバイスに対する許可を要求するステップを含んでもよい。前記アクセスさせるステップは、前記ディレクトリサーバが前記第1ホストサーバに対する識別子を前記要求サーバに送信するステップを含んでもよい。前記識別子を許可するデータは、前記ディレクトリサーバに格納されてもよい。

0043

前記方法は、第2サービスに対するアクセスを要求するステップと、前記識別子に基づいて前記デバイスが前記第2サービスにアクセスすることを許可するステップと、前記デバイスが前記要求サーバを介して前記第2サービスにアクセスさせるステップをさらに含んでもよい。前記第2サービスは、前記第1ホストサーバに位置してもよい。前記第2サービスは、第2ホストサーバに位置してもよい。

0044

前記デバイスが前記第1サービスにアクセスすることを許可するステップは、第1ディレクトリサーバで実行され、前記ユーザデバイスが前記第2サービスにアクセスすることを許可するステップは、第2ディレクトリサーバで実行されてもよい。

0045

前記方法は、第3サービスに対するアクセスを要求するステップと、前記識別子に基づいて前記デバイスが前記第3サービスにアクセスすることを許可するステップと、前記デバイスが前記第3サービスにアクセスさせるステップをさらに含んでもよい。

0046

前記第2サービスは、前記第1ホストサーバ、前記第2ホストサーバ又は第3ホストサーバに位置してもよい。前記デバイスが前記第3サービスにアクセスすることを許可するステップは、第3ディレクトリサーバで実行されてもよい。

0047

識別子を提供するステップは、前記デバイスが暗号化されたトンネルを介して前記要求サーバと通信するステップを含んでもよい。前記方法は、それぞれの個別サーバで受信されるデータをキャッシュするステップをさらに含んでもよい。それぞれのホストサーバは二以上のサービスを提供してもよい。

0048

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうちの少なくとも1つを含んでもよい。
前記移行するステップは、前記ディレクトリサーバで、前記第2データストアーで前記データに対する開始タイムスタンプ割り当てるステップと、前記第1データストアーで前記データに対する終了タイムスタンプを割り当てるステップを含んでもよい。

0049

前記方法は、前記終了タイムスタンプの後に前記第1データストアーを介して前記データにアクセスしようと試みる要求サーバに前記ディレクトリサーバを介して前記第2データストアーで前記ユーザを検索するように指示するステップをさらに含んでもよい。前記第1データストアーにおける前記データは第1アカウント提供者との第1アカウント登録を含んでもよく、前記第2データストアーにおける前記データは新しいアカウント提供者との第2アカウント登録を含んでもよい。前記移行するステップは、前記現在のアカウント提供者から前記新しいアカウント提供者に前記第1アカウント登録に関する情報を送信するステップを含んでもよい。前記情報は、登録(registrations)、残高balances)、コンフィギュレーション(configurations)及び/又は支払い指示(payment instructions)のうちの少なくとも1つを含んでもよい。前記移行するステップは、前記第1登録が前記現在のアカウント提供者から前記新しいアカウント提供者にスイッチされることを示す認証コード(authentication code)を確認するステップを含んでもよい。前記第1アカウント登録は第1ユーザ・クリデンシャルを含んでもよく、前記第2アカウント登録は第2ユーザ・クリデンシャルを含んでもよい。前記第1ユーザ・クリデンシャルは第1サーバに登録されてもよく、前記第2ユーザ・クリデンシャルは第2サーバに登録されてもよい。前記方法は、前記第1アカウント提供者によって前記第1ユーザ・クリデンシャルを用いてユーザに伝えられる通信を受信するステップと、前記第2ユーザ・クリデンシャルを用いて前記通信を前記第2アカウント提供者にルーティングするステップをさらに含んでもよい。前記方法は、前記第1クリデンシャルを使用する前記第1登録提供者で作られたデータトランザクションを前記第2ユーザ・クリデンシャルを使用する前記第2登録提供者に反転させるステップをさらに含んでもよい。前記方法は、前記データトランザクション時に前記ユーザが前記第1ユーザ・クリデンシャルを使用したことを決定するステップをさらに含んでもよい。前記通信を送信するサーバは、前記第2ユーザ・クリデンシャルにアクセスするように承認されなければならない。

0050

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうちの少なくとも1つを含んでもよい。
前記方法は、ランダムフィールドを前記第2通信に追加するステップをさらに含んでもよい。それぞれのフィールドは2つ以上の特徴を含み、前記方法は、少なくとも1つのフィールドで特徴のケースミキシングするステップをさらに含んでもよい。

0051

前記方法は、前記第2通信を処理する前に、前記第2エンティティによって前記第2通信で前記フィールドを解読及び順序化するステップをさらに含んでもよい。前記方法は、前記第2エンティティによって処理できないフィールドを廃棄するステップをさらに含んでもよい。前記第1エンティティ及び前記第2エンティティのうちの少なくとも1つはサーバを含んでもよい。前記第1エンティティ及び前記第2エンティティのうちの少なくとも1つは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスを含んでもよい。前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうちの少なくとも1つを含んでもよい。

0052

前記符号化するステップは、前記サイファーテキストを7ビット又は8ビット文字ストリングに符号化するステップを含んでもよい。前記方法は、前記サイファーテキストの前記長さが前記USSDセッションで前記許されたスペースよりも長い場合、前記サイファーテキストを2つ又は2つ以上の部分に分割ステップと、前記2つ又は2つ以上の部分を個別的に送信するステップをさらに含んでもよい。前記解読は、前記第2デバイスから前記全体サイファーテキストに前記2つ又は2つ以上の部分をリアセンブルするステップをさらに含んでもよい。

0053

前記方法は、前記第1及び第2デバイスを認証するステップをさらに含んでもよい。前記認証するステップは、2つの通信コンピュータアプリケーション間プライバシー及びデータ無欠性を提供するアルゴリズムを使用するステップを含んでもよい。前記認証するステップは、TLS(transport layersecurity)を使用するステップを含んでもよい。TLSを使用するステップは第1セッションキーを生成するステップを含んでもよい。

0054

前記方法は、第2セッションキーを生成するためにPAKEプロトコルネゴシエーション(PAKE protocol negotiation)を暗号化する前記第1セッションキーを使用するステップと、前記第2セッションキーを用いて前記第1デバイスと前記第2デバイス間の前記セッションで追加通信を暗号化するステップをさらに含んでもよい。

0055

前記方法は、前記第1エンティティ及び前記第2エンティティを認証するステップをさらに含んでもよい。前記認証するステップは、2つの通信コンピュータアプリケーション間のプライバシー及びデータ無欠性を提供するアルゴリズムを使用するステップを含んでもよい。前記認証するステップは、TLSを使用するステップを含んでもよい。前記方法は、第4共有秘密を用いて前記第1デバイス及び第3デバイス間の第2PAKEセッションを生成するステップをさらに含んでもよい。前記第4共有秘密は、前記第1デバイスのために前記第3デバイスによって生成された認証コードを含んでもよい。

0056

前記第1共有秘密は、前記第1デバイスのために前記第2デバイスによって生成された認証コードを含んでもよい。前記認証コードは、前記第1デバイスのために識別子と共に前記第1デバイスに送信されてもよい。前記識別子は、前記第1デバイスのモバイル番号又はシリアル番号を含んでもよい。前記第1共有秘密は、前記第1エンティティに関連する銀行カードのPAN(personal account number)を含んでもよい。前記第1共有秘密は、前記第1エンティティに関連する銀行カードの符号化されたシリアル番号を含んでもよい。

0057

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうちの少なくとも1つを含んでもよい。
前記サービスに対するアクセスを認証するステップは、前記クリデンシャル及び/又は前記コンテキストに基づいてサービスの一部に対するアクセスを認証するステップを含んでもよい。前記クリデンシャルは、デバイス及び前記デバイスのプライマリユーザ(primary user)に関する第1クリデンシャルを含んでもよい。前記クリデンシャルは、デバイス及び前記デバイスのセカンダリーユーザに関する第2クリデンシャルをさらに含んでもよい。前記クリデンシャルに基づいて前記サービスに対するアクセスを認証するステップは、前記第1クリデンシャル及び前記第2クリデンシャルのそれぞれに基づいて前記プライマリユーザ及び前記セカンダリーユーザに対する異なるサービスに対するアクセスを認証するステップを含んでもよい。前記デバイスは、前記プライマリユーザ及び前記セカンダリーユーザに対する異なる支出限度である前記異なるサービス及び銀行カードを含んでもよい。前記クリデンシャルは、前記コンテキストに基づいて選択されてもよい。前記サービスは、前記コンテキストに基づいて選択された複数のサービスを含んでもよい。管理者又はユーザは、前記コンテキスト又はクリデンシャルを修正、追加又は取り消してもよい。前記クリデンシャルは、パスワード、PIN、及び/又は他の直接認証クリデンシャル(direct authentication credential)のうちの少なくとも1つを含んでもよい。前記コンテキストは、前記クリデンシャルを提供するデバイス、前記デバイス上のアプリケーション、前記デバイスが接続されたネットワーク、前記デバイスの地理的位置、及び/又はアクセスされる前記サービスのうちの少なくとも1つを含んでもよい。

0058

前記デバイスは、パーソナルコンピュータ、スマートフォン、スマートタブレット又はモノのインターネットが可能なデバイスのうちの少なくとも1つを含んでもよい。
前記方法は、複数の要求を前記第1モジュールのバッファメモリでバッチされたメッセージにバッチするステップと、前記第2モジュールに送信される前記バッチされたメッセージをキューイングするステップと、システム機能を許可する少なくとも1つのシステムフラグをセッティングするステップと、前記第2モジュールで前記少なくとも1つのシステムフラグをチェックするステップと、前記第2モジュールで前記バッチされたメッセージを処理するステップをさらに含んでもよい。

0059

前記方法は、前記第1モジュールと前記第2モジュールとの間の少なくとも1つの共有メモリチャネルを設定するステップをさらに含んでもよい。前記方法は、前記少なくとも1つの共有メモリチャネルを介して前記第1モジュールに応答する前記第2モジュールを含んでもよい。前記少なくとも1つの共有メモリチャネルは、前記バッチされたメッセージを受信及びアセンブルし、前記第2モジュールに前記メモリの所有権を渡してもよい。前記少なくとも1つの共有メモリチャネルは、前記コンピュータシステムのネットワークスタックを介してバッチされたメッセージを受信してもよい。前記少なくとも1つの共有メモリチャネルは、HTTPゲートウェイを含んでもよい。前記HTTPゲートウェイは、ウェブサービスとして使用されてもよい。

0060

通信は、パスワード認証されたキー交換プロトコルを使用してもよい。前記方法は、前記コンピュータシステムのネットワークスタックでゼロコピーネットワーキング(zero−copy networking)を使用するステップをさらに含んでもよい。前記方法は前記コンピュータシステムのネットワークスタックでユーザモードネットワーキングを使用するステップをさらに含んでもよい。

0061

前記方法は、前記第1モジュールから前記データ送信の前記コンポーネントが単一データストリームに結合し、前記第1モジュールで前記コンポーネントに分離されるようにデータを直列化するステップをさらに含んでもよい。前記直列化は、各モジュールのエッジ抽象化されてもよい。

0062

各モジュールのバッファメモリは、構成可能なバッファリング閾値を有してもよい。前記第1モジュール及び前記第2モジュールは同じコンピューティングデバイス上に位置してもよい。前記第1モジュール及び前記第2モジュールは、異なるコンピューティングデバイス上に位置してもよい。

0063

前記第1モジュールから前記第2モジュールに送信されたデータはバージョンID(version ID)を運んでもよい。前記方法は、前記バージョンIDが前記第1モジュールから前記第2モジュールに送信された前記データに対して最新であるかを検証するステップをさらに含んでもよい。前記方法は、前記データのうち任意のデータがアップデートされる場合、前記バージョンIDを現在のバージョンに再検証するステップをさらに含んでもよい。前記バージョンIDが検証されない場合、前記データ送信は失敗することがある。

0064

前記第1モジュール及び前記第2モジュールのうちの少なくとも1つは少なくとも1つのデータサービスモジュールを含んでもよく、前記コンピュータシステム内のそれぞれのデータ処理は、前記少なくとも1つのデータサービスモジュールを介して実行されてもよい。前記少なくとも1つのデータサービスモジュールは、コアデータベースストアーによって実現されるデータストアーと通信してもよい。前記少なくとも1つのデータサービスモジュールは、前記データストアーに直接アクセスする前記コンピュータシステムのコンポーネントであってもよい。前記コアデータベースストアーは、少なくとも1つの分散データベースを含んでもよい。前記少なくとも1つの分散データベースは、別途読み出し及びレコードアクセスチャネルを有してもよい。前記データストアーは、少なくとも1つの異種データベースにインタフェースを提供してもよい。前記データストアーは、複数のインタフェースタイプを提供してもよい。前記複数のインタフェースタイプは、少なくとも1つのSQL(Structured Query Language)インタフェース、セル及びコラムインタフェース(cell and column interface)、文書インタフェース(document interface)、及び前記コアデータベースストアー上にあるグラフィックインタフェース(graph interface)のうちの少なくとも1つを含んでもよい。前記データストアーレイヤに対する全てのレコードは、1つ又は1つ以上のデータトランザクションの全て又は一部を制御する単一共有モジュールによって管理されてもよい。

0065

前記方法は、少なくとも1つの前記共有モジュールのリダンダントバックアップを作動させるステップをさらに含んでもよい。全てのデータ変更は、シリアルの高速シーケンス(serial rapid sequence)で前記単一共有モジュールを介して行われてもよい。前記単一共有モジュールは、それ自体をデータトランザクタクラスタ(data transactor cluster)に示すホットバックアップリダンダンシーモデル(hot backup redundancy model)を使用し、前記データトランザクタククラスタは、ハイアラーキー(hierarchy)でモジュールのセットであり、各モジュールは、マスタモジュールが失敗する場合にデータトランザクションを制御してもよい。前記方法は、ドメインによって構成される規則に基づいて、モジュール又はデータストアーにわたってデータを分割するステップをさらに含んでもよい。前記方法は、データトランザクションのレコード又は親データトランザクション(parent data transaction)のレコードのターゲットデータをハッシュするステップをさらに含んでもよい。前記ハッシュするステップは、データパーティションの数と同じカーディナリティ(cardinality)を有してもよい。前記方法は、挙げられた地理的領域名字及び/又は通貨のうちの少なくとも1つによってターゲットデータをハッシュするステップをさらに含んでもよい。

0066

前記方法は、複数のデータパーティションにわたって前記少なくとも1つのデータサービスモジュールを介して少なくとも1つのデータ送信を行うステップをさらに含んでもよい。前記方法は、多重モジュールによって前記少なくとも1つのデータサービスモジュールを介して少なくとも1つのデータ送信を完了するステップをさらに含んでもよい。前記方法は、前記少なくとも1つのデータサービスモジュール上の少なくとも1つのデータ送信を前記データストアーで複数のデータストレージノード上に保持するステップをさらに含んでもよい。

0067

前記コンピュータシステムは、複数のデータサービスモジュールを含んでもよく、それぞれのデータサービスモジュールは、該当インスタンスに対する全ての前記ホットデータのキャッシュされた表現を含み、イン−メモリ(in−memory)/イン−プロセス(in−process)データベースエンジンをホストしてもよい。前記コンピュータシステムは複数のデータサービスモジュールを含んでもよく、それぞれのデータサービスモジュールは、複数の異種又は同種データベースエンジンを含んでもよい。

0068

前記方法は、正確に全てのデータ読み出しが一貫し、対応するデータレコードを反映するように、前記データストアーに対するアクセスの同時性を管理するMVCC(Multiversion Concurrency Control)バージョンシステムを使用するステップをさらに含んでもよい。前記方法は、データレコードが前記データストアーにレコードされ、任意の後続データトランザクションが前記データレコードにアクセスする前にレコードされたことが確認されなければならないように、前記データストアーに対するアクセスの同時性を管理する悲観的一貫性(pessimistic consistency)を使用するステップをさらに含んでもよい。

0069

前記コンピュータシステムは、アプリケーションレイヤをさらに含んでもよく、前記少なくとも1つのデータサービスモジュールが前記レコードをレコードし、前記データ送信を完了することを確認するまで、前記アプリケーションレイヤはデータトランザクションを進めることができない。

0070

第1実施形態ないし第26実施形態の全ての選択的な特徴は、必要な部分のみを変更し、他の全ての実施形態に関連する。説明された実施形態の変形が想定され、例えば、全ての開示された実施形態の特徴は任意の方式により組み合わせられてもよい。

図面の簡単な説明

0071

Tereonのモジュラー概念を示す。
Tereonシステムアーキテクチャーの例を示す。
Tereonがサービス及びデバイスを機能領域及びコンテキスト、デバイス、コンポーネント及びプロトコルで抽象化する方法を示す。
仲介者プロキシを通したTLS接続を介して開始された通信を示す。
プロキシメモリで共有メモリ及びメッセージ伝達の使用を示す。
共有メモリ及びセマフォハンドオーバーモジュールを示す。
4つのアカウントを含むハッシュチェーンを示す。
同一システム上の2つのアカウントを含むハッシュチェーンを示す。
トランザクションステップインターリビングする同一システム上の3つのアカウントを含むハッシュチェーンを示す。
ライセンスハッシュの樹枝状特性(dendriticnature)を示す。
しばらくの間にオフライン状態になる4つのデバイスを含むハッシュチェーンを示す。
2つのサーバによって実現された逆ルックアップ機能を示す。
Tereonサーバ間の通信設定を示す。
ユーザが他のサーバに移動する通信を示す。
ディレクトリサービスが要求サーバを2つの他のサーバに接続できる方法を示す。
多角的なクリデンシャルを構成するためにサーバが3つのサーバからクリデンシャルを取得しなければならないケースを示す。
銀行とユーザとの関係を示す。
アカウントが振込されるプロセスを示す。
登録されたモバイル番号が変更されるプロセスを示す。
2つの貨幣にアクセスするために予め登録されたモバイル番号の保持を示す。
それぞれの通貨が別途のサーバ上にある2つの通貨にアクセスするために予め登録されたモバイル番号の保持を示す。
ワークフローを示す。
代案的なワークフローを示す。
代案的なワークフローを示す。
例示的なコンピューティングシステムを示す。

実施例

0072

本発明の実施形態は同じ部分を示すために同じ参照番号が用いられた添付図面を参照して例として説明される。
Tereonは、電子トランザクション処理及び認証エンジンである。これはモバイル及び電子支払い処理システムで実現される。また、これはIoT通信システムの一部として他の実現で使用され得る。

0073

Tereonは、任意のIP(internet protocol)支援デバイス及びこのようなIP支援デバイスと相互作用できる任意のデバイスに対するトランザクション機能を提供する。各デバイスは、固有なIDを有する。Tereonの使用事例は、IoTデバイスから医療記録アクセス及び管理、モバイル、支払い端末又はATM(Automated Teller Machin)のような、よく見られる支払いまで様々である。初期の実現例において、Tereonは、モバイル、カードPOS(poing−of−sale)端末及び固有参照IDを支援する。Tereonは、消費者及び販売者が支払い、支払いの受領資金送金、資金の受領、返金、返金の受領、資金の引き出し、アカウントデータを確認し、過去のトランザクションのミニ明細書の表示を可能にするために必要な機能を提供する。Tereonは、通貨間及び国を越えたトランザクションを支援する。したがって、消費者は、1つの通貨でアカウントを保有できるが、例えば、別の通貨で振込みすることができる。

0074

Tereonの初期の具現において、最終のユーザが特定のトランザクションを実行できるかどうかは、その時点で使用していたアプリケーションによって異なる。販売者又は販売者の端末は、一部のトランザクションを開始することができる一方、消費者デバイスは他のものを開始することができる。

0075

Tereonが支払いを処理するために用いられる場合、トランザクションは次のようなモードに細分化される。支払い、支払いの受領、モバイル消費者対モバイル販売者、モバイル消費者対オンライン販売者ポータル、顧客のないモバイル消費者対モバイル販売者、アカウントポータル内消費者アカウント対販売者アカウント、NFC−Tereonカード消費者対カード販売者、NFC又は他のカード消費者対カード販売者、資金振込み及び受領、アカウントポータル内で消費者アカウント対消費者アカウント、モバイル消費者対ピアツーピアモバイル消費者、モバイル消費者対ピアツーピアカード消費者、カード消費者対ピアツーピアモバイル消費者、カード消費者対ピアツーピアカード消費者、モバイル消費者対ピアツーピア非ユーザ、カード消費者対ピアツーピア非ユーザ、非ユーザ対ピアツーピア非ユーザ、非ユーザ対ピアツーピアモバイル消費者、及び非ユーザ対ピアツーピアカード消費者、非ユーザは、送金の未受取人のように前に支払いサービスへ登録されていない人を示す。

0076

・システムアーキテクチャー
内部的に、Tereonサーバは、2つのメインコンポーネントであるTRE(Tereon Rules Engine)及びSDASF(Smart Device Application Services Framework)を含む。

0077

SDASFは、Tereonが様々な相異なるデバイス及びインタフェースを管理することができる。これは、Tereonが該当のデバイス及びインタフェースが作動し、Tereonに接続される方式を定義するために、一連の抽象化されたレイヤを使用及びリンク可能にすることによって実現される。

0078

例えば、全ての銀行カードは、基本カード抽象化レイヤを使用する。磁気ストライプ抽象化レイヤは、磁気ストライプのあるカード、NFCチップのあるカードに対するNFCレイヤ、及びチップコンタクトのあるカードに対するマイクロプロセッサーレイヤに適用されるのであろう。カードが3つの全てを使用する場合、Tereonは、メインカード抽象化レイヤ及び3つのインタフェースレイヤでそのカードを定義する。NFCレイヤのそれ自体がカードにのみ適用されるものではない。これは、モバイルを含むNFCを支援できる任意のデバイスにも適用され得る。SDASFは、デバイス又はインタフェースそれぞれに対するモジュールを生成するために、このような抽象化レイヤを使用する。

0079

外部的には、デバイス又はネットワークに対する各接続及び各サービスはモジュールである。したがって、ピアツーピア支払いサービス、入金サービス、及びミニ明細書のようなサービスは全てモジュールである。カード製造社、銀行、サービス提供者、端末、ATMなどに対するインタフェースも同様である。Tereonのアーキテクチャーは、様々なモジュールを支援し得る。

0080

・モジュラー観点(Modular view)
図1は、Tereonのモジュラー概念を示す。本質的に、Tereonは、モジュールの集まりであり、そのほとんどはモジュールを含んでいる。モジュールは、該当のモジュールが動作するコンテキスト及び機能ドメイン、及びそれが実行するために必要な機能を決定するビジネスロジックによって定義される。このような機能は、例えば、IoTデバイス間の動作及び通信を管理し、電子又はデジタル支払いの管理及び取引、識別又は要求による許可クリデンシャルを管理及び構成したり、任意の他の形式の電子トランザクション又はデバイスを管理及び運営するような任意のタイプの電子トランザクションであり得る。

0081

・Tereonサーバ
図1に示すように、Tereonサーバ102を構成するモジュールは、SDASF104及び規則エンジン106といった2つのレベルで見ることができる。規則エンジン106そのものは、モジュール108(その中の一部は図1に示され、これはサービスを定義するモジュール、プロトコル(図示せず)、スマート装置、端末などを含む)それぞれの機能ドメイン及びコンテキストを定義し、次に、このようなモジュール108は、SDASF104の構造を定義する。その次に、SDASF104及びこれが支援している結果サービス及びインタフェースは、Tereonが利用できるシステムプロトコルを定義する。その次に、このようなプロトコルは、Tereonが支援できる規則及びサービス((例えば、スマートデバイス、端末など)それ自体はTereonが提供する機能ドメイン及びコンテキストを定義する)を定義する。この循環的又は繰り返し的なアプローチは、モジュールの定義及びそれが支援している機能又は要求事項が互いに一致するかを確認するために用いられる。これにより、システムの動作を制限することなく、元の位置でモジュールがアップデートかつアップグレード、及び交換することができる。

0082

ブロック及びモジュールは、抽象化されたAPIs((application programming interfaces)それ自体は、Tereonが提供する機能ドメイン及びコンテキストを定義する)を用いてインタフェースする。可能であれば、これは共有メモリを使用できるオーダーメード型セマフォハンドオフモジュールを用いて通信し、その一例が図4aに示されている。これについては後述する。このような方式により、ブロック及びモジュールの内部動作及び機能は、全体システムの動作を損なうことなく、アップデートされたり交換され得る。

0083

・フレームワークインフラストラクチャーコンポーネント(Framework infrastructure components)
インフラストラクチャーコンポーネントもモジュラーである。SDASFの場合、このコンポーネント自体がモジュールを含む。

0084

マルチインタフェース(Multiple interfaces)
各インタフェースは、コアサーバに接続される別途のモジュールとして構成される。したがって、Tereonのモジュラー構造は、バックオフィス(back offices)及びコアシステムを含むマルチインタフェース、カード、決済機関、販売者、モバイル電話機、サービス、サービス提供者、ストレージ、端末、SMS(short messaga service)ゲートウェイ、HLR(home location register)ゲートウェイなどを支援し得る。

0085

データベースインタフェースは、SQL(structured query language)エントリ及び格納されたデータのグラフ分析の全てを支援する。また、インタフェースは、データベース内にフィールドを区分するためにアクセス制御を支援する。他のユーザ規則及び許可レベルは、定義されたデータセット及びフィールドをアクセスし得る。アクセスは、様々なセキュリティー手段によって制御される。アクセス、認証、及び許可は、ACLs(access control lists)、LDAP(lightweight directory access protocol)、セル及びローセキュリティー(cell and rowsecurity)のようなカスタム役割ベースのアクセス(custom role−based access)、及び個別の役割に制限されるアクセスインタフェースを含む産業標準の様々なアクセス方法により提供され得る。

0086

・Eコマースポータル(E−commerce portals)
Tereonは、ポータルの運営者が該当のポータルに対するプラグインを生成できるように、APIを介してEコマースポータルを支援し得る。

0087

・規則エンジン(Rules engine)
規則エンジン106は、新しいサービスがトランザクションに対して抽象化された様々なコンポーネントを共に編成して構築したり、新しいデバイスを支援する。規則は、配布されたサービスに対するビジネス論理を定義し、サービス提供者などはこのようなサービスを個別ユーザに合わせて調整できる。

0088

規則は、UML(unofied modelling language)又は一般英語(plain english)に類似のコードで定義される。エンジンは、規則を構文分析し、抽象化されたコンポーネントからサービスを生成し得る。

0089

コンポーネントの抽象化された特性は、新しいサービス又はデバイスモジュールが迅速に生成できる。これにより、Tereonは、必要に応じて、新しいサービス又はデバイスを支援できる。

0090

Tereonの内部インタフェースは、プロトコルに影響を受けないことから、外部プロトコルモジュールが機能に影響を及ぼすことなく交換することができる。例えば、銀行コアシステムにインタフェースを行うために、カスタムデータ交換プロトコルは、組織の一部とISO20022プロトコルモジュールを他の部分と共に使用される。

0091

SDASF104により、Tereonが多重スマートデバイス及びプロトコルを支援できる。SDASF104のアイディアは、エンティティをデバイスタイプ及びプロトコルに抽象化することにある。SDASF104は、各デバイスが特定のサービス又は機能に必要なプロトコルを呼び出すものと多重プロトコルを定義する。

0092

SDASF104は、インストールの動作に影響を与えることなく、既存のインストールに新しいモジュールを追加して拡張される。どちらの方法を用いて全てのサービスをバックオフィスサーバに定義できる。販売者端末(merchant terminals)にインストールされれば、Tereon端末アプリケーションは、消費者にサービスを提供するためにSDASFと通信する。

0093

図2は、Tereonシステムアーキテクチャー200を示す。ここで、ダイヤグラム及び描写が特定のソリューションを介して特定のコンポーネントを示す場合、これが単に実施形態で選択されるコンポーネント又は言語であるためである。オーダーメード型(bespoke)システムは、このようなコンポーネントを置き換えたり、より効率的なものと立証され得る他の言語及びシステムを使用するために構築される。

0094

・Tereonサーバ(The Tereon server)
Tereonサービス202は、モノリシックアーチファクトとして識別される論理的構造である。実際に、それは各機能及び範囲により異なる、隔離されたマイクロサビスのセットとして存在し得る。

0095

通信レイヤ(The communications layer)
通信レイヤ204は、仲介者プロキシを経てTLS(transport layersecurity)接続を介して開始される。これについても図3に示される。TLSは、コンピュータネットワーク、一般的にTCP/IP(transmission control protocol/internet protocol)ネットワークを介して通信セキュリティーを提供する暗号化プロトコルである。各コンポーネントは、システム、オブジェクト又はサービスに接続されたり、アクセスできるユーザ又はシステムプロセスを明示するACL(access control list)がある。これにより、仲介者のみがくオリジナル接続(incoming、original connection)を設定し、本質的なセキュリティーが強化され、危険プロファイルは減少される。この例では、プロキシは、専門化されたTereonカスタマイズを使用した、従来技術で知られているHTTPゲートウェイプラットフォームを使用している。

0096

個人DNSネットワーク(Private DNS network)
DNS206は、ディレクトリサービス216の基礎として用いられる。ディレクトリサービス216は極めて重複し、地理的な位置にわたって複製される。しかし、その構造及び機能は、下記に説明されるように既存のDNSサービスが提供できるものを遥かに超えるものである。

0097

・抽象化(Abstractions)
図2aは、Tereonがそのサービス及びデバイスを、消費者又は消費者の処理及び規則、販売者の処理及び規則、銀行の処理及び規則、振込みの処理及び規則、デバイス機能及び規則などのような機能ドメイン及びコンテキストに抽象化する方法を示す。図1は、コンポーネント及びシステムのサービスを機能ブロック又はモジュールに抽象化することにより、Tereonがこのような抽象化にどのように映像を及ぼすかを図示する。

0098

Tereonモジュールは、このような抽象化から構成される。各デバイス、各インタフェース、及び各トランザクションタイプは、そのドメイン及びコンテキストに抽象化される。このような抽象化は再利用でき、意味がある場合や許可される場合に、他のものにインタフェースし得る。例えば、チャージカードクレジットカードデビットカード、及びロイヤルティカードの各モジュールは、一般的な基本抽象概念を使用する。支払い及び資金の振込みモジュールも同様である。

0099

・プロトコル(Protocols)
Tereonが支援するプロトコル204及び212のそれぞれは、それ自体がモジュールとして実現される。Tereonは、このようなモジュールを必要とするサービス又はコンポーネントがこのモジュールを利用できるようにする。

0100

レガシーシステムでは、ハードウェアを追加する前に、100s又は1000sに同時に生じるトランザクションを処理するのに苦労している。システムをアップデートする代わりに、銀行は、調整アカウント及び支払いポイントまで信用をカバーするための高いコストが要求される定期的な支払いシステムに依存してきた。Tereonは、信用露出及びこのようなアカウントに対する必要性から離隔されている。これは秒当たり100、000件のトランザクションを処理するように求められる極めて安価なシステムを提供する。Tereonは弾力性が構築され、サーバ当たり秒当たり1、000、000件のトランザクションを支援し、高価なハードウェアに依存することなく、ハイエンド商品ハードウェアで動作するように設計されている。また、Tereonは、ACID保証やそのリアルタイム性能を損傷することなく、ほぼ水平方式(near−linear fashion)で水平及び垂直スケーリングを支援する。

0101

・ライセンスサブシステム(The licensing subsystem)
Tereonライセンスサーバ210は、システムのコンポーネントが単一に配布されたインスタンス(単一インスタンスのマイクロサービスはマシーンが、例えば、物理機械、論理的機械、仮想機械コンテナや実行可能なコードを含むための一般的に用いられるメカニズム、及び任意の数又は機械のタイプに関わらず単一マシーン上のプロセス間通信に結合される)内で配布インスタンスの全体(例えば、相互通信する個々の消費者プラットフォーム)内で、合法的で、認証されて認可されたピアシステム(peer systems)と通信することを保障する。ライセンスプラットフォームは、当技術分野で知られた認証機関の構造を介して実現される。

0102

コンポーネントがシステムにインストールされるとき、それらは規定されて設定可能な間隔で、安全で認証された接続を介して、ライセンスサーバに認証書署名要求と共にそれらのインストール詳細(組織、コンポーネントタイプ及び詳細、ライセンスキーなど)を伝達する。

0103

認証書サーバは、その詳細を許可されたコンポーネントディレクトリと比較し、一致すると、インストールの要求を開始するデバイスへ内部の認証機関ハイアラーキーで隔離されたセキュリティー署名キー(一般的に、ハードウェアセキュリティーモジュールを介して)で署名され、一定期間(例えば、1ヶ月)の間に使用可能な新しい認証書を承認する。接続システムの全てのクロック同期化される。

0104

その次に、呼出者(caller)は、他のモジュールとの通信を開始するときクライアント認証書として、また、接続の受信者として役割を果たすとき、サーバ認証書として認証書を使用する。個人キーを受信していないライセンスサーバは、たとえ損傷されても、他の第3者がこの認証書を偽装することを可能にするような詳細を有しない。必要に応じて、呼出者は、クライアント認証書及びサーバ認証書といった2つの認証書をライセンスサーバから要求できる。

0105

各コンポーネントは、サーバ及びクライアント認証書が信頼できる認証された認証機関のエージェントによって署名されていることを検証し、それが中間者攻撃又は監視の対象ではなく、相手側(counter−party)がそれが言う人であるという相当な確信をもって通信できる。各認証書は、各モジュールそのもの(例えば、特定の組織に対するルックアップサーバとして)を表示できる方法を制限する使用コードメタデータによって承認される。組織は、全ての関係者がライセンスを取得した合法的で有効なインスタンスを運営することを保証する。

0106

多くの認証書は、期限満了して固定期間の間に更新されることなく、また承認されない。しかし、認証書が損傷されたり、ライセンスが終了又は一時停止される場合に取り消しリストが使用され、必要に応じて、プロキシサービス非同期的分配される。アクティブ認証書ディレクトリは常に保持され、定期的な監査に使用できる。

0107

双方向の有効検査の利点の他に(クライアントは、自分が話者であり、各接続のサーバは報告する者である)、この実現によって、コンポーネントが遠隔ライセンスサーバとの通信に必要な各接続の構築なしに安全に相互通信を可能にし、プラットフォームの全般的な信頼性を低下させることなく安全に通信可能にする。

0108

サイト間の通信(Site to site communications)
サイト間の通信は、識別されて公開されているHTTPゲートウェイインスタンス(HTTPgateway instance)212を介して容易になり、カスタムゼロ−コピー及び選択的なユーザモード機能を実行する。これは、モバイルデバイス、端末、及びその他の外部関係者がサイト間の接続は勿論、インスタンスと通信するために用いられるプラットフォームである。これは、産業標準の侵入検知レート制限、及びDDOS(distributed denial−of−service)攻撃保護、ハードウェア暗号オフロードなどに対応する。これは機能的に、論理的インスタンスプロキシメカニズムであり、同じ機能(クライアント/サーバ認証書及び有効性検査を含む)を全て支援すると共に、外部で認められている認証機関を外部の当事者に使用する。

0109

・Tereonデータサービス(The Tereon data service)
Tereonシステムの重要な特徴の1つとして、以前のシステムよりも遥かに多いトランザクション(処理量の観点で)を処理できることである。これは、データ及びトランザクションを処理できる高度な同時性、迅速性、及び拡張性に優れる処理ネットワーク、極めて効率的なデータサービスレイヤのみならず、処理オーバーヘッドを最小化するアルゴリズム及びオーダーメード型モジュールを実現する独自の設計によるものである。

0110

説明された性能特性は、コンピューティングハードウェアの特定の部分で多く実行される規模拡張に主にターゲットされることで、運営コスト及び消費電力が大幅に減少される。ただし、設計は単一システムに限定されず、Tereonシステムは、複数のデバイス上に同時に実行できる各サービスを用いて垂直及び水平的に膨大な規模でスケールアウト(scaling out)し得る。

0111

単一のシステム又はサーバ上で高いレベルの性能を取得するために、システムは、不要な直列化を避け、不要なストリーム処理を避け、不要なメモリコピーを避け、ユーザからカーネルモードへの不要な切り替えを避け、プロセス間コンテキストスイッチを避け、ランダム又は不要なI/Oを避けることで、処理オーバーヘッドを可能であれば最小化する。システムが正常に作動するとき、これは該当システム上に極めて高いレベルのトランザクションパフォーマンス達成を図ることができる。

0112

既存のモデルでは、サーバAが要求を受信する。その後、サーバBへのクエリを構築して直列化し、すぐにサーバBに該当クエリを送信する。その後、サーバBは(必要に応じて)該当クエリを解読し、逆直列化して解釈する。その後、応答を生成して直列化し、必要に応じて該当び応答を暗号化してから応答をサーバA又は他のサーバに再度送信する。カーネル及びプロセスコンテキストの切り替えは、メッセージごとに数十回行われ、単一のメッセージは様々な形態に何度もキャストされ、メモリは多くの作業バッファ間でコピーされる。このようなカーネル及びプロセスコンテキストの切り替えは、処理されるメッセージごとに大規模の処理オーバーヘッドを課する。

0113

通信アーキテクチャー(Communications architecture)
Tereonは、システムによって処理される従来方式のデータ及び通信を再構成し、その処理量を達成する。可能であれば、Tereonは、カーネルによって課される処理オーバーヘッドを避け、標準データ管理モデルで頻繁に発生するセキュリティー問題を回避するために、運営システムカーネルをバイパスする。

0114

システムで各データ処理は、データサービスインスタンス214を介して実行される。これは、直接データプラットフォームアクセスを有するシステムの唯一のコンポーネントである、規模の縮小されたサービス(指向データサービスレイヤ)である。したがって、システム上の全てのデータ処理は、必ずこれを通過しなければならない。

0115

データサービスレイヤ214は、別途の専用の読み出し及びレコードアクセスチャネル226を介してデータストアレイヤ220と通信する。データストアレイヤ220は、それ自体が少なくとも1つの分散データベースを含むコアデータベースストア224を介して実現される。このようなデータベースは、ACID保証を提供する必要がない。これはデータストアレイヤによって管理される。

0116

データストアレイヤ220に対する全てのレコードは、全てのデータ変更が因果関係を保持するためにシリアルの高速シーケンスで進行されながら、単一共有トランザクタによって管理され、これを通じて全てのデータ変更が因果関係を保持するためにシリアルの高速シーケンスで進行される。トランザクタの設計は、データトランザクタクラスタ222として自身を提示するホットバックアップリダンダンシーモデル(hot backup redundancy model)を使用する。1つのトランザクタがいずれかの理由によって失敗したり停止する場合、他のランザクションのいずれか1つはすぐに引き継ぐのであろう。

0117

データプラットフォームは、全てのデータドメインに対する分割を支援するが、その支援は図示されていない。いずれのケースで単一データストアレイヤ(無制限データノードによってバックアップされる)が禁止されたり、又は規制上の理由がある場合、データは互いに異なるトランザクションを用いて互いに異なるデータクラスタに格納するために、命令的又は宣言的な方法によって分割される。例えば、1つのサイトは4つのデータプラットフォームがあり、プラットフォームは、地理的又は司法的な基準により顧客を分割したり、1〜5で始まるアカウト、又は6〜0で始まる他のアカウントで顧客を分割する。これに対する処理上の問題があるが、これはプラットフォームによって支援される。

0118

図3は、データサービスレイヤ214及びそれから通信をルートする通信レイヤ204を通した通信を示す。モジュール350が他のモジュール360と通信する必要がある場合、まずプロキシ370と接続を開始し、ステップ302でクライアント認証書を認証し、ステップ304でプロキシ認証書が構築するとき有効に信頼されるかをチェックする。モジュール350は、ステップ306でメッセージをプロキシ370に伝達する。プロキシ370は、ステップ308でターゲットモジュール360と関係接続(correlating connection)を設定する。まず、ステップ308で自身を認証し、ステップ310でモジュールの認証書が有効に信頼されるかを検証する。プロキシ370は、ステップ314でモジュールの応答を受信する前に、ステップ312でイニシエーター(モジュール350)の確認された詳細を伝達する。プロキシ370は、ステップ316でターゲット(モジュール360)の詳細及びその応答を返す。これにより、プロキシ370を介してモジュール350及びモジュール360間の通信チャネル確立し、2つのモジュール全てが高い信頼度で互いに認証されて識別され、必要に応じて、全ての通信及びデータが暗号化される。プロキシ370は、ステップ318でモジュール350からのメッセージをステップ320においてターゲットモジュール360に中継し、ステップ322において、ターゲットモジュールの応答をステップ324でモジュール350に中継する。

0119

このような接続は、発信者及び受信者の認証書の詳細に基づいてセッション共有及び接続保持(keep−alive)を使用する(例えば、モジュール350は、プロキシ370を介してターゲットモジュール360に対する接続を「閉じ(close)」、実際に新しいエンドツーエンド接続(end−to−end connection)を構築することなくリオープン(reopen)し、接続は任意の他の回路で絶対共有されない)。通信プロキシ370は、HTTPゲートウェイ又は他の適切なモジュールもしくはコンポーネントであってもよい。

0120

このようなアーキテクチャーは、主に大量のメモリの使用によって相当な性能上のコストが発生する。モジュール350がターゲットモジュール360と通信するために、伝統的に、ターゲットモジュール360へ伝達する前にペイロードを直列化し、ペイロードを暗号化し、これをプロキシ370にストリームし(ここで、プロキシ370はペイロードを解読する)、コンテンツを逆直列化及び解釈し、ペイロードを再直列化し、ターゲットモジュール360に対してこれを暗号化する必要がある。ターゲットモジュール360は、コンテンツを解読し、逆直列化して解釈し得る。

0121

Tereonは、平均及び最大の待ち時間(latency)を減らし、メモリの負荷を減らし、常用のハードウェア上の単一プラットフォームの性能を向上させるために様々な技術を使用している。これはマイクロサービスの配布利点(deployment benefits)、メンテナンス、及びセキュリティーの全てを保持しながら、モノリシックインプロセス性能を達成できる。このようなシステムが提供しなければならない高いレベルのセキュリティー及び制御を損なうことなく実行される。

0122

Tereonは、図3に示すように、通信レイヤを介してバッチされたメッセージングモデルを用いることができる。ステップ306において、モジュール350からプロキシ370に伝えられたメッセージのような伝達された各メッセージは、メッセージのバッチであり得る。しかし、Tereonは、これ以上のことを実行することができる。

0123

バッチされたメッセージングに加え、図4は、2つのモジュールのサーバが互いに共有メモリチャネルを交渉するためにプロキシモジュール(オーダーメード型ハンドオーバーモジュール)を介して通信することを示す。ステップ402ないし412は、図3でステップ302ないし312に類似し、必要に応じて、サービスの属性をチェックし、それがクライアント要求マッチするかを確認する。これはステップ302ないし312で発生し得る。

0124

モジュール450ないしモジュール460のインスタンスは、TLS、又は伝統的なTLSHTTPSだけでなく、呼出者トランザクションに対するHTTPゲートウェイのユーザモード及びゼロコピーをともに最適した形で使用できる。

0125

ソースモジュール450及び配信先モジュール460がローカルである場合、ステップ402ないし412からのプロキシ470を介して接続を設定した後、発信者及び受信者は共有メモリを介して直接接続を選択的に要求し、この選択的な要求により、この方法は図3に設定された方法と異なる。発信者及び受信者が互いに直接接続を要求する場合、ネゴシエーション後で、共有チャネルはステップ414でモジュール460からプロキシ470に、ステップ416でプロキシからモジュール450に伝えられ、この点から2つのモジュールは、セマフォ及び共有メモリを再び使用する直接処理メカニズムを使用する。これは、ステップ418、420、422などにおけるモジュール450及びモジュール460間のメッセージによって示される。

0126

Tereonモデルでは、サーバ450は、タスクに最適した形で基本メモリバッファ(native memory buffers)内の複数の要求をバッチ処理し、サーバ460にメッセージをキューイングし、セマフォをトリップする。サーバ460は、フラグをチェックし、直接的に共有されたメモリを処理し、共有メモリに応答する。接続には、発信者及び受信者の認証書の詳細と通信のためのセマフォ及び共有メモリに基づいて接続保持及び共有されたメモリを使用する。

0127

上述した方法を用いて、通信は、単一発信者の配信先、ACL−制御、セキュリティーに対する直列化及びストリーミングのオーバーヘッド(機械内に含まれる場合)を回避する。暗号化は不要である。接続は、有効性が検証かつ認証され、セットアップ時に許可され、無効化されず、適切であれば、プロセスは大規模な独自のメモリ構造を共有できる。

0128

プロキシ470及びTereonコードモジュール450及び460の全ては可能であれば、ゼロコピーネットワーキング及びユーザモードネットワーキングを支援する(必須のRCP/IPライブラリーコンパイルされる場合、HTTPプロキシはネットワークパケットに対するカーネルコンテキストスイッチの相当なコストを削減できるソリューションを提供する)。これは、プロキシ470及びTereonコードモジュールが使用できるネットワークドライバ特定のコードを介して容易になる。これにより、小さなパケットの要求及び応答に対するメモリ使用を最小化できる。これは膨大なTereon動作(ここで多くの動作は単一TCPパケットに適する)を構成する。

0129

図4aは、TereonシステムがTereonシステムの任意の2つのコンポーネント(例えば、Tereon内の機能を提供するHTTPゲートウェイ406a及びマイクロサービス410a)の間でデータを効率よく交換するために用いられる共有メモリを使用できるオーダーメード型セマフォハンドオフモジュール408aのセットを実現する方法を示す。図4aにおいて、データサービスレイヤ214は、マイクロサービス410aによって実現される。しかし、マイクロサービスは、全ての種類のサービスモジュールを示すことができる。

0130

ネットワークスタック404a(ループバック仮想デバイスを含む)は、接続サーバ402aから要求を受信及びアセンブルし、これをユーザモードターゲットメモリにコピーする代わり、単にメモリ承認の所有権を受信者(この場合にはHTTPゲートウェイ406a)に渡す。これはメモリ帯域幅飽和が発生し始める極めて大きい負荷(例えば、秒当たり数百万の要求)で主に有用である。

0131

カスタムTereonアップストリームHTTPゲートウェイモジュール(custom Tereon upstreamHTTPgateway module)406aは、ローカルインスタンス(一般的に各コンテナ又はそれぞれ物理的、論理的、又は仮想機械上にHTTPゲートウェイインスタンスがある場合にはHTTPゲートウェイインスタンスに関し)がゲートウェイからモジュールにプロキシメモリに対するメモリ伝達及び共有メモリを使用するためのオプション許容し、その反対の場合も、該当のアップストリーム接続を許容する。HTTPゲートウェイ406aが既存のメカニズムを介して要求を直列化してこれを伝達する代わりに、共有メモリアップストリーム提供者のために構成されるとき、HTTPゲートウェイ406aは受信者に伝達する共有メモリを使用する。

0132

この場合に、共有メモリは、他のHTTPゲートウェイ、HTTPゲートウェイインスタンス、又は他の要素をプロキシに使用して設定される。HTTPゲートウェイを使用することは特に効率的である。

0133

運営システムカーネルによって提供される通信フックを使用する代わりに、各データ交換モジュールは、カーネルをバイパスする。これにより、カーネルオーバーヘッドを回避してシステムの処理量を増加させ、データがカーネルによって提供されるサービスに/から伝達されるとき発生しうる不安定な領域を扱う。例えば、Tereon内のモジュールは、システムコンポーネントから直接データサービスレイヤ214に、及びデータサービスレイヤ214からシステムコンポーネントにデータを効率よく交換するために用いられる。

0134

このアーキテクチャーがもたらす利点の他の例は、HTTPゲートウェイ406aの向上した効率(HTTPゲートウェイ406aがデータサービスレイヤ214又は他のコンポーネントのようなマイクロサービス410aに対する全ての入力データ、及びマイクロサービス410a又はデータサービスレイヤ214からの全ての出力データをHTTPゲートウェイ406aにハンドオーバーにするハンドオフモジュール408aを用いて達成される)である。基本HTTPゲートウェイのデータ及びメッセージングハンドオフを使用する代わりに、それ自体が効率的で、共有メモリを使用できるセマフォハンドオフモジュールは、データがカーネルを迂回し、データレーサー214からHTTPゲートウェイ406aに、及びデータレイヤ214から直接伝えられるようにする。これは、システムの処理量を増加させるのみならず、HTTPゲートウェイを使用するシステムにおいて共通の弱点領域のうち1つを保護するという点で追加的な利点がある。

0135

共有メモリチャネルを提供するモジュール又は共有メモリチャネルと通信するモジュールは、要求をバッチ及び直列化したり逆直列化して分離する。該当のタスクを行うモジュールは、該当モジュールの機能及びモジュールが正常に作動するとき発生する処理オーバーヘッドに達することになる。例えば、ある場合には、それ自体が複数のメッセージ(要求であってもなくてもよい)を受信するモジュールは、受信者モジュールに対してそのメッセージをバッチ及び直列化する共有メモリモジュールにメッセージを伝達するが、バッチ及び直列化のオーバーヘッドが効率的かつロード時にメッセージを処理する他の方法から該当モジュールを妨げるためである。他の場合に、モジュールは、共有メモリチャネルを介して該当受信者にバッチを伝達する前に、そのメッセージを特定の受信者にバッチ及び直列化し得る。

0136

更なる場合では、メッセージを受信者モジュールに伝達するモジュールは、メッセージをバッチ及び直列化するために共有メモリチャネルを提供するモジュールに依存し得るが、バッチメッセージを受信するモジュールは、それ自体がメッセージを逆直列化及び分離し得る。どのモジュールがバッチ及び直列化、又は、逆直列化及び分離のタスクを行うかに対する問題は、いずれかの選択によりモジュールが行う機能のための最適性能レベルを提供するかにかかっている。バッチ及び直列化の順は、メッセージタイプ及び通信モジュールによって提供される機能に応じて異なる。

0137

Tereonは、ウェブサービスになるためHTTPゲートウェイ406aを使用し、ネットワーク運営者が非標準サービスを遮断する潜在的な問題を回避する。Tereonは、勿論、必要に応じて、任意の他のサービスのふりをすることが可能であるため、周知のネットワークセキュリティー構成を容易に作業でできる。

0138

このような設計により、システム(このシステムは、利用可能な資源を使用するように設計されたモジュールを使用)は、全体のアーキテクチャーに通じてこのモジュラーアクセス方式を採用し、可能な場合、オーバーヘッドを回避する。追加的な例として、ネットワークスタック404aでゼロコピーネットワーキング又はユーザモードネットワーキングを支援するモジュールのネットワーキングシステム(可能な場合にTereonを使用)である。これにより、ネットワーキングに対するカーネルを使用する多くのオーバーヘッドを避けることができる。また、モジュラー設計は、Tereonがシステムの多重タイプ(類似オーダーメード型モジュールが類似機能を提供し、各運営システム又はハードウェア構成に適するようにカスタマイズされる)で動作可能にする。

0139

図3及び図4に示された方式により、仲介者を使用することは内部機械又は外部機械の全ての通信に対する中央集中制御地点を許容する。これは、速度及びセキュリティー制御、モニタリング及び監査、及び特殊な規則又は再指示に対する単一制御地点である。これにより、ダウンタイムや重大なリスクを招くことなく、システムの運営中にもシステムを柔軟に展開できる。また、クライアントの認識又は複雑性なしに、ロード分散(load−balancing)及びリダンダンシー(redundancies)を容易にする。

0140

図3に示すモジュール350がターゲットモジュール360に通信することを所望する場合、仲介者の使用は、ターゲットモジュール360が「n」機械にわたってロード分散し、仲介者を単に再設定する代わりに、全ての潜在的クライアントを再設定することなく、任意の数又は機械のタイプ間で移動可能にする。

0141

システムは、2つの通信当事者が互いのキー交換を認証する機能を提供するために生成されたPAKE(password authenticated key exchange)プロトコルを使用する。これは、異なる周知の共用キー交換プロトコル(例えば、Diffie−Hellmanキー交換プロトコルのような、中間者攻撃にプロトコルを脆弱させる)に対しては不可能である。正しく使用される場合に、PAKEプロトコルは中間者攻撃の影響を受けない。

0142

Tereonが外部デバイス又はサーバのような外部システムと通信する場合、通信システムに追加レイヤが追加される。多くのキー交換プロトコルは、中間者攻撃に理論的に脆弱であり、通信が2つの知られたエンティティ間にあることを確認するために、認証書及び署名されたメッセージを用いて接続が設定されれば、システムは、第2セキュリティーセッションキーを設定するためにPAKEプロトコルを使用することから、通信は中間者攻撃に影響を受けない。したがって、通信は、TLSセッションキーを用いて、次の全ての通信を暗号化するためにPAKEプロトコルのセッションキーを使用する。

0143

不可避識別ストリングを有するデバイスと通信する場合、必要に応じて、TLSは省略され、PAKEプロトコルがメインセッションキープトコルとして用いられる。例えば、デバイスがモノのインターネットのコンポーネントのセットを形成する小型のハードウェアセンサである場合に発生し得る。

0144

・通信方法(Communication methods)
Tereonデータサービス214は、調整トランザクタ(1つ以上のトランザクションの全て又は一部を実行、管理又は制御するデバイス又はモジュール)を介して完全なACID保証を提供し、n+1又はそれより大きいリダンダンシー及び選択的多重サイト複製を提供するグラフ機能を有するキーバリューストアーに基づく。データサービス214は、共有メモリ機能の他に、ゼロコピー機能及び無制限の読み出しスケーリング、インメモリキャッシュ、及び非常に高いレベルのレコード性能を提供するデータ)ドメインサービスにカプセル化される。これは、大量のメモリキャッシュを従う、可変サイズデータクラスタで保持される。非常に独特の状況では、データサービスは、キーバリューストアーを直接使用するために回避され得る。

0145

データサービス214は、高い性能の基本SQLスタイル機能と共に、貨幣の流れ分析のような機能を支援するグラフ処理機能を提供する。極めて高性能なモジュール通信アーキテクチャー(プラットフォームの効率性及び性能を提供する)と結合されたデータサービス214は、汎用サーバハードウェア(結合された10Gbpsネットワーキングを有する)のテストにおいて、秒当たり280万トランザクションを超える極めて効率的な設計を提供する。

0146

以下のアーキテクチャー上の優先順位を実現することで、システムはシステム内及びシステム間で送信されるメッセージを処理するために必要なカーネル及び処理コンテキストスイッチ数を大幅減らすことができる。

0147

a)ゼロコピーネットワーキングは、ネットワークエッジからサービスまでの送信コストを最小化できる。
b)ユーザモードネットワーキングは、ネットワークエッジからサービスまでの送信コストを最小化できる。

0148

c)直列化が必要な場合(主に、機械又はサーバの境界を越えるとき)、高効率の直列化は、SOAP(Simple Object Access Protocol)のような高いオーバーヘッドの直列化とは対照的に、プロトコルバッファ又はAvroで用いられる。これは、各サーバのエッジで抽象化されているため、性能及び効率性レベルが低くても、特定のサーバがインターネットを介して他の大陸(continent)のピアサーバで容易に通信できる。

0149

d)サーバは、処理コンテキストスイッチを最小化し、特定のサーバに対するキャッシュ一貫性最大化にするための要求を、バッチ処理することを試みるバッファリング閾値を設定できる。例えば、サーバAに10000個のリクエストが20ms期間内に到達し、プラットフォームが20msバッファウィンドウ目標とし、該当10000個のリクエストのためにサーバBの支援が必要な場合に、10000個のリクエストを単一のリクエストとしてまとめた後セマフォをフラグ(flagging)し、サーバBに対する非同期メッセージ待機させる。その後、サーバBは、10000個のリクエストを迅速に処理し、サーバAに単一の応答を提供できる。これは、効率と最大応答時間の最適化に基づいて構成できる。

0150

実際に、カーネル及びプロセスコンテキストスイッチの数を減らすことで、プラットフォームの性能レベルが大幅改善された。メッセージごとに多くのカーネル及びプロセスコンテキストスイッチが発生するのではなく、Tereonモデルは、通信されるメッセージのバッチによってメッセージのブロックごとに多くのカーネル及びプロセスコンテキストスイッチを発生させる。テストによると、このモデルを用いて既存のモデル及びTereonモデル間の性能差は大きく作業負荷に対して1:1000以上になる。

0151

しかし、モジュール及びその利点は単一システムに制限されない。例えば、サーバA及びサーバBが個々の機械にある場合でも、Tereonシステムは効率的な直列化及びバッチ処理を使用できるのであろう。これは選択的なゼロコピー又はユーザモードネットワーキングと組み合わされるかどうかに関わらず、Tereonモデルは、ネットワーク及び処理性能を大きく向上させる。

0152

テストにより、このような設計要素は、超高速ネットワークワイヤー(例えば、10Gpsボンディング)を介して毎秒数千万のメッセージ要求及び応答のアラウンドトリップ(バッチ、共有メモリモード)でローカルサーバ間のサーバ運営を実証したことを示した。

0153

このようなトランザクションは、全てリアルタイムで処理され、すぐに調整されるために、特に銀行、IoT、医療ID管理輸送、及び正確なデータ処理が必要な環境では多くの長所がある。特に、このようなシステムは、現在のリアルタイムでトランザクションを調整しない。その代わりに、トランザクションは、一定期間の後に、時にはバッチで調整される。例えば、金融トランザクションは通常、数時間後に実行される別途の照会プロセスを用いてバッチ処理される。Tereonシステムを使用することで、銀行は今まで不可能であった方式により、全ての金融トランザクションをリアルタイムに調整できるようになる。その結果、銀行は、全てのトランザクションがそれを処理されるとき調整されるため、正確に調整されないか、又はまだ調整されていない金融トランザクションをカバーするために調整アカウントを保有する必要がなくなる。

0154

トランザクション及びデータ分割
Tereonシステムの全ての原子処理(atomic activities)はトランザクションである。トランザクションに対するACID保証を裏付けるシステムの基本的が要求事項として、それらは全体的に失敗したり、全体的に成功する。このセクションは、これがどのように実行されるかに簡単に説明し、Tereonがトランザクションに対するACID保証を達成する上での分割の影響を緩和するために、トランザクション及びデータ分割対して行ったアクセス方式の詳細を説明する。

0155

上述したように、Tereonプラットフォーム内の各データ処理は、Tereonデータサービスインスタンス214(それ自体がマイクロサービス410aの組みとして動作できる)を介して実行される。これは直接データプラットフォームアクセスのある唯一システムのコンポーネントである拡張されたサービス(指向システム)であるため、全てのデータ処理はこれを通過しなければならない。このようなデータサービスは、インスタンスキャッシュデータMVCC(Multiversion Concurrency Control)を用いて常に一貫した読み出しデータを有する様々なデータサービスインスタンスを介してシステム内の並列トランザクションを実行するように拡張される。

0156

データ処理は、データサービスインスタンスへの原子メッセージを介して行われ、全体データジョブ(job)を含むメッセージと共に発生する。例えば、ジョブには数個のレコード及び属性を読み出したり、従属データ(dependent data)に基づいたデータのアップデート又は挿入、あるいはタスクの組合せを含んでもよい。データサービスインスタンスは、全てのバッキング(backin)、トランザクションデータストアーにわたって2フェーズコミットトランザクション(two−phased commit transaction)として実行する。

0157

Tereonモデルは次の技術によってデータの一貫性を保証する。
a)読み出しデータのどのセットにもバージョンIDがある。
全てのレコード(アップデート及び従属挿入)は、このバージョンIDが楽観的トランザクションとして全ての関連データに対して最新であるかを検証する。これは、様々なアカウント属性(例えば、許可(permissions)、残高(balance)、及び通貨データ(currency data))を取得するために3つのソースがレコードを読み出す場合、このデータのクラスタが一貫したバージョンIDが存在することを意味する。これらの値のいずれかがアップデートされるか、従属データがレコードされれば(例えば、金融の振込み)、バージョンIDが最新バージョンであるかが再び確認され、レコードが異なる場合(通貨の仮定が変更されたり、為替レートが変更されるなど)、レコードは全体として完全に失敗する。ダウンストリームサービスは、必要に応じて、重要な方式によりトランザクションを変更するか否かを再度読み出し、評価する。そうでなければ、トランザクションは再び提出される。再びトランザクションが失敗した場合、これは設定可能な再試行回数を超えて深刻なエラーが発生するまで繰り返す。深刻なエラーは、通常の状況ではきわめて珍しい

0158

大多数の実際のシナリオにおいて、大量のトランザクション容量及びアカウントの多様性があっても、失敗した楽観的なトランザクションは発生しない。まれに、データは損傷することなく、処理のオーバーヘッドも最小限に抑えられる。このMVCC/楽観的なモデルは、使用されているプラットフォームが(例外的な状況で要求される規制上の削除を除く)永久履歴データベースの場合、削除されたレコードに対しても完全に保護する。

0159

b)与えられたデータパーティション(これはデータサービスの水平拡張とは別途の概念である)のためにプラットフォームへのレコード
多くのデータサービスインスタンスは、1つのデータパーティションから読み出し及び1つのデータパーティションでレコードされ、単一のデータサービスインスタンスは、複数のデータパーティションから読み出し及び複数のデータパーティションで全て格納する。全ての読み出し及びレコードは、必要に応じて、1つ以上の冗長動作バックアップ(redundant operating backup)と共に、単一のマスタトランザクタクインスタンス(single master transactor instance)222を介して発生する。しかし、単一のインスタンスのみ常に活性化する。これは、トランザクション及び因果的妥当性が全ての状況(例えば、ネットワーク分割中、又は短時間の通信遅延中にスキューが発生しない)下で保持されることを保障する。このトランザクタは、全ての楽観的なトランザクションが有効であるか否かを確認し、該当のインスタンスに対して文脈上重要なものとしてアップデートされた最新情報でデータサービスインスタンス内のキャッシュ管理者を持続的にリフレッシュする。

0160

c)選択的なデータ分割
単一トランザクタに制約されれば、極めて大きいTereonインスタンスの拡張性を潜在的に制限される可能性がある(単一の組織が地域ごとに多重Tereonインスタンスを管理できるということを理解)。データ分割は、Tereonデータサービスクラスタがドメインごとに構成されたTereon規則に基づいて、トランザクタドゥル222又はデータストアー224にわたってデータを分割できるという概念である。Tereonプラットフォームは、現在、異種、多重コンポーネントハッシュ戦略として、次のパーティショニング規則を支援する。

0161

i)与えられた要素又は上位要素の対象データにハッシュ(例えば、親レコードにより詳細ハッシュ)。高性能ハッシュは、パーティション数と同じカーディナリティ(cardinality)を有する。

0162

システムは、再調整(rebalancing)を現在提供しないため、将来の実現で再調整が提供されても、現在の実現でハッシュは前もって行う必要がある(起源の日時によるハッシュを含む多重部分規則(multi−part rule)を用いてパーティションが現在追加されることができる)。

0163

ii)与えられた要素又は任意の上位要素(例えば、挙げられた地理的な地域ごと、A〜K又はL〜Zなど姓別、通貨別、その他)のターゲットされたデータのハッシュが構成されたデータ。

0164

データターゲットハッシュは、アルファニューメリック(alphanumeric)、ユニコード(unicode)、及び他の文字コード範囲整数範囲浮動小数点範囲、及び挙げられたセットを支援する。

0165

iii)上記の組合せ
実現例において、二文字A及びBは、地理的な地域全体にわたって該当地域の2つの部分を示す数字1及び2で共通の2つの個別データセットを示す。例えば、単一パーティション規則は、地理的な地域のような最上位レベルパーティション1AB及び2AB間の分割を支援し、次に、アカウント番号ハッシュを介してA及びBサブパーティション間の分割をさらに支援する。

0166

d)単一のデータサービスインスタンスを介して実行される単一ジョブは、複数のデータパーティションを横断し、多重トランザクタドゥルにより完了され、複数のデータストレージノードに存続する。

0167

これは明白なデータ無欠性複雑さを示す。しかし、データの無欠性は、トランザクションの全ての構成要素が単一の2フェーズコミットラッパー(single two−phased commit wrapper)にバインドされていることにより保障される。全ての永久的なノード及びアクターに対するトランザクションの全体が、全体として完了又は失敗し、全ての同じバージョンの保証を提供する。

0168

アーキテクチャーの設計の合流の結果、システムは完全にトランザクション的に安全で、冗長性が高く、水平的かつ垂直的に拡張性が高くなる。レコードトランザクション(多くのシナリオで小さいパーセントの処理を含む)は、パーティションごとに単一トランザクタのトランザクション上の必要によって制限されるが、規則ベース分割の付加(特に、優れたデータ要素)は、分岐インスタンスを検討する前に、概念的に無制限のレベルでシステムを拡張できる柔軟性を提供する。

0169

Tereonデータストアーの実現
Tereonインフラストラクチャーは、1秒当たり1000000を超えるACIS保障トランザクションを処理する。これは、個別の読み出し及びレコードアクセスチャネル226と共に、ストレージレイヤに対する高性能キー/値分散データベースを用いて分散したデータベース又はデータベース224上にデータストアーレイヤ220を抽象化又は他の方法により実現することによって達成される(これは、Tereonデータサービスによって抽象化からストレージレイヤに対する直接データベース使用に至るまで全ての深層レベルであり得る)。Tereonのデータストアーの使用及び構成は独特である。

0170

データサービスレイヤは、そのオーダーメード化データ交換モジュールを介してデータストアーレイヤと通信する。データベース自体は、データストアーレイヤ220によって処理されるACID保証を提供する必要が全くない。これがレコードプロセスを著しく遅延させるため、それらはグラフ機能を提供する必要もない。データストアーレイヤ220は、異種データレイヤに対するインタフェースを提供し、システムの他の部分が必要とするインタフェース機能を提供する。したがって、書き込み効能は高速のセル及び列構造を提供する一方、読み出しインタフェースは、グラフィックインタフェースを提供し、マイクロ秒分散データストアーをトラバースできるようにする。

0171

データストアーレイヤは、コアデータストアーデータベースの上にSQLインタフェース及びグラフィックインタフェースレイヤを提供し、Tereonを区分する多くの重要なアーキテクチャー長所を提供する。各クライアントインスタンス(Tereonデータサービスインスタンス)214は、該当インスタンスに対する全てのホットデータのキャッシュされた表現を含むインメモリ/インプロセスデータベースエンジンをホストする。その結果、インスタンスはデータベースエンジン及び全ての現在のトランザクションデータのキャッシュされた表現、各現在のトランザクションの状態、及び該当インスタンスが動作中の機械又は機械の異なる高速メモリ又はそのRAMの部分内のインスタンスの現在状態に関する全ての異なる情報をホストする。

0172

これにより、Tereonデータサービスが極めて高速レートで多くの読み出し指向のタスクを容易にし(1秒当たり、インスタンスごとに数百万の分離されたクエリ、ここで、ホット関連データはローカルでキャッシュされる)、達成される性能レベル以上の重要度(magnitudes)は、外部データベースシステムへの外部又は機械以外の要求を直列化して行う。データがインプロセスキャッシュにない場合は、キーバリューストアーから検索される。

0173

MVCCバージョンシステムは、同時性を管理するために使用され、データレイヤの属性はデータが決して削除されないこと(規定準拠のための強制削除の他)、システムは、データシステム存続期間中全てのレコード変更の全ヒストリーを保有する。これによって、「as of」クエリ、及び全てのプラットフォーム変更の監査のような簡単な作動を可能にする。

0174

データレイヤの書き込み実現は、単一の共有トランザクタを使用し、全てのデータ変更は一連の高速シーケンスで処理される。これはトランザクションの有効性、一貫性、多くのデータベースプラットフォームで負担となる加重値である変更同時性オーバーヘッドを最小化する。トランザクタクの設計は、ホットバックアップリダンダンシーモデルを使用する。トランザクタクプロセスが変更されれば、これは全ての活性クエリエンジン(この場合、Tereonデータサービスに存在)を通知し、必要に応じて、インメモリキャッシュをアップデートする。

0175

この設計は、データストアーのサイズに関係なく、読み出し、書き込み、及び検索に対するマイクロ秒の待ち時間を提供する。また、動作に影響を与えることなく、コンポーネントのアップデート及び交換を可能にするモジュラー構成を提供する。このデータストアーは、既存となる実現から抽象化され、Tereonデータサービスの他のストアーに代替されてもよい。

0176

データストアーレイヤが悲観的なACID保証226で動作するように設定された場合、すなわち、次のトランザクションに進む前にレコードを書き込んだことを確認するための追加ステップを入れる場合、これは短い遅延を追加するが、ACID一貫性及びデータ無欠性の絶対的な保証を提供する。

0177

この設計の利点は、データレイヤがレコードを書き込んでトランザクションを完了したことをデータレイヤが確認するまで進行できないため、ACID保証を提供するのである。

0178

これは、例えば、銀行、支払い、及び因果関係を維持しなければならない他のトランザクションタイプでは、最終的な一貫性により発生した問題が除去されることを意味する。また、ACID保証で設計することで、銀行システムが不一致なプロセスを発見するとき、不足分を補うための調整アカウントに対する必要性もなくなる。リアルタイム処理は、最終的な一貫性システム上で調整プロセスが発生する時間遅延も除去されることを意味する。

0179

このプラットフォームの設計は、汎用ハードウェア上の極めて高いレベルのリダンダンシーと安定性、及び優れた拡張性(垂直及び水平的の両方)を提供する。トランザクタクシステムの可能性のある限界に対する理論的な懸念は、それらの限界を克服するためにデータサービスで分割プラットフォームを構築したが、多くのシナリオの下では該当のプラットフォームを使用する必要がない。

0180

ルックアップ/ディレクトリサービス
Tereonシステムは、ユーザ又はデバイス218がどのようなサーバに登録されるか、又は、特定の機能、リソース設備、トランザクションタイプ、又は、他のタイプのサービスを提供しているサーバを識別するシステムにおいてクリデンシャル及び情報のディレクトリであるディレクトリサービス216を有する。ディレクトリサービスは、特定ユーザに関する様々な異なるタイプのクリデンシャルを格納するため、ユーザ218の複数の認証方法を可能にする、例えば、ユーザ218は、自分のモバイル番号、メールアドレス、地理的位置、PANs(primary account numbers)などを用いて認証され、毎回認証する必要がないようにデータをキャッシュする。

0181

ディレクトリサービス216は、基本サービス、サーバ、及び実際のユーザアカウントからユーザの認証IDを分離する抽象化レイヤを提供する。これは、ユーザ218又はマーチャントがサービスにアクセスするために使用できるクリデンシャル、及びTereonがサービスそのものを行うために必要な情報間の抽象化を提供する。例えば、支払いサービスでは、ディレクトリサービス216は、単にモバイル番号のような認証ID、サーバアドレスと共に恐らく通貨コードをサーバアドレスとリンクさせるのであろう。ユーザ218が銀行アカウントを保有しているか否か、ユーザ218がどの銀行を使用しているかを決定する方法は全くない。

0182

システムアーキテクチャーにより、Tereonが既存システムの範囲を簡単に越える様々な新しいサービス又は機能を提供する。
Tereonシステムアーキテクチャーは、拡張可能でリダンダントシステムを許容するため有効である。銀行コアシステムは、例えば、カード管理、Eコマース、モバイルの支払いなど、個別チャネル専用のモジュールを提供する傾向がある。これはサイロ(silos)を強化され、そのITシステムの複雑性を増加させる。このような複雑性は、銀行が自身のサービスやシステムを定期的にアップデートできない理由の1つである。

0183

Tereonは、高度な構成及びオーダーメード可能なモジュラーアーキテクチャーで全てのデバイス及び全てのユースケースを支援されるように設計されている。この核心は、上述したSDASF104、高レベルの抽象化、ビジネス規則エンジン106である。これは、Tereonの柔軟性を可能にする拡張可能なフレームワークの組合せである。

0184

Tereonは、運営者が標準キャリアグレードシステム(standard carrier−grade systems)を使用し、様々なトランザクションタイプを提供及び支援する。Tereonは、トランザクションが認証を必要とするか否かに関係なく、全てのトランザクションを支援するのであろう。

0185

スペシャルプロセス
スペシャルプロセス208は、データサービスの機能を理想的に活用する。しかし、独特の要求事項がコアデータサービスを変更又は拡張する正当化しないインスタンスがあるため、データライブラリーはデータから直接もってくるためにスペシャルプロセス内に活用される。例えば、これはAML(anti−money laundering)、CRM(customer relationship management)、又はERP(enterprise resource planning)機能のようなグラフィック機能プロセスを含んでもよい。

0186

複数のサービス
各サービスがモジュールであるため、Tereonのモジュラー構造は様々なタイプのサービス及びデバイスを支援し得る。例えば、支払いにおいて、この構造はTereonが銀行、請求カード、クレジットサービスクレジットユニオンデビットサービス、従業員制度、ePurse、ロイヤリティー制度、メンバーシップ制度、小額金融、前払い学生サービス、発券、SMSの知らせ、HLR検索などを含んで複数の支払いタイプ及びデバイスを支援することを可能にする。

0187

マルチエンドポイントデバイス(Multiple end−point devices)
Tereonモジュラー構造により、磁気ストライプカードスマートカードフィーチャーフォン、スマートフォン、タブレット、カード端末、POS(point of sales)端末、ATM、PC、表示画面、電子アクセス制御、Eコマースポータル、リストバンド及びその他のウェアラブルなどを含み、直接または間接的に通信可能な全てのエンドポイントデバイスを支援する。

0188

多重データベース(Multiple databases)
モジュラー構造は、システムが1つのデータベースに制限されない点で異なる利点がある。代わりに、様々なデータベースは、問題のデータベースに固有モジュールでそれぞれ接続され得るため、特定の目的に特定データベースを使用したり、複数の異種データベースにわたるデータレコードの組合せを使用する。

0189

ライセンスサブシステム210の実現は、これが提供する許可及び認証の利点に加えて、ライセンス目的のための認証書機関のその使用において新規である。各モジュールは、相互の主張を信頼する代わりに共有データベースとの簡単な認証を使用するか、各接の続構築時に個別ライセンスサーバへの委任(性能及び安定性のオーバーヘッドを従う)がモジュール基幹システムに対する最も一般的な実現パターンである。Tereonで、ライセンスサブシステムは、モジュール間の接続が本質的に安全で、最小限の性能及び安定性オーバーヘッドでアクターに関する信頼できる検証済みのメタデータを有することを保障できる。

0190

また、この実現は、ライセンスサーバの侵害(compromise)のインスタンス内潜在的な脆弱性の範囲も制限する。従来の展開では、このような侵害は全てのコンポーネントの大規模な再構築に値するのであろう。Tereonモデルでは、新しい仲介者の署名認証書を要求する(ハードウェアセキュリティーモジュールによって保護されない場合)時間ベースの露出がある。事前感染が付与された既存の全ての認証書は古く、正常なスケジュールに更新され得る。新しい認証書は新しい権限の下で付与され、その他の不正な認証書は侵害されているとして拒否される。この露出ウィンドウ制御は、最悪のシナリオに役に立つ。ライセンスサーバが保有しているデータは、ハードウェアセキュリティーモジュールに理想的に保管される署名認証書の個人キーの外部にある、完全に権限のない情報である。

0191

また、Tereonの設計は、モバイル又はIoTデバイスのようなエンドポイントデバイスを、そのようなサーバネットワーク一部として他のTereonサーバと通信する小型のTereonサーバと組み合わせることができる。それらはデータを収集し、処理を調整するためにTereonライセンスサーバ210、及び恐らく1つ以上の運営者が運営するTereonサーバと通信するのであろう。それにもかかわらず、エンドポイントデバイス及びTereonサーバの間の区別(全ての区別はデバイス及びサーバが置かれているユースケースにのみ基づく)は抽象的なものである。

0192

ハッシュチェーン
ブロックチェーンの大きい短所の1つは、ブロックチェーンが以前の全てのトランザクションに対する監査を格納することである(すなわち、認証のために用いられるブロックチェーン内のトランザクションヒストリーを判断できる)。これはブロックチェーンのサイズが最終的に大きくなって現実的な時間フレームで管理できないことから、ブロックチェーンアクセス方式が無限に拡張できないことを意味し、一方、各ブロックのサイズがブロックチェーンが登録できる秒当たり最大トランザクションを制限することを意味する。

0193

第2の短所は、トランザクションヒストリーがブロックチェーンにアクセスできる人であれば誰でも使用できることである。そのため、トランザクション当事者が誰であるかを確認することができる。そのため、プライバシー及び/又は機密性の最も重要な要求事項である意味のある全ての処理において、ブロックチェーンを使用することに対する重大なプライバシー及び規制上の問題を提示する。

0194

更なる短所は、ブロックチェーンがトランザクションの結果又は最終レコードをハッシュすることができず、実際のプロセス又はトランザクション自体のステップを検証できないことにある。

0195

ここに開示されたハッシュチェーンは、トランザクション当事者間のレコードを非公開にし、Tereon全てのユーザ(それが公開または非公開のネットワーク上で動作するに関係なく)を含む分散した認証ネットワークを提供するため、特定ハッシュアクセス方法を使用して上記のような問題を克服しようとする。

0196

これは、第3者に基盤となる通信のコンテンツを公開せず、公開及び非公開ネットワークにわたってリアルタイム動作する分散チェーンの持続的な構成によって達成される。これは、分散したハッシュ又は元帳の標準モデルと直接的に対照される(ここで、全ての当事者は、全ての通信コンテンツをそれが該当通信に対する当事者であるか否かに関係なく報告、受け入れる)。

0197

ハッシュチェーンがゼロ知識証明を含むプロトコルを使用すると、トランザクションの各ステップ及び情報又はトランザクションのステップによって生成された結果を認証できる。

0198

実現は、同一の中間ハッシュを生成する通信に対する当事者、又は、同一の通信に対して固有な中間ハッシュを生成する、それが発生する可能性がある。また、この構造により、ハッシュチェーンの無欠性に影響を与えることなく、既存のアルゴリズムが廃止されることまら、当事者は新しいハッシュアルゴリズムに移行できる。これは、ブロックチェーンのような既存のライブソリューションで用いられるアルゴリズムをアップデート又はアップグレードする困難さと直接的に対照される。

0199

Tereonは、トランザクションの各側面(アカウント)に対してハッシュ監査チェーンを生成する。ここで、
・Tereonはレコードに関するハッシュを生成し、該当レコードに対するハッシュを格納する。Tereonは、レコードを生成するアクションが完了すると、該当ハッシュを生成するが、レコードを生成するステップと該当ステップから発生する情報又は結果を使用するためである。

0200

・Tereonは、現在のレコードに対するデータの一部として前のレコードに対するハッシュを使用する、そして、
・全てのレコードチェーンの最初のハッシュは、サーバの署名、Tereonが該当ハッシュを生成する日時、必要に応じてランダム番号を有するランダムハッシュであり得る。

0201

このレコードが2以上の当事者が関与するアクションのレコードであり、各当事者がこのアクションの側面のレコードを保有しなければならない場合、Tereonはそれぞれのアクションについて次のことを行う。

0202

・他の当事者又は当事者と各当事者のレコードのハッシュを共有する。
・そのハッシュを使用して、レコードハッシュを生成するTereonに対する受信当事者のレコードの一部を形成する。

0203

・他の当事者又は当事者からのハッシュを含むレコードの中間ハッシュを生成する。
・各当事者が各アクションで他の当事者の一部をカプセル化したハッシュを有するように、該当中間ハッシュを他の当事者と共有する。

0204

・アクションのレコードに中間ハッシュを含む。
・アクションに対して格納し、次のレコードの一部として使用する最終ハッシュを生成する。そして、
・送信された各ハッシュ、又は、ゼロ知識証明を用いてプロトコルで生成された中間ハッシュを送信者のID又はTereon番号と関連づける。

0205

Tereonは、以下に説明するように、これに必要なACID保証及びリアルタイムセッショントランザクション及び処理速度を提供できる。また、ブロックチェーンの普及により、この分野における開発は考慮されていないことを意味する。

0206

トランザクションが完了ると、ブロックチェーンは、トランザクションのレコードをハッシュする。ブロックチェーンに伝えられたレコードが実際にトランザクションそれ自体の本物レコードであり保証はない。基礎となるハッシュ構造は、動的及びリアルタイムトランザクションではない静的データの収集用として設計されているため、ブロックチェーンは、正直行動するその運営者の大多数に依存するため、この方式に制限される。ブロックチェーンそれ自体は、最終的な一貫性しか提供できない点でさらに限界がある。ACIDの一貫性は、トランザクションの時系列順ではなく、それらのトランザクションがブロックに組み込まれる順序、およびわずかに異なるトランザクションセットを含2つ以上のブロックが検出された場合のブロックチェーン内のフォーク管理のコンセンサスモデルによって決定される。

0207

図5は、4つのアカウント502、504、506及び508を含むハッシュチェーンの樹枝状特性(dendriticnature)を示す。アカウントは、同じサーバ上にあったり、個別サーバにあってもよい。各システムは、1つ以上のサーバを支援し、各サーバは1つ以上のアカウントを支援する。アカウントのある位置は関係ない。また、図5は、対のアカウント間に発生する5つのトランザクションを示す。アカウント502及び504との間に発生する2つのトランザクション、アカウント502及び506との間に発生する2つのトランザクション、及びアカウント506及び508との間に発生する1つのトランザクションがある。図面において、各ボックスは、列が最上位にあるアカウントに関するステップである。各ステップは、該当アカウント内における検索、又は、該当アカウント及び他に見えないアカウント又はシステムのような見えないアクション又はトランザクションを含む。これらのトランザクション又はアクションが何であるかは関係ない。重要なことは、それらが、この監査にTereonシステムレコードを何かを含んでいることである。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

該当するデータがありません

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

この 技術と関連性が強い技術

該当するデータがありません

この 技術と関連性が強い法人

該当するデータがありません

この 技術と関連性が強い人物

該当するデータがありません

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ