JP2015007876A - 制御依頼方法、情報処理装置、システム、およびプログラム - Google Patents

制御依頼方法、情報処理装置、システム、およびプログラム Download PDF

Info

Publication number
JP2015007876A
JP2015007876A JP2013132543A JP2013132543A JP2015007876A JP 2015007876 A JP2015007876 A JP 2015007876A JP 2013132543 A JP2013132543 A JP 2013132543A JP 2013132543 A JP2013132543 A JP 2013132543A JP 2015007876 A JP2015007876 A JP 2015007876A
Authority
JP
Japan
Prior art keywords
control
node
server
execution
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013132543A
Other languages
English (en)
Other versions
JP6303300B2 (ja
Inventor
亨 北山
Toru Kitayama
亨 北山
淳 吉井
Atsushi Yoshii
淳 吉井
正太郎 岡田
Shotaro Okada
正太郎 岡田
明伸 高石
Akinobu Takaishi
明伸 高石
敏嗣 森
Toshitsugu Mori
敏嗣 森
遼太 川形
Ryota Kawagata
遼太 川形
幸大 竹内
Yukihiko Takeuchi
幸大 竹内
圭悟 光盛
Keigo Mitsumori
圭悟 光盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013132543A priority Critical patent/JP6303300B2/ja
Priority to US14/313,319 priority patent/US20140379100A1/en
Publication of JP2015007876A publication Critical patent/JP2015007876A/ja
Application granted granted Critical
Publication of JP6303300B2 publication Critical patent/JP6303300B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23273Select, associate the real hardware to be used in the program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25075Select interconnection of a combination of processor links to form network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

【課題】装置を効率的に遠隔制御できるようにする。【解決手段】情報処理装置10は、選択手段13と依頼手段14とを有する。選択手段13は、制御対象装置6〜8と複数の制御装置3〜5それぞれとの間の通信速度に基づいて、複数の制御装置3〜5の中から、制御対象装置6〜8を制御する制御装置を選択する。依頼手段14は、選択した該制御装置に該制御対象装置の制御を依頼する。【選択図】図1

Description

本発明は、制御対象装置の制御を制御装置に依頼する制御依頼方法、情報処理装置、システム、およびプログラムに関する。
企業内のICT(Information and Communication Technology)システムやデータセンターでは、運用管理作業の軽減化のために運用管理の自動化ソフトウェアを利用してサーバの電源管理などの処理が自動化されている。以下、運用管理の対象となるサーバを、管理対象サーバと呼ぶ。また自動化ソフトウェアに基づいて運用管理を行うサーバを、以下、管理サーバと呼ぶ。例えば管理サーバは、ワークフローに定義された手順で管理対象サーバを遠隔で制御することで、システム全体の運用管理を行う。
近年のコンピュータシステムの大規模化に伴い、管理対象サーバは増加する傾向にある。また管理サーバは、複数のワークフローを同時多重で実行する場合がある。大量の管理対象サーバを管理する管理サーバが、ワークフローを同時多重で実行すると、管理サーバの負荷が増大し、管理対象サーバの制御の遅延が発生する。すると、例えば、急な計画停電などで大量の管理対象サーバを短時間で停止する場合において、一部の管理対象サーバについて、停止操作完了が停電時間に間に合わないような事態が起こり得る。
管理サーバの負荷増大を抑制する技術として、例えば、複数のサーバのそれぞれに配備された1つ以上の各種ソフトウェアコンポーネントを順次呼び出して処理を実行する技術がある。この技術では、それぞれのサーバに1つのソフトウェアコンポーネントの実行を依頼したと仮定して、ソフトウェアコンポーネント群全体の処理量の見積もりが行われる。そして、見積もった処理量に基づいて、1つのソフトウェアコンポーネントの配備された複数のサーバ内のいずれか1つのサーバが依頼先として決定される。また、システム全体の処理効率を向上させるため、計算機のネットワーク上での距離を考慮してタスクの割当てを行う計算機システムもある。
特開2007−257163号公報 特開2005−310120号公報
しかし従来の技術では、複数のサーバの中から管理対象サーバを制御するサーバを決定する際に、制御するサーバと制御対象となる管理対象サーバとの間の通信性能について考慮されていない。そのため、管理対象サーバとの間の通信速度が遅いサーバに、その管理対象サーバを制御する処理が割り当てられる場合があり、管理対象サーバの運用管理の自動化における、処理の効率化が十分ではない。
なお上記の例では、制御対象を管理対象サーバとしているが、ネットワークに接続されたサーバ以外の装置が制御対象となる場合もある。そしてサーバ以外の装置が制御される場合でも、処理の効率化が十分でないのは同様である。
1つの側面では、本件の目的は、装置を効率的に制御できるようにすることである。
1つの案では、コンピュータに、制御対象装置と複数の制御装置それぞれとの間の通信速度に基づいて、前記複数の制御装置の中から、該制御対象装置を制御する制御装置を選択し、選択した該制御装置に該制御対象装置の制御を依頼する、処理を実行させるプログラムが提供される。
1態様によれば、装置を効率的に制御することができる。
第1の実施の形態に係るシステムの構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 管理サーバのハードウェアの一構成例を示す図である。 管理サーバと実行サーバとの機能を示すブロック図である。 プロセス定義の定義内容の一例を示す図である。 構成情報更新処理の手順の一例を示すフローチャートである。 CMDBのデータ構造の一例を示す図である。 自動化フロー実行処理の手順の一例を示すフローチャートである。 プロセス定義解析処理の手順の一例を示すフローチャートである。 ノード・実行サーバ管理テーブルの一例を示す図である。 自動化フローの第1の例を示す図である。 自動化フローの第2の例を示す図である。 自動化フローの第3の例を示す図である。 自動化フローの第4の例を示す図である。 グルーピング処理の手順の一例を示すフローチャートである。 運用操作部品ノードのグルーピング処理の手順の一例を示すフローチャートである。 並行処理分岐時のグルーピング処理の手順の一例を示すフローチャートである。 条件分岐時のグルーピング処理の手順の一例を示すフローチャートである。 グループ管理テーブルのデータ構造の一例を示す図である。 グルーピングの第1の例を示す図である。 グルーピングの第2の例を示す図である。 グルーピングの第3の例を示す図である。 グルーピングの第4の例を示す図である。 性能解析処理の手順の一例を示すフローチャートである。 通信性能管理テーブルのデータ構造の一例を示す図である。 実行サーバ決定処理の手順の一例を示すフローチャートである。 処理実行サーバ管理テーブルのデータ構造の一例を示す図である。 自動化フロー実行の処理手順の一例を示すフローチャートである。 実行サーバにおける自動化フロー実行処理の手順の一例を示すフローチャートである。 100MByteのファイルを転送するのに要する時間を示す図である。 グルーピングした場合の通信回数の一例を示す図である。 処理時間の短縮効果を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るシステムの構成例を示す図である。第1の実施の形態では、情報処理装置10と複数の制御装置3〜5とが、ネットワーク1を介して接続されている。また複数の制御装置3〜5と複数の制御対象装置6〜8とが、ネットワーク2を介して接続されている。複数の制御装置3〜5には、それぞれの識別子を「A」、「B」、「C」とする。また複数の制御対象装置6〜8には、それぞれの識別子を「a」、「b」、「c」とする。
制御装置3〜5は、情報処理装置10からの依頼に従って、制御対象装置6〜8を制御することができる。例えば制御装置3が制御対象装置6の機能を停止させたり、起動させたりすることができる。情報処理装置10は、制御対象装置6〜8の制御処理を、複数の制御装置3〜5に分散して実行させる。
ここで、制御装置3〜5それぞれと制御対象装置6〜8それぞれとの間のネットワーク2上の距離や通信帯域は様々である。すると、制御対象装置を制御する処理をどの制御装置に実行させるかにより、処理効率が変わってくる。そこで、第1の実施の形態では、ある制御対象装置に対する制御処理は、その制御対象装置との間の通信速度ができるだけ速い制御装置に実行させるようにする。
情報処理装置10は、いずれかの制御対象装置の制御を伴う複数の処理を、複数の制御装置3〜5に分散して実行させる。そして情報処理装置10は、効率よく制御できる制御装置に処理を依頼するため、記憶手段11、収集手段12、選択手段13、および依頼手段14を有している。
記憶手段11は、複数の制御対象装置6〜8を制御する複数の処理の実行手順が定義された定義情報11aを記憶している。例えば定義情報11aには、3つの処理が定義されている。最初の処理(#1)は、識別子「a」の制御対象装置6を制御する処理である。2番目の処理(#2)は、識別子「b」の制御対象装置7を制御する処理である。3番目の処理(#3)は、識別子「c」の制御対象装置8を制御する処理である。
収集手段12は、複数の制御装置3〜4それぞれから、制御対象装置6〜8それぞれとの間の通信速度の情報を収集する。そして収集手段12は、収集した情報をメモリなどの記憶装置に保持する。
選択手段13は、複数の制御対象装置6〜8それぞれと複数の制御装置3〜5それぞれとの間の通信速度に基づいて、複数の制御装置3〜5の中から、複数の制御対象装置6〜8それぞれを制御する制御装置を選択する。例えば選択手段13は、制御対象装置との間の通信速度が最も速い制御装置を、その制御対象装置を制御する制御装置として選択する。なお、選択手段13は、記憶手段11に格納された定義情報11aに基づいて、定義情報11aに定義された複数の処理それぞれについて、処理に従って制御対象装置を制御する制御装置を選択することもできる。
依頼手段14は、選択手段13が選択した制御装置に制御対象装置の制御を依頼する。例えば依頼手段14は、定義情報11aに示された処理順で、複数の処理それぞれについて選択された制御装置に、処理の実行を依頼する。
このようなシステムにより、複数の制御対象装置6〜8を制御する処理を、効率的に制御装置3〜5に分散して実行させることができる。例えば定義情報11aの最初の処理(#1)は、制御対象装置6を制御する処理である。収集手段12が収集した情報を参照すると、複数の制御装置3〜5のうち、制御対象装置6との間の通信速度が最も速いのは、識別子「A」の制御装置3である。そこで選択手段13により、最初の処理(#1)の処理を依頼する依頼先の制御装置として、制御装置3が選択される。すると依頼手段14により、最初の処理(#1)の実行依頼が、制御装置3に送信される。制御装置3は、処理の実行依頼に応じて、制御対象装置6を制御する。同様に、他の処理(#2,#3)についても、選択手段13により、処理対象装置7,8それぞれとの間で最も通信速度が速い制御装置4,5が、処理の依頼先として選択される。そして、依頼手段14により、2番目の処理(#2)の実行依頼が制御装置4に送信され、3番目の処理(#3)の実行依頼が制御装置5に送信される。これにより、定義情報11aに示された一連の処理が、複数の制御装置3〜5によって効率的に分散実行される。
なお、情報処理装置10は、複数の処理のうち、同じ制御装置が選択された、処理順が連続する複数の処理を同じグループにグループ化することもできる。その場合、依頼手段14は、制御の依頼では、同じグループに含まれるすべての処理について共通に選択された制御装置に、グループに含まれるすべての処理の実行をまとめて依頼する。これにより、情報処理装置10と制御装置との間の通信回数を削減し、処理を効率化することができる。
なお定義情報には、順番に実行する複数の処理を含む処理列が複数あり、該複数の処理列を並行して実行することが定義されている場合がある。並行して実行する複数の処理は、別々の制御装置に依頼した方が効率よく分散処理できる。そこで、並行して実行する処理を含む定義情報に基づいて処理をグループ化する場合、情報処理装置10は、例えば、異なる処理列の処理は別のグループにグループ化する。これにより、並行して実行する処理について、グループごとに別々の制御装置に処理の実行を依頼し、効率的な分散処理が可能となる。
さらに定義情報には、順番に実行する複数の処理を含む処理列が複数あり、条件分岐により複数の処理列のうちの1つの処理列を実行することが定義されている場合もある。この場合、情報処理装置10は、例えば、処理列内の処理のうち、処理順が早い方から1以上の処理が、条件分岐直前の処理と同じ制御装置が選択されているかどうかを判断する。そして情報処理装置10は、条件分岐直前の処理と同じ制御装置が選択されている、分岐後の処理列の先頭から1以上の処理を、条件分岐直前の処理と同じグループに含める。これにより、より多くの処理を1つのグループにまとめ、情報処理装置と制御装置との間の通信回数を、さらに削減することができる。
ところで、制御装置に処理を依頼する時点で、依頼先の制御装置が障害などで正常に動作していない場合があり得る。そこで選択手段13は、例えば、処理順となった処理の依頼時に、その処理について選択された制御装置と通信できない場合、前記処理順となった処理以降の処理について、制御装置を再選択してもよい。再選択の差異には、通信できなかった制御装置は、選択対象から除外される。この場合、依頼手段14は、未処理の各処理については、再選択された制御装置に、その処理の実行を依頼する。これにより、定義情報に基づいた処理の実行中に一部の制御装置が故障しても、即座に効率的な処理が可能な依頼先を再選択し、正常に動作している制御装置で処理を継続することができる。
なお、制御対象装置6〜8を制御する処理を、情報処理装置10自身が実施してもよい。例えば、制御対象装置との間の通信速度が最も速い制御装置が該制御対象装置を制御した場合に通信に要する時間よりも、情報処理装置10がその制御対象装置を制御した場合に通信に要する時間の方が短い場合があり得る。このような場合、制御装置に制御を依頼せずに、情報処理装置10が制御対象装置を制御することができる。これにより、より処理効率をさらに高めることができる。
なお、情報処理装置10は、例えばプロセッサやメモリなどを有するコンピュータである。そして収集手段12、選択手段13、および依頼手段14は、例えば情報処理装置10が有するプロセッサにより実現することができる。その場合、収集手段12、選択手段13、および依頼手段14が実行する処理手順を記述したプログラムが提供される。そのプログラムをプロセッサに実行させることで、情報処理装置10の機能が実現される。また、記憶手段11は、例えば情報処理装置10が有するメモリにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
第2の実施の形態は、クラウドコンピューティングが一般的となった現状(クラウド時代)における運用管理を想定したものである。
これまでの運用管理では、管理サーバは、同一ネットワーク内や、同一データセンター内の管理対象サーバの運用管理を実施している。そのため、管理対象サーバ数もさほど大量ではない。
しかし、クラウド時代になり、ICTシステムは目的にあわせてパブリッククラウド、プライベートクラウド、オンプレミスなど、様々な環境を組み合わせて構成される。また、データセンターのグローバル化が進み、管理対象サーバは世界中に存在する。しかも、システム全体の運用の共通化や運用の効率化も進められている。そのため管理対象サーバ数が増加し、1台の管理サーバで管理しきれなくなってきている。例えば、1台の管理サーバで多数の管理対象サーバに対して処理を行うと、管理サーバの負荷が増大し、すべての管理対象サーバへの処理品質を確保することが困難となる。
そこで、ワークフローに基づいて管理サーバが行う運用管理を、複数の実行サーバで代行させることが考えられる。なお、クラウドコンピューティングでは、多くのネットワークを経由して管理対象サーバが接続される。ワークフローによる運用管理の自動化を実施した場合、ワークフロー内で操作する管理対象サーバへのネットワーク上の距離や経由するネットワーク性能により、各管理対象サーバの操作に対するレスポンスにばらつきが発生する。すると、運用管理全体として安定的な処理性能を確保できない。そのため、管理サーバが行う処理の一部を実行サーバに代行させるとしても、その実行サーバと管理対象サーバとの物理的な距離を考慮して、処理を実行される実行サーバを決定するのが適切である。
すなわち、ワークフロー上には、複数のタスク(処理単位)が存在し、タスクに従って、異なる拠点に点在する様々な管理対象サーバの操作が実施される。このとき、ワークフロー全体を実行サーバに分散しても、実行サーバと管理対象サーバ間の通信性能が貧弱で、管理対象サーバの操作が長期化する可能性がある。例えば、管理対象サーバからログファイルを取得する操作がある。このような操作は、通信性能によって処理性能が左右され、例えば実行サーバのプロセッサやメモリの負荷状態だけで処理を分散しても、十分な性能が確保できない。
そこで第2の実施の形態では、管理対象サーバの操作に関する個々の処理を、管理サーバと管理対象サーバ、管理サーバと実行サーバ、および実行サーバと管理対象サーバ、それぞれのネットワーク上の距離をトータルで考慮して、処理を実行するサーバを選択する。
図2は、第2の実施の形態のシステム構成例を示す図である。管理サーバ100は、ネットワーク30を介して実行サーバ200,200a,200b,200c,・・・や管理対象サーバ41,41a,・・・に接続されている。実行サーバ200aは、ネットワーク31を介して管理対象サーバ42,42a,・・・に接続されている。実行サーバ200bは、ネットワーク32を介して管理対象サーバ43,43a,・・・に接続されている。実行サーバ200cは、ネットワーク33を介して管理対象サーバ44,44a,・・・に接続されている。
管理サーバ100は、自動化フローに基づく運用管理を制御するコンピュータである。自動化フローは、ワークフロー形式で処理順が表現されたソフトウェアである。自動化フローでは、処理単位ごとがノードで表されており、ノードごとに異なるサーバで実行可能である。以下、自動化フローを定義する情報を、プロセス定義と呼ぶ。またノードに対応する処理が記述されたプログラムを、運用操作部品と呼ぶ。
管理サーバ100は、自動化フロー全体を効率的に実行できるように、その自動化フローに含まれるノードの処理を実行するサーバを決定する。ノードの処理を実行するサーバは、管理サーバ100または実行サーバ200,200a,200b,200c,・・・である。
実行サーバ200,200a,200b,200c,・・・は、自動化フローのノードのうち、管理サーバ100から指定されたノードの処理を実行するコンピュータである。実行サーバ200,200a,200b,200c,・・・は、ノードに対応するプログラムに従って、管理対象サーバをネットワーク経由で遠隔操作する。
管理対象サーバ41,41a,・・・,42,42a,・・・,43,43a,・・・,44,44a,・・・は、自動化フローの管理対象となる装置である。
図2に示すようなシステムにおける管理サーバ100は、プロセス定義から、操作対象の管理対象サーバを特定し、管理対象サーバに対する通信速度を考慮した上で、ワークフローの処理をネットワーク上の距離が近いサーバで実行するように制御する。また管理サーバ100は、できるだけ長距離の通信を行わないようにするために、自動化フロー内のノードをグルーピングし、グループ単位で処理を実行するように制御する。
なお、管理サーバ100は、図1に示した情報処理装置10の一例である。実行サーバ200,200a,200b,200c,・・・は、図1に示した制御装置3〜5の一例である。管理対象サーバ41,41a,・・・,42,42a,・・・,43,43a,・・・,44,44a,・・・は、図1に示した制御対象装置6〜8の一例である。さらに、第2の実施の形態における管理対象サーバの「操作」とは、第1の実施の形態に示した制御対象装置の「制御」の一例である。
図3は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101の機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク30に接続されている。ネットワークインタフェース108は、ネットワーク30を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお実行サーバ200,200a,200b,200c,・・・や管理対象サーバ41,41a,・・・,42,42a,・・・,43,43a,・・・,44,44a,・・・も管理サーバ100と同様のハードウェアで実現できる。さらに、第1の実施の形態に示した情報処理装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100や実行サーバ200,200a,200b,200c,・・・は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100または実行サーバ200,200a,200b,200c,・・・に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、管理サーバ100と実行サーバ200,200a,200b,200c,・・・との機能について説明する。
図4は、管理サーバと実行サーバとの機能を示すブロック図である。管理サーバ100は、構成情報収集部110、CMDB(Configuration Management DataBase)120、プロセス定義記憶部130、解析部140、実行制御部150、およびフロー実行部160を有する。
構成情報収集部110は、管理サーバ100と実行サーバまたは管理対象サーバと通信して、システム全体の構成に関する情報(構成情報)を収集する。構成情報収集部110は、収集した構成情報をCMDB120に格納する。
CMDB120は、システムの構成情報を管理するデータベースである。例えばメモリ102またはHDD103の記憶領域の一部が、CMDB120として使用される。
プロセス定義記憶部130は、プロセス定義を記憶する。例えばメモリ102またはHDD103の記憶領域の一部がプロセス定義記憶部130として使用される。
解析部140は、プロセス定義を解析して、ノードのグルーピング情報を作成する。そして解析部140は、各ノード・グループの処理を実行するサーバに応じた通信性能を算出する。
実行制御部150は、解析部140が算出した通信性能情報を元に、処理を実行するサーバを決定する。
フロー実行部160は、実行制御部150からの指示に従って、自動化フロー内のノードの処理を実行する。
実行サーバ200は、構成情報収集部210、プロセス定義記憶部220、およびフロー実行部230を有する。なお図4には、実行サーバ200が有する機能を示しているが、他の実行サーバ200a,200b,200c,・・・も同様の機能を有している。
構成情報収集部210は、実行サーバ200から通信できる管理対象サーバの構成情報を収集し、管理サーバ100に送信する。
プロセス定義記憶部220は、プロセス定義を記憶する。例えば実行サーバ200のメモリまたはHDDの記憶領域の一部が、プロセス定義記憶部220として使用される。
フロー実行部230は、管理サーバ100の実行制御部150からの指示に従って、自動化フロー内のノードの処理を実行する。
図4に示したように、実行サーバ200,200a,200b,200c,・・・だけでなく、管理サーバ100もフロー実行部160を有し、自動化フロー内のノードの処理を実行することができる。従って管理サーバ100は、実行サーバとして機能することができる。
なお、プロセス定義記憶部130は、図1に示した記憶手段11の一例である。構成情報収集部110は、図1に示した収集手段12の一例である。解析部140は、図1に示した選択手段13の一例である。実行制御部150は、図1に示した依頼手段14の一例である。また図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、プロセス定義の定義内容について説明する。
図5は、プロセス定義の定義内容の一例を示す図である。プロセス定義50には、自動化フロー51が定義されている。自動化フロー51は、システムの運用管理に関する処理手順を示すワークフローである。自動化フロー51には、複数のノード51a〜51gが定義されている。ノード51aは開始ノードであり、処理の開始位置を示している。ノード51gは、終了ノードであり、処理の終了位置を示している。開始ノードと終了ノードとの間には、処理の実行単位であるノード51b〜51fが接続されている。ノード51b〜51fには、処理内容を記述したプログラムや、その処理で操作対象とする管理対象サーバの識別子などが対応付けられている。なおノードに示される処理のなかには、管理対象サーバの操作を伴わないものがある。そのようなノードには、管理対象サーバの識別子は対応付けられていない。
自動化フロー51に基づいて処理を実行する場合、開始ノードから処理が開始され、接続関係を辿り、到達したノードに対応する処理が実行される。そして終了ノードに到達すると、処理完了となる。
このようなプロセス定義に示された自動化フローを実行する場合、まず、CMDB120内の構成情報が更新される。
図6は、構成情報更新処理の手順の一例を示すフローチャートである。
[ステップS101]管理サーバ100の構成情報収集部110は、実行サーバの構成情報を収集する。
例えば構成情報収集部110は、各実行サーバの構成情報収集部から各管理対象サーバの構成情報を収集し、管理サーバ上のCMDB120に格納する。収集された構成情報には、管理対象サーバ、実行サーバのホスト名、IP(Internet Protocol)アドレスと共に、各実行サーバと各管理対象サーバ間の通信速度情報(bps)が含まれる。
通信速度は、実行サーバの構成情報収集部により、所定のコマンド(例えば「ping」)などを使用して計測される。例えば各実行サーバは、同じネットワークに接続された管理対象サーバとの間の通信速度に加え、複数のネットワークを跨がって接続される管理対象サーバとの間の通信速度も計測する。通信速度の計測にpingを使用した場合、以下のようにして通信速度が算出される。
<手順1>
実行サーバから管理対象サーバに以下のようなコマンドを発行する。
> ping (管理対象サーバのIPアドレス) -l 65000
65000は、転送するコマンドに付与するデータサイズである。このコマンドにより、pingを発行してから応答を受信するまでの時間が計測される。
<手順2>
手順1の処理を各5回くりかえし、結果の平均値を算出する。
<手順3>
以下の計算を実施した結果を速度情報とする。
65000×2/(手順1で得られた値の平均値)=速度情報(bps)
[ステップS102]構成情報収集部110は、管理サーバ100と、各管理対象サーバとの間の通信速度を計測する。例えば構成情報収集部110は、ステップS101でのCMDB120への構成情報格納を契機に、管理サーバ100と管理対象サーバ間の通信速度(bps)を測定し、CMDB120に速度情報を格納する。通信速度の計測方法は、実行サーバによる通信速度の計測方法と同じである。そして構成情報収集部110は、管理対象サーバに対応付けて、管理サーバ100および各実行サーバそれぞれと、その管理対象サーバとの間の通則速度を、CMDB120に格納する。この際、構成情報収集部110は、管理対象サーバごとに、通信速度が速い順に、管理サーバおよび実行サーバを並べ変える。
また構成情報収集部110は、管理サーバ100と各実行サーバとの間の通信速度も計測し、CMDB120に格納する。
このような構成情報更新処理は、運用に合わせ、例えば1日1回など定期的に実施される。これにより、CMDB120内の情報を最新化し、情報の精度を上げることができる。また、管理対象サーバやネットワーク機器の追加、変更があった場合にも更新情報更新処理を実施することで、情報を最新化してもよい。
次にCMDB120のデータ構造について説明する。
図7は、CMDBのデータ構造の一例を示す図である。CMDB120には、要素名(Element Name)、親要素(Parent Element)、要素記述(Element Description)、コンポーネント名(Component Name)、コンポーネントタイプ(Component Type)、コンポーネント記述(Component Description)、データタイプ(Data Type)、データ数(# of)などが定義されている。
要素名は、格納されている要素の名称である。
親要素は、その要素の親要素の名称である。親要素として他の要素が設定されている要素は、その親要素の子要素である。子要素には、親要素に関する情報が設定される。なお親要素として、自分自身の要素名が設定されている場合、その要素が最上位の要素である。
要素記述は、該当要素を説明する文字列である。例えば、サーバノード情報、ネットワーク性能、性能データといった種別が、要素記述に設定される。
コンポーネント名は、要素に含まれる情報(コンポーネント)の名称である。1つの要素に、複数のコンポーネントを含めることができる。コンポーネントとしては、子の要素も含まれる。
コンポーネントタイプは、コンポーネントの種別である。種別として、例えば、対応する要素の属性情報(Attribute)、また子の要素(Element)が設定される。
コンポーネント記述は、コンポーネントを説明する文字列である。コンポーネント記述には、例えば、ユニークな識別子、ホスト名。代表IPアドレス、サーバ間性能情報といった文字列が設定される。
データタイプは、コンポーネントのデータの型である。例えば文字列型のデータであれば、データタイプは「string」である。
データ数は、登録されるデータの数である。
このように管理された各要素のコンポーネントとして、CMDB120内にデータが格納される。CMDB120を参照すれば、例えば実行サーバのホスト名、IPアドレス、通信性能などを把握できる。なおCMDB120内の情報は、例えばXML(Extensible Markup Language )形式で保持できる。
次に、管理サーバ100における自動化フロー実行処理について説明する。
図8は、自動化フロー実行処理の手順の一例を示すフローチャートである。
[ステップS111]解析部140は、プロセス定義を解析する。例えば解析部140は、プロセス定義記憶部130から実行するプロセス定義を読み出す。そして解析部140は、呼び出したプロセス定義の内容と、CMDB120に格納された各サーバ間の通信速度に応じて、自動化フロー内のノードをグルーピングする。なおプロセス定義解析処理の詳細は後述する(図9参照)。
[ステップS112]解析部140は、自動化フローの各ノードの処理を負荷分散で処理させた場合の性能解析を行う。この処理の詳細は後述する(図24参照)。
[ステップS113]実行制御部150は、性能がより高くなるように、自動化フローの各ノードの処理を実行するサーバ(管理サーバまたた実行サーバ)を決定する。この際、同じグループに属するノードは、同じサーバに実行させるようにする。この処理の詳細は後述する(図26参照)。
[ステップS114]実行制御部150は、自動化フローに定義された処理を実行する。この処理の詳細は後述する(図28参照)。
このようにして、自動化フローが実行される。以下、図8に示す各ステップの処理を詳細に説明する。
<プロセス定義解析処理>
図9は、プロセス定義解析処理の手順の一例を示すフローチャートである。
[ステップS121]解析部140は、プロセス定義記憶部130からプロセス定義を取得し、各ノードで操作する管理対象サーバを特定する。例えばプロセス定義では、各ノードに関連付けて、そのノードで操作する管理対象サーバのIPアドレスまたはホスト名が設定されている。解析部140は、ノードごとのIPアドレスまたはホスト名を取得して、各ノードで操作する管理対象サーバを認識する。
[ステップS122]解析部140は、操作対象の管理対象サーバを通信可能な実行サーバのリストを取得する。例えば解析部140は、ステップS121で取得したIPアドレスまたはホスト名を検索キーとして、CMDB120から管理対象サーバを検索する。そして解析部140は、該当する管理対象サーバの構成情報をCMDB120から取得する。管理対象サーバの構成情報には、その管理対象サーバを遠隔操作可能な実行サーバのリストや、その実行サーバと管理対象サーバとの間の通信速度が含まれる。
[ステップS123]解析部140は、ステップS121で特定された管理対象サーバを遠隔操作可能な実行サーバのうち、最も通信性能のよい実行サーバを、その管理対象サーバに関連付ける。例えば解析部140は、ステップS122で取得したリストに含まれる実行サーバのうちの起動している各実行サーバと管理対象サーバとの間の通信速度を比較する。そして解析部140は、最も通信速度が速い実行サーバを、管理対象サーバに関連付けてノード・実行サーバ管理テーブルに登録する。
[ステップS124]解析部140は、ノードのグルーピングを行う。この処理の詳細は後述する(図15参照)。
このようにして、プロセス定義が解析される。なおステップS123では、以下のようなノード・実行サーバ管理テーブルが生成される。
図10は、ノード・実行サーバ管理テーブルの一例を示す図である。ノード・実行サーバ管理テーブル141には、ノード名、実行サーバ、およびノードの種類の欄が設けられている。
ノード名の欄には、自動化フローに含まれるノードの名称が設定される。実行サーバの欄には、各ノードの処理を実行する実行サーバの名称が設定される。なおノードには、管理対象サーバの操作を行うものと、管理対象サーバの操作を伴わないものとがある。管理対象サーバの操作を伴わないノードとしては、例えば、実行結果として得られたデータの加工処理を行うノードがある。管理対象サーバの操作を伴わないノードは、どのサーバで実行してもよい。そのため、管理対象サーバの操作を伴わないノードの実行サーバの欄には、サーバを問わないことを示す情報(例えばアスタリスク)が設定される。
ノードの種類の欄には、ノードの種類が設定される。ノードの種類には、開始(start)、終了(end)、運用操作部品、複数条件分岐などがある。開始ノードは、自動化フローの開始点となるノードである。終了ノードは、自動化フローの終点となるノードである。運用操作部品は、サーバに何らかの処理を実行させるノードである。複数条件分岐は、条件分岐の判断処理を行う運用操作部品である。
このようなノード・実行サーバ管理テーブル141を参照して、ノードのグルーピングが行われる。例えばクラウドコンピューティングのようなネットワーク上の距離が遠い環境では、通信の回数を極力減らすことが重要である。そのため解析部140は、同一のサーバで実行可能なノードをグルーピングし、グループ単位でノードの処理の実行を依頼することで、管理ノードと実行サーバとの間の通信回数を低減する。
例えば解析部140は、プロセス定義に記載された自動化フローの実行順序の情報から、同一のサーバで連続して実行するノードをノード群としてグルーピングする。詳細には、以下のような手順でグルーピングが行われる。なお以下の処理では、ノードの実行順に名前を付け、n番目(nは1以上の整数)のノードをノード(n)、n+1番目ノードをノード(n+1)と呼ぶ。
図11は、自動化フローの第1の例を示す図である。図11に示す自動化フロー52は、運用操作部品が連続する場合の例であり、複数のノード52a,42b,52c,52dが直列に接続されている。図中、左側のノードから順に、処理が実行されるものとする。
このような自動化フロー52では、ノード(n)とノード(n+1)とのそれぞれに関連付けられた実行サーバが比較される。実行サーバが一致する場合、または、どちらが実行サーバを問わない場合、ノード(n)とノード(n+1)とが同一グループにグルーピングされる。そのグループには、ノード(n)とノード(n+1)とに関連付けられた実行サーバが関連付けられる。
例えばノード(n)の情報が既にグループ管理テーブルに存在する場合は、ノード(n)と同じグループにノード(n+1)が追加される。またノード(n)の情報が既にグループ管理テーブルに存在しない場合は、ノード(n)とノード(n+1)とを含む新しいグループが生成され、グループ管理テーブルに追加される。
図12は、自動化フローの第2の例を示す図である。図12に示す自動化フロー53では、ノード53aから並行処理分岐ノード53bを介して、複数のルートに分岐している。各ルートには、複数のノードが含まれており、一連の処理列が定義されている。図12の例では、一方のルートではノード53c,53dが実行され、他方のルートではノード53e,53fが実行される。これらの2つのルートは、並行して実行される。
このような自動化フロー53の場合、ノード(n)が属するグループを判定する際に、ノード(n+1)の情報が取得される。図12の例では、複数のノード53c,53eが、ノード(n+1)に該当する。この場合、ルートごとに、個別に、運用操作部品が連続する場合と同様の論理に従ってグルーピングが行われる。例えばノード53dに関連付けられた実行サーバが、ノード53cに関連付けられた実行サーバと共通であれば、ノード53cとノード53dとを含むグループが生成される。同様に、ノード53fに関連付けられた実行サーバが、ノード53eに関連付けられた実行サーバと共通であれば、ノード53eとノード53fとを含むグループが生成される。
図13は、自動化フローの第3の例を示す図である。図13に示す自動化フロー54では、2つのルートで並列に処理されていた複数のノード54a,54bを、同期ノード54cで同期させ、ノード54d,54eを実行するものである。ここで同期させるとは、複数の系統で並行して実行されていた処理がすべて完了するのを待って、次の処理の実行を開始することである。
グループを判断する対象となったノード(n)が同期ノード54cであれば、同期ノード54cはどのグループに含められない。すなわち、ノード(n−1)に該当する複数のノード54a,54bそれぞれと同期ノード54cとが別グループであれば、複数のノード54a,54bそれぞれを実行したサーバは、実行完了を管理サーバ100に通知することになる。そこで例えば同期ノード54cを管理サーバ100が実行することにより、複数のルートで並行して実行された処理がすべて完了したかの判断が可能となる。
図14は、自動化フローの第4の例を示す図である。図14に示す自動化フロー55では、ノード55aの次に条件分岐ノード55bを介して複数のルートに処理が分岐している。1つ目のルートではノード55c,55dが実行され、2つ目のルートではノード55e,55fが実行され、3つ目のルートではノード55g,55hが実行され、4つ目のルートではノード55i,55jが実行される。条件分岐ノード55bでは、複数の分岐先のルートのうちの1つが選択され、選択されたルートのノードのみが実行される。
このような自動化フロー55では、分岐前のノード55aの処理結果によって分岐先が変わる。そのため、以下のようなグルーピングが行われる。
まずノード(n−1)の情報とノード(n+1)の情報とが、ノード・実行サーバ管理テーブル141から取得される。なお分岐後のノード(n+1)に該当するノードは複数存在する。
ここで、ノード(n−1)が既にグループ管理テーブルに存在する場合、ノード(n−1)を含むグループに関連付けられた実行サーバの情報が取得され、ノード(n+1)に関連付けられた実行サーバの情報と比較される。実行サーバが一致している場合は、ノード(n−1)が存在するグループに対して、ノード(n)、ノード(n+1)が追加される。一致しない場合は、グルーピングせずに、ノード(n+1)から新たにグルーピングの判断が行われる。
ノード(n−1)がグループ管理テーブルに存在しない場合、ノード(n−1)に関連付けられた実行サーバの情報が取得され、ノード(n+1)に関連付けられた実行サーバの情報と比較される。実行サーバが一致している場合は、ノード(n−1)、ノード(n)、ノード(n+1)が新規グループとしてグループ管理テーブルに追加される。一致しない場合は、グルーピングせずに、n+1番目のノードから新たにグルーピングの判断が行われる。
分岐後の各ルートでは、運用操作部品が連続する場合と同様に、判断対象のノードが、直前のノードと同じサーバで実行されるのであれば、判断対象のノードが、直前のノードと同じグループに追加される。
このようなグルーピングの処理手順は以下の通りである。
図15は、グルーピング処理の手順の一例を示すフローチャートである。
[ステップS131]解析部140は、nに1を設定し、自動化フローの先頭のノードから解析を開始する。
[ステップS132]解析部140は、ノード・実行サーバ管理テーブル141から、ノード(n)の情報を取得する。
[ステップS133]解析部140は、ノード(n)の種類が開始ノードか否かを判断する。開始ノードであれば処理がステップS142に進められる。開始ノードでなければ、処理がステップS134に進められる。
[ステップS134]解析部140は、ノード(n)の種類が同期ノードか否かを判断する。同期ノードは、複数に分岐して並行実行された処理を同期させて、1系統に戻すノードである。同期ノードであれば、処理がステップS142に進められる。同期ノードでなければ、処理がステップS135に進められる。
[ステップS135]解析部140は、ノード(n)の種類が運用操作部品か否かを判断する。運用操作部品であれば、処理がステップS136に進められる。運用操作部品でなければ、処理がステップS137に進められる。
[ステップS136]ノード(n)の種類が運用操作部品であれば、解析部140は、運用操作部品ノードのグルーピング処理を実行する。この処理の詳細は後述する(図16参照)。その後、処理がステップS132に進められる。
[ステップS137]解析部140は、ノード(n)の種類が並行処理分岐ノードか否かを判断する。並行処理分岐ノードであれば、処理がステップS138に進められる。並行処理分岐ノードでなければ、処理がステップS139に進められる。
[ステップS138]ノード(n)が並行処理分岐ノードであれば、解析部140は、並行処理分岐時のグルーピング処理を実行する。この処理の詳細は後述する(図17参照)。その後、処理がステップS132に進められる。
[ステップS139]解析部140は、ノード(n)の種類が条件分岐ノードか否かを判断する。条件分岐ノードであれば、処理がステップS140に進められる。条件分岐ノードでなければ、処理がステップS141に進められる。
[ステップS140]ノード(n)が条件分岐ノードであれば、解析部140は、条件分岐時のグルーピング処理を実行する。この処理の詳細は後述する(図18参照)。その後、処理がステップS132に進められる。
[ステップS141]解析部140は、ノード(n)の種類が終了ノードか否かを判断する。終了ノードであれば、グルーピング処理が終了する。終了ノードでなければ、処理がステップS142に進められる。
[ステップS142]解析部140は、nに1を加算し、処理をステップS132に進める。
このようにして、ノードの種類に応じたグルーピング処理が行われる。以下、種類ごとのグルーピング処理について詳細に説明する。
まず運用管理部品ノードに関するグルーピング処理について説明する。
図16は、運用操作部品ノードのグルーピング処理の手順の一例を示すフローチャートである。
[ステップS151]解析部140は、ノード・実行サーバ管理テーブル141から、ノード(n+1)の情報を取得する。
[ステップS152]解析部140は、ノード(n)に関連付けられた実行サーバと、ノード(n+1)に関連付けられた実行サーバとを比較する。実行サーバが一致した場合、処理がステップS153に進められる。一致しない場合、処理がステップS156に進められる。なお、比較するノードの少なくとも一方について、実行サーバを問わない場合、実行サーバが一致するものと判定される。
[ステップS153]解析部140は、実行サーバが一致する場合、グループ管理テーブルにノード(n)が属するグループが存在するか否かを判断する。該当するグループが存在すれば、処理がステップS154に進められる。該当するグループが存在しなければ、処理がステップS155に進められる。
[ステップS154]解析部140は、グループ管理テーブル内のノード(n)と同じグループに、ノード(n+1)を追加する。その後、処理がステップS156に進められる。
なおノード(n)が複数のグループに含まれる場合もある。例えば途中で条件分岐ノードがある場合、分岐した複数のルートが合流した後のノードは、複数のグループに含まれることがあり得る(図23参照)。ノード(n)が複数のグループに含まれる場合は、ステップS154の処理では、ノード(n+1)も複数のグループに追加される。
[ステップS155]解析部140は、ノード(n)とノード(n+1)とを含むグループを作成し、グループ管理テーブルに追加する。その後、処理がステップS156に進められる。
[ステップS156]解析部140は、nに1を加算し、運用管理部品ノードのグルーピング処理を終了する。
次に、並行処理分岐時のグルーピング処理について説明する。
図17は、並行処理分岐時のグルーピング処理の手順の一例を示すフローチャートである。
[ステップS161]解析部140は、m(1以上の整数)にn+1を設定する。
[ステップS162]解析部140は、nにmの値を設定する。
[ステップS163]解析部140は、n番目の複数のノードそれぞれから開始される複数のルートのうち、未処理のルートを選択する。例えば解析部140は、並行して実行する区間に含まれるノード数が少ないルートから順に選択する。そして解析部140は、選択したルートのノード(n)の情報を、ノード・実行サーバ管理テーブル141から取得する。
[ステップS164]解析部140は、選択したルート内のノード(n)について、運用操作部品のグルーピング処理と同様の処理により、グルーピングを行う。
[ステップS165]解析部140は、同一ルートの最後のノードの処理が完了したか否かを判断する。同一ルート内の最後のノードの処理が完了した場合、処理がステップS166に進められる。最後のノードの処理が完了していなければ、処理がステップS164に進められる。
[ステップS166]解析部140は、並行処理を行う複数のルートのなかに、未処理のルートがあるか否かを判断する。未処理のルートがあれば、処理がステップS162に進められる。未処理のルートがなければ、並行処理分岐ノードのグルーピング処理が終了する。
次に、条件分岐時のグルーピング処理について説明する。
図18は、条件分岐時のグルーピング処理の手順の一例を示すフローチャートである。
[ステップS171]解析部140は、現在のnの値を、mに設定する。
[ステップS172]解析部140は、ノード・実行サーバ管理テーブル141から、ノード(n−1)の情報を取得する。すなわち解析部140は、条件分岐ノードの直前のノードの情報を取得する。以後、このノードをノードWとする。
[ステップS173]解析部140は、条件分岐後の複数のルートのうち、未処理のルートを1つ選択する。例えば解析部140は、ノード数が少ないルートから順に選択する。
[ステップS174]解析部140は、ノード・実行サーバ管理テーブル141から、選択したルートにおけるノード(n+1)の情報を取得する。なお、各ルートのノードには、分岐したルートの合流点のノード(図23のノード59m)とその次のノード(図23のノード59n)とを含めるものとする。これにより、合流点のノードとその次のノードは、複数のグループに含まれる可能性が生まれる。同じルート内にノード(n+1)に該当するノードが存在しない場合、ノード(n+1)の情報はなし(Null)となる。
[ステップS175]解析部140は、グループ管理テーブルに、ノードWを含むグループがあるか否かを判断する。該当するグループが存在すれば、処理がステップS176に進められる。該当するグループがなければ、処理がステップS180に進められる。
[ステップS176]ノードWを含むグループがある場合、ノードWを含むグループに関連付けられた実行サーバの情報を、グループ管理テーブルから取得する。
[ステップS177]解析部140は、ノードWを含むグループに関連付けられた実行サーバが、ノード(n+1)に関連付けられた実行サーバと同じか否かを判断する。実行サーバが一致すれば、処理がステップS178に進められる。実行サーバが異なれば、処理がステップS184に進められる。なお、比較するグループとノードとの少なくとも一方について、実行サーバを問わない場合、実行サーバが一致するものと判定される。またステップS174でノード(n+1)の情報が取得できなかった場合は、実行サーバは一致しないと判定される。
[ステップS178]解析部140は、ノードWと同じグループに、ノード(n+1)を追加する。
[ステップS179]解析部140は、nに1を加算し、処理をステップS174に進める。
[ステップS180]ノードWを含むグループがない場合、解析部140は、ノードWに関連付けられた実行サーバの情報を、グループ管理テーブルから取得する。
[ステップS181]解析部140は、ノードWに関連付けられた実行サーバが、ノード(n+1)に関連付けられた実行サーバと同じか否かを判断する。実行サーバが一致すれば、処理がステップS182に進められる。実行サーバが異なれば、処理がステップS184に進められる。なお、比較するノードの少なくとも一方について、実行サーバを問わない場合、実行サーバが一致するものと判定される。またステップS174でノード(n+1)の情報が取得できなかった場合は、サーバは一致しないと判定される。
[ステップS182]解析部140は、ノードWとノード(n+1)とを含むグループを作成する。
[ステップS183]解析部140は、nに1を加算し、処理をステップS174に進める。
[ステップS184]ノードWを含むグループまたはノードWに関連付けられた実行サーバと、ノード(n+1)に関連付けられた実行サーバとが異なる場合、解析部140は、nに1を加算し、処理をステップS185に進める。
[ステップS185]解析部185は、選択したルートの処理が終了したかどうかを判断する。例えば、ノード(n)が、選択したルートの最後のノードであれば、そのルートの処理が完了したと判定される。選択したルートの処理が完了した場合、処理がステップS187に進められる。選択したルートの処理が完了していなければ、処理がステップS186に進められる。
[ステップS186]解析部140は、選択したルート内のノードに関して、運用部品ノードのグルーピング処理を行う(図16参照)。その後、処理がステップS185に進められる。
[ステップS187]解析部140は、条件分岐ノードで分岐した後のすべてのルートについて処理が完了したか否かを判定する。すべてのルートの処理が完了した場合、条件分岐時のグルーピング処理が終了する。未処理のルータがある場合、処理がステップS188に進められる。
[ステップS188]解析部140は、mの値をnに設定する。これにより、再度、条件分岐ノードがノード(n)となる。その後、処理がステップS173に進められる。
以上のようにして、自動化フロー内のノードのグルーピングが行われる。そしてグルーピングの結果が、グループ管理テーブルに設定される。なおグループ管理テーブルは、例えばメモリ102内に格納される。
図19は、グループ管理テーブルのデータ構造の一例を示す図である。グループ管理テーブル142には、グループID、ノード名、および実行サーバの欄が設けられている。
グループIDの欄には、グループを一意に識別する識別子(グループID)が設定される。ノード名の欄には、グループに含まれる2以上のノードの名称が設定される。実行サーバの欄には、グループに含まれるノードに関連付けられた実行サーバの名称が設定される。
次に、グルーピング結果の例を、図20〜図23を参照して説明する。なお図20〜図23では、各ノード内に、そのノードに割り当てられた実行サーバの名称を示している。
図20は、グルーピングの第1の例を示す図である。図20に示す自動化フロー56には、開始ノード56aから終了ノード56gまでに、1つずつ順番に処理が実行される5つのノード56b〜56fが含まれている。ノード56bには管理対象サーバ45aを操作する処理が定義されており、ノード56bの処理を実行するのは、実行サーバ「A」である。ノード56cには管理対象サーバ45bを操作する処理が定義されており、ノード56cの処理を実行するのは、実行サーバ「A」である。ノード56dには管理対象サーバ45cを操作する処理が定義されており、ノード56dの処理を実行するのは、実行サーバ「B」である。ノード56eには管理対象サーバ45dを操作する処理が定義されており、ノード56eの処理を実行するのは、実行サーバ「C」である。ノード56fには管理対象サーバ45eを操作する処理が定義されており、ノード56fの処理を実行するのは、実行サーバ「C」である。
この場合、運用操作部品ノードのグルーピング処理(図16参照)によってグルーピングが行われる。すなわち、共通のサーバで処理が実行されるノードが連続している場合、それらのノードが同じグループに纏められる。図20の例では、ノード56bとノード56cとを含むグループ「G1」と、ノード56eとノード56fとを含むグループ「G2」が生成されている。
図21は、グルーピングの第2の例を示す図である。図21に示す自動化フロー57には、開始ノード57aから終了ノード57gまでに、1つずつ順番に処理が実行される5つのノード57b〜57fが含まれている。ノード57bには管理対象サーバ46aを操作する処理が定義されており、ノード57bの処理を実行するのは、実行サーバ「A」である。ノード57cには管理対象サーバ46bを操作する処理が定義されており、ノード57cの処理を実行するのは、実行サーバ「A」である。ノード57dには管理対象サーバの操作を含まない処理が定義されており、ノード57dの処理を実行するのは、実行サーバ「A」である。ノード57eには管理対象サーバ46cを操作する処理が定義されており、ノード57eの処理を実行するのは、実行サーバ「B」である。ノード57fには管理対象サーバ46dを操作する処理が定義されており、ノード57fの処理を実行するのは、実行サーバ「B」である。
この場合、運用操作部品ノードのグルーピング処理(図16参照)によってグルーピングが行われる。すなわち、管理対象サーバを操作しない処理について、直前のノードと同じグループに含められる。図21の例では、ノード57b〜57dを含むグループ「G3」と、ノード57eとノード57fとを含むグループ「G4」が生成されている。
なお図21の例では、管理対象サーバを操作しない処理に関するノード57dは、前のノード57cと同じグループに含まれているが、ノード57dを、次のノード57eと同じグループに入れてもよい。
図22は、グルーピングの第3の例を示す図である。図22には、並列処理分岐ノードを含む自動化フロー58の例が示されている。
自動化フロー58では、開始ノード58aの次に並列処理分岐ノード58bが設けられている。並列処理分岐ノード58bからは、ノード58d〜58fを処理するルートと、ノード58g〜58iを処理するルートとの2つのルートに処理が分かれる。2つのルートの処理は、並行して実行される。2つに分かれたルートは同期ノード58jで合流し、最後のノード58kの処理が実行される。ノード58kの次は、終了ノード58lである。なお、図22では、各ノードの処理で操作する管理対象サーバを省略しているが、ノード58d〜58i,58kの処理は、管理対象サーバを操作する処理である。
ノード58d〜58fそれぞれの処理を実行するのは、実行サーバ「A」である。ノード58g,58hそれぞれの処理を実行するのは、実行サーバ「B」である。ノード58i,58kそれぞれの処理を実行するのは、実行サーバ「C」である。
このように途中で並行処理分岐をするような自動化フロー58の場合、図18に示した手順に従いグルーピングが行われる。すなわち分岐前後および、合流前後ではグルーピングは行われず、分岐後の個別のルート処理内でグルーピングが行われる。図22の例では、分岐後のノード58d〜58fの処理は共に実行サーバ「A」で実行されるため、1つのグループ「G5」にグルーピングされている。またノード58g,58hの処理は共に実行サーバ「B」で実行されるため、1つのグループ「G6」にグルーピングされている。ノード58iとノード58kとの処理は、処理順としては連続しており、双方とも実行サーバ「C」で実行されるが、同期ノード58jを挟むため、グルーピングされていない。
図23は、グルーピングの第4の例を示す図である。図23には、条件分岐ノードを含む自動化フロー59の例が示されている。
自動化フロー59では、開始ノード59aの次に運用操作部品のノード59bがあり、その次に条件分岐ノード59cが設定されている。条件分岐ノード59cからは、3つのルートが設けられており、条件分岐ノード59cにおける条件判断の結果に基づいて、いずれか1つのルートの処理が実行される。1つ目のルートは、ノード59d〜59fの処理を実行するルートである。2つ目のルートは、ノード59g〜59iの処理を実行するルートである。3つ目のルートは、ノード59j〜59lの処理を実行するルートである。これらのルートは、ノード59mで合流し、ノード59nの処理が実行される。ノード59nの次は、終了ノード59oである。なお、図23では、各ノードの処理で操作する管理対象サーバを省略しているが、ノード59b,59d〜59l,59nの処理は、管理対象サーバを操作する処理である。
ノード59b,59d〜59gそれぞれの処理を実行するのは、実行サーバ「A」である。ノード59j,59kそれぞれの処理を実行するのは、実行サーバ「B」である。ノード59h,59i,59l,59nそれぞれの処理を実行するのは、実行サーバ「C」である。
このように途中で条件分岐するような自動化フロー59の場合、条件分岐の後は、複数のルートがあり、どのルートが動作するかは実行時に分岐ノードに到達するまでわからない。この場合、条件分岐前のノード59bの処理を実行するサーバと、条件分岐後のノード59d,59g,59jそれぞれの処理を実行するサーバとが比較され、サーバが一致するノードがまとめてグルーピングされる。
図23の例では、1つ目のルートについては、すべてのノード59d〜59fについて、処理を実行するサーバが、分岐前のノード59bの処理を実行するサーバと一致する。そのため、ノード59bとノード59d〜59fとは、同じグループ「G7」に含められている。2つ目のルートでは、ノード59gの処理を実行するサーバは分岐前のノード59bの処理を実行するサーバと一致するが、その次のノード59hの処理を実行するサーバは分岐前のノード59bの処理を実行するサーバと異なる。そこで2つ目のルート内のノード59g〜59iのうち、ノード59gのみが、ノード59bと同じグループ「G7」に含められている。3つ目のルートでは、ノード59jの処理を実行するサーバが分岐前のノード59bの処理を実行するサーバと異なる。そのため3つ目のルート内のノード59j〜59iは、グループ「G7」に含められていない。なお条件分岐ノード59cは、例えば、分岐前のノード59bと同じグループ「G7」に含められる。
2つ目のルートのうち、ノード59h、59iは、処理を実行するサーバが一致するため、同じグループ「G8」に含められている。3つ目のルートのうち、ノード59j、59kは、処理を実行するサーバが一致するため、同じグループ「G9」に含められている。
複数のルートが合流した後のノード59nの処理を実行するサーバは、2つ目のルートの最後のノード59iの処理を実行するサーバと一致する。そのためノード59nは、ノード59iと同じグループ「G8」に含められている。またノード59nの処理を実行するサーバは、3つ目のルートの最後のノード59lの処理を実行するサーバとも一致する。そこで、ノード59lとノード59nとを含むグループ「G10」が生成されている。すなわち、ノード59nは、2つのグループに重複してグルーピングされている。
なお複数のルートの合流部のノード59mは、例えば次のノード59nと同じグループに含められる。
図23のようにグルーピングされると、実行時の遷移先が、ノード59d,59gの2つのルートの場合は、管理サーバ100に処理結果を返す必要がなく、通信回数を削減することができる。
以上のように、実行するサーバが共通のノードを同じグループにグルーピングすることで、管理サーバと実行サーバとの間の通信回数を減らすことができる。その結果、処理の効率化が図れる。
<性能解析処理>
次に、性能解析処理について詳細に説明する。
図24は、性能解析処理の手順の一例を示すフローチャートである。
[ステップS201]解析部140は、自動化フローに含まれる運用操作部品ごとの通信回数を取得する。そして解析部140は、取得した通信回数を変数iに設定する。
例えば解析部140には、運用操作部品の種類ごとに、その運用操作部品の処理に含まれる管理対象サーバとの間の通信回数が定義されている。定義内容は、例えばメモリ102またはHDD103内に予め保持されている。解析部140は、運用操作部品の種別を判断し、その種別に対応付けて設定された通信回数を、メモリ102などから取得する。なお運用操作部品の種類ごとの通信回数は、ユーザが任意に設定することができる。例えば、ユーザが作成した運用操作部品については、その運用操作部品の通信回数をユーザが定義する。
[ステップS202]解析部140は、自動化フローで操作対象となる各管理対象サーバに管理サーバ100から通信し、管理サーバ100が管理対象サーバを操作する場合の通信速度を、CMDB120から取得する。ここで、管理サーバが管理対象サーバを操作する場合の通信速度をSaとする。
[ステップS203]解析部140は、自動化フローで操作対象となる各管理対象サーバに、各実行サーバから通信してその管理対象サーバを操作する場合の通信速度を、CMDB120から取得する。ここで、実行サーバが管理対象サーバを操作する場合の通信速度をSbとする。
[ステップS204]解析部140は、管理サーバと実行サーバとの間の通信速度を、CMDB120から取得する。ここで、管理サーバと実行サーバとの間の通信速度をScとする。
[ステップS205]解析部140は、ノード・グループごとに管理サーバ100から管理対象サーバを直接操作した場合の通信性能を計算する。この計算は、自動化フローにおいて操作対象となるすべての管理対象サーバについて行われる。通信性能は、例えば以下のような式で計算される。
・グループに含まれないノードの場合
計算対象のノードで表される運用操作部品の処理パケット長をXとする。この場合、そのノードの通信性能は以下の式で計算される。
X/Sa×i ・・・(1)
式(1)における通信速度Saは、管理サーバと、計算対象のノードの処理で操作する管理対象サーバとの間の通信速度である。
・複数のノードを含むグループの場合
グループ内のノードの数をk(kは1以上の整数)として、各ノードで表される運用操作部品の処理パケット長を{X1,X2,・・・,Xk}とする。このときグループ内の処理を実行する際の通信性能は、以下の式で計算される。
{X1/Sa×i}+{X2/Sa×i}+・・・+{Xk/Sa×i} ・・・(2)
式(2)における通信速度Saは、管理サーバと、計算対象のグループの処理で操作する管理対象サーバとの間の通信速度である。
[ステップS206]解析部140は、管理サーバ100から実行サーバに自動化フローの制御を移したあとに、実行サーバから管理対象サーバを操作した場合の通信性能を計算する。この計算は、管理サーバと管理対象サーバとのすべての組み合わせについて行われる。通信性能は、例えば以下のような式で計算される。
・グループに含まれないノードの場合
実行サーバへのフロー実行要求パケットのパケット長をY、実行サーバから管理サーバへのフロー実行完了通知パケットのパケット長をZとする。この場合、そのノードの通信性能は以下の式で計算される。
Y/Sc+X/Sb×i+Z/Sc ・・・(3)
式(3)における通信速度Sbは、計算対象のノードに関連付けられた実行サーバと、そのノードの処理で操作する管理対象サーバとの間の通信速度である。式(3)における通信速度Scは、管理サーバと、計算対象のノードに関連付けられた実行サーバとの間の通信速度である。
・複数のノードを含むグループの場合
{Y/Sc}+{X1/Sb×i}+{X2/Sb×i}+・・・+{Xn/Sb×i}+{Z/Sc} ・・・(4)
式(4)における通信速度Sbは、計算対象のグループに関連付けられた実行サーバと、そのグループの処理で操作する管理対象サーバとの間の通信速度である。式(4)における通信速度Scは、管理サーバと、計算対象のグループに関連付けられた実行サーバとの間の通信速度である。
なお実行サーバに制御を移す場合において、グループが構成されている場合は、そのグループ内のノード群それぞれの処理を実行する実行サーバは同じである。そのため、実行サーバへのフロー実行要求とフロー実行完了通知とは、それぞれ1度ずつで済む。
なお、各運用操作部品の処理パケット、実行サーバへのフロー実行要求パケット、実行サーバから管理サーバへのフロー実行完了通知パケットそれぞれのパケット長については、例えば予め計測した値が設定される。また運用に伴って実施した操作の際にパケット長を計測し、各パケット長の値を更新することもできる。運用に伴ってパケット長を動的に更新することで、精度を上げることが可能である。
以上のようにして、通信性能が計算される。上記に示した計算式では、通信性能がよいほど、計算結果の値が小さくなる。計算された通信性能は、例えば通信性能管理テーブルとしてメモリ102内に格納される。
図25は、通信性能管理テーブルのデータ構造の一例を示す図である。通信性能管理テーブル143には、ノード・グループ、実行サーバからの性能、管理サーバからの性能の欄が設けられている。ノード・グループの欄には、ノードまたはグループの名称が設定される。実行サーバからの性能の欄には、実行サーバから管理対象サーバを操作する場合の通信性能が設定される。管理サーバからの性能の欄には、管理サーバから管理対象サーバを操作する場合の通信性能が設定される。
<実行サーバ決定>
解析部140で通信性能が算出されると、実行制御部150は、実行する自動化フローのノードまたはグループそれぞれについて、処理を実行するサーバを決定する。
図26は、実行サーバ決定処理の手順の一例を示すフローチャートである。
[ステップS301]実行制御部150は、通信性能管理テーブル143を参照し、通信性能を取得する。
[ステップS302]実行制御部150は、ノードまたはグループごとに、通信性能が高いサーバ(管理サーバ100または実行サーバ)を、処理を実行するサーバ(処理実行サーバ)に決定する。例えば実行制御部150は、ノードまたはグループに対応付けられた実行サーバからの通信性能と、管理サーバ100からの通信性能とを比較する。実行サーバからの通信性能の方が高ければ(値が小さければ)、そのノードまたはグループに関連付けられた実行サーバを、処理実行サーバに決定する。また管理サーバ100からの通信性能の方が高ければ(値が小さければ)、管理サーバ100を、処理実行サーバに決定する。そして実行制御部150は、決定内容を、例えば処理実行サーバ管理テーブルとしてメモリ102に格納する。
図27は、処理実行サーバ管理テーブルのデータ構造の一例を示す図である。処理実行サーバ管理テーブル144には、ノード・グループと処理実行サーバとの欄が設けられている。ノード・グループの欄には、実行する自動化フローのノードのうちのグループに含まれないノードの名称と、その自動化フローから生成されたグループの名称とが設定される。処理実行サーバの欄には、ノードまたはグループの処理を実行するサーバの名称が設定される。処理を実行するサーバは、管理サーバまたはいずれかの実行サーバである。実行サーバが処理を実行する場合、その実行サーバの識別子が処理実行サーバの欄に設定される。
<自動化フロー実行>
次に自動化フローの実行処理について説明する。自動化フローの実行処理は、管理サーバ100の実行制御部150による自動化フロー実行処理と、制御の移転を受けた実行サーバでの自動化フロー実行処理とに分かれる。
図28は、自動化フロー実行の処理手順の一例を示すフローチャートである。
[ステップS401]実行制御部150は、自動化フローのノードのうちの、次に実行するノードの情報を、プロセス定義記憶部130から取得する。
[ステップS402]実行制御部150は、次に実行するノードが終了ノードか否かを判断する。終了ノードであれば、自動化フロー実行指示の処理が終了する。終了ノードでなければ、処理がステップS403に進められる。
[ステップS403]実行制御部150は、処理実行サーバ管理テーブル144とグループ管理テーブル142を参照し、次に実行するノードの処理実行サーバの情報を取得する。例えば実行制御部150は、次に実行するノードがグループに含まれていなければ、処理実行サーバ管理テーブル144で対応付けられている管理サーバまたは実行サーバを、処理実行サーバと認識する。また実行制御部150は、次に実行するノードがグループに含まれている場合、グループ管理テーブル142を参照し、そのノードを含むグループのグループIDを認識する。次に実行制御部150は、そのグループに対して、処理実行サーバ管理テーブル144で対応付けられている管理サーバまたは実行サーバを、処理実行サーバと認識する。
[ステップS404]実行制御部150は、実行サーバに自動化フローの実行制御を移転するか否かを判断する。例えば実行制御部150は、処理実行サーバが実行サーバであれば、実行サーバへ制御を移転するものと判断する。また実行制御部150は、処理実行サーバが管理サーバ100であれば、実行サーバへの制御の移転は行わないものと判断する。制御を移転する場合、処理がステップS406に進められる。制御を移転しない場合、処理がステップS405に進められる。
[ステップS405]実行制御部150は、管理サーバ100内のフロー実行部160に、次に実行するノードの処理を実行させる。なお、次に実行するノードがいずれかのグループに含まれる場合、実行制御部150は、そのグループに含まれるすべてのノードの処理を、フロー実行部160に実行させる。フロー実行部160は、実行制御部150からの指示に従って、ノードの処理を実行する。その後、処理がステップS401に進められる。
[ステップS406]実行制御部150は、次に実行するノードまたはそのノードを含むグループの処理の実行を、処理実行サーバである実行サーバに依頼する。例えば実行制御部150は、自動化フローにおいて、処理を依頼するノードまたはグループの次に、管理サーバ100に制御を戻す手順を定義したノードを追加する。そして実行制御部150は、次に実行するノードから追加したノードまでの処理を、実行サーバに依頼する。
[ステップS407]実行制御部150は、ステップS406の処理において、実行サーバに通信が接続できたか否かを判断する。接続できた場合、処理がステップS408に進められる。接続できなかった場合、処理がステップS410に進められる。
[ステップS408]実行制御部150は、実行サーバからの処理の完了通知を待つ。
[ステップS409]実行制御部150は、実行サーバから処理の完了通知を受信する。その後、処理がステップS401に進められる。
[ステップS410]実行サーバに接続できなかった場合、実行制御部150は、ステップS401で取得したノードを開始位置として、図9に示したプロセス定義解析処理を実行する。この際、接続できなかった実行サーバは、起動していないものとして扱われる。これにより、現在起動している実行サーバの情報に基づいて、再度グルーピングが行われる。
[ステップS411]実行制御部150は、図24に示した性能解析処理を実行する。この際も、ステップS406で接続できなかった実行サーバは、性能解析の対象から除外される。
[ステップS412]実行制御部150は、図26に示した実行サーバ決定処理を実行する。その後、実行制御部150は、前回のステップS401の処理で取得したノードを、再度、次のノードに指定して、処理をステップS401に進める。
このようにして、自動化フローに含まれる各ノードの処理が、効率のよいサーバによって実行される。実行サーバの方が効率よく処理を実行できるのであれば、実行サーバに処理の実行依頼が送信される。実行サーバは、処理の実行依頼に応じて処理を実行する。
図29は、実行サーバにおける自動化フロー実行処理の手順の一例を示すフローチャートである。以下、実行サーバ200に処理の実行依頼が送信された場合における、実行サーバ200での自動化フロー実行処理について説明する。
[ステップS421]フロー実行部230は、管理サーバ100からの処理の実行依頼を受信し、管理サーバに制御を戻す手順が定義されたノードの情報をメモリに保持する。このノードは実行する自動化フロー内に挿入されるノードであり、ノードの情報には挿入位置が定義されている。
[ステップS422]フロー実行部230は、プロセス定義記憶部220から自動化フローを読み出し、次に実行するノードの処理を実行する。
[ステップS423]フロー実行部230は、ステップS422で1つのノードの処理が実行されると、その次に実行するノードが、管理サーバ100に制御を戻すノードか否かを判断する。制御を戻すノードであれば、処理がステップS426に進められる。制御を戻すノードでなければ、処理がステップS424に進められる。
[ステップS424]フロー実行部230は、次に実行するノードが、複数のルートの1つを実行する条件分岐ノードか否かを判断する。条件分岐ノードであれば、処理がステップS425に進められる。条件分岐ノードでなければ、処理がステップS422に進められる。
[ステップS425]次のノードが条件分岐ノードの場合、フロー実行部230は、条件分岐の分岐先を判断し、分岐先のノードの処理を実行するサーバが、自サーバ(実行サーバ200)か否かを判断する。次のノードの処理を実行するのが自サーバであれば、処理がステップS422に進められる。次のノードの処理を実行するのが自サーバでなければ、処理がステップS426に進められる。
[ステップS426]制御を管理サーバ100に戻すノードに達した場合、または条件分岐による分岐先のノードの処理を実行するのが他のサーバの場合、フロー実行部230は、管理サーバ100に、自動化フロー実行の制御を戻す。例えばフロー実行部230は、依頼された処理の完了通知を管理サーバ100に送信する。
なお条件分岐による分岐先のノードの処理を実行するのが他のサーバの場合には、管理サーバ100に、分岐先のノードの識別子を完了通知に含める。これにより管理サーバ100では、自動化フロー内のどのノードから処理が返却されたかを判断することができる。ノードの識別子としては、例えばインスタンスIDが用いられる。ノードのインスタンスIDは自動化フロー実行時にシステム上で一意になるように予め設定された識別子である。
<第2の実施の形態の効果>
このようにして、自動化フローの処理を効率的に分散して実行することができる。すなわち、第2の実施の形態では、管理サーバ100と実行サーバとの間の通信速度だけでなく、実行サーバと管理対象サーバとの間の通信速度までも考慮し、効率的に処理を実行で器量に、各処理を実行するサーバを決定している。その結果、自動化フローの処理を効率的に実行することができる。
このような通信速度を考慮した処理の効率化は、大量のデータを通信する処理を行う場合に特に有効となる。例えば、大量のログファイルを取得する場合、通信性能によって処理性能が左右される。
図30は、100MByteのファイルを転送するのに要する時間を示す図である。通信速度が10Mbpsしかなければ、100MByteのファイルを転送するのに10秒の時間がかかる。通信速度が100Mbpsであれば、1秒程度で同じファイルを転送することができる。通信速度が1Gbpsであれば、0.1秒程度で同じファイルを転送することができる。
このように通信性能によって処理時間が大きく異なる場合、分散先のCPUやメモリの負荷状態だけで処理を分散しても、自動化フロー全体の処理時間の短縮効果は不十分となる。第2の実施の形態では、通信性能を考慮して処理の分散実行するため、大量のデータ転送を伴う自動化フローについて、効率的に処理を実行することができる。
しかも第2の実施の形態では、連続するノードの処理が同じ実行サーバで効率的に実行できる場合、複数のノードを1つのグループに纏め、グループ単位で処理の実行を依頼することができる。その結果、管理サーバと実行サーバとの間の通信回数が削減され、処理の効率化が促進される。
図31は、グルーピングした場合の通信回数の一例を示す図である。図31には、図20に示したようにグルーピングされた自動化フロー56を実行した場合のサーバ間の通信状況が示されている。管理サーバ100は、自動化フロー56の実行を開始すると、まず、2つのノード56b,56cを含むグループ「G1」の実行依頼を、実行サーバ200aに送信する。実行サーバ200aは、ノード56b,56cに定義された処理を実行する。この処理の実行時には、実行サーバ200aから管理対象サーバ45a,45bに、操作内容の送信などの通信が行われ、管理対象サーバ45a,45bが操作される。その後、実行サーバ200aから管理サーバ100に完了通知が送信される。
管理サーバ100は、実行サーバ200aからの完了通知を受けて、自動化フロー56の処理をノード56dに進める。そして管理サーバ100は、ノード56dの実行依頼を実行サーバ200bに送信する。実行サーバ200bは、管理対象サーバ45cの操作を伴う処理を実行し、完了通知を管理サーバ100に送信する。
管理サーバ100は、実行サーバ200bからの完了通知を受けて、自動化フロー56の処理をノード56eに進める。そして管理サーバ100は、グループ「G2」に含まれるノード56e,56fの実行依頼を実行サーバ200cに送信する。実行サーバ200cは、管理対象サーバ45d,45eの操作を伴う処理を実行し、完了通知を管理サーバ100に送信する。
このように、管理サーバ100と各実行サーバ200a,200b,200cとの間では、処理を依頼するごとに、実行依頼と完了通知とが送受される。このような処理の依頼を、グルーピングを行わずにノード単位で行った場合、自動化フロー56の例であれば、実行依頼の通信が5回、完了通知の通信が5回発生する。しかしグルーピングを行うことにより、通信階数が3回ずつに削減されている。通信回数が削減されれば、自動化フローの全体の処理時間が短縮される。
図32は、処理時間の短縮効果を示す図である。図32には、通信速度を考慮せずに処理を分散させた場合、通信速度を考慮して処理を分散させた場合、通信速度を考慮し、グルーピングを行った処理を分散させた場合の、自動化フローの処理時間の例が示されている。図32に示すように、通信速度を考慮して処理を分散させると、ログ取得などのデータ通信を伴う処理の時間が大きく短縮される。さらにグルーピングを行うと、自動化フロー内の個々のノードの処理ではなく、処理を分散させるために実行される、サーバ間の通信処理に要する時間が短縮される。
さらに第2の実施の形態では、障害などによって、処理の依頼先となる実行サーバと接続できない場合、自動で、処理の依頼先の再決定が行われる。これにより、例えば夜間の時間帯に分散処理を実行する場合において、処理の依頼先の実行サーバが障害で停止してしまっても、翌朝には、自動化フローの処理を完了させることができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1,2 ネットワーク
3〜5 制御装置
6〜8 制御対象装置
10 情報処理装置
11 記憶手段
11a 定義情報
12 収集手段
13 選択手段
14 依頼手段

Claims (11)

  1. コンピュータに、
    制御対象装置と複数の制御装置それぞれとの間の通信速度に基づいて、前記複数の制御装置の中から、該制御対象装置を制御する制御装置を選択し、
    選択した該制御装置に該制御対象装置の制御を依頼する、
    処理を実行させるプログラム。
  2. 前記コンピュータに、さらに、
    前記複数の制御装置それぞれから、前記制御対象装置との間の通信速度の情報を収集する処理を実行させることを特徴とする請求項1記載のプログラム。
  3. 制御装置の選択では、複数の制御対象装置を制御する複数の処理の実行手順が定義された定義情報に基づいて、前記複数の処理それぞれについて、処理に従って制御対象装置を制御する制御装置を選択し、
    制御の依頼では、前記定義情報に示された処理順で、前記複数の処理それぞれについて選択された制御装置に、処理の実行を依頼する、
    ことを特徴とする請求項1または2に記載のプログラム。
  4. 前記コンピュータに、さらに、
    前記複数の処理のうち、同じ制御装置が選択された、処理順が連続する複数の処理を同じグループにグループ化する処理を実行させ、
    制御の依頼では、同じグループに含まれるすべての処理について共通に選択された制御装置に、該グループに含まれるすべての処理の実行をまとめて依頼する、
    ことを特徴とする請求項1乃至3のいずれかに記載のプログラム。
  5. 前記定義情報には、順番に実行する複数の処理を含む処理列が複数あり、該複数の処理列を並行して実行することが定義されており、
    処理のグループ化では、異なる処理列の処理は別のグループにグループ化する、
    ことを特徴とする請求項4記載のプログラム。
  6. 前記定義情報には、順番に実行する複数の処理を含む処理列が複数あり、条件分岐により該複数の処理列のうちの1つの処理列を実行することが定義されており、
    処理のグループ化では、処理列内の処理のうち、処理順が早い方から1以上の処理が、条件分岐直前の処理と同じ制御装置が選択された場合、該1以上の処理を、条件分岐直前の処理と同じグループに含める、
    ことを特徴とする請求項4または5に記載のプログラム。
  7. 前記コンピュータに、さらに、
    処理順となった処理の依頼時に、該処理について選択された制御装置と通信できない場合、該制御装置を選択対象から除外して、前記処理順となった処理以降の処理について、制御装置を再選択し、
    前記処理順となった処理以降の処理について再選択された制御装置に、処理の実行を依頼する、
    処理を実行させることを特徴とする請求項3乃至6のいずれかに記載のプログラム。
  8. 制御の依頼では、前記制御対象装置との間の通信速度が最も速い制御装置が該制御対象装置を制御した場合に通信に要する時間よりも、前記コンピュータが該制御対象装置を制御した場合に通信に要する時間の方が短い場合、制御装置に制御を依頼せずに、前記コンピュータに該制御対象装置を制御させる、
    ことを特徴とする請求項1乃至7のいずれかに記載のプログラム。
  9. コンピュータが、
    制御対象装置と複数の制御装置それぞれとの間の通信速度に基づいて、前記複数の制御装置の中から、該制御対象装置を制御する制御装置を選択し、
    選択した該制御装置に該制御対象装置の制御を依頼する、
    制御依頼方法。
  10. 制御対象装置と複数の制御装置それぞれとの間の通信速度に基づいて、前記複数の制御装置の中から、該制御対象装置を制御する制御装置を選択する選択手段と、
    選択した該制御装置に該制御対象装置の制御を依頼する依頼手段と、
    を有する情報処理装置。
  11. 複数の制御対象装置と、
    前記複数の制御対象装置の少なくとも1つにネットワークを介して接続されており、依頼に応じて接続された制御対象装置を制御する複数の制御装置と、
    前記複数の制御装置それぞれにネットワークを介して接続されており、前記複数の制御対象装置のうちの特定の制御対象装置と前記複数の制御装置それぞれとの間の通信速度に基づいて、前記複数の制御装置の中から、該制御対象装置を制御する制御装置を選択し、選択した該制御装置に該制御対象装置の制御を依頼する情報処理装置と、
    を有するシステム。
JP2013132543A 2013-06-25 2013-06-25 制御依頼方法、情報処理装置、システム、およびプログラム Expired - Fee Related JP6303300B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013132543A JP6303300B2 (ja) 2013-06-25 2013-06-25 制御依頼方法、情報処理装置、システム、およびプログラム
US14/313,319 US20140379100A1 (en) 2013-06-25 2014-06-24 Method for requesting control and information processing apparatus for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013132543A JP6303300B2 (ja) 2013-06-25 2013-06-25 制御依頼方法、情報処理装置、システム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015007876A true JP2015007876A (ja) 2015-01-15
JP6303300B2 JP6303300B2 (ja) 2018-04-04

Family

ID=52111527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013132543A Expired - Fee Related JP6303300B2 (ja) 2013-06-25 2013-06-25 制御依頼方法、情報処理装置、システム、およびプログラム

Country Status (2)

Country Link
US (1) US20140379100A1 (ja)
JP (1) JP6303300B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017018395A1 (ja) * 2015-07-29 2018-05-24 京セラ株式会社 管理サーバ及び管理方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656688B (zh) * 2016-03-03 2019-09-20 腾讯科技(深圳)有限公司 状态控制方法和装置
US20180124183A1 (en) * 2016-11-03 2018-05-03 Futurewei Technologies, Inc. Method and Apparatus for Stateful Control of Forwarding Elements
US11539788B2 (en) * 2019-05-28 2022-12-27 Hitachi, Ltd. Information processing system and method of controlling information processing system
JP7189104B2 (ja) * 2019-05-28 2022-12-13 株式会社日立製作所 情報処理システム、及び情報処理システムの制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236294A (ja) * 2000-02-24 2001-08-31 Nec Microsystems Ltd ネットワークにおけるサーバー選択方法
JP2010257332A (ja) * 2009-04-27 2010-11-11 Shimadzu Corp 分析装置制御システム
JP2011053727A (ja) * 2009-08-31 2011-03-17 Mitsubishi Electric Corp 制御装置及び制御システム及びコンピュータプログラム及び制御方法
JP2012033067A (ja) * 2010-07-30 2012-02-16 Ricoh Co Ltd 画像形成装置と画像形成装置の連携シナリオ作成方法とプログラムとコンピュータ読み取り可能な記録媒体

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4134357B2 (ja) * 1997-05-15 2008-08-20 株式会社日立製作所 分散データ管理方法
US6477522B1 (en) * 1999-06-10 2002-11-05 Gateway, Inc. Dynamic performance based server selection
US7013344B2 (en) * 2002-01-09 2006-03-14 International Business Machines Corporation Massively computational parallizable optimization management system and method
JP4265245B2 (ja) * 2003-03-17 2009-05-20 株式会社日立製作所 計算機システム
TWI335541B (en) * 2004-02-18 2011-01-01 Ibm Grid computing system, management server, processing server, control method, control program and recording medium
WO2006043320A1 (ja) * 2004-10-20 2006-04-27 Fujitsu Limited アプリケーション管理プログラム、アプリケーション管理方法、およびアプリケーション管理装置
JP3938387B2 (ja) * 2005-08-10 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、制御方法、およびコンパイラ・プログラム
JP4686305B2 (ja) * 2005-08-26 2011-05-25 株式会社日立製作所 ストレージ管理システムおよびその方法
JP2007079885A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ
US20070118839A1 (en) * 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP4944484B2 (ja) * 2006-04-20 2012-05-30 キヤノン株式会社 再生装置、再生方法及びプログラム
US20080030764A1 (en) * 2006-07-27 2008-02-07 Microsoft Corporation Server parallel aggregation
WO2009032710A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
KR100953098B1 (ko) * 2007-12-17 2010-04-19 한국전자통신연구원 클러스터 시스템 및 그의 운영방법
US7792917B2 (en) * 2008-01-07 2010-09-07 International Business Machines Corporation Multiple network shared disk servers
US8180896B2 (en) * 2008-08-06 2012-05-15 Edgecast Networks, Inc. Global load balancing on a content delivery network
US8510538B1 (en) * 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
JP5482243B2 (ja) * 2010-01-29 2014-05-07 富士通株式会社 系列生成プログラム、系列生成方法、および系列生成装置
US9495427B2 (en) * 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
US8423646B2 (en) * 2010-07-09 2013-04-16 International Business Machines Corporation Network-aware virtual machine migration in datacenters
TWI424322B (zh) * 2011-02-08 2014-01-21 Kinghood Technology Co Ltd 提供大量資料流存取的資料流管理系統
JP5843459B2 (ja) * 2011-03-30 2016-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体
CN102724103B (zh) * 2011-03-30 2015-04-01 国际商业机器公司 代理服务器、分层次网络系统及分布式工作负载管理方法
JP5880548B2 (ja) * 2011-04-28 2016-03-09 富士通株式会社 データ割り当て方法およびデータ割り当てシステム
JP5776339B2 (ja) * 2011-06-03 2015-09-09 富士通株式会社 ファイル配布方法、ファイル配布システム、マスタサーバ、及びファイル配布プログラム
US9146766B2 (en) * 2011-06-22 2015-09-29 Vmware, Inc. Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
US8671407B2 (en) * 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US8949431B2 (en) * 2011-08-24 2015-02-03 Radware, Ltd. Method for live migration of virtual machines
US8725941B1 (en) * 2011-10-06 2014-05-13 Netapp, Inc. Determining efficiency of a virtual array in a virtualized storage system
US9531802B2 (en) * 2011-11-10 2016-12-27 Kabushiki Kaisha Square Enix Data transmission and reception system
US9336061B2 (en) * 2012-01-14 2016-05-10 International Business Machines Corporation Integrated metering of service usage for hybrid clouds
US9934276B2 (en) * 2012-10-15 2018-04-03 Teradata Us, Inc. Systems and methods for fault tolerant, adaptive execution of arbitrary queries at low latency
US20140136878A1 (en) * 2012-11-14 2014-05-15 Microsoft Corporation Scaling Up and Scaling Out of a Server Architecture for Large Scale Real-Time Applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236294A (ja) * 2000-02-24 2001-08-31 Nec Microsystems Ltd ネットワークにおけるサーバー選択方法
JP2010257332A (ja) * 2009-04-27 2010-11-11 Shimadzu Corp 分析装置制御システム
JP2011053727A (ja) * 2009-08-31 2011-03-17 Mitsubishi Electric Corp 制御装置及び制御システム及びコンピュータプログラム及び制御方法
JP2012033067A (ja) * 2010-07-30 2012-02-16 Ricoh Co Ltd 画像形成装置と画像形成装置の連携シナリオ作成方法とプログラムとコンピュータ読み取り可能な記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017018395A1 (ja) * 2015-07-29 2018-05-24 京セラ株式会社 管理サーバ及び管理方法

Also Published As

Publication number Publication date
JP6303300B2 (ja) 2018-04-04
US20140379100A1 (en) 2014-12-25

Similar Documents

Publication Publication Date Title
CN109416643B (zh) 应用程序迁移系统
US10255052B2 (en) Dynamic deployment of an application based on micro-services
EP3098731B1 (en) System for linking diverse data systems
JP5833246B2 (ja) ユニバーサルフローを変換するためのシャーシコントローラ
US8458284B2 (en) Systems and methods for efficient live application migration within bandwidth constrained networks
Pandurangan et al. On the distributed complexity of large-scale graph computations
US20170060707A1 (en) High availability dynamic restart priority calculator
JP6303300B2 (ja) 制御依頼方法、情報処理装置、システム、およびプログラム
CN107431651A (zh) 一种网络服务的生命周期管理方法及设备
US9400767B2 (en) Subgraph-based distributed graph processing
CA2701107C (en) Method and apparatus for concurrent topology discovery
US20220027192A1 (en) Self-Evolving Microservices
US20130290237A1 (en) Discovery and grouping of related computing resources using machine learning
US9733997B2 (en) Event management method and distributed system
CN114697256B (zh) 基于集中式控制器的动态网络带宽分配与管理
CN110932981A (zh) 一种支持自动路由的数据交换系统
US20210184926A1 (en) Network management device and network management method
JP6326062B2 (ja) 異なる環境どうし間でのジョブ実行依頼のトランスペアレントなルーティング
JP6193104B2 (ja) 監視データ転送システム及び監視データ転送方法
US10148518B2 (en) Method and apparatus for managing computer system
US10135718B2 (en) Service pack deployment in a method and system for providing answers to requests
US10956506B1 (en) Query-based data modification
US9270543B1 (en) Application centered network node selection
KR101146742B1 (ko) SaaS의 분산된 세션 관리 방법 및 그 관리 시스템
CN112199188A (zh) 非暂态计算机可读记录介质、信息处理的方法和设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R150 Certificate of patent or registration of utility model

Ref document number: 6303300

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees