JP2007272579A - ソフトウェア検証方法、システム及びプログラム - Google Patents

ソフトウェア検証方法、システム及びプログラム Download PDF

Info

Publication number
JP2007272579A
JP2007272579A JP2006097606A JP2006097606A JP2007272579A JP 2007272579 A JP2007272579 A JP 2007272579A JP 2006097606 A JP2006097606 A JP 2006097606A JP 2006097606 A JP2006097606 A JP 2006097606A JP 2007272579 A JP2007272579 A JP 2007272579A
Authority
JP
Japan
Prior art keywords
verification
disk
production
environment
virtual machine
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.)
Withdrawn
Application number
JP2006097606A
Other languages
English (en)
Inventor
裕介 ▲高▼河原
Yusuke Kokawara
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 JP2006097606A priority Critical patent/JP2007272579A/ja
Priority to US11/605,380 priority patent/US20070234303A1/en
Publication of JP2007272579A publication Critical patent/JP2007272579A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】本番環境と同様にディスク内の全てのデータについてデータの更新も含めた動作の検証を、本番環境との並行して行うことができ、かつ、コストのかからない検証環境を提供すること。
【解決手段】本番機10には、本番機アプリケーション11、本番用ディスク12、本番側エージェント13が含まれる。検証機20には、被検証アプリケーション21aを実行する検証用仮想マシン21と、検証用ディスク22と、検証側エージェント23とが含まれる。検証用仮想マシン21がディスクからデータを読み込む場合は、ディスクの該当領域に更新がない場合には本番用ディスク12から読み込み、更新がある場合には検証用ディスクから読み込む。書き込みはいずれも検証用ディスクに対して実行されるが、更新がない場合には新たに領域を確保してデータを追加し、更新がある場合には既存の領域のデータを更新する。
【選択図】 図9

Description

