(57)【要約】本発明は、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムおよび方法を提供する。該バインドするシステムは：プロセッサと、前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと、前記制御素性情報を記憶する記憶とを有する。前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されている。前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する。前記有効化モジュールが前記制御素性情報を前記記憶に転送させる。【特許請求の範囲】
【請求項１】
コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムであって、該バインドするシステムが：
プロセッサと；
前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと；
前記制御素性情報を記憶する記憶とを有しており；
前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されており；
前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義し；
前記有効化モジュールが前記制御素性情報を前記記憶に転送させる、
システム。
【請求項２】
前記バインド構成設定がある選択されたプラットフォームに応じて決定される、請求項１記載のシステム。
【請求項３】
前記バインド構成設定が、要素の前記各カテゴリーについて識別子のリストを含む、請求項１記載のシステム。
【請求項４】
識別子の前記リストが：要素の前記カテゴリーを表す型番号、要素の前記カテゴリーの、前記コンポーネントの動作にとっての重要性を表す重み値、前記カテゴリー中の要素が変化しうるかどうかに関する指示を表す変動性指標、前記コンポーネントの動作にとって前記カテゴリー中の要素が必須であるかどうかについての指示を表す必須性指標および前記カテゴリー中の複数の要素のそれぞれのための一般的指標を表すマスキング値、を含む群より選択される、請求項３記載のシステム。
【請求項５】
前記バインド構成設定と要素の前記各カテゴリーについての前記素性情報値との前記した組み合わせがカテゴリー素性情報を含み、前記制御素性情報が前記カテゴリー素性情報のリストを含む、請求項１記載のシステム。
【請求項６】
前記コンポーネントの存在を前記プロセッサに通信し、前記コンポーネントが前記コンピュータ・システムにロードされたときに制御素性情報の生成を開始するための信号伝達手段をさらに有する、請求項１記載のシステム。
【請求項７】
前記有効化モジュールが、前記プロセッサに、前記コンポーネントが前記コンピュータ・システムにロードされる機会ごとに新たな制御素性情報を生成させるよう構成されている、請求項６記載のシステム。
【請求項８】
前記有効化モジュールが、前記コンポーネントが前記コンピュータ・システムにおいて動作することが許されてよいかどうかを確立するために、前記プロセッサに、前記新たな制御素性情報を以前の前記制御素性情報と比較させるよう構成されている、請求項７記載のシステム。
【請求項９】
前記有効化モジュールが前記制御素性情報のそれぞれを比較のためにスコア値に変換する、請求項８記載のシステム。
【請求項１０】
前記有効化モジュールがソフトウェア・アルゴリズムを含む、請求項１記載のシステム。
【請求項１１】
前記記憶が安全な記憶である、請求項１記載のシステム。
【請求項１２】
修復要求を発する手段と、該修復要求に応答して前記制御素性情報を再設定するための手段とをさらに有する、請求項１記載のシステム。
【請求項１３】
コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムであって、該バインドするシステムが：
プロセッサと；
前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと；
前記制御素性情報を記憶する記憶とを有しており；
前記有効化モジュールは、
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する手段と；
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する手段と；
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる手段と；
前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する手段と；
前記制御素性情報を前記記憶に転送させる手段、
とを有する、システム。
【請求項１４】
コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのプログラムを担持するコンピュータ可読媒体であって、該プログラムは：
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するコードと；
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するコードと；
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てるコードと；
各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義するコードと；
前記制御素性情報を前記記憶に転送させるコード
とを有する、コンピュータ可読媒体。
【請求項１５】
コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するための方法であって：
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する段階と；
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する段階と；
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる段階と；
前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する段階と；
前記制御素性情報を記憶する段階とを有する、
方法。
【請求項１６】
前記バインド構成設定をある選択されたプラットフォームに応じて決定することを含む、請求項１５記載の方法。
【請求項１７】
前記バインド構成設定が、要素の前記各カテゴリーについて識別子のリストを含む、請求項１５記載の方法。
【請求項１８】
識別子の前記リストを：要素の前記カテゴリーを表す型番号、要素の前記カテゴリーの、前記コンポーネントの動作にとっての重要性を表す重み値、前記カテゴリー中の要素が変化しうるかどうかに関する指示を表す変動性指標、前記コンポーネントの動作にとって前記カテゴリー中の要素が必須であるかどうかについての指示を表す必須性指標および前記カテゴリー中の複数の要素のそれぞれのための一般的指標を表すマスキング値、を含む群より選択することを含む、請求項１７記載の方法。
【請求項１９】
前記バインド構成設定と要素の前記各カテゴリーについての前記素性情報値との前記した組み合わせがカテゴリー素性情報を含み、前記制御素性情報が前記カテゴリー素性情報のリストを含む、請求項１５記載の方法。
【請求項２０】
前記コンポーネントの存在を通信し、前記コンポーネントが前記コンピュータ・システムにロードされたときに前記制御素性情報の生成を開始することをさらに含む、請求項１５記載の方法。
【請求項２１】
前記コンポーネントが前記コンピュータ・システムにロードされる機会ごとに新たな制御素性情報を生成することをさらに含む、請求項２０記載の方法。
【請求項２２】
前記コンポーネントが前記コンピュータ・システムにおいて動作することが許されてよいかどうかを確立するために、前記新たな制御素性情報を以前の前記制御素性情報と比較することをさらに含む、請求項２１記載の方法。
【請求項２３】
前記制御素性情報のそれぞれを比較のためにスコア値に変換することを含む、請求項２２記載の方法。
【請求項２４】
修復要求に応答して前記制御素性情報を再設定することをさらに含む、請求項１５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法に関する。特に、本発明は、変化を許容するコンピュータ・システムにおいてコンポーネントが動作する許可を制御するシステムおよび方法に関する。コンポーネントはソフトウェア・コンポーネントでもハードウェア・コンポーネントでもよい。
【背景技術】
【０００２】
コンピュータ・システムにおける所与のソフトウェア・アプリケーションまたはコンピュータ・プログラムの使用は一般にライセンスのもとに管理され、ライセンスが個別的なコンピュータ・システムに対して特定の使用権を割り当てる。しかしながら、ソフトウェア・アプリケーションおよびコンピュータ・プログラムの不正使用の機会は一般的であり、コンピュータ・システムにおいて、特にソフトウェア・アプリケーションおよび／またはハードウェア・デバイスが時間的な変化を受けるコンピュータ・システムにおいて、ソフトウェア・アプリケーションまたはコンピュータ・プログラムの許可された使用を監視することについては著しい問題が存在する。
【０００３】
EP-1469369は、所与のコンピュータ・システムのためのハードウェア識別情報を生成するシステムを開示しているが、該識別情報は、コンピュータ・システムのハードウェアで生じる変化のレベルに依存してコンピュータ・システム上のソフトウェア・アプリケーションの動作を制御することにおいて使用するためのものである。新しいソフトウェア・プロダクトが最初にシステムにロードされるとき、コンピュータ・システムのハードウェア構成が識別され、ハードウェア識別情報が生成され、将来の使用のために保存される。このハードウェア識別情報は、コンピュータ・システム内のハードウェア・デバイスの各クラスのあらゆるハードウェア・デバイスを考慮し、その時点のコンピュータ・ハードウェア構成を表す対応するハードウェア識別情報を生成する。ソフトウェア・プロダクトのその後の再ロードに際しては、いかなる理由であれ、同じ仕方で新しいハードウェア識別情報が生成され、このソフトウェア・プログラムのさらなる使用が許可されるべきか防止されるべきかを判定するために、その新しいハードウェア識別情報が最初のハードウェア識別情報と比較される。
【０００４】
そのような既知のシステムは、特に複雑さと融通性の欠如を含め、いくつかの欠点がある。たとえば、ハードウェア識別情報を確立するためのコンピュータ・システム内のハードウェア・デバイスの各クラスのあらゆるハードウェア・デバイスを検査および識別する必要のため、ハードウェア識別情報を生成するプロセスは労が多く、時間がかかるものとなる。さらに、既知のシステムは、コンピュータ・システム内のハードウェアしか監視せず、ソフトウェアは全く考慮しない。これは本来的な限界である。
【０００５】
よって、コンピュータ・システム内のソフトウェアおよびハードウェアのコンポーネントの両方の使用を制御するためのより融通の利くシステムが必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、従来技術の問題点を克服し、コンピュータ・システムにおけるコンポーネントの動作を制御するための、融通がきき、使用が簡単なシステムおよび方法を提供することを目的とする。
【０００７】
さらに、本発明は、コンピュータ・システムにおけるコンポーネントの動作を制御するシステムおよび方法であって、それにより、所与のコンポーネントが特定のコンピュータ・システムにおいて動作されてよいかどうかを確立するための制御素性情報（control  identity）が迅速に計算できるものを提供することを目的とする。
【０００８】
さらに、本発明は、コンピュータ・システム内のコンポーネント実行の有望さを判定するために、コンピュータ・システム内のハードウェア・デバイスの変化とソフトウェア・アプリケーションの変化の両方を考慮する機能を有するような柔軟なシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ソフトウェアまたはハードウェア・コンポーネントを、好ましくは所与のプラットフォーム上の、特定のコンピュータ・システムにバインドするためのシステムおよび方法に関する。
【００１０】
バインドは、所与のコンポーネントが、権利が承認されたコンピュータ・システム内でのみ動作できることを保証する概念である。よって、コンピュータ・システム内に新しいコンポーネントがインストールされ、ライセンス権がアクティブ化されるとき、そのコンポーネントは、それがインストールされるコンピュータ・システムにバインドされる。コンポーネントはハードウェア・デバイスでもソフトウェア・アプリケーションでもよく、コンピュータ・システムはたとえばデスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、携帯電話または携帯情報端末（PDA）を含んでもよい。
【００１１】
本発明のある側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムが提供され、該バインドするシステムは：
プロセッサと；
前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュール（validator  module）と；
前記制御素性情報を記憶する記憶とを有しており；
前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定（bind  configuration）を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されており；
前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値（identity  value）を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義し；
前記有効化モジュールが前記制御素性情報を前記記憶に転送させる。
【００１２】
本発明のもう一つの側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのプログラムを担持するコンピュータ可読媒体が提供され、該プログラムは：
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するコードと；
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するコードと；
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てるコードと；
各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義するコードと；
前記制御素性情報を前記記憶に転送させるコードとを有する。
【００１３】
本発明のさらなる側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するための方法が提供され、該方法は：
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する段階と；
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する段階と；
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる段階と；
各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する段階と；
前記制御素性情報を記憶する段階とを有する。
【００１４】
本発明について、例として、好ましい実施形態を示す付属の図面を参照しつつさらに述べる。
【発明を実施するための最良の形態】
【００１５】
本発明について、これから図面に示される実施形態を参照しつつ記述する。記述される実施形態は単に例示的であること、さまざまな修正が可能であり以下の記述で言及されるのはそのいくつかであることは理解されるものとする。
【００１６】
まず図１を参照すると、本発明を具現するコンピュータ・システムはコンピュータ１０を有しており、コンピュータ１０は典型的には中央処理装置（CPU）１２と、システム・メモリ１４と、システム・メモリ１４を含めコンピュータ１０のさまざまなデバイスをCPU１２に結合するためのシステム・バス１６とを含む。システム・メモリは、コンピュータ１０内の要素間で情報を転送するための基本入出力システム（BIOS）１８およびランダム・アクセス・メモリ（RAM）２０を含んでいてもよい。
【００１７】
さらに、図１のコンピュータ・システムはディスプレイ・アダプタ２４によってシステム・バス１６に接続されたディスプレイ２２を含む。本記述においては、コンピュータ・システムはパーソナル・デスクトップ・コンピュータの形であるとし、よってディスプレイ２２はコンピュータ１０とは別個の項目として示されている。だが、コンピュータ・システムがラップトップ・コンピュータ、携帯電話または携帯情報端末（PDA）の形であり、ディスプレイ２２がコンピュータ１０内に統合して含められていることも等しく可能である。代替的に、コンピュータ・システムがサーバー・コンピュータを含むこともでき、ディスプレイ２２が省略されてもよい。
【００１８】
コンピュータ・システムはまた、典型的には、ハード・ディスク・ドライブ・インターフェース２８によってシステム・バス１６に接続されたハード・ディスク・ドライブ２６および光ディスク・ドライブ・インターフェース３２によってシステム・バスに接続されたCD-ROMドライブのような光ディスク・ドライブ３０を含んでいる。フロッピー（登録商標）・ディスク・ドライブのような他の形のコンピュータ可読媒体装置もコンピュータ１０に含められることができることは理解されるであろう。
【００１９】
コンピュータ１０はさらに、システム・バス１６を構内ネットワーク（LAN）または広域ネットワーク（WAN）のような外部ネットワーク３５に結合するためのネットワーク・インターフェース・カード（NIC）３４を含んでいる。さらに、コンピュータ１０は、さまざまな他の周辺入力および出力装置をコンピュータ・システムのシステム・バス１６に接続するためのシリアル・ポート・インターフェース３６およびユニバーサル・シリアル・バス（USB）ポート・インターフェース３８のようなさまざまな他のインターフェースを含む。図１では、そのようなハードウェア・デバイスの二つの具体的な例が、シリアル・ポート・インターフェース３６に接続されたドングル４０およびUSBポート・インターフェース３８に接続されたドングル４２として示されている。
【００２０】
ハード・ディスク・ドライブ２６はさまざまなコンピュータ・アプリケーション・ファイル４４を含む。たとえば、ファイル４４はオペレーティング・システム４６、いくつかのアプリケーション４８およびライブラリ５０を含んでいてもよい。ライブラリ５０は、なかでもコンピュータ・オペレーティング・システムの新たなアプリケーションにインストールの際に組み込むためのルーチンを含んでいる。
【００２１】
本発明によれば、コンピュータ・システムはさらに、ある特定のコンポーネントまたはアプリケーション５２がコンピュータ・システムにロードされる機会ごとに一意的な制御素性情報（以下の記述では機械素性情報（MID:  machine  identity）と称する）を生成する有効化機構（validator  arrangement）を含む。コンポーネントまたはアプリケーションがコンピュータ・システムにロードされると、システムは、システムのRAM２０内のメモリのある部分５４を、そのコンポーネントによって使用されるべく割り当てる。より具体的には、コンポーネント５２は有効化モジュール５６を含み、有効化モジュール５６は、コンポーネント５２がロードされるとCPU１２を促して、その個別のコンポーネントを特定のコンピュータ・システムに一意的にバインドまたはリンクする有効化プロセス（validation  process）を開始させる。バインドはその後、ある許容範囲内ではコンピュータ・システムのソフトウェアおよびハードウェア構成の変化に関わらず維持される。有効化モジュール５６は、コンポーネント５２から導出される情報をコンピュータ・システムの現在の構成に基づく情報と組み合わせる一意的なMIDを生成することによって、このことを達成する。いかなる理由であれコンポーネント５２がその後再ロードされるとき、有効化モジュール５６はシステムの構成が所与の許容範囲内で同じままであるかどうか、よってMIDが同じままであるかどうかを検査し、それによりコンポーネント５２が実行を許されてもよいかどうかを決定する。
【００２２】
本実施形態では、有効化モジュール５６は、コンポーネント５２内に設けられており、ハード・ディスク・ドライブ２６によってアクセス可能な有効化プログラム（validator  program）である。図示したように、有効化モジュール５６は、MIDを生成するために暗号化されたファイル６４内に含まれている、コンポーネント５２のためのバインド構成設定データ６２にアクセスする。もちろん、有効化プログラム５６は、コンピュータ・オペレーティング・システムのインストールに際して、またはその後にハード・ディスク・ドライブ２６に組み込まれることも可能である。有効化モジュール５６がソフトウェア・プログラムでなくハードウェア・プロダクトとして提供されることも可能であり、この例では、構成設定データ６２はコンポーネント中に埋め込まれることができることが可能である。しかしながら、以下の記述では、ソフトウェア・アルゴリズムの形の有効化手段を記述する。
【００２３】
のちに述べるように、コンピュータ・システム上の異なるプラットフォームについては異なるMIDが生成されうることも理解されるであろう。しかしながら、いかなる所与のコンポーネントについても、所与のプラットフォームについてはコンピュータ・システムを識別するための一意的なMIDがある。
【００２４】
この一意的なMIDは、異なるプラットフォームのために生成された他のMIDとともに、コンポーネント５２が再ロードされる将来の機会に際して、コンポーネント５２の実行を許可するかどうかを有効化プログラム５６によって決定するために参照するために、安全な（secure）記憶設備５８内に記憶される。図１に示されるように、安全な記憶設備５８は、暗号化されたファイル６０内に含まれること、および／またはドングル４０、４２のうちの一つに記憶されることもできる別個のユニットである。MIDを記憶するためにそのような安全な記憶設備５８を用いることの利点は、これが関連するデータを保護し、削除を防止するか、あるいは少なくとも可能性としての削除が検出されることを保証するということである。
【００２５】
図１は、コンピュータ１０がハードウェア・カード６６を含んでいるとしても示している。ハードウェア・カード６６は、コンポーネント５２と一緒に使うためにコンポーネント５２の製造業者が任意的に供給することがある。いくつかの状況では、コンポーネント５２内の有効化プログラム５６が動作できるためにハードウェア・カード６６が必要とされることがある。さらに、図１は、コンピュータ１０が、コンポーネントの製造業者が提供するサーバー７０に、ネットワーク３５によってアクセスしうることを示している。
【００２６】
ここで図２に目を向けると、特定のコンポーネント５２およびコンピュータ・システムの所与のプラットフォームについての一意的なMIDの内容について述べる。関係する具体的なプラットフォームに従い、コンピュータ・システムのある種のハードウェア・デバイスまたはソフトウェア・アプリケーションがコンポーネント５２の動作に必須になったり；コンピュータ・システムのある種のデバイスまたはアプリケーションが他よりも重要性または意義が大きかったり；コンピュータ・システムのある種のデバイスまたはアプリケーションが実行中に変化を受けることがあるが他は一定のままであったりする。
【００２７】
したがって、有効化プログラム５６は、コンポーネント５２と所与のプラットフォーム上でのそのコンピュータ・システムの瞬時構成との組み合わせについてのMID１００を生成するよう構成される。生成は、コンポーネント５２によって要求され、コンピュータ・システム内に見出されるハードウェア・デバイスおよびソフトウェア・アプリケーションのさまざまなカテゴリーに要素素性情報１０２の組を割り当てることによる。これらの要素素性情報１０２は以下の記述では機械部分素性情報（machine  part  identity）（MPID1、MPID2など）と記される。有効化プログラム５６はまた、MPID１０２の組に許容差値１０４を割り当てもする。
【００２８】
MPID１０２の組は事実上、コンポーネント製造業者からの機械部分のリストをなす。いくつかのプラットフォーム上ではリストは比較的長く、他のプラットフォーム上ではリストは比較的短い。三つの異なるプラットフォームについての例を下に挙げる：
ウィンドウズ（登録商標）
MPID_SYSTEM
MPID_HARDISK
MPED_NETWORK
MPID_INTERNET
MPID_BIOS
MPID_MEMORY
MPID_CPU
MPID_DONGLE
MPID_PUBLISHER
マッキントッシュ（登録商標）
MPID_SYSTEM
MPID_HARDISK
MPID_NETWORK
MPID_INTERNET
MPID_MEMORY
MPID_CPU
MPID_DONGLE
MPID_PUBLISHER
リナックス
MPID_SYSTEM
MPID_NETWORK
MPID_DONGLE
MPID_PUBLISHER
【００２９】
有効化プログラム５６が各MPID１０２を決定するのは、CPU１２にまず、コンピュータ１０にロードされた新たなコンポーネント５２に問い合わせをさせて、コンポーネント５２が動作するためにシステムのどの構成が要求されているかを確立させる。これがバインド構成設定である。より具体的には、CPU１２は必要とされるデバイスおよびアプリケーションの型、その重要性、実行中に変化しうるかどうかおよび必須であるかどうかを確立する。有効化プログラム５６は次いで有効化識別子（validation  identifier）１０６の組を、要求されるデバイスまたはアプリケーションの各型に割り当てる。そのような識別子はコンポーネントによって直接供給されてもよいし、有効化プログラム５６内に含まれるデフォルト値であってもよい。次に、有効化プログラム５６の制御下で、CPUはコンピュータ・システムにも問い合わせして、デバイスまたはアプリケーションの関連する型が存在しているかどうかを確立し、存在していたら、デバイスまたはアプリケーションのそのカテゴリーに単数または複数の具体的な識別情報値（identification  value）を割り当て、その識別情報値１０８を識別子１０６の組に含める。
【００３０】
より具体的には、有効化識別子１０６の組は、デバイスまたはアプリケーションのカテゴリーを示す型値１１０；カテゴリーのコンポーネント５２にとっての重要性を示す重み値１１２；デバイスまたはアプリケーションが実行中に変化しうるかどうかを示す変動性識別子１１４；およびデバイスまたはアプリケーションのカテゴリーが、コンポーネント５２がコンピュータ・システム上で走れるために必須か任意的かを示す必須性識別子１１６を含む。
【００３１】
さらに、コンピュータ・システムから得られた特定の識別情報値１０８は、デバイスまたはアプリケーションのその個別的なカテゴリーのための部分またはシリアル番号のような素性情報値（identity  value）１２０を含む。その特定のコンポーネント５２によってファジー比較が許容可能であると示される場合、関係する要素の群についてはマスク値１２２が含められる。たとえば、インターネット・アドレス（IPアドレス）の場合、198.168.0.*のマスク値は、198.168.0.0から198.168.0.255までの範囲内の任意のIPアドレスを包含することになる。
【００３２】
このようにして、コンポーネント５２によって要求され、コンピュータ・システム内に存在しているデバイスまたはアプリケーションの各カテゴリーがMPID１０２を割り当てられ、許容差値１０４と合わせたMPID１０２のリストは、合わさって、特定のプラットフォーム上でのコンピュータ・システムの瞬時構成設定にコンポーネント５２をバインドするために一意的なMID１００を提供する。
【００３３】
前述のように、コンポーネント５２を所与のコンピュータ・システムにバインドするためのMID１００は、プラットフォームが異なれば異なりうる。たとえば、下記の表１は、MPID_SYSTEMおよびMPID_HARDDISKがウィンドウズ（登録商標）、マッキントッシュおよびリナックスの三つのプラットフォームで異なりうる様子を示している。示されるように、MPID_SYSTEMはマッキントッシュ上で最大の重みをもつ。それは、システムと機械が統合的に関連し合っていてコンピュータ・シリアル番号が世界的に一意的であってユーザーが修正するのが困難であるのに対し、ウィンドウズ（登録商標）およびリナックスでは修正は容易に可能であるからである。同容に、MPID_HARDDISKについては、ウィンドウズ（登録商標）は最大の重み値が割り当てられている。それは、ディスク・シリアル番号が世界的に一意的であり、修正するのが非常に困難だからである。対照的に、マッキントッシュについては、重み値は4でしかない。これは、ボリューム・シリアル番号は容易に変更でき、ディスク・サイズは一意的でないからである。リナックスについてはMPID_HARDDISKについては素性情報値が入手可能でないので、ハード・ディスクはMPIDの組には含められない。
【００３４】
【表１】
2008542857.tif 000002
【００３５】
コンポーネント５２がロードされる機会ごとに、有効化プログラム５６は、MPID１０２の新たな組およびMID１００を確立するために同じ検査を行う。さらに、そのコンポーネントの構成が途中で更新されていたら、有効化プログラム５６は、そのコンポーネントから関連するMPID１０２を決定するための有効化識別子１０６の異なる組を受け取ることができ、よって、コンピュータ・システムの構成が変わっていてもいなくても、新たなMID１００を確立しうる。
【００３６】
バインド構成設定を確立し、MID１００を決定するための有効化プログラム５６の初期の諸ステップについてこれからまず図３を、次に図４を参照しつつ述べる。
【００３７】
図３を参照すると、CD-ROMドライブ３０に挿入されたCD-ROMによる、ネットワーク・インターフェース・カード３４を介してネットワークによる、あるいはコンピュータ・アプリケーション・ライブラリの一つによる新たなコンポーネント５２のコンピュータ・システムへのロードを受けて、CPU１２は有効化アルゴリズムを開始する。これはステップ２００で示されているが、ここで、アルゴリズムはCPU１２に、新たにロードされたコンポーネント５２から関連するバインド構成設定を取得するプロセスを開始するよう命令する。ステップ２０２では、CPU１２は、コンポーネント５２およびコンピュータ・システムの関連するプラットフォームに適切な構成設定データを取得するよう、つまり、要求されるコンピュータ・ハードウェア・デバイスまたはソフトウェア・アプリケーションのそれぞれについての有効化識別子１０６を取得するよう命令される。コンポーネント５２は、ステップ２０４で、暗号化されたファイル６４から構成設定データ６２を供給することによって応答する。
【００３８】
例を挙げると、最終的に素性情報MPID1を与える型値1のハードウェア・デバイスまたはソフトウェア・アプリケーションが少なくとも一つ要求され；最終的に素性情報MPID2を与える型値2のデバイスまたはアプリケーションは一つも要求されず；最終的に素性情報MPID3を与える型値3のデバイスまたはアプリケーションは少なくとも一つ要求される。コンポーネント５２はさらにデータを供給するが、そのデータが指示するところでは、MPID1についての変動性識別子１１４は、デバイスまたはアプリケーションのこのカテゴリーが変動性でありうることを意味する「yes」を示しており；必須性識別子１１６はそのカテゴリーが必須ではないことを意味する「no」であり；そのカテゴリーの重み値は5である。同様に、MPID3についての諸有効化識別子１０６は、デバイスまたはアプリケーションのこのカテゴリーが変動性ではないが、必須であり、重み10を有していることを示している。さらに、MPID3を与えるカテゴリーはファジー比較またはパターン・マッチングを認める。
【００３９】
有効化アルゴリズムはさらに、ステップ２０４で、コンポーネント５２に問い合わせることによって、30という許容差値１０４がMID１００のために確立されるべきであることを確立する。
【００４０】
そのような構成設定データがステップ２０２で読み込まれると、有効化アルゴリズムはステップ２０６に進み、その特定のコンポーネント５２についての有効化のためにコンピュータ・システム内に見出されることが要求されるデバイスまたはアプリケーションのカテゴリーのリストを集成し、そのような各デバイスにステップ２０２で読み込まれた構成設定セッティングを割り当てる。
【００４１】
ステップ２０６において集成された有効化リスト（validation  list）は、ステップ２０８でメモリ５４内に入れられ、これをもって有効化プロセスの初期段階が完了し、特定のコンポーネント５２についてのバインド構成設定が確立される。
【００４２】
有効化プログラム５６は次に、図４に示されるプロセスによってそのプラットフォームのためのMID１００を確立するのに進む。
【００４３】
ステップ３００では、CPU１２は、メモリ５４内に記憶されている有効化リストを取得し、ステップ３０２では、CPU１２は、コンピュータ・デバイスまたはアプリケーションのどのカテゴリーがこのバインド構成設定のために要求されるかを検査する。どのカテゴリーが必要とされるかを確立したところで、有効化プロセスはステップ３０４でコンピュータ・システムを検査して、コンピュータ・システム内の要求されるコンピュータ・デバイスまたはアプリケーションのそれぞれについて諸素性情報（identities）を確立する。たとえば、コンピュータ・システムは、バインド構成設定はハード・ディスク・ドライブ３２２またはハード・ディスク・ドライブ３２２上のソフトウェア・アプリケーションを要求していることを確立し、このデバイスまたはアプリケーションのための素性情報を取得するようシステムに問い合わせる。素性情報値はシリアル番号であってもよい。同様に、例として、有効化プロセスはステップ３０２から、コンポーネント５２がディスプレイ３３０ならびにCD-ROMドライブ３０またはCD-ROMドライブ３２６内のディスク上のソフトウェア・アプリケーションおよびそれぞれ図４で参照符号３５０および３５２で表される拡張スロットまたは拡張カードを要求することを確かめていたこともありうる。それぞれの場合において、CPU１２は、ステップ３０４において、関連するデバイスまたはアプリケーションについてシリアル番号のような素性情報値１２０を取得する。
【００４４】
有効化プロセスは次いでステップ３０６に進み、ステップ３０４で、必須のコンピュータ・デバイスまたはアプリケーションのすべてがコンピュータ・システム内で利用可能であると確立されたかどうかを調べる。答えが「no」であれば、有効化プロセスはステップ３０８に進んで、要求されるデバイスまたはアプリケーションが利用可能でないので、有効化が無効であると宣言する。この事例では、有効化プロセスはCPU１２に、コンポーネント５２が動作するのを防止するよう命令する。他方、ステップ３０６が、必須のコンピュータ・デバイスまたはアプリケーションがすべて利用可能であると確立した場合、プロセスはステップ３１０に進んで、ステップ３０４で取得された素性情報値１２０を、メモリ５４内でMPID１０２についてすでに記憶されている構成設定セッティングに割り当てる。MPID１０２および許容差値１０４の完全な組が今や利用可能であり、これが関連するコンポーネント５２のためのMID１００をなす。そのようなMID１００はステップ３１２で記憶設備５８に記憶され、これが有効化プロセスの第二段階を完了する。これでコンポーネント５２はコンピュータ・システム上で実行されることができる。
【００４５】
その後、コンポーネント５２がコンピュータ・システム上で実行されるたびに、コンポーネント５２がいまだ有効にコンピュータ・システムに一致するかどうか、そしてその逆を確認するためにバインド有効化検査（binding  validation  check）が実行される。このプロセスは図５に示されている。
【００４６】
有効化検査は、コンポーネント５２がコンピュータ・システムに再ロードまたはインストールされるときに開始される。その時点で、有効化プログラム５６はCPU１２に命令して、有効化検査を誘起させる。これはステップ４００として示されている。
【００４７】
ステップ４０２では、有効化プログラムはCPU１２を促して、図３を参照して述べたように、コンポーネント５２に問い合わせをして、新たなバインド構成設定を取得させる。有効化プロセスは次いでステップ４０４に進み、そこでCPU１２は、図４を参照して述べたように、コンピュータ・システム内の利用可能なコンピュータ・デバイスまたはアプリケーションのすべてについて素性情報値を確立し、これらをMPIDに割り当てる。これで新たな現在MID１００が確立された。有効化検査プロセスは今やステップ４０６に進み、そこでCPU１２は記憶設備５８に問い合わせをして、図３および図４を参照して述べた有効化プロセス・ステップの以前の実施の結果として以前のMID１００が記憶に含まれているかどうかを尋ねる。ステップ４０８では、CPU１２は以前のMID１００が入手可能であるかどうかを尋ね、答えが「no」であれば、CPU１２０はステップ４１０で現在のMID１００を記憶設備５８に書き込む。他方、ステップ４０８の問い合わせへの答えが「yes」であれば、有効化検査プロセスはステップ４１２に進み、図６を参照して述べられるサブルーチンにおいて、以前のMID１００を現在のMID１００と比較する。
【００４８】
ステップ４１４では、有効化検査プロセスは、以前のMID１００と現在のMID１００との間に、バインド構成設定において指定されている許容差値の範囲内で一致があるかどうかを問い合わせる。答えが「yes」であれば、有効化検査はステップ４１６に示されるように有効と想定され、CPU１２はコンポーネント５２が動作することを許容するよう命令される。他方、ステップ４１４の結果が「no」であれば、有効化検査は無効であると推認され、CPU１２はコンポーネント５２が動作することを防止するよう命令される。
【００４９】
ここで図６に目を転じ、図５のステップ４１２との関連で触れた、現在のMID１００を以前のMID１００と比較するためのサブルーチンについて述べる。サブルーチンはステップ５００で始まり、CPU１２は二つのMID１００を比較するよう命令される。ステップ５０２では、CPU１２は以前のMID１００についてのスコアを確立する。それはたとえば、記憶装置から以前に計算されたスコアを取得することによるか、あるいは以前のMID１００について新たにスコアを計算することによってである。スコアが確立される最初の機会には、MID１００は、コンポーネント５２が最初にコンピュータ・システムにロードされたときに得られる初期MID１００であり、スコアは初期MID１００のMPID１０２のそれぞれに割り当てられた重みを合計することによって計算されうる。
【００５０】
初期MID１００についてのスコアの確立は下記の表２に示される。
【００５１】
【表２】
2008542857.tif 000003
【００５２】
有効化検査プロセスは今やステップ５０４に進み、スコアが現在のMID１００に割り当てられる。それはたとえば、さまざまな規則のもとで、指定されたコンピュータ・デバイスまたはアプリケーションのそれぞれについての重み値１１２を合計することによる。前記規則のもとで、CPU１２はまず、指定されたコンピュータ・デバイスまたはアプリケーションが、以前のMID１００について指定されたデバイスまたはアプリケーションと同じであるかどうかを検査する。これはたとえば、デバイスまたはアプリケーションのカテゴリーのそれぞれに割り当てられた型値を比較することによる。新たに利用可能になったコンピュータ・デバイスまたはアプリケーションについての重み値１１２と、以前のMID１００における対応する素性情報値１２０に一致する素性情報値１２０をもつ指定されたコンピュータ・デバイスまたはアプリケーションについての重み値１１２とが合計される。MPID１０２についての素性情報値１２０が以前のMID１００からの対応する値に一致しない場合、重み値は現在MID１００についてのスコアに加えられず；MPID１０２が入手可能でない場合、やはり重み値はスコアに加えられない。
【００５３】
このことは下記の表３に示される。
【００５４】
【表３】
2008542857.tif 000004
【００５５】
ステップ５０２で以前のMID１００についてのスコアを、ステップ５０４で現在のMID１００についてのスコアを確立したところで、有効化検査プロセスはその二つのスコアをステップ５０６で比較する。ステップ５０８では、CPU１２は二つのスコアの間に一致があるかどうかを尋ねる。一致とは、スコアが等しいか、あるいは二つのスコアの差が設定された許容差レベル以内であり、高々コンピュータ・システムにおける通常の変化しか起こっていないと思われるかのいずれかを意味する。答えが「no」であれば、有効化検査プロセスは、以前のMID１００は異なる機械で計算されたと想定し、ステップ５１０で有効化検査は無効であると示し、コンポーネント５２はCPU１２によって動作することが防止される。他方、ステップ５０８でなされた問い合わせへの答えが「yes」の場合、有効化検査プロセスは検査が有効であると示し、ステップ５１２でCPU１２はコンポーネント５２が動作することを許可するよう命令される。同時に、記憶設備５８に記憶された以前のMID１００は新しいMID１００に更新される。
【００５６】
記憶設備５８に記憶されているMID１００を再設定することが必要または望ましい場合がありうる。有効化検査プロセスが有効化検査が無効であると示した場合であっても、それでも状況によってはコンポーネント５２の実行を許可する決定がされることもありうる。たとえば、ソフトウェア製造業者は、アクティブ化後の指定された期間内に（たとえばアクティブ化６か月以内に）要求がされれば修復を許容してもよい。もう一つの可能性は、ソフトウェア製造業者がソフトウェアのバインドの一部としてドングルを使用しており、ソフトウェアが更新されるときにドングルが変わる場合である。ドングルは通常バインドのために必須なので、これは、更新の使用がユーザーのライセンス期間内であっても、有効化検査が無効という結果を示す結果につながる。さらなる例は、ユーザーのハード・ディスクがクラッシュし、発行者がユーザーが真正の顧客であると確認できる（可能性としては購入証明を通じて）場合である。これらの事例すべてにおいて、MID１００の再設定が許可されうる。再設定設備が設けられる場合、有効化モジュール５６は、図７および図８に示されるプロセス・ステップを実装するソフトウェアを含む。これらの処理ステップについてこれから述べる。
【００５７】
第一に、再設定設備が設けられる場合、図４に示されるステップ３１２は、MID１００が生成される最初の機会にかつ該最初の機会にのみ修正される。この事例では、元のMID１００が記憶設備５８内に記憶されるのみならず、CPU１２によってMID１００のハッシュも生成され、NIC３４によってサーバー７０に送られる。ハッシュを用いるのは、秘匿性のため、個々のMPIDおよび元のバインド構成設定がサーバー７０に送信されないことを保証し、コンピュータ・システムのための一定長の識別子がサーバー７０に利用可能となることを保証するためである。その際、再設定が必要となるかもしれない場合の将来の復元のために、元のMID１００は記憶設備５８に記憶されて残り、ハッシュMIDはサーバー７０に記憶されて残る。
【００５８】
第二に、再設定設備が設けられる場合、図６に示されるステップ５０４は、図７に示されるサブルーチンを含むよう修正される。この修正は、修復の判断がなされた場合に修復が必要となりうる位置を指示するための、現在のMID１００に関連付けられた修復フラグの組を確立するためのものである。図７のサブルーチンについてこれから述べる。
【００５９】
現在のMID１００のスコアがステップ５０４で計算される間、有効化プロセスはステップ６００において修復フラグの組を初期化するよう命令を発する。この組はNビット数６０２であり、ここで各ビットは選択されたMPID１０２を表し、各ビットは初期には「1」に設定される。「1」は動作（operational）MPID１０２を表す。今の事例では、修復フラグの組は16ビット数であり、MID内の16個のMPIDの可能性をカバーする。しかしながら、長さは必要に応じて変えられることができる。ステップ６００で発された命令に応じて、有効化プロセスはステップ６０４に進み、前記Nビット数の各ビットを「1」に設定することによって修復フラグの組を初期化する。
【００６０】
次に、有効化プロセスはステップ６０６に進み、現在のMID１００内の各MPIDの素性情報値１２０が、以前のMPID１００内の対応するMPIDの素性情報値１２０と比較される。そのような各MPID１０２について、ステップ６０８で、二つの素性情報値が一致するかどうかについての問い合わせがなされる。答えが「yes」であれば、ステップ６１０において、それぞれのMPID１０２の重み値１１２が現在のMID１００についてのスコアに加えられる。他方、答えが「no」であれば、ステップ６１２で、関連するMPID１０２を表す修復フラグ６０２の組のビット値が値「0」に設定される。これは、関連MPID１０２内に欠陥があることを意味する。ステップ６１０または６１２に続いて、有効化プロセスはステップ６１４に進み、現在のMID１００に、以前のMID１００における対応部分と比較されるべきさらなるMPID１０２があるかどうかを調べる。答えが「yes」であれば、プロセスは再びステップ６０６に戻る。しかしながら、答えが「no」であれば、サブルーチンは、現在のMID１００についてスコアを修復フラグ６０２の組とともに発することによってステップ６１６で終了する。
【００６１】
その後、再設定のためのソフトウェア・プロセスは図８に示される諸ステップをたどる。コンポーネント５２がコンピュータ・システムに再ロードされ、有効化モジュール５６が図５を参照してすでに述べ、図８でステップ７００によって表される有効化検査を完了したのち、有効化モジュール５６は、CPU１２によって、ステップ７０２で、有効化検査の結果が有効だったか無効だったかを調べる。答えが「no」であれば、プロセスはステップ７０４で始まるコンポーネント内のサブルーチンに進む。ここでCPU１２は、検査が無効な結果を生じたことをユーザーに知らせ、修復要求がなされるべきかどうかをユーザーに尋ねるよう命令される。CPU１２はこれを、たとえば、ディスプレイ２２上のポップアップメッセージによってユーザーと直接相談することを通じて検証してもよい。答えが「yes」であれば、修復要求がステップ７０６で生成される。修復要求は、記憶設備５８から取得された元のMID１００のハッシュ、現在のMID１００のハッシュおよび図７のプロセスの結果として生成された修復フラグ６０２を含むことになる。次いで修復要求は、ステップ７０８および７１０において、暗号化され、サーバー７０に送られる。
【００６２】
サーバー７０はステップ７１２において修復要求を受け取り、復号し、ステップ７１４においてコンポーネント５２が最初に使われたとき以来サーバー７０に記憶されていたハッシュされた元のMID１００を取得する。次いで、コンピュータ１０からの元のMID１００のハッシュとサーバー７０からのハッシュされた元のMID１００とがステップ７１６で比較され、サーバー７０はステップ７１８で両者が一致するかどうかを調べる。答えが「yes」であれば、サーバーはステップ７２０に進み、どこで修復が必要とされているかおよび修復が許可されるべきかどうかを検討するために、サーバー７０によって受信された修復フラグ６０２を処理する。次いでサーバーはステップ７２２に進み、修復を許可するかどうかについて、ステップ７２０の結果およびコンポーネント５２についての内部的に記憶されている規則に基づいて判断をする。答えが「yes」であれば、サーバー７２０はステップ７２４で、サーバー７０に記憶されているハッシュされた元のMID１００を、ハッシュされた現在のMID１００に再設定する。サーバー７０は今度はステップ７２６に進む。ステップ７１８またはステップ７２２のいずれかの結果が「no」であれば、サーバー７０は、それぞれステップ７２０〜７２４またはステップ７２４の処理を行うことなく、まっすぐステップ７２６に進む。ステップ７２６では、サーバー７０はコンピュータ１０からの修復要求に対する応答を暗号化し、それに署名し、ステップ７２８でサーバー７０はその応答をNICカード３４によってコンピュータ・システムに送信する。応答は、修復が許可されるかどうかについての決定を含むことになる。
【００６３】
ステップ７２８で送信された決定に応じて、コンピュータ・システム内のCPU１２はステップ７３０において、サーバー７０を認証し、応答を復号する。サーバーが認証されたとして、CPU１２はステップ７３２に進み、修復がなされるべきかどうかを問い合わせる。答えが「yes」であれば、有効化プロセスは記憶設備５８内に記憶されている以前のMID１００をステップ７３４で現在のMID１００に再設定し、コンポーネント５２が再ロードされて実行されることを許可する。最後に、CPU１２はステップ７３６に進んで、記憶設備５８内の元のMID１００を現在のMID１００で置き換えもする。
【００６４】
ステップ７２８で送信された応答に含まれる決定が「no」であるか、ステップ７３０でサーバーが認証されなかったか、通信障害かの理由により前記の答えが「no」であれば、プロセスはステップ７３８で、そのコンポーネントが動作するのを防止する「無効」指示とともに、終了する。
【図面の簡単な説明】
【００６５】
【図１】本発明を具現するコンピュータ・システムのブロック図である。
【図２】有効化手段によって本発明に基づいて生成される、図１のコンピュータ・システムのための制御素性情報を表す図的な図である。
【図３】コンピュータ・システム内に最初に新たなコンポーネントをインストールする際にバインド構成設定を確立するための有効化手段のプロセスを表すフローチャートである。
【図４】図３の有効化プロセスによって得られるバインド構成設定に基づいて制御素性情報を生成するための有効化手段のプロセスを表すフローチャートである。
【図５】所与のコンポーネントがコンピュータ・システム内で動作することが許されるかどうかを検証するための有効化手段のプロセスを表すフローチャートである。
【図６】図５に示したプロセスにおける、現在の制御素性情報と以前の制御素性情報との比較がされるサブルーチンを表すフローチャートである。
【図７】バインド構成設定の確立に失敗したある種の状況において修復指示を生成するための有効化手段のプロセスを表すフローチャートである。
【図８】修復指示に反応してバインド構成設定を再設定するための有効化手段のプロセスを表すフローチャートである。
【図１】
2008542857.tif 000005
【図２】
2008542857.tif 000006
【図３】
2008542857.tif 000007
【図４】
2008542857.tif 000008
【図５】
2008542857.tif 000009
【図６】
2008542857.tif 000010
【図７】
2008542857.tif 000011
【図８】
2008542857.tif 000012
【国際調査報告】
2008542857.tif 000013