JP2021047806A - Information processing system, information processing apparatus, and information processing program - Google Patents

Information processing system, information processing apparatus, and information processing program Download PDF

Info

Publication number
JP2021047806A
JP2021047806A JP2019171543A JP2019171543A JP2021047806A JP 2021047806 A JP2021047806 A JP 2021047806A JP 2019171543 A JP2019171543 A JP 2019171543A JP 2019171543 A JP2019171543 A JP 2019171543A JP 2021047806 A JP2021047806 A JP 2021047806A
Authority
JP
Japan
Prior art keywords
repository
data
test
storage
backup volume
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.)
Pending
Application number
JP2019171543A
Other languages
Japanese (ja)
Inventor
貫 加藤
Tsuranu Kato
貫 加藤
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 JP2019171543A priority Critical patent/JP2021047806A/en
Publication of JP2021047806A publication Critical patent/JP2021047806A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

To reduce the amount of download of a source code for execution of a test.SOLUTION: A test control unit 1 controls such that, from a repository 4 storing a source code of a program, all data in the repository 4 is transmitted via a network 5 and copied to a storage 3 as a data group 11. In addition, the test control unit 1 controls such that, when the data in the repository 4 is updated, differential data among the updated data in the repository 4, which is different from the data group 11, is transmitted from the repository 4 via the network 5 and copied to the storage 3 as a data group 12. A test execution unit 2 executes a test for the source code stored in the repository 4 after the update based on the data groups 11 and 12 in the storage 3.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理システム、情報処理装置および情報処理プログラムに関する。 The present invention relates to an information processing system, an information processing device and an information processing program.

継続的インテグレーション(Continuous Integration:CI)は、プログラムの開発を効率化するための手段として広く利用されている。CI環境では、プログラムのソースコードがリポジトリに格納され、開発者によってリポジトリ内のソースコードが更新されていく。リポジトリ内のソースコードの更新イベントが発生すると、更新されたソースコードのテストが実行される。このように、ソースコードの更新に応じて更新されたソースコードのテストが自動的に実行されることで、プログラムの開発を継続的に効率化できる。 Continuous Integration (CI) is widely used as a means to streamline program development. In the CI environment, the source code of the program is stored in the repository, and the source code in the repository is updated by the developer. When the source code update event in the repository occurs, the updated source code is tested. In this way, the test of the updated source code is automatically executed in response to the update of the source code, so that the program development can be continuously streamlined.

CIにおけるソースコードのテストに関しては、例えば次のようなシステムが提案されている。このシステムでは、第1サーバによってソースコードの静的解析が行われ、解析結果が第2サーバにアップロードされる。第2サーバは、開発者端末から解析結果の提供が要求されると、過去の解析結果に対してなされた除外申請に関して参考になる参考情報を、解析結果とともに開発者端末に出力する。 Regarding the source code test in CI, for example, the following system has been proposed. In this system, the first server statically analyzes the source code, and the analysis result is uploaded to the second server. When the developer terminal requests the provision of the analysis result, the second server outputs the reference information that is helpful for the exclusion application made to the past analysis result to the developer terminal together with the analysis result.

また、関連技術として、コピー複合機のアプリケーションにおける更新されたコンポーネントをCIによりテストするシステムが提案されている。 In addition, as a related technology, a system for testing updated components in a copy multifunction device application by CI has been proposed.

特開2018−45525号公報JP-A-2018-45525 特開2014−71899号公報Japanese Unexamined Patent Publication No. 2014-71899

ところで、CI環境では、ソースコードが格納されるリポジトリと、ソースコードのテストが実行されるテスト装置とが、WAN(Wide Area Network)などのネットワークを介して接続される場合がある。この場合、テスト装置は、ソースコードをリポジトリからダウンロードしてテスト環境をビルドし、テストを実行する。しかし、このような構成では、ソースコードのサイズが多くなるほど、テスト装置がソースコードをダウンロードするのにかかる時間が長くなるという問題がある。また、ネットワークのトラフィックによっても、ソースコードのダウンロードにかかる時間が長くなり得る。このようにソースコードのダウンロードに時間がかかると、テストの実行開始までに長時間を要し、テストを効率的に実行できなくなる。 By the way, in the CI environment, the repository in which the source code is stored and the test device in which the source code test is executed may be connected via a network such as a WAN (Wide Area Network). In this case, the test device downloads the source code from the repository, builds the test environment, and executes the test. However, in such a configuration, there is a problem that the larger the size of the source code, the longer it takes for the test device to download the source code. Also, network traffic can increase the time it takes to download the source code. If it takes a long time to download the source code in this way, it takes a long time to start executing the test, and the test cannot be executed efficiently.

1つの側面では、本発明は、テスト実行のためのソースコードのダウンロード量を削減可能な情報処理システム、情報処理装置および情報処理プログラムを提供することを目的とする。 In one aspect, it is an object of the present invention to provide an information processing system, an information processing apparatus and an information processing program capable of reducing the download amount of source code for test execution.

1つの案では、次のようなテスト制御部およびテスト実行部を有する情報処理システムが提供される。テスト制御部は、プログラムのソースコードが記憶されたリポジトリから、リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する。また、テスト制御部は、リポジトリ内のデータが更新されると、更新後のリポジトリ内のデータのうち第1のデータ群との差分データが、リポジトリからネットワークを介して送信され、第2のデータ群としてストレージにコピーされるように制御する。テスト実行部は、ストレージ内の第1のデータ群と第2のデータ群とに基づいて、更新後のリポジトリに記憶されているソースコードのテストを実行する。 One proposal provides an information processing system having the following test control unit and test execution unit. The test control unit controls the repository in which the source code of the program is stored so that all the data in the repository is transmitted via the network and copied to the storage as the first data group. Further, when the data in the repository is updated, the test control unit transmits the difference data from the first data group among the updated data in the repository from the repository via the network, and the second data. Control so that it is copied to the storage as a group. The test execution unit executes a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.

また、1つの案では、次のような処理部を有する情報処理装置が提供される。処理部は、プログラムのソースコードが記憶されたリポジトリから、リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する第1の処理を実行する。また、処理部は、リポジトリ内のデータが更新されると、更新後のリポジトリ内のデータのうち第1のデータ群との差分データが、リポジトリからネットワークを介して送信され、第2のデータ群としてストレージにコピーされるように制御する第2の処理を実行し、ストレージ内の第1のデータ群と第2のデータ群とに基づく、更新後のリポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理を実行する。 Further, in one plan, an information processing apparatus having the following processing units is provided. The processing unit executes the first process of controlling so that all the data in the repository is transmitted from the repository in which the source code of the program is stored via the network and copied to the storage as the first data group. .. Further, when the data in the repository is updated, the processing unit transmits the difference data from the first data group among the updated data in the repository from the repository via the network, and the second data group. Performs a second process that controls the data to be copied to the storage as, and tests the source code stored in the updated repository based on the first and second data groups in the storage. , Execute the third process to be executed by the test apparatus.

さらに、1つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。 Further, in one plan, an information processing program for causing a computer to execute the same processing as the above-mentioned information processing device is provided.

1つの側面では、テスト実行のためのソースコードのダウンロード量を削減できる。 On one side, the amount of source code downloaded for test execution can be reduced.

第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。It is a figure which shows the configuration example and the processing example of the information processing system which concerns on 1st Embodiment. 第2の実施の形態に係る情報処理システムの構成例を示す図である。It is a figure which shows the structural example of the information processing system which concerns on 2nd Embodiment. 管理サーバのハードウェア構成例を示す図である。It is a figure which shows the hardware configuration example of the management server. CIのためのシステム構成の比較例を示す。A comparative example of the system configuration for CI is shown. 第2の実施の形態に係る情報処理システムが備える処理機能の構成例を示すブロック図である。It is a block diagram which shows the structural example of the processing function provided in the information processing system which concerns on 2nd Embodiment. テストジョブの実行制御例を示す第1の図である。It is the first figure which shows the execution control example of a test job. テストジョブの実行制御例を示す第2の図である。It is a 2nd figure which shows the execution control example of a test job. テストジョブの実行制御例を示す第3の図である。It is a 3rd figure which shows the execution control example of a test job. テストジョブの実行制御例を示す第4の図である。It is a 4th figure which shows the execution control example of a test job. スレーブVMおよびリポジトリスナップショットの第1の作成例を示す図である。It is a figure which shows the 1st example of making a slave VM and a repository snapshot. スレーブVMおよびリポジトリスナップショットの第2の作成例を示す図である。It is a figure which shows the 2nd creation example of a slave VM and a repository snapshot. テストジョブの実行時における処理手順の例を示すシーケンス図(その1)である。It is a sequence diagram (No. 1) which shows an example of the processing procedure at the time of execution of a test job. テストジョブの実行時における処理手順の例を示すシーケンス図(その2)である。It is a sequence diagram (No. 2) which shows an example of the processing procedure at the time of execution of a test job. テストジョブの実行制御例を示す第5の図である。It is a 5th figure which shows the execution control example of a test job. テストジョブの実行制御例を示す第6の図である。It is a 6th figure which shows the execution control example of a test job. テストジョブの実行制御例を示す第7の図である。It is a 7th figure which shows the execution control example of a test job. リポジトリコピーの更新処理例を示す第1の図である。It is the first figure which shows the update process example of the repository copy. リポジトリコピーの更新処理例を示す第2の図である。It is a 2nd figure which shows the update process example of the repository copy. 第3の実施の形態におけるテストジョブ実行時の処理手順の例を示すシーケンス図である。It is a sequence diagram which shows the example of the processing procedure at the time of execution of a test job in 3rd Embodiment.

以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、テスト制御部1、テスト実行部2、ストレージ3およびリポジトリ4を含む。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram showing a configuration example and a processing example of the information processing system according to the first embodiment. The information processing system shown in FIG. 1 includes a test control unit 1, a test execution unit 2, a storage 3, and a repository 4.

テスト制御部1およびテスト実行部2の処理は、例えば、それぞれ個別の、または同一のプロセッサがプログラムを実行することで実現される。テスト制御部1およびテスト実行部2は、それぞれ個別の情報処理装置に実装されていてもよいし、同一の情報処理装置に実装されていてもよい。ストレージ3は、HDD(Hard Disk Drive)などの記憶装置である。ストレージ3は、テスト制御部1やテスト実行部2と同一の情報処理装置に搭載されていてもよいし、これらの外部に接続されていてもよい。 The processing of the test control unit 1 and the test execution unit 2 is realized, for example, by executing the program by individual or the same processor. The test control unit 1 and the test execution unit 2 may be mounted on individual information processing devices, or may be mounted on the same information processing device. The storage 3 is a storage device such as an HDD (Hard Disk Drive). The storage 3 may be mounted on the same information processing device as the test control unit 1 and the test execution unit 2, or may be connected to the outside of these devices.

リポジトリ4は、開発対象となるプログラムのソースコードを複数記憶する記憶装置である。情報処理システムでは、リポジトリ4とストレージ3との間がネットワーク5を介して接続されている。一方、テスト制御部1、テスト実行部2およびストレージ3との間では、ネットワーク5を介さずに(例えば、ネットワーク5に接続する別の内部ネットワークを介して)通信可能になっている。 The repository 4 is a storage device that stores a plurality of source codes of programs to be developed. In the information processing system, the repository 4 and the storage 3 are connected via the network 5. On the other hand, communication is possible between the test control unit 1, the test execution unit 2, and the storage 3 without going through the network 5 (for example, via another internal network connected to the network 5).

この情報処理システムでは、リポジトリ4内のソースコードが開発者によって更新されると、テスト制御部1によってその更新が検知され、テスト実行部2によってリポジトリ4内のソースコードのテストが実行される。このように、リポジトリ4の更新ごとにテストが自動実行されるCI環境が構築されている。 In this information processing system, when the source code in the repository 4 is updated by the developer, the test control unit 1 detects the update, and the test execution unit 2 executes the test of the source code in the repository 4. In this way, a CI environment is constructed in which the test is automatically executed every time the repository 4 is updated.

ただし、リポジトリ4が更新されるたびにリポジトリ4内のすべてのソースコードがネットワーク5を介してテスト実行部2にダウンロードされると、ダウンロードに長時間を要し、リポジトリ4の更新からテスト開始までに長い時間がかかってしまう。そこで、この情報処理システムでは、リポジトリ4が更新されると、更新された分のデータだけがリポジトリ4からネットワーク5を介してダウンロードされるように制御される。 However, if all the source code in the repository 4 is downloaded to the test execution unit 2 via the network 5 every time the repository 4 is updated, it takes a long time to download, from the update of the repository 4 to the start of the test. It takes a long time. Therefore, in this information processing system, when the repository 4 is updated, only the updated data is controlled to be downloaded from the repository 4 via the network 5.

まず、図1の上側に示すように、テストの実行に先立ち、テスト制御部1は、リポジトリ4内の全データがネットワーク5を介して送信され、ストレージ3にコピー(フルコピー)されるように制御する。この制御により、ストレージ3には、リポジトリ4内の全データに対応するコピーデータがデータ群11として記憶される。 First, as shown in the upper part of FIG. 1, prior to the execution of the test, the test control unit 1 causes all the data in the repository 4 to be transmitted via the network 5 and copied (full copy) to the storage 3. Control. By this control, the copy data corresponding to all the data in the repository 4 is stored in the storage 3 as the data group 11.

その後、図1の下側に示すように、テスト制御部1は、リポジトリ4の更新を検知すると、更新後のリポジトリ4内のデータのうちデータ群11との差分データが、リポジトリ4からネットワーク5を介してストレージ3にコピー(差分コピー)されるように制御する。この制御により、差分データがデータ群12としてストレージ3に記憶される。 After that, as shown in the lower part of FIG. 1, when the test control unit 1 detects the update of the repository 4, the difference data from the data group 11 among the data in the updated repository 4 is transferred from the repository 4 to the network 5. It is controlled so that it is copied (difference copy) to the storage 3 via. By this control, the difference data is stored in the storage 3 as the data group 12.

データ群12が記憶されると、テスト実行部2は、データ群11とデータ群12とに基づいて、更新後のリポジトリ4に記憶されているソースコードのテストを実行する。すなわち、テスト実行部2は、更新後のリポジトリ4内のソースコードのうち、更新されたソースコードをデータ群12から取得し、残りのソースコードをデータ群11から取得して、取得したソースコードのテストを実行する。 When the data group 12 is stored, the test execution unit 2 executes a test of the source code stored in the updated repository 4 based on the data group 11 and the data group 12. That is, the test execution unit 2 acquires the updated source code from the data group 12 among the source codes in the updated repository 4, and acquires the remaining source code from the data group 11, and the acquired source code. Run the test.

このように、リポジトリ4が更新された場合、リポジトリ4内のデータのうち更新されたデータのみがネットワーク5を介してダウンロードされる。これにより、更新のたびにリポジトリ4から全データをダウンロードする場合と比較して、ダウンロードされるデータ量を削減でき、ダウンロードにかかる時間を短縮できる。その結果、リポジトリ4が更新されてからリポジトリ内のソースコードのテストを開始するまでの時間を短縮できる。また、ネットワーク5のトラフィックを軽減でき、ネットワーク5を介して通信する他の装置の通信速度が低下する可能性を抑制できる。 In this way, when the repository 4 is updated, only the updated data among the data in the repository 4 is downloaded via the network 5. As a result, the amount of data downloaded can be reduced and the time required for downloading can be shortened as compared with the case where all the data is downloaded from the repository 4 each time an update is made. As a result, the time from the update of the repository 4 to the start of testing the source code in the repository can be shortened. In addition, the traffic of the network 5 can be reduced, and the possibility that the communication speed of other devices communicating via the network 5 is reduced can be suppressed.

〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システムは、プログラムのソースコードのテストを自動化するCI環境を構築するシステムである。
[Second Embodiment]
FIG. 2 is a diagram showing a configuration example of the information processing system according to the second embodiment. The information processing system shown in FIG. 2 is a system for constructing a CI environment that automates the test of the source code of a program.

この情報処理システムは、リポジトリサーバ100、管理サーバ200、テストサーバ300およびストレージ装置400を含む。管理サーバ200、テストサーバ300およびストレージ装置400は、LAN(Local Area Network)51に接続され、LAN51を介して互いに通信可能になっている。リポジトリサーバ100は、WAN52に接続されている。LAN51はWAN52に接続されており、少なくとも管理サーバ200およびストレージ装置400は、LAN51およびWAN52を介してリポジトリサーバ100と通信可能になっている。 This information processing system includes a repository server 100, a management server 200, a test server 300, and a storage device 400. The management server 200, the test server 300, and the storage device 400 are connected to a LAN (Local Area Network) 51 and can communicate with each other via the LAN 51. The repository server 100 is connected to WAN 52. The LAN 51 is connected to the WAN 52, and at least the management server 200 and the storage device 400 can communicate with the repository server 100 via the LAN 51 and the WAN 52.

さらに、リポジトリサーバ100には開発者端末501,502,・・・が接続されている。図2の例では、開発者端末501,502,・・・は、WAN52を介してリポジトリサーバ100と通信可能になっている。ただし、開発者端末501,502,・・・は、WAN52とは別のネットワークを介してリポジトリサーバ100に接続されていてもよい。 Further, developer terminals 501, 502, ... Are connected to the repository server 100. In the example of FIG. 2, the developer terminals 501, 502, ... Can communicate with the repository server 100 via WAN 52. However, the developer terminals 501, 502, ... May be connected to the repository server 100 via a network different from the WAN 52.

リポジトリサーバ100は、リポジトリ101の入出力を制御する。リポジトリ101は、開発対象となるプログラムのソースコードを記憶する。例えば、リポジトリ101は、1以上のソフトウェアコンポーネントのソースコードを記憶する。リポジトリ101は、リポジトリサーバ100の内部に搭載された、あるいはリポジトリサーバ100の外部に接続された記憶装置の記憶領域によって実現される。 The repository server 100 controls the input / output of the repository 101. The repository 101 stores the source code of the program to be developed. For example, the repository 101 stores the source code of one or more software components. The repository 101 is realized by a storage area of a storage device installed inside the repository server 100 or connected to the outside of the repository server 100.

開発者端末501,502,・・・は、プログラムの開発者によって操作される端末装置である。開発者端末501,502,・・・は、開発者の操作に応じて、リポジトリ101内のソースコードの更新をリポジトリサーバ100に要求する。リポジトリサーバ100は、開発者端末501,502,・・・からの要求に応じて、リポジトリ101内のソースコードを更新する。この更新では、リポジトリ101に記憶されているソースコードの一部が変更される場合もあれば、リポジトリ101に記憶されているソースコードに新たなソースコードが追加される場合もある。 Developer terminals 501, 502, ... Are terminal devices operated by the developer of the program. The developer terminals 501, 502, ... Request the repository server 100 to update the source code in the repository 101 according to the operation of the developer. The repository server 100 updates the source code in the repository 101 in response to a request from the developer terminals 501, 502, .... In this update, a part of the source code stored in the repository 101 may be changed, or a new source code may be added to the source code stored in the repository 101.

管理サーバ200は、CIによるソースコードのテストジョブを制御するCIマスタ機能を備えている。テストサーバ300は、管理サーバ200の制御の下で、ソースコードのテストを実行する。 The management server 200 has a CI master function that controls a source code test job by CI. The test server 300 executes the source code test under the control of the management server 200.

管理サーバ200は、CIマスタ機能により、リポジトリ101の更新イベントを監視し、更新イベントの発生を検知するとテストジョブを起動する。テストジョブを起動すると、管理サーバ200は、CIマスタ機能により、ソースコードのテストを実行するためのスレーブVM(Virtual Machine)をテストサーバ300に作成させる。テストサーバ300は、スレーブVMを作成して動作させ、そのスレーブVM上でソースコードのテストを実行して、テスト結果を管理サーバ200に通知する。 The management server 200 monitors the update event of the repository 101 by the CI master function, and starts a test job when the occurrence of the update event is detected. When the test job is started, the management server 200 causes the test server 300 to create a slave VM (Virtual Machine) for executing the source code test by the CI master function. The test server 300 creates and operates a slave VM, executes a source code test on the slave VM, and notifies the management server 200 of the test result.

このように、情報処理システムでは、リポジトリ101が開発者端末501,502,・・・を介して複数の開発者によって共有され、各開発者によって作成されたソースコードがリポジトリ101においてマージされる。そして、管理サーバ200の制御により、リポジトリ101内のソースコードの更新に応じて、リポジトリ101内のソースコードのテストが自動実行される。これによってCI環境が実現され、例えば、ソフトウェアの異常を早期に発見して対処することができ、高品質なソフトウェアを効率的に開発できるようになる。 In this way, in the information processing system, the repository 101 is shared by a plurality of developers via the developer terminals 501, 502, ..., And the source code created by each developer is merged in the repository 101. Then, under the control of the management server 200, the test of the source code in the repository 101 is automatically executed according to the update of the source code in the repository 101. As a result, a CI environment is realized, for example, software abnormalities can be detected and dealt with at an early stage, and high-quality software can be efficiently developed.

また、管理サーバ200は、リポジトリ101からのソースコードのダウンロードを制御するリポジトリコントローラ機能を備えている。管理サーバ200は、リポジトリコントローラ機能により、初期状態ではリポジトリ101のデータ全体がストレージ装置400にダウンロードされるように制御する。その後、管理サーバ200は、テストジョブを起動するたびに、リポジトリコントローラ機能により、リポジトリ101内のソースコードのうち更新された部分のみがストレージ装置400にダウンロードされるように制御する。 Further, the management server 200 has a repository controller function that controls the download of the source code from the repository 101. The management server 200 is controlled by the repository controller function so that the entire data of the repository 101 is downloaded to the storage device 400 in the initial state. After that, each time the test job is started, the management server 200 controls the repository controller function so that only the updated part of the source code in the repository 101 is downloaded to the storage device 400.

ストレージ装置400は、コントローラ401とストレージ402を備える。コントローラ401は、ストレージに対するデータの読み書きを制御するストレージ制御装置である。また、コントローラ401は、ストレージ402の物理記憶領域を利用した論理ボリュームの作成や、論理ボリュームに対応するスナップショットボリュームの作成も可能になっている。ストレージ402は、1台または複数台の不揮発性記憶装置を備えている。これらの不揮発性記憶装置の記憶領域が、コントローラ401からの読み書きの制御対象となる。ストレージ402は、このような不揮発性記憶装置として、例えば、HDD、SSD(Solid State Drive)などを備えている。 The storage device 400 includes a controller 401 and a storage 402. The controller 401 is a storage control device that controls reading and writing of data to and from the storage. Further, the controller 401 can also create a logical volume using the physical storage area of the storage 402 and create a snapshot volume corresponding to the logical volume. The storage 402 includes one or more non-volatile storage devices. The storage area of these non-volatile storage devices is subject to read / write control from the controller 401. The storage 402 includes, for example, an HDD, an SSD (Solid State Drive), or the like as such a non-volatile storage device.

ストレージ402には、管理サーバ200の制御により、リポジトリ101内のソースコードがダウンロードされて格納される。ストレージ402に格納されたソースコードは、テストサーバ300上で動作するスレーブVMによって参照され、テストされる。 The source code in the repository 101 is downloaded and stored in the storage 402 under the control of the management server 200. The source code stored in the storage 402 is referenced and tested by a slave VM running on the test server 300.

なお、図2において、管理サーバ200は、図1のテスト制御部1が実装される情報処理装置の一例である。テストサーバ300は、図1のテスト実行部2が実装される情報処理装置の一例である。ストレージ402は、図1のストレージ3の一例である。リポジトリ101は、図1のリポジトリ4の一例である。WAN52は、図1のネットワーク5の一例である。 In FIG. 2, the management server 200 is an example of an information processing device on which the test control unit 1 of FIG. 1 is mounted. The test server 300 is an example of an information processing device on which the test execution unit 2 of FIG. 1 is mounted. The storage 402 is an example of the storage 3 of FIG. The repository 101 is an example of the repository 4 of FIG. WAN 52 is an example of network 5 in FIG.

図3は、管理サーバのハードウェア構成例を示す図である。管理サーバ200は、例えば、図3に示すようなコンピュータとして実現される。図3に示す管理サーバ200は、プロセッサ201、RAM(Random Access Memory)202、HDD203、グラフィックインタフェース(I/F)204、入力インタフェース(I/F)205、読み取り装置206および通信インタフェース207(I/F)を備える。 FIG. 3 is a diagram showing a hardware configuration example of the management server. The management server 200 is realized as, for example, a computer as shown in FIG. The management server 200 shown in FIG. 3 includes a processor 201, a RAM (Random Access Memory) 202, an HDD 203, a graphic interface (I / F) 204, an input interface (I / F) 205, a reading device 206, and a communication interface 207 (I / F). F) is provided.

プロセッサ201は、管理サーバ200全体を統括的に制御する。プロセッサ201は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。 The processor 201 controls the entire management server 200 in an integrated manner. The processor 201 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device). Further, the processor 201 may be a combination of two or more elements of the CPU, MPU, DSP, ASIC, and PLD.

RAM202は、管理サーバ200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。 The RAM 202 is used as the main storage device of the management server 200. The RAM 202 temporarily stores at least a part of an OS (Operating System) program or an application program to be executed by the processor 201. Further, the RAM 202 stores various data necessary for processing by the processor 201.

HDD203は、管理サーバ200の補助記憶装置として使用される。HDD203には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDなどの他の種類の不揮発性記憶装置を使用することもできる。 HDD 203 is used as an auxiliary storage device of the management server 200. The OS program, application program, and various data are stored in the HDD 203. As the auxiliary storage device, another type of non-volatile storage device such as SSD can also be used.

グラフィックインタフェース204には、表示装置204aが接続されている。グラフィックインタフェース204は、プロセッサ201からの命令にしたがって、画像を表示装置204aに表示させる。表示装置としては、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどがある。 A display device 204a is connected to the graphic interface 204. The graphic interface 204 causes the display device 204a to display an image according to an instruction from the processor 201. Display devices include liquid crystal displays, organic EL (Electroluminescence) displays, and the like.

入力インタフェース205には、入力装置205aが接続されている。入力インタフェース205は、入力装置205aから出力される信号をプロセッサ201に送信する。入力装置205aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。 An input device 205a is connected to the input interface 205. The input interface 205 transmits a signal output from the input device 205a to the processor 201. The input device 205a includes a keyboard, a pointing device, and the like. Pointing devices include mice, touch panels, tablets, touchpads, trackballs, and the like.

読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、半導体メモリなどがある。 A portable recording medium 206a is attached to and detached from the reading device 206. The reading device 206 reads the data recorded on the portable recording medium 206a and transmits it to the processor 201. Examples of the portable recording medium 206a include an optical disk and a semiconductor memory.

通信インタフェース207は、ネットワーク207aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、管理サーバ200の処理機能を実現することができる。なお、リポジトリサーバ100、テストサーバ300、ストレージ装置400のコントローラ401も、図3に示すようなハードウェア構成のコンピュータとして実現可能である。
The communication interface 207 transmits / receives data to / from another device via the network 207a.
With the above hardware configuration, the processing function of the management server 200 can be realized. The repository server 100, the test server 300, and the controller 401 of the storage device 400 can also be realized as a computer having a hardware configuration as shown in FIG.

次に、CIのためのシステム構成の比較例を示し、この比較例の問題点について説明する。図4は、CIのためのシステム構成の比較例を示す。
図4に示す比較例では、リポジトリ101に対してWAN52を介してCIマスタ61が接続されている。CIマスタ61は、リポジトリ101内のソースコードについてのテストジョブの実行を制御する処理機能であり、例えば、図2に示す管理サーバ200に対応するサーバ装置において動作する。
Next, a comparative example of the system configuration for CI will be shown, and the problems of this comparative example will be described. FIG. 4 shows a comparative example of the system configuration for CI.
In the comparative example shown in FIG. 4, the CI master 61 is connected to the repository 101 via the WAN 52. The CI master 61 is a processing function that controls the execution of a test job for the source code in the repository 101, and operates in, for example, the server device corresponding to the management server 200 shown in FIG.

CIマスタ61は、開発者によるリポジトリ101の更新イベントを監視する。CIマスタ61は、更新イベントを検知すると(ステップS11)、ハイパバイザ62上でスレーブVM63を起動させる(ステップS12)。ハイパバイザ62およびスレーブVM63は、例えば、図2に示すテストサーバ300に対応するサーバ装置において動作する。 The CI master 61 monitors the update event of the repository 101 by the developer. When the CI master 61 detects the update event (step S11), the CI master 61 activates the slave VM63 on the hypervisor 62 (step S12). The hypervisor 62 and the slave VM63 operate, for example, in the server device corresponding to the test server 300 shown in FIG.

スレーブVM63は、テスト実行のためのアプリケーションプログラムにしたがって、次のような処理を実行する。スレーブVM63は、リポジトリ101からソースコードをダウンロードし(ステップS13)、ダウンロードしたソースコードを用いてテスト環境をビルドし、テストを実行する(ステップS14)。テストが完了すると、スレーブVM63は、テスト結果をCIマスタ61に通知する(ステップS15)。通知を受けたCIマスタ61は、スレーブVM63を削除する。 The slave VM63 executes the following processing according to the application program for test execution. The slave VM63 downloads the source code from the repository 101 (step S13), builds a test environment using the downloaded source code, and executes the test (step S14). When the test is completed, the slave VM63 notifies the CI master 61 of the test result (step S15). Upon receiving the notification, the CI master 61 deletes the slave VM63.

なお、スレーブVM63は、リポジトリ101の更新イベントが発生するたびにハイパバイザ62上に作成される。1つのスレーブVM63によるテストの実行中にリポジトリ101が更新されると、別のスレーブVM63が作成されて、リポジトリ101からのダウンロードとテストとが実行される。このため、ハイパバイザ62上では同時に複数のスレーブVM63が動作する場合がある。 The slave VM63 is created on the hypervisor 62 each time an update event of the repository 101 occurs. If the repository 101 is updated during the execution of the test by one slave VM63, another slave VM63 is created and the download and the test from the repository 101 are executed. Therefore, a plurality of slave VM63s may operate on the hypervisor 62 at the same time.

このような構成では、リポジトリ101が更新されるたびに、テストに必要なすべてのソースコードがWAN52を介してリポジトリ101からスレーブVM63にダウンロードされる。このため、ダウンロードされるデータ量が大きく、ダウンロードに長い時間がかかる。その結果、スレーブVM63が起動してからテストを開始するまでに時間がかかり、テストを効率的に実行できない。ダウンロードに時間がかかり過ぎると、スレーブVM63によるテスト環境のビルドがタイムアウトになり、テストを完了できない場合もある。 In such a configuration, every time the repository 101 is updated, all the source code required for testing is downloaded from the repository 101 to the slave VM63 via WAN 52. Therefore, the amount of data to be downloaded is large, and it takes a long time to download. As a result, it takes time from the activation of the slave VM63 to the start of the test, and the test cannot be executed efficiently. If the download takes too long, the build of the test environment by the slave VM63 may time out and the test may not be completed.

さらに、リポジトリ101の更新頻度が高いほど、WAN52を介してダウンロードされるデータ量が多くなり、WAN52のトラフィックが増大化し、WAN52に接続された他の装置による通信速度が悪化する。また、WAN52のトラフィックの増大化により、スレーブVM63によるソースコードのダウンロード時間も長くなり、テストの実行効率はさらに悪化する。 Further, as the update frequency of the repository 101 increases, the amount of data downloaded via the WAN 52 increases, the traffic of the WAN 52 increases, and the communication speed of other devices connected to the WAN 52 deteriorates. Further, due to the increase in the traffic of WAN 52, the download time of the source code by the slave VM63 becomes long, and the test execution efficiency is further deteriorated.

そこで、本実施の形態では、最初にリポジトリ101のソースコード全体がストレージ装置400(図2参照)にコピーされる。それ以後、リポジトリ101が更新されてテスト用のスレーブVMが起動するたびに、リポジトリ101のソースコードのうち更新された差分データだけがストレージ装置400にダウンロードされる。スレーブVMは、最初にストレージ装置400にコピーされたソースコードと、新たにダウンロードされた差分データとに基づいてテストに必要なソースコードをストレージ装置400から読み込み、テストを実行する。このような処理により、テストのためのリポジトリ101からのソースコードのダウンロード量を抑制し、テストを効率的に実行できるようにする。 Therefore, in the present embodiment, the entire source code of the repository 101 is first copied to the storage device 400 (see FIG. 2). After that, every time the repository 101 is updated and the slave VM for testing is started, only the updated difference data in the source code of the repository 101 is downloaded to the storage device 400. The slave VM reads the source code required for the test from the storage device 400 based on the source code first copied to the storage device 400 and the newly downloaded difference data, and executes the test. By such a process, the amount of source code downloaded from the repository 101 for the test is suppressed, and the test can be executed efficiently.

図5は、第2の実施の形態に係る情報処理システムが備える処理機能の構成例を示すブロック図である。
まず、リポジトリサーバ100は、前述のリポジトリ101に加えてリポジトリ管理部110を備える。リポジトリ管理部110の処理は、例えば、リポジトリサーバ100が備える図示しないプロセッサが所定のプログラムを実行することで実現される。
FIG. 5 is a block diagram showing a configuration example of a processing function included in the information processing system according to the second embodiment.
First, the repository server 100 includes a repository management unit 110 in addition to the above-mentioned repository 101. The processing of the repository management unit 110 is realized, for example, by executing a predetermined program by a processor (not shown) included in the repository server 100.

リポジトリ管理部110は、開発者端末501,502,・・・からリポジトリ101の更新指示を受け付けて、リポジトリ101内のソースコードを更新する。また、リポジトリ管理部110は、リポジトリ101の更新イベントが発生したことを管理サーバ200に通知する。例えば、リポジトリ管理部110は、管理サーバ200から更新イベントの発生の有無についての問い合わせを定期的に受け付け、更新イベントが発生した場合にはその旨を返信する。 The repository management unit 110 receives an update instruction for the repository 101 from the developer terminals 501, 502, ..., And updates the source code in the repository 101. In addition, the repository management unit 110 notifies the management server 200 that an update event for the repository 101 has occurred. For example, the repository management unit 110 periodically receives an inquiry from the management server 200 as to whether or not an update event has occurred, and when an update event has occurred, returns to that effect.

さらに、リポジトリ管理部110は、リポジトリ101内のソースコードを送信する機能を備える。例えば、リポジトリ管理部110は、リポジトリ101に格納されたソースコードをすべてに送信することや、リポジトリ101に格納されたデータのうち、過去の特定のバージョンと現在の最新バージョンとの差分データのみを送信することが可能になっている。 Further, the repository management unit 110 has a function of transmitting the source code in the repository 101. For example, the repository management unit 110 transmits the source code stored in the repository 101 to all, and among the data stored in the repository 101, only the difference data between the past specific version and the current latest version is transmitted. It is possible to send.

次に、管理サーバ200は、CIマスタ210、リポジトリコントローラ220および記憶部230を備える。CIマスタ210およびリポジトリコントローラ220の処理は、例えば、管理サーバ200が備えるプロセッサ201が所定のプログラムを実行することで実現される。記憶部230は、例えば、RAM202やHDD203など、管理サーバ200が備える記憶装置の記憶領域として実現される。 Next, the management server 200 includes a CI master 210, a repository controller 220, and a storage unit 230. The processing of the CI master 210 and the repository controller 220 is realized, for example, by the processor 201 included in the management server 200 executing a predetermined program. The storage unit 230 is realized as a storage area of a storage device included in the management server 200, such as a RAM 202 or an HDD 203.

CIマスタ210は、ソースコードのテストジョブの実行を統括的に制御する。例えば、CIマスタ210は、リポジトリ101の更新イベントを監視し、更新イベントを検知すると、テストサーバ300にスレーブVMの作成を指示し、作成されたスレーブVMにテストを実行させる。そして、CIマスタ210は、スレーブVMからテスト結果の通知を受けると、スレーブVMの削除をテストサーバ300に指示する。 The CI master 210 comprehensively controls the execution of the source code test job. For example, the CI master 210 monitors the update event of the repository 101, and when it detects the update event, it instructs the test server 300 to create a slave VM, and causes the created slave VM to execute the test. Then, when the CI master 210 receives the notification of the test result from the slave VM, the CI master 210 instructs the test server 300 to delete the slave VM.

リポジトリコントローラ220は、WAN52を介したリポジトリ101からのソースコードのダウンロードを制御する。例えば、リポジトリコントローラ220は最初に、リポジトリ101のコピーボリュームであるリポジトリコピーをストレージ装置400に作成し、リポジトリ101内の全データをリポジトリコピーにコピーさせる。 The repository controller 220 controls the download of the source code from the repository 101 via the WAN 52. For example, the repository controller 220 first creates a repository copy, which is a copy volume of the repository 101, in the storage device 400, and causes all the data in the repository 101 to be copied to the repository copy.

また、リポジトリコントローラ220は、リポジトリ101の更新イベントに応じて、その時点でのリポジトリのスナップショットボリュームであるリポジトリスナップショットをストレージ装置400に作成する。リポジトリコントローラ220は、リポジトリ101のデータのうち更新データのみをリポジトリ101からストレージ装置400にダウンロードさせ、更新データをリポジトリスナップショットに記憶させる。リポジトリコントローラ220は、リポジトリスナップショットをテストサーバ300上のスレーブVMの仮想ディスクとして割り当てる。これにより、スレーブVMはリポジトリスナップショットからテストに必要なソースコードを取得して、テストを実行する。このとき、更新されたソースコードはリポジトリスナップショットから取得され、残りのソースコードはリポジトリコピーから取得される。これにより、更新データのみリポジトリ101からWAN52を通じてダウンロードするだけで、ソースコードのテストを実行できるようになる。 Further, the repository controller 220 creates a repository snapshot, which is a snapshot volume of the repository at that time, in the storage device 400 in response to the update event of the repository 101. The repository controller 220 downloads only the update data from the repository 101 to the storage device 400 from the repository 101, and stores the update data in the repository snapshot. The repository controller 220 allocates the repository snapshot as a virtual disk for the slave VM on the test server 300. As a result, the slave VM acquires the source code required for the test from the repository snapshot and executes the test. At this time, the updated source code is taken from the repository snapshot, and the rest of the source code is taken from the repository copy. As a result, the source code test can be executed only by downloading the update data from the repository 101 through the WAN 52.

記憶部230は、CIマスタ210やリポジトリコントローラ220の処理で利用される各種のデータを記憶する。例えば、記憶部230は、リポジトリコピーの作成時におけるリポジトリ101内のデータのバージョン番号を記憶する。 The storage unit 230 stores various data used in the processing of the CI master 210 and the repository controller 220. For example, the storage unit 230 stores the version number of the data in the repository 101 at the time of creating the repository copy.

次に、テストサーバ300は、VMを作成してその動作を管理するハイパバイザ310を備える。ハイパバイザ310の処理は、例えば、テストサーバ300が備える図示しないプロセッサが所定のプログラムを実行することで実現される。このハイパバイザ310上で、CIマスタ210のスレーブとして動作するスレーブVMが1台以上動作する。各スレーブVMは、ソースコードのビルドおよびテストを実行するテスト実行部を備える。テスト実行部の処理は、スレーブVM上で所定のアプリケーションプログラムが実行されることで実現される。図5では例として、テスト実行部321a,321bをそれぞれ備えるスレーブVM320a,320bを示している。 Next, the test server 300 includes a hypervisor 310 that creates a VM and manages its operation. The processing of the hypervisor 310 is realized, for example, by executing a predetermined program by a processor (not shown) included in the test server 300. On the hypervisor 310, one or more slave VMs that operate as slaves of the CI master 210 operate. Each slave VM has a test execution unit that executes the build and test of the source code. The processing of the test execution unit is realized by executing a predetermined application program on the slave VM. FIG. 5 shows slave VMs 320a and 320b including test execution units 321a and 321b, respectively, as an example.

また、テストサーバ300は、記憶部330を備えている。記憶部330は、例えば、テストサーバ300が備える図示しない記憶装置の記憶領域として実現される。記憶部330は、テストサーバ300の処理で利用される各種のデータを記憶する。例えば、記憶部330は、スレーブVMを作成するためのVMイメージを記憶する。この場合、ハイパバイザ310によりVMイメージがテストサーバ300のメモリに展開されることでスレーブVMが作成される。また、スレーブVMには、テスト実行部の処理を実現するためのアプリケーションプログラムがインストールされている。 Further, the test server 300 includes a storage unit 330. The storage unit 330 is realized, for example, as a storage area of a storage device (not shown) included in the test server 300. The storage unit 330 stores various data used in the processing of the test server 300. For example, the storage unit 330 stores a VM image for creating a slave VM. In this case, the hypervisor 310 expands the VM image into the memory of the test server 300 to create a slave VM. In addition, an application program for realizing the processing of the test execution unit is installed in the slave VM.

次に、ストレージ装置400は、コピー制御部410と記憶部420を備える。コピー制御部410の処理は、例えば、ストレージ装置400のコントローラ401が備える図示しないプロセッサが所定のプログラムを実行することで実現される。記憶部420は、例えば、コントローラ401が備える図示しない記憶装置の記憶領域として実現される。 Next, the storage device 400 includes a copy control unit 410 and a storage unit 420. The processing of the copy control unit 410 is realized, for example, by executing a predetermined program by a processor (not shown) included in the controller 401 of the storage device 400. The storage unit 420 is realized, for example, as a storage area of a storage device (not shown) included in the controller 401.

コピー制御部410は、前述のリポジトリコピーやリポジトリスナップショットなどの論理ボリュームの管理や、論理ボリュームに対するアクセスの制御を行う。記憶部420は、コピー制御部410の処理で利用される各種のデータを記憶する。例えば、記憶部420は、リポジトリコピー内の論理ブロックとリポジトリコピーに格納されるデータとの対応関係を示す管理データや、リポジトリスナップショットに格納される、リポジトリコピーとの間の差分データを管理する管理データを記憶する。 The copy control unit 410 manages logical volumes such as the above-mentioned repository copy and repository snapshot, and controls access to the logical volume. The storage unit 420 stores various data used in the processing of the copy control unit 410. For example, the storage unit 420 manages management data indicating the correspondence between the logical block in the repository copy and the data stored in the repository copy, and the difference data between the logical block in the repository copy and the repository copy stored in the repository snapshot. Store management data.

次に、第2の実施の形態におけるテストジョブの実行制御について説明する。
図6は、テストジョブの実行制御例を示す第1の図である。また、図7は、テストジョブの実行制御例を示す第2の図である。
Next, the execution control of the test job in the second embodiment will be described.
FIG. 6 is a first diagram showing an example of execution control of a test job. Further, FIG. 7 is a second diagram showing an example of execution control of a test job.

管理サーバ200のCIマスタ210は、リポジトリ101の更新イベントを監視する。そして、図6に示すように、CIマスタ210がリポジトリ101の更新イベントの発生を検知すると(ステップS21)、テストジョブが開始される。 The CI master 210 of the management server 200 monitors the update event of the repository 101. Then, as shown in FIG. 6, when the CI master 210 detects the occurrence of the update event of the repository 101 (step S21), the test job is started.

図6の例では、リポジトリ101に対応するリポジトリコピー431がストレージ装置400に作成されていない。この場合、管理サーバ200のリポジトリコントローラ220は、リポジトリコピー431の作成をストレージ装置400のコントローラ401に指示する(ステップS22)。コントローラ401は、指示に応じてリポジトリコピー431を作成する。リポジトリコピー431は、リポジトリ101のコピーデータを保持するための記憶領域(コピーボリューム)であり、ストレージ装置400のストレージ402の記憶領域を用いた論理ボリュームとして作成される。 In the example of FIG. 6, the repository copy 431 corresponding to the repository 101 is not created in the storage device 400. In this case, the repository controller 220 of the management server 200 instructs the controller 401 of the storage device 400 to create the repository copy 431 (step S22). The controller 401 creates the repository copy 431 in response to the instruction. The repository copy 431 is a storage area (copy volume) for holding the copy data of the repository 101, and is created as a logical volume using the storage area of the storage 402 of the storage device 400.

リポジトリコントローラ220は、リポジトリ101の全データをストレージ装置400に送信するようにリポジトリサーバ100のリポジトリ管理部110に指示する。リポジトリ管理部110は、指示に応じてリポジトリ101の全データをストレージ装置400に送信する。これにより、リポジトリコピー431に対するリポジトリ101のフルコピーが行われる(ステップS23)。リポジトリコピー431は、リポジトリ101内の全データを実体的に保持するフルバックアップボリュームとなる。なお、リポジトリ101の全データはリポジトリコントローラ220を介してストレージ装置400に送信されてもよい。 The repository controller 220 instructs the repository management unit 110 of the repository server 100 to transmit all the data of the repository 101 to the storage device 400. The repository management unit 110 transmits all the data of the repository 101 to the storage device 400 in response to the instruction. As a result, the full copy of the repository 101 with respect to the repository copy 431 is performed (step S23). The repository copy 431 is a full backup volume that substantially holds all the data in the repository 101. All the data in the repository 101 may be transmitted to the storage device 400 via the repository controller 220.