本発明は、コンピュータ上で稼働するソフトウェアの動作を検証する際に、実際の業務で運用される本番環境の動作を妨げずにソフトウェアの動作を検証できるように、この本番環境を模して構築された検証環境上で検証するためのソフトウェア検証方法、システム及びプログラムに関する。
アプリケーションやミドルウェアを追加、更新する際には、これらのソフトウェアがコンピュータ上で問題なく作動するか否か検証する必要がある。このような検証を行うための方法は、従来から種々提案されている。
例えば、特許文献1には、単一の中央処理装置の下に本番用のファイルと検証用のファイルを用意し、検証のためのファイルアクセス制御機能をオペレーティングシステム(OS)の機能の一部として提供し、検証時には本番用のファイルを変更せずに、検証用のファイルに更新情報を蓄えるようにした検証装置が開示されている。
また、特許文献2には、同一コンピュータ上に本番環境と検証環境とを構築し、かつ、資源管理部により端末側からは共通の論理資源名でアクセスされた資源を本番環境と検証環境とで異なる物理資源名に変換してアクセスする資源を切り替えるようにし、資源管理部における物理資源名の変更のみにより、検証環境から本番環境への移行を可能にした環境空間での連続運転方法が開示されている。
さらに、特許文献3には、本番環境と開発環境とのそれぞれにコンピュータを用意し、これらをネットワークにより接続したシステムにおいて、本番環境のデータベースに保護スキーマを定義しておき、開発環境から本番環境のデータベースにデータの要求があった場合に、保護スキーマに従って個人情報や営業秘密情報等を保護した検証用データを提供する方法が開示されている。
特開平5−40659号公報 特開平8−235011号公報 特開2005−165737号公報
しかしながら、特許文献1の装置のように、検証モードと本番モードを切り替えてファイルへのアクセス方法を切り替える方式では、本番環境の稼働と並行して検証を行うことができないという問題がある。また、特許文献2の方法では、同じ論理資源に対して本番環境と検証環境とで対応する物理資源をそれぞれ同じだけ用意しなければならず、本番環境のシステムが大規模になるほど検証環境を構築するコストが高くなるという問題がある。さらに、特許文献3の方法では、データベースに含まれるデータのみが検証の対象となり、ディスクに含まれるデータベース以外のデータを検証環境で利用することができず、かつ、提供されたデータを更新する動作の検証ができないという問題がある。
本発明は、上記の問題点に鑑みてなされたものであり、その課題は、本番環境と同様にディスク内の全てのデータについてデータの更新も含めた動作の検証を、本番環境の稼働と並行して行うことができ、かつ、コストのかからない検証環境を提供できる方法、システム及びプログラムを提供することにある。
本発明にかかるソフトウェア検証方法は、実際の業務で運用される本番環境を模して構築された検証環境でソフトウェアの動作を検証する方法において、検証環境内で、被検証ソフトウェアを実行するための検証用仮想マシンを本番環境内の本番用ディスクから起動させ、本番環境の運用で本番用ディスクへの情報の書き込みが要求された場合には、書き込み対象領域が検証環境内の検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで検証用ディスクに待避させた後、本番用ディスクへの書き込みを実行させ、検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、検証用ディスクに該当領域が存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが読み込みである場合には本番用ディスクからの読み込みを実行させ、アクセスが書き込みである場合には検証用ディスクに該当領域を確保して書き込みを実行させることを特徴とする。
また、検証用仮想マシンが検証側エージェントを介してネットワークに接続されている場合には、検証側エージェントは、情報を送信する場合には、送信先がローカル接続された他の検証用仮想マシンであれば送信元アドレスを本番環境のアドレスとしたまま当該他の検証用仮想マシンの検証側エージェントに情報を送信し、送信先がローカル接続された他の検証用仮想マシンでなければ送信元アドレスを検証用仮想マシンのアドレスに書き換えて情報を送信先に送信し、情報を受信する場合には、送信元がローカル接続された他の検証用仮想マシンであれば送信先アドレスを本番環境のアドレスとしたまま検証用仮想マシンにより受信させ、送信元がローカル接続された検証用仮想マシンでなければ送信先アドレスを本番環境のアドレスに書き換えて検証用仮想マシンにより受信させることが望ましい。
さらに、本番環境と検証環境とにそれぞれ本番用ディスクの領域に対応したセルを持つ管理テーブルが備えられ、本番環境の管理テーブルには、本番用ディスクへの書き込みが実行された領域に対応するセルに更新済を示すフラグを立て、検証環境の管理テーブルには、本番用ディスクから待避された領域及び検証用仮想マシンにより書き込みが実行された領域に対応するセルに更新済を示すフラグを立て、検証用仮想マシンがディスクからの読み込みを要求した際に、検証環境及び本番環境の管理テーブルの双方で未アクセスと記録されている場合にのみ本番用ディスクから情報を読み込むようにすることが望ましい。
一方、本発明のソフトウェア検証システムは、実際の業務で運用される本番環境を模して構築された検証環境でソフトウェアの動作を検証するシステムにおいて、検証環境内で起動され、被検証ソフトウェアを実行するための検証用仮想マシンと、検証環境内に配置され、検証用仮想マシンと外部資源との中継手段となる検証側エージェントと、本番環境内に配置され、検証側エージェントと本番環境の資源との中継手段となる本番側エージェントとを備え、検証側エージェントは、検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、検証環境内の検証用ディスクに該当領域が存在するか否かを判断し、存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが書き込みである場合には検証用ディスクに該当領域を確保して書き込みを実行させ、アクセスが読み込みである場合には本番用ディスクからの読み込みを本番側エージェントに要求して本番側エージェントから送られた情報を検証用仮想マシンに送り、本番側エージェントは、検証側エージェントから本番用ディスクへの読み込み要求があると、本番環境内の本番用ディスクの該当領域から読み込んだ情報を検証側エージェントに送り、本番環境の運用で本番用ディスクへの情報の書き込みが要求されると、書き込み対象領域が検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで検証側エージェントに送り、検証用ディスクに待避させた後、本番用ディスクへの書き込みを実行させることを特徴とする。
また、検証用仮想マシンが検証側エージェントを介してネットワークに接続される場合には、検証側エージェントは、情報を送信する場合には、送信先がローカル接続された他の検証用仮想マシンであれば送信元アドレスを本番環境のアドレスとしたまま当該他の検証用仮想マシンの検証側エージェントに情報を送信し、送信先がローカル接続された他の検証用仮想マシンでなければ送信元アドレスを検証用仮想マシンのアドレスに書き換えて情報を送信先に送信し、情報を受信する場合には、送信元がローカル接続された他の検証用仮想マシンであれば送信先アドレスを本番環境のアドレスとしたまま検証用仮想マシンにより受信させ、送信元がローカル接続された検証用仮想マシンでなければ送信先アドレスを本番環境のアドレスに書き換えて検証用仮想マシンにより受信させることが望ましい。
以上のように構成された本発明のソフトウェア検証方法/システムによれば、検証用ディスクに本番用ディスクの内容を予めコピーしなくとも、検証用仮想マシンの起動時における本番用ディスクのスナップショットイメージを仮想ディスクとして検証用に利用することできる。すなわち、検証用仮想マシンは、ディスクからの読み込みを要求する場合には、基本的に本番環境から情報を読み込み、書き込みを要求する場合には検証用ディスクに書き込む。そして、本番環境でディスクへの書き込み(追加、更新)が要求されると、変更前の情報を検証用ディスクに待避させることにより、起動時のスナップショットイメージを維持するようにしている。このため、検証用仮想マシンから見ると、情報の整合がとれている時点のスナップショットイメージに基づいて、これを仮想ディスク上で自由に更新しながらソフトウェアの検証を行うことができる。
したがって、本番環境と同一の検証環境を短時間で自動的に準備することができ、かつ、準備のために本番環境を停止させる必要がない。また、本番環境と検証環境とは互いのディスクイメージに影響を与えずに同時に運用することができる。さらに、検証用ディスクは、本番用ディスクに格納された情報の一部のみを格納すれば足りるため、容量の小さい安価なディスク装置を利用することができる。
また、検証側エージェントを用いて本番環境と検証環境とのアドレス変換をすることにより、本番環境の属性(IPアドレス等)を引き継いで起動した検証用仮想マシンと、本番環境に含まれる装置とが同一のネットワークアドレスを持つことによるネットワーク通信の衝突を避けることができる。
さらに、本番環境、検証環境のそれぞれに本番用ディスクの更新状態を表す管理テーブルを備えることにより、両環境間の通信回数を削減することができる。
以下、本発明にかかるソフトウェア検証方法及びソフトウェア検証システムの実施形態を図面に基づいて説明する。最初に、図1に基づいて本実施形態のソフトウェア検証システムが適用されるコンピュータシステムの概要を説明する。
図1に示されるように、このコンピュータシステムは、通信回線Nを介して互いに接続された本番機10と検証機20とから構成されている。本番機10は、実際の業務で運用される本番環境を提供するコンピュータであり、検証機20は、本番環境を模して構築された検証環境を提供する本番機10とはハードウェア構成が異なるコンピュータである。本番機10には、この本番機10の上で実行される本番機アプリケーション11、ソフトウェアやデータを格納する本番用ディスク12、そして、検証機20と本番環境の資源との中継手段となる本番側エージェント13が含まれている。
検証機20には、被検証アプリケーション21aを実行するための検証用仮想マシン21と、検証用ディスク22と、検証用仮想マシン21と外部資源との中継手段となる検証側エージェント23とが含まれている。検証用仮想マシン21は、被検証アプリケーション21aから見たときに本番機10と同一構成となるよう見せかけたマシンであり、本番側エージェント13及び検証側エージェント23は、検証用仮想マシン21が本番機10であるかのように機能できるよう入出力先を切り替える機能を有する。
次に、本番側エージェント13と検証側エージェント23との機能について説明する。検証側エージェント23は、検証が開始されると、被検証アプリケーション21aを実行するための検証用仮想マシン21を本番環境内の本番用ディスク12から起動させる。また、検証側エージェント23は、検証用仮想マシン21がディスクの所定領域へのアクセス(読み込み/書き込み)を要求した際、検証環境内の検証用ディスク22に該当領域が存在するか否かを判断する。そして、検証用ディスク22に該当領域が存在する場合には、当該領域へのアクセスを実行させる。一方、検証用ディスク22に該当領域が存在しない場合には、アクセスが書き込みである場合には検証用ディスク22に該当領域を確保して書き込みを実行させ、アクセスが読み込みである場合には本番用ディスク12からの読み込みを本番側エージェント13に要求する。そして、本番側エージェント13から情報が送られると、検証側エージェント23は送られた情報を検証用仮想マシン21に送る。なお、情報にはデータの他、アプリケーションファイル等も含まれるが、以下の説明ではデータを例にして説明する。
本番側エージェント13は、検証側エージェント23から本番用ディスク12への読み込み要求があると、本番環境内の本番用ディスク12の該当領域から読み込んだデータを検証側エージェント23に送る。また、本番環境の運用で本番機アプリケーション11から本番用ディスク12へのデータの書き込みが要求されると、本番側エージェント13は、書き込み対象領域が検証用ディスク22に待避されているか否かを確認し、待避されていない場合には、更新前のデータを読み込んで検証側エージェント23に送り、検証用ディスク22に待避させた後、本番用ディスクへの書き込みを実行させる。
本番側エージェント13及び検証側エージェント23には、図2(A)(B)に示すように、本番用ディスク12の領域に対応したセルを持つ本番側管理テーブル及び検証側管理テーブルがそれぞれ備えられている。なお、この例では説明を簡単にするため、全体を12セルで示しているが、実際には本番用ディスク12の容量に応じて多数のセルを有する。本番側管理テーブルの各セルには、フラグ「I」または「U」が設定される。また、検証側管理テーブルの各セルには、フラグ「I」、「U」または数字が設定される。フラグ「I」は、これが表示されたセルに対応する領域が、検証を開始した時点を基準にして更新されていないこと、「U」は、これが更新され、あるいは更新中であること、そして、数字は、本番用ディスク12の更新された領域に対応する情報が格納された検証用ディスクの領域を示す。
次に、各エージェントの上記の機能による検証用ディスク22の内容の変化と、各管理テーブルの内容の変化について説明する。検証用仮想マシン21が起動した時点では、検証用ディスク22は空の状態である。また、管理テーブルは、図2に示すように両者とも全てのセルにフラグ「I」が立てられている。本番環境で本番機ディスク12の所定の領域の更新が要求されると、図3(A)に示すように、本番側管理テーブルでは該当するセルC11にフラグ「U」が立てられ、この領域のデータが更新されたこと、そして、待避された更新前のデータが検証側エージェント23に送られる。この時点では、検証側管理テーブルの各セルは図3(B)に示すように、未だ変更されていない。
検証側エージェント23は、上記のデータ更新情報、及び更新前のデータを受け取ると、図4(B)に示すように、該当するセルC21のフラグを「U」に変更し、データを検証用ディスク22に書き込む。書き込んだ後、検証側エージェント23は、図5(B)に示すように、このデータを書き込んだ検証用ディスクの領域番号、この例では「01」にセルC11の内容を変更する。この間、本番側管理テーブルの内容は、図4(A)、図5(A)に示すように変更されない。
このようにして、本番用ディスク12の更新された領域は、本番側管理テーブルのフラグUが立てられたセルにより表され、検証用ディスク22には、この更新された領域に記録されていた更新前のデータが待避されて格納される。処理が進むと、両管理テーブルの内容は、例えば図6(A)、(B)に示すようなものとなる。この例では、管理テーブルのセルC22、C23で示される本番用ディスク12の2つの領域が本番環境内で更に変更されたことを本番側エージェント13が把握しており、検証側エージェント23は、このうちセルC23に対応する領域に格納されたデータは検証用ディスク22の「02」の領域に書き込まれたこと、セルC22に対応する領域のデータは更新中であることが示されている。検証用ディスク22には、このように本番側で変更された領域と、検証用仮想マシン21により書き込み(追加、更新)された領域とにデータが格納され、他の領域は空のままである。
次に、図7〜9に示すフローチャートにしたがって、上記のソフトウェア検証システムの作用について説明する。これらのフローチャートは、本番側エージェント13と検証側エージェント23との作用に分けて記載されている。
図7の検証開始処理では、検証を開始すると、検証側エージェント23は、本番側エージェント13に検証環境の起動開始を通知し(S01)、これを受けた本番側エージェント13は、本番環境の構成を検証側エージェント23に通知する(S02)。検証側エージェント23は、本番環境を模して検証用仮想マシン21の構成を設定する(S03)。この設定の終了を受けて、本番側エージェント13は、本番環境におけるディスクアクセスの監視を開始し(S04)、ディスクの更新要求があると、図8の更新処理を実行する。一方、検証側エージェント23は、検証用仮想マシン21からのディスクアクセスの要求の監視を開始させ(S05)、検証用仮想マシン21を起動し(S06)、ディスクアクセスの要求があると、図9のディスクアクセス処理を実行する。
図8の本番更新処理では、本番環境の運用で本番機アプリケーション11によるディスクアクセスがあると、本番側エージェント13は、このアクセスが読み込み要求か否かを判断する(S11)。読み込み要求の場合には、S12-14をスキップしてS15に進み、本番用ディスク12に対して読み込みを実行し(S15)、読み込み結果を本番機アプリケーション11に返す(S16)。読み込み要求でない場合、すなわち書き込み要求である場合には、本番側エージェント13は、書き込みの対象となるデータ領域が本番または検証環境で更新済か否かを判断する(S12)。この判断は、本番側管理テーブル及び検証側管理テーブルの該当セルのフラグをチェックすることにより行われる。フラグが「I」であれば、「U」をセットした上でNoに分岐し、フラグが「U」であれば、Yesに分岐する。
更新済でない場合には、本番側エージェント13は、本番用ディスク12から該当データを読み込み(S13)、検証側エージェント23に該当データを送信する(S14)。検証側エージェント23は、送られたデータに基づいて、該当データ領域が検証用ディスク22に存在するか否かを判断する(S17)。この判断は、検証側管理テーブルの該当セルのフラグをチェックすることにより行われる。フラグが「I」であれば、「U」にセットしてNoに分岐し、「U」または数字であればYesに分岐する。
該当データ領域が検証用ディスク22に存在しない場合には、検証側エージェント23は、検証用ディスク22に新たなデータ領域を確保し(S18)、確保したデータ領域にデータを書き込む(S19)。なお、S18では、検証用ディスク22から未使用のデータブロックを取得し、取得したデータブロックのブロック番号(領域番号)を検証側管理テーブルの該当するセルにセットする。また、S19では、検証側管理テーブルを参照して該当するデータ領域のブロック番号を取得し、このブロック番号で示された領域に対してデータを書き込む。一方、該当データ領域が検証用ディスク22に存在する場合には、S18,S19をスキップして、再びアクセスがあるまで待機する。
図9のディスクアクセス処理は、検証用仮想マシン21からディスクへのアクセス要求があると実行される。ここではまず、検証側エージェント23が、アクセス要求されたデータ領域が検証用ディスク22に存在するか否かを判断する(S21)。この判断は、検証側管理テーブルの該当セルのフラグをチェックすることにより行われる。フラグが「I」であればNoに分岐し、「U」または数字であればYesに分岐する。
該当データ領域が検証用ディスク22に存在しない場合には、検証側エージェント23は、アクセス要求が読み込み要求か否かを判断する(S22)。ここでは、読み込みであればYesに分岐し、書き込みであれば、検証側エージェント23は、検証側管理テーブルの該当セルのフラグを「U」に変更してNoに分岐する。読み込み要求である場合には、本番側エージェント13に対して読み込み要求を発する(S23)。
本番側エージェント13は、検証側エージェント23から読み込み要求を受けると、本番用ディスク12から該当データを読み込み(S24)、もう一度、該当データ領域が本番または検証環境で更新済であるか否かを確認する(S25)。この判断は、本番側管理テーブルの該当セルのフラグをチェックすることにより行われる。フラグが「I」であれば、Noに分岐し、フラグが「U」であれば、Yesに分岐する。なお、S25の判断は、S21で検証用ディスクに該当データ領域がないと判断された場合に行われるため、通常はNoとなるが、S21からS25までの僅かな時間内に並行処理されている本番更新処理によりテーブルが書き換えられる可能性があるため、ここで再度チェックするようにしている。該当データ領域が更新済でない場合には、本番側エージェント13は、検証側エージェント23にデータを送る(S26)。更新済であった場合には、本番側エージェント13は本番用ディスク12から読み込んだデータを送らずに検証側エージェント23に処理を渡す。
一方、検証側エージェント23は、該当データ領域が検証用ディスク22に存在せず(S21, No)、ディスクアクセスが書き込み要求であった場合(S22, No)には、検証用ディスクに新たなデータ領域を確保し(S27)、確保された領域に対してデータを書き込み(追加、S28)、結果を検証用仮想マシン21に返す(S29)。なお、S27では、検証用ディスク22から未使用のデータブロックを取得し、取得したデータブロックのブロック番号(領域番号)を検証側管理テーブルの該当するセルにセットする。また、S28では、検証側管理テーブルを参照して該当するデータ領域のブロック番号を取得し、このブロック番号で示された領域に対してデータを書き込む。
また、検証側エージェント23は、該当データ領域が検証用ディスク22に存在する場合(S21, Yes)には、この領域に対してデータを書き込み(更新、S28)、アクセス結果を検証用仮想マシン21に返す(S29)。なお、本番用ディスク12からデータを読み込んだ場合、更新が実行されてS25の判断がYesとなった場合には、検証側エージェント23は検証用ディスク22の該当領域からデータを読み込ませ(S28)、これを検証用仮想マシン21に送り、Noとなった場合には、本体側エージェント13から送られたデータを検証用仮想マシン21に送る。
このように、図9のディスクアクセス処理は、管理テーブルの更新の有無により、以下にまとめるように、読み込み、書き込みのそれぞれについて2通り、合計4通りの処理を実現している。すなわち、読み込みについては、更新がない場合には本番用ディスク12から読み込み、更新がある場合には検証用ディスクから読み込む。書き込みはいずれも検証用ディスクに対して実行されるが、更新がない場合には新たに領域を確保してデータを追加し、更新がある場合には既存の領域のデータを更新する。
次に、上記のソフトウェア検証システムによりネットワーク通信を利用したソフトウェアを検証するための方法について説明する。検証環境は、本番環境の資源を使って起動されるため、ネットワークに接続される場合のネットワークアドレス(IPアドレス)も本番環境のものと等しくなる。このため、何ら対策を講じないと、ネットワーク通信の際に衝突が生じる。そこで、本実施形態では、検証用仮想マシンを検証側エージェントを介してネットワークに接続する。
図10は、本発明のソフトウェア検証システムのネットワーク接続を説明するための概略図である。ここでは、4つの本番環境A1, A2, A3, A4に対して2台の検証機C1, C2を設け、一方の検証機C1上に本番環境A1, A2に対応する検証用仮想マシンB1, B2を構築し、他方の検証機C2上に本番環境A3, A4に対応する検証用仮想マシンB3, B4を構築している。検証用仮想マシンB1, B2は、検証側エージェントD1を介してネットワークNに接続され、検証用仮想マシンB3, B4は、検証側エージェントD2を介してネットワークNに接続されている。なお、このネットワークには、外部資源Eが接続されている。
検証側エージェントD1, D2は、仮想マシン同士の通信の中継をすると共に、ネットワークを介した外部との通信については、許可された通信先についてはネットワークアドレスを変換して行わせ、許可されない通信先については、通信を遮断する。この処理の流れを図11に示すフローチャートに基づいて説明する。
最初に検証側エージェントD1(D2)がデータを送信する場合について説明する。検証用仮想マシンからデータを送信する場合、検証側エージェントは、送信先が仮想マシンか否かを判断し(S31)、送信先が仮想マシンであれば、検証側エージェント内や検証側エージェント間の通信経路で通信が可能であるため、アドレスの変換をせずに、送信先の仮想マシンを管理する検証側エージェントにデータを送る(S35)。送信先が仮想マシンでない場合には、送信先への通信が許可されているか否かを判断する(S32)。許可されていない場合にはデータを送信せずに(S33)、次の通信要求があるまで待機する。送信先が仮想マシンでなく、かつ、送信が許可されている場合には、検証側エージェントは、送信元アドレスを本番環境アドレスとは異なる検証用仮想マシンのアドレスに書き替えてデータを送る(S34)。
一方、検証側エージェントがデータを受信する場合には、検証用エージェントは、送信元が仮想マシンであるか否かを判断する(S41)。そして、送信元が仮想マシンでなければ、送信先アドレスをこのエージェントが管理している仮想マシンが対応する本番環境のマシンのアドレスに書き替え(S42)、送信先の仮想マシンにデータを送る(S43)。送信元が仮想マシンであれば、アドレスを書き替えずに送信先の仮想マシンにデータを送る(S43)。
このように、ネットワークを介して通信をする際には仮想マシンのアドレスを適宜変更することにより、ネットワークを介した通信においても検証用仮想マシンと本番機とのアドレスの衝突を避け、ネットワーク通信を利用したソフトウェアの検証を行うことができる。
本発明の実施形態にかかるソフトウェア検証システムを示すブロック図である。 図1に開示されるシステムの各エージェントで利用される管理用テーブルの内容を示す説明図である。 図1に開示されるシステムの各エージェントで利用される管理用テーブルの内容を示す説明図である。 図1に開示されるシステムの各エージェントで利用される管理用テーブルの内容を示す説明図である。 図1に開示されるシステムの各エージェントで利用される管理用テーブルの内容を示す説明図である。 図1に開示されるシステムの各エージェントで利用される管理用テーブルの内容を示す説明図である。 図1に開示されるシステムの各エージェントの起動時の作動を示すフローチャートである。 図1に開示されるシステムの各エージェントの本番更新時の作動を示すフローチャートである。 図1に開示されるシステムの各エージェントのディスクアクセス時の作動を示すフローチャートである。 本発明の実施形態にかかるソフトウェア検証システムの他の例を示すブロック図である。 図10に開示されるシステムのエージェントのネットワーク通信時の作動を示すフローチャートである。
符号の説明
10 本番機
11 本番機アプリケーション
12 本番用ディスク
13 本番側エージェント
20 検証機
21 検証用仮想マシン
21a 被検証アプリケーション
22 検証用ディスク
23 検証側エージェント

