(57)【要約】【課題】現行システムの運用仕様とマネージドサービスの運用仕様の比較を支援すること。【解決手段】運用仕様グラフ生成部１１が、現行システムの運用仕様グラフとマネージドサービスの運用仕様グラフを生成する。そして、拡張部１６が、現行システムの運用仕様グラフを拡張して拡張グラフを作成し、クエリグラフ生成部１８が、マネージドサービスの運用仕様グラフからクエリグラフを生成する。そして、グラフマッチング部２０が、拡張グラフとクエリグラフのマッチングを行い、実現範囲生成部２２が、マッチング結果に基づいて、運用実現範囲情報１０を生成する。【選択図】図３
2018128973.tif 000002
【特許請求の範囲】
【請求項１】
第１のシステムの運用仕様情報に基づいて前記第１のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第１の運用仕様グラフを作成し、第２のシステムの運用仕様情報に基づいて前記第２のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第２の運用仕様グラフを作成するグラフ作成部と、
前記グラフ作成部により作成された第２の運用仕様グラフのルートから各操作までの部分木を生成する部分木生成部と、
前記部分木生成部により生成された各部分木について前記グラフ作成部により作成された第１の運用仕様グラフにマッチする箇所があるか否かを判定するマッチング部と、
前記マッチング部による判定結果に基づいて前記第１のシステムと前記第２のシステムの関係に関する情報を出力する出力部と
を有することを特徴とする運用仕様分析装置。
【請求項２】
前記グラフ作成部は、前記第１のシステムの構成情報にも基づいて前記第１の運用仕様グラフを作成し、
前記グラフ作成部により作成された第１の運用仕様グラフに構成要素間の関係に基づいて構成要素と該構成要素の状態との間の関係を追加する拡張部をさらに有し、
前記マッチング部は、前記拡張部により構成要素と該構成要素の状態との間の関係が追加された第１の運用仕様グラフに前記部分木にマッチする箇所があるか否かを判定することを特徴とする請求項１に記載の運用仕様分析装置。
【請求項３】
前記拡張部は、２つの構成要素間で第１構成要素が第２構成要素上で動作する関係がある場合に、前記第２構成要素と該第２構成要素の状態との間の関係に基づいて、前記第１構成要素と該第２構成要素の状態との間の関係を追加することを特徴とする請求項２に記載の運用仕様分析装置。
【請求項４】
前記構成要素にはオペレーティングシステム及びミドルウェアが含まれ、前記状態には正常及び異常が含まれ、前記操作には監視、起動、停止及びバックアップが含まれることを特徴とする請求項２又は３に記載の運用仕様分析装置。
【請求項５】
前記第１のシステムは、オンプレミス又はプライベートクラウド上のシステムであり、前記第２のシステムは、パブリッククラウド上のシステムであることを特徴とする請求項２、３又は４に記載の運用仕様分析装置。
【請求項６】
コンピュータが、
第１のシステムの運用仕様情報に基づいて前記第１のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第１の運用仕様グラフを作成し、
第２のシステムの運用仕様情報に基づいて前記第２のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第２の運用仕様グラフを作成し、
作成した第２の運用仕様グラフのルートから各操作までの部分木を生成し、
生成した各部分木について、作成した第１の運用仕様グラフにマッチする箇所があるか否かを判定し、
判定結果に基づいて前記第１のシステムと前記第２のシステムの関係に関する情報を出力する
処理を実行することを特徴とする運用仕様分析方法。
【請求項７】
コンピュータに、
第１のシステムの運用仕様情報に基づいて前記第１のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第１の運用仕様グラフを作成し、第２のシステムの運用仕様情報に基づいて前記第２のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第２の運用仕様グラフを作成し、
作成した第２の運用仕様グラフのルートから各操作までの部分木を生成し、
生成した各部分木について、作成した第１の運用仕様グラフにマッチする箇所があるか否かを判定し、
判定結果に基づいて前記第１のシステムと前記第２のシステムの関係に関する情報を出力する
処理を実行させることを特徴とする運用仕様分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運用仕様分析装置、運用仕様分析方法及び運用仕様分析プログラムに関する。
【背景技術】
【０００２】
オンプレミス又はプライベートクラウド上で動作する現行システムをパブリッククラウドへ移行する場合、運用作業の軽減がはかれる等の理由から、パブリッククラウドが提供するマネージドサービスが利用される。また、パブリッククラウドで動作する現行システムを別のパブリッククラウドへ移行する場合も同様である。
【０００３】
ここで、オンプレミスとは、企業等が情報システムを自社で保有し、自社の設備において情報システムを運用することである。また、プライベートクラウドとは、企業等が自社内でクラウド環境を構築し、社内の各部署やグループ会社に提供するクラウド形態である。また、パブリッククラウドとは、クラウドシステムの提供者が企業や個人にハードウェア、ＯＳ（オペレーティングシステム）、ミドルウェア、設置場所等を提供する形態である。また、マネージドサービスとは、パブリッククラウドが提供する監視サービス、データベースサービス等のサービスである。
【０００４】
現行システムにおける運用品質を維持するためには、移行後の運用仕様が現行の運用仕様と同じであることが望まれる。ここで、運用仕様とは、運用内容や運用の品質レベルである。
【０００５】
なお、複数の物理マシンへ複数の仮想マシンが割り当てられ、複数の仮想マシンのうち、少なくとも１つの仮想マシンの演算処理性能が変動した場合に、変動が予め定められた範囲内になるように、演算処理性能を制限する技術がある。この技術によれば、仮想マシンを用いて実現されるシステムの管理が複雑になることを防ぐことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１９２１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
現行システムのパブリッククラウドへの移行において、移行後の運用仕様が現行の運用仕様と同じであるか否かの判断は、現行システムの運用仕様と移行先のパブリッククラウドの運用仕様を比較することで行われる。しかしながら、運用仕様の統一した記述がないため、現行システムの運用仕様と移行先のパブリッククラウドの運用仕様の比較には、多くの時間がかかるという問題がある。すなわち、現行の運用仕様を１つずつ洗い出し、マネージドサービスの機能、仕様を確認して突き合わせる作業に多くの労力、時間が費やされる。
【０００８】
本発明は、１つの側面では、現行システムの運用仕様と移行先の運用仕様の比較を行う運用仕様分析装置、運用仕様分析方法及び運用仕様分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、運用仕様分析装置は、グラフ作成部と、部分木生成部と、マッチング部と、出力部とを有する。グラフ作成部は、第１のシステムの運用仕様情報に基づいて第１のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第１の運用仕様グラフを作成する。また、グラフ作成部は、第２のシステムの運用仕様情報に基づいて第２のシステムの構成要素、該構成要素の状態及び該構成要素に対する操作をノードとして含む第２の運用仕様グラフを作成する。また、部分木生成部は、グラフ作成部により作成された第２の運用仕様グラフのルートから各操作までの部分木を生成する。また、マッチング部は、部分木生成部により生成された各部分木についてグラフ作成部により作成された第１の運用仕様グラフにマッチする箇所があるか否かを判定する。また、出力部は、マッチング部による判定結果に基づいて第１のシステムと第２のシステムの関係に関する情報を出力する。
【発明の効果】
【００１０】
１つの側面では、本発明は、現行システムの運用仕様と移行先の運用仕様の比較を行うことができる。
【図面の簡単な説明】
【００１１】
【図１Ａ】図１Ａは、現行システムの運用仕様グラフの例を示す図である。
【図１Ｂ】図１Ｂは、マネージドサービスの運用仕様グラフの例を示す図である。
【図２】図２は、図１Ａに示した運用仕様グラフの拡張グラフを示す図である。
【図３】図３は、実施例に係る運用仕様分析装置の機能構成を示す図である。
【図４】図４は、マネージドサービス仕様情報の一例を示す図である。
【図５】図５は、現行システム構成情報の一例を示す図である。
【図６】図６は、現行運用作業リストの一例を示す図である。
【図７】図７は、現行システムの運用仕様グラフの生成を説明するための図である。
【図８】図８は、関係情報記憶部が記憶するタグの例を示す図である。
【図９】図９は、対応表の一例を示す図である。
【図１０】図１０は、マネージドサービスの運用仕様グラフの生成を説明するための図である。
【図１１】図１１は、現行システムの運用仕様グラフの拡張を説明するための図である。
【図１２】図１２は、クエリグラフの生成を説明するための図である。
【図１３】図１３は、グラフマッチングを説明するための図である。
【図１４】図１４は、運用実現範囲情報の生成を説明するための図である。
【図１５】図１５は、運用仕様分析装置による処理のフローを示すフローチャートである。
【図１６】図１６は、現行システムの運用仕様グラフを生成する処理のフローを示すフローチャートである。
【図１７】図１７は、マネージドサービスの運用仕様グラフを生成する処理のフローを示すフローチャートである。
【図１８】図１８は、現行システムの運用仕様グラフを拡張する処理のフローを示すフローチャートである。
【図１９】図１９は、クエリグラフを生成する処理のフローを示すフローチャートである。
【図２０】図２０は、クエリグラフ生成の変遷イメージを示す図である。
【図２１】図２１は、実施例に係る運用仕様分析プログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する運用仕様分析装置、運用仕様分析方法及び運用仕様分析プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１３】
まず、実施例に係る運用仕様記述について説明する。実施例では、運用仕様は、運用仕様グラフで表される。運用仕様グラフでは、システムの構成要素、構成要素の状態及び構成要素のメソッドが、ノードで表され、構成要素間の関係、構成要素と状態の関係及び構成要素と構成要素に対する操作の関係はノード間のエッジで表される。ここで、構成要素のメソッドとは、構成要素に対する操作である。
【００１４】
図１Ａは、現行システムの運用仕様グラフの例を示す図であり、図１Ｂは、マネージドサービスの運用仕様グラフの例を示す図である。現行システムは、オンプレミス又はプライベートクラウド上で動作する。
【００１５】
図１Ａに示すように、現行システムの運用仕様グラフは、現行システムのシステム構成と運用作業に基づいて作成される。図１Ａでは、「Ｌｉｎｕｘ（登録商標、以下同様）」上で「Ａｐａｃｈｅ」が動作するという構成情報から、「Ｌｉｎｕｘ」と「Ａｐａｃｈｅ」がノードとして表される。また、「Ｌｉｎｕｘ」上で「Ａｐａｃｈｅ」が動作するという関係は、「Ｌｉｎｕｘ」から「Ａｐａｃｈｅ」への「ｈａｓ」が付加された矢印で表される。なお、ＬｉｎｕｘはＯＳであり、Ａｐａｃｈｅは、Ｗｅｂサーバソフトウェアである。
【００１６】
同様に、「Ｌｉｎｕｘ」上で「Ｊｏｂ管理」が動作するという構成情報から、「Ｊｏｂ管理」がノードとして表される。また、「Ｌｉｎｕｘ」上で「Ｊｏｂ管理」が動作するという関係は、「Ｌｉｎｕｘ」から「Ｊｏｂ管理」への「ｈａｓ」が付加された矢印で表される。
【００１７】
また、「Ａｐａｃｈｅ」には「ｉｓＡｌｉｖｅ」という状態があるという運用作業情報から、「ｉｓＡｌｉｖｅ」がノードとして表される。また、「Ａｐａｃｈｅ」には「ｉｓＡｌｉｖｅ」という状態があるという関係は、「Ａｐａｃｈｅ」から「ｉｓＡｌｉｖｅ」への「ｓｔａｔｕｓ」が付加された矢印で表される。
【００１８】
同様に、「Ｌｉｎｕｘ」には「ｈｔｔｐＳｔａｔｕｓ」という状態があるという運用作業情報から、「ｈｔｔｐＳｔａｔｕｓ」がノードとして表される。また、「Ｌｉｎｕｘ」には「ｈｔｔｐＳｔａｔｕｓ」という状態があるという関係は、「Ｌｉｎｕｘ」から「ｈｔｔｐＳｔａｔｕｓ」への「ｓｔａｔｕｓ」が付加された矢印で表される。
【００１９】
また、「Ａｐａｃｈｅ」には「起動」、「停止」及び「アクセスログバックアップ」のメソッドがあるという運用作業情報から、「起動」、「停止」及び「アクセスログバックアップ」がノードとして表される。また、「Ａｐａｃｈｅ」には「起動」、「停止」及び「アクセスログバックアップ」のメソッドがあるという関係は、「Ａｐａｃｈｅ」と「起動」、「停止」及び「アクセスログバックアップ」それぞれとを接続するエッジで表される。
【００２０】
同様に、「ｉｓＡｌｉｖｅ」には「監視」のメソッドがあるという運用作業情報から、「監視」がノードとして表され、「ｉｓＡｌｉｖｅ」には「監視」のメソッドがあるという関係は、「ｉｓＡｌｉｖｅ」と「監視」とを接続するエッジで表される。同様に、「ｈｔｔｐＳｔａｔｕｓ」には「監視」のメソッドがあるという運用作業情報から、「監視」がノードとして表され、「ｈｔｔｐＳｔａｔｕｓ」には「監視」のメソッドがあるという関係は、「ｈｔｔｐＳｔａｔｕｓ」と「監視」とを接続するエッジで表される。
【００２１】
また、図１Ｂに示すように、マネージドサービスの運用仕様グラフには、「Ｗｅｂサーバサービス」、「ｈｔｔｐｓｔａｔｕｓ」、「ｉｓＡｌｉｖｅ」、「起動」、「停止」及び「監視」で表されるノードが含まれる。「Ｗｅｂサーバサービス」は、マネージドサービスの１つである。「ｈｔｔｐｓｔａｔｕｓ」及び「ｉｓＡｌｉｖｅ」は、「Ｗｅｂサーバサービス」の状態である。「起動」及び「停止」は、「Ｗｅｂサーバサービス」のメソッドである。２つの「監視」は、それぞれ「ｈｔｔｐｓｔａｔｕｓ」及び「ｉｓＡｌｉｖｅ」のメソッドである。マネージドサービスの運用仕様グラフは、後述するように、マネージドサービスの仕様に基づいて作成される。
【００２２】
なお、「Ｌｉｎｕｘ：ＯＳ」、「Ａｐａｃｈｅ：Ｗｅｂサービス」及び「Ｗｅｂサーバサービス：Ｗｅｂサービス」の「ＯＳ」及び「Ｗｅｂサービス」は、クラス名である。クラス名「Ｗｅｂサービス」は、「Ａｐａｃｈｅ」と「Ｗｅｂサーバサービス」とのマッチングに用いられる。マッチングについては後述する。
【００２３】
実施例に係る運用仕様分析装置は、図１Ａに示した現行システムの運用仕様グラフと図１Ｂに示したマネージドサービスの運用仕様グラフを比較することで、現行システムの運用仕様のうちマネージドサービスで実現されている範囲を特定する。ただし、現行システムでは、構成要素Ｘで動作する構成要素Ｙの状態が構成要素Ｘの状態として認識される場合がある。
【００２４】
例えば、ＯＳの出力するｓｙｓｌｏｇから取得される状態「ｈｔｔｐＳｔａｔｕｓ」は、ＯＳ上で動作するミドルウェア「Ａｐａｃｈｅ」の状態を示している。また、ミドルウェア「Ｊｏｂ管理」の「スケジュール情報」は、「Ｊｏｂ管理」で動作する「ジョブ」の「スケジュール情報」を示している。
【００２５】
そこで、実施例に係る運用仕様分析装置は、構成要素ノードＸと「ｓｔａｔｕｓ」の関係にある状態ノードＡを、ノードＸと「ｈａｓ」の関係にある構成要素ノードＹと「ｓｔａｔｕｓ」の関係でつないで、現行システムの運用仕様グラフを拡張する。図２は、図１Ａに示した運用仕様グラフの拡張グラフを示す図である。図２に示すように、構成要素「Ｌｉｎｕｘ」と構成要素［Ａｐａｃｈｅ］は「ｈａｓ」の関係にある。また、構成要素「Ｌｉｎｕｘ」と状態「ｈｔｔｐＳｔａｔｕｓ」は「ｓｔａｔｕｓ」の関係にあるので、実施例に係る運用仕様分析装置は、構成要素「Ａｐａｃｈｅ」に状態「ｈｔｔｐＳｔａｔｕｓ」を「ｓｔａｔｕｓ」関係でつなげる。
【００２６】
このように、実施例に係る運用仕様分析装置は、現行システムの運用仕様グラフを拡張し、マネージドサービスの運用仕様グラフと一致する箇所を増やすので、現行システムの運用仕様のうちマネージドサービスで実現されている範囲を正確に特定することができる。
【００２７】
次に、実施例に係る運用仕様分析装置の構成について説明する。図３は、実施例に係る運用仕様分析装置の機能構成を示す図である。図３に示すように、実施例に係る運用仕様分析装置１は、運用仕様グラフ生成部１１と、関係情報記憶部１２と、対応表記憶部１３と、現行グラフ記憶部１４と、マネージドサービスグラフ記憶部１５と、拡張部１６と、拡張グラフ記憶部１７とを有する。また、運用仕様分析装置１は、クエリグラフ生成部１８と、クエリグラフ記憶部１９と、グラフマッチング部２０と、マッチング結果記憶部２１と、実現範囲生成部２２とを有する。
【００２８】
運用仕様グラフ生成部１１は、マネージドサービス仕様情報２、現行システム構成情報３及び現行運用作業リスト４を入力し、現行システムの運用仕様グラフ及びマネージドサービスの運用仕様グラフを生成する。運用仕様グラフ生成部１１は、マネージドサービス仕様情報２、現行システム構成情報３及び現行運用作業リスト４を、例えば、ファイルから入力する。
【００２９】
マネージドサービス仕様情報２は、移行先のパブリッククラウドが提供するマネージドサービスの仕様に関する情報である。図４は、マネージドサービス仕様情報２の一例を示す図である。図４に示すように、マネージドサービス仕様情報２は、マネージドサービスの状態及びメソッドに関する情報及び状態のメソッドに関する情報である。
【００３０】
例えば、「Ｗｅｂサーバサービス」のメソッドには、「起動」と「停止」がある。また、「Ｗｅｂサーバサービス」の状態には、「ｉｓＡｌｉｖｅ」と「ｈｔｔｐＳｔａｔｕｓ」がある。また、「ｉｓＡｌｉｖｅ」及び「ｈｔｔｐＳｔａｔｕｓ」のメソッドには「監視」がある。
【００３１】
現行システム構成情報３は、現行システムを構成する構成要素と構成要素間の関係に関する情報である。図５は、現行システム構成情報３の一例を示す図である。図５では、現行システム構成情報３は、ＸＭＬ（eXtensible  Markup  Language）で記述されている。
【００３２】
図５において、＜ＯＳＳｅｔｔｉｎｇ＞タグにより、構成要素「Ｌｉｎｕｘ：ＯＳ」が定義されている。また、＜ＩｎｓｔａｌｌｅｄＡｐｐｌｉｃａｔｉｏｎ＞タグにより、構成要素「Ａｐａｃｈｅ」が定義されている。
【００３３】
現行運用作業リスト４は、現行システムに対する運用作業の情報である。図６は、現行運用作業リスト４の一例を示す図である。図６に示すように、現行運用作業リスト４は、現行システムの構成要素の状態及びメソッドに関する情報及び状態のメソッドに関する情報である。
【００３４】
例えば、「Ａｐａｃｈｅ」のメソッドには、「起動」と「停止」がある。また、「Ａｐａｃｈｅ」の状態には「ｉｓＡｌｉｖｅ」があり、「Ｌｉｎｕｘ」の状態には「ｈｔｔｐＳｔａｔｕｓ」がある。また、「ｉｓＡｌｉｖｅ」及び「ｈｔｔｐＳｔａｔｕｓ」のメソッドには「監視」がある。
【００３５】
図７は、現行システムの運用仕様グラフの生成を説明するための図である。図７に示すように、運用仕様グラフ生成部１１は、現行システム構成情報３から「ｈａｓ」の関係を抽出し、構成要素をノードとするグラフ（Ａ）を作成する。運用仕様グラフ生成部１１は、現行システム構成情報３をＸＭＬファイルのパースプログラムによりパースし、関連のある構成要素を抽出する。
【００３６】
現行システム構成情報３から「ｈａｓ」の関係を抽出するためのタグの情報については関係情報記憶部１２に記憶される。図８は、関係情報記憶部１２が記憶するタグの例を示す図である。図８に示すように、＜ＬｏｇｉｃａｌＳｅｒｖｅｒｓ＞＜ＯＳＳｅｔｔｉｎｇ＞，＜ＩｎｓｔａｌｌｅｄＡｐｐｌｉｃａｔｉｏｎ＞＜ＬｅｇａｃｙＡｐｐｌｉｃａｔｉｏｎｓ＞＜ＬｅｇａｃｙＡｐｐｌｉｃａｔｉｏｎ＞が「ｈａｓ」の関係を抽出するために使われる。このタグに基づいて、図７に示すように、ＯＳ上で動作するミドルウェアとして「Ａｐａｃｈｅ」が抽出される。
【００３７】
また、運用仕様グラフ生成部１１は、ミドルウェアを抽出した際、対応表記憶部１３が記憶する対応表を参照してミドルウェアのクラス名をミドルウェア名に追加する。図７では、「Ａｐａｃｈｅ」にクラス名「Ｗｅｂサービス」が追加されている。図９は、対応表の一例を示す図である。図９に示すように、対応表は、構成要素又はマネージドサービスをクラスに対応付ける。例えば、「Ａｐａｃｈｅ」は「Ｗｅｂサービス」に対応付けられる。
【００３８】
また、図８の＜ＬｏｇｉｃａｌＳｅｒｖｅｒｓ＞＜ＯＳＳｅｔｔｉｎｇ＞，＜ＬｏｇｉｃａｌＳｅｒｖｅｒｓ＞＜ＯＳＳｅｒｖｉｃｅｓ＞＜ＯＳＳｅｒｖｉｃｅ＞も「ｈａｓ」の関係を抽出するために使われる。このタグからは、ＯＳが提供するサービスが構成要素として抽出される。
【００３９】
また、運用仕様グラフ生成部１１は、図７に示すように、現行運用作業リスト４から「ｓｔａｔｕｓ」及びメソッドの関係を抽出し、状態及びメソッドをノードとするグラフをグラフ（Ａ）に追加する。すなわち、運用仕様グラフ生成部１１は、現行運用作業リスト４の各行について構成要素に対するメソッドのノード（関係はメソッド）、構成要素に対する状態のノード（関係は「ｓｔａｔｕｓ」）を関係を表すエッジとともにグラフ（Ａ）に追加する。また、運用仕様グラフ生成部１１は、状態に対するメソッド（関係はメソッド）のノードを関係を表すエッジとともにグラフ（Ａ）追加する。図７では、メソッドの関係はエッジのみで表される。
【００４０】
このように、運用仕様グラフ生成部１１は、状態及びメソッドをノードとするグラフをグラフ（Ａ）に追加することで、現行システムの運用仕様グラフを生成する。なお、グラフ表記については、「ノード，エッジ，ノード」組のセットで表す等、後述するマッチングに適した表記であれば限定はない。ここでは、説明の便宜上、グラフは図で表される。
【００４１】
運用仕様グラフ生成部１１は、現行システムについて生成した運用仕様グラフの情報を現行グラフ記憶部１４に格納する。現行グラフ記憶部１４は、現行システムの運用仕様グラフの情報を記憶する。
【００４２】
図１０は、マネージドサービスの運用仕様グラフの生成を説明するための図である。運用仕様グラフ生成部１１は、マネージドサービス仕様情報２から「ｓｔａｔｕｓ」及びメソッドの関係を抽出し、マネージドサービス、状態及びメソッドをノードとするグラフをマネージドサービスの運用仕様グラフとして生成する。
【００４３】
すなわち、運用仕様グラフ生成部１１は、マネージドサービス仕様情報２を用いて、マネージドサービスに対するノード、マネージドサービスに対するメソッドのノード（関係はメソッド）を生成する。また、運用仕様グラフ生成部１１は、マネージドサービスに対するノードを生成する際に対応表記憶部１３が記憶する対応表を参照してマネージドサービスのクラス名をマネージドサービス名に追加する。また、運用仕様グラフ生成部１１は、マネージドサービス仕様情報２を用いて、マネージドサービスに対する状態のノード（関係は「ｓｔａｔｕｓ」）、その状態に対するメソッドのノード（関係はメソッド）を関係を表すエッジとともに生成する。
【００４４】
運用仕様グラフ生成部１１は、マネージドサービスについて生成した運用仕様グラフの情報をマネージドサービスグラフ記憶部１５に格納する。マネージドサービスグラフ記憶部１５は、マネージドサービスの運用仕様グラフの情報を記憶する。なお、運用仕様グラフ生成部１１は、特許請求の範囲のグラフ生成部に対応する。
【００４５】
図３に戻って、拡張部１６は、現行グラフ記憶部１４から現行システムの運用グラフの情報を読み出し、現行システムの運用仕様グラフを状態ノードの接続状況をもとに拡張する。
【００４６】
すなわち、拡張部１６は、現行システムの運用仕様グラフの全ノード全エッジに関し、「ノードＸ，ｈａｓ，ノードＹ」、「ノードＸ，ｓｔａｔｕｓ，ノードＡ」の関係があると「ノードＹ，ｓｔａｔｕｓ，ノードＡ」となるエッジ「ｓｔａｔｕｓ」を追加する。ここで、「ノードＸ，ｈａｓ，ノードＹ」は、ノードＸとノードＹがエッジ「ｈａｓ」で接続していることを表し、「ノードＸ，ｓｔａｔｕｓ，ノードＡ」は、ノードＸとノードＡがエッジ「ｓｔａｔｕｓ」で接続していることを表す。
【００４７】
図１１は、現行システムの運用仕様グラフの拡張を説明するための図である。図１１に示すように、ノードＸを「Ｌｉｎｕｘ：ＯＳ」、ノードＹを「Ａｐａｃｈｅ：Ｗｅｂサービス」、ノードＡを「ｈｔｔｐＳｔａｔｕｓ」とすると、拡張部１６は、「Ｙ＝Ａｐａｃｈｅ：Ｗｅｂサービス，ｓｔａｔｕｓ，ｈｔｔｐＳｔａｔｕｓ」を追加する。
【００４８】
拡張部１６は、現行システムの運用仕様グラフを拡張した拡張グラフの情報を拡張グラフ記憶部１７に格納する。拡張グラフ記憶部１７は、拡張グラフの情報を記憶する。
【００４９】
クエリグラフ生成部１８は、マネージドサービスグラフ記憶部１５からマネージドサービスの運用仕様グラフの情報を読み出し、マネージドサービスの運用仕様グラフのルートから各メソッドノードまでの部分木をクエリグラフとして生成する。
【００５０】
図１２は、クエリグラフの生成を説明するための図である。図１２に示すように、「Ｗｅｂサーバサービス：Ｗｅｂサービス」をルートとし、「ｈｔｔｐＳｔａｔｕｓ」の「監視」までの部分木が、クエリグラフ＃１として生成される。また、「Ｗｅｂサーバサービス：Ｗｅｂサービス」をルートとし、「ｉｓＡｌｉｖｅ」の「監視」までの部分木が、クエリグラフ＃２として生成される。また、「Ｗｅｂサーバサービス：Ｗｅｂサービス」をルートとし、「停止」までの部分木が、クエリグラフ＃３として生成される。また、「Ｗｅｂサーバサービス：Ｗｅｂサービス」をルートとし、「起動」までの部分木が、クエリグラフ＃４として生成される。
【００５１】
クエリグラフ生成部１８は、生成したクエリグラフを用いて図１２に示すクエリグラフリスト５を作成し、クエリグラフリスト５の情報をクエリグラフ記憶部１９に格納する。クエリグラフリスト５は、クエリグラフを識別するクエリグラフＩＤとクエリグラフを対応付けたリストである。クエリグラフ記憶部１９は、クエリグラフリスト５の情報を記憶する。なお、クエリグラフ生成部１８は、特許請求の範囲の部分木生成部に対応する。
【００５２】
グラフマッチング部２０は、クエリグラフ記憶部１９からクエリグラフリスト５の情報を読み出し、拡張グラフ記憶部１７から拡張グラフの情報を読み出す。そして、グラフマッチング部２０は、クエリグラフリスト５の各クエリグラフについて、拡張グラフとのグラフマッチングを行う。
【００５３】
グラフマッチング部２０は、グラフマッチングを行う際に、構成要素ノードについては、「クラス名」でマッチングする。例えば、「Ａｐａｃｈｅ：Ｗｅｂサービス」のクラス名は「Ｗｅｂサービス」であり、「Ｗｅｂサーバサービス：Ｗｅｂサービス」のクラス名は「Ｗｅｂサービス」であるので、「Ａｐａｃｈｅ」と「Ｗｅｂサーバサービス」はマッチする。
【００５４】
図１３は、グラフマッチングを説明するための図である。図１３に示すように、「Ａｐａｃｈｅ」と「Ｗｅｂサーバサービス」がマッチするため、クエリグラフ＃１は、拡張グラフとマッチする。同様に、クエリグラフ＃２〜クエリグラフ＃４も拡張グラフとマッチする。
【００５５】
グラフマッチング部２０は、グラフマッチングの結果を図１３に示すマッチング結果６としてマッチング結果記憶部２１に格納する。マッチング結果記憶部２１は、マッチング結果６を記憶する。マッチング結果６では、クエリグラフＩＤと、結果と、状態又は構成要素と、メソッドとがクエリグラフ毎に対応付けられる。
【００５６】
結果は、拡張グラフがクエリグラフを含む場合には「あり」であり、拡張グラフがクエリグラフを含まない場合には「なし」である。状態又は構成要素は、クエリグラフに含まれる状態ノード又は構成要素ノードである。メソッドは、クエリグラフに含まれるメソッドノードである。例えば、クエリグラフ＃１は、拡張グラフとマッチするので、結果は「あり」であり、状態又は構成要素は「ｈｔｔｐＳｔａｔｕｓ」であり、メソッドは「監視」である。
【００５７】
なお、グラフマッチング部２０は、グラフマッチングについてｇｒｅｐＶＳ等の既存の処理を利用する。ｇｒｅｐＶＳは、グラフ構造をインデックス（各ノードを起点とした長さＬ以下の全パスの連結）表現で表し、インデックス間の比較によってマッチングを行う。ｇｒｅｐＶＳを利用する場合には、運用仕様グラフのつながりの拡張（追加）はインデックスの追加で表される。グラフマッチング部２０は、特許請求の範囲のマッチング部に対応する。
【００５８】
実現範囲生成部２２は、マッチング結果記憶部２１からマッチング結果６を読み出し、マッチング結果６に基づいて、現行運用作業リスト４の各メソッドの実現可否を特定する。そして、実現範囲生成部２２は、特定した実現可否に基づいて、現行運用作業リスト４のうち実現可のメソッドについては運用実現範囲とし、実現否のメソッドについては運用実現不可範囲とする運用実現範囲情報１０を生成して出力する。
【００５９】
図１４は、運用実現範囲情報１０の生成を説明するための図である。図１４に示すように、マッチング結果６と現行運用作業リスト４に基づいて、実現可否結果７が生成される。実現可否結果７の実現可否は、マッチング結果６が「あり」である場合には「１」であり、マッチング結果６が「なし」である場合には「０」である。例えば、マッチング結果６において、クエリグラフＩＤが「３」であるクエリグラフは、結果が「あり」であるので、実現可否結果７の「Ｗｅｂサービス」の「起動」の「実現可否」は「１」となる。
【００６０】
そして、実現可否結果７に基づいて、運用実現範囲８と運用実現不可範囲９が生成され、出力される。運用実現範囲８には、実現可否が「１」である、「Ｗｅｂサービス」の「起動」及び「停止」、「Ｗｅｂサービス」の「ｉｓＡｌｉｖｅ」の「監視」、「Ｌｉｎｕｘ：ＯＳ」の「ｈｔｔｐＳｔａｔｕｓ」の「監視」が含まれる。なお、実現範囲生成部２２は、特許請求の範囲の出力部に対応する。
【００６１】
次に、運用仕様分析装置１による処理のフローについて説明する。図１５は、運用仕様分析装置１による処理のフローを示すフローチャートである。図１５に示すように、運用仕様分析装置１は、現行システム及びマネージドサービスについて、運用仕様グラフを生成する（ステップＳ１）。
【００６２】
そして、運用仕様分析装置１は、現行システムの運用仕様グラフを拡張し（ステップＳ２）、マネージドサービスの運用仕様グラフからクエリグラフを生成する（ステップＳ３）。
【００６３】
そして、運用仕様分析装置１は、各クエリグラフについて、拡張グラフとのグラフマッチングを行い（ステップＳ４）、マッチング結果６に基づいて、各運用作業の実現可否を判定する（ステップＳ５）。そして、運用仕様分析装置１は、運用実現範囲情報１０を生成し（ステップＳ６）、出力する。
【００６４】
このように、運用仕様分析装置１は、現行システムの運用仕様グラフとマネージドサービスの運用仕様グラフを比較することで、マネージドサービスによる現行システムの運用実現範囲を特定することができる。
【００６５】
図１６は、現行システムの運用仕様グラフを生成する処理のフローを示すフローチャートである。図１６は、図１５に示したステップＳ１の処理のうち現行システムに関する処理を示す。図１６に示すように、運用仕様グラフ生成部１１は、空のグラフを用意し（ステップＳ１１）、ステップＳ１２〜ステップＳ１４の処理を現行システム構成情報３の最後まで繰り返す。
【００６６】
すなわち、運用仕様グラフ生成部１１は、現行システム構成情報３のタグを読み込み（ステップＳ１２）、関係情報記憶部１２が記憶するタグであるか否かを判定する（ステップＳ１３）。そして、関係情報記憶部１２が記憶するタグでない場合には、運用仕様グラフ生成部１１は、ステップＳ１２へ戻る。一方、関係情報記憶部１２が記憶するタグである場合には、運用仕様グラフ生成部１１は、タグから抽出した構成ノードに対応表より取得したクラス名を付加し、エッジ情報を「ｈａｓ」として構成ノードとエッジをグラフに追加し（ステップＳ１４）、ステップＳ１２へ戻る。
【００６７】
そして、現行システム構成情報３の最後まで処理すると、運用仕様グラフ生成部１１は、ステップＳ１５及びステップＳ１６の処理を現行運用作業リスト４の最後まで繰り返す。すなわち、運用仕様グラフ生成部１１は、現行運用作業リスト４の１行を読み込む（ステップＳ１５）。そして、運用仕様グラフ生成部１１は、グラフに、構成要素に対するメソッドノードを追加し、状態の情報がある場合には、構成要素に対してエッジ情報を「ｓｔａｔｕｓ」として状態ノードを追加し、メソッドノードを追加する（ステップＳ１６）。そして、運用仕様グラフ生成部１１は、ステップＳ１５に戻る。
【００６８】
そして、現行運用作業リスト４を最後まで処理すると、運用仕様グラフ生成部１１は、現行システムの運用仕様グラフの情報として、グラフの情報を現行グラフ記憶部１４に格納する（ステップＳ１７）。
【００６９】
図１７は、マネージドサービスの運用仕様グラフを生成する処理のフローを示すフローチャートである。図１７は、図１５に示したステップＳ１の処理のうちマネージドサービスに関する処理を示す。図１７に示すように、運用仕様グラフ生成部１１は、マネージドサービスのノードを１つもつグラフを用意し、対応表よりマネージドサービスに対するクラスの情報を得てノード名に追記する（ステップＳ２１）。
【００７０】
そして、運用仕様グラフ生成部１１は、ステップＳ２２及びステップＳ２３の処理をマネージドサービス仕様情報２の最後まで繰り返す。すなわち、運用仕様グラフ生成部１１は、マネージドサービス仕様情報２の１行を読み込む（ステップＳ２２）。そして、運用仕様グラフ生成部１１は、グラフに、マネージドサービスに対するノード及びメソッドノードを追加し、状態の情報がある場合には、エッジ情報を「ｓｔａｔｕｓ」とする状態ノード及びメソッドノードを追加する（ステップＳ２３）。そして、運用仕様グラフ生成部１１は、ステップＳ２２に戻る。
【００７１】
そして、現行運用作業リスト４を最後まで処理すると、運用仕様グラフ生成部１１は、マネージドサービスの運用仕様グラフの情報として、グラフの情報をマネージドサービスグラフ記憶部１５に格納する（ステップＳ２４）。
【００７２】
このように、運用仕様グラフ生成部１１が、現行システム及びマネージドサービスの運用仕様グラフを作成することで、運用仕様分析装置１は、現行システムとマネージドサービスの運用仕様を比較することができる。
【００７３】
図１８は、現行システムの運用仕様グラフを拡張する処理のフローを示すフローチャートである。図１８は、図１５に示したステップＳ２の処理を示す。図１８に示すように、拡張部１６は、各ノードｎｏｄｅについて、ステップＳ３１〜ステップＳ３５の処理を行う。
【００７４】
すなわち、拡張部１６は、ｎｏｄｅと「ｈａｓ」でつながるノードがあるか否かを判定し（ステップＳ３１）、ｎｏｄｅと「ｈａｓ」でつながるノードがない場合には、ステップＳ３１に戻って次のノードの処理を行う。
【００７５】
一方、ｎｏｄｅと「ｈａｓ」でつながるノードがある場合には、拡張部１６は、つながるノードをｎｏｄｅ＃１として保持し（ステップＳ３２）、ｎｏｄｅと「ｓｔａｔｕｓ」でつながるノードがあるか否かを判定する（ステップＳ３３）。そして、ｎｏｄｅと「ｓｔａｔｕｓ」でつながるノードがない場合には、拡張部１６は、ステップＳ３１に戻って次のノードの処理を行う。
【００７６】
一方、ｎｏｄｅと「ｓｔａｔｕｓ」でつながるノードがある場合には、拡張部１６は、つながるノードをｎｏｄｅ＃２として保持し（ステップＳ３４）、ｎｏｄｅ＃１とｎｏｄｅ＃２を［ｓｔａｔｕｓ］で新規につなぐ（ステップＳ３５）。そして、拡張部１６は、ステップＳ３１に戻って次のノードの処理を行う。
【００７７】
このように、拡張部１６が、現行システムの運用仕様グラフを拡張することで、マネージドサービスの運用仕様グラフとマッチする可能性を高くすることができる。
【００７８】
図１９は、クエリグラフを生成する処理のフローを示すフローチャートである。図１９は、図１５に示したステップＳ３の処理を示す。図１９に示すように、クエリグラフ生成部１８は、全てのマネージドサービスに対してステップＳ４１〜ステップＳ４６の処理を行う。
【００７９】
すなわち、クエリグラフ生成部１８は、マネージドサービスを１つ選択し（ステップＳ４１）、選択したマネージドサービスの運用仕様グラフの複製をクエリグラフ生成用グラフとする（ステップＳ４２）。そして、クエリグラフ生成部１８は、クエリグラフ生成用グラフにメソッドノードがなくなるまでステップＳ４３〜ステップＳ４６の処理を繰り返す。
【００８０】
すなわち、クエリグラフ生成部１８は、クエリグラフ生成用グラフのマネージドサービスノードをルートとする木に対し、ルートから深さ優先探索し、リーフにたどりついた時点の経路を記録する（ステップＳ４３）。
【００８１】
そして、クエリグラフ生成部１８は、たどり着いたリーフノードがメソッドノードであるか否かを判定し（ステップＳ４４）、メソッドノードである場合には、経路をクエリグラフとしてクエリグラフの情報をクエリグラフ記憶部１９に格納する（ステップＳ４５）。そして、クエリグラフ生成部１８は、たどりついたリーフノードをクエリグラフ生成用グラフから削除し（ステップＳ４６）、ステップＳ４３に戻る。
【００８２】
図２０は、クエリグラフ生成の変遷イメージを示す図である。図２０（ａ）に示すように、クエリグラフ生成部１８は、ステップＳ４１において、「Ｗｅｂサーバサービス」を選択し、ステップＳ４３において、「Ｗｅｂサーバサービス」→「ｈｔｔｐＳｔａｔｕｓ」→「監視」の経路を記録する。そして、クエリグラフ生成部１８は、ステップＳ４５において、経路の情報をクエリグラフ記憶部１９に格納し、ステップＳ４６において、（ｂ）に示すように、「ｈｔｔｐＳｔａｔｕｓ」の「監視」を削除する。
【００８３】
そして、クエリグラフ生成部１８は、ステップＳ４３に戻って、「Ｗｅｂサーバサービス」→「ｈｔｔｐＳｔａｔｕｓ」を記録し、ステップＳ４６において、（ｃ）に示すように、「ｈｔｔｐＳｔａｔｕｓ」を削除する。
【００８４】
そして、クエリグラフ生成部１８は、ステップＳ４３に戻って、「Ｗｅｂサーバサービス」→「ｉｓＡｌｉｖｅ」を記録し、ステップＳ４５において、経路の情報をクエリグラフ記憶部１９に格納する。そして、クエリグラフ生成部１８は、ステップＳ４６において、（ｄ）に示すように、「ｉｓＡｌｉｖｅ」の「監視」を削除する。
【００８５】
このように、クエリグラフ生成部１８は、クエリグラフ生成用グラフのマネージドサービスノードをルートとする木に対し、ルートから深さ優先探索し、リーフのメソッドノードまでの経路をクエリグラフとすることで、クエリグラフを生成することができる。
【００８６】
上述してきたように、実施例では、運用仕様グラフ生成部１１が、現行システムの運用仕様グラフとマネージドサービスの運用仕様グラフを生成する。そして、拡張部１６が、現行システムの運用仕様グラフを拡張して拡張グラフを作成し、クエリグラフ生成部１８が、マネージドサービスの運用仕様グラフからクエリグラフを生成する。そして、グラフマッチング部２０が、拡張グラフとクエリグラフのマッチングを行い、実現範囲生成部２２が、マッチング結果６に基づいて、運用実現範囲情報１０を生成する。したがって、運用仕様分析装置１は、現行システムの運用仕様とマネージドサービスの運用仕様の比較を行うことできる。なお、拡張部１６は省略してもよい。
【００８７】
また、実施例では、拡張部１６は、現行システムの運用仕様グラフの全ノード全エッジに関し、「ノードＸ，ｈａｓ，ノードＹ」、「ノードＸ，ｓｔａｔｕｓ，ノードＡ」の関係があると「ノードＹ，ｓｔａｔｕｓ，ノードＡ」となるエッジを追加する。したがって、運用仕様分析装置１は、現行システムの運用仕様とマネージドサービスの運用仕様の比較を正確に行うことができる。
【００８８】
なお、実施例では、運用仕様分析装置１について説明したが、運用仕様分析装置１が有する構成をソフトウェアによって実現することで、同様の機能を有する運用仕様分析プログラムを得ることができる。そこで、運用仕様分析プログラムを実行するコンピュータについて説明する。
【００８９】
図２１は、実施例に係る運用仕様分析プログラムを実行するコンピュータのハードウェア構成を示す図である。図２１に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００９０】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００９１】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００９２】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００９３】
そして、コンピュータ５０において実行される運用仕様分析プログラムは、ＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、運用仕様分析プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされた運用仕様分析プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【００９４】
また、実施例では、オンプレミス又はプライベートクラウド上で動作する現行システムをパブリッククラウドへ移行する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、パブリッククラウドで動作する現行システムを異なるパブリッククラウドへ移行する場合等で２つの運用仕様を比較する場合に同様に適用することができる。
【符号の説明】
【００９５】
１    運用仕様分析装置
２    マネージドサービス仕様情報
３    現行システム構成情報
４    現行運用作業リスト
５    クエリグラフリスト
６    マッチング結果
７    実現可否結果
８    運用実現範囲
９    運用実現不可範囲
１０    運用実現範囲情報
１１    運用仕様グラフ生成部
１２    関係情報記憶部
１３    対応表記憶部
１４    現行グラフ記憶部
１５    マネージドサービスグラフ記憶部
１６    拡張部
１７    拡張グラフ記憶部
１８    クエリグラフ生成部
１９    クエリグラフ記憶部
２０    グラフマッチング部
２１    マッチング結果記憶部
２２    実現範囲生成部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１Ａ】
2018128973.tif 000003
【図１Ｂ】
2018128973.tif 000004
【図２】
2018128973.tif 000005
【図３】
2018128973.tif 000006
【図４】
2018128973.tif 000007
【図５】
2018128973.tif 000008
【図６】
2018128973.tif 000009
【図７】
2018128973.tif 000010
【図８】
2018128973.tif 000011
【図９】
2018128973.tif 000012
【図１０】
2018128973.tif 000013
【図１１】
2018128973.tif 000014
【図１２】
2018128973.tif 000015
【図１３】
2018128973.tif 000016
【図１４】
2018128973.tif 000017
【図１５】
2018128973.tif 000018
【図１６】
2018128973.tif 000019
【図１７】
2018128973.tif 000020
【図１８】
2018128973.tif 000021
【図１９】
2018128973.tif 000022
【図２０】
2018128973.tif 000023
【図２１】
2018128973.tif 000024