(57)【要約】  仮想専用サーバをホスティングする方法およびシステムでは、システムユーティリティおよびアプリケーションプログラムへのアクセスは、データネットワークを介してリモートに行われる。ホスティングコンピュータファイルシステムのルートディレクトリから得られたサブディレクトリツリーをそのルートディレクトリツリーとして割り当て、オペレーティングシステムユーティリティ、上記仮想専用サーバによって実行されるべきプログラムおよび／または上記サブディレクトリツリー上のプログラムへのハードリンクを配置することにより各仮想専用サーバを作成した後、上記コンピュータシステムの通信ポートを通じて入来するデータがインターセプトされる。サービスに関する要求が識別されると、上記データが処理され、上記要求の送信先となっている仮想専用サーバが識別可能となり、上記要求はサービス提供プログラムへと回送される。
2005514699.tif 000002
【特許請求の範囲】
【請求項１】
ホスティングコンピュータシステム上に１つ以上の仮想専用サーバをホスティングする方法であって、前記仮想専用サーバはそれぞれ、前記ホスティングコンピュータシステムのエミュレーションであり、前記ホスティングコンピュータシステム上において、システムユーティリティおよびアプリケーションプログラムへのアクセスは、データネットワークを介してリモートに行われ、
前記方法は、
ａ）各仮想専用サーバを作成するステップであって、
（ｉ）前記ホスティングコンピュータのファイルシステムのルートディレクトリから得られたサブディレクトリツリーを、前記仮想専用サーバのルートディレクトリツリーとして割り当てるステップと、
（ｉｉ）前記仮想専用サーバによって提供されるサービスによって要求される、又は正規動作モードにおいて本質的な動作をするため前記ホスティングコンピュータのオペレーティングシステムによって要求される、前記オペレーティングシステムユーティリティのサブセットを前記サブディレクトリツリー上に配置するステップと、
（ｉｉｉ）前記仮想専用サーバによって実行されるプログラムおよび／または前記プログラムへのハードリンクを前記サブディレクトリツリー上に配置するステップと、
ｂ）前記コンピュータシステムの通信ポートを通じて入来するデータをインターセプトするステップと、
ｃ）前記仮想専用サーバの１つと関連付けられたサービス提供プログラムへのサービスに対する要求が前記データ中で識別された場合、
（ｉ）前記データを処理することにより、前記要求の送信先となっている前記仮想専用サーバを識別するステップと、
（ｉｉ）前記サービス提供プログラムが前記仮想専用サーバ上で未だ呼び出されていない場合、対応するサブディレクトリツリー中に格納されている前記サービス提供プログラムを呼び出すステップと、
（ｉｉｉ）前記要求を前記サービス提供プログラムに回送し、前記サービスを前記サービス提供プログラムにより提供するステップと、
（ｉｖ）前記サービスに関する要求物を提供するステップが終了すると、前記サービス提供プログラムのプロセスを必要に応じて終了するステップと、
を含むことを特徴とした方法。
【請求項２】
前記オペレーティングシステムユーティリティの一部または全部が、対応するハードリンクと取り替えられたことを特徴とした請求項１記載の方法。
【請求項３】
前記サブディレクトリツリーが、前記ホスティングコンピュータのアカウントによって限定されることを特徴とした請求項１記載の方法。
【請求項４】
前記仮想専用サーバのうち１つ以上は、その一意に定まるＩＰアドレスによって識別されることを特徴とした請求項１記載の方法。
【請求項５】
前記仮想専用サーバのうち１つ以上は、１つの共有ＩＰアドレスおよびその名前によって識別されることを特徴とした請求項１記載の方法。
【請求項６】
Ｕｎｉｘ（登録商標）ベースのオペレーティングシステムにおいて、Ｃｈｒｏｏｔシステムコールまたはそれに相当する手段によって仮想専用サーバ上で実行中のプロセスを前記サブディレクトリツリーに限定することを特徴とした請求項１記載の方法。
【請求項７】
Ｕｎｉｘ（登録商標）ベースのオペレーティングシステムにおいて、Ｓｅｔｕｉｄシステムコマンドまたはそれに相当する手段によって仮想専用サーバ上で実行中のプロセスをそのアカウントに限定することを特徴とした請求項３記載の方法。
【請求項８】
前記ホスティングコンピュータシステムによってホスティングされる前記仮想専用サーバのうち１つ、いくつか、または全ては、一人のシステム管理者によって管理されることを特徴とした請求項１記載の方法。
【請求項９】
Ｕｎｉｘ（登録商標）ベースのシステムにおいて実装が行われる場合、前記システムのカーネルの変更は行われないことを特徴とした請求項１記載の方法。
【請求項１０】
前記ホスティングコンピュータのリソースを利用するオペレーティングシステムコールが、前記コンピュータのリソース消費をモニタリングするためにインターセプトされることを特徴とした請求項１記載の方法。
【請求項１１】
前記モニタリングは、前記仮想専用サーバの利用率を得る目的および／または少なくとも所定のサービスレベルを前記仮想専用サーバに提供する目的および／または最低限のサービス品質を前記仮想専用サーバに提供する目的のために用いられることを特徴とした請求項１０記載の方法。
【請求項１２】
前記ホスティングコンピュータがＵｎｉｘ（登録商標）ベースのシステムであることを特徴とした請求項１記載の方法。
【請求項１３】
前記サービス提供プログラムは、オペレーティングシステムのサービスまたは前記仮想専用サーバ上で実行中のプログラムであることを特徴とした請求項１記載の方法。
【請求項１４】
前記データネットワークがＴＣＰ／ＩＰネットワークであることを特徴とした請求項１記載の方法。
【請求項１５】
１つ以上の仮想専用サーバをホスティングするコンピュータシステムであって、前記仮想専用サーバはそれぞれ、前記コンピュータシステムのエミュレーションであり、前記コンピュータシステム上において、システムユーティリティおよびアプリケーションプログラムへのアクセスは、データネットワークを介してリモートに行われ、前記仮想専用サーバはそれぞれ、
前記コンピュータのファイルシステムのルートディレクトリから得られ、かつ、前記仮想専用サーバのルートディレクトリツリーとして用いられるサブディレクトリツリーと、
前記仮想専用サーバによって提供されるサービスによって要求される、又は正規動作モードにおいて本質的な動作をするため前記ホスティングコンピュータのオペレーティングシステムによって要求される、前記サブディレクトリツリー上のオペレーティングシステムユーティリティのサブセットと、
ポートを通過するデータをインターセプトし、前記データを前記適切な仮想専用サーバへと方向付けるソフトウェア手段と、
前記データを解析し、前記データの送信先となっている前記仮想専用サーバを識別し、前記データを前記仮想専用サーバへと回送するソフトウェア手段と、
を含むことを特徴としたコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、専用サーバの分野に関する。より詳細には、本発明は、単一のコンピュータシステム上に複数の専用サーバをホスティングする方法およびシステムに関する。
【背景技術】
【０００２】
従来技術においては、ウェブホスティングプロバイダ（ＷＨＰ）の特定の要求に応じて、すぐに利用可能な既製の解決法（オフザシェルフソリューション）はなかった。そのため、「ＷＨＰ」は、時間のかかる日々の仕事である日常業務を自動化するためのソフトウェアを自身で開発しなければならなかった。これらのシステムには欠陥が多数あるため、ＷＨＰにおける新規サービスの取りかかりに支障が出る。サービスプロバイダは様々な種類のサービス提供に主に焦点を当てており、これらの部分的解決法は、サービスプロバイダによって作られたのにもかかわらず、管理上「ボトムアップ」アプローチをとっていた。このため、管理者は、顧客サービスを構成するため、末端のサーバ（低レベルサーバ）の詳細を理解しなければならない。例えば、管理者は、ＩＰアドレスの分配、ＤＮＳ登録、ローカルサーバの設定、新規サーバへのユーザアカウントの追加といった作業を手作業で行った後でないと、サービス提供プロセスに進むことができない。このように、既存の管理システムに関連する欠陥としては、ホスティング対象サービスを提供する際に、多くの複雑かつ反復的作業を行うために、高技能、高コスト、そして発見および保持が困難な技術者（エンジニアリングリソース）が必要とされる事実がある。
【０００３】
企業にとっては、自社ウェブサイトの全施設を自社スタッフで管理できると好適な面もある反面、ウェブサイト維持にはコストがかかり過ぎる面もある。そのため、合理的解決法として、ＷＨＰのウェブサービスをアウトソーシングする方法がある。ウェブサイトをローカルに設置（ホスティング）するのも、高コストである。その理由としては、サイトへのインターネットトラヒックに十分な帯域を分配しなければならない点、当該サイトを（ソフトウェアおよびハードウェア両方の観点において）常時利用可能にするためのリソースを分配しなければならない点、およびセキュリティ面（例えば、ファイヤウォール）を考慮しなければならない点が挙げられる。
【０００４】
ＷＨＰは、求められるサービスレベルに応じて様々なサービスモデルを用いて、多種多様な顧客に対応している。小規模ビジネスおよび中規模ビジネスによるウェブサイトは、通常専用サーバによって提供されるリソースを先取りしないため、共有型サーバモデルによって管理されることの方が多い。しかし、このような小規模ビジネスおよび中規模ビジネスによるウェブサイトによる要求が変化し、サイト内活動が増加するにつれ、当該サイトはより多くのリソースを消費するようになり、また、管理対象の専用ホスティングの機能を高めるために、適切なアップグレード手段（経路）を必要とする。
【０００５】
従来技術では、「仮想ホスティング」という用語は、単一のコンピュータシステム上に複数のウェブドメインを維持することを指す。
【０００６】
仮想ホスティングを行う方法には、ネームベース法およびＩＰベース法の２種類がある。ＩＰベースの仮想ホスティングの場合、１つのホストコンピュータが複数のＩＰアドレス（各ＩＰアドレスは各ドメインに対応する）を取り扱う。ネームベースの仮想ホスティングの場合、１つのＩＰアドレスを複数のドメインが共有する。
【０００７】
ＨＴＴＰ／１．１プロトコルおよびＨＴＴＰ／１．０への共通エクステンションはネームベースの仮想ホスティングをサポートしているため、ウェブサーバはこのプロトコルに対応する。しかし、従来技術では、ＦＴＰおよびＥメールサービスを提供する複数のドメイン間で１つのＩＰアドレスを共有する問題に対する解決法は提示されなかった。
【０００８】
従来技術における唯一の解決法は、Ｕｎｉｘ（登録商標）ベースの（または類似の）オペレーティングシステムの複製物を複数実行することにより、複数の仮想コンピュータ（本明細書中、仮想専用サーバ−（ＶＤＳ）と呼ぶ）を作成する方法である。各仮想コンピュータがオペレーティングシステム全体をサポートするため、この解決法は一般的である。しかし、この利点は同時に欠陥ともなる。その理由は、この方法の場合、コンピュータリソースを大量に消費するからである。例えば、Ｐｅｎｔｉｕｍ（登録商標）８００プロセッサおよび２５６の物理メモリを備えた典型的なＵｎｉｘ（登録商標）ベースのシステムの場合、Ｕｎｉｘ（登録商標）ベースのオペレーティングシステムの複製物を１０個までホスティングすることができる。
【０００９】
この方法の別の欠陥としては、仮想コンピュータの間でホスティングコンピュータのリソースが静的に分割される点がある。その結果、例えば、実際のコンピュータが１０個の同じ仮想コンピュータに分割され、実行中の仮想コンピュータが１つだけであっても、システムリソースの１０％が各仮想コンピュータに分配されることとなる。動的リソース分配を用いた場合、仮想コンピュータごとのパフォーマンスは良くなるため、ユーザ側から見たパフォーマンスは良くなる。
【００１０】
本明細書中、リモートクライアントが自身のシステムユーティリティおよびプログラムにアクセスすることが可能なコンピュータシステムのエミュレーションを仮想専用サーバ（ＶＤＳ）と呼ぶ。１つのホスティングコンピュータシステム上で、複数のＶＤＳインスタンスを同時実行することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、従来技術と比較してより多くの仮想専用サーバをコンピュータ上で実行することができる、複数の仮想専用サーバをホスティングする方法およびシステムを提供することである。
【００１２】
本発明の別の目的は、ある仮想専用サーバのファイルシステムが別の仮想専用サーバによってアクセスされるのを防ぐことができる、複数の仮想専用サーバをホスティングする方法およびシステムを提供することである。
【００１３】
本発明のさらなる目的は、従来技術と比較してホスティングされる仮想専用サーバのパフォーマンスが改善されている、複数の仮想専用サーバをホスティングする方法およびシステムを提供することである。
【００１４】
本発明のさらなる目的は、従来技術と比較してコンピュータリソース（例えば、ＣＰＵ、常駐メモリおよびディスクストレージ）の消費が低減されている、複数の仮想専用サーバをホスティングする方法およびシステムを提供することである。
【００１５】
本発明の他の目的および利点は、以下の説明からより明らかとなる。
【課題を解決するための手段】
【００１６】
一つの態様において、本発明は、ホスティングコンピュータシステム上に１つ以上の仮想専用サーバをホスティングする方法に関する。上記仮想専用サーバはそれぞれ、上記ホスティングコンピュータシステムのエミュレーションであり、上記ホスティングコンピュータシステム上において、システムユーティリティおよびアプリケーションプログラムへのアクセスは、データネットワークを介してリモートに行われ、
【００１７】
上記方法は、
【００１８】
ａ）各仮想専用サーバを作成するステップであって、
【００１９】
（ｉ）上記ホスティングコンピュータのファイルシステムのルートディレクトリから得られたサブディレクトリツリーを、上記仮想専用サーバのルートディレクトリツリーとして割り当てるステップと、
【００２０】
（ｉｉ）上記仮想専用サーバによって提供されるサービスによって要求される、又は正規動作モードにおいて本質的な動作をするため上記ホスティングコンピュータのオペレーティングシステムによって要求される、上記オペレーティングシステムユーティリティのサブセットを上記サブディレクトリツリー上に配置するステップと、
【００２１】
（ｉｉｉ）上記仮想専用サーバによって実行されるプログラムおよび／または上記プログラムへのハードリンクを上記サブディレクトリツリー上に配置するステップと、
【００２２】
ｂ）上記コンピュータシステムの通信ポートを通じて入来するデータをインターセプトするステップと、
【００２３】
ｃ）上記仮想専用サーバの１つと関連付けられたサービス提供プログラムへのサービスに関する要求が上記データ中で識別された場合、
【００２４】
（ｉ）上記データを処理することにより、上記要求の送信先となっている上記仮想専用サーバを識別するステップと、
【００２５】
（ｉｉ）上記サービス提供プログラムが上記仮想専用サーバ上で未だ呼び出されていない場合、対応するサブディレクトリツリー中に格納されている上記サービス提供プログラムを呼び出すステップと、
【００２６】
（ｉｉｉ）上記要求を上記サービス提供プログラムに回送し、上記サービスを上記サービス提供プログラムにより提供するステップと、
【００２７】
（ｉｖ）上記サービスに関する要求物を提供するステップが終了すると、上記サービス提供プログラムのプロセスを必要に応じて終了するステップと、
【００２８】
とを含む。
【００２９】
必要に応じて、上記オペレーティングシステムユーティリティの一部または全部は、対応するハードリンクと取り替えてもよい。
【００３０】
必要に応じて、上記サブディレクトリツリーは、上記ホスティングコンピュータのアカウントによって限定されてもよい。
【００３１】
上記仮想専用サーバのうち１つ以上は、その一意に定まるＩＰアドレスによって識別されてもよい。一方、他のものは、１つの共有ＩＰアドレスおよびその名前によって識別されてもよい。
【００３２】
必要に応じて、本発明は、Ｕｎｉｘ（登録商標）ベースのシステム上で実装されてもよい。
【００３３】
本発明をＵｎｉｘ（登録商標）ベースのシステム上で実装する場合、Ｃｈｒｏｏｔシステムコールまたはそれに相当する手段により、仮想専用サーバ上にて実行中のプロセスをそのサブディレクトリツリーに限定することができる。
【００３４】
セキュリティを改善するため、ｓｅｔｕｉｄシステムコール（またはそれに相当するもの）を用いて、関連ユーザについてのアクセス権限がある場合のみに当該プロセスを許可するべきである。「ｓｅｔｕｉｄ」の使用により、以下の目的が達成される。
【００３５】
１．当該プロセスはルート権限で実行されないため、「ｃｈｒｏｏｔ」により、その制約付きサブツリーの範囲から別のディレクトリへ出ていくことはできない。
【００３６】
２．当該プロセスは、制約付きシステムリソースへアクセスすることはできない。
【００３７】
３．当該プロセスは、他のＶＤＳの情報（ファイルおよびプロセス）にアクセスすることはできず、上記オペレーティングシステムのアクセス権限（パーミッション）システムに基づく。関連ユーザＩＤを持つユーザだけが、他のＶＤＳの情報にアクセスすることができる。
【００３８】
４．システムマネージャは、当該プロセスのユーザＩＤについてフィルタリングを行うことにより、特定のＶＤＳのプロセスを発見し、管理することができる。
【００３９】
ホスティングコンピュータシステムによってホスティングされるＶＤＳの一部または全てを、１人のシステム管理者によって管理することが可能である。
【００４０】
Ｕｎｉｘ（登録商標）ベースのシステムにおいて実装が行われる場合、上記システムのカーネルを変更する必要はない。
【００４１】
本発明の一実施形態によれば、上記ホスティングコンピュータのリソースを利用するオペレーティングシステムコールは、上記コンピュータのリソース消費をモニタリングするためにインターセプトされる。必要に応じて、上記モニタリングは、上記仮想専用サーバの利用率を得る目的および／または少なくとも所定のサービスレベルを上記仮想専用サーバに提供する目的および／または最低限のサービス品質を上記仮想専用サーバに提供する目的のために用いられる。
【００４２】
上記サービス提供プログラムは、オペレーティングシステムのサービスであってもよいし、上記仮想専用サーバ上にて実行中のプログラムであってもよい。
【００４３】
上記データネットワークは、ＴＣＰ／ＩＰまたは他の任意のプロトコルを用いてよい。
【００４４】
別の態様において、本発明は、１つ以上の仮想専用サーバをホスティングするコンピュータシステムに関する。上記仮想専用サーバはそれぞれ、上記コンピュータシステムのエミュレーションであり、上記コンピュータシステム上において、システムユーティリティおよびアプリケーションプログラムへのアクセスは、データネットワークを介してリモートに行われ、上記仮想専用サーバはそれぞれ、
【００４５】
−上記コンピュータのファイルシステムのルートディレクトリから得られ、かつ、上記仮想専用サーバのルートディレクトリツリーとして用いられるサブディレクトリツリーと、
【００４６】
−上記仮想専用サーバによって提供されるサービスによって要求される、又は正規動作モードにおいて本質的な動作をするため上記ホスティングコンピュータのオペレーティングシステムによって要求される、上記サブディレクトリツリー上のオペレーティングシステムユーティリティのサブセットと、
【００４７】
−ポートを通過するデータをインターセプトし、上記データを上記適切な仮想専用サーバへと方向付けるソフトウェア手段と、
【００４８】
−上記データを解析し、上記データの送信先となっている上記仮想専用サーバを識別し、上記データを上記仮想専用サーバへと回送するソフトウェア手段と、
【００４９】
を含む。
【００５０】
本発明の上記および他の特徴および利点は、以下の例示的かつ非限定的で好適な実施形態の詳細な説明を添付の図面と共に参照すれば、より良く理解される。
【発明を実施するための最良の形態】
【００５１】
以下の説明の理解をより容易にするために、いくつかの用語および頭字語の意味を以下のように定めておく。
【００５２】
ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）は、インターネットの基本的プロトコルである。ＴＣＰはデータ転送を制御し、ＩＰはそのルーティングを制御する。ＴＣＰ／ＩＰネットワークは、ＴＣＰ／ＩＰをサポートするネットワークである。
【００５３】
ドメイン名はＵＲＬ（ユニフォームリソースロケータ）の一部であり、ドメイン名システム（ＤＮＳ）を用いたドメイン名サーバに対し、ウェブページまたはウェブサービスに関する要求の回送可否および回送先について通知する。ドメイン名は、インターネット上の物理的ポイントを表すＩＰアドレスに対してマッピングされる。１つのドメイン名は１つのＩＰアドレスを指すが、複数のドメイン名が単一のＩＰアドレスを指すこともできる。
【００５４】
ドメインとは、企業によってまたは当該企業の代理人によって提供される一群のウェブサービスを指す。ドメインは通常、一組のネットワークアドレスを含む。これらのネットワークアドレスはそれぞれ、１つ以上のウェブサービス（例えば、ＨＴＴＰ、テルネット、ＦＴＰ、Ｅメール）、または企業内の一組の部門（例えば、財務、Ｒ&Ｄ）を提供する。
【００５５】
クライアント／サーバは、２つのコンピュータプログラム間の関係を記述するものであり、１つのプログラム（クライアント）は別のプログラム（サーバ）に対してサービス要求を作成し、別のプログラム（サーバ）はその要求を実行する。クライアント／サーバという概念は、単一のコンピュータ内における複数のプログラムの場合も用いることができるが、この概念はネットワークの場合により重要となる。ネットワークの場合、クライアント／サーバモデルを用いれば、異なる位置に効率的に分散されたプログラムを簡便に相互接続する方法が得られる。クライアント／サーバモデルは今や、ネットワークコンピューティング分野における中心的概念の１つとなっている。今日記述されているほとんどのビジネスアプリケーションでは、クライアント／サーバモデルが用いられており、インターネットの主要プログラム（例えば、ウェブブラウザおよびサーバ）も例外ではない。
【００５６】
ウェブについて言えば、ウェブサーバとは、要求されたＨＴＭＬページまたはファイルを提供するコンピュータプログラムを指す。ウェブクライアントとは、ユーザと関連付けられた要求元プログラムを指す。ユーザのコンピュータ中のウェブブラウザとは、（ＨＴＴＰプロトコルを用いて）ウェブサーバに対してＨＴＭＬファイルを要求するクライアントを指す。
【００５７】
通常のクライアント／サーバモデルの場合、１つのサーバ（デーモンと呼ばれることもある）が活性化され、クライアント要求を待機する。典型的には、複数のクライアントプログラムは、共通サーバプログラムのサービスを共有する。クライアントプログラムおよびサーバプログラムはどちらも、より大型のプログラムまたはアプリケーションの一部であることが多い。インターネットに関連して、ユーザのウェブブラウザとは、インターネット上のどこかにある別のコンピュータ中のウェブサーバ（技術的には、ハイパーテキスト転送プロトコルまたはハイパーテキスト転送プロトコルサーバと呼ばれる）に対してサービス（ウェブページまたはファイルの送信）を要求するクライアントプログラムを指す。同様に、ＴＣＰ／ＩＰがインストールされているユーザのコンピュータは、インターネット上の他のコンピュータ中におけるＦＴＰ（ファイル転送プロトコル）サーバに対してファイルについてクライアント要求を作成することができる。
【００５８】
ＨＴＭＬ（ハイパーテキストマークアップ言語）とは、ワールドワイドウェブブラウザページ上に表示されるファイルに挿入される一組のマークアップ記号またはコードを指す。マークアップにより、ウェブページ上の単語および画像をユーザ向けに表示する様式をウェブブラウザに指示する。各個々のマークアップコードは、エレメントと呼ばれる（しかし、タグとも呼ばれることが多い）。対で表されるエレメントもあり、その場合、当該エレメント対は、表示効果が開始および終了する時期を示す。
【００５９】
ＣＬＩ（コマンドラインインターフェース）とは、コンピュータのオペレーティングシステム又はアプリケーションに対するユーザインターフェースであって、ユーザが（指定行にコマンドをタイピングすることにより）視覚的なプロンプトに反応し、システムからそれに対する反応を受け取り、別のコマンドを入力するインターフェースである。Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム中のＭＳ−ＤＯＳプロンプトアプリケーションは、コマンドラインインターフェースの提供の一例である。典型的には、今日のほとんどのＵｎｉｘ（登録商標）ベースシステムでは、コマンドラインインターフェースおよびグラフィカルユーザインターフェース双方の提供が可能である。
【００６０】
スクリプトとは、一連のＣＬＩコマンドを指し、通常は、タスク実行のためのものである。スクリプトは、タスク実行のためのパラメータを受け取り得る。例えば、Ｗｉｎｄｏｗｓ（登録商標）及びＤＯＳ（ディスクオペレーティングシステム）のＢＡＴファイルはスクリプトである。
【００６１】
ウェブサイトは、関連するウェブファイルの集合であり、ホームページと呼ばれる最初のファイルを含む。ウェブブラウザ（インターネット上のファイルへのアクセスおよびユーザへのファイル表示の際に用いられるソフトウェア）は、このホームページから、当該ウェブサイト上の残り全てのページを入手することができる。実際は、ホームページ以外のファイルへのアクセスを、全ユーザのうち一部のユーザに限定することも可能である。
【００６２】
ＩＰアドレスを参照するクライアントプロセスは実際、ウェブサーバと通信する。ウェブサーバは、クライアント／サーバモデルを用いて、そのサービスに関する要求物を「提供する」プログラムである。インターネット上の各コンピュータのうち、ウェブサイトを含むものは、ウェブサーバプログラムを持っていなければならない。一方、非常に大型のウェブサイトの場合、そのようなウェブサイトは、異なる地理的位置にある複数のサーバに分散して設けられる場合もある。一方、１つのウェブサーバによって複数のウェブサイトをホスティングすることも可能である。
【００６３】
インターネット上では、多くの異なるサーバが用いられている。そのうち有名なものを挙げると、アパッチ、インターネット情報サーバ（ＩＩＳ）、およびネットスケープエンタープライズサーバがある。これらの有名サーバは、ＮＴオペレーティングシステムおよびＵｎｉｘ（登録商標）オペレーティングシステム上で動作する。
【００６４】
従来技術においては、専用サーバと言えば専用レンタルコンピュータを意味し、このようなコンピュータは、ウェブサーバ、関連ソフトウェア、インターネット接続を含み、ウェブホスティング担当会社の建物内に収容されていた。専用サーバは通常、かなりの量のトラヒック（例えば、１日のヒット数が３５００万）を生じ得るウェブサイト（または一組の関連会社サイト）に必要とされる。専用サーバは通常、クライアント会社からの遠隔構成および操作が可能である。典型的には、専用サーバは、当該専用サーバが規定量のメモリ、ハードディスクスペース、帯域などを提供するためにレンタルされる。
【００６５】
本明細書中、「ウェブサービス」という用語は、ドメインからウェブ経由でクライアントへと提供されるサービスを指す（例えば、ＨＴＴＰ、ＦＴＰ、およびＥメールサービス）。
【００６６】
ＨＴＴＰ（ハイパーテキスト転送プロトコル）は、ワールドワイドウェブ上の複数のサーバに接続するために用いられる通信プロトコルであり、その主な機能は、ウェブサーバとの接続を確立し、ＨＴＭＬページをクライアントブラウザに伝送することである。ウェブサイトのアドレスは、「ｈｔｔｐ：／／」プレフィックス、または安全なＨＴＴＰ接続のための「ｈｔｔｐｓ：／／」から始まる。
【００６７】
ファイル転送プロトコル（ＦＴＰ）は、インターネット上の複数のコンピュータ間でファイルをやり取りするためのインターネットプロトコルである。表示可能なウェブページおよび関連ファイルを転送するハイパーテキスト転送プロトコル（ＨＴＴＰ）と同様に、ＦＴＰも、インターネットのＴＣＰ／ＩＰプロトコルを用いるアプリケーションプロトコルである。
【００６８】
ＳＭＴＰ（シンプルメール転送プロトコル）は、インターネット上の標準的Ｅメールプロトコルである。ＴＣＰ／ＩＰプロトコルによってメッセージフォーマットが規定され、メッセージ配達エージェント（ＭＴＡ）により当該メールの収容および回送が行われる。
【００６９】
ＳＭＴＰサーバは、インターネット全体に渡ってＳＭＴＰメッセージをメールサーバ（例えば、ＰＯＰ３またはＩＭＡＰ４）へとルーティングし、メールサーバは、入来メール用のメッセージ収容部を提供する。
【００７０】
ＰＯＰ３（ポストオフィスプロトコル３）およびＩＭＡＰ（インターネットメッセージアクセスプロトコル）は、クライアントをメールサーバへと接続するためのクライアント／サーバプロトコルである。
【００７１】
Ｉｎｅｔｄ（インターネットデーモン）は、多数の共通ＴＣＰ／ＩＰサービスを管理するＵｎｉｘ（登録商標）のプロセスである。Ｉｎｅｔｄはスタートアップ時に活性化され、様々な接続要求（例えば、ＦＴＰ、テルネット）を待機し、適切なサーバコンポーネントを起動させる。ポートの一覧およびその関連サーバコンポーネント（すなわち、呼び出されるプロセス）は、設定が可能である。
【００７２】
オペレーティングシステムは、コンピュータを動作させるマスター制御プログラムである。コンピュータ起動時にロードされる第１のプログラム（すなわち、その主要部分であるカーネル）は、常時メモリに常駐する。本明細書中、オペレーティングシステムによってアプリケーションプログラムおよびユーザへと提供されるサービス（例えば、ファイルサービス（例えば、「開く」、「閉じる」、「読み出す」）、通信サービス、タスク管理）をシステムユーティリティと呼ぶ。
【００７３】
カーネルとは、オペレーティングシステムの残り部分全てについての基本的サービスを提供する核となる部分のことを意味し、カーネルの同義語としては、ニュークリアスがある。カーネルと対照的な部分としては、シェル（ユーザコマンドとの交信を行うオペレーティングシステムの最外部）がある。
【００７４】
典型的には、カーネル（または類似する任意のオペレーティングシステムの中心）は、カーネルのサービスに対して競合する全ての要求または完了済みＩ／Ｏ動作を取り扱う割込みハンドラ、カーネルの処理時間をどのプログラムがどの順序で共有するかを決定するスケジューラ、プロセスがスケジュールに組み込まれている場合に使用権を実際に各プロセスに与えるスーパバイザを含む。また、カーネルは、メモリまたはストレージ中のオペレーティングシステムのアドレス空間（アドレススペース）のマネージャを含む場合もあり、その場合、これらのアドレススペースは、カーネルのサービス範囲の全コンポーネントおよび他のユーザ間で共有される。カーネルによるサービスは、オペレーティングシステムの他の部分又はアプリケーションによって、所定の一組のプログラムインターフェース（システムコールとしても知られる）を通じて要求される。
【００７５】
セキュアソケットレイヤ（ＳＳＬ）とは、インターネット上でのメッセージ伝送のセキュリティを管理するために共通使用されるプロトコルである。ＳＳＬでは、インターネットのハイパーテキスト転送プロトコル（ＨＴＴＰ）及び通信制御プロトコル（ＴＣＰ）のレイヤ間に配置されたプログラムレイヤを用いる。
【００７６】
〔ウェブホスティング〕
【００７７】
本明細書中、「ウェブホスティング」という用語は、１つ以上のウェブサイトに関するファイルの収容、提供および維持を指すものとする。
【００７８】
典型的には、ウェブホスティングは以下のサービスを提供する。
【００７９】
−ウェブサーバ（ＨＴＴＰサービス）によるアクセスが可能なウェブファイルを収容するためのファイルストレージ；
【００８０】
−ＥメールアドレスおよびＥメールサービス；
【００８１】
−ＦＴＰ；
【００８２】
−ドメインの所有者用コンピュータの維持（例えば、ユーザアカウントの維持、新規ソフトウェアのインストール、およびウェブサイトを動作させるのに必要なソフトウェアの更新）；
【００８３】
これらのサービスは、ドメインを所有する企業のドメイン名に対応するＩＰアドレスを通じて提供される。
【００８４】
企業は、自社用ウェブサーバを維持することにより、自社ドメインのホスティングおよび自社特有のウェブホスティング要件の管理を行うことができる。別のやり方としては、ＩＳＰ（インターネットサービスプロバイダ）によるサービスを利用する方法がある。どちらの場合においても、このような管理については、システム管理者またはシステムアドミニストレータと通常呼ばれている専門知識を持った人員が担当することが多い。
【００８５】
（例えば、自社ウェブサイトへの新規サービス追加または自社ウェブサイト上のトラヒック量増加などの理由で）或る企業のウェブ要件が一定のポイントを超えた場合、その企業は、専用サーバを使用してもよい。しかし、この解決法には大きな欠陥があり、特に、ＨＴＴＰサービス以外のサービスを提供するための専用サーバの能力が制限される。このため、当該専用サーバのメンテナンス（例えば、新規Ｅメールアカウントの追加）において、当該企業はインターネットサービスプロバイダに依存してしまう。
【００８６】
ＩＳＰ側から見ると、同一コンピュータシステムをできるだけ多数のクライアントで共有すると利益が出る。このように、コンピュータシステムの維持管理費用を複数のクライアント（企業）で負担することができる一方、ＩＳＰは自社の専用サーバの価格を低減しつつ利益を確保できるため、顧客によりアピールできるようになる。
【００８７】
〔仮想専用サーバ〕
【００８８】
本発明によれば、上記の問題および要件は、ＶＤＳという概念によって解決することができる。
【００８９】
本明細書中、仮想専用サーバ（ＶＤＳ）とは、主にウェブホスティングに用いられるコンピュータシステムのエミュレーションを指す。ＶＤＳにおいて、オペレータは、エミュレート対象コンピュータのシステムユーティリティおよびプログラムに対し、（データネットワークを通じて）リモートにアクセスすることができる。１つのホスティングコンピュータシステム上で、複数のＶＤＳインスタンスを同時実行することが可能である。
【００９０】
典型的には、ＶＤＳにより、インターネットサーバ（例えば、ウェブサーバ、ＦＴＰサーバ、Ｅメールサーバ）、アプリケーションプログラム（例えば、会計）、ｅコマースアプリケーションなどのホスティングが可能である。
【００９１】
ＶＤＳによって提供可能なサービスを以下に挙げる。
【００９２】
・ウェブサイトのホスティング。
【００９３】
・仮想Ｅメールサーバであって、各仮想Ｅメールサーバが自身のユーザを持つもの。例えば、「ａａａ．ｃｏｍ」および「ｂｂｂ．ｃｏｍ」というドメインが同一コンピュータによってホスティングされる場合、「ｍｙｎａｍｅ＠ａａａ．ｃｏｍ」というユーザと、「ｍｙｎａｍｅ＠ｂｂｂ．ｃｏｍ」というユーザは違うユーザであり、このようなユーザを生成することが可能となる。
【００９４】
・Ｅメール発行に類似する仮想ＦＴＰサーバ。
【００９５】
・オペレーティングシステムユーティリティへのテルネットによるアクセス。テルネットを用いることで、ドメインの所有者（またはそのシステム管理者）は、ホストコンピュータ全体が当該所有者のものであるかのように全ての動作（例えば、ファイル閲覧、スクリプト実行、ユーザの追加および削除）を行うことができる。
【００９６】
〔従来技術〕
【００９７】
複数の仮想専用サーバのホスティングを行う際に単一のコンピュータシステムを用いる概念は、従来技術において既に取り扱われている。従来技術において導入されたこの課題に対する解決法は、各専用サーバ用のオペレーティングシステムのインスタンスの使用である。この解決法は一般的であるため多くのアプリケーションに適している一方、オペレーティングシステムおよびコンピュータの全てのリソースがウェブホスティングに必要な訳ではないため、ホスティングコンピュータシステムのリソースに無駄が出る。
【００９８】
〔ＶＤＳ実装の際の問題〕
【００９９】
１つのコンピュータシステム上で複数の仮想専用サーバをエミュレートすると、いくつかの問題が発生する。すなわち、管理レベル、実行レベル、およびセキュリティレベルにおいて問題が発生する。新規ウェブサイトを追加するには、複雑な手続（プロシージャ）が必要となる。ウェブサイトの維持管理にも、複雑なプロセスが必要となる。セキュリティの観点から見ると、ドメイン／ウェブサイトの所有者がホスティングコンピュータのストレージメディアへのアクセス権を有するという事実は、上記ウェブサーバによってホスティングされている他のウェブサイトコンテンツにアクセスして損害を与えるための開口部となる。
【０１００】
〔ＶＤＳのファイルシステム〕
【０１０１】
一般性を全く失うことなく、本明細書中の例は、Ｕｎｉｘ（登録商標）ベースのオペレーティングシステム（例えば、Ｌｉｎｕｘ（登録商標）、Ｓｏｌａｒｉｓ（登録商標））、又はＵｎｉｘ（登録商標）指向のオペレーティングシステム（例えば、ＡＩＸ（登録商標）、Ｉｒｉｘ（登録商標）、Ｔｒｕ６４（登録商標）、ＨＰ（登録商標）／ＵＸ）に言及する。
【０１０２】
Ｕｎｉｘ（登録商標）ファイルシステム中の全ファイルは、複数のレベルに分けられた階層（ディレクトリツリーと呼ばれる）に整理される。このファイルシステムの最頂部にあるのは、ルートと呼ばれる単一のディレクトリであり、／（スラッシュ）で表される。残りのファイルは全て、ルートの「子孫」となる。
【０１０３】
この課題に関する別の要素として、アカウントがある。ユーザは、Ｕｎｉｘ（登録商標）システムを利用できるようになるためには、有効ユーザ名およびパスワードを持っていなければならない。ユーザ名および初期パスワードの割当ては典型的には、システム管理者または「コンピュータアカウント」事務局によって取り扱われることが多い。ユーザ名（ユーザＩｄとも呼ばれる）は、一意に定まるものでなくてはならず、かつ、変更されるべきではない。
【０１０４】
ファイルシステム中のファイルおよびディレクトリは、そのアクセス権限を変更することにより、他のユーザからの保護または他のユーザへのアクセス許可を行うことができる。ユーザは、自身のファイルへのアクセスを制御する責任を負う。ファイルまたはディレクトリに関する許可は、ｒ−読み出し；ｗ−書き込み；ｘ−プログラムの実行のいずれかまたは全てであり得る。許可は、ｕ−ユーザ；ｇ−グループ；ｏ−その他（システム上の全員）の３レベルで制御することが可能である。Ｕｎｉｘ（登録商標）バージョンの中には、特定のユーザレベルでの許可設定が可能であるものもあるが、このようなバージョンは標準的Ｕｎｉｘ（登録商標）の一部ではない。
【０１０５】
Ｕｎｉｘ（登録商標）オペレーティングシステムによって実行されるプログラムをプロセスと呼ぶ。Ｕｎｉｘ（登録商標）は多重タスク処理オペレーティングシステムであるため、任意のユーザは複数のプロセス（例えば、複数のログインセッション）を同時実行させることができる。ログインシェル内において、各コマンドは、処理を実行している間少なくとも１つの新規プロセスを作成する。
【０１０６】
アクセス権限とは、各ファイル又は各ディレクトリと関連付けられた一組のアクセス権限であって、当該ファイル又はディレクトリに対する読み出し、書き込みまたは実行を行う権利を有する者を決定する。これらのアクセス権限を変更できるのはファイルの所有者（またはスーパーユーザ）だけであり、しかも、このような変更を行うには、当該アクセス権限はあらかじめ書き込みおよび実行ができるように設定されていなければならない。
【０１０７】
スーパーユーザアカウントとは、全てのファイルおよびコマンドへの無制限なアクセス権を持った特権的アカウントを指す。多くの管理的タスクを行うことができるのは、スーパーユーザアカウントだけである。ある種類のＵｎｉｘ（登録商標）では、この能力を複数のアカウントで分割することで、各１つのアカウントがオペレーティングシステムの特定の面のみについて特権を持つようにしている。
【０１０８】
本発明の一実施形態によれば、当該ＶＤＳ固有のアカウント（またはアカウントのグループ）およびディレクトリツリーが当該ＶＤＳに提供される。さらに、ＶＤＳのセキュリティを得るために、ＶＤＳのディレクトリツリーは、このＶＤＳによる使用のみに限定されるべきである。このようにして、ある特定のＶＤＳのユーザは、別のＶＤＳのディレクトリツリーへアクセスすることはできず、その結果、ハッカーは、自身のディレクトリツリー以外のディレクトリツリーへ物理的にアクセスできなくなる。ＶＤＳのアカウントはもちろん、スーパーユーザアカウントであるべきではない。
【０１０９】
このアプローチは、Ｕｎｉｘ（登録商標）のＣｈｒｏｏｔシステムコールによって実行することができる。Ｕｎｉｘ（登録商標）のＣｈｒｏｏｔシステムコールは、Ｕｎｉｘ（登録商標）における技術であり、プロセスがファイルシステムのサブセットに隔離されて永久に限定される。このＣｈｒｏｏｔシステムコールにより、上述のプロセスのルートディレクトリは、現在のプロセスおよび作成される任意のプロセスが継続する間、デフォルト以外のものになる。Ｃｈｒｏｏｔによる保護下にあるプロセスは、自身のルートディレクトリという概念を超えたファイルシステムにアクセスすることはできない。
【０１１０】
Ｃｈｒｏｏｔシステムコールの使用を通じて、各ＶＤＳのルートディレクトリは、（当該ＶＤＳ専用でありかつ当該ＶＤＳによって所有される）一意に定まるサブディレクトリに変更（リダイレクト）される。そのため、サイト内にて動作するアプリケーションは、自身のディスクスペースが全て自分のものであると認知しつつ、同一コンピュータ上で動作する任意の他のサイトには気付かない。最高のセキュリティを達成するために、特定のＶＤＳディレクトリを別のＶＤＳディレクトリに含ませるべきではない。
【０１１１】
代替的解決法として、ファイルシステムのパーミッション機構に依存し、各ＶＤＳファイルについてのアクセス権限をこのユーザ／グループのみに変更する方法がある。しかし、このアプローチの場合、下記の理由からＶＤＳ解決法と比較して効果が弱い。
【０１１２】
−システムファイルは全ＶＤＳに共通するため、各ＶＤＳは、自身のものではないファイルにアクセスし（かつ修正さえも）することができる。
【０１１３】
−ＶＤＳユーザが正しいアクセス権限について注意を払わずにファイルを作成した場合、他のＶＤＳユーザがそのファイルにアクセスする可能性が出てくる。
【０１１４】
−コンピュータシステムによってホスティングされるＶＤＳのリストは、上記コンピュータシステム上でホスティングされる任意のＶＤＳから得ることができる。このような状況は望ましくない。
【０１１５】
ＶＤＳがコンピュータに追加されると、当該ＶＤＳの所有者は、当該ＶＤＳを別個のコンピュータとして動作させることができる。すなわち、ＶＤＳの所有者は、新規アカウントを自身のＶＤＳに追加することができ、新規ソフトウェアおよびＰｏｗｅｒＡｐｐなどをインストールすることができる。
【０１１６】
ＰｏｗｅｒＡｐｐは、ＶＤＳ上のユニットとしてインストールされるソフトウェアモジュールである。ＰｏｗｅｒＡｐｐはＬｉｎｕｘ（登録商標）中のＲＰＭに類似しているが、ＰｏｗｅｒＡｐｐをインストールするメカニズムはＶＤＳの実装に合わせて作られており、一般的なオペレーティングシステムに合わせては作られていない。このメカニズムは、いくつかの問題を解消すること（例えば、インストールプロセスを自動化することでユーザが間違いを起こす可能性を低減すること；インストール時間を短縮すること；およびユーザの正規の特権では許可されない特権的動作の実行をできるようにすること）を目的としている。
【０１１７】
図１は、本発明の好適な実施形態による、複数のＶＤＳをホスティングするコンピュータのファイルシステムの構成図である。ルートディレクトリ６０はいずれのＶＤＳによっても所有されておらず、コンピュータの一般的オペレーティングシステムの一部であるファイルを含む。このルートディレクトリは、サブディレクトリ６１および６２ならびに複数のファイル７１を含む。ファイル７１およびディレクトリ６２はコンピュータの一般的ファイルシステムの一部であり、ＯＳの動作に不可欠なファイルを含む。サブディレクトリ６１は、サブディレクトリ６６およびファイル６４を含む。サブディレクトリ６１、６３、および６５はそれぞれ、プロセスのルートディレクトリツリーとして用いることができる。ＶＤＳの各サービスはプロセスによって行われるため、各ＶＤＳは１つのサブディレクトリに限定される。サブディレクトリ６１がＶＤＳプロセスのルートディレクトリである場合、サブディレクトリ６１を所有するＶＤＳはサブディレクトリ６６にアクセスすることができるため、低レベルのサブディレクトリツリー６１（すなわち、サブディレクトリ６６）はＶＤＳのため用いられるべきではない点に留意されたい。
【０１１８】
各ディレクトリは、自身のアクセス権限および制約情報を有する。１つのサブディレクトリと関連付けられるＶＤＳは、このサブディレクトリのこの分岐に制限される（すなわち、このＶＤＳは、高レベルのディレクトリツリーまたはこのサブディレクトリの子孫ではないディレクトリツリーの他の分岐へのアクセス権を持たない）。
【０１１９】
ディレクトリ６１および６５を異なるＶＤＳに対して専用ディレクトリとすることは技術的には可能であるが、そのようなことは推奨されない点に留意されたい。その理由としては、ディレクトリ６１からディレクトリ６５へアクセスすることができるため、ルートディレクトリがディレクトリ６１であるＶＤＳの所有者は、ルートディレクトリが６５であるＶＤＳのファイルへのアクセスを得ることになるからである。
【０１２０】
〔ハードリンクの使用によるＶＤＳの機能性の改良〕
【０１２１】
ハードリンクとは本質的には、或るファイルに割り当てられたラベルまたは名前である。従来、１つのファイルには単一の名前が付けられるが、Ｕｎｉｘ（登録商標）下では、複数の異なる名前によって１つのファイルの同一コンテンツを参照することが可能である。これらの異なる名前のうちいずれかについてコマンドが実行されると、そのコマンドは、同一ファイルのコンテンツについて動作する。当該ファイルへの任意の変更は、当該ファイルを参照する際に用いられる名前（もともとの名前またはリンク名）に関係なく有効となる。ハードリンクは、ファイルシステムまたはドライブをまたがって用いることはできない。
【０１２２】
Ｕｎｉｘ（登録商標）ベースのオペレーティングシステムにおいて、特定のファイル（例えば、ユーザのファイルである／ｅｔｃ／ｐａｓｓｗｄ）、システムコマンド（例えば、「／ｂｉｎ／ｒｍ」）は、特定のディレクトリ中にあるべきである。ホスティングコンピュータの「派生物」としてのＶＤＳは、上記ファイルが自身のサブディレクトリツリーにおいて、自身のルートに関連する正しい場所に存在することを要求する。ＶＤＳのサブディレクトリにこれらのファイルのコピーを保持することも可能ではあるが、特に、数十または場合によっては数百のＶＤＳをコンピュータによってホスティングする場合は、ハードリンクを使用するのが最も効率的である。このようにすることで、かなりの量のディスクスペースが節約される。
【０１２３】
ＶＤＳ間には相当の類似性があるため、本発明の一実施形態によれば、各ＶＤＳについて用いられる特定のファイルを複製する代わりに、ハードリンクを用いることができる。このようにして、ディスクスペース量が節約される。
【０１２４】
ハードリンクを使用すると、ＶＤＳのメモリ消費も改良される。ＶＤＳの動作に関連する各プログラムのインスタンスをメモリ（ＲＡＭ）中に保持する代わりに、ハードリンクを用いることで、プログラムの１つのコピーだけをコンピュータのメモリにロードし、このプログラムの全インスタンスはこのコピーを参照する。このようにして、より多くのメモリが利用可能になるため、ＲＡＭとディスクメディアとの間のメモリチャンクのスワップ量が低減し、その結果、プログラム実行が高速化される。
【０１２５】
この見積りは、同一プログラムが１つ以上のＶＤＳによって実行されることを前提としている。これは、いくつかのプロセス（例えば、アパッチ）が各ＶＤＳによって実行されているウェブホスティングの場合と同様である。
【０１２６】
〔新規ＶＤＳのシステムへの追加〕
【０１２７】
本発明の一実施形態による、新規ＶＤＳのインストールは以下のように行われる。
【０１２８】
−新規ユーザを適切なアクセス権限と共にオペレーティングシステムに追加する。
【０１２９】
−サブディレクトリツリー（本明細書中、ＶＤＳファイルシステムと呼ぶ）を作成する。サブディレクトリツリーは、ＶＤＳを動作させるのに必要なファイルおよびディレクトリ全てからなる。ＶＤＳ間には類似性があるため、テンプレートディレクトリツリーを作成し、新規ＶＤＳをシステムに追加する際にそのテンプレートディレクトリツリーを複製することにより、手続を簡略化する。
【０１３０】
−必要に応じて、ＶＤＳの動作に関連し得るＵｎｉｘ（登録商標）ユーティリティのサブセット（またはハードリンク）をＶＤＳファイルシステムに追加する。
【０１３１】
−システム管理者は、自身のＶＤＳへのアクセスが安全になるインターフェース、好適にはＧＵＩ（グラフィカルユーザインターフェース）、を含むＪａｖａ（登録商標）アプレットを自身のＶＤＳにダウンロードする。例えば、ユーザとＶＤＳ間のエンコード／デコードを、鍵の１つがユーザＩＤ（通常はＵＩＤと呼ばれる）となるように行う。
【０１３２】
−あるいは、システム管理者は、正規ウェブブラウザを用いて、ＨＴＭＬページとのインターフェースをとることにより、好適にはＳＳＬを用いたセキュアな接続を介して、ＶＤＳへのアクセスを行ってもよい。
【０１３３】
当業者に公知のように、クライアント／サーバ間のセキュアな通信チャンネルを保持する様々な方法が業界において存在する。
【０１３４】
この段階は典型的には、ＶＤＳをインストールする段階において各ＶＤＳ上で一回行われる。典型的なウェブアプリケーション上で、ＶＤＳの所有者は、自身のウェブサイトのファイルをＶＤＳのディレクトリツリーにアップロードし、必要な場合、自身のＶＤＳにユーザを追加することができる。これは、ＧＵＩによって行われる。
【０１３５】
〔セキュリティ問題〕
【０１３６】
Ｃｈｒｏｏｔシステムコールの使用を通じて、各ＶＤＳのルートディレクトリが、ＶＤＳ専用でありかつＶＤＳによって所有される一意に定まるサブディレクトリにリダイレクトされる。そのため、ＶＤＳ内において動作するアプリケーションは、自身のディスクスペースが全て自身のものであることを認知しつつ、同一コンピュータ上で動作する他の全てのサイトの存在には気が付かない。さらに、Ｃｈｒｏｏｔシステムコールの使用に起因して、１つのＶＤＳ上で実行中のアプリケーションは、同じコンピュータによってホスティングされている別のＶＤＳのファイルシステムにアクセスすることはできない。これにより、ＶＤＳセキュリティのレベルが全体的に改善される。
【０１３７】
〔ＶＤＳ内でのプログラムの実行〕
【０１３８】
ＶＤＳ上で実行されている各プログラムは、ＶＤＳファイルシステムと、当該ＶＤＳのアカウントとに限定されるべきである。これは、以下の方法で行うことができる。
【０１３９】
−ＶＤＳのインターネットデーモン（Ｉｎｅｔｄ）と、ＴＣＰ／ＩＰポートを「リッスン」する別のデーモンとを交換する。「リッスンされている」ポートと関連付けられたサービスに関するアプリケーションが検出されると、以下の動作が行われる。
【０１４０】
−Ｃｈｒｏｏｔシステムコールを呼び出して、ＶＤＳファイルシステムを上記プロセスのルートディレクトリとして設定する；
【０１４１】
−Ｓｅｔｕｉｄシステムコールを呼び出して、当該プロセスをＶＤＳのアカウントに限定する；
【０１４２】
−（ディレクトリツリーおよびホスティングコンピュータシステム上のＶＤＳのアカウントの制約のもとで）上記プログラムを実行する。
【０１４３】
本発明の一実施形態によれば、サービスについての要求を取り扱うモードには以下の２種類がある：
【０１４４】
−Ｉｎｅｔｄモード：クライアントが、Ｉｎｅｔｄ（インターネットデーモン）に接続すると、Ｉｎｅｔｄのプロセスは要求を受け入れて、この要求を取り扱う新規プロセスが（関連付けられたポートに従って）作成される。そのポートに別の要求が到着するたび、インターネットデーモンＩｎｅｔｄはその要求を（再び）受け入れて、プロセスを作成するなどする。
【０１４５】
−スタンドアロンモード：関連プロセス（例えばＨＴＴＰＤ）は、関連ポートの制御を行い、サービスに関する要求を受信すると、その要求に応答し、その要求を取り扱うものとなる。そのため、スタンドアロンプロセスによって取り扱われるポートは、Ｉｎｅｔｄによって取り扱われるポートリスト中には絶対現れない。
【０１４６】
ＨＴＴＰＤがスタンドアロンモードで動作し、（従来はＩｎｅｔｄによる管理が可能であったものの）Ｉｎｅｔｄによって管理されない理由は、プロセス作成の際のオーバーヘッドである。このように、ＨＴＴＰサービスに関する要求を毎秒何百と受け取るウェブサイトは、各呼出し（コール）毎にプロセスを初期化する必要が無いため、スタンドアロンモードの方がパフォーマンスが良くなる。
【０１４７】
〔特権的ポートの問題〕
【０１４８】
本明細書中、周知のポートとは、ネットワーク上の特定の種類のデータに対して幅広く用いられるプロトコルポートを指す。例えば、ＨＴＴＰには典型的にはポート８０が割り当てられ、ＦＴＰ転送にはポート２０が割り当てられ、ＰＯＰ３には、ポート番号１１０およびＸ−Ｗｉｎｄｏｗには、ポート番号６０００が割り当てられる。本明細書中、特権的ポートとは、プロトコルポート番号０〜１０２３を指す。
【０１４９】
ほとんどのシステムの場合、特権的ポートを用いることができるのは、システム（ルート）プロセスだけである。しかし、セキュリティを考慮すると、ＶＤＳアカウントをルートアカウントにするべきではなく、そのため、ＶＤＳアカウントは特権的ポートを用いることはできない。
【０１５０】
本発明の好適な実施形態によれば、Ｉｎｅｔｄモードにおいて、ルート権限と共に動作しかつ束縛を実行する別のプロセスを呼び出すことにより、この矛盾を解消する。
【０１５１】
本発明の別の好適な実施形態によれば、スタンドアロンモードにおいては、ポートを自力で開く必要があるため、異なるアプローチを実装しなければならない。これを実装する１つの方法として、関連するシステムコールの呼出しと、特権的モードでポートを開く別の機能とを取り替えて、非特権的プロセスに渡す方法がある。
【０１５２】
〔ＩＰベースのＶＤＳおよびネームベースのＶＤＳ〕
【０１５３】
ＩＰベースのアプローチにおいて、各ＶＤＳは、自身の一意に定まるＩＰアドレスを用いる。ネームベースのアプローチにおいて、コンピュータシステムによってホスティングされるＶＤＳのうちいくつかは、単一のＩＰアドレスを用いる。１つのコンピュータシステムによってホスティングされるＶＤＳのうちいくつかをＩＰベースにし、残りをネームベースにしてもよい。
【０１５４】
〔ＩＰベースのＶＤＳの具現化〕
【０１５５】
Ｕｎｉｘ（登録商標）  Ｓｏｃｋｅｔは、Ｕｎｉｘ（登録商標）ベースのシステムが外部との接続をＴＣＰ／ＩＰネットワーク経由で作成する際に用いられるメカニズムである。ソケットは、ＩＰアドレスおよびポート番号と関連付けられる。
【０１５６】
本発明の一実施形態によれば、ＨＴＴＰサービス（例えば、アパッチプロセス）は、ＶＤＳに関する制約のもとで（すなわち、非ルート権限において）実行される。ＨＴＴＰサービスは、そのＩＰのポート８０に入来する要求（これは、ＨＴＴＰの周知のポート番号である）を取り出す場合、ライブラリコールを用いて、この要求されたポートに「リッスン」することが可能か確認する。ＨＴＴＰサービスは、可能であれば、（特権的モードにおいて）ポートを作成し、当該プロセスに関するソケットを返送する。
【０１５７】
特権の確認はソケットを開く際のみに行われ、各動作のたびに行われるのではないため、非特権的アパッチがこれを用いることが可能である点に留意されたい。特権の確認はソケットを開く際のみに行われ、読み出しおよび書き込みが行われるたびに行われるのではないため、このメカニズムによってシステムパフォーマンス全体が劣化することはない。
【０１５８】
ＦＴＰサービスについては、全ての関連ポート番号への接続を待機する単一のプロセス（Ｉｎｅｔｄ）がある。接続に関する要求が到着すると、Ｉｎｅｔｄは、このフォーマットの要求を（ポートに応じて）処理する方法を「知って」いる別のプロセスを作成し、このプロセスに当該要求を取り扱わせる。このプロセスはルート権限と共に実行されるため、このプロセスは、特権的ソケットを開くことができる。もちろん、このプロセスはＣｈｒｏｏｔおよびＳｅｔｕｉｄによって制限され、その結果、プロセスは特定のＶＤＳに限定される。
【０１５９】
より詳細には、全ポートを「リッスンする」特権的プロセスは１つあり、これは通常はＩｎｅｔｄである。この場合、Ｉｎｅｔｄは、別のプロセスと取り替えられる。接続が確立すると、このプロセスはソケットを開き、関連ポートのプロトコルを取り扱うプロセスに対してそれを引渡す。最新のプロセスは特権的ではないため、ＶＤＳディレクトリツリーに限定される。
【０１６０】
〔ネームベースのＶＤＳの具現化〕
【０１６１】
このアプローチは、同時係属中の国際出願番号第ＰＣＴ／ＩＬ０２／００６９５に記載されている。
【０１６２】
〔システムコールのインターセプト〕
【０１６３】
プログラムのローディングと並行して、Ｕｎｉｘ（登録商標）オペレーティングシステムは、バックグラウンンドで特定のライブラリをローディングすることができる。このライブラリは、（Ｗｉｎｄｏｗｓ（登録商標）におけるＤＬＬと同様に）Ｕｎｉｘ（登録商標）におけるシェアードオブジェクトと呼ばれる。シェアードオブジェクトもまた、システムコールをオーバーライドすることができ、当該システムコールは、シェアードオブジェクト中の同一名の関数へとリダイレクトされる。そのため、シェアードオブジェクトを用いることにより、システムコールのインターセプトが可能となる。
【０１６４】
システムコールおよびライブラリ関数が１つのＶＤＳによって呼び出されたことを、同一コンピュータ上の他のＶＤＳにおいて実行中のアプリケーションに知られないようにするため、このようなシステムコールおよび関数をシステムによってインターセプトする。呼び出し側と呼び出された関数との間を取り持つことにより、入力および出力両方をモニタリングし、修正することができる。このようにすれば、ＶＤＳのセキュリティレベルがさらに上昇する。
【０１６５】
ライブラリ（例えば、Ｌｉｂｃまたはそれと互換性のあるもの）へのコールに対するインターセプトは、各「Ｃｈｒｏｏｔ」された環境内で「プロキシ」ライブラリを追加することにより行われる。「プロキシ」ライブラリの各関数は、指定パラメータを受け取り、実際の関数を実行すべきか否かを評価する。実際の関数を実行すべき場合、「プロキシ」関数はこの実行すべき関数を実行し、場合によっては与えられたパラメータを修正し、当該関数の結果を呼び出し側アプリケーションへと返送し、場合によっては結果を修正する。実際の関数が呼び出されるべきではない場合、プロキシは、その関数を本質的に解釈することにより、結果を呼び出し側アプリケーションへと返送する。
【０１６６】
バインド（ポートをソケットにバインドするシステムユーティリティ）の呼出しをインターセプトすることにより、バインドの呼出しを別のプロセスにリダイレクトすることができる。
【０１６７】
〔ホスティング担当オペレーティングシステムのカーネル〕
【０１６８】
ＶＤＳ技術は、通常はオペレーティングシステム環境の一部であるいくつかのプロセスの機能を向上させ、焦点をあてるべき特定のシステムコールを向上させる。しかし、この技術は、必ずしもカーネルに干渉する必要はなく、ＷＨＰまたは製品の担当会社のいずれかによって、カーネルのコードに対する任意の変更またはカーネルの再コンパイルも必要としない。
【０１６９】
Ｌｉｎｕｘ（登録商標）カーネルは様々な方法（いくつかのモジュールをそのプロセスの一部として用いるか否か）で構築が可能であるため、特定のバージョンのカーネルのみの使用をＷＨＰに強要することは受け入れられない場合がある。
【０１７０】
〔ＶＤＳの管理〕
【０１７１】
ドメインの管理を簡単にするため、ＶＤＳを遠隔ステーションから管理するためのインターフェースをドメインのシステム管理者（または所有者）に提供する。このインターフェースにより、システム管理者は、Ｅメールアカウントの追加、既存Ｅメールアカウントの修正、ユーザへのディスク割り当ての限定などを行うことができる。このインターフェースを用いることで、（何か要求があるたびにホスティング担当会社に連絡する必要がないので）ドメインの所有者にとって時間（および費用）の節約となり、自社のシステム管理者が大量の些細な要求に圧倒されないので、ホスティング担当会社にとって時間（および金銭）の節約となる。
【０１７２】
本発明の一実施形態によれば、システム管理者は、インターフェース（図２において符号１０および符号２０として図示）、好適にはＧＵＩ（グラフィカルユーザインターフェース）、を含むＪａｖａ（登録商標）アプレットを自身のＶＤＳへとダウンロードする。その結果、当該ＶＤＳへの安全なアクセスが提供される。例えば、ユーザ／ＶＤＳ間のエンコード／デコードを、鍵の１つがユーザＩＤ（通常ＵＩＤと呼ばれる）となるように行う。
【０１７３】
本発明の他の実施形態によれば、ＧＵＩは標準的ＨＴＭＬインターフェースであり、ユーザ名およびパスワードが（ＳＳＬを用いた）安全な方法で送られ、サーバ上で確認される。
【０１７４】
実際には、ＧＵＩは管理モジュールに対するフロントエンドである。このＧＵＩの利点は、エンドユーザが自分のドメインを管理できる点である。このフロントエンドはＪａｖａ（登録商標）アプレットまたはＨＴＭＬであり得る。
【０１７５】
ＶＤＳの所有者は、ＶＤＳを実行するマシンに接続することにより、自身のＶＤＳを管理することができる。クラスタマネージャは、任意のコンピュータから接続し、ＶＤＳを管理することができる。
【０１７６】
本発明の一実施形態によれば、管理機能は、以下のような管理レベルに分割される。
【０１７７】
−ＶＤＳ管理レベル（システム管理者が単一のＶＤＳを管理）。
【０１７８】
−グループ管理レベル（システム管理者がＶＤＳのグループを管理）。
【０１７９】
−ホスティングコンピュータ管理レベル（システム管理者が、コンピュータシステム上でホスティングされる全ＶＤＳを管理）。
【０１８０】
同時係属中の国際出願番号第ＰＣＴ／ＩＬ０２／００６９６号に記載のように、上記レベルよりも高い管理レベルとしてクラスタがあり、この管理レベルでは、複数のＶＤＳをホスティングするコンピュータのグループがシステム管理者によって管理される。
【０１８１】
図２は、本発明の好適な実施形態による管理図を示す。「ａ．ｃｏｍ」および「ｂ．ｃｏｍ」というドメインは、コンピュータシステム５０によってホスティングされる。システム管理者の端末１９は、ドメインａ．ｃｏｍの符号１１（Ｅメール）、符号１２（テルネット）、および符号１３（ＦＴＰ）に対応する各サービスをインターフェース１０によって管理する。システム管理者の端末２９は、ドメインｂ．ｃｏｍの符号２１（Ｅメール）および符号２２（テルネット）に対応する各サービスをインターフェース２０によって管理する。
【０１８２】
このようなインターフェースにより、システム管理者は、ＶＤＳ管理を遠隔地から行うことができる。このインターフェースにより、システム管理者は、Ｅメールアカウントの追加、既存Ｅメールアカウントの修正、ユーザへのディスク割り当ての限定などを行うことができる。このインターフェースを用いることで、（何か要求があるたびにホスティング担当会社に連絡する必要がないので）ドメインの所有者にとって時間（および費用）の節約となり、自社のシステム管理者が大量の些細な要求に圧倒されないので、ホスティング担当会社にとって時間（および費用）の節約となる。
【０１８３】
グループ管理レベルおよびコンピュータ管理レベルは複数のＶＤＳに影響を与えるため、これらのモードのサーバはルート権限で動作する。一方、ＶＤＳ管理レベルでは、サーバは非ルート権限で動作する。
【０１８４】
本発明の一実施形態によれば、システム管理者は、サーバ側の特定のコンポーネント（本明細書中、これをｍａｎａｇｅｒ．ｃｇｉと呼ぶ）と交信する。このｍａｎａｇｅｒ．ｃｇｉは、プラグインを用いて、同一コンピュータ上の別のプロセスへ情報を転送する能力を有する。後者のプロセスは特権的プロセスであり、コンピュータの実際のマネージャである。そのため、ユーザは、ある動作要求をウェブサーバコンポーネント（ＣＧＩ）に対して発行すると、当該ウェブサーバコンポーネントは、管理プロセスが所定の動作を行って、さらにユーザ名及びパスワードを送る。すると、管理プロセスは、そのユーザが本人であることを認証し、この要求が当該ユーザ対して正当であることを（すなわち、このユーザが別のＶＤＳを修正しようとしているのではないことを）確認し、その後、コマンドが実際に実行される。
【０１８５】
以下のステップが実行される。
【０１８６】
−管理機能を用いる際、システム管理者は、ユーザ名およびパスワードの入力を要求するウェブページを閲覧する。このウェブページは、ウェブサイトまたはシステム管理者のコンピュータに常駐する。
【０１８７】
−このウェブページは、ｍａｎａｇｅｒ．ｃｇｉ（これは、ウェブサーバ上で実行し、要求を受け取り、プラグインを用いて管理プロセスを呼び出すコンポーネントである）を実行する。典型的には、ｍａｎａｇｅｒ．ｃｇｉおよび管理プロセスは、ＶＤＳのホスティングコンピュータ上に常駐する。
【０１８８】
〔ＱｏＳ、モニタリングおよびＳＬＡ〕
【０１８９】
サービスの質（ＱｏＳ）は、データ通信システムにおけるパフォーマンスまたはシステムのパフォーマンスのレベルを定義することができるものである。音声信号および映像信号の連続表示が求められているため、ＱｏＳは、インターネットネットワークおよび電話ネットワークにおける大きな課題となっている。音声アプリケーションおよび／または映像アプリケーションの場合、クライアントに到着するパケットは連続的に流れなければならない（すなわち、寸断されてはならない）。
【０１９０】
この障害を解消する１つの方法として、映像および／または音声信号を時間差表示する方法がある。このようにして、クライアントに到着したデータは累積され、後で表示される。時間差が短い場合、表示を見ている者は時間差表示に気づかない。
【０１９１】
一方が送信（ブロードキャスト）を行い、他方が視聴（リッスン）する音声アプリケーションおよび映像アプリケーションの場合、双方向において信号の送受信を行うアプリケーションよりも時間差に強い。
【０１９２】
サービスの複数のインスタンスについて一定レベルのＱｏＳを提供するために、このサービス提供プログラムをホスティングするコンピュータシステムは、これらインスタンス全てのＱｏＳに必要な強さの合計よりも強固であるべきである。１つのコンピュータシステムによって複数のＶＤＳがホスティングされる場合、これらホスティング対象ＶＤＳの間でそのコンピュータリソースを不平等に共有して、より多くのコンピュータリソースを必要とするＶＤＳは、他のＶＤＳよりも多くのリソースを得られるようにする。
【０１９３】
サービスライセンス契約（ＳＬＡ）は、ホスティングコンピュータの所有者とＶＤＳの所有者との間で締結される、一定量のコンピュータリソース（例えば、ディスクスペース、伝送帯域、メモリ）をＶＤＳに提供する契約である。
【０１９４】
実際的見地から見ると、このようなクライアント間でのコンピュータリソースの差別的共有は、リソースとそのクライアントとを仲介するエンティティを追加し、当該要求を一時保存し、保存された要求を到着順と異なる順序で送信することにより、行うことが可能である。
【０１９５】
ＣＰＵ使用量およびメモリ使用量は、ウェブサイトにとって重要な問題である。その理由は、ウェブサイトがサイト訪問者に対して適切なタイミングでサイトを提供するためには、特定の処理能力が当該サイトに必要になるからであり、特に、ＳＬＡによって特定のパフォーマンスがウェブサイトの所有者に約束されている場合、その傾向が顕著であるからである。
【０１９６】
本明細書中、「モニタリング」という用語は、所与の時間におけるコンピュータリソースの使用量（例えば、メモリ量、ディスクスペース、ＣＰＵ、帯域（内および外）、作成されたプロセスの数、データベースへの接続数等）の測定を指す。
【０１９７】
モニタリングおよびＳＬＡのアプローチについては、弁理士ドケット下で出願された同時係属中の特許出願中に記載がある。
【０１９８】
〔他のオペレーティングシステム上でのＶＤＳ概念の実装〕
【０１９９】
本明細書中にて提示した例はＵｎｉｘ（登録商標）ベースのオペレーティングシステムについてのものであるが、ＶＤＳ概念は、他のオペレーティングシステム、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ上でも同様に実装可能である。
【０２００】
ＶＤＳ技術の実装には、以下の特徴を有するオペレーティングシステムが必要となる。
【０２０１】
−階層ディレクトリツリー（ＶＤＳは、ディレクトリツリーと関連付けられるからである。）。
【０２０２】
−ディレクトリツリーへの特権的アクセス（Ｃｈｒｏｏｔ）。
【０２０３】
−特定のファイルへの特権的アクセス。
【０２０４】
−特定のプロセスへの特権的アクセス。
【０２０５】
−アカウントのサポートおよびユーザを当該ユーザのアカウントに限定する能力。
【０２０６】
−ポートをリッスンすることができるデーモン。
【０２０７】
−システムユーティリティおよび／またはサーバに対するハードリンク。
【０２０８】
−システムコールのインターセプト。
【０２０９】
これらの特徴をサポートしないオペレーティングシステムの場合、クライアントとオペレーティングシステムとの間に仮想レイヤを追加することが可能である。仮想レイヤは、不足している特徴のうち一部またはその全てをシミュレートするものである。当業者であれば、仮想レイヤの作成は、典型的にはシステムコールのインターセプトによって実行可能であることを理解するだろう。
【０２１０】
オペレーティングシステム下のインプレメンテーションの品質は、もちろん、当該オペレーティングシステムによってサポートされる上記特徴の数に依存する。
【０２１１】
〔概要〕
【０２１２】
ＶＤＳの利点を以下に挙げる。
【０２１３】
−同一コンピュータ上でホスティングされる異なるサイト間の分離により達成される、改善されたセキュリティ。
【０２１４】
−複数のウェブサイトが同時にアクセスされる場合において、各ＶＤＳ向けのサービスプロセスの分離されたインスタンスを実行することにより達成される、改善されたパフォーマンス。
【０２１５】
−同一ディスクパーティション上に配置された異なる仮想コンピュータ間においてサービスプロセスのコードセグメントを共有することにより達成される、改善されたリソース利用。
【０２１６】
−従来技術では熟練者しかできなかった機能を、非熟練者でも実行し得る点を通じて達成される、改善された管理。
【０２１７】
これらの利点は、以下によって達成される。
【０２１８】
−固有の仮想ディスクシステム（これは、Ｕｎｉｘ（登録商標）  Ｃｈｒｏｏｔシステムコールによって実行される）を各ＶＤＳに提供すること。
【０２１９】
−選択されたシステムコールおよびライブラリコールをインターセプトすること。
【０２２０】
−ディスクスペースを節約するために、テンプレートディレクトリツリーと特定の仮想コンピュータのディレクトリツリーとの間においてハードリンクを用いること。
【０２２１】
−ルートと異なるアクセス権限下で全ての仮想コンピュータのプロセスを実行し、全ての管理コマンドをルート権限のプロセスに回送すること。
【０２２２】
−認証情報確認を行うこと。
【０２２３】
ＶＤＳ技術は、共有型サーバによるホスティングと専用サーバによるホスティングとの間の溝を埋め、複数の仮想専用サーバを単一のコンピュータシステム上に作成する。顧客にとっては、このような仮想専用サーバは、コンピュータシステムと区別がつかない。どちらのシステムも、同一のアプリケーションをサポートし、同一の管理の自由を顧客に与える。実用的には、ＶＤＳアカウントと専用サーバとの間の差は、処理されるリソース量（ディスクスペース、入出力の帯域、ＣＰＵパワー）においてだけである。
【０２２４】
上記例および説明は、例示目的だけのために示したものであり、本発明をいかなる様式においても限定するものではない。当業者であれば理解するように、本発明は、本発明の範囲を決して逸脱することなく、上述した技術のうち１つ以上の技術を用いて、広範かつ多様な様式で実施され得る。
【図面の簡単な説明】
【０２２５】
【図１】図１は、本発明の好適な実施形態による、複数のＶＤＳをホスティングするコンピュータのファイルシステムの構成図である。
【図２】図２は、本発明の好適な実施形態による管理図を示す。
【符号の説明】
【０２２６】
１０  ドメインａ．ｃｏｍの管理インターフェース
１１  Ｅメールのサービスを提供するホスティングコンピュータ
１２  テルネットのサービスを提供するホスティングコンピュータ
１３  ＦＴＰのサービスを提供するホスティングコンピュータ
１９  システム管理者の端末
２０  ドメインｂ．ｃｏｍの管理インターフェース
２１  Ｅメールのサービスを提供するホスティングコンピュータ
２２  テルネットのサービスを提供するホスティングコンピュータ
２９  システム管理者の端末
【図１】
2005514699.tif 000003
【図２】
2005514699.tif 000004
【国際調査報告】
2005514699.tif 000005
2005514699.tif 000006
2005514699.tif 000007