Claims (8)

  1. 実際の業務で運用される本番環境を模して構築された検証環境でソフトウェアの動作を検証するソフトウェア検証方法において、
    前記検証環境内で、被検証ソフトウェアを実行するための検証用仮想マシンを前記本番環境内の本番用ディスクから起動させ、
    前記本番環境の運用で本番用ディスクへの情報の書き込みが要求された場合には、書き込み対象領域が前記検証環境内の検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで前記検証用ディスクに待避させた後、前記本番用ディスクへの書き込みを実行させ、
    前記検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、前記検証用ディスクに該当領域が存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが読み込みである場合には前記本番用ディスクからの読み込みを実行させ、アクセスが書き込みである場合には前記検証用ディスクに該当領域を確保して書き込みを実行させることを特徴とするソフトウェア検証方法。
  2. 前記検証用仮想マシンが検証側エージェントを介してネットワークに接続され、
    前記検証側エージェントは、情報を送信する場合には、送信先がローカル接続された他の検証用仮想マシンであれば送信元アドレスを本番環境のアドレスとしたまま当該他の検証用仮想マシンの検証側エージェントに情報を送信し、送信先がローカル接続された他の検証用仮想マシンでなければ送信元アドレスを前記検証用仮想マシンのアドレスに書き換えて情報を送信先に送信し、
    情報を受信する場合には、送信元がローカル接続された他の検証用仮想マシンであれば送信先アドレスを本番環境のアドレスとしたまま前記検証用仮想マシンにより受信させ、送信元がローカル接続された他の検証用仮想マシンでなければ送信先アドレスを本番環境のアドレスに書き換えて前記検証用仮想マシンにより受信させることを特徴とする請求項1に記載のソフトウェア検証方法。
  3. 前記本番環境と前記検証環境とにそれぞれ前記本番用ディスクの領域に対応したセルを持つ管理テーブルが備えられ、前記本番環境の管理テーブルには、前記本番用ディスクへの書き込みが実行された領域に対応するセルに更新済を示すフラグを立て、前記検証環境の管理テーブルには、前記本番用ディスクから待避された領域及び前記検証用仮想マシンにより書き込みが実行された領域に対応するセルに更新済を示すフラグを立て、前記検証用仮想マシンがディスクからの読み込みを要求した際に、前記検証環境及び前記本番環境の管理テーブルの双方で未アクセスと記録されている場合にのみ前記本番用ディスクから情報を読み込むようにしたことを特徴とする請求項1または2に記載のソフトウェア検証方法。
  4. 実際の業務で運用される本番環境を模して構築された検証環境でソフトウェアの動作を検証するソフトウェア検証システムにおいて、
    前記検証環境内で起動され、被検証ソフトウェアを実行するための検証用仮想マシンと、
    前記検証環境内に配置され、前記検証用仮想マシンと外部資源との中継手段となる検証側エージェントと、
    前記本番環境内に配置され、前記検証側エージェントと前記本番環境の資源との中継手段となる本番側エージェントとを備え、
    前記検証側エージェントは、前記検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、前記検証環境内の検証用ディスクに該当領域が存在するか否かを判断し、存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが書き込みである場合には前記検証用ディスクに該当領域を確保して書き込みを実行させ、アクセスが読み込みである場合には前記本番用ディスクからの読み込みを前記本番側エージェントに要求して前記本番側エージェントから送られた情報を前記検証用仮想マシンに送り、
    前記本番側エージェントは、前記検証側エージェントから前記本番用ディスクへの読み込み要求があると、前記本番環境内の本番用ディスクの該当領域から読み込んだ情報を前記検証側エージェントに送り、前記本番環境の運用で前記本番用ディスクへの情報の書き込みが要求されると、書き込み対象領域が前記検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで前記検証側エージェントに送り、前記検証用ディスクに待避させた後、前記本番用ディスクへの書き込みを実行させることを特徴とするソフトウェア検証システム。
  5. 前記検証用仮想マシンが前記検証側エージェントを介してネットワークに接続され、
    前記検証側エージェントは、情報を送信する場合には、送信先がローカル接続された他の検証用仮想マシンであれば送信元アドレスを本番環境のアドレスとしたまま当該他の検証用仮想マシンの検証側エージェントに情報を送信し、送信先がローカル接続された他の検証用仮想マシンでなければ送信元アドレスを前記検証用仮想マシンのアドレスに書き換えて情報を送信先に送信し、
    情報を受信する場合には、送信元がローカル接続された他の検証用仮想マシンであれば送信先アドレスを本番環境のアドレスとしたまま前記検証用仮想マシンにより受信させ、送信元がローカル接続された他の検証用仮想マシンでなければ送信先アドレスを本番環境のアドレスに書き換えて前記検証用仮想マシンにより受信させることを特徴とする請求項5に記載のソフトウェア検証システム。
  6. 実際の業務で運用される本番環境を模して構築された、検証ソフトウェアを実行するための検証用仮想マシンを動作させるコンピュータに、
    前記本番環境から、本番または検証環境で更新済みでない本番用ディスク領域に対する書き込み要求に基づき送信されてくるデータに基づき、該当データ領域が検証用ディスクに存在しない場合に、該検証用ディスクに該当領域を確保して該データの書込みを実行させ、
    前記検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、前記検証用ディスクに該当領域が存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが読み込みである場合には前記本番環境に本番用ディスクからの読み込みを依頼して本番環境または検証環境で更新済みでないときに送信されてくるデータを該仮想マシンに返し、アクセスが書き込みである場合には前記検証用ディスクに該当領域を確保して書き込みを実行させる
    ことを特徴とする検証環境エージェントプログラム。
  7. コンピュータに、
    ディスクへの情報の書き込みが要求された場合には、書き込み対象領域が、自環境を模して構築された検証環境内の検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで前記検証環境に送信した後、該ディスクへの書き込みを実行させ、
    前記検証環境から、検証環境用ディスク上の情報が存在しない領域への読み込み要求に応じ送信されてくる、ディスクからのデータの読み込み依頼に基づき、該当データを読み込み、該当データ領域は本番または検証環境で更新済みでない場合に、該当データを該検証環境に送信させる
    ことを特徴とする本番環境エージェントプログラム。
  8. 実際の業務で運用される本番環境を模して構築された、検証ソフトウェアを実行するための検証用仮想マシンを動作させるコンピュータに、
    前記本番環境から、本番または検証環境で更新済みでない本番用ディスク領域に対する書き込み要求に基づき送信されてくるデータに基づき、該当データ領域が検証用ディスクに存在しない場合に、該検証用ディスクに該当領域を確保して該データの書き込みを実行させ、
    前記検証用仮想マシンがディスクの所定領域へのアクセスを要求した際、前記検証用ディスクに該当領域が存在する場合には、当該領域へのアクセスを実行させ、該当領域が存在しない場合には、アクセスが読み込みである場合には前記本番環境に本番用ディスクからの読み込みを依頼して本番環境または検証環境で更新済みでないときに送信されてくるデータを該仮想マシンに返し、アクセスが書き込みである場合には前記検証用ディスクに該当領域を確保して書き込みを実行させ、
    前記本番環境のコンピュータに、
    ディスクへの情報の書き込みが要求された場合には、書き込み対象領域が、自環境を模して構築された検証環境内の検証用ディスクに待避されているか否かを確認し、待避されていない場合には、更新前の情報を読み込んで前記検証環境に送信した後、該ディスクへの書き込みを実行させ、
    前記検証環境から、検証環境用ディスク上の情報が存在しない領域への読み込み要求に応じ送信されてくる、ディスクからのデータの読み込み依頼に基づき、該当データを読み込み、該当データ領域は本番または検証環境で更新済みでない場合に、該当データを該検証環境に送信させる
    ことを特徴とするソフトウェア検証プログラム。
