(57)【要約】【課題】複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出し、障害試験による影響を容易に把握する。【解決手段】試験自動化装置において、前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段とを備える。【選択図】図３
2019036252.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、
前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、
前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、
前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段と
を備えることを特徴とする試験自動化装置。
【請求項２】
前記試験実行手段は、障害試験箇所に対応する構成要素毎に予め定められた方法で前記障害試験を実行する
ことを特徴とする請求項１に記載の試験自動化装置。
【請求項３】
前記要素間接続情報作成手段は、前記構成要素の集合の中で、あるサーバに存在する所定構成要素が依存している別の所定構成要素を、同一サーバ内、同一ネットワーク内、別ネットワーク内の順番で探索することにより前記要素間接続情報を作成する
ことを特徴とする請求項１又は２に記載の試験自動化装置。
【請求項４】
前記要素間接続情報は、前記所定構成要素としてのアプリケーション、当該アプリケーションに関連するネットワークインタフェース、ＩＰアドレス、及びネットワークを含む
ことを特徴とする請求項１ないし３のうちいずれか１項に記載の試験自動化装置。
【請求項５】
複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置が実行する試験方法であって、
前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得ステップと、
前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成ステップと、
前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行ステップと
を備えることを特徴とする試験方法。
【請求項６】
コンピュータを、請求項１ないし４のうちいずれか１項に記載の試験自動化装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験を実施する技術に関連するものである。
【背景技術】
【０００２】
クラウドサービスやアプリケーションサービスを提供するシステムは、障害耐久性を持たせて構築されている。従来、障害耐久性の確認は、手動にて障害を疑似的に発生させ、システムが正常に動作することを確認することで試験合格としていた。
【０００３】
障害耐久性の確認において、障害を発生させる障害ポイントは過去の経験からエンジニアが意図的に抽出し、レビューなどによって網羅性を確認してきた。
【０００４】
従来技術として、障害試験の自動化は、負荷の発生を自動的に行うツールや、限定されたアプリケーションサービスの切り替わりテストツールなどによって実現されてきた。また、特定のアプリケーションについては障害ポイントと、期待される結果が用意されているが、汎用性は無く特定のアプリケーションにのみ適用されるものである。
【０００５】
また、近年ではランダムに構成されているサーバをダウンさせ、それでもサービスが継続提供できることを確認するなどの手法がとられているが、これは誤りを見つけることよりも誤ってもシステムが動作することを確認する最後の手法であり、誤りを見つけた際には再度設計を行わなければならない。
【０００６】
また、近年はＬｉｎａｇｅ  Ｄｒｉｖｅｎ  Ｆａｕｌｔ  Ｉｎｊｅｃｔｉｏｎという手法により、あえてシステムに誤った設定を入れ込み、システムの動作を確認するという手法がとられることもあるが、網羅性や期待される結果などは用意されておらず、誤った設定を入れる箇所やその際の挙動はエンジニアが頭の中で構成するものである。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】自動構築スクリプトを用いたＣＭＤＢ  による障害原因自動特定・復旧機能の実装と評価、沼田晋作・神谷法正・橋本昭二・柏  大、２０１７年１月１９日、信学技報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術では、障害発生による影響を容易に把握することができないため、障害試験による結果が期待される結果かどうかの判断が難しい。また、従来技術において、障害試験箇所は、エンジニアが手動で考えなければならないものであるため、障害試験箇所を網羅的に洗い出すことは難しい。
【０００９】
特に、近年普及している仮想サーバ及び仮想ネットワーク等からなる仮想化環境では、従来のベアメタル環境に比べて障害箇所が増加していることから、上記の点に対する解決策が求められる。
【００１０】
本発明は上記の点に鑑みてなされたものであり、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示の技術によれば、複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、
前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、
前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、
前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段と
を備えることを特徴とする試験自動化装置が提供される。
【発明の効果】
【００１２】
開示の技術によれば、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することを可能とする技術が提供される。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態におけるシステムの全体構成図である。
【図２】自動構築スクリプトと構成管理情報を説明するための図である。
【図３】試験自動化装置１００の機能構成図である。
【図４】試験自動化装置１００のハードウェア構成図である。
【図５】処理の流れを示すフローチャートである。
【図６】対象システムの例を示す図である。
【図７】要素間接続情報の例を示す図である。
【図８】障害試験ポイントの例を示す図である。
【図９】障害試験ポイントの例を示す図である。
【図１０】構成管理情報取得処理を説明するための図である。
【図１１】構成管理情報の例を示す図である。
【図１２】アプリケーションに関する自動構築スクリプトの例を示す図である。
【図１３】自動構築スクリプトを実行する工事手順書の例を示す図である。
【図１４】依存関係を示す有向グラフデータの作成を示す図である。
【図１５】有向グラフデータの作成手順を示すフローチャートである。
【図１６】依存関係を示す有向グラフデータの他の例を示す図である。
【図１７】要素間接続情報を作成方法を説明するための図である。
【図１８】試験方法の例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１５】
本実施の形態は、複数の仮想サーバ、及び１つ又は複数の仮想ネットワーク、ネットワークや情報システムの実機、物理ネットワーク等からなる仮想・実機混在環境を前提とする。本明細書における「仮想環境」は、その意味として、実機を含まない仮想的な環境のみならず、仮想・実機混在環境を含むものである。
【００１６】
（システムの全体構成）
図１に、本実施の形態におけるシステムの全体構成を示す。図１に示すように、本実施の形態におけるシステムは、複数のサーバ１０と、試験自動化装置１００とを有する。複数のサーバ１０は、各種のネットワークサービスをユーザに提供するサービスシステムを構成する。サーバ１０はそれぞれ、１つ又は複数のアプリケーションが動作する仮想サーバ（仮想マシンと称してもよい）である。サーバ１０はそれぞれ、１つの物理マシン（コンピュータ）上で構築されたものであってもよいし、複数のサーバ１０が、１つの物理マシン上で構築されていてもよい。サーバ１０間はネットワーク接続されている。当該ネットワークは、１つ又は複数の物理マシン（コンピュータ）上の仮想マシンにより構築された１つ又は複数の仮想ネットワークである。
【００１７】
なお、各サーバ１０は、そこで動作させるアプリケーション（ソフトウェア）に応じて、各種のＡＰ（アプリケーション）サーバ（Ｗｅｂ、ＤＢ、ＬＢ（ロードバランス）等）、ルータ、スイッチ等になり得る。
【００１８】
サーバ１０がネットワーク接続するにあたっては、ＩＰアドレス、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等が使用される。ＩＰアドレス、ＮＩＣについても、仮想環境においては、仮想的に割り当てられるものであってよい。
【００１９】
試験自動化装置１００は、サービスシステムにおける障害試験を自動化する装置である。試験自動化装置１００は、後述するように、構成管理情報から、要素間接続情報を作成し、障害試験箇所を網羅的に抽出して、予め定めた方法で障害試験箇所に対する障害試験を実行することができる。
【００２０】
（構成管理情報の概要）
ここで、本実施の形態における要素間接続情報のベースとなる構成管理情報の概要について説明する。
【００２１】
本実施の形態では、各サーバへのアプリケーションのインストール／設定／起動等を自動構築スクリプトを使用して行っている。更に、本実施の形態では、仮想マシン（以降、ＶＭと記する）の設定（構築）、及び、ＯＳのインストール／設定についても、自動構築スクリプトを使用して行っている。ＯＳのインストール／設定にはネットワークの設定も含まれている。
【００２２】
自動構築スクリプトを使用した「ＶＭの設定」、「ＯＳのインストール／設定」、「ＡＰのインストール／設定」については、試験自動化装置１００が実行してもよいし、試験自動化装置１００以外の装置が実行してもよいが、試験自動化装置１００は、各サーバについて、「ＶＭの設定」、「ＯＳのインストール／設定」、「ＡＰのインストール／設定」に用いた自動構築スクリプトを保持するか、各サーバ等から取得することが可能である。
【００２３】
試験自動化装置１００は、サーバ毎に、上記の各設定に使用した自動構築スクリプトから、ハードウェア（以下、ＨＷ）、ＯＳ、及びＡＰの構成管理情報（構成要素の集合）を取得し、これら構成管理情報を保持する。ここで、ＨＷは、仮想マシン上でエミュレートされたＨＷであり、ＨＷの構成管理情報としては、例えば、ディスクサイズ、メモリサイズ、ＣＰＵ数、ＮＩＣ数等がある。ＯＳの構成管理情報としては、例えば、パーティション情報、ホスト名、ＯＳ名、ＯＳバージョン、ＮＩＣに割り当てられたＩＰアドレス等がある。
【００２４】
自動構築スクリプトは、基本的に「コマンド：パラメータ」の羅列であり、試験自動化装置１００は、自動構築スクリプトから当該パラメータを抽出することで、構成管理情報を取得できる。
【００２５】
また、ＡＰの構成管理情報については、システム構築装置１００は、例えば非特許文献１に記載されているように、ＡＰの依存関係を示すノードとリンクからなる有向グラフの情報として構成管理情報を取得できる。
【００２６】
図２は、自動構築スクリプトと構成管理情報を説明するための図である。図２において、１４は、ＨＷの自動構築スクリプトを示し、１５は、ＯＳの自動構築スクリプトを示し、１６は、ＡＰの自動構築スクリプトを示す。ただし、図２上では、自動構築スクリプトそのものではなく、自動構築スクリプトに含まれる情報が示されている。また、変換ロジック１７、及び構成管理情報ＤＢ１８は試験自動化装置１００内に存在する機能である。具体的には、変換ロジック１７は、後述する構成管理情報取得部１１０の中の機能であり、構成管理情報ＤＢ１８は、データ格納部１４０の一部である。
【００２７】
図２に示すように、ＨＷの自動構築スクリプト１４によりＶＭのＨＷが構築され、ＯＳの自動構築スクリプト１５によりＯＳが構築され、ＡＰの自動構築スクリプト１６によりＯＳ上で実行されるＡＰ等が構築される。また、変換ロジック１７により、各自動構築スクリプトから構成管理情報が作成され、構成管理情報ＤＢ１８に格納される。
【００２８】
また、変換ロジック１７は、構成管理情報ＤＢ１８に格納してある構成管理情報を使用して、当該構成管理情報の抽出元の自動構築スクリプトに相当する自動構築スクリプトを作成して、ＶＭ、ＯＳ、ＡＰ等の設定を行うことも可能である。これは、例えば、障害試験により落とした構成の復旧に利用することができる。
【００２９】
（試験自動化装置１００の構成例）
図３は、試験自動化装置１００の機能構成の例を示す図である。図３に示すように、試験自動化装置１００は、構成管理情報取得部１１０、要素間接続情報作成部１２０、試験実行部１３０、データ格納部１４０を有する。
【００３０】
構成管理情報取得部１１０は、自動構築スクリプトから構成管理情報を取得する。要素間接続情報作成部１２０は、構成管理情報に基づいて要素間接続情報を作成する。試験実行部１３０は、要素間接続情報に基づいて障害試験箇所を洗い出し（抽出し）、洗い出した障害試験箇所に対して、予め定められた方法で障害試験を実施する。データ格納部１５０は、自動構築スクリプト、構成管理情報、要素間接続情報、障害試験方法等を含む各種のデータを格納する。
【００３１】
試験自動化装置１００は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、試験自動化装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該試験自動化装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００３２】
図４は、試験自動化装置１００をコンピュータで実現する場合におけるハードウェア構成例を示す図である。図４に示す試験自動化装置１００は、それぞれバスＢで相互に接続されているドライブ装置２００、補助記憶装置２０２、メモリ装置２０３、ＣＰＵ２０４、インタフェース装置２０５、表示装置２０６、及び入力装置２０７等を有する。
【００３３】
試験自動化装置１００での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体２０１によって提供される。プログラムを記憶した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３４】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４（プロセッサ）は、メモリ装置２０３に格納されたプログラムに従って試験自動化装置１００に係る機能を実現する。インタフェース装置２０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置２０６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置２０７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００３５】
（全体の処理の流れ）
図５は、試験自動化装置１００が実行する処理の全体の流れを示すフローチャートである。まず、試験自動化装置１００における構成管理情報取得部１１０が、自動構築スクリプトから構成管理情報を取得する（Ｓ１０１）。
【００３６】
次に、要素間接続情報作成部１２０が、構成管理情報から要素間接続情報を作成する（Ｓ１０２）。続いて、試験実行部１３０が、要素間接続情報から障害試験箇所を洗い出し、洗い出した障害試験箇所に対して、予め定められた手順で障害試験を実行する（Ｓ１０３）。
【００３７】
上記のＳ１０１〜Ｓ１０３の各ステップの処理の詳細は後述する。
【００３８】
（要素間接続情報について）
ここで、本実施に形態において障害試験箇所の洗い出し、障害による影響の把握等に使用される要素間接続情報の概要を説明する。
【００３９】
対象システムとして、図６に示す構成のシステムを想定する。図６に示すように、当該システムは、ＬＢサーバ、ＡＰサーバ１〜３、ルータ、ＤＢサーバ１、２が図示のとおりに接続された構成になっている。また、ＬＢサーバにはＡＡＡＡで示されるアプリケーションが動作し、ＤＢサーバ１、２にはＣＣＣＣで示されるアプリケーションが動作し、ＡＰサーバ１〜３にはＢＢＢＢで示されるアプリケーションが動作する。ここに図示するシステムの構成は、例えば、システムの設計書等により把握されるものである。
【００４０】
図７に、図６のシステムに対応する要素間接続情報をグラフィカルに表示した例を示す。当該要素間接続情報は、図６に示すシステムの構築に使用された自動構築スクリプトから得られた構成管理情報から作成されたものである。例えば、図中のＬＢサーバに対応する構成要素は、ＡＰ（ｓｔａｒｔ＿ＡＡＡＡ）、ＩＰアドレス（１０．３．１３０．２１）、ＮＩＣ（ｅｔｈ０）、ＮＥＴＷＯＲＫ（ＤＭＺ）である。他のサーバについても同様である。
【００４１】
ＡＰ（ｓｔａｒｔ＿ＡＡＡＡ）、ＩＰアドレス（１０．３．１３０．２１）、ＮＩＣ（ｅｔｈ０）等の情報は、構成要素の集合である構成管理情報に含まれている。具体的には、あるサーバに関して、ＡＰ、ＩＰ、ＮＩＣ、及びネットワーク名（例：ＤＭＺ）が紐付けられた情報として構成管理情報に含まれているため、図７に示すように、サーバ毎に、ＡＰ、ＩＰ、ＮＩＣ、ＮＥＴＷＯＲＫを接続した情報を作成することができる。
【００４２】
また、ＡＰ間については、構成管理情報において依存関係が記述されている。この依存関係は、図７では、太線で示されている。図７の例では、ＬＢサーバのＣＣＣＣが起動するにはＡＰサーバ１〜３のＢＢＢＢが起動していなければならず、ＡＰサーバ１〜３のＢＢＢＢが起動するには、ＤＢサーバ１、２のＣＣＣＣが起動していなければならないことが依存関係として示されている。なお、クラスタ（ａｐ＿ｃｌｕｓｔｅｒ等）内部は依存関係はなく、並列の関係にある。
【００４３】
そして、上記依存関係と、各サーバにおける構成要素とに基づき、後述する手法を用いることで、図７に示す要素間接続情報を得ることができる。
【００４４】
この要素間接続情報を用いることで、障害試験を行うべき箇所を網羅的に洗い出せるとともに、当該箇所において障害を起こさせたときに、どこが影響を受けるのか（あるいはどこが影響を受けないのか）を容易に把握することができる。
【００４５】
例えば、図８に示すように、ルータにおけるＮＥＴＷＯＲＫ（ＤＭＺ）に接続する側のＮＩＣに障害を発生させることを想定する。なお、障害を発生させるとは、例えば、ＮＩＣを削除する等である。この場合、ＤＢサーバ１、２のＣＣＣＣに依存しているＡＰサーバ１〜３のＢＢＢＢ、及びＬＢサーバのＡＡＡＡは影響を受けることがわかる。例えば、実際のシステムで、当該ＮＩＣに障害を発生させる試験を行った結果、上記の予測のとおりにならない場合、例えば、システムが誤って構築されたことなどが考えられ、それに対する対処を実施できる。
【００４６】
また、ルータのＮＩＣ（ｅｔｈ０）が構成管理情報と不一致となっている状態となる事が予測され、その他の構成管理情報には何も影響が及ぼされないことが予測できる。
【００４７】
障害試験箇所の洗い出しについては、例えば、試験実行部１３０が、図７に示した要素間接続情報を構成する全構成要素を障害試験箇所として抽出することで網羅的な洗い出しを行うことができるとともに、各障害試験箇所に対する影響を容易に把握できる。
【００４８】
このような洗い出しを行うことで、ノード（ルータやホスト等）単体、ノード間の障害試験箇所、多レイヤに渡った網羅的な障害試験箇所（ＮＩＣ，ケーブル、リンク、リンクダウンを伴わないＬ３以上の経路障害等）等のあらゆる障害試験箇所を抽出できる。
【００４９】
図９は、要素間接続情報の他の例を示す。図９は、ＡＰ１はＡＰ２に依存し、ＡＰ２は、ＡＰ３、４に依存する例を示す。ＡＰ３、４は並列関係にある。この場合、図９の×で示すポイントで障害を発生させたとしても、×の障害で影響を受けるのはＡＰ４であり、ＡＰ４と並列関係にあるＡＰ３は影響を受けない。よって、ＡＰ１−＞ＡＰ２−＞ＡＰ３の依存関係は崩れないので、サービスは継続されると予測できる。
【００５０】
なお、図７等で示した要素間接続情報は一例に過ぎない。自動構築スクリプトから得られる情報であれば、どのような構成要素でも要素間接続情報に含めることができる。例えば、図７では、アプリケーションの構成要素として、ｓｔａｒｔ＿識別名のみを示しているが、ｉｎｓｔａｌｌ＿識別名、ｓｅｔｔｉｎｇ＿識別名が構成要素として含まれてもよい。また、ＯＳ、ミドルウェア等も構成要素として含まれてもよい。
【００５１】
以下、試験自動化装置１００の各機能部による処理内容をより具体的に説明する。
【００５２】
（構成管理情報取得部１１０による構成管理情報取得処理）
まず、図１０〜１６を参照して、構成管理情報取得部１１０による構成管理情報取得処理の例について説明する。
【００５３】
図１０に示すように、構成管理情報取得部１１０は、ＨＷの自動構築スクリプト２１、及びＯＳの自動構築スクリプト２２から、２４に示す構成管理情報を取得し、データ格納部１４０に格納する。一例として、構成管理情報取得部１１０は、ＨＷ／ＯＳの自動構築スクリプト２１、２２において下線で示したパラメータを構成管理情報２４として抽出する。取得されたＨＷ／ＯＳの構成管理情報については、例えば図１１に示すように表示することも可能である。図１１に示す例では、サーバ１とサーバ２が同じネットワークに属し、サーバ３とサーバ４が同じネットワークに属することが示されている。
【００５４】
また、構成管理情報取得部１１０は、図１０に示すように、ＡＰの自動構築スクリプト２３から、構成管理情報２５を取得し、データ格納部１４０に格納する。本実施の形態では、ＡＰの自動構築スクリプト２３から取得される構成管理情報２５は、ＡＰの依存関係を示す有向グラフの情報として生成されるものである。この依存関係と、各サーバの構成要素の情報に基づき、試験自動化装置１００の要素間接続情報作成部１１０は、要素間接続情報を作成する。
【００５５】
図１２に、構成管理情報取得部１１０への入力となるＡＰの自動構築スクリプトの一例を示す。本実施の形態で使用する自動構築スクリプトは、図１２に示すように、再利用を意識して複数のブロックに分けて作成される。また、ブロックの中で使用する値（パラメータ）は変数化され、変数の値はブロックの外にまとめて記述される。また、各ブロックには、他のブロックとの依存関係を設定することもできる。
【００５６】
より具体的に、例えばＡＰサーバ（例：Ｗｅｂサーバ）を構築するためのアプリケーション（ソフトウェア）に関しては、自動構築スクリプトは、通常、ソフトウェアのインストールを行う「ｉｎｓｔａｌｌ＿［識別名］」、インストールしたソフトウェアの設定を行う「ｓｅｔｔｉｎｇ＿［識別名］」、設定したソフトウェアをスタートさせる「ｓｔａｒｔ＿［識別名］」の３のブロックを有する。図１２は、識別名＝ＡＡＡＡというソフトウェアの例について、当該３つのブロックを有することが示されている。また、図１２の例では、各ブロックはｒｏｌｅと呼ばれる。
【００５７】
なお、図１２は、ｉｎｓｔａｌｌ／ｓｅｔｔｉｎｇ／ｓｔａｒｔの３つ全てが揃っている例を示しているが、ＯＳのネットワーク設定のようにｓｅｔｔｉｎｇ／ｓｔａｒｔ（ｒｅｓｅｔ／ｓｔｏｐ）しかないもの、ＯＳのユーザ設定のようにｓｅｔｔｉｎｇ（ｒｅｓｅｔ）しかないものなどもある。
【００５８】
図１３は、図１２に示すようなブロックを適用して、ソフトウェアＡＡＡＡのインストールや設定等を行うことでＷｅｂサーバ構築を行う場合のイメージを示す図である。図１３に示すように、ブロックの実行手順を記載した工事手順書（これも、構成管理情報取得部１１０に入力される自動構築スクリプトに含まれる）が準備され、当該工事手順書に従って、各ブロックがロードされ、実行（ｉｎｓｔａｌｌ／ｓｅｔｔｉｎｇ／ｓｔａｒｔ）される。工事手順書には、対象のサーバ（図１３の例では"Ｗｅｂ"）と当該サーバに対して実行するブロックが、実行される順番で記述されている。このような順番により、ブロック間、サーバ間の依存関係を把握できる。また、各ブロックに記述されている依存関係や、パラメータ等によっても依存関係を把握できる。
【００５９】
図１４に示すように、上記のような自動構築スクリプトが構成管理情報取得部１１０に入力され、構成管理情報取得部１１０は、ブロック間やＡＰ間の依存関係を示す有向グラフデータを作成する。
【００６０】
依存関係について説明すると、例えば、［ｉｎｓｔａｌｌ＿ＡＡＡＡ］と［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］に関して、ソフトウェアＡＡＡＡはインストールされないと設定できないから、［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］は［ｉｎｓｔａｌｌ＿ＡＡＡＡ］に依存する、という依存関係がある。この場合、本実施の形態では、依存されるほうに矢印が向くように、［ｉｎｓｔａｌｌ＿ＡＡＡＡ］←［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］と有向グラフとして記述する。同様に、ソフトウェアＡＡＡＡは設定されないと正常に動作しないためスタートできないから、［ｓｔａｒｔ＿ＡＡＡＡ］は［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］に依存する、つまり、［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］←［ｓｔａｒｔ＿ＡＡＡＡ］と記述する。
【００６１】
すなわち、「あるブロックの実行のために前もって実行しておくべきブロック」の２つのブロック間に「依存関係」があるとする。上記の３つのブロックの例では、有向グラフとして、［ｉｎｓｔａｌｌ＿ＡＡＡＡ］←［ｓｅｔｔｉｎｇ＿ＡＡＡＡ］←［ｓｔａｒｔ＿ＡＡＡＡ］と記述する。構成管理情報取得部１１０は、このような有向グラフに相当する有向グラフデータを作成する。
【００６２】
依存関係は、単一のソフトウェアモジュール（アプリケーションと称しても良い）内のみでなく、前述したように、ソフトウェアモジュール間にも存在する。例えば、ＷｅｂサーバソフトウェアモジュールがＤＢサーバソフトウェアモジュールを使用し、ＷｅｂサーバソフトウェアモジュールはＤＢサーバソフトウェアモジュールがスタートしていないとサービスの提供ができないとする。この場合には、以下の有向グラフで示す依存関係が存在する。
【００６３】
［ｉｎｓｔａｌｌ＿ｄａｔａｂａｓｅ］←［ｓｅｔｔｉｎｇ＿ｄａｔａｂａｓｅ］←［ｓｔａｒｔ＿ｄａｔａｂａｓｅ］
↑
［ｉｎｓｔａｌｌ＿ｗｅｂｓｅｒｖｅｒ］←［ｓｅｔｔｉｎｇ＿ｗｅｂｓｅｒｖｅｒ］←［ｓｔａｒｔ＿ｗｅｂｓｅｒｖｅｒ］
自動構築スクリプトの入力がされた構成管理情報取得部１１０は、図１５のフローチャートの手順で有向グラフデータを作成する。
【００６４】
Ｓ２０１）まず、構成管理情報取得部１１０は、一連のブロックを適用する対象となるサーバ情報を取得する。例えば、構成管理情報取得部１１０は、工事手順書に記載されている、一連のブロックの適用対象となるホストの情報を当該サーバ情報として取得することができる。
【００６５】
Ｓ２０２）次に、構成管理情報取得部１１０は、対象のサーバ毎に、自動構築スクリプトにおける複数ブロックをｉｎｓｔａｌｌ／ｓｅｔｔｉｎｇ／ｓｔａｒｔの３つのグループに分けノード化する。なお、前述したように、スクリプトの適用対象によっては、ｉｎｓｔａｌｌのみ、ｓｅｔｔｉｎｇのみ等の場合もある。
【００６６】
Ｓ２０２では、例えば、ソフトウェアＡに関するスクリプトのブロックとしてｉｎｓｔａｌｌ／ｓｅｔｔｉｎｇ／ｓｔａｒｔの３つがあり、ネットワーク設定に関するスクリプトのブロックとしてｓｅｔｔｉｎｇがある場合、構成管理情報取得部１１０は、ソフトウェアＡについてのｉｎｓｔａｌｌのノード、ｓｅｔｔｉｎｇのノード、ｓｔａｒｔのノードを作成し、ネットワーク設定についてのｓｅｔｔｉｎｇのノードを作成する。
【００６７】
Ｓ２０３）次に、構成管理情報取得部１１０は、各ブロックに関連する変数（パラメータ）をｎｅｔｗｏｒｋ／ｆｉｌｅｐａｔｈ／ｉｄ／ｄｅｖｉｃｅ等のグループに分けて関連付ける。すなわち、ファイルパス、ネットワーク、ユーザ、ｌｏｇ、ｃｏｎｆ、ｓｅｒｖｉｃｅなど、システムを構成する内容によってグルーピングし、一致、不一致、関係性（例：包含関係）を抽出し、その情報をデータ格納部１４０に格納する。一例として、ソフトウェアＡのｓｅｔｔｉｎｇにおける設定アドレスがアドレス１であり、ソフトウェアＢのｓｅｔｔｉｎｇにおける設定アドレスがアドレス１である場合、両者は一致の関係があるとして、そのことを示す情報が格納される。
【００６８】
Ｓ２０４）構成管理情報取得部１１０は、依存関係のあるノード間について、ノード間を結びつけるリンク情報を作成する。依存関係は、例えば、工事手順書におけるブロックの実行手順から判断することができる。また、ブロック内に依存関係の記述がある場合には、その記述から判断することもできる。
【００６９】
Ｓ２０５）構成管理情報取得部１１０は、上記の処理により得られたノード情報及びリンク情報、パラメータの関連情報等をサーバ情報に紐付けてデータ格納部１４０に格納する。
【００７０】
図１４の左側には、データ格納部１４０に格納されるデータのイメージが示されている。当該イメージは、右側に示す入力情報に対応するものである。図１４の例では、ｉｎｓｔａｌｌ＿ＡＡＡＡ、ｓｅｔｔｉｎｇ＿ＡＡＡＡ、ｓｔａｒｔ＿ＡＡＡＡのノード情報と、これらの間に「ｉｎｓｔａｌｌ＿ＡＡＡＡ←ｓｅｔｔｉｎｇ＿ＡＡＡＡ←ｓｔａｒｔ＿ＡＡＡＡ」で示される依存関係が存在することを示すリンク情報がデータ格納部１４０に格納される。つまり、当該依存関係を示す有向グラフが格納される。また、図示するように、各ノードにパラメータが関連付けられている。
【００７１】
なお、上記の例では、１つのＡＰに関する有向グラフを示している。図１６に他の例として、複数のＡＰ（アプリケーション）の有向グラフを結び付けて依存関係が表される例を示す。図１６は、ＡＰ１（例：Ｗｅｂ）とＡＰ２（例：ＬＢ（ロードバランシング））との間に依存関係がある場合の例を示している。
【００７２】
なお、構成管理情報取得部１１０が、構成管理情報に基づき、サーバの復旧のための構築を行う際には、このようなＡＰ間の依存関係に基づいて、特定のＡＰを目的にインストールする場合において、当該特定のＡＰが依存するＡＰ、及び当該特定のＡＰに依存されるＡＰもともにインストールし、特定のＡＰを正しく動作させることができる。
【００７３】
（要素間接続情報作成部１２０による要素間接続情報作成処理）
次に、要素間接続情報作成部１２０による要素間接続情報作成処理について説明する。要素間接続情報作成に使用される情報は、構成管理情報取得部１１０により取得された構成管理情報である。構成管理情報は、前述したＡＰ間の依存関係を示す有向グラフの情報と、各サーバにおける構成要素の集合がある。各サーバにおける構成要素の集合として、自動構築スクリプトに含まれる情報であれば、いかなる情報でも取得可能であるが、一例として以下に示すような情報が取得される。以下は、例として、サーバ１とサーバ２がある場合を示している。
【００７４】
（１）サーバ１の構成要素
・ＮＩＣ｛ＮＩＣ名：ｅｔｈ０、ＩＰアドレス：１０．１６０．１２８．１０４／２６、ネットワーク名：ＭＺ｝
・ＡＰ｛ｓｔａｒｔ＿ＡＡＡＡ｝
・ＮＩＣ｛ＮＩＣ名：ｅｔｈ１、ＩＰアドレス：１０．１６０．１２８．１０５／２６、ネットワーク名：ＭＺ｝
・ＡＰ｛ｓｔａｒｔ＿ＢＢＢＢ｝
（２）サーバ２の構成要素
・ＮＩＣ｛ＮＩＣ名：ｅｔｈ０、ＩＰアドレス：１０．１６６．１２８．１９９／２６、ネットワーク名：ＤＭＺ｝
・ＡＰ｛ｓｔａｒｔ＿ＣＣＣＣ｝
上記の例において、例えばサーバ１に関し、サーバ１には、ＡＡＡＡに紐付けられたＮＩＣとしてｅｔｈ０があり、そのＩＰアドレスが１０．１６０．１２８．１０４／２６であり、接続されるネットワークがＭＺであることが示され、また、ＢＢＢＢに紐付けられたＮＩＣとしてｅｔｈ１があり、そのＩＰアドレスが１０．１６０．１２８．１０５／２６であり、接続されるネットワークがＭＺであることが示されている。
【００７５】
また、サーバ２には、ＣＣＣＣに紐付けられたＮＩＣとしてｅｔｈ０があり、そのＩＰアドレスが１０．１６０．１２８．１９９／２６であり、接続されるネットワークがＤＭＺであることが示されている。
【００７６】
上記は、実際に取得される構成要素の情報から抜粋して示したものであるが、実際には、例えばｊｓｏｎファイルの形式で情報が得られる。また、自動構築スクリプトで構築した全てのサーバについて構成要素の情報が得られる。
【００７７】
要素間接続情報作成部１２０は、上述したＡＰ間の依存関係の情報と、各サーバの構成要素の情報とから、図７に示したような要素間接続情報を作成する。なお、要素間接続情報作成部１２０は、作成した要素間接続情報を図７のようにグラフィカルに表示してもよいし、表示はせずにデータとして保持しておいてもよい。
【００７８】
図１７を参照して要素間接続情報を作成する方法の例を説明する。ここでは、依存関係として、ＡＰ１がＡＰ２とＡＰ３に依存しているものとする。図１７ではその関係が点線で示されている。
【００７９】
最初、要素間接続情報作成部１２０は、図１７に示す依存関係（点線の関係）しか把握していない。ここではＡＰ１を起点として、ＡＰ２、ＡＰ３の順で処理を実行するものとする。
【００８０】
まず、要素間接続情報作成部１２０は、ＡＰ１が依存しているＡＰ２が、ＡＰ１と同じサーバ１内にあるか否かを構成要素情報を検索することにより判断する。ここでは、サーバ１内にＡＰ２は存在しない。次に、要素間接続情報作成部１２０は、ＡＰ１が存在するサーバ１が接続しているネットワークと同じネットワークに接続された各サーバを探索し、当該サーバにＡＰ２が存在するかどうかを構成要素情報を検索することにより判断する。２つのサーバが同じネットワークに所属しているかどうかは、ＮＩＣが接続するネットワーク名で判断することもできるし、ＮＩＣのＩＰアドレスのネットワーク部で判断することもできる。
【００８１】
ここでは、要素間接続情報作成部１２０は、サーバ１が接続するＮＥＴＷＯＲＫ１に接続しているサーバ２においてＡＰ２を検出する。これにより、要素間接続情報作成部１２０は、構成要素情報に基づき、「ＡＰ１−ＩＰ１−ＮＩＣ１−ＮＥＴＷＯＲＫ１−ＮＩＣ２−ＩＰ２−ＡＰ２」の要素間接続情報を作成する。
【００８２】
なお、要素間接続情報作成部１２０は、要素間接続情報として、「ＡＰ１−ＩＰ１−ＮＩＣ１−ＮＥＴＷＯＲＫ１−ＮＩＣ２−ＩＰ２−ＡＰ２」のように、構成要素情報の中の要素を抽出し、これらを接続した情報を作成することとしてもよいし、構成要素情報の中の要素へのポインタを接続した情報を作成することしてもよいし、他の形式の情報を作成することしてもよい。
【００８３】
次に、要素間接続情報作成部１２０は、ＡＰ１が依存しているＡＰ３が、ＡＰ１と同じサーバ１内にあるか否かを構成要素情報を検索することにより判断する。ここでは、サーバ１内にＡＰ３は存在しない。次に、要素間接続情報作成部１２０は、ＡＰ１が存在するサーバ１が接続しているネットワークと同じネットワークに接続された各サーバにＡＰ３が存在するかどうかを構成要素情報を検索することにより判断する。ここでは、サーバ１が接続しているネットワークと同じネットワークに接続されたサーバとしてサーバ２のみが存在するが、そこにはＡＰ３は存在しない。
【００８４】
次に、要素間接続情報作成部１２０は、サーバ１が接続しているネットワーク（ＮＥＴＷＯＲＫ１）におけるデフォルトゲートウェイとなっている、ＮＥＴＷＯＲＫ１に接続されているルータに接続されているネットワーク上のサーバにＡＰ３があるかどうかを構成要素情報を検索することにより判断する。この動作は、パケットをデフォルトルートに転送するネットワークルーチングの動作に類似している。なお、ルータの構成要素の情報は、サーバの情報と同様に構成要素情報として構成管理情報に含まれる。
【００８５】
ここでは、要素間接続情報作成部１２０は、サーバ３においてＡＰ３が存在することを検出する。これにより、要素間接続情報作成部１２０は、構成要素情報に基づき、「ＡＰ１−ＩＰ１−ＮＩＣ１−ＮＥＴＷＯＲＫ１−ＮＩＣ４−ＩＰ４−ルータ−ＩＰ５−ＮＩＣ５−ＮＥＴＷＯＲＫ２−ＮＩＣ３−ＩＰ３−ＡＰ３」の要素間接続情報を作成する。
【００８６】
以上の処理により作成された要素間接続情報をグラフィカルに表示することで図１７に示す表示情報が得られる。なお、図１７に示す太線は、依存関係に基づく要素間接続を示すものである。この太線を表示することで、ＡＰ間の依存関係を明確に把握でき、障害試験での影響を目視で把握し易くなる。
【００８７】
要素間接続情報作成部１２０により作成された要素間接続情報はデータ格納部１４０に格納される。
【００８８】
（試験実行部１３０による試験実行処理）
次に、試験実行部１３０による試験実行処理を説明する。本実施の形態では、障害試験の障害試験箇所となり得る構成要素に対応した障害発生手順（障害発生方法）を予め定めておき、定めた障害発生手順の情報がデータ格納部１４０に格納されている。ある障害試験箇所に対して障害を発生させる手順は複数種類存在する。しかし、障害試験箇所に対して障害を発生させる手順が定まらない場合（エンジニア判断に委ねる場合）、実際の障害発生時において、過去の試験時の障害発生箇所での手順を確定できず、試験結果があまり参考にならない可能性がある。そこで、本実施の形態では、障害試験箇所となり得る構成要素に対応した障害発生手順を予め定めておくこととしている。
【００８９】
図１８に構成要素毎の障害発生手順の例を示す。図１８に示すとおり、構成要素ｓｔａｒｔ＿［ｎａｍｅ］については、ｎａｍｅで識別されるＡＰをｓｔｏｐさせる。構成要素ｉｎｓｔａｌｌ＿［ｎａｍｅ］については、ｎａｍｅで識別されるＡＰをｕｎｉｎｓｔａｌｌする。構成要素ｓｅｔｔｉｎｇ＿［ｎａｍｅ］については、ｎａｍｅで識別されるＡＰについての設定を初期化する。これら３つの手順は自動的（ａｕｔｏｍａｔｉｃａｌｌｙ）に生成することができる。
【００９０】
ｎｏｄｅ（サーバ、スイッチ等）、ｎｅｔ＿ｄｅｖ＿ｓｅｌｆ（ＮＩＣ）、ｎｅｔ＿ｉｐ＿ｓｅｌｆ（ＩＰアドレス）に関しては、いずれも該当の仮想環境に応じたコマンドで障害を発生させる。また、ｎａｍｅ＿ｎｅｔｗｏｒｋ（ネットワーク）については、当該ネットワーク上のスイッチにおいてフィルタリング（通信遮断）を発生させる。これら３つの手順については、テンプレートから生成することができる。
【００９１】
一例として、要素間接続情報作成部１２０により、図１７に示す要素間接続情報が得られた場合において、試験実行部１３０は、図１７に示す全要素（ＡＰ１、ＩＰ１、ＮＩＣ１、ＮＥＴＷＯＲＫ１、ＮＩＣ２、ＩＰ２、ＡＰ２、ＮＩＣ４、ＩＰ４、ルータ、ＩＰ５、ＮＩＣ５、ＮＥＴＷＯＲＫ２、ＮＩＣ３、ＩＰ３、ＡＰ３）を抽出（洗い出す）する。そして、各要素に対し、図１８の手順に従って、対象システムに対する障害試験を行う。
【００９２】
障害試験を行うために、例えば、サーバを落とすような場合があるが、その場合、元の状態に戻す必要がある。そのような場合において、構成管理情報を保持する本実施の形態では、容易に構築を実行できる。この構築処理は、試験自動化装置１００が実施してもよいし、試験自動化装置１００から構成管理情報を取得した他の装置が実行してもよい。
【００９３】
（実施の形態の効果について）
本実施の形態に係る技術により、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することが可能となる。より詳細には、例えば、下記の効果が得られる。
【００９４】
（１）障害発生による影響を事前に自動的に確認できる
依存性を含んだ構成管理情報を用いることで、障害による影響をシステムの系として確認することができる。すなわち、障害が発生したポイントによってシステムの各構成管理情報の状態がどう変化するかを確認できる。これにより、実際のシステムに障害が発生した場合に期待される状態の変化を事前に洗い出すことができ、この期待される結果と、実際の障害試験の結果とを比較することで、想定している障害耐久性を実際のシステムが備えているか、想定外の挙動を取らないかを確認することができる。よって、実際のシステムにおいて想定外の挙動によってサービス断を引き起こす等の状況を避けることができる。
【００９５】
（２）障害試験箇所の網羅性が担保できる
構成管理情報はＨＷ／ＮＷ／ＯＳ／ＡＰの情報を網羅しており、これら全てを障害試験箇所として指定することで網羅性の担保が可能である。
【００９６】
（３）障害を発生させる手法を定義できる
従来は「ネットワーク障害」というような障害の概要しか記述できず、記述による障害試験箇所が曖昧であった。一方、本実施の形態の技術であれば、例えば、図８に示したようなルータにおけるＮＩＣ（ｅｔｈ０）のように障害試験箇所を明確に指定することができる。そして構成要素の種別に応じた障害発生コマンドを定義することで、障害発生手法を明確に定義できる。
【００９７】
（４）影響範囲が確定されており、また、試験が自動的に実行され自動的に復旧される
従来はまるごと仮想環境のＳｎａｐｓｈｏｔを取って、試験の都度、元に戻すなどの手法がとられているが、そもそも障害試験による影響範囲が正しく把握できていない状況であるため、正しく全ての環境を戻すには全てのサーバのＳｎａｐｓｈｏｔを取らねばならない。一方、本実施の形態の技術は、影響範囲が明確であり、かつ、依存関係を用いてシステムの復旧が可能であるため、時間も短時間ですむ。
【００９８】
（５）仮想環境のメリットを最大限に活用できる
本実施の形態では、仮想環境上にシステムを完全自動構築するスクリプトを用いた構成管理情報を使用する。このため、障害試験箇所の網羅だけで無く、この仮想環境上に構築するシステムの構築スクリプトから、網羅的、自動的に手順と結果を作成できる。
【００９９】
すなわち、本実施の形態に係る技術により、曖昧なまま行われてきた障害試験を、明確な「期待する試験結果」を備えて実行でき、試験稼働を削減できる。また、実際の障害発生時に、過去に発生させた障害新券の箇所と、その際の障害発生手順を高い再現性で短時間で確認できる。
【０１００】
（実施の形態のまとめ）
以上、説明したように、本実施の形態により、複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段とを備えることを特徴とする試験自動化装置が提供される。
【０１０１】
前記試験実行手段は、例えば、障害試験箇所に対応する構成要素毎に予め定められた方法で前記障害試験を実行する。
【０１０２】
前記要素間接続情報作成手段は、前記構成要素の集合の中で、あるサーバに存在する所定構成要素が依存している別の所定構成要素を、同一サーバ内、同一ネットワーク内、別ネットワーク内の順番で探索することにより前記要素間接続情報を作成することとしてもよい。
【０１０３】
前記要素間接続情報は、前記所定構成要素としてのアプリケーション、当該アプリケーションに関連するネットワークインタフェース、ＩＰアドレス、及びネットワークを含むこととしてもよい。
【０１０４】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０５】
１０  サーバ
１００  試験自動化装置
１１０  構成管理情報取得部
１２０  要素間接続情報作成部
１３０  試験実行部
１４０  データ格納部
２００  ドライブ装置
２０１  記録媒体
２０２  補助記憶装置
２０３  メモリ装置
２０４  ＣＰＵ
２０５  インタフェース装置
２０６  表示装置
２０７  入力装置
【図１】
2019036252.tif 000003
【図２】
2019036252.tif 000004
【図３】
2019036252.tif 000005
【図４】
2019036252.tif 000006
【図５】
2019036252.tif 000007
【図６】
2019036252.tif 000008
【図７】
2019036252.tif 000009
【図８】
2019036252.tif 000010
【図９】
2019036252.tif 000011
【図１０】
2019036252.tif 000012
【図１１】
2019036252.tif 000013
【図１２】
2019036252.tif 000014
【図１３】
2019036252.tif 000015
【図１４】
2019036252.tif 000016
【図１５】
2019036252.tif 000017
【図１６】
2019036252.tif 000018
【図１７】
2019036252.tif 000019
【図１８】
2019036252.tif 000020