説明

管理サーバ、分散システム、サーバ管理方法、及びプログラム

【課題】アプリケーションサーバに依存する固有の構成情報の相違を意識することなく複数のアプリケーションサーバを効率的に分散管理する。
【解決手段】管理サーバ20は、複数のアプリケーションサーバ30のそれぞれに固有の構成情報を識別子と関連付けて管理する管理部21と、管理者によって入力された識別子を含む文字列から成る、複数のアプリケーションサーバ30への操作要求に識別子が含まれているか否かを字句解析する解析部25と、解析部25によって操作要求に含まれていると判定された識別子を複数のアプリケーションサーバ30のそれぞれに固有の構成情報に置換する置換部26と、置換された文字列から成る操作要求を複数のアプリケーションサーバ30のそれぞれに送信する通信部27を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のサーバマシンを効率的に分散管理するための管理サーバ、分散システム、サーバ管理方法、及びプログラムに関する。
【背景技術】
【0002】
負荷分散環境で稼動する分散システムは、ネットワーク上に分散配置された複数のアプリケーションサーバを備える。例えば、クラウドコンピューティングやデータセンタ等の大規模分散環境で稼動する分散システムは、多種多様のマシンスペックや異なるオペレーティングシステムを有する複数のアプリケーションサーバを備える。これらのアプリケーションサーバには、運用上、その大部分において、共通の構成情報の設定がなされることが多い。このようなアプリケーションサーバを用いてシステム環境を構築し或いはメンテナンス等をする上で、運用上の構成変更に伴い、各アプリケーションサーバの構成情報を更新する必要が生じることがある。構成情報の更新作業は、従来、システム管理者がそれぞれのアプリケーションサーバを操作することにより行っていたが、分散システムが多数のアプリケーションサーバを備える場合、構成情報の更新作業は、システム管理者に多大な負担を課すことになる。このような事情に鑑み、近年、複数のアプリケーションサーバを一元的に管理するための分散管理機能を有するミドルウェアが開発されている。システム管理者は、多数のアプリケーションサーバを個別的に操作しなくても、分散管理機能を有する一つのミドルウェアに構成情報の更新を指示するだけで、多数のアプリケーションサーバの構成情報を更新することができる。システム管理者の作業量は、一台のアプリケーションサーバの構成情報の更新作業量と同程度であるから、システム管理者の作業負荷をかなり低減することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、アプリケーションサーバの構成情報は、それらが動作するサーバマシンに依存する固有の情報やマシンスペック等に依存する構成情報を含むことがある。例えば、サーバマシンのホスト名やIPアドレス、アプリケーションサーバに設定されるログファイル等の各種ファイルのディレクトリ、アプリケーションサーバにアサインされたメモリサイズ、又は特定のオペレーティングシステムにのみ適用する必要があるオプションパラメータ等である。これらの構成情報は、システム運用中にも変更される可能性を有していながら、サーバマシン毎に異なるため、分散管理機能を有する従来のミドルウェアでは、十分に対処することができず、アプリケーションサーバの個別的な更新作業を余儀なくされていた。
【0004】
そこで、本発明は、サーバマシンに依存する固有の構成情報の相違を意識することなく、複数のサーバマシンを効率的に分散管理することを課題とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するため、本発明に係わる管理サーバは、ネットワークを介して接続された複数のサーバマシンを管理するためのサーバであって、複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理する管理部と、管理者によって入力された識別子を含む文字列から成る、複数のサーバマシンへの操作要求に識別子が含まれているか否かを字句解析する解析部と、解析部によって操作要求に含まれていると判定された識別子を複数のサーバマシンのそれぞれに固有の構成情報に置換する置換部と、置換された文字列から成る操作要求を複数のサーバマシンのそれぞれに送信する通信部と、を備える。
【0006】
本発明に係わるサーバ管理方法は、ネットワークを介して接続された複数のサーバマシンを管理するための方法であって、複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理し、管理者によって入力された識別子を含む文字列から成る、複数のサーバマシンへの操作要求に識別子が含まれているか否かを字句解析し、字句解析によって操作要求に含まれていると判定された識別子を複数のサーバマシンのそれぞれに固有の構成情報に置換し、置換された文字列から成る操作要求を複数のサーバマシンのそれぞれに送信する。
【発明の効果】
【0007】
本発明によれば、各サーバマシンに依存する固有の構成情報の相違を意識することなく、複数のサーバマシンを効率的に分散管理することができる。
【図面の簡単な説明】
【0008】
【図1】本実施形態に係わる分散システムの全体構成を示す機能ブロック図である。
【図2】管理サーバの要求解釈部の処理の流れを示すフローチャートである。
【図3】アプリケーションサーバの要求処理部の処理の流れを示すフローチャートである。
【図4】各アプリケーションサーバの構成情報と識別子との対応関係を示す説明図である。
【図5】識別子の置換の流れを示す説明図である。
【図6】演算子を用いた操作要求の処理の概要を示す説明図である。
【図7】条件式を用いた操作要求の処理の概要を示す説明図である。
【発明を実施するための形態】
【0009】
以下、各図を参照しながら本発明に係わる実施形態について説明する。
図1は本実施形態に係わる分散システム10の全体構成を示す機能ブロック図である。分散システム10は、ネットワーク50を介して相互に接続された管理サーバ20と複数のアプリケーションサーバ30とを備えている。管理サーバ20は、システム管理者からの操作要求に従って複数のアプリケーションサーバ30を管理するためのサーバマシンである。管理サーバ20は、複数のアプリケーションサーバ30のそれぞれに固有の構成情報を管理するための管理部21と、システム管理者からの操作要求を解釈するための要求解釈部24とを備えている。要求解釈部24は、システム管理者からの操作要求を受信し、その内容を解析し、所定の置換処理(詳細については後述する)を行った上で、各アプリケーションサーバ30に指示するめの手段として、解析部25、置換部26、及び通信部27を備えている。管理部21及び要求解釈部24のそれぞれの機能は、管理サーバ20の記憶資源に予め格納されている管理プログラム及び要求解釈プログラムが実行され、これらのプログラムが管理サーバ20のハードウェア資源と協働することにより実現されるものである。一方、アプリケーションサーバ30は、例えばビジネスロジック等を実装したアプリケーションソフトウエアを実行するサーバマシンである。各アプリケーションサーバ30は、管理サーバ20からの操作要求を処理するための要求処理部31を備えている。要求処理部31は、管理サーバ20からの操作要求を受信し、その内容を解析し、所定の置換・演算・判定処理(詳細については後述する)を行った上で、操作要求の処理を実行するための手段として、通信部32、解析部33、置換部34、演算部35、及び判定部36を備えている。要求処理部31の機能は、アプリケーションサーバ30の記憶資源に予め格納されている要求処理プログラムが実行され、そのプログラムがアプリケーションサーバ30のハードウェア資源と協働することにより実現されるものである。
【0010】
管理部21は、各アプリケーションサーバ30に固有の構成情報を識別子(キー)と関連付けて管理する。図4は、各アプリケーションサーバの構成情報(ホスト名、ディレクトリ、URLなど)と識別子との対応関係の一例を示しており、図中、右側の文字列(例えばHOST_XXX)が構成情報であり、左側の文字列(例えばhostname)がこれに対応する識別子である。各アプリケーションサーバ30に共通の構成情報(例えばホスト名)について、同一の識別子(例えばhostname)を対応付けることにより、一つの識別子を用いて各アプリケーションサーバ30に共通する構成情報を包括的に指定することができる。識別子は、各アプリケーションサーバ30に依存しない汎用的な名称として設定することができる。本実施形態では、${<識別子の文字列>}というフォーマットを用いて、各アプリケーションサーバ30に共通する構成情報を包括的に指定する。例えば、${hostname}は、各アプリケーションサーバ30のホスト名を示す。また例えば、${memory_size}は、各アプリケーションサーバ30のメモリサイズを示す。システム管理者は、運用管理ツール40を使用して、各アプリケーションサーバ30の構成情報と識別子との対応関係を管理サーバ20に登録することができる。管理部21は、システム管理者によって登録されたその対応関係をテーブル22に保持するとともに、記憶装置23に格納する。なお、各アプリケーションサーバ30の構成情報と識別子との対応関係の登録作業は、必ずしもシステム管理者が行う必要はなく、管理サーバ20のエージェント機能により、各アプリケーションサーバ30の構成情報を自動収集し、適切な識別子を自動的に対応付けてもよい。
【0011】
システム管理者は、識別子を含む文字列から成る操作要求を管理サーバ20に入力することにより、各アプリケーションサーバ30に固有の構成情報の相違を意識することなく、アプリケーションサーバ30の構成情報の更新処理や、その他のあらゆる処理(例えば、アプリケーションサーバ30の起動処理など)の実行を指示することができる。管理サーバ20による各アプリケーションサーバ30の管理の汎用性や利便性を高めるために、操作要求には、必要に応じて演算子や条件式を含めることができる。例えば、アプリケーションサーバ30の構成情報が数値で示される場合、その構成情報に対して算術演算を施すことができる。演算子の具体例として、例えば、構成情報の値に所定値を加算することを指示する場合には、${<識別子の文字列>+<増分>}というフォーマットを使用することができる。また例えば、構成情報の値に所定値を乗算することを指示する場合には、${<識別子の文字列>*<倍数>}というフォーマットを使用することができる。各アプリケーションサーバ30のメモリサイズを1.5倍にすることを指示するためには、${memory_size*1.5}というフォーマットを使用すればよい。条件式の具体例として、例えば、ある条件が成立した場合に構成情報を更新することを指示する場合には、${<条件式>:<条件成立時の更新値>}というフォーマットを使用することができる。アプリケーションサーバ30のオペレーティングシステムがLinuxである場合に構成情報を<更新値>に更新することを指示するためには、${os_name=“Linux”:<更新値>}というフォーマットを使用すればよい。なお、上述のフォーマットは説明の一例に過ぎず、任意の記号や文字列の組み合わせから成るフォーマットを使用すればよい。
【0012】
次に、管理サーバ20の要求解釈部24の処理の流れについて図2を参照しながら説明する。システム管理者からの操作要求が通信部27によって受信されると(ステップ201)、解析部25は、操作要求の文字列に識別子が含まれているか否かを字句解析する(ステップ202)。操作要求の文字列に識別子が含まれていないと判定された場合には(ステップ202;NO)、ステップ207に進む。一方、操作要求の文字列に識別子が含まれていると判定された場合には(ステップ202;YES)、置換部26は、操作要求の文字列から識別子を抽出し(ステップ203)、識別子に対応するアプリケーションサーバ30の構成情報がテーブル22に存在するか否かを判定する(ステップ204)。アプリケーションサーバ30の構成情報の中には、管理サーバ20が予め取得しておくことができず、アプリケーションサーバ30でないと取得できないものがある。このような構成情報は、テーブル22に存在しない場合がある。構成情報がテーブル22に存在しない場合は(ステップ204;NO)、ステップ206に進む。一方、構成情報がテーブル22に存在する場合は(ステップ204;YES)、置換部26は、操作要求の文字列に含まれる識別子を構成情報に置換する(ステップ205)。そして、操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みていない場合には(ステップ206;NO)、ステップ203〜ステップ205の処理を繰り返す。操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みた場合には(ステップ206;YES)、通信部27は、置換処理済みの操作要求の文字列を各アプリケーションサーバ30に送信する(ステップ207)。
【0013】
次に、各アプリケーションサーバ30の要求処理部31の処理の流れについて図3を参照しながら説明する。管理サーバ20からの操作要求が通信部32によって受信されると(ステップ301)、解析部33は、操作要求の文字列に識別子が含まれているか否かを字句解析する(ステップ302)。操作要求の文字列に含まれる識別子のうち、管理サーバ20が構成情報に置換することができなかったものについては、そのまま操作要求の文字列に含まれている。操作要求の文字列に識別子が含まれていないと判定された場合には(ステップ302;NO)、ステップ307に進む。一方、操作要求の文字列に識別子が含まれていると判定された場合には(ステップ302;YES)、置換部34は、操作要求の文字列から識別子を抽出し(ステップ303)、識別子に対応する構成情報が存在するか否かを判定する(ステップ304)。識別子に対応する構成情報が存在しない場合には(ステップ304;NO)、要求処理部31は、管理サーバ20に実行エラーを返す(ステップ312)。一方、構成情報が存在する場合は(ステップ304;YES)、置換部34は、操作要求の文字列に含まれる識別子を構成情報に置換する(ステップ305)。そして、操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みていない場合には(ステップ306;NO)、ステップ303〜ステップ305の処理を繰り返す。操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みた場合には(ステップ306;YES)、解析部33は、操作要求の文字列に演算子が含まれているか否かを字句解析する(ステップ307)。操作要求の文字列に演算子が含まれていないと判定された場合には(ステップ307;NO)、ステップ309に進む。一方、操作要求の文字列に演算子が含まれていると判定された場合には(ステップ307;YES)、演算部35は、演算子に従って演算処理を行う(ステップ308)。次に、解析部33は、操作要求の文字列に条件式が含まれているか否かを字句解析する(ステップ309)。操作要求の文字列に条件式が含まれていないと判定された場合には(ステップ309;NO)、ステップ311に進む。一方、操作要求の文字列に条件式が含まれていると判定された場合には(ステップ309;YES)、判定部36は、条件式が成立するか否かを判定する(ステップ310)。条件式が成立しない場合には(ステップ310;NO)、要求処理部31は、予め定められたデフォルト処理を実行する(ステップ313)。一方、条件式が成立する場合には(ステップ310;YES)、要求処理部31は、操作要求に従って処理を実行する(ステップ311)。なお、上述の説明は、操作要求全般についてのものであるが、操作要求の具体的な内容が、例えば、各アプリケーションサーバ30の構成情報の更新要求である場合にも、基本的には上述の流れに沿って処理される(但し、条件式が成立しない場合のデフォルト処理は、「構成情報を更新しない」という処理になる。)。
【0014】
本実施形態によれば、システム管理者は、各アプリケーションサーバ30に固有の構成情報を意識する必要がなく、各アプリケーションサーバ30に共通の構成情報を代表する汎用的な識別子を用いて操作要求を指示することができるため、作業負荷を著しく軽減できる。例えば、各アプリケーションサーバ30のログファイルのファイル名をadmin.logから<ホスト名>_admin.logに変更する場合、従来では、システム管理者は、複数のアプリケーションサーバ30のそれぞれについてホスト名を指定した上で、ファイル名を変更する必要があった。本実施形態によれば、各アプリケーションサーバ30のホスト名を${hostname}として一括指定した上で、管理サーバ20に指示を与えることができるため、システム管理者の作業負荷を低減できる。例えば、図5に示すように、${logs_dir}\${hostname}_admin.logというフォーマットで記述された操作要求に含まれる識別子は、同図に示す流れで各アプリケーションサーバ30に固有の構成情報に置換される。
【0015】
また、操作要求には、演算子や条件式を含めることができるため、汎用性の高い作業環境を提供できる。例えば、システム保守に伴い各アプリケーションサーバ30に業務アプリケーションを追加するため、各アプリケーションサーバ30のメモリサイズを増加する場合、図6に示すように、演算子“+”を使用することで、システム管理者は、各アプリケーションサーバ30のメモリサイズを意識することなくメモリサイズの増加を指示できる。また例えば、特定のバージョンのオペレーティングシステム上で動作するアプリケーションサーバ30についてのみJava(登録商標)エージェントを設定する場合、図7に示すように、条件式“=”を使用することで、システム管理者は、各アプリケーションサーバ30のオペレーティングシステムのバージョン情報を意識することなく、設定操作が可能になる。本実施形態の利点は、アプリケーションサーバ30の台数が多い程、より効果的にシステム管理者の作業負担を軽減できることである。
【0016】
また、本実施形態によれば、システム管理者による構成情報の指定ミスを防止できるという利点を有する。ホスト名、ディレクトリパス、メモリサイズ等の複雑な構成情報に指定ミスが生じると、その後のアプリケーションサーバ30の起動そのものに影響を与え兼ねないが、識別子を用いることで、そのようなミスを未然に防止できる。
【0017】
本実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
(付記1)ネットワーク50を介して接続された複数のサーバマシン30を管理するための管理サーバ20であって、
複数のサーバマシン30のそれぞれに固有の構成情報を識別子と関連付けて管理する管理部21と、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン30への操作要求に識別子が含まれているか否かを字句解析する解析部25と、
解析部25によって操作要求に含まれていると判定された識別子を複数のサーバマシン30のそれぞれに固有の構成情報に置換する置換部26と、
置換された文字列から成る操作要求を複数のサーバマシン30のそれぞれに送信する通信部27と、
を備える管理サーバ20。
【0018】
(付記2)ネットワーク50を介して接続された管理サーバ20と複数のサーバマシン30とを備える分散システム10であって、
管理サーバ20は、
複数のサーバマシン30のそれぞれに固有の構成情報を識別子と関連付けて管理する管理部21と、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン30への操作要求に識別子が含まれているか否かを字句解析する第一の解析部25と、
第一の解析部25によって操作要求に含まれていると判定された識別子を複数のサーバマシン30のそれぞれに固有の構成情報に置換する第一の置換部26と、
第一の置換部26によって置換された文字列から成る操作要求を複数のサーバマシン30のそれぞれに送信する通信部27と、を備え、
複数のサーバマシン30のそれぞれは、
通信部27によって送信された操作要求に識別子が含まれているか否かを字句解析する第二の解析部33と、
第二の解析部33によって操作要求に含まれていると判定された識別子を自機に固有の構成情報に置換する第二の置換部34と、を備える分散システム10。
【0019】
(付記3)付記2に記載の分散システム10であって、
複数のサーバマシン30のそれぞれは、演算部35を更に備え、
第二の解析部33は、操作要求に演算子が含まれているか否かを字句解析し、
演算部35は、第二の解析部33によって操作要求に含まれていると判定された演算子に従って演算処理する、分散システム10。
【0020】
(付記4)付記2又は付記3に記載の分散システム10であって、
複数のサーバマシン30のそれぞれは、判定部36を更に備え、
第二の解析部33は、操作要求に条件式が含まれているか否かを字句解析し、
判定部36は、第二の解析部33によって操作要求に含まれていると判定された条件式に従って条件判定する、分散システム10。
【0021】
(付記5)付記2乃至付記4のうち何れか1項に記載の分散システム10であって、
操作要求は、複数のサーバマシン30のそれぞれに固有の構成情報の更新要求を含む、分散システム10。
【0022】
(付記6)ネットワーク50を介して接続された複数のサーバマシン30を管理するためのサーバ管理方法であって、
複数のサーバマシン30のそれぞれに固有の構成情報を識別子と関連付けて管理し、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン30への操作要求に識別子が含まれているか否かを字句解析し、
字句解析によって操作要求に含まれていると判定された識別子を複数のサーバマシン30のそれぞれに固有の構成情報に置換し、
置換された文字列から成る操作要求を複数のサーバマシン30のそれぞれに送信する、サーバ管理方法。
【0023】
(付記7)付記6に記載のサーバ管理方法をコンピュータに実行させるための命令を備えるプログラム。
【産業上の利用可能性】
【0024】
本発明は、ネットワーク上に分散配置された複数のサーバマシンを備える分散システムに有用である。
【符号の説明】
【0025】
10…分散システム
20…管理サーバ
21…管理部
22…テーブル
23…記憶装置
24…要求解釈部
25…解析部
26…置換部
27…通信部
30…アプリケーションサーバ
31…要求解釈部
32…通信部
33…解析部
34…置換部
35…演算部
36…判定部
40…運用管理ツール
50…ネットワーク