また、ストレージ装置400のコントローラ401はフルコピーの際に、リポジトリコピー431に対応するボリューム管理データ431aを作成して、記憶部420に格納する。ボリューム管理データ431aには、例えば、リポジトリ101内の各ファイルと、リポジトリコピー431のボリューム上の論理アドレスとの対応関係を示す情報が登録される。また、CIマスタ210は、リポジトリコピー431に記憶された、リポジトリ101内のデータのバージョン番号を、記憶部230に記録する。このバージョン番号は、リポジトリ101が更新されるたびにインクリメントされる通し番号(コミット番号)である。 Further, the controller 401 of the storage device 400 creates the volume management data 431a corresponding to the repository copy 431 at the time of full copy and stores it in the storage unit 420. In the volume management data 431a, for example, information indicating the correspondence between each file in the repository 101 and the logical address on the volume of the repository copy 431 is registered. Further, the CI master 210 records the version number of the data in the repository 101 stored in the repository copy 431 in the storage unit 230. This version number is a serial number (commit number) that is incremented each time the repository 101 is updated.

次に、図7に示すように、CIマスタ210は、スレーブVMの作成をテストサーバ300に指示する(ステップS24)。テストサーバ300のハイパバイザ310は、記憶部330に記憶されたVMイメージを用いてスレーブVM(ここでは「スレーブVM320a」とする)を作成し、その動作を開始させる。 Next, as shown in FIG. 7, the CI master 210 instructs the test server 300 to create the slave VM (step S24). The hypervisor 310 of the test server 300 creates a slave VM (here, referred to as “slave VM320a”) using the VM image stored in the storage unit 330, and starts its operation.

続いて、リポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する(ステップS25)。リポジトリスナップショットとは、その時点におけるリポジトリ101の記憶データを論理的に記憶する論理ボリュームである。この論理ボリュームは、リポジトリコピー431と同じ論理アドレス空間を備えている。また、リポジトリスナップショットは、その時点でのリポジトリ101のデータのうち、リポジトリコピー431との差分データだけを実体的に記憶し、残りのデータについてはリポジトリコピー431を参照するように形成された論理ボリュームである。換言すると、リポジトリスナップショットは、フルバックアップボリュームであるリポジトリコピー431との差分のみを実データとして保持する、リポジトリ101の差分バックアップボリュームである。したがって、その時点におけるリポジトリ101とリポジトリコピー431との間にデータの差分がある場合、その差分データだけがリポジトリ101からWAN52を介してストレージ装置400にダウンロードされる。 Subsequently, the repository controller 220 instructs the storage device 400 to create the repository snapshot (step S25). The repository snapshot is a logical volume that logically stores the storage data of the repository 101 at that time. This logical volume has the same logical address space as the repository copy 431. Further, the repository snapshot is a logic formed so as to substantially store only the difference data from the repository copy 431 among the data of the repository 101 at that time, and to refer to the repository copy 431 for the remaining data. It is a volume. In other words, the repository snapshot is the differential backup volume of the repository 101 that holds only the difference from the repository copy 431, which is the full backup volume, as actual data. Therefore, if there is a data difference between the repository 101 and the repository copy 431 at that time, only the difference data is downloaded from the repository 101 to the storage device 400 via the WAN 52.

図7の例では、ストレージ装置400にリポジトリスナップショット441が作成されたとする。図7のケースではリポジトリ101とリポジトリコピー431との間にデータの差分がないので、リポジトリ101からの差分データのダウンロードは行われない。この場合、ストレージ装置400では、例えば、リポジトリスナップショット441の各論理ブロックに対応するビットを有するビットマップ441aが作成されて記憶部420に格納される。ビットマップ441aの各ビットには、差分データが存在しないことを示すビット値「0」がセットされる。 In the example of FIG. 7, it is assumed that the repository snapshot 441 is created in the storage device 400. In the case of FIG. 7, since there is no data difference between the repository 101 and the repository copy 431, the difference data is not downloaded from the repository 101. In this case, in the storage device 400, for example, a bitmap 441a having bits corresponding to each logical block of the repository snapshot 441 is created and stored in the storage unit 420. A bit value "0" indicating that there is no difference data is set in each bit of the bitmap 441a.

次に、リポジトリコントローラ220は、作成されたリポジトリスナップショット441を、仮想ディスクとしてスレーブVM320aに割り当てる(ステップS26)。そして、CIマスタ210は、スレーブVM320aのテスト実行部321a(図5参照)にテストを開始させる。テスト実行部321aは、リポジトリスナップショット441からソースコードを読み込む。このとき、実体的にはリポジトリコピー431からソースコードが読み込まれる。テスト実行部321aは、読み込んだソースコードを用いてテスト環境のビルドを行う(ステップS27)。このビルドでは、例えば、読み込んだソースコードが統合される。また、統合されたソースコードを実行プログラムに変換する処理(コンパイル)が行われてもよい。続いて、テスト実行部321aは、ビルドが行われたソースコードのテストを実行する(ステップS28)。例えば、ソースコードの静的解析によりバグの発見や修正などが行われる。 Next, the repository controller 220 allocates the created repository snapshot 441 as a virtual disk to the slave VM320a (step S26). Then, the CI master 210 causes the test execution unit 321a (see FIG. 5) of the slave VM320a to start the test. The test execution unit 321a reads the source code from the repository snapshot 441. At this time, the source code is actually read from the repository copy 431. The test execution unit 321a builds the test environment using the read source code (step S27). In this build, for example, the loaded source code is integrated. Further, a process (compilation) of converting the integrated source code into an execution program may be performed. Subsequently, the test execution unit 321a executes a test of the built source code (step S28). For example, static analysis of source code finds and fixes bugs.

図示しないが、テストが終了すると、テスト実行部321aは、テスト結果をCIマスタ210に通知する。このとき、詳細なテスト結果の内容(ログなど)が、LAN51に接続された図示しないログサーバに格納されてもよい。CIマスタ210は、テスト結果の通知を受けると、スレーブVM320aを削除するようにテストサーバ300に指示するとともに、リポジトリスナップショット441を削除するようにストレージ装置400に指示する。これにより、スレーブVM320aおよびリポジトリスナップショット441が削除されて、テストジョブの実行が完了する。 Although not shown, when the test is completed, the test execution unit 321a notifies the CI master 210 of the test result. At this time, the contents of the detailed test result (log, etc.) may be stored in a log server (not shown) connected to the LAN 51. Upon receiving the notification of the test result, the CI master 210 instructs the test server 300 to delete the slave VM320a, and also instructs the storage device 400 to delete the repository snapshot 441. As a result, the slave VM320a and the repository snapshot 441 are deleted, and the execution of the test job is completed.

次に、図8は、テストジョブの実行制御例を示す第3の図である。また、図9は、テストジョブの実行制御例を示す第4の図である。
図8では、図6、図7の処理が実行された後に、CIマスタ210が再度、リポジトリ101の更新イベントの発生を検知したとする(ステップS31)。このとき、ストレージ装置400においてリポジトリコピー431はすでに作成されている。この場合、CIマスタ210は、スレーブVMの作成をテストサーバ300に指示する(ステップS32)。テストサーバ300のハイパバイザ310は、スレーブVM(ここでは「スレーブVM320b」とする)を作成し、その動作を開始させる。
Next, FIG. 8 is a third diagram showing an example of execution control of the test job. Further, FIG. 9 is a fourth diagram showing an example of execution control of a test job.
In FIG. 8, it is assumed that the CI master 210 detects the occurrence of the update event of the repository 101 again after the processes of FIGS. 6 and 7 are executed (step S31). At this time, the repository copy 431 has already been created in the storage device 400. In this case, the CI master 210 instructs the test server 300 to create the slave VM (step S32). The hypervisor 310 of the test server 300 creates a slave VM (here, referred to as "slave VM320b") and starts its operation.

続いて、リポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する(ステップS33)。ストレージ装置400のコントローラ401は、リポジトリスナップショット(ここでは「リポジトリスナップショット442」とする)を作成する。また、コントローラ401は、リポジトリスナップショット442の管理データとしてビットマップ442aを作成し、記憶部420に格納する。この時点では、ビットマップ442aの各ビットのビット値は「0」にセットされている。 Subsequently, the repository controller 220 instructs the storage device 400 to create the repository snapshot (step S33). The controller 401 of the storage device 400 creates a repository snapshot (here, referred to as “repository snapshot 442”). Further, the controller 401 creates a bitmap 442a as the management data of the repository snapshot 442 and stores it in the storage unit 420. At this point, the bit value of each bit of the bitmap 442a is set to "0".

次に、リポジトリコントローラ220は、作成されたリポジトリスナップショット442を、仮想ディスクとしてスレーブVM320bに割り当てる(ステップS34)。そして、リポジトリコントローラ220は、現在のリポジトリ101とリポジトリコピー431との間にデータの差分があるかを判定する。この判定では、リポジトリコントローラ220は例えば、ステップS31で更新を検知した際にリポジトリ管理部110から取得した、現在のリポジトリ101内のデータのバージョン番号と、記憶部230に記憶されている、リポジトリコピー431内のデータのバージョン番号とを比較する。これらのバージョン番号が異なる場合、データの差分があると判定される。 Next, the repository controller 220 allocates the created repository snapshot 442 as a virtual disk to the slave VM320b (step S34). Then, the repository controller 220 determines whether there is a data difference between the current repository 101 and the repository copy 431. In this determination, for example, the repository controller 220 has the version number of the data in the current repository 101 acquired from the repository management unit 110 when the update is detected in step S31, and the repository copy stored in the storage unit 230. Compare with the version number of the data in 431. If these version numbers are different, it is determined that there is a data difference.

図8の例では、データの差分があると判定される。この場合、図9に示すように、リポジトリコントローラ220は、リポジトリコピー431内のデータのバージョン番号をリポジトリサーバ100に通知して、通知したバージョン番号と現在のバージョン番号との間の差分データの送信を要求する(ステップS35)。リポジトリサーバ100のリポジトリ管理部110は、指示に応じて差分データをリポジトリ101から読み出し、ストレージ装置400に送信する。これにより、ストレージ装置400に対する差分データのダウンロードが行われる(ステップS36)。なお、差分データはリポジトリコントローラ220を介してストレージ装置400に送信されてもよい。 In the example of FIG. 8, it is determined that there is a difference in data. In this case, as shown in FIG. 9, the repository controller 220 notifies the repository server 100 of the version number of the data in the repository copy 431, and transmits the difference data between the notified version number and the current version number. (Step S35). The repository management unit 110 of the repository server 100 reads the difference data from the repository 101 in response to an instruction and transmits the difference data to the storage device 400. As a result, the difference data is downloaded to the storage device 400 (step S36). The difference data may be transmitted to the storage device 400 via the repository controller 220.

ストレージ装置400のコントローラ401は、リポジトリコントローラ220からの指示に基づき、送信された差分データをリポジトリスナップショット442に格納する。このとき例えば、送信される差分データ(差分のファイル)には、ソフトウェアコンポーネントの識別番号とファイル名とが付与されている。コントローラ401は、ボリューム管理データ431aを参照して、リポジトリスナップショット442の論理ブロックのうち、差分データを格納する論理ブロックを判定し、判定した論理ブロックに差分データを格納する。具体的には、コントローラ401は、該当論理ブロックに対応する物理領域に差分データを格納するとともに、ビットマップ442aにおける該当論理ブロックに対応するビットの値を「1」に更新する。 The controller 401 of the storage device 400 stores the transmitted difference data in the repository snapshot 442 based on the instruction from the repository controller 220. At this time, for example, the difference data (difference file) to be transmitted is given an identification number and a file name of the software component. The controller 401 refers to the volume management data 431a, determines the logical block for storing the difference data among the logical blocks of the repository snapshot 442, and stores the difference data in the determined logical block. Specifically, the controller 401 stores the difference data in the physical area corresponding to the corresponding logical block, and updates the value of the bit corresponding to the corresponding logical block in the bitmap 442a to “1”.

このようにして、リポジトリスナップショット442に差分データが反映される。リポジトリスナップショット442は、現在のリポジトリ101のデータのうち、リポジトリコピー431との差分データだけを実体的に記憶し、残りのデータについてはリポジトリコピー431を参照するように形成された論理ボリュームとなっている。また、リポジトリコピー431は過去の世代におけるリポジトリ101のフルバックアップボリュームであり、これに対してリポジトリスナップショット442は、現世代におけるリポジトリ101の差分バックアップボリュームである。 In this way, the difference data is reflected in the repository snapshot 442. The repository snapshot 442 is a logical volume formed so as to substantially store only the difference data from the repository copy 431 among the data of the current repository 101 and refer to the repository copy 431 for the remaining data. ing. Further, the repository copy 431 is a full backup volume of the repository 101 in the past generation, whereas the repository snapshot 442 is a differential backup volume of the repository 101 in the current generation.

以上のようにリポジトリスナップショット442に差分データが反映されると、CIマスタ210は、スレーブVM320bのテスト実行部321b(図5参照)にテストを開始させる。テスト実行部321bは、リポジトリスナップショット442からソースコードを読み込む。このとき、ストレージ装置400のコントローラ401は、リポジトリスナップショット442のデータのうち、ビットマップ442aの対応するビット値が「0」のブロックのデータをリポジトリコピー431から読み出してテスト実行部321bに出力する。また、コントローラ401は、リポジトリスナップショット442のデータのうち、ビットマップ442aの対応するビット値が「1」のブロックのデータを、リポジトリスナップショット442の物理領域から読み出してテスト実行部321bに出力する。 When the difference data is reflected in the repository snapshot 442 as described above, the CI master 210 causes the test execution unit 321b (see FIG. 5) of the slave VM320b to start the test. The test execution unit 321b reads the source code from the repository snapshot 442. At this time, the controller 401 of the storage device 400 reads the data of the block in which the corresponding bit value of the bitmap 442a is "0" from the data of the repository snapshot 442 from the repository copy 431 and outputs the data to the test execution unit 321b. .. Further, the controller 401 reads the data of the block whose bit value of the bitmap 442a corresponds to "1" from the data of the repository snapshot 442 from the physical area of the repository snapshot 442 and outputs the data to the test execution unit 321b. ..

テスト実行部321bは、読み込んだソースコードを用いてテスト環境のビルドを行い(ステップS37)、ビルドが行われたソースコードのテストを実行する(ステップS38)。また、図示しないが、テストが終了すると、テスト実行部321aは、テスト結果をCIマスタ210に通知する。この通知に応じて、スレーブVM320bおよびリポジトリスナップショット442が削除されて、テストジョブの実行が完了する。 The test execution unit 321b builds the test environment using the read source code (step S37), and executes the test of the built source code (step S38). Further, although not shown, when the test is completed, the test execution unit 321a notifies the CI master 210 of the test result. In response to this notification, the slave VM320b and repository snapshot 442 are deleted, and the execution of the test job is completed.

