JP6855861B2 - 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム - Google Patents

仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム Download PDF

Info

Publication number
JP6855861B2
JP6855861B2 JP2017055490A JP2017055490A JP6855861B2 JP 6855861 B2 JP6855861 B2 JP 6855861B2 JP 2017055490 A JP2017055490 A JP 2017055490A JP 2017055490 A JP2017055490 A JP 2017055490A JP 6855861 B2 JP6855861 B2 JP 6855861B2
Authority
JP
Japan
Prior art keywords
time
speed value
double speed
application
virtual
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
JP2017055490A
Other languages
English (en)
Other versions
JP2018159985A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017055490A priority Critical patent/JP6855861B2/ja
Publication of JP2018159985A publication Critical patent/JP2018159985A/ja
Application granted granted Critical
Publication of JP6855861B2 publication Critical patent/JP6855861B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための、アプリケーション仮想時刻配信システム、仮想時刻配信装置、及び仮想時刻情報の配信方法に関し、更には、これらを実現するためのプログラムに関する。
ソフトウェアのテストにおいては、過去に実際の業務で使用されたデータが、テストデータとして入力される場合がある。但し、テストデータ中に含まれる時刻が、テスト対象となるアプリケーションプログラム(以下「アプリケーション」と表記する。)内の時刻と異なると、アプリケーションが正常に動作しない事態となる。
そこで、アプリケーション内の時刻をテストデータの時刻に合わせるため、アプリケーションに仮想的な時刻(仮想時刻)を提供する方法が提案されている。この方法では、テスターは、アプリケーションを動作させる前に、テストデータの時刻と現在時刻との差分(差分値)をシステムに入力する。そして、アプリケーションが仮想時刻を要求すると、システムは現在時刻から差分値を引いた時刻をアプリケーションに返却する。これにより、過去のテストデータを用いて正常にテストを行うことができる。
また、ここで、テスト効率を上げるために、テストデータの入力を実際よりも速くすることを考える。テストデータの入力を速めたい例として、例えば、航空管制系システムにおける航空機の離発着のタイミング制御などが考えられる。この航空管制系システムでは、航空機の離発着が少ないときには処理の間隔が空き、テストを行う際に待ち時間が長くなってしまう。
但し、テストデータの入力だけを速めると、テストデータが保持する時刻とそのデータを処理するアプリケーション内の時刻との間に不整合が生じ、テスト対象のアプリケーションが正常に動作しないことになる。この問題に対する解決策として、例えば、特許文献1は、仮想時刻の経過速度を倍速化し、テストデータの入力のスピード(倍速値)と仮想時刻の経過速度とを合わせる同期システムを開示している。
特許文献1に開示された同期システムは、次のようにして現在の仮想時刻を求める。つまり、同期システムは、ある基準となるOS(Operating System)時刻(以下「システム時刻」と表記する)と倍速値を定め、仮想時刻を提供する時点のシステム時刻から基準となるシステム時刻(以下「基準システム時刻」と表記する)を引いて得られた時間に倍速値を掛け合わせた時間を、経過時間とする。そして、同期システムは、基準時刻に経過時間を加算して得られた時刻から、仮想時刻の基準時刻(基準仮想時刻)と基準システム時刻との差分値を減算した時刻を現在の仮想時刻と定義する。
ところで、入力されるテストデータによってはアプリケーションの処理に時間がかかることが考えられる。このような場合、テストデータの入力を速くするとアプリケーションが処理しきれなくなり、テストが正常に行えなくなる可能性がある。そのため、各入力テストデータで実行する処理の負荷に応じて、倍速値を動的に変更する必要がある。
但し、テスト実行中に倍速値を変更した場合、仮想時刻が倍速値変更前の時刻よりも前の時刻に戻ることがあり、アプリケーションの処理の一貫性が失われ、テスト対象のアプリケーションが正常に動作しなくなる問題が発生する。
例えば、図11のようなケースが考えられる。図11は、従来のソフトウェアのテストにおいてテスト実行中に倍速値を変更した場合の問題点を示す図である。このケースでは、仮想時刻16:00に倍速値を2倍から1倍に変更しており、仮想時刻が16:00から14:30に戻ってしまっている。
この問題に対する解決策としては、特許文献1に開示されている、基準システム時刻と仮想時刻の基準時刻(基準仮想時刻)とを分けて設定する方法が考えられる。この方法では、図12に示すように、倍速値を変更するタイミングで基準システム時刻と基準仮想時刻とが更新される。図12は、図11に示した問題点を解決するための従来の手法を説明する説明図である。
また、図12の例において、基準システム時刻は現在のシステム時刻に設定され、基準仮想時刻はテスターによって設定される。基準仮想時刻の初期値は、差分値を含んだ時刻となる。従って、この方法では、倍速値変更時に仮想時刻が戻ってしまうことは回避される。また、仮想時刻は以下のように定義される。
仮想時刻=(現在のシステム時刻−基準システム時刻)*倍速値+基準仮想時刻
特開2010−231531号公報
ところで、上述したように、特許文献1に開示されている同期システムでは、上記問題を解決するため、基準仮想時刻をテスターが人手によって指定する必要がある。そのため、特許文献1に開示されているシステムには、ユーザにおける負担が非常に大きくなるという新たな問題が発生している。なお、特許文献1に開示されている同期システムは、一連の株取引のシミュレートを倍速することを目的としており、処理内容に応じて適宜倍速値を変更することを考慮したものではない。このため、ソフトウェアのテストに特化した仮想時刻の提供が必要である。
本発明の目的の一例は、上記問題を解消し、人手によることなく、アプリケーションのテストを倍速で行なう際の不具合の発生を抑制し得る、仮想時刻配信システム、仮想時刻配信装置、仮想時刻情報の配信方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面における仮想時刻配信システムは、
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
を備えていることを特徴とすることを特徴とする。
上記目的を達成するため、本発明の一側面における仮想時刻配信装置は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
を備えていることを特徴とする。
また、上記目的を達成するため、本発明の一側面における仮想時刻配信方法は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
(a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
(b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
(c)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面における第1のプログラムは、コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
前記コンピュータに、
(a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
(b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
を実行させることを特徴とする。
上記目的を達成するため、本発明の一側面における第2のプログラムは、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
前記情報処理装置に、
(a)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
実行させることを特徴とする。
以上のように、本発明によれば、人手によることなく、ソフトウェアテストの効率化を図ることができる。
図1は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の概略構成を示す図である。 図2は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成を具体的に示す図である。 図3は、本発明の実施の形態で利用される負荷情報の一例を示す図である。 図4は、本発明の実施の形態における仮想時刻配信システムでの仮想時刻配信装置の動作を示すフロー図である。 図5は、本発明の実施の形態における仮想時刻配信システムでの情報処理装置の動作を示すフロー図である。 図6は、本発明の実施の形態において生成されるスケジュールの一例を示す図である。 図7は、本発明の実施の形態におけるシステム時刻計算部の処理を説明する図である。 図8は、本発明の実施の形態において生成される仮想時刻設定情報の一例を示す図である。 図9は、本発明の実施の形態における仮想時刻計算部の処理を説明する図である。 図10は、本発明の実施の形態における仮想時刻配信装置及び情報処理装置を実現するコンピュータの一例を示すブロック図である。 図11は、従来のソフトウェアのテストにおいてテスト実行中に倍速値を変更した場合の問題点を示す図である。 図12は、図11に示した問題点を解決するための従来の手法を説明する説明図である。
(発明の概要)
本発明は、人手によって、アプリケーションプログラム(以下、単に「アプリケーション」と表記する。)を実行する情報処理装置のシステム時刻を計算することなく、アプリケーションプログラムをテストデータを用いて実行する際の仮想時刻を配信する。情報処理装置としては、アプリケーションを実行するアプリケーションサーバが挙げられる。
ここで、アプリケーションプログラムを実際に実行する際における、情報処理装置のシステム起動時のシステム時刻を「基準システム時刻」とする。テストデータ中の最初の時刻を「基準仮想時刻」とする。また、仮想時刻は、テストデータに含まれる過去の時刻に合わせて、アプリケーションに与えられる時刻であり、現在の時刻とは異なる時刻である。
まず、本発明では、情報処理装置がアプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールが生成される。スケジュールは、情報処理装置が、テストデータと同一のデータを用いて、過去にアプリケーションを実行した場合の実行結果から生成されている。スケジュールにおける各区間の開始時刻は、過去の時刻であり、上述の仮想時刻と表現できる。
スケジュールは、例えば、テストデータ中に含まれる、過去の特定の時間毎のCPU(Central Processing Unit)の負荷情報の平均値(サーバ毎)に基づいて生成される。具体的には、最もCPU負荷率(使用率)が高いサーバにおいて、CPU負荷率の平均が閾値を超えないように、倍速値が設定される。
次に、本発明では、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置が実際にテストデータを用いてアプリケーションを実行する際のシステム時刻を、倍速値適用開始システム時刻として計算する。また、倍速値適用開始システム時刻は、スケジュールと共に、倍速値変更情報として保持される。
例えば、スケジュールにおける1つ目の開始時刻に対応する倍速値適用開始システム時刻は、スケジュールで決められた1つ目の開始時刻から基準仮想時刻を引いた時間に倍速値の逆数を掛け、得られた値を、基準システム時刻に加算することで求められる。なお、スケジュールにおける最初の区間の開始点の時刻が基準仮想時刻に相当し、2つの目の区間の開始点(1つめの区間の終点)の時刻が1つめの開始時刻に相当する。
2つ目の開始時刻に対応する倍速値適用開始システム時刻は、1つ目の開始時刻に対応する倍速値適用開始システム時刻を基準システム時刻とし、1つ目の開始時刻を基準仮想時刻と考えることで、同様にして求められる。このような処理により、漸化的に、スケジュールにおける全ての開始時刻に対応するシステム時刻(倍速値適用開始システム時刻)を求めることができる。
また、情報処理装置が、テストデータを用いて、倍速でアプリケーションプログラムを実行している際に、アプリケーションが、情報処理装置に時刻(テスト時の仮想時刻)を要求したとする。この場合、情報処理装置においては、現在のシステム時刻が取得され、これを用いて、倍速値変更情報の検索が行なわれる。これにより、現在のシステム時刻以前であり、且つ、直近となる、倍速値適用開始システム時刻が特定される。
そして、現在のシステム時刻から、特定された倍速値適用開始システム時刻を減算して得られた時間に、特定された倍速値適用開始システム時刻に対応する区間の倍速値が乗算される。その後、乗算によって得られた時間が、特定された倍速値適用開始システム時刻に加算され、得られた時刻が、テストデータにおける仮想時刻とし、アプリケーションに返却される。返却された時刻は、スケジュールにおける全ての区間の開始時刻を反映した時刻であるため、倍速値が変わっても仮想時刻が以前の時刻に戻ることはない。
(実施の形態)
以下、本発明の実施の形態における、仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラムについて、図1〜図10を参照しながら説明する。
[システム構成]
最初に、本実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成について図1を用いて説明する。図1は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の概略構成を示す図である。
図1に示す、本実施の形態における情報配信システム300は、テストデータを用いてアプリケーションプログラム204(以下、単位「アプリケーション204」と表記する。)を実行する情報処理装置200に対して時刻を配信するためのシステムである。
アプリケーション204は、テストデータを入力として実行される場合に、仮想時刻を利用するアプリケーションであり、情報処理装置200に対して任意のタイミングで仮想時刻を要求する。
図1に示すように、情報配信システム300は、スケジュール生成部102と、システム時刻計算部103と、仮想時刻計算部203とを備えている。本実施の形態では、このうち、スケジュール生成部102と、システム時刻計算部103とは、仮想時刻配信装置100に備えられている。また、仮想時計計算部203は、情報処理装置200に備えられている。
スケジュール生成部102は、情報処理装置200がアプリケーション204を倍速で実行する際の倍速値を時系列に沿って区間毎に設定した、スケジュールを生成する。
また、システム時刻計算部103は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置200におけるアプリケーション204実行時のシステム時刻を、倍速値適用開始システム時刻として計算する。
仮想時刻計算部203は、テストデータを用いて倍速で実行されているアプリケーション204が、時刻を要求した場合に、開始時刻毎に計算された倍速値適用開始システム時刻の中から、要求時点の直前の倍速値適用開始システム時刻を特定する。また、仮想時刻計算部203は、特定した倍速値適用開始システム時刻と、その区間に設定された倍速値とを用いて、アプリケーション204に返却する時刻を計算する。
このように、本実施の形態では、区間毎に倍速値が設定されたスケジュールが自動的に設定されるので、人手によることなくアプリケーション204のテストを実行することができる。また、アプリケーション204に返却される時間は、全て、スケジュールに設定された区間に基づいて計算されているので、テスト中に倍速値が変わっても、テスト中の時刻がシステム時刻の前の時刻に戻ることはない。従って、本実施の形態によれば、アプリケーション204のテストを倍速で行なう際の不具合の発生を抑制できる。
続いて、図2及び図3を用いて、本実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成について図1を用いて説明する。図2は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成を具体的に示す図である。
図2に示すように、本実施の形態では、仮想時刻配信システム300は、上述したスケジュール生成部102、システム時刻計算部103、及び仮想時刻計算部203に加えて、負荷情報格納部101と、情報配信部104と、情報受信部201と、情報格納部202とを備えている。
また、本実施の形態では、負荷情報格納部101と情報配信部104とは、仮想時刻配信装置100に備えられ、情報受信部201と情報格納部202とは、アプリケーション204を実行する情報処理装置200に備えられている。
また、以降においては、情報処理装置200が1つである場合について説明しているが、本実施の形態では、情報処理装置200は複数であっても良い。更に、情報処理装置200は、アプリケーション204を実行するアプリケーションサーバであり、仮想時刻配信装置100とネットワークを介して繋がっている。以降においては、情報処理装置200は、「アプリケーションサーバ200」と表記する。
加えて、本実施の形態では、仮想時刻配信装置100の持つシステム時刻と、アプリケーションサーバ200の持つシステム時刻とは、ネットワークタイムプロトコルによって同期されているものとする。従って、仮想時刻配信システム300が処理を開始した時刻、即ち、テスターが仮想時刻開始コマンドを実行した時刻は、情報処理装置のシステム起動時のシステム時刻(基準システム時刻)と一致することになる。
更に、本実施の形態では、仮想時刻配信装置100は、アプリケーションサーバ200内に構築されていても良い。この場合は、アプリケーションサーバ200が、各部を備えることになる。続いて、各部について具体的に説明する。
まず、図2に示すように、本実施の形態では、仮想時刻配信装置100は、負荷情報格納部101と、スケジュール生成部102と、システム時刻計算部103と、情報配信部104とを備えている。
負荷情報格納部101は、負荷情報を格納している。負荷情報は、図3に示すように、アプリケーションサーバ200がテストデータと同一のデータを用いてアプリケーション204を実行した時の時間毎の負荷を特定する情報である。図3は、本発明の実施の形態で利用される負荷情報の一例を示す図である。
図3の例では、負荷情報には、アプリケーション204が実行された日時が登録されている。また、負荷情報には、特定の時間毎(図3の例では1時間)のCPU負荷率の平均値も登録されている。
スケジュール生成部102は、本実施の形態では、負荷情報格納部101から負荷情報を取得し、取得した負荷情報に基づいて、スケジュールを生成する。
システム時刻計算部103は、本実施の形態では、スケジュール生成部102が生成したスケジュールを受け取り、受け取ったスケジュールに設定されている区間の開始時刻毎に、倍速値適用開始システム時刻を計算する。
具体的には、システム時刻計算部103は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の倍速値の逆数を乗算する。そして、システム時刻計算部103は、当該開始時刻の1つ前の開始時刻に対応する倍速値適用開始システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、倍速値適用開始システム時刻とする。
なお、当該開始時刻の1つ前の開始時刻が、スケジュールの開始点である場合は、1つ前の開始時刻に対応する倍速値適用開始システム時刻は、テスターが仮想時刻開始コマンドを実行した時刻、即ち、上述した基準システム時刻となる。
また、システム時刻計算部103は、計算した開始時刻毎の倍速値適用開始システム時刻とスケジュールとを、仮想時刻設定情報として情報配信部104に出力する。情報配信部104は、システム時刻計算部103から出力されてきた仮想時刻設定情報をアプリケーションサーバ200に配信する。
アプリケーションサーバ200は、テストデータを用いてアプリケーション204を実行する。このとき、アプリケーションが時刻(仮想時刻)を要求すると、アプリケーションサーバ200は、仮想時刻を返却する。図2に示すように、本実施の形態では、情報処理装置200は、情報受信部201と、情報格納部202と、仮想時刻計算部203とを備えている。
情報受信部201は、情報配信部104から配信されてきた仮想時刻設定情報を受信し、受信した仮想時刻設定情報を、情報格納部202に格納する。
仮想時刻計算部203は、テストデータを入力データとして実行されているアプリケーション204が時刻(仮想時刻)を要求すると、先ず、情報格納部202から仮想時刻設定情報を取得する。更に、仮想時刻計算部203は、仮想時刻設定情報に含まれる倍速値的用開始システム時刻の中から、要求時のシステム時刻の直前となる倍速値的用開始システム時刻を特定する。
続いて、仮想時刻計算部203は、特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された倍速値を乗算する。そして、仮想時刻計算部203は、特定した倍速値適用開始システム時刻に対応する開始時刻(仮想時間)に、乗算して得られた時間を加算し、加算によって得られた仮想時刻を、アプリケーション204に返却する。
このように、仮想時刻計算部203は、テストデータを入力データとして実行されているアプリケーション204が時刻(仮想時刻)を要求すると、現在の仮想時刻を計算してアプリケーション204に返却する。また、本実施の形態では、情報格納部202と仮想時刻計算部203とは、アプリケーションサーバ200上に配置されている。このため、アプリケーション204から仮想時刻の要求がある度に、アプリケーションサーバ200は、仮想時刻配信装置100と通信する必要がないため、テスト時におけるアプリケーションサーバ200の処理負担が軽減される。
[システム動作]
次に、本発明の実施の形態における仮想時刻配信システム300及び仮想時刻配信装置100の動作について図4〜図9を用いて説明する。以下の説明においては、適宜図1を参酌する。また、本実施の形態では、仮想時刻配信システム300を動作させることによって、仮想時刻配信方法が実施される。よって、本実施の形態における仮想時刻配信方法の説明は、以下の仮想時刻配信システムの動作説明に代える。
まず、図4を用いて、仮想時刻配信装置100で行なわれる処理について説明する。図4は、本発明の実施の形態における仮想時刻配信システムでの仮想時刻配信装置の動作を示すフロー図である。また、前提として、負荷情報格納部110は、図3に示した負荷情報を外部から受け取って、これを格納しているとする。
まず、ユーザであるテスターが、仮想時刻配信装置100において、仮想時刻開始コマンドを実行する。これにより、図4に示すように、スケジュール生成部102は、負荷情報格納部101から負荷情報(図3参照)を取得し、取得した負荷情報に基づいて、スケジュールを生成する(ステップA1)。
次に、システム時刻計算部103は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置200におけるアプリケーション204実行時のシステム時刻を、倍速値適用開始システム時刻として計算する(ステップA2)。また、システム時刻計算部103は、計算した開始時刻毎の倍速値適用開始システム時刻とスケジュールとを、仮想時刻設定情報として情報配信部104に出力する。
情報配信部104は、システム時刻計算部103から出力されてきた仮想時刻設定情報をアプリケーションサーバ200に配信する(ステップA3)。
続いて、図5を用いて、アプリケーションサーバ200で行なわれる処理について説明する。図5は、本発明の実施の形態における仮想時刻配信システムでの情報処理装置の動作を示すフロー図である。また、前提として、情報受信部201が、情報配信部104から配信されてきた仮想時刻設定情報を受信し、受信した仮想時刻設定情報を情報格納部202に格納しているとする。
図5に示すように、仮想時刻計算部203は、まず、テストデータを入力データとして実行されているアプリケーション204が時刻(仮想時刻)を要求しているかどうかを判定する(ステップB1)。
ステップB1の判定の結果、アプリケーション204が時刻を要求していない場合は、仮想時刻計算部203は待機状態となる。一方、ステップB1の判定の結果、アプリケーション204が時刻を要求している場合は、仮想時刻計算部203は、アプリケーションサーバ200のOSからシステム時刻を取得する(ステップB2)。このとき取得したシステム時刻が、アプリケーション204の要求時のシステム時刻となる。
次に、仮想時刻計算部203は、情報格納部202から仮想時刻設定情報を取得し、仮想時刻設定情報に含まれる倍速値的用開始システム時刻の中から、要求時のシステム時刻の直前となる倍速値的用開始システム時刻を特定する(ステップB3)。
次に、仮想時刻計算部203は、ステップB3で特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された倍速値を乗算する。そして、仮想時刻計算部203は、特定した倍速値適用開始システム時刻に対応する開始時刻(仮想時間)に、乗算して得られた時間を加算して、仮想時刻を計算する(ステップB4)。
次に、仮想時刻計算部203は、ステップB4で計算した仮想時刻を、アプリケーション204に返却する(ステップB5)。その後、仮想時刻計算部203は、再度ステップB1を実行する。ステップB1〜B5は、アプリケーション204が終了するまで、繰り返し実行される。
[具体例]
続いて、仮想時刻配信システム300の動作の具体例について、図6〜図9を用いて説明する。まず、テスターが、2016年11月9日10:00に仮想時刻開始コマンドを実行したものとする。ユーザが仮想時刻開始コマンドを実行した時刻が、基準システム時刻となる。
[ステップA1]
スケジュール生成部102では、図3に示された負荷情報の最初の時刻(2016/11/8の10:00)を基準仮想時刻として、図6に示す倍速値変更スケジュールを生成する。図6は、本発明の実施の形態において生成されるスケジュールの一例を示す図である。
具体的には、スケジュール生成部102は、まず、図3に示した負荷情報に含まれる各時刻を仮想時刻に設定し、各CPU負荷率の区切りとなる仮想時刻(10:00、11:00)で倍速値が変更されるようにスケジュールを生成する。従って、各CPU負荷率の区切りとなる仮想時刻が、区間の開始時刻となる。また、開始時刻は、倍速値の適用が開始される時刻であり、「倍速値的用開始時刻」とも表記する。
例えば、図3の例では、10:00〜11:00において、CPU負荷率(使用率)は40%であるので、CPU負荷率の閾値が80%であるとすると、スケジュール生成部102は、10:00時点の倍速値を、下記の数1に基づいて2倍と算出する。従って、スケジュール生成部102は、図6に示すように、倍速値的用開始時刻10:00の倍速値を2倍に設定する。
Figure 0006855861
一方、図3の例において、11:00〜12:00において、CPU負荷率は90%であり、既に閾値を超えてしまっているため、スケジュール生成部102は、図6に示すように、倍速値的用開始時刻11:00の倍速値を1倍に設定する。
なお、上記の説明は、簡単のためアプリケーションサーバ200が1つの場合を例に挙げているが、本実施の形態では、アプリケーションサーバ200が複数台であっても良い。この場合、アプリケーションサーバ毎にCPU負荷率が異なるため、スケジュール生成部102は、例えば、時間帯毎に、CPU負荷率が最も高いアプリケーションサーバ200に合わせて倍速値を設定する。
[ステップA2〜A3]
システム時刻計算部103は、図6に示した倍速値変更情報から、各倍速値適用開始時刻に対応する、倍速値適用開始システム時刻を計算する。具体的には、システム時刻計算部103は、各倍速値適用開始時刻に対する倍速値適用開始システム時刻を、下記の数2に示す漸化式を用いて算出する。
ここで、Sをn番目の倍速値適用開始時刻、TをSに対応するn番目の倍速値適用開始システム時刻、Fをn番目の倍速値適用開始時刻後の倍速値とする。また、Tを基準システム時刻、Sを基準仮想時刻、Fを1とする。なお、n>0とする。
Figure 0006855861
上記数2から分かるように、n番目の倍速値適用開始時刻と(n−1)番目の倍速値適用開始時刻との差から、システム時刻における経過時時間が計算され、各倍速値適用開始時刻が計算される。上記数2を用いた計算処理について図7を用いて説明する。図7は、本発明の実施の形態におけるシステム時刻計算部の処理を説明する図である。
図7において、テストデータにおける仮想時刻は2016年11月8日の時刻を表しており、システム時刻は2016年11月9日の時刻をそれぞれ表している。ここで、倍速値変更情報において、倍速値適用開始時刻は2つ存在するので、システム時刻計算部103は、n=1、2のそれぞれの場合について、上記数1を用いて、倍速値適用開始システム時刻を計算する。
まず、n=1の場合、上記数1を用いた計算は、以下の数3の通りとなる。以下では、H、Mそれぞれ時分を表す。
Figure 0006855861
次に、n=2の場合、上記数1を用いた計算は、以下の数4の通りとなる。
Figure 0006855861
システム時刻計算部103は、上記数3及び図4の結果に基づいて、図8に示す仮想時刻設定情報を生成する。図8は、本発明の実施の形態において生成される仮想時刻設定情報の一例を示す図である。情報配信部104は、図8に示す仮想時刻設定情報をアプリケーションサーバ200に配信する
[ステップB1〜B5]
情報受信部201は、受信した仮想時刻設定情報(図8参照)を情報格納部202に格納する。仮想時刻計算部203は、アプリケーション204から時刻(仮想時刻)を要求されると、下記の数5及び図6を用いて、アプリケーションに返却する仮想時刻を計算する。
具体的には、本実施の形態では、仮想時刻計算部203は、API(Application Program Interface)をアプリケーション204に提供している。このため、アプリケーション204は、提供されているAPIを呼び出すことで、仮想時刻計算部203に仮想時刻を要求する。
ここで、Sを現在の仮想時刻、Tを現在のシステム時刻とする。また、下記の数5を満たすnを元とする集合をXとする。
Figure 0006855861
そして、X=φが成立するとき、下記の数6が成立し、X=φが成立しないとき、n=max(X)とすると、下記の数7が成立する。
Figure 0006855861
Figure 0006855861
上記数7において、Sは、(n−1)番目のペアまでの、倍速された時刻を含んでいるため、倍速値が変わっても仮想時刻が前の時刻に戻ることはない。
図9は、本発明の実施の形態における仮想時刻計算部の処理を説明する図である。図9の例では、システム時刻が2016年11月9日11時30分であるときに、アプリケーション204が、仮想時刻計算部203に時刻を要求した場合を示している。このとき、仮想時刻計算部203は、上記数7を用いて仮想時刻を計算する。計算結果は、下記の数8の通りである。
Figure 0006855861
従って、図9の例では、仮想時刻計算部203は、仮想時刻として、2016年11月8日11時30分をアプリケーション204に返却する。
以上のように、本実施の形態によれば、人手によって、基準仮想時刻を指定することなく、アプリケーションのテストを倍速で行なうことが可能である。また、テストの際に、倍速値を変更した場合であっても、仮想時刻が前の時刻に戻ることがなく、常に一貫性のある時刻が提供されるので、不具合の発生が回避される。更に、テスト時の倍速値は、過去にアプリケーション実行した際に得られたCPUの負荷情報に基づいて、システムによって最適化されるので、テストの効率化も図られている。
[変形例]
本実施の形態では、仮想時刻計算部203は、APIをアプリケーション204に提供する態様の他に、OSが提供する時刻取得用のインターフェイス(UNIX(登録商標)システムにおけるシステムコールなど)をフックするライブラリを提供する態様であってもよい。この態様では、ライブラリには、仮想時刻計算部203で行なわれる処理が埋め込まれる。また、この態様を用いる場合は、既存のアプリケーションに対して、本実施の形態における仮想時刻配信システムを適用できるため、汎用性が高くなる。
また、本実施の形態における仮想時刻配信システムでは、負荷情報格納部101を不揮発性記憶装置によって構築することで、仮想時刻配信装置100が再起動された場合にも、同様の設定情報をアプリケーションサーバ200に配信可能となる。また、情報格納部202を不揮発性記憶装置によって構築することで、アプリケーションサーバ200が再起動された場合にも、同様の設定で、本実施の形態における仮想時刻配信システムを動作させることができる。
[プログラム]
本実施の形態における第1のプログラムは、コンピュータに、図4に示すステップA1〜A3を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮想時刻配信装置を実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、スケジュール生成部102、システム時刻計算部103、及び情報配信部104として機能し、処理を行なう。また、本実施の形態では、負荷情報格納部101は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。
また、本実施の形態における第1のプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、スケジュール生成部102、システム時刻計算部103、及び情報配信部104のいずれかとして機能しても良い。また、負荷情報格納部101は、本実施の形態における第1のプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
また、本実施の形態における第2のプログラムは、コンピュータに、図5に示すステップB1〜B5を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮想時刻計算部203を実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、仮想時刻計算部203として機能し、処理を行なう。なお、ここでいうコンピュータとしては、アプリケーションサーバ200が挙げられる。
また、本実施の形態における仮想時刻配信装置100は、上述したようにアプリケーションサーバ200に構築することもでき、この場合においては、第1のプログラム及び第2のプログラムは共に、アプリケーションサーバ200にインストールされて、実行されることになる。
[物理構成]
ここで、本実施の形態における第1及び第2のプログラムを実行するコンピュータについて図10を用いて説明する。図10は、本発明の実施の形態における仮想時刻配信装置及び情報処理装置を実現するコンピュータの一例を示すブロック図である。
図10に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
なお、本実施の形態における仮想時刻配信装置100は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮想時刻配信装置100は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記20)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
を備えていることを特徴とする仮想時刻配信システム。
(付記2)
前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記1に記載の仮想時刻配信システム。
(付記3)
前記システム時刻計算部が、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の1つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記1または2に記載の仮想時刻配信システム。
(付記4)
前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記1〜3のいずれかに記載の仮想時刻配信システム。
(付記5)
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
を備えていることを特徴とする仮想時刻配信装置。
(付記6)
前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記5に記載の仮想時刻配信装置。
(付記7)
前記システム時刻計算部が、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の1つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記5または6に記載の仮想時刻配信装置。
(付記8)
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部を更に備えている、
付記5〜7のいずれかに記載の仮想時刻配信装置。
(付記9)
前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記8に記載の仮想時刻配信装置。
(付記10)
テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
(a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
(b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
(c)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
を有することを特徴とする仮想時刻配信方法。
(付記11)
前記(a)のステップにおいて、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記10に記載の仮想時刻配信方法。
(付記12)
前記(b)のステップにおいて、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の1つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記10または11に記載の仮想時刻配信方法。
(付記13)
前記(c)のステップにおいて、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記10〜12のいずれかに記載の仮想時刻配信方法。
(付記14)
コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
前記コンピュータに、
(a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
(b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
を実行させるプログラム。
(付記15)
前記(a)のステップにおいて、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記14に記載のプログラム。
(付記16)
前記(b)のステップにおいて、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の1つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記14または15に記載のプログラム。
(付記17)
前記コンピュータに、
(c)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップ更に実行させる、
付記14〜16のいずれかに記載のプログラム。
(付記18)
前記(c)のステップにおいて、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記17に記載のプログラム。
(付記19)
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
前記情報処理装置に、
(a)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
実行させるプログラム。
(付記20)
前記(a)のステップにおいて、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記19に記載のプログラム。
以上のように、本発明によれば、人手によることなく、ソフトウェアテストの効率化を図ることができる。本発明は、航空管制システムなど、時刻情報に依存した処理を含み、ソフトウェアテストにかかる時間が長くなりやすいシステムに有用である。具体的には、このようなシステムとしては、空港での航空機の離発着予定および飛行中の航空機の位置情報に基づき、着陸時の混雑回避のために、個々の航空機の離発着時刻を制御するシステムが挙げられる。
101 負荷情報格納部
102 スケジュール生成部
103 システム時刻計算部
104 情報配信部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
200 情報処理装置(アプリケーションサーバ)
201 情報受信部
202 情報格納部
203 仮想時刻計算部
204 アプリケーションプログラム
300 仮想時刻配信システム

Claims (8)

  1. テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
    前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
    前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
    テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
    前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
    を備えていることを特徴とする仮想時刻配信システム。
  2. 前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
    請求項1に記載の仮想時刻配信システム。
  3. 前記システム時刻計算部が、
    前記スケジュールに設定されている区間の開始時刻毎に、
    当該開始時刻の1つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
    当該開始時刻の1つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
    請求項1または2に記載の仮想時刻配信システム。
  4. 前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
    特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
    特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
    請求項1〜3のいずれかに記載の仮想時刻配信システム。
  5. テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
    前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
    前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
    を備えていることを特徴とする仮想時刻配信装置。
  6. テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
    (a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
    (b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
    (c)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
    前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
    を有することを特徴とする仮想時刻配信方法。
  7. コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
    前記コンピュータに、
    (a)前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
    (b)前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
    を実行させるプログラム。
  8. テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
    前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
    前記情報処理装置に、
    (a)テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
    前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
    実行させるプログラム。
JP2017055490A 2017-03-22 2017-03-22 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム Active JP6855861B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017055490A JP6855861B2 (ja) 2017-03-22 2017-03-22 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017055490A JP6855861B2 (ja) 2017-03-22 2017-03-22 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018159985A JP2018159985A (ja) 2018-10-11
JP6855861B2 true JP6855861B2 (ja) 2021-04-07

Family

ID=63796661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017055490A Active JP6855861B2 (ja) 2017-03-22 2017-03-22 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6855861B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132081A (ja) * 1998-10-28 2000-05-12 Mitsubishi Electric Corp 分散シミュレーション装置
JP3471637B2 (ja) * 1998-11-30 2003-12-02 三菱電機株式会社 並列分散シミュレーションシステム、シミュレーションマネージャおよび並列分散シミュレータ制御方法
JP2001339402A (ja) * 2000-05-26 2001-12-07 Sony Corp クライアント・サーバ型仮想時刻共有装置及び電子機器
WO2010038459A1 (ja) * 2008-10-03 2010-04-08 日本電気株式会社 マルチプロセッサのカウント値補正装置及びこれを備えるマルチプロセッサ
JP5355172B2 (ja) * 2009-03-27 2013-11-27 株式会社野村総合研究所 仮想時刻の同期システム
JP2013125336A (ja) * 2011-12-13 2013-06-24 Mitsubishi Electric Corp 情報処理装置、時刻制御方法および時刻制御プログラム
JP6168799B2 (ja) * 2013-03-12 2017-07-26 三菱電機株式会社 仮想計算機システム
JP6249665B2 (ja) * 2013-08-02 2017-12-20 キヤノン株式会社 シミュレーション装置、シミュレーション方法、プログラム
TWI501102B (zh) * 2013-08-27 2015-09-21 Inst Information Industry 虛擬時間控制裝置、方法及電腦程式產品
JP6066881B2 (ja) * 2013-10-09 2017-01-25 新日鉄住金ソリューションズ株式会社 情報処理システム、情報処理装置、情報処理方法及びプログラム
JP2015114675A (ja) * 2013-12-09 2015-06-22 三菱電機株式会社 アプリケーションソフトウェア加速試験装置および試験方法

Also Published As

Publication number Publication date
JP2018159985A (ja) 2018-10-11

Similar Documents

Publication Publication Date Title
US10901785B2 (en) Task deployment method, task deployment apparatus, and storage medium
US8719297B2 (en) System for managing data collection processes
US8346995B2 (en) Balancing usage of hardware devices among clients
US20040015973A1 (en) Resource reservation for large-scale job scheduling
JP2016536661A (ja) 仮想コンピュータシステム及び方法
US9952911B2 (en) Dynamically optimized device driver protocol assist threads
CN103561055A (zh) 基于会话的云计算环境下Web应用自动弹性扩展方法
AU2016298207A1 (en) Background job processing framework
CN112000457A (zh) 管理处理系统中的任务的方法、设备和计算机程序产品
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
US20220374276A1 (en) Scheduling jobs on interruptible cloud computing instances
US11194476B2 (en) Determining an optimal maintenance time for a data storage system utilizing historical data
CN113434282A (zh) 流计算任务的发布、输出控制方法及装置
JP2016006608A (ja) 管理方法、仮想マシン、管理サーバ、管理システム、及びコンピュータプログラム
CN109032779B (zh) 任务处理方法、装置、计算机设备及可读存储介质
CN114492834A (zh) 训练方法、训练装置、设备、系统及存储介质
CN117873719A (zh) 基于DevOps的集群动态更新方法
JP6855861B2 (ja) 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム
JP2018097837A (ja) サービスシステム、その制御方法、およびそのプログラム
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
US20180011734A1 (en) Job scheduler test program, job scheduler test method, and information processing apparatus
JP2018538632A (ja) ノードの再起動後にデータを処理する方法及びデバイス
JP6957910B2 (ja) 情報処理装置
JP2010224812A (ja) ジョブ管理システムおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210119

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: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210301

R150 Certificate of patent or registration of utility model

Ref document number: 6855861

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150