(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数のサーバマシンに接続される管理サーバであって、
前記複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて記憶する管理部と、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析する解析部と、
前記解析部によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換する置換部と、
前記置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する通信部と、
を備える管理サーバ。
【請求項２】
ネットワークを介して接続された管理サーバと複数のサーバマシンとを備える分散システムであって、
前記管理サーバは、
前記複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて記憶する管理部と、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析する第一の解析部と、
前記第一の解析部によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換する第一の置換部と、
前記第一の置換部によって置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する通信部と、を備え、
前記複数のサーバマシンのそれぞれは、
前記通信部によって送信された操作要求に前記識別子が含まれているか否かを字句解析する第二の解析部と、
前記第二の解析部によって前記操作要求に含まれていると判定された識別子を自機に固有の構成情報に置換する第二の置換部と、を備える分散システム。
【請求項３】
請求項２に記載の分散システムであって、
前記複数のサーバマシンのそれぞれは、演算部を更に備え、
前記第二の解析部は、前記操作要求に演算子が含まれているか否かを字句解析し、
前記演算部は、前記第二の解析部によって前記操作要求に含まれていると判定された演算子に従って演算処理する、分散システム。
【請求項４】
請求項２又は請求項３に記載の分散システムであって、
前記複数のサーバマシンのそれぞれは、判定部を更に備え、
前記第二の解析部は、前記操作要求に条件式が含まれているか否かを字句解析し、
前記判定部は、前記第二の解析部によって前記操作要求に含まれていると判定された条件式に従って条件判定する、分散システム。
【請求項５】
請求項２乃至請求項４のうち何れか１項に記載の分散システムであって、
前記操作要求は、前記複数のサーバマシンのそれぞれに固有の構成情報の更新要求を含む、分散システム。
【請求項６】
複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて記憶し、
管理者によって入力された前記識別子を含む文字列から成る、前記複数のサーバマシンへの操作要求に前記識別子が含まれているか否かを字句解析し、
前記字句解析によって前記操作要求に含まれていると判定された識別子を前記複数のサーバマシンのそれぞれに固有の構成情報に置換し、
前記置換された文字列から成る操作要求を前記複数のサーバマシンのそれぞれに送信する、サーバ管理方法。
【請求項７】
請求項６に記載のサーバ管理方法をコンピュータに実行させるための命令を備えるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバマシンを効率的に分散管理するための管理サーバ、分散システム、サーバ管理方法、及びプログラムに関する。
【背景技術】
【０００２】
負荷分散環境で稼動する分散システムは、ネットワーク上に分散配置された複数のアプリケーションサーバを備える。例えば、クラウドコンピューティングやデータセンタ等の大規模分散環境で稼動する分散システムは、多種多様のマシンスペックや異なるオペレーティングシステムを有する複数のアプリケーションサーバを備える。これらのアプリケーションサーバには、運用上、その大部分において、共通の構成情報の設定がなされることが多い。このようなアプリケーションサーバを用いてシステム環境を構築し或いはメンテナンス等をする上で、運用上の構成変更に伴い、各アプリケーションサーバの構成情報を更新する必要が生じることがある。構成情報の更新作業は、従来、システム管理者がそれぞれのアプリケーションサーバを操作することにより行っていたが、分散システムが多数のアプリケーションサーバを備える場合、構成情報の更新作業は、システム管理者に多大な負担を課すことになる。このような事情に鑑み、近年、複数のアプリケーションサーバを一元的に管理するための分散管理機能を有するミドルウェアが開発されている。システム管理者は、多数のアプリケーションサーバを個別的に操作しなくても、分散管理機能を有する一つのミドルウェアに構成情報の更新を指示するだけで、多数のアプリケーションサーバの構成情報を更新することができる。システム管理者の作業量は、一台のアプリケーションサーバの構成情報の更新作業量と同程度であるから、システム管理者の作業負荷をかなり低減することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、アプリケーションサーバの構成情報は、それらが動作するサーバマシンに依存する固有の情報やマシンスペック等に依存する構成情報を含むことがある。例えば、サーバマシンのホスト名やＩＰアドレス、アプリケーションサーバに設定されるログファイル等の各種ファイルのディレクトリ、アプリケーションサーバにアサインされたメモリサイズ、又は特定のオペレーティングシステムにのみ適用する必要があるオプションパラメータ等である。これらの構成情報は、システム運用中にも変更される可能性を有していながら、サーバマシン毎に異なるため、分散管理機能を有する従来のミドルウェアでは、十分に対処することができず、アプリケーションサーバの個別的な更新作業を余儀なくされていた。
【０００４】
そこで、本発明は、サーバマシンに依存する固有の構成情報の相違を意識することなく、複数のサーバマシンを効率的に分散管理することを課題とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するため、本発明に係る管理サーバは、ネットワークを介して複数のサーバマシンに接続される管理サーバであって、複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて記憶する管理部と、管理者によって入力された識別子を含む文字列から成る、複数のサーバマシンへの操作要求に識別子が含まれているか否かを字句解析する解析部と、解析部によって操作要求に含まれていると判定された識別子を複数のサーバマシンのそれぞれに固有の構成情報に置換する置換部と、置換された文字列から成る操作要求を複数のサーバマシンのそれぞれに送信する通信部と、を備える。
【０００６】
本発明に係わるサーバ管理方法は、ネットワークを介して接続された複数のサーバマシンを管理するための方法であって、複数のサーバマシンのそれぞれに固有の構成情報を識別子と関連付けて管理し、管理者によって入力された識別子を含む文字列から成る、複数のサーバマシンへの操作要求に識別子が含まれているか否かを字句解析し、字句解析によって操作要求に含まれていると判定された識別子を複数のサーバマシンのそれぞれに固有の構成情報に置換し、置換された文字列から成る操作要求を複数のサーバマシンのそれぞれに送信する。
【発明の効果】
【０００７】
本発明によれば、各サーバマシンに依存する固有の構成情報の相違を意識することなく、複数のサーバマシンを効率的に分散管理することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係わる分散システムの全体構成を示す機能ブロック図である。
【図２】管理サーバの要求解釈部の処理の流れを示すフローチャートである。
【図３】アプリケーションサーバの要求処理部の処理の流れを示すフローチャートである。
【図４】各アプリケーションサーバの構成情報と識別子との対応関係を示す説明図である。
【図５】識別子の置換の流れを示す説明図である。
【図６】演算子を用いた操作要求の処理の概要を示す説明図である。
【図７】条件式を用いた操作要求の処理の概要を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、各図を参照しながら本発明に係わる実施形態について説明する。
図１は本実施形態に係わる分散システム１０の全体構成を示す機能ブロック図である。分散システム１０は、ネットワーク５０を介して相互に接続された管理サーバ２０と複数のアプリケーションサーバ３０とを備えている。管理サーバ２０は、システム管理者からの操作要求に従って複数のアプリケーションサーバ３０を管理するためのサーバマシンである。管理サーバ２０は、複数のアプリケーションサーバ３０のそれぞれに固有の構成情報を管理するための管理部２１と、システム管理者からの操作要求を解釈するための要求解釈部２４とを備えている。要求解釈部２４は、システム管理者からの操作要求を受信し、その内容を解析し、所定の置換処理（詳細については後述する）を行った上で、各アプリケーションサーバ３０に指示するめの手段として、解析部２５、置換部２６、及び通信部２７を備えている。管理部２１及び要求解釈部２４のそれぞれの機能は、管理サーバ２０の記憶資源に予め格納されている管理プログラム及び要求解釈プログラムが実行され、これらのプログラムが管理サーバ２０のハードウェア資源と協働することにより実現されるものである。一方、アプリケーションサーバ３０は、例えばビジネスロジック等を実装したアプリケーションソフトウエアを実行するサーバマシンである。各アプリケーションサーバ３０は、管理サーバ２０からの操作要求を処理するための要求処理部３１を備えている。要求処理部３１は、管理サーバ２０からの操作要求を受信し、その内容を解析し、所定の置換・演算・判定処理（詳細については後述する）を行った上で、操作要求の処理を実行するための手段として、通信部３２、解析部３３、置換部３４、演算部３５、及び判定部３６を備えている。要求処理部３１の機能は、アプリケーションサーバ３０の記憶資源に予め格納されている要求処理プログラムが実行され、そのプログラムがアプリケーションサーバ３０のハードウェア資源と協働することにより実現されるものである。
【００１０】
管理部２１は、各アプリケーションサーバ３０に固有の構成情報を識別子（キー）と関連付けて管理する。図４は、各アプリケーションサーバの構成情報（ホスト名、ディレクトリ、ＵＲＬなど）と識別子との対応関係の一例を示しており、図中、右側の文字列（例えばHOST_XXX）が構成情報であり、左側の文字列（例えばhostname）がこれに対応する識別子である。各アプリケーションサーバ３０に共通の構成情報（例えばホスト名）について、同一の識別子（例えばhostname）を対応付けることにより、一つの識別子を用いて各アプリケーションサーバ３０に共通する構成情報を包括的に指定することができる。識別子は、各アプリケーションサーバ３０に依存しない汎用的な名称として設定することができる。本実施形態では、＄｛＜識別子の文字列＞｝というフォーマットを用いて、各アプリケーションサーバ３０に共通する構成情報を包括的に指定する。例えば、＄｛hostname｝は、各アプリケーションサーバ３０のホスト名を示す。また例えば、＄｛memory_size｝は、各アプリケーションサーバ３０のメモリサイズを示す。システム管理者は、運用管理ツール４０を使用して、各アプリケーションサーバ３０の構成情報と識別子との対応関係を管理サーバ２０に登録することができる。管理部２１は、システム管理者によって登録されたその対応関係をテーブル２２に保持するとともに、記憶装置２３に格納する。なお、各アプリケーションサーバ３０の構成情報と識別子との対応関係の登録作業は、必ずしもシステム管理者が行う必要はなく、管理サーバ２０のエージェント機能により、各アプリケーションサーバ３０の構成情報を自動収集し、適切な識別子を自動的に対応付けてもよい。
【００１１】
システム管理者は、識別子を含む文字列から成る操作要求を管理サーバ２０に入力することにより、各アプリケーションサーバ３０に固有の構成情報の相違を意識することなく、アプリケーションサーバ３０の構成情報の更新処理や、その他のあらゆる処理（例えば、アプリケーションサーバ３０の起動処理など）の実行を指示することができる。管理サーバ２０による各アプリケーションサーバ３０の管理の汎用性や利便性を高めるために、操作要求には、必要に応じて演算子や条件式を含めることができる。例えば、アプリケーションサーバ３０の構成情報が数値で示される場合、その構成情報に対して算術演算を施すことができる。演算子の具体例として、例えば、構成情報の値に所定値を加算することを指示する場合には、＄｛＜識別子の文字列＞＋＜増分＞｝というフォーマットを使用することができる。また例えば、構成情報の値に所定値を乗算することを指示する場合には、＄｛＜識別子の文字列＞＊＜倍数＞｝というフォーマットを使用することができる。各アプリケーションサーバ３０のメモリサイズを１．５倍にすることを指示するためには、＄｛memory_size＊１．５｝というフォーマットを使用すればよい。条件式の具体例として、例えば、ある条件が成立した場合に構成情報を更新することを指示する場合には、＄｛＜条件式＞：＜条件成立時の更新値＞｝というフォーマットを使用することができる。アプリケーションサーバ３０のオペレーティングシステムがLinuxである場合に構成情報を＜更新値＞に更新することを指示するためには、＄｛os_name＝“Linux”：＜更新値＞｝というフォーマットを使用すればよい。なお、上述のフォーマットは説明の一例に過ぎず、任意の記号や文字列の組み合わせから成るフォーマットを使用すればよい。
【００１２】
次に、管理サーバ２０の要求解釈部２４の処理の流れについて図２を参照しながら説明する。システム管理者からの操作要求が通信部２７によって受信されると（ステップ２０１）、解析部２５は、操作要求の文字列に識別子が含まれているか否かを字句解析する（ステップ２０２）。操作要求の文字列に識別子が含まれていないと判定された場合には（ステップ２０２；ＮＯ）、ステップ２０７に進む。一方、操作要求の文字列に識別子が含まれていると判定された場合には（ステップ２０２；ＹＥＳ）、置換部２６は、操作要求の文字列から識別子を抽出し（ステップ２０３）、識別子に対応するアプリケーションサーバ３０の構成情報がテーブル２２に存在するか否かを判定する（ステップ２０４）。アプリケーションサーバ３０の構成情報の中には、管理サーバ２０が予め取得しておくことができず、アプリケーションサーバ３０でないと取得できないものがある。このような構成情報は、テーブル２２に存在しない場合がある。構成情報がテーブル２２に存在しない場合は（ステップ２０４；ＮＯ）、ステップ２０６に進む。一方、構成情報がテーブル２２に存在する場合は（ステップ２０４；ＹＥＳ）、置換部２６は、操作要求の文字列に含まれる識別子を構成情報に置換する（ステップ２０５）。そして、操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みていない場合には（ステップ２０６；ＮＯ）、ステップ２０３〜ステップ２０５の処理を繰り返す。操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みた場合には（ステップ２０６；ＹＥＳ）、通信部２７は、置換処理済みの操作要求の文字列を各アプリケーションサーバ３０に送信する（ステップ２０７）。
【００１３】
次に、各アプリケーションサーバ３０の要求処理部３１の処理の流れについて図３を参照しながら説明する。管理サーバ２０からの操作要求が通信部３２によって受信されると（ステップ３０１）、解析部３３は、操作要求の文字列に識別子が含まれているか否かを字句解析する（ステップ３０２）。操作要求の文字列に含まれる識別子のうち、管理サーバ２０が構成情報に置換することができなかったものについては、そのまま操作要求の文字列に含まれている。操作要求の文字列に識別子が含まれていないと判定された場合には（ステップ３０２；ＮＯ）、ステップ３０７に進む。一方、操作要求の文字列に識別子が含まれていると判定された場合には（ステップ３０２；ＹＥＳ）、置換部３４は、操作要求の文字列から識別子を抽出し（ステップ３０３）、識別子に対応する構成情報が存在するか否かを判定する（ステップ３０４）。識別子に対応する構成情報が存在しない場合には（ステップ３０４；ＮＯ）、要求処理部３１は、管理サーバ２０に実行エラーを返す（ステップ３１２）。一方、構成情報が存在する場合は（ステップ３０４；ＹＥＳ）、置換部３４は、操作要求の文字列に含まれる識別子を構成情報に置換する（ステップ３０５）。そして、操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みていない場合には（ステップ３０６；ＮＯ）、ステップ３０３〜ステップ３０５の処理を繰り返す。操作要求の文字列に含まれている全ての識別子についての構成情報への置換を試みた場合には（ステップ３０６；ＹＥＳ）、解析部３３は、操作要求の文字列に演算子が含まれているか否かを字句解析する（ステップ３０７）。操作要求の文字列に演算子が含まれていないと判定された場合には（ステップ３０７；ＮＯ）、ステップ３０９に進む。一方、操作要求の文字列に演算子が含まれていると判定された場合には（ステップ３０７；ＹＥＳ）、演算部３５は、演算子に従って演算処理を行う（ステップ３０８）。次に、解析部３３は、操作要求の文字列に条件式が含まれているか否かを字句解析する（ステップ３０９）。操作要求の文字列に条件式が含まれていないと判定された場合には（ステップ３０９；ＮＯ）、ステップ３１１に進む。一方、操作要求の文字列に条件式が含まれていると判定された場合には（ステップ３０９；ＹＥＳ）、判定部３６は、条件式が成立するか否かを判定する（ステップ３１０）。条件式が成立しない場合には（ステップ３１０；ＮＯ）、要求処理部３１は、予め定められたデフォルト処理を実行する（ステップ３１３）。一方、条件式が成立する場合には（ステップ３１０；ＹＥＳ）、要求処理部３１は、操作要求に従って処理を実行する（ステップ３１１）。なお、上述の説明は、操作要求全般についてのものであるが、操作要求の具体的な内容が、例えば、各アプリケーションサーバ３０の構成情報の更新要求である場合にも、基本的には上述の流れに沿って処理される（但し、条件式が成立しない場合のデフォルト処理は、「構成情報を更新しない」という処理になる。）。
【００１４】
本実施形態によれば、システム管理者は、各アプリケーションサーバ３０に固有の構成情報を意識する必要がなく、各アプリケーションサーバ３０に共通の構成情報を代表する汎用的な識別子を用いて操作要求を指示することができるため、作業負荷を著しく軽減できる。例えば、各アプリケーションサーバ３０のログファイルのファイル名をadmin.logから＜ホスト名＞_admin.logに変更する場合、従来では、システム管理者は、複数のアプリケーションサーバ３０のそれぞれについてホスト名を指定した上で、ファイル名を変更する必要があった。本実施形態によれば、各アプリケーションサーバ３０のホスト名を＄｛hostname｝として一括指定した上で、管理サーバ２０に指示を与えることができるため、システム管理者の作業負荷を低減できる。例えば、図５に示すように、＄｛logs_dir｝\＄｛hostname｝_admin.logというフォーマットで記述された操作要求に含まれる識別子は、同図に示す流れで各アプリケーションサーバ３０に固有の構成情報に置換される。
【００１５】
また、操作要求には、演算子や条件式を含めることができるため、汎用性の高い作業環境を提供できる。例えば、システム保守に伴い各アプリケーションサーバ３０に業務アプリケーションを追加するため、各アプリケーションサーバ３０のメモリサイズを増加する場合、図６に示すように、演算子“＋”を使用することで、システム管理者は、各アプリケーションサーバ３０のメモリサイズを意識することなくメモリサイズの増加を指示できる。また例えば、特定のバージョンのオペレーティングシステム上で動作するアプリケーションサーバ３０についてのみＪａｖａ（登録商標）エージェントを設定する場合、図７に示すように、条件式“＝”を使用することで、システム管理者は、各アプリケーションサーバ３０のオペレーティングシステムのバージョン情報を意識することなく、設定操作が可能になる。本実施形態の利点は、アプリケーションサーバ３０の台数が多い程、より効果的にシステム管理者の作業負担を軽減できることである。
【００１６】
また、本実施形態によれば、システム管理者による構成情報の指定ミスを防止できるという利点を有する。ホスト名、ディレクトリパス、メモリサイズ等の複雑な構成情報に指定ミスが生じると、その後のアプリケーションサーバ３０の起動そのものに影響を与え兼ねないが、識別子を用いることで、そのようなミスを未然に防止できる。
【００１７】
本実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）ネットワーク５０を介して接続された複数のサーバマシン３０を管理するための管理サーバ２０であって、
複数のサーバマシン３０のそれぞれに固有の構成情報を識別子と関連付けて管理する管理部２１と、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン３０への操作要求に識別子が含まれているか否かを字句解析する解析部２５と、
解析部２５によって操作要求に含まれていると判定された識別子を複数のサーバマシン３０のそれぞれに固有の構成情報に置換する置換部２６と、
置換された文字列から成る操作要求を複数のサーバマシン３０のそれぞれに送信する通信部２７と、
を備える管理サーバ２０。
【００１８】
（付記２）ネットワーク５０を介して接続された管理サーバ２０と複数のサーバマシン３０とを備える分散システム１０であって、
管理サーバ２０は、
複数のサーバマシン３０のそれぞれに固有の構成情報を識別子と関連付けて管理する管理部２１と、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン３０への操作要求に識別子が含まれているか否かを字句解析する第一の解析部２５と、
第一の解析部２５によって操作要求に含まれていると判定された識別子を複数のサーバマシン３０のそれぞれに固有の構成情報に置換する第一の置換部２６と、
第一の置換部２６によって置換された文字列から成る操作要求を複数のサーバマシン３０のそれぞれに送信する通信部２７と、を備え、
複数のサーバマシン３０のそれぞれは、
通信部２７によって送信された操作要求に識別子が含まれているか否かを字句解析する第二の解析部３３と、
第二の解析部３３によって操作要求に含まれていると判定された識別子を自機に固有の構成情報に置換する第二の置換部３４と、を備える分散システム１０。
【００１９】
（付記３）付記２に記載の分散システム１０であって、
複数のサーバマシン３０のそれぞれは、演算部３５を更に備え、
第二の解析部３３は、操作要求に演算子が含まれているか否かを字句解析し、
演算部３５は、第二の解析部３３によって操作要求に含まれていると判定された演算子に従って演算処理する、分散システム１０。
【００２０】
（付記４）付記２又は付記３に記載の分散システム１０であって、
複数のサーバマシン３０のそれぞれは、判定部３６を更に備え、
第二の解析部３３は、操作要求に条件式が含まれているか否かを字句解析し、
判定部３６は、第二の解析部３３によって操作要求に含まれていると判定された条件式に従って条件判定する、分散システム１０。
【００２１】
（付記５）付記２乃至付記４のうち何れか１項に記載の分散システム１０であって、
操作要求は、複数のサーバマシン３０のそれぞれに固有の構成情報の更新要求を含む、分散システム１０。
【００２２】
（付記６）ネットワーク５０を介して接続された複数のサーバマシン３０を管理するためのサーバ管理方法であって、
複数のサーバマシン３０のそれぞれに固有の構成情報を識別子と関連付けて管理し、
管理者によって入力された識別子を含む文字列から成る、複数のサーバマシン３０への操作要求に識別子が含まれているか否かを字句解析し、
字句解析によって操作要求に含まれていると判定された識別子を複数のサーバマシン３０のそれぞれに固有の構成情報に置換し、
置換された文字列から成る操作要求を複数のサーバマシン３０のそれぞれに送信する、サーバ管理方法。
【００２３】
（付記７）付記６に記載のサーバ管理方法をコンピュータに実行させるための命令を備えるプログラム。
【産業上の利用可能性】
【００２４】
本発明は、ネットワーク上に分散配置された複数のサーバマシンを備える分散システムに有用である。
【符号の説明】
【００２５】
１０…分散システム
２０…管理サーバ
２１…管理部
２２…テーブル
２３…記憶装置
２４…要求解釈部
２５…解析部
２６…置換部
２７…通信部
３０…アプリケーションサーバ
３１…要求解釈部
３２…通信部
３３…解析部
３４…置換部
３５…演算部
３６…判定部
４０…運用管理ツール
５０…ネットワーク
【図１】
0005761555.tif 000002
【図２】
0005761555.tif 000003
【図３】
0005761555.tif 000004
【図４】
0005761555.tif 000005
【図５】
0005761555.tif 000006
【図６】
0005761555.tif 000007
【図７】
0005761555.tif 000008