(57)【特許請求の範囲】
【請求項１】
コンピュータ内での実行が可能なプログラムであるバンドルに含まれるクラスが実行されることによりスレッド及び当該スレッドに利用されるオブジェクトが生成されるとともに、当該オブジェクトからの処理要求を他のオブジェクトが受信したときに当該実行されたバンドルを示すバンドルＩＤが記憶された後当該他のオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが記憶されるバンドルＩＤスタックを有するコンピュータであるオブジェクト制御装置において、
当該コンピュータ内での実行が可能なバンドルであって選択されたバンドルのバンドルＩＤが記憶されるバンドルＩＤ記憶部と、
当該コンピュータ内のオブジェクトが生成された後、当該オブジェクトから当該オブジェクトのオブジェクトＩＤの生成の要求があった場合、当該オブジェクトが生成されたときに実行されたバンドルのバンドルＩＤを前記バンドルＩＤスタックから取得し、当該取得したバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトのオブジェクトＩＤを生成するオブジェクトＩＤ生成手段と
を備えることを特徴とするオブジェクト制御装置。
【請求項２】
前記オブジェクトＩＤ生成手段により生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤに、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部
を備えることを特徴とする請求項１記載のオブジェクト制御装置。
【請求項３】
前記コンピュータ内のオブジェクトからオブジェクトＩＤの認証の要求があった場合、当該オブジェクトＩＤが前記オブジェクトＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトＩＤに対応づけられたバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を当該オブジェクトに送信するオブジェクトＩＤ認証手段
を備えることを特徴とする請求項２記載のオブジェクト制御装置。
【請求項４】
前記コンピュータ内に生成されるオブジェクトであるコンテナオブジェクトであって当該コンテナオブジェクトへの他のオブジェクトに対する処理要求及び当該他のオブジェクトによる処理結果たる情報の記憶と当該コンテナオブジェクトからの当該情報の取得とが行われる当該コンテナオブジェクトを生成すべく当該コンピュータ内のオブジェクトから要求があった場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該コンテナオブジェクトを生成するコンテナ生成手段
を備えることを特徴とする請求項３記載のオブジェクト制御装置。
【請求項５】
前記コンテナ生成手段は、コンテナオブジェクトの生成の際に要求を行ったオブジェクトから送信されるオブジェクトＩＤを当該コンテナオブジェクトに記憶させるものであり、
当該コンテナオブジェクトは、当該コンテナオブジェクトへの情報記憶、当該コンテナオブジェクト内の情報操作および当該コンテナオブジェクトからの情報取得の内のいずれかの要求が当該コンピュータ内のオブジェクトからあった場合、当該オブジェクトのオブジェクトＩＤが当該コンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該要求に応じることを特徴とする請求項４記載のオブジェクト制御装置。
【請求項６】
前記コンテナ生成手段により生成されるコンテナオブジェクトの存在通知を伴って当該コンピュータ内のオブジェクトへなされる要求により当該オブジェクトが当該コンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回以上行うという指示内容の中でのいずれかの要求を受ける各オブジェクトの中で最初に要求を受けるオブジェクトへの要求を行うとともに当該オブジェクトへ当該指示内容を通知するオブジェクトが、前記コンテナ生成手段に当該コンテナオブジェクトの生成の要求を行うとともに当該指示内容の中でのいずれかの要求を受ける各オブジェクトのオブジェクトＩＤの中の一部のオブジェクトＩＤを当該コンテナオブジェクトに記憶する
ことを特徴とする請求項５記載のオブジェクト制御装置。
【請求項７】
コンピュータ内での実行が可能なプログラムであるバンドルに含まれるクラスが実行されることによりスレッド及び当該スレッドに利用されるオブジェクトが生成されるとともに、当該オブジェクトからの処理要求を他のオブジェクトが受信したときに当該実行されたバンドルを示すバンドルＩＤが記憶された後当該他のオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが記憶されるバンドルＩＤスタックを有するコンピュータであるオブジェクト制御装置の制御方法において、
当該コンピュータ内での実行が可能なバンドルであって選択されたバンドルのバンドルＩＤが記憶されるバンドルＩＤ記憶部を当該オブジェクト制御装置が備えており、
当該コンピュータ内のオブジェクトＩＤ生成手段が、
当該コンピュータ内のオブジェクトが生成された後、当該オブジェクトから当該オブジェクトのオブジェクトＩＤの生成の要求があった場合、当該オブジェクトが生成されたときに実行されたバンドルのバンドルＩＤを前記バンドルＩＤスタックから取得し、当該取得したバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトのオブジェクトＩＤを生成する
ことを特徴とするオブジェクト制御装置の制御方法。
【請求項８】
前記オブジェクトＩＤ生成手段により生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤに、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部を当該オブジェクト制御装置が備えることを特徴とする請求項７記載のオブジェクト制御装置の制御方法。
【請求項９】
前記コンピュータ内のオブジェクトＩＤ認証手段が、前記コンピュータ内のオブジェクトからオブジェクトＩＤの認証の要求があった場合、当該オブジェクトＩＤが前記オブジェクトＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトＩＤに対応づけられたバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を当該オブジェクトに送信する
ことを特徴とする請求項８記載のオブジェクト制御装置の制御方法。
【請求項１０】
前記コンピュータ内のコンテナ生成手段が、前記コンピュータ内に生成されるオブジェクトであるコンテナオブジェクトであって当該コンテナオブジェクトへの他のオブジェクトに対する処理要求及び当該他のオブジェクトによる処理結果たる情報の記憶と当該コンテナオブジェクトからの当該情報の取得とが行われる当該コンテナオブジェクトを生成すべく当該コンピュータ内のオブジェクトから要求があった場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該コンテナオブジェクトを生成する
ことを特徴とする請求項９記載のオブジェクト制御装置の制御方法。
【請求項１１】
前記コンテナ生成手段は、コンテナオブジェクトの生成の際に要求を行ったオブジェクトから送信されるオブジェクトＩＤを当該コンテナオブジェクトに記憶させるものであり、
当該コンテナオブジェクトは、当該コンテナオブジェクトへの情報記憶、当該コンテナオブジェクト内の情報操作および当該コンテナオブジェクトからの情報取得の内のいずれかの要求が当該コンピュータ内のオブジェクトからあった場合、当該オブジェクトのオブジェクトＩＤが当該コンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該要求に応じることを特徴とする請求項１０記載のオブジェクト制御装置の制御方法。
【請求項１２】
前記コンテナ生成手段により生成されるコンテナオブジェクトの存在通知を伴って当該コンピュータ内のオブジェクトへなされる要求により当該オブジェクトが当該コンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回以上行うという指示内容の中でのいずれかの要求を受ける各オブジェクトの中で最初に要求を受けるオブジェクトへの要求を行うとともに当該オブジェクトへ当該指示内容を通知するオブジェクトが、前記コンテナ生成手段に当該コンテナオブジェクトの生成の要求を行うとともに当該指示内容の中でのいずれかの要求を受ける各オブジェクトのオブジェクトＩＤの中の一部のオブジェクトＩＤを当該コンテナオブジェクトに記憶する
ことを特徴とする請求項１１記載のオブジェクト制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト制御装置とその制御方法に関するものである。
【背景技術】
【０００２】
Ｊａｖａ（登録商標）で実現されるようなオブジェクト制御装置では、スレッドに管理されるオブジェクトのクラスとメソッドの名前が、当該コンピュータ内のＪａｖａ（登録商標）仮想マシンによって呼び出しスタックに記憶されるので、アクセスコントローラ（非特許文献１）が、この呼び出しスタックを参照することで、オブジェクトのクラスとメソッドを知ることができる（非特許文献２）。
【特許文献１】特開平９−２１２３４６号公報
【非特許文献１】Scott Oaks, Java（登録商標）セキュリティ，O' REILLY, 2001 pp.97-133
【非特許文献２】Java（登録商標） Language Specification Second Edition
【非特許文献３】ＯＳＧｉ Ｓｅｒｖｉｃｅ Platform Release 3, 2003
【非特許文献４】飯島正，組織構造に基づく権限の委譲を伴った分散オブジェクトモデル，電子情報通信学会論文誌，D-I, Vol.J79-D-I, No.10, pp.656-668, 1996
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、知ることができるのは、あくまでもオブジェクトのクラスとメソッドであり、スレッドに管理されるオブジェクトを知ることはできない。なお、呼び出しスタックを参照しても、クラスおよびメソッドの名前が他のものと同じならば、それらを識別することすらできない。また、かかるコンピュータ内では、オブジェクト間通信が行われるものの、これは実際には、指定したオブジェクトと通信とするような、オブジェクトを識別した上での通信ではなかった。
【０００４】
ところで、昨今では、同一のクラスから生成された複数のオブジェクトのそれぞれに、独自の所有権やアクセス権を設定し、特定の所有権等をもつオブジェクトだけに情報を公開しなければならない場合がある。例えば、ホームネットワークに接続されたテレビ受像機との通信を行うオブジェクトであっても、リビングルームにあるテレビ受像機との通信を行うオブジェクトと、書斎にあるテレビ受像機との通信を行うオブジェクトとでは、所有権等が異なるので、これらを識別する必要がある。
【０００５】
しかし、アクセスコントローラでは、このようなオブジェクト単位での識別が出来なかった。
【０００６】
また、セキュリティの観点から、クラスを含むプログラム（ソースコードなど）への改ざんを防止することで、間接的にオブジェクトの改ざんを防止することがある。しかし、これはオブジェクトごとに改ざんを防止しているのではなく、プログラムの改ざんを防止することで、このプログラム内のクラスにより生成されたスレッドに管理される全てのオブジェクトの改ざんを包括的に防止しているにすぎない。
【０００７】
一方、別々のベンダーによって作られたプログラムを協調動作させるための、ＯＳＧｉなどのプラットフォームをＪａｖａ（登録商標）仮想マシンとともに用いる場合、オブジェクトはサービスとしてプラットフォームに登録され相互に利用される（非特許文献３）。このサービスの識別には、Ｓｔｒｉｎｇ列で構成されるＳｅｒｖｉｃｅ．ｉｄやＳｅｒｖｉｃｅ.ｐｉｄが使われるが、これらは閲覧が許可されているので、偽のオブジェクト（サービス）によるオブジェクトの呼出しに使用されるおそれがある。
【０００８】
また、かかるプラットフォームが用いられる場合には、オブジェクトが生成されるときに実行されたプログラム（ＯＳＧｉでは、一連の動作に必要なプログラムをバンドルという）を示すバンドルＩＤがスタックされるバンドルＩＤスタックを参照することで、バンドルＩＤを知ることができるが、これはあくまでバンドルＩＤであり、管理されるオブジェクトを知ることはできない。
【０００９】
これらの場合とは別に、各オブジェクトに一意に識別子を与える方法が提案されている（非特許文献３）。しかし、偽のオブジェクトによる呼出しを防止する技術は開示されておらず、そのため、かかる呼び出しが行われるおそれがある。よって、オブジェクトの識別子の信頼性を担保する必要がある。
【００１０】
また、分散オブジェクトの分野では、識別子の代わりとなる、各オブジェクトに固有の鍵ペアによる公開鍵暗号方式を利用することで、偽のオブジェクトによる呼び出しを防止することができる（非特許文献４）。しかし、各オブジェクトが秘密鍵を生成するので、各オブジェクトは信頼性の高い秘密鍵を生成するという、負荷の大きい処理を行う必要がある。また、オブジェクトの呼び出しごとに公開鍵暗号の復号化が必要であり、オブジェクトの呼び出しが増加すると、コンピュータのパフォーマンスが下がる場合がある。
【００１１】
本発明は、上記課題に鑑みなされたものであり、その目的とするところは、スレッドに利用されるオブジェクトの識別が可能なオブジェクト制御装置とその制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、請求項１の本発明は、コンピュータ内での実行が可能なプログラムであるバンドルに含まれるクラスが実行されることによりスレッド及び当該スレッドに利用されるオブジェクトが生成されるとともに、当該オブジェクトからの処理要求を他のオブジェクトが受信したときに当該実行されたバンドルを示すバンドルＩＤが記憶された後当該他のオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが記憶されるバンドルＩＤスタックを有するコンピュータであるオブジェクト制御装置において、当該コンピュータ内での実行が可能なバンドルであって選択されたバンドルのバンドルＩＤが記憶されるバンドルＩＤ記憶部と、当該コンピュータ内のオブジェクトが生成された後、当該オブジェクトから当該オブジェクトのオブジェクトＩＤの生成の要求があった場合、当該オブジェクトが生成されたときに実行されたバンドルのバンドルＩＤを前記バンドルＩＤスタックから取得し、当該取得したバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトのオブジェクトＩＤを生成するオブジェクトＩＤ生成手段とを備えることを特徴とするオブジェクト制御装置をもって解決手段とする。
【００１３】
請求項２の本発明は、前記オブジェクトＩＤ生成手段により生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤに、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部を備えることを特徴とする請求項１記載のオブジェクト制御装置をもって解決手段とする。
【００１４】
請求項３の本発明は、前記コンピュータ内のオブジェクトからオブジェクトＩＤの認証の要求があった場合、当該オブジェクトＩＤが前記オブジェクトＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトＩＤに対応づけられたバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を当該オブジェクトに送信するオブジェクトＩＤ認証手段を備えることを特徴とする請求項２記載のオブジェクト制御装置をもって解決手段とする。
【００１５】
請求項４の本発明は、前記コンピュータ内に生成されるオブジェクトであるコンテナオブジェクトであって当該コンテナオブジェクトへの他のオブジェクトに対する処理要求及び当該他のオブジェクトによる処理結果たる情報の記憶と当該コンテナオブジェクトからの当該情報の取得とが行われる当該コンテナオブジェクトを生成すべく当該コンピュータ内のオブジェクトから要求があった場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該コンテナオブジェクトを生成するコンテナ生成手段を備えることを特徴とする請求項３記載のオブジェクト制御装置をもって解決手段とする。
【００１６】
請求項５の本発明は、前記コンテナ生成手段は、コンテナオブジェクトの生成の際に要求を行ったオブジェクトから送信されるオブジェクトＩＤを当該コンテナオブジェクトに記憶させるものであり、当該コンテナオブジェクトは、当該コンテナオブジェクトへの情報記憶、当該コンテナオブジェクト内の情報操作および当該コンテナオブジェクトからの情報取得の内のいずれかの要求が当該コンピュータ内のオブジェクトからあった場合、当該オブジェクトのオブジェクトＩＤが当該コンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該要求に応じることを特徴とする請求項４記載のオブジェクト制御装置をもって解決手段とする。
【００１７】
請求項６の本発明は、前記コンテナ生成手段により生成されるコンテナオブジェクトの存在通知を伴って当該コンピュータ内のオブジェクトへなされる要求により当該オブジェクトが当該コンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回以上行うという指示内容の中でのいずれかの要求を受ける各オブジェクトの中で最初に要求を受けるオブジェクトへの要求を行うとともに当該オブジェクトへ当該指示内容を通知するオブジェクトが、前記コンテナ生成手段に当該コンテナオブジェクトの生成の要求を行うとともに当該指示内容の中でのいずれかの要求を受ける各オブジェクトのオブジェクトＩＤの中の一部のオブジェクトＩＤを当該コンテナオブジェクトに記憶することを特徴とする請求項５記載のオブジェクト制御装置をもって解決手段とする。
【００１８】
請求項７の本発明は、コンピュータ内での実行が可能なプログラムであるバンドルに含まれるクラスが実行されることによりスレッド及び当該スレッドに利用されるオブジェクトが生成されるとともに、当該オブジェクトからの処理要求を他のオブジェクトが受信したときに当該実行されたバンドルを示すバンドルＩＤが記憶された後当該他のオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが記憶されるバンドルＩＤスタックを有するコンピュータであるオブジェクト制御装置の制御方法において、当該コンピュータ内での実行が可能なバンドルであって選択されたバンドルのバンドルＩＤが記憶されるバンドルＩＤ記憶部を当該オブジェクト制御装置が備えており、当該コンピュータ内のオブジェクトＩＤ生成手段が、当該コンピュータ内のオブジェクトが生成された後、当該オブジェクトから当該オブジェクトのオブジェクトＩＤの生成の要求があった場合、当該オブジェクトが生成されたときに実行されたバンドルのバンドルＩＤを前記バンドルＩＤスタックから取得し、当該取得したバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトのオブジェクトＩＤを生成することを特徴とするオブジェクト制御装置の制御方法をもって解決手段とする。
【００１９】
請求項８の本発明は、前記オブジェクトＩＤ生成手段により生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤに、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部を当該オブジェクト制御装置が備えることを特徴とする請求項７記載のオブジェクト制御装置の制御方法をもって解決手段とする。
【００２０】
請求項９の本発明は、前記コンピュータ内のオブジェクトＩＤ認証手段が、前記コンピュータ内のオブジェクトからオブジェクトＩＤの認証の要求があった場合、当該オブジェクトＩＤが前記オブジェクトＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該オブジェクトＩＤに対応づけられたバンドルＩＤが前記バンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を当該オブジェクトに送信することを特徴とする請求項８記載のオブジェクト制御装置の制御方法をもって解決手段とする。
【００２１】
請求項１０の本発明は、前記コンピュータ内のコンテナ生成手段が、前記コンピュータ内に生成されるオブジェクトであるコンテナオブジェクトであって当該コンテナオブジェクトへの他のオブジェクトに対する処理要求及び当該他のオブジェクトによる処理結果たる情報の記憶と当該コンテナオブジェクトからの当該情報の取得とが行われる当該コンテナオブジェクトを生成すべく当該コンピュータ内のオブジェクトから要求があった場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該コンテナオブジェクトを生成することを特徴とする請求項９記載のオブジェクト制御装置の制御方法をもって解決手段とする。
【００２２】
請求項１１の本発明は、前記コンテナ生成手段は、コンテナオブジェクトの生成の際に要求を行ったオブジェクトから送信されるオブジェクトＩＤを当該コンテナオブジェクトに記憶させるものであり、当該コンテナオブジェクトは、当該コンテナオブジェクトへの情報記憶、当該コンテナオブジェクト内の情報操作および当該コンテナオブジェクトからの情報取得の内のいずれかの要求が当該コンピュータ内のオブジェクトからあった場合、当該オブジェクトのオブジェクトＩＤが当該コンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、前記オブジェクトＩＤ認証手段に当該オブジェクトのオブジェクトＩＤの認証の要求を行い、当該認証が成功したことを示す処理結果が送信された場合、当該要求に応じることを特徴とする請求項１０記載のオブジェクト制御装置の制御方法をもって解決手段とする。
【００２３】
請求項１２の本発明は、前記コンテナ生成手段により生成されるコンテナオブジェクトの存在通知を伴って当該コンピュータ内のオブジェクトへなされる要求により当該オブジェクトが当該コンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回以上行うという指示内容の中でのいずれかの要求を受ける各オブジェクトの中で最初に要求を受けるオブジェクトへの要求を行うとともに当該オブジェクトへ当該指示内容を通知するオブジェクトが、前記コンテナ生成手段に当該コンテナオブジェクトの生成の要求を行うとともに当該指示内容の中でのいずれかの要求を受ける各オブジェクトのオブジェクトＩＤの中の一部のオブジェクトＩＤを当該コンテナオブジェクトに記憶することを特徴とする請求項１１記載のオブジェクト制御装置の制御方法をもって解決手段とする。
【発明の効果】
【００２４】
本発明によれば、予めバンドルＩＤをバンドルＩＤ記憶部に記憶させ、オブジェクトＩＤの生成の要求があった場合、そのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤをバンドルＩＤスタックから取得し、取得したバンドルＩＤがバンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、オブジェクトＩＤを生成することで、信用されたバンドルのバンドルＩＤをバンドルＩＤ記憶部に記憶させたときには、信用されたバンドルが実行されて生成されたオブジェクトのオブジェクトＩＤのみが生成され、よって、信用されたバンドルが実行されて生成されたオブジェクトの識別が可能となる。
【００２５】
また、オブジェクトＩＤ生成オブジェクトにより生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部と、オブジェクトＩＤの認証の要求があった場合、オブジェクトＩＤがオブジェクトＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、オブジェクトＩＤに対応づけられたバンドルＩＤがバンドルＩＤ記憶部に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を送信するオブジェクトＩＤ認証オブジェクトとを設けることで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤの使用を防止することができる。また、情報の暗号化と複合化が不要なので、コンピュータのパフォーマンス低下を防止することができる。
【００２６】
また、コンテナオブジェクトを生成すべく要求があった場合、オブジェクトＩＤ認証オブジェクトにオブジェクトＩＤの認証の要求を行い、認証が成功したことを示す処理結果が送信された場合、コンテナオブジェクトを生成するコンテナ生成オブジェクトを設けたことで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤが使用されてコンテナオブジェクトが生成されるのを防止することができる。
【００２７】
また、コンテナ生成オブジェクトが、送信されるオブジェクトＩＤをコンテナオブジェクトに記憶させるようにし、コンテナオブジェクトは、情報記憶、情報操作および情報取得の内のいずれかの要求がオブジェクトからあった場合、そのオブジェクトＩＤがコンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、そのオブジェクトＩＤの認証の要求を行い、認証が成功したことを示す処理結果が送信された場合、要求に応じることで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤが使用されて、コンテナオブジェクトへの情報記憶、情報操作および情報取得がなされるのを防止することができる。
【００２８】
また、コンテナオブジェクトの存在通知を伴ってオブジェクトへなされる要求により当該オブジェクトがコンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回以上行うという指示内容の中でのいずれかの要求を受ける各オブジェクトの中で最初に要求を受けるオブジェクトへの要求を行うとともに当該オブジェクトへ当該指示内容を通知するオブジェクトが、コンテナ生成オブジェクトにコンテナオブジェクトの生成の要求を行うとともに指示内容の中でのいずれかの要求を受ける各オブジェクトのオブジェクトＩＤの中の一部のオブジェクトＩＤをコンテナ生成オブジェクトに送信することで、コンテナ生成オブジェクト自らによってもコンテナオブジェクトに記憶されずかつ送信されないオブジェクトＩＤはコンテナオブジェクトには記憶されず、そのオブジェクトＩＤのオブジェクトがコンテナオブジェクトへ要求を行っても、そのオブジェクトＩＤでは認証が失敗し、よって、全オブジェクトが協働して指示内容の処理をコンテナオブジェクトを用いて行うようにでき、しかも、その中の一部のオブジェクトについては、そのオブジェクトによるコンテナオブジェクトへの情報記憶、情報操作および情報取得を禁止することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を図面を参照して説明する。
【００３０】
図１は、本実施の形態に係るオブジェクト制御装置とその制御方法を適用したホームネットワークシステムの構成図である。
【００３１】
ホームサーバ１は、電話機能を有する電話端末２と、スケジュール管理機能を有するコンピュータ３と、電話番号が記憶されたデータであるアドレス帳２１ならびに予定行事と予定時刻と予定行事を行うユーザのユーザＩＤの組を複数備えたスケジュールデータ３１が記憶されたデータベースシステム４とに接続されているコンピュータであり、このホームサーバ１は、本発明のオブジェクト制御装置に相当するものである。
【００３２】
ホームサーバ１は、コンピュータのハードウェアを仮想的にソフトウェアで実現した仮想マシン１１と、ホームサーバ１内に構成されたスレッドおよびオブジェクトを管理するプラットフォーム１２と、オブジェクトが生成されるときに実行されるプログラムであるバンドルが１以上記憶されたバンドル記憶部１３と、ホームサーバ１内での実行が可能なバンドルであって選択されたバンドルの識別子（以下、識別子をＩＤという）が記憶されたバンドルＩＤ記憶部１４と、ホームサーバ１内に構成されたオブジェクトでありかつ当該オブジェクトのＩＤであるオブジェクトＩＤを備えたオブジェクトの当該オブジェクトＩＤが記憶されるオブジェクトＩＤ記憶部１５を備える。
【００３３】
バンドル記憶部１３には、電話端末２に対して通信するためのプログラム（クラス）を含むプログラム（バンドル）でありかつ信用できるベンダが作成したバンドル１３０ならびにコンピュータ３内のスケジュール管理部３Ａに対して通信するためのプログラム（クラス）を含むプログラム（バンドル）でありかつ信用できるベンダが作成したバンドル１３１が記憶されている。なお、バンドル記憶部１３には、他の任意のバンドルが記憶されていてもよい。
【００３４】
プラットフォーム１２では、バンドル記憶部１３に記憶されたバンドルの１つが実行されることで、スレッドという処理部が先ず構成される。そして、このスレッドがオブジェクトを１つ以上、ホームサーバ１内に生成する。そして、その中の１つのオブジェクトが、他のオブジェクトまたは他のスレッドにより生成された他のオブジェクトに要求を行い、さらにそのオブジェクトが他のオブジェクトに要求を行うというような流れを、最初の要求元のオブジェクトを生成したスレッドが管理するようになっている。
【００３５】
ホームサーバ１には、バンドル１３０が実行されることでスレッド１２０が構成されている。また、その動作中に呼び出されるオブジェクト１６０，１６５，１６５１，１６５２および１６５３が構成されている。
【００３６】
また、ホームサーバ１には、バンドル１３１が実行されることでスレッド１２１が構成されている。また、その動作中に呼び出されるオブジェクト１６１，１６３，１６４が構成され、オブジェクト１６５，１６５１，１６５２および１６５３はスレッド１２１の動作中にも呼び出される。
【００３７】
オブジェクト１６０は、電話端末２に対して通信するオブジェクトであり、バンドル１３０内のあるクラスが実行されることで構成されたものである。以下、オブジェクト１６０を電話オブジェクト１６０という。オブジェクト１６１は、コンピュータ３のスケジュール管理部３Ａに対して通信するオブジェクトであり、バンドル１３１内のあるクラスが実行されることで構成されたものである。以下、オブジェクト１６１をスケジュール管理オブジェクト１６１という。オブジェクト１６３は、スケジュールデータ３１内の予定行事と予定時刻とユーザＩＤの組を予定時刻順にソートするオブジェクトであり、バンドル記憶部１３に記憶された他のバンドル内のあるクラスが実行されることで構成されたものである。以下、オブジェクト１６３をソートオブジェクト１６３という。オブジェクト１６５は、データベースシステム４に対して通信するオブジェクトであり、バンドル記憶部１３に記憶された他のバンドル内のあるクラスが実行されることで構成されたものである。以下、オブジェクト１６５をデータベースシステムオブジェクト１６５という。
【００３８】
ホームサーバ１内に構成されるオブジェクトのそれぞれは、ホームサーバ１内で処理を行う処理部とホームサーバ１内に設けられた記憶部とからなり、処理部は記憶部に記憶された内容に対し、これをオブジェクト以外に対して秘匿するために、暗号化などして管理する。以降、冗長化防止のため、これら処理部および記憶部という用語を用いずに説明を行う。
【００３９】
プラットフォーム１２には、スレッド１２０についてバンドルＩＤスタック１２０Ａが構成され、スレッド１２１についてバンドルＩＤスタック１２１Ａが構成される。
【００４０】
例えば、バンドルＩＤスタック１２０Ａでは、スレッド１２０に管理されるオブジェクトの中で、他のオブジェクトに要求した処理の実行を待っているオブジェクト（要求元）が生成されるときに実行されたバンドルを示すバンドルＩＤ（以下、オブジェクトが生成されるときに実行された（オブジェクトの元となる）バンドルのバンドルＩＤを便宜的に「オブジェクトのバンドルＩＤ」という）が記憶され、さらにその上に要求先のオブジェクトのバンドルＩＤが積み上げられ（スタックされ）、さらにその要求先のオブジェクトが今度は要求元となって他のオブジェクトを要求先として処理を要しその実行を待っているときは、その要求先のオブジェクトのバンドルＩＤがスタックされ、当該オブジェクトが処理を終えたときに当該バンドルＩＤが消去され、同様に最も上のバンドルＩＤが順次に消去されるというような方法で、当該各バンドルＩＤが適宜スタックあるいは消去される。バンドルＩＤスタック１２１Ａについても同様である。
【００４１】
ホームサーバ１内の全オブジェクトには、他のオブジェクトから処理を要求される（呼び出される）オブジェクトのために生成されたオブジェクトが含まれる。処理を要求される１つのオブジェクトに対して生成された３つのオブジェクトによりオブジェクト管理部が構成され、このオブジェクト管理部は、当該１つのオブジェクトのオブジェクトＩＤを予め記憶し、当該１つのオブジェクトへの要求の際にのみ処理を行うようになっている。
【００４２】
ここでは、他のオブジェクトから処理を要求されるデータベースシステムオブジェクト１６５をオブジェクト管理部１６５Ａが管理することとなっており、オブジェクト管理部１６５Ａは、オブジェクト１６５１、１６５２および１６５３で構成されている。
【００４３】
図２は、オブジェクト管理部１６５Ａの構成と当該オブジェクト管理部１６５Ａが用いられるときの要求などの流れを示す図である。
【００４４】
オブジェクト管理部１６５Ａが備える３つのオブジェクトについて説明する。先ず、オブジェクト１６５１は、管理対象であるデータベースシステムオブジェクト１６５による処理を含む指示内容で指示を行うこととなるオブジェクトのオブジェクトＩＤを生成して当該オブジェクトＩＤを当該オブジェクトに送信するオブジェクト（以下、オブジェクトＩＤ生成オブジェクト１６５１という）である。オブジェクト１６５２は、指示内容や処理結果が格納されるコンテナオブジェクトを生成するオブジェクト（以下、コンテナ生成オブジェクト１６５２という）であり、データベースシステムオブジェクト１６５のオブジェクトＩＤを備えている。オブジェクト１６５３は、コンテナオブジェクトへの処理の指示内容やデータの記憶時および処理時に送信されてくるオブジェクトＩＤを認証するオブジェクト（以下、オブジェクトＩＤ認証オブジェクト１６５３という）である。なお、この３つのオブジェクトと同様な３つのオブジェクトが、他のオブジェクトを管理する他のオブジェクト管理部（図示せず）にも設けられている。要求などの流れについては後述する。
【００４５】
図３は、バンドルＩＤ記憶部１４を例示した図である。
【００４６】
バンドルＩＤ記憶部１４には、ホームサーバ１内で実行可能なバンドルであってそのバンドルが信用されていることから選択されたバンドルの、例えば数字のバンドルＩＤが１以上記憶されている。これらのバンドルＩＤは、このバンドルＩＤをもつバンドルを、例えば信用できるベンダが作成したことにより、バンドル自体も信用され、これにより、当該バンドルＩＤ記憶部１４に記憶されている。よって、バンドルＩＤ記憶部１４には、バンドル１３０および１３１のバンドルＩＤが記憶されている。また、バンドルＩＤ記憶部１４には、ソートオブジェクト１６３のバンドルＩＤが同様の理由で記憶されている。
【００４７】
図４は、オブジェクトＩＤ記憶部１５を例示した図である。
【００４８】
オブジェクトＩＤ記憶部１５には、ホームサーバ１内に構成されたオブジェクトに送信された、当該オブジェクトのオブジェクトＩＤが記憶される。オブジェクトＩＤ記憶部１５に記憶されるオブジェクトＩＤは、例えば、当該オブジェクトＩＤをもつオブジェクトのバンドルＩＤ（Ｂ４５など）と当該オブジェクトＩＤが生成された順番を示す数字（１２など）と当該オブジェクトＩＤが生成されたときに生成された乱数（４８５４４７など）とから構成される。また、オブジェクトＩＤ記憶部１５に記憶されるオブジェクトＩＤには、当該オブジェクトＩＤをもつオブジェクトのバンドルＩＤ（Ｂ４５など）が対応づけられる。
【００４９】
なお、オブジェクトＩＤは、バンドルＩＤや生成順番と無関係なもの（例えば、乱数のみ）としてもよい。また、オブジェクトによってアクセス権が変わるような場合には、各オブジェクトＩＤに対し、仮想マシン１１やその仮想マシン１１を動作させるオペレーティングシステムなどから取得できるアクセス権、ユーザ名、デバイス名、オブジェクトのハッシュ値などを対応づけ、これらによる詳細な制御を行ってもよい。
【００５０】
（本実施の形態の動作）
次に、本実施の形態の動作を説明する。
【００５１】
図５は、スレッド１２０に呼び出された電話オブジェクト１６０が、電話端末２からの依頼により、データベースシステムオブジェクト１６５を介して、データベースシステム４内のアドレス帳２１を取得し、電話端末２へ送信するときのシーケンス図である。
【００５２】
バンドル１３０が実行されることで生成されたスレッド１２０の動作中において、電話端末２が電話オブジェクト１６０へ依頼を行い、この依頼内容により、電話オブジェクト１６０は、先ず、オブジェクトＩＤ生成オブジェクト１６５１に対し、電話オブジェクト１６０のオブジェクトＩＤを生成して当該電話オブジェクト１６０に送信するように要求する（図５：ステップＳ１）。かかる要求は、いわゆるコマンドとパラメータで行われることが一般的であるが、動作の理解を助けるため、以下においても、かかる形容を含めて要求を説明する。
【００５３】
図６は、このような要求を受けるオブジェクトＩＤ生成オブジェクト１６５１のフローチャートである。
【００５４】
オブジェクトＩＤ生成オブジェクト１６５１が、電話オブジェクト１６０などからの要求を受信した（図６：ステップＳ１０１でＹＥＳ）とき、バンドルＩＤスタック１２０Ａには、電話オブジェクト１６０のバンドルＩＤが先ず積まれ（スタックされ）、その上に、オブジェクトＩＤ生成オブジェクト１６５１のバンドルＩＤがスタックされるので、その際にオブジェクトＩＤ生成オブジェクト１６５１は、バンドルＩＤスタック１２０Ａにおける上から２番目のバンドルＩＤをプラットフォーム１２から取得する（図２、図６：ステップＳ１０３）。
【００５５】
次に、オブジェクトＩＤ生成オブジェクト１６５１は、このバンドルＩＤがバンドルＩＤ記憶部１４に記憶されているか否かを判定する（図６：ステップＳ１０５）。記憶されている（ＹＥＳ）と判定された場合は、例えば、乱数を生成し、当該バンドルＩＤと当該要求の順番を示す数字と当該乱数とからなるオブジェクトＩＤを生成する（図６：ステップＳ１０７）。
【００５６】
次に、オブジェクトＩＤ生成オブジェクト１６５１は、ステップＳ１０７で生成したオブジェクトＩＤをオブジェクトＩＤ記憶部１５に記憶させるとともに、ステップＳ１０３で取得したバンドルＩＤを当該記憶させたオブジェクトＩＤに対応づける（図６：ステップＳ１０９：オブジェクトＩＤ記憶部１５を更新）。
【００５７】
次に、オブジェクトＩＤ生成オブジェクト１６５１は、ステップＳ１０７で生成したオブジェクトＩＤを処理結果として、要求元である電話オブジェクト１６０などに送信し（図２、図６：ステップＳ１１１）、処理を終える。
【００５８】
一方、ステップＳ１０５でＮＯと判定された場合は、処理が行えなかったことを示す処理結果を要求元の電話オブジェクト１６０などに送信して処理を終える。
【００５９】
図５に戻る。なお、オブジェクトＩＤ生成オブジェクト１６５１の処理終了により、バンドルＩＤスタック１２０Ａでは、最も上にある、オブジェクトＩＤ生成オブジェクト１６５１のバンドルＩＤが消去され、電話オブジェクト１６０のバンドルＩＤが最も上のバンドルＩＤとなる。
【００６０】
次に、電話オブジェクト１６０は、オブジェクトＩＤ生成オブジェクト１６５１からオブジェクトＩＤが送信されたときは、これを受信記憶し、コンテナ生成オブジェクト１６５２に対し、コンテナオブジェクトを生成するように要求し、このときに電話オブジェクト１６０のオブジェクトＩＤをコンテナ生成オブジェクト１６５２に送信する（図５：ステップＳ３）。バンドルＩＤスタック１２０Ａでは、電話オブジェクト１６０のバンドルＩＤの上に、コンテナ生成オブジェクト１６５２のバンドルＩＤがスタックされる。
【００６１】
図７は、このような要求を受けるコンテナ生成オブジェクト１６５２のフローチャートである。
【００６２】
コンテナ生成オブジェクト１６５２は、電話オブジェクト１６０などからの要求を受信した（図７：ステップＳ２０１でＹＥＳ）とき、要求元であるオブジェクトから送信される要求元のオブジェクトＩＤを受信する（図２、図７：ステップＳ２０３）。ステップＳ２０３では、要求元でないオブジェクトのオブジェクトＩＤが要求元から１以上送信されることがあり、そのときにはその全てを受信する。
【００６３】
次に、コンテナ生成オブジェクト１６５２は、ステップＳ２０３で受信した要求元のオブジェクトＩＤをオブジェクトＩＤ認証オブジェクト１６５３に送信するとともに当該オブジェクトＩＤの認証を要求する（図２、図７：ステップＳ２０５）。バンドルＩＤスタック１２０Ａなどでは、要求元であるコンテナ生成オブジェクト１６５２のバンドルＩＤの上に、オブジェクトＩＤ認証オブジェクト１６５３のバンドルＩＤがスタックされる。
【００６４】
図８は、このような要求を受けるオブジェクトＩＤ認証オブジェクト１６５３のフローチャートである。
【００６５】
オブジェクトＩＤ認証オブジェクト１６５３は、コンテナ生成オブジェクト１６５２などからの要求を受信した（図８：ステップＳ３０１でＹＥＳ）とき、認証対象である電話オブジェクト１６０などのオブジェクトＩＤを要求元から受信する（図８：ステップＳ３０３）。そして、オブジェクトＩＤ記憶部１５を参照して（図２：ステップＳ３０５）、ステップＳ３０３で受信したオブジェクトＩＤがオブジェクトＩＤ記憶部１５に記憶されているか否かを判定する（図８：ステップＳ３０５）。記憶されている（ＹＥＳ）と判定された場合は、当該オブジェクトＩＤにオブジェクトＩＤ記憶部１５で対応づけられているバンドルＩＤをオブジェクトＩＤ記憶部１５から読み出すとともにバンドルＩＤスタック１２０Ａなどを取得し（図２：ステップＳ３０７）、読み出したバンドルＩＤに等しいバンドルＩＤが、取得したバンドルＩＤスタック１２０Ａなどの中にあるか否かを判定する（図８：ステップＳ３０７）。
【００６６】
ステップＳ３０７でバンドルＩＤがある（ＹＥＳ）と判定された場合、オブジェクトＩＤ認証オブジェクト１６５３は、認証が成功したことを示す処理結果を要求元であるコンテナ生成オブジェクト１６５２などに送信し（図８：ステップＳ３０９）、処理を終える。
【００６７】
例えば、ホームサーバ１に接続された他の電話端末（図示せず）に対して通信するオブジェクト（図示せず。以下、悪意のオブジェクト）がオブジェクトＩＤを備えているものの、そのオブジェクトＩＤがオブジェクトＩＤ記憶部１５に記憶されていない場合には、ステップＳ３０５でＮＯと判定されるので、このような場合には、オブジェクトＩＤ認証オブジェクト１６５３は、認証が失敗したことを示す処理結果を要求元であるコンテナ生成オブジェクト１６５２などに送信し（図８：ステップＳ３１１）、処理を終える。
【００６８】
よって、例えば、アドレス帳２１が電話端末２を利用する父親のものであるときに、そのアドレス帳２１が、悪意のオブジェクトと電話端末を介して子供などに開示され、子供がいたずら電話してしまうのを防止することができる。
【００６９】
一方、ステップＳ３０７では、判定結果が、以下のような事情によって分かれる。つまり、ステップＳ３０７のときに、電話オブジェクト１６０などのバンドルＩＤは、バンドルＩＤスタック１２０Ａなどの上から３番目に位置するので、ステップＳ３０７ではＹＥＳと判定されるのだが、例えば、電話オブジェクト１６０などのオブジェクトＩＤが漏洩し、電話オブジェクト１６０が他のオブジェクトに要求を行っていないときに、この漏洩したオブジェクトＩＤを悪意のオブジェクトが当該オブジェクトのオブジェクトＩＤと偽ってコンテナ生成オブジェクト１６５２などに送信した場合は、ステップＳ３０５ではＹＥＳと判定されるものの、この漏洩したオブジェクトＩＤをもつ電話オブジェクト１６０などのバンドルＩＤは、バンドルＩＤスタック１２０Ａなどに存在することはないので、ステップＳ３０７でＮＯと判定される。このような場合、オブジェクトＩＤ認証オブジェクト１６５３は、認証が失敗したことを示す処理結果を要求元であるコンテナ生成オブジェクト１６５２などに送信し（図８：ステップＳ３１１）、処理を終える。
【００７０】
よって、同様に、アドレス帳２１が、悪意のオブジェクトと電話端末を介して子供などに開示され、子供がいたずら電話してしまうことなどを防止することができる。
【００７１】
図７に戻る。なお、バンドルＩＤスタック１２０Ａなどでは、最も上にある、オブジェクトＩＤ認証オブジェクト１６５３のバンドルＩＤが消去され、コンテナ生成オブジェクト１６５２のバンドルＩＤが最も上のバンドルＩＤとなる。
【００７２】
次に、コンテナ生成オブジェクト１６５２は、認証結果を受信した（図７：ステップＳ２０７でＹＥＳ）場合、その認証結果が認証が成功したことを示すものか認証が失敗したことを示すものかを判定する（図７：ステップＳ２０９）、認証が成功したことを示すものの場合、コンテナ生成オブジェクト１６５２は、コンテナオブジェクトを生成する（図２、図７：ステップＳ２１１）。
【００７３】
次に、コンテナ生成オブジェクト１６５２は、生成したコンテナオブジェクトに、ステップＳ２０３で受信した電話オブジェクト１６０などの要求元のオブジェクトＩＤ、ステップＳ２０３で受信した、要求元でないオブジェクトのオブジェクトＩＤの全て、ならびにコンテナ生成オブジェクト１６５２に備わったデータベースシステムオブジェクト１６５のオブジェクトＩＤ（要求先となるオブジェクトのオブジェクトＩＤ）を記憶させる（図７：ステップＳ２１３）。
【００７４】
次に、コンテナ生成オブジェクト１６５２は、当該コンテナオブジェクトを直接または間接的に示す参照情報を処理結果として、要求元である電話オブジェクト１６０などに送信し（図７：ステップＳ２１５）、処理を終える。一方、認証が失敗したことを示すものの場合（ステップＳ２１５）、処理が行えなかったことを示す処理結果を要求元の電話オブジェクト１６０などに送信して処理を終える。
【００７５】
図５に戻る。なお、バンドルＩＤスタック１２０Ａでは、最も上にある、コンテナ生成オブジェクト１６５２のバンドルＩＤが消去され、電話オブジェクト１６０のバンドルＩＤが最も上のバンドルＩＤとなる。
【００７６】
次に、電話オブジェクト１６０は、生成されたコンテナオブジェクト（以下、コンテナオブジェクト１６５０１という）の参照情報（以下、参照情報１６５０１Ｒという）を受信した（図５：ステップＳ５でＹＥＳ）場合、その参照情報１６５０１Ｒを元にコンテナオブジェクト１６５０１を検出し、電話端末２からの依頼内容に基づく指示内容、ここではアドレス帳２１をデータベースシステムオブジェクト１６５がデータベースシステム４から取得してコンテナオブジェクト１６５０１に記憶させるという指示内容をコンテナオブジェクト１６５０１に記憶させるべくコンテナオブジェクト１６５０１に要求を行い、このときに電話オブジェクト１６０のオブジェクトＩＤをコンテナオブジェクト１６５０１に送信する（図２、図５：ステップＳ７）。
【００７７】
図９は、このような要求を受けるコンテナオブジェクトのフローチャートである。
【００７８】
コンテナオブジェクトは、電話オブジェクト１６０などの要求元からの要求を受信した（図９：ステップＳ４０１でＹＥＳ）とき、要求元であるオブジェクトから送信される当該オブジェクトのオブジェクトＩＤを受信する（図９：ステップＳ４０３）。バンドルＩＤスタック１２０Ａなどでは、コンテナオブジェクトのバンドルＩＤが最も上にスタックされている。
【００７９】
次に、コンテナオブジェクトは、ステップＳ４０３で受信したオブジェクトＩＤとコンテナオブジェクト内のいずれかのオブジェクトＩＤとが一致するか否かを判定する（図９：ステップＳ４０５）。ＹＥＳと判定された場合は、ステップＳ４０３で受信したオブジェクトＩＤをオブジェクトＩＤ認証オブジェクト１６５３に送信するとともに当該オブジェクトＩＤの認証を要求する（図２、図９：ステップＳ４０７）。バンドルＩＤスタック１２０Ａなどでは、コンテナオブジェクトのバンドルＩＤの上に、オブジェクトＩＤ認証オブジェクト１６５３のバンドルＩＤがスタックされる。
【００８０】
以降、図８の処理がなされる。
【００８１】
図９に戻る。なお、バンドルＩＤスタック１２０Ａなどでは、最も上にある、オブジェクトＩＤ認証オブジェクト１６５３のバンドルＩＤが消去され、コンテナオブジェクトのバンドルＩＤが最も上のバンドルＩＤとなる。以降、冗長化防止のため、バンドルＩＤスタックの状態変化の説明を省略する。
【００８２】
次に、コンテナオブジェクトは、認証結果を受信した（図９：ステップＳ４０９でＹＥＳ）とき、その認証結果が認証が成功したことを示すものか認証が失敗したことを示すものかを判定する（図９：ステップＳ４１１）、認証が成功したことを示すものの場合、コンテナオブジェクトは、要求元の電話オブジェクト１６０などからの要求を受け入れる（図９：ステップＳ４１３）。ここでは、コンテナオブジェクトは、電話オブジェクト１６０から送信される指示内容をコンテナオブジェクトに記憶させる。
【００８３】
次に、コンテナオブジェクトは、処理が終了したことを示す処理結果を要求元の電話オブジェクト１６０などに送信し（図９：ステップＳ４１５）、処理を終える。一方、ステップＳ４０５でＮＯと判定された場合は、あるいは、認証が失敗したことを示すものの場合（ステップＳ４１１）、処理が行えなかったことを示す処理結果を要求元の電話オブジェクト１６０などに送信し（図９：ステップＳ４１７）、処理を終える。
【００８４】
図５に戻り、次に、電話オブジェクト１６０は、コンテナオブジェクト１６５０１から、処理が終了したことを示す処理結果を受信した（図５：ステップＳ９でＹＥＳ）場合、データベースシステムオブジェクト１６５にコンテナオブジェクト１６５０１の参照情報１６５０１Ｒを送信して、コンテナオブジェクト１６５０１内の指示内容で処理を行うようにデータベースシステムオブジェクト１６５に要求する（図５：ステップＳ１１）。なお、参照情報などは、このように直接送信してもよいし、参照情報をホームサーバ１内に記憶させ、情報が記憶された場所を直接または間接的に示す参照情報を送信してもよい。
【００８５】
データベースシステムオブジェクト１６５は、ステップＳ１１を契機に、送信された参照情報１６５０１Ｒからコンテナオブジェクト１６５０１を検出し、コンテナオブジェクト１６５０１内の指示内容を取得すべくコンテナオブジェクト１６５０１に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５０１に送信する（図２、図５：ステップＳ１３）。
【００８６】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５０１内の指示内容を取得する。
【００８７】
図５に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５０１から、処理が終了したことを示す処理結果をを受信した（図５：ステップＳ１５でＹＥＳ）場合、コンテナオブジェクト１６５０１から取得した指示内容にしたがい、データベースシステム４からアドレス帳２１を取得する（図５：ステップＳ１７）。
【００８８】
次に、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５０１内にアドレス帳２１を記憶させるべくコンテナオブジェクト１６５０１に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５０１に送信する（図２、図５：ステップＳ１９）。
【００８９】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５０１にアドレス帳２１を記憶させる。
【００９０】
図５に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５０１から処理が終了したことを示す処理結果を受信した（図５：ステップＳ２１でＹＥＳ）場合、処理が終了したことを示す処理結果を電話オブジェクト１６０に送信し（図５：ステップＳ２３）、処理を終える。
【００９１】
電話オブジェクト１６０は、ステップＳ２３を契機に、コンテナオブジェクト１６５０１内のアドレス帳２１を取得すべくコンテナオブジェクト１６５０１に要求を行い、このときに電話オブジェクト１６０のオブジェクトＩＤをコンテナオブジェクト１６５０１に送信する（図２、図５：ステップＳ２５）。
【００９２】
以降、図９の処理がなされ、電話オブジェクト１６０は、コンテナオブジェクト１６５０１からアドレス帳２１を取得する。
【００９３】
図５に戻り、電話オブジェクト１６０は、コンテナオブジェクト１６５０１から処理が終了したことを示す処理結果をを受信した（図５：ステップＳ２７でＹＥＳ）場合、アドレス帳２１を電話端末２に送信し（ステップＳ２９）、処理を終える。
【００９４】
これにより、例えば、電話端末２が、アドレス帳２１に含まれた複数の電話番号を表示し、その１つが選択されたときに、その電話番号の回線へ発信することが可能となる。
【００９５】
さて、次に、スレッド１２１に呼び出されたスケジュール管理オブジェクト１６１に対し、コンピュータ３内のスケジュール管理部３Ａから依頼があり、これにより、データベースシステムオブジェクト１６５が、データベースシステム４内のスケジュールデータ３１を取得し、これをソートオブジェクト１６３がソートし、これをスケジュール管理オブジェクト１６１が取得し、スケジュール管理部３Ａに送信するときの動作を説明する。
【００９６】
図１０は、そのときの要求などの流れを示す図であり、図１１は、そのときのシーケンスの一部を示す図である。
【００９７】
ここでは、スケジュール管理オブジェクト１６１、ソートオブジェクト１６３は、図５のステップＳ１と同様の要求を行ったことで、自身のオブジェクトＩＤを備え、オブジェクトＩＤ記憶部１５では、当該オブジェクトＩＤが記憶され、さらに、このオブジェクトＩＤをもつオブジェクトのバンドルＩＤが対応づけられ、ソートオブジェクト１６３のオブジェクトＩＤをスケジュール管理オブジェクト１６１が既に取得していることとする。
【００９８】
バンドル１３１が実行されることで生成されたスレッド１２１の動作中において、スケジュール管理部３Ａがスケジュール管理オブジェクト１６１へ依頼を行い、この依頼内容により、スケジュール管理オブジェクト１６１は、先ず、コンテナ生成オブジェクト１６５２に対し、コンテナオブジェクトを生成するように要求し、このときにスケジュール管理オブジェクト１６１のオブジェクトＩＤならびにソートオブジェクト１６３のオブジェクトＩＤをコンテナ生成オブジェクト１６５２に送信する（図１１：ステップＳ３３）。
【００９９】
以降、図７の処理がなされ、スケジュール管理オブジェクト１６１、ソートオブジェクト１６３およびデータベースシステムオブジェクト１６５のオブジェクトＩＤを備えたコンテナオブジェクトが生成される。
【０１００】
図１１に戻り、スケジュール管理オブジェクト１６１は、生成されたコンテナオブジェクト（以下、コンテナオブジェクト１６５１１という）の参照情報（以下、参照情報１６５１１Ｒという）を受信した（図１１：ステップＳ３５でＹＥＳ）場合、その参照情報１６５１１Ｒを元にコンテナオブジェクト１６５１１を検出し、スケジュール管理部３Ａからの依頼内容に基づく指示内容、ここではスケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１１に記憶させ、ソートオブジェクト１６３がスケジュールデータ３１内の、依頼内容に含まれたユーザＩＤ（ユーザＩＤ５００という）を含む組を予定時刻順にソートするという指示内容をコンテナオブジェクト１６５１１に記憶させるべく、コンテナオブジェクト１６５１１に要求を行い、このときにスケジュール管理オブジェクト１６１のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ３７）。
【０１０１】
以降、図９の処理がなされ、指示内容がコンテナオブジェクト１６５１１に記憶される。
【０１０２】
図１１に戻り、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１１から処理が終了したことを示す処理結果を受信した（図１１：ステップＳ３９でＹＥＳ）場合、ソートオブジェクト１６３にコンテナオブジェクト１６５１１の参照情報１６５１１Ｒを送信して、コンテナオブジェクト１６５１１内の指示内容で処理を行うようにソートオブジェクト１６３に要求する（図１０、図１１：ステップＳ４１）。
【０１０３】
ソートオブジェクト１６３は、ステップＳ４１を契機に、送信された参照情報１６５１１Ｒからコンテナオブジェクト１６５１１を検出し、コンテナオブジェクト１６５１１内の指示内容を取得すべくコンテナオブジェクト１６５１１に要求を行い、このときにソートオブジェクト１６３のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ４３）。
【０１０４】
以降、図９の処理がなされ、ソートオブジェクト１６３が、コンテナオブジェクト１６５１１内の指示内容を取得する。
【０１０５】
図１１に戻り、ソートオブジェクト１６３は、コンテナオブジェクト１６５１１から処理が終了したことを示す処理結果を受信した（図１１：ステップＳ４５でＹＥＳ）場合、コンテナオブジェクト１６５１１内の指示内容が、スケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１１に記憶させ、ソートオブジェクト１６３がスケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートするという内容なので、データベースシステムオブジェクト１６５にコンテナオブジェクト１６５１１の参照情報１６５１１Ｒを送信して、コンテナオブジェクト１６５１１内の指示内容で処理を行うようにデータベースシステムオブジェクト１６５に要求する（図１０、図１１：ステップＳ４７）。
【０１０６】
データベースシステムオブジェクト１６５は、ステップＳ４７を契機に、送信された参照情報１６５１１Ｒからコンテナオブジェクト１６５１１を検出し、コンテナオブジェクト１６５１１内の指示内容を取得すべくコンテナオブジェクト１６５１１に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ４９）。
【０１０７】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５が、コンテナオブジェクト１６５１１内の指示内容を取得する。
【０１０８】
図１１に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１１から処理が終了したことを示す処理結果を受信した（図１１：ステップＳ５１でＹＥＳ）場合、コンテナオブジェクト１６５１１内の指示内容が、スケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１１に記憶させ、ソートオブジェクト１６３がスケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートするという内容なので、データベースシステム４からスケジュールデータ３１を取得する（図１１：ステップＳ５３）。
【０１０９】
次に、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１１内にスケジュールデータ３１を記憶させるべくコンテナオブジェクト１６５１１に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ５５）。
【０１１０】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１１にスケジュールデータ３１を記憶させる。
【０１１１】
図１１に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１１から処理が終了したことを示す処理結果を受信した（図１１：ステップＳ５７）場合、処理が終了したことを示す処理結果をソートオブジェクト１６３に送信し（図１１：ステップＳ５９）、処理を終える。
【０１１２】
ソートオブジェクト１６３は、ステップＳ５９を契機に、コンテナオブジェクト１６５１１内のスケジュールデータ３１内の予定行事と予定時刻の組をソートすべくコンテナオブジェクト１６５１１に要求を行い、このときにソートオブジェクト１６３のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ６１）。
【０１１３】
以降、図９の処理がなされ、ソートオブジェクト１６３が、コンテナオブジェクト１６５１１に記憶されたスケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートする。
【０１１４】
図１１に戻り、ソートオブジェクト１６３は、コンテナオブジェクト１６５１１から処理が終了したことを示す処理結果を受信した（図１１：ステップＳ６３でＹＥＳ）場合、処理が終了したことを示す処理結果をスケジュール管理オブジェクト１６１に送信し（図１１：ステップＳ６５）、処理を終える。
【０１１５】
スケジュール管理オブジェクト１６１は、ステップＳ６５を契機に、コンテナオブジェクト１６５１１内のソートされたスケジュールデータ３１を取得すべくコンテナオブジェクト１６５１１に要求を行い、このときに電話オブジェクト１６０のオブジェクトＩＤをコンテナオブジェクト１６５１１に送信する（図１０、図１１：ステップＳ６７）。
【０１１６】
以降、図９の処理がなされ、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１１からソートされたスケジュールデータ３１を取得する。
【０１１７】
図１１に戻り、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１１から、処理が終了したことを示す処理結果をを受信した（図１１：ステップＳ６９でＹＥＳ）場合、スケジュールデータ３１をコンピュータ３内のスケジュール管理部３Ａに送信し（ステップＳ７１）、処理を終える。
【０１１８】
これにより、例えば、コンピュータ３内のスケジュール管理部３Ａが、スケジュールデータ３１内のソートされた予定行事を予定時刻とともに表示させることが可能となる。
【０１１９】
次に、スケジュール管理オブジェクト１６１およびソートオブジェクト１６３とデータベースシステムオブジェクト１６５との直接通信が禁止され、スケジュール管理オブジェクト１６１、ソートオブジェクト１６３およびデータベースシステムオブジェクト１６５とオブジェクト１６４との直接通信が許可されている場合に、スレッド１２１に呼び出されたスケジュール管理オブジェクト１６１に対し、コンピュータ３内のスケジュール管理部３Ａから依頼があり、これにより、データベースシステムオブジェクト１６５が、データベースシステム４内のスケジュールデータ３１を取得し、このことをオブジェクト１６４を介してソートオブジェクト１６３に通知し、ソートオブジェクト１６３がスケジュールデータ３１をソートし、これを電話オブジェクト１６０が取得し、スケジュール管理部３Ａに送信するときの動作を説明する。
【０１２０】
図１２は、そのときの要求などの流れを示す図であり、図１３は、そのときのシーケンスの一部を示す図である。
【０１２１】
ここでは、スケジュール管理オブジェクト１６１、ソートオブジェクト１６３およびオブジェクト１６４は、図５のステップＳ１と同様の要求を行ったことで、自身のオブジェクトＩＤを備え、オブジェクトＩＤ記憶部１５には、当該オブジェクトＩＤが記憶され、さらに、このオブジェクトＩＤをもつオブジェクトのバンドルＩＤが対応づけられ、ソートオブジェクト１６３およびオブジェクト１６４のオブジェクトＩＤをスケジュール管理オブジェクト１６１が既に取得していることとする。
【０１２２】
スレッド１２１の動作中において、スケジュール管理部３Ａがスケジュール管理オブジェクト１６１に依頼を行い、この依頼内容により、スケジュール管理オブジェクト１６１は、先ず、コンテナ生成オブジェクト１６５２に対し、コンテナオブジェクトを生成するように要求し、このときにスケジュール管理オブジェクト１６１のオブジェクトＩＤならびにソートオブジェクト１６３のオブジェクトＩＤをコンテナ生成オブジェクト１６５２に送信する（図１３：ステップＳ１３３）。ここでは、オブジェクト１６４によるコンテナオブジェクトへの情報記憶、情報操作および情報取得を禁止すべく、スケジュール管理オブジェクト１６１は、オブジェクト１６４のオブジェクトＩＤをコンテナ生成オブジェクト１６５２へは送信しない。
【０１２３】
以降、図７の処理がなされ、スケジュール管理オブジェクト１６１、ソートオブジェクト１６３およびデータベースシステムオブジェクト１６５のオブジェクトＩＤを備えたコンテナオブジェクトが生成される。
【０１２４】
図１３に戻り、スケジュール管理オブジェクト１６１は、生成されたコンテナオブジェクト（以下、コンテナオブジェクト１６５１２という）の参照情報（以下、参照情報１６５１２Ｒという）を受信した（図１３：ステップＳ１３５でＹＥＳ）場合、その参照情報１６５１２Ｒからコンテナオブジェクト１６５１２を検出し、スケジュール管理部３Ａからの依頼内容に基づく指示内容、ここではスケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１２に記憶させ、このことをオブジェクト１６４を介してソートオブジェクト１６３に通知し、ソートオブジェクト１６３が、スケジュールデータ３１内の、依頼内容に含まれたユーザＩＤ（ユーザＩＤ５００という）を含む組を予定時刻順にソートするという指示内容をコンテナオブジェクト１６５１２に記憶させるべくコンテナオブジェクト１６５１２に要求を行い、このときにスケジュール管理オブジェクト１６１のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１３７）。
【０１２５】
以降、図９の処理がなされ、指示内容がコンテナオブジェクト１６５１２に記憶される。
【０１２６】
図１３に戻り、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１３９でＹＥＳ）場合、ソートオブジェクト１６３にコンテナオブジェクト１６５１２の参照情報１６５１２Ｒを送信して、コンテナオブジェクト１６５１２内の指示内容で処理を行うようにソートオブジェクト１６３に要求する（図１２、図１３：ステップＳ１４１）。
【０１２７】
ソートオブジェクト１６３は、ステップＳ１４１を契機に、送信された参照情報１６５１２Ｒからコンテナオブジェクト１６５１２を検出し、コンテナオブジェクト１６５１２内の指示内容を取得すべくコンテナオブジェクト１６５１２に要求を行い、このときにソートオブジェクト１６３のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１４３）。
【０１２８】
以降、図９の処理がなされ、ソートオブジェクト１６３が、コンテナオブジェクト１６５１２内の指示内容を取得する。
【０１２９】
図１３に戻り、ソートオブジェクト１６３は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１４５でＹＥＳ）場合、コンテナオブジェクト１６５１２内の指示内容が、スケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１２に記憶させ、このことをオブジェクト１６４を介してソートオブジェクト１６３に通知し、ソートオブジェクト１６３がスケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートするという指示内容なので、コンテナオブジェクト１６５１２の参照情報１６５１２Ｒをオブジェクト１６４に送信し、データベースシステムオブジェクト１６５へ参照情報１６５１２Ｒを送信するようにオブジェクト１６４に要求し、さらに参照情報１６５１２Ｒが示すコンテナオブジェクト１６５１２内の指示内容での処理を行うようにデータベースシステムオブジェクト１６５に要求するようにオブジェクト１６４に要求する（図１２、図１３：ステップＳ１４７）。
【０１３０】
オブジェクト１６４は、ステップＳ１４７において送信された参照情報１６５１２Ｒをデータベースシステムオブジェクト１６５へ送信し、この参照情報１６５１２Ｒが示すコンテナオブジェクト１６５１２内の指示内容での処理を行うようにデータベースシステムオブジェクト１６５に要求する（図１２、図１３：ステップＳ１４９）。
【０１３１】
ここでオブジェクト１６４は、それが例えば悪意のオブジェクトであれば、以下のことが可能となる。つまり、送信された参照情報１６５１２Ｒからコンテナオブジェクト１６５１２を検出し、図１２にステップＳ１５１で示すように、コンテナオブジェクト１６５１２内の指示内容を取得すべくコンテナオブジェクト１６５１２に要求を行い、このときにオブジェクト１６４のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信することができる。しかし、コンテナオブジェクト１６５１２内には、オブジェクト１６４のオブジェクトＩＤが記憶されていないので、オブジェクト１６４は、コンテナオブジェクト１６５１２内の指示内容を取得できず、オブジェクト１６４には、コンテナオブジェクト１６５１２から処理が行えなかったことを示す処理結果が送信される（図１２：ステップＳ１５３）。
【０１３２】
また、オブジェクト１６４は、送信された参照情報１６５１２Ｒからコンテナオブジェクト１６５１２を検出し、図１２のステップＳ１５１でコンテナオブジェクト１６５１２内の指示内容を取得すべくコンテナオブジェクト１６５１２に要求を行うときに、例えば、漏洩あるいは不正に取得したオブジェクトＩＤをオブジェクト１６４のオブジェクトＩＤと偽ってコンテナオブジェクト１６５１２に送信することができる。このオブジェクトＩＤを最初に受信したオブジェクトのオブジェクトＩＤがオブジェクトＩＤ記憶部１５に記憶されている場合には、オブジェクトＩＤ記憶部１５が参照（図１２：ステップＳ３０３）され、図８のステップＳ３０３の判定でＹＥＳと判定されるものの、当該オブジェクトが他のオブジェクトに要求を行っていないときには、取得したバンドルＩＤスタック１２１Ａ（図１２：ステップＳ３０４）には、漏洩等した当該オブジェクトのオブジェクトＩＤが存在しないので、図８のステップＳ３０７の判定でＮＯと判定される。よって、結局は、オブジェクト１６４は、コンテナオブジェクト１６５１２内の指示内容を取得できず、オブジェクト１６４には、コンテナオブジェクト１６５１２から処理が行えなかったことを示す処理結果が送信される（図１２：ステップＳ１５３）。
【０１３３】
さて、このようなことがなく、ステップＳ１４９が行われたとき、データベースシステムオブジェクト１６５は、このステップＳ１４９を契機に、送信された参照情報１６５１２Ｒからコンテナオブジェクト１６５１２を検出し、コンテナオブジェクト１６５１２内の指示内容を取得すべくコンテナオブジェクト１６５１２に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１５９）。
【０１３４】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５が、コンテナオブジェクト１６５１２内の指示内容を取得する。
【０１３５】
図１３に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１６１でＹＥＳ）場合、コンテナオブジェクト１６５１２内の指示内容が、スケジュールデータ３１をデータベースシステムオブジェクト１６５が取得してコンテナオブジェクト１６５１２に記憶させ、このことをオブジェクト１６４を介してソートオブジェクト１６３に通知し、ソートオブジェクト１６３が、スケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートするという内容なので、データベースシステム４からスケジュールデータ３１を取得する（図１３：ステップＳ１６３）。
【０１３６】
次に、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１２内にスケジュールデータ３１を記憶させるべくコンテナオブジェクト１６５１２に要求を行い、このときにデータベースシステムオブジェクト１６５のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１６５）。
【０１３７】
以降、図９の処理がなされ、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１２にスケジュールデータ３１を記憶させる。
【０１３８】
図１３に戻り、データベースシステムオブジェクト１６５は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１６７）場合、処理が終了したことを示す処理結果をオブジェクト１６４に送信し（図１１：ステップＳ１６９）、処理を終える。
【０１３９】
オブジェクト１６４は、ステップＳ１６９を契機に、処理が終了したことを示す処理結果をソートオブジェクト１６３に送信し（図１３：ステップＳ１７１）、処理を終える。
【０１４０】
ソートオブジェクト１６３は、ステップＳ１７１を契機に、コンテナオブジェクト１６５１２内のスケジュールデータ３１内の予定行事と予定時刻の組をソートすべくコンテナオブジェクト１６５１２に要求を行い、このときにソートオブジェクト１６３のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１８１）。
【０１４１】
以降、図９の処理がなされ、ソートオブジェクト１６３が、コンテナオブジェクト１６５１２内のスケジュールデータ３１内の、ユーザＩＤ５００を含む組を予定時刻順にソートする。
【０１４２】
図１３に戻り、ソートオブジェクト１６３は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１８３でＹＥＳ）場合、処理が終了したことを示す処理結果をスケジュール管理オブジェクト１６１に送信し（図１３：ステップＳ１８５）、処理を終える。
【０１４３】
スケジュール管理オブジェクト１６１は、ステップＳ１８５を契機に、コンテナオブジェクト１６５１２内のソートされたスケジュールデータ３１を取得すべくコンテナオブジェクト１６５１２に要求を行い、このときにスケジュール管理オブジェクト１６１のオブジェクトＩＤをコンテナオブジェクト１６５１２に送信する（図１２、図１３：ステップＳ１８７）。
【０１４４】
以降、図９の処理がなされ、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１２からソートされたスケジュールデータ３１を取得する。
【０１４５】
図１３に戻り、スケジュール管理オブジェクト１６１は、コンテナオブジェクト１６５１２から、処理が終了したことを示す処理結果を受信した（図１３：ステップＳ１８９でＹＥＳ）場合、スケジュールデータ３１をコンピュータ３内のスケジュール管理部３Ａに送信し（ステップＳ１９１）、処理を終える。
【０１４６】
以上説明したように、本実施の形態によれば、予めバンドルＩＤをバンドルＩＤ記憶部１４に記憶させ、オブジェクトＩＤの生成の要求があった場合、そのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤをバンドルＩＤスタックから取得し、取得したバンドルＩＤがバンドルＩＤ記憶部１４に記憶されているか否かを判定し、記憶されている場合、オブジェクトＩＤを生成することで、信用されたバンドルのバンドルＩＤをバンドルＩＤ記憶部１４に記憶させたときには、信用されたバンドルが実行されて生成されたオブジェクトのオブジェクトＩＤのみが生成され、よって、信用されたバンドルが実行されて生成されたオブジェクトの識別が可能となる。
【０１４７】
また、オブジェクトＩＤ生成オブジェクトにより生成されたオブジェクトＩＤが記憶され、当該オブジェクトＩＤのオブジェクトが生成されたときに実行されたバンドルのバンドルＩＤが対応づけられるオブジェクトＩＤ記憶部１５と、オブジェクトＩＤの認証の要求があった場合、オブジェクトＩＤがオブジェクトＩＤ記憶部１５に記憶されているか否かを判定し、記憶されている場合、オブジェクトＩＤに対応づけられたバンドルＩＤがバンドルＩＤ記憶部１４に記憶されているか否かを判定し、記憶されている場合、当該認証が成功したことを示す認証結果を送信するオブジェクトＩＤ認証オブジェクトとを設けることで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤの使用を防止することができる。また、情報の暗号化と複合化が不要なので、コンピュータのパフォーマンス低下を防止することができる。
【０１４８】
また、コンテナオブジェクトを生成すべく要求があった場合、オブジェクトＩＤ認証オブジェクトにオブジェクトＩＤの認証の要求を行い、認証が成功したことを示す処理結果が送信された場合、コンテナオブジェクトを生成するコンテナ生成オブジェクトを設けたことで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤが使用されてコンテナオブジェクトが生成されるのを防止することができる。
【０１４９】
また、コンテナ生成オブジェクトが、送信されるオブジェクトＩＤをコンテナオブジェクトに記憶させるようにし、コンテナオブジェクトは、情報記憶、情報操作および情報取得の内のいずれかの要求がオブジェクトからあった場合、そのオブジェクトＩＤがコンテナオブジェクトに記憶されているか否かを判定し、記憶されている場合、そのオブジェクトＩＤの認証の要求を行い、認証が成功したことを示す処理結果が送信された場合、その要求に応じることで、偽のオブジェクトＩＤでは認証が失敗し、よって、偽のオブジェクトＩＤが使用されて、コンテナオブジェクトへの情報記憶、情報操作および情報取得がなされるのを防止することができる。
【０１５０】
また、図１３で説明したように、コンテナオブジェクトの存在通知（参照情報による）を伴ってオブジェクトへなされる要求により当該オブジェクトがコンテナオブジェクトの存在通知を伴う他のオブジェクトへの要求を行うということを連鎖的に２回行うという指示内容の中でのいずれかの要求を受ける各オブジェクト（ソートオブジェクト１６３とオブジェクト１６４とデータベースシステムオブジェクト１６５）の中で最初に要求を受けるオブジェクト（ソートオブジェクト１６３）への要求を行うとともに当該オブジェクト（ソートオブジェクト１６３）へ当該指示内容を通知するオブジェクト（スケジュール管理オブジェクト１６１）が、コンテナオブジェクトの生成の要求を行う（ステップＳ１３３）とともに各オブジェクト（ソートオブジェクト１６３とオブジェクト１６４とデータベースシステムオブジェクト１６５）のオブジェクトＩＤの中の一部のオブジェクトＩＤ（ソートオブジェクト１６３のオブジェクトＩＤ）をコンテナ生成オブジェクトに送信することで、コンテナ生成オブジェクト自らによってもコンテナオブジェクトに記憶されずかつ送信もされないオブジェクトＩＤ（オブジェクト１６４のオブジェクトＩＤ）はコンテナオブジェクトには記憶されず、そのオブジェクトＩＤのオブジェクトがコンテナオブジェクトへ要求を行っても、そのオブジェクトＩＤでは認証が失敗し、よって、全オブジェクト（ソートオブジェクト１６３とオブジェクト１６４とデータベースシステムオブジェクト１６５）が協働して指示内容の処理をコンテナオブジェクトを用いて行うようにでき、しかも、その中の一部のオブジェクト（オブジェクト１６４）については、そのオブジェクトによるコンテナオブジェクトへの情報記憶、情報操作および情報取得を禁止することができる。なお、かかる作用効果は、ここでは連鎖的に２回行った要求を３回以上とし、それに応じた態様でオブジェクトが動作する場合であっても同様にして得られる。
【０１５１】
なお、ホームサーバ１としてコンピュータを機能させるコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【０１５２】
また、上記実施の形態では、ホームサーバとしてのオブジェクト制御装置を説明したが、他の態様、例えばインターネットに設けられるサーバあるいはパーソナルコンピュータとして、オブジェクト制御装置を具現化してもよい。
【図面の簡単な説明】
【０１５３】
【図１】本実施の形態に係るオブジェクト制御装置とその制御方法を適用したホームネットワークシステムの構成図である。
【図２】オブジェクト管理部１６５Ａの構成と、電話端末２からの依頼により電話オブジェクト１６０が、データベースシステムオブジェクト１６５を介して、データベースシステム４内のアドレス帳２１を取得し、電話端末２へ送信するときの要求などの流れを示す図である。
【図３】バンドルＩＤ記憶部１４を例示した図である。
【図４】オブジェクトＩＤ記憶部１５を例示した図である。
【図５】図２で要求などの流れを示した動作のシーケンス図である。
【図６】オブジェクトＩＤ生成オブジェクト１６５１のフローチャートである。
【図７】コンテナ生成オブジェクト１６５２のフローチャートである。
【図８】オブジェクトＩＤ認証オブジェクト１６５３のフローチャートである。
【図９】コンテナオブジェクトのフローチャートである。
【図１０】データベースシステムオブジェクト１６５がスケジュールデータ３１を取得し、これをソートオブジェクト１６３がソートし、これをスケジュール管理オブジェクト１６１が取得し、スケジュール管理部３Ａに送信するときの要求などの流れを示す図である。
【図１１】図１０で要求などの流れを示した動作のシーケンス図である。
【図１２】データベースシステムオブジェクト１６５がスケジュールデータ３１を取得し、これをオブジェクト１６４を介してソートオブジェクト１６３が取得ソートし、これを電話オブジェクト１６０が取得し、スケジュール管理部３Ａに送信するときの要求などの流れを示す図である。
【図１３】図１２で要求などの流れを示した動作のシーケンスの一部を示す図である。
【符号の説明】
【０１５４】
１…ホームサーバ
２…電話端末
３…コンピュータ
３Ａ…スケジュール管理部
４…データベースシステム
１１…仮想マシン
１２…プラットフォーム
１３…バンドル記憶部
１４…バンドルＩＤ記憶部
１５…オブジェクトＩＤ記憶部
２１…アドレス帳
３１…スケジュールデータ
１２０，１２１…スレッド
１２０Ａ，１２１Ａ…バンドルＩＤスタック
１６０…電話オブジェクト
１６１…スケジュール管理オブジェクト
１６３…ソートオブジェクト
１６５…データベースシステムオブジェクト
１６５Ａ…オブジェクト管理部
１６５１…オブジェクトＩＤ生成オブジェクト
１６５２…コンテナ生成オブジェクト
１６５３…オブジェクトＩＤ認証オブジェクト
１６５０１，１６５１１，１６５１２…コンテナオブジェクト
１６５０１Ｒ，１６５１１Ｒ，１６５１２Ｒ…参照情報
【図１】
0004688591.tif 000002
【図２】
0004688591.tif 000003
【図３】
0004688591.tif 000004
【図４】
0004688591.tif 000005
【図５】
0004688591.tif 000006
【図６】
0004688591.tif 000007
【図７】
0004688591.tif 000008
【図８】
0004688591.tif 000009
【図９】
0004688591.tif 000010
【図１０】
0004688591.tif 000011
【図１１】
0004688591.tif 000012
【図１２】
0004688591.tif 000013
【図１３】
0004688591.tif 000014