JP7200659B2 - 決定方法、決定装置及び決定プログラム - Google Patents

決定方法、決定装置及び決定プログラム Download PDF

Info

Publication number
JP7200659B2
JP7200659B2 JP2018239692A JP2018239692A JP7200659B2 JP 7200659 B2 JP7200659 B2 JP 7200659B2 JP 2018239692 A JP2018239692 A JP 2018239692A JP 2018239692 A JP2018239692 A JP 2018239692A JP 7200659 B2 JP7200659 B2 JP 7200659B2
Authority
JP
Japan
Prior art keywords
job
execution
host
user
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018239692A
Other languages
English (en)
Other versions
JP2020101994A (ja
Inventor
大貴 吉川
亨 北山
敏嗣 森
雅広 福田
真幸 高原
慎司 長谷尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018239692A priority Critical patent/JP7200659B2/ja
Publication of JP2020101994A publication Critical patent/JP2020101994A/ja
Application granted granted Critical
Publication of JP7200659B2 publication Critical patent/JP7200659B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、決定方法、決定装置及び決定プログラムに関する。
開発された業務システム等のソフトウェアが本番環境(商用環境)へリリースされる前には、テスト環境において当該ソフトウェアのテストが行われる。従来、テスト用のマシンを候補の中から選択するための手法が知られている。例えば、ユーザが要求するOS(Operating System)及びアプリケーションと、各候補のマシンに備えられたOS及びアプリケーションとの類似度に基づいてテスト用のマシンを選択する手法が知られている。
特開2008-009622号公報 特開2010-102415号公報 特開2012-221170号公報 特開2015-011362号公報 特開2015-152987号公報 特開2017-151592号公報
しかしながら、上記の技術では、ソフトウェアのテストを行うためのマシンの決定を効率化することが困難な場合がある。ここで、例えば業務システムにおいては、ホスト上で様々なジョブが実行される。また、テスト用のホストの選択が適切であれば、テスト環境と本番環境とで、ジョブ実行時の業務システムの挙動の相違は小さくなると考えられる。
一方で、テスト用のホストが本番環境のホストと同じOS及びアプリケーションを有していたとしても、ファイルへのアクセス権限等に違いが生じ得るため、テスト環境と本番環境とでジョブ実行時の挙動が相違する可能性がある。このため、従来の技術では、業務システムのテストを行うための適切なホストを選択することが難しい場合がある。
1つの側面では、ソフトウェアのテストを行うためのマシンの決定を効率化することを目的とする。
1つの態様において、決定方法は、コンピュータが、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。決定方法は、コンピュータが、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得する処理によって取得されたユーザ情報との比較を行う。決定方法は、コンピュータが、比較を行う処理による比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。
本発明の1実施態様によれば、ソフトウェアのテストを行うためのマシンの決定を効率化することができる。
図1は、実施例に係るシステム全体の構成を説明するための図である。 図2は、ジョブのテストの流れを説明するための図である。 図3は、リポジトリに記憶されるデータについて説明する図である。 図4は、実施例に係る決定装置の機能構成の一例を示すブロック図である。 図5は、テスト環境実行サーバリストの一例を示す図である。 図6は、本番環境実行サーバリストの一例を示す図である。 図7は、スペックスコア計算テーブルの一例を示す図である。 図8は、ユーザスコア計算テーブルの一例を示す図である。 図9は、ユーザスコアの計算について説明する図である。 図10は、優先度スコア計算テーブルの一例を示す図である。 図11は、優先度スコア計算テーブルの一例を示す図である。 図12は、サーバの割り当てについて説明する図である。 図13は、サーバの再割り当てについて説明する図である。 図14は、変換前後の定義情報の一例を示す図である。 図15は、決定処理の流れを示すフローチャートである。 図16は、スコアを計算する処理の流れを示すフローチャートである。 図17は、サーバを割り当てる処理の流れを示すフローチャートである。 図18は、ハードウェア構成例を説明する図である。
以下に、本発明にかかる決定方法、決定装置及び決定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
まず、図1を用いて、実施例に係るシステム全体の構成を説明する。図1は、実施例に係るシステム全体の構成を説明するための図である。図1に示すように、管理システム1は、テスト環境2T及び本番環境2Pを有する。また、開発者4、運用担当者5は、リポジトリ3に対して操作を行い、業務システムに関するデータの登録及び更新等を行う。また、管理装置30T及び管理装置30Pは、各環境のサーバに対し定義情報の登録を行う。
管理システム1では、バッチジョブ(以降、ジョブネット)及びアプリケーションのリリースに関する処理が行われる。また、ジョブネットは、連携して実行される複数のジョブの集合である。また、ジョブネットは制御文に従って実行される。また、ジョブネットの各ジョブを実行するために必要な各パラメータは、定義情報によって定義される。各ジョブは、定義情報に従いアプリケーションを実行する。
以降の説明で、リポジトリ3に対してデータを確定させる操作、及びリポジトリ3にデータを転送する操作は、ファイル管理システムにおけるコミット操作であるものとする。また、リポジトリ3からファイルを転送する操作は、ファイル管理システムにおけるチェックアウト操作であるものとする。
まず、開発者4は、アプリケーション及び定義情報をリポジトリ3に対し確定させる。そして、運用担当者5は、開発者4によって登録されたアプリケーション及び定義情報をリリースするための承認を管理者6に対して申請する。運用担当者5は、管理者6からの承認を受けると、定義情報を適宜修正しリポジトリ3に対して確定させる。
その後、バッチジョブを実行するための制御文及び定義情報がリポジトリ3からテスト環境2Tに転送される。テスト環境2Tでは、管理装置30Tが、定義情報を業務システム40Tに登録する。その際、決定装置20は、テストを実行するサーバを決定する。そして、決定装置20又は管理装置30Tのいずれかが、決定されたサーバに合わせて定義情報の変換を行う。そして、テストが実行されると、管理装置30Tは、登録前後の定義情報をリポジトリ3に転送する。
さらに、運用担当者5は、登録前後の定義情報を参照し、定義情報を適宜修正しリポジトリ3に対し確定させる。その後、バッチジョブを実行するための制御文及び定義情報がリポジトリ3から本番環境2Pに転送される。本番環境2Pでは、管理装置30Pが、定義情報を業務システム40Pに登録する。そして、テストが実行されると、管理装置30Pは、登録前後の定義情報をリポジトリ3に転送する。
図2を用いて、テスト環境2Tにおけるテストの際に行われる具体的な操作等について説明する。図2は、ジョブのテストの流れを説明するための図である。図2に示すように、インフラ構築フェーズにおいて、運用担当者5は、テスト環境2TにおけるOS、MW(Middleware:ミドルウェア)の配備及びセットアップを管理者6に申請する。管理者6による承認が得られると、管理装置30Tは、テスト環境2Tの業務システム40Tに対し、MWのインストール、OSの設定、及び設定の確認を行う。
また、図2に示すように、ジョブネットリリースフェーズにおいて、開発者4は、業務アプリケーションの開発及びコミットを行う。そして、運用担当者5は、ジョブネットの定義情報を必要に応じて修正し、ジョブネット及びアプリケーションのテスト環境2Tへのリリースを管理者6に申請する。管理者6による承認が得られると、管理装置30Tは、テスト環境2Tの業務システム40Tに対し、定義情報の登録、アプリケーションの配布及び動作確認を行う。なお、定義情報及びアプリケーションは、リポジトリ3からテスト環境2Tへ転送される。
ここで、図3を用いて、リポジトリに記憶されるデータについて説明する。図3は、リポジトリに記憶されるデータについて説明する図である。図3に示すように、リポジトリ3には、各ファイルを含むmasterブランチが記憶される。masterブランチは、コミット及びチェックアウトの対象となるブランチである。
リポジトリ3は、各環境の業務システムへの定義情報の登録前後、すなわちデプロイ前後のmasterブランチのスナップを記憶する。図3に示すように、リポジトリ3は、テスト環境デプロイ前のスナップ、テスト環境デプロイ後のスナップ、本番環境デプロイ前のスナップ、及び本番環境デプロイ後のスナップを記憶する。
図3に示すように、masterブランチのMAINディレクトリには、ジョブネットごとの制御文ファイル、及びジョブネットごとの定義情報フォルダが格納される。さらにジョブネットごとの定義情報フォルダの下には、定義情報ファイルが格納される。また、以降の説明では、各定義情報ファイルの内容をジョブネット定義と表記する場合がある。
例えば、図3の制御文ファイルA1は、ジョブネットAの制御文ファイルである。また、例えば、図3の定義情報フォルダA10には、ジョブネットAの定義情報ファイルA11及び定義情報ファイルA12等が格納される。例えば、管理装置30Tは、ジョブネットAに関する定義情報の登録を行う場合は、定義情報ファイルA11及び定義情報ファイルA12の内容に従って定義情報の登録を行う。
ここで、テスト環境2Tと本番環境2Pとにおいて、同一の構成のサーバ群を配置し、さらに状況を一致させることは困難である。一方で、有用なテスト結果を得るためには、テスト環境2Tをなるべく本番環境2Pに近付け、かつ定義情報を適切に設定する必要がある。そこで、決定装置20は、テスト環境2Tのサーバの中からテストに適したサーバを選択する。また、決定装置20は、決定されたサーバに合わせて定義情報を変換する。
[機能構成]
図4を用いて、実施例に係る決定装置の機能構成について説明する。図4は、実施例に係る決定装置の機能構成の一例を示すブロック図である。図4に示すように、決定装置20は、通信部21、記憶部22及び制御部23を有する。
通信部21は、他の装置との間でデータの通信を行うためのインタフェースである。例えば、通信部21はNIC(Network Interface Card)であり、インターネットを介してデータの通信を行う。
記憶部22は、データや制御部23が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。また、記憶部22の各テーブルは、制御部23で実行される計算処理の過程で発生するデータを記憶する一時テーブルとして利用される場合がある。記憶部22は、テスト環境実行サーバリスト221、本番環境実行サーバリスト222、スペックスコア計算テーブル223、ユーザスコア計算テーブル224、及び優先度スコア計算テーブル225を有する。
制御部23は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部23は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部23は、取得部231、計算部232、比較部233、決定部234及び変換部235を有する。
取得部231は、ジョブネット定義に関する情報及びテスト環境2Tの各サーバに関する情報を取得する。取得部231は、テスト環境2Tのサーバ、すなわち各ジョブのテストを行う実行ホストの候補である複数の候補ホストのリストを取得し、テスト環境実行サーバリスト221に格納する。図5は、テスト環境実行サーバリストの一例を示す図である。例えば、図5に示すように、取得部231は、テスト環境サーバ「hostT01」、「hostT02」等をテスト環境実行サーバリスト221に格納する。
また、取得部231は、定義情報から、ジョブ及びジョブごとに定義された実行ホストのリストを取得し、本番環境実行サーバリスト222に格納する。図6は、本番環境実行サーバリストの一例を示す図である。例えば、図6に示すように、取得部231は、本番環境サーバ「hostP01」のジョブとして「job01」、「job02」、「job03」を本番環境実行サーバリスト222に追加する。
決定装置20は、本番環境サーバのそれぞれを対象として以下の処理を行う。ここでは、決定装置20が本番環境サーバ「hostP01」を対象とした処理を行う場合の例について説明する。
まず、取得部231は、テスト環境実行サーバリスト221に格納されている候補ホストの中から、本番環境サーバ「hostP01」と同じOSを有するものを抽出する。ここでは、取得部231は、「hostT01」、「hostT03」、「hostT07」及び「hostT10」を抽出するものとする。以降の説明で、抽出済みサーバとは、候補ホスト「hostT01」、「hostT03」、「hostT07」及び「hostT10」であるものとする。
また、取得部231は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ホストのスペックに関するスペック情報を取得する。また、取得部231は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。ここでは、取得部231は、本番環境サーバ「hostP01」のスペック情報及びユーザ情報を取得する。
計算部232は、抽出済みサーバについてスコアの計算を行う。計算部232は、スペックスコア及びユーザスコアの少なくともいずれかを計算する。また、計算部232は、各スコアに基づく総合スコアとして、優先度スコアの計算を行う。また、計算部232は、スペックスコア計算テーブル223、ユーザスコア計算テーブル224及び優先度スコア計算テーブル225を適宜利用しながら計算を行う。
まず、計算部232によるスペックスコアの計算について説明する。図7に示すように、計算部232は、スペックスコア計算テーブル223に、抽出済みサーバのメモリ容量及びCPUコア数を登録する。図7は、スペックスコア計算テーブルの一例を示す図である。例えば、図7には、候補ホスト「hostT01」のメモリ容量が「4GB」であり、CPUコア数が「2」であることが示されている。
ここで、本番環境のメモリ容量をM、CPUコア数をC、各候補ホストのメモリ容量をM、CPUコア数をCとすると、計算部232は、(1)式によりスペックスコアを計算する。
スペックスコア=11-((M÷M)+(C÷C))/2 ・・・ (1)
ここで、取得部231が取得した本番環境サーバ「hostP01」のスペック情報には、例えば「メモリ容量:4GB、CPUコア数:2」という情報が含まれるものとする。このとき、計算部232は、「hostT03」のスペックスコアを、例えば、11-((32÷4)+(6÷2))/2=5.5のように計算する。
計算部232は、計算したスペックスコアをスペックスコア計算テーブル223に登録する。ただし、計算部232は、(1)式の計算結果が0以下の場合はスペックスコアを0として登録する。
計算部232は、候補ホストのスペックが本番環境サーバのスペックと類似しているほど、スペックスコアが大きくなるように計算を行う。つまり、本番環境サーバのスペックと比べて候補ホストのスペックが高すぎる場合、及び低すぎる場合のいずれの場合においても小さくなる傾向がある。
次に、計算部232によるユーザスコアの計算について説明する。図8に示すように、計算部232は、ユーザスコア計算テーブル224に、抽出済みサーバに登録済みの実行ユーザを登録する。図8は、ユーザスコア計算テーブルの一例を示す図である。例えば、図8には、候補ホスト「hostT01」に登録済みの実行ユーザが「Admin」及び「user01」であることが示されている。なお、「Admin」は、管理者権限を持つデフォルトのユーザである。
計算部232は、各ジョブの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第1のスコアを計算する。第1のスコアは、例えば「10」である。また、計算部232は、各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に第1のスコアより低い第2のスコアを計算する。第2のスコアは、例えば「5」である。また、計算部232は、各ジョブの実行ユーザと同一のグループの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第2のスコアより低い第3のスコアを計算する。第3のスコアは、例えば「2」である。
ここで、計算部232は、図9のフローに従ってジョブごとのスコアを計算する。図9は、ユーザスコアの計算について説明する図である。また、取得部231が取得したユーザ情報には、例えば「job01の実行ユーザ:user02、job02の実行ユーザ:user02、job03の実行ユーザ:user03」という情報が含まれているものとする。また、また、取得部231が取得したユーザ情報には、例えば「user02はuser03と同一グループである」及び「user02は管理者権限を持つが、user03は管理者権限を持たない」という情報が含まれているものとする。
図9を用いて、計算部232が、ジョブ「job01」、候補ホスト「hostT01」、ユーザ「Admin」に対応するジョブごとのスコアを計算する場合の例を説明する。まず、ジョブ「job01」の実行ユーザは定義情報では「user02」と定義されているため、計算部232はステップS51のYesからステップS52に進む。そして、指定された実行ユーザは「Admin」でないため、計算部232はステップS52のNoからステップS53に進む。ここで、ユーザ「user02」は管理者権限を持ち、ユーザ「Admin」も管理者権限を持っているため、計算部232はステップS52のYesへ進みスコアを「5」と計算する。
また、図9を用いて、計算部232が、ジョブ「job03」、候補ホスト「hostT10」、ユーザ「user02」に対応するジョブごとのスコアを計算する場合の例を説明する。まず、ジョブ「job03」の実行ユーザは定義情報では「user03」と定義されているため、計算部232はステップS51のYesからステップS52に進む。そして、指定された実行ユーザは「user02」でないため、計算部232はステップS52のNoからステップS53に進む。ここで、ユーザ「user03」は管理者権限を持たないため、計算部232はステップS53のNoからステップS54へ進む。さらに、ユーザ「user02」はユーザ「user03」と同一グループであるため、計算部232はステップS54のYesへ進みスコアを「2」と計算する。
さらに、図8に示すように、計算部232は、ジョブごとのスコアの平均をユーザスコアとして計算する。例えば、候補ホスト「hostT01」のユーザ「Admin」のジョブ「job01」、「job02」、「job03」のスコアはそれぞれ「5」、「5」、「1」である。このため、計算部232は、候補ホスト「hostT01」のユーザ「Admin」のユーザスコアを(5+5+1)/3≒3.7のように計算する。
計算部232は、定義情報で指定されたユーザと同一のユーザのユーザスコアが最も大きくなるように計算を行う。計算部232は、次点として、管理者権限を持つユーザのユーザスコアが大きくなるように計算を行う。さらに、計算部232は、指定されたユーザも管理者権限を持つユーザも存在しない場合、指定されたユーザと同一グループのユーザスコアが大きくなるように計算を行う。
さらに、計算部232は、計算したスペックスコア及びユーザスコアを、重み付けした上で合計し優先度スコアを計算する。まず、計算部232は、優先度スコア計算テーブル225に、計算したスペックスコア及びユーザスコアを登録する。図10は、優先度スコア計算テーブルの一例を示す図である。図10のユーザスコアは、図8に示すユーザごとのユーザスコアの、候補ホストごとの平均である。
ここで、ジョブの中には、定義情報に実行予測時間が定義されているものがある。そのような場合、テストにおいてなるべく本番と条件を近付けるためには、マシンのスペックを揃える必要がある。そこで、ジョブの定義情報に実行予測時間が定義されている場合、計算部232は、スペックスコアに10倍の重みを付けた上で優先度スコアを計算する。図10のスペックスコアは、図7のスペックスコアに重みを付けたものである。
また、候補ホストの中には、過去にジョブの実行実績がある場合がある。そのような場合、計算部232は、優先度スコア自体に10倍の重みを付けをする。図10の例では、候補ホスト「hostT07」にジョブ「job01」、「job02」及び「job03」が存在していたため、計算部232は候補ホスト「hostT07」の優先度スコアを10倍にしている。
なお、計算部232は、重み付けを行わずに優先度スコアを計算してもよい。計算部232が重み付けを行わない場合の優先度スコア計算テーブル225aを図11に示す。図11は、優先度スコア計算テーブルの一例を示す図である。
比較部233は、優先度スコアを用いて各候補ホストの比較を行う。この場合、比較部233は、候補ホストと本番環境サーバとのスペック情報及びユーザ情報の両方を用いて比較を行うことができる。比較部233は、比較結果として、最も優先度スコアが大きい候補ホストを出力してもよいし、候補ホストに優先度スコアの順位を付けて出力してもよい。比較部233によって出力された比較結果は、決定部234によって用いられる。
なお、比較部233は、スペックスコア及びユーザスコアのいずれかを用いて比較を行ってもよい。例えば、比較部233は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、取得部231によって取得されたスペック情報との比較を行うことができる。つまり、比較部233は、ユーザスコアのみを用いた比較を行うことができる。
また、比較部233は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得部231によって取得されたユーザ情報との比較を行う。つまり、比較部233は、スペックスコアのみを用いた比較を行うことができる。
決定部234は、比較部233による比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。例えば、決定部234は、計算部232によって計算されたスコアが大きいホストほど優先されるように、各ジョブのテストを行う実行ホストを決定する。
また、前述の通り、定義情報に実行予測時間が含まれるジョブについては、計算部232によって重み付けがされる場合がある。この場合、決定部234は、定義情報に実行予測時間が含まれるジョブについては、定義情報に実行予測時間が含まれないジョブに比べて、スペック情報の比較結果の影響がユーザ情報の比較結果の影響より大きくなるように実行ホストを決定することができる。
ここまで、本番環境サーバ「hostP01」に関する優先度スコアの計算について説明した。計算部232は、同様に本番環境サーバ「hostP01」、「hostP02」、「hostP03」、「hostP04」等についても優先度スコアを計算する。
図12に示すように、決定部234は、優先度スコアに基づき、各本番環境サーバに候補ホストの割り当てを行う。図12は、サーバの割り当てについて説明する図である。図12には、各ジョブが、8/30の各時間帯において実行され、実行時間帯が重複していないことが示されている。この場合、決定部234は、割り当てた候補ホストを、最終的な各ジョブのテストを実行する実行ホストに決定する。
一方で、図13に示すように、ジョブのスケジュールが重複する場合、決定部234は再割り当てを行う。図13は、サーバの再割り当てについて説明する図である。図13には、8/30の時刻の範囲11:00-12:00において、ジョブ「job03」及びジョブ「job06」の実行時間帯が重複していることが示されている。
このように、決定部234は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、再割り当てを行う。決定部234は、当該決定したホストに対するスコアが大きいジョブほど優先されるように、複数のジョブのテストを行う実行ホストを再度決定する。
ジョブ「job03」を実行する本番環境サーバは「hostP01」であり、ジョブ「job06」を実行する本番環境サーバは「hostP03」である。このため、まず、決定部234は、候補ホスト「host07」の本番環境サーバ「hostP01」及び「hostP03」に対する優先度スコアを比較する。
ここでは、本番環境サーバ「hostP01」に対する優先度スコアの方が高いため、本番環境サーバ「hostP01」が優先される。つまり、計算部232は、候補ホスト「host07」を本番環境サーバ「hostP03」への割り当てから除外する。そして、決定部234は、次に優先度スコアが大きい候補ホスト「hostT10」を本番環境サーバ「hostP03」に割り当てる。
ここで、さらにジョブ「job06」及び「job07」のスケジュールが重複していたとする。この場合、決定部234は、候補ホスト「hostT03」の各本番環境サーバに対する優先度スコアを比較し、再度割り当てを行う。
決定部234によってテストの実行サーバが決定されると、決定装置20の変換部235は、決定された実行サーバに合わせて定義情報を変換する。図14は、変換前後の定義情報の一例を示す図である。図14に示すように、定義情報の項目には、「パラメタ」、「ディレクトリ」、「依頼ホスト名」、「実行ユーザ名」、「標準出力ファイル名」、「環境変数」等が含まれる。
ここで、「依頼ホスト名」は、ジョブを実行するサーバを表している。変換部235は、定義情報の「依頼ホスト名」を決定部234によって決定された候補ホストに変換する。また、以降の説明では、決定部234によって決定された候補ホストを、テスト実行サーバと表記する。
また、変換部235は、変換前の「パラメタ」の値からファイルパスを抽出し、抽出したパスと同名のファイルをテスト実行サーバで検索し、「パラメタ」の値のディレクトリ部分を、検索したファイルが格納されているディレクトリパスに変換する。図14の例では、変換部235は、パラメタ「-l/var/tmp」を「-l/var_test/tmp」に変換する。
また、変換部235は、「実行ユーザ名」の値を、計算部232によって計算されたユーザスコアが最も大きいユーザに変換する。図14の例では、変換部235は、実行ユーザ名「user00」を「Admin」に変換する。また、変換前の実行ユーザ名にローカルホストが設定されている場合、変換部235は、計算部232と同様の方法で計算したユーザスコアが最も大きいユーザに変換する。
また、変換部235は、実行ジョブと同名のファイルをテスト実行サーバで検索し、変換前の「ディレクトリ」の値を、検索したファイルが格納されているディレクトリパスに変換する。なお、変換部235は、複数のファイルが検索された場合、実行ジョブとファイルサイズ及び更新日時等を比較して同じものを選択する。図14の例では、変換部235は、ディレクトリ「/var/tmp」を「/var_test/tmp」に変換する。
また、変換部235は、変換前の「標準出力ファイル名」の値からディレクトリパスを抽出し、抽出したディレクトリパスがテスト実行サーバに存在するか判定する。存在しない場合、変換部235は、本番環境と同様のパーミッションで、抽出したディレクトリパスと同一のディレクトリをテスト実行サーバに作成する。
また、変換部235は、変換前の「環境変数」の値がファイルパスである場合、当該ファイルをテスト実行サーバで検索し、「環境変数」の値のディレクトリ部分を、検索したファイルパスのディレクトリ部分に変換する。図14の例では、変換部235は、環境変数「ENV1=env1 ROOT_PATH=/root」を「ENV1=env1 ROOT_PATH=/root_test」に変換する。
[処理の流れ]
図15を用いて、決定装置20による決定処理の流れを説明する。図15は、決定処理の流れを示すフローチャートである。図15に示すように、まず、決定装置20は、定義情報を取得する(ステップS11)。次に、決定装置20は、テスト環境サーバのリストを取得する(ステップS12)。そして、決定装置20は、本番環境サーバのリストを取得する(ステップS13)。さらに、決定装置20は、テスト環境のサーバからジョブの実行が可能なサーバを抽出する(ステップS14)。ここでは、例えば、本番環境と同じOSがインストールされたテスト環境のサーバが抽出される。
ここで、決定装置20は、本番環境のサーバのうち、未選択のものを順に選択しながら決定処理を行う。本番環境のサーバのうち未選択のものがなくなれば(ステップS15、No)、決定装置20は決定処理を終了する。
本番環境のサーバのうち、未選択のものがある場合(ステップS15、Yes)、決定装置20は、未選択のサーバのいずれかを選択し(ステップS16)、スコアの計算(ステップS17)及びサーバの割り当てを行う(ステップS18)。そして、決定装置20は、最終的に割り当てたサーバをテストを実行するサーバに決定する。
図16を用いて、決定装置20によるスコアを計算する処理(ステップS17)の流れを説明する。図16は、スコアを計算する処理の流れを示すフローチャートである。図16に示すように、まず、決定装置20は、抽出済みサーバごとのマシンスペックに基づいて、抽出済みサーバごとのスペックスコアを計算する(ステップS171)。
次に、決定装置20は、抽出済みサーバのそれぞれに設定された各ユーザについて、ジョブごとのユーザスコアを計算する(ステップS172)。そして、決定装置20は、ジョブごとのユーザスコアに基づいて、ユーザごとのユーザスコアを計算する(ステップS173)。さらに、決定装置20は、ユーザごとのユーザスコアに基づいて、候補ホストごと、すなわち抽出済みサーバごとのユーザスコアを計算する(ステップS174)。
ここで、決定装置20は、スペックスコアとユーザスコアに基づいて優先度スコアを計算する(ステップS175)。さらに、決定装置20は、条件に応じて各スコアに重み付けを行い、優先度スコアを更新する(ステップS176)。
図17を用いて、決定装置20による、サーバを割り当てる処理(ステップS18)の流れを説明する。図17は、サーバを割り当てる処理の流れを示すフローチャートである。まず、決定装置20は、優先度スコアに基づいて抽出済みサーバを本番環境のサーバに割り当てる(ステップS181)。
ここで、ジョブ間でスケジュールが重複している場合(ステップS182、Yes)、決定装置20は、優先度スコアが低い方の割り当てを除外し、再度割り当てを行う(ステップS183)。スケジュールの重複がなくなった場合(ステップS182、No)、決定装置20は割り当て処理を終了する。
[効果]
上述したように、決定装置20は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報を取得する。決定装置20は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得したユーザ情報との比較を行う。決定装置20は、比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。このように、決定装置20は、候補ホストに定義情報で指定されたユーザと同一のユーザが存在しない場合であっても、ユーザ情報に基づき実行ホストの決定を行うことができる。このため、実施例によれば、ソフトウェアのテストを行うためのマシンの決定を効率化することができるようになる。
決定装置20は、各ジョブの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第1のスコアを計算する。また、決定装置20は、各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に第1のスコアより低い第2のスコアを計算する。また、決定装置20は、各ジョブの実行ユーザと同一のグループの実行ユーザが各候補ホストに対応付けられた実行ユーザに含まれる場合に第2のスコアより低い第3のスコアを計算する。決定装置20は、計算されたスコアが大きいホストほど優先されるように、各ジョブのテストを行う実行ホストを決定する。このように、決定装置20は、候補ホストにおけるユーザの設定状況をスコア化することができる。このため、実施例によれば、ユーザ情報の客観的な評価を行うことが可能になる。
決定装置20は、ジョブネット定義に含まれる各ジョブの定義情報に基づき、各ジョブの実行ホストのスペックに関するスペック情報を取得する。決定装置20は、各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、取得したスペック情報との比較を行う。決定装置20は、比較結果に基づき、複数の候補ホストのうち、各ジョブのテストを行う実行ホストを決定する。このように、決定装置20は、テスト環境のサーバのスペック情報に基づいて実行ホストを決定する。このため、実施例によれば、より本番環境に近い状態でのテストを行うことが可能になる。
決定装置20は、定義情報に基づき、各ジョブの実行ユーザに関するユーザ情報をさらに取得する。決定装置20は、複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、取得したユーザ情報との比較をさらに行う。決定装置20は、定義情報に実行予測時間が含まれるジョブについては、定義情報に実行予測時間が含まれないジョブに比べて、スペック情報の比較結果の影響がユーザ情報の比較結果の影響より大きくなるように実行ホストを決定する。このように、決定装置20は、実行時間への影響が大きいスペックスコアに重み付けをした上で実行ホストを決定する。このため、実施例によれば、実行時間に関するテストをより厳密に行うことが可能になる。
決定装置20は、比較結果に基づいて、各ジョブについて、複数の候補ホストのそれぞれに対するスコアを計算する。決定装置20は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、当該決定したホストに対するスコアが大きいジョブほど優先されるように、複数のジョブのテストを行う実行ホストを再度決定する。このように、決定装置20は、ジョブのスケジュールが重複しないように再割り当てを行う。このため、実施例によれば、テスト時のジョブの実行スケジュールを本番と同様にすることが可能になる。
なお、上記の実施例では、計算部232は、メモリ容量及びCPUコア数を基にスペックスコアを計算するものとした。一方で、計算部232は、接続されたネットワークの回線速度、CPUの型番、記憶装置のIO速度等の他の情報からスペックスコアを計算してもよい。
また、上記の実施例では、図9に示すように、計算部232は、ユーザの異同、管理者権限の有無及びグループの異同について条件判定を行った結果を基にユーザスコアを計算するものとした。一方で、計算部232は、テストの実行に必須のファイルへのアクセス権限をチェックし、テストの実行が可能であると判定されれば、上記の条件にかかわらずユーザスコアを大きくしてもよい。
また、上記の実施例では、計算部232は、スペックスコア計算テーブル223、ユーザスコア計算テーブル224及び優先度スコア計算テーブル225を計算用のテーブルとして用いて計算を行うものとした。一方で、計算部232は、計算用テーブルを用いる方法に限られず、実施例と同様の計算結果が得られる任意の計算方法を採用することができる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
図18は、ハードウェア構成例を説明する図である。図18に示すように、決定装置20は、通信インタフェース20a、HDD(Hard Disk Drive)20b、メモリ20c、プロセッサ20dを有する。また、図18に示した各部は、バス等で相互に接続される。
通信インタフェース20aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD20bは、図1に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ20dは、図4に示した各処理部と同様の処理を実行するプログラムをHDD20b等から読み出してメモリ20cに展開することで、図4等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、決定装置20が有する各処理部と同様の機能を実行する。具体的には、プロセッサ20dは、取得部231、計算部232、比較部233、決定部234及び変換部235と同様の機能を有するプログラムをHDD20b等から読み出す。そして、プロセッサ20dは、取得部231、計算部232、比較部233、決定部234及び変換部235等と同様の処理を実行するプロセスを実行する。
このように決定装置20は、プログラムを読み出して実行することで分類方法を実行する情報処理装置として動作する。また、決定装置20は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、決定装置20によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
2T テスト環境
2P 本番環境
3 リポジトリ
4 開発者
5 運用担当者
6 管理者
20 決定装置
30T、30P 管理装置
40T、40P 業務システム
21 通信部
22 記憶部
23 制御部
221 テスト環境実行サーバリスト
222 本番環境実行サーバリスト
223 スペックスコア計算テーブル
224 ユーザスコア計算テーブル
225 優先度スコア計算テーブル
231 取得部
232 計算部
233 比較部
234 決定部
235 変換部

Claims (9)

  1. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得し、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較を行い、
    前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
    処理をコンピュータが実行することを特徴とする決定方法。
  2. 前記各ジョブの実行ユーザが前記各候補ホストに対応付けられた実行ユーザに含まれる場合に第1のスコアを計算し、前記各候補ホストに対応付けられた実行ユーザに管理者権限を持つユーザが含まれる場合に前記第1のスコアより低い第2のスコアを計算し、前記各ジョブの実行ユーザと同一のグループの実行ユーザが前記各候補ホストに対応付けられた実行ユーザに含まれる場合に前記第2のスコアより低い第3のスコアを計算する処理をさらに実行し、
    前記決定する処理は、前記計算する処理によって計算されたスコアが大きいホストほど優先されるように、前記各ジョブのテストを行う実行ホストを決定することを特徴とする請求項1に記載の決定方法。
  3. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得し、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得する処理によって取得された前記スペック情報との比較を行い、
    前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
    処理をコンピュータが実行することを特徴とする決定方法。
  4. 前記取得する処理は、前記定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報をさらに取得し、
    前記比較を行う処理は、前記複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較をさらに行い、
    前記決定する処理は、前記定義情報に実行予測時間が含まれるジョブについては、前記定義情報に実行予測時間が含まれないジョブに比べて、前記スペック情報の比較結果の影響が前記ユーザ情報の比較結果の影響より大きくなるように、前記各ジョブのテストを行う実行ホストを決定することを特徴とする請求項3に記載の決定方法。
  5. 前記比較結果に基づいて、前記各ジョブについて、前記複数の候補ホストのそれぞれに対するスコアを計算する処理をさらに実行し、
    前記決定する処理は、あらかじめ設定された実行時間帯が重複する複数のジョブのテストに対して同一の実行ホストを決定した場合、当該決定したホストに対する前記スコアが大きいジョブほど優先されるように、前記複数のジョブのテストを行う実行ホストを再度決定することを特徴とする請求項3に記載の決定方法。
  6. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得する取得部と、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得部によって取得された前記ユーザ情報との比較を行う比較部と、
    前記比較部による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する決定部と、
    を有することを特徴とする決定装置。
  7. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得する取得部と、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得部によって取得された前記スペック情報との比較を行う比較部と、
    前記比較部による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する決定部と、
    を有することを特徴とする決定装置。
  8. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ユーザに関するユーザ情報を取得し、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストに対応付けられた実行ユーザに関するユーザ情報と、前記取得する処理によって取得された前記ユーザ情報との比較を行い、
    前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
    処理をコンピュータに実行させることを特徴とする決定プログラム。
  9. ジョブネット定義に含まれる各ジョブの定義情報に基づき、前記各ジョブの実行ホストのスペックに関するスペック情報を取得し、
    前記各ジョブのテストを行う実行ホストの候補である複数の候補ホストそれぞれについて、各候補ホストのスペックに関するスペック情報と、前記取得する処理によって取得された前記スペック情報との比較を行い、
    前記比較を行う処理による比較結果に基づき、前記複数の候補ホストのうち、前記各ジョブのテストを行う実行ホストを決定する、
    処理をコンピュータに実行させることを特徴とする決定プログラム。
JP2018239692A 2018-12-21 2018-12-21 決定方法、決定装置及び決定プログラム Active JP7200659B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018239692A JP7200659B2 (ja) 2018-12-21 2018-12-21 決定方法、決定装置及び決定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018239692A JP7200659B2 (ja) 2018-12-21 2018-12-21 決定方法、決定装置及び決定プログラム

Publications (2)

Publication Number Publication Date
JP2020101994A JP2020101994A (ja) 2020-07-02
JP7200659B2 true JP7200659B2 (ja) 2023-01-10

Family

ID=71139634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018239692A Active JP7200659B2 (ja) 2018-12-21 2018-12-21 決定方法、決定装置及び決定プログラム

Country Status (1)

Country Link
JP (1) JP7200659B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099107A (ja) 2010-10-29 2012-05-24 Fujitsu Ltd 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法
JP2013206101A (ja) 2012-03-28 2013-10-07 Nec Corp 仮想化システム、リソース管理サーバ、リソース管理方法、及びリソース管理プログラム
JP2013539122A (ja) 2010-09-24 2013-10-17 ウオーターズ・テクノロジーズ・コーポレイシヨン ソフトウェアの自動試験のための技術
JP2015049876A (ja) 2013-09-05 2015-03-16 株式会社日立製作所 テストシステムおよび方法
WO2018066040A1 (ja) 2016-10-03 2018-04-12 株式会社日立製作所 管理計算機及びテスト環境決定方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539122A (ja) 2010-09-24 2013-10-17 ウオーターズ・テクノロジーズ・コーポレイシヨン ソフトウェアの自動試験のための技術
JP2012099107A (ja) 2010-10-29 2012-05-24 Fujitsu Ltd 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法
JP2013206101A (ja) 2012-03-28 2013-10-07 Nec Corp 仮想化システム、リソース管理サーバ、リソース管理方法、及びリソース管理プログラム
JP2015049876A (ja) 2013-09-05 2015-03-16 株式会社日立製作所 テストシステムおよび方法
WO2018066040A1 (ja) 2016-10-03 2018-04-12 株式会社日立製作所 管理計算機及びテスト環境決定方法

Also Published As

Publication number Publication date
JP2020101994A (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
US11036552B2 (en) Cognitive scheduler
US8171482B1 (en) Application environment specifications for provisioning application specific runtime environments using subsets of resources required for execution
US9619373B2 (en) Method and apparatus to semantically connect independent build and test processes
US7840677B2 (en) Systems, methods and computer program products for improving placement performance of message transforms by exploiting guided replication
US8667019B2 (en) Placement goal-based database instance consolidation
US20120254435A1 (en) Placement goal-based database instance dynamic consolidation
JP6695437B2 (ja) 管理計算機及びテスト環境決定方法
US10983904B1 (en) Test automation for data processing
WO2010052829A1 (ja) 資源割付方法、プログラム、及び資源割付装置
US9396004B1 (en) System and method for management of a configuration of a virtual machine
US11513944B1 (en) Ranking tests based on code change and coverage
US20160062754A1 (en) Coordinating Application Deployment with a Platform Tier
JP2022545422A (ja) スマートコントラクトの並行実行の方法、装置、機器、及び媒体
US20060106590A1 (en) Computing services discovery system and method therefor
Tan et al. Hadoop framework: impact of data organization on performance
US20150074674A1 (en) Apparatus and method for adjusting priorities of tasks
Nagavaram et al. A cloud-based dynamic workflow for mass spectrometry data analysis
JP6666555B2 (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
US20190327303A1 (en) Method, device and computer program product for scheduling multi-cloud system
Seybold et al. The impact of the storage tier: A baseline performance analysis of containerized dbms
JP7200659B2 (ja) 決定方法、決定装置及び決定プログラム
US20160335161A1 (en) A pattern based configuration method for minimizing the impact of component failures
WO2020137566A1 (ja) テスト環境決定装置及びテスト環境決定方法
WO2023098302A1 (en) Identifying microservices for monolith application through static code analysis
US9369352B1 (en) Method of capturing server and operating system metrics for virtual to physical topology reporting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220830

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221205

R150 Certificate of patent or registration of utility model

Ref document number: 7200659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150