(57)【要約】  データベース内の情報をカプセル化する方法において、メッセージをデータベース内の複数のオブジェクトクラスエントリに分けることができる。複数のオブジェクトクラスエントリのそれぞれは、データベース内で所与の階層を有する複数のオブジェクトクラスからの１つのオブジェクトクラスの一部を構成することができる。１つ又は複数のポインタを生成することができ、当該ポインタは、複数のオブジェクトクラスエントリのうちの少なくとも１つを指す。複数のオブジェクトクラスエントリをデータベース内の隣接しない記憶ロケーションに記憶することができ、複数のオブジェクトクラスエントリのうちの少なくとも１つは、生成された少なくとも１つのポインタに関連して記憶され、それによって、少なくとも１つのポインタは、オブジェクトクラス階層により決まるように、当該ポインタに関連して記憶される少なくとも１つのオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す。【選択図】  図１
2009500733.tif 000002
【特許請求の範囲】
【請求項１】
データベース内の情報をカプセル化する方法であって、
メッセージを前記データベース内の複数のオブジェクトクラスエントリに分けることであって、前記複数のオブジェクトクラスエントリのそれぞれは、前記データベース内で所与の階層を有する複数のオブジェクトクラスからの１つのオブジェクトクラスの一部を構成すること、
前記複数のオブジェクトクラスエントリのうちの少なくとも１つへの少なくとも１つのポインタを生成すること、及び
前記複数のオブジェクトクラスエントリを前記データベース内の隣接しない記憶ロケーションに記憶することであって、前記複数のオブジェクトクラスエントリのうちの少なくとも１つは、前記生成された少なくとも１つのポインタに関連して記憶され、それによって、該少なくとも１つのポインタは、前記オブジェクトクラス階層により決まるように、該少なくとも１つのポインタに関連して記憶される前記少なくとも１つのオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指すこと
を含む、データベース内の情報をカプセル化する方法。
【請求項２】
前記メッセージを前記データベース内の所与の記憶ロケーションに記憶すること、又は前記データベースから記憶されているメッセージを引き出すことを要求する情報記憶要求を通信システム内の通信エンティティから受信することをさらに含む、請求項１に記載のデータベース内の情報をカプセル化する方法。
【請求項３】
前記データベース内の前記メッセージの分割を始める前、又は記憶されているメッセージの検索を始める前に、前記通信エンティティ及び情報記憶要求を認可することをさらに含む、請求項２に記載のデータベース内の情報をカプセル化する方法。
【請求項４】
前記認可することは、
前記通信エンティティを認証すること、及び
前記通信エンティティが、要求される前記記憶ロケーションに情報を記憶するため、又は所与の記憶ロケーションから情報を抽出するために要求される特権を有しているか否かを判断すること、又は（else）
前記通信エンティティに前記要求される特権が認められていない、又は前記エンティティが前記要求された特権を有していない場合、前記情報記憶要求を無視すること
を含む、請求項３に記載のデータベース内の情報をカプセル化する方法。
【請求項５】
前記分けることは、前記メッセージを、該メッセージの組織ソース、該メッセージの前記送信者、送信されたメッセージの種類、及び該メッセージ内の前記内容に関連するオブジェクトクラス内の複数の階層オブジェクトクラスエントリに分けることをさらに含む、請求項１に記載のデータベース内の情報をカプセル化する方法。
【請求項６】
前記オブジェクトクラスの最上位から最下位への階層順は組織、送信者、メッセージの種類、及び内容であり、
前記送信者のオブジェクトクラス、前記メッセージの種類のオブジェクトクラス、及び前記内容のオブジェクトクラスに記憶されるオブジェクトクラスエントリは、対応する１つ上位の組織のオブジェクトクラス、送信者のオブジェクトクラス、及びメッセージの種類のオブジェクトクラスを指すポインタを含む、請求項５に記載のデータベース内の情報をカプセル化する方法。
【請求項７】
Ｎ個のオブジェクトクラス及びＮ−１個のポインタがある、請求項１に記載のデータベース内の情報をカプセル化する方法。
【請求項８】
前記少なくとも１つのポインタを生成することは、ポインタ鍵アルゴリズムを実行することであって、それにより、Ｎ−１個のオブジェクトクラスに関連して記憶され、関連する上位オブジェクトクラスを識別するように構成される前記Ｎ−１個のポインタを生成することを含む、請求項７に記載のデータベース内の情報をカプセル化する方法。
【請求項９】
所与のポインタは、前記データベース内の所与のポインタに関連して記憶される所与のオブジェクトクラスエントリよりも上位の１つ又は複数のオブジェクトクラスエントリの方向においてのみ指す、請求項１に記載のデータベース内の情報をカプセル化する方法。
【請求項１０】
通信システム内で使用されるカプセル化データベースであって、
前記システム内の所与の通信エンティティから受信する受信メッセージ内の所与のフィールドに対応する複数のオブジェクトクラスエントリであって、前記メッセージは、フィールドが対応するオブジェクトクラスエントリに専用であるように分けられており、各オブジェクトクラスエントリは、所与の階層を有するオブジェクトクラスのうちの所与のオブジェクトクラスの一部を構成する、複数のオブジェクトクラスエントリと、
それぞれが前記オブジェクトクラスエントリのうちの１つ又は複数を指す、複数のポインタと、
複数の記憶ロケーションであって、前記メッセージの前記フィールドに対応する前記複数のオブジェクトクラスエントリのそれぞれが、隣接しない記憶ロケーションに記憶され、所与のオブジェクトクラスエントリが所与のポインタに関連して記憶され、それによって、前記所与のポインタは、前記オブジェクトクラス階層により決まるように、関連して記憶されている前記所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す、複数の記憶ロケーションと
を備える、通信システム内で使用されるカプセル化データベース。
【請求項１１】
前記メッセージは、該メッセージの組織ソース、該メッセージの送信者、送信されたメッセージの種類、及び該メッセージ内の内容に関連するオブジェクトクラスの複数の階層オブジェクトクラスエントリに分けられる、請求項１０に記載の通信システム内で使用されるカプセル化データベース。
【請求項１２】
前記オブジェクトクラスの最上位から最下位への階層順は組織、送信者、メッセージの種類、及び内容であり、
前記送信者のオブジェクトクラス、前記メッセージの種類のオブジェクトクラス、及び前記内容のオブジェクトクラスに記憶されるオブジェクトクラスエントリは、対応する１つ上位の組織のオブジェクトクラス、送信者のオブジェクトクラス、及びメッセージの種類のオブジェクトクラスを指すポインタを含む、請求項１１に記載の方法。
【請求項１３】
Ｎ個のオブジェクトクラス及びＮ−１個のポインタがある、請求項１０に記載の通信システム内で使用されるカプセル化データベース。
【請求項１４】
ポインタ鍵アルゴリズムを実行して、Ｎ−１個のオブジェクトクラスに関連して記憶され、関連する上位オブジェクトクラスを識別するように構成される前記Ｎ−１個のポインタを生成する請求項１３に記載の通信システム内で使用されるカプセル化データベース。
【請求項１５】
所与のポインタは、前記データベース内の所与のポインタに関連して記憶される所与のオブジェクトクラスエントリよりも上位の１つ又は複数のオブジェクトクラスエントリの方向においてのみ指す、請求項１０に記載の通信システム内で使用されるカプセル化データベース。
【請求項１６】
通信システムであって、
複数のユーザと、
請求項１０に記載のようにそれぞれ構成される複数のカプセル化データベースと、
前記カプセル化データベースのうちの１つにログオンしているすべてのユーザのカプセル化データベース関連付けを保持する発見サーバと
を備え、
前記ユーザ、前記カプセル化データベース、及び前記発見サーバのそれぞれは、インターネットを介して互いに接続され、又は互いにアクセス可能であり、
前記カプセル化データベースはそれぞれ、少なくとも外部通信に対して同じ通信インタフェースプロトコルを使用して、互いに情報を通信及び共有する、通信システム。
【請求項１７】
前記複数のカプセル化データベースはそれぞれ、内容に関連する第１のオブジェクトクラス及び内容の種類を識別する第２のオブジェクトクラスを含み、前記第１のオブジェクトクラスは、前記第２のオブジェクトクラスと比較して下位のオブジェクトクラスであり、前記第２のオブジェクトクラスを指し、前記第２のオブジェクトクラスにより識別される前記内容の種類は、前記複数のカプセル化データベースのそれぞれで同じである、請求項１６に記載の通信システム。
【請求項１８】
データベースが通信システム内の第１のユーザから第２のユーザにインスタントメッセージを仲介する方法であって、前記第２のユーザは、前記第１のユーザが前記データベースにログオンして前記インスタントメッセージを送信するときに、前記データベースにログオンしておらず、該方法は、
前記第１のユーザが、前記データベースにより理解される共通の通信インタフェースプロトコルに従って前記インスタントメッセージを構成すること、
前記構成されたインスタントメッセージを前記データベースに送信すること、
前記データベースにおいて受信した前記インスタントメッセージをカプセル化することであって、
前記メッセージを前記データベース内の複数のオブジェクトクラスエントリに分けることであって、前記複数のオブジェクトクラスエントリはそれぞれ、前記データベース内で所与の階層を有する複数のオブジェクトクラスからの１つのオブジェクトクラスの一部を構成すること、
前記オブジェクトクラスエントリの１つ又は複数をそれぞれ指す１つ又は複数のポインタを生成すること、及び
前記複数のオブジェクトクラスエントリのそれぞれを隣接しない記憶ロケーションに記憶することであって、所与のオブジェクトクラスエントリが所与のポインタに関連して記憶され、それによって、前記所与のポインタは、前記オブジェクトクラス階層により決まるように、関連して記憶される前記所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指すこと
をさらに含む、カプセル化すること、並びに
前記第２のユーザによる前記データベースへの情報要求にマッチする１つ又は複数の所与のオブジェクトクラスエントリに基づいて、前記データベースにおいて、前記第２のユーザに送信する前記インスタントメッセージを抽出すること
を含む、データベースが通信システム内の第１のユーザから第２のユーザにインスタントメッセージを仲介する方法。
【請求項１９】
第１のユーザ及び前記第２のユーザは、前記データベースにログオン可能なことにより前記データベースにより認可され、該方法は、前記受信インスタントメッセージをカプセル化する前に、
前記データベースにおいて、意図する前記第２のユーザが前記カプセル化データベースにローカルに保持されるアカウントを有するか否かを判断すること、及び
前記データベースにおいて、前記第１のユーザが前記第２のユーザに前記インスタントメッセージを送信するのに十分な特権を有するか否かを判断すること
をさらに含む、請求項１８に記載のデータベースが通信システム内の第１のユーザから第２のユーザにインスタントメッセージを仲介する方法。
【請求項２０】
前記オブジェクトクラス階層内の最下位にランクされ、かつローカルに記憶されているすべてのオブジェクトクラスエントリにおいて、前記情報要求にマッチするフィールドを探索すると共に、マッチが見つかった場合、前記１つ上位の関連するオブジェクトクラスを指すように、マッチした前記オブジェクトクラスエントリのそれぞれのうちに記憶される前記トピックのオブジェクトクラスのポインタを復号化すること、
マッチするオブジェクトクラスエントリを求めて、前記１つ上位のオブジェクトクラス内のローカルに記憶されている前記オブジェクトクラスエントリをすべて探索すること、及び見つかった場合、
前記マッチした１つ上位のオブジェクトクラスエントリが指す残りのすべての上位オブジェクトクラスエントリへのポインタを復号化すること、及び
リンクされた前記オブジェクトクラスエントリを集めることであって、それにより、前記第２のユーザに送信するために、前記記憶されているインスタントメッセージを再構築すること
をさらに含む、請求項１８に記載のデータベースが通信システム内の第１のユーザから第２のユーザにインスタントメッセージを仲介する方法。
【請求項２１】
通信システムであって、データベースにアクセスすることができる該システムの通信エンティティ間のメッセージの通信を容易にする複数のカプセル化データベースであって、受信メッセージ内の所与のフィールドに対応する複数のオブジェクトクラスエントリをそれぞれ有すると共に、前記オブジェクトクラスエントリのうちの１つ又は複数をそれぞれ指す複数のポインタを有する、複数のカプセル化データベースを備え、
前記メッセージは、第１の通信エンティティから所与のデータベースにおいて受信されると、前記メッセージの組織ソース、前記メッセージの送信者、送信されたメッセージの種類、及び前記メッセージ内の内容に関連するオブジェクトクラスの階層オブジェクトクラスエントリに分けられ、別個の該オブジェクトクラスエントリのそれぞれは、所与の前記データベース内の隣接しない記憶ロケーションに記憶され、最上位から最下位への前記階層順は組織、送信者、メッセージの種類、及び内容であり、
所与のオブジェクトクラスエントリは所与のポインタに関連して記憶され、それによって、前記所与のポインタは、オブジェクトクラス階層により決まるように、関連して記憶される前記所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指し、
前記メッセージの種類のオブジェクトクラスエントリは、該システムの前記データベースのそれぞれで統一されて保持され、それにより、認可された第２の通信エンティティが前記第１の通信エンティティから送信され、記憶されているメッセージの検索を問い合わせた場合に、種類のオブジェクトクラスエントリと内容オブジェクトクラスエントリとを対にすることによって、前記データベースから所望の情報を一律に探索する機能が提供される、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態の例は、包括的には、通信システムのデータベース内の情報をカプセル化する方法、システムのカプセル化データベース、及びデータベースを使用して通信システム内のメッセージングを仲介する方法に関する。
【背景技術】
【０００２】
ユーザ関連情報を記憶するように構成される従来のデータベースは、通常、プロプラエタリ「レコード」フォーマットを利用する。レコードは、特定のデータベース全体を通じて統一された複数のフィールドを含む。レコードは、通常、（１）ユーザの認証又は識別に使用されるフィールド、及び（２）ユーザに関連するデータを記憶するために使用されるフィールドを含む。
【０００３】
一例では、識別フィールドは、「ファーストネーム」フィールド、「ラストネームフィールド」、「社会保障番号」フィールド等、及び／又は他の任意の既知の識別／認証署名（例えば、ユーザの指紋、網膜スキャン等の生体認証署名）を含み得る。別の例では、データフィールドは、「クレジット履歴」、「医療履歴」等、及び／又は他の任意の既知のタイプのユーザ関連データを含み得る。
【０００４】
同じレコードフィールドを使用するデータベースは、標準の通信インタフェースプロトコル（ＣＩＰ）を使用して互いに通信することができる。例えば、第１及び第２のＯｒａｃｌｅデータベースはすべて、同じ、又は少なくとも互換性のあるレコードフィールド構造を含むことができる。第１及び第２のＯｒａｃｌｅデータベースのレコードフィールド構造が各データベースで既知であるため、第１及び第２のＯｒａｃｌｅデータベースは、Ｏｒａｃｌｅ固有のＣＩＰを使用して各レコードフィールドに記憶された情報を共有することができる。
【０００５】
しかし、異なるデータベースは、通常、互換性のないＣＩＰを有する可能性があるプロプラエタリレコードフィールド構造を含む。例えば、非Ｏｒａｃｌｅデータベースが、Ｏｒａｃｌｅ固有のＣＩＰを非ＯｒａｃｌｅのＣＩＰに、またその逆も同様に変換する「翻訳」アプリケーションを利用していない場合、非Ｏｒａｃｌｅデータベースに、Ｏｒａｃｌｅ固有のＣＩＰを使用してアクセスすることはできない。翻訳アプリケーションは制作及び保守が高価であると共に、複雑性をデータベース間通信に付加する。さらに、別のデータベースが、ソースデータベースと通信可能な翻訳アプリケーションを利用しているか否かを検出することは困難であり得るため、通信の成功を保証することができない。
【０００６】
識別フィールド及びデータフィールドが従来のデータベース内で互いに近く物理的な近傍にあるように、レコードフィールドは、通常、連続又は隣接するメモリアドレスロケーション内に一緒に記憶される。したがって、従来のデータベースがハッカーにより危険に曝された場合、ハッカーは比較的容易に、識別フィールドを関連するデータフィールドに関連付けて、データフィールドの妥当性を得ることができる。
【０００７】
ハッカーが危険に曝されたデータから（例えば、危険に曝されたデータをユーザ情報に正しく関連付けることにより）妥当性の抽出に成功する確率を低減するための従来の技法は、通常、データベース記憶プロトコルに「アクティブ」暗号化層を追加することを含む。例えば、ハッカーがデータベースを復号化する鍵を得なければデータベースからいかなる情報も読み取ることができないように、多くのレコードを含むデータベース全体を暗号化することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、認可されたユーザも、データベースに記憶された情報にアクセスするにはデータベースを復号化しなければならず、さらなる処理要件及び遅延がデータベースアクセスに追加される。さらに、ハッカーがデータベースの復号化に成功した場合、データベース内に存在する情報は、従来の「すぐに読み取ることができる」フォーマット（例えば、連続／隣接メモリアドレスレコードフィールド記憶）でハッカーにより入手可能になってしまう。また、認可されたユーザは、暗号化されたデータの復号化に必要な鍵を失った場合、差し替えの鍵を得るまでデータベースにアクセスすることができず、差し替えの鍵を得ることは面倒なプロセスであり得る（例えば、再認証及び差し替え鍵の配布が必要）。
【課題を解決するための手段】
【０００９】
本発明の実施の形態の一例は、データベース内の情報をカプセル化する方法を対象とする。当該方法では、メッセージをデータベース内の複数のオブジェクトクラスエントリに分けることができる。各オブジェクトクラスエントリは、データベース内で所与の階層を有する複数のオブジェクトクラスからの１つのオブジェクトクラスの一部を構成することができる。１つ又は複数のポインタを生成することができ、当該ポインタは複数のオブジェクトクラスエントリのうちの少なくとも１つを指す。複数のオブジェクトクラスエントリをデータベース内の隣接しない記憶ロケーションに記憶することができ、複数のオブジェクトクラスエントリのうちの少なくとも１つは、生成された少なくとも１つのポインタに関連して記憶され、それによって、少なくとも１つのポインタは、オブジェクトクラス階層により決まるように、当該少なくとも１つのポインタに関連して記憶される少なくとも１つのオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す。
【００１０】
本発明の実施の形態の別の例は、通信システム内で使用されるカプセル化データベースを対象とする。当該データベースは、システム内の所与の通信エンティティから受信する受信メッセージ内の所与のフィールドに対応する複数のオブジェクトクラスエントリを含む。メッセージは、フィールドが対応するオブジェクトクラスエントリに専用であるように分けられている。各オブジェクトクラスエントリは、所与の階層を有するオブジェクトクラスのうちの所与のオブジェクトクラスの一部を構成する。データベースは、それぞれがオブジェクトクラスエントリのうちの１つ又は複数を指す、複数のポインタと、複数の記憶ロケーションとも含む。メッセージのフィールドに対応する複数のオブジェクトクラスエントリのそれぞれが、隣接しない記憶ロケーションに記憶される。所与のオブジェクトクラスエントリが所与のポインタに関連して記憶され、それによって、所与のポインタは、オブジェクトクラス階層により決まるように、関連して記憶されている所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す。
【００１１】
本発明の実施の形態の別の例は、データベースが通信システム内の第１のユーザから第２のユーザにインスタントメッセージを仲介する方法を対象とする。第２のユーザは、第１のユーザがデータベースにログオンしてインスタントメッセージを送信するときに、データベースにログオンしていない。本方法では、第１のユーザが、データベースにより理解される共通の通信インタフェースプロトコルに従ってインスタントメッセージを構成し、次いで構成されたインスタントメッセージをデータベースに送信する。データベースは受信したインスタントメッセージをカプセル化する。カプセル化することは、メッセージをデータベース内の複数のオブジェクトクラスエントリに分けることであって、複数の各オブジェクトクラスエントリは、データベース内で所与の階層を有する複数のオブジェクトクラスからの１つのオブジェクトクラスの一部を構成することをさらに含む。カプセル化することは、オブジェクトクラスエントリのうちの１つ又は複数をそれぞれ指す１つ又は複数のポインタを生成すること、及び複数のオブジェクトクラスエントリのそれぞれを隣接しない記憶ロケーションに記憶することをさらに含む。所与のオブジェクトクラスエントリが所与のポインタに関連して記憶され、それによって、所与のポインタは、オブジェクトクラス階層により決まるように、関連して記憶されている所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す。インスタントメッセージを第２のユーザに送信するために、データベースは、第２のユーザがデータベースに送信した情報要求にマッチする１つ又は複数の所与のオブジェクトクラスエントリに基づいて、インスタントメッセージを抽出する。
【００１２】
本発明の実施の形態の別の例は通信システムを対象とする。このシステムは、データベースにアクセスすることができるシステムの通信エンティティ間でのメッセージの通信を容易にする複数のカプセル化データベースを含む。各データベースは、受信メッセージ内の所与のフィールドに対応する複数のオブジェクトクラスエントリを含む。各データベースは、オブジェクトクラスエントリのうちの１つ又は複数をそれぞれ指す、複数のポインタを含む。
【００１３】
メッセージは、第１の通信エンティティから所与のデータベースにおいて受信されると、オブジェクトクラスの階層オブジェクトクラスエントリに分けられる。当該オブジェクトクラスは、メッセージの組織ソース、メッセージの送信者、送信されたメッセージの種類、及びメッセージ内の内容に関連する。当該オブジェクトクラスエントリのそれぞれは、所与のデータベース内の隣接しない記憶ロケーションに記憶され、最上位から最下位への階層順は組織、送信者、メッセージの種類、及び内容である。所与のオブジェクトクラスエントリは所与のポインタに関連して記憶され、それによって、所与のポインタは、オブジェクトクラス階層により決まるように、関連して記憶される所与のオブジェクトクラスエントリよりも上位のオブジェクトクラスエントリを指す。
【００１４】
この例では、メッセージ種類オブジェクトクラスエントリは、システムのデータベースのそれぞれで統一されて保持され、それにより、認可された第２の通信エンティティが第１の通信エンティティから送信されて記憶されているメッセージの検索を問い合わせた場合に、種類のオブジェクトクラスエントリと内容のオブジェクトクラスエントリとを対にすることによって、データベースから所望の情報を一律に検索する機能が提供される。
【００１５】
本発明の実施形態例が、以下に提供する詳細な説明及び単なる例示として提供される、同様の参照符号が各図面内の対応するパーツを示す添付の図面からより十分に理解されよう。
【発明を実施するための最良の形態】
【００１６】
本発明をよりよく理解するために、通信システム例について説明した後、カプセル化データベース例及びシステム例内で実行されるカプセル化データベースのデータ仲介動作について説明する。次に、ユーザ間のインスタントメッセージングを含むより詳細なデータ仲介動作についてさらに詳細に説明する。
【００１７】
システム例
本発明の背景技術で説明したように、従来のデータベースは、通常、ユーザレコードを連続又は隣接するメモリアドレスロケーションに記憶する。本発明の一実施形態例は、ユーザレコード又はメッセージ等の情報を「オブジェクトクラス」内に非連続的に、すなわちバラバラに記憶することを特徴とする「カプセル化（された）」データベースを対象とする。本願の残りの部分全体を通じてカプセル化データベースを説明するために使用される用語を以下のように定義する。
【００１８】
「オブジェクトクラス」−オブジェクトクラスは、カプセル化データベース内に記憶される、定義され、階層化された複数のフィールドの１つである。本明細書において説明する場合、オブジェクトクラスは、オブジェクトクラス階層内の最上位から最下位の順に、オブジェクトクラスのフォルダ、フォーム、トピック、及びデータを含む。
【００１９】
「ポインタ」−ポインタは、宛先メモリアドレスへのリンクである。一例では、ポインタは、実際の物理的なメモリアドレスであり得る。別の例では、ポインタは、少なくとも部分的にポインタに基づいて物理的なメモリアドレスを抽出するために鍵又はアルゴリズムが必要なように、鍵又はアルゴリズムを使用して符号化され得る。
【００２０】
図１は、本発明の一実施形態例によるシステム１００を示す。図１では、システム１００は、ユーザ１０５及び１１０、インターネット１２０、カプセル化データベース１３０及び１３５、並びに発見サーバ１４０を含む。ユーザ１０５及び１１０、カプセル化データベース１３０及び１３５、並びに発見サーバ１４０はそれぞれ、インターネット１２０を通じて接続され、互いにアクセスすることができる。一例では、ユーザ１０５及び１１０は、デスクトップコンピュータ、ノート型コンピュータ又はラップトップ、ＰＤＡ、携帯電話等の任意の既知のタイプの通信装置として具現することができる。別の例では、カプセル化データベース１３０／１３５及び発見サーバ１４０はそれぞれ、Ｏｒａｃｌｅサーバ、メインフレームコンピュータ、又は記憶サーバとして動作するように構成されたノート型／デスクトップコンピュータ等の任意のタイプの記憶サーバとして具現することができる。発見サーバ１４０は、カプセル化データベースサーバ１３０／１３５のうちの一方に「ログオン」し、且つ／又はカプセル化データベースサーバ１３０／１３５のうちの一方により（例えば、ログオフした場合であっても）保持されるアカウントを有するすべてのユーザ１０５／１１０に対して、１組のユーザ「ロケーション」又はカプセル化データベース関連付けを保持する。
【００２１】
カプセル化データベース及びカプセル化データベースの動作の実施形態例について、図１のシステム例１００を参照して以下において説明する。
【００２２】
カプセル化データベースの構築
情報をカプセル化データベース（例えば、カプセル化データベース１３０）に「構築」又はアップロードする一例について、図１のシステム１００を参照してこれより説明する。図２は、本発明の一実施形態例による、カプセル化データベース１３０内に情報を記憶するプロセスを示す。
【００２３】
図２の実施形態例では、カプセル化データベース１３０は、ステップＳ２００において、情報を記憶する要求（「情報記憶要求」）を受信する。一例では、カプセル化データベース１３０への記憶が要求される情報が、ステップＳ２００において受信される要求と共に含まれる。一例では、通信エンティティは、カプセル化データベース１３０に直接又は間接にであれアクセスすることが可能な任意の装置であることができる。例えば、通信エンティティは、インターネット１２０を通じて情報記憶要求を送信するユーザ１０５であることができる。
【００２４】
ステップＳ２０５において、カプセル化データベース１３０は通信エンティティ及び情報記憶要求を評価して、通信エンティティが、カプセル化データベース１３０内の要求されたロケーションにメッセージ内の情報を記憶するように、情報記憶要求内で指定されたオブジェクトクラスを変更する認可を受けているか否かを判断する。ステップＳ２０５のこの認可判断は、図３に示すようないくつかのステップを含み得る。
【００２５】
図３は、本発明の別の実施形態例による図２の認可ステップＳ２０５をさらに詳細に示す。図３の実施形態例では、通信エンティティは、ステップＳ３００においてカプセル化データベース１３０に対して身元を証明する。カプセル化データベース１３０は任意の既知の認証プロセスを利用して、ステップＳ３００において通信エンティティを認証することができる。例えば、ステップＳ３００において、通信エンティティにパスワードを入力するように促すことができる。別の例では、通信エンティティに、デジタル証明書（例えば、ディフィー−ヘルマン（Diffie-Hellman）鍵交換を介して得られる）を提供して身元を証明するように求めることができる。別法として、通信エンティティが最近、適した認証を提供したばかりである（例えば、通信エンティティがすでに「ログオン」している）場合、認証ステップＳ３００を省略することができる。一例では、パスワード認証を仮定すると、通信エンティティがステップＳ３００において身元の再証明（すなわち、パスワードの再入力）を求められるのは、前回の許容された認証から所与の時間期間（例えば、３０分、６０分、１日等）後のみであり得る。
【００２６】
図３のステップＳ３０５において、カプセル化データベース１３０は、通信エンティティの特権レベルを（Ｓ２００からの）情報記憶要求と比較して、通信エンティティが要求されるロケーションに情報を記憶するのに十分な特権を有しているか否かを判断する。通信エンティティの特権レベルは、カプセル化データベース１３０においてローカルに保持される。例えば、情報記憶要求がユーザ１０５からユーザ１１０へのインスタントメッセージ（ＩＭ）である場合、ユーザ１０５は、ユーザ１１０の「承認送信者リスト」上に存在している場合に、ＩＭをユーザ１１０に送信するのに適切な特権を有する。一例では、同企業内、又は企業内の同チーム又は同部門内の従業員に対して、相互の通信を自動的に承認することができる。別の例では、ユーザ１１０は、手動でユーザ１０５を「承認送信者リスト」に追加して、ユーザ１０５との通信又は記憶の特権を認めることができる。
【００２７】
図３のステップＳ３１０において、カプセル化データベース１３０は、ステップＳ３００及びＳ３０５の結果に基づいて（Ｓ２００からの）情報記憶要求を承認するか否かを判断する。ステップＳ３１０は、（１）ステップＳ３００が通信エンティティを認証し、且つ（２）ステップＳ３０５により、通信エンティティが、要求される記憶ロケーションに情報を記憶するのに十分な特権を有すると判断された場合に情報記憶要求を承認又は認可し、その他の場合、情報記憶要求は認可されない。
【００２８】
図２のステップＳ２０５に戻り、通信エンティティが、情報記憶要求の実行を認可されない場合（例えば、図３のプロセスから判断されるように）、カプセル化データベース１３０は情報記憶要求を無視し、（例えば、場合によっては、通信エンティティに情報記憶要求が拒絶されたことを通知する以外に）何のアクションもとらない。そうではなく、通信エンティティがステップＳ２０５において認可されたと判断された場合、プロセスはステップＳ２１０に進む。ステップＳ２１０において、カプセル化データベース１３０内に記憶される、通信エンティティにより送信された情報を「カプセル化」することができ、カプセル化についてこれより図４に関連してさらに詳細に説明する。
【００２９】
図４は、本発明の別の実施形態例による、情報をカプセル化データベース１３０内にカプセル化するプロセスを示す。
【００３０】
図４の実施形態例では、ステップＳ４００において、情報記憶要求は４つの階層オブジェクトクラスに分けられる。本発明の実施形態例について、４つのオブジェクトクラスを記憶するように構成されるカプセル化データベースを対象として以下において説明するが、本発明の他の実施形態例が任意の数のオブジェクトクラスを含んでもよいことは容易に明らかとなろう。上述したように、オブジェクトクラス階層内の最上位位置からオブジェクトクラス階層の最下位位置に配置される４つのオブジェクトクラスは、「フォルダ」、「フォーム」、「トピック」、及び「データ」である。
【００３１】
一例では、（Ｓ３００からの）情報記憶要求が、企業Ｘ（カプセル化データベース１３０を保持する）内の経理部でそれぞれ働いているMike RogersからJoe Smithへの、メッセージ内容（「会議に３０分遅れます」）を含むインスタントメッセージ（ＩＭ）である場合、メッセージは表１（以下）に示すように分けられる。
【００３２】
【表１】
2009500733.tif 000003
【００３３】
表１がフォルダ、フォーム、トピック、及びデータのオブジェクトクラスに記憶される実際の値を簡易化したものを示すことが分かる。例えば、データのオブジェクトクラスは、Mike Rogersからのインスタントメッセージが図２のステップＳ２００においてカプセル化データベース１３０において受信された時刻を示すタイムスタンプ及び／又は他のデータフィールドをさらに記憶することができる。別の例では、インスタントメッセージは、Mike RogersとJoe Smithとの間での、「会話」と呼ばれる前の一連のインスタントメッセージに添付することができる。また、表１に示されていないが、フォルダ、フォーム、トピック、及びデータのオブジェクトクラス内の各エントリは関連するポインタと共に記憶され、これについてさらに詳細にこれより説明する。
【００３４】
したがって、ステップＳ４０５において、カプセル化データベース１３０は、ポインタ鍵アルゴリズムを実行して、オブジェクトクラス識別子又はポインタを生成し、これがフォーム、トピック、データのオブジェクトクラスに関連して記憶される。各ポインタは、関連する上位オブジェクトクラスの識別に使用される。したがって、一例では、トピックポインタ、フォームポインタ、及びフォルダポインタが生成される。トピックポインタはデータのオブジェクトクラス内のデータエントリに関連して記憶され、フォームポインタはトピックのオブジェクトクラス内のトピックエントリに関連して記憶され、フォルダポインタはフォームのオブジェクトクラス内のフォームエントリに関連して記憶される。
【００３５】
一例では、ステップＳ４０５において生成されるポインタは、ポインタが指すオブジェクトクラスエントリの実際の物理アドレスであり得る。別法として、別の例では、ステップＳ４０５において生成されるポインタは、ポインタ鍵アルゴリズムのさらなる実行を通じて、オブジェクトクラスエントリの実際の物理アドレスに変換することができる変数であり得る。このようにしてポインタを「符号化」することにより、カプセル化データベース１３０の物理的な内容にアクセスすることができるハッカーが、ポインタ鍵アルゴリズムを使用せずには、単純にデータのオブジェクトクラスエントリにアクセスして、関連する上位オブジェクトクラス（例えば、トピック、フォーム、フォルダ等）を見つけることができないことが分かろう。
【００３６】
これより、図４のステップＳ４０５の上記ポインタの生成について説明する詳細な例を提供する。以下に提供する例では、本発明の実施形態例の理解を容易にするために単純なポインタ鍵アルゴリズムを仮定する。しかし、本発明の他の実施形態例ではより複雑なポインタ鍵アルゴリズムを利用してもよいことが理解される。
【００３７】
ポインタ鍵アルゴリズム例では、トピック、フォーム、及びフォルダの各オブジェクトクラスエントリを指すポインタは、以下の式を使用して導き出すことができる。
ポインタ＝［オブジェクトクラスエントリの物理アドレス］×２−１      （式１）
【００３８】
図１に示すように、ポインタ鍵アルゴリズムは、オブジェクトクラスエントリの物理アドレスを２で乗算し、そこから１を引くように単純であってもよい。これより、ポインタ鍵アルゴリズムの実行例を、表１（上記）の分けられたインスタントメッセージ例に関連して提供する。表１のトピックのオブジェクトクラス（例えば「インスタントメッセージ」）、フォーム（例えば「Joe Smith」）、及びフォルダ（例えば「経理部」）エントリが物理アドレス４６、９８、及び１１２にそれぞれすでに存在するものと仮定する（例えば、一般的なメモリアドレスはより大きな番号であり、且つ異なるより複雑なフォーマットであろうが、ここでも説明を容易にするために単純な番号が使用されている）。データのオブジェクトクラスエントリが記憶される物理アドレスは、ポインタ鍵アルゴリズムにより生成されるのではなく、単純にデータのオブジェクトクラスエントリに確保されているキュー内で次に利用可能なアドレスである。カプセル化データベース１３０は次に利用可能なアドレスを保持し、このアドレスは例として１４４であると仮定される。
【００３９】
式１のポインタ鍵アルゴリズムを適用して、トピックのオブジェクトクラスエントリのポインタは９１になり、フォームのオブジェクトクラスエントリのポインタは１９５になり、フォルダのオブジェクトクラスエントリのポインタは２２３になる。ポインタが得られると、表１（上記）を表２において以下に示すように拡張することができる。
【００４０】
【表２】
2009500733.tif 000004
【００４１】
表２（上記）に示すように、ポインタ及びオブジェクトクラスエントリ識別（ＩＤ）が、フォーム及びトピックのオブジェクトクラスに記憶されるが、データのオブジェクトクラス及びフォルダのオブジェクトクラスには記憶されない。データのオブジェクトクラスは、階層オブジェクトクラス構成によりトピックのオブジェクトクラスエントリへのポインタを含む。したがって、ポインタの「一方向」ストリングが提供されて、ハッカーが単純に上位オブジェクトクラス（例えば、フォルダ、トピック、フォーム等）にアクセスし、関連する下位オブジェクトクラスに進めないようにセキュリティを向上させる。同様に、フォルダのオブジェクトクラスは、最上位オブジェクトクラスであり、したがって指すべき上位オブジェクトクラスがないため、ポインタを含まない。
【００４２】
また、表２に示されていないが、任意の下位オブジェクトクラスエントリ（例えば、フォーム、トピック、データ等）が、２つ以上の上位オブジェクトクラスエントリ（例えば、フォルダ、フォーム、トピック等）へのポインタを含んでもよいことが理解される。例えば、表２に示すデータのオブジェクトクラスエントリは、各オブジェクトクラス、フォームエントリ及びフォルダエントリへのポインタをさらに含んでもよく、したがって、必ずしも、次の上位オブジェクトクラスであるトピックのポインタのみの記憶に制限されない。
【００４３】
図４に戻って、ステップＳ４１０において、データ／トピック／フォーム／フォルダのオブジェクトクラスのオブジェクトクラスエントリが、カプセル化データベース１３０内の割り当てられたそれぞれの物理アドレス（例えば、４６、９８、１１２、１４４等）に、関連する上位レベルのオブジェクトクラスのポインタと共に記憶される。
【００４４】
カプセル化データベースからの情報の検索
これより、カプセル化データベース１３０に記憶されている情報を検索又はダウンロードする一例について、図１のシステム１００を参照して説明する。図５は、本発明の一実施形態例による、カプセル化データベース１３０から情報をダウンロードするプロセスを示す。
【００４５】
図５の実施形態例では、ステップＳ５００において、カプセル化データベース１３０は、通信エンティティ（例えば、ユーザ１０５／１１０、カプセル化データベース１３５等）から情報要求を受信する。表３（以下）に、１組の可能な情報要求例を示す。
【００４６】
【表３】
2009500733.tif 000005
【００４７】
表３（上記）について、後にステップＳ５１０及び図６のプロセスを参照してさらに詳細に説明する。
【００４８】
図５のステップＳ５０５において、カプセル化データベース１３０は通信エンティティ及び（Ｓ５００からの）情報要求を評価して、通信エンティティによる情報要求内で指定されたオブジェクトクラスへのアクセスを認可するか否かを判断する。一例では、ステップＳ５０５は、図３の認可判断プロセスに関連して説明した図２のステップＳ２０５と同様に実行することができる。しかし、通信エンティティは必ずしも、「書き込み」又は「アップロード」特権と同じ「読み取り」又は「ダウンロード」特権を有するわけではない。例えば、従来の大半のデータベース仲介システムでは、セキュリティのために、情報を書き込む特権が認められるユーザ数は、情報を読み取る特権が認められるユーザ数よりも少ない。したがって、ステップＳ５０５は図２のステップＳ２０５と同じように実行されるが、図３の特権チェックステップＳ３０５の結果は必ずしも同じとは限らない。
【００４９】
ステップＳ５０５において、通信エンティティが要求された情報へのアクセスが認可されない（例えば、図３のプロセスから判断されるように）場合、カプセル化データベース１３０は（Ｓ５００からの）情報要求を無視し、（例えば、場合によっては、通信エンティティに情報要求が拒絶されたことを通知する以外に）何のアクションもとらない。そうではなく、通信エンティティがステップＳ５０５において認可されると判断された場合、プロセスはステップＳ５１０に進む。ステップＳ５１０において、要求された情報がカプセル化データベース１３０から抽出され、これについて図６に関連してさらに詳細にこれより説明する。
【００５０】
図６は、本発明の別の実施形態例による、カプセル化データベース１３０から情報を抽出するプロセスを示す。
【００５１】
図６の実施形態例では、ステップＳ６００において、カプセル化データベース１３０は、（Ｓ５００からの）情報要求にマッチするデータフィールド（例えば、データのオブジェクトクラスエントリの部分）を求めて、ローカルに記憶されている（例えば、カプセル化データベース１３０内に記憶されている）すべてのデータのオブジェクトクラスエントリを探索する。ステップＳ６０３において、カプセル化データベース１３０は探索ステップＳ６００の結果を評価する。探索ステップＳ６００が、探索基準にマッチする１つ又は複数のデータフィールドを有するデータのオブジェクトクラスエントリのサブセットを得た場合、プロセスはステップＳ６０５に進む。そうではなく、探索ステップＳ６００がマッチングを見つけなかった場合、図６のプロセスはステップＳ６２５において終了する。
【００５２】
図６のステップＳ６０５において、カプセル化データベース１３０は、ステップＳ６００において得られたサブセットのデータのオブジェクトクラスエントリのそれぞれのうちに記憶されているトピックのオブジェクトクラスのポインタを復号化する。ステップＳ６１０において、カプセル化データベース１３０は、（ステップＳ６０５からの）復号化されたトピックのオブジェクトクラスのポインタが指すトピックのオブジェクトクラスエントリを評価する。ステップＳ６１５において、カプセル化データベース１３０は、トピックのオブジェクトクラスエントリ（ステップＳ６１０）のうちの１つ又は複数が（ステップＳ５００からの）情報要求において指定されている１つ又は複数のトピックにマッチするか否かを判断する。マッチが見つからない場合、プロセスはステップＳ６２５において終了し、見つかった場合、プロセスはステップＳ６２０に進む。ステップＳ６２０において、カプセル化データベースは、マッチするトピックのオブジェクトクラスエントリが指す残りのすべての上位オブジェクトクラスエントリへのポインタを復号化する。
【００５３】
図５の実施形態例に戻って、ステップＳ５１５において、カプセル化データベース１３０は、（ステップＳ５１０からの）抽出された情報を通信エンティティに送信する。抽出された情報は、ステップＳ６１５のマッチするトピックのオブジェクトクラスエントリに関連するすべてのオブジェクトクラスエントリ（例えば、マッチするトピックのオブジェクトクラスエントリを指す（ステップＳ６０３からの）データのオブジェクトクラスエントリ、（ステップＳ６１５からの）マッチするトピックのオブジェクトクラスエントリ、及び（ステップＳ６２０からの）集められたフォーム／フォルダのオブジェクトクラスエントリを含む）を含む。
【００５４】
これより、図６のプロセス例について表３（上記）に関連して説明する。
【００５５】
表３の要求１
図６のステップＳ６００において、カプセル化データベース１３０はローカルに記憶されているすべてのデータのオブジェクトクラスエントリを探索し、「John Smith」にマッチする１つ又は複数のデータフィールドを有するデータのオブジェクトクラスエントリのセットを返す。ステップＳ６０３において、マッチする少なくとも１つのデータのオブジェクトクラスエントリが見つかると仮定して、プロセスはステップＳ６０５に進む。ステップＳ６０５において、マッチする少なくとも１つのデータのオブジェクトクラスエントリのすべてのトピックのオブジェクトクラスのポインタが復号化される。次に、ステップＳ６１０において、カプセル化データベース１３０は、復号化されたデータのオブジェクトクラスのポインタが指すトピックのオブジェクトクラスエントリを解析する。ステップＳ６１５において、復号化されたトピックのオブジェクトクラスのポインタが指すトピックのオブジェクトクラスエントリの中に、「ファーストネーム」及び「ラストネーム」のトピックのオブジェクトクラスエントリが含まれると仮定する。したがって、ステップＳ６１５はステップＳ６２０に進み、カプセル化データベース１３０は、データオブジェクトのエントリが指すフォーム／フォルダのオブジェクトクラスエントリを集める。
【００５６】
表３の要求２
図６のステップＳ６００において、カプセル化データベース１３０はローカルに記憶されているすべてのデータのオブジェクトクラスエントリを探索し、「Smith」又は「Jones」にマッチする１つ又は複数のデータフィールドを有するデータのオブジェクトクラスエントリのセットを返す。ステップＳ６０３において、マッチする少なくとも１つのデータのオブジェクトクラスエントリが見つかると仮定して、プロセスはステップＳ６０５に進む。ステップＳ６０５において、マッチする少なくとも１つのデータのオブジェクトクラスエントリのすべてのトピックのオブジェクトクラスのポインタが復号化される。次に、ステップＳ６１０において、カプセル化データベース１３０は、復号化されたデータのオブジェクトクラスのトピックのポインタが指すトピックのオブジェクトクラスエントリを解析する。ステップＳ６１５において、復号化されたデータのオブジェクトクラスのトピックのポインタが指すトピックのオブジェクトクラスエントリの中に、「ファーストネーム」又は「ラストネーム」のトピックのオブジェクトクラスエントリが含まれると仮定する。したがって、ステップＳ６１５はステップＳ６２０に進み、カプセル化データベース１３０は、データオブジェクトのトピックのクラスエントリが指すフォーム／フォルダのオブジェクトクラスエントリを集める。
【００５７】
次に、要求２は「LIST」コマンドであるため、図６のステップＳ６２０の後、図５のステップＳ５１５に戻る前に、追加ステップが実行される。図７は、本発明の別の実施形態例による、LISTコマンドの場合の図６のプロセスの追加ステップを示す。
【００５８】
図７のステップＳ６２５において、カプセル化データベース１３０は、「ファーストネーム」、「ラストネーム」、及び「電話番号」のトピックのオブジェクトクラスエントリを指すと共に、図６のステップＳ６２０において集められたフォーム及びフォルダのオブジェクトクラスエントリも指すすべてのデータオブジェクトを求めて探索し、集める。次に、列挙が要求されたトピックの要求オブジェクトクラスエントリが集められた後、プロセスは図５のステップＳ５１５に進み、要求側通信エンティティに以下、すなわちマッチしたデータのオブジェクトクラスエントリ（ステップＳ６００から）、マッチしたトピックのオブジェクトクラスエントリ（ステップＳ６１５から）、集められたフォーム及びフォルダのオブジェクトクラスエントリ（図６のステップＳ６２０から）、及び集められたデータのオブジェクトクラスエントリ（ステップＳ６２５から）を送信する。
【００５９】
表３の要求３
表３の要求３は、列挙が要求されるトピックのオブジェクトクラスエントリが「インスタントメッセージ履歴」であることを除き、表３の要求２と同様である。したがって、表３の要求３の実行は、図７のステップＳ６２５において「ファーストネーム」、「ラストネーム」、及び「電話番号」のトピックのオブジェクトクラスエントリを集めることに代えて、図６のステップＳ６２０において集められたフォーム／フォルダのオブジェクトクラスエントリを指すすべての「インスタントメッセージ」のデータのオブジェクトクラスエントリが集められることを除き、表３の要求２に関連した上記説明と同様である。
【００６０】
図６及び図７のプロセス中に、「LIST」以外の多くの他のタイプの問い合わせコマンドをカプセル化データベース１３０で実行し得ることが当業者には容易に分かるため、簡潔にするために、このようなコマンドについてのこれ以上の説明を省いた。
【００６１】
異なるカプセル化データベース間での情報共有
本発明の実施形態例を、単一のカプセル化データベース（すなわち、カプセル化データベース１３０）で実行されるものとして上述した。しかし、図１のシステム１００に示すように、多くのカプセル化データベース１３０／１３５を展開することができる。本発明の別の実施形態例では、各カプセル化データベース１３０／１３５は、同じトピックのオブジェクトクラスエントリを有するように構成することができる。トピックのオブジェクトクラスエントリは、データのオブジェクトクラスエントリとトピックのオブジェクトクラスエントリとの対を使用して異種のデータベースから所望の情報をより容易に得ることができるように、各カプセル化データベース１３０／１３５で、またシステム１００にわたって統一されて、又は少なくとも互換性のあるように保持される。残りのフォルダ、フォーム、及びデータのオブジェクトクラス、並びに標準のレコード構造はそれぞれ、より企業固有、ユーザ固有、及び／又は事例固有であり、したがって、カプセル化データベース内で（例えば、使用法が異なることにより）、またデータベース毎に（例えば、カプセル化又は非カプセル化）変化し得ることが分かろう。
【００６２】
例えば、「インスタントメッセージ」をシステム１００内のすべてのカプセル化データベース１３０／１３５のトピックのオブジェクトクラスエントリであると定義することにより、所与のユーザのインスタントメッセージへの問い合わせを大幅に簡易化することができる。仮にデータベースがカプセル化方法によりデータオブジェクト−トピックオブジェクト対を含むように構成されていない場合には、データベース又は情報を要求しているユーザが、異なるデータベースにわたってこのような情報を得ることに成功することははるかに難しくなることが当業者には分かろう。例えば、本明細書において説明するカプセル化方法によるトピック−データのオブジェクトクラス対を使用しない場合でのインスタントメッセージ情報の問い合わせは、はるかに広範囲（generic）であり、ユーザに、特定の形式又はレコード構造を知らずに多数のレコード構造又はフォーム構造を探索させることを可能にし得る。
【００６３】
カプセル化データベース１３０／１３５は、同じ通信インタフェースプロトコル（ＣＩＰ）を使用して互いに通信することができる。当業者が分かるように、異なる内部データベースプロトコル（例えば、Ｏｒａｃｌｅ等）を使用するデータベースも、同じＣＩＰが（例えば、接続されたカプセル化データベースとの）外部通信に使用される場合、互いに情報を通信して共有することができる。したがって、各カプセル化データベース１３０／１３５を、同じＣＩＰを使用するように構成することができる。
【００６４】
例えば、ＣＩＰは、（例えば、図５のステップＳ５００に関連して上述したような）情報要求フォーマット及び／又は（例えば、図２のステップＳ２００に関連して上述したような）情報記憶要求を含むことができる。したがって、すべてのカプセル化データベースにわたってＣＩＰを標準化することにより、コストがかかり、且つ比較的非効率的なデータベースフォーマット変換ソフトウェアを開発又は実装する必要がない。
【００６５】
ユーザメッセージングのカプセル化データベースによる仲介
図１のシステム１００内のカプセル化データベース１３０及び１３５によるユーザメッセージングの仲介の例について、図８及び図９に関連してこれより説明する。
【００６６】
図８は、本発明の一実施形態例による、カプセル化データベース１３０により仲介されるインスタントメッセージプロセスを示す。図８のステップＳ８００において、ユーザ１０５はカプセル化データベース１３０に「ログオン」する。例えば、ユーザ１０５は、身元を証明する（例えば、図３のステップＳ３００）ことによりカプセル化データベース１３０にログオンする。図８のプロセス例では、ユーザ１０５が、カプセル化データベース１３０により保持されるすでに存在するアカウントを有し、且つユーザ１０５がインスタントメッセージをユーザ１１０に送信したいものと仮定することができる。
【００６７】
したがって、図８のステップＳ８０５において、ユーザ１０５は、カプセル化データベース１３０に共通のＣＩＰ（上述）に従ってインスタントメッセージを構成し、構成されたインスタントメッセージをカプセル化データベース１３０に送信する。ステップＳ８１０において、カプセル化データベースは構成されたインスタントメッセージを受信する。ステップＳ８１０は、カプセル化データベースにより仲介されるインスタントメッセージングは、本質的に、１つ又は複数のカプセル化データベースに情報を記憶し、広めることであり、記憶された情報へのアクセスはインスタントメッセージの意図する受信者に制限されるため、図２のステップＳ２００と同様である。
【００６８】
ステップＳ８１５において、カプセル化データベース１３０は、受信した構成されたインスタントメッセージの意図する受信者（すなわち、ユーザ１１０）が、カプセル化データベース１３０にローカルに保持されているアカウントを有するか否かを判断する。ユーザ１１０がローカルに保持されているアカウントを有すると判断される場合、プロセスはステップＳ８２０に進む。異なるカプセル化データベース間でのインスタントメッセージを仲介するプロセスについて、後で図９に関連してさらに詳細に説明する。
【００６９】
図８のステップＳ８２０において、カプセル化データベース１３０は、図３のプロセス内でさらに詳細に説明した図２のステップＳ２０５を実行する。ステップＳ８２０において、ユーザ１０５はすでにログオンしているため（ステップＳ８００参照）、認証ステップＳ３００を行う必要はない。したがって、カプセル化データベース１３０は、ユーザ１０５がインスタントメッセージをユーザ１１０に送信するのに十分な特権を有することを確認する（例えば、図３のステップＳ３０５参照）。説明のために、ユーザ１０５が十分な特権を有するものと仮定され、したがって、プロセスはステップＳ８２５に進む。
【００７０】
図８のステップＳ８２５において、カプセル化データベース１３０はインスタントメッセージをカプセル化し、ユーザ１１０の適当なフォルダ／フォーム／トピック/データのオブジェクトクラスエントリに記憶する。カプセル化ステップＳ８２５については、図２のステップＳ２１０及び図４に概説したプロセスに関連してすでに上述しているため、簡潔にするためにこれ以上は説明しない。
【００７１】
図８のステップＳ８３０において、ユーザ１１０は、ステップＳ８００に関連して上述した様式と同じ様式でカプセル化データベース１３０にログオンする。カプセル化データベース１３０は、ログオンステップＳ８３０を、ユーザ１１０がカプセル化データベース１３０に最後にログオンしてからユーザ１１０に送信されたあらゆる新インスタントメッセージを受信する暗黙的な要求として扱う。したがって、ステップＳ８３５において、カプセル化データベース１３０はインスタントメッセージを抽出して（例えば、他のあらゆる「未読」インスタントメッセージと共に）ユーザ１１０に送信する。カプセル化された情報の抽出については図５〜図７に関連して上述しており、簡潔にするためにこれ以上は説明しない。
【００７２】
また、図８は、インスタントメッセージが送信された後にユーザ１１０がカプセル化データベースにログオンする一例を示すが、本発明の別の実施形態例では、ユーザ１０５がメッセージを送信するとき（ステップＳ８０５において）、ユーザ１１０はカプセル化データベース１３０にすでにログオンしていてもよい。この例では、ステップＳ８３５は、最初にログオンステップＳ８３０を要求することなく、カプセル化ステップＳ８２５の後に実行される。
【００７３】
異なるカプセル化データベースにログオンしたユーザ間でのユーザメッセージング
図９は、本発明の別の実施形態例による、カプセル化データベース１３０及び１３５並びに発見サーバ１４０により仲介されるインスタントメッセージプロセスを示す。
【００７４】
ステップＳ９００〜Ｓ９１０はそれぞれ、図８のステップＳ８００〜Ｓ８１０に関連して上述した様式と同じ様式で実行されるため、簡潔にするためにこれ以上は説明しない。
【００７５】
ステップＳ９１５において、カプセル化データベース１３０は、受信した構成されたインスタントメッセージの意図する受信者（すなわち、ユーザ１１０）がカプセル化データベース１３０にローカルに保持されているアカウントを有するか否かを判断する。図８のステップＳ８１５と異なり、図９のステップＳ９１５は、ユーザ１１０がカプセル化データベース１３０にローカルに保持されているアカウントを有しないと判断し、カプセル化データベース１３０は、発見サーバ１４０からの、ユーザ１１０が割り当てられたカプセル化データベースの識別を要求する。
【００７６】
発見サーバ１４０は、システム１００全体を通じてカプセル化データベースへのユーザ割り当てリストを保持する。例えば、ユーザが、図１のシステム１００内のカプセル化データベース１３０／１３５のうちの１つ又は複数にログオンするか、又はこれ（ら）により保持されるアカウントを有する場合、その１つ又は複数のカプセル化データベース１３０／１３５は、ユーザロケーション情報を発見サーバ１４０に報告し、発見サーバ１４０は、報告された情報を、自身に記憶しているユーザ割り当てリストに追加する。
【００７７】
したがって、図９のステップＳ９２０において、発見サーバ１４０は、ユーザ１１０のロケーションに対する要求を受信し、自身に記憶されているユーザ割り当てリストを探索し、ユーザ１１０のロケーションをカプセル化データベース１３０に報告する。図９の実施形態例の説明内では、ステップＳ９２０において発見サーバ１４０により報告されるロケーションがカプセル化データベース１４０であるものと仮定する。このため、図９のステップＳ９２５において、カプセル化データベース１３０は、（ステップＳ９０５においてユーザ１０５が送信した）インスタントメッセージをカプセル化データベース１３５に転送する。
【００７８】
図９のステップＳ９３０において、カプセル化データベース１３５は転送されたインスタントメッセージを受信し、図２のステップＳ２０５を実行する。図２のステップＳ２０５については、図３のプロセス内でさらに詳細に説明されている。ステップＳ９３０において、ユーザ１０５はすでにログオンしているため（ステップＳ９００）、図３の認証ステップＳ３００を実行する必要はない。したがって、ステップＳ９３０において、カプセル化データベース１３５は、ユーザ１０５がユーザ１１０にインスタントメッセージを送信するのに十分な特権を有することを確認する（例えば、図３のステップＳ３０５及びＳ３１０参照）。説明のために、ユーザ１０５が十分な特権を有するものと仮定し、したがって、プロセスはステップＳ９３５に進む。
【００７９】
図９のステップＳ９３５において、カプセル化データベース１３５は、転送された受信したインスタントメッセージをカプセル化して、ユーザ１１０の適当なフォルダ／フォーム／トピック／データのオブジェクトクラスエントリに記憶する。カプセル化ステップＳ９３５については図２のステップＳ２１０、図４のプロセス、及び図８のステップＳ８２５に関連してすでに上述してあるため、簡潔にするためにこれ以上は説明しない。
【００８０】
図９のステップＳ９４０において、ユーザ１１０は、図８のステップＳ８００及びＳ８３０並びに図９のステップＳ９００に関連して上述した様式と同じ様式で、カプセル化データベース１３５にログオンする。カプセル化データベース１３０は、ログオンステップＳ９４０を、ユーザ１１０がカプセル化データベース１３５に最後にログオンしてからユーザ１１０に送信されたあらゆる新インスタントメッセージを受信する暗黙的な要求として扱う。したがって、ステップＳ９４５において、カプセル化データベース１３５はインスタントメッセージを抽出してユーザ１１０に送信する。カプセル化された情報の抽出については図５〜図７に関連して上述しており、簡潔にするためにこれ以上は説明しない。
【００８１】
また、図９は、インスタントメッセージが送信された後にユーザ１１０がカプセル化データベースにログオンする一例を示すが、本発明の別の実施形態例では、カプセル化データベース１３０がインスタントメッセージを転送するとき（ステップＳ９２５において）、ユーザ１１０はカプセル化データベース１３５にすでにログオンしていてもよい。この例では、ステップＳ９４５は、最初にログオンステップＳ９４０を要求することなく、カプセル化ステップＳ９３５の後に実行される。
【００８２】
カプセル化データベースのセキュリティ特徴
これより説明するように、上述した「カプセル化」データベース構造は、或る水準の「受動的な暗号化」を提供し、データをハッカーによる悪意のある攻撃から保護する。背景技術の項で説明したように、従来のレコード記憶は、通常、すべてのユーザフィールド（例えば、ファーストネーム、ラストネーム、日付等）をデータベース内の連続したメモリアドレスに記憶する。
【００８３】
それとは対照的に、本発明の実施形態例によるカプセル化データベース１３０／１３５は複数の階層オブジェクトクラスを含み、往復せずに下位オブジェクトクラスが上位オブジェクトクラスを指す。特定のユーザの情報がカプセル化データベース１３０／１３５全体にわたって分散するように、レベルの異なるオブジェクトクラスが分けられて一緒に記憶される。
【００８４】
したがって、カプセル化自体は暗号化自体を構成せず、むしろ、カプセル化は、情報（例えば、メッセージ等）がオブジェクトクラスフィールドに分けられて、特定のオブジェクトクラスに対応する対応テーブル（例えば、オブジェクトクラスのうちの１つに割り振られた、カプセル化データベース内の連続／隣接した記憶ロケーションエリア）に記憶される方法に基づく受動的なタイプのセキュリティである。この受動的なセキュリティメカニズムは本質的に或る種の暗号化として機能するが、下位オブジェクトが上位クラスへのポインタと共にカプセル化データベース１３０／１３５内のテーブルに記憶される様式に必ずしも「ランダム性」があるわけではない。換言すれば、上述したカプセル化アドレッシング方式の一部である、カプセル化データベース１３０／１３５内の異なる記憶テーブルへのオブジェクトクラスの分離により、ハッカーが、階層の異なるオブジェクトクラスにわたって関連するオブジェクトクラスの関連付けを得ることがはるかに困難になる。
【００８５】
したがって、カプセル化データベース１３０／１３５に記憶されているデータを「アンロック」又は「関連させる」ために、ハッカーは、オブジェクトクラス階層の各オブジェクトクラス内のオブジェクトクラスエントリを得なければならない。オブジェクトクラス階層の中で異なるオブジェクトクラスは、カプセル化データベース１３０／１３５においてのみアクセス可能なポインタ鍵アルゴリズムを使用して符号化されているポインタにより「リンク」されている。したがって、例えば、ハッカーが単純にカプセル化データベース１３０／１３５からすべてのハードドライブを盗んだ場合、ポインタ鍵アルゴリズムなしではそこに記憶されている情報を理解することができないことが分かろう。
【００８６】
さらに、カプセル化データベース１３０／１３５のアドレッシング及び記憶方式は、特定の水準の「受動的な暗号化」又は「受動的なセキュリティ」を提供するが、さらなる水準の「能動的な」暗号化又はセキュリティをカプセル化データベース１３０／１３５内でさらに利用できることが理解される。例えば、カプセル化データベース１３０／１３５は、任意の既知の暗号化プロトコルで暗号化し得る。別の例では、下位オブジェクトクラスに記憶されるポインタをさらに暗号化して、さらなる保護を提供することができる。このような能動的な暗号化技法は当該技術分野において既知であり、簡潔にするためにこれ以上は説明しない。
【００８７】
こうして、本発明の実施形態例を説明したが、本発明の実施形態例が多くの方法で変更可能であることが明らかであろう。例えば、システム１００内の２つのカプセル化データベース１３０／１３５に関連して上述したが、本発明の他の実施形態例は、任意の数のカプセル化データベースに拡大縮小可能なことが理解される。同様に、他の実施形態例は、フォルダ、フォーム、トピック、及びデータの単に４つのオブジェクトクラスだけではなく、異なる数又は種類のオブジェクトクラスを対象とすることができる。このような変形は、本発明の実施形態例からの逸脱としてみなされるべきではなく、このような変更はすべて本発明の範囲内に含まれることを意図する。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態例によるシステムを示す図である。
【図２】本発明の一実施形態例による、カプセル化データベース内に情報を記憶するプロセスを示す図である。
【図３】本発明の別の実施形態例によるユーザ認証ステップを示す図である。
【図４】本発明の別の実施形態例による、情報をカプセル化データベース内にカプセル化するプロセスを示す図である。
【図５】本発明の一実施形態例による、カプセル化データベースから情報をダウンロードするプロセスを示す図である。
【図６】本発明の別の実施形態例による、カプセル化データベースから情報を抽出するプロセスを示す図である。
【図７】本発明の別の実施形態例による、ＬＩＳＴコマンドを実行する図６のプロセスの追加ステップを示す図である。
【図８】本発明の一実施形態例による、カプセル化データベースにより仲介されるインスタントメッセージプロセスを示す図である。
【図９】本発明の別の実施形態例による、第１のカプセル化データベース及び第２のカプセル化データベース並びに発見サーバにより仲介されるインスタントメッセージプロセスを示す図である。
【図１】
2009500733.tif 000006
【図２】
2009500733.tif 000007
【図３】
2009500733.tif 000008
【図４】
2009500733.tif 000009
【図５】
2009500733.tif 000010
【図６】
2009500733.tif 000011
【図７】
2009500733.tif 000012
【図８】
2009500733.tif 000013
【図９】
2009500733.tif 000014
【国際調査報告】
2009500733.tif 000015