以上の図8、図9の例のように、本実施の形態では、2回目以降のリポジトリ101の更新時には、その時点でのリポジトリ101とリポジトリコピー431との差分データのみが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる。これにより、ソースコードのダウンロード量を削減でき、そのダウンロードにかかる時間を短縮できる。その結果、リポジトリ101の更新発生からスレーブVMによるビルドおよびテストの開始までの時間を短縮でき、テストの実行を効率化できるとともに、テストを正しく完了できる可能性が高められる。 As in the examples of FIGS. 8 and 9 described above, in the present embodiment, when the repository 101 is updated for the second time or later, only the difference data between the repository 101 and the repository copy 431 at that time is transmitted via the WAN 52. It is downloaded from the repository 101 to the storage device 400. As a result, the amount of source code downloaded can be reduced, and the time required for the download can be shortened. As a result, the time from the update occurrence of the repository 101 to the start of build and test by the slave VM can be shortened, the test execution can be made more efficient, and the possibility that the test can be completed correctly is increased.

また、次の図10、図11に示すように、スレーブVMおよびリポジトリスナップショットは、リポジトリ101の更新イベントが検知されるたびに個別に作成される。
図10は、スレーブVMおよびリポジトリスナップショットの第1の作成例を示す図である。また、図11は、スレーブVMおよびリポジトリスナップショットの第2の作成例を示す図である。
Further, as shown in FIGS. 10 and 11 below, the slave VM and the repository snapshot are individually created each time an update event of the repository 101 is detected.
FIG. 10 is a diagram showing a first example of creating a slave VM and a repository snapshot. Further, FIG. 11 is a diagram showing a second creation example of the slave VM and the repository snapshot.

図10では、ある時点においてリポジトリ101の更新イベントが発生し、テストサーバ300においてスレーブVM320cが作成され、ストレージ装置400においてリポジトリスナップショット443が作成されたとする。この場合、リポジトリスナップショット443は仮想ディスクとしてスレーブVM320cに割り当てられる。また、ストレージ装置400ではリポジトリスナップショット443に対応するビットマップ443aが作成される。 In FIG. 10, it is assumed that the update event of the repository 101 occurs at a certain point in time, the slave VM320c is created in the test server 300, and the repository snapshot 443 is created in the storage device 400. In this case, the repository snapshot 443 is assigned to the slave VM320c as a virtual disk. Further, in the storage device 400, a bitmap 443a corresponding to the repository snapshot 443 is created.

そして、リポジトリコントローラ220の制御により、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる(ステップS41)。差分データはリポジトリスナップショット443における格納先論理ブロックに対応する物理領域に格納され、ビットマップ443aにおける該当論理ブロックに対応するビットの値が「1」に更新される。これにより、リポジトリスナップショット443に差分データが反映される。以上の処理が完了すると、スレーブVM320cは、リポジトリスナップショット443からソースコードを読み込み、テスト環境をビルドし(ステップS42)、テストを実行する(ステップS43)。 Then, under the control of the repository controller 220, the difference data between the repository 101 and the repository copy 431 at that time is downloaded from the repository 101 to the storage device 400 via the WAN 52 (step S41). The difference data is stored in the physical area corresponding to the storage destination logical block in the repository snapshot 443, and the value of the bit corresponding to the corresponding logical block in the bitmap 443a is updated to "1". As a result, the difference data is reflected in the repository snapshot 443. When the above processing is completed, the slave VM320c reads the source code from the repository snapshot 443, builds the test environment (step S42), and executes the test (step S43).

ここで、スレーブVM320cによるテストの実行中にリポジトリ101の更新イベントが再度発生したとする。この場合、図11に示すように、テストサーバ300においてスレーブVM320dが作成され、ストレージ装置400においてリポジトリスナップショット444が作成される。リポジトリスナップショット444は、仮想ディスクとしてスレーブVM320dに割り当てられる。ストレージ装置400では、リポジトリスナップショット444に対応するビットマップ444aが作成される。 Here, it is assumed that the update event of the repository 101 occurs again during the execution of the test by the slave VM320c. In this case, as shown in FIG. 11, the slave VM320d is created in the test server 300, and the repository snapshot 444 is created in the storage device 400. The repository snapshot 444 is assigned to the slave VM320d as a virtual disk. In the storage device 400, a bitmap 444a corresponding to the repository snapshot 444 is created.

そして、リポジトリコントローラ220の制御により、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる(ステップS51)。差分データはリポジトリスナップショット444における格納先論理ブロックに対応する物理領域に格納され、ビットマップ444aにおける該当論理ブロックに対応するビットの値が「1」に更新される。これにより、リポジトリスナップショット444に差分データが反映される。以上の処理が完了すると、スレーブVM320dは、リポジトリスナップショット444からソースコードを読み込み、テスト環境をビルドし(ステップS52)、テストを実行する(ステップS53)。 Then, under the control of the repository controller 220, the difference data between the repository 101 and the repository copy 431 at that time is downloaded from the repository 101 to the storage device 400 via the WAN 52 (step S51). The difference data is stored in the physical area corresponding to the storage destination logical block in the repository snapshot 444, and the value of the bit corresponding to the corresponding logical block in the bitmap 444a is updated to "1". As a result, the difference data is reflected in the repository snapshot 444. When the above processing is completed, the slave VM320d reads the source code from the repository snapshot 444, builds the test environment (step S52), and executes the test (step S53).

このように、スレーブVMと、これに対応するリポジトリスナップショットは、リポジトリ101の更新イベントが検知されるたびに個別に作成される。各リポジトリスナップショットには、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが個別に反映される。そして、各スレーブVMは、対応するリポジトリスナップショットからソースコードを読み込むことで、その時点でテストに必要なソースコードを確実かつ簡単に取得できる。すなわち、本実施の形態によれば、WAN52を介したソースコードのダウンロード量を抑制しながらも、リポジトリ101の更新が発生するたびに、その時点での最新のソースコードを用いて確実にテストを行うことができるようになる。 In this way, the slave VM and the corresponding repository snapshot are created individually each time an update event in the repository 101 is detected. The difference data between the repository 101 and the repository copy 431 at that time is individually reflected in each repository snapshot. Then, each slave VM can reliably and easily obtain the source code required for testing at that time by reading the source code from the corresponding repository snapshot. That is, according to the present embodiment, while suppressing the download amount of the source code via WAN 52, every time the repository 101 is updated, the test is surely performed using the latest source code at that time. You will be able to do it.

なお、リポジトリコピー431を過去の世代におけるリポジトリ101のフルバックアップボリュームと見なすと、リポジトリスナップショット443を、その後のある世代におけるリポジトリ101の差分バックアップボリュームと見なすことができる。また、リポジトリスナップショット444を、さらに後のある世代におけるリポジトリ101の差分バックアップボリュームと見なすことができる。ただしこの場合、リポジトリスナップショット443,444のいずれも、リポジトリコピー431の世代を基準とした差分バックアップボリュームとなる。 If the repository copy 431 is regarded as the full backup volume of the repository 101 in the past generation, the repository snapshot 443 can be regarded as the differential backup volume of the repository 101 in the subsequent generation. Also, the repository snapshot 444 can be regarded as the differential backup volume of the repository 101 in a later generation. However, in this case, all of the repository snapshots 443 and 444 are differential backup volumes based on the generation of the repository copy 431.

次に、テストジョブの実行時における処理についてシーケンス図を用いて説明する。
図12、図13は、テストジョブの実行時における処理手順の例を示すシーケンス図である。
Next, the processing at the time of executing the test job will be described using a sequence diagram.
12 and 13 are sequence diagrams showing an example of a processing procedure at the time of executing a test job.

[ステップS101]管理サーバ200のCIマスタ210は、リポジトリ101の更新イベントを監視する。そして、CIマスタ210がリポジトリ101の更新イベントの発生を検知すると、処理がステップS102に進められる。なお、CIマスタ210は、更新イベントの発生を検知した際、現在の(すなわち更新後の)リポジトリ101内のデータのバージョン番号を、リポジトリサーバ100のリポジトリ管理部110から取得する。 [Step S101] The CI master 210 of the management server 200 monitors the update event of the repository 101. Then, when the CI master 210 detects the occurrence of the update event of the repository 101, the process proceeds to step S102. When the CI master 210 detects the occurrence of an update event, it acquires the version number of the data in the current (that is, after update) repository 101 from the repository management unit 110 of the repository server 100.

[ステップS102]管理サーバ200のリポジトリコントローラ220は、ストレージ装置400にリポジトリコピー431が存在するかを判定する。リポジトリコピー431が存在しない場合、処理はステップS103に進められ、リポジトリコピー431が存在する場合、処理はステップS107に進められる。 [Step S102] The repository controller 220 of the management server 200 determines whether the repository copy 431 exists in the storage device 400. If the repository copy 431 does not exist, the process proceeds to step S103, and if the repository copy 431 exists, the process proceeds to step S107.

[ステップS103]リポジトリコントローラ220は、リポジトリコピー431の作成をストレージ装置400に指示する。また、リポジトリコントローラ220は、ステップS101で取得した、リポジトリ101内のデータのバージョン番号を、作成されるリポジトリコピー431内のデータのバージョン番号として記憶部230に記録する。 [Step S103] The repository controller 220 instructs the storage device 400 to create the repository copy 431. Further, the repository controller 220 records the version number of the data in the repository 101 acquired in step S101 in the storage unit 230 as the version number of the data in the created repository copy 431.

[ステップS104]ストレージ装置400のコントローラ401は、リポジトリコピー431を作成する。前述のように、リポジトリコピー431は、ストレージ装置400のストレージ402の記憶領域を用いた論理ボリュームとして作成される。また、このときコントローラ401は、リポジトリコピー431に対応するボリューム管理データを作成して記憶部420に格納する。 [Step S104] The controller 401 of the storage device 400 creates the repository copy 431. As described above, the repository copy 431 is created as a logical volume using the storage area of the storage 402 of the storage device 400. At this time, the controller 401 creates the volume management data corresponding to the repository copy 431 and stores it in the storage unit 420.

[ステップS105]管理サーバ200のリポジトリコントローラ220は、リポジトリ101の全データをストレージ装置400に送信するようにリポジトリサーバ100に指示する。図示しないが、リポジトリサーバ100のリポジトリ管理部110は、リポジトリ101の全データをストレージ装置400に送信する。なお、他の例として、リポジトリ101の全データは管理サーバ200に送信され、管理サーバ200のリポジトリコントローラ220からLAN51を介してストレージ装置400に転送されてもよい。 [Step S105] The repository controller 220 of the management server 200 instructs the repository server 100 to transmit all the data of the repository 101 to the storage device 400. Although not shown, the repository management unit 110 of the repository server 100 transmits all the data of the repository 101 to the storage device 400. As another example, all the data of the repository 101 may be transmitted to the management server 200 and transferred from the repository controller 220 of the management server 200 to the storage device 400 via the LAN 51.

[ステップS106]ストレージ装置400のコントローラ401は、送信されたリポジトリ101の全データをリポジトリコピー431に格納する。このとき、コントローラ401は、リポジトリ101内の各ファイルとリポジトリコピー431のボリューム上の論理アドレスとの対応関係を示す情報を、リポジトリコピー431に対応するボリューム管理データに書き込む。 [Step S106] The controller 401 of the storage device 400 stores all the transmitted data of the repository 101 in the repository copy 431. At this time, the controller 401 writes information indicating the correspondence between each file in the repository 101 and the logical address on the volume of the repository copy 431 to the volume management data corresponding to the repository copy 431.

[ステップS107]管理サーバ200のCIマスタ210は、スレーブVMの作成をテストサーバ300に指示する。
[ステップS108]テストサーバ300のハイパバイザ310は、記憶部330に記憶されたVMイメージを用いてスレーブVMを作成し、その動作を開始させる。これにより、ハイパバイザ310でスレーブVMが起動し、そのスレーブVMがテスト用のアプリケーションを実行することにより、スレーブVM上でテスト実行部が動作する。
[Step S107] The CI master 210 of the management server 200 instructs the test server 300 to create a slave VM.
[Step S108] The hypervisor 310 of the test server 300 creates a slave VM using the VM image stored in the storage unit 330, and starts its operation. As a result, the slave VM is activated by the hypervisor 310, and the slave VM executes the test application, so that the test execution unit operates on the slave VM.

[ステップS109]管理サーバ200のリポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する。
[ステップS110]ストレージ装置400のコントローラ401は、リポジトリスナップショットを作成する。前述のように、リポジトリスナップショットは、リポジトリコピー431と同じ論理アドレス空間を備えた論理ボリュームである。ステップS110において、コントローラ401は、実体的にはリポジトリスナップショットに対応するビットマップを作成し、記憶部420に格納する。ビットマップは、リポジトリスナップショット内の各論理ブロックに対応するビットを備え、この時点では各ビットの値として「0」が設定される。
[Step S109] The repository controller 220 of the management server 200 instructs the storage device 400 to create a repository snapshot.
[Step S110] The controller 401 of the storage device 400 creates a repository snapshot. As mentioned above, the repository snapshot is a logical volume with the same logical address space as the repository copy 431. In step S110, the controller 401 substantially creates a bitmap corresponding to the repository snapshot and stores it in the storage unit 420. The bitmap includes bits corresponding to each logical block in the repository snapshot, and at this point, "0" is set as the value of each bit.

[ステップS111]管理サーバ200のCIマスタ210は、ステップS110で作成されたリポジトリスナップショットをステップS108で起動したスレーブVMの仮想ディスクとして割り当てるようにテストサーバ300に指示する。 [Step S111] The CI master 210 of the management server 200 instructs the test server 300 to allocate the repository snapshot created in step S110 as a virtual disk of the slave VM started in step S108.

[ステップS112]テストサーバ300のハイパバイザ310は、ステップS110で作成されたリポジトリスナップショットをステップS108で起動したスレーブVMの仮想ディスクとして割り当てる。 [Step S112] The hypervisor 310 of the test server 300 allocates the repository snapshot created in step S110 as the virtual disk of the slave VM started in step S108.

以下、図13を用いて説明を続ける。
[ステップS113]管理サーバ200のリポジトリコントローラ220は、現在のリポジトリ101とリポジトリコピー431との間にデータの差分があるかを判定する。この判定では、リポジトリコントローラ220は例えば、ステップS101で取得した、現在のリポジトリ101内のデータのバージョン番号と、記憶部230に記録された、リポジトリコピー431内のデータのバージョン番号とを比較する。これらのバージョン番号が異なる場合、データの差分があると判定される。
Hereinafter, the description will be continued with reference to FIG.
[Step S113] The repository controller 220 of the management server 200 determines whether there is a data difference between the current repository 101 and the repository copy 431. In this determination, the repository controller 220 compares, for example, the version number of the data in the current repository 101 acquired in step S101 with the version number of the data in the repository copy 431 recorded in the storage unit 230. If these version numbers are different, it is determined that there is a data difference.

データの差分がある場合、処理はステップS114に進められ、データの差分がない場合、処理はステップS116に進められる。なお、ステップS102でリポジトリコピー431が存在しないと判定された場合、データの差分は存在しない。このため、ステップS113の判定は、ステップS102でリポジトリコピー431が存在したか否かによって行われてもよい。 If there is a data difference, the process proceeds to step S114, and if there is no data difference, the process proceeds to step S116. If it is determined in step S102 that the repository copy 431 does not exist, there is no data difference. Therefore, the determination in step S113 may be performed depending on whether or not the repository copy 431 exists in step S102.