【特許請求の範囲】
【請求項1】
ネットワークを介して接続された複数のサーバマシンを管理するための管理サーバであって、
前記複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理する管理部と、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析する解析部と、
前記解析部によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換する置換部と、
前記置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する通信部と、
を備える管理サーバ。
【請求項2】
ネットワークを介して接続された管理サーバと複数のサーバマシンとを備える分散システムであって、
前記管理サーバは、
前記複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理する管理部と、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析する第一の解析部と、
前記第一の解析部によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換する第一の置換部と、
前記第一の置換部によって置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する通信部と、を備え、
前記複数のサーバマシンのそれぞれは、
前記通信部によって送信された操作要求に前記識別子が含まれているか否かを字句解析する第二の解析部と、
前記第二の解析部によって前記操作要求に含まれていると判定された識別子を自機に固有の構成情報に置換する第二の置換部と、を備える分散システム。
【請求項3】
請求項2に記載の分散システムであって、
前記複数のサーバマシンのそれぞれは、演算部を更に備え、
前記第二の解析部は、前記操作要求に演算子が含まれているか否かを字句解析し、
前記演算部は、前記第二の解析部によって前記操作要求に含まれていると判定された演算子に従って演算処理する、分散システム。
【請求項4】
請求項2又は請求項3に記載の分散システムであって、
前記複数のサーバマシンのそれぞれは、判定部を更に備え、
前記第二の解析部は、前記操作要求に条件式が含まれているか否かを字句解析し、
前記判定部は、前記第二の解析部によって前記操作要求に含まれていると判定された条件式に従って条件判定する、分散システム。
【請求項5】
請求項2乃至請求項4のうち何れか1項に記載の分散システムであって、
前記操作要求は、前記複数のサーバマシンのそれぞれに固有の構成情報の更新要求を含む、分散システム。
【請求項6】
ネットワークを介して接続された複数のサーバマシンを管理するためのサーバ管理方法であって、
前記複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理し、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析し、
前記字句解析によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換し、
前記置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する、サーバ管理方法。
【請求項7】
請求項6に記載のサーバ管理方法をコンピュータに実行させるための命令を備えるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−194908(P2012−194908A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−59754(P2011−59754)
【出願日】平成23年3月17日(2011.3.17)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000004237)日本電気株式会社 (19,353)