(57)【要約】【課題】ネットワーク分散処理環境の物理的構成および論理的構成の変更に要する作業コストを軽減する。【解決手段】サービスを提供する仮想サーバを複数の物理サーバ１０，１０Ａで構成するプロセス制御システムにおいて、少なくとも１つの物理サーバ１０Ａは、コンソール端末４０から、仮想サーバとそれを構成する物理サーバ１０，１０Ａとを対応付けたノード一覧情報４４１、および、仮想サーバとそれが提供するサービスとを対応付けたサービス一覧情報４４２を受け付けて、物理サーバに対するサービスの割り当てを定義した割り当て表を生成する。そして、その割り当て表を、物理サーバがサービスプロセスを起動するときに参照する割り当て表３１１として、すべての物理サーバから参照可能な、データベースサーバ３０の共用データベース３１に登録する。【選択図】図１
2008242766.tif 000002
【特許請求の範囲】
【請求項１】
サービスを提供する仮想サーバを構成する複数の物理サーバと、
前記各物理サーバが参照可能な共有データベースを備えたデータベースサーバとを備え、
前記複数の物理サーバに含まれる少なくとも１つの第１の物理サーバは、
前記仮想サーバを構成する１以上の物理サーバに関する物理ノード一覧情報と、前記仮想サーバが提供する複数のサービスを定義したサービス一覧情報を受け付ける手段と、
前記受け付けた物理ノード一覧情報およびサービス一覧情報に基づいて、前記仮想サーバを構成する各物理サーバに対して、前記複数のサービスに係るプロセスのいずれかを割り当てた割り当て表を生成する割り当て表作成手段と、を備え、
前記共有データベースには、前記割り当て表が登録されていて、
前記仮想サーバを構成する各物理サーバは、前記割り当て表を参照して各物理サーバに割り当てられたプロセスを実行することを特徴とするプロセス制御システム。
【請求項２】
前記物理ノード一覧情報および前記サービス一覧情報の入力を受け付け、前記第１の物理サーバに割り当て表作成リクエストを送信するコンソール端末を、さらに備え、
前記割り当て表作成手段は、前記割り当て表作成リクエストに応じて、前記コンソール端末から前記物理ノード一覧情報および前記サービス一覧情報を取得し、当該物理ノード一覧情報および当該サービス一覧情報に基づいて前記割り当て表を生成する、ことを特徴とする請求項１記載のプロセス制御システム。
【請求項３】
前記コンソール端末は、
起動対象プロセスを特定した起動トリガを生成し、当該起動トリガを前記各物理サーバに与えるトリガ生成手段を備え、
前記各物理サーバは、
前記サービスに係るプロセスを実現するためのプログラムが格納されたデータ記憶手段と、
前記起動トリガを受け付けると、前記割り当て表を参照して、前記起動トリガで特定されるプロセスが自物理サーバに割り当てられているか否かを判定し、自物理サーバに割り当てられていれば、前記起動トリガで特定される起動対象プロセスを実現するためのプログラムを前記データ記憶手段から読み出して前記起動対象プロセスを起動するプロセス起動手段と、さらに備えることを特徴とする請求項２記載のプロセス制御システム。
【請求項４】
前記コンソール端末は、
起動対象プロセスを特定した起動トリガを生成し、当該起動トリガを前記各物理サーバに与えるトリガ生成手段を備え、
前記各物理サーバは、
前記サービスに係るプロセスを実現するためのプログラムが格納されたデータ記憶手段と、
与えられたメッセージに自物理サーバの識別情報が含まれている場合に、当該メッセージにおいて指定されたプロセスを実現するプログラムを前記データ記憶手段から読み出し、当該プログラムの実行により前記起動対象プロセスを起動するプロセス起動手段と、をさらに備え、
前記起動トリガが与えられた物理サーバのプロセス起動手段は、
前記割り当て表を参照して、前記起動トリガにおいて特定される起動対象プロセスが割り当てられた物理サーバの識別情報を取得し、前記起動対象プロセスの指定および前記物理サーバの識別情報を含む前記メッセージを前記各物理サーバに与える、ことを特徴とする請求項２記載のプロセス制御システム。
【請求項５】
前記割り当て表作成手段は、前記各物理サーバに割り当てられたプロセスの状態の定義をさらに含む割り当て表を生成し、
前記各物理サーバのプロセス起動手段は、前記割り当て表を参照して、前記起動対象プロセスの状態が起動前であるか否かを判定し、当該起動対象プロセスの状態が起動前であれば、当該起動対象プロセスを起動するとともに、前記割り当て表における当該物理サーバの当該起動対象プロセスの状態を更新させることを特徴とする請求項３または４に記載のプロセス制御システム。
【請求項６】
前記割り当て表作成手段は、前記各物理サーバに割り当てられたプロセスの起動数の定義をさらに含む割り当て表を生成し、
前記各物理サーバのプロセス起動手段は、前記割り当て表で定義された起動数が示す数の前記起動対象プロセスが、当該物理サーバにおいて起動中となるように、当該起動対象プロセスを起動することを特徴とする請求項３、４および５のいずれか１項に記載のプロセス制御システム。
【請求項７】
前記コンソール端末は、前記複数の物理サーバに含まれる第２の物理サーバであることを特徴とする請求項２〜６のいずれか１項に記載のプロセス制御システム。
【請求項８】
サービスを提供する仮想サーバを構成する複数の物理サーバと、前記各物理サーバが参照可能な共有データベースを備えたデータベースサーバとを備えたプロセス制御システムにおいて、
前記複数の物理サーバに含まれる少なくとも１つの第１の物理サーバが、
前記仮想サーバを構成する１以上の物理サーバに関する物理ノード一覧情報と、前記仮想サーバが提供する複数のサービスを定義したサービス一覧情報を受け付け、
前記受け付けた物理ノード一覧情報およびサービス一覧情報に基づいて、前記仮想サーバを構成する各物理サーバに対して、前記複数のサービスに係るプロセスのいずれかを割り当てた割り当て表を生成し、
前記データベースサーバが、前記共有データベースに前記割り当て表を登録し、
前記仮想サーバを構成する各物理サーバが、前記割り当て表を参照して各物理サーバに割り当てられたプロセスを実行させることを特徴とするプロセス制御方法。
【請求項９】
サービスを提供する仮想サーバを構成する複数の物理サーバと、前記各物理サーバが参照可能な共有データベースを備えたデータベースサーバとを備えたプロセス制御システムのためのコンピュータプログラムであって、
前記コンピュータプログラムが実行されると、
前記複数の物理サーバに含まれる少なくとも１つの第１の物理サーバが、
前記仮想サーバを構成する１以上の物理サーバに関する物理ノード一覧情報と、前記仮想サーバが提供する複数のサービスを定義したサービス一覧情報を受け付け、
前記受け付けた物理ノード一覧情報およびサービス一覧情報に基づいて、前記仮想サーバを構成する各物理サーバに対して、前記複数のサービスに係るプロセスのいずれかを割り当てた割り当て表を生成し、
前記データベースサーバが、前記共有データベースに前記割り当て表を登録し、
前記仮想サーバを構成する各物理サーバが、前記割り当て表を参照して各物理サーバに割り当てられたプロセスを実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスリクエストを複数の物理サーバに振り分けるネットワーク分散処理技術に係り、とくに、ネットワーク分散処理環境の物理的構成または論理的構成の変更の際におけるシステム管理者の労力を軽減することができるプロセス制御システムに関する。
【背景技術】
【０００２】
サービスリクエストに応じてサービスを提供する複数の物理サーバを有する分散システムとして、例えば、特許文献１記載のデータベースシステムが知られている。このシステムにおいては、データベースサービスを提供する運用系の物理サーバについて、障害発生時の切り替え先となる待機系の物理サーバがあらかじめ定義されており、運用系の物理サーバの障害発生が検知されると、その運用系の物理サーバから待機系の物理サーバへの系切り替えが行われる。
【特許文献１】特開２００１−２８２７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、サービスリクエストに応じてサービスを提供する仮想サーバを論理的に構成する複数の物理サーバを有する分散システムにおいて、その物理的構成の変更（物理サーバの追加、削除）または論理的構成の変更（起動プロセスの追加、削除、起動数変更）が行われる場合、システム管理者により、物理サーバに対するプロセスの分散配置の見直しが行われる。それに伴い、システム管理者は、個々の物理サーバごとに、起動すべきプロセスを再設定する必要がある。このように、システム管理者には、システムの物理的構成または論理的構成の変更に対応するために煩雑な再設定作業が要求される。
【０００４】
そこで、本発明は、ネットワーク分散処理環境において、その物理的構成および論理的構成の変更に要する作業コストを軽減することができるプロセス制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一実施態様に従うプロセス制御システムは、サービスを提供する仮想サーバを構成する複数の物理サーバと、前記各物理サーバが参照可能な共有データベースを備えたデータベースサーバとを備える。前記複数の物理サーバに含まれる少なくとも１つの第１の物理サーバは、前記仮想サーバを構成する１以上の物理サーバに関する物理ノード一覧情報と、仮想サーバが提供する複数のサービスを定義したサービス一覧情報を受け付ける手段と、前記受け付けた物理ノード一覧情報およびサービス一覧情報に基づいて、前記仮想サーバを構成する各物理サーバに対して、前記複数のサービスに係るプロセスのいずれかを割り当てた割り当て表を生成する割り当て表作成手段と、を備える。そして、前記共有データベースには、前記割り当て表が登録されていて、前記仮想サーバを構成する各物理サーバは、前記割り当て表を参照して各物理サーバに割り当てられたプロセスを実行する。
【０００６】
好適な実施形態では、前記物理ノード一覧情報および前記サービス一覧情報の入力を受け付け、前記第１の物理サーバに割り当て表作成リクエストを送信するコンソール端末を、さらに備え、前記割り当て表作成手段は、前記割り当て表作成リクエストに応じて、前記コンソール端末から前記物理ノード一覧情報および前記サービス一覧情報を取得し、当該物理ノード一覧情報および当該サービス一覧情報に基づいて前記割り当て表を生成するようにしてもよい。
【０００７】
好適な実施形態では、前記コンソール端末は、起動対象プロセスを特定した起動トリガを生成し、当該起動トリガを前記各物理サーバに与えるトリガ生成手段を備えてもよい。このとき、前記各物理サーバは、前記サービスに係るプロセスを実現するためのプログラムが格納されたデータ記憶手段と、前記起動トリガを受け付けると、前記割り当て表を参照して、前記起動トリガで特定されるプロセスが自物理サーバに割り当てられているか否かを判定し、自物理サーバに割り当てられていれば、前記起動トリガで特定される起動対象プロセスを実現するためのプログラムを前記データ記憶手段から読み出して前記起動対象プロセスを起動するプロセス起動手段と、さらに備えるようにしてもよい。
【０００８】
好適な実施形態では、前記コンソール端末は、起動対象プロセスを特定した起動トリガを生成し、当該起動トリガを前記各物理サーバに与えるトリガ生成手段を備えてもよい。このとき、前記各物理サーバは、前記サービスに係るプロセスを実現するためのプログラムが格納されたデータ記憶手段と、与えられたメッセージに自物理サーバの識別情報が含まれている場合に、当該メッセージにおいて指定されたプロセスを実現するプログラムを前記データ記憶手段から読み出し、当該プログラムの実行により前記起動対象プロセスを起動するプロセス起動手段と、をさらに備え、前記起動トリガが与えられた物理サーバのプロセス起動手段は、前記割り当て表を参照して、前記起動トリガにおいて特定される起動対象プロセスが割り当てられた物理サーバの識別情報を取得し、前記起動対象プロセスの指定および前記物理サーバの識別情報を含む前記メッセージを前記各物理サーバに与えるようにしてもよい。
【０００９】
好適な実施形態では、前記割り当て表作成手段は、前記各物理サーバに割り当てられたプロセスの状態の定義をさらに含む割り当て表を生成し、前記各物理サーバのプロセス起動手段は、前記割り当て表を参照して、前記起動対象プロセスの状態が起動前であるか否かを判定し、当該起動対象プロセスの状態が起動前であれば、当該起動対象プロセスを起動するとともに、前記割り当て表における当該物理サーバの当該起動対象プロセスの状態を更新させるようにしてもよい。
【００１０】
好適な実施形態では、前記割り当て表作成手段は、前記各物理サーバに割り当てられたプロセスの起動数の定義をさらに含む割り当て表を生成し、前記各物理サーバのプロセス起動手段は、前記割り当て表で定義された起動数が示す数の前記起動対象プロセスが、当該物理サーバにおいて起動中となるように、当該起動対象プロセスを起動するようにしてもよい。
【００１１】
好適な実施形態では、前記コンソール端末は、前記複数の物理サーバに含まれる第２の物理サーバであってもよい。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態に係るプロセス制御システムについて、図面を参照して説明する。
【００１３】
図１は、本実施形態に係るプロセス制御システムの概略構成図である。
【００１４】
同図に示すように、このプロセス制御システムは、外部からのサービスリクエストに応じてサービスを提供する仮想サーバを論理的に構成する物理サーバ１０，１０Ａと、各物理サーバ１０上のジョブのスケジュールを管理する運用管理サーバ２０と、すべての物理サーバ１０，１０Ａから参照可能なデータベースを有するデータベースサーバ３０と、システム管理者等のユーザからデータ入力を受け付けるコンソール端末４０とを備える。各サーバ等の情報処理装置１０，１０Ａ，２０，３０，４０は、ＬＡＮ（Ｌｏｃａｌ
Ａｒｅａ Ｎｅｔｗｏｒｋ）あるいはインターネット等のネットワーク５０で相互に接続されている。
【００１５】
なお、コンソール端末４０は、独立のサーバマシンによる専用端末として実現してもよいし、物理サーバ１０のいずれかに、その機能を搭載することによって実現してもよい。
【００１６】
物理サーバ１０，１０Ａ、運用管理サーバ２０、データベースサーバ３０及びコンソール端末４０は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各サーバ等１０，１０Ａ，２０，３０，４０内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１７】
各物理サーバ１０，１０Ａは、いずれも、サービスプロセスを実現するプログラムが格納されたデータ記憶部１１と、自物理サーバの稼動状態を監視する監視部１４と、サービスプロセスを実現するプログラムおよび監視部１４を実現するプログラム等を起動するプロセス起動部１３と、ネットワーク５０を介してデータを送受信する送受信部１２と、を有している。
【００１８】
プロセス起動部１３は、詳細については後述するように、データベースサーバ３０の割り当て表３１１を参照して、データ記憶部１１から所定のプログラムを読み出して、自物理サーバに割り当てられたプロセスを起動する。
【００１９】
監視部１４は、詳細については後述するように、送受信部１２を介してネットワーク５０からトリガを取得する。
【００２０】
さらに、いずれか１つの物理サーバ１０Ａは、各物理サーバ１０，１０Ａに対するサービスプロセスの割り当てが定義された割り当て表を生成する割り当て表生成部１５を有している。
【００２１】
割り当て表生成部１５は、すべての物理サーバ１０，１０Ａから参照される割り当て表を生成し、データベースサーバ３０の共用データベース３１に登録する。ここでは、いずれか１つの物理サーバ１０Ａに割り当て表作成部１５を持たせているが、同様な割り当て表生成部１５をすべての物理サーバ１０，１０Ａに持たせて、すべての物理サーバ１０，１０Ａから、データベースサーバ３０の共用データベース３１に割り当て表を登録（新規登録、更新登録）できるようにしてもよい。
【００２２】
データベースサーバ３０は、割り当て表３１１が格納される共用データベース３１と、外部からのリクエストに応じてデータベース処理を実行するデータベース処理部３２と、を有している。
【００２３】
共用データベース３１は、各物理サーバ１０，１０Ａから参照可能である。従って、各物理サーバ１０，１０Ａは、共用データベース３１に記憶されている割り当て表３１１を参照できる。
【００２４】
そして、コンソール端末４０は、入力装置及び出力装置を制御する入出力処理部４１と、入出力処理部４１が受け付けた情報などを記憶するデータ記憶部４４と、各物理サーバ１０，１０Ａ上における仮想サーバの稼動開始の契機となるプロセス起動トリガを生成するトリガ処理部４２と、ネットワーク５０を介してデータを送受信する送受信部４３と、を有している。
【００２５】
入出力処理部４１は、仮想サーバを構成するノードグループに属する物理サーバ１０，１０Ａの一覧であるノード一覧情報および仮想サーバにより提供されるサービスの一覧であるサービス一覧情報等のデータの入力を受け付ける。
【００２６】
データ記憶部４４は、ノード一覧情報４４１およびサービス一覧情報４４２等が格納される。
【００２７】
トリガ処理部４２は、ジョブスケジューラ２１の指示などに応じて、プロセス起動トリガを生成して、送受信部４３を介してネットワーク５０に出力する。
【００２８】
運用管理サーバ２０は、あらかじめ定められたスケジュールにしたがってコンソール端末４０にサービス開始指示を与えるジョブスケジューラ２１を有している。
【００２９】
ジョブスケジューラ２１は、プロセス起動トリガ生成の契機となるサービス開始指示をコンソール端末４０へ与える。
【００３０】
つぎに、割り当て表３１１のデータ構造、および、その生成に用いられるノード一覧情報４４１およびサービス一覧情報４４２のデータ構造について、それぞれ説明する。
【００３１】
図２は、割り当て表３１１のデータ構造、図３（Ａ）および（Ｂ）は、ノード一覧情報４４１およびサービス一覧情報４４２のデータ構造を説明するための図である。
【００３２】
図２に示す割り当て表３１１には、物理サーバごとに割り当て情報が格納されている。各割り当て情報には、物理サーバの識別情報である物理サーバ名情報３１１１と、物理サーバに割り当てられたサービスごとのプロセス情報３１１２とが含まれる。例えば、１つの物理サーバに複数のサービス（ここでは２つのサービス）が割り当てられる場合には、レコード３１１３に示すように、割り当て情報には、物理サーバ名情報３１１１に対応付けられた、サービス数分のプロセス情報（ここでは、２つのプロセス情報３１１２Ａ，３１１２Ｂ）が含まれる。そして、プロセス情報３１１２には、サービスの識別情報であるサービス名情報３１１２１と、サービスプロセスの起動数である起動プロセス数３１１２２と、サービスプロセスの稼動状態を表す情報であるステータス情報３１１２３と、が含まれる。
【００３３】
図３（Ａ）に示すノード一覧情報４４１には、仮想サーバを構成するノードグループごとのグループ情報が格納される。各グループ情報には、ノードグループの識別情報であるグループ名情報４４１１と、そのノードグループに属する１つ以上の物理サーバの物理サーバ名情報４４１２と、が含まれる。
【００３４】
また、図３（Ｂ）に示すサービス一覧情報４４２には、サービスごとのサービス情報が格納されている。各サービス情報には、サービスのサービス名情報４４２１と、必要とされるサービスプロセスの起動数を示す起動プロセス数４４２２と、そのサービスが割り当てられたノードグループのグループ名情報４４２３と、が含まれる。
【００３５】
つぎに、図１のプロセス制御システムにおいて実行される処理について説明する。プロセス制御処理において実行される処理は、プロセス制御処理、および、それに先立ち実行される前処理に分けられる。これらの処理を、前処理、プロセス制御処理の順で説明する。
【００３６】
図４は、前処理のフローチャートである。なお、ここでは、すべての物理サーバ１０Ａ，１０が同等な処理性能を有することとする。
【００３７】
ユーザが、入力装置を用いて、ノードグループごとのグループ情報（グループ名情報、物理サーバ名情報）の登録をコンソール端末４０に指示すると、入出力処理部４１が、その指示に応じてノード一覧情報４４１を生成し、入力されたグループ情報を、このノード一覧情報４４１のレコードとして登録する。そして、入出力処理部４１は、このノード一覧情報４４１をデータ記憶部４４に格納する（Ｓ１００）。
【００３８】
さらに、ユーザが、入力装置を用いて、サービスごとのサービス情報（サービス名情報、起動プロセス数、グループ名情報）の登録をコンソール端末４０に指示すると、入出力処理部４１が、その指示に応じてサービス一覧情報４４２を生成し、入力されたサービス情報を、このサービス一覧情報４４２のレコードとして登録する。そして、入出力処理部４１は、このサービス一覧情報４４２をデータ記憶部４４に格納する（Ｓ１１０）。
【００３９】
その後、ユーザが、入力装置を用いて、割り当て表の作成をコンソール端末４０に指示すると、入出力処理部４１が、その指示に応じて、割り当て表作成リクエストを、送受信部４３を介して、あらかじめ定められた１つの物理サーバ１０Ａに送信する。
【００４０】
物理サーバ１０Ａでは、割り当て表作成部１５が、送受信部１２を介して、コンソール端末４０からの割り当て表作成リクエストを受け付けると、ノード一覧情報４４１およびサービス一覧情報４４２の参照リクエストを、送受信部１２を介してコンソール端末４０に送信する。コンソール端末４０の送受信部４３は、その参照リクエストに応じて、ノード一覧情報４４１およびサービス一覧情報４４２をデータ記憶部４４から読み出して返信する。
【００４１】
その後、物理サーバ１０Ａでは、割り当て表作成部１５が、送受信部１２を介して、コンソール端末４０からノード一覧情報４４１およびサービス一覧情報４４２を受け付けると、それらの情報４４１，４４２に基づき、各仮想サーバが提供するサービスを、対応するノードグループ内の物理ノードに割り振る。例えば、物理ノード一覧情報４４１からグループ情報を読み出し、このグループ情報のグループ名情報４４１１に合致するグループ名情報４４２３を含むすべてのサービス情報をサービス一覧情報４４２から抽出する。そして、物理サーバ１０Ａにおいてあらかじめ実施された性能テストにより得られた起動可能プロセス数を物理サーバ１台当たりの起動プロセス上限数として、各サービス情報の起動プロセス数４４２２に相当する数のアプリケーションプロセスを、グループ情報内の物理サーバ名情報４４１２に対応する物理サーバに分配する。
【００４２】
そして、割り当て表作成部１５は、このような割り当ての結果に基づき割り当て情報を生成する。ここで生成される各割り当て情報のプロセス情報３１１２のステータス情報３１１２３には、プロセスが起動前状態であることを表す情報「ＳＢＹ」が登録されている。さらに、割り当て表作成部１５は、割り当て表３１１を生成し、このとき生成した割り当て情報を割り当て表３１１に登録する（Ｓ１２０）。
【００４３】
その後、割り当て表作成部１５は、送受信部１２を介して、この割り当て表３１１の登録リクエストをデータベースサーバ３０に送信する。この登録リクエストに応じて、データベースサーバ３０のデータベース処理部３２は、共用データベース３１に割り当て表３１１を登録する（Ｓ１３０）。これにより、共用データベース３１において割り当て表３１１が一元的に管理され、すべての物理サーバ１０Ａ，１０が共通の割り当て表３１１を参照可能となる。
【００４４】
その後、物理サーバ１０Ａでは、割り当て表作成部１５が、送受信部１２を介して、データベースサーバ３０からの登録成功通知を受け付けると、監視部１４を実現するプロセスの起動をプロセス起動部１３に指示するとともに、送受信部１２を介して、他の物理サーバ１０に対して監視プロセス起動リクエストを送信する。これにより、プロセス起動部１３が、監視部１４を実現するプロセスを起動し、同様に、他の物理サーバ１０でも、プロセス起動部１３が、監視部１４を実現するプロセスを起動する（Ｓ１４０）。
【００４５】
以上の前処理によって、すべての物理サーバ１０Ａ，１０により参照可能な割り当て表３１１がデータベースサーバ３０の共用データベース３１に登録され、かつ、すべての物理サーバ１０Ａ，１０上の監視部１４が、自物理サーバの稼動状態の監視を開始する。この後、プロセス制御システムにおいては、あらかじめスケジューリングされたタイミングで、仮想サーバ上のサービスプロセスの起動を開始するためのプロセス制御処理が実行される。
【００４６】
図５は、プロセス制御処理のフローチャートである。
【００４７】
運用管理サーバ２０のジョブスケジューラ２１は、あらかじめ定められたスケジュールにしたがって、サービスプロセスの指定を含むプロセス起動メッセージをコンソール端末４０に送信する。コンソール端末４０では、トリガ処理部４２が、送受信部４３を介して、このプロセス起動メッセージを受け付けると、指定サービスプロセスに対応するサービス名情報を含むプロセス起動トリガを、すべての物理サーバ１０Ａ，１０に送信する。
【００４８】
各物理サーバ１０Ａ，１０上においては、プロセス起動部１３が、送受信部１２を介してプロセス起動トリガを受け付けると（Ｓ２００）、送受信部１２を介して、このプロセス起動トリガに含まれているサービス名情報と自物理サーバの物理サーバ名情報とを含む参照リクエストをデータベースサーバ３０に送信する。データベースサーバ３０のデータベース処理部３２は、この参照リクエストを受け付けると、それに含まれるサービス名情報および物理サーバ名情報の２つをキーとして、共用データベース３１の割り当て表３１１から割り当て情報のプロセス情報３１１２を検索する（Ｓ２１０）。
【００４９】
その結果、該当するプロセス情報３１１２（指定された物理サーバ名情報を含む割り当て情報内の、指定されたサービス名情報を含むプロセス情報）が得られなければ、すなわち、指定サービスプロセスが指定物理サーバに割り当てられていなければ（Ｓ２２０：Ｎｏ）、データベース処理部３２は、検索に失敗した旨のメッセージを返信する。この返信メッセージを受け付けた物理サーバ、すなわち、指定サービスプロセスが割り当てられていない物理サーバは何も処理を行わない。
【００５０】
一方、該当する割り当て情報のプロセス情報３１１２が得られれば、すなわち、指定サービスプロセスが指定物理サーバに割り当てられていれば（Ｓ２２０：Ｙｅｓ）、データベース処理部３２は、そのプロセス情報を返信する。このプロセス情報を受け付けた物理サーバ、すなわち、指定サービスプロセスが割り当てられている物理サーバのプロセス起動部１３は、このプロセス情報に含まれているステータス情報が、起動前の状態であることを表す「ＳＢＹ」であるか否かを判定する（Ｓ２３０）。
【００５１】
その結果、ステータス情報が「ＳＢＹ」でなければ、プロセス起動部１３はプロセス起動トリガを破棄する。すなわち、指定サービスプロセスが割り当てられている物理サーバであっても、そのプロセスが起動中または停止の状態であれば、プロセス起動トリガは破棄される（Ｓ２６０）。
【００５２】
また、ステータス情報が「ＳＢＹ」であれば、プロセス起動部１３は、プロセス起動トリガに含まれるサービス名情報に対応するプログラムを記憶部１１から読み出し、Ｓ２２０で得たプロセス情報３１１２の起動プロセス数３１１２２が示す数分のプロセスが自物理サーバ上で起動中となるように、そのプログラムを実行する（Ｓ２４０）。
【００５３】
これにより、指定サービスプロセスが、割り当て表３１１の起動プロセス数３１１２２に相当する数だけ稼動を開始すると、プロセス起動部１３は、起動したプロセスに対応するサービス名情報と自物理サーバの物理サーバ名情報とをキーとする、新たなステータス情報（起動状態であることを表す「ＲＵＮ」）を含む更新リクエストを、送受信部１２を介してデータベースサーバ３０に送信する。
【００５４】
この更新リクエストに応じて、データベースサーバ３０のデータベース処理部３２は、共用データベース３１の割り当て表３１１を更新する。これにより、一方のキーに合致する物理サーバ名情報３１１１を含む割り当て情報中のプロセス情報３１１２のうち、他方のキーに合致するサービス名情報を含むプロセス情報３１１２のステータス情報３１１２３が、起動前の状態であることを表す「ＳＢＹ」から、起動中の状態であることを表す「ＲＵＮ」に更新される（Ｓ２５０）。
【００５５】
なお、トリガ処理部４２が生成するプロセス起動トリガに、サービス名情報の他にそのサービス名情報に係るプロセスが割り当てられている物理サーバ名情報を含めてもよい。これは、トリガ処理部４２が、ジョブスケジューラ２１からプロセス起動メッセージを受けたときに、指定サービスプロセスに対応するサービス名情報を含む参照リクエストをデータベースサーバ３０へ送信して、共用データベース３１の割り当て表３１１で、このサービス名情報が割り当てられている物理サーバ名情報を取得する。
【００５６】
このようにすれば、プロセス起動トリガを受け付けた物理サーバ１０では、上記処理のステップＳ２１０を行わず、そのプロセス起動トリガをもって、ステップＳ２２０の自物理サーバへの割り当てサービスの有無を判定できる。これにより、プロセス起動トリガを受け付けた物理サーバ１０の処理性能を向上できるとともに、データベースサーバ３０の処理負荷を軽減することができる。
【００５７】
本実施形態に係る前処理およびプロセス制御処理によれば、物理サーバに対するサービスプロセスの割り当てが定義された割り当て表が、すべての物理サーバから参照可能な共用データベースで一元的に管理されるため、各物理サーバは、その割り当て表内の割り当て情報に基づき、自己に割り当てられたプロセスを起動する。このため、例えば、システムの物理的構成の変更（物理サーバの追加および削除）および論理的構成の変更（稼動プロセスの追加、削除、起動数変更）の際には、共用データベースに登録された割り当て表のみを更新すれば足りる。すなわち、システム管理者は、共用データベースの割り当て表を更新すべく、コンソール端末４０上で、ノード一覧情報およびサービス一覧情報を編集してから割り当て表の作成を指示すれば足り、それぞれの物理サーバにおいて、起動すべきプロセスをいちいち再設定する必要がない。このため、ネットワーク分散処理環境の物理的構成および論理的構成の変更に要する作業コストを軽減することができる。
【００５８】
なお、本実施形態においては、指定サービスプロセスに対応するサービス名情報を含むプロセス起動トリガがすべての物理サーバ１０Ａ，１０に与えられ、すべての物理サーバにおいて、指定サービスプロセスが自物理サーバに割り当てられたものであるか否かを判断しているが、かならずしも、このようにする必要はない。
【００５９】
例えば、指定サービスプロセスに対応するサービス名情報を含むプロセス起動トリガが１つの物理サーバのみに与えられ、この物理サーバのプロセス起動部が、指定サービスプロセスに対応するサービス名情報を含むプロセス情報３１１２および対応物理サーバ名情報３１１１を共用データベース３１の割り当て表３１１から取得し、それらの情報を含むメッセージをすべての物理サーバに連携通知するようにしてもよい。通知を受け付けた各物理サーバのプロセス起動部は、自己の物理サーバ名情報が連携通知メッセージに含まれていれば、当該連携通知メッセージを自己宛のものと判断し、上述の場合と同様、プロセス情報に基づき、自物理サーバ上において指定サービスプロセスが起動プロセス数分だけ起動中となるように該当プログラムを実行し、自己の物理サーバ名情報が連携通知メッセージに含まれていなければ、当該連携通知メッセージを自己宛のものではないと判断し、当該連携通知メッセージを破棄するようにすればよい。
【００６０】
また、本実施形態においては、共用データベース３１に割り当て表が１つだけ登録される場合を例示したが、例えば、サービス一覧情報においてカレンダー情報を定義しておき、運用管理サーバ２０が提供する運用カレンダーごとに割り当て表が生成および登録されるようにしてもよい。これにより、例えば、運用管理サーバ２０が提供する運用カレンダーに連動して、物理サーバにより参照される割り当て表が切り替えられるようにすることもできる。
【００６１】
ところで、本実施の形態に係るプロセス制御システムにおいては、いずれかの物理サーバに、なんらかの障害等が発生した場合、その物理サーバに割り当てられていたサービスプロセスが、別の物理サーバに再割り当てされる。以下、これについて説明する。ここでは、物理サーバ１０に障害等の停止原因事象が発生した場合を例に挙げる。
【００６２】
物理サーバ１０上の監視部１４は、障害等の停止原因事象の発生を検出すると、送受信部１２を介して、自物理サーバ１０の物理サーバ名情報、自物理サーバ１０に割り当てられたサービス（停止サービス）のサービス名情報およびそのプロセス数（停止プロセス数）を含む再割り当てリクエストを、あらかじめ定められた物理サーバ１０Ａに送信する。
【００６３】
あるいは、物理サーバ１０上に他の物理サーバ１０の状態を監視する監視部をさらに設けておき、この監視部が物理サーバ１０の停止原因事象の発生を検出したときに、その物理サーバ１０の物理サーバ名情報を含む、再割り当てリクエストを物理サーバ１０Ａに送信するようにしてもよい。
【００６４】
物理サーバ１０Ａでは、割り当て表生成部１５が、送受信部１２を介して、この再割り当てリクエストを受け付けると、そのリクエストに含まれる、停止原因事象が発生した物理サーバ名情報をキーとするステータス更新リクエストを、送受信部１２を介してデータベースサーバ３０に送信する。このステータス更新リクエストには、ステータス情報を更新するための情報（停止状態であることを表す「ＳＴＰ」）が含まれる。このステータス更新リクエストに応じて、データベースサーバ３０のデータベース処理部３２は、共用データベース３１の割り当て表３１１を更新する。これにより、キーに合致する物理サーバ名情報３１１１を含む割り当て情報の各プロセス情報３１１２のステータス情報３１１２３、すなわち、停止サービスのステータス情報３１１２３が、起動中の状態であることを表す「ＲＵＮ」から、停止中の状態であることを表す「ＳＴＰ」に更新される。
【００６５】
また、物理サーバ１０Ａでは、割り当て表生成部１５が、停止プロセス数分のプロセスを、例えば、停止原因事象が発生した物理サーバ１０が属するノードグループ内の他の正常稼働中の物理ノードに再割り当てする。このときの再割り当ては、どのようなルールにしたがって行われてもよいが、その一例を示すと、以下の通りである。
【００６６】
まず、割り当て表生成部１５は、送受信部１２を介して、ノード一覧情報４４１の参照リクエストをコンソール端末４０に送信する。この参照リクエストに応じて、コンソール端末４０の送受信部４３は、データ記憶部４４からノード一覧情報４４１を読み出し、それを物理サーバ１０Ａに返信する。
【００６７】
その後、割り当て表生成部１５は、送受信部１２を介してノード一覧情報４４１を受け付けると、再割り当てリクエストの発信元と同じノードグループに属する他の物理サーバの物理サーバ名情報を、そのノード一覧情報４４１から読み出す。そして、それらの物理サーバのうちの正常稼働中の物理サーバの割り当て情報（ノード一覧情報４４１から読み出した物理サーバ名情報に合致する物理サーバ名情報を含む割り当て情報であって、それに含まれるいずれのプロセス情報のステータス情報も「ＳＴＰ」ではないもの）の検索リクエストを、送受信部１２を介してデータベースサーバ３０に送信する。この検索リクエストに応じて、データベースサーバ３０のデータベース処理部３２は、検索条件に該当する割り当て情報を共用データベース３１の割り当て表３１１から読み出し、それを物理サーバ１０Ａに返信する。
【００６８】
そして、割り当て表作成部１５は、送受信部１２を介して、検索条件に合致する割り当て情報を受け付けると、これらの割り当て情報に含まれるプロセス情報の起動プロセス数に基づき、いずれの物理サーバの起動プロセス数も上述の起動プロセス上限数を超えないように、停止プロセス数分の停止サービスプロセスを、再割り当てリクエストの発信元と同じノードグループに属している正常稼働中の物理サーバに割り振る。
【００６９】
割り当て表作成部１５は、このような再割り当ての結果に基づき、停止サービスプロセスを新たに割り当てた物理ノードの割り当て情報を生成する。なお、このとき生成した割り当て情報に含まれるプロセス情報のうち、停止サービスのサービス名情報を含むプロセス情報３１１２のステータス情報３１１２３には、起動前状態を表す情報「ＳＢＹ」が登録されている。
【００７０】
その後、割り当て表作成部１５は、停止サービスプロセスを新たに割り当てた物理ノードの物理ノード名情報をキーとする割り当て情報更新リクエストを、送受信部１２を介してデータベースサーバ３０に送信する。この割り当て情報更新リクエストには、停止サービスプロセスを新たに割り当てた物理ノードの割り当て情報が含まれている。
【００７１】
この割り当て情報更新リクエストに応じて、データベースサーバ３０のデータベース処理部３２は、共用データベース３１の割り当て表３１１を更新する。これにより、キーに合致する物理サーバ名情報３１１１を含む割り当て情報が、新たな割り当て情報で更新される。
【００７２】
このようにして割り当て表の更新が行われると、割り当て表作成部１５は、送受信部１２を介して、停止サービスプロセスを起動対象として指定したプロセス起動メッセージをコンソール端末４０に送信する。コンソール端末４０では、トリガ処理部４２が、送受信部４３を介して、このプロセス起動メッセージを受け付けると、前述の場合と同様、指定されたサービスプロセスに対応するサービス名情報を含むプロセス起動トリガを、すべての物理サーバ１０Ａ，１０に送信する。
【００７３】
これにより、各物理サーバ１０Ａ，１０が、前述の場合と同様な処理によって、共用データベース３１の割り当て表３１１を参照し、起動前状態の停止サービスプロセスが割り当てられているときだけ、割り当てられた起動プロセス数分の停止サービスプロセスが自物理サーバ上において起動状態となるように、停止サービスプロセスに対応するプログラムを実行する。
【００７４】
本実施形態に係るプロセス制御システムによれば、ネットワーク分散処理環境の物理的構成および論理的構成の変更の際に、システム管理者が、個々の物理サーバごとに、起動すべきプロセスを再設定する必要がないため、ネットワーク分散処理環境の物理的構成および論理的構成の変更に要する作業コストを軽減することができる。
【００７５】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施形態に係るプロセス制御システムの概略構成図である。
【図２】割り当て表のデータ構造の概念図である。
【図３】（Ａ）は、ノード一覧情報のデータ構造の概念図、（Ｂ）は、サービス一覧情報のデータ構造の概念図である。
【図４】プロセス制御処理に先立ち行われる前処理のフローチャートである。
【図５】プロセス制御処理のフローチャートである。
【符号の説明】
【００７７】
１０，１０Ａ 物理サーバ
１１   データ記憶部
１２   送受信部
１３   プロセス起動部
１４   監視部
１５   割り当て表生成部
２０   運用管理サーバ
２１   ジョブスケジューラ
３０   データベースサーバ
３１   共用データベース
３２   データベース処理部
４０   コンソール端末
４１   入出力処理部
４４   データ記憶部
４２   トリガ処理部
４３   送受信部
５０   ネットワーク
【図１】
2008242766.tif 000003
【図２】
2008242766.tif 000004
【図３】
2008242766.tif 000005
【図４】
2008242766.tif 000006
【図５】
2008242766.tif 000007