(57)【要約】【課題】業務システムの構成を容易に変更することを目的とする。【解決手段】業務システムにおける業務プログラム３１の構成を、管理コンピュータ１１がスクリプトを用いて変更する業務システム構成変更方法である。  管理コンピュータ１１は、業務プログラム３１を配備する場合、当該業務プログラム３１の稼動条件に対応した業務コンピュータ４を選択し、当該業務プログラム３１に必要な前提プログラムを取得し、業務プログラム３１と前提プログラムについて、業務システムの構成の変更前と変更後に関する差分をとり、必要なスクリプト部品を複数取得し、前提プログラム情報に基づいてスクリプト部品の順序を決定することでスクリプトを生成し、当該スクリプトを用いて業務プログラム３１を配備する。【選択図】図１
2008021111.tif 000002
【特許請求の範囲】
【請求項１】
複数の業務プログラムを１台以上の業務コンピュータが使用することによって実現される業務システムにおける前記業務プログラムの構成を、前記業務コンピュータと通信可能な管理コンピュータがスクリプトを用いて変更する業務システム構成変更方法であって、
前記管理コンピュータは、処理部と記憶部を備え、
前記記憶部は、
前記業務システムにおける前記業務プログラムの構成を示す業務システム構成情報と、
それぞれの前記業務プログラムの稼働条件と、その稼動条件に対応した前記業務コンピュータを関連付けた第１の情報と、
それぞれの前記業務プログラムと、それらに対応した前提プログラム情報を、プログラムレベルとして関連付けた第２の情報と、
前記スクリプトを構成し、少なくとも、実行する対象の業務コンピュータ名をパラメタとして入力可能な複数のスクリプト部品と、を記憶し、
前記処理部は、
前記業務プログラムを配備する場合、
前記第１の情報を参照して、当該業務プログラムの稼動条件に対応した前記業務コンピュータを選択し、
前記第２の情報を参照して、当該業務プログラムに必要な前記前提プログラムを取得し、
前記業務システム構成情報において、前記業務プログラムと前記前提プログラムについての、前記業務システムの構成の変更前と変更後に関する差分をとり、その差分の変更の実行に必要なスクリプト部品を複数取得し、前記前提プログラム情報に基づいて前記スクリプト部品の順序を決定することで前記スクリプトを生成し、
当該スクリプトを用いて前記業務プログラムを配備する
ことを特徴とする業務システム構成変更方法。
【請求項２】
前記処理部は、
すでに配備されている前記業務プログラムのいずれかを削除する場合、
その業務プログラムの削除に必要なスクリプト部品を取得することで削除用のスクリプトを生成し、
当該削除用のスクリプトを用いて前記業務プログラムを削除する
ことを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項３】
前記処理部は、
前記管理コンピュータに接続された監視コンピュータの入力画面からオペレータによって入力された業務プログラムの配備指示に基づいて、前記業務プログラムを配備することを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項４】
前記処理部は、
前記管理コンピュータに接続された監視コンピュータの入力画面からオペレータによって入力された業務プログラムの移動指示に基づき、
請求項１に記載の業務システム構成変更方法による業務プログラムの配備と、請求項２に記載の業務システム構成変更方法による業務プログラムの削除を組み合わせることで、前記業務プログラムを移動することを特徴とする業務システム構成変更方法。
【請求項５】
前記記憶部は、
前記スクリプト部品の代表的な組み合わせパターンであるスクリプトテンプレートを複数、さらに記憶し、
前記処理部は、
前記業務システム構成情報を参照し、前記スクリプトテンプレートを構成する前記スクリプト部品のうち不要分を削除し、
その不要なスクリプト部品を削除したスクリプトテンプレートを複数集めることで前記スクリプトを生成することを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項６】
前記処理部は、
前記記憶部に記憶された変更前および変更後の前記業務システム構成情報を参照して、その取得したスクリプト部品の各パラメタを設定することを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項７】
前記処理部は、
前記第１の情報を参照して、当該業務プログラムの稼動条件に対応した前記業務コンピュータを選択する場合、
対応した業務コンピュータが複数あるときは、
当該業務プログラムが前提とするＯＳ修正用のパッチファイルを最も多く有する前記業務コンピュータを選択することを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項８】
前記記憶部は、
前記スクリプト部品ごとに、前記業務コンピュータのリブートが必要な場合はリブートフラグを記憶し、
前記処理部は、
前記スクリプトを用いて前記業務プログラムや前記前提プログラムを配備するときに、
前記スクリプト部品を実行した場合、そのスクリプト部品が前記リブートフラグをともなっていたとき、あるいは、前記リブートフラグをともなっていないが前記業務コンピュータにリブート要求が出ていたときに、その業務コンピュータをリブートすることを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項９】
前記第１の情報は、
前記業務コンピュータに配備可能なＯＳの情報を定義したＯＳ情報管理テーブルであることを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項１０】
前記第２の情報は、
前記業務プログラムが前提とするＯＳ修正用のパッチファイルの情報、前提プログラム情報、および、前記業務プログラムが連携するプログラムの情報を定義したプログラム構成管理テーブルであることを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項１１】
前記第２の情報は、
前記業務コンピュータのＯＳの情報、ＯＳ修正用のパッチファイルの情報、および、配備済みのプログラム情報を管理する物理構成情報管理テーブルあることを特徴とする請求項１に記載の業務システム構成変更方法。
【請求項１２】
１台以上の業務コンピュータと通信可能で、複数の業務プログラムを前記１台以上の業務コンピュータが使用することによって実現される業務システムにおける前記業務プログラムの構成を、スクリプトを用いて変更する管理コンピュータであって、
処理部と記憶部を備え、
前記記憶部は、
前記業務システムにおける前記業務プログラムの構成を示す業務システム構成情報と、
それぞれの前記業務プログラムの稼働条件と、その稼動条件に対応した前記業務コンピュータを関連付けた第１の情報と、
それぞれの前記業務プログラムと、それらに対応した前提プログラム情報を、プログラムレベルとして関連付けた第２の情報と、
前記スクリプトを構成し、少なくとも、実行する対象の業務コンピュータ名をパラメタとして入力可能な複数のスクリプト部品と、を記憶し、
前記処理部は、
前記業務プログラムを配備する場合、
前記第１の情報を参照して、当該業務プログラムの稼動条件に対応した前記業務コンピュータを選択し、
前記第２の情報を参照して、当該業務プログラムに必要な前記前提プログラムを取得し、
前記業務システム構成情報において、前記業務プログラムと前記前提プログラムについての、前記業務システムの構成の変更前と変更後に関する差分をとり、その差分の変更の実行に必要なスクリプト部品を複数取得し、前記前提プログラム情報に基づいて前記スクリプト部品の順序を決定することで前記スクリプトを生成し、
当該スクリプトを用いて前記業務プログラムを配備する
ことを特徴とする管理コンピュータ。
【請求項１３】
前記処理部は、
すでに配備されている前記業務プログラムのいずれかを削除する場合、
その業務プログラムの削除に必要なスクリプト部品を取得することで削除用のスクリプトを生成し、
当該削除用のスクリプトを用いて前記業務プログラムを削除する
ことを特徴とする請求項１２に記載の管理コンピュータ。
【請求項１４】
前記処理部は、
前記管理コンピュータに接続された監視コンピュータの入力画面からオペレータによって入力された業務プログラムの配備指示に基づいて、前記業務プログラムを配備することを特徴とする請求項１２に記載の管理コンピュータ。
【請求項１５】
前記管理コンピュータは、
前記管理コンピュータに接続された監視コンピュータの入力画面からオペレータによって入力された業務プログラムの移動指示に基づき、
請求項１２に記載の管理コンピュータによる業務プログラムの配備と、請求項１３に記載の管理コンピュータによる業務プログラムの削除を組み合わせることで、前記業務プログラムを移動することを特徴とする管理コンピュータ。
【請求項１６】
前記記憶部は、
前記スクリプト部品の代表的な組み合わせパターンであるスクリプトテンプレートを複数、さらに記憶し、
前記処理部は、
前記業務システム構成情報を参照し、前記スクリプトテンプレートを構成する前記スクリプト部品のうち不要分を削除し、
その不要なスクリプト部品を削除したスクリプトテンプレートを複数集めることで前記スクリプトを生成することを特徴とする請求項１２に記載の管理コンピュータ。
【請求項１７】
前記処理部は、
前記記憶部に記憶された変更前および変更後の前記業務システム構成情報を参照して、その取得したスクリプト部品の各パラメタを設定することを特徴とする請求項１２に記載の管理コンピュータ。
【請求項１８】
前記処理部は、
前記第１の情報を参照して、当該業務プログラムの稼動条件に対応した前記業務コンピュータを選択する場合、
対応した業務コンピュータが複数あるときは、
当該業務プログラムが前提とするＯＳ修正用のパッチファイルを最も多く有する前記業務コンピュータを選択することを特徴とする請求項１２に記載の管理コンピュータ。
【請求項１９】
前記記憶部は、
前記スクリプト部品ごとに、前記業務コンピュータのリブートが必要な場合はリブートフラグを記憶し、
前記処理部は、
前記スクリプトを用いて前記業務プログラムや前記前提プログラムを配備するときに、
前記スクリプト部品を実行した場合、そのスクリプト部品が前記リブートフラグをともなっていたとき、あるいは、前記リブートフラグをともなっていないが前記業務コンピュータにリブート要求が出ていたときに、その業務コンピュータをリブートすることを特徴とする請求項１２に記載の管理コンピュータ。
【請求項２０】
請求項１ないし請求項１１のいずれか１項に記載の業務システム構成変更方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１台以上のコンピュータ装置に配備された複数の業務プログラムから構成される業務システムにおいて、業務システムへ影響を与えることなく、または与える影響を少なくして、任意の業務プログラムの配備先の変更などを行う技術に関する。
【背景技術】
【０００２】
近年、企業などでは、銀行のＡＴＭ（Automatic Teller Machine）システムや小売業のＰＯＳ（Point Of Sales）システムなどの業務システムが、多く使用されている。そして、そういった業務システムでは、規模が大きい場合、そのための業務プログラムやデータなど（以下、単に「業務プログラム」ともいう。）を複数のコンピュータ装置に配備することになる。
【０００３】
また、業務システムにおいては、業務プログラムの変更（追加、削除などを含む）など、構成を変更する必要が生じることもある。その場合、業務システムの構成の変更やそれにともなう環境設定などをすべて手動で行うと、少なからず手間がかかってしまうので、それらのなるべく多くを自動化して、容易に構成の変更を行うことが望まれている。
【０００４】
例えば、複数のコンピュータ装置を使用する分散システムにおけるイベント処理において、アクションの連鎖によって動的にデータフローを決定することで環境設定の一部を自動化するシステムが知られている（例えば特許文献１）。
【特許文献１】特開２００１−２８２５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、イベントオブジェクト受信時に実行されるアクションを、イベントオブジェクトのタイプにより実行すべきアクションの中から選択してアクションの連鎖を実現するには、事前にイベントオブジェクトのタイプを事前に把握しなくてはならない。
【０００６】
ところが、現実には、イベントが製品ごとに異なっており、イベントオブジェクトの形式を統一することは不可能に近い。また、イベントオブジェクトの形式を統一できた場合でも、イベントを発行するプログラムは無数に存在すると共に今後も増加していく。さらに、イベントを発行するプログラムの開発者は世界中に存在しており、そのプログラムのタイプは次々に増え続けていく。このタイプを事前に全て把握し、アクション・属性記憶部に記憶される入力パターンの定義に入力することは、極めて困難である。
【０００７】
そこで、本発明は、前記問題点に鑑みてなされてものであり、業務システムの構成が大規模や複雑な場合でも、その構成を容易に変更することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明は、複数の業務プログラムを１台以上の業務コンピュータが使用することによって実現される業務システムにおける業務プログラムの構成を、業務コンピュータと通信可能な管理コンピュータがスクリプトを用いて変更する業務システム構成変更方法である。
管理コンピュータは、処理部と記憶部を備え、記憶部は、業務システムにおける業務プログラムの構成を示す業務システム構成情報と、それぞれの業務プログラムの稼働条件と、その稼動条件に対応した業務コンピュータを関連付けた第１の情報と、それぞれの業務プログラム、および、それらに対応した前提プログラム情報を、プログラムレベルとして関連付けた第２の情報と、スクリプトを構成し、少なくとも、実行する対象の業務コンピュータ名をパラメタとして入力可能な複数のスクリプト部品と、を記憶する。
【０００９】
そして、処理部は、業務プログラムを配備する場合、第１の情報を参照して、当該業務プログラムの稼動条件に対応した業務コンピュータを選択し、第２の情報を参照して、当該業務プログラムに必要な前提プログラムを取得し、業務システム構成情報において、業務プログラムと前提プログラムについての、業務システムの構成の変更前と変更後に関する差分をとり、その差分の変更の実行に必要なスクリプト部品を複数取得し、前記前提プログラム情報に基づいて前記スクリプト部品の順序を決定することでスクリプトを生成し、当該スクリプトを用いて業務プログラムを配備する。
その他の手段については後記する。
【発明の効果】
【００１０】
本発明によれば、業務システムの構成を容易に変更することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、スクリプトを用いて業務システム構成変更方法を実現するプログラム配備システムの一実施形態について説明する（適宜、参照図以外の図も参照）。
なお、業務システムとは、ネットワークにより接続された複数のコンピュータ間で業務を実行するプログラム（以下、業務プログラムという。）が連携しながら実行することで稼動するシステムである。
【００１２】
また、スクリプトとは、対象となるプログラムのインストールや設定などの手順を、コンピュータで実行可能な形式で記述した簡易プログラムである。さらに、スクリプトにパラメタ（業務プログラム名、対象コンピュータ名など）を設定する前の状態のものを、スクリプトシナリオという。
【００１３】
スクリプトは、複数のスクリプトテンプレート（スクリプトを構成するパーツのひな形。図２２〜図２６で詳述）から構成され、各スクリプトテンプレートは、複数のスクリプト部品（スクリプトテンプレートを構成する部品の単位。図２１で詳述）から構成される。
【００１４】
図１は、本実施形態のプログラム配備システムの全体構成を示す図である。図１に示すように、本実施形態のプログラム配備システムＳは、監視コンピュータ１、管理コンピュータ１１、および、複数の業務コンピュータ４から構成されている。そして、管理コンピュータ１１と複数の業務コンピュータ４は、ネットワーク３により接続されている。
監視コンピュータ１は、業務システムの構成や業務プログラムを、ネットワーク３を介して、複写、移動、削除などするための操作画面を表示するＧＵＩ(Graphical User Interface)１０を備えている。
【００１５】
管理コンピュータ１１は、表示部１２と、業務システム管理部１３と、データ処理部１４と、イベント処理部１５と、エージェント通信部１６とを有している。
表示部１２は、監視コンピュータ１のＧＵＩ１０（入力画面）に業務システムの構成を表示させたり、ＧＵＩ１０からの要求を受け付けたりする処理部である。業務システム管理部１３は、業務コンピュータ４で稼動する業務プログラム３１の構成を管理し、業務構成を変更した場合にシステム構成情報２２（業務システム構成情報）の更新を行う処理部である。
【００１６】
データ処理部１４は、プログラムライブラリ管理テーブル２１〜スクリプト２５に対して、各種のデータの読み込みや書き込みを行う処理部である。イベント処理部１５は、ＧＵＩ１０からの要求や、イベントによる要求を実現するために、スクリプト２５の生成を行う処理部である。エージェント通信部１６は、業務コンピュータ４のエージェント処理部３０と通信し、要求やデータの送受信を行う処理部である。
【００１７】
管理コンピュータ１１が取り扱うデータとして、業務コンピュータ４にリモートインストールやディスクコピーによって、業務プログラムを配備するためのインストールイメージ（プログラムをインストール形式でアーカイブされたもの）やディスクイメージ（ハードディスクの内容をそのまま複製（コピー）することでインストールできるもの）を保持するプログラムライブラリ管理テーブル２１と、様々な業務システムの構成情報を格納するシステム構成情報２２と、業務プログラムごとに配備や削除、環境設定などの制御を行うスクリプト部品を保持するスクリプトライブラリ管理テーブル２３と、用途ごとにスクリプト部品の組み合わせを定義したスクリプトテンプレート２４と、テンプレートとスクリプト部品を組み合わせて生成したスクリプト２５がある。
なお、本実施形態でいう各テンプレートとは、それぞれにおける代表的な例（ひな形）、という意味である。
【００１８】
業務コンピュータ４は、業務システムのための実行プログラムである業務プログラム３１と、管理コンピュータ１１のエージェント通信部１６と通信するためのエージェント処理部３０が格納されている。なお、コンピュータによっては、業務プログラム３１が存在しないものもあり、複数存在するものもある。
【００１９】
図２は、本実施形態の監視コンピュータと管理コンピュータのハードウエア構成を示した図である。管理コンピュータ１１は、ＣＰＵ（Central Processing Unit）２７２１（処理部）、メモリ２７２２（記憶部）、記憶装置２７２３（記憶部）、表示インターフェイス２７２４、ディスクインターフェイス２７２６、通信インターフェイス２７２７を備えた管理コンピュータ１１上に構築することができる。また、プログラム配備システムＳのＧＵＩ１０は、ＣＰＵ２７３１、メモリ２７３２、記憶装置２７３３、表示インターフェイス２７３４を備える監視コンピュータ１上に構築することができる。
【００２０】
この場合、プログラム配備用プログラム６は、ＣＰＵ２７２１が記憶装置２７２３に格納されていた各プログラムをメモリ２７２２上にロードして実行することで実現できる。また、外部のデータベース８（記憶部）とはディスクインターフェイス２７２６を介して接続され、業務コンピュータとは通信インターフェイス２７２７を介して接続される。一方、監視コンピュータ１において、ＧＵＩ１０は、ＣＰＵ２７３１が記憶装置２７３３に格納されていたプログラムをメモリ２７３２上にロードして実行する。
また、図１のプログラムライブラリ管理テーブル２１〜スクリプト２５は、たとえば、データベース８に格納される。
【００２１】
図３は、本実施形態の業務コンピュータのハードウエア構成を示した図である。業務コンピュータ４において、エージェント処理部３０は、ＣＰＵ２７４１、メモリ２７４２、記憶装置２７４３、通信インターフェイス２７４７によって実現することができる。つまり、エージェント処理部３０は、ＣＰＵ２７４１が記憶装置２７４３に格納されていたエージェントプログラムをメモリ２７４２上にロードして実行することで、実現される。また、業務コンピュータ４は、管理コンピュータ１１と、通信インターフェイス２７４７およびネットワーク３を介して接続される。
【００２２】
図４は、システム構成情報２２が保持するテーブルを示す図である。
システム構成情報２２において、プログラム構成管理テーブル１０１（第２の情報）は、業務プログラムが前提とするＯＳ（Operating System）パッチの情報や、前提とするプログラムの情報、および業務プログラムが連携するプログラムの情報をユーザが定義（予め入力）したものである。
【００２３】
なお、パッチとは、プログラムの修正を行なうために、修正による変更点(差分情報)のみを抜き出して列挙したファイル（パッチファイル）のことである。
また、プログラムＡがプログラムＢを前提とする、とは、プログラムＡが動作するにはプログラムＢが必要である、という意味である。
【００２４】
業務構成情報管理テーブル１０２は、各業務を構成する業務プログラム名と、業務プログラムが稼動するコンピュータの対応づけをユーザが定義したものである。
ＯＳ情報管理テーブル１０３（第１の情報）は、業務コンピュータ４に配備可能なＯＳ情報をユーザが定義したものである。
物理構成情報管理テーブル１０４（第２の情報）は、プログラム配備システムＳが管理する業務コンピュータ４のＯＳ情報や、ＯＳパッチ情報、配備済みのプログラム情報などの物理情報を収集したものである。
【００２５】
プログラム構成差分情報管理テーブル１０５は、プログラム配備先コンピュータのプログラム構成の変更前と変更後の差分情報を保持するものである。
配備対象プログラム管理テーブル１０６は、業務プログラムを複写、移動する場合に配備先コンピュータに必要なプログラムの情報を保持するものである。
【００２６】
データモデルテンプレート１０７は、業務システムに関連するデータの構造を定義したものである。
データモデル１０８は、業務システムのデータをデータモデルテンプレート１０７に取り込んで生成したものである。換言すれば、データモデルテンプレート１０７において、必要に応じ、各プログラムなどを追加、削除したり、データを穴埋めしたりして作成したものが、データモデル１０８となる。
プログラム稼動最大構成テンプレート１０９は、業務プログラム３１が稼動に必要なプログラム構成を定義したものである。
【００２７】
図５は、プログラム稼動最大構成テンプレート１０９を示す図である。業務プログラム２０２が稼動する場合に必要となるプログラムの構成が最大となるのは、ＯＳ２０６と、業務プログラム２０２が前提とするＯＳパッチ２０５と、業務プログラム２０２が前提とする業務プログラムである前提プログラム２０４と、前提プログラム２０４のパッチである前提プログラムパッチ２０３と、業務プログラム２０２と、業務プログラム２０２のパッチである業務プログラムパッチ２０１とを組み合わせたときである。
【００２８】
なお、ＯＳパッチ２０５や前提プログラム２０４、前提プログラムパッチ２０３、業務プログラムパッチ２０１は存在しない場合もあり、複数存在する場合もある。本テンプレートを用いて、ある業務プログラムを配備する場合に、業務コンピュータ４に配備する必要があるプログラム情報として、配備対象プログラム管理テーブル１０６を生成する。
【００２９】
図６は、プログラムライブラリ管理テーブル２１を示す図である。プログラムライブラリ（不図示）は、ＯＳやＯＳパッチ、業務プログラム、業務プログラムのパッチ等のディスクイメージやインストールイメージを格納し、管理している。そして、プログラムライブラリ管理テーブル２１は、ディスクイメージやインストールイメージを識別するプログラムライブラリＩＤ３０１を保持している。
なお、ＯＳのディスクイメージは、エージェント処理部３０をインストールした状態のディスクイメージとし、ＯＳの配備時にはエージェント処理部３０も同時に配備されるものとする。
【００３０】
プログラムライブラリ管理テーブル２１は、ユーザの定義により、プログラム名３０３とそのディスクイメージを配備可能なＯＳ名を示す対象ＯＳ３０４と、配備した場合に業務コンピュータ４のリブート（再起動）が必要なのか否かを示すリブートフラグ３０５の情報を保持する。なお、複数のＯＳに対応したプログラムでは、それぞれにプログラムライブラリＩＤ３０１が割り当てられる。
【００３１】
また、プログラムライブラリ管理テーブル２１では、ＯＳ、ＯＳパッチ、業務プログラムといったプログラムレベル３０２でレベル分けを行っており、プログラムレベル１はＯＳ、プログラムレベル２はＯＳパッチ、プログラムレベル３は業務プログラムおよび業務プログラムのパッチとする。プログラムレベルは、当該プログラムライブラリ管理テーブル２１のプログラム名３０３がプログラム構成管理テーブル１０１（図１１参照）に保持されるＯＳ名８０２と一致する場合にはプログラムレベル１を、前提ＯＳパッチ名８０３と一致する場合にはプログラムレベル２を、それらと一致しない場合にはプログラムレベル３が割り当てられる。
リブートフラグ３０５は、ユーザが定義しない場合に初期値としてＯＦＦ（リブートしない）をセットするが、プログラムを配備した際にプログラムがリブート要求を返す場合はフラグがＯＦＦの場合でもリブートを行うものとする。
【００３２】
図７は、業務プログラムごとに各種スクリプト部品を格納したスクリプトライブラリ管理テーブル２３を示す図である。スクリプトライブラリ管理テーブル２３に格納するスクリプト部品は、図２１の例で示すような、プログラムを制御するスクリプトであり、ユーザによって定義されるものである。
【００３３】
スクリプト部品は、業務プログラム名４０１に対応するプログラムライブラリＩＤ４０２ごとに、対象プログラム（対象となる業務プログラム、ＯＳ、ＯＳパッチ）のディスクイメージあるいはインストールイメージを配備する配備用スクリプト部品４０３と、対象プログラムを削除する削除用スクリプト部品４０４と、対象プログラムの環境設定を行う環境設定用スクリプト部品４０５と、対象プログラムの連携先の情報を設定する連携プログラム設定用スクリプト部品４０６と、対象プログラムを連携先とするプログラムの連携先を変更する連携元プログラム設定変更用スクリプト部品４０７と、対象プログラムを開始するプログラム開始用スクリプト部品４０８と、対象プログラムを停止するプログラム停止用スクリプト部品４０９が存在し、プログラムライブラリＩＤ４０２ごとに格納される。
【００３４】
なお、それぞれのスクリプト部品は、異なるＯＳごとにそれぞれ用意しておいても良い。
また、業務プログラムの配備に必要のないスクリプト部品は存在させなくても良い。
さらに、配備用スクリプト部品４０３は、ユーザ定義の無い場合は、プログラムライブラリＩＤ４０２のディスクイメージやインストールイメージをリモートインストール（ネットワーク３経由でのインストール）するものである。
【００３５】
図８は、業務コンピュータ４に配備可能なＯＳの情報を保持したＯＳ情報管理テーブル１０３を示す図である。本テーブルでは、管理コンピュータ１１で管理する業務コンピュータ４ごとに、ユーザが定義した入れ替え可能（配備可能）なＯＳ（稼動条件）の情報を保持している。
【００３６】
図９は、業務システムを構成する業務プログラムの情報と、業務プログラムが稼動するコンピュータ名（コンピュータの名称）を管理するための業務構成情報管理テーブル１０２を示す図である。本テーブルでは、業務システム名６０１と、複数の業務プログラムをくくるグループ名６０２と、業務を構成する業務プログラム名６０３と、業務プログラムが稼動するコンピュータ名６０４を格納している。なお、グループ名６０２は無くても良い。本テーブルは、まず、ユーザ定義により作成されるが、業務プログラムの複写や移動、削除によって構成が変更された場合は、プログラム配備システムＳによりその変更が反映される。
【００３７】
図１０は、本実施形態のプログラム配備システムが管理する業務コンピュータ４の物理構成を保持する物理構成情報管理テーブル１０４を示す図である。本テーブルでは、コンピュータごと（コンピュータ１〜４）に、プログラムレベル１（プログラムレベル７０１が１。以下同様）としてコンピュータに配備されているＯＳ名７０３（プログラム種別７０２がＯＳである行の右側に記載した「ＯＳ１」など。以下同様）と、プログラムレベル２としてＯＳパッチ名７０４と、プログラムレベル３として業務プログラム名７０５を保持する。
本テーブルは、プログラムレベルごとに各コンピュータのエージェント処理部３０から、コンピュータ内に配備されているＯＳ名、ＯＳパッチ名、プログラム名を収集し、各プログラムレベルに応じて格納し、作成する。
【００３８】
図１１は、各業務プログラムの構成情報を管理するプログラム構成管理テーブル１０１を示す図である。本テーブルでは、業務プログラム名８０１の各業務プログラムに関して、業務プログラムの前提となるＯＳ名８０２と、前提ＯＳパッチ名８０３と、前提となる業務プログラムである前提プログラム名８０４と、連携先の業務プログラムである連携先プログラム名８０５を保持している。なお、前提とするＯＳ名やＯＳパッチ、前提プログラム、連携先のプログラムがない場合は、それらが無くても良い。本テーブルはユーザ定義により作成される。
【００３９】
図１２は、プログラム配備システムのメイン処理の流れを示した図である。
まず、その概要を説明すると、本実施形態のプログラム配備システムＳは、オオペレータによるＧＵＩ１０からの業務プログラムの移動、複写、削除など(以下、「変更」ともいう。)の要求、もしくは、各要求イベントの発生があるまで、待機を続ける。そして、要求やイベントを受け取ると、それぞれの要求を実現するスクリプトの生成と実行を行い、要求によって業務システムの構成に変更が生じた場合は、業務システムの構成情報を業務コンピュータ４のエージェント処理部３０から収集し、業務構成情報管理テーブル１０２および、物理構成情報管理テーブル１０４に反映する。なお、プログラム配備システムＳは、終了要求もしくはイベントが発生すると、処理を終了する。
【００４０】
具体的には、管理コンピュータ１１において、ＣＰＵ２７２１は、記憶装置２７２３に格納されていたプログラム配備用プログラム６をメモリ２７２２上にロードすることで、以下の各処理を実行する（ステップ９０６〜９１２の他図のフローチャートの処理も同様）。
まず、業務プログラムの変更の要求あるいは要求イベントの発生があると、ステップ９００でフラグに１をセットする。次に、ステップ９０１では、フラグが１の場合（Ｙｅｓ）はステップ９０２へ進み、フラグが１以外の場合（Ｎｏ）は処理を終了する。
【００４１】
ステップ９０２では、ＧＵＩ１０から、業務プログラムの複写、移動や削除など、業務システムの構成の変更要求があった場合（Ｙｅｓ）はステップ９０３へ進み、そうでない場合（Ｎｏ）はステップ９０４へ進む。
【００４２】
ステップ９０３では、構成を変更した内容を業務構成情報管理テーブル１０２に反映し、また、プログラムの移動、複写、削除を行った業務コンピュータ４のエージェント処理部３０から、コンピュータ内に配備されているプログラム情報を取得し、物理構成情報管理テーブル１０４を更新する。その後、ステップ９０１へ戻る。
【００４３】
ステップ９０４、９０５では、それぞれ、業務プログラムの移動要求、複写要求があった場合（Ｙｅｓ）にステップ９０６へ進み、そうでない場合（Ｎｏ）はステップ９１０へ進む。
ステップ９０６では、対象の業務プログラムの各種情報から、業務プログラムを配備可能なコンピュータを選択し（詳細は後記する図１７の説明参照）、ステップ９０７へ進む。
【００４４】
ステップ９０７では、配備先のコンピュータに対してプログラム構成差分情報管理テーブル１０５を生成し（詳細は図２０）、ステップ９０８へ進む。
ステップ９０８では、生成したプログラム構成差分情報管理テーブル１０５に基づいて、要求を実現するスクリプトを生成し（詳細は図３０、図３２）、ステップ９０９へ進む。
ステップ９０９では、生成したスクリプトを実行して（詳細は図３６）、要求の実現を行い、ステップ９０１へ戻る。
【００４５】
また、ステップ９１０では、プログラムの削除要求があった場合（Ｙｅｓ）にステップ９１１へ進み、そうでない場合（Ｎｏ）はステップ９１３へ進む。
ステップ９１１では、プログラムを削除するスクリプトを生成し（詳細は図３２）、ステップ９１２へ進む。
ステップ９１２では、生成したスクリプトを実行して（詳細は図３６）、要求の実現を行い、ステップ９０１へ戻る。
ステップ９１３では、プログラム配備システムＳの終了要求があった場合（Ｙｅｓ）にステップ９１４へ進み、そうでない場合（Ｎｏ）はステップ９０１へ戻る。
ステップ９１４では、フラグを０にしてステップ９０１へ戻る。
【００４６】
次に、図１３〜図１６を参照しながら、業務システムの構成を変更する場合における、ＧＵＩ１０の表示の変化の例について説明する。なお、その場合のプログラム配備システムＳでの具体的な処理については、図１７以降で詳述する。
【００４７】
図１３は、本実施形態の監視コンピュータ１のＧＵＩ１０において表示される業務システムの構成を表示する画面の例を示す図である。
ＧＵＩ１０では、業務システムの構成を階層的に表示した業務構成フィールド１１００と、業務プログラムの連携を示す連携構成フィールド１１０１と、業務プログラムが稼動するコンピュータを示す物理構成フィールド１１０２がある。
【００４８】
業務構成フィールド１１００は、ユーザが定義した業務構成情報管理テーブル１０２（図９参照）のデータを基に、業務システム名６０１、グループ名６０２、業務プログラム名６０３を階層的に表示する。
連携構成フィールド１１０１は、ユーザが定義したプログラム構成管理テーブル１０１（図１１参照）の連携先プログラム名８０５のデータを基に、業務プログラムとその連携先のプログラムを関連付けて表示する。
物理構成フィールド１１０２は、ユーザが定義した業務構成情報管理テーブル１０２（図９参照）のコンピュータ名６０４のデータを基に、業務プログラムと、稼動するコンピュータ名を関連付けて表示する。
【００４９】
図１３で示す例では、業務４（符号１００１、以下「符号」を省略）が、Ｗｅｂシステム１０１０、ＡＰシステム１０２０およびＡＰ１０（１０３０）から構成されている。また、Ｗｅｂシステム１０１０は、業務プログラムであるＡＰ８（１０１１）とＡＰ８の前提プログラムであるＡＰ７（１０１２）で構成され、コンピュータ７（１０４１）上で稼動し、ＡＰシステム１０２０と連携している。ＡＰシステム１０２０は、業務プログラムＡＰ９（１０２１）とＡＰ９の前提プログラムであるＡＰ７（１０２２）で構成され、コンピュータ８（１０４２）上で稼動し、ＡＰ１０（１０３０）と連携している。ＡＰ１０（１０３０）はコンピュータ９（１０４３）上で稼動している。
なお、ＧＵＩ１０から業務プログラムの複写、移動、削除の要求を出す場合は、オペレータが業務構成フィールド１１００もしくは、連携構成フィールド１１０１で表示されている業務プログラムを指定し、複写、移動、削除を選択することができる。
【００５０】
図１４は、業務プログラムの移動を実施した後の画面を示す図である。
業務プログラムの移動では、ユーザもしくはイベントにより、業務プログラムの移動要求が発生した場合に、本実施形態のプログラム配備システムＳにおいて、管理コンピュータ１１は、指定された業務プログラムを移動可能なコンピュータを選択し、移動用のスクリプトの生成と実行を行った後、業務システムの構成情報を更新し、ＧＵＩ１０は各フィールドの再表示を行う。
図１４で示す例は、図１３で示した業務４（１００１）のＡＰ９（１０２１）の移動を実施した後の画面である。ＡＰ９(１０２１)は、前提プログラムであるＡＰ７（１０２２）と共にコンピュータ８（１０４２）からコンピュータ４（１０４４）へ移動したものとする。なお、移動前のコンピュータ８（１０４２）は、ＡＰ９(１０２１)とＡＰ７（１０２２）が削除され、解放されている。
【００５１】
図１５は、業務プログラムの複写を実施した後の画面を示す図である。
業務プログラムの複写では、ユーザもしくはイベントにより、業務プログラムの複写要求が発生した場合に、本実施形態のプログラム配備システムＳにおいて、管理コンピュータ１１は、指定された業務プログラムを複写可能なコンピュータを選択し、複写用のスクリプトの生成と実行を行った後、業務システムの構成情報を更新し、ＧＵＩ１０は各フィールドの再表示を行う。
【００５２】
図１５で示す例は、図１３で示した業務４（１００１）のＡＰ８（１０１１）の複写を実施した後の画面を示す図である。ＡＰ８(１０１１)は、前提プログラムであるＡＰ７（１０１２）と共にコンピュータ４（１０４４）へ複写したものとする。
【００５３】
図１６は、業務プログラムの削除を実施した後の画面を示す図である。
業務プログラムの削除では、ユーザもしくはイベントにより、業務プログラムの削除要求が発生した場合に、本実施形態のプログラム配備システムＳにおいて、管理コンピュータ１１は、指定された業務プログラムの削除用スクリプトの生成と実行を行った後、業務システムの構成情報を更新し、ＧＵＩ１０は各フィールドの再表示を行う。
図１６で示す例は、図１３で示した業務４（１００１）のＡＰ１０（１０３０）の削除を実施した後の画面を示す図である。ＡＰ１０(１０３０)は、コンピュータ９（１０４３）上から削除され、コンピュータ９（１０４３）は解放される。
【００５４】
図１７は、業務プログラムの移動要求や複写要求が発生した場合に、管理コンピュータ１１がプログラムの配備先のコンピュータを選択する処理内容を示した図である。
具体的には、管理コンピュータ１１において、ＣＰＵ２７２１は、記憶装置２７２３に格納されていたプログラム配備用プログラム６をメモリ２７２２上にロードすることで、以下の各処理を実行する（以下、他図における管理コンピュータ１１の処理についても同様）。
なお、ここでは、業務プログラムは、複数のＯＳに対応したそれぞれの業務プログラムが、用意されているものとする。
【００５５】
まず、ステップ１４０１では、プログラムライブラリ管理テーブル２１内で、複写、移動要求で指定された業務プログラムのインストールイメージが存在するライブラリの対象ＯＳ３０４を取得する。
ステップ１４０２では、業務構成情報管理テーブル１０２で業務プログラムが使用するコンピュータ名と物理構成情報管理テーブル１０４で保持するコンピュータ名を比較し、業務システムで使用していないコンピュータ（以下、空きコンピュータという。）名を取得し、ステップ１４０１で取得した指定業務プログラムの配備可能なＯＳ（業務プログラムが複写、移動前に稼動していたＯＳや、業務プログラムのインストールイメージが対応するＯＳ（プログラムライブラリ管理テーブル２１に存在）など）と同じＯＳを配備している空きコンピュータが存在する場合（Ｙｅｓ）はステップ１４０３へ進む。そうでない場合（Ｎｏ）には、ステップ１４０６へ進む。
【００５６】
ステップ１４０３では、指定業務プログラムが元々稼動しているコンピュータと同じＯＳの空きコンピュータが存在するかを調べ、存在する場合（Ｙｅｓ）はステップ１４０５へ進み、同じＯＳの空きコンピュータの中から最も前提ＯＳパッチが多く配備されているコンピュータを選択する。
【００５７】
存在しない場合（ステップ１４０３でＮｏ）は、ステップ１４０４へ進み、元々稼動しているコンピュータのＯＳとは異なるが、指定業務プログラムを配備可能な空きコンピュータの中で最も前提ＯＳパッチが多く配備されているコンピュータを選択する。
なお、前提ＯＳパッチが最も多く配備されているコンピュータを選択するのは、前提ＯＳパッチの配備数が多いほど前提ＯＳパッチをインストールする手間が省略できるからである。
【００５８】
ステップ１４０６では、空きコンピュータの内、ＯＳをステップ１４０１で取得した配備可能ＯＳに入れ替え可能かをＯＳ情報管理テーブル１０３で調べ、入れ替え可能なコンピュータが存在する場合（Ｙｅｓ）はステップ１４０７へ進む。そうでない場合（Ｎｏ）には、ステップ１４０９へ進む。
ステップ１４０７では、ＯＳを入れ替えるため、入れ替え可能な空きコンピュータのうち任意のコンピュータを選択し、ステップ１４０８で、入れ替える対象のＯＳ名（ＯＳ情報）を、記憶装置２７２３（図２参照）に保存する。
【００５９】
ステップ１４０９では、業務構成情報管理テーブル１０２で業務プログラムが使用するコンピュータ名と物理構成情報管理テーブル１０４で保持するコンピュータ名を比較し、業務プログラムで使用しているコンピュータ（以下使用中コンピュータ）を取得し、ステップ１４０１で取得した配備可能ＯＳと一致する使用中コンピュータが存在する場合（Ｙｅｓ）はステップ１４１０へ進む。そうでない場合（Ｎｏ）にはステップ１４１３へ進む。
【００６０】
ステップ１４１０では、指定業務プログラムが稼動しているコンピュータと同じＯＳの使用中コンピュータが存在するかを調べ、存在する場合（Ｙｅｓ）はステップ１４１２へ進み、同じＯＳの使用中コンピュータの中から最も前提ＯＳパッチが多く配備されているコンピュータを選択する。存在しない場合（Ｎｏ）は、ステップ１４１１へ進み、稼動コンピュータのＯＳとは異なるが、指定業務プログラムを配備可能な使用中コンピュータの中で最も前提ＯＳパッチが多く配備されているコンピュータを選択する。
【００６１】
ステップ１４１３では、指定業務プログラムを配備するコンピュータが存在しないことを、ＧＵＩ１０に表示する
以上の処理によって、指定業務プログラムの情報を基に、指定業務プログラムを配備するコンピュータを適切に選択することができる。
【００６２】
図１８は、配備対象プログラム管理テーブル１０６を示した図である。本テーブルは、複写や移動要求で指定された業務プログラム（ここでは、業務プログラム１５１５の「ＡＰ８」）を配備する場合に、必要なプログラム情報を保持するテーブルであり、管理コンピュータ１１が、プログラム稼動最大構成テンプレート１０９（図５参照）を用いて生成する。本テーブルは、業務プログラムを配備する場合に必要な前提プログラムの情報をプログラム稼動最大構成テンプレート１０９にコピーすることによって、生成する。なお、プログラムの情報には、プログラムレベルも設定する。
【００６３】
プログラムレベル１としてＯＳ１５１１には、配備先コンピュータに配備するＯＳ名を入力（管理コンピュータ１１による自動入力。詳細は図２０で後記。以下同様）し、プログラムレベル２としてＯＳパッチ１５１２に指定業務プログラムやその前提プログラムの前提ＯＳパッチ名を入力する。また、プログラムレベル３には、業務プログラム１５１５に指定業務プログラム名を入力し、業務プログラムパッチ１５１６には指定業務プログラムのパッチ名を入力し、前提プログラム１５１３には、指定業務プログラムの前提プログラム名や前提プログラムの前提プログラム名を入力し、前提プログラムパッチ１５１４には、前提プログラム１５１３に入力されたプログラムのパッチ名を入力する。
【００６４】
これらを換言すると、ここでは、「ＡＰ８」という業務プログラムを配備するためには、「ＡＰ８」のほかに、「ＯＳ１」、「Patch11」、「Patch12」、「ＡＰ７」、「ＡＰ７Patch1」というプログラムが必要となり、それらを一覧表にしたものが配備対象プログラム管理テーブル１０６である。
なお、指定した業務プログラムによっては、テンプレートに対応するプログラム情報が存在しない場合がある。
【００６５】
図１９は、配備先コンピュータの物理構成情報（物理構成情報管理テーブル１０４から取得）と、配備対象プログラム管理テーブル１０６の差分情報をプログラムレベル１６０１ごとに保持するプログラム構成差分情報管理テーブル１０５を示した図である。なお、本テーブルの差分種別１６０２では、配備先コンピュータにのみ存在する情報を−、配備対象プログラム管理テーブル１０６にのみ存在するものを＋として表現する。なお、差分がない場合は、差分種別１６０２に何も入力しない。また、プログラム名１６０３に対象のプログラム名を格納する。本テーブルは、管理コンピュータ１１によって作成される。なお、本テーブルは、監視コンピュータ１のＧＵＩ１０などに表示するようにしても良い。
【００６６】
図２０は、配備対象プログラム管理テーブル１０６と、プログラム構成差分情報管理テーブル１０５を作成する処理内容を示した図である。管理コンピュータ１１は、まず、配備対象プログラム管理テーブル１０６を作成し、次に作成した配備対象プログラム管理テーブル１０６と物理構成情報管理テーブル１０４の情報からプログラム構成差分情報管理テーブル１０５を作成する。
【００６７】
管理コンピュータ１１は、ステップ１７０１において、配備先のコンピュータのＯＳを入れ替える必要があるか（図１７の処理を行うときにステップ１４０８を通ったか）を調べ、ＯＳを入れ替える必要がある場合（Ｙｅｓ）は、ステップ１７０３へ進み、配備対象プログラム管理テーブル１０６（図１８参照）のＯＳ１５１１にステップ１４０８で求めたＯＳ名を入力（自動入力。以下同様）する。ＯＳを入れ替える必要がない場合（ステップ１７０１でＮｏ）は、ステップ１７０２へ進み、配備先コンピュータに配備されているＯＳ名をＯＳ１５１１に入力する。
【００６８】
ステップ１７０４では、プログラム構成管理テーブル１０１から、入力したＯＳ１５１１に対応した指定業務プログラムの情報を取得し、指定業務プログラムの前提ＯＳパッチ名８０３や前提プログラム名８０４を、配備対象プログラム管理テーブル１０６のそれぞれ対応する項目（ＯＳパッチ１５１２、前提プログラム１５１３）に入力する。
【００６９】
ステップ１７０５では、プログラムライブラリ管理テーブル２１（図６参照）を参照して、ＯＳ１５１１に対応した指定業務プログラムのパッチや、前提プログラム１５１３のパッチが存在するかを調べ、存在する場合（Ｙｅｓ）はステップ１７０６に進み、該当するパッチ名を配備対象プログラム管理テーブル１０６の対応する項目（前提プログラムパッチ１５１４、業務プログラムパッチ１５１６）に入力し、配備対象プログラム管理テーブル１０６を完成させる。また、存在しない場合（Ｎｏ）はステップ１７０７へ進む。
【００７０】
次に、ステップ１７０７では、プログラムレベルごとに配備対象プログラム管理テーブル１０６と物理構成情報管理テーブル１０４の配備先コンピュータの情報を比較し、プログラム構成差分情報管理テーブル１０５（図１９参照）に未設定のプログラムレベルがある場合（Ｙｅｓ）はステップ１７０８へ進み、全て設定した場合（Ｎｏ）は処理を終了する。
ステップ１７０８では、未設定のプログラムレベルを選択し、ステップ１７０９へ進む。
【００７１】
ステップ１７０９では、対象プログラムレベルごとに、配備先コンピュータ（物理構成情報管理テーブル１０４から取得した情報）にのみ存在するプログラム名を差分種別−として、そのプログラム名と差分種別をプログラム構成差分情報管理テーブル１０５に入力し、配備対象プログラム管理テーブル１０６にのみ存在するプログラムを差分種別＋として、そのプログラム名と差分種別をプログラム構成差分情報管理テーブル１０５に入力する。双方に同じプログラムが配備されている場合は、差分種別１６０２には何も入力せず、プログラム名１６０３のみを入力する。その後、ステップ１７０７に戻る。
【００７２】
図２１は、業務プログラムの配備に使用するスクリプト部品の例を示す図である。スクリプト部品１８００には、実行コンピュータ名１８０１の項目と、実行スクリプト１８０２の項目があり、実行スクリプト１８０２は実行コンピュータ名１８０１の業務コンピュータ４のエージェント処理部３０へ転送され、実行するスクリプトである。
【００７３】
また、これらの項目は、プログラム配備システムＳ内で提供される変数を使用することができる。ここで、変数とは、後記するデータモデル１０８で定義されるデータモデルの各要素を示すアドレスのことである。この変数は、＄と＄の文字の間に、指定したデータモデルの要素名を先頭の業務名２４０１（図３４で後記）から要素名ごとに「．」（ピリオド）を挟むことで表現され、要素と連結された要素名を指定するものである。
【００７４】
変数によって取得できる値は、データモデルの要素を変数で順にたどった最後の要素に格納されている値である（実行コンピュータ名１８０１の例では「稼動コンピュータ名」）。変数を使用することにより、業務システムの構成が変更された場合も、スクリプト部品の定義を変えずに、変更後の値を格納したデータモデルから必要な値を取得し、実行することが可能である。
【００７５】
なお、実行コンピュータ名１８０１には、変数を使用する場合に、コンピュータ名を指定する変数を使用する必要がある。
また、配備用スクリプト部品４０３（図７参照）には、配備対象のディスクイメージのプログラムライブラリＩＤ３０１（図６参照）を指定する必要がある。
このようにして、必要な変数を入力（格納）することで、スクリプト部品が実際に使用可能な状態となる。
【００７６】
図２２は、プログラムライブラリ管理テーブル２１（図６参照）で保持しているＯＳのディスクイメージを配備するスクリプトテンプレートを示した図である。本テンプレートは、プログラムレベル１のテンプレートである。
本テンプレートは、スクリプトテンプレート２４（図１参照）に格納されており、ＯＳのディスクイメージを配備するＯＳ配備スクリプト部品１９０１と、配備したＯＳの環境設定を行う環境設定スクリプト部品１９０３と、エージェント処理部３０の設定と起動を行うエージェント処理部設定スクリプト部品１９０５と、スクリプト部品同士を連結する連結スクリプト部品１９０２から構成されている。
【００７７】
図２２中の矢印はスクリプト部品の実行順序を示しており、符号１９０１、１９０２、１９０３、１９０２、１９０５、１９０２の順で実行される。なお、ＯＳ配備スクリプト部品１９０１には、スクリプトライブラリ管理テーブル２３（図７参照）の配備用スクリプト部品４０３が格納され、環境設定スクリプト部品１９０３は、同様に環境設定用スクリプト部品４０５が格納される。
【００７８】
なお、連結スクリプト部品１９０２は、コンピュータをリブートするか否かを定義するリブートフラグを持つ、本実施形態のプログラム配備システムＳで制御するスクリプト部品であって、ユーザの定義は必要ない。
また、エージェント処理部設定スクリプト部品１９０５は、ＯＳのディスクコピーと共に配備されたエージェント処理部の設定と起動を行うものであって、ユーザの定義は必要ない。
【００７９】
なお、図２２のスクリプトテンプレートは、各スクリプト部品の組み込みを予定しているだけで、実際にはまだコピーされていないものである。この点、図２３〜図２６のスクリプトテンプレートについても同様である。
【００８０】
図２３は、プログラムライブラリ管理テーブル２１で保持しているＯＳパッチのインストールイメージを配備するスクリプトテンプレートを示した図である。本テンプレートは、プログラムレベル２のテンプレートである。
【００８１】
本テンプレートは、スクリプトテンプレート２４に格納されており、ＯＳパッチのディスクイメージを配備するＯＳパッチ配備スクリプト部品１９１１と、スクリプト部品同士を連結する連結スクリプト部品１９０２から構成されている。また、スクリプト部品の実行順序は、符号１９１１、１９０２の順である。なお、ＯＳパッチ配備スクリプト部品１９１１には、スクリプトライブラリ管理テーブル２３（図７参照）の配備用スクリプト部品４０３が格納される。
【００８２】
図２４は、プログラムライブラリ管理テーブル２１（図６参照）で保持している業務プログラムのインストールイメージを配備するスクリプトテンプレートを示した図である。本テンプレートは、プログラムレベル３のテンプレートである。
【００８３】
本テンプレートは、スクリプトテンプレート２４に格納されており、業務プログラムのディスクイメージを配備するプログラム配備スクリプト部品１９２１と、配備したプログラムの環境設定を行う環境設定スクリプト部品１９２３と、配備したプログラムの連携プログラムの設定を行う連携プログラム設定スクリプト部品１９２５と、配備したプログラムを開始するプログラム開始スクリプト部品１９２７と、スクリプト部品同士を連結する連結スクリプト部品１９０２から構成されている。また、スクリプト部品の実行順序は、符号１９２１、１９０２、１９２３、１９０２、１９２５、１９０２、１９２７、１９０２の順である。
【００８４】
なお、プログラム配備スクリプト部品１９２１にはスクリプトライブラリ管理テーブル２３（図７参照）の配備用スクリプト部品４０３が格納され、環境設定スクリプト部品１９２３には同様に環境設定用スクリプト部品４０５が格納され、連携プログラム設定スクリプト部品１９２５には連携プログラム設定用スクリプト部品４０６が設定され、プログラム開始スクリプト部品１９２７には、プログラム開始用スクリプト部品４０８が格納される。
【００８５】
図２５は、プログラムライブラリ管理テーブル２１で保持している業務プログラムのプログラムパッチを配備するスクリプトテンプレートを示した図である。本テンプレートは、プログラムレベル３のテンプレートである。
【００８６】
本テンプレートは、スクリプトテンプレート２４（図１参照）に格納されており、パッチを当てるプログラムを停止させるプログラム停止スクリプト部品１９３１と、プログラムパッチを配備するプログラムパッチ配備スクリプト部品１９３３と、配備したプログラムを開始するプログラム開始スクリプト部品１９２７と、スクリプト部品同士を連結する連結スクリプト部品１９０２から構成されている。また、スクリプト部品の実行順序は、符号１９３１、１９０２、１９３３、１９０２、１９２７、１９０２の順である。
【００８７】
なお、プログラム停止スクリプト部品１９３１にはスクリプトライブラリ管理テーブル２３（図７参照）のプログラム停止用スクリプト部品４０９が格納され、プログラムパッチ配備スクリプト部品１９３３には、配備用スクリプト部品４０３が格納され、プログラム開始スクリプト部品１９２７にはプログラム開始用スクリプト部品４０８が格納される。
【００８８】
図２６は、業務プログラムを削除するスクリプトテンプレートを示した図である。本テンプレートは、プログラムレベル３のテンプレートである。
本テンプレートは、スクリプトテンプレート２４（図１参照）に格納されており、削除対象のプログラムを連携先に設定しているプログラムの連携先を変更（解除）する連携元変更スクリプト部品１９４１と、削除するプログラムを停止させるプログラム停止スクリプト部品１９３１と、そのプログラムを削除するプログラム削除スクリプト部品１９４５と、スクリプト部品同士を連結する連結スクリプト部品１９０２から構成されている。
【００８９】
また、スクリプト部品の実行順序は、符号１９４１、１９０２、１９３１、１９０２、１９４５、１９０２の順である。なお、プログラム停止スクリプト部品１９３１にはスクリプトライブラリ管理テーブル２３（図７参照）のプログラム停止用スクリプト部品４０９が格納され、連携元変更スクリプト部品１９４１には連携元プログラム設定変更用スクリプト部品４０７が格納され、プログラム削除スクリプト部品１９４５には削除用スクリプト部品４０４が格納される。
【００９０】
図２７は、業務プログラムを複写するために必要なスクリプトテンプレートを組み合わせたプログラム複写スクリプトシナリオを示した図である。
本シナリオは、スクリプトテンプレート２４（図１参照）に格納されており、業務プログラムを複写するために、ＯＳ配備スクリプトテンプレート１９００、ＯＳパッチ配備スクリプトテンプレート１９１０、プログラムを配備するプログラム配備スクリプトテンプレート１９２０、プログラムのパッチを配備するプログラムパッチ配備スクリプトテンプレート１９３０を、この順で実行するものである。
【００９１】
これらを換言すると、本来複写したい業務プログラムを複写するためのテンプレートはプログラム配備スクリプトテンプレート１９２０であり、それ以外の３つのスクリプトテンプレート（符号１９００、１９１０および１９３０）はその補助的な役割を果たすものである。
なお、前提プログラムが１つ以上存在する場合は、プログラムパッチ配備スクリプトテンプレート１９３０を実行後、プログラム配備スクリプトテンプレート１９２０とプログラムパッチ配備スクリプトテンプレート１９３０を必要回数分繰り返し、必要プログラムを配備する。
【００９２】
図２８は、業務プログラムを削除するために必要なスクリプトテンプレートを組み合わせたプログラム削除スクリプトシナリオ１９６０を示した図である。
本シナリオは、スクリプトテンプレート２４に格納されており、業務プログラムを削除するために、指定プログラムを削除するプログラム削除スクリプトテンプレート１９４０を実行する。
【００９３】
なお、指定業務プログラムの前提プログラムが１つ以上あり、その前提プログラムが他の業務プログラムなどで使われていない場合は、この業務プログラムの削除によって不要になるので、プログラム削除スクリプトテンプレート１９４０を必要回数分繰り返すことで、その前提プログラムも削除する。
【００９４】
図２９は、業務プログラムを移動するために必要なスクリプトシナリオを組み合わせたプログラム移動スクリプトシナリオ１９７０を示した図である。
本シナリオは、スクリプトテンプレート２４に格納されており、業務プログラムを移動するために、前記のプログラム複写スクリプトシナリオ１９５０、プログラム削除スクリプトシナリオ１９６０を、この順で実行するものである。
【００９５】
図３０は、プログラム複写要求が発生した場合にステップ９０８（図１２参照）で実施する複写スクリプトの生成処理の内容を示した図である。この場合、管理コンピュータ１１が以下の処理を行う。
まず、ステップ２００１では、複写スクリプトのひな形となるプログラム複写スクリプトシナリオ１９５０（図２７参照）をスクリプトテンプレート２４から取得し、これ以降、スクリプトシナリオの必要な項目に必要なスクリプト部品をセットしていく。
【００９６】
ステップ２００２では、すでに生成したプログラム構成差分情報管理テーブル１０５（図１９参照）のプログラムレベル１の項目に、ＯＳの追加を表す差分種別＋があるか調べる。＋の差分がある場合（Ｙｅｓ）はステップ２００３へ進み、それ以外の場合（Ｎｏ）はステップ２０１０へ進む。
【００９７】
ステップ２００３では、プログラム構成差分情報管理テーブル１０５のプログラムレベル１の項目において、差分種別が＋であるＯＳ名を基に、プログラムライブラリ管理テーブル２１（図６参照）から、該当するＯＳのプログラムライブラリＩＤ（符号３０１）とリブートフラグ（符号３０５）を取得する。
【００９８】
また、取得したプログラムライブラリＩＤ（符号３０１）に該当するスクリプト部品を、スクリプトライブラリ管理テーブル２３から取得する。取得したスクリプト部品は、プログラム複写スクリプトシナリオ１９５０（図２７参照）のＯＳ配備スクリプトテンプレート１９００（図２２参照）内で定義されるスクリプト部品と一致するスクリプト部品（ＯＳ配備スクリプト部品１９０１、環境設定スクリプト部品１９０３）をそれぞれのスクリプト部品としてコピーする。
また、ＯＳ配備スクリプト部品１９０１には、取得したプログラムライブラリＩＤをセットする。
【００９９】
次に、ステップ２００４では、ステップ２００３で取得したリブートフラグをＯＳ配備スクリプト部品１９０１（図２２参照）の直後の連結スクリプト部品１９０２へセットし、ステップ２０１３へ進む。
ステップ２０１３では、複写元のコンピュータのエージェント処理部３０から設定情報を収集し、エージェント処理部設定スクリプト部品１９０５にコピーする。その後、ステップ２００５へ進む。
【０１００】
ステップ２０１０では、ＯＳの配備を行う必要がないため、プログラム複写スクリプトシナリオ１９５０（図２７参照）から、ＯＳ配備スクリプトテンプレート１９００を削除し、ステップ２００５へ進む。
このようにして、必要に応じて、自動的に、プログラム複写スクリプトシナリオ１９５０において、構成するスクリプトテンプレートの一部を削除することができる。
【０１０１】
ステップ２００５では、プログラム構成差分情報管理テーブル１０５のプログラムレベル２の項目に差分種別＋があるか調べる。＋の差分がある場合（Ｙｅｓ）はステップ２００６へ進み、それ以外の場合（Ｎｏ）はステップ２０１１へ進む。
ステップ２００６では、プログラム構成差分情報管理テーブル１０５（図１９参照）のプログラムレベル２の項目において、差分種別が＋であるＯＳパッチ名を基に、プログラムライブラリ管理テーブル２１（図６参照）から、該当するＯＳパッチのプログラムライブラリＩＤとリブートフラグを取得する。
【０１０２】
また、取得したプログラムライブラリＩＤに該当するスクリプト部品を、スクリプトライブラリ管理テーブル２３（図７参照）から取得する。取得したスクリプト部品は、プログラム複写スクリプトシナリオ１９５０（図２７参照）のＯＳパッチ配備スクリプトテンプレート１９００（図２２参照）内で定義されるスクリプト部品と一致するスクリプト部品（ＯＳパッチ配備スクリプト部品１９１１）を、それぞれのスクリプト部品としてコピーする。また、配備スクリプト部品には取得したプログラムライブラリＩＤをセットする。
【０１０３】
さらに、ステップ２００７では、ステップ２００６で取得したリブートフラグをＯＳパッチ配備スクリプト部品１９１１（図２３参照）の直後の連結スクリプト部品１９０２へセットする。
ステップ２０１１では、ＯＳパッチの配備を行う必要がないため、プログラム複写スクリプトシナリオ１９５０（図２７参照）から、ＯＳパッチ配備スクリプトテンプレート１９１０を削除し、ステップ２００８へ進む。
【０１０４】
次に、ステップ２００８では、プログラム構成差分情報管理テーブル１０５（図１９参照）のプログラムレベル３の項目に差分種別＋があるかを調べる。＋の差分がある場合（Ｙｅｓ）はステップ２００９へ進み、それ以外の場合（Ｎｏ）は２０１２へ進む。
【０１０５】
ステップ２００９では、図３１で示すプログラム配備テンプレート設定処理を実施する。
ステップ２０１２では、プログラムの配備を行う必要がないため、プログラム複写スクリプトシナリオ１９５０（図２７参照）から、プログラム配備スクリプトテンプレート１９２０とプログラムパッチ配備スクリプトテンプレート１９３０を削除する。
以上のように、必要に応じてスクリプトテンプレートを追加、削除し、スクリプト部品をコピーして生成した複写スクリプトを、スクリプト２５に格納する。
【０１０６】
図３１は、図３０のステップ２００９で実施するプログラム配備スクリプトテンプレート設定処理の内容を示す図である。ステップ２１０１では、プログラム構成差分情報管理テーブル１０５（図１９参照）のプログラムレベル３の項目において、未設定の差分種別＋のプログラムが存在する場合（Ｙｅｓ）はステップ２１０２へ進み、それ以外の場合（Ｎｏ）は処理を終了する。
【０１０７】
ステップ２１０２では、プログラム構成差分情報管理テーブル１０５の未設定の差分種別＋のプログラム名を取得する。
次にステップ２１０３では、ステップ２１０２で取得したプログラム名の前提プログラムが未設定かを調べる。前提プログラムが未設定の場合（Ｙｅｓ）は、ステップ２１０２へ進み、設定済みの場合（Ｎｏ）はステップ２１０４へ進む。
【０１０８】
ステップ２１０４では、プログラム名がパッチ名かを調べる。パッチ名の場合（Ｙｅｓ）はステップ２１０５へ進み、そうでない場合（Ｎｏ）はステップ２１０７へ進む。
ステップ２１０５では、パッチの対象となるプログラムが未設定かを調べる。未設定の場合（Ｙｅｓ）はステップ２１０１へ進み、設定済みの場合（Ｎｏ）はステップ２１０６へ進む。
【０１０９】
ステップ２１０６では、プログラムのパッチを配備するプログラムパッチ配備スクリプトテンプレート１９３０（図２５参照）に、対象プログラムパッチのスクリプト部品をコピーする。なお、スクリプトテンプレートに対象プログラムのスクリプト部品をコピーするこのステップ２１０６の処理は、図３３で詳しく説明する。その後、ステップ２１０１へ戻る。
【０１１０】
ステップ２１０７では、プログラムの配備を行うプログラム配備スクリプトテンプレート１９２０（図２４参照）に対象プログラムのスクリプト部品をコピーする。なお、プログラム配備スクリプトテンプレート１９２０が設定済みの場合は、最後尾のテンプレートに新たにプログラム配備スクリプトテンプレート１９２０を連結してスクリプト部品のコピーを行う。
その後、ステップ２１０１へ戻る。
【０１１１】
図３２は、プログラム削除要求が発生した場合にステップ９１１（図１２参照）で実施する削除用スクリプトの生成処理の内容を示した図である。
まず、ステップ２２０１では、削除用スクリプトのひな形となるプログラム削除スクリプトシナリオ１９６０（図２８参照）を取得し、これ以降、このスクリプトシナリオの必要な項目に必要なスクリプト部品をセットしていく。
【０１１２】
まず、ステップ２２０２では、指定業務プログラムを削除するプログラム削除スクリプトテンプレート１９４０（図２６参照）に削除対象プログラムのスクリプト部品をコピーし、ステップ２２０３へ進む。なお、スクリプトテンプレートに対象プログラムのスクリプト部品をコピーするこのステップ２２０２の処理は、図３３で詳しく説明する。
【０１１３】
ステップ２２０３では、テンプレートにスクリプト部品をコピーしたプログラム名を、設定済みプログラム名とする。その後、ステップ２２０４へ進む。
ステップ２２０４では、設定済みプログラムに前提プログラムがあるか否かをプログラム構成管理テーブル１０１から取得（判断）し、前提プログラムが存在する場合（Ｙｅｓ）はステップ２２０５へ進み、そうでない場合（Ｎｏ）は処理を終了する。
【０１１４】
ステップ２２０５では、最後尾のテンプレートに新たにプログラム削除スクリプトテンプレート１９４０（図２６参照）を追加し、前提プログラム名のスクリプト部品をコピーする（図３３で説明）。その後ステップ２２０３へ戻る。
以上のように削除スクリプトシナリオのスクリプトテンプレートを追加し、スクリプト部品をコピーして生成した削除スクリプトを、スクリプト２５に格納する。
【０１１５】
図３３は、スクリプトテンプレートに、該当するプログラムのスクリプト部品をコピーする処理内容を示した図である。
ステップ２３０１では、該当するプログラム名と該当プログラムが配備や削除を行う対象のＯＳ名を基に、プログラムライブラリ管理テーブル２１（図６参照）から該当するプログラムのプログラムライブラリＩＤとリブートフラグを取得する。また、取得したプログラムライブラリＩＤを基に、スクリプトライブラリ管理テーブル２３（図７参照）から該当するプログラムで使用するスクリプト部品を取得する。
ステップ２３０２では、スクリプトテンプレートに未設定のスクリプト部品がある場合（Ｙｅｓ）はステップ２３０３へ進み、そうでない場合（Ｎｏ）は処理を終了する。
【０１１６】
ステップ２３０３では、スクリプトテンプレートで次の未設定スクリプト部品を取得する。
次に、ステップ２３０４では、未設定スクリプト部品が配備用スクリプト部品かを調べ、配備用スクリプト部品の場合（Ｙｅｓ）はステップ２３０５へ進み、そうでない場合（Ｎｏ）はステップ２３０８へ進む。
ステップ２３０５では、プログラムのスクリプト部品から配備用スクリプト部品を取得し、テンプレートの未設定スクリプト部品へコピーし、ステップ２３０６へ進む。また、配備スクリプト部品には、取得したプログラムライブラリＩＤをセットする。
【０１１７】
ステップ２３０６では、テンプレートから次の未設定スクリプトである連結スクリプトを取得し、ステップ２３０７では、プログラムのリブートフラグをプログラムライブラリ管理テーブル２１から取得し、連結スクリプトにセットする。その後、ステップ２３０２へ戻る。
ステップ２３０８では、未設定スクリプト部品と一致するプログラムのスクリプト部品が存在するかを調べ、一致するスクリプト部品が存在する場合（Ｙｅｓ）はステップ２３０９へ進み、そうでない場合（Ｎｏ）はステップ２３１２へ進む。
【０１１８】
次にステップ２３０９では、プログラムのスクリプト部品から一致するスクリプト部品を取得し、テンプレートの未設定スクリプト部品へコピーし、ステップ２３１０へ進む。
ステップ２３１０では、テンプレートから次の未設定スクリプトである連結スクリプトを取得し、ステップ２３１１では、何もセットしない。もしくは、未設定スクリプトである連結スクリプトを削除しても良い。その後、ステップ２３０２へ戻る。
【０１１９】
ステップ２３１２では、未設定のスクリプト部品と一致するスクリプト部品が存在しないため、何もセットしない。もしくは、未設定のスクリプト部品を削除しても良い。
同様に、ステップ２３１３で、テンプレートから次の未設定スクリプトである連結スクリプトを取得し、何もセットしない。もしくは、未設定スクリプトである連結スクリプトを削除しても良い。その後、ステップ２３０２へ戻る。
【０１２０】
図３４は、スクリプト部品に使用する変数のデータ構造を表した、パラメタ用のデータモデルテンプレート１０７を示す図である。本テンプレートを使用して、業務プログラムごとにデータモデルを生成する。
データモデルテンプレート１０７では、業務プログラム名２４０２が、所属する業務名２４０１と、グループ名２４１４に連結される。ただし、グループ名２４１４は無くても良い。
【０１２１】
また、業務プログラム名２４０２は、稼動コンピュータ名２４０３と、前提ＯＳパッチ名２４０４と、前提プログラム名２４０５と、関連プログラム名２４０６と、配備先コンピュータ名２４０７と連結する。ただし、前提ＯＳパッチ名２４０４と、前提プログラム名２４０５と、関連プログラム名２４０６は、無くても良い。また、削除対象の業務プログラムのデータモデルは、配備先コンピュータ名２４０７が存在しない。
【０１２２】
稼動コンピュータ名２４０３には、ＯＳ名２４０８と、ＯＳパッチ名２４０９と、業務プログラム名２４１０が連結される。ただし、ＯＳパッチ名２４０９と、業務プログラム名２４１０は無くても良い。
なお、生成したデータモデルは、業務名２４０１と、グループ名２４１４と、業務プログラム名２４０２により、プログラム配備システムＳ内で一意に定まるものである。
【０１２３】
また、生成したデータモデルにおいて、前提プログラム名２４０５と、関連プログラム名２４０６は、対象のプログラムのデータモデルと連結することが可能である。業務プログラムに前提プログラムが存在する場合は、データモデルの前提プログラム名２４０５は、前提プログラムのデータモデルの業務プログラム名２４０２と連結する。同様に業務プログラムに関連プログラムが存在する場合は、関連プログラム名２４０６は、関連プログラムのデータモデルの業務プログラム名２４０２と連結する。
【０１２４】
なお、１つの業務でも同じ業務プログラムが異なるコンピュータで複数稼動する場合があるため、前提プログラムのデータモデルは、同じ業務名２４０１の同じグループ名２４１４を持ち、前提プログラム名と一致する業務プログラム名２４０２のデータモデルとする。また、関連プログラムのデータモデルは、同じ業務名２４０１を持ち、関連プログラム名と一致する業務プログラムのデータモデルとする。
【０１２５】
以上のように、業務プログラムごとに生成されるデータモデルを、そのデータモデルの前提プログラム、関連プログラムに対応したデータモデルと連結することで、スクリプト部品の変数に割り当てるパラメタとして業務プログラムに関係するプログラムのデータの取得が可能となる。例えば、業務プログラムの関連プログラムが稼動するコンピュータ上で、実行スクリプト１８０２（図２１参照）を実行したい場合は、実行コンピュータ名１８０１の変数として、「＄業務名．グループ名．プログラム名．関連プログラム名．稼動コンピュータ名＄」と定義することで実現できる。
【０１２６】
図３５は、データモデルテンプレート１０７に業務プログラムのデータをコピーし、データモデル１０８を生成する処理内容を示した図である。データモデルは、管理コンピュータ１１が、業務プログラムごとに、複写、移動、削除要求で指定された業務プログラムが存在する業務内の全ての業務プログラムで生成する。
【０１２７】
まず、ステップ２５０１では、対象業務内にデータモデルを生成していない業務プログラムが存在するかを調べ、存在する場合（Ｙｅｓ）はステップ２５０２へ進み、そうでない場合（Ｎｏ）はステップ２５０７へ進む。
ステップ２５０２で、データモデルを生成していない業務プログラム名を取得し、ステップ２５０３では、対象業務の取得した業務プログラム名に該当するデータを業務構成情報管理テーブル１０２（図９参照）から取得する。
また、ステップ２５０４では、プログラム構成管理テーブル１０１（図１１参照）から該当する業務プログラムのデータを取得する。
【０１２８】
ステップ２５０５では、ステップ２５０３で取得した業務構成データから、稼動コンピュータ名を取得し、物理構成情報管理テーブル１０４（図１０参照）から、該当するコンピュータのデータを取得する。
その後、ステップ２５０６でデータモデルのテンプレートに、該当するデータをコピーする。まず、業務構成情報管理テーブル１０２（図９参照）から取得した、業務システム名６０１を業務名２４０１へ、グループ名６０２をグループ名２４１４へ、業務プログラム名６０３を業務プログラム名２４０２へ、コンピュータ名６０４を稼動コンピュータ名２４０３へコピーする。
【０１２９】
さらに、プログラム構成管理テーブル１０１から取得した前提ＯＳパッチ名８０３を前提ＯＳパッチ名２４０４へ、前提プログラム名８０４を前提プログラム名２４０５へ、連携先プログラム名８０５を関連プログラム名２４０６へコピーする。次に、物理構成情報管理テーブル１０４から取得したコンピュータのＯＳ７０３をＯＳ名２４０８、２４１１へ、ＯＳパッチ名７０４をＯＳパッチ名２４０９、２４１２へ、業務プログラム７０５を業務プログラム名２４１０、２４１３へコピーする。
以上のようにデータをテンプレートにコピーすることで、業務プログラムのデータモデルを完成させる。なお、テンプレートに対応するデータがない場合は、何もコピーしないか、あるいは、削除しても良い。
【０１３０】
次に、生成した業務プログラムのデータモデルにおいて、前提プログラム名や連携プログラム名に対応したデータモデルを連結する。まず、ステップ２５０７で生成した全てのデータモデルで連結作業を行った場合（Ｙｅｓ）はステップ２５１３へ進み、そうでない場合（Ｎｏ）はステップ２５０８へ進む。
ステップ２５０８では、連結作業を行っていないデータモデルを取得する。
ステップ２５０９では、データモデルに前提プログラム名がセットされているかを調べる。セットされている場合（Ｙｅｓ）はステップ２５１０へ進み、そうでない場合（Ｎｏ）はステップ２５１１へ進む。
【０１３１】
ステップ２５１０では、同一業務名の同一グループ名のデータモデルで、前提プログラム名に該当するデータモデルを取得し、前提プログラム名２４０５に該当データモデルの業務プログラム名２４０２を連結し、ステップ２５１１へ進む。
ステップ２５１１では、データモデルに関連プログラム名がセットされているかを調べる。セットされている場合（Ｙｅｓ）はステップ２５１２へ進み、そうでない場合（Ｎｏ）はステップ２５０７へ戻る。
【０１３２】
ステップ２５１２では、同一業務名のデータモデルで、前提プログラム名に該当するデータモデルを取得し、関連プログラム名２４０６に該当データモデルの業務プログラム名２４０２を連結し、ステップ２５０７へ進む。
また、ステップ２５１３では、複写、移動要求で指定された業務プログラムのデータモデルにおいては、配備先コンピュータが選択されているため、物理構成情報管理テーブル１０４から該当する配備先コンピュータのデータを取得し、指定業務プログラムのデータモデルに配備先コンピュータ名２４０７、ＯＳ名２４１１、ＯＳパッチ名２４１２、業務プログラム名２４１３をコピーする。
【０１３３】
図３６は、生成した複写、移動、削除のスクリプト２５を実行する処理内容を示す図である。スクリプト２５は、要求に応じたスクリプトシナリオから、スクリプトテンプレートの追加、削除を行い、スクリプトテンプレートにそれぞれ対応するスクリプト部品をコピーして完成されたものである。なお、スクリプト２５の実行は、スクリプトの先頭から、コピーされたスクリプト部品を１つずつ取り出し、行われる。
【０１３４】
ステップ２６０１では、スクリプトに次のスクリプト部品が存在するか調べる。存在する場合（Ｙｅｓ）はステップ２６０２へ進み、そうでない場合（Ｎｏ）はスクリプトの実行を終了する。
ステップ２６０２では、スクリプトから次のスクリプト部品を取得する。
次に、ステップ２６０３では、そのスクリプト部品が連結スクリプト部品の場合（Ｙｅｓ）はステップ２６０４へ進み、そうでない場合（Ｎｏ）はステップ２６０８へ進む。
ステップ２６０４では、連結スクリプト部品にセットされたリブートフラグを調べ、リブートフラグがＯＮの場合（Ｙｅｓ）はステップ２６０５へ進み、ＯＦＦもしくは何もセットされていない場合（Ｎｏ）はステップ２６１２へ進む。８９
【０１３５】
ステップ２６０５では、前にスクリプト部品を実行したコンピュータのリブートを行う。該当コンピュータのエージェント処理部３０へリブート要求を送信し、ステップ２６０６へ進む。
ステップ２６０６では、前にスクリプト部品を実行したコンピュータのエージェント処理部３０から起動完了通知を受信するまで処理を待ち、受信後ステップ２６０１へ戻る。
【０１３６】
ステップ２６１２では、前にスクリプト部品を実行したコンピュータのエージェント処理部３０にリブート要求が出ていないか確認する。リブート要求が出ている場合（Ｙｅｓ）はステップ２６０５へ進み、出ていない場合（Ｎｏ）はステップ２６０７へ進む。
ステップ２６０７では、前にスクリプト部品を実行したコンピュータがリブートしているかを確認するため、該当コンピュータのエージェント処理部３０へ起動しているかを確認する。自動的にリブートされたが、まだコンピュータが起動を完了していない場合（Ｙｅｓ）はステップ２６０６へ進み、リブートが完了するのを待ち、起動を完了していた場合（Ｎｏ）はステップ２６０１へ進む。
【０１３７】
次のスクリプト部品が連結スクリプト部品ではない場合（ステップ２６０３でＮｏ）、ステップ２６０８で、スクリプト部品が未設定かを調べる。設定済みの場合（Ｎｏ）はステップ２６０９へ進み、未設定の場合（Ｙｅｓ）はステップ２６０１へ戻る。
ステップ２６０９で、スクリプト部品を実行するコンピュータである実行コンピュータ名１８０１（図２１参照）と、実行スクリプト１８０２に使用されている変数で指定されたデータをデータモデル１０８（図４、図３４参照）から取得し、パラメタとして変数に代入する。
【０１３８】
次に、ステップ２６１０では、実行コンピュータ名１８０１のエージェント処理部３０に実行スクリプト１８０２を転送する。
その後、ステップ２６１１では、エージェント処理部３０から実行スクリプト１８０２を実行した結果を受信するまで待ち、受信後、ステップ２６０１へ戻る。
【０１３９】
このように、本実施形態のプログラム配備システムＳによれば、業務プログラムの複写、移動、削除要求に対し、指定された業務プログラムと業務コンピュータの状況に合わせて、スクリプトシナリオからスクリプトテンプレートの追加や削除を行う。また、そのスクリプトシナリオにおいて、必要なスクリプト部品の選択および設定と、パラメタの値の割付けを行うことで、スクリプトを生成する。そして、そのスクリプトを実行することで、業務プログラムの配備、削除を、業務コンピュータを意識することなく、容易に行うことができる。
【０１４０】
以下、本実施形態のプログラム配備システムＳの応用例について、図３７〜図４１を参照しながら説明する。
図３７は、業務の複製や、移動、削除のイベントに対して対象業務の構成差分情報を保持する業務構成差分情報管理テーブル３０００を示す図である。この業務構成差分情報管理テーブル３０００は、プログラム構成差分情報管理テーブル１０５（図１９参照）を拡張したものであり、たとえば、プログラム構成差分情報管理テーブル１０５とともにシステム構成情報２２（図４参照）に記憶するようにしておけば良い。
【０１４１】
本テーブルには、業務レベル３００１と、差分種別３００２と、業務名３００３と、業務プログラムまたはグループ名３００４を保持する。差分種別３００２は、業務を複製する場合には＋、削除する場合には−として表現する。
【０１４２】
なお、業務の移動は、対象業務の複写を実施した後に業務の削除を実施することで実現する。また、業務レベル３００１は、複製、削除を行う業務のプログラムにおいて、連携先プログラムによる依存度を表しており、例えば、連携先プログラムが無い場合はレベル１、ある場合はレベル２、連携先プログラムにも連携先プログラムがある場合にはレベル３とする。なお、連携先プログラムにさらに連携先プログラムがあれば、レベル４，５・・・とすれば良い。このレベルに基づき、プログラムまたはグループを複写する場合は昇順に、削除の場合は降順に実施する。つまり、プログラム同士の前提状況や関連状況から、複写時は優先順位の高いものから複写し、削除時は優先順位の低いものから削除することで、処理にエラーが発生しないようにするものである。
【０１４３】
図３８は、図３７の業務プログラムまたはグループ名３００４がグループ名の場合に、グループ構成差分情報管理テーブル３１００を示す図である。このグループ構成差分情報管理テーブル３１００は、業務構成差分情報管理テーブル３０００と同様、プログラム構成差分情報管理テーブル１０５（図１９参照）を拡張したものであり、たとえば、プログラム構成差分情報管理テーブル１０５とともにシステム構成情報２２（図４参照）に記憶するようにしておけば良い。
【０１４４】
本テーブルには、グループレベル３１０１と、差分種別３１０２と、グループ名３１０３と、業務プログラム名３１０４を保持する。差分種別３１０２は、業務を複製する場合には＋、削除する場合には−として表現する。
【０１４５】
また、グループレベル３１０１は、複製、削除を行うグループのプログラムにおいて、プログラムレベル３の前提プログラムの依存度を表しており、例えば、前提プログラムが無い場合はレベル１、ある場合はレベル２、前提プログラムにも前提プログラムがある場合にはレベル３とする。このレベルに基づき、プログラムを複写する場合は昇順に、削除の場合は降順に実施する。これも、図３７の場合と同様、プログラム同士の前提状況や関連状況から、複写時は優先順位の高いものから複写し、削除時は優先順位の低いものから削除することで、処理にエラーが発生しないようにするものである。
【０１４６】
図３９は、管理コンピュータ１１が業務構成差分情報管理テーブル３０００を作成する処理内容を示した図である。まず、ステップ３２０１では、業務を削除する場合（Ｙｅｓ）はステップ３２０３へ移動し、複写する場合（Ｎｏ）はステップ３２０２へ移動する。
ステップ３２０２では、業務構成情報管理テーブル１０２（図９参照）で複写対象の業務構成情報をコピーし、別名称をつける。例えば、業務１をコピーした場合に業務１−１とする。このとき、業務１−１は未生成のため、コンピュータ名６０４を空欄にし、複写後に反映されるものとする。
【０１４７】
次にステップ３２０３では、業務構成情報管理テーブル１０２から対象業務のグループ名（グループ名が無い場合はプログラム名）を業務構成差分情報管理テーブル３０００のレベル１へコピーする。このとき、業務を削除する場合は、差分種別３００２を−を、複写の場合は＋をセットする。次に、ステップ３２０４では、対象レベルに１をセットする。
【０１４８】
ステップ３２０５では、業務構成差分情報管理テーブル３０００の全てのレベルで設定が終わった場合（Ｙｅｓ）は処理を終了し、それ以外の場合（Ｎｏ）はステップ３２０６へ進む。
ステップ３２０６では、業務構成差分情報管理テーブル３０００において、対象レベルの全てのグループ（もしくはプログラム）で設定が完了した場合（Ｙｅｓ）はステップ３２１０へ進み、それ以外の場合（Ｎｏ）はステップ３２０７へ進む。
ステップ３２０７では、対象レベルにおいて未設定のグループ（もしくはプログラム）を取得し、ステップ３２０８へ進む。
【０１４９】
ステップ３２０８では、対象グループ内のプログラム（グループではない場合はそのプログラム）において連携先プログラム名をプログラム構成管理テーブル１０１の８０５から取得し、連携先プログラム名が対象レベル内に存在する場合（Ｙｅｓ）はステップ３２０９へ進み、それ以外の場合（Ｎｏ）はステップ３２０６へ進む。
ステップ３２０９では、グループ（もしくはプログラム）を対象レベル＋１のレベルに設定し、ステップ３２０６へ進む。
ステップ３２１０では、対象レベルに１を足し、ステップ３２０５へ進む。
【０１５０】
図４０は、管理コンピュータ１１がグループ構成差分情報管理テーブル３１００を作成する処理内容を示した図である。まず、ステップ３３０１では、業務構成情報管理テーブル１０２から対象グループのプログラム名をグループ構成差分情報管理テーブル３１００のレベル１へコピーする。このとき、業務を削除する場合は、差分種別３３０２を−を、複写の場合は＋をセットする。
【０１５１】
次にステップ３３０２では、対象レベルに１をセットする。
ステップ３３０３では、業務構成差分情報管理テーブル３０００の全てのレベルで設定が終わった場合（Ｙｅｓ）は処理を終了し、それ以外の場合（Ｎｏ）はステップ３３０４へ進む。
ステップ３３０４では、グループ構成差分情報管理テーブル３１００において、対象レベルの全てのプログラムで設定が完了した場合（Ｙｅｓ）はステップ３３０８へ進み、それ以外の場合（Ｎｏ）はステップ３３０５へ進む。
ステップ３３０５では、対象レベルにおいて未設定のプログラムを取得し、ステップ３３０６へ進む。
【０１５２】
ステップ３３０６では、対象プログラムにおいて前提プログラム名をプログラム構成管理テーブル１０１（図１１参照）の前提プログラム名８０４から取得し、前提プログラム名が対象レベル内に存在する場合（Ｙｅｓ）はステップ３３０７へ進み、それ以外の場合（Ｎｏ）はステップ３３０４へ進む。
ステップ３３０７では、プログラムを対象レベル＋１のレベルに設定し、ステップ３３０４へ進む。
ステップ３３０８では、対象レベルに１を足し、ステップ３３０３へ進む。
【０１５３】
図４１は、管理コンピュータ１１が業務の複写、移動、削除を実施する処理内容を示した図である。
なお、この処理は、業務プログラムごとではなく、業務ごとに複写などの変更を実施するものである。この場合、管理コンピュータ１１は、まず、図１２の処理を開始し、図１２におけるステップ９０２のＮｏの直後に、業務ごとの変更があるか否かを判断し、業務ごとの変更があると判断した場合に、図４１の処理を行うことになる。そして、図４１のステップ３４０８において図１２のステップ９０６〜９０９を実行し、図４１のステップ３４１３において図１２のステップ９１１と９１２を実行することになる。
また、業務ごとの変更があるか否かの判断は、図１２において、ステップ９０２のＮｏの直後でなくても、そのほかに、ステップ９１０のＮｏの直後、あるいは、ステップ９１３のＮｏの直後などであってもよい。
【０１５４】
図４１について説明すると、まず、ステップ３４０１では、複写、移動、削除に応じた業務構成差分情報管理テーブル３０００を生成する（図３９参照）。
次にステップ３４０２では、生成した業務構成差分情報管理テーブル３０００の業務プログラム名またはグループ名３００４にグループ名が設定されている場合（Ｙｅｓ）、グループ数分のグループ構成差分情報管理テーブル３１００をステップ３４０３で生成する（図４０参照）。
【０１５５】
次に、ステップ３４０４では、対象レベルを１とし、ステップ３４０５へ進む。
ステップ３４０５では、生成した業務構成差分情報管理テーブル３０００の全てのレベルで差分種別３００２が＋の要素（グループまたはプログラム）の複写を実施した場合（Ｙｅｓ）はステップ３４１０へ進み、それ以外の場合（Ｎｏ）はステップ３４０６へ進む。
【０１５６】
ステップ３４０６では、対象レベルの全ての要素について複写を実施した場合（Ｙｅｓ）はステップ３４０９へ進み、それ以外の場合（Ｎｏ）はステップ３４０７へ進む。
ステップ３４０７では、対象レベルの次の要素を取得し、ステップ３４０８へ進む。
【０１５７】
ステップ３４０８では、要素の複写を実施する。このとき、要素がプログラムの場合はプログラムの複写イベントを出し、要素がグループの場合は、該当するグループ構成差分情報管理テーブル３１００において、グループレベル３１０１の昇順に業務プログラム名３１０４の複写イベントを出す。
【０１５８】
ステップ３４０９では、対象レベルに１を足し、ステップ３４０５へ進む。
次にステップ３４１０では、生成した業務構成差分情報管理テーブル３０００の全てのレベルで差分種別３００２が−の要素（グループまたはプログラム）の削除を実施した場合（Ｙｅｓ）は処理を終了し、それ以外の場合（Ｎｏ）はステップ３４１１へ進む。
ステップ３４１１では、対象レベルの全ての要素について削除を実施した場合（Ｙｅｓ）はステップ３４１４へ進み、それ以外の場合（Ｎｏ）は３４１２へ進む。
【０１５９】
ステップ３４１２では、対象レベルの次の要素を取得し、ステップ３４１３へ進む。
ステップ３４１３では、要素の削除を実施する。このとき、要素がプログラムの場合はプログラムの削除イベントを出し、要素がグループの場合は、該当するグループ構成差分情報管理テーブル３１００において、グループレベル３１０１の降順に業務プログラム名３１０４の削除イベントを出す。
ステップ３４１４では、対象レベルから１を引き、ステップ３４１０へ進む。
【０１６０】
このようにして、業務ごとに複写、移動、削除などの変更を行う場合でも、業務プログラムの変更の順序決定や各種設定などを自動で行うことができ、業務システムの構成を容易に変更することができる。
【０１６１】
また、本実施形態のプログラム配備システムＳによる業務システム構成変更方法は、コンピュータ及びプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体に記録することで、その記録媒体によって提供することが可能である。また、そのプログラムを、ネットワークを通して提供することも可能である。
【０１６２】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
たとえば、本実施形態では、監視コンピュータに表示画面（ＧＵＩ）を設けるようにしたが、監視コンピュータを用いず、管理コンピュータにＧＵＩなどの表示画面を設けるようにしても良い。
【０１６３】
また、業務プログラムを配備可能なコンピュータが複数あった場合、セキュリティレベルがより高いＯＳを備えたコンピュータに、その業務プログラムを配備するようにしても良い。
その他、具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【０１６４】
【図１】本実施形態のプログラム配備システムの概要を示した図である。
【図２】本実施形態のプログラム配備システムのハードウエア構成を示した図である。
【図３】本実施形態のエージェントのハードウエア構成を示した図である。
【図４】本実施形態のシステム構成情報を示した図である。
【図５】本実施形態のプログラム稼動最大構成テンプレートを示した図である。
【図６】本実施形態のプログラムライブラリ管理テーブルを示した図である。
【図７】本実施形態のスクリプトライブラリ管理テーブルを示した図である。
【図８】本実施形態のＯＳ情報管理テーブルを示した図である。
【図９】本実施形態の業務構成管理テーブルを示した図である。
【図１０】本実施形態の物理構成情報管理テーブルを示した図である。
【図１１】本実施形態のプログラム構成管理テーブルを示した図である。
【図１２】本実施形態のメイン処理フローを示した図である。
【図１３】本実施形態の初期画面を示した図である。
【図１４】本実施形態の移動画面を示した図である。
【図１５】本実施形態の複写画面を示した図である。
【図１６】本実施形態の削除後の画面を示した図である。
【図１７】本実施形態のプログラムの移動、複写先のコンピュータを選択するフローを示した図である。
【図１８】本実施形態の配備対象プログラム管理テーブルを示した図である。
【図１９】本実施形態のプログラム構成差分情報管理テーブルを示した図である。
【図２０】本実施形態のプログラム構成差分生成フローを示した図である。
【図２１】本実施形態のスクリプト部品を示した図である。
【図２２】本実施形態のＯＳ配備スクリプトテンプレートを示した図である。
【図２３】本実施形態のＯＳパッチ配備スクリプトテンプレートを示した図である。
【図２４】本実施形態のプログラム配備スクリプトテンプレートを示した図である。
【図２５】本実施形態のプログラムパッチ配備スクリプトテンプレートを示した図である。
【図２６】本実施形態のプログラム削除スクリプトテンプレートを示した図である。
【図２７】本実施形態のプログラム複写スクリプトシナリオを示した図である。
【図２８】本実施形態のプログラム削除スクリプトシナリオを示した図である。
【図２９】本実施形態のプログラム移動スクリプトシナリオを示した図である。
【図３０】本実施形態の複写スクリプト生成フローを示した図である。
【図３１】本実施形態のプログラム配備テンプレート設定処理を示した図である。
【図３２】本実施形態の削除スクリプト生成フローを示した図である。
【図３３】本実施形態のスクリプトテンプレートにスクリプト部品設定するフローを示した図である。
【図３４】本実施形態のパラメタ用データモデルのテンプレートを示した図である。
【図３５】本実施形態のデータモデル生成フローを示した図である。
【図３６】本実施形態のスクリプト実行フローを示した図である。
【図３７】本実施形態の業務構成差分情報管理テーブルを示した図である。
【図３８】本実施形態のグループ構成差分情報管理テーブルを示した図である。
【図３９】本実施形態の業務構成差分情報管理テーブル生成フローを示した図である。
【図４０】本実施形態のグループ構成差分情報管理テーブル生成フローを示した図である。
【図４１】本実施形態の業務の複写、移動、削除を実施する処理フローを示した図である。
【符号の説明】
【０１６５】
１      監視コンピュータ
４      業務コンピュータ
８      データベース
１０    ＧＵＩ
１１    管理コンピュータ
２１    プログラムライブラリ管理テーブル
２２    システム構成情報
２３    スクリプトライブラリ管理テーブル
２４    スクリプトテンプレート
２５    スクリプト
１０１  プログラム構成管理テーブル
１０２  業務構成情報管理テーブル
１０３  ＯＳ情報管理テーブル
１０４  物理構成情報管理テーブル
１０５  プログラム構成差分情報管理テーブル
１０６  配備対象プログラム管理テーブル
１０７  データモデルテンプレート
１０８  データモデル
１０９  プログラム稼動最大構成テンプレート
２７２１、２７３１  ＣＰＵ
２７２３、２７３３  記憶装置
２７２２、２７３２  メモリ
【図１】
2008021111.tif 000003
【図２】
2008021111.tif 000004
【図３】
2008021111.tif 000005
【図４】
2008021111.tif 000006
【図５】
2008021111.tif 000007
【図６】
2008021111.tif 000008
【図７】
2008021111.tif 000009
【図８】
2008021111.tif 000010
【図９】
2008021111.tif 000011
【図１０】
2008021111.tif 000012
【図１１】
2008021111.tif 000013
【図１２】
2008021111.tif 000014
【図１３】
2008021111.tif 000015
【図１４】
2008021111.tif 000016
【図１５】
2008021111.tif 000017
【図１６】
2008021111.tif 000018
【図１７】
2008021111.tif 000019
【図１８】
2008021111.tif 000020
【図１９】
2008021111.tif 000021
【図２０】
2008021111.tif 000022
【図２１】
2008021111.tif 000023
【図２２】
2008021111.tif 000024
【図２３】
2008021111.tif 000025
【図２４】
2008021111.tif 000026
【図２５】
2008021111.tif 000027
【図２６】
2008021111.tif 000028
【図２７】
2008021111.tif 000029
【図２８】
2008021111.tif 000030
【図２９】
2008021111.tif 000031
【図３０】
2008021111.tif 000032
【図３１】
2008021111.tif 000033
【図３２】
2008021111.tif 000034
【図３３】
2008021111.tif 000035
【図３４】
2008021111.tif 000036
【図３５】
2008021111.tif 000037
【図３６】
2008021111.tif 000038
【図３７】
2008021111.tif 000039
【図３８】
2008021111.tif 000040
【図３９】
2008021111.tif 000041
【図４０】
2008021111.tif 000042
【図４１】
2008021111.tif 000043