[ステップS114]リポジトリコントローラ220は、リポジトリコピー431内のデータのバージョン番号をリポジトリサーバ100に通知して、通知したバージョン番号と現在のバージョン番号との間の差分データをストレージ装置400に送信するように要求する。リポジトリサーバ100のリポジトリ管理部110は、指示に応じて差分データをリポジトリ101から読み出し、WAN52を介してストレージ装置400に送信する。なお、他の例として、差分データは管理サーバ200に送信され、管理サーバ200のリポジトリコントローラ220からLAN51を介してストレージ装置400に転送されてもよい。 [Step S114] The repository controller 220 notifies the repository server 100 of the version number of the data in the repository copy 431, and transmits the difference data between the notified version number and the current version number to the storage device 400. Request to. The repository management unit 110 of the repository server 100 reads the difference data from the repository 101 in response to an instruction, and transmits the difference data to the storage device 400 via the WAN 52. As another example, the difference data may be transmitted to the management server 200 and transferred from the repository controller 220 of the management server 200 to the storage device 400 via the LAN 51.

[ステップS115]ストレージ装置400のコントローラ401は、送信された差分データを受信し、リポジトリスナップショットに反映する。このとき例えば、受信した差分データ(差分のファイル)には、ソフトウェアコンポーネントの識別番号とファイル名とが付与されている。コントローラ401は、ボリューム管理データ431aを参照して、リポジトリスナップショットの論理ブロックのうち、差分データを格納する論理ブロックを特定し、特定した論理ブロックに対応する物理領域に差分データを格納する。そして、コントローラ401は、リポジトリスナップショットに対応するビットマップを参照し、ビットマップにおける該当論理ブロックに対応するビットの値を「1」に更新する。 [Step S115] The controller 401 of the storage device 400 receives the transmitted difference data and reflects it in the repository snapshot. At this time, for example, the received difference data (difference file) is given an identification number and a file name of the software component. The controller 401 refers to the volume management data 431a, identifies the logical block for storing the difference data among the logical blocks of the repository snapshot, and stores the difference data in the physical area corresponding to the specified logical block. Then, the controller 401 refers to the bitmap corresponding to the repository snapshot, and updates the value of the bit corresponding to the corresponding logical block in the bitmap to "1".

[ステップS116]管理サーバ200のCIマスタ210は、ステップS108で起動したスレーブVMに対してテストの開始を指示する。
[ステップS117]テストサーバ300のスレーブVMは、仮想ディスクとして割り当てられ、ステップS115で差分データが反映されたリポジトリスナップショットから、ソースコードを読み込む。このとき、ストレージ装置400のコントローラ401は、リポジトリスナップショットのデータのうち、ビットマップの対応するビット値が「0」の論理ブロックのデータをリポジトリコピー431から読み出してスレーブVMに出力する。また、コントローラ401は、リポジトリスナップショットのデータのうち、ビットマップの対応するビット値が「1」の論理ブロックのデータを、リポジトリスナップショットの物理領域から読み出してスレーブVMに出力する。
[Step S116] The CI master 210 of the management server 200 instructs the slave VM started in step S108 to start the test.
[Step S117] The slave VM of the test server 300 is assigned as a virtual disk, and the source code is read from the repository snapshot in which the difference data is reflected in step S115. At this time, the controller 401 of the storage device 400 reads the data of the logical block in which the corresponding bit value of the bitmap is "0" from the repository snapshot data from the repository copy 431 and outputs it to the slave VM. Further, the controller 401 reads the data of the logical block whose bit value corresponding to the bitmap is "1" from the data of the repository snapshot from the physical area of the repository snapshot and outputs it to the slave VM.

スレーブVMは、読み込んだソースコードを用いてテスト環境のビルドを行う。このビルドでは、例えば、読み込んだソースコードが統合される。また、統合されたソースコードを実行プログラムに変換する処理(コンパイル)が行われてもよい。 The slave VM builds the test environment using the read source code. In this build, for example, the loaded source code is integrated. Further, a process (compilation) of converting the integrated source code into an execution program may be performed.

[ステップS118]スレーブVMは、ビルドが行われたソースコードのテストを実行する。例えば、ソースコードの静的解析によりバグの発見や修正などが行われる。
[ステップS119]スレーブVMは、テスト結果を管理サーバ200に通知する。このとき、スレーブVMは、詳細なテスト結果の内容(ログなど)を、LAN51に接続された図示しないログサーバに格納してもよい。
[Step S118] The slave VM executes a test of the built source code. For example, static analysis of source code finds and fixes bugs.
[Step S119] The slave VM notifies the management server 200 of the test result. At this time, the slave VM may store the contents of the detailed test result (log, etc.) in a log server (not shown) connected to the LAN 51.

[ステップS120]管理サーバ200のCIマスタ210は、スレーブVMの削除をテストサーバ300に指示する。
[ステップS121]テストサーバ300のハイパバイザ310は、ステップS108で起動したスレーブVMの動作を停止させ、スレーブVMを削除する。
[Step S120] The CI master 210 of the management server 200 instructs the test server 300 to delete the slave VM.
[Step S121] The hypervisor 310 of the test server 300 stops the operation of the slave VM started in step S108, and deletes the slave VM.

[ステップS122]管理サーバ200のリポジトリコントローラ220は、リポジトリスナップショットの削除をストレージ装置400に指示する。
[ステップS123]ストレージ装置400のコントローラ401は、ステップS110で作成したリポジトリスナップショットを削除する。
[Step S122] The repository controller 220 of the management server 200 instructs the storage device 400 to delete the repository snapshot.
[Step S123] The controller 401 of the storage device 400 deletes the repository snapshot created in step S110.

〔第3の実施の形態〕
次に、第3の実施の形態に係る情報処理システムについて説明する。第3の実施の形態に係る情報処理システムは、第2の実施の形態に係る情報処理システムの一部を変形したものである。なお、第3の実施の形態に係る情報処理システムの構成要素については、第2の実施の形態と同様の符号を用いて説明する。
[Third Embodiment]
Next, the information processing system according to the third embodiment will be described. The information processing system according to the third embodiment is a modification of a part of the information processing system according to the second embodiment. The components of the information processing system according to the third embodiment will be described with reference to the same reference numerals as those of the second embodiment.

第2の実施の形態では、リポジトリコピー431が作成された後、コピー元のリポジトリ101が更新されてもリポジトリコピー431の内容が更新されることはなかった。そのため、リポジトリ101が更新されて新たなリポジトリスナップショットが作成されたときに、その時点でのリポジトリ101のデータと、更新されないリポジトリコピー431のデータの差分がリポジトリ101からWAN52を介してダウンロードされる。このような処理では、リポジトリ101が何度も更新され、新たなリポジトリスナップの作成回数が増加するほど、リポジトリ101からダウンロードされる差分データのデータ量が増加してしまう。 In the second embodiment, after the repository copy 431 is created, the contents of the repository copy 431 are not updated even if the copy source repository 101 is updated. Therefore, when the repository 101 is updated and a new repository snapshot is created, the difference between the data of the repository 101 at that time and the data of the repository copy 431 that is not updated is downloaded from the repository 101 via WAN 52. .. In such a process, the repository 101 is updated many times, and as the number of times of creating a new repository snap increases, the amount of differential data downloaded from the repository 101 increases.

そこで、第3の実施の形態では、リポジトリスナップショットが削除される際に、そのリポジトリスナップショットが保持していた差分データをリポジトリコピー431に反映させる。ただし、同時に稼働している複数のリポジトリスナップショットがリポジトリコピー431を更新できてしまうと、更新の競合が発生し、リポジトリコピー431のデータの整合性が保たれなくなる可能性がある。また、更新の競合により更新にかかる時間が長くなる可能性もある。そこで、第3の実施の形態では、稼働中の複数のリポジトリスナップショットのうち最初に作成されたリポジトリスナップショットに対してのみ、リポジトリコピー431を更新するための優先権を付与するようにして、上記問題の発生を防止する。 Therefore, in the third embodiment, when the repository snapshot is deleted, the difference data held by the repository snapshot is reflected in the repository copy 431. However, if a plurality of repository snapshots running at the same time can update the repository copy 431, an update conflict may occur and the data integrity of the repository copy 431 may not be maintained. Also, update conflicts can increase the time it takes to update. Therefore, in the third embodiment, the priority for updating the repository copy 431 is given only to the repository snapshot created first among the plurality of repository snapshots in operation. Prevent the above problems from occurring.

まず、図14〜図16を用いて、第3の実施の形態におけるテストジョブの実行制御例を説明する。
図14は、テストジョブの実行制御例を示す第5の図である。図14では、ストレージ装置400においてリポジトリコピー431が作成された後に、リポジトリ101の更新イベントが発生し、これに伴ってテストサーバ300においてスレーブVM320eが起動したとする。ただし、この段階ではストレージ装置400においてリポジトリスナップショットが1つも作成されていないとする。
First, an example of execution control of a test job in the third embodiment will be described with reference to FIGS. 14 to 16.
FIG. 14 is a fifth diagram showing an example of execution control of a test job. In FIG. 14, it is assumed that the update event of the repository 101 occurs after the repository copy 431 is created in the storage device 400, and the slave VM320e is started in the test server 300 accordingly. However, at this stage, it is assumed that no repository snapshot has been created in the storage device 400.

管理サーバ200のリポジトリコントローラ220は、新たなリポジトリスナップショット(ここでは「リポジトリスナップショット445」)を作成する際に、すでに他のリポジトリスナップショットが存在するか(稼働中か)を判定する。図14のように他のリポジトリスナップショットが存在しない場合、リポジトリコントローラ220は、新たに作成されたリポジトリスナップショット445に優先権を付与する(ステップS61)。この優先権とは、リポジトリコピー431を更新できる権利を示す。 When creating a new repository snapshot (here, "repository snapshot 445"), the repository controller 220 of the management server 200 determines whether another repository snapshot already exists (is running). When there is no other repository snapshot as shown in FIG. 14, the repository controller 220 gives priority to the newly created repository snapshot 445 (step S61). This priority indicates the right to update the repository copy 431.

この後、第2の実施の形態と同様に、リポジトリ101からWAN52を介してリポジトリコピー431との間の差分データがダウンロードされ、差分データがリポジトリスナップショット445に反映される(ステップS62)。このとき、リポジトリスナップショット445に対応するビットマップ445aが更新される。そして、スレーブVM320eは、リポジトリスナップショット445からソースコードを読み込んでテスト環境のビルドを行い(ステップS63)、テストを実行する(ステップS64)。 After that, the difference data between the repository 101 and the repository copy 431 is downloaded from the repository 101 via the WAN 52, and the difference data is reflected in the repository snapshot 445 (step S62), as in the second embodiment. At this time, the bitmap 445a corresponding to the repository snapshot 445 is updated. Then, the slave VM320e reads the source code from the repository snapshot 445, builds the test environment (step S63), and executes the test (step S64).

図15は、テストジョブの実行制御例を示す第6の図である。図15では、スレーブVM320eでのテストの実行中にリポジトリ101の更新イベントが再度発生し、これに伴ってテストサーバ300においてスレーブVM320fが起動したとする。 FIG. 15 is a sixth diagram showing an example of execution control of a test job. In FIG. 15, it is assumed that the update event of the repository 101 occurs again during the execution of the test on the slave VM320e, and the slave VM320f is started on the test server 300 accordingly.

管理サーバ200のリポジトリコントローラ220は、新たなリポジトリスナップショット(ここでは「リポジトリスナップショット446」)を作成する際に、すでに他のリポジトリスナップショットが存在するか(稼働中か)を判定する。図15の例ではすでにリポジトリスナップショット445が存在しているので、リポジトリコントローラ220は新たなリポジトリスナップショット446に優先権を付与しない。 When creating a new repository snapshot (here, "repository snapshot 446"), the repository controller 220 of the management server 200 determines whether another repository snapshot already exists (is running). In the example of FIG. 15, since the repository snapshot 445 already exists, the repository controller 220 does not give priority to the new repository snapshot 446.

この後、リポジトリ101からWAN52を介してリポジトリコピー431との間の差分データがダウンロードされ、差分データがリポジトリスナップショット446に反映される(ステップS71)。このとき、リポジトリスナップショット446に対応するビットマップ446aが更新される。そして、スレーブVM320fは、リポジトリスナップショット446からソースコードを読み込んでテスト環境のビルドを行い(ステップS72)、テストを実行する(ステップS73)。 After that, the difference data between the repository 101 and the repository copy 431 is downloaded from the repository 101 via WAN 52, and the difference data is reflected in the repository snapshot 446 (step S71). At this time, the bitmap 446a corresponding to the repository snapshot 446 is updated. Then, the slave VM320f reads the source code from the repository snapshot 446, builds the test environment (step S72), and executes the test (step S73).

図16は、テストジョブの実行制御例を示す第7の図である。図16の上側では、スレーブVM320eでのテストが完了し、スレーブVM320eが削除されたとする(ステップS81)。 FIG. 16 is a seventh diagram showing an example of execution control of a test job. On the upper side of FIG. 16, it is assumed that the test on the slave VM320e is completed and the slave VM320e is deleted (step S81).

管理サーバ200のリポジトリコントローラ220は、スレーブVM320eに仮想ディスクとして割り当てられていたリポジトリスナップショット445に、優先権が付与されているかを判定する。図14に示したように、リポジトリスナップショット445には優先権が付与されている。この場合、リポジトリコントローラ220は、リポジトリスナップショット445に格納された差分データをリポジトリコピー431に反映させるようにストレージ装置400に指示する。 The repository controller 220 of the management server 200 determines whether the repository snapshot 445 assigned as the virtual disk to the slave VM320e is given priority. As shown in FIG. 14, the repository snapshot 445 is given priority. In this case, the repository controller 220 instructs the storage device 400 to reflect the difference data stored in the repository snapshot 445 in the repository copy 431.

ストレージ装置400のコントローラ401は、ビットマップ445aに基づいて、リポジトリスナップショット445に格納された差分データをリポジトリコピー431に反映させる。すなわち、コントローラ401は、リポジトリスナップショット445の論理ブロックのうち、ビットマップ445aにおけるビット値が「1」のビットに対応する論理ブロックからデータを読み出し、リポジトリコピー431における同じアドレスの論理ブロックに書き込む。これにより、リポジトリスナップショット445の作成時点におけるリポジトリ101の更新内容がリポジトリコピー431に反映される(ステップS82)。更新内容の反映処理が完了すると、リポジトリコントローラ220からの指示に応じてリポジトリスナップショット445が削除される(ステップS83)。 The controller 401 of the storage device 400 reflects the difference data stored in the repository snapshot 445 in the repository copy 431 based on the bitmap 445a. That is, the controller 401 reads data from the logical block corresponding to the bit whose bit value is "1" in the bitmap 445a among the logical blocks of the repository snapshot 445, and writes the data to the logical block of the same address in the repository copy 431. As a result, the updated contents of the repository 101 at the time of creating the repository snapshot 445 are reflected in the repository copy 431 (step S82). When the process of reflecting the updated contents is completed, the repository snapshot 445 is deleted according to the instruction from the repository controller 220 (step S83).

