(57)【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサおよびシステムメモリを含むコンピュータシステムにおいて、複数の異なるアプリケーション、複数の異なるコンピュータシステム、複数の異なるコンテキスト、および複数の異なるネットワークにわたって、識別関連データへの一貫したビューおよびアクセスを提供し、連携された識別構成を使用して前記識別関連データを検索する方法であって、前記方法は、
データ構造内に第１のデータオブジェクトを作成するステップであって、前記第１のデータオブジェクトは、パーティを表し、前記第１のデータオブジェクトは、前記パーティを一義的に識別させるパーティ識別子と、前記パーティによって振る舞われるロールを識別させる複数のロール型とを含み、前記ロール型の各々は、関連するロール識別子を有する、作成するステップと、
前記連携された識別構成に前記第１のデータオブジェクトを挿入するステップと、
前記連携された識別構成内で前記パーティによって使用される第１の識別子を含む第２のデータオブジェクトを作成するステップであって、前記第２のデータオブジェクトは、前記第１のデータオブジェクトに関連する前記第１の識別子のコンテキスト内で前記パーティによって振る舞われるロールを含む、作成するステップと、
前記連携された識別構成内で前記パーティによって使用される第２の識別子を含む第３のデータオブジェクトを作成するステップであって、前記第３のデータオブジェクトは、前記第２のデータオブジェクトに関連する前記第２の識別子のコンテキスト内で前記パーティによって振る舞われるロールを含む、作成するステップと、
前記連携された識別構成に前記第２のデータオブジェクトおよび前記第３のオブジェクトを挿入するステップと、
前記第２のデータオブジェクトおよび前記第３のデータオブジェクト内に前記パーティ識別子を組み込み、前記第２のデータオブジェクトおよび前記第３のデータオブジェクトと、前記第１のデータオブジェクトを関連付け、前記パーティ識別子と、前記第１の識別子および前記第２の識別子を関連付けるステップと、
前記パーティのロールのうちの１つのコンテキストにおける前記パーティと関連する識別子を要求する、前記第１の識別子を含む要求を受信するステップと、
前記受信した要求に含まれる第１の識別子を使用して前記第２のデータオブジェクトを探し出すステップと、
前記探し出した第２のデータオブジェクトにおける前記パーティ識別子を使用して、前記第１のデータオブジェクトを探し出すステップと、
前記探し出した第１のデータオブジェクトから前記パーティの識別関連データを検索するステップと、
前記探し出した第２のデータオブジェクトにおける前記パーティ識別子を使用して前記第３のデータオブジェクトを探し出すステップと、
前記探し出した第３のデータオブジェクト内に含まれる前記第２の識別子を検索し、戻すステップと
を備えたことを特徴とする方法。
【請求項２】
さらに、任意の型の任意の２つのエンティティ間の任意の関係を表すことができる単一のスキーマを備える単一のデータ構造があることを特徴とする請求項１に記載の方法。
【請求項３】
特定の関係のインスタンスは、前記関係の型を表す型を有することを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のデータオブジェクトを作成するステップは、組織、人、グループ、サービス、および装置の中から選択されたパーティを表す第１のデータオブジェクトを作成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記パーティは、人であり、前記ロールは、顧客、基本的な居住者、従業員、プロセスロール、および一個人の中から選択されたものであることを特徴とする請求項１に記載の方法。
【請求項６】
１つまたは複数のプロセッサおよびシステムメモリを含むコンピュータシステムにおいて、複数の異なるアプリケーション、複数の異なるコンピュータシステム、複数の異なるコンテキスト、および複数の異なるネットワークにわたって、識別関連データへの一貫したビューおよびアクセスを提供し、前記識別関連データを探し出すための連携された識別構成を使用して前記識別関連データを検索する方法を前記１つまたは複数のプロセッサに実行させるコンピュータ実行可能命令を格納したコンピュータ可読記憶媒体であって、前記方法が、
単一のスキーマ内で識別キー分類に従って定義された識別キー型であって、前記単一のスキーマは、一義的に識別することができる任意のエンティティの存在を表すことができる、識別キー型と、
前記識別キー型の値を示す識別キー値であって、前記識別キー型と前記識別キー値との組み合わせは、キー識別テーブル情報内でキー識別テーブルエントリを表す、識別キー値と、
前記識別キー型と前記識別キー値との組み合わせ、およびパーティ識別テーブル情報との関係の使用を介して識別可能なパーティ識別テーブルエントリからのパーティの識別関連データの一部の要求を表すデータ値要求と
を含むパーティの識別関連データの要求を受信するステップと、
前記識別キー型と前記識別キー値との組み合わせに対応する前記キー識別テーブルエントリを探し出すステップと、
前記探し出したキー識別テーブルエントリ内の、前記識別キー型と前記識別キー値との組み合わせに関連付けられている前記パーティに対応するパーティ識別子値にアクセスするステップと、
前記アクセスされたパーティ識別子値および前記パーティ識別テーブル情報との関係に基づいて前記パーティ識別テーブル情報におけるパーティ識別テーブルエントリを参照するステップと、
前記パーティ識別テーブルエントリから前記要求に応答するパーティ識別データを検索するステップであって、前記検索するステップは、
前記パーティ識別データを含むパーティ識別テーブルエントリが存在するか否かを判定するステップと、
前記パーティ識別データを、前記パーティ識別テーブルエントリから検索するステップと
を含む、検索するステップと、
前記要求に応答して、前記パーティ識別データを戻すステップと、
を備えることを特徴とするコンピュータ可読記憶媒体。
【請求項７】
前記方法は、組織、人、グループ、サービス、および装置の中から選択されたパーティのためのパーティ識別データを検索するステップをさらに備えたことを特徴とする請求項６に記載のコンピュータ可読記憶媒体。
【請求項８】
前記方法は、顧客、基本的な居住者、従業員、プロセスロール、および一個人の中から選択されたロールを有する人のパーティ識別データを検索するステップをさらに備えたことを特徴とする請求項６に記載のコンピュータ可読記憶媒体。
【請求項９】
１つまたは複数のプロセッサおよびシステムメモリを含むコンピュータシステムにおいて、複数の異なるアプリケーション、複数の異なるコンピュータシステム、複数の異なるコンテキスト、および複数の異なるネットワークにわたって、識別関連データへの一貫したビューおよびアクセスを提供し、連携された識別構成を使用して前記識別関連データを検索する方法をプロセッサに実行させるコンピュータ実行可能命令を格納した１つまたは複数のコンピュータ可読記憶媒体であって、前記方法は、
データ構造内に第１のデータオブジェクトを作成するステップであって、前記第１のデータオブジェクトは、パーティを表し、前記第１のデータオブジェクトは、前記パーティを一義的に識別させるパーティ識別子と、前記パーティによって振る舞われるロールを識別させる複数のロール型とを含み、前記ロール型の各々は、関連するロール識別子を有する、作成するステップと、
前記連携された識別構成に前記第１のデータオブジェクトを挿入するステップと、
前記連携された識別構成内で前記パーティによって使用される第１の識別子を含む第２のデータオブジェクトを作成するステップであって、前記第２のデータオブジェクトは、前記第１のデータオブジェクトに関連する前記第１の識別子のコンテキスト内で前記パーティによって振る舞われるロールを含む、作成するステップと、
前記連携された識別構成内で前記パーティによって使用される第２の識別子を含む第３のデータオブジェクトを作成するステップであって、前記第３のデータオブジェクトは、前記第２のデータオブジェクトに関連する前記第２の識別子のコンテキスト内で前記パーティによって振る舞われるロールを含む、作成するステップと、
前記連携された識別構成に前記第２のデータオブジェクトおよび前記第３のオブジェクトを挿入するステップと、
前記第２のデータオブジェクトおよび前記第３のデータオブジェクト内に前記パーティ識別子を組み込み、前記第２のデータオブジェクトおよび前記第３のデータオブジェクトと、前記第１のデータオブジェクトを関連付け、前記パーティ識別子と、前記第１の識別子および前記第２の識別子を関連付ける行為ステップと、
前記パーティのロールのうちの１つのコンテキストにおける前記パーティと関連する識別子を要求する、前記第１の識別子を含む要求を受信するステップと、
前記受信した要求に含まれる第１の識別子を使用して前記第２のデータオブジェクトを探し出すステップと、
前記探し出した第２のデータオブジェクトにおける前記パーティ識別子を使用して、前記第１のデータオブジェクトを探し出すステップと、
前記探し出した第１のデータオブジェクトから前記パーティの識別関連データを検索するステップと、
前記探し出した第２のデータオブジェクトにおける前記パーティ識別子を使用して前記第３のデータオブジェクトを探し出すステップと、
前記探し出した第３のデータオブジェクト内に含まれる前記第２の識別子を検索し、戻すステップと
を備えたことを特徴とするコンピュータ可読記憶媒体。
【請求項１０】
前記パーティは、組織、人、グループ、サービス、および装置の中から選択されることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記パーティは、顧客、基本的な居住者、従業員、プロセスロール、および一個人の中から選択された１つはまたは複数のロールを有することを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記第１の識別子のコンテキスト内で前記パーティによって振る舞われるロールは、前記第２の識別子のコンテキスト内で前記パーティによって振る舞われるロールとは異なることを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ記憶システムにおける識別モデルに関する。
【背景技術】
【０００２】
コンピュータシステムおよび関連技術は、社会の多くの側面に影響を与える。実際に、情報を処理するコンピュータシステムの能力は、生活および仕事の様式を変えた。コンピュータシステムは、現在、一般に、コンピュータシステムの出現前は手動で行われていたたくさんのタスク（例えば、文書処理、スケジューリング、会計など）を実行する。つい最近、コンピュータシステムは、互いに、および他の電子機器と結合されて、有線および無線のコンピュータネットワークを形成しており、それを介してコンピュータシステムおよび他の電子機器が電子データを転送することができる。したがって、多くのコンピューティングタスクの実行は、異なるいくつかのコンピュータシステムおよび／または異なるいくつかのコンピューティング環境にわたって分散されている。
【０００３】
格納されたデータは、複数の異なるスケールで、複数の異なるサイトに格納することができる。例えば、パブリックネットワーク（例えば、インターネットベースのＷＷＷ）およびプライベートネットワーク（例えば、特定の社内ローカルエリアネットワーク）の両コンピュータシステムは、個人、会社、ならびに政府および民間の他の組織に関する情報に次第にアクセスできるようになってきた。この情報は、こうしたネットワークにおける単一の記憶場所または複数の記憶場所に保持することができる。さらに、多くのソフトウェアシステムは、ネットワークコンピュータおよびユーザ間の情報をいっそう共有させ、または連携させるようになっている。様々な状況、装置、およびスケールにわたって十分な情報を共有して、有用なデータへの一貫したアクセスを提供すると同時に、偶発的にまたは故意にプライベートな情報にさらされることを防ぐことは、個人にも組織にも重要である。
【０００４】
様々な機構を使用して個人および組織の信頼性をチェックするための、また、転送前や様々なコンピュータの記憶装置において情報を符号化または暗号化するための技術が存在する。しかし、これらの技術は、ある目的で個人または組織を一意に識別すると知られている方法や、個人または組織の格納された表現を一連の文字に関連付けることができる方法に依存する。こうした文字列として例えば、会社のＷＷＷドメイン名（例えばｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ）および個人用のｈｏｔｍａｉｌ．ｃｏｍによって発行された電子メールアドレス（例えばＪｏｈｎＤｏｅ＠ｈｏｔｍａｉｌ．ｃｏｍ）などがある。こうした一連の文字は、一義的な識別子として知られており、複数の一義的な識別子は、単一のエンティティを識別することができる。しかし、従来、これらの一義的な識別子は、所与のエンティティの非識別属性とまったく同じようにモデル化されるわけではない（例えば、従業員の電子メールアドレスは、従来、電子メールアドレスのテーブルにおける従業員のレコードまたは組における属性である）。
【０００５】
どのようなデータ構造が選択されようと、一義的な識別子を任意の１つのデータ構造内の属性として表すことは、単一種類の一義的な識別子を使用して異なるデータ構造におけるエンティティを識別しなければならないという事実が原因で、不十分であることがわかる。一義的な識別子が複数のデータ構造における属性として表される場合、先験的に、どのデータ構造が所与の一義的な識別子を含み得るかを知ることは不可能であり、それによってシステムは、大規模での検索機構として使用することが困難であったり、高価であったり、また実用的でなくなる場合がある。
【０００６】
コンピュータの記憶装置に一義的な識別子を格納する方法を決定する際、いくつかの問題が生じる。例えば、組織および個人を表すのに適切な方法を決定することは難しいことが多い。これは、コンピュータの記憶装置においてどのデータ構造を使用すべきかを決定することも含んでいる。
【０００７】
さらに、一義的な識別子のそれぞれは、通常、発行権限に関連付けられなければならない。しかし、個人または組織は、各々が異なる状況下で使用される複数の一義的な識別子を有している場合がある。したがって、単一の一義的な識別子は、データストアの一意の識別子として機能しない場合がある。例えば、Ｊａｎｅ  Ｓｍｉｔｈが、ｈｏｔｍａｉｌ．ｃｏｍによってＪａｎｅＳｍｉｔｈ＠ｈｏｔｍａｉｌ．ｃｏｍとして発行された電子メール、およびｗｗｗ．ｇｍａｉｌ．ｃｏｍからのＪａｎｅＳｍｉｔｈ＠ｇｍａｉｌ．ｃｏｍを有する場合、いずれの識別子も一義的ではあるが、Ｊａｎｅ個人のコンピュータシステムにおける一意の識別子ではない場合がある。
【０００８】
さらに、一義的な識別子のそれぞれは、各識別子を介してどの情報を取得してよいか、およびその情報をどのように使用してよいかを指定する特定の許可に関連付けることができる。例えば、Ｊａｎｅは、彼女の現在の雇用者に関係する身元の側面を、ｗｗｗ．Ｆａｃｅｂｏｏｋ．ｃｏｍまたはｗｗｗ．ｈｏｔｍａｉｌ．ｃｏｍによって具体化された社会的な状況に関連する身元の側面と区別したい場合がある。この場合、彼女は、彼女の従業員情報を使用して作成したリソースおよびイベントへの完全なアクセス許可を与え、一方ではｓｐａｃｅｓ．ｍｓｎ．ｃｏｍにある彼女の写真へのアクセスを指定した友人に制限し、ｗｗｗ．ｈｏｔｍａｉｌ．ｃｏｍのすべてのメールをプライベートに維持することに同意することができる。
【０００９】
さらに、個人間、組織間、および組織と個人との間の関係は、どのように識別情報が共有され、また使用されるかに影響を与える場合がある。しかし、コンピュータの記憶装置、または異なるスケールおよび異なる状況で存在する一組のコンピュータの記憶装置におけるこれらのエンティティ間の関係を表すことは、少なくとも一部分において、こうした関係を格納するために使用されるデータ形式が多様であることが原因で難しい場合がある。また、それらの関係を表すことは、こうした関係のメンバを識別するために用いられる一義的な識別子が複数あることが原因で難しい場合もある。
【００１０】
いくつかの識別情報は、ロケーションによって状況が記述される。ロケーションは、郵送先住所など従来のロケーション、ならびに動的な緯度および経度座標または静的な緯度および経度座標などの地理的存在も含む場合がある。前記のエンティティ間の関係と同様に、少なくとも一部分において、状況情報を格納するために使用されるデータ形式が多様であることが原因で、こうした状況情報を表すことが難しい場合がある。
【００１１】
さらに、識別データは、通常、識別データを使用したアプリケーションから分離される。例えば、識別データは特定のアプリケーションの状況に合わせて、異なるコンピュータの記憶装置に、異なったスケールで保持することができる。したがって、識別データもまた、通常、アプリケーションによって使用されるアプリケーションデータとは別に格納される。例えば、Ｘ．５００は、Ｘ．５００ディレクトリにアクセスするアプリケーションによって使用されるアプリケーションデータと、十分に統合されていない別々の識別ディレクトリの識別データとを分けて格納することができる。したがって、識別データのカテゴリ化や、識別データの一部分との間の関係、およびアプリケーションデータと識別データの一部分との間の関係は、通常、これらのデータ構造においてはほとんど反映されない。
【発明の概要】
【００１２】
本発明は、コンピュータ記憶システムにおけるパーティ識別をモデル化するための方法、システム、およびコンピュータプログラム製品に適用される。連携された識別構成（federated identity fabric）は、コンピュータ記憶システムにおける識別データおよび識別データの一部の関係をモデル化する。識別データおよび識別関係データは、論理的な均一のスキーマに従ってモデル化される。論理的な均一のスキーマは、一義的に識別することができる任意のエンティティの存在を表すことができる。例えば、あるコンピューティング環境におけるアプリケーションは、識別データが論理的な均一のスキーマに従ってモデル化されることにより、他のコンピューティング環境によって提供される識別データおよび識別関係データの格納、アクセス、変更、削除、およびセキュリティ保護を容易に行うことができる。
【００１３】
したがって、連携された識別構成は、様々な異なるコンピューティング環境内のコンピュータ記憶システムからの分散された識別データおよび識別関係データを連携することができる。連携された識別構成に関連付けられているコンピューティング環境におけるコードおよびメタデータは、相互に動作して、連携された識別構成内の識別データおよび識別関係データの一様な格納、アクセス、変更、削除、およびセキュリティ保護を容易にすることができる。例えば、あるコンピューティング環境におけるアプリケーションは、識別データが論理的な均一のスキーマに従ってモデル化されることにより、他のコンピューティング環境によって提供される識別データの格納、アクセス、変更、削除、およびセキュリティ保護を容易に行うことができる。
【００１４】
いくつかの実施形態において、連携された識別構成は、識別関連のデータを探し出すために使用される。第１のデータオブジェクトは、データ構造内で作成される。第１のデータオブジェクトは、データ構造内の物理的な世界またはデジタルの世界からのエンティティを表す。データ構造は、論理的な均一のスキーマを介して、一義的に識別することができる任意のエンティティの存在を表すことができる。
【００１５】
第１のデータオブジェクトは、連携された識別構成に格納される。第２のデータオブジェクトが作成される。第２のデータオブジェクトは、連携された識別構成内で使用される一義的な識別子を表す。第２のオブジェクトが連携された識別構成に挿入される。第２のデータオブジェクトは、第１のデータオブジェクトに関連付けられる。したがって、その後、第２のデータオブジェクトが使用されて、第１のデータオブジェクトを探し出すことができる。
【００１６】
一義的な識別子は、その後、第２のデータオブジェクトを探し出すためのテンプレートとして使用される。第１のデータオブジェクトと第２のデータオブジェクトとの間の関係は、次いで、一義的な識別子を使用して第２のデータオブジェクトを探し出した後、第１のデータオブジェクトを探し出すために使用される。エンティティの識別関連のデータは、第１のデータオブジェクトから検索される。
【００１７】
本発明の実施形態は、識別モデルにおいて、パーティ、ロール、人、組織、グループ、ロケーション、サービス、装置、権限、分類、および識別キーをモデル化することができる。識別モデルにおいて表されるこれらのオブジェクトの定義およびこれらの関係は、コンピュータ記憶システムにおける記憶機構を効率的に機能させるために使用することができる。識別モデルは、これらのオブジェクトを統合し、一貫して保持するための機構を提供する。
【００１８】
したがって、いくつかの実施形態において、識別キー（例えば、第２のデータオブジェクト）は、パーティの識別関連のデータ（例えば、第１のデータオブジェクト）にアクセスするために使用される。他の実施形態において、ある識別キー（例えば、第２のデータオブジェクト）は、別の識別キー（例えば、第３のデータオブジェクト）から識別関連のデータにアクセスするために使用される。
【００１９】
本概要は、下記の詳細な説明においてさらに説明されるいくつかの概念を簡単な形で紹介するために提供される。本概要は、特許請求の範囲に記載された主題の重要な特徴または重要な特徴を識別するためのものではなく、特許請求の範囲に記載された主題の範囲の画定の手助けとして使用されるためのものでもない。
【００２０】
本発明の他の特徴および利点を以下の説明に記載し、本発明の特徴および利点はその説明からある程度明らかになり、残りは本発明の実施から学びとることができるだろう。本発明の特徴および利点は、添付の特許請求の範囲で具体的に指摘した手段および組み合わせによって実現し、取得することができる。本発明のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明らかになり、または以下に記載するように本発明を実施することによって学びとることができる。
【図面の簡単な説明】
【００２１】
本発明における上記や他の利点および特徴を取得できる方法を説明するために、上記で簡単に説明した本発明について、添付の図面に示したその特定の実施形態を参照することにより、さらに詳しい説明を示す。これらの図面は、本発明の代表的な実施形態のみを示しており、したがってその範囲を限定するものとみなされるべきではないことを理解した上で、添付の図面を使用して、さらに本発明の特性および詳細を記載し、説明する。
【００２２】
【図１Ａ】コンピュータ記憶システムに格納することを目的として識別データをモデル化するために使用することができるスキーマ例を示す図である。
【図１Ｂ】コンピュータ記憶システムに格納することを目的として識別データをモデル化するために使用することができるスキーマ例を示す図である。
【図１Ｃ】コンピュータ記憶システムに格納することを目的として識別データをモデル化するために使用することができるスキーマ例を示す図である。
【図１Ｄ】コンピュータ記憶システムに格納することを目的として識別データをモデル化するために使用することができるスキーマ例を示す図である。
【図２Ａ】コンピュータ記憶システムにおける識別情報のモデル化を容易にするコンピュータアーキテクチャ例を示す図である。
【図２Ｂ】キー識別子(key identifier)からパーティ識別データ(party identity data)にアクセスするための図２Ａのコンピュータアーキテクチャの一部を示す図である。
【図２Ｃ】キー識別子(key identifier)を変換するための図２Ａのコンピュータアーキテクチャの一部を示す図である。
【図３】識別データのモデル化およびコンピュータ記憶システムからモデル化された識別データにアクセスするための方法例を示すフローチャートである。
【図４】コンピュータ記憶システムからモデル化された識別データにアクセスするための方法例を示すフローチャートである。
【発明を実施するための形態】
【００２３】
本発明は、コンピュータ記憶システムにおけるパーティ識別をモデル化するための方法、システム、およびコンピュータプログラム製品に適用される。連携された識別構成は、コンピュータ記憶システムにおける識別データおよび識別データの部分間の関係をモデル化する。識別データおよび識別関係データは、論理的な均一のスキーマに従ってモデル化される。論理的な均一のスキーマは、一義的に識別することができる任意のエンティティの存在を表すことができる。例えば、あるコンピューティング環境におけるアプリケーションは、識別データが論理的な均一のスキーマに従ってモデル化されることにより、他のコンピューティング環境によって提供される識別データおよび識別関係データの格納、アクセス、変更、削除、およびセキュリティ保護を容易に行うことができる。
【００２４】
したがって、連携された識別構成は、様々な異なるコンピューティング環境内のコンピュータ記憶システムからの分散された識別データおよび識別関係データを連携させることができる。連携された識別構成に関連付けられているコンピューティング環境におけるコードおよびメタデータは、相互に動作して、連携された識別構成内の識別データおよび識別関係データの均一な格納、アクセス、変更、削除、およびセキュリティ保護を容易にすることができる。例えば、あるコンピューティング環境におけるアプリケーションは、識別データが論理的な均一のスキーマに従ってモデル化されることにより、他のコンピューティング環境によって提供される識別データの格納、アクセス、変更、削除、およびセキュリティ保護を容易に行うことができる。
【００２５】
いくつかの実施形態において、連携された識別構成は、識別関連のデータを探し出すために使用される。第１のデータオブジェクトは、データ構造内で作成される。第１のデータオブジェクトは、データ構造内の物理的な世界またはデジタルの世界からのエンティティを表す。データ構造は、統一されたスキーマを介して、一義的に識別することができる任意のエンティティの存在を表すことができる。
【００２６】
第１のデータオブジェクトは、連携された識別構成に格納される。第２のデータオブジェクトが作成される。第２のデータオブジェクトは、連携された識別構成内で使用される一義的な識別子を表す。第２のオブジェクトが連携された識別構成に挿入される。第２のデータオブジェクトは、第１のデータオブジェクトに関連付けられる。したがって、その後、第２のデータオブジェクトが使用されて、第１のデータオブジェクトを探し出すことができる。
【００２７】
一義的な識別子は、その後、第２のデータオブジェクトを探し出すためのテンプレートとして使用される。第１のデータオブジェクトと第２のデータオブジェクトとの間の関係は、次いで、一義的な識別子を使用して第２のデータオブジェクトを探し出した後、第１のデータオブジェクトを探し出すために使用される。エンティティの識別関連のデータは、第１のデータオブジェクトから検索される。
【００２８】
本発明の実施形態は、識別モデルにおいて、パーティ、ロール、人、組織、グループ、ロケーション、サービス、装置、権限、分類、および識別キーをモデル化することができる。識別モデルにおいて表されるこれらのオブジェクトの定義およびその間の関係は、例えばデータベースサーバ（例えばＳＱＬサーバデータベース）、メモリ内データ構造など、コンピュータ記憶システムにおける記憶機構を効率的に機能させるために使用することができる。識別モデルは、これらのオブジェクトを統合し、一貫して保持するための機構を提供する。
【００２９】
したがって、いくつかの実施形態において、識別キー（例えば、第２のデータオブジェクト）は、パーティの識別関連のデータ（例えば、第１のデータオブジェクト）にアクセスするために使用される。他の実施形態において、ある識別キー（例えば、第２のデータオブジェクト）は、別の識別キー（例えば、第３のデータオブジェクト）から識別関連のデータにアクセスするために使用される。すなわち、第１のオブジェクト「Ａ」が与えられると、第２のオブジェクトは、「Ａ」の識別と見なすことができる。第３のオブジェクトは、「Ａ」の別の識別キーとすることができる。
【００３０】
本発明の実施形態は、以下でより詳しく説明するように、コンピュータハードウェアや例えば１つまたは複数のプロセッサおよびシステムメモリなどを含む専用または汎用コンピュータを含め、またはそれらのために使用することができる。また、本発明の範囲内の実施形態は、コンピュータ実行可能命令および／もしくはデータ構造を運び、または格納するための物理的なおよび他のコンピュータ可読媒体も含む。こうしたコンピュータ可読媒体は、汎用または専用のコンピュータシステムによってアクセスすることができる任意の使用可能な媒体とすることができる。コンピュータ実行可能命令を格納するコンピュータ可読媒体とは、コンピュータ記憶媒体である。コンピュータ実行可能命令を運ぶコンピュータ可読媒体とは、伝送媒体である。したがって、例として、それだけには限定されないが、本発明の実施形態は、少なくとも２つの明確に異なる種類のコンピュータ可読媒体、すなわちコンピュータ記憶媒体および伝送媒体を含めることができる。
【００３１】
コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、もしくは他の光ディスク記憶装置、磁気ディスク記憶装置、もしくは他の磁気記憶装置、またはコンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を格納するために使用することができ、汎用または専用のコンピュータによってアクセスすることができる他の任意の媒体を含む。
【００３２】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子装置の間の電子データの転送を可能にする１つまたは複数のデータリンクと定義される。情報がネットワークまたは他の通信接続（有線、無線、または有線の組み合わせもしくは無線の組み合わせ、のいずれか）を介してコンピュータに転送または提供されるとき、そのコンピュータは、当然のことながらそれらの接続を伝送媒体と見なす。伝送媒体は、コンピュータ実行可能命令またはデータ構造の形の所望のプログラムコード手段を運ぶために使用することができ、汎用または専用のコンピュータによってアクセスすることができるネットワークおよび／またはデータリンクを含めることができる。また、上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるものとする。
【００３３】
さらに、様々なコンピュータシステムコンポーネントまで考慮すると、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段を、伝送媒体からコンピュータ記憶媒体に（またはその逆に）自動的に転送することができる。例えば、ネットワークまたはデータリンクを介して受信されたコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェイスモジュール（例えば「ＮＩＣ」）内のＲＡＭに蓄積され、次いで最終的にコンピュータシステムＲＡＭおよび／またはコンピュータシステムにおける低揮発性の物理的な記憶媒体に転送される。したがって、当然のことながら、コンピュータ記憶媒体は、伝送媒体も使用する（または主に使用する）コンピュータシステムコンポーネントに含めることができる。
【００３４】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置における、ある機能または機能群を実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、アセンブリ言語またはソースコードなどの中間フォーマット命令、バイナリデータとすることができる。本主題は、構造的な特徴および／または方法動作に固有の言葉で記載されているが、当然のことながら、添付の特許請求の範囲に定義された主題が上記の特徴および動作に必ずしも限定されるわけではない。むしろ、上記の特徴および動作は、特許請求の範囲の実施形式の例として開示される。
【００３５】
当業者は、本発明がパーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、ネットワークスイッチなど、多くのタイプのコンピュータシステム機器構成を含むネットワークコンピューティング環境で実施され得ることがわかるだろう。また、本発明は、ネットワーク接続されている（有線データリンク、無線データリンクによって、または有線データリンクおよび無線データリンクの組み合わせによって、のいずれか）ローカルおよびリモートコンピュータシステムがタスクを実行する分散システム環境で実施することもできる。分散システム環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【００３６】
したがって、本発明の実施形態は、例えばＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、およびインターネットなど、ネットワークを介して互いに接続される（またはその一部である）複数のコンピュータシステムを含む。複数のコンピュータシステムの少なくとも一部におけるアプリケーションは、均一な識別モデルスキーマに従って識別データおよび識別関係データを保持することができる。したがって、識別データおよび識別関係データを様々な異なるコンピューティング環境（例えば、異なるアプリケーション、異なるコンピュータシステム、異なる状況、異なるネットワークなどのうちの１つまたは複数の環境）にわたって分散させることができる。
【００３７】
それぞれのコンピュータシステムは、メッセージ関連のデータを作成し、コンピュータネットワークを介してメッセージ関連のデータ（例えば、ＩＰ（インターネットプロトコル）データグラムおよびＩＰデータグラムを使用する他の上位層プロトコル、例えば、ＴＣＰ（伝送制御プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＳＯＡＰ（シンプルオブジェクトアクセスプロトコル）など）を交換することもできる。ネットワーク（またはシステムバス）のメッセージ交換を使用して、識別データおよび識別関係データを保持するアプリケーションは、連携された識別構成を生成するために連携することができる。識別データおよび識別関係データをモデル化する各アプリケーションは、均一な識別モデルスキーマに従ってそのように連携することにより、連携された識別構成内の集合的な識別データおよび識別関係データも均一な識別モデルスキーマに従ってモデル化される。したがって、識別データおよび識別関係データは、連携された識別構成を介して各アプリケーションにわたってデータ交換を行うことができる。
【００３８】
したがって、連携された識別構成は、様々な異なるコンピューティング環境内のコンピュータ記憶システムにわたって分散された識別データおよび識別関係データを統合することができる。連携された識別構成に関連付けられているコンピューティング環境におけるコンピュータ実行可能命令およびメタデータは、相互に動作して、連携された識別構成内の識別データおよび識別関係データの均一な格納、アクセス、変更、削除、およびセキュリティ保護を容易に行うことができる。
【００３９】
図１Ａ〜１Ｄは、コンピュータ記憶システムに格納するための識別データをモデル化するために使用することができるスキーマ例１００を示す。本スキーマは、関係を有するデジタルサブジェクトおよびリソースについての情報を表す。スキーマ１００は、様々な実装を有することができる論理的な均一のスキーマである。すなわち、様々なスキーマの実装のうちの任意のものを使用して、スキーマ例１００において関係を実現することができる。デジタルサブジェクトの様々な種類(Kinds)１０１は、異なっていながらも、多くの同じ特徴を共有することができる。本スキーマは、パーティ(Party)と呼ばれるエンティティを介して、すべてのデジタルサブジェクトの共通の側面を表す。そしてパーティ(Party)は、図１Ａに示されるように特定化することができる。例えば、図１Ａは、名前、記述、時間、期間、および第一の種類(PrimaryKind)（例えば人(Person)、組織(Organization)、グループ(Group)、ソフトウェアサービス(Software Service)、または装置(Device)）を有するパーティ(Party)の入力を示す。パーティ(Party)は、第二の種類(SecondaryKind)を有することもできる。例えば、組織(Organization)は、会社(Corporation)または政府(Government)の第二の種類(SecondaryKind)を有することができる。
【００４０】
パーティ型１０２は、組織１０７、人１０３、グループ１０４、サービス１０６ 、および装置１７１のうちの１つによって定義される。
【００４１】
図１Ａは、パーティ(Party)をモデル化するためのスキーマ１００の一部を示す。図１Ａに示すように、パーティ型１０２は、その特定化（組織、人、装置、ソフトウェアサービス、またはグループ）、１つまたは複数のパーティロケーション(Party Location)、および他のパーティ(Party)に対する１つまたは複数の関係となるように定義される。
【００４２】
パーティ(Party)は、それらの関係を有することができる。各パーティ(Party)間の関係は、１つのパーティ(Party)間の関係によって定義される。
【００４３】
各パーティロケーション(Party Location)は、１つのパーティ(Party)を位置付けることができるロケーション(Location)が示されているパーティロケーション１１１によって定義される。各パーティロケーション１１１は、１つまたは複数の親ロケーション(Location)から定義されるロケーション１１２によって定義される。各ロケーション１１２は、様々な地理的ポイント１１３によって定義される。したがって、パーティ(Party)は、複数のロケーション(Location)を位置付けてもよい。パーティ(Party)が位置付けられるロケーション(Location)ごとに、ロケーション(Location)にパーティ(Party)が関連付けられた期間を示し、かつ記録しておく必要がある、開始日および終了日などの情報が存在する。本モデルにおいて、これらの事実は、１つのロケーション(Location)に関しては１つのパーティ(Party)が関係するという事実を示すパーティロケーション型のインスタンスとして記録される。ロケーション(Location)は、緯度値および経度値など、一組の地理的座標によってさらに定義することができる。
【００４４】
人(Person)は、複数のペルソナ１０８の混合によって定義することができる。したがって、人(Person)は、複数のペルソナ(Persona)の混合である。ペルソナ(Persona)インスタンスには、ペルソナ(Persona)が関係するパーティ(Party)への参照の他に、例えば個人名、性別、および写真などの個人情報を含んでいる。これにより、ペルソナ(Persona)からパーティ(Party)への参照をたどることによって、複数のペルソナ(Persona)（場合によっては「種類(Kinds)」が異なっても）を同じ「人(Person)」パーティ(Party)の側面とする（ペルソナ(Persona)のうちの１つがデフォルトとしてマークされている）ことができる。したがって、個人の概念は、これらのペルソナ(Persona)のうちの１つまたは複数にわたる属性の集合値とすることができる。例えば、個人Ｊａｎｅ  Ｓｍｉｔｈは、異なるウェブサイトにログインする間に使用する複数のペルソナ(Persona)、異なるショッピングウェブサイトで彼女の存在について保持する複数の顧客(Customer)ロール(Role)、およびマイクロソフトでの雇用を表す従業員(Employee)ロール(Role)を所有することができる。実在する人物であるＪａｎｅ  Ｓｍｉｔｈは、パーティ(Party)の人(Person)型のインスタンスであるが、Ｊａｎｅ  Ｓｍｉｔｈの異なる一面を知りたい人は、個人の異なる側面を表すすべての型のペルソナ(Person)のすべてのインスタンスを詳細に調べることができるようにならなければならない。パーティ(Party)は、作用し、または作用を受ける可能性がある。いくつかの実施形態において、パーティ(Party)が作用を受けるためには、パーティ(Party)は少なくともその識別を提供するのに必要なだけ作用することがあり得る。
【００４５】
スキーマ１００は、ロール(Role)と呼ばれる、パーティ間の関係(PartyToPartyRelationships)の特定化を呼び出す。ロール(Role)は、所与の関係に対し、特定のパーティ(Party)の側面についての情報を定義し、追加するための方法を提供する。図１Ａは、パーティ(Party)が果たすことができるロール１０９の例、従業員１２３、顧客１２１、居住者１２２、ベンダー１２６、権限１２７、およびプロセスロール１２４を表す。パーティ(Party)の特定化は、相互に排他的とすることができるが、ロール(Role)は混合される。したがって、パーティ(Party)は、複数の異なるロール(Role)を有することができ、また頻繁に有する。
【００４６】
ロール(Role)は、ロール(Role)として振る舞うパーティ(Party)を参照するコンテキストパーティ(ContextParty)として知られる参照に加えて、ロール(Role)として「振る舞う」パーティ(Party)への参照を保持する。ロール(Role)は、開始日(StartDate)、終了日(EndDate)、および種類(Kinds)を有することができる。したがって、例えば、所与の組織(Organization)におけるある人(Person)の全職歴は、各ポジションの開始および終了時の完全な情報を保持して、同じ人(Person)とコンテキストパーティ(ContextParty)との間の一組の従業員(Employee)ロール(Role)としてモデル化することができる。同じスキーマは、複数の組織(Organization)におけるある人(Person)によって保持されるすべての職、または単一の組織(Organization)における単一の職、またはある期間にわたっていくつかの職を持ったすべての人でさえモデル化することができる。
【００４７】
同じ人(Person)を、例えば、「家庭」ペルソナ(Persona)、および「仕事」ペルソナ(Persona)など、異なる状況における異なるペルソナ(Persona)を介して表すことができる。関連のあるロール(Role)（例えば、場合によっては複数の国の居住者(Citizen)、従業員(Employee)情報など）と結合すると、ある人(Person)の多くの側面に関連する情報を表すことができる。
【００４８】
示されたパーティ(Party)型およびロール(Role)型は、連携された識別構成に関連付けられたアプリケーション間で交換することができる異なる型のパーティ(Party)およびロール(Role)のいくつかの例である。しかし、他の型のパーティ(Party)およびロール(Role)を定義することもできる。例えば、ある組織(Organization)は、別の組織(Organization)の顧客(Customer)とすることができる。同様に、ある人(Person)は、ある組織(Organization)の「メンバ」とすることができる。
【００４９】
したがって、より一般的には、パーティ(Party)は、組織(Organization)、人(Person)、グループ(Group)、ソフトウェアサービス(Software Service)、および装置(Device)と呼ばれる具体的な細かな区別立てを有する。パーティ(Party)は、その具体的な細かな区別立ての共通の属性を表し、区別立てそれぞれは、さらに固有の概念を特徴付ける特定化された属性を有している。例えば、ソフトウェアサービス(Software Service)は、ソフトウェアエージェントおよびコンピュータプログラムであるパーティ(Party)を表す。
【００５０】
図１Ｂは、ポリシ(Policy)およびリソース(Resource)をモデル化するためのスキーマ１００の一部を示す。識別スキーマの１つの機能は、分散されたポリシ格納の基礎を提供することである。ポリシ１３４ は、リソース(Resource)におけるパーティ(Party)のアクションを容易にし、制御するために使用される。一般に、リソース１３４にアクセスを提供するサービスは、ポリシ１３３を使用して、パーティ１０２がそれにアクセスすることができるかどうか、およびどのようにアクセスするかを決定する。
【００５１】
リソース(Resource)（リソース１３４によって定義される）は、多くのパーティ(Party)によって所有することができ、パーティ(Party)それぞれは、１つまたは複数のリソース(Resource)を制御することができる。パーティリソース１７２は、特定のリソース(Resource)、および特定のパーティ(Party)（パーティ１０２によって定義される）への参照を指定することによって、パーティ１０２とリソース１３４との間の関係のインスタンスを表す。特定のリソース(Resource)へのアクセスを管理するポリシ(Policy)の組は、パーティリソース１７２のインスタンスによって参照される。
【００５２】
アクセス制御中、少なくとも２つのポリシ(Policy)評価を行うことができる。第１は、リソース(Resource)に関連付けられたポリシ(Policy)にアクセスが確実に従うことである。第２は、パーティリソース(Party Resources)の関係において指定された、言い換えれば、所与のリソース(Resource)にアクセスする対象のパーティ(Party)に適用可能であるポリシ(Policy)にアクセスが確実に従うことである。
【００５３】
例えば、営業報告書(Sales Report)に関連付けられたポリシは、読み取り権限でアクセスすることができる組織(Organization)のすべてのメンバを示してもよい。営業グループのパーティ(Party)と営業報告書(Sales Report)のリソース(Resource)との間のパーティリソース(Party Resources)の関係は、「構内にいるとき書き込み許可」の追加のポリシ(Policy)を指定することができる。これらのポリシ(Policy)の組み合わせによってアクセス制御される。スキーマ１００は、ポリシ(Policy)コンポーネントの再利用を可能にするために、ポリシ関係１７３を介して指定されたように他のポリシ(Policy)からなるこれらの各ポリシ(Policy)を提供する。
【００５４】
ソフトウェアサービス１０６およびエンドポイント１７４は、リソース１３４がソフトウェアサービスエンドポイント(Software Service Endpoint)として定義できることを意味する。
【００５５】
図１Ｃは、識別キー(Identity Key)をモデル化するためのスキーマ１００の一部を示す。一般に、識別キー(Identity Key)は、一組のトークン(Tokens)に関連付けることができ、トークン(Tokens)それぞれは、ゼロまたはそれ以上の要求をサポートする。各要求は、トークン(Tokens)の運び手が特定のリソース(Resource)に対して特定のアクションを実行することができる旨の主張の符号化とすることができる。
【００５６】
図１Ｃに示されるように、パーティ(Party)（パーティ１０２によって定義される）のそれぞれの異なる型（人１０３、グループ１０４、ソフトウェアサービス１０６、組織１０７、および装置１７１）は、１つまたは複数の識別キー(Identity Key)を有することができる。識別キー(Identity Key)は、識別キー１４２によって定義され、権限(Authority)（権限１２７によって定義される）によって割り当てられ、１つまたは複数のトークン(Tokens)を含む。トークン(Tokens)は、トークン１４３によって定義され、１つまたは複数のセキュリティ要求を含めることができる。このデータの様々な部分、例えば、記述、値、および時間窓は、キーフィールド１８１で表すことができる。
【００５７】
図１Ｄは、分類をモデル化するためのスキーマ１００の一部を示す。一般に、分類エントリは、概念がどの型のものであるかを言い表すために使用することができるカテゴリである。例えば、パーティ１０２の異なる種類(Kinds)、ロール１０９の異なる種類(Kinds)、パーティ間の関係(PartyToPartyRelationships)の異なる種類(Kinds)、識別キー１４２の異なる種類(Kinds)、およびロケーション１１２の異なる種類(Kinds)がある。スキーマ１００において、分類エントリは、種類１０１と呼ばれる。例えば、一種類の識別キー(Identity Key)は、電子メールエイリアスであり得る。別の種類の識別キー(Identity Key)は、連邦政府の社会保障番号とすることができる。各識別キー(Identity Key)のカテゴリ化は、識別キー(Identity Key)のインスタンスと種類(Kinds)のインスタンスとの間の関連付けによって記録されることになる。
【００５８】
図１Ｄに示されるように、種類(Kinds)は、パーティ(Party)（パーティ１０２によって定義される）の異なる型（人１０３、グループ１０４、ソフトウェアサービス１０６、組織１０７、および装置１７１）ごとに編成することができ、識別キー(Identity Key)によって定義される１つまたは複数の識別を有することができる。種類(Kinds)は、ポリシ１３３、権限１２７、および識別キー１４２についても編成することができる。種類(Kinds)間の関係は、種類の関係(Kind Relationships)１６２によって定義される。
【００５９】
したがって、種類(Kinds)は一般に、多数支配を形成する（すなわち、各種類(Kinds)は、種類(Kinds)でもある複数の親カテゴリを有することができる）。しかし、階層的に配列された種類(Kinds)も同様に可能である（すなわち、各種類(Kinds)は、種類(Kinds)でもある１つの親カテゴリを有する）。「親」などの関連付けは、種類(Kinds)の関係として表される。種類(Kinds)の関係自体は、カテゴリ化することができ、したがって、種類(Kinds)間の関係の種類(Kinds)を表す種類(Kinds)に関連付けることもできる。
【００６０】
例えば、住所（種類(Kinds)）は、ロケーション(Location)の一種であると言うことができる。郵送先住所および請求先住所（それぞれ種類(Kinds)である）は、住所の概念より細かく区別立てされた住所の定義と見なすことができる。住所は、一方は郵送先住所から住所、他方は請求先住所から住所という、種類の関係(Kind Relationships)１６２の２つのインスタンスによって郵送先住所および請求先住所の親として記録することができる。分類の関係のこれらのインスタンスは、内容が精緻化(RefinementOf)である種類(Kinds)を参照することによって親(ParentOf)としてカテゴリ化することができる（それ自体が種類(Kinds)である構造上の関係(StructuralRelationship)の一種となるように精緻化(RefinementOf)をカテゴリ化する、さらなる種類(Kinds)の関係のインスタンスによって関連付けることができる）。
【００６１】
したがって、本発明の実施形態は、パーティ(Party)の概念およびパーティ(Party)への参照が使用されるところで使用することができる、より具体的な細かな区別立て（すなわち、人(Person)、組織(Organization)、グループ(Group)、サービス(Service)、装置(Device)、およびサービス）を使用する。パーティ(Party)は、物理的な世界またはデジタルの世界からのオブジェクトを表し、権限によって提供されるデジタルサービスを含めて、サービスの消費者および供給者の両方を表すことができる。
【００６２】
パーティ(Party)の表現は、パーティ(Party)によって振る舞うことができるロール(Role)の概念を介して深められる。こうした各ロール(Role)は、それを振る舞うパーティ(Party)を参照する。また、ロール(Role)は、それらが、例えば、ある他のパーティ(Party)を適用するある状況を参照することもできる。例えば、「従業員」は、別のパーティ(Party)（例えば組織(Organization)）に関しては、あるパーティ(Party)（例えば人(Person)）によってその役割を果たすことができるロール(Role)である。一実施形態において、人(Person)自体は、人々が、例えば、居住者(Citizen)、顧客(Customer)、従業員(Employee)、プロセスロール(Process Role)、および一個人(Private Person)の役割を果たすことができる個別のロール(Role)の混合以外の何物でもない
【００６３】
単一のパーティ(Party)は、複数の型のロール(Role)の役割を果たすことができる。例えば、ある人(Person)は従業員(Employee)および居住者(Citizen)とすることができる（異なる型のロール(Role)）。また、１つのパーティ(Party)は、同じ型の複数のロール(Role)にあってもよい。例えば、ある人(Person)は、異なる組織(Organization)ごとの２つの従業員の役割を果たすことができる。１つのパーティ(Party)は、同じ状況において、しかし異なる、場合によっては重なる期間において同じ型のロール(Role)にあってもよい。パーティ(Party)は通常、異なる型のパーティ(Party)間の関係をサポートする（例えば、「の友人」、部下、上司など）。
【００６４】
パーティ(Party)およびパーティ(Party)が果たす個別の役割のそれぞれは、例えば電子メールアドレス、連邦政府の識別子、従業員番号など、いくつかの異なる方法において一意に識別することができる。本発明の実施形態は、識別キーデータ型により一意の識別子を表すことを含む。識別キーデータ型は、例えば既知の権限（それ自体は、何らかのパーティ(Party)によって果たされる役割）によって発行される個々のパーティ(Party)の安全な識別（セキュリティの特徴は可変）を意味する。
【００６５】
識別キー(Identity Key)は、所与の型の一意の値を介して区別することができ、関連のパーティ(Party)を参照することができる。１つの利点は、任意の他の識別キー(Identity Key)の提示、ならびに効率的に取得された関連のパーティ(Party)および関連付けられたロール(Role)への参照を介して、任意の所与の型の識別キー(Identity Key)を効率的に探し出すことができることである。したがって、識別キー(Identity Key)の使用は、例えば個人データへのアクセスの許可など、デジタル技術のカスタム化を可能にする。
【００６６】
本発明の実施形態も、ロケーション(Location)の型を使用して、パーティ(Party)を探し出すことができる異なる種類(Kinds)の物理的なおよび仮想の場所をサポートする。ロケーション(Location)は、（住所などの場合）テキストフィールドを使用して、または地理的座標を使用して表すことができる。パーティ(Party)、ロケーション(Location)、および識別キー(Identity Key)は、多数存在し、非常に異なる種類のものとすることができるため、種類(Kinds)として上述した分類機構は、それぞれの変化する型を定義および記録するために使用することができる。上述したように、種類(Kinds)は、多数支配的または階層的とすることができ、それ自体、分類することができる（すなわち、種類(Kinds)の種類(Kinds)とすることができる）。
【００６７】
異なる型のパーティ(Party)およびロケーション(Location)の使用は、異なる型の識別キー(Identity Key)および異なる型のパーティ(Party)間の関係と提携して、例えば世界規模で情報を表すことが必要である多数のコンピュータの範囲にわたって極めて多数のパーティ(Party)に関連する情報を分配することに関連する利益を提供する。これらの利益は、比較的大きい（および可能性として大規模な）オブジェクト空間内での場所の探索、および最も重要な、こうした空間にわたる参照を介した関係の表現を容易にする。
【００６８】
上記で定義されたデータ構造および機構は、ディスク上およびメモリ内にデータベースを含む多くの異なる種類のコンピュータストレージにおいて効率的に実装することができる。コンピュータストレージは、論理的に集中型リポジトリ(centralized repository)を表すために使用することができる。連携された識別構成は、識別データが複数の異なるコンピューティング環境にわたって分散されるときに、論理的に集中型リポジトリを表すことができる。異なるコンピューティング環境におけるコンピュータシステムは、連携された識別構成を構成するためのコンピュータ実行可能命令およびメタデータを含めることができる。したがって、コンピュータシステムにおけるコンピュータ実行可能命令およびメタデータは、相互に動作して、連携された識別構成を構成し、集中型リポジトリをコンピュータシステムに反映させることができる。
【００６９】
集中型リポジトリは、スキーマ１００の様々なデータモデルに従ってデータ構造および機構（例えば、アプリケーションおよびサービス）を格納することができる。したがって、集中型リポジトリに構築され、および／または統合されたアプリケーションおよびサービスは、様々なデータモデルに従ってデータを処理するように構成することができる。結果として、アプリケーションおよびサービスは、例えば識別関連のデータなどオブジェクト中心のデータを互いに共有することができる。
【００７０】
本発明の実施形態は、様々な異なる視点から、様々な状況、装置、およびスケールにわたって、情報への一貫したアクセスも提供する。例えば、個人は、インドに旅行中、携帯電話を使用して、無線インターネット接続を介して、または米国のオフィスでデスクトップコンピュータシステムを使用して会社のＬＡＮ接続を介して、各自の情報に一貫してアクセスすることができる。こうした通信を処理するサービスおよびアプリケーションは、スキーマ１００の様々なデータモデルに従って定義された識別関連のデータを処理するための、組み込みのコンピュータ実行可能命令およびメタデータを持つことができる。したがって、スケール、装置、および状況にわたってナビゲートする機能性は、連携された（例えば、論理的に統合された）識別構成内にコンポーネントとして含めることができる。
【００７１】
本発明の実施形態は、レプリケーション、ならびにレプリケーションおよびレプリケーションを容易にするメタデータを使いこなすために使用される同じデータ構造を用いるデータのキャッシングを介して情報へのアクセスを提供する。レプリケーションおよびキャッシングは、インターネットを含めたネットワークのどこかに格納されている情報にアクセスするために、リアルタイムで遠隔通信システムを使用する効率的な代替手段を提供する。例えば、Ｊａｎｅ  Ｄｏｅに関連するパーティ(Party)の識別情報は、パーティ(Party)間の関係、識別キー(Identity Key)、ロケーション(Location)情報などを含めて、その携帯電話の方に向けられて、どこかで使用されるのと同じ論理構造において、複製することができる。したがって、携帯電話上のアプリケーションは、中心の位置との通信が難しいまたは高価なときでさえ、識別データを効率的に処理することもできる。さらに、彼女が携帯する情報の混合は、他のデータストアに存在しているものよりも、異なる情報オブジェクトの共同の場所(co-location)を表すことができる（すなわち、異なる装置および装置の組は、共有情報オブジェクトの異なるグループ分けを含めることができる）。
【００７２】
図２Ａは、コンピュータ記憶システムにおける識別情報のモデル化を容易にするコンピュータの基本設計概念２００の例を示す。コンピュータの基本設計概念２００に示されるように、コンピュータシステム２０１、２０２、２１３、および２１４が連携された識別構成２０７に接続される。コンピュータシステム２０１、２０２、２１３、２１４のそれぞれは、連携された識別構成２０７を構成し、それに関連付けるためのコンピュータ実行可能命令およびメタデータを有するアプリケーションを含めることができる。例えば、コンピュータシステム２０１、２０２、２１３、２１４のそれぞれは、コンピュータシステム２０１、２０２、２１３、および２１４のそれぞれにおける他のアプリケーションに対して識別データの集中型リポジトリとして、連携された識別構成１０７を提示するためのコンピュータ実行可能命令およびメタデータを有するアプリケーションを含めることができる。コンピュータシステム２０１、２０２、２１３、および２１４のそれぞれは、連携された識別構成２０７と相互に動作して、連携された識別構成２０７内で、識別データおよび識別関係データの均一な格納、アクセス、変更、削除、およびセキュリティ保護を容易にするためのコンピュータ実行可能命令およびメタデータを有するアプリケーションを含めることもできる。
【００７３】
例えば、コンピュータシステム２０１は、キー識別テーブル２０１Ｋ、およびパーティ識別テーブル２０１Ｐを例えばディスク上やシステムメモリ内においてローカルに保持することができる。キー識別テーブル２０１Ｋは、図１Ｃにおけるモデルに従って定義される１つまたは複数のキー識別エントリを含めることができる。例えば、エントリ２１１Ｋは、キー型２３１（例えば電子メールエイリアス）、キーＩＤ値（例えばｊｄｏｅ＠ｔｅｓｔ．ｃｏｍ）、パーティＩＤ２３３（ｊｄｏｅ＠ｔｅｓｔ．ｃｏｍの電子メールエイリアスを有する人に対応するＩＤ）、およびオプションでロールＩＤ２３４（ｊｄｏｅ＠ｔｅｓｔ．ｃｏｍの電子メールエイリアスの代わりを務めるパーティＩＤ２３３によって識別される人(Person)のロール(Role)に対応するＩＤ）を含む。
【００７４】
パーティ識別テーブル２０１Ｐは、図１Ａにおけるモデルに従って定義される１つまたは複数のパーティ識別エントリを含めることができる。例えば、エントリ２１１Ｐは、パーティ型２３５（組織(Organization)、人(Person)、グループ(Group)、サービス(Service)、および装置(Device)から選択されたパーティ(Party)の型）、パーティＩＤ値２３６（パーティ型のＩＤ値）、ロール型２３７（例えば顧客(Customer)、基本的な居住者(Basic Citizen)、従業員(Customer)、プロセスロール(Process Role)、一個人(Private Person)、権限(Authority)など、パーティ型のために定義されたものが提供しているロール(Role)の型）、およびロールＩＤ値（ロール型のＩＤ値）を含む。エントリ２１１Ｐは、１つまたは複数のロケーション(Location)およびパーティ(Party)間の関係を適宜含めることもできる。エントリ２１１Ｐは、識別データ値２３９も含む。識別データ値２３９は、例えば表示名など、パーティ(Party)のデータを表す。識別データ値２３９は、パーティ(Party)に関連付けられた任意のデータを含めることができ、および／またはパーティ(Party)の識別キー(Identity Key)で表される場合もある。例えば、パーティ(Party)の電話番号は、識別キー(Identity Key)において使用することはできるが、識別データ値２３９に含まれていてもよい。
【００７５】
コンピュータシステム２０１におけるアプリケーションは、キー識別テーブル２０１Ｋおよびパーティ識別テーブル２０１Ｐを連携された識別構成２０７に添付することもできる。
【００７６】
コンピュータシステム２０２における類似のアプリケーションは、キー識別テーブル２０２Ｋおよびパーティ識別テーブル２０２Ｐを連携された識別構成２０７に添付することができる。示したように、キー識別テーブル２０２Ｋは、キー型２４１、キーＩＤ値２４２、パーティＩＤ値２３３、およびオプションでロールＩＤ２３４を含むエントリ２１２Ｋを含む。エントリ２１２Ｋは、パーティＩＤ２３３、および可能性としてロールＩＤ２３４を含むため、エントリ２１２Ｋは、キー型２３１に関連付けられる同じパーティ(Party)に対応する異なる型のキーを指し示すことができる（すなわち、パーティＩＤ値２３３、および／またはロールＩＤ２３４はエントリ２１１Ｋおよび２１２Ｋをつなげる）。
【００７７】
同じく示されるように、パーティ識別テーブル２０２Ｐは、パーティ型２４５、パーティＩＤ値２３３、ロール型２４６、ロールＩＤ２３４、他のフィールド、および識別データ値２４９を含むエントリ２１２Ｐを含む。エントリ２１２Ｐは、パーティＩＤ２３３、および可能性としてロールＩＤ２３４を含むため、パーティＩＤ値２３３および／またはロール２３４に関連付けられたキーエントリは、識別データ値２４９を探し出すために使用することができる。
【００７８】
他のコンピュータシステムにおける類似のアプリケーション（例えば、可能性としてコンピュータシステム２１３および２１４）は、キー識別テーブル２０３Ｋおよび２０４Ｋ、およびパーティ識別テーブル２０６Ｐを、連携された識別構成２０７に添付することができる。
【００７９】
コンピュータシステム２０１におけるアプリケーションは、コンピュータシステム２０１における他のアプリケーション（例えばアプリケーション２０８）に対して、集中型リポジトリとして連携された識別構成２０７を提示することもできる。したがって、コンピュータシステム２０１におけるアプリケーションは、キー識別テーブル２０１Ｋ、２０２Ｋ、２０３Ｋ、および２０４Ｋをキー識別テーブル２６１として集合的に見なすことができる。同様に、コンピュータシステム２０１におけるアプリケーションは、パーティ識別テーブル２１１Ｐ、２１２Ｐ、および２０６Ｐをパーティ識別テーブル情報２６２として集合的に見なすことができる。コンピュータシステム２０２、２１３、および２１４は、類似した機能性を提供するアプリケーションを有することができる。したがって、コンピュータシステム２０１、２０２、２１３、および２１４のうちの任意のコンピュータシステムにおけるアプリケーションは、スキーマ１００における定義に従って、連携された識別構成２０７内で識別データおよび識別関係データのアクセス、変更、削除を安全に行うことができる。
【００８０】
図３は、コンピュータ記憶システムからの識別データをモデル化し、モデル化された識別データにアクセスするための方法例のフローチャートを示す。方法３００は、図２Ａにおけるコンポーネントおよびデータ、およびスキーマ１００における定義に関して説明する。
【００８１】
方法３００は、データ構造内に第１のデータオブジェクトを作成する行為を含み、第１のデータオブジェクトはデータ構造内で物理的な世界またはデジタルの世界からのエンティティを表し、データ構造は論理的な均一のスキーマを介して、一義的に識別することができる任意のエンティティの存在を表すことができる（行為３０１）。例えば、コンピュータシステム２０２は、パーティ識別テーブル２０２Ｐにおいてエントリ２１２Ｐを作成することができる。エントリ２１２Ｐは、図１Ａにおけるデータモデルに従って組織を表すことができる。方法３００は、連携された識別構成に第１のデータオブジェクトを挿入する行為（行為３０２）を含む。例えば、コンピュータシステム２０２は、エントリ２１２Ｐを連携された識別構成２０７内に添付することができる。
【００８２】
方法３００は、連携された識別構成内で使用される一義的な識別子の表現を含む第２のデータオブジェクトを作成する行為（行為３０３）を含む。例えば、コンピュータシステム２０２は、エントリ２１２Ｋを作成することができる。エントリ２１２Ｋの様々な特徴、例えば、フィールド値の組み合わせなどは、連携された識別構成２０７内でエントリ２１２Ｋについての一義的な識別子を表すために使用することができる。方法２００は、第２のデータオブジェクトを連携された識別構成に挿入する行為（行為３０４）を含む。例えば、コンピュータシステム２０２は、エントリ２１２Ｋを連携された識別構成２０７内に添付することができる。
【００８３】
方法３００は、第２のデータオブジェクトをその後第１のデータオブジェクトを探し出すために使用できるように、第２のデータオブジェクトを第１のデータオブジェクトに関連付ける行為（行為３０５）を含む。２つの異なるエントリに同じ値を含めることは、互いにエントリを関連付けるために使用することができる。例えば、エントリ２１２Ｋおよびエントリ２１２ＰにおけるパーティＩＤ値２３３への参照は、エントリ２１２Ｋおよび２１２Ｐを互いに関連付ける。したがって、エントリ２１２Ｋは、エントリ２１２Ｐを探し出すために使用することができる（可能性として逆も同様）。
【００８４】
方法３００は、関係を介して第１のオブジェクトから識別関連のデータにアクセスするための機能的な結果指向のステップを含む（ステップ３０９）。ステップ３０９は、関係を介した第１のオブジェクトからの識別関連のデータへのアクセスの結果を得るための任意の対応する行為を実質的に含めることができる。しかし、方法３００において、ステップ３０９は、その後、一義的な識別を第２のデータオブジェクトを探し出すためのテンプレートとして使用する対応する行為（行為３０６）を含む。例えば、アプリケーション２０８はクエリ２２１を、連携された識別構成２０７に送信することができる。クエリ２２１は、エントリ２１２Ｋのための一義的な識別子を含めることができる。連携された識別構成２０７は、アプリケーション２０８からクエリ２２１を受信することができる。連携された識別構成２０７は、一義的な識別子を使用して、エントリ２１２Ｋを探し出すことができる。
【００８５】
方法３００において、ステップ３０９は、一義的な識別子を使用して第２のデータオブジェクトを探し出した後、第１のデータオブジェクトと第２のデータオブジェクトとの間の関係を使用して、第１のオブジェクトを探し出す行為（行為３０７）も含む。例えば、連携された識別構成２０７は、一義的な識別子を使用してエントリ２１２Ｋを探し出した後、エントリ２１２Ｋ（例えばパーティＩＤ値２３３）からのフィールド値を使用して、エントリ２１２Ｐを探し出すことができる。
【００８６】
方法３００において、ステップ３０９は、第１のデータオブジェクトからエンティティの識別関連のデータを検索する行為（行為３０８）も含む。例えば、連携された識別構成２０７は、エントリ２１２Ｐから識別関連のデータを検索することができる。識別関連のデータは、任意の種類のパーティ(Party)に対する一般的な情報、探し出された特定の種類のパーティ(Party)のスキーマを使用して格納される情報、任意の他の型の任意の他のパーティ(Party)に対するパーティ(Party)の関係についての情報、または同じパーティ(Party)に関連する代替の一義的な識別子についての情報を含めることができる。
【００８７】
図４に、関係を介して第１のオブジェクトから識別関係データへのアクセスの結果を得るために使用することができる対応する行為（すなわちステップ３０９）の別の例が示される。図４は、コンピュータ記憶システムからのモデル化された識別データにアクセスするための方法４００の例のフローチャートを示す。図２Ｂは、キー識別子(key identifier)からパーティ識別データ(party identity data)にアクセスするためのコンピュータアーキテクチャ２００の一部を示す。方法４００は、図２Ａおよび２Ｂにおけるコンポーネントおよびデータに関して説明する。
【００８８】
方法４００は、パーティ(Party)の識別関連のデータ(identity related data)の要求を受信する行為（行為４０１）を含む。例えば、図２Ｂを参照すると、連携された識別構成２０７はクエリ２２１を受信することができる。要求は、単一のスキーマ内で識別キー分類に従って定義される識別キー型を含めることができる。単一のスキーマは、一義的に識別することができる任意のエンティティの存在を表すことができる。要求は、識別キー型の値を意味する識別キー値も含めることができる。キー識別テーブル情報内のエントリを（一義的に）表す識別キー型と識別キー値との組み合わせ。例えば、図２Ｂに示すように、クエリ２２１は、キー型２３１およびキーＩＤ値２３２を含む。図２Ａに戻って簡単に参照すると、キー型２３１とキーＩＤ値２３２との組み合わせは、キー識別テーブル情報２６１内でエントリ２１１Ｋを一義的に表す（またはそのための一義的な識別子である）。
【００８９】
要求は、データ要求を含めることもできる。データ要求は、識別キー型と識別キー値との組み合わせおよび他の識別テーブル情報との関係の使用を介して識別関連のデータの一部の要求を表す。いくつかの実施形態において、要求は、データ値要求である。データ値要求は、識別キー型と識別キー値との組み合わせおよびパーティ識別テーブル情報に対する関係の使用を介して識別可能なパーティテーブルエントリからのパーティ(Party)関連の識別データの一部の要求を表す。
【００９０】
例えば、図２Ｂに示すように、クエリ２２１は、データ値要求２５１を含む。データ値要求２５１は、識別キー型２３１と識別キー値２３２との組み合わせおよびパーティ識別テーブル情報２６２との関係の使用を介して識別可能なパーティテーブルエントリからのパーティ関連の識別データ(party related identity data)の一部の要求を表す。
【００９１】
方法４００は、識別キー型と識別キー値との組み合わせに対応するキー識別テーブル情報内のキー識別テーブルエントリを探し出す行為（行為４０２）を含む。例えば、連携された識別構成２０７は、キー型２３１とキーＩＤ値２３２との組み合わせに対応するキー識別テーブル情報２６２内のエントリ２１１Ｋを探し出すことができる。方法４００は、キー識別テーブルエントリから、識別キーに関連付けられたパーティ(Party)に対応するパーティ識別子値(party identifier value)にアクセスする行為（行為４０３）を含む。例えば、連携された識別構成２０７は、エントリ２１１ＫからパーティＩＤ値２３３にアクセスすることができる。
【００９２】
方法４００は、アクセスされたパーティ識別子(party identifier)およびパーティ識別子(party identifier value)に対する関係に基づいて、他のテーブル情報におけるエントリを参照する行為（行為４０４）を含む。例えば、連携された識別構成２０７は、エントリ２１１Ｋおよびエントリ２１２Ｐの両方に含まれるパーティＩＤ値２３３に基づいて（パーティ識別テーブル２０２Ｐにおける）エントリ２１２Ｐを参照することができる。
【００９３】
方法４００は、他のテーブルにおけるエントリからデータ要求に応答する識別データを検索する行為（行為４０５）を含む。例えば、連携された識別構成４０５は、エントリ２１２Ｐから識別データ値２４９（例えば表示名）を検索することができる。識別データ値２４９は、データ値要求２５１に応答することができる。方法４００は、受信された要求に応答おいて識別データを戻す行為（行為４０６）を含む。例えば、連携された識別構成２０７は、クエリ２２１への応答において、データ値２４９を含む結果２２２を戻す（例えば、アプリケーション２０８に戻す）ことができる。
【００９４】
あるいは、データ要求は、キー型要求である。本発明の実施形態は、キー型要求に対して方法４００を実施するステップを含む。キー型要求は、パーティ(Party)に関連付けられている第２の識別キー型の対応するキー値の要求を表す。第２の識別キー型も、単一のスキーマ内で識別キー分類に従って定義される。例えば、これから図２Ｃを参照すると、キー型２３１は、電子メールエイリアスのキー型とすることができ、キーＩＤ値２３２は、ｊｄｏｅ＠ｔｅｓｔ．ｏｒｇとすることができる。さらに、クエリ２２１は、キー型要求２７１を含む。キー型要求２７１は、キー識別テーブル情報２６１内のキー型２４１のキー識別エントリの要求を表す。キー型２４１も、スキーマ１００に従って定義される。キー型２４１は、電話番号のキー型とすることができる。したがって、クエリ２２１は、電子メールエイリアスｊｄｏｅ＠ｔｅｓｔ．ｏｒｇを有するパーティの電話番号の要求とすることができる。
【００９５】
連携された識別構成２０７は、次いでキー識別テーブル情報２６２内の、キー型２３１とキーＩＤ値２３２との組み合わせに対応するエントリ２２１Ｋを探し出すことができる。すなわち、連携された識別構成２０７は、ｊｄｏｅ＠ｔｅｓｔ．ｏｒｇの値を有する電子メールエイリアスのキーエントリを探し出す。連携された識別構成２０７は、次いでエントリ２１１ＫからパーティＩＤ値２３３にアクセスすることができる。パーティＩＤ値２３３は、電子メールエイリアスｊｄｏｅ＠ｔｅｓｔ．ｏｒｇを有するパーティのＩＤ値を表す。
【００９６】
次いで連携された識別構成２０７は、エントリ２１２Ｋを探し出すためにキー識別テーブル情報２６１を参照することができる。エントリ２１２Ｋは、キー型２４１のものであり、パーティ識別子２３３を含む。すなわち、エントリ２１２Ｋは、電子メールエイリアスｊｄｏｅ＠ｔｅｓｔ．ｏｒｇを有するパーティの電話番号の識別キーである。連携された識別構成２０７は、次いでエントリ２１２ＫからキーＩＤ値２４２（例えば電話番号）を検索することができる。連携された識別構成２０７は、クエリ２２１への応答において、キーＩＤ値２４２を含む結果２２２を戻す（例えば、アプリケーション１０８に戻す）ことができる。
【００９７】
したがって、本発明の実施形態は、識別キーテーブルエントリを使用してパーティ識別データを探し出すこと（例えば図２Ｂに示すように）、および異なる型の識別キーの間のキー変換を実行すること（例えば図２Ｃに示すように）を含む。より一般的には、１つのデータオブジェクト（例えば第２のデータオブジェクト）は、別のデータオブジェクト（例えば第１のデータオブジェクト）への転送または別のデータオブジェクトからの間接の均一に構成されたポイントとすることができる。すなわち、１つのデータオブジェクトは、他のデータオブジェクトの一義的な識別を提供するように構成することができる（例えば、一方のオブジェクトと他方のオブジェクトとの間の構成された関係を介して）。したがって、一義的に識別可能ではない場合がある既存のオブジェクトは、それにもかかわらず、一義的に識別可能な別の関連のオブジェクトの使用を介して、一義的に識別することができる。
【００９８】
本発明は、その意図または本質的な特徴から逸脱することなく他の特定の形で具体化することができる。記載した実施形態は、あらゆる点で例示的なものにすぎず、制限的なものと見なされないものとする。したがって、本発明の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示されている。特許請求の範囲と同等の意味および範囲内に含まれるすべての変更は、それらの範囲内に含まれるものとする。
【図１Ａ】
0005701764.tif 000002
【図１Ｂ】
0005701764.tif 000003
【図１Ｃ】
0005701764.tif 000004
【図１Ｄ】
0005701764.tif 000005
【図２Ａ】
0005701764.tif 000006
【図２Ｂ】
0005701764.tif 000007
【図２Ｃ】
0005701764.tif 000008
【図３】
0005701764.tif 000009
【図４】
0005701764.tif 000010