(57)【要約】      （修正有）【課題】ソフトウェアのテストを行うためのマシンの決定を効率化する決定方法、決定装置及び決定プログラムを提供する。【解決手段】管理システム１において、ソフトウェアのテストを行うためのマシンを決定する決定装置が、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。決定装置は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得する処理によって取得されたユーザ情報との比較を行う。決定装置は、比較を行う処理による比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。【選択図】図１
2020101994.tif 000002
【特許請求の範囲】
【請求項１】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得し、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較を行い、
前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
処理をコンピュータが実行することを特徴とする決定方法。
【請求項２】
前記各ジョブの実行ユーザが前記各候補ホストに対応付けられた実行ユーザに含まれる場合に第１のスコアを計算し、前記各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に前記第１のスコアより低い第２のスコアを計算し、前記各ジョブの実行ユーザと同一のグループの実行ユーザが前記各候補ホストに対応付けられた実行ユーザに含まれる場合に前記第２のスコアより低い第３のスコアを計算する処理をさらに実行し、
前記決定する処理は、前記計算する処理によって計算されたスコアが大きいホストほど優先されるように、前記各ジョブのテストを行う実行ホストを決定することを特徴とする請求項１に記載の決定方法。
【請求項３】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得し、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得する処理によって取得された前記スペック情報との比較を行い、
前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
処理をコンピュータが実行することを特徴とする決定方法。
【請求項４】
前記取得する処理は、前記定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報をさらに取得し、
前記比較を行う処理は、前記複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較をさらに行い、
前記決定する処理は、前記定義情報に実行予測時間が含まれるジョブについては、前記定義情報に実行予測時間が含まれないジョブに比べて、前記スペック情報の比較結果の影響が前記ユーザ情報の比較結果の影響より大きくなるように実行ホストを決定することを特徴とする請求項３に記載の決定方法。
【請求項５】
前記比較結果に基づいて、前記各ジョブについて、前記複数の候補ホストのそれぞれに対するスコアを計算する処理をさらに実行し、
前記決定する処理は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、当該決定したホストに対する前記スコアが大きいジョブほど優先されるように、前記複数のジョブのテストを行う実行ホストを再度決定することを特徴とする請求項３に記載の決定方法。
【請求項６】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得する取得部と、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得部によって取得された前記ユーザ情報との比較を行う比較部と、
前記比較部による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する決定部と、
を有することを特徴とする決定装置。
【請求項７】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得する取得部と、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得部によって取得された前記スペック情報との比較を行う比較部と、
前記比較部による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する決定部と、
を有することを特徴とする決定装置。
【請求項８】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得し、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較を行い、
前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
処理をコンピュータに実行させることを特徴とする決定プログラム。
【請求項９】
ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得し、
前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得する処理によって取得された前記スペック情報との比較を行い、
前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
処理をコンピュータに実行させることを特徴とする決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、決定方法、決定装置及び決定プログラムに関する。
【背景技術】
【０００２】
開発された業務システム等のソフトウェアが本番環境（商用環境）へリリースされる前には、テスト環境において当該ソフトウェアのテストが行われる。従来、テスト用のマシンを候補の中から選択するための手法が知られている。例えば、ユーザが要求するＯＳ（Operating  System）及びアプリケーションと、各候補のマシンに備えられたＯＳ及びアプリケーションとの類似度に基づいてテスト用のマシンを選択する手法が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−００９６２２号公報
【特許文献２】特開２０１０−１０２４１５号公報
【特許文献３】特開２０１２−２２１１７０号公報
【特許文献４】特開２０１５−０１１３６２号公報
【特許文献５】特開２０１５−１５２９８７号公報
【特許文献６】特開２０１７−１５１５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、ソフトウェアのテストを行うためのマシンの決定を効率化することが困難な場合がある。ここで、例えば業務システムにおいては、ホスト上で様々なジョブが実行される。また、テスト用のホストの選択が適切であれば、テスト環境と本番環境とで、ジョブ実行時の業務システムの挙動の相違は小さくなると考えられる。
【０００５】
一方で、テスト用のホストが本番環境のホストと同じＯＳ及びアプリケーションを有していたとしても、ファイルへのアクセス権限等に違いが生じ得るため、テスト環境と本番環境とでジョブ実行時の挙動が相違する可能性がある。このため、従来の技術では、業務システムのテストを行うための適切なホストを選択することが難しい場合がある。
【０００６】
１つの側面では、ソフトウェアのテストを行うためのマシンの決定を効率化することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様において、決定方法は、コンピュータが、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。決定方法は、コンピュータが、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得する処理によって取得されたユーザ情報との比較を行う。決定方法は、コンピュータが、比較を行う処理による比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。
【発明の効果】
【０００８】
本発明の１実施態様によれば、ソフトウェアのテストを行うためのマシンの決定を効率化することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係るシステム全体の構成を説明するための図である。
【図２】図２は、ジョブのテストの流れを説明するための図である。
【図３】図３は、リポジトリに記憶されるデータについて説明する図である。
【図４】図４は、実施例に係る決定装置の機能構成の一例を示すブロック図である。
【図５】図５は、テスト環境実行サーバリストの一例を示す図である。
【図６】図６は、本番環境実行サーバリストの一例を示す図である。
【図７】図７は、スペックスコア計算テーブルの一例を示す図である。
【図８】図８は、ユーザスコア計算テーブルの一例を示す図である。
【図９】図９は、ユーザスコアの計算について説明する図である。
【図１０】図１０は、優先度スコア計算テーブルの一例を示す図である。
【図１１】図１１は、優先度スコア計算テーブルの一例を示す図である。
【図１２】図１２は、サーバの割り当てについて説明する図である。
【図１３】図１３は、サーバの再割り当てについて説明する図である。
【図１４】図１４は、変換前後の定義情報の一例を示す図である。
【図１５】図１５は、決定処理の流れを示すフローチャートである。
【図１６】図１６は、スコアを計算する処理の流れを示すフローチャートである。
【図１７】図１７は、サーバを割り当てる処理の流れを示すフローチャートである。
【図１８】図１８は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる決定方法、決定装置及び決定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１１】
まず、図１を用いて、実施例に係るシステム全体の構成を説明する。図１は、実施例に係るシステム全体の構成を説明するための図である。図１に示すように、管理システム１は、テスト環境２Ｔ及び本番環境２Ｐを有する。また、開発者４、運用担当者５は、リポジトリ３に対して操作を行い、業務システムに関するデータの登録及び更新等を行う。また、管理装置３０Ｔ及び管理装置３０Ｐは、各環境のサーバに対し定義情報の登録を行う。
【００１２】
管理システム１では、バッチジョブ（以降、ジョブネット）及びアプリケーションのリリースに関する処理が行われる。また、ジョブネットは、連携して実行される複数のジョブの集合である。また、ジョブネットは制御文に従って実行される。また、ジョブネットの各ジョブを実行するために必要な各パラメータは、定義情報によって定義される。各ジョブは、定義情報に従いアプリケーションを実行する。
【００１３】
以降の説明で、リポジトリ３に対してデータを確定させる操作、及びリポジトリ３にデータを転送する操作は、ファイル管理システムにおけるコミット操作であるものとする。また、リポジトリ３からファイルを転送する操作は、ファイル管理システムにおけるチェックアウト操作であるものとする。
【００１４】
まず、開発者４は、アプリケーション及び定義情報をリポジトリ３に対し確定させる。そして、運用担当者５は、開発者４によって登録されたアプリケーション及び定義情報をリリースするための承認を管理者６に対して申請する。運用担当者５は、管理者６からの承認を受けると、定義情報を適宜修正しリポジトリ３に対して確定させる。
【００１５】
その後、バッチジョブを実行するための制御文及び定義情報がリポジトリ３からテスト環境２Ｔに転送される。テスト環境２Ｔでは、管理装置３０Ｔが、定義情報を業務システム４０Ｔに登録する。その際、決定装置２０は、テストを実行するサーバを決定する。そして、決定装置２０又は管理装置３０Ｔのいずれかが、決定されたサーバに合わせて定義情報の変換を行う。そして、テストが実行されると、管理装置３０Ｔは、登録前後の定義情報をリポジトリ３に転送する。
【００１６】
さらに、運用担当者５は、登録前後の定義情報を参照し、定義情報を適宜修正しリポジトリ３に対し確定させる。その後、バッチジョブを実行するための制御文及び定義情報がリポジトリ３から本番環境２Ｐに転送される。本番環境２Ｐでは、管理装置３０Ｐが、定義情報を業務システム４０Ｐに登録する。そして、テストが実行されると、管理装置３０Ｐは、登録前後の定義情報をリポジトリ３に転送する。
【００１７】
図２を用いて、テスト環境２Ｔにおけるテストの際に行われる具体的な操作等について説明する。図２は、ジョブのテストの流れを説明するための図である。図２に示すように、インフラ構築フェーズにおいて、運用担当者５は、テスト環境２ＴにおけるＯＳ、ＭＷ（Middleware：ミドルウェア）の配備及びセットアップを管理者６に申請する。管理者６による承認が得られると、管理装置３０Ｔは、テスト環境２Ｔの業務システム４０Ｔに対し、ＭＷのインストール、ＯＳの設定、及び設定の確認を行う。
【００１８】
また、図２に示すように、ジョブネットリリースフェーズにおいて、開発者４は、業務アプリケーションの開発及びコミットを行う。そして、運用担当者５は、ジョブネットの定義情報を必要に応じて修正し、ジョブネット及びアプリケーションのテスト環境２Ｔへのリリースを管理者６に申請する。管理者６による承認が得られると、管理装置３０Ｔは、テスト環境２Ｔの業務システム４０Ｔに対し、定義情報の登録、アプリケーションの配布及び動作確認を行う。なお、定義情報及びアプリケーションは、リポジトリ３からテスト環境２Ｔへ転送される。
【００１９】
ここで、図３を用いて、リポジトリに記憶されるデータについて説明する。図３は、リポジトリに記憶されるデータについて説明する図である。図３に示すように、リポジトリ３には、各ファイルを含むｍａｓｔｅｒブランチが記憶される。ｍａｓｔｅｒブランチは、コミット及びチェックアウトの対象となるブランチである。
【００２０】
リポジトリ３は、各環境の業務システムへの定義情報の登録前後、すなわちデプロイ前後のｍａｓｔｅｒブランチのスナップを記憶する。図３に示すように、リポジトリ３は、テスト環境デプロイ前のスナップ、テスト環境デプロイ後のスナップ、本番環境デプロイ前のスナップ、及び本番環境デプロイ後のスナップを記憶する。
【００２１】
図３に示すように、ｍａｓｔｅｒブランチのＭＡＩＮディレクトリには、ジョブネットごとの制御文ファイル、及びジョブネットごとの定義情報フォルダが格納される。さらにジョブネットごとの定義情報フォルダの下には、定義情報ファイルが格納される。また、以降の説明では、各定義情報ファイルの内容をジョブネット定義と表記する場合がある。
【００２２】
例えば、図３の制御文ファイルＡ１は、ジョブネットＡの制御文ファイルである。また、例えば、図３の定義情報フォルダＡ１０には、ジョブネットＡの定義情報ファイルＡ１１及び定義情報ファイルＡ１２等が格納される。例えば、管理装置３０Ｔは、ジョブネットＡに関する定義情報の登録を行う場合は、定義情報ファイルＡ１１及び定義情報ファイルＡ１２の内容に従って定義情報の登録を行う。
【００２３】
ここで、テスト環境２Ｔと本番環境２Ｐとにおいて、同一の構成のサーバ群を配置し、さらに状況を一致させることは困難である。一方で、有用なテスト結果を得るためには、テスト環境２Ｔをなるべく本番環境２Ｐに近付け、かつ定義情報を適切に設定する必要がある。そこで、決定装置２０は、テスト環境２Ｔのサーバの中からテストに適したサーバを選択する。また、決定装置２０は、決定されたサーバに合わせて定義情報を変換する。
【００２４】
［機能構成］
図４を用いて、実施例に係る決定装置の機能構成について説明する。図４は、実施例に係る決定装置の機能構成の一例を示すブロック図である。図４に示すように、決定装置２０は、通信部２１、記憶部２２及び制御部２３を有する。
【００２５】
通信部２１は、他の装置との間でデータの通信を行うためのインタフェースである。例えば、通信部２１はＮＩＣ（Network  Interface  Card）であり、インターネットを介してデータの通信を行う。
【００２６】
記憶部２２は、データや制御部２３が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。また、記憶部２２の各テーブルは、制御部２３で実行される計算処理の過程で発生するデータを記憶する一時テーブルとして利用される場合がある。記憶部２２は、テスト環境実行サーバリスト２２１、本番環境実行サーバリスト２２２、スペックスコア計算テーブル２２３、ユーザスコア計算テーブル２２４、及び優先度スコア計算テーブル２２５を有する。
【００２７】
制御部２３は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部２３は、取得部２３１、計算部２３２、比較部２３３、決定部２３４及び変換部２３５を有する。
【００２８】
取得部２３１は、ジョブネット定義に関する情報及びテスト環境２Ｔの各サーバに関する情報を取得する。取得部２３１は、テスト環境２Ｔのサーバ、すなわち各ジョブのテストを行う実行ホストの候補である複数の候補ホストのリストを取得し、テスト環境実行サーバリスト２２１に格納する。図５は、テスト環境実行サーバリストの一例を示す図である。例えば、図５に示すように、取得部２３１は、テスト環境サーバ「ｈｏｓｔＴ０１」、「ｈｏｓｔＴ０２」等をテスト環境実行サーバリスト２２１に格納する。
【００２９】
また、取得部２３１は、定義情報から、ジョブ及びジョブごとに定義された実行ホストのリストを取得し、本番環境実行サーバリスト２２２に格納する。図６は、本番環境実行サーバリストの一例を示す図である。例えば、図６に示すように、取得部２３１は、本番環境サーバ「ｈｏｓｔＰ０１」のジョブとして「ｊｏｂ０１」、「ｊｏｂ０２」、「ｊｏｂ０３」を本番環境実行サーバリスト２２２に追加する。
【００３０】
決定装置２０は、本番環境サーバのそれぞれを対象として以下の処理を行う。ここでは、決定装置２０が本番環境サーバ「ｈｏｓｔＰ０１」を対象とした処理を行う場合の例について説明する。
【００３１】
まず、取得部２３１は、テスト環境実行サーバリスト２２１に格納されている候補ホストの中から、本番環境サーバ「ｈｏｓｔＰ０１」と同じＯＳを有するものを抽出する。ここでは、取得部２３１は、「ｈｏｓｔＴ０１」、「ｈｏｓｔＴ０３」、「ｈｏｓｔＴ０７」及び「ｈｏｓｔＴ１０」を抽出するものとする。以降の説明で、抽出済みサーバとは、候補ホスト「ｈｏｓｔＴ０１」、「ｈｏｓｔＴ０３」、「ｈｏｓｔＴ０７」及び「ｈｏｓｔＴ１０」であるものとする。
【００３２】
また、取得部２３１は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ホストのスペックに関するスペック情報を取得する。また、取得部２３１は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。ここでは、取得部２３１は、本番環境サーバ「ｈｏｓｔＰ０１」のスペック情報及びユーザ情報を取得する。
【００３３】
計算部２３２は、抽出済みサーバについてスコアの計算を行う。計算部２３２は、スペックスコア及びユーザスコアの少なくともいずれかを計算する。また、計算部２３２は、各スコアに基づく総合スコアとして、優先度スコアの計算を行う。また、計算部２３２は、スペックスコア計算テーブル２２３、ユーザスコア計算テーブル２２４及び優先度スコア計算テーブル２２５を適宜利用しながら計算を行う。
【００３４】
まず、計算部２３２によるスペックスコアの計算について説明する。図７に示すように、計算部２３２は、スペックスコア計算テーブル２２３に、抽出済みサーバのメモリ容量及びＣＰＵコア数を登録する。図７は、スペックスコア計算テーブルの一例を示す図である。例えば、図７には、候補ホスト「ｈｏｓｔＴ０１」のメモリ容量が「４ＧＢ」であり、ＣＰＵコア数が「２」であることが示されている。
【００３５】
ここで、本番環境のメモリ容量をＭＰ、ＣＰＵコア数をＣＰ、各候補ホストのメモリ容量をＭＴ、ＣＰＵコア数をＣＴとすると、計算部２３２は、（１）式によりスペックスコアを計算する。
【００３６】
スペックスコア＝１１−（（ＭＴ÷ＭＰ）＋（ＣＴ÷ＣＰ））／２  ・・・  （１）
【００３７】
ここで、取得部２３１が取得した本番環境サーバ「ｈｏｓｔＰ０１」のスペック情報には、例えば「メモリ容量：４ＧＢ、ＣＰＵコア数：２」という情報が含まれるものとする。このとき、計算部２３２は、「ｈｏｓｔＴ０３」のスペックスコアを、例えば、１１−（（３２÷４）＋（６÷２））／２＝５．５のように計算する。
【００３８】
計算部２３２は、計算したスペックスコアをスペックスコア計算テーブル２２３に登録する。ただし、計算部２３２は、（１）式の計算結果が０以下の場合はスペックスコアを０として登録する。
【００３９】
計算部２３２は、候補ホストのスペックが本番環境サーバのスペックと類似しているほど、スペックスコアが大きくなるように計算を行う。つまり、本番環境サーバのスペックと比べて候補ホストのスペックが高すぎる場合、及び低すぎる場合のいずれの場合においても小さくなる傾向がある。
【００４０】
次に、計算部２３２によるユーザスコアの計算について説明する。図８に示すように、計算部２３２は、ユーザスコア計算テーブル２２４に、抽出済みサーバに登録済みの実行ユーザを登録する。図８は、ユーザスコア計算テーブルの一例を示す図である。例えば、図８には、候補ホスト「ｈｏｓｔＴ０１」に登録済みの実行ユーザが「Ａｄｍｉｎ」及び「ｕｓｅｒ０１」であることが示されている。なお、「Ａｄｍｉｎ」は、管理者権限を持つデフォルトのユーザである。
【００４１】
計算部２３２は、各ジョブの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第１のスコアを計算する。第１のスコアは、例えば「１０」である。また、計算部２３２は、各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に第１のスコアより低い第２のスコアを計算する。第２のスコアは、例えば「５」である。また、計算部２３２は、各ジョブの実行ユーザと同一のグループの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第２のスコアより低い第３のスコアを計算する。第３のスコアは、例えば「２」である。
【００４２】
ここで、計算部２３２は、図９のフローに従ってジョブごとのスコアを計算する。図９は、ユーザスコアの計算について説明する図である。また、取得部２３１が取得したユーザ情報には、例えば「ｊｏｂ０１の実行ユーザ：ｕｓｅｒ０２、ｊｏｂ０２の実行ユーザ：ｕｓｅｒ０２、ｊｏｂ０３の実行ユーザ：ｕｓｅｒ０３」という情報が含まれているものとする。また、また、取得部２３１が取得したユーザ情報には、例えば「ｕｓｅｒ０２はｕｓｅｒ０３と同一グループである」及び「ｕｓｅｒ０２は管理者権限を持つが、ｕｓｅｒ０３は管理者権限を持たない」という情報が含まれているものとする。
【００４３】
図９を用いて、計算部２３２が、ジョブ「ｊｏｂ０１」、候補ホスト「ｈｏｓｔＴ０１」、ユーザ「Ａｄｍｉｎ」に対応するジョブごとのスコアを計算する場合の例を説明する。まず、ジョブ「ｊｏｂ０１」の実行ユーザは定義情報では「ｕｓｅｒ０２」と定義されているため、計算部２３２はステップＳ５１のＹｅｓからステップＳ５２に進む。そして、指定された実行ユーザは「Ａｄｍｉｎ」でないため、計算部２３２はステップＳ５２のＮｏからステップＳ５３に進む。ここで、ユーザ「ｕｓｅｒ０２」は管理者権限を持ち、ユーザ「Ａｄｍｉｎ」も管理者権限を持っているため、計算部２３２はステップＳ５２のＹｅｓへ進みスコアを「５」と計算する。
【００４４】
また、図９を用いて、計算部２３２が、ジョブ「ｊｏｂ０３」、候補ホスト「ｈｏｓｔＴ１０」、ユーザ「ｕｓｅｒ０２」に対応するジョブごとのスコアを計算する場合の例を説明する。まず、ジョブ「ｊｏｂ０３」の実行ユーザは定義情報では「ｕｓｅｒ０３」と定義されているため、計算部２３２はステップＳ５１のＹｅｓからステップＳ５２に進む。そして、指定された実行ユーザは「ｕｓｅｒ０２」でないため、計算部２３２はステップＳ５２のＮｏからステップＳ５３に進む。ここで、ユーザ「ｕｓｅｒ０３」は管理者権限を持たないため、計算部２３２はステップＳ５３のＮｏからステップＳ５４へ進む。さらに、ユーザ「ｕｓｅｒ０２」はユーザ「ｕｓｅｒ０３」と同一グループであるため、計算部２３２はステップＳ５４のＹｅｓへ進みスコアを「２」と計算する。
【００４５】
さらに、図８に示すように、計算部２３２は、ジョブごとのスコアの平均をユーザスコアとして計算する。例えば、候補ホスト「ｈｏｓｔＴ０１」のユーザ「Ａｄｍｉｎ」のジョブ「ｊｏｂ０１」、「ｊｏｂ０２」、「ｊｏｂ０３」のスコアはそれぞれ「５」、「５」、「１」である。このため、計算部２３２は、候補ホスト「ｈｏｓｔＴ０１」のユーザ「Ａｄｍｉｎ」のユーザスコアを（５＋５＋１）／３≒３．７のように計算する。
【００４６】
計算部２３２は、定義情報で指定されたユーザと同一のユーザのユーザスコアが最も大きくなるように計算を行う。計算部２３２は、次点として、管理者権限を持つユーザのユーザスコアが大きくなるように計算を行う。さらに、計算部２３２は、指定されたユーザも管理者権限を持つユーザも存在しない場合、指定されたユーザと同一グループのユーザスコアが大きくなるように計算を行う。
【００４７】
さらに、計算部２３２は、計算したスペックスコア及びユーザスコアを、重み付けした上で合計し優先度スコアを計算する。まず、計算部２３２は、優先度スコア計算テーブル２２５に、計算したスペックスコア及びユーザスコアを登録する。図１０は、優先度スコア計算テーブルの一例を示す図である。図１０のユーザスコアは、図８に示すユーザごとのユーザスコアの、候補ホストごとの平均である。
【００４８】
ここで、ジョブの中には、定義情報に実行予測時間が定義されているものがある。そのような場合、テストにおいてなるべく本番と条件を近付けるためには、マシンのスペックを揃える必要がある。そこで、ジョブの定義情報に実行予測時間が定義されている場合、計算部２３２は、スペックスコアに１０倍の重みを付けた上で優先度スコアを計算する。図１０のスペックスコアは、図７のスペックスコアに重みを付けたものである。
【００４９】
また、候補ホストの中には、過去にジョブの実行実績がある場合がある。そのような場合、計算部２３２は、優先度スコア自体に１０倍の重みを付けをする。図１０の例では、候補ホスト「ｈｏｓｔＴ０７」にジョブ「ｊｏｂ０１」、「ｊｏｂ０２」及び「ｊｏｂ０３」が存在していたため、計算部２３２は候補ホスト「ｈｏｓｔＴ０７」の優先度スコアを１０倍にしている。
【００５０】
なお、計算部２３２は、重み付けを行わずに優先度スコアを計算してもよい。計算部２３２が重み付けを行わない場合の優先度スコア計算テーブル２２５ａを図１１に示す。図１１は、優先度スコア計算テーブルの一例を示す図である。
【００５１】
比較部２３３は、優先度スコアを用いて各候補ホストの比較を行う。この場合、比較部２３３は、候補ホストと本番環境サーバとのスペック情報及びユーザ情報の両方を用いて比較を行うことができる。比較部２３３は、比較結果として、最も優先度スコアが大きい候補ホストを出力してもよいし、候補ホストに優先度スコアの順位を付けて出力してもよい。比較部２３３によって出力された比較結果は、決定部２３４によって用いられる。
【００５２】
なお、比較部２３３は、スペックスコア及びユーザスコアのいずれかを用いて比較を行ってもよい。例えば、比較部２３３は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、取得部２３１によって取得されたスペック情報との比較を行うことができる。つまり、比較部２３３は、ユーザスコアのみを用いた比較を行うことができる。
【００５３】
また、比較部２３３は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得部２３１によって取得されたユーザ情報との比較を行う。つまり、比較部２３３は、スペックスコアのみを用いた比較を行うことができる。
【００５４】
決定部２３４は、比較部２３３による比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。例えば、決定部２３４は、計算部２３２によって計算されたスコアが大きいホストほど優先されるように、各ジョブのテストを行う実行ホストを決定する。
【００５５】
また、前述の通り、定義情報に実行予測時間が含まれるジョブについては、計算部２３２によって重み付けがされる場合がある。この場合、決定部２３４は、定義情報に実行予測時間が含まれるジョブについては、定義情報に実行予測時間が含まれないジョブに比べて、スペック情報の比較結果の影響がユーザ情報の比較結果の影響より大きくなるように実行ホストを決定することができる。
【００５６】
ここまで、本番環境サーバ「ｈｏｓｔＰ０１」に関する優先度スコアの計算について説明した。計算部２３２は、同様に本番環境サーバ「ｈｏｓｔＰ０１」、「ｈｏｓｔＰ０２」、「ｈｏｓｔＰ０３」、「ｈｏｓｔＰ０４」等についても優先度スコアを計算する。
【００５７】
図１２に示すように、決定部２３４は、優先度スコアに基づき、各本番環境サーバに候補ホストの割り当てを行う。図１２は、サーバの割り当てについて説明する図である。図１２には、各ジョブが、８／３０の各時間帯において実行され、実行時間帯が重複していないことが示されている。この場合、決定部２３４は、割り当てた候補ホストを、最終的な各ジョブのテストを実行する実行ホストに決定する。
【００５８】
一方で、図１３に示すように、ジョブのスケジュールが重複する場合、決定部２３４は再割り当てを行う。図１３は、サーバの再割り当てについて説明する図である。図１３には、８／３０の時刻の範囲１１：００−１２：００において、ジョブ「ｊｏｂ０３」及びジョブ「ｊｏｂ０６」の実行時間帯が重複していることが示されている。
【００５９】
このように、決定部２３４は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、再割り当てを行う。決定部２３４は、当該決定したホストに対するスコアが大きいジョブほど優先されるように、複数のジョブのテストを行う実行ホストを再度決定する。
【００６０】
ジョブ「ｊｏｂ０３」を実行する本番環境サーバは「ｈｏｓｔＰ０１」であり、ジョブ「ｊｏｂ０６」を実行する本番環境サーバは「ｈｏｓｔＰ０３」である。このため、まず、決定部２３４は、候補ホスト「ｈｏｓｔ０７」の本番環境サーバ「ｈｏｓｔＰ０１」及び「ｈｏｓｔＰ０３」に対する優先度スコアを比較する。
【００６１】
ここでは、本番環境サーバ「ｈｏｓｔＰ０１」に対する優先度スコアの方が高いため、本番環境サーバ「ｈｏｓｔＰ０１」が優先される。つまり、計算部２３２は、候補ホスト「ｈｏｓｔ０７」を本番環境サーバ「ｈｏｓｔＰ０３」への割り当てから除外する。そして、決定部２３４は、次に優先度スコアが大きい候補ホスト「ｈｏｓｔＴ１０」を本番環境サーバ「ｈｏｓｔＰ０３」に割り当てる。
【００６２】
ここで、さらにジョブ「ｊｏｂ０６」及び「ｊｏｂ０７」のスケジュールが重複していたとする。この場合、決定部２３４は、候補ホスト「ｈｏｓｔＴ０３」の各本番環境サーバに対する優先度スコアを比較し、再度割り当てを行う。
【００６３】
決定部２３４によってテストの実行サーバが決定されると、決定装置２０の変換部２３５は、決定された実行サーバに合わせて定義情報を変換する。図１４は、変換前後の定義情報の一例を示す図である。図１４に示すように、定義情報の項目には、「パラメタ」、「ディレクトリ」、「依頼ホスト名」、「実行ユーザ名」、「標準出力ファイル名」、「環境変数」等が含まれる。
【００６４】
ここで、「依頼ホスト名」は、ジョブを実行するサーバを表している。変換部２３５は、定義情報の「依頼ホスト名」を決定部２３４によって決定された候補ホストに変換する。また、以降の説明では、決定部２３４によって決定された候補ホストを、テスト実行サーバと表記する。
【００６５】
また、変換部２３５は、変換前の「パラメタ」の値からファイルパスを抽出し、抽出したパスと同名のファイルをテスト実行サーバで検索し、「パラメタ」の値のディレクトリ部分を、検索したファイルが格納されているディレクトリパスに変換する。図１４の例では、変換部２３５は、パラメタ「-l/var/tmp」を「-l/var_test/tmp」に変換する。
【００６６】
また、変換部２３５は、「実行ユーザ名」の値を、計算部２３２によって計算されたユーザスコアが最も大きいユーザに変換する。図１４の例では、変換部２３５は、実行ユーザ名「user00」を「Admin」に変換する。また、変換前の実行ユーザ名にローカルホストが設定されている場合、変換部２３５は、計算部２３２と同様の方法で計算したユーザスコアが最も大きいユーザに変換する。
【００６７】
また、変換部２３５は、実行ジョブと同名のファイルをテスト実行サーバで検索し、変換前の「ディレクトリ」の値を、検索したファイルが格納されているディレクトリパスに変換する。なお、変換部２３５は、複数のファイルが検索された場合、実行ジョブとファイルサイズ及び更新日時等を比較して同じものを選択する。図１４の例では、変換部２３５は、ディレクトリ「/var/tmp」を「/var_test/tmp」に変換する。
【００６８】
また、変換部２３５は、変換前の「標準出力ファイル名」の値からディレクトリパスを抽出し、抽出したディレクトリパスがテスト実行サーバに存在するか判定する。存在しない場合、変換部２３５は、本番環境と同様のパーミッションで、抽出したディレクトリパスと同一のディレクトリをテスト実行サーバに作成する。
【００６９】
また、変換部２３５は、変換前の「環境変数」の値がファイルパスである場合、当該ファイルをテスト実行サーバで検索し、「環境変数」の値のディレクトリ部分を、検索したファイルパスのディレクトリ部分に変換する。図１４の例では、変換部２３５は、環境変数「ENV1=env1  ROOT_PATH=/root」を「ENV1=env1  ROOT_PATH=/root_test」に変換する。
【００７０】
［処理の流れ］
図１５を用いて、決定装置２０による決定処理の流れを説明する。図１５は、決定処理の流れを示すフローチャートである。図１５に示すように、まず、決定装置２０は、定義情報を取得する（ステップＳ１１）。次に、決定装置２０は、テスト環境サーバのリストを取得する（ステップＳ１２）。そして、決定装置２０は、本番環境サーバのリストを取得する（ステップＳ１３）。さらに、決定装置２０は、テスト環境のサーバからジョブの実行が可能なサーバを抽出する（ステップＳ１４）。ここでは、例えば、本番環境と同じＯＳがインストールされたテスト環境のサーバが抽出される。
【００７１】
ここで、決定装置２０は、本番環境のサーバのうち、未選択のものを順に選択しながら決定処理を行う。本番環境のサーバのうち未選択のものがなくなれば（ステップＳ１５、Ｎｏ）、決定装置２０は決定処理を終了する。
【００７２】
本番環境のサーバのうち、未選択のものがある場合（ステップＳ１５、Ｙｅｓ）、決定装置２０は、未選択のサーバのいずれかを選択し（ステップＳ１６）、スコアの計算（ステップＳ１７）及びサーバの割り当てを行う（ステップＳ１８）。そして、決定装置２０は、最終的に割り当てたサーバをテストを実行するサーバに決定する。
【００７３】
図１６を用いて、決定装置２０によるスコアを計算する処理（ステップＳ１７）の流れを説明する。図１６は、スコアを計算する処理の流れを示すフローチャートである。図１６に示すように、まず、決定装置２０は、抽出済みサーバごとのマシンスペックに基づいて、抽出済みサーバごとのスペックスコアを計算する（ステップＳ１７１）。
【００７４】
次に、決定装置２０は、抽出済みサーバのそれぞれに設定された各ユーザについて、ジョブごとのユーザスコアを計算する（ステップＳ１７２）。そして、決定装置２０は、ジョブごとのユーザスコアに基づいて、ユーザごとのユーザスコアを計算する（ステップＳ１７３）。さらに、決定装置２０は、ユーザごとのユーザスコアに基づいて、候補ホストごと、すなわち抽出済みサーバごとのユーザスコアを計算する（ステップＳ１７４）。
【００７５】
ここで、決定装置２０は、スペックスコアとユーザスコアに基づいて優先度スコアを計算する（ステップＳ１７５）。さらに、決定装置２０は、条件に応じて各スコアに重み付けを行い、優先度スコアを更新する（ステップＳ１７６）。
【００７６】
図１７を用いて、決定装置２０による、サーバを割り当てる処理（ステップＳ１８）の流れを説明する。図１７は、サーバを割り当てる処理の流れを示すフローチャートである。まず、決定装置２０は、優先度スコアに基づいて抽出済みサーバを本番環境のサーバに割り当てる（ステップＳ１８１）。
【００７７】
ここで、ジョブ間でスケジュールが重複している場合（ステップＳ１８２、Ｙｅｓ）、決定装置２０は、優先度スコアが低い方の割り当てを除外し、再度割り当てを行う（ステップＳ１８３）。スケジュールの重複がなくなった場合（ステップＳ１８２、Ｎｏ）、決定装置２０は割り当て処理を終了する。
【００７８】
［効果］
上述したように、決定装置２０は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。決定装置２０は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得したユーザ情報との比較を行う。決定装置２０は、比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。このように、決定装置２０は、候補ホストに定義情報で指定されたユーザと同一のユーザが存在しない場合であっても、ユーザ情報に基づき実行ホストの決定を行うことができる。このため、実施例によれば、ソフトウェアのテストを行うためのマシンの決定を効率化することができるようになる。
【００７９】
決定装置２０は、各ジョブの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第１のスコアを計算する。また、決定装置２０は、各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に第１のスコアより低い第２のスコアを計算する。また、決定装置２０は、各ジョブの実行ユーザと同一のグループの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第２のスコアより低い第３のスコアを計算する。決定装置２０は、計算されたスコアが大きいホストほど優先されるように、各ジョブのテストを行う実行ホストを決定する。このように、決定装置２０は、候補ホストにおけるユーザの設定状況をスコア化することができる。このため、実施例によれば、ユーザ情報の客観的な評価を行うことが可能になる。
【００８０】
決定装置２０は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ホストのスペックに関するスペック情報を取得する。決定装置２０は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、取得したスペック情報との比較を行う。決定装置２０は、比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。このように、決定装置２０は、テスト環境のサーバのスペック情報に基づいて実行ホストを決定する。このため、実施例によれば、より本番環境に近い状態でのテストを行うことが可能になる。
【００８１】
決定装置２０は、定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報をさらに取得する。決定装置２０は、複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得したユーザ情報との比較をさらに行う。決定装置２０は、定義情報に実行予測時間が含まれるジョブについては、定義情報に実行予測時間が含まれないジョブに比べて、スペック情報の比較結果の影響がユーザ情報の比較結果の影響より大きくなるように実行ホストを決定する。このように、決定装置２０は、実行時間への影響が大きいスペックスコアに重み付けをした上で実行ホストを決定する。このため、実施例によれば、実行時間に関するテストをより厳密に行うことが可能になる。
【００８２】
決定装置２０は、比較結果に基づいて、各ジョブについて、複数の候補ホストのそれぞれに対するスコアを計算する。決定装置２０は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、当該決定したホストに対するスコアが大きいジョブほど優先されるように、複数のジョブのテストを行う実行ホストを再度決定する。このように、決定装置２０は、ジョブのスケジュールが重複しないように再割り当てを行う。このため、実施例によれば、テスト時のジョブの実行スケジュールを本番と同様にすることが可能になる。
【００８３】
なお、上記の実施例では、計算部２３２は、メモリ容量及びＣＰＵコア数を基にスペックスコアを計算するものとした。一方で、計算部２３２は、接続されたネットワークの回線速度、ＣＰＵの型番、記憶装置のＩＯ速度等の他の情報からスペックスコアを計算してもよい。
【００８４】
また、上記の実施例では、図９に示すように、計算部２３２は、ユーザの異同、管理者権限の有無及びグループの異同について条件判定を行った結果を基にユーザスコアを計算するものとした。一方で、計算部２３２は、テストの実行に必須のファイルへのアクセス権限をチェックし、テストの実行が可能であると判定されれば、上記の条件にかかわらずユーザスコアを大きくしてもよい。
【００８５】
また、上記の実施例では、計算部２３２は、スペックスコア計算テーブル２２３、ユーザスコア計算テーブル２２４及び優先度スコア計算テーブル２２５を計算用のテーブルとして用いて計算を行うものとした。一方で、計算部２３２は、計算用テーブルを用いる方法に限られず、実施例と同様の計算結果が得られる任意の計算方法を採用することができる。
【００８６】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
【００８７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８８】
［ハードウェア］
図１８は、ハードウェア構成例を説明する図である。図１８に示すように、決定装置２０は、通信インタフェース２０ａ、ＨＤＤ（Hard  Disk  Drive）２０ｂ、メモリ２０ｃ、プロセッサ２０ｄを有する。また、図１８に示した各部は、バス等で相互に接続される。
【００８９】
通信インタフェース２０ａは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。ＨＤＤ２０ｂは、図１に示した機能を動作させるプログラムやＤＢを記憶する。
【００９０】
プロセッサ２０ｄは、図４に示した各処理部と同様の処理を実行するプログラムをＨＤＤ２０ｂ等から読み出してメモリ２０ｃに展開することで、図４等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、決定装置２０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ２０ｄは、取得部２３１、計算部２３２、比較部２３３、決定部２３４及び変換部２３５と同様の機能を有するプログラムをＨＤＤ２０ｂ等から読み出す。そして、プロセッサ２０ｄは、取得部２３１、計算部２３２、比較部２３３、決定部２３４及び変換部２３５等と同様の処理を実行するプロセスを実行する。
【００９１】
このように決定装置２０は、プログラムを読み出して実行することで分類方法を実行する情報処理装置として動作する。また、決定装置２０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、決定装置２０によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００９２】
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００９３】
２Ｔ  テスト環境
２Ｐ  本番環境
３  リポジトリ
４  開発者
５  運用担当者
６  管理者
２０  決定装置
３０Ｔ、３０Ｐ  管理装置
４０Ｔ、４０Ｐ  業務システム
２１  通信部
２２  記憶部
２３  制御部
２２１  テスト環境実行サーバリスト
２２２  本番環境実行サーバリスト
２２３  スペックスコア計算テーブル
２２４  ユーザスコア計算テーブル
２２５  優先度スコア計算テーブル
２３１  取得部
２３２  計算部
２３３  比較部
２３４  決定部
２３５  変換部
【図１】
2020101994.tif 000003
【図２】
2020101994.tif 000004
【図３】
2020101994.tif 000005
【図４】
2020101994.tif 000006
【図５】
2020101994.tif 000007
【図６】
2020101994.tif 000008
【図７】
2020101994.tif 000009
【図８】
2020101994.tif 000010
【図９】
2020101994.tif 000011
【図１０】
2020101994.tif 000012
【図１１】
2020101994.tif 000013
【図１２】
2020101994.tif 000014
【図１３】
2020101994.tif 000015
【図１４】
2020101994.tif 000016
【図１５】
2020101994.tif 000017
【図１６】
2020101994.tif 000018
【図１７】
2020101994.tif 000019
【図１８】
2020101994.tif 000020