(57)【特許請求の範囲】
【請求項１】
二以上のリソースにサービスを提供するデーモンプログラム上で制御演算を動的に実行するコンピュータが制御する方法であって、
(ａ)プロセス間通信機構に前記デーモンプログラムを登録するとともに、前記プロセス間通信機構を用いて、前記デーモンプログラムを、制御演算の要求を行う一又は二以上のクライアントプログラム又はコマンドラインインターフェイスと接続されたサービスエージェントプログラムと接続するステップ、
(ｂ)前記プロセス間通信機構を用いて前記サービスエージェントプログラムから前記デーモンプログラムに、前記制御演算の要求を含むメッセージを送るステップ、及び
(ｃ)前記デーモンプログラムに、当該デーモンプログラムによって関連付けられる二以上の各リソースのための少なくとも一のパラメータを備えるプリファレンス機構と通信を行わせ、前記制御演算の要求に応じて、前記二以上のリソースのうち選択された一のリソースのために、前記デーモンプログラムによって用いられる、前記プリファレンス機構の少なくとも一の新たなパラメータの使用又はパラメータの変更を実行させ、新たな又は変更されたパラメータに従ってサービスが実行される前記二以上のリソースのうち選択された一のリソースの処理のために、前記デーモンプログラムが終了されず、前記一のリソースと異なる他のリソースのためのサービスが中断されないステップ、
の各ステップを含むコンピュータが制御する方法。
【請求項２】
前記ステップ(ａ)が、
(ａ１)前記プロセス間通信機構を前記デーモンプログラム内に実現するステップ、
をさらに含む請求項１記載のコンピュータが制御する方法。
【請求項３】
前記制御演算が、管理機能、実行監視機能、コンフィギュレーション機能、及びステータス生成機能よりなる群から選択されるものである請求項１記載のコンピュータが制御する方法。
【請求項４】
前記デーモンプログラムが、ＦＴＰデーモン、メールデーモン、ユーズネットニュースデーモン、ＨＴＴＰデーモン、システムログデーモン、ディレクトリサービスデーモン、及びインターネット標準サービスデーモンよりなる群から選択されるものである請求項１記載のコンピュータが制御する方法。
【請求項５】
前記サービスエージェントプログラムが、ＳＮＭＰエージェント、ＦＴＰ管理エージェント、及びＷＷＷサーバー管理エージェントよりなる群から選択されるものである請求項１記載のコンピュータが制御する方法。
【請求項６】
前記プロセス間通信機構が、ソラリスドア(Solaris Doors)、パイプ、セマフォア、共有メモリ、キュー、シグナル、メールボックス、リモートプロシージャコール(RPC)、及びリモートメソッド呼び出し(RMI)よりなる群から選択されるものである請求項１記載のコンピュータが制御する方法。
【請求項７】
前記制御演算が、前記デーモンプログラムに向けられるものである請求項１記載のコンピュータが制御する方法。
【請求項８】
前記制御演算が、前記二以上のリソースの一以上に向けられるものである請求項１記載のコンピュータが制御する方法。
【請求項９】
前記制御演算の要求が、選択されたリソースの再初期化に用いられるアクセス制御ファイルで指定される前記二以上のリソースのうち選択された一のリソースの再初期化要求を含み、この再初期化要求に従って、前記デーモンプログラムに処理を実行させる請求項１記載のコンピュータが制御する方法。
【請求項１０】
前記制御演算の要求が、前記コンピュータの実行についての統計の提供要求を含み、この統計の提供要求に従って、前記デーモンプログラムに処理を実行させる請求項１記載のコンピュータが制御する方法。
【請求項１１】
中央処理装置(ＣＰＵ)と前記ＣＰＵに結合されたメモリとを有し、二以上のリソースにサービスを提供するデーモンプログラム上で制御演算を動的に実行するための装置であって、
前記デーモンプログラムによって関連付けられる二以上の各リソースのための少なくとも一のパラメータを備え、前記デーモンプログラムと通信するプリファレンス機構、
前記デーモンプログラムを、制御演算の要求を行う一又は二以上のクライアントプログラム又はコマンドラインインターフェイスと接続されたサービスエージェントプログラムに接続させる、プロセス間通信機構のための登録機構、
前記プロセス間通信機構を用いて前記サービスエージェントプログラムから前記デーモンプログラムに、前記制御演算の要求を含むメッセージを送るよう構成されたメッセージ機構、及び
前記デーモンプログラムにおいて、当該デーモンプログラムにより受信された前記メッセージを処理するとともに、制御演算の要求に応じて、前記二以上のリソースのうち選択された一のリソースのために、前記デーモンプログラムによって用いられる、前記プリファレンス機構の少なくとも一の新たなパラメータの使用又はパラメータの変更を実行させることにより、少なくとも選択された一のサービスのための制御演算を実行するように構成され、新たな又は変更されたパラメータに従ってサービスが実行される前記二以上のリソースのうち選択された一のリソースの処理のために、前記デーモンプログラムが終了されず、前記一のリソースと異なる他のリソースのためのサービスが中断されないメッセージ処理機構、
を含む装置。
【請求項１２】
前記登録機構が、前記プロセス間通信機構を前記デーモンプログラム内に実現するよう構成された通信設定機構をさらに含む請求項１１記載の装置。
【請求項１３】
前記制御演算が、管理機能、実行監視機能、コンフィギュレーション機能、及びステータス生成機能よりなる群から選択されるものである請求項１１記載の装置。
【請求項１４】
前記デーモンプログラムが、ＦＴＰデーモン、メールデーモン、ユーズネットニュースデーモン、ＨＴＴＰデーモン、システムログデーモン、ディレクトリサービスデーモン、及びインターネット標準サービスデーモンよりなる群から選択されるものである請求項１１記載の装置。
【請求項１５】
前記サービスエージェントプログラムが、ＳＮＭＰエージェント、ＦＴＰ管理エージェント、及びＷＷＷサーバー管理エージェントよりなる群から選択されるものである請求項１１記載の装置。
【請求項１６】
前記プロセス間通信機構が、ソラリスドア(Solaris Doors)、パイプ、セマフォア、共有メモリ、キュー、シグナル、メールボックス、リモートプロシージャコール(RPC)、及びリモートメソッド呼び出し(RMI)よりなる群から選択されるものである請求項１１記載の装置。
【請求項１７】
前記制御演算が、前記デーモンプログラムに向けられるものである請求項１１記載の装置。
【請求項１８】
前記制御演算が、前記二以上のリソースの一以上に向けられるものである請求項９記載の装置。
【請求項１９】
前記制御演算の要求が、選択されたリソースの再初期化に用いられるアクセス制御ファイルで指定される前記二以上のリソースのうち選択された一のリソースの再初期化要求を含み、前記メッセージ処理機構が、この再初期化要求に従って前記制御演算を実行するように構成された請求項１１記載の装置。
【請求項２０】
前記制御演算の要求が、前記コンピュータの実行についての統計の提供要求を含み、この統計の提供要求に従って、前記メッセージ処理機構が、この統計の提供要求に従って前記制御演算を実行するように構成された請求項１１記載の装置。
【請求項２１】
二以上のリソースにサービスを提供するデーモンプログラム上で、コンピュータに制御演算を動的に実行させるためのコンピュータ読取可能コードを備えたコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータを、前記デーモンプログラムによって関連付けられる二以上の各リソースのための少なくとも一のパラメータを備えた、当該デーモンプログラムのためのプリファレンス機構と通信させるように構成されたコンピュータ読取可能プログラムコード、
前記コンピュータを、制御演算の要求を行う一又は二以上のクライアントプログラム又はコマンドラインインターフェイスと接続されたサービスエージェントプログラムに、前記デーモンプログラムを接続させるように構成されたプロセス間通信機構として動作させるように構成されたコンピュータ読取可能プログラムコード、
前記コンピュータを、前記プロセス間通信機構を用いて前記サービスエージェントプログラムから前記デーモンプログラムに、前記制御演算の要求を含むメッセージを送るように動作させるように構成されたコンピュータ読取可能プログラムコード、及び
前記コンピュータを、前記デーモンプログラムによって受信された前記メッセージを処理するとともに、制御演算の要求に応じて、前記二以上のリソースのうち選択された一のリソースのために、前記デーモンプログラムによって用いられる、前記プリファレンス機構の少なくとも一の新たなパラメータの使用又はパラメータの変更を実行させることにより、少なくとも選択された一のサービスのための制御演算を実行し、新たな又は変更されたパラメータに従ってサービスが実行される前記二以上のリソースのうち選択された一のリソースの処理のために、前記デーモンプログラムが終了されず、前記一のリソースと異なる他のリソースのためのサービスが中断されないように動作させるように構成されたコンピュータ読取可能プログラムコード、
を含むコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２２】
前記プロセス間通信機構を前記デーモンプログラム内に備えるように構成された通信設定機構を、前記コンピュータによって動作させるよう構成されたコンピュータ読取可能プログラムコードをさらに含む請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２３】
前記制御演算が、管理機能、実行監視機能、コンフィギュレーション機能、及びステータス生成機能よりなる群から選択されるものである請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２４】
前記デーモンプログラムが、ＦＴＰデーモン、メールデーモン、ユーズネットニュースデーモン、ＨＴＴＰデーモン、システムログデーモン、ディレクトリサービスデーモン、及びインターネット標準サービスデーモンよりなる群から選択されるものである請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２５】
前記サービスエージェントプログラムが、ＳＮＭＰエージェント、ＦＴＰ管理エージェント、及びＷＷＷサーバー管理エージェントよりなる群から選択されるものである請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２６】
前記プロセス間通信機構が、ソラリスドア(Solaris Doors)、パイプ、セマフォア、共有メモリ、キュー、シグナル、メールボックス、リモートプロシージャコール(RPC)、及びリモートメソッド呼び出し(RMI)よりなる群から選択されるものである請求項１７記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２７】
前記制御演算が、前記デーモンプログラムに向けられるものである請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２８】
前記制御演算が、前記二以上のリソースの一以上に向けられるものである請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項２９】
前記制御演算の要求は、選択されたリソースの再初期化に用いられるアクセス制御ファイルで指定される前記二以上のリソースのうち選択された一のリソースの再初期化要求を含み、前記コンピュータを、この再初期化要求に従って前記制御演算を実行するように動作させる請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項３０】
前記制御演算の要求は、前記コンピュータの実行についての統計の提供要求を含み、この統計の提供要求に従って、前記コンピュータを、この統計の提供要求に従って前記制御演算を実行するように動作させる請求項２１記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータサーバプログラム管理に関する。特に、本発明は、コンピュータ内部で実行されるデーモンプログラムの動的管理、運用及び監視のための方法、装置及びコンピュータプログラム製品に関する。
【０００２】
【従来の技術】
ほとんどのコンピュータオペレーティングシステムには、サーバプログラムを実行するための機構が組み込まれている。これらのサーバプログラムは、他のおそらくはネットワーク化されたクライアントプログラムにサービスを提供するのに使用される。これらサーバプログラムは一般にユーザとやりとりをしない。これに対し、クライアントプログラムはサーバプログラムが演算を実行するように要求する。サーバプログラムは、要求された演算を実行し、一般には結果をクライアントプログラムに返す。これらのサーバプログラムは通常「デーモン」プログラムと呼ばれ、後で定義される。デーモンプログラムは、オペレーティングシステムが初期化されるときに起動されることがよくある。デーモンプログラムは、実行開始するときに、コマンドラインオプションにアクセスするか、またはプリファレンスファイルまたは初期化ファイルを読み取るか(またはその両方をするか)して、演算をさらに環境設定する。デーモンプログラムは、オペレーティングシステムサービスに類似したサービスを行うことがよくある。デーモンプログラムの例の１つは、ファイルリソースについて、ファイルを開いたり閉じたりするサービスを行うプログラムである。デーモンプログラムの別の例は、ＨＴＴＰサーバプログラムである。このプログラムは、インターネット経由でウェブページリソース用にＷＷＷ(World Wide Web)サービスを提供する。
【０００３】
図１に、１つまたは複数のリソースにサービスを提供するための、従来のデーモンアーキテクチャを示す。一般的な参照符号は１００である。この例では、従来のデーモンアーキテクチャ１００の内部にＨＴＴＰサーバデーモンプログラム１０１を使用する。ＨＴＴＰサーバデーモンプログラム１０１は、プリファレンスファイル１０３にアクセスして、サービスをするリソースに関する情報を取得する。また、従来のデーモンアーキテクチャ１００には、ネットワーク１０５への接続も組み入れられる。ネットワーク経由の通信はＨＴＴＰサーバデーモンプログラム１０１のホストであるコンピュータ内部に完全に組み入れることができるが、必ずしもそうである必要はない。ＨＴＴＰサーバデーモンプログラム１０１は、複数のＷＷＷドメイン用にサービスを提供する。これには１番目にサービスを受けるウェブサイト１０７、２番目にサービスを受けるウェブサイト１０９、３番目にサービスを受けるウェブサイト１１１が含まれる。この例では、各ＷＷＷドメインが、ＨＴＴＰサーバデーモンプログラム１０１がサービスをするリソースである。
【０００４】
【発明が解決しようとする課題】
従来のデーモンプログラムの問題の１つは、デーモンプログラムが、コンピュータのオペレーティングシステムが起動されたすぐ後で実行を開始し、コンピュータがシャットダウンされるまで実行を継続するよう一般に設計されていることである。従って、デーモンプログラムの動作特性が、デーモンプログラムが開始したときに指定された特性から変化した場合、デーモンプログラムを終了し、新しい特性で再開始する必要がある。デーモンプログラムが終了する時点と、再開始されたデーモンプログラムが初期化される時点との間、デーモンプログラムが提供するサービスは利用できない。従って、デーモンプログラムについて管理機能を実行すると、デーモンプログラムが提供するリソースに関するサービスの利用可能性に影響する。このような管理的機能には(制限なしに)、デーモンプログラムの再環境設定、デーモンプログラムの性能調整、およびデーモンプログラムの性能監視が含まれる。
【０００５】
図２に、従来のデーモン再初期化プロセスを図示する。これは一般参照符号１５０で示され、デーモンプログラムの特性を変更するのに使用される。従来のデーモン再初期化プロセス１５０は、「開始」端１５１を開始し、継続して「デーモンプログラム起動」ステップ１５３に進む。前述したように、デーモンプログラムは、起動オプションを指定できるシステム管理者が起動できる。デーモンプログラムは、起動されると、(おそらくコマンドラインオプションまたはプリファレンスファイルに入っている情報(またはその両方)を使用して)自らを初期化し、「１番目のデーモンプログラム実行」ステップ１５５でサービスを提供する。次に、管理者は、デーモンプログラムの動作の変更を決定する。これを行うために、システム管理者は、必要であれば(目的の変更が、起動オプションを変更するだけで達成できるのであればこのステップは不要である)、「プリファレンスを編集」ステップ１５７でプリファレンスファイルを編集する。次に、システム管理者は、デーモンプログラムを終了させる「デーモンプログラムを終了」ステップ１５９を開始する。デーモンプログラムが終了してしまうと、デーモンプログラムによって提供されていたリソースに関するサービスはクライアントプログラムに利用できなくなる。次に、「デーモンプログラムを再起動」ステップ１６１で、システム管理者は、異なるコマンドラインオプションまたは「プリファレンスを編集」ステップ１５７で編集されたプリファレンスファイル(またはその両方)を使用し、デーモンプログラムを再開始する。このように「２番目のデーモンプログラム実行」ステップ１６３は、新しいオプションまたはプリファレンスファイル(またはその両方)を使用して実行を開始し、「１番目のデーモンプログラムの実行」ステップ１５５とは異なるように動作する。従来のデーモン再初期化プロセス１５０は「終了」端１６５で完了する。
【０００６】
デーモンプログラムには、複数のリソースにサービスを提供するものがある。そのようなデーモンプログラムの例の１つはＨＴＴＰデーモンプログラムである。たとえば、通常のＨＴＴＰデーモンプログラムは複数のＷＷＷサイトをサポートする。ＨＴＴＰサーバデーモンプログラムが、サービスを受けるＷＷＷサイトの１つのパラメータを変更するために終了されると(たとえば、図２のプロセスを使用)、サービスを受けていたすべてのＷＷＷサイトのサービスが、ＨＴＴＰデーモンプログラムが再開始されるまで中断される。
【０００７】
これらのデーモンプログラムには、管理者がデーモンプログラムの動作を制御できるようにするために、より効率的な機構が必要である。たとえば、ＷＷＷサーバ管理者には、アクセス制御オプションを変更し、特定のドメインを有効にし、デーモンプログラムの性能を監視するためのデータを収集する能力が必要である。従来では、デーモンプログラムは一般に性能およびステータス情報を１つのファイルに保存する。管理者は、ファイル内のすべての情報にアクセスするために、デーモンプログラムを終了する必要があることがよくある。
【０００８】
このように、問題の１つは、デーモンプログラムの管理によって、デーモンプログラムが提供するリソースのサービスが中断されることである。このサービス中断は、デーモンプログラムがサービスをするプログラムのユーザに影響を及ぼす。また、このサービス中断は、一般に、デーモンプログラムの使用が最も少ないとき(一般に管理者に不便なときである。)にデーモンプログラムの管理を行うことが要求される。
【０００９】
管理プロセスの間にデーモンプログラムが完全に使用不可能になることを要求せずに、デーモンプログラムの管理ができる方法、装置及びプログラム製品を準備するとことが有益である。このような発明は、管理機能のためにリソースのサービスが利用できなくなる時間を減少させ、コンピュータシステムの性能を向上させる。
【００１０】
【課題を解決するための手段】
本発明は、デーモンプログラムがサービスを受けるリソースに提供するサービスを終了せず、デーモンプログラムについて管理的な関数を実行する機構を備えることによって、デーモンプログラムの管理を改良する。
【００１１】
本発明の１つの側面は、デーモンプログラム制御演算を動的に実行するコンピュータ制御方法である。デーモンプログラムは、１つまたは複数のリソースにサービスを提供する。この方法には、プロセス間通信機構でデーモンプログラムを登録するステップが組み込まれている。別のステップは、プロセス間通信を使用するデーモンプログラムにサービスエージェントプログラムを接続するものである。また、この方法では、プロセス間通信機構を使用して、サービスエージェントプログラムからデーモンプログラムにメッセージを送信する。さらに、別のステップは、制御演算を実行しているデーモンプログラムによってメッセージを処理するものである。
【００１２】
本発明の別の側面は、デーモンプログラムの制御演算を動的に実行するための、中央演算装置(ＣＰＵ)およびＣＰＵに結合されたメモリを備えた装置である。デーモンプログラムは、１つまたは複数のリソースにサービスを提供する。この装置には、プロセス間通信機構でデーモンプログラムを登録するよう環境設定される登録機構が組み込まれている。また、プロセス間通信機構を使用して、サービスエージェントプログラムをデーモンプログラムに接続するよう環境設定された接続機構も組み込まれている。また、この装置には、プロセス間通信機構を使用して、サービスエージェントプログラムからデーモンプログラムにメッセージを送信するよう環境設定されたメッセージ機構も組み込まれている。さらに、この装置には、デーモンプログラムによって、メッセージを処理するよう環境設定された処理機構が組み込まれている。
【００１３】
本発明のまた別の側面は、コンピュータがデーモンプログラムについて制御演算を動的に実行するように、コンピュータが使用できる媒体上に具体化されたコンピュータプログラム製品である。デーモンプログラムは、１つまたは複数のリソースにサービスを提供する。コンピュータ上で実行されるとき、コンピュータが読み取りできるコードは、コンピュータが、登録機構、接続機構、メッセージ機構、および処理機構を実行できるようにする。これらの各機構は、前述した装置の対応する機構と同じ機能を備えている。
【００１４】
本発明のその他の側面は、搬送波の中に具体化されたコンピュータプログラム製品である。搬送波は、コンピュータがデーモンプログラムの制御演算を動的に実行するように、搬送波内のコンピュータ読み取り可能コードを送信する。デーモンプログラムは１つまたは複数のリソースについてサービスを提供する。コンピュータ上で実行されるとき、コンピュータが読み取りできるコードは、コンピュータが、登録機構、接続機構、メッセージ機構、および処理機構を実行できるようにする。これらの各機構は、前述した装置の対応する機構と同じ機能を備えている。
【００１５】
本発明の前述の側面および他の多数の側面は、各種の図面に示された好適実施例の以降の詳細な記述を読んだ後、当業者に疑いなく明瞭になるであろう。
【００１６】
【発明の実施の形態】
[用語]
以降の[用語]は、本発明および好適実施例の理解を容易にするためのものである。
「制御演算」−制御演算は、デーモンプログラムの主要機能に付随する演算である。制御演算には(制限なしに)、管理演算、環境設定演算、ステータス演算、および性能監視演算が含まれる。制御演算は、デーモンプログラム、またはデーモンプログラムがサービスをする１つまたは複数のリソースに向けることができる。
「デーモンプログラム」−デーモンプログラムは、背景で継続的かつ自動的に実行されるプログラムである(Wired Style;Principles of English Usage in the Digital Age,(C)1996 by HardWired,page 44,ISBN 1-888869-01-1)。別の定義は、ユーザの関与なしにユーティリティ関数を実行するプロセスである(Inside OS/2,(C)1988 Microsoft Press,page 270,ISBN 1-55615-117-9)。ほとんどのＵＮＩＸ類似システムには、印刷サービス、リモートファイルサービス、およびその他の多数のサービスとともにインターネットサービスを提供するデーモンプログラムがある。類似の機能が、他のオペレーティングシステムでも準備されている(異なる名称を使用することもよくある)。
「プロシージャ」−プロシージャは、目的の結果に至るステップの自己完結シーケンスである。これらのステップは、物理量の物理演算を要求するものである。通常、これらの量は、保存、転送、結合、比較、その他の処理ができる電気信号または磁気信号の形を取る。これらの信号は、ビット、値、エレメント、シンボル、キャラクタ、用語、数字などのように呼ばれる。当業者は、これらのすべての用語および類似の用語が、該当する物理量に対応し、これらの量に適用される単なる便利なラベルに過ぎないことを理解するであろう。
【００１７】
[動作環境]
本発明はコンピュータを使用する。コンピュータの要素のいくつかは、一般参照符号２００に示されるように、図３に図示したとおり、発明をサポートするよう環境設定されている。図３では、プロセッサ２０１が示されている。２０１には、中央演算装置(ＣＰＵ)２０３、メモリセクション２０５、および入出力(Ｉ／Ｏ)セクション２０７がある。入出力セクション２０７はキーボード２０９、表示装置２１１、ディスクストレージ装置２１３、およびＣＤ−ＲＯＭドライブ装置２１５に接続されている。ＣＤ−ＲＯＭドライブ装置２１５は、通常プログラムとデータが入っているＣＤ−ＲＯＭドライブ媒体２１７を読み取りできる。ＣＤ−ＲＯＭドライブ装置２１５は、ＣＤ−ＲＯＭ媒体２１７、およびディスクストレージ装置２１３とともにファイル保存機構を構成する。また、コンピュータシステムには、コンピュータシステムをネットワーク２２３に接続するネットワークインタフェース２２１も組み込まれている。このようなコンピュータシステムは、本発明を具体化するアプリケーションを実行できる。当業者は、ネットワークを使用し、ネットワークベースの機構を使って同じコンピュータ内で別のプログラム間で通信できることが分かるであろう。このように、コンピュータシステム内のプログラム間の通信は、ネットワーク２２３を経由してコンピュータシステムの外部に実際に拡大する必要はない。当業者は、発明の実施例には、上記の機能のサブセットしかないコンピュータで実装できるもとがあることが分かるであろう。
【００１８】
図４に示す好適実施例は、一般参照符号３００で示されるデーモンプログラムアーキテクチャを図示し、このアーキテクチャは、ＨＴＴＰサーバデーモンプログラム３０１に本発明を組込んでいる。初期化時に、ＨＴＴＰサーバデーモンプログラム３０１は、プリファレンスファイル３０３にアクセスして、スタートアップ環境設定(おそらくはコマンドラインオプションである)を取得する。ＨＴＴＰサーバデーモンプログラム３０１は、ネットワーク３０５に結合し、最初にサービスを受けるウェブサイト３０７、２番目にサービスを受けるウェブサイト３０９、３番目にサービスを受けるウェブサイト３１１のようなリソースに同時ＨＴＴＰサービスを提供する。また、ＨＴＴＰサービスデーモンプログラム３０１には、プロセス間通信機構３１３が組み込まれており、この３１３はエージェントプログラムがＨＴＴＰサーバデーモンプログラム３０１に通信できるようにする。「管理サービスエージェント」プログラム３１５は、ネットワーク３０５経由で「管理クライアント」プログラム３１７と通信する。「管理クライアント」プログラム３１７は管理演算の要求を「管理サービスエージェント」プログラム３１５に送信し、３１５は要求された演算を実行する。要求された演算を実行するために、「管理サービスエージェント」プログラム３１５は、プリファレンスファイル３０３を変更したり、プロセス間通信機構３１３を使用してＨＴＴＰサーバデーモンプログラム３０１と通信することができる。「管理サービスエージェント」プログラム３１５がＨＴＴＰサーバデーモンプログラム３０１に通信した場合、ＨＴＴＰサーバデーモンプログラム３０１は要求された演算を実行し、要求された演算の完了のステータスを「管理サービスエージェント」プログラム３１５に確認応答する(おそらくは他の情報を返すことによってである)。次に、この情報は「管理クライアント」プログラム３１７に返される。「ＳＮＭＰエージェント」プログラム３１９を使用して類似のプロセスが発生する。しかし、この場合、「ネットワークマネージャサービス」プログラム３２１は、ＳＮＭＰプロトコルを使用してネットワーク３０５経由で「ＳＮＭＰエージェント」プログラム３１９と通信し、次に３１９はＨＴＴＰサーバデーモンプログラム３０１と通信して、要求された演算を実行する。さらに、「コマンドラインインタフェース」プログラム３２３は、プロセス間通信機構３１３を使用してＨＴＴＰサーバデーモンプログラム３０１に接続できる。「コマンドラインインタフェース」プログラム３２３では、要求に応じて、テキストコマンドをＨＴＴＰサーバデーモンプログラム３０１に送信できる。
【００１９】
デーモンプログラムアーキテクチャ３００の利点の１つは、ＨＴＴＰサーバデーモンプログラム３０１が、プロセス間通信機構３１３経由でコマンドを受信、処理、応答できることである。このように、「管理サービスエージェント」プログラム３１５は、プリファレンスファイル３０３を環境設定し直し(たとえば、最初のサーバウェブサイト３０７についてのパラメータを修正し)てから、ＨＴＴＰサーバデーモンプログラム３０１と通信し、新しいパラメータを使用して最初にサービスを受けるウェブサイト３０７用のサービスを再スタートアップできる。このように、ＨＴＴＰサーバデーモンプログラム３０１は、２番目のウェブサイト３０９へのサービスを中断することなく最初にサービスを受けるウェブサイト３０７を修正できる。このように、ネットワーク管理者は、他のドメインに提供されるサービスに影響を及ぼさずに、特定のドメインについてのサービスを有効または無効にすることを選択できる。
【００２０】
さらに、ＨＴＴＰサーバデーモンプログラム３０１は、同じように「管理クライアント」プログラム３１７にステータス情報を提供できる。「管理クライアント」プログラム３１７は、ネットワーク３０５経由で、ステータス要求を「管理サービスエージェント」プログラム３１５に送信する。「管理サービスエージェント」プログラム３１５は、プロセス間通信機構３１３を使用して、１つまたは複数の通信に対する要求をＨＴＴＰサーバデーモンプログラム３０１への１つまたは複数の要求に変換する。ＨＴＴＰサーバデーモンプログラム３０１は、これらの通信を処理し、これらの通信に応答して、「管理サービスエージェント」プログラム３１５にステータス情報を提供する。次に、「管理サービスエージェント」プログラム３１５は、返された情報を収集し、収集したデータを「管理クライアント」プログラム３１７に送信する。
【００２１】
当業者は、ＨＴＴＰサービス以外のサービスを提供するデーモンプログラムも本発明から利益を得ることを理解するであろう。このようなデーモンプログラムの例(制限なし)には、ＦＴＰデーモン、Ｅメールデーモン、ユーズネット(usenet)ニュースデーモン、システムログデーモン、ディレクトリサービスデーモン、およびインターネット標準サービスデーモンが含まれる。当業者は、上記にリストした以外のデーモンプログラムも本発明から利益を得られることを理解するであろう。
【００２２】
本発明で使用するプロセス間通信機構３１３は、どのようなプロセス間通信機構を基礎にすることもできる。これらの機構には、(制限なしに)Solaris(商標) Doors、パイプ、セマフォア、共有メモリ、待ち行列、信号、およびメールボックス、およびメッセージ待ち行列のようなプロセス間通信(ＩＰＣ)機構が含まれる。また、これらの機構には(制限なしに)、リモートプロシージャコール(ＲＰＣ:remote procedure call)機構、ＴＣＰ／ＩＰ機構、およびリモートメソッド呼び出し(ＲＭＩ:remote method invocation)機構も含まれる。当業者は、コンピュータ内部で実行されているプログラム間で情報を受け渡しするために多数の機構が存在していることを理解するであろう。本発明は、サーバプログラムにアクセスできるサービスエージェントプログラム用の機能を備えることができるようなプロセス間通信機構の使用法について考察している。プロセス間通信機構の好適実施例は、既知の信頼できるサービスエージェントプログラムだけがデーモンプログラムにアクセスできるというセキュリティを備えている。好適実施例はSolaris Doors機構を使用している。
【００２３】
「管理サービスエージェント」プログラム３１５と「ＳＮＭＰエージェント」プログラム３１９はそれぞれ、サービスエージェントプログラムの例である。サービスエージェントプログラムは、ネットワーク３０５、および管理サービス用のＨＴＴＰサーバデーモンプログラム３０１のようなデーモンプログラムとの間のインタフェースを提供する。各サービスエージェントプログラムは、デーモンプログラムと信頼のある接続を行う。また、各サービスエージェントプログラムは、自身がネットワーク経由のサービスとして利用できるようにする。サービスエージェントプログラムは、ネットワーク化されたプログラムからコマンドを受信し、デーモンプログラムに適切な通信を行なってコマンドが正常に完了できるようにする。結果はデーモンプログラムからサービスエージェントプログラムに返される。次いで、デーモンプログラムは、要求を開始したネットワーク化されたプログラムに結果を返送する。サービスエージェントプログラムの例には(制限なしに)、ＳＮＭＰエージェント、ＦＴＰ管理エージェント、およびＷＷＷサーバ管理エージェントが含まれる。本発明は、以上にリストした以外のサービスエージェントプログラムの使用法も考察している。
【００２４】
当業者は、ネットワーク経由でプログラムが通信するために多数の技法が存在することを理解するであろう。これらの技法には良く知られたＴＣＰ／ＩＰプロトコルまたはＨＴＴＰプロトコルが含まれる。また、当業者は、一般に、ＷＷＷページサービスがＨＴＴＰデーモンプログラムを使用してＨＴＴＰプロトコルを処理することも理解するであろう。このように、サービスエージェントプログラムがＨＴＴＰサーバデーモンプログラム３０１によってサービスを受ける場合、図４に図示された例で示されるデータフローは、クライアントプログラムからのコマンドが最初にＨＴＴＰサーバデーモンプログラム３０１を経由するように修正される。
【００２５】
図５は、リソースにサービスを提供するための、一般参照符号４００で示されるデーモンプログラムプロセスを図示している。デーモンプログラムプロセス４００は、一般に、コンピュータシステムに明示的なコマンドをオペレータが入力した結果として、システムの初期化プロセスからの自動起動の結果として、またはタイマイベントの結果として起動される。デーモンプログラムの起動には、デーモンプログラムに各種の演算パラメータを指定するコマンドラインオプションの処理が含まれることがある。デーモンプログラムプロセス４００は、「開始」端４０１を開始し、「デーモン初期化」プロシージャ４０５へと続く。「デーモン初期化」プロシージャ４０５は一般に、たとえば、ストレージ初期化、追加実行スレッドの作成、および技術によって良く理解されるその他の初期化演算を実行する。次に、デーモンプログラムは「プリファレンスを処理」プロシージャ４０７を継続する。４０７は、プリファレンスファイル３０３の内容を読み取りおよび処理し、コマンドラインオプションを処理する。プリファレンスファイル３０３には、デーモンプログラムが、最後に終了されたときと同じ状態に自身を再環境設定できるようにする情報が含まれている。ＨＴＴＰサーバデーモンプログラム３０１の場合、プリファレンスファイル３０３には、デーモンプログラムがサービスをするウェブサイト３０７、３０９、３１１を識別する情報が組み入れられている。
【００２６】
次に、デーモンプログラムプロセス４００は、「プロセス間通信機構で登録」プロシージャ４０９を継続する。プロシージャ４０９は、プロセス間通信機構３１３によって、少なくとも１つのサービスエージェントプログラム(たとえば、「管理サービスエージェント」プログラム３１５)から将来の通信を有効にするものである。「プロセス間通信機構で登録」プロシージャ４０９は、プロセス間通信機構３１３実装の詳細によって左右される。登録プロセスには一般に次のものが含まれる。サーバプログラム識別情報の登録、セキュリティオプションの指定(信頼できるサービスエージェントプログラムによるサーバプログラムに通信を制限すること)、およびサービスエージェントプログラムから通信を受信するために、デーモンプログラムを準備完了にさせるように他の演算を実行することである。
【００２７】
次に、デーモンプログラムは(好適実施例内で)別の実行スレッドを作成する。１つの実行スレッドを使用して、デーモンプログラムのサポートするリソースにサービスを提供する「デーモンサービスを提供」プロシージャ４１１をサポートするためである。「デーモンサービスを提供」プロシージャ４１１自体が、デーモンプログラムのサービスを提供するために、必要に応じて他のスレッドを起動することもある。他の実行のスレッドを使用して、各サービスエージェントプログラムからの要求を処理する。当業者は、どのように実行のスレッド(複数)を使用して、同じプログラム内で複数の演算を実行するか理解するであろう。「エージェントメッセージを待機」プロシージャ４１３は、プロセス間通信機構３１３によってコマンドが受信されるのを待機する。コマンドが受信されたとき、プロセスは「エージェントメッセージを受信」プロシージャ４１５に継続する。好適実施例内で、別のスレッドが起動され、「エージェントメッセージを処理」プロシージャ４１７によるコマンドを処理する。「プログラムエージェントメッセージ」プロシージャ４１７は「スレッド内通信」機構４１９を使用して、受信済みメッセージに応答する「デーモンサービスを提供」プロシージャ４１１の実行に影響を及ぼす。「スレッド間通信」機構４１９は、スレッドミューテックス、条件変数、または他の良く知られたテクニックを使用して、「デーモンサービスを提供」プロシージャ４１１から情報を取得し、プロシージャ４１１について管理演算を実行する。要求された演算が完了すると、「エージェントメッセージを確認応答」プロシージャ４２１が、該当するサービスエージェントプログラムにコマンドが完了したこと、コマンド完了のステータス、およびサービスエージェントプログラムによって要求されるその他のデータを確認応答する。次に、プログラムは、スレッドの実行を終了し、「エージェントメッセージを待機」プロシージャ４１３に戻り、次のコマンドを受信する。
【００２８】
図６に、一般参照符号５００で示される、ネットワーク化されたアプリケーションをデーモンプログラムに接続するための「エージェント実行」プロセスを図示する。プロセス５００は、一般に、コンピュータシステムに明示的なコマンドを入力するオペレータ、システムの初期化プロセスからの自動起動、またはタイマイベントによって開始される。このプロセスは、「管理サービスエージェント」プログラム３１５および「ＳＮＭＰエージェント」プログラム３１９の両方によって実装される。プロセス５００の起動には、エージェントプログラムに各種条件を指定するコマンドラインオプションの処理を含んでいることがある。いったん起動されると、プロセス５００は「開始」端５０１で開始し、エージェントプログラムを初期化する「スタートアップ初期化」プロシージャ５０３に継続する。次に、プロセス５００は、プロセス間通信機構３１３にアクセスする「デーモンと接続」プロシージャ５０５に継続し、目的のデーモンプログラムが登録されているかどうかを判定する(「プロセス間通信機構で登録」プロシージャ４０９を参照)。目的のデーモンプログラムが登録されていない場合、エージェントは、いくらかの遅延の後に再試行するか、エラーを指示する。しかし、目的のデーモンが登録されている場合、サービスエージェントプログラムは、プロセス間通信機構３１３を使用して、デーモンプログラムとの接続を開く。
【００２９】
次に、プロセス５００は、「ネットワークと結合」プロシージャ５０７に継続する。この５０７は、ネットワーク上のサービスエージェントプログラムの存在を確立する。「ネットワークと結合」プロシージャ５０７は、良く知られたテクニックを使用して、ネットワークプロトコルを登録する。たとえば、ＴＣＰ／ＩＰネットワークの場合、プログラムは、特定のＵＲＬと対応させられることもあるし、既知のＴＣＰ／ＩＰソケットおよびポートを備えることもある。
【００３０】
この時点で、サービスエージェントプログラムは初期化を完了し、コマンドの受信を待機する。やがて、「ネットワーク化された管理クライアントからコマンドを受信」プロシージャ５０９で、プロセス５００はネットワークからのコマンドを受信する。プロセス５００は「エージェントに固有のコマンド処理」プロシージャ５１０でコマンドをパースおよび処理する。次に、プロセス５００は、適切なメッセージ、または「制御演算をデーモンに送信」プロシージャ５１１でデーモンプログラムに制御演算を指定する適切なメッセージのシーケンスを生成および送信してコマンドを実現する。デーモンプログラムはメッセージを処理し、指定の制御演算を実行することで応答し、結果を返し、(必要であれば)データを返す。制御演算は、デーモンプログラム自体に向けられることもあるし、デーモンプログラムの制御する１つまたは複数のリソースに向けられることもある。制御演算の例をいくつか挙げると(制限なしに)、デーモンプログラムがリソースのサービスを再初期化、リソースのサービスの延期、必要な場合は性能情報およびその他の便利な演算を提供させるものがある。結局、デーモンプログラムは、要求された演算を実行し、「デーモンから結果を受信」プロシージャ５１３でプロセス５００に結果を返す。プロセス５００がデーモンプログラムから情報を受信すると、「エージェントに固有の結果処理」プロシージャ５１４が、サービスエージェントプログラムの仕様に従って結果を処理する。次に、「ネットワーク化された管理クライアントに結果を送信」プロシージャ５１５が結果をネットワーククライアントに送信する。
【００３１】
図７に、一般参照符号６００で示される「管理サービスクライアント」プロセスを図示する。６００は「管理サービスエージェント」プログラム３１５と通信し、３１５は図６に示すプロセス５００を実装して、信頼性のあるユーザがデーモンプログラムで管理機能を実行できるようにする。「管理サービスクライアント」プロセス６００は、一般に、「管理クライアント」プログラム３１７によって実装される。「管理サービスクライアント」プロセス６００は「開始」端６０１で開始し、「管理サービスエージェントと接続」プロシージャ６０３へと継続する。６０３は、ネットワークプロトコル(たとえば、ＴＣＰ／ＩＰ)を使用して、「管理サービスエージェント」プログラム３１５との接続を確立する。接続がいったん確立されると、「管理サービスエージェント」プログラム３１５は、「ユーザを確認」プロシージャ６０５で、ユーザが信頼性のあるユーザであることを確認する。ユーザが信頼性のあるユーザであるとして確認されると、「管理サービスクライアント」プロセス６００は「選択した管理機能を取得」プロシージャ６０７へと継続する。６０７はユーザに関数の選択を提示する。ユーザは、制御演算を指定する関数を選択する。次に、この制御演算は「管理サービスエージェント」プログラム３１５に提出される。３１５で、制御演算は、図６に示すプロセス５００に従って処理される。結局、「管理サービスクライアント」プロセス６００は、「エージェントから応答を受信」プロシージャ６１１で、「管理サービスエージェント」プログラム３１５から応答を受信する。この応答は、「応答を処理」プロシージャ６１３によって処理される。処理済みの応答は一般に、目的の関数が完了したことを信頼性のあるユーザに示す。また、「応答を処理」プロシージャ６１３は、「管理サービスエージェント」プログラム３１５が返した情報をユーザに表示する。次に、「管理サービスクライアント」プロセス６００は、「管理サービスエージェントと接続」プロシージャ６０３に戻り、その他の関数を実行する。
【００３２】
図８に、一般参照符号６５０で示される「ネットワークマネージャサービスクライアント」プロセスを図示する。これは、「ＳＮＭＰエージェント」プログラム３１９と通信する。３１９は、図６に示したプロセス５００を実装して、「ネットワークマネージャサービスクライアント」プロセス６５０がデーモンプログラムから情報を得られるようにする。「ネットワークマネージャサービスクライアント」プロセス６５０は、「開始」端６５１で開始し、「ＳＮＭＰエージェントに接続」プロシージャ６５３へと続く。「ＳＮＭＰエージェントに接続」プロシージャ６５３は、「ＳＮＭＰエージェント」プログラム３１９と接続する。次に、「ネットワークマネージャサービスクライアント」プロセス６５０は「ネットワークマネージャサービス」プロシージャ６５５へと継続する。６５５は、「ＳＮＭＰエージェント」プログラム３１９と共同して、「ネットワークマネージャサービス」プログラム３２１が「ＳＮＭＰエージェント」プログラム３１９によって信頼されているかどうかを判定する。「ＳＮＭＰエージェント」プログラム３１９が「ネットワークマネージャサービス」プログラム３２１を信頼しない場合、「ネットワークマネージャサービスクライアント」プロセス６５０はエラー条件を示す。そうでない場合、「ネットワークマネージャサービスクライアント」プロセス６５０は、「ＳＮＭＰコマンド(制御演算)を送信」プロシージャ６５７へと継続する。６５７は、ＳＮＭＰプロトコルを使用してネットワーク管理要求を「ＳＮＭＰエージェント」プログラム３１９に送信する。「ＳＮＭＰエージェント」プログラム３１９は、図６について記述したように、ネットワーク管理要求を処理し、デーモンプログラムにメッセージを生成する。また、「ＳＮＭＰエージェント」プログラム３１９は、ステータス応答を送信し、おそらくは結果を「ネットワークマネージャサービス」プログラム３２１に返送する。この応答は、「エージェントから応答を受信」プロシージャ６５９で受信される。次に、「ネットワークマネージャサービスクライアント」プロセス６５０は、適宜、「応答を処理」プロシージャ６６１で応答に対して演算する。次に、「ネットワークマネージャサービスクライアント」プロセス６５０は「ＳＮＭＰエージェント」プロシージャ６５３へと継続し、その他のＳＮＭＰ要求を「ＳＮＭＰエージェント」プログラム３１９に提出する。
【００３３】
[ライブラリ関数]
Solaris Doors機能を使用して、エージェントとデーモンプログラムの間で通信するライブラリ関数の例は次のとおりである。
【００３４】
【表１】
0004262828.tif 000002
【００３５】
ＨＴＴＰデーモンプログラムとの間で情報をやり取りするコア関数を表１に示す。この関数は、サービスエージェントプログラムからデーモンプログラムにドア呼び出し(door call)を起動する。inst_name引数を使用して、デーモンプログラムが登録したドアの名前を渡す。cmd引数は、コマンドコードをデーモンプログラムに渡すために使用され、デーモンプログラムは管理関数またはコマンド関数を実行するように指示する。res_p引数は、結果のデータを返すのに使用されるデーモンプログラムがある場合はそのデーモンプログラムが割り振ったバッファを指すポインタを受け取る。rsize_p引数は、割り当てられたバッファのサイズを受け取る。
【００３６】
【表２】
0004262828.tif 000003
【００３７】
ＨＴＴＰデーモンプログラムは、表２に示したコードを使用して再開始できる。ここで、cmd.cmdNameはTPD_RESTARTINSTに設定される。inst_name引数は、デーモンプログラムが登録したドアの名前を渡すのに使用される。httpd_call_instanceが起動されるとき、コマンドは、デーモンプログラムに送られ、デーモンプログラムが、サービスを受けていたリソースへのサービスを終了させるようにする。すなわち、ＨＴＴＰデーモンプログラムは、ＷＷＷへのサービスを停止し、プリファレンスファイルに従って自身を再初期化し、サービスを受けるリソースへのサービスを再開する。ＨＴＴＰデーモンプログラムは、再開始演算を完了すると、ステータス結果を起動プログラムに返送する。
【００３８】
ＨＴＴＰデーモンプログラムは、表３に示すようにアクセス制御環境設定を更新するよう指示されることができる。inst_name引数を使用して、デーモンプログラムによって登録されるドアの名前を指定する。さらに、ドメイン名(たとえば、最初にサービスを受けるウェブサイト３０７を識別するのに使用される文字列「www.sun.com」)を使用して、どのリソース(ＷＷＷドメイン)が再ロードされるかを識別する。acl_file文字列は、どのアクセス制御ファイルを使用してウェブサイトを初期化するかを指定する。このように、この呼び出しシーケンスを使用して、指定のアクセス制御ファイルを使用する指定のウェブサイトを再初期化する。
【００３９】
【表３】
0004262828.tif 000004
【００４０】
ＨＴＴＰデーモンプログラムは、表４に示したウェブサーバから動的な統計を提供するように指示されることができる。ここでも、inst_name引数を使用して、デーモンプログラムが登録するドアの名前を指定する。stats引数は、デーモンプログラムから返されたステータス情報にアクセスするのに使用されるであろう。
【００４１】
当業者は、本発明が、コンピュータ内部で実行中のデーモンプログラムの動的管理、運用及び監視のためのテクニックを提供していることを理解するであろう。
【００４２】
【表４】
0004262828.tif 000005
【００４３】
本発明は、好適実施例の用語で記述してあるが、当業者は、発明の範囲から逸脱することなく、各種の修正および変更ができることを理解するであろう。従って、発明の範囲はここで記述した特定の発明の実施例に制限されず、特許請求の範囲およびそれと等価のものによってのみ定義されるべきである。
【００４４】
【発明の効果】
前述したところから、本発明に(制限なしに)次のような利点があることが認識されるであろう。
本発明によって、管理者は、実行中のデーモンプログラムを動的に環境設定できる。たとえば、ＷＷＷサーバの管理者は、ＨＴＴＰデーモンプログラムからサービスを受けている他のドメインに影響を及ぼさずに、１つのウェブドメインを環境設定し直せる。
また、本発明は、デーモンプログラムが実行されている間にデーモンプログラムから(性能データのような)管理データを取得できるデーモンアーキテクチャを提供する。
【図面の簡単な説明】
【図１】従来のデーモンアーキテクチャを示す図である。
【図２】従来のデーモン再初期化プロセスを示す図である。
【図３】好適実施例により本発明を利用できるコンピュータシステムを示す図である。
【図４】好適実施例によるデーモンプログラムアーキテクチャを示す図である。
【図５】好適実施例によるデーモンプログラムの演算を示す図である。
【図６】好適実施例によるエージェントプログラムの演算を示す図である。
【図７】好適実施例による管理サービスクライアントプログラムの演算を示す図である。
【図８】好適実施例によるネットワークマネージャプログラムの演算を示す図である。
【符号の説明】
３００  デーモンプログラムアーキテクチャ
３０１  ＨＴＴＰサーバデーモンプログラム
３０３  プリファレンスファイル
３０５  ネットワーク
３０７、３０９、３１１  ウェブサイト
３１３  プロセス間通信機構
３１５  管理サービスエージェント
３１７  管理クライアント
３１９  ＳＮＭＰエージェント
３２１  ネットワークマネージャサービス
３２３  コマンドラインインタフェース
【図１】
0004262828.tif 000006
【図２】
0004262828.tif 000007
【図３】
0004262828.tif 000008
【図４】
0004262828.tif 000009
【図５】
0004262828.tif 000010
【図６】
0004262828.tif 000011
【図７】
0004262828.tif 000012
【図８】
0004262828.tif 000013