(57)【要約】【課題】  コンポーネント処理の優先制御、流量制御、負荷分散等を可能にするために、ネーミングサービスを利用する場合でも、コンポーネントの処理要求を蓄積するキューを設けることができるようにする。【解決手段】  クライアント端末４０とコンテナサーバ２３との間にキュー２７を備えたスケジューラ２５を設ける。そのキュー２７の物理位置情報１２４をコンポーネント２４の論理名１３３に対応させてネーミングサービス２２に登録する。すると、クライアント端末４０は、コンポーネント２４の処理要求をその論理名１３３によって発することができ、その処理要求は、一旦、キュー２７に蓄積される。スケジューラ２５は、そのキュー２７を利用することよって、コンポーネント２４の処理の優先制御、流量制御、負荷分散等の制御を行うことが可能となる。【選択図】      図２
2005202631.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるプログラムコンポーネントの処理要求キューの構成方法であって、
前記アプリケーションサーバが、
前記プログラムコンポーネントを前記コンテナサーバに配備するときに、そのプログラムコンポーネントの処理要求を蓄積するキューを前記スケジューラに配備するとともに、前記キューの物理位置情報を前記配備されたプログラムコンポーネントの論理名に対応付けて前記ネーミングサービスに登録しておき、
前記クライアント端末から処理要求された前記プログラムコンポーネントの論理名について前記ネーミングサービスによって名前解決し、得られたキューの物理位置情報に該当するキューに前記プログラムコンポーネントの処理要求を蓄積する
ことを特徴とするプログラムコンポーネントの処理要求キューの構成方法。
【請求項２】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるプログラムコンポーネントの登録方法であって、
前記コンテナサーバが、プログラムコンポーネントを配備するステップと、
前記スケジューラが、前記配備されたプログラムコンポーネントに対応させてそのプログラムコンポーネントの処理要求を蓄積するためのキューを配備するステップと、
前記スケジューラが、前記配備されたプログラムコンポーネントの物理位置情報と前記配備されたキューの物理位置情報との対応付けを、キュー管理テーブルに登録するステップと、
前記ネーミングサービスが、前記キューの物理位置情報を前記プログラムコンポーネントの論理名に対応させて登録するステップと
を備えることを特徴とするプログラムコンポーネントの登録方法。
【請求項３】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるプログラムコンポーネントの登録方法であって、
前記コンテナサーバが、プログラムコンポーネントを配備するステップと、
前記ネーミングサービスが、前記プログラムコンポーネントの物理位置情報をその論理名に対応させて登録するステップと、
前記スケジューラが、前記ネーミングサービスから前記ネーミングサービスに登録されているプログラムコンポーネントの論理名及び物理位置情報を取得するステップと、
前記スケジューラが、前記取得したプログラムコンポーネントの論理名に基づき、新たに登録されたプログラムコンポーネントを選出するステップと、
前記スケジューラが、前記新たに登録されたプログラムコンポーネントに対応させてそのプログラムコンポーネントの処理要求を蓄積するためのキューを配備するステップと、
前記スケジューラが、前記新たに登録されたプログラムコンポーネントの物理位置情報と前記配備されたキューの物理位置情報との対応付けを、キュー管理テーブルに登録するステップと、
前記ネーミングサービスが、前記配備されたキューの物理位置情報を前記新たに登録されたプログラムコンポーネントの論理名に対応させて登録するステップと
を備えることを特徴とするプログラムコンポーネントの登録方法。
【請求項４】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるプログラムコンポーネントの実行制御方法であって、
前記ネーミングサービスが、前記クライアント端末から入力される前記プログラムコンポーネントの論理名に対応する前記キューの物理位置情報を、前記クライアント端末へ出力するステップと、
前記スケジューラが、前記クライアント端末から入力される前記プログラムコンポーネントの処理要求を前記キューに蓄積するステップと、
前記スケジューラが、前記キューに蓄積されたプログラムコンポーネントの処理要求を前記キューから取り出し、キュー管理テーブルを参照して前記プログラムコンポーネントの物理位置情報を求め、そのプログラムコンポーネントの物理位置情報が示すプログラムコンポーネントの処理をコンテナサーバに要求するステップと、
前記コンテナサーバが、前記処理要求を受けたプログラムコンポーネントを実行するステップと、
前記コンテナサーバが、前記プログラムコンポーネントを実行した結果のデータを、前記スケジューラを介して前記クライアント端末へ送付するステップと
を備えることを特徴とするプログラムコンポーネントの実行制御方法。
【請求項５】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるコンピュータを、
前記コンテナサーバにプログラムコンポーネントを配備する手段、
前記スケジューラに前記配備されたプログラムコンポーネントに対応させてそのプログラムコンポーネントの処理要求を蓄積するためのキューを配備する手段、
前記配備されたプログラムコンポーネントの物理位置情報と前記配備されたキューの物理位置情報との対応付けを、キュー管理テーブルに登録する手段、及び、
前記キューの物理位置情報を前記プログラムコンポーネントの論理名に対応させて登録するネーミングサービス手段
として動作させることを特徴とするプログラムコンポーネントの登録プログラム。
【請求項６】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるコンピュータを、
前記ネーミングサービス手段から前記ネーミングサービス手段に登録されている前記プログラムコンポーネントの論理名及び物理位置情報を取り出す手段、
前記取り出したプログラムコンポーネントの論理名に基づき、新たに登録されたプログラムコンポーネントを選出する手段、
前記新たに登録されたプログラムコンポーネントに対応させてそのプログラムコンポーネントの処理要求を蓄積するためのキューを配備する手段、
前記新たに登録されたプログラムコンポーネントの物理位置情報と前記配備されたキューの物理位置情報との対応付けを、キュー管理テーブルに登録する手段、及び、
前記配備されたキューの物理位置情報を前記新たに登録されたプログラムコンポーネントの論理名に対応させて登録する第２のネーミングサービス手段
として動作させることを特徴とするプログラムコンポーネントの登録プログラム。
【請求項７】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバにおけるコンピュータを、
前記クライアント端末から入力される前記プログラムコンポーネントの論理名に対応する前記キューの物理位置情報を、前記クライアント端末へ出力する手段、
前記クライアント端末から入力される前記プログラムコンポーネントの処理要求を前記キューに蓄積する手段、
前記スケジューラが、前記キューに蓄積されたプログラムコンポーネントの処理要求を前記キューから取り出し、キュー管理テーブルを参照して、前記プログラムコンポーネントの物理位置情報を求め、そのプログラムコンポーネントの物理位置情報が示すプログラムコンポーネントの実行をコンテナサーバに要求する手段、
前記コンテナサーバが、前記処理要求を受けたプログラムコンポーネントを実行する手段、及び、
前記プログラムコンポーネントを実行した結果、得られるデータを、前記スケジューラを介して前記クライアント端末へ送付する手段
として動作させることを特徴とするプログラムコンポーネントの実行制御プログラム。
【請求項８】
複数のプログラムコンポーネントを備えて、その処理を実行するコンテナサーバと、クライアント端末から指示される前記プログラムコンポーネントの処理要求を蓄積するキューを備えて、その処理要求を制御するスケジューラと、前記プログラムコンポーネントの論理名と前記キューの物理位置情報との対応を記憶して、名前解決を図るネーミングサービスとを含んで構成されたアプリケーションサーバであって、
前記プログラムコンポーネントを前記コンテナサーバに配備するときに、そのプログラムコンポーネントの処理要求を蓄積するキューを前記スケジューラに配備するとともに、前記キューの物理位置情報を前記配備されたプログラムコンポーネントの論理名に対応付けて前記ネーミングサービスに登録しておき、
前記クライアント端末から処理要求された前記プログラムコンポーネントの論理名について前記ネーミングサービスによって名前解決し、得られたキューの物理位置情報に該当するキューに前記プログラムコンポーネントの処理要求を蓄積し、
前記キューに蓄積された前記プログラムコンポーネントの処理要求を前記キューより取り出して前記プログラムコンポーネントの処理を実行することを
特徴とするアプリケーションサーバ。
【請求項９】
前記スケジューラが、１つのキューに複数のプログラムコンポーネントの物理位置情報を対応付けるキュー管理テーブルを備えること
を特徴とする請求項８に記載のアプリケーションサーバ。
【請求項１０】
同一のプログラムコンポーネントが配備されたコンテナサーバを複数個備えることを特徴とする請求項８又は請求項９に記載のアプリケーションサーバ。
【請求項１１】
他のアプリケーションサーバと相互に接続された請求項８又は請求項９に記載のアプリケーションサーバにおいて、
前記ネーミングサービスが、他のアプリケーションサーバのコンテナサーバに配備されているプログラムコンポーネントの物理位置情報を含めてそのプログラムコンポーネントの論理名に対応付けて登録しておき、
前記スケジューラが、他のアプリケーションサーバのコンテナサーバに登録されているプログラムコンポーネントの処理要求を受け付けた場合には、その処理要求を前記他のアプリケーションサーバのスケジューラに送付すること
を特徴とするアプリケーションサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散計算機環境において、ある計算機から他の計算機へ送られた要求に応じてプログラムコンポーネントの処理を実行するアプリケーションサーバに関し、そのプログラムコンポーネントの処理要求キューの構成方法、プログラムコンポーネントの登録方法及び実行制御方法、プログラムコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバに関する。
【背景技術】
【０００２】
近年のコンピュータネットワークの広がりとともに、コンピュータリソースを利用する多くのサービス業務においてクライアント・サーバシステムが採用されるようになった。通常、クライアント・サーバシステムにおいては、クライアントが要求するコンピュータアプリケーション業務をサーバが実行し、その結果をクライアントに提供するという形態がとられている。
このような形態のサーバはアプリケーションサーバと呼ばれ、そのアプリケーションサーバには、クライアントが要求するコンピュータアプリケーション業務に対応するためのプログラムコンポーネント（以下、本明細書では、プログラムコンポーネントを単にコンポーネントという。）が多数配備されている。そして、アプリケーションサーバの中で、コンポーネントが配備され、コンポーネントの配備の登録、削除等の管理及び実行の制御等を行う部分は、特に、コンテナサーバと呼ばれている。
【０００３】
ところで、クライアント・サーバシステムにおけるコンピュータアプリケーションサービス業務は、複合化、複雑化の一途を辿っている。そのため、クライアントは、コンポーネントを自己の業務の範囲内でのみ通用する論理名により識別するだけであり、コンテナサーバに配備されているコンポーネントを一意的に指定することはできない。そこで、クライアント端末からコンテナサーバにコンポーネントの処理を要求するに当たっては、非特許文献１に示されているようなネーミングサービスが利用されている。
【非特許文献１】"JavaBeans Specification, v1.2"、サンマイクロシステムズ社、1999
【０００４】
ネーミングサービスは、名前解決サービスとも呼ばれ、一般的には、コンピュータネットワークにおいて、ファイル等のコンピュータ資源に付けられた名前から、ネットワークアドレス等の物理位置情報を提供するサービスをいう。クライアント・サーバシステムでは、例えば、クライアントの業務ごとに一意的に定められたコンポーネントの論理名を、そのコンポーネントが配備されているコンテナサーバにおける物理位置情報と対応付けて登録している。そして、クライアントがネーミングサービスに対し、そのクライアントの業務についてのコンポーネントの論理名を入力すると、ネーミングサービスは、そのクライアントの業務についてその論理名を持つコンポーネントの物理位置情報を出力してくれる。そこで、クライアントは、その物理位置情報によりコンテナサーバに対してそのコンポーネントの実行を要求することができる。
このようなコンポーネントモデル及びネーミングサービスは、前記非特許文献１に係るＪ２ＥＥ（Java 2 Platform, Enterprise Edition、Ｊ２ＥＥはサンマイクロシステムズ社の商標）環境下でのクライアント・サーバシステムで広く普及してきている。
【０００５】
しかしながら、そのコンポーネントモデル及びネーミングサービスに基づくクライアント・サーバシステムにおいては、次のような不都合が生じる場合がある。例えば、クライアント端末がインタネットにつながる不特定多数のパソコンであるような場合には、少数の特定のコンポーネントに対し処理要求が集中し、その処理要求が集中したコンポーネントの処理が競合することによってシステム全体としての性能が低下するようなことがある。このような事態を避けるために、通常は、コンポーネントの処理要求を蓄積するキューを設けて、コンポーネント実行の優先制御、流量制御、又は、負荷分散等の対策を講ずる。そうすることにより、システム全体としての性能低下を防止することが可能となる。
【０００６】
ところが、前記のようなネーミングサービスを利用する場合には、ネーミングサービスにおいてコンポーネントの論理名に対して、コンポーネントの物理位置情報が対応付けられている。そのため、クライアント端末から行うコンポーネント処理の要求は、コンポーネントの物理位置情報を直接に指定して行うことになる。そのため、クライアント端末とコンテナサーバとの間にキューを設けることが困難である。従って、キューを設けることによって行うことができる、コンポーネント処理の優先制御、流量制御、又は、負荷分散を図る等の対策を、実質上講ずることができなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明においては、Ｊ２ＥＥ等に基づくクライアント・サーバシステムにおけるネーミングサービスを利用した場合にあっても、コンポーネント実行の優先制御、流量制御又は負荷分散を図るために必要となるコンポーネントの処理要求キューの構成方法、コンポーネントの登録方法及び実行制御方法を提供するとともに、これらの方法を実現したコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバを提供する。
【課題を解決するための手段】
【０００８】
前記の課題を解決するための基本となる考えは、キューを設けることができるようにするために、ネーミングサービスに登録する内容を従来と変える点にある。すなわち、従来のネーミングサービスでは、コンポーネントの物理位置情報をその論理名に対応させて登録していたが、本発明においては、キューの物理位置情報をそのキューに対応するコンポーネントの論理名に対応させて登録する。
【０００９】
そこで、本発明のアプリケーションサーバでは、クライアント端末とコンテナサーバとの間に各コンポーネントに対応させてそのコンポーネントの処理要求を蓄積するためのキューを設ける。そして、そのキューの物理位置情報をそのコンポーネントの論理名に対応付けてネーミングサービスに登録する。また、それぞれのコンポーネントについて、コンポーネントの物理位置情報とキューの物理位置情報とを対応付けるキュー管理テーブルを設ける。なお、このキュー管理テーブルには、１つのキューに対して１つのコンポーネントの物理位置情報を対応させるだけでなく、１つのキューに対して複数の互いに異なるコンポーネントの物理位置情報を対応させることができるように構成する。さらに、以上のように構成されたキューを管理し、そのキューに蓄積されているコンポーネントの処理要求を取り出して、コンテナサーバに対し、コンポーネント実行を指示するスケジューラを設ける。
【００１０】
以上のようにアプリケーションサーバを構成することにより、クライアント端末は、コンポーネントの処理要求をその論理名によって行うことができる。そして、そのコンポーネントの処理要求は、ネーミングサービスによって得られる物理位置情報が示すキューに蓄積されることになる。そのキューは、キュー管理テーブルによりコンポーネントの物理位置情報に対応付けられているので、キューを管理するスケジューラは、そのコンポーネントの実行をコンテナサーバに指示することができる。
また、スケジューラは、キューを管理するので、各キューへの処理要求の状況を監視することができる。従って、スケジューラは、コンポーネント実行の優先制御や流量制御又は負荷分散を行うことができるようになる。
【００１１】
本発明においては、また、アプリケーションサーバにおいて、スケジューラは、コンポーネントがコンテナサーバに配備されたときに、そのコンポーネントに対応させてそのコンポーネントの処理要求を蓄積するためのキューを配備するとともに、そのコンポーネントの物理位置情報とそのキューの物理位置情報との対応付けをキュー管理テーブルに登録する。そして、ネーミングサービスに、そのキューの物理位置情報をそれに対応するコンポーネントの論理名に対応付けさせる。
【００１２】
あるいは、スケジューラは、その開始時及び一定周期でネーミングサービスのコンポーネントの登録状況を参照することによって、コンテナサーバに新たに登録されたコンポーネントの論理名及びその物理位置情報を取得する。このようにして新たに登録されたコンポーネントについて、スケジューラは、そのコンポーネントに対応させてそのコンポーネントの処理要求を蓄積するためのキューを配備するとともに、そのコンポーネントの物理位置情報とそのキューの物理位置情報との対応付けをキュー管理テーブルに登録する。そして、ネーミングサービスに、そのキューの物理位置情報をそれに対応するコンポーネントの論理名に対応付けさせる。
【００１３】
以上のように構成したアプリケーションサーバにおけるコンポーネントの実行手順は、次のようになる。まず、クライアント端末は、実行しようとするコンポーネントの論理名をネーミングサービスに問い合わせ、そのコンポーネントの論理名に対応するキューの物理位置情報を得る。そして、そのキューの物理位置情報が示すキューに対してそのコンポーネントの処理要求を発する。そこで、クライアント端末がコンポーネントの処理要求を発すると、スケジューラは、その処理要求を指定されたキューにいったん蓄積する。その後、そのコンポーネントの処理要求をキューから取り出し、キュー管理テーブルを参照して、コンポーネントの物理位置情報を求める。そして、そのコンポーネントの物理位置情報が示すコンポーネントの実行をコンテナサーバに要求する。すると、コンテナサーバは、処理要求を受けたコンポーネントを実行し、実行により得られたデータを、スケジューラを介してクライアント端末へ送付する。
【００１４】
以上のコンポーネントを実行する手順をクライアントの立場で見ると、コンポーネントの論理名をネーミングサービスに入力して得られた物理位置情報に基づき、コンポーネントの処理を要求すれば、その実行処理結果を得ることができるというものである。これは、従来のＪ２ＥＥ等の場合と全く変わるものではない。すなわち、クライアントは、キューやスケジューラの存在を全く意識する必要はない。
【発明の効果】
【００１５】
以上、本発明によれば、ネーミングサービスにおいてコンポーネントの物理位置情報ではなくキューの物理位置情報を、コンポーネントの論理名に対応付けるようにしたので、クライアント端末とコンテナサーバとの間にコンポーネントの処理要求を蓄積するキューを設けることができるようになる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
【００１７】
＜アプリケーションサーバ及びそのキュー構成の実施形態＞
図１は、本発明が実施されるアプリケーションサーバの構成及びそのアプリケーションサーバが適用されるクライアント・サーバシステムの全体構成を示した図である。図１において、本発明が適用されるクライアント・サーバシステムは、アプリケーションサーバ１、インタネット等のネットワーク３０及び複数のクライアント端末４０により構成される。なお、本実施形態では、クライアント・サーバシステムを一例としているが、分散計算機環境一般に利用可能である。また、分散オブジェクト環境にも適用可能である。
【００１８】
アプリケーションサーバ１は、ＣＰＵ(Central Processing Unit)１１にバス１０を介して主記憶装置２０、ディスプレイ１２、キーボード１３、２次記憶装置１４、ネットワークインターフェース１５等が接続されたコンピュータである。主記憶装置２０には、オペレーティングシステム２１の他に、本実施形態におけるアプリケーションプログラムとして、ネーミングサービス２２、コンテナサーバ２３及びスケジューラ２５が備えられている。
【００１９】
ここで、コンテナサーバ２３は、あらかじめ定められた処理を実行するようにプログラムされたコンポーネント２４を複数個備え、クライアント端末４０からの要求に応じてそのコンポーネント２４の実行を制御する。また、スケジューラ２５は、各コンポーネント２４ごとにそのコンポーネント２４の処理要求を蓄積するためのキュー２７を備え、クライアント端末４０からのコンポーネント２４の処理要求をそのキュー２７に蓄積する。スケジューラ２５は、また、キュー管理テーブル２６を備え、コンポーネント２４の物理位置情報とキュー２７の物理位置情報との対応を登録するとともに、キュー２７の物理位置情報に対応するコンポーネント２４の物理位置情報を検索する。
【００２０】
ネーミングサービス２２は、キュー２７の物理位置情報をコンポーネント２４の論理名に対応付けるプログラムである。したがって、クライアントは、その対応付けをネーミングサービス２２にいったん登録しておけば、コンポーネント２４の論理名を入力することによって、キュー２７の物理位置情報を得ることができる。
なお、ネーミングサービスは、従来においても、例えば非特許文献１や特許文献１においても利用されているが、それらの従来技術においては、コンポーネント２４の物理位置情報をコンポーネント２４の論理名に対応させており、その対応付けが本発明の実施形態とは異なっている。
【００２１】
クライアント端末４０は、ネットワーク３０を介してアプリケーションサーバ１に接続され、通常、特定のコンピュータアプリケーション業務に対応したクライアントプログラム４１を備えている。そして、そのクライアントプログラム４１を実行する中で、クライアントの要求に応じてアプリケーションサーバ１に対し、コンテナサーバ２３に配備されている特定のコンポーネント２４の実行を要求する。また、クライアント端末４０は、コンポーネント２４の実行結果をクライアントに伝える表示装置としても機能する。
【００２２】
なお、図１において、コンテナサーバ２３はアプリケーションサーバ１と同じコンピュータに含まれるプログラムとしているが、他のコンピュータに含まれるプログラムであってもよく、当該他のコンピュータがコンテナサーバ２３としてのみ動作する場合には、コンテナサーバ２３をコンピュータとみなしてもよい。また、図１ではコンポーネント２４はコンテナサーバ２３の一部をなすプログラムであるとしているが、他のコンピュータに含まれるプログラムであっても、コンピュータそのものとみなしてもよい。またさらに、図１ではクライアント端末４０はネットワークを３０を介してアプリケーションサーバ１とつながるとしているが、アプリケーションサーバ１に直接に接続されるとしてもよく、アプリケーションサーバ１の内部に構成されたプログラムであるとしてもよい。従って、一般には、アプリケーションサーバ１、コンテナサーバ２３、コンポーネント２４及びクライアント端末４０は、全く分散された複数のコンピュータの中に構成されることになる。また逆に、コンテナサーバ２３及びコンポーネント２４を含むアプリケーションサーバ１が、汎用の目的に使用されるコンピュータの一部を構成するプログラムであるとしてもよい。
【００２３】
図２は、本発明の実施形態におけるアプリケーションサーバ１の構成をさらに詳しく説明するためのブロック図である。
【００２４】
図２において、ネーミングサービス２２には、コンポーネントの論理名、例えば、／ＸＸＸ／ａａａに対して、キューの物理位置情報１２４、例えば、ＨｑＸが対応付けられている。また、コンポーネントの論理名、例えば、／ＹＹＹ／ｂｂｂ、／ＹＹＹ／ｃｃｃに対しては、それぞれ、キューの物理位置情報１２４、例えば、ＨｑＹｂ、ＨｑＹｃが対応付けられている。
なお、コンポーネントの論理名は、複数の階層から構成されており、その階層構造を利用すれば、アプリケーションの業務名などによってコンポーネントをグループ化することができる。
【００２５】
コンテナサーバ２３には、複数のコンポーネント２４が配備されており、各コンポーネント２４は、論理名１３３を有し、物理位置情報１３４、例えば、ＲＡが指し示す物理位置に配備されている。また、スケジューラ２５には、コンポーネント２４に対応するようにキュー２７が配備されており、キュー２７は、物理位置情報１２４、例えば、ＨｑＸが指し示す物理位置に配備されている。なお、キュー２７は、図２に例示するように、１つのキュー２７、例えば、キュー：ＹＹＹが、複数のコンポーネント２４、例えば、コンポーネント：ＢＢＢ及びＣＣＣに対応付けられていても構わない。
【００２６】
スケジューラ２５には、さらに、キュー管理テーブル２６が設けられ、キュー管理テーブル２６によりキュー２７とコンポーネント２４とが対応付けられる。図３は、本発明の実施形態におけるキュー管理テーブル２６の構成を示したものである。キュー管理テーブル２６は、例えば、／ＸＸＸ／ａａａというコンポーネントの論理名１３３について、そのコンポーネント２４の物理位置情報１３４（例えば、ＲＡ）と、それに対応するキュー２７の物理位置情報１２４（例えば、ＨｑＸ）とを対応付けるテーブルである。
【００２７】
なお、図３のキュー管理テーブル２６においては、キュー２７の物理位置情報１２４、例えば、ＨｑＸは、キュー２７の物理的実体を示す部分（キュー実体情報３４１、例えば、ＸＸＸ）とコンポーネント２４を指し示す部分（インタフェース情報３３１、例えば、ＡＡＡ）とに分離して登録される。また、図３のキュー管理テーブル２６において、キュー実体情報３４１の欄に括弧書きでキューの物理位置情報１２４（例えば、ＨｑＸ）が示されているが、これは、参考のために示されているものである。
【００２８】
キュー管理テーブル２６において、キュー実体情報３４１が同一のキュー２７（例えば、ＹＹＹ）に、異なるコンポーネント２４の物理位置情報１３４（例えば、ＲＢ、ＲＣ）が対応付けられている。このような場合には、コンテナサーバ２３における物理位置ＲＢ及びＲＣに配備されているコンポーネントＢＢＢ及びＣＣＣについての処理要求は、同一のキュー２７を共有する形で受け付けられることになる。この場合、クライアント端末４０からは、コンポーネント２４に対応するキュー２７に対して、インタフェース情報３３１（例えば、ＢＢＢ）を送付するので、スケジューラ２５は、キュー管理テーブル２６を参照することにより、それに対応するコンポーネントの物理位置情報１３４（例えば、ＲＢ）を有するコンポーネント２４を選択することができる。
【００２９】
＜コンポーネントを登録する手順の第１の実施例＞
図４は、本発明の実施形態におけるアプリケーションサーバ１において、コンポーネント２４を登録する手順の第１の実施例を示した図である。以下、その手順について、図２及び図３も適宜参照しながら説明する。
【００３０】
コンテナサーバ２３は、まず、コンポーネント２４（例えば、ＡＡＡ）を配備する（Ｓ４１）と、スケジューラ２５に対して、そのコンポーネント２４の論理名１３３（例えば、／ＸＸＸ／ａａａ）とコンポーネントの物理位置情報１３４（例えば、ＲＡ）を通知する（Ｓ４２）。
【００３１】
スケジューラ２５は、その通知を受けると、そのコンポーネント２４に対応すべきキュー２７（例えば、ＸＸＸ）を生成し、配備する（Ｓ４３）。そして、そのキュー２７のキュー実体情報３４１（例えば、ＸＸＸ）とインタフェース情報３３１（例えば、ＡＡＡ）を求め、それをコンポーネントの物理位置情報１３４（例えば、ＲＡ）に対応させてキュー管理テーブル２６に登録する（Ｓ４４）。なお、キュー２７を共有する場合にあって、既にそのキュー２７が配備されているときには、そのキュー２７の生成は省略される。
【００３２】
次に、スケジューラ２５は、キュー２７のキュー実体情報３４１とインタフェース情報３３１により、キュー２７の物理位置情報１２４（例えば、ＨｑＸ）を作成する。そして、そのキュー２７の物理位置情報１２４をコンポーネント２４の論理名１３３（例えば、／ＸＸＸ／ａａａ）に対応させてネーミングサービス２２に入力し（Ｓ４５）、ネーミングサービス２２に登録する（Ｓ４６）。
【００３３】
以上の手順を実施することにより、コンポーネント２４及びそれに対応するキュー２７が配備され、キュー管理テーブル２６において、コンポーネント２４及びキュー２７の物理位置情報１３４、１２４が対応付けられるとともに、ネーミングサービス２２において、コンポーネントの論理名１３３とキュー２７の物理位置情報１２４が対応付けられることになる。これによって、クライアント端末４０は、コンポーネントの論理名１３３によりコンテナサーバ２３に配備されているコンポーネント２４をアクセスすることができるようになる。
【００３４】
また、以上の手順によれば、スケジューラ２５がネーミングサービス２２に登録するコンポーネント２４の論理名を、例えば、／ＸＸＸ／ａａａから／ＺＺＺ／ａａａに変更するだけで、そのコンポーネント２４に対応するキュー２７の割り当てを、ＸＸＸ（ＨｑＸ）からＺＺＺ（ＨｑＺ）に変更することができる。これによって、キュー２７の構成をフレキシブルかつダイナミックに変更することができるようになり、例えば、キュー２７の構成を、アプリケーションサーバ１がオンライン動作中であっても、変更することができるようになる。
【００３５】
＜コンポーネントを登録する手順の第２の実施例＞
図５は、本発明の実施形態におけるアプリケーションサーバ１において、コンポーネント２４を登録する手順の第２の実施例を示した図である。以下、その手順について、図２及び図３も適宜参照しながら説明する。
【００３６】
図５において、コンテナサーバ２３は、コンポーネント２４を配備すると（Ｓ４１）、ネーミングサービス２２に対して、そのコンポーネントの論理名１３３（例えば、／ＸＸＸ／ａａａ）とコンポーネントの物理位置情報１３４（例えば、Ｒａ）を通知する（Ｓ４１ａ）。すると、ネーミングサービス２２は、コンポーネントの物理位置情報１３４（例えば、Ｒａ）をそのコンポーネントの論理名１３３（例えば、／ＸＸＸ／ａａａ）に対応させて登録する（Ｓ４１ｂ）。
これらは、従来のアプリケーションサーバ１のコンテナサーバ２３において標準的に行われている手順である。
【００３７】
次に、スケジューラ２５は、その処理を開始したとき、及び、一定時間おきに（例えば、３時間おき、１２時間おき又は１日おきというように）ネーミングサービス２２から、そのときにネーミングサービス２２に登録されている全てのコンポーネント２４の論理名１３３及び物理位置情報１３４を取得する（Ｓ４１ｃ）。スケジューラ２５は、そのとき得たコンポーネントの論理名１３３を、前回に同様にして得たコンポーネントの論理名１３３と比較することによって、新たに登録されたコンポーネント２４を選び出す（Ｓ４１ｄ）。
【００３８】
以上の手順を実行した時点で、スケジューラ２５は、新たに登録されたコンポーネント２４の論理名１３３及び物理位置情報１３４を取得したことになり、図４における第１の実施例のステップＳ４２が実行された後の状態と同じになる。従って、以下に行われるステップＳ４３からステップＳ４６までの手順は、第１の実施例と全く同様の手順となり、その説明を省略する。ただし、ステップＳ４６においては、ステップＳ４１ｂにおいて既にコンポーネント２４の論理名１３３にコンポーネント２４の物理位置情報１３４が登録されている上に、上書きする形でコンポーネントの論理名１３３にキュー２７の物理位置情報１３４が登録される。
【００３９】
なお、ステップＳ４１ｄにおいて、新たに登録されたコンポーネント２４が複数あった場合には、ステップＳ４３からステップＳ４６までの手順は、その新たに登録されたコンポーネント２４すべてについて繰り返して実行される。そして、これらの処理が完了すると、ネーミングサービス２２には、コンポーネントの論理名１３３とキュー２７の物理位置情報１２４とが対応付けて登録されている状態になる。
【００４０】
以上のように、この第２の実施例によるコンポーネント２４の登録手順は、従来のＪ２ＥＥ環境下のアプリケーションサーバにおいて用いられているコンポーネント２４の登録手順を実行した上で、さらに本発明を実施できるようにするために実行するコンポーネント２４の登録手順である。従って、この実施例の登録手順を採用すれば、本発明のキュー２７を備えたスケジューラ２５を追加する他は、従来のアプリケーションサーバのプログラムを変更する必要はなくなる。すなわち、従来のＪ２ＥＥ環境下のクライアント・サーバシステムにおいて、本発明を実施することがより容易になる。
【００４１】
＜コンポーネントの実行制御をする手順の実施例＞
図６は、本発明の実施形態におけるアプリケーションサーバ１において、コンポーネント２４の実行制御をする手順の実施例を示した図である。以下、その手順について、図２及び図３も適宜参照しながら説明する。
【００４２】
クライアント端末４０は、アプリケーションサーバ１に対してコンポーネント２４を実行する処理を要求する場合、まず、ネーミングサービス２２に対してコンポーネント２４の名前解決を要求する（Ｓ５１）。そのとき、クライアント端末４０は、そのコンポーネント２４の論理名１３３（例えば、／ＸＸＸ／ａａａａ）をネーミングサービス２２に入力する（Ｓ５１）。すると、ネーミングサービス２２は、入力された論理名１３３について名前解決を行い（Ｓ５２）、そのコンポーネントに対応付けられたキュー２７の物理位置情報１２４（例えば、ＨｑＸ）をクライアント端末４０へ返送する（Ｓ５２ａ）。
次に、クライアント端末４０は、コンポーネント２４を実行する処理を要求する（Ｓ５３）。この場合、クライアント端末４０は、名前解決によって得られたキュー２７の物理位置情報１２４（例えば、ＨｑＸ）が示すキュー２７（例えば、ＸＸＸ）に向けて、そのキュー２７（例えば、ＸＸＸ）の物理位置情報１２４（例えば、ＨｑＸ）に含まれるコンポーネント２４のインタフェース情報３３１（例えば、ＡＡＡ）及びそのコンポーネント２４を実行するときに必要な入力データを送信する（Ｓ５３ａ）。
【００４３】
すると、そのコンポーネント２４のインタフェース情報３３１（例えば、ＡＡＡ）及びコンポーネント２４への入力データは、クライアント端末４０により指定されたキュー２７（例えば、ＸＸＸ）に、そのコンポーネント２４の実行を要求するものとして、いったん登録される（Ｓ５４）。そして、そのコンポーネント２４の処理要求が、先入れ先出し構造のキュー２７から取り出されると、スケジューラ２５は、そのキューのキュー実体情報３４１（例えば、ＸＸＸ）及びインタフェース情報３３１（例えば、ＡＡＡ）をもとにキュー管理テーブル２６を検索して、コンポーネントの物理位置情報１３４（例えば、ＲＡ）を取得する（Ｓ５５）。
【００４４】
次に、スケジューラ２５は、前記のようにして得られたコンポーネントの物理位置情報１３４（例えば、ＲＡ）を持つコンポーネント２４（例えば、ＡＡＡ）に対して、その実行のための入力データを入力する（Ｓ５６）。コンポーネント２４は、その入力データを得て、所定の処理を実行し（Ｓ５７）、その実行結果をスケジューラ２５へ出力する（Ｓ５８）。スケジューラ２５は、それを、さらに、クライアント端末４０へ送信する（Ｓ５９）。こうして、クライアント端末４０は、スケジューラ２５から送付されるコンポーネント２４の実行結果を取得する（Ｓ６０）。
【００４５】
アプリケーションサーバ１は、以上の手順を実行することによって、ネーミングサービス２２を利用する場合であっても、クライアント端末４０から要求されるコンポーネント２４の実行を、キュー２７を介して指示することができる。そこで、スケジューラ２５は、キュー２７に蓄積されるコンポーネント２４の処理要求について、その実行の優先制御や流量制御、さらには、分散制御を実施することができるようになる。
【００４６】
＜分散コンポーネントシステムにおけるアプリケーションサーバ構成の実施形態＞
図７は、分散コンポーネントシステムにおけるアプリケーションサーバ構成の一実施形態を示した図である。
【００４７】
図７において、アプリケーションサーバ１ａは、ネーミングサービス２２ａ、複数のコンテナサーバ２３ａ１、２３ａ２に配備されたコンポーネント２４ａを制御するスケジューラ２５ａとにより構成される。また、アプリケーションサーバ１ｂは、ネーミングサービス２２ｂ、コンテナサーバ２３ｂに配備されたコンポーネント２４ｂを制御するスケジューラ２５ｂとにより構成される。なお、クライアントは、クライアント４０ａのように、アプリケーションサーバ１ａの中に存在してもよい。
【００４８】
図７において、アプリケーションサーバ１ａには、コンテナサーバが複数設けられ（例えば、２３ａ１と２３ａ２）、それらに同一のコンポーネント２４ａが配備されている。この場合には、いずれものコンテナサーバが動作しているときには、コンポーネント２４ａに対する処理要求の負荷を分散する効果がある。また、いずれか１つのコンテナサーバ（例えば、２３ａ１）が異常終了したとき、他のコンテナサーバ（例えば、２３ａ２）が動作している限りは、コンテナサーバとしての機能を失うことはない。そのため、アプリケーションサーバ１ａのアベイラビリティ（可用性）は向上する。
【００４９】
図７において、コンポーネント２４ｂとコンポーネント２４ａとは互いに異なったコンポーネントとする。そして、スケジューラ２５ａとスケジューラ２５ｂとの間で登録されるコンポーネント２４ａ、２４ｂの情報を交換し、異なるアプリケーションサーバ上に存在するコンポーネント情報であっても、それをネーミングサービス２２ａ及び２２ｂに登録するようにする。すなわち、それぞれのアプリケーションサーバ１ａ、１ｂ上のネーミングサービス２２ａ、２２ｂには、互いのコンテナサーバ２３ａ１（２３ａ２），２３ｂに配備されているコンポーネント２４ａ、２４ｂの情報が登録されることになる。
【００５０】
これによって、アプリケーションサーバ（例えば、１ａ）は、クライアント端末４０から処理要求されたコンポーネント（例えば、２４ｂ）が自己のコンテナサーバ２３ａ１にない場合にでも、他のアプリケーションサーバ（例えば、１ｂ）へ、その処理要求を送付することにより、そのコンポーネント（例えば、２４ｂ）の処理要求を、そのアプリケーションサーバ（例えば、１ｂ）に実行させることができる。
従って、このような構成においては、一方のアプリケーションサーバ（例えば、１ａ）が異常停止しても、他方のアプリケーションサーバ（例えば、１ｂ）が動作することができるので、システムの最大性能又は機能を縮退して稼動するようにすることができる。従って、クライアント・サーバシステムとしてのアベイラビリティ（可用性）が向上する。
【図面の簡単な説明】
【００５１】
【図１】本発明が実施されるアプリケーションサーバの構成及びそのアプリケーションサーバが適用されるクライアント・サーバシステムの全体構成を示した図である。
【図２】本発明の実施形態におけるアプリケーションサーバの構成をさらに詳しく説明するためのブロック図である。
【図３】本発明の実施形態におけるキュー管理テーブルの構成例を示したものである。
【図４】本発明の実施形態におけるアプリケーションサーバにおいて、コンポーネントを登録する手順の第１の実施例を示した図である。
【図５】本発明の実施形態におけるアプリケーションサーバにおいて、コンポーネントを登録する手順の第２の実施例を示した図である。
【図６】本発明の実施形態におけるアプリケーションサーバにおいて、コンポーネントの実行制御をする手順の実施例を示した図である。
【図７】本発明を分散コンポーネントシステムに適用した場合におけるアプリケーションサーバの構成を示した図である。
【符号の説明】
【００５２】
１      アプリケーションサーバ
２２    ネーミングサービス
２３    コンテナサーバ
２４    コンポーネント
２５    スケジューラ
２６    キュー管理テーブル
２７    キュー
４０    クライアント端末
１２４  キューの物理位置情報
１３３  コンポーネントの論理名
１３４  コンポーネントの物理位置情報
【図１】
2005202631.tif 000003
【図２】
2005202631.tif 000004
【図３】
2005202631.tif 000005
【図４】
2005202631.tif 000006
【図５】
2005202631.tif 000007
【図６】
2005202631.tif 000008
【図７】
2005202631.tif 000009