(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-10
(54)【発明の名称】共有クラウドプラットフォーム内のエンティティ中心のリソース指向データベースとして実装されたデータ管理者のための方法及びシステム
(51)【国際特許分類】
G06F 16/13 20190101AFI20230428BHJP
G06F 21/64 20130101ALI20230428BHJP
【FI】
G06F16/13
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022558038
(86)(22)【出願日】2021-03-16
(85)【翻訳文提出日】2022-11-18
(86)【国際出願番号】 US2021022455
(87)【国際公開番号】W WO2021202094
(87)【国際公開日】2021-10-07
(32)【優先日】2020-03-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522375235
【氏名又は名称】データペアレンシー,エルエルシー
【氏名又は名称原語表記】DATAPARENCY,LLC
【住所又は居所原語表記】24299 Bramblewood Dr.,Novi,MI 48374(US)
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】シアー,ティモシー,エー.
(57)【要約】
高度に安全なデータベースプラットフォームは、エンティティ中心であり、エンティティ制御される。データの投稿、照会、及び取得は、標的エンティティに関連する文書への要求エンティティのアクセスを制御する一意の一方向性の関係識別子に結合される。データは、エンティティ及び関係に不変にマッピングされる。プラットフォームは、ドメイン分割され、スキーマに依存せず、順序維持型である。本発明は、人々、グループ、ビジネス、デバイス、及び/又はマイクロサービスに関するデータに容易に適合される、信頼できるプラットフォーム又はサービスを提示する。
【特許請求の範囲】
【請求項1】
ネットワークを介してデータを送受信するように構成されたデータベースプラットフォームに文書を記憶させる方法であって、
前記ネットワークを介して第1のエンティティを前記プラットフォームに接続するステップと、
前記ネットワークに接続されたサーバで、第2のエンティティとの関係を確立するための前記第1のエンティティからの要求を受信するステップと、
前記関係のための一意の一方向性の関係分散識別子(RDID)を割り当てるステップと、
前記第2のエンティティに関連する文書を前記プラットフォーム上に投稿するために、ユニフォームリソースインジケータ(URI)パスに前記RDIDを含めるように前記第1のエンティティに要求するステップと、
を含む方法。
【請求項2】
前記データベースプラットフォームは、サードパーティコンピュータアプリケーションを介して前記第1のエンティティから前記URIを受信する、請求項1に記載の方法。
【請求項3】
前記サーバで投稿文書を取り込むステップをさらに含み、前記取り込みは、前記取り込まれた文書からのデータを前記第1のエンティティ及び前記第2のエンティティに不変に関連付けることを含む、請求項1に記載の方法。
【請求項4】
前記データベースプラットフォームは、前記取り込みステップの1つ以上を実行するために、前記ネットワークに接続されたクラウドベースのサービスを使用する、請求項3に記載の方法。
【請求項5】
前記サーバで投稿文書を取り込むステップであって、前記取り込みは、前記投稿文書を、共通階層フォーマット(CHF:Common Hierarchical Format)を有する複数のデータコンポーネントに解析し、前記複数のデータコンポーネントはCHFデータを含む、ステップと、
前記CHFデータに基づいてメタヘッダを生成するステップであって、前記メタヘッダは、前記URIパスと、前記投稿文書を一意に識別する文書ID(DocID)とに関するキー値(KV)情報を含む、ステップと、
前記ネットワークに接続された1つ以上のデータストアで前記CHFデータをCHF文書として記憶するステップと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記CHF文書をシャーディングするさらなるステップを含み、前記記憶ステップは、2つ以上のデータストアで前記シャーディングされたCHF文書を記憶するステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記URIパスは、階層的であり、ドメイン及び少なくとも1つの下位コンポーネントを含み、前記プラットフォームは、前記CHFデータを前記RDID、前記ドメイン、及び前記少なくとも1つの下位コンポーネントに不変に関連付ける、請求項5に記載の方法。
【請求項8】
第1のエンティティ識別情報及び第2のエンティティ識別情報を含む入力の組み合わせをハッシュすることによって前記RDIDを生成するステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記入力の組み合わせは、前記プラットフォームにのみ知られている秘密のシステム値をさらに含む、請求項8に記載の方法。
【請求項10】
前記ハッシュステップは、前記RDIDをアイコンとして生成するために、複数の入力に対して動作する変換代数を使用することを含む、請求項8に記載の方法。
【請求項11】
データベースプラットフォームと通信している1つ以上のサーバに、
ネットワークを介して第1のエンティティを前記プラットフォームに接続する動作と、
前記第1のエンティティから、第2のエンティティとの関係を確立するための要求を受信する動作と、
前記関係のための一意の一方向性の関係分散識別子(RDID)を割り当てる動作と、
前記第2のエンティティに関連する文書を前記プラットフォーム上に投稿するために、ユニフォームリソースインジケータ(URI)パスに前記RDIDを含めるように前記第1のエンティティに要求する動作と、
フォーマットが決められたパーサを用いて、投稿文書を、共通階層フォーマット(CHF:Common Hierarchical Format)を有する複数のデータコンポーネントに解析する動作であって、前記複数のデータコンポーネントはCHF文書を含む、動作と、
前記ネットワークに接続された第1のデータ記憶位置で、前記パスと、前記CHF文書を一意に識別する文書ID(DocID)とに関するキー値(KV)情報を記憶する動作と、
前記ネットワークに接続された1つ以上のデータストアを含む第2のデータ記憶位置で、前記CHF文書を記憶する動作と、を実行させる命令を記憶している、非一時的なコンピュータ可読媒体。
【請求項12】
前記投稿文書の少なくとも一部をハッシュするステップをさらに含む、請求項11に記載のコンピュータデバイス。
【請求項13】
前記CHF文書は、ハッシュCHFキーデータをもたらす前記自然キーのハッシュと、ハッシュCHF値データをもたらす前記自然値のハッシュとを含む、請求項12に記載のコンピュータデバイス。
【請求項14】
前記投稿文書は、自然キー及び関連する自然値を含み、前記CHF文書は、前記パス及び前記DocIDに関する前記KV情報を含み、前記自然キーをそれらのハッシュCHFキーデータに関連付け、前記自然値をそれらのハッシュCHF値データに関連付ける辞書をさらに含む、請求項13に記載のコンピュータデバイス。
【請求項15】
前記CHF文書は、記憶させる前に暗号化される、請求項11に記載のコンピュータデバイス。
【請求項16】
前記データベースプラットフォームは、非リレーショナルデータベースである、請求項11に記載のコンピュータデバイス。
【請求項17】
ネットワークを介してデータを送受信するように構成されたデータベースプラットフォーム内で文書データを安全に記憶及び取得する方法であって、
第1のエンティティから受信した第1のURIに応答して文書を取り込むステップであって、前記文書は自然キー及び自然値を含み、前記第1のURIは、前記第1のエンティティと第2のエンティティとの間の関係を一意に一方向に定義する第1のRDIDを含む、ステップと、
前記文書をCHFデータコンポーネントに解析するステップと、
ハッシュCHFデータコンポーネントを生成するために、前記自然データコンポーネントをハッシュするステップと、
前記ネットワークを介して前記プラットフォームに接続されたデータストアに前記ハッシュCHFデータコンポーネントを記憶させるステップと、
を含む方法。
【請求項18】
前記記憶ステップの後に、前記取り込まれた文書内の前記自然キー及び自然値の一部又はすべてを取得するために、第2のURIを含む前記第1のエンティティからの照会を受信するステップであって、前記第2のURIは前記RDIDを含む、ステップと、
前記ハッシュCHFデータから、前記照会を満たす結果を導出するために前記記憶されたハッシュCHFデータを検索するステップと、
を含む、請求項17に記載の方法。
【請求項19】
前記検索ステップは、前記文書、及び前記文書の任意の自然なコピーを無視する、請求項18に記載の方法。
【請求項20】
前記記憶ステップの後に、前記取り込まれた文書内の前記自然キー及び自然値の一部又はすべてを取得するために、第2のURIを含む前記第1のエンティティからの照会を受信するステップであって、
前記第2のURIは、RDIDを含まないが、少なくともドメイン及びクラスを含む階層パスを含む、ステップと、
前記ハッシュCHFデータから、前記照会を満たす結果を導出するために前記記憶されたハッシュCHFデータを検索するステップと、
を含む、請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルコンピュータによるデータ記憶及び処理に関し、具体的には、共有クラウドプラットフォーム上のデータベースシステムに関し、より具体的には、効率を損なうことなくデータセキュリティを保証する方法に関する。
【背景技術】
【0002】
利便性及び機能性を犠牲にすることなく、コンピュータデータベースのハッキング及びセキュリティ違反を防ぐために、多くの努力がなされてきた。堅牢な資格情報検証及びデータ暗号化など、ハッカーに打ち勝つためにセキュリティ対策を強化することに努力が集中してきたが、データベースは、セキュリティバリアの背後のデータを取得するための持続的で長期的な努力に対して脆弱なままである。従来技術のアプローチは、企図された違反に打ち勝つために城の周りにより高くより厚い壁を立てることに類似している。
【0003】
この問題は、技術がクラウドプラットフォームモデルに移行するにつれて新たな次元をとり、クラウドプラットフォームモデルは、ネットワークを通じて外側又は外部のエンドポイントへのアクセス及びサービスを公開するネットワークプラットフォームを通じてサービスを提供する。クラウドプラットフォームによってサポートされる典型的なサービスは、サービスとしてのデータベース(DaaS:Database-as-a-Service)、サービスとしてのインフラストラクチャ(IaaS:Infrastmcture-as-a-Service)、サービスとしてのプラットフォーム(PaaS:Platform-as-a-Service)、及び多くの他の「サービスとしての」提供物である。プラットフォームへのアクセスポイントが急増するにつれて、ハッキング及びランサムウェアなどの攻撃に対する防御がより困難になり、追加のセキュリティ層を積層することで、不便かつ非効率的になる可能性がある。
【0004】
一方、大多数のデータベースは、行及び列の表に配置される、例えば「姓」、「生年月日」、「血液型」などのスキーマを必要とする「リレーショナル」データベースとして構造化される。照会/取得言語SQL(Structured Query Language:構造化言語)は、すべてのリレーショナルデータベースアクセスの基礎を形成する。このような設計及びアクセス制限は、現実世界のエンティティがデータを最適に記憶する能力を限定する可能性がある。このようなデータベースの一例は、特許文献1「Relationship-Based Authorization(関係に基づく承認)」(Beck)である。Beckは、関係を記憶するために表の行及び列を使用し(例えば、
図4の´768)、別の従来のデータベースに記憶された文書へのアクセスを制御するために、「フロントエンド」の一部としてこれらの関係を調べる。
【0005】
より新しいデータベース設計は、データコンポーネントが表としてではなく「値」に関連付けられた「キー」(「値」に関連付けられた「タグ」と呼ばれることもある)として編成される、MongoDB、Couchbase、CouchDB、Marklogic、AWS DynamoDB、Microsoft Azure DB、及び他のKey/Valueデータベース製品などの「NoSQL」(SQLだけでなく)としてますます知られる非リレーショナルデータベースを含む。このようなデータベースモデルは、例えば、フェアビュー病院/患者/ジョン・スミス/検査結果など、ドメイン/クラス/エンティティ/コレクションのような、人間が使い慣れた編成の階層モードにより資する。しかしながら、MongoDB及びCouchDBなどのデータベースは、独自の欠点を有する。例えば、照会を加速するために、これらのデータベースは、インデックスするフィールドの先験的な定義を必要とする。これは、記憶されたデータがインデックスパラメータと一致することを必要とする。インデックス指定にフィールドを有していない文書は、インデックス照会に含まれない。言い換えると、MongoDB及びCouchDBを使用して構築されたデータベースは、スキーマ固有である。
【0006】
クラウドの攻撃対象領域及びアクセス可能性の低下、堅固なセキュリティ、柔軟でスキーマに依存しないアクセス、及びそのデータに対するエンティティ制御を提供するデータベースが必要とされている。
【発明の概要】
【0007】
エンティティ中心のドメイン分割可能な管理者制御データベースプラットフォームが開示される。データの投稿、照会、及び取得は、例えば標的エンティティに関する文書へのアクセスを要求するエンティティ間の関係アクセス特権を識別する一意の一方向性(一方向)の「関係識別子(relationship identifiers)」に結合される。例えば、エンティティ1が医師であり、エンティティ2が患者である場合、プラットフォームは、エンティティ2の臨床検査結果に関する文書を投稿するときに医師が使用する一意の関係分散識別子(Relationship Distributed Identifier、RDID)を割り当てる。プラットフォームに取り込まれたすべての文書からの情報の各コンポーネントは、情報が取り込まれた時点で提供されたRDID及びエンティティ情報を保持する。したがって、データベースは、エンティティ中心、すなわちエンティティ及びそれらの関係の周りに構造化されているものとして提示する。
【0008】
プラットフォームへのアクセスは、一般に、好ましくは階層HTTPユニフォームリソース識別子(URI)を使用するインターネット又はイントラネットなどのネットワークを介している。これにより、企業のデータの一貫性がありながら柔軟なデータモデリングのためのドメイン駆動設計が可能になる。例えば、プラットフォームは、使い慣れたHTTP(又はHTTPS)動詞GET及びPOSTを使用して、標準的なRESTリソース指向アプリケーションプログラムインターフェース(API)によってアクセスすることができる。したがって、データ照会は、API呼び出しにおける単純な「パス」定義とすることができる。これにより、例えばドメイン/クラス/RDID/コレクションなどの階層パスにおいてRDIDを直接表現することができる。同様のデータ要素のコレクションは、人口統計、イベント、読み取り値などの特徴を含む、エンティティのデータ階層内の「アスペクト」として編成される。すべてのフィールドがアドレス指定可能であるため、インデックスパラメータを指定する必要がないので、本発明は、高速のアドホック照会を可能にする。
【0009】
データベースは、信頼できるデータ管理者プラットフォームによって監督される。データ管理者プラットフォームは、ローカルのエンティティ所有サービス、又はクラウドプロバイダによって提供される契約サービスであってもよい。データ管理者プラットフォームは、エンティティデータ、アクセス、及び更新を管理する。データ管理者プラットフォームは、任意のアクセス/更新動作においてプラットフォームが使用するエンティティからのプライバシー規則を受け入れる。これらのプライバシー規則は、データプラットフォームの(1つ又は複数の)エンティティデータストア(以下、「データストアセット」又は単に「データストア」)に送信された照会を含む、データベースに送信された照会から機密データを隔離するためにも使用することができ、要求元の役割にさらに依存してもよい。これにより、エンティティによって望まれるプライバシーの文脈を表しながら、エンティティデータに対する透明性を保証する。
【0010】
エンティティに関するデータは、エンティティドメインにルーティングする階層構造に配置されたリソース又はアドレス指定可能な値を含み、エンティティはその多くに属することができ、好ましくは表されている現実世界エンティティと一致する。これらのリソースは、「アスペクト」又はコレクションと呼ばれる関連するリソースのグループ又はセットにさらに編成される。加えて、アスペクトは「仮想」及び/又は「合成」であってもよく、複数の物理的又は仮想的アスペクトが組み合わされて命名された仮想的アスペクトになる。サンプルのアスペクトは、「人口統計」、すなわちエンティティの識別特性とすることができる。ここでも、フェアビュー病院/患者/ジョン・スミス/検査結果が一例である。デバイスの分野及びモノのインターネットからの一例は、x社/温度-センサ/サーモ26/読み取り値であり得る。
【0011】
要約すると、本発明は、ドメイン分割可能、エンティティに結合され、エンティティ関係中心、自己主権型アイデンティティ、順序維持型、不変、スキーマに依存せず、及びリソース指向であり、クラウドサービス上で使用することができ、人々、グループ、ビジネス、デバイス、及び/又はマイクロサービスに関するデータに容易に適合される、信頼できるプラットフォーム又はサービスを提示する。インフラストラクチャがエンティティ中心のプラットフォームからのデータ及びプライバシー/セキュリティを管理する必要性があるが、これはほとんど満たされていない。このようなインフラストラクチャから利益を得る産業は、ヘルスケアドメイン、顧客管理及び関係(CRM)、個人財務及び銀行取引、DLT(Distributed ledger Technology:分散型台帳技術)台帳、軍事及び防衛、並びにメディケア/メディケードなどの政府機関を含む。
【図面の簡単な説明】
【0012】
本発明のこれら及びその他の特徴及び利点は、以下の詳細な説明及び添付図面と併せて検討すると、より容易に理解されるだろう。
【0013】
【
図1】それらの相互作用を示す、プラットフォームコンポーネントの概要を示す図である。
【0014】
【
図2】データ管理者プラットフォームと構成インターフェースとの間の相互作用を示す別の図である。
【0015】
【
図3】データベースコンポーネントの相互作用を示す別の図である。
【0016】
【
図4】データ管理者トポロジーのいくつかの例を示す図である。
【0017】
【
図5】パラメータを有する例示的なURI要求を示す図である。
【0018】
【
図6】照会(GET)及び更新(POST)の一般的なHTTP要求フローを示す図である。
【0019】
【
図7】システム及びCHFデータ文書を使用してデータ照会をナビゲートするためのプロセスフローの表現である。
【0020】
【
図8】直接DocID照会のプロセスフローの図である。
【0021】
【
図9】1つのRDIDに限定された照会のプロセスフローの図である。
【0022】
【
図10】1つのRDIDに制限されない照会のフローの図である。
【0023】
【
図11】プラットフォームとの分散型台帳技術統合の一例を示す図である。
【0024】
【
図12】ハッシュキー及びハッシュ値の過程による割り当てを示す例示的なソース文書である。
【0025】
【
図13】ハッシュキー及びハッシュ値のt配列並びに複数のノードを示す、
図12と同じ例である。
【0026】
【
図14】データの安全な遠隔処理を対象とする本発明の別の態様を示す図である。
【発明を実施するための形態】
【0027】
一般的な参照によれば、本文及び添付図は、データベースシステム10、データプラットフォーム12、エンティティ11、アプリケーションプログラムインターフェース14、データストア18、クライアントライブラリ24、データベースアクセス層26、及び他の参照に言及する。いくつかの図を通して類似の参照番号が類似の又は対応する部分を示す図を参照して、関係分散識別子(RDID)及びドメイン駆動階層設計を使用してデータを管理する新しい方法が開示されている。ドメイン駆動設計は、一般に階層的であり、その点で、例えば「ユーザXYZ/作業ファイル/顧客88/見積など、従来のファイル管理システムに匹敵する。
【0028】
・システムコンポーネントの概要
図1、
図2、及び
図3は、データ管理者エンティティプラットフォーム(以下、「データプラットフォーム」又は単に「プラットフォーム」)12を含むデータベースシステム10の3つの表現を示す。データプラットフォームは、ローカルのエンティティ所有サービス、又はクラウドプロバイダによって提供される契約サービスであってもよい。データプラットフォームは、エンティティデータ、アクセス、及び更新を管理する。データベースシステム10と相互作用するのはエンティティ11である。エンティティ11は、現実又は仮想の、人物(例えば、患者、顧客)、ビジネス、政府機関、デバイス、マイクロサービス、前述のいずれか又はすべてのグループ、1つ以上のグループのサブグループ、及び多くの他の現実世界のオブジェクトであってもよい。
【0029】
エンティティ11は、通信プロトコルとして使い慣れたHTTP又はHTTPSを使用するREpresentational State Transfer(REST)リソース指向アプリケーションプログラムインターフェース14(API)を使用してデータプラットフォーム12と相互作用することができる。一実施形態では、エンティティユーザは、データプラットフォーム12と相互作用するときに、HTTP動詞GET及びPOSTのみを使用することができる。エンティティはまた、1つ以上のサードパーティアプリケーション16を使用してデータプラットフォーム12と相互作用することもできる。所与の状況セットに適し得るアプリケーション16の例は、ウェブブラウザ、ユーザインターフェースライブラリ、NATS2.0などのパブリッシュ-サブスクライブシステム(pub/sub)、及びKubemetesなどのマイクロサービスオーケストレータを含むタスクプロセッサを含む。アプリケーション16は、メッセージング及びタスク処理サービスを含むことができ、アプリケーションが、プラットフォーム内で発生するイベントに関するプラットフォームからの通信を受信する場合、通信の受信が、プラットフォーム内でトリガされたイベントへのアプリケーションによってサブスクリプションの結果として発生する場合、トリガされたイベントが外部プラットフォームインターフェースを介して外部アプリケーションに通信される場合、アプリケーションがビジネスプロセス管理(BPM)フレームワークを含む場合、BPMフレームワークが分析アプリケーションにデータを照会及び提供する用に構成されている場合を含む。アプリケーション16は、TIBCO Jaspersoftなどの分析データを受け入れるためのプラットフォーム、又は人工知能(AI)プラットフォームを含む分析アプリケーションであって、AIプラットフォームはTensorなどデータを受け入れるためのプラットフォームを含む、分析アプリケーション、又はデバイス読み取り値を認識するように構成された分析アプリケーションなど、1つ以上の別の分析アプリケーションを含むことができ、分析アプリケーションは、Apple Healthkitなどのデータを受け入れるためのプラットフォームを含み、又は分析アプリケーションは、Samsung SAMIなどのデータを受け入れるためのプラットフォームを含み、又は分析アプリケーションは、Validicなどのデータを受け入れるためのプラットフォームを含み、又は分析アプリケーションはモノのインターネット(IoT)フレームワークを含み、又は分析アプリケーションは分散型台帳技術(DLT)を含む。上記のアプリケーションは、データベースシステム10と適切に組み合わせることができるアプリケーションを例証及び代表するように意図される。これらは限定することを意味するものではない。
【0030】
データベースシステム10は、エンティティ11に関するキー値(KV)データを記憶するための1つ以上のデータストア18を含む。プラットフォームは、プラットフォーム上で発生しているイベントを受信及び/又はこれに反応する様々な外部プラットフォームインターフェース20に接続され得る。プラットフォームは、ローカルで、又はネットワーク接続を通じて、データストア18にアクセスすることができる。
図3に示される実施形態では、ローカル接続は、ボックスで囲まれたデータストアによって示されている。少なくとも1つのサーバは、手続き呼び出しを通じて任意のデータストア18とインターフェースしてもよく、又はネットワークインターフェース層を通じてインターフェースしてもよい。当業者は、KVデータを記憶することができる真のKVデータストア以外のデータストアがあることを理解するだろう。本明細書及び特許請求の範囲の目的のために、「データストア」は、キー値データストア及びKVデータと互換性のあるデータストアの両方を含む。同様に、プラットフォームは、プラットフォーム12データに関する内部データ及び命令を受信、応答、及び/又は生成する、1つ以上の内部プラットフォームインターフェース22を含むことができる。プラットフォーム12は、特に外部サービスとインターフェースするためのクライアントライブラリ24をさらに含むことができる。クライアントライブラリ24の一例は、ユーザをシステムに入力するのに有用であり得るMicrosoft Active Directoryである。
【0031】
各データストア18は、データベースアクセス層26を通じて外部からアクセスすることができる。好適な実施形態では、データベースアクセス層26は、データストア18とデータプラットフォーム12との間のAPI層として実装される。別の実施形態では、DBアクセス層26は、内部ライブラリインターフェースを通じて(1つ又は複数の)データストア18に呼び出しを引き渡すことができる。単一エンティティ読み取り要求は、そのエンティティに割り当てられた次の利用可能なマスタ/ミラーデータストア18にマッピングされてもよい。2つ以上のエンティティをカバーする照会は、利用可能なデータストアセットのすべてのデータストア18にブロードキャストされてもよい。次いで、DBアクセス層26は、プラットフォームにデータを返すためにすべての応答を集約することができる。システムは、プライバシー規則を有するプライバシーモデル28をさらに含む。プライバシーモデルは、DBアクセス層26を通じた結果の返送を制限するために、照会の結果として取得されたデータに対して適用することができる。同様に、書き込み要求は、エンティティに割り当てられたすべてのデータストアセット18にブロードキャストされてもよい。DBアクセス層26は、すべてのセットからの応答を監視し、一定数のデータストア18応答が受信されたときにのみ返信する。これにより、一貫性を可能にし、現存のデータストア18のいずれか1つからの読み取りアクセスを可能にする。
【0032】
図1に示されるように、システムはまた、データベースシステム10、並びにエンティティ及びアスペクトに適合された階層ドメインを設計するのに有用なメタモデル開発プラットフォーム30も含むことができる。開発プラットフォーム30は、Eclipse、IntelliJ/Web Storm/GoLandなどのような既存のフレームワーク上に構築することができる。データベースシステム10は、メタモデル開発を他のアプリケーション開発機能に組み込むためのメタモデルプラグイン32をさらに含むことができる。例えば、メタモデルプラグイン32は、プライバシーモデル28と協働して、エンティティのデータの特定の定義されたアスペクトへのアクセスを制御するための機能を考案することができる。一実施形態では、開発プラットフォーム30及びメタモデルプラグイン32は、文書のクラス内又はクラス間の文書のアスペクトを設計及び/又は指定することができ、以下でさらに論じられるように、一部のデータをアクセスに利用できないようにするために、プライバシーモデル28に準拠するメンバーノード又は値を定義することができる。エクスポートされたプライバシーモデル28は、エンティティプライバシー設定のためのソースになり得る。プライバシーモデル28におけるプライバシー設定及び規則は、(1つ又は複数の)データストア18内の所与のエンティティにアクセス可能なデータタグ及び/又は値のみならず、アクセスを許可されたユーザによるエンドポイントロールの条件も含むことができる。また、主要なエンティティプライバシーモデル28に加えて、サブエンティティは、「エンティティXYZによって要求された場合にのみ私のHIV検査結果の返信として照会の結果を返す」など、個々の関係に併せて調整された所望のプライバシー規則を課すことを含む、それらの情報へのアクセスを定義し、さらに制限することができる。これらのプライバシー規則はその後、エンティティデータの階層に組み込まれてもよい。
【0033】
・階層ドメイン駆動設計の背景及び概要
事前に、本明細書及び特許請求の範囲で使用される「文書」という用語は「データ」を意味する。文脈が特に逆の構成を要求しない限り、「文書」は、静的データ値(例えば、姓=jones、生年月日=06/30/1994、現在の温度=188°C)、及び実行可能コード、呼び出しルーチン、又はKubernetesなどのマイクロサービスオーケストレータの呼び出しなど、データベースシステム10のコンポーネントによってリソースとして使用されるデータの両方を意味する。好適な実施形態では、文書(データ)は、「共通階層フォーマット(Common Hierarchical Format)」(CHF)に解析される。CHFは、キー及び関連する値を含み、平坦化された階層として表すことができるフォーマットである。例えば、キーは配列に関連付けられ、配列は複数の値(例えば、「1年生の生徒」:[「サリー」、「ディック」、「ジェーン」])を有すると仮定する。配列[]は親値であり、そのメンバーは子、又は子値である。この階層は、ノードの階層順配列として表すことができ、ノードは、以下でさらに論じられるように、文書内に見られるタグ及び値を含む。CHFに解析されたデータの一例が
図12の上のボックスに示されており、キー及び値、例えば「発行者」(キー(又はタグ))及び「https://sandbox.bluebutton.cms.gov」(「発行者」キーに関連付けられた値)を示している。以下でさらに記載されるように、CHF文書は、容易に照会され、様々な他の文書フォーマットへの照会出力を可能にする形式でデータを保持する。一実施形態では、CHFデータは、
図12に示されるようにJavascript Object Notation(JSON)としてフォーマットされる。
図13は、
図12からのCHFデータの階層的特徴を表す複数のノード104を示す。XML、YAML、又はバイナリ表現など、ユースケースに応じて他のフォーマットを使用することができる。一実施形態では、パーサはストリーム型である。好適な実施形態では、パーサは、自然キー-自然値の関連性を維持する。ここでも、本明細書で使用される「文書」及び「データ」は、静的なキー値、並びにデータベースシステム10の任意のコンポーネントに内部に向けられたトリガ又はコンピュータ命令又は外部に向けられた命令を含むデータの両方をカバーすることが強調される。
【0034】
図4は、ドメインA(34)、ドメインB(36)、及びドメインC(38)の3つのドメインに分類可能な、それに関する複数の文書40を有するエンティティ11を示す。ドメインAは2つのクラスで構成され、第1のクラスは3つのアスペクトを有し、第2のクラスは2つのアスペクトを有する。5つのアスペクトの各々は、1つ以上の文書で構成される。ドメインBは1つのクラスで構成されるが、そのクラス内には多くのコレクション「C」があり、各コレクションは1つ以上の文書を含む。ドメインCは、単一の「イベント」コレクションを有する単一のクラスで構成され、イベントコレクションは複数の文書を有する。これら3つの例は、当然ながら単なる例示であり、限定ではない。エンティティはいくつのドメインに属してもよく、エンティティはいくつのクラスを有してもよく、クラスはいくつのアスペクト又はコレクションを有してもよい。さらに、
図4は、各々3つのサブコンポーネントを有する3つの最上位コンポーネント(ドメインA、B、及びC)を示しているが、エンティティは、エンティティの好みに応じて所与のドメインの下に配置された、3つより未満又は3つを超えるサブコンポーネントを有してもよい。
【0035】
好適な実施形態では、プラットフォームは、ワールドワイドウェブ(WWW)のプロトコルとして誰もが知っているユニフォームリソースインジケータ(URI)を使用して、文書(リソースを含む)の要求(GET及びPOSTの両方)を受信する。
図5を参照すると、例示的なURIは、HTTPS(又はHTTP)プロトコル42(HTTPS://)、サービスアクセスエンドポイント及びポート44(api.dataparency.com)、ドメイン名46(ヘルスケア)、エンティティタイプ名48(患者)、RDIDアクセストークン50(12345678)、アスペクト名52(ケアプラン)、及び任意の照会修飾子54(?StartDate=´´2015-04-30´´)を含む複数の部分で構成される。したがって、データ照会は、API呼び出しにおける単純な「パス」定義とすることができる。以下で論じられるように、RDIDアクセストークン50は、ドメイン及びアスペクト内のすべてのアクセス許可されたエンティティにわたる照会のために空であってもよい。(この機能は、標準照会言語SQLにおける´SELECT*´コマンドと同様である。)
【0036】
POST要求に対する追加のオプションは、例えば、「失効」照会修飾子を指定することによって時間が経過したとき(例えば、「?失効=60」[60秒後に削除])、又はエンティティ全体の照会を許可するか否か(例えば、「?entityAccess=private」)によって、データの削除を可能にする。失効機能は、例えば10秒の有効期限を有するロック文書を投稿し、ロック状態を調査するためにこの文書に問い合わせることによって、「ロック」プロトコルを実装するために使用することができる。ロック文書が失効して削除されると、さらなる処理を進めることができる。
【0037】
・プラットフォームセキュリティ
データベースシステム10は、複数のレベルで保護されている。始めに、データプラットフォーム12へのアクセスは一般に、ただし排他的ではなく、ウェブプロトコルHTTPSによるものである。HTTPSは、様々な企画で表されるトランスポート層セキュリティ(TLS)プロトコルを通じてインターネット内のデータの安全なデータの輸送を提供する、一般的なネットワークプロトコルである。プラットフォームとのすべての相互作用は、HTTPSトランスポート、又は安全な輸送の他の補助的な方法によって保護される。
【0038】
また、すべてのデータは、好ましくは、輸送中及び静止中の両方において、暗号化されたプラットフォームのコンポーネント間で転送される。一実施形態では、データプラットフォームは、サーバ公開暗号キー及びサーバプライベート暗号キーを含む暗号キーペアを受信するコンピュータサーバを含む。好適な実施形態では、サーバ暗号キーペアは、楕円曲線暗号(ECC)サーバ暗号キーペアを含む。サーバECCキーペアは、例えばCurve25519、AES-CBC-256、及びHMAC-SHA-256上でモデル化することができる。
【0039】
サーバ暗号キーペアに加えて、データプラットフォーム12上に登録された各エンティティには、エンティティ公開キー及びエンティティプライベートキーを含むエンティティキーペアも割り当てられる。一実施形態では、データは、エンティティが最初に登録されたときに作成された一意の公開/プライベートキーペアによって暗号化/復号される。このプライベートキーペアは、プラットフォーム12の外部には知られず、したがってプラットフォーム内のデータのセキュリティを強化する。
【0040】
一実施形態では、データプラットフォーム12は、暗号化形式で投稿されるデータを受信し、暗号化は、エンティティ登録時に通過してエンティティシステムプロファイルに記憶されたキーペアからの一意のキーのエンティティ使用から生じる。一実施形態では、データプラットフォーム12は、以下に記載されるようにこれらを解析及び記憶する前に、受信した文書40を復号することができる。復号は、エンティティのキーペアを使用することによって達成され得る。
【0041】
好適な実施形態では、データは、セキュリティを強化するためにハッシュされる。ハッシュされるデータは、プラットフォーム上のデータ、並びにエンティティ分散識別子(ED ID)及び関係分散識別子(RDID)など、プラットフォームによって生成された内部値を含む。ハッシュは、当業者にとって既知の任意の方法を使用して行うことができる。以下に記載されるプロセスにしたがって生成されるアイコンを含むハッシュは、一方向性(一方向)である。ハッシュもアイコンも、元データを確認するために「復号(デコード)」することはできない。
【0042】
一実施形態では、投稿されるデータは、一実施形態において線形代数符号化方式を使用する、アイコンジェネレータ(IG)を使用してアイコン化される。アイコンを生成することは、参照によりその全体が本明細書に組み込まれる、Direenの米国特許第6,493,813号明細書「Method for Forming a Hashing Code(ハッシュコードを形成する方法)」の教示を採用することができる。IGは、性能を最大化するために表とともに実装された線形フィードバックシフトレジスタを含むことができる。IGは、一実施形態では64ビットである固定幅を有するアイコンを生成することができる。IGは、カオス分布を利用し、入力データの長さ又はそれが有する病理にかかわらずアイコン幅が表すことができる値の範囲にわたって均一に分布する英数字アイコンを生成することができる。一実施形態では、IGは、順次入力値のブロックがアイコンフィールドにわたって広く分散されることを保証する。別の実施形態では、IGは、あらゆる可能な64ビット値が変換(アイコン化)された場合、結果として得られたアイコンも同様に、ただし異なる順序で、あらゆる可能な64ビット値に変換されるように、完全な変換を生成する。入力が64ビット以下であれば、2つの入力が同じアイコン値を生成することはない。より長い長さの入力データは不完全な変換をもたらすことになるが、これはほとんどすべての用途において依然として有用である。
【0043】
別の実施形態では、変換はフラクタルである。別の実施形態では、変換は拡張可能である。IGは、64ビットを超えるコードを生成するために使用することができる。64ビットコードと同じ品質を有する長いコードを一つずつ生成することもできるため、IGを再プログラミングすることなく任意の所望の長さのコードを生成することができる。別の実施形態では、IGは、可変長入力データを変換することができる。好適なIGは、一度に1バイトの入力データを処理するため、アイコンをいつでも読み取ることができ、したがって(1つ又は複数の)任意の入力データ長に基づくコードを生成することができる。
【0044】
連想処理ユニット(APU:Associative Processing Unit)は、アイコン代数をサポートするIGに接続されてもよい。アイコンは組み合わせ的に処理することができ、元の入力データが変換前に操作されていれば、同じ結果を生成する。例えば、「ヴィンス」が変換され、次いで「ロンバルディ」が変換された場合、「ヴィンス・ロンバルディ」から生成されたであろうものと同じアイコンを生成するために、2つの結果的なアイコンを組み合わせることができる。好適なAPUは、連結(上記の例のような)、入力データの先頭又は末尾からのデータの削除;入力データの組み合わせ(XOR)、又は入力データのコンポーネントの変更を含む、様々な仮想機能を達成することができる。アイコン代数の主な利点は、APUが、入力データを再処理する代わりに、短い固定長アイコン上でこれらの機能を迅速に達成することである。アイコンは、入力データの任意の大きさのブロックの代わりになる。
【0045】
本発明の別の非常に重要なセキュリティ機能は、上記で論じられ、以下でより詳細に論じられるように、URI POST及びGET要求内の一意の一方向性関係識別子(RDID)を、文書及びデータコンポーネントに結合することである。プラットフォームへのアクセスを制限するために使用される、JWT(JSON Web Token)又はOAuth 2.0、又はそれ以降などの様々な識別、承認、及び認証技術の使用によって、追加のセキュリティが維持される。好適な実施形態では、プラットフォームへのアクセスは、アクセスを得る前にエンティティ名及びエンティティパスコードをシステムに提供するための要件など、追加のセキュリティ対策によって保護される。当業者は、アクセス制御及びデータ暗号化に関して本明細書に記載されるセキュリティ対策は、単に代表的なものであり、限定するものではないことを理解するだろう。
【0046】
・プラットフォームの動作
・データの投稿
簡単にするために、第1のエンティティが、第2のエンティティに関する1つ以上の文書を投稿又は取得することを望んでいると仮定する。システムにアクセスするために、第1のエンティティは、データベースシステム10に登録し、第2のエンティティとの関係を確立していなければならない。データプラットフォーム12は、最初に、その関係を管理するRDIDを第1のエンティティに割り当てている。RDIDは、その関係に対して一意であり、要求エンティティから一方向性、すなわち一方向である。この例では、要求元は第1のエンティティであり、第2のエンティティは標的である。第1のエンティティは、第2のエンティティとの関係(及びそれが関係する任意の他のエンティティとの関係)について、そのRDIDを知っている。
【0047】
例えば、第1のエンティティが病院であり、第2のエンティティが人物であると仮定する。これら2つのエンティティは、1つ、2つ、3つ、4つ、又はさらに多くのRDIDを有することができる。プラットフォーム12は、患者としての人物に関連するこれらの文書に関する第1の関係に関する第1のRDIDを割り当てることができる。病院は、患者に関する文書を投稿又は取得したい場合に、このRDIDを使用する。第2のエンティティがたまたま医師であったと仮定する。プラットフォーム12は、医師の役割に関連する病院と人物との間のこの第2の関係に関する第2のRDIDを割り当てることができる。又は、同じ人物が、病院の患者としての役割において自分の血液に対して行われた臨床検査の結果を見たいと望んでいると仮定する。これは、第3のRDIDを必要とする第3の関係となる。又は、その人物が、病院受け入れ方針に関する情報を望んでいると仮定する。これは、第4のRDIDを必要とする第4の関係となる。別のエンティティは、その第2のエンティティがメンバーである病院の産科病棟で診療している医師のグループであってもよく、これにより、3つのエンティティ間の関係の様々な組み合わせをカバーするさらに多くのRDIDの割り当てを示す。
【0048】
図6は、第2のエンティティに関連する文書に関する第1のエンティティから生じるPOST及びGETコマンドを処理する方法の好適な実装形態の簡略化されたフローである。第1のエンティティは、REST APIインターフェース14を通じてデータプラットフォーム12にhttps(又はhttp)要求によってPOST又はGETコマンドを送信する(「post-URI」又は「get-URI」)。POSTコマンドは、TLSプロトコルを通じて保護され、及び/又は輸送中に暗号化され、及び/又は静止中に暗号化されてもよい。投稿コマンドは、プラットフォーム暗号化フィールドを有する第2のJSON Web Tokenなどの第2の認証技術によってさらに保護され、及び/又はOAuth 2.0以上を含むことができる。第2の認証技術はまた、エンティティのEDID(後述)を含むことができる。一実施形態では、データプラットフォーム12は、APIから投稿コマンドを受信する。別の実施形態では、投稿コマンドは、RESTアーキテクチャスタイルにしたがってプラットフォーム12で受信され、及び又はウェブサービスを介してプラットフォーム12で受信される。POST要求は、URIの形態であり、URIは、RDIDアクセストークン50及び他のコンポーネント、例えばドメイン/クラス/RDID/コレクションのコンポーネントを含む。
【0049】
後述されるように、RDIDは、要求元エンティティ及びデータプラットフォーム12の両方によって使用される値である。一実施形態では、RDIDアクセストークン50は、プラットフォーム12によって使用される、より長い及び/又はより複雑な「システムRDID」値から導出される。この実施形態では、「システムRDID」は、例えば投稿及び照会要求を検証するために、及び以下でより詳細に記載されるように値をマッピングするために、プラットフォーム12によって実際に使用される値である。好適な実施形態では、実際のシステムRDIDは、要求元エンティティに提供されない。代わりに、RDIDアクセストークン50が要求元エンティティに提供される。RDIDアクセストークン50は、例えば、より長いシステムRDIDの128ビットハッシュ、ベース62符号化ストリングであってもよい。要求元エンティティがURIにRDIDアクセストークン50を含むとき、プラットフォーム12は、RDIDアクセストークン50から「実」システムRDIDの値を導出する。両方とも同じRDID値を表すが、一方はより短く、システムユーザにとってより便利になるように符号化(エンコード)される。
【0050】
当業者は、プラットフォーム12がこれらのプロセスのためにシステムによって採用されたRDID値をRDIDアクセストークン50から導出し得る様々な方法があることを、理解するだろう。文脈が異なる構成を指示しない限り、本明細書及び特許請求の範囲における「RDID」への言及は、その値が符号化されるか符号化されないかにかかわらず、2つのエンティティ間の関係に割り当てられた一意で一方向性の値を意味する(一方のエンティティは複数の他のエンティティからなってもよいことを想起する)。
【0051】
投稿要求を処理する前に、プラットフォーム12は、ステップ56において、使用中のRDIDが有効であるか否か、すなわち投稿URI54で渡された情報がRDID内の情報と一致するか否か、並びに第1のエンティティが第2のエンティティ(又は複数のエンティティ)に関連する文書の投稿及び/又は照会を許可するために不可欠な関係特権を実際に有するか否かを判定するために、URIのRDIDコンポーネントを評価する。一実施形態では、検証ステップは、投稿URI54に収容されたRDIDアクセストークン50から導出可能な情報を、データストア18から取得された第2のエンティティ資格情報から導出可能な情報と比較することを含む。RDIDが有効化されていない場合、要求は中止され、プラットフォーム12はエラーを返す。RDIDが要求されたアクセス特権に対して有効化されている場合、プラットフォーム12は次のステップに進み、これは文書を投稿すること、又はGET要求を介して照会を発行することであってもよい。
【0052】
RDIDを検証した後、データプラットフォーム12は、ステップ58において、要求がPOSTであるかGETコマンドであるかを評価する。好適な実施形態では、REST APIインターフェース14は、2つのHTTP要求動詞、GET(照会)及びPOST(記憶)のみに応答する。オリジン間リソース共有(CORS)を実装するためのOPTIONS動詞を除き、他のすべてのHTTP動詞は、未発見(404)戻りコードを返す。したがって、既存のデータを削除又は修正し、こうして不変のデータベースを提供することは不可能である。
【0053】
最初にPOSTパスを見ると、取り込みのために投稿URI54がデータプラットフォーム12で受信される。(便宜上、
図6はPOST及びGETコマンドの両方を処理するいくつかの態様を組み合わせている。
図6の上部のHTTPSの矢印は、以下に記載されるような投稿URI54又は取得URI70とすることができる。)取り込みは、投稿文書がサポートされているフォーマットタイプであるか否かを最初に判定することを含むことができる。フォーマットがサポートされている場合、データプラットフォーム12は、ステップ60において、記憶要求で指定されたフォーマットのパーサを使用して複数のデータコンポーネントへの文書を共通階層フォーマット(CHF)に解析することができる。データコンポーネントは、(それらのハッシュ値に関連付けられたハッシュキーとは対照的に)それらの自然値に関連付けられた自然キーを含むことができる。解析されたデータコンポーネントはまた、解析動作自体から生じるか又はこれに関連するフォーマットデータを含むことができる。解析はCHFデータを生成し、これは一実施形態ではJSONとしてフォーマットされる。CHFデータは、バイナリ表現でもフォーマットされ得る。再び
図12を参照すると、上のボックスは、キー及び値、例えばそれぞれ「発行者」及び「https://sandbox.bluebutton.cms.gov」を示す、CHFに解析されたデータの一例である。解析が行われる時間、又はその付近で、CHFデータは、例えばアイコンジェネレータを使用して上述されたように、ハッシュされてもよい。
【0054】
ステップ62において、プラットフォーム12は、同時に又はほぼ同時にいくつかの動作、すなわち、文書の一意の文書識別(docID)を構築すること、及び
図6に「ドメイン/エンティティキー」として記されるURIパスに関する1つ以上のキーを使用してCHF文書を記憶することを実行する。
【0055】
一実施形態では、プラットフォーム12は、投稿URI54のパスで指定されたドメイン/クラス/コレクションへのアクセスを有するエンティティのリスト90を取得する。投稿URI54へのアクセスを有するエンティティを列挙するエンティティリスト90にアクセスするために、プラットフォーム12は、まず、対象のドメイン/クラス/コレクション内の文書へのアクセスを有するエンティティのデータを収容する文書を取得するための「エンティティリストキー」(「el-key」)88を最初に生成することができる。el-key88は、投稿URIパスから導出することができ、投稿URI54のパスで指定されたドメイン/クラス/コレクションへのアクセスを有するエンティティのリストに関連付けられたキー値(KV)エンティティストア18内の「el-URI」アドレスに対応することができる。好適な実施形態では、データストア18に記憶されたエンティティのリストは値であり、el-keyも値も人間が読み取ることはできない。一実施形態では、el-key及び値は、128ビットキーを使用してハッシュされる。別の実施形態では、el-key及び値は暗号化される。
【0056】
判定ステップは、el-URIアドレスからアクセス可能なエンティティリスト90を取得するために投稿URI54から生成されたel-keyを使用し、次いで、第2のエンティティがel-URIアドレスにおけるエンティティのリストに含まれるか否かを判定することを含むことができる。第2のエンティティがまだリストされていない場合、プラットフォーム12は、文書が関連するエンティティのリストに第2のエンティティを追加し、更新されたエンティティリスト90をデータストア18に記憶させることができる。生成されたel-URIにエンティティリストが存在しない場合には、プラットフォーム12は、第1のエンティティを含むそのel-URIに関連付けられた新しいエンティティリスト90を作成し、次いで、この新しいエンティティリスト90をデータストア18に記憶させることができる。
【0057】
判定ステップは、投稿URIのパスで指定されたドメイン/クラス/コレクションを共通に有する文書のリストを取得し、次いで、投稿URIパスから導出される「文書リストキー」(dl-key)を生成することをさらに含むことができる。el-keyと同様に、dl-keyは、投稿URIパスで指定されたドメイン/クラス/コレクション内の文書のリストに関連付けられたデータストア18内のdl-URIアドレスに対応することができる。dl-keyは、データストア18に記憶された文書の文書リスト78に対するキーであってもよく、文書リスト78は、対象の文書内のメタデータで構成された文書エントリのリストに加えて、文書内のキー及び値で構成された辞書で構成されてもよい。好適な実施形態では、キーも値も人間が読み取ることはできず、辞書内のキー及び値はハッシュされる。一実施形態では、キー及び値のハッシュは64ビットアイコンである。
【0058】
新しい文書エントリについて文書リスト78を更新することは、位置#0において文書リスト78に文書エントリを追加することと、任意の既存のエントリを1つ下の位置まで移動させることとを含むことができる。文書リスト78は暗号化されてもよい。判定ステップは、dl-URIアドレスからアクセス可能な文書リスト78を記憶するために、投稿URIから生成されたdl-keyを使用することをさらに含むことができる。dl-URIに文書リスト78が存在しない場合、取り込みは、位置#0に投稿文書エントリを含むdl-URIに関連付けられた新しい文書リスト78を作成することをさらに含むことができる。この文書リスト78は、同様に暗号化され、dl-keyアドレスにおいてデータストア18に記憶されてもよい。
【0059】
上述のように、ステップ60における解析活動は、投稿文書を複数のデータコンポーネントに解析することを含むことができ、解析されたデータコンポーネントは、それらの自然値に関連付けられた自然キーを含み、「自然」は、ハッシュ又はアイコン化の前に投稿文書内に提示されたキー、値を意味する。(これらのキーは、上記で論じられたel-key及びdl-keyと混同されるべきではない。この分野の当業者に知られているように、「キー」という用語は、文脈に応じて異なる意味を有する。)上述のように、データコンポーネントは、好ましくはCHFデータを生成するためにCHFフォーマットに解析される。CHFデータは、JSONとして、又は他のフォーマット(XML、YAML、バイナリなど)でフォーマットされてもよい。好適な実施形態では、CHFデータはハッシュされ、別の好適な実施形態では、CHFデータはアイコン化される。アイコン化CHFデータはストリング値を含むことができ、アイコン化CHFデータは64ビットなどの一定の幅を有することができる。
【0060】
好適な実施形態では、取り込みは、投稿文書内に提示されたデータコンポーネントの辞書100を策定することをさらに含み、辞書100は、1)自然キーをそれらの対応するハッシュCHFキーデータに関連付け、2)自然値をそれらの対応するハッシュCHF値データに関連付け、3)フォーマットデータをそれらの対応するハッシュCHFデータストリングに関連付ける。
図13を参照すると、上のボックスは、10個の自然値に関連付けられた10個の自然キーを有するソース文書を表している。このソース文書の辞書100は、
図12の下部に示されている(右下の参照番号100を参照)。第1の自然キー110は、第1のキー関連性120として示される、第1のハッシュキー111に関連付けられる。第1の自然値112は、第1の値関連性122として示される第1のハッシュ値113に関連付けられる。同様に、第2の自然キー114は、第2のキー関連性124として示される第2のハッシュキー115に関連付けられる。第2の自然値116は、第2の値関連性126として示される第2のハッシュ値117に関連付けられる。このように、辞書100は、自然キーをそれらの対応するハッシュキーに関連付け、自然値をそれらの対応するハッシュ値に関連付ける。
図12に示されるように、ハッシュは、アイコン化された64ビットCHFデータストリングであってもよい。
【0061】
これを念頭に置いて、取り込みステップは、ハッシュCHFデータコンポーネントを含むハッシュキー及びハッシュ値の配列(「t配列」-「タグ配列」の略語)を生成することを含むことができる。t配列は、CHFデータコンポーネントがパーサから受信される順序で構築されてもよい。
図13を参照すると、第1の自然キー110は、t配列102の「ゼロ」位置に現れる第1のハッシュキー111に関連付けられている。第1の自然値112は、t配列102の「第1の」位置に現れる第1のハッシュ値113に関連付けられている。同様に、第2の自然キー114は、t配列102の第6の位置に現れる第2のハッシュキー115に関連付けられており、第2の自然値116は、t配列102の第7の位置に現れる第2のハッシュ値117に関連付けられている。t配列102はまた、内部配列ナビゲーション命令のハッシュも含むことができる。
【0062】
t配列102は、複数のデータノード104を使用してインデックスされてもよい。一実施形態では、複数のノード104は、データノード(「dnode」)を含む。好適な実施形態では、各dnodeは、1つのキー及びそのキーに関連付けられた少なくとも1つの値に関連する。キー(例えば、「ミドルネーム」)は、これに関連する値を有していない場合がある。本明細書及び特許請求の範囲で使用される際に、「関連する値」は、空のセット、「ヌル値」、又は「値なし」を含む。
【0063】
図13に示されるように、複数のノード104は、t配列102の位置0及び1のハッシュがキー:値の関係を有することを示す第1のdnode128を含む。(ノード内の最後の位置は、元の投稿文書の階層を再構成するために使用され得る、dnode内のdnode親インデックスを示す。)同様に、dnode130は、位置6及び位置7のハッシュ値がt配列102においてキー:値の関係を有することを示す。複数のノード104は、t配列ノードの一部又はすべてのエンティティへのアクセスを制限する、又は他のエンティティによる許容可能な照会パラメータを制限する内部命令を含む1つ以上のセキュリティノード132(「snode」)をさらに含むことができる。図示される例では、snode132は、これらのCHFデータコンポーネントの1つ以上のノードによるアクセスグループ「myDoctors」及び「myNurse」へのアクセスを制限することができる。要約すると、複数のノード104は、キー:値の関連性を有するt配列内の少なくとも2つのハッシュCHFデータストリングを指すノードを含み、関連性は、自然キーと自然値との間の関連性に対応する。
【0064】
取り込みステップは、投稿文書から解析されたCHFデータに基づいてメタヘッダを生成することをさらに含むことができる。一実施形態では、メタヘッダは、投稿URIパスの個々のコンポーネントのハッシュ又はアイコンを含む、階層投稿URIに関するキー値(KV)情報を含むことができる。メタヘッダはまた、CHF文書が作成された時間に関するKV情報も含むことができる。一実施形態では、作成時間はUNIXエポックナノ秒で測定される。好適な実施形態では、メタヘッダは、投稿URIパス内のRDIDに関するKV情報を含む。メタヘッダは、好ましくは、投稿文書を一意に識別する文書ID(DocID)に関するKV情報をさらに含む。メタヘッダはまた、文書バージョンに関するKV情報、コンテンツタイプに関するKV情報、及び投稿文書にアクセスすることが許可されたグループに関するKV情報も含むことができる。メタヘッダは、その後にCHFデータが失効すると見なされてデータストア18から削除される、ナノ秒の持続時間として表される有効期限を含む有効期限をさらに含むことができる。したがって、
図7に示されるように、CHF文書66(「投稿文書」とは区別される)は、そのコンポーネント(作成日、RDID、docIDなど)の各々を有するメタヘッダ、辞書、t配列、及び複数のデータノードを含むことができる。
【0065】
取り込みステップはまた、投稿文書から解析されたCHFデータを暗号化することも含むことができる。一実施形態では、暗号化は、第1のエンティティ公開キーを使用することを含む。別の実施形態では、暗号化は、暗号化されたヘッダがプラットフォーム12によってのみ取得可能であるように、サーバ公開暗号キーを使用してメタヘッダを暗号化することを含む。別の実施形態では、暗号化されたメタヘッダは、DLT台帳にトランザクションを追加するために使用される。追加されたトランザクションは、コンセンサスを記録するために利用することができる。追加されたトランザクションは、CHF文書66を取得するために使用することができる。別の実施形態では、追加されたトランザクションは、台帳に対してプライベートデータを明らかにしない。
【0066】
次いで、データプラットフォーム12は、取り込みプロセスを完了し、データストア18にCHF文書を記憶させることができる。データプラットフォーム12は、好ましくはネットワークの範囲を超えて、CHF文書の基礎となる投稿文書を破棄するか、又はこれをアーカイブしてもよい。セット内の各データストア18は、それに割り当てられた1つから多数のエンティティからのデータを収容する。データストアルーティングは、RDIDから取得されたプライベートエンティティキーによって決定することができる。上述のように文書リスト78が修正された場合、修正された文書リスト78は、データストア18のdl-URIアドレスに記憶される。新しいCHF文書が作成された場合、文書エントリは、位置#0において新しい文書リスト78に追加され、任意の既存のエントリは1つ下の位置に移動することができる。前述のように、CHF文書のすべて又は一部はアイコン化CHFデータとして記憶されてもよく、CHFデータはストリング値を含む。上記の説明と一致して、アイコン化されたデータは一定の幅を有することができ、アイコン幅は64ビットであってもよい。
【0067】
次いで、投稿文書のdl-URIに関連付けられた文書リスト78は、CHF文書からの情報のサブセットを追加するように好ましく修正される。追加された情報のサブセットは、文書を投稿した第1のエンティティに対応するdocID、タイムスタンプ、ソースIDを含むことができる。情報のサブセットはアクセシビリティフィールドをさらに含むことができ、アクセシビリティフィールドの値は、第2のエンティティがCHF文書内のデータをどの程度広く照会させるかを示す、「公開」及び「プライベート」を含む。サブセットは、有効期限及びt配列をさらに含むことができる。繰り返し上述されたセキュリティの強調と一致して、一実施形態では、文書リスト78自体が、上述の技術を使用してサーバ公開暗号キーによって暗号化される。
【0068】
取り込みは、CHF文書を複製することと、複製されたCHFデータを少なくとも1つのデータストア18に記憶させることとをさらに含むことができ、複製されたデータは、複数のデータストア18に記憶される。別の実施形態では、取り込みは、投稿文書から解析されたCHFデータコンポーネントの一部又はすべてをエンティティ上でシャーディングすることによって決定されたデータベース内にCHFデータを記憶させることを含んでもよい。取り込みステップは、サーバレスプラットフォーム内のエンティティデータに結合された「サーバレス」機能にエンティティごとの記憶(ストレージ)を指示することをさらに含むことができる。サーバレスプラットフォームの一例は、AWS Lambdaである。取り込みは、投稿文書から解析されたCHFデータを複数のデータベースのうちの1つ以上に割り当てることをさらに含むことができ、複数の1つ以上のデータベースは分散型台帳技術(DLT)台帳を含む。(1つ又は複数の)特定のデータストア18の一部又はすべては、同様にDLT台帳の分散データストアを含むことができる外部バックアップサイトに反映することができる。データストア及び/又は外部バックアップサイトは、分散ストアであってもよく、分散ブロックデータストアであってもよい。
【0069】
解析されたCHFデータ及び/又はCHF文書の一部又はすべては、複数のネットワークノードにおける処理及び/又は永続化のために、ネットワークプロトコルを通じてネットワークに接続された1つ以上の受信機に送信することができる。したがって、CHFは、メモリのみの表現として使用することができ、CHFが永続化される方法で照会されてもよい。任意選択的に、POST動作から返されたメタヘッダは、サーバプライベート暗号キーによって暗号化されて返されることが可能であり、したがってデータプラットフォーム12によってのみ取得可能である。暗号化されたメタヘッダは、分散型台帳技術の当業者によって理解される特徴及び用途を示す
図11に示されるように、投稿によってプライベートデータを台帳に対して明らかにすることなく、コンセンサスの目的でDLT台帳に文書トランザクションを投稿するために使用することができる。上述のように、メタヘッダは、投稿URIパス、記憶時間に関する情報を含むことができる。これはまた、取り込まれた投稿文書のハッシュ、及び必要に応じて他の情報も含むことができる。メタヘッダ情報は、検証のためにサーバ公開暗号キーによって暗号化されたCHF文書を含む、特別にフォーマットされたCHF文書に記憶されてもよい。
【0070】
図6に戻ると、ステップ64は、投稿及び作成動作が成功したか否か、作成時間、取り込み中に作成されたdocID、及び/又はdocVersionなど、メタヘッダに収容された情報の一部を含む情報を、文書を投稿した第1のエンティティに返すことができる。CHF文書は、第1のエンティティ、並びに投稿URI54で指定されるドメイン及び下位コンポーネントに不変に関連付けられる。
【0071】
・データの照会
図6は、データベースシステム10に記憶された第2のエンティティに関する情報の第1のエンティティの照会に関する一般的なステップを示す。図示される実施形態では、POSTコマンドについて上述されたのと同じ検証ステップ56が、照会を検証すること、具体的には、RDIDが有効化否かを判定するためにURIのRDIDコンポーネントを参照することによってアクセス特権を検証することに適用される。
【0072】
図7は、プラットフォーム12が、第2のエンティティ(標的)に関連する文書に関する第1のエンティティ(要求元)によって発行された照会の少なくとも3つのカテゴリ、特定の文書からのデータを要求する直接docID照会、第2のエンティティとの1つの固有の関係に基づく第1のエンティティにアクセス可能な文書のコレクションにわたるRDID照会、及びこれらのエンティティと第1のエンティティとの間の特定のRDIDによって管理されてもされなくてもよい多くのエンティティに関連する文書に関する非RDID照会を処理する実施形態を示す。
【0073】
・DocID照会
照会は、HTTP(S)GETコマンドを介してデータプラットフォーム12で受信される。
図6及び
図7を参照すると、第1のエンティティは、第2のエンティティに関連する所望のCHF文書へのアクセスを得るために、直接DocID照会68を発行することができる。所望のCHF文書は、静的データ又はコンピュータ命令又は任意の種類のデータを含むことができる。文書を投稿するプロセスと同様に、照会は、URIフォーマットのHTTPSプロトコルを介してデータプラットフォーム12で受信したHTTPフォーマットのGETコマンドの形態であってもよい。上述のPOSTコマンドと同様に、GETコマンドは、例えばTLSプロトコルを通じて保護されてもよく、輸送中に暗号化され、及び/又は静止中に暗号化されてもよい。POSTコマンドと同様に、照会コマンドは、第2の認証技術、例えばプラットフォーム暗号化フィールドを有する第2のJSON Web Tokenによって保護され得る。認証技術は、第1のエンティティのエンティティ分散識別子(以下でさらに論じられる)及び/又はRDIDアクセストークン50及び/又は照会で使用されているその導関数に基づく認証など、OAuth 2.0以上を含むことができる。
【0074】
一実施形態では、データプラットフォーム12に接続されたサーバは、REST APIインターフェースであってもよいAPIインターフェースからデータを取得する要求を受信する。取得要求は、HTTPSプロトコルを使用する取得コマンドとしてフォーマットされてもよく、好ましくはドメイン駆動階層フォーマットを使用するURIとして構造化される。この取得URI70は、RESTアーキテクチャスタイルにしたがってプラットフォーム12で受信されてもよく、所望の文書の取得URI70は階層パスを含んでもよい。
図8に示される例に示されるように、取得URI70の階層パスは、ホスト:ポート、ドメイン、クラス、エンティティタイプ、RDID、カテゴリ、アスペクト、及び/又はコレクションを含むことができる。直接DocID照会では取得URI要求は、上述のDocIDを含む。取得URIのドメイン及び下位コンポーネントの一部又はすべては、ハッシュ又はアイコン化されてもよい。好適な実施形態では、DocIDはハッシュもアイコン化もされない。
【0075】
上述のように第2のエンティティに関連する文書へのアクセスの第1のエンティティの要求を検証した後、データプラットフォーム12は、上述のように、ハッシュ演算を実行するか、又は投稿されたときに文書をハッシュするために使用されたのと同じ式を使用して送信された照会パラメータ上にアイコンを生成する。したがって、照会の結果的なハッシュ(又はアイコン)は、CHF文書66に記憶されたキー及び値と同じ「言語」である。
【0076】
図8を参照すると、一実施形態では、プラットフォーム12は、取得URI70パスから「文書識別子キー」(did-key)72を導出する。did-key72は、データストア18に記憶された特定のCHF文書66へのパスを確認するために、取得URIアドレス70から導出される。次いで、プラットフォーム12は、所望のCHF文書66に関連付けられたCHFデータをデータストア18から取得するために、did-key72を使用することができる。
【0077】
直接DocID68照会は、第1のエンティティへのアクセスを制限する、又は第1のエンティティの照会のパラメータを制限する値を求めてCHFデータt配列102を検索することを含むことができる。アクセスが許可されていると仮定すると、今説明された解析ステップで生成された第1のエンティティの照会のためのハッシュキー又はハッシュ値を使用して、プラットフォーム12は、一致するハッシュ又はアイコンを探してt配列102を検索することができ、見つかった場合には、照会と一致するCHF結果を組み立てるために、付随する複数のノード104をトラバースすることができる。取得ステップは、一致するCHFノードから照会結果を収集することと、CHF文書66に関連する地所を使用して自然キー及び自然値を構造化することと、所望のフォーマットで出力ノードを構築することとをさらに含むことができる。取得ステップは、所望のフォーマットの結果を第1のエンティティに返すことをさらに含むことができる。
【0078】
・RDID照会
図6及び
図9を参照すると、第2のエンティティとの関係を有する第1のエンティティは、「RDID照会」74によって第1のエンティティがアクセスを有するその第2のエンティティに関する複数の文書を照会する。上述の直接DocID照会と同様に、プラットフォーム12は、HTTPS(又はHTTP)GETコマンド及び階層「照会URI」76の形態の第2のエンティティに関連する文書へのアクセスを要求するRDID照会を、第1のエンティティから受信する。一実施形態では、照会URI76は、ドメイン、クラス、及びRDIDを含む。別の実施形態では、照会URIは、エンティティタイプ、カテゴリ、アスペクト、及びコレクション、又は上記の一部又はすべての組み合わせを含むことができる。照会は、1つ以上の所望のキー(すなわち「タグ」)、及び/又は1つ以上の所望の値、又は所望のキーと所望の値との組み合わせを含むことができる。照会用語は、
図6に示されるように、ステップ77で解析することができる。直接docID照会68と同様に、データプラットフォーム12は、ハッシュ演算を実行するか、又は文書が投稿されたときにCHFデータコンポーネントをハッシュするために使用されたのと同じ式を使用して送信された照会パラメータ上にアイコンを生成することができる。したがって、照会パラメータの結果的なハッシュ(又はアイコン)は、CHF文書66に記憶されたキー及び値と同じ「言語」である。
【0079】
RDID照会74を受信すると、データプラットフォーム12は、指示されたドメイン及び/又はエンティティに関連する文書リスト78を取得する。文書リスト78は、照会パラメータを満たすCHFデータを有することができるRDIDによって示されるように第1のエンティティにアクセス可能なすべての文書のリストである。一実施形態では、プラットフォーム12が照会URI76を受信すると、これは照会URI76のパスから導出される「文書リストキー」(dl-key)80を生成する。このdl-keyは、好ましくは、照会URI76のパスで指定されたドメイン/クラス/コレクション内の文書のリスト(文書リスト78)に関連付けられたデータストア18内のdl-URIアドレスを含む。dl-key80は、例えば、そのドメインのハッシュに加えて、照会URI76を含むクラスのハッシュをハッシュ又は結合することによって、照会URI76のパスから導出することができ、固定幅128ビットアイコンであってもよい。dl-key80によって到達されるアドレスは、RDID照会74に応答するデータストア18内の1つ以上の文書のリストを含むことができる。要約すると、データプラットフォーム12は、dl-URIアドレスからアクセス可能な文書リスト78を照会URI76から生成するために、dl-key80を使用することができる。データストア18に記憶された文書リスト78は、キー及び値を有するデータを含み、上述のように、メタヘッダ、t配列、及び辞書を含むことができる。一実施形態では、キー及び値はハッシュされ、人間が読み取ることはできない。別の実施形態では、dl-key80は128ビットである。別の実施形態では、キー及び値は暗号化される。
【0080】
RDID照会74におけるさらなるステップは、文書リスト78上の最初の文書が当事者による照会を許可するか否か、すなわち、第1のエンティティが課せられた照会の許可を有するか否かを判定することである。この許可チェックは、リストされた文書が第1のエンティティのRDID照会76にアクセス可能であるか否かを判定するために、文書リスト78上の文書ごとに繰り返される。第1のエンティティの照会にアクセス可能な各文書について、ステップ82で、プラットフォーム12は、照会されたキー及び/又は値(これらのハッシュされたバージョン)を、文書リスト78上の各アクセス可能文書に付随するt配列に収容されたキー及び値と比較する。図示される実施形態では、照会されたキー及び/又は照会された値がt配列内にある場合、プラットフォーム12は、ステップ84で一致及びインデックス位置を判定するためにインデックスノードをトラバースし、次いで、(1つ又は複数の)応答CHF文書66を使用して照会に対する完全な応答を組み立て、次いで、照会応答を完了するために、ステップ85で結果文書を第1のエンティティに返す。
【0081】
・非RDID照会
時々、第1のエンティティは、ひょっとすると関係のあるものを含み、ひょっとするといくつかは関係のない、複数のエンティティにわたって照会することを望む場合がある。あるいは、ことによると、第1のエンティティは、すべての関係者との関係を有するが、個々のRDIDに対して難解も繰り返すのではなく1回だけ照会を走らせることを好む。このような照会は、非RDID照会86である。
図7に示されるように、非RDID照会86は、RDID照会74及び直接DocID照会68と同じ原理、並びに同じステップ及び特徴の多くを含む。照会は、第2のエンティティとの登録された関係を有していないエンティティに到達する可能性があるため、非RDID照会86は、上述の照会よりも複雑である。それでもなお、登録された関係を有していないこれらのエンティティは、第2のエンティティによる照会を許可するプライバシー規則を有する可能性がある。
【0082】
解決策の一実施形態が
図10に示されている。データプラットフォーム12は、任意の数のエンティティに関連する文書へのアクセスを要求するクエリを第1のエンティティから受信する。照会は、HTTPS GETコマンド及び階層照会URI76を含むことができる。照会URI76は、ドメイン、クラス、エンティティタイプ、アスペクト、コレクション、カテゴリ、及び上記の一部又はすべての組み合わせを含むことができる。別の実施形態では、照会URI76は、1つ以上の所望のキー、及び/又は1つ以上の所望の値を含むことができ、又は所望のタグと所望の値との組み合わせを含むことができる。
図10に示される実施形態では、照会URI76はRDIDコンポーネントを含まない。RDID照会と同様に、ステップ77で照会用語が解析され、データプラットフォーム12は、ハッシュ演算を実行するか、又は文書が投稿されたときにCHFデータコンポーネントをハッシュするために使用されたのと同じ式を使用して送信された照会パラメータ上にアイコンを生成することができる。したがって、照会パラメータの結果的なハッシュ(又はアイコン)は、CHF文書66に記憶されたキー及び値と同じ「言語」である。
【0083】
プラットフォーム12は、照会URI76のパスから導出された「エンティティリストキー」(el-key)88を生成し、el-key88は、照会URI76で指定されたドメイン/クラス/コレクションへのアクセスを有するエンティティのリストに関連付けられたデータストア18内のel-URIアドレスに対応する。El-key88は、クラス及びコレクションなど、照会URI76内のコンポーネントから導出されたハッシュ又はアイコンであってもよい。El-key88は、照会URI76のパスに含まれてデータストア18に記憶されたCHF文書66を有するエンティティを含む、データストア18に記憶されたエンティティのリスト90へのキーである。好適な実施形態では、エンティティリスト90内のキーも値も人間が読み取ることはできない。別の実施形態では、エンティティリスト90内のキー及び値はハッシュされる。ハッシュは128ビットであってもよい。エンティティリスト90のキー及び値もまた暗号化され得る。
【0084】
次のステップで、データプラットフォーム12は、照会URI76のパスで指定されたドメイン/クラス/コレクションから導出されたel-key88を使用してエンティティリスト90を取得することができる。次いで、プラットフォーム12は、エンティティリスト90に記憶された値から、エンティティリスト90とともに記憶された、各リストされたエンティティの内部エンティティキーを導出することができる。次いで、内部エンティティキーごとに、プラットフォーム12は、各エンティティの内部エンティティキーの導出を照会URIパスと組み合わせることによって、エンティティリスト90上の各エンティティについて文書キー(dl-key)80を生成することができる。この結果、エンティティごとに1つのdl-key80が、投稿URIパスで指定されたドメイン/クラス/エンティティタイプ/コレクション内の文書のリストに関連付けられたデータストア18内のdl-URIアドレスに対応することになる。言い換えると、エンティティリスト90のすべてのエンティティのために生成された異なるdl-key80が存在することになる。エンティティリスト90の各エンティティについて、非RDID URI86を満たす文書リスト78を取得するために、dl-key80が作成される。以前と同様に、el-key88及びdl-key80は128ビットであってもよい。
【0085】
dl-key80を使用して、プラットフォーム12は、エンティティごとに1つ以上の文書リスト78にアクセスすることができる。データストア18に記憶された文書リスト78は、キー及び値で構成される。好適な実施形態では、キーも値も人間が読み取ることはできず、むしろハッシュされる。別の実施形態では、キー及び値は128ビットである。別の実施形態では、キー及び値は暗号化される。このプロセスを使用して取得された文書リスト78上のすべての文書の組み合わせは、候補文書リストを含むことができる。
【0086】
一実施形態では、候補文書リストは、上記の投稿セクションで説明されたCHF情報のサブセットを含む。文書リスト78に列挙されたCHF文書66ごとに、各候補は、そのCHF文書のdocID、そのタイムスタンプ、そのソースID、そのアクセス可能性、その有効期限、及びそのt配列を含むことができる。
【0087】
残りの非RDID照会86ステップは、上述のRDID照会74ステップと同様である。簡潔には、一実施形態において、データプラットフォーム12は、候補文書リスト78を調べることによって、最初の候補文書が第1のエンティティによる照会を許可するか否かを判定する。このステップは、候補文書リスト上の各文書が第1のエンティティの照会にアクセス可能であるか否かを判定するために、候補文書ごとに繰り返される。ステップにおいてハッシュされた照会用語(投稿文書から解析された情報をハッシュするために使用されたプロセスと同一のプロセスを使用してハッシュする)を使用して、プラットフォーム12は、照会されたキー及び/又は値(ハッシュされたバージョン)を、文書リスト78に現れる各アクセス可能文書に付随するt配列に収容されたキー及び値と比較する。
図10に示される実施形態では、照会されたキー及び/又は照会された値がt配列内にある場合、プラットフォーム12は、ステップ84で一致及びインデックス位置を判定するためにインデックスノードをトラバースし、次いで、(1つ又は複数の)応答CHF文書66を使用して照会に対する完全な応答を組み立て、次いで、非RDID照会応答を完了するために、ステップ85で結果文書を第1のエンティティに返す。
【0088】
したがって、記載された実施形態では、プラットフォーム12はスキーマに依存しない。照会を実行するために必要とされる「先験的な」データインデックス定義はない。
【0089】
・プラットフォーム上の登録:EDID及びRDIDの生成
上記の説明は、エンティティ中心のドメイン分割可能な管理者制御データプラットフォーム12を詳述している。上記の実施形態では、データの投稿、照会、及び取得は、データベースシステム10によって生成される一意(ユニーク、unique)の一方向性(一方向、unidirectional)の関係分散識別子(RDID)に結合される。システムに記憶されたデータは、行及び表を含むリレーショナルデータベース表に集中しておらず、すべてのデータが多くの一意のRDIDに結合されるので、極端に分散されている。
【0090】
先に論じられたように、データベースシステム10を含む1つ以上のサーバは、サーバ公開暗号キー及びサーバプライベート暗号キーを受信することができる。一実施形態では、データプラットフォーム12は、少なくとも部分的にサーバ公開暗号キーに基づいて、システム秘密アイコンを生成することができる。これは、システムにのみ知られている値を有する秘密アイコンである。
【0091】
プラットフォーム12へのアクセスは、事前登録及び適切な資格情報を必要とする。第1のエンティティを登録するために、プラットフォーム12は、プラットフォームに登録する要求を受信する。エンティティは、エンティティ名及び電子メールアドレスなどの識別情報、並びにエンティティの登録を許可するためにエンティティに提供されるパスコードを提供する。一実施形態では、パスコードを検証した後、プラットフォーム12は、エンティティのためのプライベートpassCodeを生成し、エンティティにプライベートpassCodeを提供する。一実施形態では、パスコードは不変であり、システム管理者以外によって変更することはできない。
【0092】
プラットフォーム12は、エンティティのためのエンティティ分散識別子(ED ID)を生成する。EDID生成ステップは、どのエンティティが任意の所与のEDIDによって表されるかを任意の人物又はコンピュータがリバースエンジニアリングすることを実質的に不可能にするための一連のステップを含むことができる。EDID生成ステップは、例えば、少なくとも部分的に第1の識別情報に基づいて第1のアイコンを生成することを含むことができ、表とともに実装された線形フィードバックシフトレジスタなどの変換方式を使用して追加のアイコンを生成することをさらに含むことができ、システム秘密アイコンであってもよいシステムアイコンと第1のアイコンをアルゴリズム的に組み合わせることをさらに含むことができ、ハッシュを組み合わせるためにバイトバッファを使用することをさらに含むことができ、後にEDIDとして機能するために任意の数の導関数アイコンを生成することをさらに含むことができる。一実施形態では、EDIDは、ASCII文字を含み得る、固定幅128ビットアイコンである。EDIDは、アプリケーションに応じてエンティティに提供されてもされなくてもよい。一実施形態では、プラットフォーム12は、サーバ公開暗号キーを使用してエンティティEDIDを暗号化し、その後、エンティティ資格情報の一意のセットをデータストア18に記憶させる。エンティティがデータプラットフォーム12にアクセスすることを望むときに使用される資格情報は、少なくとも部分的に第1のエンティティEDIDから導出することができる。登録のプロセスでは、エンティティには、エンティティ公開キー及びエンティティプライベートキーを含む暗号キーペアも提供される。登録中、プラットフォーム12はまた、システム管理者、ドメイン管理者、開発者、コホート、又はグループメンバーなど、第1のエンティティの役割を記録することもできる。プラットフォーム12は、グループ内のエンティティのメンバーシップを記録してもよい。
【0093】
RDIDを生成するために、プラットフォーム12は、最初に、第2のエンティティとの関係を確立する要求を第1のエンティティから受信する。要求された関係は、第1のエンティティを要求元として分類し、第2のエンティティを標的として分類することなどの関係パラメータを含むことができる。関係パラメータは、第1のエンティティが第2のエンティティに関連する文書を投稿すること、及び/又は第2のエンティティに関連する文書を照会することなどを可能にする。関係の失効などの他の関係パラメータ、並びに役割、グループなどの他のアクセス制御パラメータも同様に定義することができる。
【0094】
一実施形態では、RDIDは、第1のエンティティ及び第2のエンティティの値を符号化することに基づく。EDID生成ステップと同様に、RDID生成ステップは、第1の識別情報、第2の識別情報、システムアイコン、複数の2つ以上のアイコンを保持するバイトバッファの利用、第1のエンティティ及び/又は第2のエンティティのプライベートパスコード、及び/又はシステム秘密アイコンに少なくとも部分的に基づいて一連のアイコンを生成することを含むことができる。プラットフォームがRDIDを生成した後、プラットフォームは、例えばサーバ公開暗号キーを使用してこれを暗号化することができる。RDIDによって証明される関係を作成するための承認は、第2のエンティティによる認可に続く一連のステップによって導出される。認可は明示的であってもよく、例えば、それによって第2のエンティティが、関係要求のプラットフォームからの通知並びに第2のエンティティが認可又は拒否できる第2のエンティティの特定のデータにアクセスしたいというその希望を受信する通知及びコールバック方法、投稿時にCHF文書66に埋め込まれたアクセス特権などである。あるいは、認可は暗黙的であってもよく、例えば第1のエンティティの役割及び/又はグループメンバーシップに基づく事前認可を含む、第2のエンティティの登録時に与えられる事前承認などである。プラットフォームは、エンティティ及びそれらの関係パラメータを決定した後にそれを受信したときにプラットフォーム12が分解(デコンストラクト)することができるRDIDアクセストークン50を第1のエンティティに発行する。一実施形態では、RDIDアクセストークン50は、ASCII文字を含む128ビットの固定幅を有するベース62内の固定長アイコンである。次いで、プラットフォーム12は、プラットフォーム上で第1のRDIDを登録し、RDIDをデータストア18内の要求された関係パラメータに関連付けることができる。
【0095】
データベースシステム10の利点は、単に対象のRDIDをシステムから削除することによって、いつでもエンティティによって関係を取り消すことができることである。データはエンティティに結合されているので、エンティティのデータがどこに記憶されているかを分析する必要はなく、あるいは無数のファイルを移動又は削除する必要もない。データがどこに記憶されていても、そのRDIDを通じてアクセスすることはできなくなる。この能力は、例えばGDPRの「忘れられる権利」規制に準拠するための実質的な節約を潜在的に表す。
【0096】
・安全な遠隔処理
別の態様では、本発明は、安全なアプリケーションをリモートワークに拡張するための信頼できるプラットフォームを開発するためのフレームワークを提示する。
図14に示される一実施形態では、リモートワーカは、上述の安全なデータ機能を関係に結合された透明性と組み合わせることによって、安全なアプリケーションに安全にアクセスすることができる。本発明の信頼できるデータプラットフォーム12及びストア18を使用して、リモートユーザは、安全なアプリケーションプラットフォームインターフェースに照会し、次いで暗号化されたデータの応答として照会の結果を受信することができる。一実施形態では、暗号化は、プラットフォームに登録されたエンティティに割り当てられた暗号キーペアに基づく。この暗号化ペアを使用して、そのリモートワーカのみが応答を復号することができる。別の実施形態では、安全なGo言語に、すなわち、発明の技術を使用してリモートワーカのブラウザに結果を安全に提示する記述されたウェブサーバに返される。別の実施形態では、ローカルの安全なウェブサーバからブラウザによって受信されるまで、すべてのデータが暗号化される。
【0097】
別の実施形態では、応答データのすべての表示は、Javascriptの関与なしにブラウザHTMLで管理される。これにより、安全なアプリケーションの主な弱みである、ウェブアプリケーションで通常使用されるJavascriptを不要にするか又は排除する。ユーザによる応答(入力)は、好ましくはプラットフォームのユーザ暗号キーペアで暗号化される。この暗号化された応答は、安全なウェブサーバによって、アプリケーション処理のためにアプリケーション照会及び更新インターフェースに送信され得る。アプリケーションインターフェースは、アプリケーションのJSONフォーマットされた応答をもたらす安全なアプリケーションへのETL(Extract-Transform-Load)タイプの呼び出しを含むことができる。別の実施形態では、アプリケーションインターフェースは、リモートワーカの照会を、プラットフォーム自体にではなく処理のためのアプリケーションに提示することができる。処理のこの時点まで、すべてのデータが暗号化され得る。アプリケーションインターフェースからのデータは、任意の照会の結果をキャッシュするように、データベースシステム10データストア18に記憶され得る。
【0098】
上記の発明は、関連する法的基準にしたがって記載されており、したがって本説明は、本質的に限定的ではなく例示的である。開示された実施形態に対する変形例及び修正例は、当業者にとって明らかとなり、本発明の範囲に含まれる。
【先行技術文献】
【特許文献】
【0099】
【特許文献1】米国特許第8,793,768号明細書
【国際調査報告】