(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】データ処理装置及び更新システム
(51)【国際特許分類】
G06F 11/16 20060101AFI20240806BHJP
G06F 8/656 20180101ALI20240806BHJP
G06F 9/48 20060101ALI20240806BHJP
G06F 9/52 20060101ALI20240806BHJP
G06F 11/20 20060101ALI20240806BHJP
【FI】
G06F11/16 658
G06F8/656
G06F9/48 370
G06F9/52 150A
G06F11/20 620
(21)【出願番号】P 2021020615
(22)【出願日】2021-02-12
【審査請求日】2023-08-21
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】福重 一樹
【審査官】坂庭 剛史
(56)【参考文献】
【文献】国際公開第2014/045556(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G06F 8/65
G06F 8/656
G06F 9/48
G06F 9/52
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、
前記処理前データを処理し第2処理済データを生成する、更新用の第2データ処理部と、
前記機器から複数の前記処理前データを順次受信する受信部と、
前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、
前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、
を備え、
前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える、
データ処理装置。
【請求項2】
前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれを選択するタイミングを調整し、同一のシーケンス番号の前記第1処理済データ及び前記第2処理済データを選択した場合に、同期が完了したと判定する、
請求項1に記載のデータ処理装置。
【請求項3】
前記切替部は、
前記第1処理済データを格納する第1バッファと、
前記第2処理済データを格納する第2バッファと、
を含み、
前記第1バッファから読み出される前記第1処理済データに付与された前記シーケンス番号と、前記第2バッファから読み出される前記第2処理済データに付与された前記シーケンス番号とを比較し、前記第1バッファ及び前記第2バッファのうち、前記シーケンス番号が大きい方からのデータの読み出しを停止し、前記シーケンス番号が小さい方からのデータの読み出しを継続することによって、前記タイミングを調整する、
請求項2に記載のデータ処理装置。
【請求項4】
前記第1データ処理部は、前記処理前データを処理するための第1データ処理プログラムがプロセッサによって実行されることにより実現され、
前記第2データ処理部は、前記処理前データを処理するための第2データ処理プログラムがプロセッサによって実行されることにより実現される、
請求項1から請求項3のいずれか1項に記載のデータ処理装置。
【請求項5】
前記第1データ処理部は、前記シーケンス番号を格納する第1シーケンス番号用バッファを含み、
前記第1データ処理部は、受け付けられた前記処理前データと、前記処理前データに割り当てられた前記シーケンス番号とを分離し、前記シーケンス番号を前記第1シーケンス番号用バッファに格納し、前記処理前データを処理した後、前記第1シーケンス番号用バッファから前記シーケンス番号を読み出し、前記処理前データと前記シーケンス番号とを結合し、
前記第2データ処理部は、前記シーケンス番号を格納する第2シーケンス番号用バッファを含み、
前記第2データ処理部は、受け付けられた前記処理前データと、前記処理前データに割り当てられた前記シーケンス番号とを分離し、前記シーケンス番号を前記第2シーケンス番号用バッファに格納し、前記処理前データを処理した後、前記第2シーケンス番号用バッファから前記シーケンス番号を読み出し、前記処理前データと前記シーケンス番号とを結合する、
請求項1から請求項4のいずれか1項に記載のデータ処理装置。
【請求項6】
前記転送部は、前記処理前データをブロードキャストすることにより、前記第1データ処理部及び前記第2データ処理部のそれぞれに前記処理前データを転送する、
請求項1から請求項5のいずれか1項に記載のデータ処理装置。
【請求項7】
対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理するデータ処理装置と、
前記データ処理装置に対して、前記処理前データの処理の更新のための更新用データを提供するサーバと、
を備え、
前記データ処理装置は、
前記処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、
前記処理前データを処理し第2処理済データを生成する、前記更新用データに基づき構成された更新用の第2データ処理部と、
前記機器から複数の前記処理前データを順次受信する受信部と、
前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、
前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、
を含み、
前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える、
更新システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理装置及び更新システムに関する。
【背景技術】
【0002】
特許文献1には、送信側の伝送装置と受信側の伝送装置との間に現用ルートと予備ルートの少なくとも2つの経路を有するパケット伝送システムにおける冗長系の無瞬断切替技術が開示されている。特許文献1に開示されたパケット伝送システムにおいて、送信側の伝送装置は、シーケンシャル番号付与部と、パケットをコピーして現用ルートと予備ルートとに分岐するコピー分岐部とを有する。受信側の伝送装置は、現用ルートと予備ルートの同番号のパケットで遅延量を測定する遅延測定部と、早着側の経路に遅延を挿入する遅延挿入部と、現用ルートまたは予備ルートのいずれか一方に切り替えるフレーム選択部とを有する。外部からの切替指示があった場合は、コピー分岐部はパケットを現用ルートと予備ルートの両方に出力し、遅延挿入部は、遅延測定部が測定した遅延量分の遅延を早着側に挿入し、フレーム選択部は、現用ルートから予備ルートに切り替える。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば工場での製造ラインの監視システムのように、継続して対象を観測するシステムがある。このような観測システムでは、カメラ、センサ等の機器から出力されたデータに対して処理を施すことが必要な場合がある。このようなデータ処理を実行するデータ処理装置を更新する場合、更新のためにデータ処理が停止してしまうと対象の監視を継続することができないため、無瞬断で更新を実行する必要がある。しかしながら、特許文献1に開示された無瞬断切替技術は、パケットで送信されたデータを処理することは考慮されておらず、データ処理を伴うシステムでは使用することができない。
【課題を解決するための手段】
【0005】
本開示の一態様に係るデータ処理装置は、対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、前記処理前データを処理し第2処理済データを生成する、更新用の第2データ処理部と、前記機器から複数の前記処理前データを順次受信する受信部と、前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、を備え、前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える。
【0006】
本開示の一態様に係る更新システムは、対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理するデータ処理装置と、前記データ処理装置に対して、前記処理前データの処理の更新のための更新用データを提供するサーバと、を備え、前記データ処理装置は、前記処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、前記処理前データを処理し第2処理済データを生成する、前記更新用データに基づき構成された更新用の第2データ処理部と、前記機器から複数の前記処理前データを順次受信する受信部と、前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、を含み、前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える。
【0007】
本開示は、上記のような特徴的な構成を備えるデータ処理装置として実現することができるだけでなく、データ処理装置における特徴的な処理をステップとする方法として実現したり、コンピュータをデータ処理装置として機能させるコンピュータプログラムとして実現したりすることができる。さらに、本開示は、データ処理装置の一部又は全部を半導体集積回路として実現したり、データ処理装置を含む更新システムとして実現したりすることができる。
【発明の効果】
【0008】
本開示によれば、データ処理部を無瞬断で更新することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る更新システムの一例を説明するための模式図である。
【
図2】実施形態に係るデータ処理装置の構成の一例を示すブロック図である。
【
図3A】第2データ処理プログラムのインストール前における、実施形態に係るデータ処理装置の機能の一例を示す機能ブロック図である。
【
図3B】第2データ処理プログラムのインストール後における、実施形態に係るデータ処理装置の機能の一例を示す機能ブロック図である。
【
図4】実施形態に係る更新システムによるデータ処理更新動作の手順を示すシーケンス図である。
【
図5】実施形態に係るデータ処理装置の詳細な機能の一例を示す機能ブロック図である。
【
図6】実施形態に係るデータ処理装置における切替部による処理の手順の一例を示すフローチャートである。
【
図7A】第1処理済データが第2処理済データよりも先行して切替部に到着した場合の切替部の動作を説明する模式図である。
【
図7B】第1処理済データと第2処理済データとを同期させるための切替部の動作を説明する模式図である。
【
図8A】第2処理済データが第1処理済データよりも先行して切替部に到着した場合の切替部の動作を説明する模式図である。
【
図8B】第1処理済データと第2処理済データとを同期させるための切替部の動作を説明する模式図である。
【
図9A】第1処理済データと第2処理済データとの同期が完了した場合の切替部の動作を説明する模式図である。
【
図9B】第1処理済データから第2処理済データへ出力対象を切り替えるための切替部の動作を説明する模式図である。
【発明を実施するための形態】
【0010】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0011】
(1) 本実施形態に係るデータ処理装置は、対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、前記処理前データを処理し第2処理済データを生成する、更新用の第2データ処理部と、前記機器から複数の前記処理前データを順次受信する受信部と、前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、を備え、前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える。これにより、処理前データ毎に付与されたシーケンス番号に基づいて、第1処理済データ及び第2処理済データの選択を同期させることができ、第1処理済データから第2処理済データへ出力対象を無瞬断で切り替えることができる。したがって、データ処理部を無瞬断で更新することができる。なお、ここでは、1つのデータ処理部(例えば第1データ処理部)によって生成された処理済データがデータ処理装置から出力される場合に、当該データ処理部が「稼働中」であるという。データ処理部が起動していたとしても、当該データ処理装置によって生成された処理済データがデータ処理装置から出力されていない場合、当該データ処理部は「非稼働」である。すなわち、第1処理済データから第2処理済データへ出力対象が切り替えられると、第1データ処理部が稼働状態から非稼働状態へ切り替わり、第2データ処理部が非稼働状態から稼働状態へ切り替わる。
【0012】
(2) 前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれを選択するタイミングを調整し、同一のシーケンス番号の前記第1処理済データ及び前記第2処理済データを選択した場合に、同期が完了したと判定してもよい。これにより、シーケンス番号に基づいて、第1処理済データ及び第2処理済データの選択タイミングを同期させることができる。
【0013】
(3) 前記切替部は、前記第1処理済データを格納する第1バッファと、前記第2処理済データを格納する第2バッファと、を含み、前記第1バッファから読み出される前記第1処理済データに付与された前記シーケンス番号と、前記第2バッファから読み出される前記第2処理済データに付与された前記シーケンス番号とを比較し、前記第1バッファ及び前記第2バッファのうち、前記シーケンス番号が大きい方からのデータの読み出しを停止し、前記シーケンス番号が小さい方からのデータの読み出しを継続することによって、前記タイミングを調整してもよい。これにより、第1バッファ及び第2バッファを使用することにより、第1処理済データ及び第2処理済データの選択タイミングを調整することができる。
【0014】
(4) 前記第1データ処理部は、前記処理前データを処理するための第1データ処理プログラムがプロセッサによって実行されることにより実現され、前記第2データ処理部は、前記処理前データを処理するための第2データ処理プログラムがプロセッサによって実行されることにより実現されてもよい。データ処理プログラムを更新することにより、データ処理を簡易に更新することができる。
【0015】
(5) 前記第1データ処理部は、前記シーケンス番号を格納する第1シーケンス番号用バッファを含み、前記第1データ処理部は、受け付けられた前記処理前データと、前記処理前データに割り当てられた前記シーケンス番号とを分離し、前記シーケンス番号を前記第1シーケンス番号用バッファに格納し、前記処理前データを処理した後、前記第1シーケンス番号用バッファから前記シーケンス番号を読み出し、前記処理前データと前記シーケンス番号とを結合し、前記第2データ処理部は、前記シーケンス番号を格納する第2シーケンス番号用バッファを含み、前記第2データ処理部は、受け付けられた前記処理前データと、前記処理前データに割り当てられた前記シーケンス番号とを分離し、前記シーケンス番号を前記第2シーケンス番号用バッファに格納し、前記処理前データを処理した後、前記第2シーケンス番号用バッファから前記シーケンス番号を読み出し、前記処理前データと前記シーケンス番号とを結合してもよい。シーケンス番号を処理前データから分離することで、処理前データの処理が簡易となり、データ処理部の設計の自由度が向上する。
【0016】
(6) 前記転送部は、前記処理前データをブロードキャストすることにより、前記第1データ処理部及び前記第2データ処理部のそれぞれに前記処理前データを転送してもよい。これにより、第1データ処理部及び第2データ処理部に処理前データを引き渡すために、処理前データをコピーする必要がなく、転送のオーバーヘッドを小さくすることができる。
【0017】
(7) 本実施形態に係る更新システムは、対象に関する情報を取得する機器から出力される前記情報に関する処理前データを処理するデータ処理装置と、前記データ処理装置に対して、前記処理前データの処理の更新のための更新用データを提供するサーバと、を備え、前記データ処理装置は、前記処理前データを処理し第1処理済データを生成する、稼働中の第1データ処理部と、前記処理前データを処理し第2処理済データを生成する、前記更新用データに基づき構成された更新用の第2データ処理部と、前記機器から複数の前記処理前データを順次受信する受信部と、前記受信部によって受信された前記複数の処理前データのそれぞれにシーケンス番号を付与し、前記シーケンス番号が付与された前記複数の処理前データを前記第1データ処理部及び前記第2データ処理部のそれぞれに転送する転送部と、前記第1データ処理部及び前記第2データ処理部のそれぞれから前記第1処理済データ及び前記第2処理済データを受け付け、前記第1処理済データ及び前記第2処理済データの間で出力対象を切替可能な切替部と、を含み、前記切替部は、前記第1処理済データ及び前記第2処理済データのそれぞれに付与された前記シーケンス番号に基づいて、前記第1処理済データ及び前記第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える。
【0018】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0019】
[1.更新システム]
本実施形態に係る更新システムは、センサから出力された処理前データを処理する、稼働中の第1データ処理部から、更新用の第2データ処理部へ無瞬断で切り替えるシステムである。
【0020】
図1は、本実施形態に係る更新システムの一例を説明するための模式図である。
【0021】
更新システム10は、工場内に配置される。更新システム10は、データ処理装置100と、サーバ300とを含む。データ処理装置100には、センサ200が接続されている。
【0022】
データ処理装置100は、サーバ300とネットワーク500を介して接続されている。さらにデータ処理装置100は、データベース400とネットワーク500を介して接続されている。サーバ300及びデータベース400は、工場内に配置されていてもよいし、工場外(例えばデータセンター)に配置されていてもよい。
【0023】
センサ200は、機器の一例であり、種々のセンサであり得る。例えば、センサ200は、温度センサ、圧力センサ、電圧センサ、電流センサ、超音波センサ、光電センサ、近接センサ、加速度センサ、速度センサ、位置センサ、トルクセンサ、流量センサ、振動センサであってもよい。さらに、センサ200はカメラであってもよい。センサ200は、イーサネット(登録商標)に準拠した通信インタフェースを有しており、例えばUDP/IP(User Datagram Protocol/Internet Protocol)又はTCP/IP(Transmission Control Protocol /Internet Protocol)によって外部装置と通信することができる。イーサネットに準拠した通信インタフェースに代えて、センサ200は、RS-232C,RS-422,USB(Universal Serial Bus),CC-Link等のシリアル通信インタフェースを有していてもよい。
【0024】
センサ200は、対象(例えば、工場で製造された製品、半製品、製品の製造に使用される部品、道具、製造装置、又は搬送装置)に関する情報(例えば、温度、圧力、電圧、電流、位置、状態、加速度、速度、トルク、流量、振動数、画像)を取得し、取得された状態に関する処理前データを出力する。センサ200は、対象に関する情報を例えば所定周期毎に継続的に取得し、連続的又は断続的に処理前データを出力する。
【0025】
データ処理装置100は、センサ200の出力データ(処理前データ)を受信し、出力データを処理することができる。例えば、データ処理装置100は、温度センサ又は振動センサの出力値に対して統計処理を施し、統計値を算出したり、出力データを間引いたりすることができる。他の例では、データ処理装置100は、カメラから出力される画像に対してリサイズ、輪郭強調、モザイク処理等の画像処理を施すことができる。データ処理装置100によるデータ処理では、処理前データと処理後のデータ(処理済データ)のサイズが変更される。データ処理装置100は、データ処理によって得られた処理済データをデータベース400に登録することができる。
【0026】
サーバ300は、データ処理用のプログラム(データ処理プログラム)の更新用データ310を記憶する。サーバ300は、更新用データ310をデータ処理装置100にダウンロードする。サーバ300は、データ処理装置100に対して、稼働中のデータ処理プログラム(以下、「第1データ処理プログラム」という)から更新用のデータ処理プログラム(以下、「第2データ処理プログラム」という)に無瞬断更新を指示することができる。データ処理装置100は、サーバ300から更新用データ310をダウンロードし、更新用データ310を用いて第2データ処理プログラムをインストールすることができる。データ処理装置100は、サーバから無瞬断更新の指示(切替指示)を受け付けると、第1データ処理プログラムから第2データ処理プログラムへ更新することができる。
【0027】
[2.データ処理装置の構成]
図2は、本実施形態に係るデータ処理装置の構成の一例を示すブロック図である。データ処理装置100は、プロセッサ101と、不揮発性メモリ102と、揮発性メモリ103と、通信インタフェース(I/F)104及び105とを備える。
【0028】
揮発性メモリ103は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリである。不揮発性メモリ102は、例えばフラッシュメモリ、ハードディスク、ROM(Read Only Memory)等である。不揮発性メモリ102には、コンピュータプログラムである転送プログラム111、第1データ処理プログラム112A、切替プログラム113、及び管理プログラム114並びにこれらのプログラムの実行に使用されるデータが格納される。上記のように、サーバ300からダウンロードされた更新用データ310によって、データ処理装置100は第2データ処理プログラム112Bを不揮発性メモリ102にインストールすることができる。データ処理装置100は、コンピュータを備えて構成され、データ処理装置100の各機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムである転送プログラム111、第1データ処理プログラム112A、切替プログラム113、及び管理プログラム114がプロセッサ101によって実行されることで発揮される。
【0029】
第1データ処理プログラム112A及び第2データ処理プログラム112Bは、センサ200からの出力データを処理するためのコンピュータプログラムである。第1データ処理プログラム112Aは、稼働中のプログラムであり、更新前のプログラムである。第2データ処理プログラム112Bは、稼働前のプログラムであり、更新用(更新後)のプログラムである。
【0030】
転送プログラム111は、センサ200から受信された複数の処理前データのそれぞれにシーケンス番号を付与し、シーケンス番号が付与された複数の処理前データを第1データ処理プログラム112Aによって実現される第1データ処理部122A(
図3A参照)及び第2データ処理プログラム112Bによって実現される第2データ処理部122B(
図3A参照)のそれぞれに転送するためのコンピュータプログラムである。
【0031】
切替プログラム113は、第1データ処理部122A及び第2データ処理部122Bのそれぞれから第1処理済データ及び第2処理済データを受け付け、第1処理済データ及び第2処理済データの間で出力対象を切り替えるためのコンピュータプログラムである。切替プログラム113は、第1処理済データ及び第2処理済データのそれぞれに付与されたシーケンス番号に基づいて、第1処理済データ及び第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を第1処理済データから第2処理済データへ切り替える。
【0032】
管理プログラム114は、データ処理プログラムの更新を管理するためのコンピュータプログラムである。管理プログラム114は、第2データ処理プログラム112Bのインストールを管理する。即ち、管理プログラム114は、サーバ300から更新用データ310をダウンロードし、更新用データ310を用いて第2データ処理プログラム112Bをインストールする。管理プログラム114は、サーバ300と通信し、切替プログラムによって実現される切替部123(
図3A参照)に出力対象の切替を指示することができる。
【0033】
転送プログラム111、第1データ処理プログラム112A、切替プログラム113、及び管理プログラム114のそれぞれは、仮想マシンにおいて実行されてもよい。即ち、仮想化ソフトウェア上で動作するゲストOS(Operating System)上で転送プログラム111、第1データ処理プログラム112A、切替プログラム113、及び管理プログラム114のそれぞれが実行されてもよい。さらに、転送プログラム111、第1データ処理プログラム112A、切替プログラム113、及び管理プログラム114のそれぞれは、コンテナであってもよい。
【0034】
プロセッサ101は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ101は、CPUに限られない。プロセッサ101は、GPU(Graphics Processing Unit)であってもよい。プロセッサ101は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ101は、例えば、ASIC(Application Specific Integrated Circuit)を一部に含んでもよいし、ゲートアレイ、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを一部に含んでもよい。
【0035】
通信I/F104及び105は、例えばイーサネットインタフェースである。通信I/F104は、RS-232C,RS-422,USB(Universal Serial Bus),CC-Link等のシリアル通信インタフェースであってもよい。通信I/F104は、受信部の一例であり、センサ200に接続される。データ処理装置100は、通信I/F104によって、センサ200から処理前データを受信することができる。通信I/F105は、ネットワーク500を介してサーバ300及びデータベース400に接続される。データ処理装置100は、通信I/F105によって、サーバ300及びデータベース400と通信することができる。
【0036】
[3.データ処理装置の機能]
図3A及び
図3Bは、本実施形態に係るデータ処理装置の機能の一例を示す機能ブロック図である。
図3Aは、第2データ処理プログラム112Bが不揮発性メモリ102にインストールされる前のデータ処理装置100の機能を示し、
図3Bは、第2データ処理プログラム112Bが不揮発性メモリ102にインストールされた後のデータ処理装置100の機能を示す。
【0037】
データ処理装置100は、転送部121と、第1データ処理部122Aと、第2データ処理部122Bと、切替部123と、管理部124との機能を有する。
【0038】
図3Aに示すように、第2データ処理プログラム112Bがインストールされる前、転送部121は、通信I/F104によって受信された複数の処理前データのそれぞれを、第1データ処理部122Aに転送する。
図3Bに示すように、第2データ処理プログラム112Bがインストールされた後、転送部121は、通信I/F104によって受信された複数の処理前データのそれぞれにシーケンス番号を付与し、シーケンス番号が付与された複数の処理前データを第1データ処理部122A及び第2データ処理部122Bのそれぞれに転送する。具体的な一例では、転送部121は、処理前データをブロードキャストすることにより、第1データ処理部122A及び第2データ処理部122Bのそれぞれに処理前データを転送する。
【0039】
第1データ処理部122Aは、センサ200から出力される処理前データを処理し、第1処理済データを生成する。第2データ処理部122Bは、センサ200から出力される処理前データを処理し、第2処理済データを生成する。第1データ処理部122Aは、稼働中のデータ処理部であり、第2データ処理部122Bは、更新用のデータ処理部である。つまり、第2データ処理部122Bは、第1データ処理部122Aよりも新しいバージョンのデータ処理部である。第1データ処理部122A及び第2データ処理部122Bは、例えば、温度センサ又は振動センサの出力値に対して統計処理を施し、統計値を算出したり、出力データを間引いたりすることができる。他の例では、第1データ処理部122A及び第2データ処理部122Bは、カメラから出力される画像に対してリサイズ、輪郭強調、モザイク処理等の画像処理を施すことができる。第1データ処理部122A及び第2データ処理部122Bによるデータ処理では、処理前データと第1処理済データ及び第2処理済データとの間でサイズが変更される。
【0040】
切替部123は、第1データ処理部122A及び第2データ処理部122Bのそれぞれから第1処理済データ及び第2処理済データを受け付け、第1処理済データ及び第2処理済データのいずれか1つを出力する。切替部123から出力された第1処理済データ又は第2処理済データは、通信I/F105によってデータベース400へ送信される。
【0041】
切替部123は、第1処理済データ及び第2処理済データの間で出力対象を切替可能である。切替部123は、第1処理済データ及び第2処理済データのそれぞれに付与されたシーケンス番号に基づいて、第1処理済データ及び第2処理済データのそれぞれを同期させて選択し、同期が完了した後に出力対象を前記第1処理済データから前記第2処理済データへ切り替える。具体的な一例では、切替部123は、第1処理済データ及び第2処理済データのそれぞれを選択するタイミングを調整し、同一のシーケンス番号の第1処理済データ及び第2処理済データを選択した場合に、同期が完了したと判定する。
【0042】
管理部124は、データ処理プログラムの更新を管理する。管理部124は、第2データ処理プログラム112Bのインストールを管理する。管理部124は、サーバ300から更新用データ310をダウンロードし、更新用データ310を用いて第2データ処理プログラム112Bをインストールする。管理部124は、サーバ300と通信し、切替部123に出力対象の切替を指示する。
【0043】
転送部121は、転送プログラム111(
図2参照)がプロセッサ101によって実行されることで実現される。第1データ処理部122Aは、第1データ処理プログラム112A(
図2参照)がプロセッサ101によって実行されることで実現される。第2データ処理部122Bは、第2データ処理プログラム112B(
図2参照)がプロセッサ101によって実行されることで実現される。切替部123は、切替プログラム113(
図2参照)がプロセッサ101によって実行されることで実現される。管理部124は、管理プログラム114(
図2参照)がプロセッサ101によって実行されることで実現される。
【0044】
[4.更新システムのデータ処理更新動作]
図4は、本実施形態に係る更新システム10によるデータ処理更新動作の手順を示すシーケンス図である。
【0045】
サーバ300は、データ処理装置100に第2データ処理プログラム112Bがインストールされる前に、データ処理装置100に対して第2データ処理プログラム112Bの起動指示を送信する(ステップS1)。さらにサーバ300は、例えばデータ処理装置100からのダウンロード要求に応じて、更新用データ310をデータ処理装置100にダウンロードする(ステップS2)。
【0046】
データ処理装置100のプロセッサ101は、ダウンロードされた更新用データ310を用いて、第2データ処理プログラム112Bを不揮発性メモリ102にインストールする(ステップS3)。さらにプロセッサ101は、インストールされた第2データ処理プログラム112Bを起動し(ステップS4)、起動完了通知をサーバ300へ送信する(ステップS5)。サーバ300は、起動完了通知を受信することにより、データ処理装置100における第2データ処理プログラム112Bの起動を確認する(ステップS6)。
【0047】
プロセッサ101は、第1データ処理部122Aから出力される第1処理済データの選択と、第2データ処理部122Bから出力される第2処理済データの選択との同期処理を実行する(ステップS7)。同期処理の詳細は後述する。
【0048】
プロセッサ101は、同期が完了すると、同期完了通知をサーバ300へ送信する(ステップS8)。サーバ300は、同期完了通知を受信することにより、データ処理装置100における第1処理済データ及び第2処理済データの選択の同期を確認する(ステップS9)。
【0049】
サーバ300は、第1処理済データから第2処理済データへの出力対象の切り替えを指示するための切替指示をデータ処理装置100へ送信する(ステップS10)。プロセッサ101は、切替指示を受信すると、切替部123において出力対象を第1処理済データから第2処理済データへ無瞬断で切り替える(ステップS11)。これにより、第2データ処理部122Bが稼働中となり、第1データ処理部122Aが非稼働となる。
【0050】
プロセッサ101は、切替完了通知をサーバ300へ送信する(ステップS12)。サーバ300は、切替完了通知を受信することにより、データ処理装置100における第1処理済データから第2処理済データへの出力対象の切り替えを確認する(ステップS13)。
【0051】
サーバ300は、第1データ処理プログラム112Aの停止指示を送信する(ステップS14)。プロセッサ101は、停止指示を受信すると、第1データ処理プログラム112Aを停止させ(ステップS15)、第1データ処理プログラム112Aの停止完了通知をサーバ300へ送信する(ステップS16)。サーバ300は、停止完了通知を受信することにより、データ処理装置100における第1データ処理プログラム112Aの停止を確認する(ステップS17)。以上で、データ処理更新動作が終了する。
【0052】
[5.同期処理]
次に、データ処理装置100における同期処理について説明する。
図5は、本実施形態に係るデータ処理装置の詳細な機能の一例を示す機能ブロック図である。
【0053】
転送部121は、読取部211と、シーケンス番号付与部212と、データ転送部213とを含む。
【0054】
読取部211は、通信I/F104の受信バッファからデータを読み出す。例えば、パケット通信によってセンサ200から生データが送信される場合、生データのサイズが大きく、複数のパケットに分割されて送信されていれば、読取部211は、データグラムの再構築を実行する。即ち、読取部211は、パケットを読み出し、読み出されたパケットからペイロードを抽出し、各パケットから抽出されたペイロードを結合して生データ(処理前データ)を復元する。生データのサイズが小さい場合、又は、シリアル通信によって生データが送信される場合、データグラムの再構築は不要である。
【0055】
シーケンス番号付与部212は、読取部211によって得られた処理前データのそれぞれに対して時系列でシーケンス番号を付与する。シーケンス番号は処理前データに付加される。
【0056】
データ転送部213は、シーケンス番号が付加された処理前データを第1データ処理部122A及び第2データ処理部122Bのそれぞれに転送する。例えば、処理前データの転送は、プロセス間通信によって行われる。具体的な一例では、ソケット通信によって処理前データが送信される。ソケット通信では、例えばUDP(User Datagram Protocol)が使用される。例えば、データ転送部213は、ソケット通信において、処理前データをブロードキャストする。これにより、処理前データをコピーする必要がなく、転送のオーバーヘッドを小さくすることができる。他の例として、パイプ通信を用いることもできる。さらに他の例として、共有メモリを使用してデータ転送部213と第1データ処理部122A及び第2データ処理部122Bとの間でデータ交換を行うこともできる。
【0057】
第1データ処理部122Aは、入力部221Aと、処理部222Aと、出力部223Aと、第1シーケンス番号用バッファ224Aとを含む。第2データ処理部122Bは、入力部221Bと、処理部222Bと、出力部223Bと、第2シーケンス番号用バッファ224Bとを含む。第1シーケンス番号用バッファ224A及び第2シーケンス番号用バッファ224Bのそれぞれは、例えば揮発性メモリ103の一部の領域によって構成される。以下の説明では、入力部221A及び入力部221Bを総称して「入力部221」ともいう。同様に、処理部222A及び処理部222Bを総称して「処理部222」ともいい、出力部223A及び出力部223Bを総称して「出力部223」ともいい、第1シーケンス番号用バッファ224A及び第2シーケンス番号用バッファ224Bを総称して「シーケンス番号用バッファ224」ともいう。
【0058】
入力部221は、データ転送部213から送信された処理前データを受信する。入力部221は、受信された処理前データからシーケンス番号を分離し、シーケンス番号をシーケンス番号用バッファ224に格納する。例えば、シーケンス番号用バッファ224はFIFO(First In First Out)バッファである。入力部221は、シーケンス番号が除去された処理前データを処理部222に引き渡す。
【0059】
処理部222は、与えられた処理前データに対して所定の処理を施し、処理後データ(第1処理後データ又は第2処理後データ)を生成する。生成された処理後データは、出力部223に与えられる。処理部は、シーケンス番号が除去された処理前データを処理すればよいので、シーケンス番号付きの処理前データに対応する必要がない。したがって、処理部222の処理が複雑になりすぎず、第1データ処理プログラム112A及び第2データ処理プログラム112Bの設計の自由度が向上する。
【0060】
出力部223は、シーケンス番号用バッファ224からシーケンス番号を読み出し、与えられた処理後データにシーケンス番号を付加する。このため、処理済データのデータサイズが処理前データから変わっていたとしても、処理前データと処理済データとに割り当てられるシーケンス番号が一致する。出力部223は、シーケンス番号が付加された処理済データを、切替部123へ出力する。
【0061】
切替部123は、第1バッファ231と、第2バッファ232と、比較部233と、選択部234とを含む。
【0062】
第1バッファ231は、第1データ処理部122Aから出力された第1処理済データを格納する。例えば、第1バッファ231はFIFOバッファである。第1バッファ231は、複数の第1処理済データを格納することができるサイズを有することが好ましい。
【0063】
第2バッファ232は、第2データ処理部122Bから出力された第2処理済データを格納する。例えば、第2バッファ232はFIFOバッファである。第2バッファ232は、複数の第2処理済データを格納することができるサイズを有することが好ましい。
【0064】
比較部233は、第1バッファ231から第1処理済データを1つずつ読み出すことができる。比較部233は、第2バッファ232から第2処理済データを1つずつ読み出すことができる。比較部233は、第1バッファ231から第1処理済データを読み出すことにより、当該第1処理済データを選択し、第2バッファ232から第2処理済データを読み出すことにより、当該第2処理済データを選択する。比較部233は、選択された第1処理済データのシーケンス番号SN1と、選択された第2処理済データのシーケンス番号SN2とを比較する。
【0065】
SN1-SN2>0の場合、第1処理済データが第2処理済データよりも先行して切替部123に到着している。この場合、比較部233は、第1バッファ231からの第1処理済データの読み出しを停止し、第2バッファ232からの第2処理済データの読み出しを継続する。これにより、SN1とSN2との差が小さくなる。
【0066】
SN1-SN2<0の場合、第2処理済データが第1処理済データよりも先行して切替部123に到着している。この場合、比較部233は、第1バッファ231からの第1処理済データの読み出しを継続し、第2バッファ232からの第2処理済データの読み出しを停止する。これにより、SN1とSN2との差が小さくなる。
【0067】
SN1-SN2=0の場合、比較部233は、同期が完了したと判定する。
【0068】
比較部233は、シーケンス番号を比較後の第1処理済データと第2処理済データとを選択部234に出力する。選択部234は、第1処理済データ及び第2処理済データのいずれか1つを選択し、選択された一方の処理済データを出力する。第1データ処理部122Aが稼働中の場合、選択部234は第1処理済データを選択し、選択された第1処理済データを出力する。第1データ処理部122Aが稼働中であれば、第2処理済データは選択されない。選択部234は、第1処理済データ及び第2処理済データの選択の同期が完了し、且つ、サーバ300から切替指示が与えられた場合、出力対象を第1処理済データから第2処理済データに切り替える。つまり、この場合、選択部234は、第1処理済データを選択せず、第2処理済データを選択し、選択された第2処理済データを出力する。これにより、第1データ処理部122Aが非稼働となり、第2データ処理部122Bが稼働する。出力された処理済データは、通信I/F105によってデータベース400に送信される。
【0069】
図6は、本実施形態に係るデータ処理装置における切替部による処理の手順の一例を示すフローチャートである。
【0070】
プロセッサ101は、第1バッファ231から第1処理済データを読み出し、第2バッファ232から第2処理済データを読み出す(ステップS101)。プロセッサ101は、読み出された第1処理済データに付加されたシーケンス番号SN1と、読み出された第2処理済データに付加されたシーケンス番号SN2とを比較し、SN1-SN2=0か否かを判定する(ステップS102)。
【0071】
SN1-SN2≠0の場合(ステップS102においてNO)、プロセッサ101は、SN1-SN2>0か否かを判定する(ステップS103)。
【0072】
SN1-SN2>0の場合(ステップS103においてYES)、プロセッサ101は、第1バッファ231からの読み出しを停止し、第2バッファ232から第2処理済データを読み出す(ステップS104)。その後、プロセッサ101はステップS102へ戻る。
【0073】
SN1-SN2>0の場合の切替部123の動作を、図面を用いて説明する。
図7A及び
図7Bは、第1処理済データが第2処理済データよりも先行して切替部123に到着した場合の切替部123の動作を説明する模式図である。
図7Aに示すように、第1バッファ231から読み出された第1処理済データのシーケンス番号SN1が「3」であり、第2バッファ232から読み出された第2処理済データのシーケンス番号SN2が「1」である場合、SN1-SN2>0である。この場合、比較部233は、第1バッファ231からの読み出しを停止し、第2バッファ232から第2処理済データを読み出す。この間、第1データ処理部122Aから出力される第1処理済データが、第1バッファ231に滞留する。
図7Bに示すように、比較部233が第2バッファ232から2つの第2処理済データを読み出した時点で、第1処理済データのシーケンス番号SN1が「3」であり、第2処理済データのシーケンス番号SN2が「3」である。したがって、SN1-SN2=0となる。
【0074】
再び
図6を参照する。SN1-SN2<0の場合(ステップS103においてNO)、プロセッサ101は、第2バッファ232からの読み出しを停止し、第1バッファ231から第1処理済データを読み出す(ステップS105)。その後、プロセッサ101はステップS102へ戻る。
【0075】
SN1-SN2<0の場合の切替部123の動作を、図面を用いて説明する。
図8A及び
図8Bは、第2処理済データが第1処理済データよりも先行して切替部123に到着した場合の切替部123の動作を説明する模式図である。
図8Aに示すように、第1バッファ231から読み出された第1処理済データのシーケンス番号SN1が「3」であり、第2バッファ232から読み出された第2処理済データのシーケンス番号SN2が「5」である場合、SN1-SN2<0である。この場合、比較部233は、第2バッファ232からの読み出しを停止し、第1バッファ231から第1処理済データを読み出す。この間、第2データ処理部122Bから出力される第2処理済データが、第2バッファ232に滞留する。
図8Bに示すように、比較部233が第1バッファ231から2つの第1処理済データを読み出した時点で、第1処理済データのシーケンス番号SN1が「5」であり、第2処理済データのシーケンス番号SN2が「5」である。したがって、SN1-SN2=0となる。
【0076】
再び
図6を参照する。SN1-SN2=0の場合(ステップS102においてYES)、プロセッサ101は、同期が完了したと判定する。この場合、プロセッサ101は、第1バッファ231及び第2バッファ232から第1処理済データ及び第2処理済データを継続的に読み出し、その一方(第1処理済データ)を通信I/F105へ出力する。プロセッサ101は、サーバ300から出力切替指示を受信したか否かを判定し(ステップS106)、出力切替指示を受信していない場合(ステップS106においてNO)、ステップS101へ戻る。
【0077】
サーバ300から出力切替指示を受信した場合(ステップS106においてYES)、プロセッサ101は、出力対象を第1処理済データから第2処理済データへ切り替える(ステップS107)。これにより、第1データ処理部122Aが非稼働となり、第2データ処理部122Bが稼働する。
【0078】
SN1-SN2=0の場合の切替部123の動作を、図面を用いて説明する。
図9A及び
図9Bは、第1処理済データと第2処理済データとの同期が完了した場合の切替部123の動作を説明する模式図である。
図9Aの例では、比較部233におけるシーケンス番号SN1及びシーケンス番号SN2が共に「6」である。したがって、SN1-SN2=0であり、同期は完了している。選択部234からはシーケンス番号SN1が「5」の第1処理済データが出力されている。ここで、
図8Aに示すように、サーバ300から出力切替指示が与えられると、管理部124が選択部234へ切替を指示する。選択部234は、出力対象を第1処理済データから第2処理済データへ切り替える。これにより、シーケンス番号SN2が「6」の第2処理済データが選択部234から出力され、無瞬断で第1データ処理部122Aから第2データ処理部122Bへの切替が実現される。つまり、このようにして無瞬断でデータ処理部の更新が行われる。
【0079】
以上で、同期処理における切替部123の処理が終了する。
【0080】
[6.変型例]
上記の実施形態では、第1データ処理部122Aを第1データ処理プログラム112Aによって実現し、第2データ処理部122Bを第2データ処理プログラム112Bによって実現したが、これに限定されない。例えば、第1データ処理部122A及び第2データ処理部122BをFPGAによって実現することもできる。この場合、更新用データ310は、第2データ処理部122Bを構成するためのコンフィグレーションデータとすることができる。
【0081】
上記の実施形態では、第1バッファ231からの第1処理済データの読み出しタイミングと、第2バッファ232からの第2処理済データの読み出しタイミングの一方を遅らせることで、第1処理済データ及び第2処理済データを同期させたが、これに限定されない。例えば、第1処理済データ及び第2処理済データのうち、切替部123への出力が先行している一方に遅延を挿入することで、第1処理済データ及び第2処理済データを同期させてもよい。
【0082】
[7.効果]
以上のように、データ処理装置100は、第1データ処理部122Aと、第2データ処理部122Bと、通信I/F104と、転送部121と、切替部123とを含む。第1データ処理部122Aは、対象に関する情報を取得するセンサ200から出力される情報に関する処理前データを処理し第1処理済データを生成する。第1データ処理部122Aは、稼働中のデータ処理部である。第2データ処理部122Bは、センサ200から出力される情報に関する処理前データを処理し第2処理済データを生成する。第2データ処理部122Bは更新用のデータ処理部である。通信I/F104は、センサ200と通信し、センサ200から複数の処理前データを順次受信する。転送部121は、通信I/F104によって受信された複数の処理前データのそれぞれにシーケンス番号を付与する。転送部121は、シーケンス番号が付与された複数の処理前データを第1データ処理部122A及び第2データ処理部122Bのそれぞれに転送する。切替部123は、第1データ処理部122A及び第2データ処理部122Bのそれぞれから第1処理済データ及び第2処理済データを受け付ける。切替部123は、第1処理済データ及び第2処理済データの間で出力対象を切替可能である。切替部123は、第1処理済データ及び第2処理済データのそれぞれに付与されたシーケンス番号に基づいて、第1処理済データ及び第2処理済データのそれぞれを同期させて選択する。切替部123は、同期が完了した後に出力対象を第1処理済データから第2処理済データへ切り替える。これにより、処理前データ毎に付与されたシーケンス番号に基づいて、第1処理済データ及び第2処理済データの選択を同期させることができ、第1処理済データから第2処理済データへ出力対象を無瞬断で切り替えることができる。したがって、データ処理部を無瞬断で更新することができる。
【0083】
切替部123は、第1処理済データ及び第2処理済データのそれぞれを選択するタイミングを調整し、同一のシーケンス番号の第1処理済データ及び第2処理済データを選択した場合に、同期が完了したと判定してもよい。これにより、シーケンス番号に基づいて、第1処理済データ及び第2処理済データの選択タイミングを同期させることができる。
【0084】
切替部123は、第1バッファ231と、第2バッファ232とを含んでもよい。第1バッファ231は、第1処理済データを格納する。第2バッファ232は、第2処理済データを格納する。切替部123は、第1バッファ231から読み出される第1処理済データに付与されたシーケンス番号SN1と、第2バッファ232から読み出される第2処理済データに付与されたシーケンス番号SN2とを比較してもよい。切替部123は、第1バッファ231及び第2バッファ232のうち、シーケンス番号が大きい方からのデータの読み出しを停止し、シーケンス番号が小さい方からのデータの読み出しを継続することによって、タイミングを調整してもよい。これにより、第1バッファ231及び第2バッファ232を使用することにより、第1処理済データ及び第2処理済データの選択タイミングを調整することができる。
【0085】
第1データ処理部122Aは、処理前データを処理するための第1データ処理プログラム112Aがプロセッサ101によって実行されることにより実現されてもよい。第2データ処理部122Bは、処理前データを処理するための第2データ処理プログラム112Bがプロセッサ101によって実行されることにより実現されてもよい。データ処理プログラムを更新することにより、データ処理を簡易に更新することができる。
【0086】
第1データ処理部122Aは、第1シーケンス番号用バッファ224Aを含んでもよい。第1シーケンス番号用バッファ224Aは、シーケンス番号を格納する。第1データ処理部122Aは、受け付けられた処理前データと、処理前データに割り当てられたシーケンス番号とを分離し、シーケンス番号を第1シーケンス番号用バッファ224Aに格納してもよい。第1データ処理部122Aは、処理前データを処理した後、第1シーケンス番号用バッファ224Aからシーケンス番号を読み出し、処理前データとシーケンス番号とを結合してもよい。第2データ処理部122Bは、第2シーケンス番号用バッファ224Bを含んでもよい。第2シーケンス番号用バッファ224Bは、シーケンス番号を格納する。第2データ処理部122Bは、受け付けられた処理前データと、処理前データに割り当てられたシーケンス番号とを分離し、シーケンス番号を第2シーケンス番号用バッファ224Bに格納してもよい。第2データ処理部122Bは、処理前データを処理した後、第2シーケンス番号用バッファ224Bからシーケンス番号を読み出し、処理前データとシーケンス番号とを結合してもよい。シーケンス番号を処理前データから分離することで、処理前データの処理が簡易となり、第1データ処理部122A及び第2データ処理部122Bの設計の自由度が向上する。
【0087】
転送部121は、処理前データをブロードキャストすることにより、第1データ処理部122A及び第2データ処理部122Bのそれぞれに処理前データを転送してもよい。これにより、第1データ処理部122A及び第2データ処理部122Bに処理前データを引き渡すために、処理前データをコピーする必要がなく、転送のオーバーヘッドを小さくすることができる。
【0088】
[8.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0089】
10 更新システム
100 データ処理装置
101 プロセッサ
102 不揮発性メモリ
103 揮発性メモリ
104,105 通信インタフェース(通信I/F)
111 転送プログラム
112A 第1データ処理プログラム
112B 第2データ処理プログラム
113 切替プログラム
114 管理プログラム
121 転送部
122A 第1データ処理部
122B 第2データ処理部
123 切替部
124 管理部
200 センサ
211 読取部
212 番号付与部
213 データ転送部
221,221A,221B 入力部
222,222A,222B 処理部
223,223A,223B 出力部
224A 第1シーケンス番号用バッファ
224B 第2シーケンス番号用バッファ
224 シーケンス番号用バッファ
231 第1バッファ
232 第2バッファ
233 比較部
234 選択部
300 サーバ
310 更新用データ
400 データベース
500 ネットワーク