(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023062135
(43)【公開日】2023-05-02
(54)【発明の名称】ネットワーク化されておらず遠隔場所に設けられたデータ生成装置からデータを取り出すシステムと方法
(51)【国際特許分類】
G06F 21/60 20130101AFI20230425BHJP
【FI】
G06F21/60 340
【審査請求】有
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023024905
(22)【出願日】2023-02-21
(62)【分割の表示】P 2019570541の分割
【原出願日】2018-06-14
(31)【優先権主張番号】62/522,235
(32)【優先日】2017-06-20
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】300004500
【氏名又は名称】アイデックス ラボラトリーズ インコーポレイテッド
【氏名又は名称原語表記】IDEXX Laboratories, Inc.
【住所又は居所原語表記】One IDEXX Drive, Westbrook, Maine 04092, United States of America
(74)【代理人】
【識別番号】100090181
【弁理士】
【氏名又は名称】山田 義人
(72)【発明者】
【氏名】スモール,ライアン,ケネス
(72)【発明者】
【氏名】アールズ,アンドリュー,チャールズ
(72)【発明者】
【氏名】ディドメニコ,ニコラス,フランシス
(57)【要約】 (修正有)
【課題】悪意のあるコードに対する装置の脆弱性を制限するデータ生成装置からデータを取り出すシステムおよび方法を提供する。
【解決手段】システム2において、通信仲介手段6は外部データストレージシステム10に接続される第1ネットワークインタフェースとデータ生成装置4に接続される第2ネットワークインタフェースを有する。通信仲介手段は、データ生成装置と第2ネットワークインタフェースの間のネットワーク通信を外部データストレージシステムと第1ネットワークインタフェースの間のネットワーク通信から分離し、それによってデータ生成装置を外部データストレージシステムから分離する。通信仲介手段は、新たに生成されたデータファイルのためのデータ生成装置を監視して、新たに生成されたデータファイルを内部メモリにコピーして、そのデータファイルを外部データストレージシステムに送る。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ生成装置からデータを取り出すためのシステムであって、データ生成装置は少なくとも1つのメモリを有し、データ生成装置はデータファイルを生成して少なくとも1つのメモリにストアし、システムは、
少なくとも1つのプロセサ、そのプロセサと電気的に通信する少なくとも1つのメモリ、少なくとも1つの第1ネットワークインタフェースおよび第2ネットワークインタフェースを有する通信仲介手段を備え、第1ネットワークインタフェースおよび第2ネットワークインタフェースはプロセサと電気的に通信し、データ生成装置は第2ネットワークインタフェースとネットワーク通信し、さらに
外部データストレージシステムを備え、外部データストレージシステムは第1ネットワークインタフェースとネットワーク通信し、
通信仲介手段は、データ生成装置と第2ネットワークインタフェースとの間のネットワーク通信を、外部データストレージシステムと第1ネットワークインタフェースとの間のネットワーク通信から分離し、それによってデータ生成装置を外部データストレージシステムから分離し、
通信仲介手段は、新しいデータファイルの生成のためにデータ生成装置を監視し、
通信仲介手段は、データ生成装置によって新しいデータファイルが生成されたかどうか判断し、そして
通信仲介手段は、新しいデータファイルのサイズを確認して新しいデータファイルのサイズの変化が止まったかどうか判断することによって、データ生成装置による新しいデータファイルの生成が完了したかどうか判断する、システム。
【請求項2】
通信仲介手段はシングルボードコンピュータである、請求項1記載のシステム。
【請求項3】
外部データストレージシステムはクラウドベースのストレージシステムである、請求項1記載のシステム。
【請求項4】
リムーバブルメモリストレージ装置をさらに備え、リムーバルメモリストレージ装置は、その中にある少なくとも1つのメモリを有し、システム構成情報がそのリムーバルメモリストレージ装置のメモリにストアされていて、
通信仲介手段は、リムーバルメモリストレージ装置レセプタクル(receptacle)をさらに備え、リムーバルメモリストレージ装置レセプタクルはプロセサと電気的に通信し、リムーバルメモリストレージ装置レセプタクルはリムーバルメモリストレージ装置を受容してそれと電気的に通信し、そして
リムーバルメモリストレージ装置のメモリにストアされている構成情報は通信仲介手段へ転送可能である、請求項1記載のシステム。
【請求項5】
外部コントロールサーバをさらに備え、外部コントロールサーバは通信仲介手段の第1ネットワークインタフェースとネットワーク通信する、請求項1記載のシステム。
【請求項6】
第1ネットワークインタフェースはイーサネットポートおよびUSBポートの少なくとも一方であり、第2ネットワークインタフェースはイーサネットポートおよびUSBポートの少なくとも一方である、請求項1記載のシステム。
【請求項7】
複数のデータ生成装置からデータを取り出すシステムであって、複数のデータ生成装置の各々は少なくとも1つのメモリを有し、複数のデータ生成装置の各々はデータファイルを生成してそれぞれのデータ生成装置のメモリにストアし、システムは、
複数の通信仲介手段を備え、複数の通信仲介手段の各々は少なくとも1つのプロセサ、そのプロセサと電気的に通信する少なくとも1つのメモリ、少なくとも1つの第1ネットワークインタフェースおよび第2ネットワークインタフェースを有し、第1ネットワークインタフェースおよび第2ネットワークインタフェースはプロセサと電気的に通信し、データ生成装置の各々は通信仲介手段のそれぞれのものの第2ネットワークインタフェースとネットワーク通信し、さらに
外部データストレージシステムを備え、外部データストレージシステムは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、
外部コントロールサーバをさらに備え、外部コントロールサーバは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、
各通信仲介手段は、通信仲介手段のそれぞれのデータ生成装置と通信仲介手段の第2ネットワークインタフェースとの間のネットワーク通信を、外部データストレージシステムと通信仲介手段の第1ネットワークインタフェースとの間のネットワーク通信から分離し、それによって通信仲介手段のそれぞれのデータ生成装置を外部データストレージシステムから分離し、
各通信仲介手段は、新しいデータファイルの生成のためにその通信仲介手段のそれぞれのデータ生成装置を監視し、
各通信仲介手段は、その通信仲介手段のそれぞれのデータ生成装置によって新しいデータファイルが生成されたかどうか判断し、そして
各通信仲介手段は、新しいデータファイルのサイズを確認して新しいデータファイルのサイズの変化が止まったかどうか判断することによって、それぞれのデータ生成装置による新しいデータファイルの生成が完了したかどうか判断する、システム。
【請求項8】
データ生成装置からデータを取り出すための方法であって、データ生成装置は少なくとも1つのメモリを有し、データ生成装置はデータファイルを生成して少なくとも1つのメモリにストアし、方法は通信仲介手段を備えるシステムによって実行され、通信仲介手段は、少なくとも1つのプロセサ、そのプロセサと電気的に通信する少なくとも1つのメモリ、少なくとも1つの第1ネットワークインタフェースおよび第2ネットワークインタフェースを有し、第1ネットワークインタフェースおよび第2ネットワークインタフェースはプロセサと電気的に通信し、データ生成装置は第2ネットワークインタフェースとネットワーク通信し、システムは、さらに外部データストレージシステムを備え、外部データストレージシステムは第1ネットワークインタフェースとネットワーク通信し、通信仲介手段は、データ生成装置と第2ネットワークインタフェースとの間のネットワーク通信を、外部データストレージシステムと第1ネットワークインタフェースとの間のネットワーク通信から分離し、それによってデータ生成装置を外部データストレージシステムから分離し、方法は、
通信仲介手段をデータ生成装置と外部データストレージシステムとの間に接続するステップ、
通信仲介手段を、新しいデータファイルの生成のためにデータ生成装置を監視するように構成するステップ、
新しいデータファイルの生成のために、通信仲介手段によって、データ生成装置を監視するステップ、
通信仲介手段によって、新しいデータファイルがデータ生成装置によって生成されたかどうか判断するステップ、
データ生成装置による新しいデータファイルの生成が完了したかどうか判断するステップ、
データ生成装置によって生成された新しいデータファイルを通信仲介手段上にコピーするステップ、および
データ生成装置によって生成された新しいデータファイルのコピーを外部データストレージシステムに送るステップを含み、
新しいデータファイルの生成が完了したかどうかを判断するステップは、
新しいデータファイルのサイズを確認するサブステップ(sub-step)、および
新しいデータファイルのサイズの変化が止まったかどうか判断するサブステップを含む、方法。
【請求項9】
システムはリムーバブルメモリストレージ装置を含み、リムーバルメモリストレージ装置は、システム構成情報がストアされた少なくとも1つのメモリを有し、通信仲介手段は、リムーバルメモリストレージ装置レセプタクルを含み、リムーバルメモリストレージ装置レセプタクルは通信仲介手段のプロセサと電気的に通信し、リムーバルメモリストレージ装置レセプタクルはリムーバルメモリストレージ装置を受容してそれと電気的に通信し、そして
通信仲介手段を、新しいデータファイルの生成のためにデータ生成装置を監視するように構成するステップは、
リムーバブルメモリストレージ装置をレセプタクルへ装着するサブステップ、および
リムーバブルメモリストレージ装置からの構成情報を通信仲介手段にローディングするサブステップを含む、請求項8記載の方法。
【請求項10】
データ生成装置のメモリは生成されたデータファイルがストアされる少なくとも1つのディレクトリを含み、新しいデータファイルの生成のためにデータ生成装置を監視するステップは、
データファイルがストアされるデータ生成装置のディレクトリを通信仲介手段へマウントするサブステップを含む、請求項8記載の方法。
【請求項11】
通信仲介手段は、ダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバを含み、さらに
DHCPサーバを起動するステップ、および
DHCPサーバでデータ生成装置にインターネットプロトコルアドレスを割り当てるステップを含む、請求項8記載の方法。
【請求項12】
通信仲介手段が、データ生成装置によって生成された新しいデータファイルのコピーを外部データストレージシステムに送っていないとき外部データストレージシステムと通信仲介手段との間の接続を無効にするステップをさらに含む、請求項8記載の方法。
【請求項13】
通信仲介手段は、新しいデータファイルの生成のためにデータ生成装置を監視するステップで、サーバメッセージブロック(SMB)プロトコルを利用する、請求項8記載の方法。
【請求項14】
通信仲介手段によってコピーされた新しいデータファイルをデータ生成装置のメモリに保管するステップをさらに含む、請求項8記載の方法。
【請求項15】
複数のデータ生成装置からデータを取り出すための方法であって、複数のデータ生成装置の各データ生成装置は少なくとも1つのメモリを有し、データ生成装置の各々はデータファイルを生成してデータ生成装置のメモリにストアし、方法は複数の通信仲介手段を備えるシステムによって実行され、通信仲介手段の各々は、少なくとも1つのプロセサ、そのプロセサと電気的に通信する少なくとも1つのメモリ、少なくとも1つの第1ネットワークインタフェースおよび第2ネットワークインタフェースを有し、第1ネットワークインタフェースおよび第2ネットワークインタフェースはプロセサと電気的に通信し、データ生成装置の各々は通信仲介手段のそれぞれのものの第2ネットワークインタフェースとネットワーク通信し、システムは、さらに外部データストレージシステムを備え、外部データストレージシステムは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、さらに外部コントロールサーバを備え、外部コントロールサーバは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、各通信仲介手段は、通信仲介手段のそれぞれのデータ生成装置と通信仲介手段の第2ネットワークインタフェースとの間のネットワーク通信を、外部データストレージシステムと通信仲介手段の第1ネットワークインタフェースとの間のネットワーク通信から分離し、それによって通信仲介手段のそれぞれのデータ生成装置を外部データストレージシステムから分離し、方法は、
各通信仲介手段をデータ生成装置の1つと外部データストレージシステムとの間に接続するステップ、
各通信仲介手段を、新しいデータファイルの生成ために通信仲介手段のそれぞれのデータ生成装置を監視するように構成するステップ、
新しいデータファイルの生成のために各データ生成装置のそれぞれの通信仲介手段によってデータ生成装置を監視するステップ、
各通信仲介手段によって、各通信仲介手段のそれぞれのデータ生成装置によって新しいデータファイルが生成されたかどうか判断するステップ、
各通信仲介手段によって、各通信仲介手段のそれぞれのデータ生成装置による新しいデータファイルの生成が完了したかどうか判断するステップ、
各データ生成装置によって生成された新しいデータファイルをデータ生成装置のそれぞれの通信仲介手段上にコピーするステップ、および
各データ生成装置によって生成された新しいデータファイルのコピーをデータ生成装置のそれぞれの通信仲介手段から外部データストレージシステムに送るステップを含み、
新しいデータファイルの生成が完了したかどうかを判断するステップは、
新しいデータファイルのサイズを確認するサブステップ、および
新しいデータファイルのサイズの変化が止まったかどうか判断するサブステップを含む、方法。
【請求項16】
システムは複数のリムーバルメモリストレージ装置を含み、リムーバルメモリストレージ装置の各々はシステム構成情報がストアされる少なくとも1つのメモリを有し、通信仲介手段の各々はリムーバルメモリストレージ装置レセプタクルを含み、リムーバルメモリストレージ装置レセプタクルの各々はそれぞれの通信仲介手段のプロセサと電気的に通信し、リムーバルメモリストレージ装置レセプタクルの各々はリムーバルメモリストレージ装置の1つを受容してそれと電気的に通信し、
各通信仲介手段を、新しいデータファイルの生成ために通信仲介手段のそれぞれのデータ生成装置を監視するように構成するステップは、
リムーバブルメモリストレージ装置をそれぞれの通信仲介手段のレセプタクルに挿入するサブステップ、および
リムーバブルメモリストレージ装置の各々からの構成情報をそれぞれの通信仲介手段にローディングするサブステップを含む、請求項15記載の方法。
【請求項17】
データ生成装置の各々のメモリは生成されたデータファイルがストアされる少なくとも1つのディレクトリを含み、新しいデータファイルの生成のためにデータ生成装置を監視するステップは、
データファイルがストアされる各データ生成装置のディレクトリをデータ生成装置のそれぞれの通信仲介手段へマウントするサブステップを含む、請求項16記載の方法。
【請求項18】
複数のデータ生成装置からデータを取り出すためのシステムを監視し制御する方法であって、複数のデータ生成装置の各データ生成装置は少なくとも1つのメモリを有し、データ生成装置の各々はデータファイルを生成してそのデータファイルをデータ生成装置のメモリにストアし、方法は、複数の通信仲介手段を備えるシステムによって実行され、通信仲介手段の各々は少なくとも1つのプロセサ、プロセサと電気的に通信する少なくとも1つのメモリ、少なくとも1つの第1ネットワークインタフェースおよび第2ネットワークインタフェースを有し、第1ネットワークインタフェースおよび第2ネットワークインタフェースはプロセサと電気的に通信し、データ生成装置の各々はそれぞれの通信仲介手段の第2ネットワークインタフェースとネットワーク通信し、システムは、さらに外部データストレージシステムを備え、外部データストレージシステムは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、システムは外部コントロールサーバをさらに備え、外部コントロールサーバは通信仲介手段の各々の第1ネットワークインタフェースとネットワーク通信し、各通信仲介手段は、通信仲介手段のそれぞれのデータ生成装置と通信仲介手段の第2ネットワークインタフェースとの間のネットワーク通信を、外部データストレージシステムと通信仲介手段の第1ネットワークインタフェースとの間のネットワーク通信から分離し、それによって通信仲介手段のそれぞれのデータ生成装置を外部データストレージシステムから分離し、
外部コントロールサーバは少なくとも1つのユーザインタフェースおよびユーザによる外部コントロールサーバの動作を助けるリモート接続を有し、方法は
ユーザインタフェースおよびリモート接続の少なくとも一方を使用して、外部コントロールサーバに接続して操作するステップ、
ステータス照会コマンド、システムコマンドおよび外部コントロールサーバからのソフトウエアのアップデートの少なくとも1つを、通信仲介手段の少なくとも1つへ送るステップ、
各通信仲介手段を、新しいデータファイルの生成ために通信仲介手段のそれぞれのデータ生成装置を監視するように構成するステップ、
新しいデータファイルの生成のために各データ生成装置のそれぞれの通信仲介手段によってデータ生成装置を監視するステップ、
各通信仲介手段によって、各通信仲介手段のそれぞれのデータ生成装置によって新しいデータファイルが生成されたかどうか判断するステップ、および
各通信仲介手段によって、各通信仲介手段のそれぞれのデータ生成装置による新しいデータファイルの生成が完了したかどうか判断するステップを含み、
新しいデータファイルの生成が完了したかどうかを判断するステップは、
新しいデータファイルのサイズを確認するサブステップ、および
新しいデータファイルのサイズの変化が止まったかどうか判断するサブステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は一般的には、テストシステムから外部ストレージ装置へデータを転送するための装置および方法に関し、より特定的には、ネットワーク化されておらず分離されたシステム(non-networked, isolated systems)から、ネットワーク化されたシステム(networked systems)へデータを転送するためのシステムおよび方法に関する。
【背景技術】
【0002】
セキュリティ上の懸念のために、診断アナライザのようなテストシステム(test system:検査システムないし試験システム)は、通常、ネットワーク化されない(すなわち、外部ネットワークあるいはインターネットには接続されない)。より具体的には、悪意のあるコード(たとえば、マルウェアやウイルスなど)に対するテストシステムの脆弱性を制限する最も簡単な方法の1つは、テストシステムへのネットワーク/インターネット接続を排除することである。ネットワーク化された(つまり、外部ネットワークへ接続されているか、インターネット接続を有する)テストシステムのプラットフォームでは、通常、悪意のあるコードの侵入リスクを部分的に軽減するために、システムでウィルス対策ソフトを実行する必要がある。悪意のあるコードは進化を続けており、それに応じて、ウィルス対策ソフトは非常に複雑になり、多くの場合、動作にかなりのシステムリソースと定期的なアップデートが必要になる。したがって、テストシステムのパフォーマンスはウィルス対策ソフトの動作によって影響され得る。
【0003】
テストシステムへのネットワーク/インターネット接続を排除すると、悪意のあるコードに対するテストシステムの脆弱性は確実に軽減されるが、システムの効率化を促進する重要なシステムツールの使用も禁止される。たとえば、ソフトウエアを動作させるテストシステムはリモートで(つまり、リモート接続を介して)フップデートすることはできないため、個々のテストシステムへ接続するためには、技術者またはオペレータが物理的に現場にいなければない。さらに、各テストシステムによって生成されたデータは、サーバあるいはクラウドベースのストレージシステムのような、リモート装置に送信されない。さらに、テストシステムのステータスとパフォーマンスをリモートで監視することはできない。したがって、テストシステムを保守し運用することは時間がかかって、そして非能率的である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
この発明の目的は、悪意のあるコードに対する装置の脆弱性を制限するデータ生成装置(data generating device)からデータを取り出すシステムを提供することである。
【0005】
この発明の他の目的は、悪意のあるコードに対する装置の脆弱性を制限するデータ生成装置からデータを取り出す方法を提供することである。
【0006】
この発明の別の目的は、装置にウィルス対策ソフトをインストールして運用する必要性を排除する、データ生成装置からデータを取り出す方法およびシステムを提供することである。
【課題を解決するための手段】
【0007】
この発明の一実施例では、少なくとも1つのデータ生成装置からデータを取り出すシステムを提供する。システムは、少なくとも1つのデータ生成装置と外部データストレージシステム(external data storage system)を相互接続する通信仲介手段(communication intermediary)を含む。通信仲介手段は、第1ネットワークインタフェースおよび第2ネットワークインタフェースを含み、データ生成装置は第2ネットワークインタフェースとネットワーク通信し、外部データストレージシステムは第1ネットワークインタフェースとネットワーク通信する。通信仲介手段はデータ生成装置と第2ネットワークインタフェースの間のネットワーク通信を外部データストレージシステムと第1ネットワークインタフェースの間のネットワーク通信から分離し、それによってデータ生成装置を外部データストレージシステムから分離する。システムはさらに通信仲介手段を監視し、制御する1つのユーザインタフェースを持つ外部コントロールサーバ(external control server)を含んでもよい。
【0008】
この発明の他の実施例では、システムは複数のデータ生成装置からデータを取り出してもよく、複数の通信仲介手段を含み、各通信仲介手段はそれぞれのデータ生成装置と外部データストレージシステムを相互接続する。あるいは、1つの通信仲介手段が複数のデータ生成装置を相互接続してもよい。システムはまた、複数の通信仲介手段を監視し、制御する1つのユーザインタフェースを有する外部コントロールサーバを含む。
【0009】
先に説明したように、悪意のあるコードに対する装置の脆弱性を制限するデータ生成装置からデータを取り出す方法もまた開示される。この方法は、データ生成装置と外部データストレージシステムとの間に通信仲介手段を接続するステップ、通信仲介手段を新しく生成されるデータファイルについてデータ生成装置を監視するように構成するステップ、新しいデータファイルの生成についてデータ生成装置を監視するステップ、およびデータ生成装置が新しいデータファイルを生成したかどうかを判断するステップを含む。そして、この発明の方法によれば、通信仲介手段は、新しいデータファイルの検出に応答して、その新しいデータファイルを複製してそれを外部データストレージシステムに送る。
【0010】
この発明のこれらの目的および他の目的、特徴および利点は、添付の図面に関連して読まれるべき、例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】
図1は、データ生成装置からデータを取り出す、この発明の実施例のシステムの概略構成を示すブロック図である。
【
図2】
図2は、この実施例のブロック図であり、さらなる構成要素を示す。
【
図3】
図3は、複数の通信仲介手段を利用することによって複数のデータ生成装置からデータを取り出す、この発明の実施例のシステムの概略構成を示すブロック図である。
【
図4】
図4は、データ生成装置からデータを取り出す、この発明の実施例に従ったシステムおよび方法のシーケンス図(すなわち、ブロック図と動作フローチャートの組み合わせ)であり、システムのインストールを示す。
【
図5】
図5は、データ生成装置からデータを取り出す、この発明の実施例に従ったシステムおよび方法のシーケンス図(すなわち、ブロック図と動作フローチャートの組み合わせ)であり、システムの起動を示す。
【
図6】
図6は、データ生成装置からデータを取り出す、この発明の実施例に従ったシステムおよび方法のシーケンス図(すなわち、ブロック図と動作フローチャートの組み合わせ)であり、新しいデータファイルの検出に続く方法を示す。
【
図7】
図7は、データ生成装置からデータを取り出す、この発明の実施例のシステムの動作を示すフローチャートである。
【
図8】
図8は、例示的な構成ファイルを示すコードの抜粋である。
【発明を実施するための形態】
【0012】
最初に
図1および
図2を参照して、この発明の実施例に従って構成される、データ生成装置4からデータを取り出すためのシステム2は、通信仲介手段6を含み、その通信仲介手段は、データ生成装置4、外部コントロールサーバ8、および外部データストレージシステム10と通信し、外部データストレージシステム10は
図1および
図2ではクラウドとして示される。通信仲介手段6は、好ましくは、少なくとも1つのプロセサ46、プロセサ46と電気的に通信する少なくとも1つのメモリ48、少なくとも1つの第1ネットワークインタフェース12および第2ネットワークインタフェース14を含み、第1ネットワークインタフェース12と第2ネットワークインタフェース14は、プロセサ46と電気的に通信する。ネットワークインタフェース12および14は、通信仲介手段6と、データ生成装置4の各々、外部コントロールサーバ8および外部データストレージシステム10との間の通信を助け、そして各々は、イーサネット(Ethernet)(登録商標)ポート、アダプタ、またはそれらの組み合わせとして構成されてもよい。第1ネットワークインタフェース12と、外部コントロールサーバ8および外部データストレージシステム10の各々との間の通信は、それぞれ、たとえば、第1イーサネット経路11および第2イーサネット経路9によって達成され得る。同じように、第2ネットワークインタフェース14と、データ生成装置4との間の通信は、たとえば、第3イーサネット経路7によって達成され得る。システムはまた、専用の電源3を備え、その電源は通信仲介手段6と電気的に通信する。
【0013】
この発明の好ましい実施例では、第1ネットワークインタフェース12と第2ネットワークインタフェース14はイーサネットポートとして構成されるが、1またはそれ以上の第1ネットワークインタフェース12および第2ネットワークインタフェース14は、USB(universal serial bus)ポートとして構成されてもよい。さらに、通信仲介手段6は、好ましくは、BeagleBone Black(ビーグルボーンブラック)(商標)またはRaspberryPI(ラズベリーパイ)(商標)のような、シングルボードコンピュータ(「SBC」)として構成される。さらに、外部データストレージシステム10は、好ましくは、外部クラウドストレージシステムとして構成される。第1ネットワークインタフェース12は、外部コントロールサーバ8および外部クラウドストレージシステム10を備えるネットワーク化されたシステム(「ネットワーク化システム」と呼ぶことがある。)と通信し、第2ネットワークインタフェース14は、データ生成装置4を備えるネットワーク化されていないシステム(「非ネットワーク化システム」と呼ぶことがある。)と通信する。イーサネットケーブルは、たとえば第1ネットワークインタフェース12をネットワーク化システムへ接続し、USB‐イーサネットケーブルアダプタ(もしくはイーサネットケーブルだけ)は、第2ネットワークインタフェース14を非ネットワーク化システムへ接続する。次の段落で説明するように、非ネットワーク化システムがネットワーク化システムとの通信手段を持たないように、SBC6は非ネットワーク化システムをネットワーク化システムから分離する。外部コントロールサーバ8および外部クラウドストレージシステム10を備えるネットワーク化システムからの、データ生成装置4を備える非ネットワークシステムの分離は、データ生成装置4のセキュリティおよびパフォーマンスを強化する。
【0014】
テストシステム(test system)、ターゲットシステム(target system)またはテスト装置(test fixture)とも呼ばれるデータ生成装置4は、動作中、規定に従って(routinely)、データファイルを生成する。データファイルはテストシステム4内にあるメモリ44内のディレクトリにストアされてもよいが、データファイルの特定のストレージがサーバメッセージブロック(「SMB」)プロトコルによって取り扱われる。テストシステム4は、特定の資格情報が提供された場合、メモリ44のディレクトリにストアされたデータファイルをSBC6と共有するように構成可能である。データファイルが配置されているテストシステム4のディレクトリのアドレスは、SBC6のメモリ48にロードされる構成ファイル16(
図8を参照)にストアされる。より詳しく説明すれば、SBC6はテストシステムのディレクトリとその中のファイルを監視し、新しい試験ファイル(test file)が生成されると、SBC6が外部クラウドストレージシステム10へそのデータファイルを送れるように、テストシステム4とSBC6との間のファイル転送プロトコルが開始される。構成ファイルの資格情報はファイル転送プロトコルのためである。新しいファイルを検出すると、システム2は資格情報を使用してクラウドで認証する。SBC6とテストシステム4の間の資格情報は、ディレクトリを公開するときのシステム2の初期インストールの間およびディレクトリをマウントする(mount)ときのシステムブートでのみ必要とされる。
【0015】
この発明の好ましい実施例では、SBC6はマイクロSDカードあるいはフラッシュドライブのような、リムーバルメモリストレージ装置20を受容することができる追加の通信ポート18(レセプタクル)を含む。リムーバルメモリストレージ装置20は、SBC6のメモリ48にロードされる構成ファイル16をリムーバルメモリストレージ装置20内にある内部メモリまたはストレージ54にストアする。先に述べたように、構成ファイル16は、データファイルがストアされたテストシステム4内のディレクトリのアドレス(つまり、ディレクトリパス)およびクラウドにデータファイルをアップロードするのに要する資格情報のような情報を含む。次の段落でさらに説明するように、構成ファイル16は、SBC6が新しいファイルのためのテストシステム4のディレクトリをポーリングする頻度のような、SBC6の動作に関連する構成情報を含んでもよい。SBC6が開始されるとき、リムーバルメモリストレージ装置20にストアされた構成ファイル16がSBC6のメモリ48にロードされ、そして構成ファイル16の内容がSBC6上で実行されるプログラムロジックに挿入される。
【0016】
例示的な構成ファイル16が
図8に示される。構成ファイル16は多様なフォーマットであり得るが、
図8で示される例示的な構成ファイル16はJava(登録商標)スクリプトオブジェクト表記法(「JSON」)のフォーマットのものである。各キー(たとえば、「dirMonitor」)は値(たとえば、「DIR_MONITOR」)に関連付けられている。
図8に示す例示的な構成ファイル16において使用されている種々の記述は以下のように特定されている。
【0017】
dirMonotor:新しいデータを監視するためのターゲットシステム4上の1またはそれ以上のディレクトリ。これらのディレクトリはターゲットシステム4上で公開され、SBC6上にマウントされるべきパスである。ターゲットシステム4は、これらのディレクトリに新しいデータを書き込む。
【0018】
dirArchive:ファイルがクラウド10にアップロードされた後に移動するターゲットシステム4上のディレクトリ。このディレクトリはターゲットシステム4上で公開され、SBC6上にマウントされるべきパスである。ビジネス上の制約により必要に応じて、ファイルを移動せず保管(archive)しないことはオプションである。
【0019】
ignoreInitial:システム2の最初の起動時に、監視されるディレクトリに存在するファイルをアップロードする必要があるかどうかを示すブール(boolean)フラグ。このフラグが真(true)にセットされると、監視されるディレクトリのファイルがアップロードされ、指定どおりに保管される。これは、SBC6がしばらくオフされていて、起動時に見逃していたファイルをダンプ(dump)する必要がある場合に役立つ。
【0020】
ignored:どのファイルが無視されるべきかを示す一群の式。たとえば、ターゲットシステム4がテキストファイル(.txt)およびコンマ区切りファイル(comma-delimited files)(.csv)を生成する場合、「*.txt」の式はCSVファイルのみをアップロードする。
【0021】
usePolling:SBC6がポーリングを使用して新しいデータファイルを監視すべきであることを示すフラグ。真値(true value)は、新しい情報をポーリングすることを示し、偽値(false value)は、新しいファイルの生成を通知することがサーバメッセージブロック(「SMB」)プロトコルに依存することを示す。
【0022】
interval:ポーリングの頻度を示すミリ秒オーダーの時間。この例では、SBC6は10秒毎に新しいファイルを調べる。この値は、ポーリングが有効な場合にのみ使用される。
【0023】
stabilityThreshold:SBC6が、ファイルを検出してからアップロードするまで待機するミリ秒オーダーの時間。ファイルを生成するには複数の部分があるため、これは重要だ。最初の部分はファイルの作成である。この時点では、ファイルサイズは実質的にはゼロである。次に、システム2はファイルへ書き込む。ファイルの全内容が書き込まれる前に、複数の書き込みが発生する場合がある。もし、ポーリングがファイルが作成されたときに発生したが、データが完全にファイルに書き込まれる前であれば、SBC6は空のファイルまたは部分的な/破損したファイルをアップロードできた。ポーリングの間中、ファイルサイズがチェックされる。この値によって指定される時間の経過後、ファイルサイズが再度チェックされる。もしサイズが変わっていなければ、ファイルはアップロードされるが、さもなければ、変化がないことが検出されるまで、待機を繰り返す。たとえば、新しいファイルが検出された後、ファイルの全内容が10秒以内に書き込まれたものと想定した場合、2秒以内にアップロードされる。
【0024】
pollInterval:ファイルサイズの変化をチェックするミリ秒オーダーのポーリングする時間。
【0025】
depth:監視するサブディレクトリの層数を示す。ゼロのサイズは、監視されるディレクトリ内のファイルのみがアップロードされ、監視さるディレクトリのサブディレクトリで生成されたファイルは無視されることを示す。
【0026】
destination:ファイルを外部クラウドストレージシステム10へアップロードするためのパスであり、セキュアファイル転送プロトコル(「SFTP」)サーバであってよい。
【0027】
username:認証に使用するユーザ名。
【0028】
password:認証に使用するパスワード。
【0029】
host:SFTPサーバ10のロケーション。
【0030】
autoConfirm:SBC6がホスト接続の指紋(fingerprint)を自動的に受け入れるべきであることを示す。真値は確認が受け入れられることを示す。
【0031】
protocol:ファイルをアップロードするときに使用するプロトコルを示す。
【0032】
port:SFTPサーバ10へ接続するためのポート。
【0033】
SBC6の電源を入れてプログラムを起動する都度、これらの構成がロードされる。一部の構成にファイルやその他の固有の設定をアップロードするための資格情報を含むため、SBC6毎の構成は、若干変わる場合がある。SBC6はすべて同じである。したがって、SBC6はマイクロSDカードを古いSBC6から新しいものに移すだけで置き換えられる。
【0034】
ターゲットシステムのIPアドレスやSBCのIPアドレスのような、リムーバブルメモリストレージ装置20にストアされていない他の構成パラメータはインストール中に設定される。ターゲットシステムのIPアドレスはSBC6がターゲットシステム4(テストシステムまたは検査設備)に与えるIPアドレスである。この値は、SBC6がインストールされているときに確立され、一般には、たとえば192.168.222.50である。この一貫性を保つと、管理が少し簡単になるが、環境と競合する場合は変更できる。このアドレスは、監視されるディレクトリをマウントするために必要である。SBCのIPアドレスはターゲットシステム4へ接続するSBC6の第2ネットワークインタフェース14のためのIPアドレスである。この値は、SBC6がインストールされているときに確立され、一般には、たとえば192.168.222.1である。この値は、システムのコンポーネントによって明示的に使用されることはないが、デバッグのセットアップ中に役立つ。
【0035】
システム2の好ましいインストールおよび起動手順が
図4および
図5のブロック図と動作フローチャートの組み合わせにそれぞれ示される。テストシステム4上のディレクトリはディレクトリをマウントするためにSBC6に公開しなければならず、SBC6がディレクトリをマウントしたままにするためにこの公開を維持する必要があることに注意されたい。サーバ8とSBC6の間の登録プロセスは、好ましくは、インストール中に行なわれる。登録プロセスとディレクトリのマウントは独立しており、どちらの順序でも実行できるが、一貫性のために、好ましくは登録プロセスを最後に実行する。
【0036】
SBC6はダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバとして動作し、そしてテストシステム4にIPアドレスを提供する。より具体的には、SBC6はリナックス(Linux)(登録商標)のバージョンを実行する。DHCPパッケージを使用して、これを処理する。SMBパッケージがまた、好ましくは、ディレクトリのマウントを処理するのに使用される。この発明の実施例に従って形成されたシステム2の動作フローチャートを示す
図7を参照して、SBC6が、テストシステム4が第2ネットワークインタフェース14へ接続されたことを検出すると、SBC6はDHCPサーバを起動し(ステップ22)、そのテストシステム4にIPアドレスを生成して割り当てる(ステップ24)。SBC6が既知の分離したIPアドレスをテストシステム4に提供した後、SBC6は構成ファイル16で指定された資格情報とディレクトリパスを使用して、テストシステム4からのディレクトリをSBCにマウントする(ステップ25)。このステップ(ステップ25)、ターゲットシステムからのディレクトリをSBCにマウントする(MOUNT DIRECTRIES FROM TARGET SYSTEM ONTO SBC)は、アプリケーションレベルではなく、システムレベルで行なわれる。このステップ、およびそれの前のステップは、好ましくは、インストールフェーズの間に技術者によって手動で実行されるため、これらのステップは1度だけ行われる。さらに、これらのディレクトリをマウントすることはSBC6上でフォルダを作成する。構成ファイルはテスト設備4上のディレクトリではなく、これらのローカルなディレクトリを参照する。それに応答して、テストシステム4はSMBプロトコルによってその中のディレクトリとデータファイルを公開し、ディレクトリはSBC6でミラーリングされる。SBC6は新しいデータファイルの生成のために、SMBプロトコルを使って、ディレクトリを監視する(ステップ26)。
【0037】
SBC6は様々な方法で新しいデータについてディレクトリを監視できる。新しいデータファイルが生成されたことを判断する1つの例示的な方法が、
図7の動作のフローチャートに示される。概説すると、SBC6は、構成ファイル16に指定されているように、特定の頻度ないし周期(たとえば、10秒毎に)で、データ生成装置4のディレクトリをポーリングする(ステップ26)。新しいデータファイルが検出される(ステップ28)と、SBC6はテストシステム4が新しいデータファイルを書き終えたかどうか判断する。より具体的には、SBC6は周期的に(たとえば、2秒毎に)新しいデータファイルのサイズを監視して(ステップ30‐34)、ファイルサイズが変化しなかったかどうか判断する(ステップ36)。もし、ファイルサイズが変化していれば、SBC6は次の周期(たとえば、2秒)の後、再度チェックする。SBC6がファイルサイズに変化がなかったことを判断すると、そのことはテストシステム4による新しいデータファイルの生成が完了したということであり、SBC6は、外部クラウドストレージシステム10と通信する第1ネットワークインタフェース12へ接続し(ステップ38)、データファイルのコピーをそこへ送る(ステップ40)。
【0038】
詳しく言うと、外部クラウドストレージシステム10は、好ましくは、セキュアファイル転送プロトコル(「SFTP」)サーバとして構成されるが、外部クラウドストレージシステム10は、また、STPサーバ、アマゾン(Amazon:商標)ファイルストレージサーバまたは任意の種類の外部ストレージサーバとして構成されてもよい。例示的な構成ファイル16の内容について先に説明したように、外部クラウドストレージシステム10のロケーション、外部クラウドストレージシステム10へファイルをアップロードするためのパス(すなわち、ディレクトリ)およびSFTPサーバへアクセスするのに必要な資格情報は、リムーバルメモリストレージ装置20上の構成ファイル16にストアされている。SFTPサーバ10へ接続するために、SBCのプログラムロジックは、構成ファイル16で指定された必要な資格情報を通信する。SBC6は、ついで、構成ファイル16で指定されたディレクトリのSFTPサーバに、データファイルのコピーを書き込む。
【0039】
新しいデータファイルがSFTPサーバ10へ書き込まれた後、テストシステム4は、オプションとして、データファイルを保管ディレクトリへ移動する(ステップ42)。その後、SBC6は、新しいファイルのためのテストシステム4の監視(ステップ26)に戻り、そして任意の新しいデータファイルをSFTPサーバ10へ繰り返し書き込む(ステップ40)。
【0040】
追加的なセキュリティのために、SBC6は、データファイルを送信する準備ができるまで、第1ネットワークインタフェース12とネットワーク化システムとの間の接続を無効にするように構成できる。したがって、SBC6は、データ送信フェーズの間だけ、ネットワーク化される。しかしながら、悪意のあるものでも良性のものでも、ネットワークツールは、このようなアイドル時間中にSBC6を検出することはできない。新しいファイルをアップロードする準備ができると、クラウド9への接続が作成される(認証とともに)。アップロードした後、接続は終了する(つまり、各ファイルが新しい接続を作成する)。
【0041】
外部コントロールサーバ8はSBC6を追跡し監視するように構成される。SBC6は自身を自動的に外部コントロールサーバ8に登録する。登録プロセスは、サーバ8とSBC6との間の通信を認証し、サーバ8が、SBC6で実行されるべきコマンドを送信できるようにする。この認証は、初期インストールプロセス中に行われ、全ての装置(SBC6)が正当であることを保証する。このことが、SBC6のリモートアクセスおよびコントロールを可能にする。外部コントロールサーバ8は任意の登録されたSBC6のステータスを報告できる。この機能は、SBC6が第1ネットワークインタフェース12をオフしないことを要する。外部コントロールサーバ8はさらに、ユーザがリモートで外部コントロールサーバ8に接続することを可能にするリモート接続52を含む。さらに、外部コントロールサーバ8はまた、ユーザ操作を支援するユーザインタフェース50を含む。
【0042】
この発明のさらに他の実施例では、外部コントロールサーバ8は複数のSBC6と複数のテストシステム4をコントロールするように構成されてもよい。詳しくいうと、
図3に示すように、複数のSBC6が各SBCの第1ネットワークインタフェース12を通して外部コントロールサーバ8に接続される。各SBC6の第2ネットワークインタフェース14はそれぞれのテストシステム4と通信する。外部コントロールサーバ8は、ユーザが外部コントロールサーバ8へログインして各個別のSBC6を制御できるように、全てのSBC6のためのダッシュボード(dashboard)として動作するように構成される。たとえば、外部コントロールサーバ8は1つまたは複数のSBC6へ再起動(reboot)するように指示することができる。同じように、外部コントロールサーバ8は1またはそれ以上のSBC6にそれらの動作ソフトウエア(operating software)をアップグレードするように指示でき、そしてそれ故に、全てのSBC6へのソフトウエアの一括インストールを実行できる。さらに、外部コントロールサーバ8は、オペレータが非動作中のSBC6を検出および照会できるように、1つまたはそれ以上のSBC6に命令してSBC6の動作状態のアップデートを与えることができる。先の実施例のように、各SBC6は、外部クラウドストレージシステム10へデータファイルを通信し続ける。SBC6毎の構成ファイル16が、データファイルを書き込んでよいクラウドシステム10の特定のディレクトリを指定してもよい。
【0043】
外部サーバ8とテストシステム(すなわち、データ生成装置4)との間に双方向通信がないことが好ましい。サーバ8は、SBC6にコマンドを送って、他のルーチンをアップグレードして実行することができる。それにも拘わらず、SBC6およびテストシステム4は、サーバメッセージブロック(SMB)プロトコルを介して通信する。これはテストシステム4で公開したディレクトリをSBC6にマウントするために使われるプロトコルである。このプロトコルの双方向通信以外では、全ての意図と目的のために、好ましくは、テストシステム4とSBC6の間に他のどのような双方向通信もない。テストシステム4はデータで何が行われているか知らない。また、好ましくは、テストシステム4はSBC6とSMBを使用する他の任意の潜在的なエージェントを区別することができない。先ほど述べたように、任意の双方向通信はSMB(サーバメッセージブロック)プロトコルの内部になる。
【0044】
この発明の例示的な実施形態を添付の図面を参照して説明したが、この発明はそれらの詳細な実施形態に限定されず、発明の範囲または精神から逸脱することなく、当業者によって様々な他の変更や修正がなされ得ることを理解されたい。
【符号の説明】
【0045】
2 …システム
4 …データ生成装置
6 …通信仲介手段
8 …外部コントロールサーバ
10 …外部データストレージシステム
12 …第1ネットワークインタフェース
14 …第2ネットワークインタフェース
18 …通信ポート
20 …リムーバルメモリストレージ装置
44、48 …メモリ
46 …プロセサ