(57)【特許請求の範囲】
【請求項１】
複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置であって、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部と、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信する通信部と、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定する処理パタン特定部と、
を具備するサーバ装置。
【請求項２】
前記処理パタンリストは、複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタ及びスキーマ情報を対応づけて保持し、
前記スキーマ情報は、対応する処理パタンにおいて最後に実行される加工処理プログラムによって得られるスキーマのパタンであり、
前記処理パタン特定部は、前記処理パタンリストにおいて、前記受信したブルームフィルタ及び前記受信した加工処理後データのスキーマと一致する前記管理ブルームフィルタ及び前記スキーマ情報に対応付けられた処理パタンを、前記加工処理後データに対して実行された処理パタンとして特定する、
請求項１記載のサーバ装置。
【請求項３】
前記管理ブルームフィルタ及び前記スキーマ情報の複数の組み合わせであって、前記複数の処理パタンにそれぞれ対応し且つ互いに異なる前記複数の組み合わせを得ることができる、前記ハッシュ関数グループを特定し、前記特定されたハッシュ関数グループを用いて得られた前記管理ブルームフィルタと前記スキーマ情報とを前記処理パタンに対応付けた前記処理パタンリストを形成するリスト形成部をさらに具備する、請求項２記載のサーバ装置。
【請求項４】
前記通信部は、前記特定したハッシュ関数グループを前記複数のエッジ機器に送信する、
請求項３記載のサーバ装置。
【請求項５】
前記処理パタン特定部は、前記加工処理後データに対して実行された処理パタンが特定できない場合、前記加工処理後データを不正データとして特定する、
請求項１から４のいずれか１項に記載のサーバ装置。
【請求項６】
前記複数の処理パタンは、第１処理パタン及び第２処理パタンを含み、
前記第１処理パタンは、第１バージョンの一の処理加工プログラムに関する情報を含み、
前記第２処理パタンは、前記第１バージョンと異なる第２バージョンの前記一の処理加工プログラムに関する情報を含む、
請求項１から５のいずれか１項に記載のサーバ装置。
【請求項７】
デバイスから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれ、且つ、下位層のエッジ機器から受け取ったデータに対して加工処理を施して得られた加工処理後データを前記サーバ装置又は上位層のエッジ機器へ送信するエッジ機器であって、
前記下位層のエッジ機器から、前記データと共に第１ブルームフィルタを受信する通信部であって、前記第１ブルームフィルタは、前記下位層のエッジ機器にてデータに対して実行された処理加工プログラムと１つ又は複数のハッシュ関数を含むハッシュ関数グループとを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記通信部と、
自エッジ機器にて前記受信されたデータに対して実行される加工処理プログラムと前記ハッシュ関数グループとを用いて算出したハッシュ値に基づいて第２ブルームフィルタを形成し、前記形成された第２ブルームフィルタと前記受信された第１ブルームフィルタとの論理和を算出することによって第３ブルームフィルタを形成する形成部と、
を具備し、
前記通信部は、前記形成された第３ブルームフィルタを前記加工処理後データと共に前記サーバ装置又は前記上位層のエッジ機器へ送信する、
エッジ機器。
【請求項８】
前記通信部は、前記ハッシュ関数グループを前記サーバ装置から受信する、
請求項７記載のエッジ機器。
【請求項９】
複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置による処理パタン特定方法であって、
前記サーバ装置は、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部を具備し、
前記処理パタン特定方法は、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信すること、及び、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定すること、
を含む処理パタン特定方法。
【請求項１０】
複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置に処理を実行させる制御プログラムであって、
前記サーバ装置は、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部を具備し、
前記サーバ装置に実行させる処理は、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信すること、及び、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定すること、
を含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラムに関する。
【背景技術】
【０００２】
センサやカメラ等のデバイスにて得られたデータをサーバに収集するシステムが提案されている（例えば、特許文献１）。特許文献１に開示されている技術では、データを集約するためにブルームフィルタが用いられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１３２９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、通信コスト及びデータの二次利用時の加工処理コストを低下させるために、デバイスとサーバとの間に階層化された複数のエッジ機器のそれぞれにおいてデータに加工処理（例えば、変換、集約など）を施すことが考えられる。この場合、サーバが受け取る加工処理後のデータにどのような処理パタン（つまり、加工処理の種別及び加工処理の順番）が実行されたかについての情報が無ければ、加工処理後のデータを有効利用できない可能性がある。
【０００５】
しかしながら、特許文献１に開示されている技術では、加工処理後データに実行された処理パタンを特定することができない可能性がある。
【０００６】
本開示の目的は、加工処理後データに実行された処理パタンを特定することができる、サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
第１の態様にかかるサーバ装置は、複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置であって、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部と、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信する通信部と、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定する処理パタン特定部と、
を具備する。
【０００８】
第２の態様にかかるエッジ機器は、デバイスから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれ、且つ、下位層のエッジ機器から受け取ったデータに対して加工処理を施して得られた加工処理後データを前記サーバ装置又は上位層のエッジ機器へ送信するエッジ機器であって、
前記下位層のエッジ機器から、前記データと共に第１ブルームフィルタを受信する通信部であって、前記第１ブルームフィルタは、前記下位層のエッジ機器にてデータに対して実行された処理加工プログラムと１つ又は複数のハッシュ関数を含むハッシュ関数グループとを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記通信部と、
自エッジ機器にて前記受信されたデータに対して実行される加工処理プログラムと前記ハッシュ関数グループとを用いて算出したハッシュ値に基づいて第２ブルームフィルタを形成し、前記形成された第２ブルームフィルタと前記受信された第１ブルームフィルタとの論理和を算出することによって第３ブルームフィルタを形成する形成部と、
を具備し、
前記通信部は、前記形成された第３ブルームフィルタを前記加工処理後データと共に前記サーバ装置又は前記上位層のエッジ機器へ送信する。
【０００９】
第３の態様にかかる処理パタン特定方法は、複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置による処理パタン特定方法であって、
前記サーバ装置は、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部を具備し、
前記処理パタン特定方法は、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信すること、及び、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定すること、
を含む。
【００１０】
第４の態様にかかる制御プログラムは、複数のデバイスのそれぞれから階層化された複数のエッジ機器を介してサーバ装置にデータを収集する情報収集システムに含まれる前記サーバ装置に処理を実行させる制御プログラムであって、
前記サーバ装置は、
処理パタンリストを記憶する記憶部であって、前記処理パタンリストは複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタを対応づけて保持し、各処理パタンが１つ又は複数のエッジ機器を含んだ前記サーバ装置へ至るルート上の前記１つ又は複数のエッジ機器にて実行される加工処理プログラムについての実行順列に対応し、前記管理ブルームフィルタは、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含むハッシュ関数グループを用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである、前記記憶部を具備し、
前記サーバ装置に実行させる処理は、
前記サーバ装置に直接的に接続されているエッジ機器から送信された、加工処理後データ及び前記加工処理後データに対して実行された処理パタンに応じたブルームフィルタを受信すること、及び、
前記処理パタンリスト及び前記受信したブルームフィルタに基づいて、前記加工処理後データに対して実行された処理パタンを特定すること、
を含む。
【発明の効果】
【００１１】
本開示により、加工処理後データに実行された処理パタンを特定することができる、サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態における情報収集システムの一例を示す図である。
【図２】第１実施形態におけるサーバの一例を示すブロック図である。
【図３】第１実施形態における第１階層エッジ機器の一例を示すブロック図である。
【図４】第１実施形態における第２階層エッジ機器の一例を示すブロック図である。
【図５】第３実施形態におけるサーバの一例を示すブロック図である。
【図６】第３実施形態におけるパタン候補リストの一例を示す図である。
【図７】第３実施形態におけるサーバの処理動作の一例を示すフローチャートである。
【図８】ハッシュ値の算出の説明に供する図である。
【図９】ブルームフィルタの形成の説明に供する図である。
【図１０】スキーマ候補記憶部に記憶されているスキーマ候補テーブルの一例を示す図である。
【図１１】処理パタンリストの一例を示す図である。
【図１２】受信信号に含まれるスキーマ及びブルームフィルタの一例を示す図である。
【図１３】サーバのハードウェア構成例を示す図である。
【図１４】エッジ機器のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一又は同等の要素には、同一の符号を付し、重複する説明は省略される。
【００１４】
＜第１実施形態＞
＜情報収集システムの概要＞
図１は、第１実施形態における情報収集システムの一例を示す図である。図１において情報収集システム１は、サーバ１０と、エッジ機器２０−１１，２０−１２，２０−１３と、エッジ機器２０−２１，２０−２２と、デバイス３０−１，３０−２，３０−３，３０−４とを含んでいる。以下では、エッジ機器２０−１１，２０−１２，２０−１３を区別しない場合、単にエッジ機器２０−１と呼ぶことがある。また、エッジ機器２０−２１，２０−２２を区別しない場合、単にエッジ機器２０−２と呼ぶことがある。そして、エッジ機器２０−１を「第１階層エッジ機器」と呼び、エッジ機器２０−２を「第２階層エッジ機器」と呼ぶことがある。また、エッジ機器２０−１とエッジ機器２０−２とを区別しない場合、単にエッジ機器２０と呼ぶことがある。また、デバイス３０−１，３０−２，３０−３，３０−４を区別しない場合、単にデバイス３０と呼ぶことがある。なお、図１では、エッジ機器２０−１を３つ、エッジ機器２０−２を２つ、デバイス３０を４つとしているが、これらの数はこれに限定されるものではない。
【００１５】
エッジ機器２０−１は、デバイス３０に直接的に接続されている。すなわち、エッジ機器２０−１は、デバイス３０から見て１階層目のエッジ機器である。
【００１６】
エッジ機器２０−２は、エッジ機器２０−１を介してデバイス３０に接続されている。すなわち、エッジ機器２０−２は、デバイス３０から見て２階層目のエッジ機器である。
【００１７】
また、エッジ機器２０−２は、サーバ１０と直接的に接続されている。すなわち、エッジ機器２０−２は、最上位階層のエッジ機器である。つまり、エッジ機器２０−１は、エッジ機器２０−２から見て、下位層のエッジ機器である。なお、ここでは、エッジ機器の階層は２階層であるがこれに限定されるものではなく３階層以上であってもよい。
【００１８】
デバイス３０は、センサ、カメラ、又はＩｏＴ（Internet of Things）デバイス等であってもよく、種々のデータを取得する。
【００１９】
例えば、サーバ１０は、デバイス３０−１で得られたデータがエッジ機器２０−１１及びエッジ機器２０−２１で段階的に加工処理が施された、「加工処理後データ」を取得する。また、サーバ１０は、この加工処理後データと共に、この加工処理後データに対して実行された「処理パタン」に応じた「ブルームフィルタ」を取得する。「処理パタン」は、例えば、エッジ機器２０−１１にて加工処理プログラムＡが実行されてエッジ機器２０−２１にて加工処理プログラムＢが実行された場合、「Ａ−Ｂ」である。すなわち、「処理パタン」は、デバイス３０からサーバ１０へ至るルートであって１つ又は複数のエッジ機器２０を含んだ「ルート」上で実行された加工処理プログラムについての「実行順列」に対応する。そして、サーバ１０は、取得したブルームフィルタに基づいて、取得した加工処理後データに対して実行された処理パタンを特定する。
【００２０】
＜サーバの構成例＞
図２は、第１実施形態におけるサーバの一例を示すブロック図である。図２においてサーバ１０は、記憶部１１と、通信部１２と、処理パタン特定部１３とを有している。
【００２１】
記憶部１１は、「処理パタンリスト」を記憶する。「処理パタンリスト」は、複数の処理パタンのそれぞれに各処理パタンに応じた「管理ブルームフィルタ」を対応づけて保持している。「処理パタンリスト」は、情報収集システム１における全ての処理パタンを保持している。「管理ブルームフィルタ」は、対応する処理パタンに含まれる各処理加工プログラムについて１つ又は複数のハッシュ関数を含む「ハッシュ関数グループ」を用いて算出されたハッシュ値に基づいて形成されたブルームフィルタである。
【００２２】
通信部１２は、サーバ１０に直接的に接続されているエッジ機器２０−２から送信された、加工処理後データ及びこの加工処理後データに対して実行された処理パタンに応じたブルームフィルタを含む信号を受信する。
【００２３】
処理パタン特定部１３は、「処理パタンリスト」及び通信部１２にて受信されたブルームフィルタに基づいて、通信部１２にて受信された加工処理後データに対して実行された処理パタンを特定する。
【００２４】
＜第１階層エッジ機器の構成例＞
図３は、第１実施形態における第１階層エッジ機器の一例を示すブロック図である。図３においてエッジ機器２０−１は、通信部２１と、データ加工部２２と、形成部２３と、記憶部２４とを有している。
【００２５】
通信部２１は、デバイス３０からデータを受信する。また、通信部２１は、データ加工部２２にて得られた加工処理後データと形成部２３にて得られたブルームフィルタ（以下、「第１ブルームフィルタ」と呼ぶことがある）とを含む送信信号を形成してエッジ機器２０−２へ送信する。
【００２６】
データ加工部２２は、デバイス３０から受信したデータに対して記憶部２４に記憶されている加工処理プログラムを用いて加工処理を実行することによって、加工処理後データを得る。なお、この加工処理は、複数の加工処理プログラムに対応する複数の加工処理を含んでいてもよい。
【００２７】
形成部２３は、ハッシュ値算出部２３Ａと、形成処理部２３Ｂとを含む。
【００２８】
ハッシュ値算出部２３Ａは、記憶部２４に記憶されている上記の加工処理プログラムと「ハッシュ関数グループ」とを用いて、加工処理プログラムのハッシュ値を算出する。「ハッシュ関数グループ」は、１つ又は複数のハッシュ関数を含む。
【００２９】
形成処理部２３Ｂは、ハッシュ値算出部２３Ａにて算出されたハッシュ値を用いて、「第１ブルームフィルタ」を形成する。例えば、形成処理部２３Ｂは、それぞれビット値が「０」である所定個のビットから成るビット列において、算出されたハッシュ値に対応するビットのビット値を「１」にすることによって、「第１ブルームフィルタ」を形成する。
【００３０】
記憶部２４は、加工処理プログラム記憶部２４Ａとハッシュ関数記憶部２４Ｂとを含む。加工処理プログラム記憶部２４Ａは、データ加工部２２にて用いられる加工処理プログラムを保持する。ハッシュ関数記憶部２４Ｂは、ハッシュ値算出部２３Ａにて用いられるハッシュ関数グループを保持する。
【００３１】
＜第２階層エッジ機器の構成例＞
図４は、第１実施形態における第２階層エッジ機器の一例を示すブロック図である。図４に示すエッジ機器２０−２の基本構成は、エッジ機器２０−１の構成と同じである。図４においてエッジ機器２０−２は、通信部２６と、データ加工部２７と、形成部２８と、記憶部２９とを有している。
【００３２】
通信部２６は、エッジ機器２０−１から送信された、データ（つまり、エッジ機器２０−１で得られた加工処理後データ）と第１ブルームフィルタとを含む信号を受信する。また、通信部２６は、データ加工部２７にて得られた加工処理後データと形成部２８にて得られたブルームフィルタ（以下、「第３ブルームフィルタ」と呼ぶことがある）とを含む送信信号を形成してサーバ１０へ送信する。
【００３３】
データ加工部２７は、エッジ機器２０−１から受信したデータに対して記憶部２９に記憶されている加工処理プログラムを用いて加工処理を実行することによって、加工処理後データを得る。なお、この加工処理は、複数の加工処理プログラムに対応する複数の加工処理を含んでいてもよい。
【００３４】
形成部２８は、ハッシュ値算出部２８Ａと、形成処理部２８Ｂとを含む。
【００３５】
ハッシュ値算出部２８Ａは、記憶部２９に記憶されている上記の加工処理プログラムと「ハッシュ関数グループ」とを用いて、加工処理プログラムのハッシュ値を算出する。「ハッシュ関数グループ」は、１つ又は複数のハッシュ関数を含む。このハッシュ関数グループは、エッジ機器２０−１のハッシュ関数グループと同じものである。
【００３６】
形成処理部２８Ｂは、ハッシュ値算出部２８Ａにて算出されたハッシュ値を用いて上記の第１ブルームフィルタを更新することによって、第３ブルームフィルタを形成する。
【００３７】
例えば、形成処理部２８Ｂは、ハッシュ値算出部２８Ａにて算出されたハッシュ値を用いて「第２ブルームフィルタ」を形成する。例えば、形成処理部２８Ｂは、それぞれビット値が「０」である所定個のビットから成るビット列において、ハッシュ値算出部２８Ａ算出されたハッシュ値に対応するビットのビット値を「１」にすることによって、「第２ブルームフィルタ」を形成する。
【００３８】
そして、形成処理部２８Ｂは、上記の第２ブルームフィルタと上記の第１ブルームフィルタとの論理和を算出することによって、第３ブルームフィルタを形成する。
【００３９】
記憶部２９は、加工処理プログラム記憶部２９Ａとハッシュ関数記憶部２９Ｂとを含む。加工処理プログラム記憶部２９Ａは、データ加工部２７にて用いられる加工処理プログラムを保持する。ハッシュ関数記憶部２９Ｂは、ハッシュ値算出部２８Ａにて用いられるハッシュ関数グループを保持する。
【００４０】
以上のように第１実施形態によれば、サーバ１０にて通信部１２は、サーバ１０に直接的に接続されているエッジ機器２０−２から送信された、加工処理後データ及びこの加工処理後データに対して実行された処理パタンに応じたブルームフィルタを含む信号を受信する。処理パタン特定部１３は、「処理パタンリスト」及び通信部１２にて受信されたブルームフィルタに基づいて、通信部１２にて受信された加工処理後データに対して実行された処理パタンを特定する。
【００４１】
このサーバ１０の構成により、加工処理後データに実行された処理パタンを特定することができる。
【００４２】
また、エッジ機器２０−２にて形成部２８は、エッジ機器２０−２にて実行される加工処理プログラムとハッシュ関数グループとを用いて算出したハッシュ値に基づいて第２ブルームフィルタを形成する。そして、形成部２８は、形成された第２ブルームフィルタとエッジ機器２０−１から受信された第１ブルームフィルタとの論理和を算出することによって、第３ブルームフィルタを形成する。通信部２６は、データ加工部２７にて得られた加工処理後データと形成部２８にて得られた第３ブルームフィルタとを含む送信信号を形成してサーバ１０へ送信する。
【００４３】
このエッジ機器２０−２の構成により、サーバ１０にて加工処理後データに実行された処理パタンを特定することができる。
【００４４】
＜第２実施形態＞
第２実施形態は、ブルームフィルタ及びスキーマ情報に基づいて処理パタンを特定する実施形態に関する。なお、第２実施形態の情報収集システム、サーバ、及びエッジ機器の構成は、第１実施形態の情報収集システム１、サーバ１０、及びエッジ機器２０−１，２０−２と同じなので、図１〜図４を参照して説明する。
【００４５】
第２実施形態におけるサーバ１０の記憶部１１は、「処理パタンリスト」を記憶する。この処理パタンリストは、複数の処理パタンのそれぞれに各処理パタンに応じた管理ブルームフィルタ及び「スキーマ情報」を対応づけて保持している。「スキーマ情報」は、対応する処理パタンにおいて最後に実行される加工処理プログラムによって得られるスキーマのパタンである。
【００４６】
第２実施形態におけるサーバ１０の処理パタン特定部１３は、「処理パタンリスト」において、通信部１２にて受信したブルームフィルタ及び通信部１２にて受信した加工処理後データのスキーマと一致する、管理ブルームフィルタ及びスキーマ情報に対応付けられた処理パタンを、加工処理後データに対して実行された処理パタンとして特定する。通信部１２にて受信した加工処理後データには、エッジ機器２０−２にて実行された処理加工プログラムの「出力データスキーマ」が含まれている。
【００４７】
以上のサーバ１０の構成により、ブルームフィルタ及びスキーマを用いて加工処理後データに実行された処理パタンを特定するので、より精度良く処理パタンを特定できる。すなわち、ブルームフィルタには「擬陽性」の問題があるが、ブルームフィルタに加えてスキーマを用いることによって、処理パタンを区別することができる。なお、ブルームフィルタのビット列長を長くすることで擬陽性の問題は低減されるが、ブルームフィルタのデータサイズが大きくなってしまう。これに対して、ブルームフィルタに加えてスキーマを用いることによって、ブルームフィルタのデータサイズを小さくしても処理パタンの特定精度を維持できる。さらに、ブルームフィルタのデータサイズを小さくできるので、情報処理システムにおける伝送量を低減することができる。
【００４８】
＜第３実施形態＞
第３実施形態は、第２実施形態の処理パタンリストの形成方法に関する。なお、第３実施形態の情報収集システム及びエッジ機器の構成は、第２実施形態と同じなので、図１，図３，図４を参照して説明する。すなわち、第３実施形態の情報収集システム１は、サーバ１０の代わりに、後述するサーバ５０を含む。
【００４９】
＜サーバの構成例＞
図５は、第３実施形態におけるサーバの一例を示すブロック図である。図５においてサーバ５０は、通信部１２と、処理パタン特定部１３と、記憶部５１と、リスト形成部５２とを有している。
【００５０】
記憶部５１は、処理パタン記憶部５１Ａと、加工処理プログラム記憶部５１Ｂと、ハッシュ関数候補記憶部５１Ｃと、スキーマ候補記憶部５１Ｄと、処理パタンリスト記憶部５１Ｅと、関数グループ記憶部５１Ｆとを含む。
【００５１】
処理パタン記憶部５１Ａは、情報収集システム１における全ての処理パタン候補を保持するパタン候補リストを記憶する。図６は、第３実施形態におけるパタン候補リストの一例を示す図である。図６に示すパタン候補リストは、５つの処理パタン候補を保持している。例えば、処理パタン候補（１）は、「Ａ−Ｂ−Ｃ」であり、加工処理プログラムＡ，Ｂ，Ｃの順番で実行されることを示している。
【００５２】
加工処理プログラム記憶部５１Ｂは、情報収集システム１に含まれるエッジ機器２０にて実行される全ての加工処理プログラムを記憶している。
【００５３】
ハッシュ関数候補記憶部５１Ｃは、ハッシュ関数グループを選択するために用いられる複数のハッシュ関数候補（つまり、「ハッシュ関数の母集団」）を記憶する。
【００５４】
スキーマ候補記憶部５１Ｄは、情報収集システム１に含まれるエッジ機器２０にて実行される各加工処理プログラムの「出力データスキーマ」を記憶している。
【００５５】
処理パタンリスト記憶部５１Ｅは、リスト形成部５２にて形成された処理パタンリストを記憶する。
【００５６】
関数グループ記憶部５１Ｆは、リスト形成部５２にて特定されたハッシュ関数グループを記憶する。
【００５７】
リスト形成部５２は、管理ブルームフィルタ及びスキーマ情報の複数の組み合わせであって、複数の処理パタンにそれぞれ対応し且つ互いに異なる複数の組み合わせを得ることができる、「ハッシュ関数グループ」を特定する。そして、リスト形成部５２は、特定されたハッシュ関数グループを用いて得られた管理ブルームフィルタとスキーマ情報とを処理パタンに対応付けた処理パタンリストを形成する。このハッシュ関数グループの特定及び処理パタンリストの形成については後に詳しく説明する。
【００５８】
リスト形成部５２は、特定した「ハッシュ関数グループ」を、関数グループ記憶部５１Ｆに記憶させると共に通信部１２を介してエッジ機器２０へ送信する。これにより、エッジ機器２０は、ハッシュ関数グループを受信して記憶する。
【００５９】
＜サーバの動作例＞
以上の構成を有するサーバ５０の処理動作の一例について説明する。図７は、第３実施形態におけるサーバの処理動作の一例を示すフローチャートである。ここでは、処理パタンリストの形成について説明する。
【００６０】
リスト形成部５２は、選択するハッシュ関数の数Ｋを１に設定し（ステップＳ１０１）、ハッシュ関数候補記憶部５１Ｃのハッシュ関数母集団からＫ個のハッシュ関数を選択する（ステップＳ１０２）。
【００６１】
リスト形成部５２は、処理パタン記憶部５１Ａのパタン候補リストから処理パタンを１つ選択する（ステップＳ１０３）。
【００６２】
リスト形成部５２は、ステップＳ１０３にて選択された処理パタンに対応する各加工処理プログラムを加工処理プログラム記憶部５１Ｂから取得して、各加工処理プログラムのハッシュ値をＫ個のハッシュ関数のそれぞれを用いて算出する（ステップＳ１０４）。
【００６３】
リスト形成部５２は、ステップＳ１０４で算出されたハッシュ値を用いて、ステップＳ１０３にて選択された処理パタンに対応するブルームフィルタを形成する（ステップＳ１０５）。
【００６４】
リスト形成部５２は、全ての処理パタンを選択したか否かを判定し（ステップＳ１０６）、まだ選択していない処理パタンが存在する場合（ステップＳ１０６ＮＯ）、処理ステップはステップＳ１０３に戻る。これにより、まだ選択されていない処理パタンが選択される。すなわち、ステップＳ１０３〜Ｓ１０５は、全ての処理パタンが選択されるまで繰り返される。
【００６５】
全ての処理パタンが選択されている場合（ステップＳ１０６ＹＥＳ）、リスト形成部５２は、ステップＳ１０３〜Ｓ１０５の繰り返しによって形成された複数のブルームフィルタにおいて同じブルームフィルタが存在するか否かを判定する（ステップＳ１０７）。
【００６６】
同じブルームフィルタが存在しない場合（ステップＳ１０７ＮＯ）、リスト形成部５２は、ステップＳ１０３〜Ｓ１０５の繰り返しによって形成された複数のブルームフィルタを用いて処理パタンリストを形成する（ステップＳ１０８）。そして、リスト形成部５２は、形成した処理パタンリストを処理パタンリスト記憶部５１Ｅに格納する（ステップＳ１０８）。また、リスト形成部５２は、ステップＳ１０２で最後に選択したグループを関数グループ記憶部５１Ｆに記憶させてもよい。また、リスト形成部５２は、ステップＳ１０２で最後に選択したグループを通信部１２を介してエッジ機器２０へ送信する。
【００６７】
同じブルームフィルタが存在する場合（ステップＳ１０７ＹＥＳ）、リスト形成部５２は、ブルームフィルタが同じである複数の処理パタンに対応するスキーマが同じであるか否かを判定する（ステップＳ１０９）。例えば、リスト形成部５２は、ブルームフィルタが同じである複数の処理パタンのそれぞれの最後に実行される加工処理プログラムのスキーマをスキーマ候補記憶部５１Ｄから取得して、取得した複数のスキーマを比較する。
【００６８】
スキーマが同じでない場合（ステップＳ１０９ＮＯ）、処理ステップは、ステップＳ１０８へ進む。すなわち、リスト形成部５２は、複数の処理パタンのそれぞれに各処理パタンに応じたブルームフィルタ及びスキーマを対応づけた、処理パタンリストを形成し、処理パタンリストを処理パタンリスト記憶部５１Ｅに格納する。
【００６９】
スキーマが同じである場合（ステップＳ１０９）、リスト形成部５２は、全てのグループを選択したか否かを判定する（ステップＳ１１０）。未だ選択していないグループが存在する場合（ステップＳ１１０ＮＯ）、処理ステップは、ステップＳ１０２に戻る。これにより、未だ選択されていないグループが母集団から選択される。
【００７０】
全てのグループが選択された場合（ステップＳ１１０ＹＥＳ）、リスト形成部５２は、Ｋをインクリメントし（ステップＳ１１１）、ＫがＮを超えたか否かを判定する（ステップＳ１１２）。ここで、Ｎは、ハッシュ関数母集団に含まれるハッシュ関数の数である。
【００７１】
ＫがＮ以下である場合（ステップＳ１１２ＮＯ）、処理ステップは、ステップＳ１０２に戻る。ＫがＮを超えた場合（ステップＳ１１２ＹＥＳ）、図７のフローは終了する。
【００７２】
次に、サーバ５０の処理動作の一例を、具体例を用いて説明する。ここでは、図６に示したタン候補リストが用いられるものとする。また、Ｋ＝２であるものとする。
【００７３】
リスト形成部５２は、図８に示すように、各加工プログラムのハッシュ値を第１のハッシュ関数及び第２のハッシュ関数を用いて算出する。すなわち、第１のハッシュ関数を用いて算出されたハッシュ値が「ハッシュ値１」であり、第２のハッシュ関数を用いて算出されたハッシュ値が「ハッシュ値２」である。図８は、ハッシュ値の算出の説明に供する図である。
【００７４】
リスト形成部５２は、図９に示すように、各加工プログラムについて算出されたハッシュ値１及びハッシュ値２を用いて、各処理パタンのブルームフィルタを形成する。図９は、ブルームフィルタの形成の説明に供する図である。
【００７５】
ここで、図９において処理パタン（２）のブルームフィルタと処理パタン（５）のブルームフィルタとは同じである。このため、リスト形成部５２は、処理パタン（２）のスキーマ（つまり、最後に実行される加工処理プログラムＤのスキーマ）と処理パタン（５）のスキーマ（つまり、最後に実行される加工処理プログラムＥのスキーマ）とをスキーマ候補記憶部５１Ｄ（図１０参照）から取得して両者を比較する。図１０は、スキーマ候補記憶部に記憶されているスキーマ候補テーブルの一例を示す図である。図１０に示すように、処理パタン（２）のスキーマ（加工処理プログラムＤのスキーマ）と処理パタン（５）のスキーマ（加工処理プログラムＥのスキーマ）とは異なっている。
【００７６】
そして、リスト形成部５２は、図１１に示すように、処理パタンリストを作成する。図１１は、処理パタンリストの一例を示す図である。なお、図１１では、ブルームフィルタが同じである処理パタン（２），（５）にのみスキーマ情報が対応づけられているが、これに限定されるものではなく、各処理パタンにスキーマ情報が対応づけられてもよい。
【００７７】
処理パタン特定部１３は、このような処理パタンリストを用いて、加工処理後データに対して実行された処理パタンを特定する。例えば、処理パタン特定部１３は、通信部１２にて図１２に示すスキーマを含むデータ（加工処理後データ）とブルームフィルタとを信号が受信された場合、処理パタン（２）を、加工処理後データに対して実行された処理パタンとして特定する。図１２は、受信信号に含まれるスキーマ及びブルームフィルタの一例を示す図である。
【００７８】
＜他の実施形態＞
＜１＞第１実施形態から第３実施形態では、加工処理プログラムのバージョンについて特に記載していないが、加工処理プログラムのバージョンが異なる場合、異なる処理パタンとして扱われてもよい。すなわち、加工処理プログラムＡにバージョンＶ１及びバージョンＶ２が存在する場合、処理パタン「ＡＶ１−Ｂ−Ｃ」と処理パタン「ＡＶ２−Ｂ−Ｃ」とは異なる処理パタンとしてもよい。
【００７９】
＜２＞第１実施形態から第３実施形態における処理パタン特定部１３は、加工処理後データに対して実行された処理パタンが特定できない場合、加工処理後データを「不正データ」として特定してもよい。
【００８０】
＜３＞図１３は、サーバのハードウェア構成例を示す図である。図１３においてサーバ１００は、プロセッサ１０１と、メモリ１０２と、通信回路１０３とを有している。プロセッサ１０１は、例えば、マイクロプロセッサ、MPU（Micro Processing Unit）、又はCPU（Central Processing Unit）であってもよい。プロセッサ１０１は、複数のプロセッサを含んでもよい。メモリ１０２は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ１０２は、プロセッサ１０１から離れて配置されたストレージを含んでもよい。この場合、プロセッサ１０１は、図示されていないI/Oインタフェースを介してメモリ１０２にアクセスしてもよい。
【００８１】
第１実施形態から第３実施形態のサーバ１０，５０は、それぞれ、図１３に示したハードウェア構成を有することができる。第１実施形態から第３実施形態のサーバ１０，５０の処理パタン特定部１３とリスト形成部５２とは、プロセッサ１０１がメモリ１０２に記憶されたプログラムを読み込んで実行することにより実現されてもよい。記憶部１１，５１は、メモリ１０２によって実現されてもよい。通信部１２は、通信回路１０３によって実現されてもよい。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、サーバ１０，５０に供給することができる。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）を含む。さらに、非一時的なコンピュータ可読媒体の例は、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってサーバ１０，５０に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをサーバ１０，５０に供給できる。
【００８２】
図１４は、エッジ機器のハードウェア構成例を示す図である。図１４においてエッジ機器２００は、プロセッサ２０１と、メモリ２０２と、通信回路２０３とを有している。プロセッサ２０１は、例えば、マイクロプロセッサ、MPU（Micro Processing Unit）、又はCPU（Central Processing Unit）であってもよい。プロセッサ２０１は、複数のプロセッサを含んでもよい。メモリ２０２は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ２０２は、プロセッサ２０１から離れて配置されたストレージを含んでもよい。この場合、プロセッサ２０１は、図示されていないI/Oインタフェースを介してメモリ２０２にアクセスしてもよい。
【００８３】
第１実施形態から第３実施形態のエッジ機器２０−１，２０−２は、それぞれ、図１４に示したハードウェア構成を有することができる。第１実施形態から第３実施形態のエッジ機器２０−１，２０−２のデータ加工部２２，２７と形成部２３，２８とは、プロセッサ２０１がメモリ２０２に記憶されたプログラムを読み込んで実行することにより実現されてもよい。記憶部２４，２９は、メモリ２０２によって実現されてもよい。通信部２１，２６は、通信回路２０３によって実現されてもよい。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、エッジ機器２０−１，２０−２に供給することができる。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）を含む。さらに、非一時的なコンピュータ可読媒体の例は、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってエッジ機器２０−１，２０−２に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをエッジ機器２０−１，２０−２に供給できる。
【００８４】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８５】
１  情報収集システム
１０  サーバ
１１  記憶部
１２  通信部
１３  処理パタン特定部
２０  エッジ機器
２１  通信部
２２  データ加工部
２３  形成部
２３Ａ  ハッシュ値算出部
２３Ｂ  形成処理部
２４  記憶部
２４Ａ  加工処理プログラム記憶部
２４Ｂ  ハッシュ関数記憶部
２６  通信部
２７  データ加工部
２８  形成部
２８Ａ  ハッシュ値算出部
２８Ｂ  形成処理部
２９  記憶部
２９Ａ  加工処理プログラム記憶部
２９Ｂ  ハッシュ関数記憶部
３０  デバイス
５０  サーバ
５１  記憶部
５１Ａ  処理パタン記憶部
５１Ｂ  加工処理プログラム記憶部
５１Ｃ  ハッシュ関数候補記憶部
５１Ｄ  スキーマ候補記憶部
５１Ｅ  処理パタンリスト記憶部
５１Ｆ  関数グループ記憶部
５２  リスト形成部
【要約】
【課題】加工処理後データに実行された処理パタンを特定することができる、サーバ装置、エッジ機器、特定方法及び制御プログラムを提供する。
【解決手段】サーバ１０にて通信部１２は、サーバ１０に直接的に接続されているエッジ機器２０−２から送信された、加工処理後データ及びこの加工処理後データに対して実行された処理パタンに応じたブルームフィルタを含む信号を受信する。処理パタン特定部１３は、「処理パタンリスト」及び通信部１２にて受信されたブルームフィルタに基づいて、通信部１２にて受信された加工処理後データに対して実行された処理パタンを特定する。
【選択図】図２【図１】
0006901016.tif 000002
【図２】
0006901016.tif 000003
【図３】
0006901016.tif 000004
【図４】
0006901016.tif 000005
【図５】
0006901016.tif 000006
【図６】
0006901016.tif 000007
【図７】
0006901016.tif 000008
【図８】
0006901016.tif 000009
【図９】
0006901016.tif 000010
【図１０】
0006901016.tif 000011
【図１１】
0006901016.tif 000012
【図１２】
0006901016.tif 000013
【図１３】
0006901016.tif 000014
【図１４】
0006901016.tif 000015