JP2006097606A 2006-03-31 2006-03-31 ソフトウェア検証方法、システム及びプログラム Withdrawn JP2007272579A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006097606A JP2007272579A (ja) 2006-03-31 2006-03-31 ソフトウェア検証方法、システム及びプログラム
US11/605,380 US20070234303A1 (en) 2006-03-31 2006-11-29 Software verification method, system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006097606A JP2007272579A (ja) 2006-03-31 2006-03-31 ソフトウェア検証方法、システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2007272579A true JP2007272579A (ja) 2007-10-18

Family

ID=38561038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006097606A Withdrawn JP2007272579A (ja) 2006-03-31 2006-03-31 ソフトウェア検証方法、システム及びプログラム

Country Status (2)

Country Link
US (1) US20070234303A1 (ja)
JP (1) JP2007272579A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102207885A (zh) * 2010-03-31 2011-10-05 国际商业机器公司 计算机***的虚拟机管理器及其启动虚拟机的方法
CN111767222A (zh) * 2020-06-28 2020-10-13 杭州数梦工场科技有限公司 数据模型的验证方法、装置、电子设备、存储介质

Also Published As

Publication number Publication date
US20070234303A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
CN107256256B (zh) 连接到联网存储***的本地存储器
CN103309709B (zh) 一种固件升级方法、装置及通信设备
KR101644666B1 (ko) 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델
US6314567B1 (en) Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
US6269442B1 (en) Apparatus and method for on-line replacement of a running program code and data using checkpoints
CN100468345C (zh) 冲突解决装置
US20010044935A1 (en) Information processing method and apparatus and recording medium
CN109656889B (zh) 基于区块链的文件***实现方法、装置、设备和存储介质
CN107479922A (zh) 一种闪存数据管理方法、装置及计算机可读存储介质
CN108509215B (zh) 一种***软件的更换方法、装置、终端设备及存储介质
US20120221609A1 (en) Data Storage System and Method
CN114925084B (zh) 分布式事务处理方法、***、设备及可读存储介质
CN103853535A (zh) 修改中间件的方法和装置
CN109923547B (zh) 程序行为监控设备、分布式对象生成管理设备、存储介质、以及程序行为监视***
CN103309751A (zh) 提供文件***功能的终端的设备和方法
CN107291507B (zh) 一种虚拟机虚拟硬盘的升级方法及电子设备
CN110119388B (zh) 文件读写方法、装置、***、设备及计算机可读存储介质
JP2005128771A (ja) データファイルシステム、データアクセスサーバ、およびデータアクセスプログラム
CN113448643A (zh) 配置数据管理***及方法
JP4548037B2 (ja) キャッシュメモリの管理方法、ストレージ装置または計算機システム
JP2007272579A (ja) ソフトウェア検証方法、システム及びプログラム
KR101005979B1 (ko) 표시 제어 장치, 표시 제어 프로그램을 기록한 매체 및표시 제어 방법
US20100138514A1 (en) Method and device for data management in a distributed environment
KR102123701B1 (ko) 네트워크 부트 시스템
CN112860595B (zh) Pci设备或pcie设备、数据存取方法及相关组件

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090914