その後、図16の下側に示すように、スレーブVM320fでのテストが完了し、スレーブVM320fが削除される(ステップS84)。リポジトリコントローラ220は、スレーブVM320fに仮想ディスクとして割り当てられていたリポジトリスナップショット446に、優先権が付与されているかを判定する。図15に示したように、リポジトリスナップショット446には優先権が付与されていない。この場合、リポジトリコントローラ220は、差分データをリポジトリコピー431に反映させることなく、リポジトリスナップショット446を削除するようにストレージ装置400に指示する。これにより、リポジトリスナップショット446は削除される(ステップS85)。 After that, as shown in the lower part of FIG. 16, the test on the slave VM320f is completed, and the slave VM320f is deleted (step S84). The repository controller 220 determines whether priority has been given to the repository snapshot 446 assigned as a virtual disk to the slave VM320f. As shown in FIG. 15, the repository snapshot 446 is not given priority. In this case, the repository controller 220 instructs the storage device 400 to delete the repository snapshot 446 without reflecting the difference data in the repository copy 431. As a result, the repository snapshot 446 is deleted (step S85).

次に、図14〜図16の処理が実行された場合におけるリポジトリコピー431の具体的な更新処理例について説明する。
図17は、リポジトリコピーの更新処理例を示す第1の図である。また、図18は、リポジトリコピーの更新処理例を示す第2の図である。
Next, a specific update processing example of the repository copy 431 when the processing of FIGS. 14 to 16 is executed will be described.
FIG. 17 is a first diagram showing an example of update processing of the repository copy. Further, FIG. 18 is a second diagram showing an example of update processing of the repository copy.

図17では、説明を簡単にするために、リポジトリコピー431の生成時において、リポジトリ101にはソースコードに関するファイルF1〜F3が記憶されていたとする。この時点でのリポジトリ101内のデータのバージョンを「バージョン1」とする。したがって、図17の上側に示すように、リポジトリコピー431には初期状態において、バージョン1のファイルF1〜F3が記憶されている。 In FIG. 17, for the sake of simplicity, it is assumed that the files F1 to F3 related to the source code are stored in the repository 101 when the repository copy 431 is generated. The version of the data in the repository 101 at this point is defined as "version 1". Therefore, as shown on the upper side of FIG. 17, version 1 files F1 to F3 are stored in the repository copy 431 in the initial state.

ここで、リポジトリ101内のファイルF2が更新されてリポジトリ101内のデータがバージョン2となり、この更新に応じて図14の処理が実行されてリポジトリスナップショット445が作成されたとする。このとき、リポジトリ101からはバージョン1に対する差分データとして、バージョン2のファイルF2がWAN52を介してダウンロードされ、リポジトリスナップショット445に格納される。また、図14に示したように、リポジトリスナップショット445には優先権が付与される。 Here, it is assumed that the file F2 in the repository 101 is updated and the data in the repository 101 becomes version 2, and the process of FIG. 14 is executed in response to this update to create the repository snapshot 445. At this time, the version 2 file F2 is downloaded from the repository 101 via WAN 52 as the difference data with respect to the version 1, and is stored in the repository snapshot 445. Also, as shown in FIG. 14, priority is given to the repository snapshot 445.

さらにその後、リポジトリ101内のファイルF3が更新されてリポジトリ101内のデータがバージョン3となり、この更新に応じて図15の処理が実行されてリポジトリスナップショット446が作成されたとする。このとき、リポジトリ101からはバージョン1に対する差分データとして、バージョン2のファイルF2とバージョン3のファイルF3とがWAN52を介してダウンロードされ、リポジトリスナップショット446に格納される。また、図15に示したように、リポジトリスナップショット446には優先権が付与されない。 After that, it is assumed that the file F3 in the repository 101 is updated and the data in the repository 101 becomes version 3, and the process of FIG. 15 is executed in response to this update to create the repository snapshot 446. At this time, the version 2 file F2 and the version 3 file F3 are downloaded from the repository 101 via WAN 52 as difference data with respect to the version 1, and are stored in the repository snapshot 446. Also, as shown in FIG. 15, priority is not given to the repository snapshot 446.

その後、図16の上側に示すように、スレーブVM320eによるリポジトリスナップショット445を用いたテストが完了し、スレーブVM320eが削除される。このとき、リポジトリスナップショット445に優先権が付与されていることから、図17の下側に示すように、リポジトリスナップショット445内のバージョン2のファイルF2によって、リポジトリコピー431内のバージョン1のファイルF2が更新される。そして、リポジトリスナップショット445が削除される。 After that, as shown in the upper part of FIG. 16, the test using the repository snapshot 445 by the slave VM320e is completed, and the slave VM320e is deleted. At this time, since the priority is given to the repository snapshot 445, as shown in the lower part of FIG. 17, the version 2 file F2 in the repository snapshot 445 causes the version 1 file in the repository copy 431. F2 is updated. Then, the repository snapshot 445 is deleted.

さらにその後、図16の下側に示すように、スレーブVM320fによるリポジトリスナップショット446を用いたテストが完了し、スレーブVM320fが削除される。このとき、リポジトリスナップショット446には優先権が付与されていないことから、リポジトリコピー431への差分データの反映を行うことなく、リポジトリスナップショット446が削除される。 After that, as shown in the lower part of FIG. 16, the test using the repository snapshot 446 by the slave VM320f is completed, and the slave VM320f is deleted. At this time, since the priority is not given to the repository snapshot 446, the repository snapshot 446 is deleted without reflecting the difference data in the repository copy 431.

その結果、リポジトリコピー431には、バージョン1のファイルF1,F3とバージョン2のファイルF2とが記憶された状態となる。この状態で、リポジトリ101内のファイルF3が更新されてリポジトリ101内のデータがバージョン4になったとする。この場合、図18に示すように、新たなリポジトリスナップショット447が作成され、リポジトリ101から差分データがWAN52を介してダウンロードされる。 As a result, the version 1 files F1 and F3 and the version 2 file F2 are stored in the repository copy 431. In this state, it is assumed that the file F3 in the repository 101 is updated and the data in the repository 101 becomes version 4. In this case, as shown in FIG. 18, a new repository snapshot 447 is created, and the difference data is downloaded from the repository 101 via WAN 52.

このとき、リポジトリコピー431にはバージョン2のデータが格納されているので、リポジトリ101からはバージョン2との差分データがダウンロードされる。この差分データとしてはバージョン4のファイルF3がダウンロードされ、リポジトリスナップショット447に格納される。 At this time, since the version 2 data is stored in the repository copy 431, the difference data from the version 2 is downloaded from the repository 101. As this difference data, the version 4 file F3 is downloaded and stored in the repository snapshot 447.

前述の第2の実施の形態では、図18のようにリポジトリ101のデータがバージョン4に更新された場合、リポジトリ101からはバージョン2のファイルF2とバージョン4のファイルF3とがダウンロードされる。一方、第3の実施の形態では図18に示したように、リポジトリ101からはバージョン4のファイルF3のみがダウンロードされる。 In the second embodiment described above, when the data in the repository 101 is updated to version 4 as shown in FIG. 18, the version 2 file F2 and the version 4 file F3 are downloaded from the repository 101. On the other hand, in the third embodiment, as shown in FIG. 18, only the version 4 file F3 is downloaded from the repository 101.

このように、優先権が付与されたリポジトリスナップショット445の削除時において、リポジトリスナップショット445内の差分データによってリポジトリコピー431が更新されることで、その後のリポジトリ101の更新時におけるソースコードのダウンロード量を削減できる。また、稼働中のリポジトリスナップショットのうち最初に作成されたリポジトリスナップショットにだけ優先権が付与されることで、リポジトリコピー431の更新順をリポジトリ101の更新順と同じにすることができる。したがって、リポジトリコピー431の更新順を守り、リポジトリコピー431内のデータの整合性を維持できるようになる。さらに、リポジトリコピー431に対する更新が競合しなくなり、更新にかかる時間を削減できる。 In this way, when the repository snapshot 445 to which the priority is given is deleted, the repository copy 431 is updated by the difference data in the repository snapshot 445, so that the source code is downloaded when the repository 101 is subsequently updated. The amount can be reduced. Further, by giving priority only to the repository snapshot created first among the repository snapshots in operation, the update order of the repository copy 431 can be the same as the update order of the repository 101. Therefore, the update order of the repository copy 431 can be maintained, and the integrity of the data in the repository copy 431 can be maintained. Further, the update to the repository copy 431 does not conflict with each other, and the time required for the update can be reduced.

図19は、第3の実施の形態におけるテストジョブ実行時の処理手順の例を示すシーケンス図である。
管理サーバ200、テストサーバ300およびストレージ装置400の間では、まず、図12に示したステップS101〜S110の処理が実行される。すなわち、スレーブVMが起動し、リポジトリスナップショットが作成され、そのリポジトリスナップショットがスレーブVMの仮想ディスクとして割り当てられる。なお、スレーブVMの起動前の時点でリポジトリコピーが存在しない場合は、リポジトリコピーが作成された後、上記の処理が行われる。
FIG. 19 is a sequence diagram showing an example of a processing procedure at the time of executing a test job in the third embodiment.
First, the processes of steps S101 to S110 shown in FIG. 12 are executed between the management server 200, the test server 300, and the storage device 400. That is, the slave VM is started, a repository snapshot is created, and the repository snapshot is assigned as a virtual disk of the slave VM. If the repository copy does not exist before the slave VM is started, the above processing is performed after the repository copy is created.

次に、図19に示すようにステップS131,S132が実行される。
[ステップS131]管理サーバ200のリポジトリコントローラ220は、優先権が付与されたリポジトリスナップショットが存在するかを判定する。この判定は、ステップS109の直前において、稼働中の他のリポジトリスナップショットがあるかによって行われてもよい。優先権が付与されたリポジトリスナップショットが存在しない場合、処理はステップS132に進められ、優先権が付与されたリポジトリスナップショットが存在する場合、ステップS132はスキップされる。
Next, steps S131 and S132 are executed as shown in FIG.
[Step S131] The repository controller 220 of the management server 200 determines whether or not there is a repository snapshot to which priority has been given. This determination may be made just before step S109 depending on whether there are other repository snapshots in operation. If the priority-granted repository snapshot does not exist, the process proceeds to step S132, and if the priority-granted repository snapshot exists, step S132 is skipped.

[ステップS132]リポジトリコントローラ220は、ステップS109で作成を指示したリポジトリスナップショットに優先権を付与する。例えば、リポジトリコントローラ220は、このリポジトリスナップショットに優先権を付与したことを示す情報を記憶部230に記録する。 [Step S132] The repository controller 220 gives priority to the repository snapshot instructed to be created in step S109. For example, the repository controller 220 records in the storage unit 230 information indicating that priority has been given to this repository snapshot.

その後、図12、図13に示したステップS111〜S121の処理が実行される。すなわち、リポジトリ101から差分データがダウンロードされリポジトリスナップショットに格納され、このリポジトリスナップショットを用いたビルドおよびテストが実行される。そして、テストが完了すると、テストを実行していたスレーブVMが削除される。 After that, the processes of steps S111 to S121 shown in FIGS. 12 and 13 are executed. That is, the difference data is downloaded from the repository 101, stored in the repository snapshot, and the build and test using this repository snapshot are executed. Then, when the test is completed, the slave VM that was executing the test is deleted.

次に、図19に示すようにステップS133〜S135が実行される。
[ステップS133]リポジトリコントローラ220は、テストに利用されていたリポジトリスナップショットに優先権が付与されているかを判定する。優先権が付与されている場合、処理はステップS134に進められ、優先権が付与されていない場合、ステップS134はスキップされる。
Next, steps S133 to S135 are executed as shown in FIG.
[Step S133] The repository controller 220 determines whether the repository snapshot used for the test is given priority. If the priority is granted, the process proceeds to step S134, and if the priority is not granted, step S134 is skipped.

[ステップS134]リポジトリコントローラ220は、リポジトリスナップショット内の更新データをリポジトリコピー431に反映させるように、ストレージ装置400に指示する。 [Step S134] The repository controller 220 instructs the storage device 400 to reflect the update data in the repository snapshot in the repository copy 431.

[ステップS135]ストレージ装置400のコントローラ401は、リポジトリスナップショット内の更新データ(差分データ)をリポジトリコピー431に反映させる。具体的には、コントローラ401は、リポジトリスナップショットに対応するビットマップを参照する。そして、コントローラ401は、リポジトリスナップショットの論理ブロックのうち、ビットマップにおけるビット値が「1」のビットに対応する論理ブロックからデータを読み出し、リポジトリコピー431における同じアドレスの論理ブロックに書き込む。また、コントローラ401は、必要に応じてリポジトリコピー431に対応するボリューム管理データ431aも更新する。 [Step S135] The controller 401 of the storage device 400 reflects the update data (difference data) in the repository snapshot in the repository copy 431. Specifically, the controller 401 refers to the bitmap corresponding to the repository snapshot. Then, the controller 401 reads data from the logical block corresponding to the bit value of "1" in the bitmap among the logical blocks of the repository snapshot, and writes the data to the logical block of the same address in the repository copy 431. The controller 401 also updates the volume management data 431a corresponding to the repository copy 431 as needed.

その後、管理サーバ200のリポジトリコントローラ220はリポジトリスナップショットの削除を指示し(ステップS122)、ストレージ装置400のコントローラ401はリポジトリスナップショットを削除する(ステップS123)。 After that, the repository controller 220 of the management server 200 instructs the deletion of the repository snapshot (step S122), and the controller 401 of the storage device 400 deletes the repository snapshot (step S123).

ここで、上記の第2、第3の実施の形態におけるリポジトリスナップショットに対する差分データの反映処理について、説明を補足する。
第2、第3の実施の形態では、リポジトリコピー431についてのボリューム管理データ431aをストレージ装置400のコントローラ401が保持していた。しかし、ボリューム管理データ431aは管理サーバ200の記憶部230に保持されていてもよい。この場合、管理サーバ200のリポジトリコントローラ220は、ストレージ装置400のリポジトリスナップショットに差分データを反映させる際に、ボリューム管理データ431aに基づき、リポジトリスナップショット内の論理ブロックを直接指定して差分データを書き込むように制御することができる。
Here, the description of the reflection data reflection process for the repository snapshot in the second and third embodiments described above will be supplemented.
In the second and third embodiments, the controller 401 of the storage device 400 holds the volume management data 431a for the repository copy 431. However, the volume management data 431a may be stored in the storage unit 230 of the management server 200. In this case, when the repository controller 220 of the management server 200 reflects the difference data in the repository snapshot of the storage device 400, the difference data is directly specified by the logical block in the repository snapshot based on the volume management data 431a. It can be controlled to write.

例えば、図13のステップS114,S115では、リポジトリコントローラ220は、リポジトリサーバ100から送信された差分データ(差分のファイル)を受信し、差分データに付与されたソフトウェアコンポーネントの識別番号とファイル名とを抽出する。リポジトリコントローラ220は、ボリューム管理データ431aを参照して、抽出した識別番号とファイル名とに基づき、リポジトリスナップショットの論理ブロックのうち、差分データを格納する論理ブロックを特定する。リポジトリコントローラ220は、特定した論理ブロックの識別番号を書き込み先として指定して、差分データをストレージ装置400に送信し、リポジトリスナップショットの該当論理ブロックに差分データを書き込むように指示する。これにより、差分データがリポジトリスナップショットに反映される。なお、リポジトリスナップショットに対応するビットマップの更新は、ストレージ装置400のコントローラ401によって行われればよい。 For example, in steps S114 and S115 of FIG. 13, the repository controller 220 receives the difference data (difference file) transmitted from the repository server 100, and sets the identification number and file name of the software component assigned to the difference data. Extract. The repository controller 220 refers to the volume management data 431a and identifies the logical block for storing the difference data among the logical blocks of the repository snapshot based on the extracted identification number and the file name. The repository controller 220 specifies the identification number of the specified logical block as the write destination, transmits the difference data to the storage device 400, and instructs the repository controller 220 to write the difference data to the corresponding logical block of the repository snapshot. As a result, the difference data is reflected in the repository snapshot. The bitmap corresponding to the repository snapshot may be updated by the controller 401 of the storage device 400.

