(57)【要約】      （修正有）【課題】実機を用意するよりも、費用ならびに準備時間を削減し、実機へのパッチ適用の際に発生する問題を事前に把握して、パッチ適用後のトラブル発生を回避する検証システムを提供する。【解決手段】検証システム１０は、実際に稼動している制御システム１の計算機２のプログラム５と同一のプログラム１２、及びプログラムにパッチを適用したパッチ適用済みプログラム１３を持つ仮想計算機１１とパッチ適用判定装置１４とがＬＡＮ１５を介して接続されている。パッチ適用判定装置は、プログラム及びパッチ適用済みプログラムからの制御命令をチェックし、この制御命令に対する応答を再現する出力チェック・入力再現部１６、ＬＡＮ上の通信データを記憶する通信採取部１７、出力チェック・入力再現部のチェック結果と応答から次の制御命令までの時間とから、パッチの適用可否を判断する適用判定部１８で構成し、予め制御システムのパッチの適用可否を判断する。【選択図】図１
2020030506.tif 000002
【特許請求の範囲】
【請求項１】
システムの制御を行うプログラムを実行する計算機と、
前記計算機からの制御命令を処理して応答する制御装置と、
前記計算機と前記制御装置とを接続する第１のネットワーク装置と、
当該第１のネットワーク装置に接続されるとともに、前記計算機と前記制御装置との間で、前記第１のネットワーク装置を介してやり取りされる制御命令および応答を採取し通信記録として採取する通信採取部を有する通信データ記憶装置と、
を備えて、実際のシステムを制御する制御システムに対し、前記制御システムの動作を予め検証する制御システムの検証システムであって、
前記計算機を模擬して複数種類のプログラムを実行する仮想計算機と、
パッチ処理の適用可否を判断するパッチ適用判定装置と、
前記仮想計算機と前記パッチ適用判定装置とを接続する第２のネットワーク装置と、
を備え、
前記仮想計算機は、
前記プログラムと同一のプログラム及び当該プログラムにパッチ処理が適用されたパッチ適用済みプログラムを有し、
前記パッチ適用判定装置は、
前記第２のネットワーク装置を介して、プログラム及びパッチ適用済みプログラムからの制御命令をチェックし、この制御命令に対する応答を再現する出力チェック・入力再現部、前記第２のネットワーク装置上の通信データを採取する通信採取部、
および当該通信採取部が保有する出力チェック・入力再現部のチェック結果と、当該出力チェック・入力再現部の応答から次の制御命令までの時間とから、前記パッチ処理の適用可否を判断する適用判定部、
を有して、
前記制御システムの計算機に対するパッチ内容の検証及びパッチ適用の判定を自動化することを特徴とする制御システムの検証システム。
【請求項２】
前記パッチ適用判定装置の出力チェック・入力再現部は、前記プログラムを前記仮想計算機で実行した際の制御命令が、前記プログラムを前記制御システムで実行した際の制御命令と一致しない場合には、一致しない制御命令の中の制御命令の種別と一致しない部分を可変部として可変部記録に記録し、前記パッチ適用済みプログラムを前記仮想計算機で実行した際の制御命令で可変部記録に記録されている可変部以外が一致するか否かのチェックを行うことを特徴とする請求項１に記載の制御システムの検証システム。
【請求項３】
前記パッチ適用判定装置の適用判定部は、ユーザインターフェイスボタンがオンに変更後に、次の制御命令の送信を行う制御命令の種別である除外命令種別のリストを基に、除外命令種別に該当しない制御命令についてのみ、前記パッチ適用済みプログラムを実行した際に取得した通信記録を確認して、パッチの適用可否を判断することを特徴とする請求項１に記載の制御システムの検証システム。
【請求項４】
前記パッチ適用判定装置の適用判定部は、前記制御システムで取得した通信記録、前記仮想計算機で前記プログラムを実行した際に取得した通信記録、および前記仮想計算機で前記パッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断する際に、パッチ適用の可否を判定するための命令種別での許容の閾値である命令種別影響閾値を用いることを特徴とする請求項１に記載の制御システムの検証システム。
【請求項５】
実際のシステムを制御する制御システムの計算機を模擬して、プログラム及びプログラムにパッチが適用されたパッチ適用済みプログラムを実行する仮想計算機と第２のネットワーク装置を介して接続されているパッチ適用判定装置であって、
前記プログラム及び前記パッチ適用済みプログラムから送られてくる制御命令に対して、制御命令が通信記録との一致をチェックして通信記録を基に応答を生成して送信する出力チェック・入力再現部と、
前記仮想計算機との間で前記第２のネットワーク装置を介してやり取りされる制御命令及び応答を採取して通信記録として記憶する通信採取部と、
前記出力チェック・入力再現部のチェック結果、前記制御システムで取得した通信記録、前記仮想計算機で前記プログラムを実行した際に取得した通信記録、および前記仮想計算機で前記パッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断する適用判定部と、
を有することを特徴とするパッチ適用判定装置。
【請求項６】
前記出力チェック・入力再現部は、前記プログラムを前記仮想計算機で実行した際の制御命令が、プログラムを前記制御システムで実行した際の制御命令と一致しない場合には、一致しない制御命令の中の制御命令種別と、一致しない部分を可変部として可変部記録に記録し、前記パッチ適用済みプログラムを前記仮想計算機で実行した際の制御命令で前記可変部記録に記録されている可変部以外が一致するかのチェックを行うことを特徴とする請求項５に記載のパッチ適用判定装置。
【請求項７】
前記適用判定部は、ユーザインターフェイスボタンがオンに変更後に、次の制御命令の送信を行う制御命令の種別を含む除外命令種別のリストを基に、当該除外命令種別に該当しない制御命令についてのみ、前記パッチ適用済みプログラムを実行した際に取得した通信記録を基にパッチの適用可否を判断することを特徴とする請求項５に記載のパッチ適用判定装置。
【請求項８】
前記適用判定部は、前記制御システムで取得した通信記録、前記仮想計算機で前記プログラムを実行した際に取得した通信記録、および前記仮想計算機で前記パッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断する際に、パッチ適用の可否を判定するための命令種別での許容の閾値である命令種別影響閾値を用いることを特徴とする請求項５に記載のパッチ適用判定装置。
【請求項９】
システムの制御を行うプログラムを実行する計算機と、
前記計算機からの制御命令を処理して応答する制御装置と、
前記計算機と前記制御装置とを接続する第１のネットワーク装置と、
当該第１のネットワーク装置に接続されるとともに、前記計算機と前記制御装置との間で、前記第１のネットワーク装置を介してやり取りされる制御命令および応答を採取し通信記録として採取する通信採取部を有する通信データ記憶装置と、
を備えて、実際のシステムを制御する制御システムに対し、前記制御システムの動作を予め検証する制御システムの検証システムであって、
前記計算機を模擬して複数種類のプログラムを実行する仮想計算機と、
パッチ処理の適用可否を判断するパッチ適用判定装置と、
前記仮想計算機と前記パッチ適用判定装置とを接続する第２のネットワーク装置と、
を備え、
前記仮想計算機は、
前記プログラムと同一のプログラム及び当該プログラムにパッチ処理が適用されたパッチ適用済みプログラムを有し、
前記パッチ適用判定装置は、
プログラム及びパッチ適用済みプログラムからの制御命令に対して、通信記録を基に応答を生成して送信する入力再現部、仮想計算機とパッチ適用判定装置との間で前記第２のネットワーク装置を介してやり取りされる制御命令及び応答を採取して通信記録として記憶する通信採取部、制御システムで取得した通信記録と仮想計算機でプログラムを実行した際に取得した通信記録と仮想計算機でパッチ適用済みプログラムを実行した際に取得した通信記録を基にパッチの適用可否を判断する出力チェック・適用判定部、を有して
前記制御システムの計算機に対するパッチ内容の検証及びパッチ適用の判定を自動化することを特徴とする制御システムの検証システム。
【請求項１０】
前記パッチ適用判定装置の入力再現部は、プログラムを仮想計算機で実行した際の制御命令が、プログラムを制御システムで実行した際の制御命令と一致しない場合には、一致しない制御命令の中の制御命令種別と一致しない部分を可変部として可変部記録に記録し、前記パッチ適用判定装置の出力チェック・適用判定部は、前記パッチ適用済みプログラムを前記仮想計算機で実行した際の制御命令で可変部記録に記録されている可変部以外が一致するか否かのチェックを行うことを特徴とする請求項９に記載の制御システムの検証システム。
【請求項１１】
前記パッチ適用判定装置の出力チェック・適用判定部は、ユーザインターフェイスボタンがオンに変更後に、次の制御命令の送信を行う制御命令の種別である除外命令種別のリストを基に、当該除外命令種別に該当しない制御命令についてのみ、前記パッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断することを特徴とする請求項９に記載の制御システムの検証システム。
【請求項１２】
前記パッチ適用判定装置の出力チェック・適用判定部は、前記制御システムで取得した通信記録、前記仮想計算機でプログラムを実行した際に取得した通信記録、および前記仮想計算機でパッチ適用済みプログラムを実行した際に取得した通信記録を基にパッチの適用可否を判断する際に、パッチ適用の可否を判定するための命令種別での許容の閾値である命令種別影響閾値を用いて、パッチの適用可否を判断することを特徴とする請求項９に記載の制御システムの検証システム。
【請求項１３】
実際のシステムを制御する制御システムの計算機を模擬して、プログラム及びプログラムにパッチが適用されたパッチ適用済みプログラムを実行する仮想計算機と第２のネットワーク装置を介して接続されているパッチ適用判定装置であって、
前記プログラム及び前記パッチ適用済みプログラムから送られてくる制御命令に対して、通信記録を基に応答を生成して送信する入力再現部と、
前記仮想計算機と前記パッチ適用判定装置との間で、前記第２のネットワーク装置を介してやり取りされる制御命令及び応答を採取して通信記録として記憶する通信採取部と、
前記制御システムで取得した通信記録、前記仮想計算機でプログラムを実行した際に取得した通信記録、および仮想計算機でパッチ適用済みプログラムを実行した際に取得した通信記録を基にパッチの適用可否を判断する出力チェック・適用判定部と、
を有することを特徴とするパッチ適用判定装置。
【請求項１４】
前記入力再現部は、前記プログラムを前記仮想計算機で実行した際の制御命令が、プログラムを前記制御システムで実行した際の制御命令と一致しない場合には、一致しない制御命令の中の制御命令種別と一致しない部分を可変部として可変部記録に記録し、前記出力チェック・適用判定部は、前記パッチ適用済みプログラムを仮想計算機で実行した際の制御命令で可変部記録に記録されている可変部以外が一致するか否かのチェックを行うことを特徴とする請求項１３に記載のパッチ適用判定装置。
【請求項１５】
前記出力チェック・適用判定部は、ユーザインターフェイスボタンがオンに変更後に、次の制御命令の送信を行う制御命令の種別を含む除外命令種別のリストを基に、当該除外命令種別に該当しない制御命令についてのみ、前記パッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断することを特徴とする請求項１３に記載のパッチ適用判定装置。
【請求項１６】
前記出力チェック・適用判定部は、前記制御システムで取得した通信記録、前記仮想計算機でプログラムを実行した際に取得した通信記録、および前記仮想計算機でパッチ適用済みプログラムを実行した際に取得した通信記録を基に、パッチの適用可否を判断する際に、パッチ適用の可否を判定するための命令種別での許容の閾値である命令種別影響閾値を用いて、パッチの適用可否を判断することを特徴とする請求項１３に記載のパッチ適用判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、制御システムの検証システム及びパッチ適用判定装置に関するものである。
【背景技術】
【０００２】
従来の制御システム内の計算機に対するパッチの検証を行うパッチ管理システムは、パッチ検証用システムを構築し、パッチ適用によって問題がないことを検証システムで確認して後、稼動システムに適用するようにしていた。このため、パッチ適用による性能劣化を事前に把握するためには、実環境で稼動している機材と同じ機材を使って、パッチ検証用システムを構築する必要があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１０７８０３号公報（第５−１０頁、第１図）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のパッチ管理システムでは、パッチ適用による性能劣化を事前に把握するためには、実環境で稼動している計算機と同じハードウェアを使ってパッチ検証用システムを構築する必要があった。このため、実環境で稼動しているハードウェアと検証環境で稼動させるハードウェアの二重投資が必要であった。この二重投資を避けるために、従来のパッチ管理システムでは、論理計算機、あるいはエミュレーションを用いてパッチ検証用システムを構築する方法も開示されているが、論理計算機、あるいはエミュレーションを用いた場合には、実環境で稼動しているハードウェアとの性能差によりリアルタイム性能への影響が発生する。リアルタイム性能は特に制御システムで重要であり、この影響を考慮した上でパッチの適用可否を判断する必要がある。
【０００５】
しかしながら、従来のパッチ管理システムでは、リアルタイム性能への影響を含めてパッチ適用可否を判断する方法については開示も示唆もされていない。このため、従来のパッチ管理システムでパッチ適用可と判断したパッチを実環境の計算機に適用した場合に、リアルタイム性能の低下が原因で制御システムが正しく動作しなくなるという問題があった。
【０００６】
本願は上記のような課題を解決するための技術を開示するものであり、仮想計算機を用いてパッチ適用の検証システムを構築することにより、実際の制御システムを用意する場合に比較して、費用を抑え、かつ、準備に要していた時間を削減することを目的とする。また、実際の制御システムへのパッチ適用の際に発生する問題を事前に把握して、パッチ適用後のトラブルの発生を回避する検証システムを実現することを目的とする。
【課題を解決するための手段】
【０００７】
本願に開示される制御システムの検証システムは、
システムの制御を行うプログラムを実行する計算機と、
前記計算機からの制御命令を処理して応答する制御装置と、
前記計算機と前記制御装置とを接続する第１のネットワーク装置と、
当該第１のネットワーク装置に接続されるとともに、前記計算機と前記制御装置との間で、前記第１のネットワーク装置を介してやり取りされる制御命令および応答を採取し通信記録として採取する通信採取部を有する通信データ記憶装置と、
を備えて、実際のシステムを制御する制御システムに対し、前記制御システムの動作を予め検証する制御システムの検証システムであって、
前記計算機を模擬して複数種類のプログラムを実行する仮想計算機と、
パッチ処理の適用可否を判断するパッチ適用判定装置と、
前記仮想計算機と前記パッチ適用判定装置とを接続する第２のネットワーク装置と、
を備え、
前記仮想計算機は、
前記プログラムと同一のプログラム及び当該プログラムにパッチ処理が適用されたパッチ適用済みプログラムを有し、
前記パッチ適用判定装置は、
前記第２のネットワーク装置を介して、プログラム及びパッチ適用済みプログラムからの制御命令をチェックし、この制御命令に対する応答を再現する出力チェック・入力再現部、前記第２のネットワーク装置上の通信データを採取する通信採取部、
および当該通信採取部が保有する出力チェック・入力再現部のチェック結果と、当該出力チェック・入力再現部の応答から次の制御命令までの時間とから、前記パッチ処理の適用可否を判断する適用判定部、
を有して、
前記制御システムの計算機に対するパッチ内容の検証及びパッチ適用の判定を自動化することを特徴とするものである。
【発明の効果】
【０００８】
本願に開示される制御システムの検証システムによれば、仮想計算機を用いてパッチ適用の検証システムを構築することにより、実際の制御システムを用意する場合に比較して、費用を抑え、かつ、準備に要していた時間を削減することができる。また、実際の制御システムへのパッチ適用の際に発生する問題を事前に把握することができ、パッチ適用後のトラブルの発生を回避することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１の制御システムの検証システムの一例を示す図である。
【図２】実施の形態１の制御システムの検証システムの通信記録の一例を示す図である。
【図３】実施の形態１の制御システムの検証システムにおける出力チェック・入力再現部の動作フローを示す図である。
【図４】実施の形態２の制御システムの検証システムの一例を示す図である。
【図５】実施の形態２の制御システムの検証システムの可変部記録の一例を示す図である。
【図６】実施の形態２の制御システムの検証システムにおける出力チェック・入力再現部の動作フローを示す図である。
【図７】実施の形態３の制御システムの検証システムの一例を示す図である。
【図８】実施の形態３の制御システムの検証システムにおける除外命令種別リストの一例を示す図である。
【図９】実施の形態４の制御システムの検証システムの一例を示す図である。
【図１０】実施の形態４の制御システムの検証システムにおける命令種別影響閾値の一例を示す図である。
【図１１】実施の形態５の制御システムの検証システムの一例を示す図である。
【図１２】実施の形態５の制御システムの検証システムにおける入力再現部の動作フローを示す図である。
【図１３】実施の形態５の制御システムの検証システムにおける出力チェック・適用判定部の動作フローを示す図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
以下、実施の形態１の制御システムの検証システムの一例について、図１に基づいて説明する。
図１において、実際のシステムを制御する制御システム１は、実際に稼動している制御システムである。検証システム１０は、制御システム１にパッチを適用して良いか否かを判断するための検証用のシステムである。
制御システム１には、計算機２（実環境で稼動する計算機ゆえ、以下、実機２とも呼ぶ）と、計算機２からの制御命令を受けて応答を返す制御装置３が、第１のネットワーク装置４（以下では、ＬＡＮ４とも呼ぶ）を介して接続されている。計算機２上では、制御装置３を制御するためのプログラム５が実行される。ＬＡＮ４には、通信データ記憶装置６が接続されており、さらに通信データ記憶装置６には、ハードディスク装置８が接続されている。通信データ記憶装置６上では、ＬＡＮ４上の通信データを採取し記憶する通信採取部７が動作しており、計算機２と制御装置３の間の制御命令、あるいは応答の通信を採取し、通信記録９としてハードディスク装置８に格納する。
検証システム１０には、実環境で稼動する計算機を模擬した計算機であって実機とは異なる計算機である仮想計算機１１とパッチ適用判定装置１４が、第２のネットワーク装置１５（以下では、ＬＡＮ１５とも呼ぶ）を介して接続されている。仮想計算機１１上では、プログラム５と同一のプログラム１２と、プログラム５にパッチを適用したパッチ適用済みプログラム１３が実行される。
【００１１】
なお、仮想計算機１１の下には、仮想計算機１１を動作させる物理計算機があるが、自明であるため省略している。また、プログラム１２がＯＳなどでパッチ適用済みプログラム１３とパッチ適用前のプログラム１２とを１つの仮想計算機１１上に共存させられない場合には、仮想計算機１１を２つ用意して、プログラム１２とパッチ適用済みプログラム１３を別々に配置することで問題が回避できることも自明である。これらの仮想計算機は、動作環境をハードディスク等にバックアップしておき、実行時にのみ物理計算機上にリストアすることで、物理計算機を仮想計算機の数だけ用意する必要が無いことも自明である。
【００１２】
パッチ適用判定装置１４は、プログラム１２及びパッチ適用済みプログラム１３からの制御命令をチェックし、この制御命令に対する応答を再現する出力チェック・入力再現部１６、ＬＡＮ１５上の通信データを採取し記憶する通信採取部１７、出力チェック・入力再現部１６のチェック結果と応答から次の制御命令までの時間とから、パッチの適用可否を判断する適用判定部１８から構成される。パッチ適用判定装置１４には、ハードディスク装置１９が接続されており、通信記録９をコピーした通信記録２０、プログラム１２実行時の制御命令と応答を通信採取部１７が採取して記録した通信記録Ａ２１、パッチ適用済みプログラム１３実行時の制御命令と応答を通信採取部１７が採取して記録した通信記録Ｂ２２が格納される。
【００１３】
次に動作について説明する。
検証では、まず、制御システム１の実機２上でパッチの適用可否を判断する対象となっているプログラム５を実行する。プログラム５と制御装置３の間ではＬＡＮ４を経由して制御命令とこれに対する応答のやり取りが行われる。この時、通信データ記憶装置６では、通信採取部７によりＬＡＮ４上の通信を採取し、プログラム５から制御装置３への制御命令と制御装置３からプログラム５への応答を通信記録９として記録する。通信採取部７には、ＬＡＮ４上の通信データの採取で一般的に使用されているものを用いることができる。
【００１４】
なお、ＬＡＮ４に、図１に図示していない他の機器が接続され通信を行っている場合には、通信データの送り元又は送り先を計算機２と制御装置３に限定するように、通信採取部７にフィルタの設定を行うことで、計算機２と制御装置３の間の通信データのみが通信記録９に格納されるようにすることできる。
【００１５】
図２に、通信記録９の例を示す。プログラム５を終了した後、通信記録９をハードディスク装置１９上の通信記録２０にコピーする。コピーは、ＵＳＢメモリ、あるいは光学ディスクなどの可搬型メディアを使って行う。制御システム１の稼動状態に影響を与えなければ、ＬＡＮ４とＬＡＮ１５を接続して、これらのＬＡＮ経由で行っても良い。
【００１６】
次に、検証システム１０でパッチの適用可否の判定を行う。この判定を行う前に、パッチを適用した場合には、プログラムの処理時間の増加について許容する閾値をパッチ適用判定装置１４に設定しておく。
【００１７】
まず、プログラム１２を仮想計算機１１上で実行する。これに先立ちパッチ適用判定装置１４に、仮想計算機１１上で実行するプログラムがプログラム１２であることを起動パラメータ、あるいは設定ファイルに指定することで記憶させておく。
【００１８】
パッチ適用判定装置１４上では、通信採取部１７によりＬＡＮ１５上の通信情報（データ）を採取し、通信記録Ａ２１として記録する。出力チェック・入力再現部１６では、パッチ適用判定装置１４が受信した制御命令が、通信記録２０に記録されているものであるか否かをチェックし、記録されているものであれば（一致している場合には）、通信記録２０を基に応答を生成して、プログラム１２に送信する。上記のチェックで記録されているものでないと判明した場合（一致していない場合）には、検証不可であることを記録する。以上についての詳しい動作の内容は、後にフローチャートを使って説明する。
【００１９】
パッチ適用判定装置１４に検証不可であることが記録されていない場合には、次に、パッチ適用済みプログラム１３を仮想計算機１１上で実行する。これに先立ちパッチ適用判定装置１４に仮想計算機１１上で実行するプログラムがパッチ適用済みプログラム１３であることを、起動パラメータ、あるいは設定ファイルに指定することで記憶させておく。
【００２０】
パッチ適用判定装置１４上では、通信採取部１７によりＬＡＮ１５上の通信を採取し、通信記録Ｂ２２を記録する。出力チェック・入力再現部１６では、パッチ適用判定装置１４が受信した制御命令が通信記録２０に記録されているものと一致しているか否かをチェックし、一致している場合には通信記録２０を基に、応答を生成してプログラム１２に送信する。一致していない場合には、適用不可を記録する。詳しい動作は後にフローチャートを使って説明する。
【００２１】
仮想計算機１１上でプログラム１２とパッチ適用済みプログラム１３の実行を行った後、適用判定部１８でパッチ適用の可否を判定する。通信記録Ａ２１に記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間に対して、通信記録Ｂ２２に記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間と割合が、あらかじめ定めた閾値を越えていないものが無いかを確認する。式で表わすと下記の式（１）のようになる。Ｎが１からＭ−１までの全ての場合において閾値を超えているものが無ければ適用可と判定する。一方、１つ（の場合）でも閾値を超えているものがあれば適用不可と判定する。
【００２２】
【数１】
2020030506.tif 000003
【００２３】
図３に示したフローチャートを用いて、出力チェック・入力再現部１６の動作を説明する。
まず、送られてきた制御命令を受信する（ステップＳ１００）。受信した制御命令が通信記録２０に記録されている制御命令の中で次に受信を期待している制御命令（プログラム起動直後は最初の制御命令）と一致しているか否かをチェックする（ステップＳ１０１）。
【００２４】
一致している場合には、通信記録２０に記録されている当該制御命令を受信してから次の応答を送信するまでの時間分だけ処理を待ち（ステップＳ１０２）、その後に応答を送信する（ステップＳ１０３）。通信記録２０の中で次に受信を期待する制御命令の位置を記憶し（ステップＳ１０４）、処理を終了する。
【００２５】
ステップＳ１０１のチェックで受信した制御命令が通信記録２０に記録されている制御命令の中で次に受信を期待している制御命令と一致していない場合には、仮想計算機１１上で実行しているプログラムがパッチ適用済みプログラム１３かをプログラムの実行に先立ち記憶させていた情報から判定する（ステップＳ１０５）。実行しているプログラムがパッチ適用済みプログラム１３の場合には、適用不可を記録する（ステップＳ１０６）。一方、実行しているプログラムがパッチを適用していないプログラム１２の場合には、検証不可を記録する（ステップＳ１０７）。
【００２６】
このように、仮想計算機を用いてパッチ適用の検証環境を構築できるため、実計算機を用意するより費用を抑え、かつ、準備に要していた時間も削減することができる。さらに、実際の環境へのパッチ適用時に発生する問題、特にリアルタイム性能への影響を事前に把握することができ、パッチ適用後のトラブルの発生を回避することが可能になる。
【００２７】
実施の形態２．
次に、実施の形態２に関わる検証システムについて説明する。
本実施の形態の検証システムでは、制御命令に現在時刻など可変なパラメータが含まれている場合にも、パッチ適用の可否を判定できる。以下、この実施の形態２の検証システムの一例を図４に基づいて説明する。
【００２８】
実施の形態２に関わる検証システムにおいても、そのシステム構成は、実施の形態１のシステム構成とほぼ同じであるので、ここでは、実施の形態１と異なる点についてのみ説明する。
【００２９】
実施の形態２では、検証システム１０のハードディスク装置１９上に、可変部記録２３が格納される。この可変部記録２３の例を図５に示す。可変部記録の１行は、可変部を持つ命令の種別と、可変部の先頭からのオフセットと可変部の長さをカンマ「,」で組にして括弧で囲んだもので表す。また、可変部が複数ある場合には、さらに、同様の形式のものをカンマでつなげた形式のデータとなっている。ただし、この形式は可変部を示す一例であり、他の形式で示すことも可能である。
【００３０】
次に、実施の形態２に係る検証システム１０の動作について説明する。
図６に示したフローチャートにより、出力チェック・入力再現部１６の動作を説明する。
まず、送られてきた制御命令を受信する（ステップＳ２００）。
次に、仮想計算機１１上で実行しているプログラムがパッチ適用済みプログラム１３かをプログラムの実行に先立ち記憶させていた情報から判定する（ステップＳ２０１）。
【００３１】
実行しているプログラムがパッチを適用していないプログラム１２の場合には、ステップＳ２００で受信した制御命令が通信記録２０に記録されている制御命令の中で次に受信を期待している制御命令（プログラム起動直後は最初の制御命令）と一致しているかをチェックする（ステップＳ２０２）。
【００３２】
一致している場合には、通信記録２０に記録されている当該制御命令を受信してから応答を送信するまでの時間分だけ処理を待ち（ステップＳ２０３）、その後に応答を送信する（Ｓ２０４）。通信記録２０の中で次に受信を期待する制御命令の位置を記憶し（ステップＳ２０５）、処理を終了する。
【００３３】
ステップＳ２０２のチェックで、制御命令が一致しない場合には、一致しない制御命令の中の制御命令種別と一致しない部分を図５に示した形式で可変部記録２３に記録する（ステップＳ２０６）。
【００３４】
ステップＳ２０１で実行しているプログラムがパッチ適用済みプログラム１３の場合には、受信した制御命令が通信記録２０に記録されている制御命令の中で次に受信を期待している制御命令（プログラム起動直後は最初の制御命令）と可変部以外が一致しているか否かを、可変部記録２３を使ってチェックする（ステップＳ２０７）。ステップＳ２０７のチェックで、可変部以外が一致していない場合には、適用不可を記録する（ステップＳ２０８）。
【００３５】
このように、制御命令に現在時刻など可変なパラメータが含まれている場合にも、パッチ適用の可否を判定することが可能になる。
【００３６】
実施の形態３．
次に、制御命令によっては応答を受けたあと、計算機の操作を行っているユーザからの操作を待って、即ち、ユーザインターフェイスボタンがオンに変更後に、次の制御命令が送信される場合（以下では、この場合の制御命令種別を除外命令種別と呼ぶ）もあり、このような場合にもパッチ適用の可否を判断できる実施の形態を説明する。
そのため以下において、実施の形態３の検証システムの一例を、図７を用いて説明する。なお、本実施の形態のシステム構成は実施の形態２のシステム構成とほぼ同じなので、ここでは、実施の形態２との違いについてのみ説明する。
【００３７】
本実施の形態では、検証システム１０のハードディスク装置１９上に、除外命令種別のリストである除外命令種別リスト２４が格納される。
この除外命令種別リスト２４の例を図８に示す。除外命令種別リスト２４の１行中には、ユーザ操作を行った後に、即ち、ユーザインターフェイスボタンがオンに変更後に、実行される制御命令の種別の情報を含む。この図の例では制御命令種別Ｃ２、Ｃ４、Ｃ５が除外命令種別に該当する。
【００３８】
仮想計算機１１上でプログラム１２とパッチ適用済みプログラム１３の実行を行った後、適用判定部１８でパッチ適用の可否を判定する。通信記録Ａに記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間で、制御命令の種別が除外命令種別リスト２４に含まれていないものについてのみ、通信記録Ｂに記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間と割合があらかじめ定めた閾値を越えていないものが無いかを確認する。これを式で表わすと式（２）のようになる。
【００３９】
【数２】
2020030506.tif 000004
【００４０】
このように、計算機の操作を行っているユーザからの操作を待って、即ち、ユーザインターフェイスボタンがオンに変更後に、次の制御命令が送信される場合にもパッチ適用の可否を判断することが可能になる。
【００４１】
実施の形態４．
次に、制御命令の種別によって、リアルタイム性能への影響の重要度が異なる場合にも、制御命令種別毎の重要度を考慮してパッチの適用の可否を判断できる実施の形態を説明する。以下、この実施の形態４の検証システムの一例を図９に基づいて説明するが、本実施の形態のシステム構成は、実施の形態３のシステム構成とほぼ同じなので、実施の形態３と異なる点についてのみ説明する。
【００４２】
実施の形態４では、検証システム１０のハードディスク装置１９上に、命令種別影響閾値２５が格納される。
命令種別影響閾値２５の例を図１０に示す。命令種別影響閾値２５の１行には、制御命令の種別と命令種別で許容する閾値とをカンマ「,」でつなげたものを記録する。
【００４３】
仮想計算機１１上でプログラム１２とパッチ適用済みプログラム１３の実行を行った後、適用判定部１８でパッチ適用の可否を判定する。通信記録Ａに記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間で、制御命令の種別が除外命令種別リスト２４に含まれていないものについてのみ、通信記録Ｂに記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間と割合が、命令種別影響閾値２５に記載された当該制御命令種別の閾値を超えていないものが無いかを確認する。これを式で表わすと式（３）のようになる。
【００４４】
【数３】
2020030506.tif 000005
【００４５】
このように、制御命令の種別によって、リアルタイム性能への影響の重要度が異なる場合にも、制御命令種別毎の重要度を考慮して、パッチの適用の可否を判断することが可能になる。なお、パッチ適用の可否を判定するプログラムは実機上で実行するものを対象として記載したが、制御装置に対して仮想環境を構築できる場合には、本実施の形態の検証システムを制御装置上のプログラムに対して適用することで、制御装置上のプログラムに対しても同様にパッチの適用可否を判定することができる。
【００４６】
実施の形態５．
実施の形態１から実施の形態４では、制御命令のチェックを出力チェック部・入力再現部で行ったが、制御命令のチェックは行わず、ただ単にプログラムの入力となる応答を生成する入力再現部のみとし、制御命令のチェックは、プログラム及びパッチ適用済みプログラムの実行が終わった後に、出力チェック・適用判定部で行うようにしても良い。
【００４７】
以下、この実施の形態５の検証システムについて、図に基づいて説明する（図１１〜図１３参照）。図１１は、本実施の形態の制御システムの検証システムの一例を示す図である。この図に示すように、本実施の形態のシステム構成は、実施の形態４のシステム構成とほぼ同じなので、実施の形態４と異なる点についてのみ以下では説明する。すなわち、実施の形態５では、検証システム１０のパッチ適用判定装置１４上に、入力再現部２６、出力チェック・適用判定部２７、及び通信採取部１７を有する。
【００４８】
次に、図１２に示すフローチャートを用いて、入力再現部２６の動作について説明する。
まず、送られてきた制御命令を受信する（ステップＳ３００）。次に、通信記録２０に記録されている当該制御命令を受信してから応答を送信するまでの時間分だけ処理を待つ（ステップＳ３０１）。その後、応答を送信する（ステップＳ３０２）。
通信記録２０の中で次に受信を期待する制御命令の位置を記憶し（ステップＳ３０３）、処理を終了する。
【００４９】
次に、図１３に示すフローチャートを用いて、出力チェック・適用判定部２７の動作を説明する。
通信記録２０と通信記録Ａ２１に含まれる制御命令が一致するかをチェックする（ステップＳ４０１）。制御命令が一致しない場合には、一致しない制御命令の中の、制御命令の種類である制御命令種別と一致しない部分を図５に示した形式で可変部記録２３に記録する（ステップＳ４０２）。
【００５０】
通信記録２０及び通信記録Ａ２１について全ての制御命令をチェックしたかを調べ（ステップＳ４０３）、まだチェックしていない制御命令がある場合には、ステップＳ４０１からの処理を繰り返す。全ての制御命令のチェックが終了した場合には、通信記録Ａ２１と通信記録Ｂ２２に含まれる制御命令について可変部以外が一致しているかについて、可変部記録２３を使ってチェックする（ステップＳ４０４）。
【００５１】
可変部以外が一致していない場合には、適用不可を記録し（ステップＳ４０５）、処理を終了する。可変部以外が一致する場合には、式（３）により、通信記録Ａ２１に記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間で、制御命令の種別が除外命令種別リスト２４に含まれていないものについて、通信記録Ｂ２２に記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間と割合を計算する（ステップＳ４０６）。今回の例で具体的に述べると、先に図８に示したように、制御命令種別Ｃ２は、除外命令種別リスト２４に含まれているため、制御命令種別Ｃ１、Ｃ３についてのみ（図１０参照）、通信記録Ｂ２２に記録されている応答Ａ（Ｎ）から次の制御命令Ｄ（Ｎ＋１）までの時間と割合を計算する。
【００５２】
そして、計算した割合が命令種別影響閾値２５に記載された当該制御命令種別の閾値を超えていないかをチェックする（ステップＳ４０７）。ステップＳ４０７で割合が閾値を超えている場合には、適用不可を記録し（ステップＳ４０８）、処理を終了する。
【００５３】
通信記録Ａ２１及び通信記録Ｂ２２について全ての制御命令をチェックしたかを調べ（ステップＳ４０９）、まだチェックしていない制御命令がある場合には、ステップＳ４０４からの処理を繰り返し、全ての制御命令のチェックが終わった場合には、処理を終了する。
【００５４】
なお、本願は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、以上において、ＬＡＮは有線ＬＡＮを前提に説明しているが、これに限らず、無線ＬＡＮであっても同様の効果を奏する。
【符号の説明】
【００５５】
１  制御システム、２  計算機（実機）、３  制御装置、４  第１のネットワーク装置、５、１２  プログラム、６  通信データ記憶装置、７  通信採取部、８、１９  ハードディスク装置、９、２０  通信記録、１０  検証システム、１１  仮想計算機、１３  パッチ適用済みプログラム、１４  パッチ適用判定装置、１５  第２のネットワーク装置、１６  出力チェック・入力再現部、１７  通信採取部、１８  適用判定部、２１  通信記録Ａ、２２  通信記録Ｂ、２３  可変部記録、２４  除外命令種別リスト、２５  命令種別影響閾値、２６  入力再現部、２７  出力チェック・適用判定部
【図１】
2020030506.tif 000006
【図２】
2020030506.tif 000007
【図３】
2020030506.tif 000008
【図４】
2020030506.tif 000009
【図５】
2020030506.tif 000010
【図６】
2020030506.tif 000011
【図７】
2020030506.tif 000012
【図８】
2020030506.tif 000013
【図９】
2020030506.tif 000014
【図１０】
2020030506.tif 000015
【図１１】
2020030506.tif 000016
【図１２】
2020030506.tif 000017
【図１３】
2020030506.tif 000018