IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ タブロー ソフトウェア,エルエルシーの特許一覧

特表2024-526044データアセットのためのメタデータ継承
<>
  • 特表-データアセットのためのメタデータ継承 図1
  • 特表-データアセットのためのメタデータ継承 図2
  • 特表-データアセットのためのメタデータ継承 図3
  • 特表-データアセットのためのメタデータ継承 図4
  • 特表-データアセットのためのメタデータ継承 図5
  • 特表-データアセットのためのメタデータ継承 図6
  • 特表-データアセットのためのメタデータ継承 図7
  • 特表-データアセットのためのメタデータ継承 図8
  • 特表-データアセットのためのメタデータ継承 図9
  • 特表-データアセットのためのメタデータ継承 図10
  • 特表-データアセットのためのメタデータ継承 図11
  • 特表-データアセットのためのメタデータ継承 図12
  • 特表-データアセットのためのメタデータ継承 図13
  • 特表-データアセットのためのメタデータ継承 図14
  • 特表-データアセットのためのメタデータ継承 図15
  • 特表-データアセットのためのメタデータ継承 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-17
(54)【発明の名称】データアセットのためのメタデータ継承
(51)【国際特許分類】
   G06F 16/28 20190101AFI20240709BHJP
【FI】
G06F16/28
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023574495
(86)(22)【出願日】2022-05-26
(85)【翻訳文提出日】2024-01-29
(86)【国際出願番号】 US2022031195
(87)【国際公開番号】W WO2022256235
(87)【国際公開日】2022-12-08
(31)【優先権主張番号】17/588,161
(32)【優先日】2022-01-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/195,568
(32)【優先日】2021-06-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.WCDMA
3.UNIX
4.KOTLIN
5.iOS
(71)【出願人】
【識別番号】521550194
【氏名又は名称】タブロー ソフトウェア,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ドッドソン,マッジ,マリー
(72)【発明者】
【氏名】ドイル,タイラー,ジェームズ-バッカー
(72)【発明者】
【氏名】グリネフスカヤ,エカテリーナ
(72)【発明者】
【氏名】リャブコフ,ドミトリー,エフゲニエヴィッチ
(72)【発明者】
【氏名】ワン,チィエンファン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175FB03
5B175KA12
(57)【要約】
実施形態は、ネットワークコンピュータを使用してデータを管理することに関する。フィールド間の依存関係を表すエッジを含む階層モデルを生成することができる。アンカフィールドに関連付けられたメタデータの値を決定するためのクエリに応答して、クエリに基づいて階層モデルをアンカフィールドから上方にトラバースすることと、階層モデル内のフィールドノードを訪問したことに応答して、訪問済みフィールドノードに対応するメタデータの値を収集すること、クエリのタイプに基づいてトラバースを終了することと、計算ノードを訪問することに応答して、訪問済み計算ノードに関連付けられた階層モデルのトラバースを終了することと、2つ以上の他のノードに依存するフローノードを訪問することに応答して、階層モデルのトラバースを終了することとを含む更なる動作を遂行する。収集されたメタデータは、クエリへの応答において提供され得る。
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサを含むコンピュータを使用してデータを管理するための方法であって、動作を遂行する前記1つ以上のプロセッサによって実行され、
1つ以上のフィールドノード、1つ以上の計算ノード、又は1つ以上のフローノード間の依存関係を表す1つ以上のエッジを含む階層モデルを生成することと、
前記階層モデル内のフィールドノードであるアンカフィールドに関連付けられたメタデータの1つ以上の値を決定するためのクエリに応答して、
前記クエリ及び前記階層モデルに基づいて、前記アンカフィールドから上方に前記階層モデルをトラバースすることを含む更なる動作を遂行し、
前記階層モデル内の1つ以上のフィールドノードを訪問したことに応答して、前記訪問済みフィールドノードに対応する前記メタデータの前記1つ以上の値を収集することであって、前記トラバースが、前記クエリのタイプに基づいて終了することと、
計算ノードを訪問したことに応答して、前記訪問済み計算ノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
前記階層モデル内の2つ以上の他のノードに依存するフローノードを訪問したことに応答して、前記訪問済みフローノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
を含む更なる動作を遂行することと、
前記アンカフィールドに継承可能な前記メタデータの前記1つ以上の収集された値を含む応答を前記クエリに提供することとを含む方法。
【請求項2】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第1のクエリタイプであることに応答して、前記メタデータの値に関連付けられた前記アンカフィールドの第1の先祖フィールドノードを訪問することに応答して前記階層モデルの前記トラバースを終了することであって、前記第1の先祖フィールドノードから収集された前記メタデータの前記値が、前記アンカフィールドのための前記メタデータとして提供されることを更に含む、請求項1に記載の方法。
【請求項3】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第2のクエリタイプであることに応答して
前記アンカフィールドの先祖である前記階層モデル内の各フィールドノードを訪問することであって、介在計算ノード又は介在マルチ入力フローノードを訪問することが、前記階層モデルの前記トラバースを終了させることと、
前記アンカフィールドの先祖である各訪問済みフィールドノードについて前記メタデータの前記1つ以上の値を収集することであって、前記メタデータの前記1つ以上の値が、前記アンカフィールド及び前記1つ以上の訪問済み先祖フィールドノードに対応する前記階層モデル内の前記1つ以上の依存関係に基づいてソートされることとの、更なる動作を遂行することを更に含む、請求項1に記載の方法。
【請求項4】
前記階層モデルをトラバースすることが、
前記クエリ及び前記クエリを提供したクライアントに基づいて、前記階層モデルに関連付けられた1つ以上のセキュリティポリシを決定することと、
前記1つ以上の訪問済みフィールドノード及び前記クライアントを前記1つ以上のセキュリティポリシと比較することと、
前記比較に基づいて前記階層モデル内の1つ以上の制限されたフィールドノードを決定することであって、前記1つ以上のセキュリティポリシが、前記クライアントが前記1つ以上の制限されたフィールドノードに関連付けられた情報にアクセスすることを除外することと、
前記1つ以上の制限されたフィールドノードに関連付けられた前記メタデータの前記1つ以上の値を、前記クエリに対する前記応答から除外することであって、前記1つ以上の制限されたフィールドノードに関連付けられた識別子又はデータタイプのうちの1つ以上が、前記クエリに対する前記応答に含まれることとを更に含む、請求項1に記載の方法。
【請求項5】
クエリタイプ又は前記クエリのうちの1つ以上に基づいて、タイムアウト値又はノード訪問制限値のうちの1つ以上を決定することと
前記クエリに対する前記応答を提供するための時間が前記タイムアウト値を超えたことに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む前記クエリに対する部分応答を提供することと、
前記階層モデル内で訪問済みノードの数が前記ノード訪問制限値を超えることに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む部分応答を提供することとを更に含む、請求項1に記載の方法。
【請求項6】
クエリと共に提供される情報に基づいて前記クエリのタイプを決定することと、
前記クエリのタイプに基づいて前記トラバースを終了するための1つ以上の条件を決定することと、
前記クエリのタイプに基づいて、前記クエリへの前記応答に含めるための応答情報を決定することであって、前記応答情報は、前記メタデータの前記1つ以上の値、前記メタデータの前記1つ以上の値に基づく1つ以上の集約値、又は前記クエリのタイプによって定義される1つ以上の他の動作の実行のうちの1つ以上を含み得ることとを更に含む、請求項1に記載の方法。
【請求項7】
前記アンカフィールドが前記メタデータの値に関連付けられていることに応答して、前記アンカフィールドに関連付けられた前記メタデータの前記値を前記クエリへの前記応答に含めることと、
前記メタデータの前記値が前記アンカフィールドに存在しないことに応答して、前記クエリへの前記応答において前記アンカフィールドに最も近い前記階層モデル内の先祖フィールドノードに関連付けられた前記メタデータの前記値を提供することとを更に含む、請求項1に記載の方法。
【請求項8】
ネットワークコンピュータであって、
少なくとも命令を記憶するメモリと、
動作を遂行する命令を実行する1つ以上のプロセッサであって、
1つ以上のフィールドノード、1つ以上の計算ノード、又は1つ以上のフローノード間の依存関係を表す1つ以上のエッジを含む階層モデルを生成することと、
前記階層モデル内のフィールドノードであるアンカフィールドに関連付けられたメタデータの1つ以上の値を決定するためのクエリに応答して
前記クエリ及び前記階層モデルに基づいて、前記アンカフィールドから上方に前記階層モデルをトラバースすることを含む更なる動作を遂行し、
前記階層モデル内の1つ以上のフィールドノードを訪問したことに応答して、前記訪問済みフィールドノードに対応する前記メタデータの前記1つ以上の値を収集することであって、前記トラバースは、前記クエリのタイプに基づいて終了されることと、
計算ノードを訪問したことに応答して、前記訪問済み計算ノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
前記階層モデル内の2つ以上の他のノードに依存するフローノードを訪問したことに応答して、前記訪問済みフローノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
を含む更なる動作を遂行することと、
前記アンカフィールドに継承可能な前記メタデータの前記1つ以上の収集された値を含む応答を前記クエリに提供することとを含む更なる動作を遂行することとを含むプロセッサと、
クライアントコンピュータであって、
少なくとも命令を記憶するメモリを含むクライアントコンピュータと、
動作を遂行する命令を実行する1つ以上のプロセッサであって、
前記クエリを提供することを含む、プロセッサとを含むネットワークコンピュータである、データを管理するためのシステム。
【請求項9】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第1のクエリタイプであることに応答して、前記メタデータの値に関連付けられた前記アンカフィールドの第1の先祖フィールドノードを訪問することに応答して前記階層モデルの前記トラバースを終了することであって、前記第1の先祖フィールドノードから収集された前記メタデータの前記値が、前記アンカフィールドのための前記メタデータとして提供されることを更に含む、請求項8に記載のシステム。
【請求項10】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第2のクエリタイプであることに応答して
前記アンカフィールドの先祖である前記階層モデル内の各フィールドノードを訪問することであって、介在計算ノード又は介在マルチ入力フローノードを訪問することが、前記階層モデルの前記トラバースを終了することと、
前記アンカフィールドの先祖である各訪問済みフィールドノードについて前記メタデータの前記1つ以上の値を収集することであって、前記メタデータの前記1つ以上の値は、前記アンカフィールド及び前記1つ以上の訪問済み先祖フィールドノードに対応する前記階層モデル内の前記1つ以上の依存関係に基づいてソートされることとの、更なる動作を遂行することを更に含む、請求項8に記載のシステム。
【請求項11】
前記階層モデルをトラバースすることが、
前記クエリ及び前記クエリを提供したクライアントに基づいて、前記階層モデルに関連付けられた1つ以上のセキュリティポリシを決定することと、
前記1つ以上の訪問済みフィールドノード及び前記クライアントを前記1つ以上のセキュリティポリシと比較することと、
前記比較に基づいて前記階層モデル内の1つ以上の制限されたフィールドノードを決定することであって、前記1つ以上のセキュリティポリシが、前記クライアントが前記1つ以上の制限されたフィールドノードに関連付けられた情報にアクセスすることを除外することと、
前記1つ以上の制限されたフィールドノードに関連付けられた前記メタデータの前記1つ以上の値を、前記クエリに対する前記応答から除外することであって、前記1つ以上の制限されたフィールドノードに関連付けられた識別子又はデータタイプのうちの1つ以上が、前記クエリに対する前記応答に含まれることとを更に含む、請求項8に記載のシステム。
【請求項12】
前記1つ以上のネットワークコンピュータプロセッサが、動作を遂行する命令を実行し、
クエリタイプ又は前記クエリのうちの1つ以上に基づいて、タイムアウト値又はノード訪問制限値のうちの1つ以上を決定することと、
前記クエリに対する前記応答を提供するための時間が前記タイムアウト値を超えたことに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む前記クエリに対する部分応答を提供することと、
前記階層モデル内で訪問済みノードの数が前記ノード訪問制限値を超えることに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む部分応答を提供することとを更に含む、請求項8に記載のシステム。
【請求項13】
請求項8に記載のシステムであって、前記1つ以上のネットワークコンピュータプロセッサが、動作を遂行する命令を実行し、
クエリと共に提供される情報に基づいて前記クエリのタイプを決定することと、
前記クエリのタイプに基づいて前記トラバースを終了するための1つ以上の条件を決定することと、
前記クエリのタイプに基づいて、前記クエリへの前記応答に含めるための応答情報を決定することであって、前記応答情報が、前記メタデータの前記1つ以上の値、前記メタデータの前記1つ以上の値に基づく1つ以上の集約値、又は前記クエリのタイプによって定義される1つ以上の他の動作の実施の1つ以上を含み得ることとを更に含む、請求項8に記載のシステム。
【請求項14】
前記1つ以上のネットワークコンピュータプロセッサが、動作を遂行する命令を実行し、
前記アンカフィールドが前記メタデータの値に関連付けられていることに応答して、前記アンカフィールドに関連付けられた前記メタデータの前記値を前記クエリへの前記応答に含めることと、
前記メタデータの前記値が前記アンカフィールドに存在しないことに応答して、前記クエリへの前記応答において前記アンカフィールドに最も近い前記階層モデル内の先祖フィールドノードに関連付けられた前記メタデータの前記値を提供することとを更に含む、請求項8に記載のシステム。
【請求項15】
データを管理するための命令を含むプロセッサ可読非一時的記憶媒体であって、1つ以上のプロセッサによる前記命令の実施が動作を遂行し、
1つ以上のフィールドノード、1つ以上の計算ノード、又は1つ以上のフローノード間の依存関係を表す1つ以上のエッジを含む階層モデルを生成することと、
前記階層モデル内のフィールドノードであるアンカフィールドに関連付けられたメタデータの1つ以上の値を決定するためのクエリに応答して、
前記クエリ及び前記階層モデルに基づいて、前記アンカフィールドから上方に前記階層モデルをトラバースすることを含む更なる動作を遂行し、
前記階層モデル内の1つ以上のフィールドノードを訪問したことに応答して、前記訪問済みフィールドノードに対応する前記メタデータの前記1つ以上の値を収集することであって、前記トラバースは、前記クエリのタイプに基づいて終了することと、
計算ノードを訪問したことに応答して、前記訪問済み計算ノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
前記階層モデル内の2つ以上の他のノードに依存するフローノードを訪問したことに応答して、前記訪問済みフローノードに関連付けられた前記階層モデルの前記トラバースを終了することと、
を含む更なる動作を遂行することと、
前記アンカフィールドに継承可能な前記メタデータの前記1つ以上の収集された値を含む応答を前記クエリに提供することとを含むプロセッサ可読非一時的記憶媒体。
【請求項16】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第1のクエリタイプであることに応答して、前記メタデータの値に関連付けられた前記アンカフィールドの第1の先祖フィールドノードを訪問することに応答して前記階層モデルの前記トラバースを終了することであって、前記第1の先祖フィールドノードから収集された前記メタデータの前記値が、前記アンカフィールドのための前記メタデータとして提供されることを更に含む、請求項15に記載の媒体。
【請求項17】
前記クエリの前記タイプに基づいて前記トラバースを終了することが、
前記クエリが第2のクエリタイプであることに応答して
前記アンカフィールドの先祖である前記階層モデル内の各フィールドノードを訪問することであって、介在計算ノード又は介在マルチ入力フローノードを訪問することが、前記階層モデルの前記トラバースを終了することと、
前記アンカフィールドの先祖である各訪問済みフィールドノードについて前記メタデータの前記1つ以上の値を収集することであって、前記メタデータの前記1つ以上の値は、前記アンカフィールド及び前記1つ以上の訪問済み先祖フィールドノードに対応する前記階層モデル内の前記1つ以上の依存関係に基づいてソートされることとの、更なる動作を遂行することを更に含む、請求項15に記載の媒体。
【請求項18】
前記階層モデルをトラバースすることが、
前記クエリ及び前記クエリを提供したクライアントに基づいて、前記階層モデルに関連付けられた1つ以上のセキュリティポリシを決定することと、
前記1つ以上の訪問済みフィールドノード及び前記クライアントを前記1つ以上のセキュリティポリシと比較することと、
前記比較に基づいて前記階層モデル内の1つ以上の制限されたフィールドノードを決定することであって、前記1つ以上のセキュリティポリシが、前記クライアントが前記1つ以上の制限されたフィールドノードに関連付けられた情報にアクセスすることを除外することと、
前記1つ以上の制限されたフィールドノードに関連付けられた前記メタデータの前記1つ以上の値を、前記クエリに対する前記応答から除外することであって、前記1つ以上の制限されたフィールドノードに関連付けられた識別子又はデータタイプのうちの1つ以上が、前記クエリに対する前記応答に含まれることとを更に含む、請求項15に記載の媒体。
【請求項19】
クエリタイプ又は前記クエリのうちの1つ以上に基づいて、タイムアウト値又はノード訪問制限値のうちの1つ以上を決定することと、
前記クエリに対する前記応答を提供するための時間が前記タイムアウト値を超えたことに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む前記クエリに対する部分応答を提供することと、
前記階層モデル内で訪問済みノードの数が前記ノード訪問制限値を超えることに応答して、前記階層モデルの前記トラバースを終了し、前記メタデータの前記1つ以上の収集された値を含む部分応答を提供することとを更に含む、請求項15に記載の媒体。
【請求項20】
クエリと共に提供される情報に基づいて前記クエリのタイプを決定することと、
前記クエリのタイプに基づいて前記トラバースを終了するための1つ以上の条件を決定することと、
前記クエリのタイプに基づいて、前記クエリへの前記応答に含めるための応答情報を決定することであって、前記応答情報は、前記メタデータの前記1つ以上の値、前記メタデータの前記1つ以上の値に基づく1つ以上の集約値、又は前記クエリのタイプによって定義される1つ以上の他の動作の実施のうちの1つ以上を含み得ることとを更に含む、請求項15に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年6月1日に出願された以前に出願された米国仮特許出願第63/195,568号に基づく実用特許出願であり、その出願日の利益が米国特許法第119条(e)に従って本明細書に請求され、その全体が参照により更に組み込まれる。
【0002】
(発明の分野)
本発明は、一般にデータ視覚化に関し、より詳細には、視覚化に含まれるオブジェクトに関連付けられるデータを管理することに関するが、これに限定されない。
【背景技術】
【0003】
組織は、ますます大量のデータを生成及び収集している。このデータは、消費者活動、製造活動、顧客サービス、サーバログなどの組織の異なる部分に関連付けられてもよい。様々な理由で、そのような組織がそれらの膨大なデータの集合を効果的に利用することは不便であり得る。場合によっては、データの量によって、収集されたデータを効果的に利用してビジネス慣行を改善することが困難になる可能性がある。したがって、場合によっては、組織は、様々なアプリケーション又はツールを使用して、それらのデータの一部又は全部に基づいて視覚化を生成することができる。データを表すために視覚化を使用することは、組織が、ビジネス活動、販売、顧客情報、従業員情報、主要業績指標などの理解を向上させることを可能にし得る。場合によっては、洗練された視覚化は、異なるデータベースを含む組織内の様々なソースからのデータを組み込むか、さもなければそれに依存することがある。場合によっては、これらの多様な又は異なるデータソースに依存し得る多くの異なる視覚化が存在し得る。多くの場合、異なるデータソースにおいて定義されたデータは、ディスクリプション、ラベル、タグなどを含むメタデータを含み得る。データソースの作成者/設計者は、メタデータを様々なデータと関連付けて、視覚化作成者又は視覚化ユーザにとって関心のある可能性がある情報を伝達することができる。しかしながら、視覚化作成者又は視覚化ユーザによってアクセスされるデータオブジェクトは、データソース内のデータから論理的に離れている場合がある。したがって、視覚化作成者又は視覚化ユーザによって使用されるデータオブジェクトにメタデータがいつ伝播され得るか、又は伝播され得るかどうかを決定することは困難であり得る。したがって、本発明がなされたのは、これらの考察及び他の考察に関してである。
【図面の簡単な説明】
【0004】
本発明の非限定的かつ非網羅的な実施形態は、以下の図面を参照して説明される。図面では、同様の参照番号は、特に明記しない限り、様々な図全体を通して同様の部分を指す。記載された技術革新をよりよく理解するために、添付の図面と併せて読まれるべきである、以下の様々な実施形態の詳細な説明について言及する。
図1】様々な実施形態が実装され得るシステム環境を例示する。
図2】クライアントコンピュータの概略的な実施形態を示す。
図3】ネットワークコンピュータの概略的な実施形態を示す。
図4】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのシステムの論理アーキテクチャを示す図である。
図5】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのシステムの一部の論理表現を示す。
図6】様々な実施形態のうちの1つ以上によるデータモデル内の依存性を示すシステムの一部の論理概略図を示す。
図7】様々な実施形態のうちの1つ以上による、依存関係階層内の論理ノードの少なくとも一部を示す依存関係階層の一部の論理概略図を示す。
図8】様々な実施形態のうちの1つ以上によるメタデータ情報を含むデータオブジェクトの論理概略図を示す。
図9】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセスの概略フローチャートを示す。
図10】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセスのフローチャートを示す。
図11】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセスのフローチャートを示す。
図12】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセスのフローチャートを示す。
図13】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承と関連付けられた情報セキュリティのためのプロセスのフローチャートを示す。
図14】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのクエリの論理表現を示す。
図15】様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのクエリの論理表現を示す。
図16】様々な実施形態のうちの1つ以上による、メタデータ継承のためのメタデータクエリの論理表現を示す。
【発明を実施するための形態】
【0005】
ここで、本明細書の一部を形成し、本発明を実施することができる特定の例示的な実施形態を例示として示す添付の図面を参照して、以下で様々な実施形態をより完全に説明する。しかしながら、実施形態は、多くの異なる形態で具体化されてもよく、本明細書に記載の実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、本開示が徹底的かつ完全であり、実施形態の範囲を当業者に完全に伝えるように提供される。とりわけ、様々な実施形態は、方法、システム、媒体、又はデバイスであり得る。したがって、様々な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態をとることができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0006】
明細書及び特許請求の範囲を通して、以下の用語は、コンテキストが明らかにそうでないことを指示しない限り、本明細書に明示的に関連する意味をとる。本明細書で使用される「一実施形態では」という語句は、同じ実施形態を指す場合もあるが、必ずしも同じ実施形態を指すとは限らない。更に、本明細書で使用される「別の実施形態では」という語句は、必ずしも異なる実施形態を指すとは限らないが、そうであってもよい。したがって、以下に説明するように、本発明の範囲又は精神から逸脱することなく、様々な実施形態を容易に組み合わせることができる。
【0007】
更に、本明細書で使用される場合、「又は」という用語は、包括的な「又は」演算子であり、コンテキスト上他に明確に指示されない限り、「及び/、又は」という用語と同等である。「~に基づく」という用語は排他的ではなく、コンテキスト上他に明確に指示されない限り、記載されていない追加の要因に基づくことを可能にする。更に、本明細書全体を通して、「a」、「an」、及び「the」の意味は、複数の言及を含む。「in」の意味は、「in」及び「on」を含む。
【0008】
例示的な実施形態に関して、以下の用語もまた、コンテキストが明確に別様に指示しない限り、対応する意味にしたがって本明細書で使用される。
【0009】
本明細書で使用される場合、「エンジン」という用語は、C、C++、Objective-C、COBOL、Java(商標)、Kotlin、PHP、Perl、JavaScript、Ruby、VBScript、C#などのMicrosoft.NET(商標)言語などのプログラム言語で書くことができるハードウェア命令又は、ソフトウェア命令で実施される論理を指す。エンジンは、実行可能プログラムにコンパイルされてもよく、又は解釈されたプログラミング言語で書かれてもよい。ソフトウェアエンジンは、他のエンジンから、又はそれら自体から呼び出すことができる。本明細書で説明されるエンジンは、他のエンジン又はアプリケーションとマージされ得るか、又はサブエンジンに分割され得る、1つ以上の論理モジュールを指す。エンジンは、非一時的コンピュータ可読媒体又はコンピュータ記憶装置内に記憶され、1つ以上の汎用コンピュータ上に記憶され、それによって実行され、したがって、エンジンを提供するように構成された専用コンピュータを作成することができる。また、いくつかの実施形態では、エンジンの1つ以上の部分は、エンジンのサポートにおいて、又はエンジンの一部として、1つ以上の動作を遂行する、ハードウェアデバイス、ASIC、FPGA等であってもよい。
【0010】
本明細書で使用される場合、「データモデル」という用語は、組織によって収集又は維持されるデータに関連付けられた1つ以上のエンティティを表す1つ以上のデータ構造を指す。データモデルは典型的には、組織に関連付けられた様々な動作又は活動をモデル化するように構成される。場合によっては、データモデルは、効率的な記憶、クエリ、インデックス付け、検索、更新などの様々なデータに焦点を当てた動作を提供又は容易にするように構成される。一般に、データモデルは、理解しやすいデータの提示又は視覚化を提供するのではなく、データ操作又はデータ管理に関連する特徴を提供するように構成されることができる。
【0011】
本明細書で使用される場合、「データオブジェクト」という用語は、データモデルを含む1つ以上のエンティティ又はデータ構造を指す。場合によっては、データオブジェクトは、データモデルの部分と見なされてもよい。データオブジェクトは、データベース、データソース、テーブル、ワークブック、視覚化、ワークフローなどの項目のクラス又は種類を表すことができる。
【0012】
本明細書で使用される場合、「データオブジェクトクラス」又は「オブジェクトクラス」という用語は、データオブジェクトのクラス、種類、又はタイプを表す1つ以上のエンティティ又はデータ構造を指す。
【0013】
本明細書で使用される場合、「ディスプレイモデル」という用語は、1つ以上のハードウェアディスプレイに表示される視覚化での使用に適し得るデータモデルの1つ以上の表現を表す1つ以上のデータ構造を指す。ディスプレイモデルは、作成者以外のユーザが利用できるようにすることができるスタイリング又はユーザインターフェース機能を定義することができる。
【0014】
本明細書で使用される場合、「依存関係階層」という用語は、対応するデータモデルの系統情報を表すための特殊なモデルを表す1つ以上のデータ構造を指す。依存関係階層は、多くの場合、データオブジェクト属性の値を記憶/表現するためのフィールドノード、データのセマンティック意味を変更し得る適用されたデータ変換を表す計算ノード、又は変換されたデータのセマンティック意味を実質的に変更しないデータ変換を表すフローノードを含む。ノード間のエッジは、依存関係階層において上位のノードからのデータ又は情報が、依存関係階層において更に下位のノードに伝播され得ることを表す。データモデル内のデータオブジェクト間のデータ依存性は、依存関係階層を介して追跡することができる。
【0015】
本明細書で使用される場合、「メタデータクエリ」という用語は、1つ以上のデータオブジェクトに対するメタデータ情報の要求を表すクエリ情報を指す。場合によっては、メタデータクエリは、データモデルに対応する依存関係階層を使用して解決することができる。
【0016】
本明細書で使用される場合、「ディスプレイオブジェクト」という用語は、ディスプレイモデルを含む1つ以上のデータ構造を指す。場合によっては、ディスプレイオブジェクトは、ディスプレイモデルの一部と見なされ得る。ディスプレイオブジェクトは、視覚化で表示することができるアイテムの個々のインスタンス又はクラス全体又はアイテムの種類を表すことができる。いくつかの実施形態では、ディスプレイオブジェクトは、データモデルの一部のビューを提供するので、ビューと見なされるか、又はビューと呼ばれることがある。
【0017】
本明細書で使用される場合、「アンカフィールド」という用語は、メタデータ継承を決定するための開始点として選択された依存関係階層内のフィールドノードを指す。メタデータクエリは、メタデータクエリの焦点であることが多いアンカフィールドを定義することができる。
【0018】
本明細書で使用される場合、「パネル」という用語は、GUI内に定義されたジオメトリ(例えば、x、y、z次)を有するグラフィカルユーザインターフェース(GUI)内の領域を指す。パネルは、ユーザに情報を表示するか、又は1つ以上の対話型コントロールをホストするように配置されてもよい。パネルに関連付けられるジオメトリ又はスタイルは、動的ルールを含む構成情報を使用して定義することができる。また、場合によっては、ユーザは、移動、表示、非表示、サイズ変更、並べ替えなどの、1つ以上のパネルに対する動作を遂行することができる。
【0019】
本明細書で使用される場合、「構成情報」という用語は、構成ファイル、データベース、ユーザ入力、組み込みデフォルトなど、又はそれらの組み合わせを含む様々なソースから提供され得る、ルールベースのポリシ、パターンマッチング、スクリプト(例えば、コンピュータ可読命令)などを含み得る情報を指す。
【0020】
以下は、本発明のいくつかの態様の基本的な理解を提供するために、本発明の実施形態を簡単に説明する。この簡単な説明は、広範な概要として意図されていない。それは、重要又は重大な要素を識別すること、又は範囲を線引き又は他の方法で狭めることを意図するものではない。その目的は、後に提示されるより詳細な説明の前置きとして、いくつかの概念を単純化された形で提示することにすぎない。
【0021】
簡単に述べると、様々な実施形態は、ネットワークコンピュータを使用してデータを管理することに関する。様々な実施形態のうちの1つ以上では、1つ以上のフィールドノード、1つ以上の計算ノード、又は1つ以上のフローノード間の依存関係を表す1つ以上のエッジを含む階層モデルを生成することができる。
【0022】
様々な実施形態のうちの1つ以上において、階層モデル内のフィールドノードであるアンカフィールドに関連付けられたメタデータの1つ以上の値を決定するためのクエリに応答して、クエリ及び階層モデルに基づいてアンカフィールドから上方に階層モデルをトラバースすることを含む更なる動作を遂行し、更なる動作を遂行することは、階層モデル内の1つ以上のフィールドノードを訪問することに応答して、訪問済みフィールドノードに対応するメタデータの1つ以上の値を収集することであって、トラバースは、クエリのタイプに基づいて終了される、収集することと、計算ノードを訪問したことに応答して、訪問済み計算ノードに関連付けられる階層モデルのトラバースを終了させることと、階層モデル内の2つ以上の他のノードに依存するフローノードを訪問することに応答して、訪問済みフローノードに関連付けられた階層モデルのトラバースを終了することとを含む、更なる動作を遂行する。
【0023】
様々な実施形態のうちの1つ以上において、アンカフィールドに継承可能なメタデータの1つ以上の収集された値を含むクエリへの応答が提供されてもよい。
【0024】
様々な実施形態のうちの1つ以上において、クエリのタイプに基づいてトラバースを終了することは、クエリが第1のクエリタイプであることに応答して、第1の先祖フィールドノードから収集されたメタデータの値がアンカフィールドのメタデータとして提供され得るように、メタデータの値に関連付けられ得るアンカフィールドの第1の先祖フィールドノードを訪問することに応答して、階層モデルのトラバースを終了することを含み得る。
【0025】
様々な実施形態のうちの1つ以上において、クエリのタイプに基づいてトラバースを終了することは、クエリが第2のクエリタイプであることに応答して、更なる動作を遂行される可能性があり、その動作は、介在計算ノード又は介在マルチ入力フローノードを訪問することが階層モデルのトラバースを終了するように、アンカフィールドの先祖である階層モデル内の各フィールドノードを訪問することと、メタデータの1つ以上の値が、アンカフィールド及び1つ以上の訪問済み先祖フィールドノードに対応し得る階層モデル内の1つ以上の依存関係に基づいてソートされ得るように、アンカフィールドの先祖である各訪問済みフィールドノードについてメタデータの1つ以上の値を収集することとを含む。
【0026】
様々な実施形態のうちの1つ以上において、階層モデルをトラバースすることは、クエリ及びクエリを提供したクライアントに基づいて階層モデルに関連付けられた1つ以上のセキュリティポリシを決定することと、1つ以上の訪問済みフィールドノード及びクライアントを1つ以上のセキュリティポリシと比較することと、1つ以上のセキュリティポリシが、クライアントが1つ以上の制限フィールドノードに関連付けられる情報にアクセスすることを除外するように、比較に基づいて階層モデル内の1つ以上の制限フィールドノードを決定することと、1つ以上の制限されたフィールドノードに関連付けられた識別子又はデータタイプのうちの1つ以上がクエリへの応答に含まれ得るように、1つ以上の制限されたフィールドノードに関連付けられ得るメタデータの1つ以上の値をクエリへの応答から除外することとを含み得る。
【0027】
様々な実施形態のうちの1つ以上において、タイムアウト値又はノード訪問制限値のうちの1つ以上は、クエリタイプ又はクエリのうちの1つ以上に基づいて決定されてもよい。いくつかの実施形態では、タイムアウト値を超えるクエリへの応答を提供する時間に応答して、階層モデルのトラバースを終了し、メタデータの1つ以上の収集された値を含むクエリへの部分応答を提供する。又は、階層モデルにおいて訪問済みノードの数がノード訪問制限値を超えたことに応答して、階層モデルのトラバースを終了し、メタデータの1つ以上の収集された値を含む部分応答を提供する。
【0028】
様々な実施形態のうちの1つ以上において、クエリのタイプは、クエリと共に提供される情報に基づいて決定されてもよい。いくつかの実施形態では、トラバースを終了するための1つ以上の条件は、クエリのタイプに基づいて決定され得る。いくつかの実施形態では、クエリへの応答に含める応答情報は、応答情報がメタデータの1つ以上の値、メタデータの1つ以上の値に基づく1つ以上の集約値、又はクエリのタイプによって定義される1つ以上の他の動作の実施のうちの1つ以上を含むことができるように、クエリのタイプに基づいて決定することができる。
【0029】
様々な実施形態のうちの1つ以上において、アンカフィールドがメタデータの値と関連付けられていることに応答して、アンカフィールドと関連付けられたメタデータの値は、クエリに対する応答に含まれてもよい。また、いくつかの実施形態では、メタデータの値がアンカフィールドに存在しないことに応答して、クエリに対する応答においてアンカフィールドに最も近い階層モデル内の先祖フィールドノードに関連付けられたメタデータの値を提供する。
【0030】
図で示す動作環境
図1は、本発明の実施形態を実施することができる環境の一実施形態の構成要素を示す。本発明を実施するためにすべての構成要素が必要とされるわけではなく、本発明の趣旨又は範囲から逸脱することなく、構成要素の配置及び種類の変更を行うことができる。図示のように、図1のシステム100は、ローカルエリアネットワーク(LAN)/ワイドエリアネットワーク(WAN)-(ネットワーク)110、無線ネットワーク108、クライアントコンピュータ102~105、視覚化サーバコンピュータ116などを含む。
【0031】
クライアントコンピュータ102~105の少なくとも1つの実施形態を、図2に関連して以下により詳細に説明する。一実施形態では、クライアントコンピュータ102~105の少なくともいくつかは、ネットワーク108又は110などの1つ以上の有線又は無線ネットワークを介して動作することができる。一般に、クライアントコンピュータ102~105は、情報を送受信し、様々なオンラインアクティビティを遂行し、オフライン動作などを遂行するためにネットワークを介して通信することができる実質的に任意のコンピュータを含むことができる。一実施形態では、クライアントコンピュータ102~105のうちの1つ以上は、企業又は他のエンティティのための様々なサービスを遂行するために、企業又は他のエンティティ内で動作するように構成されることができる。例えば、クライアントコンピュータ102~105は、ウェブサーバ、ファイアウォール、クライアントアプリケーション、メディアプレーヤ、携帯電話、ゲームコンソール、デスクトップコンピュータなどとして動作するように構成されてもよい。しかしながら、クライアントコンピュータ102~105は、これらのサービスに限定されず、例えば、他の実施形態におけるエンドユーザコンピューティングに関しても使用されてもよい。より多くの、又はより少ないクライアントコンピュータ(図1に示されているように)が、本明細書に記載されているようなシステム内に含まれてもよく、したがって、実施形態は、使用されるクライアントコンピュータの数又はタイプによって限定されないことが認識されるべきである。
【0032】
クライアントコンピュータ102として動作することができるコンピュータは、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル電子デバイス、ネットワークPCなどの有線又は無線通信媒体を使用して通常接続するコンピュータを含むことができる。いくつかの実施形態では、クライアントコンピュータ102~105は、ラップトップコンピュータ103、モバイルコンピュータ104、タブレットコンピュータ105など、別のコンピュータに接続し、情報を受信することができる実質的に任意のポータブルコンピュータを含むことができる。しかしながら、ポータブルコンピュータは、そのように限定されず、携帯電話、ディスプレイページャ、無線周波数(RF)装置、赤外線(IR)装置、個人用携帯情報端末(PDA)、ハンドヘルドコンピュータ、ウェアラブルコンピュータ、先行コンピュータのうちの1つ以上を組み合わせた統合装置などの他のポータブルコンピュータを含んでもよい。したがって、クライアントコンピュータ102~105は、典型的には、能力及び特徴に関して広範囲に及ぶ。更に、クライアントコンピュータ102~105は、ブラウザ又は他のウェブベースのアプリケーションを含む様々なコンピューティングアプリケーションにアクセスすることができる。
【0033】
ウェブ対応クライアントコンピュータは、ウェブを介して要求を送信し、応答を受信するように構成されたブラウザアプリケーションを含むことができる。ブラウザアプリケーションは、実質的に任意のウェブベース言語を使用して、グラフィックス、テキスト、マルチメディアなどを受信及び表示するように構成されてもよい。一実施形態では、ブラウザアプリケーションは、JavaScript、ハイパテキストマークアップ言語(HTML)、eXtensible Markup Language(XML)、JavaScript Object Notation(JSON)、Cascading Style Sheets(CSS)など、又はそれらの組み合わせを使用して、メッセージを表示及び送信することを可能にされる。一実施形態では、クライアントコンピュータのユーザは、ネットワーク(オンライン)を介して様々なアクティビティを遂行するためにブラウザアプリケーションを使用することができる。しかしながら、別のアプリケーションを使用して様々なオンラインアクティビティを遂行することもできる。
【0034】
クライアントコンピュータ102~105はまた、別のコンピュータ間でコンテンツを受信又は送信するように構成された少なくとも1つの他のクライアントアプリケーションを含むことができる。クライアントアプリケーションは、コンテンツを送信又は受信する機能などを含むことができる。クライアントアプリケーションは、タイプ、機能、名前などを含む、それ自体を識別する情報を更に提供することができる。一実施形態では、クライアントコンピュータ102~105は、インターネットプロトコル(IP)アドレス、電話番号、携帯電話識別番号(MIN)、電子シリアル番号(ESN)、クライアント証明書、又は他のデバイス識別子を含む様々な機構のいずれかを介してそれら自体を一意に識別することができる。そのような情報は、他のクライアントコンピュータ、視覚化サーバコンピュータ116、又は他のコンピュータ間で送信される1つ以上のネットワークパケットなどで提供されてもよい。
【0035】
クライアントコンピュータ102~105は、視覚化サーバコンピュータ116などの別のコンピュータによって管理され得るエンドユーザアカウントにエンドユーザがログインすることを可能にするクライアントアプリケーションを含むように更に構成されてもよい。そのようなエンドユーザアカウントは、1つの非限定的な例では、エンドユーザが、1つの非限定的な例では、プロジェクト管理、ソフトウェア開発、システム管理、構成管理、検索アクティビティ、ソーシャルネットワーキングアクティビティ、様々なウェブサイトの閲覧、他のユーザとの通信などを含む1つ以上のオンラインアクティビティを管理することを可能にするように構成することができる。また、クライアントコンピュータは、ユーザが、視覚化サーバコンピュータ116によって提供されるレポート、対話型ユーザインターフェース、又は結果を表示することを可能にするように構成することができる。
【0036】
無線ネットワーク108は、クライアントコンピュータ103~105及びその構成要素をネットワーク110に結合するように構成される。無線ネットワーク108は、クライアントコンピュータ103~105にインフラストラクチャ指向の接続を提供するために、スタンドアロンのアドホックネットワークなどに更にオーバーレイすることができる様々な無線サブネットワークのいずれかを含むことができる。そのようなサブネットワークは、メッシュネットワーク、無線LAN(WLAN)ネットワーク、セルラネットワークなどを含むことができる。一実施形態では、システムは、2つ以上の無線ネットワークを含むことができる。
【0037】
無線ネットワーク108は、無線リンクなどによって接続された端末、ゲートウェイ、ルータなどの自律システムを更に含むことができる。これらのコネクタは、無線ネットワーク108のトポロジが急速に変化し得るように、自由かつランダムに移動し、かつ、自らを任意に編成するように構成され得る。
【0038】
無線ネットワーク108は更に、セルラ方式のための第2(2G)、第3(3G)、第4(4G)、第5(5G)世代無線アクセス、WLAN、無線ルータ(WR)メッシュ等を含む複数のアクセス技術を適用し得る。2G、3G、4G、5G、及び将来のアクセスネットワークなどのアクセス技術は、様々な移動度を有するクライアントコンピュータ103~105などのモバイルコンピュータの広域カバレッジを可能にすることができる。非限定的な一例では、無線ネットワーク108は、汎欧州デジタル移動電話方式(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、広帯域符号分割多元接続(WCDMA)、高速ダウンリンクパケットアクセス(HSDPA)、ロングタームエボリューション(LTE)などの無線ネットワークアクセスを介して無線接続を可能にすることができる。本質的に、無線ネットワーク108は、情報がクライアントコンピュータ103~105と別のコンピュータ、ネットワーク、クラウドベースのネットワーク、クラウドインスタンスなどとの間を移動することができる実質的に任意の無線通信機構を含むことができる。
【0039】
ネットワーク110は、無線ネットワーク108などを介して、ネットワークコンピュータを、視覚化サーバコンピュータ116、クライアントコンピュータ102、及びクライアントコンピュータ103~105を含む他のコンピュータと結合するように構成される。ネットワーク110は、ある電子デバイスから別の電子デバイスに情報を通信するための任意の形態のコンピュータ可読媒体を使用することが可能である。また、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)に加えてインターネット、ユニバーサルシリアルバス(USB)ポート、イーサネットポートなどを介した直接接続、他の形態のコンピュータ可読媒体、又はそれらの任意の組み合わせを含むことができる。異なるアーキテクチャ及びプロトコルに基づくものを含むLANの相互接続されたセットでは、ルータはLAN間のリンクとして機能し、メッセージが互いに送信されることを可能にする。更に、LAN内の通信リンクは、典型的には、ツイストワイヤペア又は同軸ケーブルを含む一方で、ネットワーク間の通信リンクは、アナログ電話回線、T1、T2、T3、及びT4を含む完全な又は部分的な専用デジタル回線、又は、例えば、Eキャリア、総合デジタル通信網(ISDN)、デジタル加入者線(DSL)、衛星リンクを含む無線リンク、又は、当業者に知られている他の通信リンクを含む他のキャリア機構を利用し得る。更に、通信リンクは、例えば、DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48などを含むがこれらに限定されない様々なデジタルシグナリング技術のいずれかを更に使用することができる。更に、リモートコンピュータ及び他の関連する電子デバイスは、モデム及び一時的な電話リンクを介してLAN又はWANのいずれかにリモート接続することができる。一実施形態では、ネットワーク110は、インターネットプロトコル(IP)の情報を転送するように構成されてもよい。
【0040】
更に、通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のトランスポート機構を具現化し、任意の情報非一時的配信媒体又は一時的配信媒体を含む。例として、通信媒体は、ツイストペア、同軸ケーブル、光ファイバ、導波管などの有線媒体、ならびに音響、RF、赤外線、及び他の無線媒体などの他の有線媒体及び無線媒体を含む。
【0041】
また、視覚化サーバコンピュータ116の一実施形態は、図3に関連して以下により詳細に説明される。図1は、視覚化サーバコンピュータ116を単一のコンピュータとして示しているが、技術革新又は実施形態はそのように限定されない。例えば、視覚化サーバコンピュータ116などの1つ以上の機能は、1つ以上の別個のネットワークコンピュータにわたって分散されてもよい。更に1つ以上の実施形態では、視覚化サーバコンピュータ116は、複数のネットワークコンピュータを使用して実装されてもよい。更に、様々な実施形態のうちの1つ以上において、視覚化サーバコンピュータ116などは、1つ以上のクラウドネットワーク内の1つ以上のクラウドインスタンスを使用して実装されてもよい。したがって、これらの革新及び実施形態は、単一の環境及び他の構成に限定されると解釈されるべきではなく、他のアーキテクチャも想定される。
【0042】
例示的なクライアントコンピュータ
図2は、図示されている構成要素よりも多くの多い又は少ない構成要素を含むことができるクライアントコンピュータ200の一実施形態を示す。クライアントコンピュータ200は、例えば、図1に示すモバイルコンピュータ又はクライアントコンピュータの1つ以上の実施形態を表すことができる。
【0043】
クライアントコンピュータ200は、バス228を介してメモリ204と通信するプロセッサ202を含むことができる。クライアントコンピュータ200はまた、電源230、ネットワークインターフェース232、オーディオインターフェース256、ディスプレイ250、キーパッド252、イルミネータ254、ビデオインターフェース242、入力/出力インターフェース238、ハプティックインターフェース264、全地球測位システム(GPS)受信機258、オープンエアジェスチャインターフェース260と、温度インターフェース262、カメラ240、プロジェクタ246、ポインティングデバイスインターフェース266、及びプロセッサ可読固定記憶装置234、プロセッサ可読リムーバブル記憶装置236を含んでもよい。クライアントコンピュータ200は、任意選択的に、基地局(図示せず)と通信してもよく、又は別のコンピュータと直接通信してもよい。また、一実施形態では、図示されていないが、クライアントコンピュータ200の向きを測定又は維持するために、クライアントコンピュータ200内でジャイロスコープを使用することができる。
【0044】
電源230は、クライアントコンピュータ200に電力を供給することができる。充電式又は非充電式バッテリを使用して電力を供給することができる。電力はまた、バッテリを補足又は再充電するACアダプタ又は電動ドッキングクレードルなどの外部電源によって供給されてもよい。
【0045】
ネットワークインターフェース232は、クライアントコンピュータ200を1つ以上のネットワークに結合するための回路を含み、モバイル通信(GSM)、CDMA、時分割多元接続(TDMA)、UDP、TCP/IP、SMS、MMS、GPRS、WAP、UWB、WiMax、SIP/RTP、GPRS、EDGE、WCDMA、LTE、UMTS、OFDM、CDMA2000、EV-DO、HSDPA、又は様々な他の無線通信プロトコルのいずれかのためのOSIモデルの任意の部分を実装するプロトコル及び技術を含むがこれらに限定されない、1つ以上の通信プロトコル及び技術と共に使用するために構築される。ネットワークインターフェース232は、トランシーバ、送受信デバイス、又はネットワークインターフェースカード(NIC)として知られることがある。
【0046】
オーディオインターフェース256は、人間の声の音などのオーディオ信号を生成及び受信するように構成することができる。例えば、オーディオインターフェース256は、他のものとの通信を可能にするために、又は何らかの動作に対するオーディオ確認応答を生成するために、スピーカ及びマイクロフォン(図示せず)に結合されてもよい。オーディオインターフェース256内のマイクロフォンは、例えば、音声認識を使用する、音に基づくタッチを検出するなど、クライアントコンピュータ200への入力又は制御に使用することもできる。
【0047】
ディスプレイ250は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LED)、有機LED(OLED)、又はコンピュータと共に使用することができる任意の他のタイプの光反射型又は光透過型ディスプレイとすることができる。ディスプレイ250はまた、スタイラス又は人間の手の指などのオブジェクトから入力を受信するように構成されたタッチインターフェース244を含むことができ、抵抗、容量、表面弾性波(SAW)、赤外線、レーダ、又は他の技術を使用してタッチ又はジェスチャを検知することができる。
【0048】
プロジェクタ246は、リモート壁又はリモートスクリーンなどの任意の他の反射物体に画像を投影することができるリモートハンドヘルドプロジェクタ又は一体型プロジェクタであってもよい。
【0049】
ビデオインターフェース242は、静止写真、ビデオセグメント、赤外線ビデオなどのビデオ画像をキャプチャするように構成することができる。例えば、ビデオインターフェース242は、デジタルビデオカメラ、ウェブカメラなどに結合されてもよい。ビデオインターフェース242は、レンズ、画像センサ、及び他の電子機器を含むことができる。画像センサは、相補型金属酸化膜半導体(CMOS)集積回路、電荷結合素子(CCD)、又は光を感知するための任意の他の集積回路を含むことができる。
【0050】
キーパッド252は、ユーザからの入力を受信するように構成された任意の入力装置を備えてもよい。例えば、キーパッド252は、押しボタン式数字ダイヤル、又はキーボードを含むことができる。キーパッド252はまた、画像の選択及び送信に関連付けられたコマンドボタンを含んでもよい。
【0051】
イルミネータ254は、状態表示を提供してもよく、又は光を提供してもよい。イルミネータ254は、特定の期間にわたって、又はイベントメッセージに応答してアクティブなままであってもよい。例えば、イルミネータ254がアクティブであるとき、それはキーパッド252上のボタンをバックライトし、クライアントコンピュータの電源が入っている間はオンのままであり得る。また、イルミネータ254は、別のクライアントコンピュータにダイヤルするなど、特定の動作が遂行されると、これらのボタンを様々なパターンでバックライトすることができる。イルミネータ254はまた、クライアントコンピュータの透明又は半透明のケース内に配置された光源に、動作に応答して照明させることができる。
【0052】
更に、クライアントコンピュータ200はまた、鍵、デジタル証明書、パスワード、パスフレーズ、二要素認証情報などのセキュリティ/暗号情報を生成、記憶、又は使用するための追加の耐タンパ保護手段を提供するためのハードウェアセキュリティモジュール(HSM)268を備えることができる。いくつかの実施形態では、ハードウェアセキュリティモジュールは、1つ以上の標準的な公開鍵暗号基盤(PKI)をサポートするために採用することができ、鍵ペアなどを生成、管理、又は格納するために採用することができる。いくつかの実施形態では、HSM268はスタンドアロンコンピュータであってもよく、他の場合には、HSM268は、クライアントコンピュータに追加され得るハードウェアカードとして構成されてもよい。
【0053】
クライアントコンピュータ200はまた、外部周辺機器又は他のクライアントコンピュータ及びネットワークコンピュータなどの他のコンピュータと通信するための入出力インターフェース238を備えることができる。周辺装置は、オーディオヘッドセット、バーチャルリアリティヘッドセット、ディスプレイスクリーングラス、リモートスピーカシステム、リモートスピーカ及びマイクロフォンシステムなどを含むことができる。入出力インターフェース238は、ユニバーサルシリアルバス(USB)、赤外線、WiFi、WiMax、Bluetooth(商標)などの1つ以上の技術を利用することができる。
【0054】
入出力インターフェース238はまた、地理的位置情報(例えば、GPS)を決定するため、電力状態(例えば、電圧センサ、電流センサ、周波数センサなど)を監視するため、天候(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水量計など)を監視するためなどのための1つ以上のセンサを含むことができる。センサは、クライアントコンピュータ200の外部にあるデータを収集又は測定する1つ以上のハードウェアセンサであってもよい。
【0055】
ハプティックインターフェース264は、クライアントコンピュータのユーザに触覚フィードバックを提供するように構成されてもよい。例えば、ハプティックインターフェース264は、コンピュータの別のユーザが電話しているときに特定の方法でクライアントコンピュータ200を振動させるために使用されてもよい。温度インターフェース262を使用して、クライアントコンピュータ200のユーザに温度測定入力又は温度変化出力を提供することができる。オープンエアジェスチャインターフェース260は、例えば、単一又はステレオビデオカメラ、レーダ、ユーザによって保持又は装着されたコンピュータ内のジャイロセンサなどを使用することによって、クライアントコンピュータ200のユーザの物理的ジェスチャを検知することができる。カメラ240は、クライアントコンピュータ200のユーザの物理的な目の動きを追跡するために使用することができる。
【0056】
GPSトランシーバ258は、地球の表面上のクライアントコンピュータ200の物理的座標を決定することができ、これは通常、緯度及び経度の値として位置を出力する。GPSトランシーバ258はまた、限定はしないが、三角測量、アシストGPS(AGPS)、強化観測時間差(E-OTD)、セル識別子(CI)、サービスエリア識別子(SAI)、拡張タイミングアドバンス(ETA)、基地局サブシステム(BSS)などを含む他の地理的測位機構を使用して、地球の表面上のクライアントコンピュータ200の物理的位置を更に決定することができる。異なる条件下で、GPSトランシーバ258は、クライアントコンピュータ200の物理的位置を決定することができることが理解される。しかしながら、一つ以上の実施形態では、クライアントコンピュータ200は、他の構成要素を介して、例えば、媒体アクセス制御(MAC)アドレス、IPアドレスなどを含む、クライアントコンピュータの物理的位置を決定するために使用され得る他の情報を提供してもよい。
【0057】
様々な実施形態のうちの少なくとも1つでは、オペレーティングシステム206、クライアントディスプレイエンジン222、他のクライアントアプリ224、ウェブブラウザ226などのアプリケーションは、地理的位置情報を使用して、時間帯、言語、通貨、カレンダフォーマットなどの1つ以上の位置特定機能を選択するように構成されてもよい。位置特定機能は、文書、視覚化、ディスプレイオブジェクト、ディスプレイモデル、動作オブジェクト、ユーザインターフェース、レポート、ならびに内部プロセス又はデータベースで使用することができる。様々な実施形態のうちの少なくとも1つでは、位置特定情報を選択するために使用される地理的位置情報は、GPS258によって提供されてもよい。また、いくつかの実施形態では、地理的位置情報は、無線ネットワーク108又はネットワーク111などのネットワークを介して1つ以上の地理的位置プロトコルを使用して提供される情報を含むことができる。
【0058】
ヒューマンインターフェースコンポーネントは、クライアントコンピュータ200から物理的に分離された周辺機器とすることができ、クライアントコンピュータ200へのリモート入力又は出力を可能にする。例えば、ディスプレイ250又はキーボード252などのヒューマンインターフェースコンポーネントを介してここで説明したようにルーティングされた情報は、代わりに、ネットワークインターフェース232を介して、リモートに配置された適切なヒューマンインターフェースコンポーネントにルーティングすることができる。リモートであり得るヒューマンインターフェース周辺構成要素の例には、オーディオデバイス、ポインティングデバイス、キーパッド、ディスプレイ、カメラ、プロジェクタなどが含まれるが、これらに限定されない。これらの周辺構成要素は、Bluetooth(商標)、Zigbee(商標)などのピコネットワークを介して通信することができる。そのような周辺ヒューマンインターフェースコンポーネントを有するクライアントコンピュータの1つの非限定的な例は、壁又はユーザの手などの反射面上にピコプロジェクタによって投影された画像の部分に向かうユーザのジェスチャを感知するために、別個に配置されたクライアントコンピュータとリモート通信する1つ以上のカメラと共にリモートピコプロジェクタを含むことができるウェアラブルコンピュータである。
【0059】
クライアントコンピュータは、ウェブページ、ウェブベースのメッセージ、グラフィック、テキスト、マルチメディアなどを受信及び送信するように構成されたウェブブラウザアプリケーション226を含むことができる。クライアントコンピュータのブラウザアプリケーションは、ワイヤレスアプリケーションプロトコルメッセージ(WAP)などを含む実質的に任意のプログラミング言語を使用することができる。1つ以上の実施形態では、ブラウザアプリケーションは、ハンドヘルドデバイスマークアップ言語(HDML)、ワイヤレスマークアップ言語(WML)、WMLScript、JavaScript、標準汎用マークアップ言語(SGML)、ハイパテキストマークアップ言語(HTML)、eXtensible Markup Language(XML)、HTML5などを使用することが可能である。
【0060】
メモリ204は、RAM、ROM、又は他のタイプのメモリを含むことができる。メモリ204は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するためのコンピュータ可読記憶媒体(デバイス)の一例を示す。メモリ204は、クライアントコンピュータ200の低レベル動作を制御するためのBIOS208を記憶することができる。メモリはまた、クライアントコンピュータ200の動作を制御するためのオペレーティングシステム206を記憶することができる。このコンポーネントは、UNIX又はLinux(商標)のバージョンなどの汎用オペレーティングシステム、又はWindows Phone(商標)、Android(商標)、もしくはIOSオペレーティングシステムなどの専用クライアントコンピュータ通信オペレーティングシステムを含むことができることが理解されよう。オペレーティングシステムは、Javaアプリケーションプログラムを介してハードウェアコンポーネント又はオペレーティングシステム動作の制御を可能にするJava仮想マシンモジュールを含むか、又はJava仮想マシンモジュールとインターフェースすることができる。
【0061】
メモリ204は、とりわけ、アプリケーション220又は他のデータを記憶するためにクライアントコンピュータ200によって利用されることができる、1つ以上のデータ記憶装置210を更に含むことができる。例えば、データ記憶装置210はまた、クライアントコンピュータ200の様々な能力をディスクリプションする情報を記憶するために使用されてもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて別のデバイス又はコンピュータに提供され得る。データ記憶装置210はまた、アドレス帳、友人リスト、エイリアス、ユーザプロファイル情報などを含むソーシャルネットワーキング情報を記憶するために使用されてもよい。データ記憶装置210は、動作を実行及び遂行するためにプロセッサ202などのプロセッサによって使用されるプログラムコード、データ、アルゴリズムなどを更に含むことができる。一実施形態では、データ記憶装置210の少なくとも一部はまた、非一時的なプロセッサ可読リムーバブル記憶装置236、プロセッサ可読固定記憶装置234を含むがこれらに限定されないクライアントコンピュータ200の別の構成要素に、又はクライアントコンピュータの外部に記憶されてもよい。
【0062】
アプリケーション220は、クライアントコンピュータ200によって実行されると、命令及びデータを送信、受信、又は処理するコンピュータ実行可能命令を含むことができる。アプリケーション220は、例えば、クライアントディスプレイエンジン222、他のクライアントアプリケーション224、ウェブブラウザ226などを含むことができる。クライアントコンピュータは、クエリ、検索、メッセージ、通知メッセージ、イベントメッセージ、警告、性能測定基準、ログデータ、API呼び出しなど、それらの組み合わせなどの通信を視覚化サーバコンピュータと交換するように構成することができる。
【0063】
アプリケーションプログラムの他の例には、カレンダ、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、ボイスオーバインターネットプロトコル(VOIP)アプリケーション、連絡先マネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、ワードプロセッシングプログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラムなどが含まれる。
【0064】
更に、(図示されていない)1つ以上の実施形態では、クライアントコンピュータ200は、CPUの代わりに、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなどの組み込みロジックハードウェアデバイスを含むことができる。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。また、1つ以上の実施形態(図示せず)では、クライアントコンピュータ200は、CPUの代わりに一つ以上のハードウェアマイクロコントローラを含んでもよい。1つ以上の実施形態では、1つ以上のマイクロコントローラは、それら自体の組み込みロジックを直接実行して動作を遂行し、それ自体の内部メモリ及びそれ自体の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)などの動作を遂行することができる。
【0065】
例示的なネットワークコンピュータ
図3は、様々な実施形態のうちの1つ以上を実装するシステムに含まれ得るネットワークコンピュータ300の一実施形態を示す。ネットワークコンピュータ300は、図3に示されている構成要素よりも多い又は少ない構成要素を含んでもよい。しかしながら、示されている構成要素は、これらの革新を実施するための例示的な実施形態を開示するのに十分である。ネットワークコンピュータ300は、例えば、図1の1つ以上の視覚化サーバコンピュータ116の一実施形態を表すことができる。
【0066】
ネットワークコンピュータ300などのネットワークコンピュータは、バス328を介してメモリ304と通信することができるプロセッサ302を含むことができる。いくつかの実施形態では、プロセッサ302は、1つ以上のハードウェアプロセッサ、又は1つ以上のプロセッサコアで構成されてもよい。場合によっては、1つ以上のプロセッサのうちの1つ以上は、本明細書に記載されたものなどの1つ以上の特殊な動作を遂行するように設計された特殊なプロセッサであってもよい。ネットワークコンピュータ300はまた、電源330、ネットワークインターフェース332、オーディオインターフェース356、ディスプレイ350、キーボード352、入力/出力インターフェース338、プロセッサ可読固定記憶装置334、及びプロセッサ可読リムーバブル記憶装置336を含む。電源330は、ネットワークコンピュータ300に電力を供給する。
【0067】
ネットワークインターフェース332は、ネットワークコンピュータ300を1つ以上のネットワークに結合するための回路を含み、限定はしないが、開放型システム間相互接続モデル(OSIモデル)、グローバル移動体通信システム(GSM)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、汎用パケット無線サービス(GPRS)、WAP、超広帯域(UWB)、IEEE802.16ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMax)、セッション開始プロトコル/リアルタイム転送プロトコル(SIP/RTP)、又は様々な他の有線及び無線通信プロトコルのいずれかを実装するプロトコル及び技術を含む、1つ以上の通信プロトコル及び技術で使用するために構築される。ネットワークインターフェース332は、トランシーバ、送受信デバイス、又はネットワークインターフェースカード(NIC)として知られることがある。ネットワークコンピュータ300は、任意選択的に、基地局(図示せず)と通信してもよく、又は別のコンピュータと直接通信してもよい。
【0068】
オーディオインターフェース356は、人間の声の音などのオーディオ信号を生成及び受信するように構成される。例えば、オーディオインターフェース356は、他のものとの通信を可能にするために、又は何らかの動作に対するオーディオ確認応答を生成するために、スピーカ及びマイクロフォン(図示せず)に結合されてもよい。オーディオインターフェース356内のマイクロフォンは、例えば音声認識を使用して、ネットワークコンピュータ300への入力又はネットワークコンピュータの制御に使用することもできる。
【0069】
ディスプレイ350は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LED)、有機LED(OLED)、又はコンピュータと共に使用することができる任意の他のタイプの光反射型もしくは光透過型ディスプレイであってもよい。いくつかの実施形態では、ディスプレイ350は、壁又は他の物体に画像を投影することができるハンドヘルドプロジェクタ又はピコプロジェクタであってもよい。
【0070】
ネットワークコンピュータ300はまた、図3に示されていない外部デバイス又はコンピュータと通信するための入力/出力インターフェース338を備えてもよい。入出力インターフェース338は、USB(商標)、Firewire(商標)、WiFi、WiMax、Thunderbolt(商標)、赤外線、Bluetooth(商標)、Zigbee(商標)、シリアルポート、パラレルポートなどのような、1つ以上の有線又は無線通信技術を利用することができる。
【0071】
また、入力/出力インターフェース338はまた、地理的位置情報(例えば、GPS)を決定するため、電力状態(例えば、電圧センサ、電流センサ、周波数センサなど)を監視するため、天候(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水量計など)を監視するためなどのための1つ以上のセンサを含むことができる。センサは、ネットワークコンピュータ300の外部にあるデータを収集又は測定する1つ以上のハードウェアセンサであってもよい。ヒューマンインターフェースコンポーネントは、ネットワークコンピュータ300から物理的に分離することができ、ネットワークコンピュータ300へのリモート入力又は出力を可能にする。例えば、ディスプレイ350又はキーボード352などのヒューマンインターフェースコンポーネントを介してここで説明したようにルーティングされた情報は、代わりに、ネットワークインターフェース332を介して、ネットワーク上の他の場所に配置された適切なヒューマンインターフェースコンポーネントにルーティングすることができる。ヒューマンインターフェースコンポーネントは、コンピュータがコンピュータの人間のユーザから入力を受け取り、又はコンピュータの人間のユーザに出力を送信することを可能にする任意のコンポーネントを含む。したがって、マウス、スタイラス、トラックボールなどのポインティングデバイスは、ユーザ入力を受信するためにポインティングデバイスインターフェース358を介して通信することができる。
【0072】
GPSトランシーバ340は、典型的には位置を緯度及び経度値として出力する地球の表面上のネットワークコンピュータ300の物理座標を決定することができる。GPSトランシーバ340はまた、限定はしないが、三角測量、アシストGPS(AGPS)、強化観測時間差(E-OTD)、セル識別子(CI)、サービスエリア識別子(SAI)、拡張タイミングアドバンス(ETA)、基地局サブシステム(BSS)などを含む他の地理的測位機構を使用して、地球の表面上のネットワークコンピュータ300の物理的位置を更に決定することができる。異なる条件下で、GPSトランシーバ340は、ネットワークコンピュータ300の物理的位置を決定することができることが理解される。しかしながら、1つ以上の実施形態では、ネットワークコンピュータ300は、他の構成要素を介して、例えば、媒体アクセス制御(MAC)アドレス、IPアドレスなどを含む、クライアントコンピュータの物理的位置を決定するために使用され得る他の情報を提供してもよい。
【0073】
様々な実施形態のうちの少なくとも1つでは、オペレーティングシステム306、データ管理エンジン322、ディスプレイエンジン324、リネージエンジン326、ウェブサービス329などのアプリケーションは、地理的位置情報を使用して、時間帯、言語、通貨、通貨フォーマット、カレンダフォーマットなどの1つ以上の位置特定機能を選択するように構成されてもよい。位置特定機能は、文書、ファイルシステム、ユーザインターフェース、レポート、ディスプレイオブジェクト、ディスプレイモデル、視覚化、ならびに内部プロセス又はデータベースで使用することができる。様々な実施形態のうちの少なくとも1つでは、位置特定情報を選択するために使用される地理的位置情報は、GPS340によって提供されてもよい。また、いくつかの実施形態では、地理的位置情報は、無線ネットワーク108又はネットワーク111などのネットワークを介して1つ以上の地理的位置プロトコルを使用して提供される情報を含むことができる。
【0074】
メモリ304は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、又は他の種類のメモリを含むことができる。メモリ304は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するためのコンピュータ可読記憶媒体(デバイス)の一例を示す。メモリ304は、ネットワークコンピュータ300の低レベル動作を制御するための基本入出力システム(BIOS)308を記憶する。メモリはまた、ネットワークコンピュータ300の動作を制御するためのオペレーティングシステム306を記憶する。この構成要素は、UNIXもしくはLinux(登録商標)のバージョンなどの汎用オペレーティングシステム、又はMicrosoft CorporationのWindows(登録商標)オペレーティングシステムもしくはApple CorporationのOSX(登録商標)オペレーティングシステムなどの専用オペレーティングシステムを含むことができることが理解されよう。オペレーティングシステムは、Javaアプリケーションプログラムを介してハードウェアコンポーネント又はオペレーティングシステム動作の制御を可能にするJava仮想マシンモジュールなどの1つ以上の仮想マシンモジュールを含むか、又はそれとインターフェースすることができる。同様に、他のランタイム環境が含まれてもよい。
【0075】
メモリ304は、とりわけアプリケーション320又は他のデータを記憶するためにネットワークコンピュータ300によって利用され得る、1つ以上のデータ記憶装置310を更に含むことができる。例えば、データ記憶装置310はまた、ネットワークコンピュータ300の様々な能力をディスクリプションする情報を記憶するために使用されてもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて別のデバイス又はコンピュータに提供され得る。データ記憶装置310はまた、アドレス帳、友人リスト、エイリアス、ユーザプロファイル情報などを含むソーシャルネットワーキング情報を記憶するために使用されてもよい。データ記憶装置310は、以下に説明する動作などの動作を実行及び遂行するために、プロセッサ302などのプロセッサによって使用されるプログラムコード、データ、アルゴリズムなどを更に含むことができる。一実施形態では、データ記憶装置310の少なくとも一部はまた、限定はしないが、プロセッサ可読リムーバブル記憶装置336内の非一時的媒体、プロセッサ可読固定記憶装置334、又はネットワークコンピュータ300内の、又はネットワークコンピュータ300の外部の任意の他のコンピュータ可読記憶装置も含む、ネットワークコンピュータ300の別の構成要素に記憶されてもよい。データ記憶装置310は、例えば、データモデル314、ディスプレイモデル316、ソースデータ318などを含むことができる。データモデル314は、1つ以上のデータモデルの1つ以上の部分を表すファイル、文書、バージョン、プロパティ、メタデータ、データ構造などを記憶することができる。ディスプレイモデル316は、ディスプレイモデルを記憶することができる。ソースデータ318は、データベース、又はデータモデル、ディスプレイモデルなどの基礎となるデータに寄与する他のデータソースを保存するために使用されるメモリを表すことができる。
【0076】
アプリケーション320は、ネットワークコンピュータ300によって実行されると、メッセージ(例えば、SMS、マルチメディアメッセージングサービス(MMS)、インスタントメッセージ(IM)、電子メール、又は他のメッセージ)、オーディオ、ビデオを送信、受信、又は処理し、別のモバイルコンピュータの別のユーザとの通信を可能にするコンピュータ実行可能命令を含むことができる。アプリケーションプログラムの他の例には、カレンダ、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、ボイスオーバインターネットプロトコル(VOIP)アプリケーション、連絡先マネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、ワードプロセッシングプログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラムなどが含まれる。アプリケーション320は、後述する実施形態のための動作を遂行するように構成され得るデータ管理エンジン322、ディスプレイエンジン324、リネージエンジン326、ウェブサービス329などを含むことができる。様々な実施形態のうちの1つ以上において、1つ以上のアプリケーションは、別のアプリケーションのモジュール又は構成要素として実装されてもよい。更に、様々な実施形態のうちの1つ以上において、アプリケーションは、オペレーティングシステム拡張、モジュール、プラグインなどとして実装されてもよい。
【0077】
更に、様々な実施形態のうちの1つ以上において、データ管理エンジン322、ディスプレイエンジン324、リネージエンジン326、ウェブサービス329などは、クラウドベースのコンピューティング環境で動作することができる。様々な実施形態のうちの1つ以上において、管理プラットフォームを含むこれらのアプリケーションなどは、クラウドベースのコンピューティング環境で管理され得る仮想マシン又は仮想サーバ内で実施され得る。様々な実施形態のうちの1つ以上において、これに関連して、アプリケーションは、クラウドコンピューティング環境によって自動的に管理される性能及びスケーリングの考慮事項に応じて、クラウドベース環境内の1つの物理ネットワークコンピュータから別の物理ネットワークコンピュータに流れることができる。同様に、様々な実施形態のうちの1つ以上において、データ管理エンジン322、ディスプレイエンジン324、ウェブサービス329などに専用の仮想マシン又は仮想サーバを自動的にプロビジョニング及びデコミッショニングすることができる。
【0078】
また、様々な実施形態のうちの1つ以上において、データ管理エンジン322、ディスプレイエンジン324、リネージエンジン326、ウェブサービス329などは、1つ以上の特定の物理ネットワークコンピュータに結び付けられるのではなく、クラウドベースのコンピューティング環境で動作する仮想サーバ内に配置されてもよい。
【0079】
更に、ネットワークコンピュータ300は、鍵、デジタル証明書、パスワード、パスフレーズ、二要素認証情報などのセキュリティ/暗号情報を生成、記憶、又は使用するための追加の耐タンパ性保護手段を提供するハードウェアセキュリティモジュール(HSM)360も含むことができる。チェックする。いくつかの実施形態では、ハードウェアセキュリティモジュールは、1つ以上の標準的な公開鍵暗号基盤(PKI)をサポートするために使用することができ、鍵ペアなどを生成、管理、又は記憶するために使用することができる。いくつかの実施形態では、HSM360は、スタンドアロンネットワークコンピュータであってもよく、他の場合には、HSM360は、ネットワークコンピュータにインストールされ得るハードウェアカードとして構成されてもよい。
【0080】
更に、1つ以上の実施形態(図示せず)では、ネットワークコンピュータ300は、CPUの代わりに、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなどの埋め込みロジックハードウェアデバイスを含むことができる。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。また、1つ以上の実施形態(図示せず)では、ネットワークコンピュータは、CPUの代わりに1つ以上のハードウェアマイクロコントローラを含むことができる。1つ以上の実施形態において、1つ以上のマイクロコントローラは、自身の組み込みロジックを直接実行して動作を遂行し、自身の内部メモリ及び自身の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)等の動作を遂行してもよい。
【0081】
例示的な論理システムアーキテクチャ
図4は、様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのシステム400の論理アーキテクチャを示す。様々な実施形態のうちの1つ以上において、システム400は、データモデル402などの様々な構成要素を含むことができ、これは、1つ以上のデータベースオブジェクトから1つ以上の視覚化までの範囲の様々なデータオブジェクトから含み得る。この例では、データモデル402は、データベースオブジェクト404と、データベースオブジェクト406と、テーブルオブジェクト408と、テーブルオブジェクト410と、テーブルオブジェクト412と、ワークフローオブジェクト414と、データソースオブジェクト416と、データソースオブジェクト418と、ワークブックオブジェクト420と、シートオブジェクト422と、シートオブジェクト424とを含む。
【0082】
様々な実施形態のうちの1つ以上において、視覚化サーバコンピュータ116などの視覚化サーバコンピュータは、視覚化を生成するために使用され得る情報を表すデータモデル402などのデータモデルを使用するように構成され得る。また、いくつかの実施形態では、データモデルを使用して、ユーザ、作成者などを含む視覚化システム内の他の当事者を管理することができる。
【0083】
この例では、データモデル402は、データオブジェクト404及びデータオブジェクト406などの1つ以上のルートレベルデータオブジェクトを有することができる。データオブジェクト404及びデータオブジェクト406は、データモデルを駆動する情報のソースであり得るデータベースを表す。例えば、データオブジェクト404は、組織の一部に関連付けられたSQL RDBMSを表すことができ、データオブジェクト406は、別の情報プロバイダ又は他のデータベースへのAPIゲートウェイを表すことができる。
【0084】
様々な実施形態のうちの1つ以上において、データオブジェクト408、データオブジェクト410、データオブジェクト412などは、1つ以上のデータベースによって提供され得るテーブル又はテーブル状オブジェクトを表す。データモデルのこのレベルでは、データオブジェクトは、データベースから提供されるエンティティをラップ又は他の様態で厳密にモデル化すると見なされ得る。したがって、いくつかの実施形態では、テーブル又はデータベースオブジェクトのプロパティ又は属性は、属性名、データタイプ、テーブル名、列名などを含むそれらのネイティブ表現を厳密に反映することができる。例えば、データ管理者は、インポートされたオブジェクトがネイティブ形式で利用可能な特徴又は属性の一部又はすべてを保持するように、データベース又はテーブルをデータモデルに「インポート」することができる。場合によっては、いくつかの実施形態では、1つ以上のインポートされたデータオブジェクトは、同様にインポートすることができるメタデータ情報を含むことができる。
【0085】
様々な実施形態のうちの1つ以上において、インポートされたテーブルオブジェクトが視覚化に使用され得る前に、データ管理者は、視覚化又は視覚化作成者が利用できる情報を準備するために1つ以上の動作を遂行又は遂行する必要がある場合がある。この例では、抽出/変換/ロード(ETL)オブジェクト414は、視覚化での使用に利用可能になる前にテーブルオブジェクト410及びテーブルオブジェクト412内の情報に対して何らかの処理を行うETLプロセスを表す。
【0086】
様々な実施形態のうちの1つ以上において、データソース416又はデータソース418などのデータソースオブジェクトは、視覚化作成者が視覚化又は他の表示モデルに組み込むために利用可能であり得るデータオブジェクトを表す。いくつかの実施形態では、データソースオブジェクトは、データ管理者に、視覚化又は視覚化作成者が利用できるようにすることができるデータベース(例えば、データベース404又はデータベース406)からの情報を管理又は形成する制御を提供することができる。例えば、データベース404内の1つ以上のテーブルは、組織が視覚化から除外したい機密情報を含むことができる。したがって、いくつかの実施形態では、テーブルオブジェクトからデータソースオブジェクトへのマッピング属性を選択することによって、データ管理者は、基礎となるデータベースからのデータの公開方法を制御することができる。いくつかの実施形態では、データ管理者は、テーブルオブジェクトから特定の列又は属性を選択してデータソースに含めることができる。また、いくつかの実施形態では、テーブルオブジェクト内の属性名(例えば、列名)は、データソース内の異なる名前にマッピングされてもよい。例えば、テーブルオブジェクト内のcustomer_identifierという名前のテーブル列は、データソース内の帰属された「アカウント番号」という名前のテーブル列にマッピングされ得る。更に、いくつかの実施形態では、データタイプ変換、アグリゲーション、フィルタリング、結合などのマッピングの他の変換が遂行されてもよい。いくつかの実施形態では、広範又は複雑な変換は、ETLオブジェクトなどにカプセル化され得るが、別個のETLオブジェクトを使用せずに、より単純又はより一般的な変換が可能になり得る。
【0087】
様々な実施形態のうちの1つ以上において、エッジ448は、テーブルオブジェクトからデータソースへのマッピングを表す。この例では、エッジ448は、テーブルオブジェクト408の1つ以上の属性(例えば、列)をデータソース416にマッピングする1つ以上のデータ構造を表すことができる。したがって、いくつかの実施形態では、エッジ448は、テーブルオブジェクト408からのどの情報がデータソース416で利用可能であるか、ならびにテーブルオブジェクト408からの情報が視覚化作成者にどのように見えるかを定義する1つ以上のマッピングルール又は命令を提供又は関連付けられる。
【0088】
様々な実施形態のうちの一つ以上において、ワークブックオブジェクト420は、シートオブジェクト422又はシートオブジェクト424などの一つ以上のユーザレベルデータオブジェクトに関連付けられ得るデータオブジェクトを表す。いくつかの実施形態では、視覚化作成者は、データソース416又はデータソース418などの1つ以上のデータソースによって提供される情報に基づいて、ワークブックオブジェクト420などのブックを設計することができる。いくつかの実施形態では、視覚化作成者は、1つ以上のシート(例えば、シートオブジェクト422又はシートオブジェクト424)を含むワークブックを設計することができる。いくつかの実施形態では、シートオブジェクトは、1つ以上の視覚化などを含むことができる。
【0089】
様々な実施形態のうちの1つ以上において、シートオブジェクト422又はシートオブジェクト424は、ユーザによって利用され得る1つ以上の対話型視覚的アプリケーション又はレポートを提供する視覚化エンジンなどに提供され得る情報の一部又は全部を表し得る。この例では、シートオブジェクト422又はシートオブジェクト424は、1つ以上のデータベースによって提供され得る情報の1つ以上の視覚化をレンダリングするために使用され得るデータ、メタデータ、データ構造などのうちの1つ以上を含む又は参照すると見なされ得る。いくつかの実施形態では、シートは、1つ以上のディスプレイモデル、スタイリング情報、テキストディスクリプション、ナラティブ情報、スタイル化されたグラフィックス、他のシートへのリンクなどを含むように配置されてもよい。
【0090】
したがって、いくつかの実施形態では、ユーザ426又はユーザ428などのユーザがシートにアクセスできるようにすることができる。シート内のコンテンツ又は視覚化は、その設計及びそれが基づく情報(例えば、データベース404又はデータベース406からの情報)に依存し得る。典型的には、シート又は含まれる視覚化は、1つ以上のデータベースからの1つ以上の属性、列などに依存し得る。同様に、いくつかの実施形態では、データベースに関連付けられ得る依存性は、テーブル、データソース、ワークブックなどの他のデータオブジェクトを介して伝播することができる。場合によっては、シートとその基礎となるデータベースとの間に挿入された他のデータオブジェクトが、シート又は視覚化に伝播し得る追加の依存性を導入することがある。
【0091】
様々な実施形態のうちの1つ以上では、データオブジェクトに関連付けられ得る関連付けられる又は適格なメタデータを1つ以上の依存データオブジェクトに伝播することが有利であり得る。しかしながら、場合によっては、介在するデータオブジェクト又はデータ変換は、先祖オブジェクトに関連付けられたメタデータを、1つ以上の子孫/依存データオブジェクト又はデータオブジェクト属性に関して無意味又は混乱させる可能性がある。したがって、いくつかの実施形態では、リネージエンジンは、メタデータが従属オブジェクトに伝搬する資格を与えられ得るかどうかを決定するために、(クエリタイプの形態の)様々な戦略を使用するように構成され得る。
【0092】
図5は、様々な実施形態のうちの1つ以上による、データ資産のメタデータ継承のためのシステム500の一部の論理表現を示す。この例では、いくつかの実施形態について、データモデル502は、上述のデータモデル402と同様であると見なされ得る。しかしながら、この例は、データモデル内のデータオブジェクトの一部がどのように関連又は依存し得るかを示す。
【0093】
この例では、データオブジェクト506は、メタデータ情報に関連付けられ得るデータオブジェクトを表す。したがって、この例では、データオブジェクト506に関連付けられたメタデータの一部又はすべては、データオブジェクト508、データオブジェクト510、データオブジェクト512、データオブジェクト514などの様々な依存データオブジェクトに伝播するのに適格であり得る。また、この例では、ユーザ516又はユーザ518は、データオブジェクト512又はデータオブジェクト514に依存又は所有するユーザであってもよい。
【0094】
図6は、様々な実施形態のうちの1つ以上による、データモデルにおける依存性を示す、システム600の一部の論理概略図を図示する。この例では、システム600は、データオブジェクト602、データオブジェクト604、データオブジェクト606、データオブジェクト608などを含む。
【0095】
上述したように、様々な実施形態のうちの1つ以上において、データモデル内のデータオブジェクトは、同じデータモデル内の他のデータオブジェクトに依存し得る。この例では、データオブジェクト604、データオブジェクト606、及びデータオブジェクト608は、データオブジェクト602に依存する。したがって、この例では、データオブジェクト608はデータオブジェクト606に依存し、以下同様である。この例におけるすべてのデータオブジェクトは、そのルートとしてデータオブジェクト602を有する同じ依存木の一部であるが、同じデータモデル内に異なる又は別個の依存性を有する他のデータオブジェクトが存在してもよいことに留意されたい。
【0096】
様々な実施形態のうちの1つ以上において、データモデル内のデータオブジェクトは、他のデータオブジェクトの1つ以上の属性に依存するため、1つ以上の他のデータオブジェクトに依存し得る。図6において、データオブジェクト内の列を他のデータオブジェクト内の他の列に接続する線は、属性レベルにおけるデータオブジェクト間の依存性を表す。したがって、この例では、データオブジェクト602は、5つの属性と見なされることができる5つの列を有する。この例では、データオブジェクト602をデータオブジェクト604に接続する線は、データオブジェクト604がデータオブジェクト602の4つの属性に依存することを表す。同様に、この例では、データオブジェクト606は、データオブジェクト604の3つの属性に直接依存し、データオブジェクト602の3つの属性に間接的に依存する。また、同様に、この例では、データオブジェクト608は、データオブジェクト606からの1つの属性に直接的に依存し、データオブジェクト606、データオブジェクト604、及びデータオブジェクト602の1つの属性に間接的に依存する。したがって、この例では、すべてのデータオブジェクトは、それらの親のうちの1つ以上に依存するが、データオブジェクト間の依存性は、すべての属性よりも少ない属性に基づいてもよい。例えば、ライン618は、データオブジェクト608がデータオブジェクト606の1つの属性に依存することを表す。
【0097】
いくつかの実施形態では、属性又はデータオブジェクト間の依存性は、一般に、子孫データオブジェクトに渡されるときに属性値に適用され得る1つ以上の関数、フィルタ、変換などに依存し得る。例えば、テーブルデータオブジェクトは、Unixエポックタイムスタンプとして記憶されたタイムスタンプ属性を含むことができる。しかし、この例では、依存データソースは、Unixエポックタイムスタンプではなく従来の日付表現を期待する日付とラベル付けされた属性を有することができる。したがって、この例では、依存データソースのDate属性は、親テーブルによって提供されるUnixエポックタイムスタンプ値をデータソースの要件を満たす従来の日付値に変換する変換動作に関連付けられ得る。
【0098】
図7は、様々な実施形態のうちの1つ以上による、依存関係階層内の論理ノードの少なくとも一部を示す依存関係階層700の一部の論理概略図を示す。上述したように、データモデル内のデータオブジェクトの依存性は、依存関係に寄与する関連データオブジェクトの属性に基づいて依存関係階層として表すことができる。したがって、依存関係階層で表されるデータオブジェクトの属性は、一般的な属性と区別するためにフィールドと呼ばれることがある。いくつかの実施形態では、依存関係階層は、フィールドノード、フローノード、計算ノードなどの1つ以上のノードを含むことができる。
【0099】
様々な実施形態のうちの1つ以上において、フィールドノード(例えば、フィールド)は、データオブジェクトの属性の値を表すことができる。例えば、いくつかの実施形態では、ソース/発信データベースからのテーブルからの列などの属性に対応するフィールドは、フィールドの元の値を提供することができる。一方、依存フィールドノードは、依存関係階層においてより高くなり得る1つ以上のノードから伝播された値を保持すると見なされ得る。
【0100】
更に、いくつかの実施形態では、依存関係階層内の1つ以上のノードは、フィールド値が子孫フィールドに伝播され得る前にフィールド値に適用され得る計算(例えば、計算ノード)を表し得る。場合によっては、いくつかの実施形態では、計算ノードは、入力フィールドとは新しい又はセマンティック意味を有することができる1つ以上のフィールド値から値を生成することができる。例えば、いくつかの実施形態では、別のフィールドの新しい値を生成するために2つの他のフィールド値の差を計算するように構成された計算ノードは、計算ノードと考えることができる。したがって、いくつかの実施形態では、計算ノードは、他のフィールドに伝播され得る値を生成するために、1つ以上の入力フィールドからの値に対して任意の計算を遂行するようにユーザ又は視覚化作成者によって構成され得る。
【0101】
また、いくつかの実施形態では、フローノードは、他のフィールドに伝播され得る前にフィールド値に適用され得る変換操作を表すことができる。様々な実施形態のうちの1つ以上において、フローノードを使用して、フィールド値の意味を変更することなくフィールド値に対して実行され得る変換操作を宣言することができる。例えば、テキストフォーマット、日付フォーマット、数値の切り捨て/丸めなどの操作に対応するフローノードは、フローノードと考えることができる。また、ここには示されていないが、フローノードは、2つ以上のフィールドノードから入力値を受信するように構成されてもよい。
【0102】
この例では、いくつかの実施形態では、依存関係階層700は、フィールドノード702、フィールドノード704、フィールドノード706、フィールドノード708、フィールドノード710、フィールドノード712、フィールドノード714、フィールドノード716、フィールドノード718、及びフィールドノード720を含む。また、この例では、依存関係階層700は、計算ノード714及びフローノード720を含む。
【0103】
したがって、いくつかの実施形態では、値を変更することなく、フィールドノード702の値をフィールドノード706、フィールドノード708、フィールドノード710、及びフィールドノード712に伝播するように、リネージエンジンを構成することができる。対照的に、この例では、フィールドノード702及びフィールドノード704からの値を計算ノード714への入力として提供するように、リネージエンジンを構成することができる。したがって、この例では、いくつかの実施形態では、計算ノード714は、新しい値又は修正された値をフィールドノード716に伝播することができる。いくつかの実施形態では、計算ノード714によって遂行される特定の計算は、フィールドノード704又はフィールドノード702のセマンティック意味から逸脱する可能性がある有効な計算又は変換であると見なされ得る。更に、この例では、フィールドノード716の値をフィールドノード718に伝播することができる。また、この例では、いくつかの実施形態では、フィールドノード704からの値は、フローノード720に提供されてもよい。したがって、いくつかの実施形態において、フローノード720は、フィールドノード704からの値に対して1つ以上の変換を実行するように構成されてもよい。上述したように、フローノードによって遂行される変換は、フィールドノード704の値のセマンティック意味をそのまま残すと見なされ得る。最後に、この例では、フローノード720によって生成された値は、フィールドノード722に伝播され得る。
【0104】
様々な実施形態のうちの1つ以上において、データ管理エンジン又はリネージエンジンは、データモデル又は依存性モデルにおいて定義されたルール又は構成を自動的に実施するように構成されてもよい。したがって、いくつかの実施形態では、ユーザ又は他のクライアントは、データオブジェクト又は視覚化において1つ以上のフィールドを使用することができる。
【0105】
当業者であれば、生産依存関係階層は、ここに示されているよりも多くのフィールドノード、計算ノード、フローノードなどを含むことができることを理解するであろう。しかしながら、当業者であれば、依存関係階層700は、本明細書に含まれるイノベーションを開示するのに少なくとも十分であることを理解するであろう。
【0106】
また、場合によっては、簡潔さ又は明確さのために、フィールドノード、計算ノード、フローノードなどは、依存関係階層のコンテキストでフィールド、計算、又はフローと呼ばれることがある。
【0107】
更に、いくつかの実施形態では、依存関係階層は、データモデルの固有の部分であってもよい。例えば、データモデルと依存関係階層とに対して別々のデータ構造を生成するのではなく、いくつかの実施形態では、依存関係階層情報を含むデータモデルを生成するように、リネージエンジンを構成することができる。しかしながら、簡潔さ又は明確さのために、本明細書では、依存関係階層は、それらの対応するデータモデルから分離されていると説明することができる。
【0108】
図8は、様々な実施形態のうちの1つ以上によるメタデータ情報を含むデータオブジェクト800の論理概略図を示す。本明細書で説明するように、いくつかの実施形態では、データモデルは、様々なデータオブジェクトを含むか又は表すように構成され得る。いくつかの実施形態では、1つ以上のデータオブジェクトは、データベース、スプレッドシート、ファイル、アーカイブなど1つ以上の元のデータソースに基づくことができる。更に、いくつかの実施形態では、データオブジェクトは、他のデータオブジェクトからのデータオブジェクト又はデータ属性を含む1つ以上の合成オブジェクトを含むことができる。例えば、いくつかの実施形態では、データソース、ワークブック、ワークシートなどは、他のデータオブジェクトからの1つ以上の属性を含み得るデータオブジェクトであり得る。上述したように、データオブジェクト又はデータオブジェクト属性は、メタデータに関連付けられてもよい。例えば、データベースは、1つ以上の列を有するテーブルなどのデータベースオブジェクトを提供するように構成されてもよく、各テーブルは名前が付けられ、各列は名前が付けられる。したがって、この例では、テーブル名及び列名は、データモデル内のデータオブジェクト名及びデータオブジェクト属性名として使用されることが多い。しかしながら、場合によっては、いくつかの実施形態では、データベースオブジェクトは、データオブジェクト属性の値を表すのではなく、データベースオブジェクトの意味、コンテキスト、又は目的への洞察を提供することができるメタデータに関連付けられてもよい。
【0109】
この例では、いくつかの実施形態では、データオブジェクト属性800は、データモデル内のデータオブジェクト属性を表すように構成され得る1つ以上のデータ構造を表すと見なされ得る。この例では、データオブジェクト属性800は、ここでは特徴802によって表される1つ以上の固有の特徴を含み得る。この例では、いくつかの実施形態では、特徴は、アイデンティティ/ラベル、値、データタイプなどの属性を表すために必要又は好ましくなり得る属性800の様々な特性を表す。当業者は、属性が、データオブジェクトの種類又は属性のタイプに応じて、より多くの又はより少ない固有の特徴を含み得ることを理解するであろう。しかしながら、当業者は、特徴802が、データオブジェクト属性の値を表すために必要であり得る情報を論理的に表すことを意図していることを理解するであろう。この例では、ラベル、値、及びタイプは、データオブジェクト800の固有の特徴を表す。したがって、ラベル、値、及びタイプは、属性が視覚化、レポート、ユーザインターフェースなどで使用されることを可能にする必要な機能と見なされ得る。
【0110】
対照的に、この例では、メタデータ804は、データオブジェクト属性800に関連付けられたメタデータを表す。この例では、ディスクリプションメタデータは、データオブジェクト属性800の目的をより詳細に説明するものとして表現されている。また、この例では、メタデータメモは、このデータオブジェクト属性を導入したアプリケーション/スキーマのバージョンをディスクリプションする説明を含む。明らかに、この例では、特徴802は、ディスプレイエンジンなどがデータオブジェクト属性に関連付けられた値を効果的に表示することを可能にする。しかしながら、メタデータ804は、ユーザ又は視覚化作成者がデータオブジェクト属性の目的に関するコンテキスト、目的、又は意味の改善された理解を得ることを可能にする。したがって、この例では、表示エンジンは、データオブジェクト属性800を含むことができる視覚化、レポート、ユーザインターフェースなどを設計するときに知らせるのに役立つように、ユーザ又は視覚化作成者がメタデータ情報を閲覧することを可能にすることができる。
【0111】
いくつかの実施形態では、メタデータは、タグ、データ品質警告、個人識別情報(PII)検出(例えば、これは機密情報を含むフィールドである)、データの鮮度、階層ヒント/情報(例えば、様々なフィールドノードと計算ノードとの間の距離など)、認証/検証情報(例えば、フィールドは信頼できるか?)などのうちの1つ以上を含み得る。
【0112】
更に、データオブジェクト又はデータオブジェクト属性は、データのタイプ、データのソースなどに応じて多種多様な異なるタイプのメタデータをサポートすることができることが当業者には理解されよう。したがって、いくつかの実施形態では、リネージエンジンは、構成情報を介して提供されるルール、命令、ライブラリなどを使用して、異なるタイプのメタデータを処理又は認識するように構成され得る。したがって、いくつかの実施形態では、新しいメタデータタイプが、種々のデータオブジェクト又はデータオブジェクト属性のために導入され得るにつれて、リネージエンジンは、構成情報を使用し、新しいメタデータタイプ又は他のローカル要件もしくはローカル状況を考慮してもよい。
【0113】
一般化された動作
図9図13は、様々な実施形態のうちの1つ以上による、データ資産のメタデータ継承のための一般化された動作を表す。様々な実施形態のうちの1つ以上において、図9図13に関連して説明されるプロセス900、1000、1100、1200、及び1300は、図3のネットワークコンピュータ300などの単一のネットワークコンピュータ上の1つ以上のプロセッサによって実装又は実装され得る。他の実施形態では、これらのプロセス又はその一部は、図3のネットワークコンピュータ300などの複数のネットワークコンピュータによって実装されてもよく、又は複数のネットワークコンピュータ上で実装されてもよい。更に他の実施形態では、これらのプロセス又はその一部は、クラウドベースの環境内の仮想化コンピュータなどの1つ以上の仮想化コンピュータによって実装又は実装されてもよい。しかしながら、実施形態はそのように限定されず、ネットワークコンピュータ、クライアントコンピュータなどの様々な組み合わせを利用することができる。更に、様々な実施形態のうちの1つ以上において、図9図13に関連して説明されたプロセスは、図4図8に関連して説明されたものなどの様々な実施形態又はアーキテクチャのうちの少なくとも1つにしたがって、データアセットのためのメタデータ継承のために使用され得る。更に、様々な実施形態のうちの1つ以上において、プロセス900、1000、1100、1200、及び1300によって遂行される動作の一部又は全部は、1つ以上のネットワークコンピュータの1つ以上のプロセッサ上で遂行されるデータ管理エンジン322、ディスプレイエンジン324、又はリネージエンジン326によって部分的に遂行されてもよい。
【0114】
図9は、種々の実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセス900の概観フローチャートを図示する。開始ブロックの後、開始ブロック902において、様々な実施形態のうちの1つ以上において、データモデルをリネージエンジンに提供することができる。上述したように、データ管理エンジン、ディスプレイエンジンなどは、データモデル内の様々なデータモデル層又はデータオブジェクトタイプに関連付けられ得るデータオブジェクトを作成するために、視覚化作成者又はデータ管理者によって使用され得るデータモデルを生成するように構成され得る。
【0115】
判定ブロック904において、様々な実施形態のうちの1つ以上において、メタデータクエリがリネージエンジンに提供され得る場合、制御はブロック906に流れることができる。そうでない場合、制御は判定ブロック904にループバックすることができる。様々な実施形態のうちの1つ以上において、リネージエンジンは、メタデータクエリを提供することができる様々なクライアント又はクライアントアプリケーションと統合するように構成することができる。例えば、視覚化オーサリングシステムなどのクライアントアプリケーションが、データオブジェクトのメタデータを視覚化作成者に表示しようとする場合、クライアントアプリケーションは、もしあれば、適格なメタデータを提供するために、リネージエンジンにメタデータクエリを提供することができる。
【0116】
また、いくつかの実施形態では、メタデータクエリ情報は、クエリのタイプに応じて変化し得る。更に、いくつかの実施形態では、メタデータクエリをサポートするように、SQL、GraphQL、JSON、XML、Javascript、正規表現など、又はそれらの組み合わせなどの様々な周知の又はカスタマイズされたクエリ言語を使用して、リネージエンジンを構成することができる。
【0117】
ブロック906において、様々な実施形態のうちの1つ以上において、リネージエンジンは、データモデルに基づいて依存関係階層を決定するように構成され得る。様々な実施形態のうちの1つ以上において、リネージエンジンは、データモデルの依存関係階層をオンデマンド又は事前に生成するように構成されてもよい。例えば、いくつかの実施形態では、リネージエンジンが起動されるか、又はデータモデルに関連付けられ得る場合、リネージエンジンは、データモデルに対応する依存関係階層を自動的に生成するように構成され得る。いくつかの実施形態において、依存関係階層は、本質的にデータモデルの一部であってもよい。しかしながら、簡潔さ又は明確さのために、本明細書では、依存関係階層は、それらの対応するデータモデルとは別に記載される。
【0118】
ブロック908において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリに基づいて依存関係階層をトラバースするように構成され得る。様々な実施形態のうちの1つ以上において、メタデータクエリ情報は、メタデータクエリに関連し得る依存関係階層の1つ以上のフィールド又は部分を識別する情報を含むことができる。例えば、メタデータクエリが1つのフィールドのメタデータを要求している場合、メタデータクエリは、このフィールドをメタデータクエリのアンカフィールドとして識別する。
【0119】
ブロック910において、様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層のトラバースに基づいてメタデータ情報を決定するように構成されることができる。様々な実施形態のうちの1つ以上において、メタデータクエリタイプ及びクエリ自体は、クエリに応答する適格なメタデータを決定する方法をリネージエンジンに通知することができる。いくつかの実施形態では、適格なメタデータ情報(例えば、継承可能なメタデータ)を決定することは、依存関係階層内のノードをトラバース又は他の評価することを含むことができる。簡潔さ又は明確さのために、依存関係階層によって表される関係又はノードを評価することに関連する動作は、依存関係階層をトラバースすると呼ばれる場合がある。
【0120】
ブロック912において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリ結果においてメタデータ情報を提供するように構成することができる。様々な実施形態のうちの1つ以上において、異なるメタデータクエリ又はメタデータクエリタイプは、異なるタイプの結果を生成することができる。いくつかのメタデータクエリタイプは、依存関係階層から決定された(クエリによって定義された)第1の適格なメタデータに基づいてメタデータ情報を提供することができる。対照的に、いくつかの実施形態では、他のメタデータクエリ又はメタデータクエリタイプは、2つ以上のフィールドに対してメタデータを提供することができる。例えば、チェーン化されたメタデータについてのクエリは、資格を提供し得る。
【0121】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0122】
図10は、種々の実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセス1000のフローチャートを図示する。開始ブロックの後、開始ブロック1002において、様々な実施形態のうちの1つ以上において、メタデータクエリがリネージエンジンに提供されてもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、クライアントアプリケーションが1つ以上のメタデータクエリを提供することを可能にする1つ以上のAPIを提供するように構成されてもよい。様々な実施形態のうちの1つ以上において、メタデータクエリ情報は、1つ以上のAPIを介して1つ以上のパラメータとして提供されてもよい。いくつかの実施形態では、メタデータクエリ情報は、リネージエンジンがメタデータクエリ情報を決定するために解析することができるJSONオブジェクトとして提供されてもよい。
【0123】
様々な実施形態のうちの1つ以上において、1つ以上のAPIは、クライアントがクエリタイプ、依存関係階層内の1つ以上のアンカフィールドなどを宣言することを可能にすることができる。いくつかの実施形態では、リネージエンジンは、クライアントがフィルタ、セキュリティ/許可証明などの追加のパラメータを提供することを可能にするAPIを提供するように構成することができる。
【0124】
ブロック1004において、様々な実施形態のうちの1つ以上において、リネージエンジンは、メタデータクエリを解析してメタデータクエリのタイプを決定するように構成されてもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、1つ以上のメタデータクエリタイプをサポートするように構成されてもよい。したがって、いくつかの実施形態では、メタデータクエリ情報は、リネージエンジンがクエリタイプを決定することを可能にする直接インジケータ(例えば、ラベル)、ヒントなどを含むことができる。
【0125】
様々な実施形態のうちの1つ以上において、リネージエンジンは、異なるクエリタイプを識別するために構成情報を介して提供される命令、ルール、ライブラリなどを使用するように構成され得る。したがって、いくつかの実施形態では、構成情報を介して提供される新しい又は異なるクエリタイプの追加をサポートするように、リネージエンジンを構成することができる。
【0126】
ブロック1006において、様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層内の1つ以上のアンカフィールドを決定するためにメタデータクエリを解析するように構成され得る。
【0127】
様々な実施形態のうちの1つ以上において、アンカフィールドは、メタデータクエリが方向付けられ得る依存関係階層内のフィールドであり得る。様々な実施形態のうちの1つ以上において、リネージエンジンは、アンカフィールドにおいて要求されたメタデータの検索を開始するように構成されてもよい。いくつかの実施形態では、リネージエンジンは、1つ以上のアンカフィールドを有するメタデータクエリをサポートするように構成され得る。したがって、様々な実施形態のうちの1つ以上において、2つ以上のアンカフィールドを含むクエリは、クエリに含まれる各アンカフィールドに対してクエリを実行することができる。
【0128】
いくつかの実施形態では、アンカフィールド識別子は、クエリ自体とは異なり得るクエリAPIを介してリネージエンジンに渡され得る。
【0129】
ブロック1008において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリタイプに基づいて依存関係階層をトラバースするように構成されてもよい。上述したように、リネージエンジンは、データモデル内のデータオブジェクトの関係に基づいて依存関係階層を生成するように構成され得る。
【0130】
様々な実施形態のうちの1つ以上において、リネージエンジンは、1つ以上のアンカフィールドに対するメタデータクエリに応答するように構成されてもよい。したがって、いくつかの実施形態では、リネージエンジンは、継承可能なメタデータ値を識別するために依存関係階層をトラバースするように構成され得る。いくつかの実施形態では、アンカフィールドは、要求されたメタデータの独自のバージョンを有してもよいことに留意されたい。したがって、場合によっては、クエリタイプに応じて、要求されたメタデータ値がアンカフィールドに関連付けられ得るため、リネージエンジンは依存関係階層のトラバースを省略することができる。対照的に、アンカフィールドが要求されたメタデータに関連付けられていない場合、リネージエンジンは、クエリに応答することができる継承可能なメタデータ値があるかどうかを判定するために依存関係階層をトラバースすることができる。
【0131】
様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリタイプに応じて1つ以上の動作を実行するように構成されてもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、ローカル要件又はローカル状況を考慮するために構成情報によって提供されるルール、命令、ライブラリなどに基づいて1つ以上の動作を決定するように構成することができる。
【0132】
例えば、いくつかの実施形態では、いくつかのクエリタイプは、質問に回答することができる第1のメタデータ値に限定され得る応答を提供するように構成され得る。また、例えば、いくつかの実施形態では、他のクエリタイプは、継承可能なメタデータ値に関連付けられ得る依存関係階層内の各フィールドを識別するレポートなどのより多くの情報に向けられてもよい。例えば、いくつかの実施形態では、タイプFIRSTのクエリは、依存関係階層のトラバースによって決定されるメタデータの第1の有効値を返すことができる。同様に、いくつかの実施形態では、タイプCHAINのクエリは、トラバースにおいて訪問された依存関係階層の部分全体について要求されたメタデータ値を返すことができる。
【0133】
ブロック1010において、様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層及びクエリタイプのトラバースに基づいてメタデータ情報を決定するように構成されることができる。簡単に上述したように、情報のタイプは、クエリタイプ及びクエリ情報に応じて異なり得る。いくつかのクエリは、1つのフィールドのメタデータ値を返すことができ、他のメタデータクエリは、1つ以上のフィールドのメタデータ値を返すことができる。同様に、いくつかの実施形態では、いくつかのクエリは、集約値、カウント、真/偽(例えば、存在)等を返してもよい。また、いくつかの実施形態では、要求されたクエリが解決できない場合、リネージエンジンは、ヌル値又はエラーを報告するように構成され得る。場合によっては、クエリに関連付けられた継承ルールが有効な回答を提供しない場合があるので、リネージエンジンは、フィールドのメタデータ値を取得することができない場合がある。例えば、いくつかの実施形態では、フィールドが2つのフィールドに依存する場合、リネージエンジンは、メタデータをどのように伝播するかを自動的に決定することができないようにされ得る。したがって、この例では、ヌル値が報告され得る。ただし、この例では、いくつかのクエリタイプは、1つの結果を提供できないのではなく、各代替結果を提供することができる。
【0134】
更に、いくつかの実施形態では、依存関係階層内の1つ以上のデータオブジェクト又は対応するフィールドは、1つ以上の許可又は特権指定に関連付けられ得る。したがって、いくつかの実施形態では、リネージエンジンは、メタデータクエリを提出するユーザ又はクライアントがメタデータ又は継承可能なメタデータに関連付けられたフィールドを閲覧又はアクセスすることを許可され得ることを検証するように構成され得る。いくつかの実施形態において、リネージエンジンは、クエリ結果に関連付けられたメタデータクエリ、メタデータクエリタイプ、データモデル/オブジェクトなどに応じて、1つ以上の情報セキュリティポリシを適用するように構成されてもよい。いくつかの実施形態では、リネージエンジンは、メタデータクエリ結果に関連する許可評価又はユーザ許可を判定するために構成情報によって提供されるルール、命令などを使用するように構成されることができる。
【0135】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0136】
図11は、種々の実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセス1100のフローチャートを図示する。開始ブロックの後、開始ブロック1102において、様々な実施形態のうちの1つ以上において、第1のメタデータ値に対するメタデータクエリがリネージエンジンに提供されてもよい。上述したように、いくつかの実施形態において、リネージエンジンは、様々なクエリタイプをサポートするように構成されてもよい。様々な実施形態のうちの1つ以上において、特定のクエリタイプに対するクエリを宣言するための利用可能な/許可されたクエリタイプ及びルール、命令、文法などは、クエリタイプに応じて異なり得る。例えば、いくつかの実施形態では、クライアントアプリケーションがクエリタイプを示す名前又はシンボルを提供することを可能にするように、リネージエンジンを構成することができる。他の実施形態では、リネージエンジンは、クエリ情報からクエリタイプを推測するように構成されてもよい。例えば、メタデータクエリがSQL又はGraphQLを使用して提供され得る場合、リネージエンジンは、SQL又はGraphQLを解析してクエリタイプを決定するように構成され得る。
【0137】
したがって、いくつかの実施形態では、メタデータクエリが、1つ以上のアンカフィールドの第1のメタデータ値を決定するようにリネージエンジンに要求しているかどうかを判定するように、リネージエンジンを構成することができる。例えば、いくつかの実施形態では、クエリ情報は、もしあれば、クライアントがアンカフィールドの第1の適格なメタデータ値を要求していることを示す「FIRST」などの値を含むことができる。この例では、FIRSTクエリタイプは、指定されたメタデータの第1の適格/有効値を返すように構成され得る。例えば、クエリがアンカフィールドのメタデータ「ディスクリプション」の値を要求している場合、リネージエンジンは、依存関係階層に基づいてアンカオブジェクトの「ディスクリプション」の第1の値を見つけるためにクエリを実行することができる。したがって、アンカフィールドがアンカフィールドに関連付けられたディスクリプションメタデータを有する場合、そのディスクリプション情報はクエリを満たすことができる。対照的に、アンカフィールドがディスクリプションメタデータを有さない場合、リネージエンジンは、クエリを満たすことができる他のフィールドに関連付けられた継承可能なメタデータがあるかどうかを判定するために依存関係階層をトラバースするように構成されることができる。
【0138】
ブロック1104において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリに基づいてアンカフィールドを決定するように構成され得る。様々な実施形態のうちの1つ以上において、アンカフィールドは、クエリの主要なサブジェクトと見なされ得る。したがって、いくつかの実施形態では、クエリ情報は、アンカフィールドを明示的に定義することができる。いくつかの実施形態では、複数のアンカフィールドがFIRSTクエリタイプのクエリ情報に含まれ得る場合、リネージエンジンは、各アンカフィールドの第1の適格なメタデータ値を見つけるように構成され得る。
【0139】
ブロック1106において、様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層内の各次の上位ノードを訪問するように構成され得る。様々な実施形態のうちの1つ以上において、リネージエンジンは、アンカフィールドから開始して依存関係階層をトラバースするように構成され得る。様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリが結果に到達するか又はエラーを生成するまでトラバースを継続するように構成されてもよい。
【0140】
いくつかの実施形態では、リネージエンジンは、メタデータクエリで宣言された1つ以上のアンカフィールドで依存関係階層のトラバースを開始することができる。
【0141】
判定ブロック1108において、様々な実施形態のうちの1つ以上において、訪問済みノードが計算ノードであり得る場合、制御はブロック1120に流れることができる。そうでない場合、制御は判定ブロック1110に流れることができる。上述したように、場合によっては、いくつかの実施形態では、依存関係階層内のフィールドノードは、1つ以上の計算ノードに依存し得る。上述したように、計算ノードは、新しい値又は修正された値を生成するために1つ以上の他のフィールド値に対して遂行され得る1つ以上の計算(例えば、計算)を表すことができる。
【0142】
場合によっては、計算ノードに対して遂行される動作は、ソース/入力フィールドのセマンティック意味とは異なり得るセマンティック意味を有する値を生成することができる。したがって、いくつかの実施形態では、計算ノードに供給されるフィールドに関連付けられたメタデータの意味又はコンテキストは、計算ノードによって生成された値に関連しない場合がある。したがって、いくつかの実施形態では、メタデータの意味がもはやフィールド値と一致しない可能性があるため、そのようなメタデータを依存関係階層の更に下のフィールド/ノードに伝播することは不利であり得る。
【0143】
したがって、いくつかの実施形態では、他の適格なメタデータが発見される前に依存関係階層のトラバース中に計算ノードに遭遇した場合、第1のメタデータ値についてのクエリは回答されない可能性がある。
【0144】
判定ブロック1110において、様々な実施形態のうちの1つ以上において、訪問済みノードがフローノードであり得る場合、制御は判定ブロック1112に流れることができる。そうでない場合、制御はブロック1120に進んでもよい。上述したように、いくつかの実施形態では、フローノードは、値に対して実行され得るフィールド値への変換を表すことができるという点で計算ノードと同様であり得、子孫フィールドに渡され得る。しかしながら、計算ノードとは対照的に、フローノードに関連付けられた変換は、変換されたフィールドのセマンティック的意味を保持すると仮定されてもよい。したがって、いくつかの実施形態では、依存関係階層のトラバースにおいてフローノードを訪問しても、計算ノードのようにクエリを終了することはできない。
【0145】
判定ブロック1112において、様々な実施形態のうちの1つ以上において、訪問済みフローノードが1つの入力を有することができる場合、制御は判定ブロック1114に流れることができる。そうでない場合、制御はブロック1120に進んでもよい。上述したように、いくつかの実施形態では、フローノードは、複数の入力ノードを有するように構成されてもよい。いくつかの実施形態では、フローノードが2つ以上の入力ノードを有する場合、リネージエンジンは、1つ以上のフィールドの中から選択することができないため、どのメタデータをアンカフィールドまで伝播するかを決定することができないことがある。したがって、いくつかの実施形態では、2つ以上の入力ノードを有するフローノードを訪問することは、クエリのトラバース及び実行を終了させ得る。
【0146】
判定ブロック1114において、様々な実施形態のうちの1つ以上において、訪問済みノードがクエリと一致するメタデータ情報を有する場合、制御はフローブロック1118を流れることができる。そうでない場合、制御は判定ブロック1116に進んでもよい。例えば、クエリがアンカフィールドの第1の「ディスクリプション」メタデータを要求している場合、訪問済みフィールドノードが「ディスクリプション」の値を有する場合、クエリは満たされ得る。対照的に、いくつかの実施形態では、訪問済みフィールドが要求されたメタデータの値を有さない場合、依存関係階層の上方へのトラバースは継続することができる。
【0147】
判定ブロック1116において、様々な実施形態のうちの1つ以上において、依存関係階層のトラバースが継続することができる場合、制御は、ループバックして1106に戻ることができる。そうでない場合、制御はブロック1120に進んでもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、適格なメタデータ、計算ノード、又はマルチ入力フローノードに遭遇することによってクエリが終了しない限り、アンカフィールドのすべての先祖ノードが訪問され得るまで、依存関係階層の上方へのトラバースを継続するように構成され得る。トラバース終了条件は、メタデータクエリ又はメタデータクエリタイプに応じて変化し得ることに留意されたい。
【0148】
更に、いくつかの実施形態では、リネージエンジンは、クエリの実施によって消費される時間又はリソースの量を制限するために様々な安全/性能対策を採用するように構成されてもよい。したがって、いくつかの実施形態では、リネージエンジンは、クエリが長すぎる場合にクエリを終了するように構成され得る。したがって、いくつかの実施形態では、構成情報又はクエリ自体からタイムアウト値を決定するように、リネージエンジンを構成することができる。また、いくつかの実施形態では、リネージエンジンは、クエリ中に訪問され得る依存関係階層内のノードの総数を制限することによってクエリを制限するように構成され得る。例えば、いくつかの実施形態では、リネージエンジンは、訪問され得るノードの数を2万個のノードなどに制限することによって依存関係階層のトラバースを制限するように構成され得る。いくつかの実施形態では、リネージエンジンは、ローカル要件又はローカル状況を考慮するために構成情報に基づいてタイムアウト値又はトラバース/ノードカウント制限を決定するように構成され得ることに留意されたい。更に、いくつかの実施形態では、異なるタイプのクエリは、異なるタイムアウト又はノード訪問制限を有することができる。
【0149】
ブロック1118において、様々な実施形態のうちの1つ以上において、リネージエンジンは、訪問済みノードのメタデータ情報を決定するように構成されることができる。様々な実施形態のうちの1つ以上において、クエリによって要求されたメタデータは、要求されたメタデータ情報に関連付けられ得る第1の訪問済みフィールドノードから決定されてもよい。いくつかの実施形態では、アンカフィールドが要求されたメタデータ情報を有する場合、これはアンカフィールドであり得る。そうでなければ、いくつかの実施形態では、メタデータ情報は、アンカフィールドの先祖であり得る依存関係階層内のフィールドノードから決定され得る。ここで説明する第1のクエリタイプの場合、メタデータ値は、クエリによって要求されたメタデータの値を有する第1のフィールドノードから取得されてもよいことに留意されたい。
【0150】
ブロック1120において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリ結果を返すように構成することができる。様々な実施形態のうちの1つ以上において、リネージエンジンは、判定され得る場合、要求されたメタデータの値を含む結果情報を返すように構成されてもよい。そうでなければ、いくつかの実施形態では、要求されたメタデータを判定できなかったことを示す結果が提供されてもよい。いくつかの実施形態では、結果情報は、要求されたメタデータ値が決定されなかった理由を示すことができる。したがって、いくつかの実施形態では、結果情報は、計算ノード又はマルチ入力フローノードに遭遇したかどうかを示すことができる。また、いくつかの実施形態では、結果情報は、依存関係階層内のフィールドノードのいずれも要求されたメタデータを含まなかったことを示すことができる。
【0151】
更に、上記で言及され、以下でより詳細に説明されるように、リネージエンジンは、フィールド/データアクセス制限、ユーザ役割、クライアントタイプ、クライアントソースなどの情報セキュリティ考慮事項に基づいてメタデータクエリ結果を修正するように構成されてもよい。
【0152】
様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリを提供したクライアントに対して同期的又は非同期的に結果情報を提供するように構成されてもよい。いくつかの実施形態では、結果情報は、APIパラメータ又は戻り値で返されてもよい。いくつかの実施形態では、結果情報は、使用されているAPIと一致する様々なデータ構造内の1つ以上の個々のパラメータを含んでもよい。例えば、場合によっては、結果情報は、1つ以上のJSONオブジェクト、XMLファイル、HTTP応答などとして提供されてもよい。いくつかの実施形態では、リネージエンジンは、クエリ情報を提供したクライアントにクエリ結果情報を返すための2つ以上のプロトコル又はフォーマットをサポートするように構成することができる。
【0153】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0154】
図12は、様々な実施形態のうちの1つ以上による、データアセットのためのメタデータ継承のためのプロセス1200のフローチャートを図示する。開始ブロックの後、開始ブロック1202において、様々な実施形態のうちの1つ以上において、連鎖メタデータ情報についてのメタデータクエリが、リネージエンジンに提供されてもよい。この例では、連鎖メタデータ情報メタデータクエリは、アンカフィールドが依存し得る先祖の一部又は全部についてのメタデータ情報を要求する。そうでなければ、連鎖メタデータクエリのためのクエリ情報を提供することは、ブロック1102について説明したのと同様であると考えることができる。
【0155】
また、様々な実施形態のうちの1つ以上において、連鎖メタデータのためのクエリは、クエリタイプと見なされてもよい。したがって、いくつかの実施形態では、クエリに関連する適格なメタデータ又は他の結果を決定することは、他のクエリタイプとは異なり得る。
【0156】
ブロック1204において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリに基づいてアンカフィールドを決定するように構成されてもよい。ブロック1104の説明を参照されたい。
【0157】
ブロック1206において、様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層内の次の上位ノードを訪問するように構成され得る。ブロック1106の説明を参照されたい。
【0158】
判定ブロック1208において、様々な実施形態のうちの1つ以上において、訪問済みノードが計算ノードであり得る場合、制御は判定ブロック1218に流れることができる。そうでない場合、制御は判定ブロック1210に進んでもよい。図11に示すFIRSTクエリタイプについて説明したのと同様の理由で、計算ノードに遭遇すると、依存関係階層の上方へのトラバースを終了することができる。しかしながら、いくつかの実施形態では、連鎖メタデータクエリは、依存関係階層内の複数の分岐をトラバースすることができる。したがって、場合によっては、いくつかの実施形態では、連鎖メタデータクエリを実施している間に計算ノードに遭遇しても、第1のメタデータクエリについて上述したようにクエリ実施を終了することはできない。
【0159】
判定ブロック1210において、様々な実施形態のうちの1つ以上において、訪問済みノードがフローノードであり得る場合、制御は判定ブロック1212に進み得る。そうでない場合、制御は判定ブロック1214に進んでもよい。依存関係階層の上方へのトラバースをする間にフローノードに遭遇することは、図11に示すFIRSTクエリタイプについて説明したのと同様と見なされ得る。
【0160】
判定ブロック1212において、様々な実施形態のうちの1つ以上において、訪問済みフローノードが1つの入力を有し得る場合、制御は判定ブロック1114に進み得る。そうでない場合、制御は判定ブロック1218に進んでもよい。図11に示すFIRSTクエリタイプについて説明したのと同様の理由で、リネージエンジンは、トラバース中にマルチ入力フローノードに遭遇する可能性がある場合、依存関係階層を上方にトラバースすることを終了するように構成され得る。しかしながら、いくつかの実施形態では、連鎖メタデータクエリは、依存関係階層内の複数の分岐をトラバースすることができる。したがって、場合によっては、いくつかの実施形態では、連鎖メタデータクエリを実施している間にマルチ入力フローノードに遭遇しても、第1のメタデータクエリについて上述したようにクエリ実行を終了しないことがある。
【0161】
判定ブロック1214において、様々な実施形態のうちの1つ以上において、訪問済みノードが要求されたメタデータ情報を有する場合、制御はブロック1216に進むことができる。そうでない場合、制御は判定ブロック1218に進んでもよい。同様に、プロセス1100について上述したように、リネージエンジンは、訪問済みフィールドに関連付けられたメタデータ情報が、クエリに応答し得るメタデータ値を含むかどうかを判定するように構成され得る。
【0162】
ブロック1216において、様々な実施形態のうちの1つ以上において、リネージエンジンは、訪問済みブロックについてのメタデータ情報を決定するように構成されてもよい。プロセス1100について上述したのと同様に、リネージエンジンは、訪問済みフィールドノードからのクエリに応答し得るメタデータ値を収集するように構成され得る。しかしながら、プロセス1100とは対照的に、リネージエンジンは、クエリを満たすメタデータに関連付けられた第1のフィールドノードを発見した後にクエリを終了するのではなく、各訪問済みフィールドノードからメタデータ値を収集するように構成されてもよい。したがって、いくつかの実施形態では、依存関係階層のトラバース中に遭遇する2つ以上のフィールドノードから適格なメタデータ値を収集するように、リネージエンジンを構成することができる。
【0163】
判定ブロック1218において、様々な実施形態のうちの1つ以上において、依存関係階層のトラバースが継続すべきである場合、制御はブロック1206にループバックすることができる。そうでない場合、制御はブロック1220に進んでもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層の構成に応じて、2つ以上の分岐又は経路に沿って依存関係階層をトラバースし続けるように構成され得る。また、プロセス1100と同様に、リネージエンジンは、タイムアウト又はノードカウント制限などの1つ以上の安全/性能保護を実施するように構成することができる。プロセス1100については上記の説明を参照されたい。
【0164】
ブロック1220において、様々な実施形態のうちの1つ以上において、リネージエンジンは、クエリ結果を返すように構成されてもよい。様々な実施形態のうちの1つ以上において、リネージエンジンは、依存関係階層のトラバース中に遭遇した可能性がある連鎖メタデータ情報を提供するように構成されることができる。いくつかの実施形態では、連鎖メタデータクエリの結果は、アンカフィールドならびに依存関係階層内のその先祖の一部又は全部に関するクライアント情報を提供することができる。そうでなければ、いくつかの実施形態では、クエリ結果情報を提供することは、フィールド/データアクセス制限、ユーザ役割、クライアントタイプ、クライアントソースなどの情報セキュリティ考慮事項に基づいてメタデータクエリ結果を修正することを含む、ブロック1120について上述したのと同様であると見なされ得る。
【0165】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0166】
図13は、様々な実施形態のうちの1つ以上による、データ資産のメタデータ継承に関連付けられる情報セキュリティのためのプロセス1300のフローチャートを示す。開始ブロックの後、開始ブロック1302において、上述したように、様々な実施形態のうちの1つ以上において、リネージエンジンは、メタデータクエリの実施に基づいてメタデータクエリ結果を生成するように構成されてもよい。
【0167】
ブロック1304において、様々な実施形態のうちの1つ以上において、リネージエンジンを、メタデータクエリ結果に関連付けられた関連するセキュリティポリシを決定するように構成することができる。
【0168】
様々な実施形態のうちの1つ以上において、依存関係階層内の1つ以上のフィールド又は対応するデータオブジェクトは、リネージエンジンによって施行され得る許可又はアクセス規則に関連付けられ得る。
【0169】
様々な実施形態のうちの1つ以上において、リネージエンジンは、保護された/機密情報への不正アクセスを防止するために、1つ以上のユーザ、クライアント、データソース、データオブジェクトなどに関連付けられ得る1つ以上のセキュリティポリシを適用するように構成され得る。
【0170】
いくつかの実施形態では、リネージエンジンは、メタデータクエリ又はメタデータクエリ結果に関連付けられたセキュリティポリシを判定するように構成されてもよい。いくつかの実施形態では、リネージエンジンは、異なる組織又はデータ所有者がローカル要件又はローカル状況に合わせて調整されたグローバル又はローカルセキュリティポリシを確立することを可能にする構成情報に基づいてセキュリティポリシを決定するように構成されることができる。例えば、いくつかの実施形態では、セキュリティポリシは、クエリタイプ、データソース、データオブジェクト、クライアント、クライアントタイプ、ユーザなどを含む様々な要因に応じて異なるように構成されてもよい。したがって、いくつかの実施形態では、リネージエンジンは、ローカル状況又はローカル要件を考慮するために構成情報に基づいてセキュリティポリシを選択するために、ルール、マップ、命令などに基づいてセキュリティポリシを決定するように構成されることができる。
【0171】
様々な実施形態のうちの1つ以上において、リネージエンジンは、セキュリティポリシで定義され得る1つ以上のルール、条件、命令などを実行/評価するように構成され得る。
【0172】
ブロック1306において、様々な実施形態のうちの1つ以上において、リネージエンジンは、決定されたセキュリティポリシを考慮してメタデータクエリ結果を評価するように構成されることができる。
【0173】
判定ブロック1308において、様々な実施形態のうちの1つ以上において、セキュリティポリシ問題が決定され得る場合、制御は判定ブロック1310に流れることができる。そうでない場合、制御はブロック1314に進んでもよい。
【0174】
判定ブロック1310において、様々な実施形態のうちの1つ以上において、メタデータクエリが中止されるべきである場合、制御は呼び出しプロセスに戻されてもよい。そうでない場合、制御はブロック1312に進んでもよい。
【0175】
場合によっては、いくつかの実施形態では、セキュリティポリシは、クエリを提供したクライアントに情報又はメタデータクエリ結果が返されないように、メタデータクエリが直ちに中止又は拒否されるべきであることを示すことができる。例えば、セキュリティ違反が悪意のある行為者と関連付けられていると判定された場合、セキュリティポリシは、結果に応答するのではなく、要求が無視されたように動作することができる。
【0176】
ブロック1312において、様々な実施形態のうちの1つ以上において、リネージエンジンは、決定されたセキュリティポリシにしたがってメタデータクエリ結果を修正するように構成されることができる。いくつかの実施形態では、リネージエンジンは、メタデータ値、フィールド名、データソースなどのメタデータクエリ結果の1つ以上の部分を非表示/不明瞭にするように構成されることができる。
【0177】
例えば、いくつかの実施形態では、リネージエンジンは、制限された/保護されたフィールドに関連付けられる結果を除去し、結果内のアクセス可能なフィールドを残すように構成され得る。場合によっては、データタイプ、データソース、階層情報などの非機密情報がメタデータクエリ結果に含まれてもよく、制限された情報は除去される。
【0178】
様々な実施形態のうちの1つ以上において、初期メタデータクエリ結果の特定のフィルタリング又は難読化は、実行されている決定されたセキュリティポリシにおいて宣言されたルール、条件、命令などに依存し得る。
【0179】
ブロック1314において、様々な実施形態のうちの1つ以上において、リネージエンジンは、メタデータクエリを提供したクライアント/ユーザに修正されたメタデータクエリ結果を提供するように構成されてもよい。
【0180】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0181】
各フローチャート図の各ブロック、及び各フローチャート図のブロックの組み合わせは、コンピュータプログラム命令によって実装できることが理解されよう。これらのプログラム命令は、プロセッサ上で実装される命令が、1つ以上の各フローチャートブロックで指定された動作を実行するための手段を作成するように、機械を製造するためにプロセッサに提供され得る。コンピュータプログラム命令は、プロセッサによって実行されて、プロセッサ上で実行される命令が、1つ以上の各フローチャートブロックで指定された動作を遂行するためのステップを提供するように、一連の動作ステップをプロセッサによって実行させてコンピュータ実装プロセスを生成することができる。コンピュータプログラム命令はまた、各フローチャートのブロックに示される動作ステップの少なくともいくつかを並列に遂行させることができる。更に、ステップのいくつかは、マルチプロセッサコンピュータシステムで発生する可能性があるように、2つ以上のプロセッサにわたって遂行されてもよい。更に、各フローチャート図における1つ以上のブロック又はブロックの組み合わせはまた、本発明の範囲又は精神から逸脱することなく、他のブロック又はブロックの組み合わせと同時に、又は図示されたものとは異なる順序で遂行されてもよい。
【0182】
したがって、各フローチャート図の各ブロックは、指定された動作を遂行するための手段の組み合わせ、指定された動作を遂行するためのステップの組み合わせ、及び指定された動作を遂行するためのプログラム命令手段をサポートする。各フローチャート図の各ブロック、及び各フローチャート図のブロックの組み合わせは、指定された動作又はステップを遂行する専用ハードウェアベースシステム、又は専用ハードウェアとコンピュータ命令の組み合わせによって遂行できることも理解されよう。前述の例は、限定的又は網羅的であると解釈されるべきではなく、むしろ、本発明の様々な実施形態のうちの少なくとも1つの実施態様を示すための例示的な使用例であると解釈されるべきである。
【0183】
更に、1つ以上の実施形態(図示せず)では、例示的なフローチャートの論理は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなど、CPUの代わりに組み込みロジックハードウェアデバイスを使用して実行されてもよい。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。1つ以上の実施形態では、マイクロコントローラは、それ自体の組み込みロジックを直接実行して動作を遂行し、それ自体の内部メモリ及びそれ自体の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)などの動作を遂行するように構成されてもよい。
【0184】
図示された使用例
図14は、様々な実施形態のうちの1つ以上による、データ資産のメタデータ継承のためのクエリ1400の論理表現を示す。この例では、クエリ1400は、メタデータクエリ1402及びメタデータクエリ結果1404を含む。
【0185】
この例では、クエリタイプ「FIRST」がメタデータクエリ1402で宣言されている。この例では、このタイプのクエリは、クエリに一致する第1の継承可能メタデータを返すように構成されていると見なされ得る。この例では、メタデータクエリは、アンカフィールド「フィールドC」に対する「ディスクリプション」と名付けられたメタデータ属性を要求している。
【0186】
したがって、この例では、結果1404は、フィールドCについてのメタデータディスクリプションがフィールドBから継承され得ることを示し、これは、「フィールドC」に直接関連付けられたメタデータ「ディスクリプション」がヌルであることを示す(フィールドについて定義されていないため)。したがって、この例では、メタデータは、「BBBBB」の値を有する「フィールドB」から継承される。
【0187】
図15は、様々な実施形態のうちの1つ以上による、データ資産のメタデータ継承のためのクエリ1500の論理表現を示す。この例では、クエリ1500は、メタデータクエリ1502及びメタデータクエリ結果1504を含む。
【0188】
この例では、クエリタイプ「CHAIN」がメタデータクエリ1402で宣言されている。この例では、このタイプのクエリは、アンカフィールド「フィールドC」の先祖であり得るフィールドのメタデータを含む依存関係階層(例えば、サブツリー)の部分を返すように構成されると考えられ得る。したがって、アンカフィールド(フィールドC)の先祖であると決定され得る依存関係階層内の各フィールドに1つずつ、2つのメタデータ値が返される。
【0189】
図16は、様々な実施形態のうちの1つ以上による、メタデータ継承に関するメタデータクエリ結果1600の論理表現を示す。この例では、メタデータクエリ結果1600は、継承可能なメタデータを発見した結果を表す。したがって、この例では、メタデータ属性「ディスクリプション」は、ヌル(例えば、空)であるとして報告される。上述した例(例えば、プロセス1100)では、メタデータクエリ結果1600などのヌル結果は、計算ノード又はマルチ入力フローノードが依存関係階層内で遭遇され得る場合に生成され得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
【国際調査報告】