なお、上記の各実施の形態に示した装置(例えば、テスト制御部1およびテスト実行部2が実装された情報処理装置、リポジトリサーバ100、管理サーバ200、テストサーバ300、コントローラ401)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。 The processing functions of the devices shown in each of the above embodiments (for example, the information processing device on which the test control unit 1 and the test execution unit 2 are mounted, the repository server 100, the management server 200, the test server 300, and the controller 401). Can be realized by a computer. In that case, a program describing the processing content of the function that each device should have is provided, and the processing function is realized on the computer by executing the program on the computer. The program describing the processing content can be recorded on a computer-readable recording medium. Computer-readable recording media include magnetic storage devices, optical disks, opto-magnetic recording media, semiconductor memories, and the like. Magnetic storage devices include hard disk devices (HDDs), magnetic tapes, and the like. Optical discs include CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray Discs (BD, registered trademarks) and the like. The magneto-optical recording medium includes MO (Magneto-Optical disk) and the like.

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When a program is distributed, for example, a portable recording medium such as a DVD or a CD on which the program is recorded is sold. It is also possible to store the program in the storage device of the server computer and transfer the program from the server computer to another computer via the network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。 The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes the processing according to the program. The computer can also read the program directly from the portable recording medium and execute the processing according to the program. In addition, the computer can sequentially execute processing according to the received program each time the program is transferred from the server computer connected via the network.

1 テスト制御部
2 テスト実行部
3 ストレージ
4 リポジトリ
5 ネットワーク
11,12 データ群
1 Test control unit 2 Test execution unit 3 Storage 4 Repository 5 Network 11, 12 Data group

Claims (9)

プログラムのソースコードが記憶されたリポジトリから、前記リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御し、前記リポジトリ内のデータが更新されると、更新後の前記リポジトリ内のデータのうち前記第1のデータ群との差分データが、前記リポジトリから前記ネットワークを介して送信され、第2のデータ群として前記ストレージにコピーされるように制御するテスト制御部と、
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づいて、更新後の前記リポジトリに記憶されているソースコードのテストを実行するテスト実行部と、
を有する情報処理システム。
From the repository in which the source code of the program is stored, all the data in the repository is transmitted via the network and controlled so that it is copied to the storage as the first data group, and the data in the repository is updated. And, among the updated data in the repository, the difference data from the first data group is controlled to be transmitted from the repository via the network and copied to the storage as the second data group. Test control unit and
A test execution unit that executes a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.
Information processing system with.
前記リポジトリに対応するフルバックアップボリュームを前記ストレージを用いて作成して、前記ネットワークを介して送信された前記第1のデータ群を前記フルバックアップボリュームに格納し、
更新後の前記リポジトリに対応するバックアップボリュームであって、実データとして前記フルバックアップボリュームとの差分のみ保持する差分バックアップボリュームを前記ストレージを用いて作成して、前記ネットワークを介して送信された前記第2のデータ群を前記差分バックアップボリュームに格納し、
前記差分バックアップボリュームから前記第2のデータ群を読み出して前記テスト実行部に送信するとともに、前記差分バックアップボリュームの記憶領域のうち前記第2のデータ群の記憶領域以外の他の記憶領域のデータを、前記フルバックアップボリュームから読み出して第3のデータ群として前記テスト実行部に送信する、
ストレージ制御部をさらに有し、
前記テスト実行部は、前記ストレージ制御部から送信された前記第2のデータ群および前記第3のデータ群を用いて前記テストを実行する、
請求項1記載の情報処理システム。
A full backup volume corresponding to the repository is created using the storage, and the first data group transmitted via the network is stored in the full backup volume.
A backup volume corresponding to the updated repository, which is a differential backup volume that holds only the difference from the full backup volume as actual data, is created by using the storage, and is transmitted via the network. The data group of 2 is stored in the differential backup volume, and
The second data group is read from the differential backup volume and transmitted to the test execution unit, and data in a storage area other than the storage area of the second data group in the storage area of the differential backup volume is stored. , Read from the full backup volume and send it to the test execution unit as a third data group.
It also has a storage control unit
The test execution unit executes the test using the second data group and the third data group transmitted from the storage control unit.
The information processing system according to claim 1.
前記テスト実行部は、仮想マシンを作成して動作させ、前記仮想マシンの仮想記憶装置として前記差分バックアップボリュームを割り当て、前記仮想マシンにより、前記仮想記憶装置から取得したデータを用いて前記テストを実行する、
請求項2記載の情報処理システム。
The test execution unit creates and operates a virtual machine, allocates the differential backup volume as a virtual storage device of the virtual machine, and executes the test using the data acquired from the virtual storage device by the virtual machine. To do
The information processing system according to claim 2.
前記差分バックアップボリュームは、前記リポジトリ内のデータが更新されるたびに作成され、
前記テスト制御部は、
前記リポジトリ内のデータの更新を検知したとき、前記差分バックアップボリュームを作成するように前記ストレージ制御部に指示するとともに、更新を検知した時点で他の前記差分バックアップボリュームが作成されていたかを判定し、作成されていなかった場合、作成を指示した前記差分バックアップボリュームに優先権を付与し、
作成された前記差分バックアップボリュームを用いた前記テスト実行部による前記テストが完了すると、当該差分バックアップボリュームに前記優先権が付与されているかを判定し、前記優先権が付与されている場合、当該差分バックアップボリューム内の前記第2のデータ群を前記フルバックアップボリュームに反映させ、当該差分バックアップボリュームを削除するように前記ストレージ制御部に指示し、前記優先権が付与されていない場合、前記反映させる処理をスキップして当該差分バックアップボリュームを削除するように前記ストレージ制御部に指示する、
請求項2記載の情報処理システム。
The differential backup volume is created each time the data in the repository is updated.
The test control unit
When the update of the data in the repository is detected, the storage control unit is instructed to create the differential backup volume, and it is determined whether another differential backup volume has been created at the time when the update is detected. , If it has not been created, give priority to the differential backup volume that was instructed to create it.
When the test by the test execution unit using the created differential backup volume is completed, it is determined whether or not the priority is given to the differential backup volume, and if the priority is given, the difference is given. The process of reflecting the second data group in the backup volume to the full backup volume, instructing the storage control unit to delete the differential backup volume, and reflecting the priority when the priority is not given. Instruct the storage control unit to skip and delete the differential backup volume.
The information processing system according to claim 2.
プログラムのソースコードが記憶されたリポジトリから、前記リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する第1の処理と、
前記リポジトリ内のデータが更新されると、更新後の前記リポジトリ内のデータのうち前記第1のデータ群との差分データが、前記リポジトリから前記ネットワークを介して送信され、第2のデータ群として前記ストレージにコピーされるように制御する第2の処理と、
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づく、更新後の前記リポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理と、を実行する処理部、
を有する情報処理装置。
From the repository in which the source code of the program is stored, the first process that controls so that all the data in the repository is transmitted via the network and copied to the storage as the first data group, and
When the data in the repository is updated, the difference data from the first data group among the updated data in the repository is transmitted from the repository via the network, and is used as the second data group. A second process that controls the data to be copied to the storage, and
A third process of causing the test device to execute the test of the source code stored in the updated repository based on the first data group and the second data group in the storage is executed. Processing unit,
Information processing device with.
前記第1の処理では、前記ストレージを制御するストレージ制御装置に対して、前記リポジトリに対応するフルバックアップボリュームを前記ストレージを用いて作成し、前記ネットワークを介して送信された前記第1のデータ群を前記フルバックアップボリュームに格納するように指示し、
前記第2の処理では、前記ストレージ制御装置に対して、更新後の前記リポジトリに対応するバックアップボリュームであって、実データとして前記フルバックアップボリュームとの差分のみ保持する差分バックアップボリュームを前記ストレージを用いて作成して、前記ネットワークを介して送信された前記第2のデータ群を前記差分バックアップボリュームに格納するように指示し、
前記テストは、前記ストレージ制御装置から送信された前記第2のデータ群と、前記ストレージ制御装置から送信された、前記差分バックアップボリュームの記憶領域のうち前記第2のデータ群の記憶領域以外の他の記憶領域のデータとを用いて実行される、
請求項5記載の情報処理装置。
In the first process, the storage control device that controls the storage creates a full backup volume corresponding to the repository using the storage, and the first data group transmitted via the network. Instructed to store in the full backup volume
In the second process, the storage is used as a backup volume corresponding to the updated repository for the storage control device, which holds only the difference from the full backup volume as actual data. And instructed to store the second data group transmitted via the network in the differential backup volume.
In the test, the second data group transmitted from the storage control device and the storage area of the differential backup volume transmitted from the storage control device other than the storage area of the second data group are used. Performed with data in the storage area of
The information processing device according to claim 5.
前記第2の処理では、前記テスト装置に対して、仮想マシンを作成して動作させ、前記仮想マシンの仮想記憶装置として前記差分バックアップボリュームを割り当てるように指示し、
前記テストは、前記仮想マシンにより前記仮想記憶装置から取得したデータを用いて実行される、
請求項6記載の情報処理装置。
In the second process, the test device is instructed to create and operate a virtual machine and allocate the differential backup volume as a virtual storage device of the virtual machine.
The test is performed using the data acquired from the virtual storage device by the virtual machine.
The information processing device according to claim 6.
前記差分バックアップボリュームは、前記リポジトリ内のデータが更新されるたびに作成され、
前記第2の処理では、前記リポジトリ内のデータの更新を検知したとき、前記差分バックアップボリュームを作成するように前記ストレージ制御装置に指示するとともに、更新を検知した時点で他の前記差分バックアップボリュームが作成されていたかを判定し、作成されていなかった場合、作成を指示した前記差分バックアップボリュームに優先権を付与し、
前記処理部はさらに、作成された前記差分バックアップボリュームを用いた前記テスト装置による前記テストが完了すると、当該差分バックアップボリュームに前記優先権が付与されているかを判定し、前記優先権が付与されている場合、当該差分バックアップボリューム内の前記第2のデータ群を前記フルバックアップボリュームに反映させ、当該差分バックアップボリュームを削除するように前記ストレージ制御装置に指示し、前記優先権が付与されていない場合、前記反映させる処理をスキップして当該差分バックアップボリュームを削除するように前記ストレージ制御装置に指示する、
請求項6記載の情報処理装置。
The differential backup volume is created each time the data in the repository is updated.
In the second process, when the update of the data in the repository is detected, the storage control device is instructed to create the differential backup volume, and when the update is detected, the other differential backup volume is sent. It is determined whether it has been created, and if it has not been created, priority is given to the differential backup volume instructed to create it.
Further, when the test by the test apparatus using the created differential backup volume is completed, the processing unit determines whether or not the priority is given to the differential backup volume, and the priority is granted. If so, the second data group in the differential backup volume is reflected in the full backup volume, the storage control device is instructed to delete the differential backup volume, and the priority is not given. , Instructs the storage control device to skip the reflection process and delete the differential backup volume.
The information processing device according to claim 6.
コンピュータに、
プログラムのソースコードが記憶されたリポジトリから、前記リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する第1の処理と、
前記リポジトリ内のデータが更新されると、更新後の前記リポジトリ内のデータのうち前記第1のデータ群との差分データが、前記リポジトリから前記ネットワークを介して送信され、第2のデータ群として前記ストレージにコピーされるように制御する第2の処理と、
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づく、更新後の前記リポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理と、
を実行させる情報処理プログラム。
On the computer
From the repository in which the source code of the program is stored, the first process that controls so that all the data in the repository is transmitted via the network and copied to the storage as the first data group, and
When the data in the repository is updated, the difference data from the first data group among the updated data in the repository is transmitted from the repository via the network, and is used as the second data group. A second process that controls the data to be copied to the storage, and
A third process of causing the test device to execute a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.
An information processing program that executes.
JP2019171543A 2019-09-20 2019-09-20 Information processing system, information processing apparatus, and information processing program Pending JP2021047806A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019171543A JP2021047806A (en) 2019-09-20 2019-09-20 Information processing system, information processing apparatus, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019171543A JP2021047806A (en) 2019-09-20 2019-09-20 Information processing system, information processing apparatus, and information processing program

Publications (1)

Publication Number Publication Date
JP2021047806A true JP2021047806A (en) 2021-03-25

Family

ID=74878550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019171543A Pending JP2021047806A (en) 2019-09-20 2019-09-20 Information processing system, information processing apparatus, and information processing program

Country Status (1)

Country Link
JP (1) JP2021047806A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024071870A1 (en) * 2022-09-26 2024-04-04 주식회사 엘지에너지솔루션 Battery data processing apparatus and operation method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024071870A1 (en) * 2022-09-26 2024-04-04 주식회사 엘지에너지솔루션 Battery data processing apparatus and operation method thereof

Similar Documents

Publication Publication Date Title
TWI428830B (en) Converting machines to virtual machines
US10067835B2 (en) System reset
JP5724477B2 (en) Migration program, information processing apparatus, migration method, and information processing system
JP4467624B2 (en) Software update management program, software update management apparatus, and software update management method
US9804855B1 (en) Modification of temporary file system for booting on target hardware
US20130036300A1 (en) Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
EP1637987A2 (en) Operation environment associating data migration method
US20130042097A1 (en) Method of updating boot image for fast booting and image forming apparatus for performing the method
US11698808B2 (en) System and method of selectively restoring a computer system to an operational state
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
KR20090092570A (en) Method and Apparatus of Inputting/Outputting Data Using Virtualization Technique
JP2015087906A (en) Tape device, storage controller, and storage control method
CN113467882A (en) Method and system for deploying containers
KR101576370B1 (en) System and method for remote restoration of computer system, and computer-readable recording medium with program therefor
JP2021047806A (en) Information processing system, information processing apparatus, and information processing program
JP7323769B2 (en) Storage devices, storage systems and programs
US20220374256A1 (en) Information processing system, information processing apparatus, method of controlling the same, and storage medium
JP6536618B2 (en) INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING SYSTEM, AND CONTROL PROGRAM
KR101850275B1 (en) Method for generating boot image for fast booting and image forming apparatus for performing the same, method for performing fast booting and image forming apparatus for performing the same
KR101845467B1 (en) Method for restoring error of boot image for fast booting and image forming apparatus for performing the same
KR101850272B1 (en) Method for updating boot image for fast booting and image forming apparatus for performing the same
JP2008217202A (en) Disk array device and firmware update method
KR100792786B1 (en) Method for os restoring of computer using backup image file
KR20090123674A (en) Soild state drive usable for a plurality of drive
JP2016181091A (en) Information management apparatus, information management method, information management program, data structure, and software asset management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231128