以下に図面を参照して、本発明にかかる変更プログラム、変更装置および変更方法の実施の形態を詳細に説明する。
(変更方法の一実施例)
図1は、実施の形態にかかる変更方法の一実施例を示す説明図である。図1において、変更装置101は、プログラムの変更作業を支援するコンピュータである。具体的には、例えば、変更装置101は、第1の情報処理装置に適用するプログラムP1を用いて第2の情報処理装置に適用するプログラムP2を生成する場合のプログラムP1に適用する変更の種別を決定する。
ここで、第1の情報処理装置は、第1のシステムを実現するためのOS(Operating System)がインストールされたコンピュータであり、第1のシステムの構築に必要な各種設定を行う。第1のシステムは、例えば、運用中の現行システム(旧システム)である。以下の説明では、第1のシステムを「現行システム」と表記する。
また、第2の情報処理装置は、第2のシステムを実現するためのOSがインストールされたコンピュータであり、第2のシステムの構築に必要な各種設定を行う。第2のシステムは、例えば、現行システムをもとに構築される新設システムである。以下の説明では、第2のシステムを「新設システム」と表記する。
プログラムP1は、例えば、第1の情報処理装置にログインして、第1の情報処理装置に対するコマンドを実行するためのプログラムである。同様に、プログラムP2は、例えば、第2の情報処理装置にログインして、第2の情報処理装置に対するコマンドを実行するためのプログラムである。なお、プログラムP1,P2の機能は同一とする。コマンドは、例えば、システム構築時に情報処理装置の各種設定を行うためのものである。コマンドとしては、例えば、OSの設定、フォルダの作成、ファイルの作成等を行うためのものがある。
なお、第1および第2の情報処理装置は、例えば、仮想マシンであってもよい。仮想マシンとは、コンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。仮想マシンの実体は、例えば、プログラムやOSなどのソフトウェア、ソフトウェアに与えられる変数、およびソフトウェアを実行させるためのハードウェア資源を指定する情報を含むものである。
また、変更装置101は、現行システムのCMDB(Configuration Management Database)110および新設システムのCMDB120にアクセス可能である。CMDBは、システムの構成情報を一元管理するデータベースである。
ここで、現行システムで動作するプログラムP1を流用して、新設システムで動作するプログラムP2を生成する場合、システムの環境に依存するパラメータ値の置換だけでは対応できないことがある。例えば、複数の情報処理装置に対して同じパスワードを設定する処理がプログラムP1に含まれている場合に、ある情報処理装置のパスワードだけ変更したい場合などには単純なパラメータ値の置換では対応することができない。このため、プログラムP1のどの箇所に対して、どのような変更を行えばよいのか判断することが難しい。
そこで、本実施の形態では、変更装置101は、現行システムで動作するプログラムP1から、現行/新設システム間の構成情報の差分に対応する変更箇所を検出し、検出した変更箇所に適用する変更種別を差分の内容に応じて決定する。これにより、プログラムP1の変更作業にかかる作業負荷を軽減させる。以下、変更装置101の処理例について説明する。
(1)変更装置101は、第1の情報処理装置の構成情報111と、第2の情報処理装置の構成情報121との差分を表す差分情報130を取得する。ここで、情報処理装置の構成情報には、情報処理装置に設定される各種の設定項目の値が含まれている。設定項目としては、例えば、情報処理装置を識別するホスト名、情報処理装置を使用するユーザ名、情報処理装置にログインするためのパスワードなどがある。
具体的には、例えば、変更装置101は、現行システムのCMDB110から、第1の情報処理装置の構成情報111を取得する。また、変更装置101は、新設システムのCMDB120から、第1の情報処理装置の構成情報111に対応する第2の情報処理装置の構成情報121を取得する。なお、情報処理装置間の構成情報の関連付けは設定されている。そして、変更装置101は、第1の情報処理装置の構成情報111と、第2の情報処理装置の構成情報121とを比較することにより、差分情報130を取得する。
(2)変更装置101は、第1の情報処理装置に適用するプログラムP1に記述された処理単位のブロックのうち、取得した差分情報130に対応する処理のブロックを検出する。ここで、処理とは、プログラムに定義されているひとまとまりの処理であり、例えば、タスクである。また、ブロックとは、処理に対応する1以上のコードを一括りにまとめたものである。ブロックの範囲は、例えば、処理名(例えば、タスク名)やシンボル(例えば、begin、endなど)によって特定される。
具体的には、例えば、変更装置101は、差分情報130を参照して、第1の情報処理装置に設定される複数の設定項目のうち、第2の情報処理装置とは値が異なる設定項目の値を特定する。そして、変更装置101は、プログラムP1の中から、特定した設定項目の値を含む処理のブロックを検出する。図1の例では、処理Xのブロック140が検出されている。
(3)変更装置101は、差分情報130の差分内容に基づいて、検出した処理Xのブロック140に適用する変更の変更種別を決定する。ここで、変更種別とは、現行システムで動作するプログラムP1を用いて、新設システムで動作するプログラムP2を生成する場合にプログラムP1に適用すべき変更の種類を表すものである。
具体的には、例えば、変更装置101は、差分情報130に基づいて、第1および第2の情報処理装置に設定される複数の設定項目のうち、情報処理装置を識別する特定の設定項目の値が情報処理装置間で異なるか否かを判定する。特定の設定項目は、例えば、ホスト名である。
また、変更装置101は、複数の設定項目のうち、特定の設定項目とは異なる他の設定項目の値が情報処理装置間で異なるか否かを判定する。他の設定項目は、例えば、パスワードである。そして、変更装置101は、特定の設定項目の値が情報処理装置間で異なり、かつ、他の設定項目の値が情報処理装置間で異なる場合、変更種別を、処理Xとは別の処理Yのブロックを生成する種別に決定する。
また、変更装置101は、特定の設定項目の値が情報処理装置間で異なり、かつ、他の設定項目の値が情報処理装置間で同じ場合、変更種別を、処理Xのブロック140内の特定の設定項目の値を置換する種別に決定する。
このように、変更装置101によれば、第1の情報処理装置に適用するプログラムP1から、第1の情報処理装置の構成情報111と第2の情報処理装置の構成情報121との差分を表す差分情報130に対応する処理Xのブロック140を検出することができる。また、変更装置101によれば、差分情報130の差分内容に応じて、プログラムP1内の処理Xのブロック140に適用する変更種別を決定することができる。
これにより、第2の情報処理装置に適用するプログラムP2を生成する場合に、作業者は、プログラムP1内のどの箇所にどのような変更を行えばよいのかを判断することができ、プログラムP1の変更作業にかかる作業負荷を軽減させることができる。また、作業者は、プログラムP1内の処理Xのブロック140に対して、決定された変更種別の変更を行うことにより、第2の情報処理装置に適用するプログラムP2を生成することができる。
(変更装置101のハードウェア構成例)
図2は、変更装置101のハードウェア構成例を示すブロック図である。図2において、変更装置101は、CPU201(Central Processing Unit)と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、I/F(Interface)206と、ディスプレイ207と、キーボード208と、マウス209と、を有する。また、各構成部はバス200によってそれぞれ接続される。
ここで、CPU201は、変更装置101の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
I/F206は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他の装置に接続される。そして、I/F206は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F206には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ207は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ207は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード208は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス209は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。なお、変更装置101は、上述した構成部のうち、例えば、ディスプレイ207、キーボード208、マウス209等を有さないことにしてもよい。
(差分情報リストDL)
つぎに、変更装置101が用いる差分情報リストDLの記憶内容について説明する。なお、差分情報リストDLは、例えば、図2に示したRAM203、磁気ディスク205等の記憶装置により実現される。
図3は、差分情報リストDLの記憶内容の一例を示す説明図(その1)である。図3において、差分情報リストDLは、現行システム(SystemA)の情報処理装置EMの構成情報と、新設システム(SystemB)の情報処理装置NMの構成情報との差分を表す差分情報(例えば、差分情報301,302)をリスト化して表す情報である。
具体的には、例えば、差分情報301は、現行システムの情報処理装置EMの構成情報311と新設システムの情報処理装置NMの構成情報312との差分を表す情報である。現行システムの情報処理装置EMの構成情報311には、ホスト名「systemA−sv1」、ユーザ名「root」およびパスワード「hoge1」が設定されている。
また、新設システムの情報処理装置NMの構成情報312には、ホスト名「systemB−sv1」、ユーザ名「root」およびパスワード「hoge2」が設定されている。ここでは、現行システムの情報処理装置EMの構成情報311と新設システムの情報処理装置NMの構成情報312との間でホスト名およびパスワードが異なる。
(変更ルールテーブル400の記憶内容)
つぎに、変更装置101が用いる変更ルールテーブル400の記憶内容について説明する。なお、変更ルールテーブル400は、例えば、図2に示したROM202、RAM203、磁気ディスク205等の記憶装置に記憶される。
図4は、変更ルールテーブル400の記憶内容の一例を示す説明図である。図4において、変更ルールテーブル400は、ホスト名、その他の設定、タスクの実行先ホストおよびプログラム変更ルールのフィールドを有し、各フィールドに情報を設定することで、ルール情報400−1〜400−4がレコードとして記憶されている。
ホスト名フィールドには、現行システムと新設システムとの間でホスト名(Hosts)が変更されている場合には「変更あり」が設定され、変更されていない場合には「変更なし」が設定される。また、その他の設定フィールドには、現行システムと新設システムとの間でホスト名(Hosts)以外の設定項目(例えば、Password等)が変更されている場合には「変更あり」が設定され、変更されていない場合には「変更なし」が設定される。
また、タスクの実行先ホストフィールドには、タスクの実行先ホストが1つの場合には「1つ」が設定され、タスクの実行先ホストが複数の場合には「2つ以上」が設定される。なお、タスクの実行先ホストについての条件がない場合には「−」が設定される。また、プログラム変更ルールフィールドには、プログラム変更ルールが設定される。プログラム変更ルールは、プログラムの変更種別を示すものである。
変更ルールテーブル400によれば、ホスト名、その他の設定およびタスクの実行先ホストの各フィールドに設定されている情報の組み合わせに応じて、プログラム変更ルールを一意に特定することができる。例えば、ルール情報400−1によれば、ホスト名「変更あり」、その他の設定「変更あり」、タスクの実行先ホスト「−」の場合のプログラム変更ルール「サブタスクを作成」を特定することができる。
(変更装置101の機能的構成例)
図5は、変更装置101の機能的構成例を示すブロック図である。図5において、変更装置101は、取得部501と、作成部502と、検出部503と、決定部504と、変更部505と、出力部506と、を含む構成である。各機能部は、具体的には、例えば、図2に示したROM202、RAM203、磁気ディスク205等の記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F206により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM203、磁気ディスク205等の記憶装置に記憶される。
取得部501は、現行システムの情報処理装置EMに適用するプログラムPを取得する機能を有する。ここで、情報処理装置EMは、現行システム内のいずれかの情報処理装置である。また、プログラムPは、現行システムで動作するプログラムであり、例えば、現行システムの情報処理装置EMにログインして、情報処理装置EMに対するコマンドを実行するためのものである。
具体的には、例えば、取得部501は、キーボード208やマウス209を用いたユーザの操作入力により、現行システムの情報処理装置EMに適用するプログラムPを取得する。また、取得部501は、ネットワーク210を介して、他のコンピュータから現行システムの情報処理装置EMに適用するプログラムPを取得することにしてもよい。
また、取得部501は、現行システムのCMDB110から、現行システムの情報処理装置EMの構成情報を取得する機能を有する。具体的には、例えば、取得部501は、情報処理装置EMのホスト名「SystemA−sv1」を選択することにより、CMDB110から現行システムの情報処理装置EMの構成情報311を取得する。
また、取得部501は、新設システムのCMDB120から、新設システムの情報処理装置NMの構成情報を取得する機能を有する。具体的には、例えば、取得部501は、新設システムのCMDB120から、取得した現行システムの情報処理装置EMの構成情報311に対応する新設システムの情報処理装置NMの構成情報312を取得する。なお、システム間で対応する情報処理装置同士の構成情報の関連付けは予め設定されている。
作成部502は、現行システムの情報処理装置EMの構成情報と、新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dを作成する機能を有する。具体的には、例えば、作成部502は、現行システムの情報処理装置EMの構成情報311と、新設システムの情報処理装置NMの構成情報312とを比較することにより差分情報301を作成する。作成された差分情報Dは、例えば、図3に示した差分情報リストDLに記憶される。
検出部503は、現行システムの情報処理装置EMに適用するプログラムPに記述された処理単位のブロックのうち、取得された差分情報Dに対応する処理のブロックを検出する機能を有する。以下の説明では、プログラムPに記述された処理単位のブロックのうち差分情報Dに対応する処理のブロックを「タスクTのブロックbk」と表記する場合がある。
具体的には、例えば、検出部503は、差分情報Dを参照して、現行システムの情報処理装置EMの構成情報のうち、新設システムの情報処理装置NMの構成情報との差分を表す設定項目の値をキーワード(KEYWORD)に設定する。そして、検出部503は、現行システムの情報処理装置EMに適用するプログラムPから、キーワード(KEYWORD)を含むタスクTのブロックbkを検出する。なお、検出部503の具体的な処理内容については、図6等を用いて後述する。
決定部504は、差分情報Dの差分内容に基づいて、検出されたタスクTのブロックbkに適用する変更の変更種別を決定する機能を有する。具体的には、例えば、決定部504は、図4に示した変更ルールテーブル400を参照して、差分情報Dの差分内容に応じてタスクTのブロックbkに適用するプログラム変更ルールを決定する。
より具体的には、例えば、まず、決定部504は、差分情報Dに基づいて、現行システムおよび新設システムの情報処理装置EM,NMに設定される複数の設定項目のうち、特定の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここで、特定の設定項目は、システム内の情報処理装置を一意に識別する情報が設定される項目であり、例えば、情報処理装置のホスト名(Hosts)、IPアドレスなどである。以下の説明では、特定の設定項目として、「ホスト名(Hosts)」を例に挙げて説明する。
また、決定部504は、複数の設定項目のうち、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここで、他の設定項目は、例えば、情報処理装置を使用するユーザ名(User)、情報処理装置にログインするパスワード(Password)、情報処理装置の動作条件(Maintenancemode、Cluster)、ファイルやフォルダ等のパス、利用するコマンドのパラメータなどが設定される項目である。
そして、決定部504は、ホスト名の値が情報処理装置EM,NM間で異なり、かつ、他の設定項目の値が情報処理装置EM,NM間で異なる場合、変更ルールテーブル400を参照して、プログラム変更ルールを「サブタスクを作成」に決定する。「サブタスクを作成」は、タスクTとは別のタスクを生成する変更種別を示す。以下の説明では、タスクTとは別のタスクを「サブタスクST」と表記する場合がある。
また、決定部504は、ホスト名の値が情報処理装置EM,NM間で異なり、かつ、他の設定項目の値が情報処理装置EM,NM間で同じ場合、変更ルールテーブル400を参照して、プログラム変更ルールを「ホスト名の置換」に決定する。「ホスト名の置換」は、タスクTのブロックbk内のホスト名の値を置換する変更種別を示す。
また、決定部504は、ホスト名の値が情報処理装置EM,NM間で同じ場合、タスクTのブロックbkを参照して、タスクTの実行先が複数の情報処理装置か否かを判定することにしてもよい。タスクTの実行先が複数とは、複数の情報処理装置に対してタスクTが実行されることを表す。
なお、タスクTの実行先の数は、例えば、後述の図6に示すようなタスクTのブロックbk1に含まれる「hosts=>[]do」の[]内に記述されるホスト名の数によって特定することができる。図6の例では、タスクTの実行先の数は「2」である。
そして、決定部504は、タスクTの実行先が複数の情報処理装置の場合、変更ルールテーブル400を参照して、プログラム変更ルールを「サブタスクを作成」に決定する。一方、タスクTの実行先が1つの情報処理装置の場合、決定部504は、変更ルールテーブル400を参照して、プログラム変更ルールを「設定項目の置換」に決定する。「設定項目の置換」は、タスクTのブロックbk内の他の設定項目の値を置換する変更種別を示す。
変更部505は、決定されたプログラム変更ルールに基づいて、プログラムPを変更する機能を有する。具体的には、例えば、プログラム変更ルールが「サブタスクを作成」に決定された場合、まず、変更部505は、タスクTのブロックbkを複製することにより、サブタスクSTのブロックbkを生成する。
つぎに、変更部505は、差分情報Dを参照して、サブタスクSTのブロックbk内の設定項目の値を、新設システムの情報処理装置NMの設定項目の値に置換する。この際、変更部505は、サブタスクSTのブロックbk内の設定項目の値のうち、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との差分を表す設定項目の値のみを置換することにしてもよい。
そして、変更部505は、タスクTのブロックbk内の現行システムの情報処理装置EMのホスト名の値を削除するとともに、タスクTのブロックbk内にサブタスクSTを呼び出すための記述を挿入する。これにより、現行システムの情報処理装置EMに適用するプログラムPを用いて、新設システムの情報処理装置NMに適用するプログラムPを生成することができる。
なお、サブタスクSTのブロックbkは、タスクTからサブタスクSTを呼び出し可能であれば、プログラムPとは別ファイルで生成されてもよく、また、プログラムP内に挿入されてもよい。ただし、サブタスクSTのブロックbkを別ファイルで生成することで、プログラムPの記述量の増大を抑制してデバッグ作業の効率化を図ることができる。
また、例えば、プログラム変更ルールが「ホスト名の置換」に決定された場合、変更部505は、タスクTのブロックbk内の情報処理装置EMのホスト名の値を、情報処理装置NMのホスト名の値に置換する。これにより、タスクTのブロックbkを、新設システムの情報処理装置NMに適用可能に変更することができる。
また、例えば、プログラム変更ルールが「設定項目の置換」に決定された場合、変更部505は、タスクTのブロックbk内の情報処理装置EMの他の設定項目の値を、情報処理装置NMの他の設定項目の値に置換する。これにより、タスクTのブロックbkを、新設システムの情報処理装置NMに適用可能に変更することができる。
また、変更部505は、新設システムの情報処理装置NMに動作条件が設定されている場合、サブタスクSTのブロックbk内に動作条件に関する条件文を挿入することにしてもよい。ここで、動作条件とは、新設システムの情報処理装置NMにサブタスクSTを実行させる、あるいは、実行させない条件である。
動作条件としては、例えば、情報処理装置NMがメンテナンス状態の場合にはサブタスクSTを実行させない条件がある。また、情報処理装置NMが他の情報処理装置とクラスタリング(例えば、2重化)されている場合に、他の情報処理装置の電源がONのときには情報処理装置NMにサブタスクSTを実行させない条件がある。
新設システムの情報処理装置NMの動作条件は、例えば、新設システムの情報処理装置NMの構成情報(例えば、後述の図8に示す構成情報812)から特定することができる。なお、新設システムの情報処理装置NMに動作条件が設定されている場合のプログラムPの変更例については、例えば、図9および図10を用いて後述する。
また、変更部505は、プログラムPを現行システムおよび新設システムの情報処理装置EM,NMに適用する場合、各情報処理装置EM,NMの定義情報dfがあるか否かを判定することにしてもよい。ここで、プログラムPを現行システムおよび新設システムの情報処理装置EM,NMに適用するか否かは、例えば、キーボード208やマウス209を用いたユーザの操作入力により指定される。また、定義情報dfは、各情報処理装置EM,NMに設定される設定項目の値を定義するものである。
情報処理装置EMの定義情報dfは、例えば、情報処理装置EMの構成情報と対応付けて現行システムのCMDB110に記憶される。また、情報処理装置NMの定義情報dfは、例えば、情報処理装置NMの構成情報と対応付けて新設システムのCMDB120に記憶される。なお、各情報処理装置EM,NMの定義情報dfの具体例については、図18を用いて後述する。
ここで、各情報処理装置EM,NMの定義情報dfがある場合、変更部505は、各情報処理装置EM,NMの定義情報dfに基づいて、プログラムPを変更することにしてもよい。なお、各情報処理装置EM,NMの定義情報dfに基づくプログラムPの変更例については、図19を用いて後述する。
一方、各情報処理装置EM,NMの定義情報dfがない場合には、決定部504が、差分情報Dの差分内容に基づいて、検出されたタスクTのブロックbkに適用する変更の種別を決定することにしてもよい。なお、各情報処理装置EM,NMの定義情報dfがない場合のプログラムPの変更例については、図15および図16を用いて後述する。
出力部506は、変更部505によって変更された変更後のプログラムPを出力する機能を有する。これにより、現行システムで動作するプログラムPと同じ機能を有し、かつ、新設システムで動作するプログラムPを出力することができる。
また、出力部506は、決定された決定結果を出力することにしてもよい。具体的には、例えば、出力部506は、プログラムPに含まれるタスクTを識別する情報(例えば、タスク名)と対応付けて、タスクTのブロックbkに適用するプログラム変更ルールを出力することにしてもよい。
出力部506の出力形式としては、例えば、RAM203、磁気ディスク205等の記憶装置への記憶、ディスプレイ207への表示、不図示のプリンタへの印刷出力、I/F206による外部のコンピュータへの送信がある。
なお、上述した説明では、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dを作成することにしたが、これに限らない。具体的には、例えば、取得部501が、他のコンピュータで作成された差分情報Dを取得することにしてもよい。
(プログラムPの変更例)
つぎに、プログラムPの変更例について説明する。まず、プログラム変更ルールが「サブタスクを作成」に決定された場合のプログラムPの変更例について説明する。
<第1変更例>
図6および図7は、プログラムPの第1変更例を示す説明図である。図6において、(6−1)検出部503は、差分情報リストDLから差分情報Dを選択する。ここでは、差分情報Dとして、図3に示した差分情報301が選択された場合を想定する。
(6−2)検出部503は、選択した差分情報301を参照して、現行システムの情報処理装置EMの構成情報311のうち、新設システムの情報処理装置NMの構成情報312との差分を表す設定項目の値をキーワード(KEYWORD)に設定する。ここでは、キーワード(KEYWORD)として「Hosts=systemA−sv1」と「Password=hoge1」が設定される。
(6−3)検出部503は、現行システムの情報処理装置EMに適用するプログラムPから、キーワード(KEYWORD)を含むタスクTのブロックbkを検出する。ここでは、タスク名「SAMPLE」のタスクTのブロックbk1が検出された場合を想定する。これにより、変更対象となるタスクTのブロックbk1を検出することができる。
図7において、(6−4)決定部504は、差分情報301を参照して、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、ホスト名が「systemA−sv1」から「systemB−sv1」に変更されているため、決定部504は、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なると判定する。
また、決定部504は、差分情報301を参照して、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、パスワード(Password)が「hoge1」から「hoge2」に変更されているため、決定部504は、他の設定項目の値が情報処理装置EM,NM間で異なると判定する。
(6−5)決定部504は、判定した判定結果に基づいて、変更ルールテーブル400を参照して、タスクTのブロックbk1に適用するプログラム変更ルールを決定する。ここでは、プログラム変更ルールが「サブタスクを作成」に決定される。
(6−6)変更部505は、プログラム変更ルールが「サブタスクを作成」に決定された場合、タスクTのブロックbk1を複製することにより、サブタスクSTのブロックbkを生成する。ここでは、タスク名「sub_SAMPLE」のサブタスクSTのブロックbk2が生成される。
(6−7)変更部505は、差分情報301を参照して、サブタスクSTのブロックbk2内の設定項目の値を、新設システムの情報処理装置NMの設定項目の値に置換する。ここでは、サブタスクST内のブロックbk2に記述されている実行先の情報処理装置のホスト名(Hosts)が「systemA−sv1,SystemA−sv2」から「systemB−sv1」に置換される。
また、サブタスクSTのブロックbk2に記述されているパスワード(Password)が「hoge1」から「hoge2」に置換される。これにより、新設システムの情報処理装置NM(ホスト名:SystemB−sv1)に適用するサブタスクSTのブロックbk2を生成することができる。なお、プログラムPにおいて、タスクT(または、サブタスクST)の実行先の情報処理装置のホスト名(Hosts)は、「hosts=>[]do」の[]内に記述される。
(6−8)変更部505は、タスクTのブロックbk1内の現行システムの情報処理装置EMのホスト名の値「SystemA−sv1」を削除する。また、変更部505は、タスクTのブロックbk1内にサブタスクSTを呼び出すためのコード「sub_SAMPLE」を挿入する。これにより、タスクTの実行時にサブタスクSTを呼び出して実行することができる。
なお、差分情報302が選択された場合は、上記(6−5)において、プログラム変更ルールが「ホスト名の置換」に決定される。この場合、変更部505は、タスクTのブロックbk内の情報処理装置EMのホスト名の値「SystemA−sv1」を、情報処理装置NMのホスト名の値「SystemB−sv1」に置換する。これにより、タスク名「SAMPLE」のタスクTのブロックbk1を、新設システムの情報処理装置NMに適用可能に変更することができる。
<第2変更例>
つぎに、新設システムの情報処理装置NMに動作条件が設定される場合のプログラムPの変更例について説明する。ここで、現行システムの情報処理装置EMの動作条件が非設定の場合、プログラムP内の情報処理装置EMの動作条件についての記述は省略されることが多い。このため、新設システムの情報処理装置NMに新たな動作条件が設定される場合は、システムの環境に依存するパラメータ値の置換だけでは対応できない。ここではまず、新設システムの情報処理装置NMにメンテナンスモードが設定される場合のプログラムPの変更例について説明する。
図8は、差分情報リストDLの記憶内容の一例を示す説明図(その2)である。図8において、差分情報リストDLには、差分情報801と、差分情報802とが含まれている。具体的には、例えば、差分情報801は、現行システムの情報処理装置EMの構成情報811と新設システムの情報処理装置NMの構成情報812との差分を表す情報である。
現行システムの情報処理装置EMの構成情報811には、ホスト名「systemA−sv1」、ユーザ名「root」、パスワード「hoge1」およびメンテナンスモード「off」が設定されている。
また、新設システムの情報処理装置NMの構成情報812には、ホスト名「systemB−sv1」、ユーザ名「root」、パスワード「hoge1」およびメンテナンスモード「on」が設定されている。ここでは、現行システムの情報処理装置EMの構成情報811と新設システムの情報処理装置NMの構成情報812との間でホスト名およびメンテナンスモードが異なる。
図9および図10は、プログラムPの第2変更例を示す説明図である。図9において、(9−1)検出部503は、差分情報リストDLから差分情報Dを選択する。ここでは、差分情報Dとして、図8に示した差分情報801が選択された場合を想定する。
(9−2)検出部503は、選択した差分情報801を参照して、現行システムの情報処理装置EMの構成情報811のうち、新設システムの情報処理装置NMの構成情報812との差分を表す設定項目の値をキーワード(KEYWORD)に設定する。ここでは、キーワード(KEYWORD)として「Hosts=systemA−sv1」が設定される。
上述したように、プログラムPにおいて、現行システムの情報処理装置EMの動作条件についての記述は省略される場合がある(例えば、Maintenancemodeがoffの場合など)。このため、キーワードには動作条件の値を設定しないことにしてもよい。ここでは、動作条件の値「Maintenancemode=off」がキーワードに設定されない場合を例に挙げる。
(9−3)検出部503は、現行システムの情報処理装置EMに適用するプログラムPから、キーワード(KEYWORD)を含むタスクTのブロックbkを検出する。ここでは、タスク名「SAMPLE」のタスクTのブロックbk3が検出された場合を想定する。これにより、変更対象となるタスクTのブロックbk3を検出することができる。
図10において、(9−4)決定部504は、差分情報801を参照して、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、ホスト名が「systemA−sv1」から「systemB−sv1」に変更されているため、決定部504は、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なると判定する。
また、決定部504は、差分情報801を参照して、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、メンテナンスモード(Maintenancemode)が「off」から「on」に変更されているため、決定部504は、他の設定項目の値が情報処理装置EM,NM間で異なると判定する。
(9−5)決定部504は、判定した判定結果に基づいて、変更ルールテーブル400を参照して、タスクTのブロックbk3に適用するプログラム変更ルールを決定する。ここでは、プログラム変更ルールが「サブタスクを作成」に決定される。
(9−6)変更部505は、プログラム変更ルールが「サブタスクを作成」に決定された場合、タスクTのブロックbk3を複製することにより、サブタスクSTのブロックbkを生成する。ここでは、タスク名「sub_SAMPLE」のサブタスクSTのブロックbk4が生成される。
(9−7)変更部505は、差分情報801を参照して、サブタスクSTのブロックbk4内の設定項目の値を、新設システムの情報処理装置NMの設定項目の値に置換する。ここでは、サブタスクST内のブロックbk4に記述されている実行先の情報処理装置のホスト名(Hosts)が「systemA−sv1,SystemA−sv2」から「systemB−sv1」に置換される。
また、変更部505は、サブタスクSTのブロックbk4内に情報処理装置NMの動作条件に関する条件文を挿入する。具体的には、例えば、変更部505は、差分情報801を参照して、サブタスクSTのブロックbk4内に条件文「if maintenance_mode==ON return」を挿入する。
これにより、新設システムの情報処理装置NM(ホスト名:SystemB−sv1)に適用するサブタスクSTのブロックbk4を生成することができる。また、情報処理装置NMがメンテナンス状態の場合にはサブタスクSTを実行させないようにすることができる。
(9−8)変更部505は、タスクTのブロックbk3内の現行システムの情報処理装置EMのホスト名の値「SystemA−sv1」を削除する。また、変更部505は、タスクTのブロックbk3内にサブタスクSTを呼び出すためのコード「sub_SAMPLE」を挿入する。これにより、タスクTの実行時にサブタスクSTを呼び出して実行することができる。
<第3変更例>
つぎに、新設システムの情報処理装置NMにクラスタリングが設定される場合のプログラムPの変更例について説明する。
図11は、差分情報リストDLの記憶内容の一例を示す説明図(その3)である。図11において、差分情報リストDLには、差分情報1101が含まれている。具体的には、例えば、差分情報1101は、現行システムの情報処理装置EMの構成情報1111と新設システムの情報処理装置NMの構成情報1112との差分を表す情報である。
現行システムの情報処理装置EMの構成情報1111には、ホスト名「systemA−sv1」、ユーザ名「root」、パスワード「hoge1」およびクラスタリング「off」が設定されている。
また、新設システムの情報処理装置NMの構成情報1112には、ホスト名「systemB−sv1−primary,systemB−sv1−secondary」、ユーザ名「root」、パスワード「hoge1」およびクラスタリング「on」が設定されている。ここでは、現行システムの情報処理装置EMの構成情報1111と新設システムの情報処理装置NMの構成情報1112との間でホスト名およびクラスタリングが異なる。
図12および図13は、プログラムPの第3変更例を示す説明図である。図12において、(12−1)検出部503は、差分情報リストDLから差分情報Dを選択する。ここでは、差分情報Dとして、図11に示した差分情報1101が選択された場合を想定する。
(12−2)検出部503は、選択した差分情報1101を参照して、現行システムの情報処理装置EMの構成情報1111のうち、新設システムの情報処理装置NMの構成情報1112との差分を表す設定項目の値をキーワード(KEYWORD)に設定する。ここでは、キーワード(KEYWORD)として「Hosts=systemA−sv1」が設定される。
上述したように、プログラムPにおいて、現行システムの情報処理装置EMの動作条件についての記述は省略される場合がある(例えば、Clusterがoffの場合など)。このため、ここでは動作条件の値「Cluster=off」がキーワードに設定されない場合を例に挙げる。
(12−3)検出部503は、現行システムの情報処理装置EMに適用するプログラムPから、キーワード(KEYWORD)を含むタスクTのブロックbkを検出する。ここでは、タスク名「SAMPLE」のタスクTのブロックbk5が検出された場合を想定する。これにより、変更対象となるタスクTのブロックbk5を検出することができる。
図13において、(12−4)決定部504は、差分情報1101を参照して、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、ホスト名が「systemA−sv1」から「systemB−sv1−primary,systemB−sv1−secondary」に変更されているため、決定部504は、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なると判定する。
また、決定部504は、差分情報1101を参照して、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、クラスタリング(Cluster)が「off」から「on」に変更されているため、決定部504は、他の設定項目の値が情報処理装置EM,NM間で異なると判定する。
(12−5)決定部504は、判定した判定結果に基づいて、変更ルールテーブル400を参照して、タスクTのブロックbk5に適用するプログラム変更ルールを決定する。ここでは、プログラム変更ルールが「サブタスクを作成」に決定される。
(12−6)変更部505は、プログラム変更ルールが「サブタスクを作成」に決定された場合、タスクTのブロックbk5を複製することにより、サブタスクSTのブロックbkを生成する。ここでは、タスク名「sub_SAMPLE」のサブタスクSTのブロックbk6が生成される。
(12−7)変更部505は、タスクTのブロックbk5内の現行システムの情報処理装置EMのホスト名の値「SystemA−sv1」を新設システムの情報処理装置NMのホスト名の値「systemB−sv1−primary」に置換する。また、変更部505は、タスクTのブロックbk5内にサブタスクSTを呼び出すためのコード「if SystemB−sv1−primary==POWER OFF sub_SAMPLE」を挿入する。これにより、タスクTの実行時に、ホスト名「SystemB−sv1−primary」の情報処理装置NMの電源がOFFの場合にサブタスクSTを呼び出して実行することができる。
(12−8)変更部505は、差分情報1101を参照して、サブタスクSTのブロックbk6内の設定項目の値を、新設システムの情報処理装置NMの設定項目の値に置換する。ここでは、サブタスクST内のブロックbk6に記述されている実行先の情報処理装置のホスト名(Hosts)が「systemA−sv1」から「systemB−sv1−secondary」に置換される。
これにより、新設システムの情報処理装置NM(ホスト名:systemB−sv1−secondary)に適用するサブタスクSTのブロックbk6を生成することができる。
<第4変更例>
つぎに、プログラムPを現行システムおよび新設システムの情報処理装置EM,NMに適用する場合のプログラムPの変更例について説明する。まず、各情報処理装置EM,NMの定義情報dfがない場合について説明する。
図14は、差分情報リストDLの記憶内容の一例を示す説明図(その4)である。図14において、差分情報リストDLには、差分情報1401が含まれている。具体的には、例えば、差分情報1401は、現行システムの情報処理装置EMの構成情報1411と新設システムの情報処理装置NMの構成情報1412との差分を表す情報である。
現行システムの情報処理装置EMの構成情報1411には、ホスト名「systemA−sv1」、ユーザ名「root」およびパスワード「hoge1」が設定されている。また、新設システムの情報処理装置NMの構成情報1412には、ホスト名「systemB−sv1」、ユーザ名「root」およびパスワード「hoge1」が設定されている。ここでは、現行システムの情報処理装置EMの構成情報1411と新設システムの情報処理装置NMの構成情報1412との間でホスト名が異なる。
図15および図16は、プログラムPの第4変更例を示す説明図である。図15において、(15−1)検出部503は、差分情報リストDLから差分情報Dを選択する。ここでは、差分情報Dとして、図14に示した差分情報1401が選択された場合を想定する。
(15−2)検出部503は、選択した差分情報1401を参照して、現行システムの情報処理装置EMの構成情報1411のうち、新設システムの情報処理装置NMの構成情報1412との差分を表す設定項目の値をキーワード(KEYWORD)に設定する。ここでは、キーワード(KEYWORD)として「Hosts=systemA−sv1」が設定される。
(15−3)検出部503は、現行システムの情報処理装置EMに適用するプログラムPから、キーワード(KEYWORD)を含むタスクTのブロックbkを検出する。ここでは、タスク名「SAMPLE」のタスクTのブロックbk7が検出された場合を想定する。
図16において、(15−4)決定部504は、差分情報1401を参照して、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、ホスト名が「systemA−sv1」から「systemB−sv1」に変更されているため、決定部504は、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なると判定する。
また、決定部504は、差分情報1401を参照して、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する。ここでは、他の設定項目の値が変更されていないため、決定部504は、他の設定項目の値が情報処理装置EM,NM間で同じであると判定する。
(15−5)決定部504は、判定した判定結果に基づいて、変更ルールテーブル400を参照して、タスクTのブロックbk7に適用するプログラム変更ルールを決定する。ここでは、プログラム変更ルールが「サブタスクを作成」に決定される。
(15−6)変更部505は、プログラム変更ルールが「サブタスクを作成」に決定された場合、タスクTのブロックbk7を複製することにより、サブタスクSTのブロックbkを生成する。ここでは、タスク名「SAMPLE」のサブタスクSTのブロックbk8が生成される。
(15−7)変更部505は、差分情報1401を参照して、サブタスクSTのブロックbk8内の設定項目の値を、新設システムの情報処理装置NMの設定項目の値に置換する。ここでは、サブタスクSTのブロックbk8に記述されている実行先の情報処理装置のホスト名(Hosts)が「systemA−sv1」から「systemB−sv1」に置換される。
また、変更部505は、サブタスクSTのブロックbk8の先頭に、システムが新設システム(SystemB)の場合にサブタスクSTを実行するという条件文「if system==B」を挿入する。これにより、プログラムPを新設システムで動作させた場合に、タスク名「SAMPLE」のサブタスクSTを実行することができる。
(15−8)変更部505は、タスクTのブロックbk7の先頭に、システムが現行システム(SystemA)の場合にタスクTを実行するという条件文「if system==A」を挿入する。これにより、プログラムPを現行システムで動作させた場合に、タスク名「SAMPLE」のタスクTを実行することができる。
図17は、現行システムおよび新設システムで動作するプログラムPの具体例を示す説明図である。図17において、プログラムPは、タスク名「SAMPLE」のタスクTのブロックbk7と、タスク名「SAMPLE」のサブタスクSTのブロックbk8と、を含む。このプログラムPによれば、現行システムで動作させた場合はタスク名「SAMPLE」のタスクTを実行することができ、新設システムで動作させた場合はタスク名「SAMPLE」のサブタスクSTを実行することができる。
<第5変更例>
つぎに、各情報処理装置EM,NMの定義情報dfがある場合に、プログラムPを現行システムおよび新設システムの情報処理装置EM,NMに適用する際のプログラムPの変更例について説明する。
図18は、定義情報dfの具体例を示す説明図である。図18において、定義情報df1は、現行システムの情報処理装置EMに設定される各設定項目の値を定義するものである。具体的には、例えば、定義情報df1には、ホスト名「systemA−sv1」の情報処理装置EMに設定されるユーザ名(User)の値「root」と、パスワード(Password)の値「hoge1」とが定義されている。
また、定義情報df2は、新設システムの情報処理装置NMに設定される各設定項目の値を定義するものである。具体的には、例えば、定義情報df2には、ホスト名「systemB−sv1」の情報処理装置NMに設定されるユーザ名(User)の値「root」と、パスワード(Password)の値「hoge2」とが定義されている。
以下の説明では、定義情報df1のファイル名を「systemA−sample.def」とし、定義情報df2のファイル名を「systemB−sample.def」とする。
図19は、プログラムPの第5変更例を示す説明図である。図19において、変更部505は、現行システムで動作するプログラムPに記述されているタスク名「SAMPLE」のタスクTを、現行システムおよび新設システムごとのタスクTに分割することにより、現行システムおよび新設システムで動作するプログラムPに変更する。
このプログラムPによれば、現行システムで動作させた場合は、定義情報df1をインポートしてタスク名「SAMPLE」のタスクTを実行することができる。また、新設システムで動作させた場合は、定義情報df2をインポートしてタスク名「SAMPLE」のタスクTを実行することができる。
なお、ここでは定義情報df1,df2をインポートする場合を例に挙げて説明したが、プログラムPに定義情報df1,df2の定義内容がそれぞれ記述されていてもよい。
(変更装置101の変更処理手順)
つぎに、変更装置101の変更処理手順について説明する。
図20は、変更装置101の変更処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、変更装置101は、現行システムで動作するプログラムPを取得する(ステップS2001)。つぎに、変更装置101は、差分情報リストDLを作成する差分情報リスト作成処理を実行する(ステップS2002)。なお、差分情報リスト作成処理の具体的な処理手順については、図21を用いて後述する。
そして、変更装置101は、差分情報リストDLから差分情報Dを選択する(ステップS2003)。つぎに、変更装置101は、差分情報Dを参照して、現行システムの情報処理装置EMの構成情報のうち、新設システムの情報処理装置NMの構成情報との差分を表す設定項目の値をキーワードに設定する(ステップS2004)。
そして、変更装置101は、プログラムPからキーワードを含むタスクTのブロックbkを検出する(ステップS2005)。つぎに、変更装置101は、プログラムPを変更するプログラム変更処理を実行する(ステップS2006)。なお、プログラム変更処理の具体的な処理手順については、図22および図23を用いて後述する。
そして、変更装置101は、差分情報リストDLから選択していない未選択の差分情報Dがあるか否かを判断する(ステップS2007)。ここで、未選択の差分情報Dがある場合(ステップS2007:Yes)、変更装置101は、ステップS2003に戻って、差分情報リストDLから未選択の差分情報Dを選択する。
一方、未選択の差分情報Dがない場合(ステップS2007:No)、変更装置101は、変更後のプログラムPを出力して(ステップS2008)、本フローチャートによる一連の処理を終了する。
これにより、現行システムで動作するプログラムPを用いて、新設システムで動作するプログラムPを生成することができる。なお、ステップS2005において、複数のタスクTのブロックbkが検出された場合は、変更装置101は、複数のタスクTの各々について、プログラムPを変更するプログラム変更処理を実行する。
<差分情報リスト作成処理手順>
つぎに、図20に示したステップS2002の差分情報リスト作成処理の具体的な処理手順について説明する。
図21は、差分情報リスト作成処理の具体的処理手順の一例を示すフローチャートである。図21のフローチャートにおいて、まず、変更装置101は、現行システムのCMDB110から、現行システムの情報処理装置EMの構成情報を取得する(ステップS2101)。
つぎに、変更装置101は、新設システムのCMDB120から、新設システムの情報処理装置NMの構成情報を取得する(ステップS2102)。そして、変更装置101は、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報とを比較する(ステップS2103)。
つぎに、変更装置101は、比較した比較結果に基づいて、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との間に差分があるか否かを判断する(ステップS2104)。ここで、差分がない場合(ステップS2104:No)、変更装置101は、ステップS2107に移行する。
一方、差分がある場合(ステップS2104:Yes)、変更装置101は、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dを作成する(ステップS2105)。そして、変更装置101は、作成した差分情報Dを差分情報リストDLに登録する(ステップS2106)。
つぎに、変更装置101は、現行システムのCMDB110から取得していない未取得の情報処理装置EMの構成情報があるか否かを判断する(ステップS2107)。ここで、未取得の情報処理装置EMの構成情報がある場合(ステップS2107:Yes)、変更装置101は、ステップS2101に戻って、現行システムのCMDB110から、未取得の情報処理装置EMの構成情報を取得する。
一方、未取得の情報処理装置EMの構成情報がない場合(ステップS2107:No)、変更装置101は、本フローチャートによる一連の処理を終了して、差分情報リスト作成処理を呼び出したステップに戻る。
これにより、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dをリスト化した差分情報リストDLを作成することができる。
<プログラム変更処理手順>
つぎに、図20に示したステップS2006のプログラム変更処理の具体的な処理手順について説明する。
図22および図23は、プログラム変更処理の具体的処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、変更装置101は、現行システムおよび新設システムでプログラムPを動作させるか否かを判断する(ステップS2201)。
ここで、新設システムのみでプログラムPを動作させる場合(ステップS2201:No)、変更装置101は、差分情報Dに基づいて、ホスト名の値が情報処理装置EM,NM間で異なるか否かを判定する(ステップS2202)。そして、ホスト名の値が異なる場合(ステップS2202:Yes)、変更装置101は、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定する(ステップS2203)。
ここで、他の設定項目の値が異なる場合(ステップS2203:Yes)、変更装置101は、プログラム変更ルールを「サブタスクを作成」に決定する(ステップS2204)。そして、変更装置101は、新設システムの情報処理装置NMに動作条件が設定されているか否かを判断する(ステップS2205)。
ここで、動作条件が設定されていない場合(ステップS2205:No)、変更装置101は、サブタスク化処理を実行して(ステップS2206)、本フローチャートによる一連の処理を終了し、プログラム変更処理を呼び出したステップに戻る。なお、サブタスク化処理の具体的な処理手順については、図24を用いて後述する。
一方、動作条件が設定されている場合(ステップS2205:Yes)、変更装置101は、条件付きサブタスク化処理を実行して(ステップS2207)、本フローチャートによる一連の処理を終了し、プログラム変更処理を呼び出したステップに戻る。なお、条件付きサブタスク化処理の具体的な処理手順については、図25を用いて後述する。
また、ステップS2203において、他の設定項目の値が同じ場合(ステップS2203:No)、変更装置101は、プログラム変更ルールを「ホスト名の置換」に決定する(ステップS2208)。そして、変更装置101は、タスクTのブロックbk内の情報処理装置EMのホスト名の値を、情報処理装置NMのホスト名の値に置換して(ステップS2209)、本フローチャートによる一連の処理を終了し、プログラム変更処理を呼び出したステップに戻る。
また、ステップS2202において、ホスト名の値が同じ場合(ステップS2202:No)、変更装置101は、タスクTの実行先が複数の情報処理装置か否かを判断する(ステップS2210)。ここで、タスクTの実行先が複数の情報処理装置の場合(ステップS2210:Yes)、変更装置101は、ステップS2204に移行する。
一方、タスクTの実行先が1つの情報処理装置の場合(ステップS2210:No)、変更装置101は、プログラム変更ルールを「設定項目の置換」に決定する(ステップS2211)。そして、変更装置101は、タスクTのブロックbk内の情報処理装置EMの他の設定項目の値を、情報処理装置NMの他の設定項目の値に置換して(ステップS2212)、本フローチャートによる一連の処理を終了し、プログラム変更処理を呼び出したステップに戻る。
また、ステップS2201において、現行システムおよび新設システムでプログラムPを動作させる場合(ステップS2201:Yes)、変更装置101は、図23に示すステップS2301に移行する。
図23のフローチャートにおいて、まず、変更装置101は、CMDB110,120に各情報処理装置EM,NMの定義情報dfが登録されているか否かを判断する(ステップS2301)。ここで、各情報処理装置EM,NMの定義情報dfが未登録の場合(ステップS2301:No)、変更装置101は、図22に示したステップS2202に移行する。
一方、各情報処理装置EM,NMの定義情報dfが登録されている場合(ステップS2301:Yes)、変更装置101は、CMDB110,120から各情報処理装置EM,NMの定義情報dfを取得する(ステップS2302)。そして、変更装置101は、条件文によりタスクTを、現行システムおよび新設システムごとのタスクTに分割することによりプログラムPを変更して(ステップS2303)、本フローチャートによる一連の処理を終了し、プログラム変更処理を呼び出したステップに戻る。
これにより、現行システムの情報処理装置EMの構成情報と新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dの差分内容に応じてプログラム変更ルールを決定して、プログラムPを変更することができる。
<サブタスク化処理手順>
つぎに、図22に示したステップS2206のサブタスク化処理の具体的な処理手順について説明する。
図24は、サブタスク化処理の具体的処理手順の一例を示すフローチャートである。図24のフローチャートにおいて、まず、変更装置101は、タスクTのブロックbk1を複製することにより、サブタスクSTのブロックbkを生成する(ステップS2401)。
そして、変更装置101は、差分情報Dを参照して、サブタスクSTのブロックbk内の差分箇所(設定項目の値)を、新設システムの情報処理装置NMの設定項目の値に置換する(ステップS2402)。つぎに、変更装置101は、タスクTのブロックbk内にサブタスクSTの呼出処理を挿入する(ステップS2403)。
そして、変更装置101は、タスクTのブロックbk内の差分箇所(情報処理装置EMのホスト名の値)を削除して(ステップS2404)、本フローチャートによる一連の処理を終了し、サブタスク化処理を呼び出したステップに戻る。
これにより、新設システムの情報処理装置NMに適用するサブタスクSTのブロックbkを生成することができる。
<条件付きサブタスク化処理手順>
つぎに、図22に示したステップS2207の条件付きサブタスク化処理の具体的な処理手順について説明する。
図25は、条件付きサブタスク化処理の具体的処理手順の一例を示すフローチャートである。図25のフローチャートにおいて、まず、変更装置101は、タスクTのブロックbk1を複製することにより、サブタスクSTのブロックbkを生成する(ステップS2501)。
そして、変更装置101は、サブタスクSTのブロックbk内に情報処理装置NMの動作条件に関する条件文による処理を挿入する(ステップS2502)。つぎに、変更装置101は、差分情報Dを参照して、サブタスクSTのブロックbk内の差分箇所(設定項目の値)を、新設システムの情報処理装置NMの設定項目の値に置換する(ステップS2503)。
つぎに、変更装置101は、タスクTのブロックbk内にサブタスクSTの呼出処理を挿入する(ステップS2504)。そして、変更装置101は、タスクTのブロックbk内の差分箇所(情報処理装置EMのホスト名の値)を削除して(ステップS2505)、本フローチャートによる一連の処理を終了し、条件付きサブタスク化処理を呼び出したステップに戻る。
これにより、メンテナンスモードなどの動作条件が設定された新設システムの情報処理装置NMに適用するサブタスクSTのブロックbkを生成することができる。
以上説明したように、変更装置101によれば、現行システムの情報処理装置EMの構成情報と、新設システムの情報処理装置NMの構成情報との差分を表す差分情報Dを取得することができる。また、変更装置101によれば、現行システムの情報処理装置EMに適用するプログラムPから、差分情報Dに対応するタスクTのブロックbkを検出することができる。これにより、プログラムP内の変更対象となるタスクTのブロックbkを検出することができる。
また、変更装置101によれば、差分情報Dに基づいて、ホスト名(Hosts)の値が情報処理装置EM,NM間で異なるか否かを判定することができる。また、変更装置101によれば、ホスト名とは異なる他の設定項目の値が情報処理装置EM,NM間で異なるか否かを判定することができる。そして、変更装置101によれば、ホスト名の値が情報処理装置EM,NM間で異なり、かつ、他の設定項目の値が情報処理装置EM,NM間で異なる場合、プログラム変更ルールを「サブタスクを作成」に決定することができる。
これにより、新設システムの情報処理装置NMにプログラムPを適用するために、プログラムP内のタスクTのブロックbkに対して、「サブタスクを作成」のプログラム変更ルールを適用すればよいことを判断することができる。
また、変更装置101によれば、ホスト名の値が情報処理装置EM,NM間で異なり、かつ、他の設定項目の値が情報処理装置EM,NM間で同じ場合、プログラム変更ルールを「ホスト名の置換」に決定することができる。これにより、新設システムの情報処理装置NMにプログラムPを適用するために、プログラムP内のタスクTのブロックbkに対して、「ホスト名の置換」のプログラム変更ルールを適用すればよいことを判断することができる。
また、変更装置101によれば、ホスト名の値が情報処理装置EM,NM間で同じ場合、タスクTのブロックbkを参照して、タスクTの実行先が複数の情報処理装置か否かを判定することができる。そして、変更装置101によれば、タスクTの実行先が複数の情報処理装置の場合、プログラム変更ルールを「サブタスクを作成」に決定することができる。これにより、新設システムの情報処理装置NMにプログラムPを適用するために、プログラムP内のタスクTのブロックbkに対して、「サブタスクを作成」のプログラム変更ルールを適用すればよいことを判断することができる。
また、変更装置101によれば、ホスト名の値が情報処理装置EM,NM間で同じ、かつ、タスクTの実行先が1つの情報処理装置の場合、プログラム変更ルールを「設定項目の置換」に決定することができる。これにより、新設システムの情報処理装置NMにプログラムPを適用するために、プログラムP内のタスクTのブロックbkに対して、「設定項目の置換」のプログラム変更ルールを適用すればよいことを判断することができる。
また、変更装置101によれば、プログラム変更ルールを「サブタスクを作成」に決定した場合、タスクTのブロックbk1を複製することにより、サブタスクSTのブロックbkを生成することができる。また、変更装置101によれば、差分情報Dを参照して、サブタスクSTのブロックbk内の差分箇所(設定項目の値)を、新設システムの情報処理装置NMの設定項目の値に置換することができる。また、変更装置101によれば、タスクTのブロックbk内にサブタスクSTの呼出処理を挿入するとともに、タスクTのブロックbk内の差分箇所(情報処理装置EMのホスト名の値)を削除することができる。
これにより、新設システムの情報処理装置NMに適用するサブタスクSTのブロックbkを生成することができる。また、プログラムP内のタスクTの実行時にサブタスクSTを呼び出して実行することができる。
また、変更装置101によれば、新設システムの情報処理装置NMに動作条件が設定されている場合には、サブタスクSTのブロックbk内に情報処理装置NMの動作条件に関する条件文による処理を挿入することができる。これにより、新設システムの情報処理装置NMに設定されている動作条件に応じてサブタスクSTを実行することができる。
また、変更装置101によれば、プログラム変更ルールを「ホスト名の置換」に決定した場合、タスクTのブロックbk内の情報処理装置EMのホスト名の値を、情報処理装置NMのホスト名の値に置換することができる。これにより、タスクTのブロックbkを、新設システムの情報処理装置NMに適用可能に変更することができる。
また、変更装置101によれば、プログラム変更ルールを「設定項目の置換」に決定した場合、タスクTのブロックbk内の情報処理装置EMの他の設定項目の値を、情報処理装置NMの他の設定項目の値に置換することができる。これにより、タスクTのブロックbkを、新設システムの情報処理装置NMに適用可能に変更することができる。
また、変更装置101によれば、現行システムおよび新設システムでプログラムPを動作させる場合、CMDB110,120に各情報処理装置EM,NMの定義情報dfが登録されているか否かを判断することができる。また、変更装置101によれば、各情報処理装置EM,NMの定義情報dfが登録されている場合、条件文によりタスクTを、現行システムおよび新設システムごとのタスクTに分割することによりプログラムPを変更することができる。これにより、現行システムおよび新設システムで動作するプログラムPを生成することができる。
また、変更装置101によれば、各情報処理装置EM,NMの定義情報dfが未登録の場合には、if文等の条件文を用いて、プログラムPを動作させるシステム(現行システムまたは新設システム)に応じて実行する処理(タスクTまたはサブタスクST)を切り替えるプログラムPを生成することができる。これにより、現行システムおよび新設システムで動作するプログラムPを生成することができる。
これらのことから、変更装置101によれば、システム間でプログラムPを移行する際の移行作業にかかる工数を低減させることができる。また、システム間の構成情報の変更を意識せずにプログラムPを記述することができるようになるため、コーディング速度の向上を図ることができる。
なお、本実施の形態で説明した変更方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本変更プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本変更プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
第1の情報処理装置の構成情報と、前記第1の情報処理装置に対応する第2の情報処理装置の構成情報との差分を表す差分情報を取得し、
前記第1の情報処理装置に適用するプログラムに記述された処理単位のブロックのうち、取得した前記差分情報に対応する処理のブロックを検出し、
前記差分情報の差分内容に基づいて、検出した前記処理のブロックに適用する変更の種別を決定する、
処理を実行させることを特徴とする変更プログラム。
(付記2)前記コンピュータに、
前記差分情報に基づいて、前記第1および第2の情報処理装置に設定される複数の設定項目のうち、情報処理装置を識別する特定の設定項目の値が情報処理装置間で異なるか否かを判定し、
前記複数の設定項目のうち、前記特定の設定項目とは異なる他の設定項目の値が情報処理装置間で異なるか否かを判定する、処理を実行させ、
前記決定する処理は、
前記特定の設定項目の値が前記情報処理装置間で異なり、かつ、前記他の設定項目の値が前記情報処理装置間で異なる場合、前記種別を、前記処理とは別の処理のブロックを生成する種別に決定することを特徴とする付記1に記載の変更プログラム。
(付記3)前記決定する処理は、
前記特定の設定項目の値が前記情報処理装置間で異なり、かつ、前記他の設定項目の値が前記情報処理装置間で同じ場合、前記種別を、前記処理のブロック内の前記特定の設定項目の値を置換する種別に決定することを特徴とする付記2に記載の変更プログラム。
(付記4)前記コンピュータに、
前記特定の設定項目の値が前記情報処理装置間で同じ場合、前記処理のブロックを参照して、前記処理の実行先が複数の情報処理装置か否かを判定する処理を実行させ、
前記決定する処理は、
前記処理の実行先が複数の情報処理装置の場合、前記種別を、前記処理とは別の処理のブロックを生成する種別に決定することを特徴とする付記2または3に記載の変更プログラム。
(付記5)前記決定する処理は、
前記処理の実行先が複数の情報処理装置ではない場合、前記種別を、前記処理のブロック内の前記他の設定項目の値を置換する種別に決定することを特徴とする付記4に記載の変更プログラム。
(付記6)前記コンピュータに、
前記種別を前記別の処理のブロックを生成する種別に決定した場合、前記処理のブロックを複製して前記別の処理のブロックを生成し、
前記差分情報に基づいて、前記別の処理のブロック内の各設定項目の値を、前記第2の情報処理装置の前記各設定項目の値に置換し、
前記処理のブロック内の前記第1の情報処理装置の前記特定の設定項目の値を削除するとともに、前記処理のブロック内に前記別の処理を呼び出すための記述を挿入する、
処理を実行させることを特徴とする付記2〜5のいずれか一つに記載の変更プログラム。
(付記7)前記コンピュータに、
前記第2の情報処理装置に動作条件が設定されている場合、前記別の処理のブロック内に前記動作条件に関する条件文を挿入する処理を実行させることを特徴とする付記6に記載の変更プログラム。
(付記8)前記コンピュータに、
前記プログラムを前記第1および第2の情報処理装置に適用する場合、前記第1および第2の情報処理装置それぞれの設定項目の値を定義する定義情報があるか否かを判定し、
前記定義情報がある場合、前記定義情報に基づいて、前記処理とは別の処理のブロックを生成する、
処理を実行させることを特徴とする付記2〜7のいずれか一つに記載の変更プログラム。
(付記9)前記コンピュータに、
前記定義情報がない場合、前記差分情報に基づいて、前記第1および第2の情報処理装置に設定される複数の設定項目のうち、情報処理装置を識別する特定の設定項目の値が情報処理装置間で異なるか否かを判定し、
前記定義情報がない場合に、前記複数の設定項目のうち、前記特定の設定項目とは異なる他の設定項目の値が情報処理装置間で異なるか否かを判定する、
処理を実行させることを特徴とする付記8に記載の変更プログラム。
(付記10)前記コンピュータに、
前記種別を前記処理のブロック内の前記特定の設定項目の値を置換する種別に決定した場合、前記処理のブロック内の前記第1の情報処理装置の前記特定の設定項目の値を、前記第2の情報処理装置の前記特定の設定項目の値に置換する処理を実行させることを特徴とする付記3〜5のいずれか一つに記載の変更プログラム。
(付記11)前記コンピュータに、
前記種別を前記処理のブロック内の前記他の設定項目の値を置換する種別に決定した場合、前記処理のブロック内の前記第1の情報処理装置の前記他の設定項目の値を、前記第2の情報処理装置の前記他の設定項目の値に置換する処理を実行させることを特徴とする付記5に記載の変更プログラム。
(付記12)第1の情報処理装置の構成情報と、前記第1の情報処理装置に対応する第2の情報処理装置の構成情報との差分を表す差分情報を取得する取得部と、
前記第1の情報処理装置に適用するプログラムに記述された処理単位のブロックのうち、前記取得部によって取得された前記差分情報に対応する処理のブロックを検出する検出部と、
前記差分情報の差分内容に基づいて、前記検出部によって検出された前記処理のブロックに適用する変更の種別を決定する決定部と、
を有することを特徴とする変更装置。
(付記13)コンピュータが、
第1の情報処理装置の構成情報と、前記第1の情報処理装置に対応する第2の情報処理装置の構成情報との差分を表す差分情報を取得し、
前記第1の情報処理装置に適用するプログラムに記述された処理単位のブロックのうち、取得した前記差分情報に対応する処理のブロックを検出し、
前記差分情報の差分内容に基づいて、検出した前記処理のブロックに適用する変更の種別を決定する、
処理を実行することを特徴とする変更方法。
(付記14)コンピュータに、
第1の情報処理装置の構成情報と、前記第1の情報処理装置に対応する第2の情報処理装置の構成情報との差分を表す差分情報を取得し、
前記第1の情報処理装置に適用するプログラムに記述された処理単位のブロックのうち、取得した前記差分情報に対応する処理のブロックを検出し、
前記差分情報の差分内容に基づいて、検出した前記処理のブロックに適用する変更の種別を決定する、
処理を実行させる変更プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。