(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024152088
(43)【公開日】2024-10-25
(54)【発明の名称】計算機、データ管理方法、データ管理プログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20241018BHJP
【FI】
G06F11/36 160
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023066034
(22)【出願日】2023-04-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000198
【氏名又は名称】弁理士法人湘洋特許事務所
(72)【発明者】
【氏名】鳥羽 忠信
(72)【発明者】
【氏名】西納 修一
(72)【発明者】
【氏名】植松 裕
(72)【発明者】
【氏名】新保 健一
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA11
5B042MA18
5B042MC08
5B042MC35
(57)【要約】
【課題】診断データを扱う際により適切にデータ量を削減する。
【解決手段】1以上のプロセッサと、1以上のメモリリソースとを有し、エッジシステムから送信される複数の診断データを処理する計算機であって、前記1以上のプロセッサは、複数の前記診断データとその各々に関連付けられた複数の時刻データとを記憶部に保存するステップと、複数の前記診断データのうちで、内容が共通する第1の診断データと第2の診断データとを特定するステップと、前記第2の診断データに関連付けられている前記時刻データを前記第1の診断データに関連付けるステップと、前記記憶部において前記第2の診断データが保存されている領域を解放するステップと、を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1以上のプロセッサと、1以上のメモリリソースとを有し、エッジシステムから送信される複数の診断データを処理する計算機であって、
前記1以上のプロセッサは、
複数の前記診断データとその各々に関連付けられた複数の時刻データとを記憶部に保存するステップと、
複数の前記診断データのうちで、内容が共通する第1の診断データと第2の診断データとを特定するステップと、
前記第2の診断データに関連付けられている前記時刻データを前記第1の診断データに関連付けるステップと、
前記記憶部において前記第2の診断データが保存されている領域を解放するステップと、
を実行する計算機。
【請求項2】
請求項1に記載の計算機であって、
前記1以上のプロセッサは、
複数の前記診断データをその内容に基づいて複数のグループにグループ化するステップを実行し、
複数の前記診断データのうちで同一の前記グループに属する二つの前記診断データをそれぞれ前記第1の診断データ及び前記第2の診断データとして特定する、
計算機。
【請求項3】
請求項2に記載の計算機であって、
前記1以上のプロセッサは、前記グループ化の条件を更新するステップを実行する、
計算機。
【請求項4】
請求項3に記載の計算機であって、
前記1以上のプロセッサは、前記時刻データと前記診断データの各々の送信元の前記エッジシステムの位置を示す位置情報に基づき、前記グループ化の前記条件を更新する、
計算機。
【請求項5】
請求項1に記載の計算機であって、
前記時刻データと前記診断データは、当該時刻データと当該診断データの送信元を示す識別コードと関連付けられた、
計算機。
【請求項6】
請求項1に記載の計算機であって、
前記1以上のプロセッサは、
前記記憶部に格納されたグラフ型データベースのノードの属性値として前記診断データを保存し、前記グラフ型データベースのエッジの属性値として前記時刻データを保存する、
計算機。
【請求項7】
請求項1に記載の計算機であって、
前記1以上のプロセッサは、
前記記憶部に保存された複数の前記時刻データの合計のデータサイズが設定値を超えると、複数の前記時刻データのうちで最も古い時刻データとそれに関連付けられた前記診断データとを上書き可能にするステップ、
を実行する計算機。
【請求項8】
請求項1に記載の計算機であって、
前記1以上のプロセッサは、
前記時刻データが示す時刻が現在時刻と比較して所定時間以上古いとき、当該時刻データとそれに関連付けられた前記診断データとを上書き可能にするステップ、
を実行する計算機。
【請求項9】
1以上のプロセッサと、1以上のメモリリソースとを有し、エッジシステムから送信される複数の診断データを処理する計算機が実行するデータ管理方法であって、
複数の前記診断データとその各々に関連付けられた複数の時刻データとを記憶部に保存するステップと、
複数の前記診断データのうちで、内容が共通する第1の診断データと第2の診断データとを特定するステップと、
前記第2の診断データに関連付けられている前記時刻データを前記第1の診断データに関連付けるステップと、
前記記憶部において前記第2の診断データが保存されている領域を解放するステップと、を含む、
データ管理方法。
【請求項10】
請求項9に記載のデータ管理方法であって、
複数の前記診断データをその内容に基づいて複数のグループにグループ化するステップを更に含み、
複数の前記診断データのうちで同一の前記グループに属する二つの前記診断データをそれぞれ前記第1の診断データ及び前記第2の診断データとして特定する、
データ管理方法。
【請求項11】
請求項10に記載のデータ管理方法であって、
前記グループ化の条件を更新するステップを更に含む、
データ管理方法。
【請求項12】
請求項11に記載のデータ管理方法であって、
前記時刻データと前記診断データの各々の送信元の前記エッジシステムの位置を示す位置情報に基づき、前記グループ化の前記条件を更新する、
データ管理方法。
【請求項13】
請求項9に記載のデータ管理方法であって、
前記時刻データと前記診断データは、当該時刻データと当該診断データの送信元を示す識別コードと関連付けられた、
データ管理方法。
【請求項14】
請求項9に記載のデータ管理方法であって、
前記記憶部に格納されたグラフ型データベースのノードの属性値として前記診断データを保存し、前記グラフ型データベースのエッジの属性値として前記時刻データを保存する、
データ管理方法。
【請求項15】
請求項9乃至請求項14のいずれか1項に記載のデータ管理方法を計算機に実行させる
データ管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算機、データ管理方法、データ管理プログラムに関する。
【背景技術】
【0002】
特許文献1には、ストレージシステムに格納しているデータを予め設定したサイズで分割し、その分割したデータごとに完全に一致しているかを比較する技術が開示されている。この技術では、データの重複率を基に分割サイズを小さくし、完全に一致するかを判定することでデータ重複の割合を増やし、その重複部分を削除、再配置することでストレージシステムのデータ容量を削減する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
モータやエンジンに代表される移動体における移動機構や、この移動機構を保有する自動車や、アクチュエータに代表される設備における作動機構を制御する機構等のエッジシステムに対しては、様々な環境状況を考慮した安全要求がある。
【0005】
例えば、エッジシステムは、異常を検知するとエッジシステム内の状態情報を収集し、異常の要因の弁別を行うことで異常時の安全を確保する。また、例えば自動車に搭載している電子システムにおいては、異常検知情報やシステム内部状態だけでなく、走行時の状態や周囲環境条件の影響も異常の診断において考慮する必要がある。そのため、エッジシステムは、異常検知や診断情報、センサからのデータ、環境情報、ユーザ情報等の多様な診断データをクラウドシステムで収集した上で、その診断データを総合的に解釈して異常の診断を行う。このようにクラウドシステムで収集した診断データによって異常の診断を行う場合、過去の多くの診断データを使うことで診断精度を向上できる。
【0006】
しかし、収集した診断データの保存期間が長くなれば、そのデータ量が莫大なものになり、運用コストを増大させる。
【0007】
前述の特許文献1に記載の技術は、各データが完全に一致するときにデータを削除しており、かつデータサイズを小さくすることでデータ同士が一致する割合を増やしている。しかし、この技術は、管理するデータ単位が細分化されることで、データを管理するためのタグ情報等のインデックスデータの情報量が増えることを考慮していない。
【0008】
本発明は、このような状況に鑑みてなされたものであり、診断データを扱う際により適切にデータ量を削減することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の一態様に係る計算機は、1以上のプロセッサと、1以上のメモリリソースとを有し、エッジシステムから送信される複数の診断データを処理する計算機であって、前記1以上のプロセッサは、複数の前記診断データとその各々に関連付けられた複数の時刻データとを記憶部に保存するステップと、複数の前記診断データのうちで、内容が共通する第1の診断データと第2の診断データとを特定するステップと、前記第2の診断データに関連付けられている前記時刻データを前記第1の診断データに関連付けるステップと、前記記憶部において前記第2の診断データが保存されている領域を解放するステップと、を実行する。
【発明の効果】
【0010】
本発明によれば、診断データを扱う際により適切にデータ量を削減することが可能となる。
【0011】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、第1実施形態に係る計算機の機能構成の一例を示す模式図である。
【
図2】
図2は、第1実施形態に係る入力データのフォーマットの一例を示す模式図である。
【
図3】
図3は、第1実施形態に係る整形データのフォーマットの一例を示す模式図である。
【
図4】
図4は、第1実施形態において時刻データ格納DBがマージされた診断データ格納DBの一例を示す模式図である。
【
図5】
図5は、第1実施形態に係る計算機が実行する処理の一例を示すフローチャートである。
【
図6】
図6は、第1実施形態において内容が共通する診断データを削除する処理の流れの一例を示す模式図である。
【
図7】
図7は、第1実施形態において内容が共通する診断データを削除する場合に計算機が実行する処理の一例を示すフローチャートである。
【
図8】
図8は、第1実施形態において時刻データが保存されている領域を解放する場合に計算機が実行する処理の一例を示すフローチャートである。
【
図9】
図9は、第1実施形態においてグループ化を行う場合に計算機が実行する処理の一例を示すフローチャートである。
【
図10】
図10は、第1実施形態におけるグループ化の条件の一例を示す模式図である。
【
図11】
図11は、第1実施形態におけるグラフ型データベースの一例を示す模式図である。
【
図12】
図12は、第2実施形態に係る計算機の機能構成の一例を示す模式図である。
【
図13】
図13は、第3実施形態に係る計算機の機能構成の一例を示す模式図である。
【
図14】
図14は、第1~第3実施形態に係る計算機のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明に係る一実施形態を図面に基づいて説明する。なお、実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は適宜省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含む。
【0014】
<第1実施形態>
図1は、本実施形態に係る計算機1の機能構成の一例を示す模式図である。
図1に示すように、計算機1は、インターネット等のネットワーク9を介してエッジシステム2と接続される。エッジシステム2は、例えば自動運転等の自動稼働が可能な移動体(例えば車両、ドローン、ロボット)、又は設備(例えばロボットアームや工作機械、数値制御旋盤等)である。
【0015】
計算機1は、データ入力処理部3、データ整形処理部4、データ保存処理部5、診断処理部6、診断操作処理部7、結果表示処理部8、記憶部10、データリード処理部13、DB更新部14、時刻データリンク更新部15、診断データ重複判定部16、時刻リンク確認処理部17、重複データ削除処理部18、及びデータ要素グループ化部19を備える。
【0016】
データ入力処理部3は、エッジシステム2が送信する入力データの入力を受け付ける。
【0017】
図2は、エッジシステム2が自動車の場合の入力データのフォーマットの一例を示す模式図である。
図2に示すように、入力データ20は、TYP、SID、EOD、DCT、LOC、STD、及びOTMの各フィールドを有する。
【0018】
TYPフィールドは、入力データ20の種類を示すコードを格納する。例えば、車両内部データ、プローブデータ(車両内温度や振動データ等)、及び走行地点の環境情報等の種類を示すコードがTYPフィールドに格納される。このうち、車両内部データの例としては、プロセッサ異常、データ通信異常、メモリ異常、及び電源異常等の要因分類情報や、事故発生時の内部状態記録、及び運転作動記録等の記録情報がある。
【0019】
SIDフィールドは、入力データ20の送信元のエッジシステム2を識別する識別コードを格納する。
【0020】
EODフィールドは、同一事象が継続している継続時間やその発生周期を格納する。例えば、複数の異常が観測された場合、これらが同一の異常か否かがEODフィールドに基づいて判断される。
【0021】
DCTフィールドは、STDフィールドに格納されているデータの形式的、意味的、又は表記的な分類を示すコードを格納する。
【0022】
LOCフィールドは、事象発生部位やデータの取得部位を示すコードを格納する。
【0023】
STDフィールドは、自動車内から収集した診断データの実値を格納する。
【0024】
OTMフィールドは、計算機1が入力データ20を取得した取得時刻、又は事象の発生時刻を格納する。格納される時刻の種類は限定されず、例えば、エッジシステム2がデータを送信した送信時刻であってもよい。
【0025】
なお、上記のSTDフィールドを複数のサブフィールドに区切り、各サブフィールドの各々に複数の診断データの各々の実値を格納してもよい。これにより、複数の診断データを一つのSIDとOTMに関連付けて保管することができる。
【0026】
再び
図1を参照する。データ整形処理部4は、データベースに格納するのに適した形式に入力データ20のフォーマットを整形し、整形後の整形データを出力する。
【0027】
図3は、第1実施形態に係る整形データのフォーマットの一例を示す模式図である。
図3に示すように、整形データ30は、時刻データ31、識別コード32、時刻データ33、及び診断データ34を備える。
【0028】
時刻データ31には、OTMに格納されている時刻が格納される。識別コード32には、SIDに格納されている識別コードが格納される。識別コードは、前述のように入力データ20の送信元のエッジシステム2を識別するコードである。そのため、識別コード32を各データ31、34と関連付けることで、送信元のエッジシステム2の異常を診断することができる。
【0029】
診断データ34には、STDフィールドに格納されている診断データの実値が格納される。なお、STDフィールドに加え、TYP、EOD、DCT、及びLOCの各フィールドのデータを診断データ34に含めてもよい。
【0030】
時刻データ33は、診断データ34のリンク先の時刻が格納されるフィールドである。リンク先の時刻は一つでもよいし複数でもよい。なお、データ整形処理部4が整形データ30を出力した直後では、時刻データ33は空である。
【0031】
このようなフォーマットによれば、時刻データ31をキー、診断データ34をバリューとするキーバリュー型データベースに適した整形データ30が得られる。
【0032】
再び
図1を参照する。データ保存処理部5は、記憶部10の診断データ格納DB11に識別コード32、時刻データ33、及び診断データ34を書き込むための制御命令やプログラムを生成し、診断データ格納DB11にこれらのデータを保存する。また、データ保存処理部5は、記憶部10の時刻データ格納DB12に時刻データ31を書き込むための制御命令やプログラムを生成し、時刻データ格納DB12に時刻データ31を保存する。
【0033】
診断処理部6は、診断データ格納DB11に保存された診断データ34をデータリード処理部13から取得し、その診断データ34に基づき、エッジシステム2で発生した異常の要因を診断したり、その要因を弁別したりする。診断処理部6の診断対象は、エッジシステム2の異常に限定されず、エッジシステム2で生じた事象が発生した時期、回数、及び期間等でもよい。
【0034】
診断操作処理部7は、診断処理部6における処理内容の選択や操作指示等を実行する。
【0035】
結果表示処理部8は、診断処理部6における診断結果をUI(User Interface)デバイスに表示する。
【0036】
記憶部10は、診断データ格納DB11と時刻データ格納DB12とを記憶する。診断データ格納DB11は、識別コード32、時刻データ33、及び診断データ34を格納するデータベースである。また、時刻データ格納DB12は、時刻データ31を格納するデータベースである。
【0037】
データリード処理部13は、診断データ格納DB11に保存された診断データ34と、時刻データ格納DB12に保存された時刻データ31とを読み出す。
【0038】
診断データ重複判定部16は、複数の診断データ34とこれに関連付けられた時刻データ31の取得要求を診断データ格納DB11と時刻データ格納DB12の各々に通知する。その取得要求に対するリプライとして、診断データ重複判定部16は、データリード処理部13から複数の診断データ34とこれに関連付けられた時刻データ31とを取得する。そして、診断データ重複判定部16は、取得した複数の診断データ34のうちで内容が共通する診断データ34が存在するかを判定する。以下では、内容が共通する二つの診断データ34のうち、対応する時刻データ31が示す時刻が古い方を第1の診断データ34と呼び、時刻が新しい方を第2の診断データ34と呼ぶ。後述のように時刻が新しい第2の診断データ34は削除の対象となるが、時刻が古い第1の診断データ34を削除の対象としてもよい。
【0039】
時刻データリンク更新部15は、診断データ重複判定部16から判定結果を取得し、内容が共通すると判定された前述の第1の診断データ34と第2の診断データ34とを特定する。更に、時刻データリンク更新部15は、第2の診断データ34に関連付けられている時刻データ31を第1の診断データ34に関連付ける。例えば、時刻データリンク更新部15は、第2の診断データ34に関連付けられている時刻データ31を、第1の診断データ34に関連付けられている時刻データ33に格納することで、時刻データ31と第1の診断データとの関連付けを行う。また、時刻データリンク更新部15は、診断データ格納DB11において第2の診断データ34が保存されている位置を重複データ削除処理部18に通知する。
【0040】
重複データ削除処理部18は、診断データ格納DB11において第2の診断データ34が保存されている位置をDB更新部14に通知すると共に、当該第2の診断データ34を削除する指示をDB更新部14に通知する。その指示を受けて、DB更新部14は、診断データ格納DB11において第2の診断データ34が保存されている領域を解放する。
【0041】
時刻リンク確認処理部17は、診断データ格納DB11に格納されている診断データ34に関連付けられていない時刻データ31が存在するかを確認する。そのような時刻データ31が存在する場合、時刻リンク確認処理部17は、重複データ削除処理部18に対して、時刻データ格納DB12において当該時刻データ31が格納されている位置を重複データ削除処理部18に通知する。
【0042】
この通知を受けた重複データ削除処理部18は、時刻データ格納DB12において当該時刻データ31が保存されている位置をDB更新部14に通知すると共に、当該時刻データ31を削除する指示をDB更新部14に通知する。その指示を受けて、DB更新部14は、時刻データ格納DB12において当該時刻データ31が保存されている領域を解放する。
【0043】
データ要素グループ化部19は、診断データ格納DB11の複数の診断データ34をデータリード処理部13から取得する。そして、データ要素グループ化部19は、複数の診断データ34をその内容に基づいて複数のグループにグループ化し、グループ化の結果を前述の診断データ重複判定部16に通知する。なお、グループ化の条件は、グループ化ルールメモリ19aに格納される。グループ化ルールメモリ19aは、記憶部10とは異なるメモリデバイスでもよいし、記憶部10にグループ化ルールメモリ19aを設けてもよい。
【0044】
そして、診断データ重複判定部16は、複数の診断データ34のうちで同一のグループに属する二つの診断データを、内容が共通する第1の診断データ34及び第2の診断データ34として特定する。
【0045】
なお、
図1の例では診断データ格納DB11と時刻データ格納DB12を記憶部10に分けて格納したが、時刻データ格納DB12を診断データ格納DB11にマージしてもよい。
【0046】
図4は、第1実施形態において時刻データ格納DB12がマージされた診断データ格納DB11の一例を示す模式図である。
【0047】
この例では、データ保存処理部5は、整形データ30を時刻データ31と診断データ34とに分けずに、各整形データ30を診断データ格納DB11の各レコードに格納する。これにより、診断データ格納DB11は、時刻データ31をキー、診断データ34をバリューとするキーバリュー型データベースとなる。以下では、
図4のようなキーバリュー型の診断データ格納DB11を前提として説明をする。
【0048】
次に、エッジシステム2の異常を診断する処理について説明する。
図5は、エッジシステム2の異常の診断を行う場合に本実施形態に係る計算機1が実行する処理の一例を示すフローチャートである。
【0049】
まず、データ入力処理部3はエッジシステム2が送信した入力データ20の入力を受け付け、データ整形処理部4が整形データ30を出力する(ステップS50)。
【0050】
次に、データ保存処理部5は、整形データ30を診断データ格納DB11に保存することにより、整形データ30に含まれる時刻データ31と診断データ34とを記憶部10に保存する(ステップS51)。
【0051】
次いで、診断処理部6は、診断データ格納DB11に対して診断データ34の取得要求を通知する(ステップS52)。
【0052】
続いて、診断データ格納DB11は、その取得要求に対するレスポンスとしてデータリード処理部13を介して診断処理部6に診断データ34を通知し、これにより診断処理部6が診断データ34を取得する(ステップS53)。
【0053】
そして、診断処理部6が、診断データ34に基づきエッジシステム2の診断を実行する(ステップS54)。
【0054】
その後、結果表示処理部8は、診断処理部6における診断結果をUIデバイスに表示する(ステップS55)。
【0055】
以上により、エッジシステム2の異常の診断を行う場合に計算機1が実行する基本的な処理を終える。
【0056】
次に、内容が共通する診断データ34を削除する処理について、
図6及び
図7を参照して説明する。
【0057】
図6は、
図4のキーバリュー型の診断データ格納DB11を用いた場合に、内容が共通する診断データ34を削除する処理の流れの一例を示す模式図である。
図7は、内容が共通する診断データ34を削除する場合に計算機1が実行する処理の一例を示すフローチャートである。その処理は、本実施形態に係るデータ管理方法の一例である。
【0058】
この処理は、
図5におけるステップS51の終了を契機として計算機1が実行してもよいし、定期的に計算機1が実行してもよい。
【0059】
まず、データリード処理部13は、診断データ格納DB11の各レコードに格納されている整形データ30の取得要求を診断データ格納DB11に通知し、そのリプライとして複数の診断データ34とこれに関連付けられた時刻データ31とを取得する(ステップS70)。
【0060】
図6では、「aaa」や「bbb」等の三つの文字からなる文字列で診断データ34の内容を表す。文字列における各々の文字は、診断データ34の一つのデータを示す。例えば、「aaa」は、三つのデータ「a」からなるデータである。「aa0」は、最後の「0」が「a」ではないため、「aaa」とは異なる診断データである。
【0061】
また、診断データ34に関連付けられた時刻データ31は、診断データ34と同一の整形データ30に含まれる時刻データ31であって、この例では関連付けられた各データを矢印で示している。
【0062】
次に、データ要素グループ化部19は、複数の診断データ34をその内容に基づいて複数のグループにグループ化し、グループ化の結果を診断データ重複判定部16に通知する(ステップS71)。
【0063】
この例では、診断データ34を表す文字列のうち、少なくとも最初の二文字が表すデータが同一の場合に各診断データ34を同じグループに分類する。例えば、「aaa」と「aa0」は同じグループに分類され、「ccc」と「cc0」は同じグループに分類される。
【0064】
そして、診断データ重複判定部16は、複数の診断データ34のうちで同一のグループに属する二つの診断データを、内容が共通する第1の診断データ34及び第2の診断データ34として特定する(ステップS72)。ここでは、診断データ重複判定部16は、同一の識別コード32に関連付けられた複数の診断データ34の中から第1の診断データ34と第2の診断データ34とを特定する。
【0065】
この例では、「aaa」と「aa0」の各診断データ34が、それぞれ内容が共通する第1の診断データ34及び第2の診断データ34として特定される。同様に、「ccc」と「cc0」の各診断データ34も内容が共通する第1の診断データ34及び第2の診断データ34として特定される。
【0066】
次に、時刻データリンク更新部15は、第2の診断データ34に関連付けられている時刻データ31を第1の診断データ34に関連付けることにより、時刻データ31のリンク先を変更する(ステップS73)。例えば、時刻データリンク更新部15は、「aa0」の診断データ34に関連付けられている時刻データ31を、「aaa」の診断データ34を含む整形データ30の時刻データ33に格納することで、当該時刻データ31を「aaa」の診断データ34に関連付ける。
図6では、このように新たに関連付けられた時刻データ31と診断データ34とを破線で接続している。
【0067】
次いで、重複データ削除処理部18は、第2の診断データ34を削除する指示と当該第2の診断データ34が保存されている位置とをDB更新部14に通知し、これを受けたDB更新部14が診断データ格納DB11において第2の診断データ34が保存されている領域を解放する(ステップS74)。この例では、複数の「aaa」の診断データ34と「aa0」の診断データ34とが同一グループに属しており、このうちの最古の「aaa」以外の診断データ34の領域が解放される。同様に、「bbb」の診断データ34と同一のグループに属する「bb1」の診断データ34の領域も解放される。また、前述のように第1の診断データ34と第2の診断データ34の各々は同一の識別コード32に関連付けられているため、その識別コード32が示す送信元のエッジシステム2ごとに第2の診断データ34の保存領域が解放される。
【0068】
この後は、計算機1は、定期的にステップS70を実行してもよいし、ステップS51(
図5参照)の終了を契機としてステップS70を再び実行してもよい。
【0069】
これによれば、第2の診断データ34を削除することで記憶部10のデータ量が削減される。更に、第1の診断データ34と内容が共通する第2の診断データ34の時刻データ31が第1の診断データ34に関連付けられるため、第2の診断データ34を削除しても、第2の診断データ34が示す事象がエッジシステム2に発生した時期、回数、及び期間等を時刻データ31に基づいて診断できる。その結果、診断データ34を扱う際のデータ量を適切に削減することができる。
【0070】
なお、上記のように第2の診断データ34の領域を解放すると、解放前に当該診断データ34に関連付いていた時刻データ31は、いずれの診断データ34にも関連付かなくなる。このような時刻データ31は、診断データ格納DB11の記憶領域を無駄に占有することになる。そこで、以下のように診断データ格納DB11において時刻データ31が保存されている領域を解放する処理を行ってもよい。
【0071】
図8は、時刻データ31が保存されている領域を解放する場合に計算機1が実行する処理の一例を示すフローチャートである。
【0072】
まず、時刻リンク確認処理部17は、診断データ格納DB11に格納されている整形データ30の取得要求を診断データ格納DB11に通知し、そのリプライとして整形データ30を取得する(ステップS80)。
【0073】
次に、時刻リンク確認処理部17は、取得した整形データ30において、時刻データ31が診断データ34とリンクしているかを判定する(ステップS81)。例えば、診断データ重複判定部16は、取得した整形データ30の診断データ34の領域が診断データ格納DB11において解放されていない場合はリンクしている(YES)と判定し、解放されている場合はリンクしていない(NO)と判定する。
【0074】
ここで、リンクしている(YES)と判定された場合にはステップS80に戻り、次の整形データ30に対してステップS80を行う。
【0075】
一方、リンクしていない(NO)と判定された場合にはステップS82に移る。ステップS82においては、重複データ削除処理部18は、時刻データ31、33と識別コード32とを削除する指示をDB更新部14に通知し、その指示を受けたDB更新部14が診断データ格納DB11において当該時刻データ31、33と識別コード32が保存されている領域を解放する。この後は、ステップS80に戻り、次の整形データ30に対してステップS80を行う。
【0076】
これによれば、診断データ34と関連付いていない無駄な時刻データ31、33と識別コード32とが診断データ格納DB11において占める領域を解放できる。
【0077】
次に、ステップS71(
図7参照)におけるグループ化について詳細に説明する。
【0078】
図9は、グループ化を行う場合に計算機1が実行する処理の一例を示すフローチャートである。
【0079】
前述のように整形データ30の診断データ34にTYP、EOD、DCT、及びLOCの各フィールドを含めると、入力データ20の全フィールドの値が整形データ30に含まれる。計算機1は、これらのフィールドごとに以下の処理を行う。
【0080】
まず、データ要素グループ化部19は、処理対象のフィールドがグループ化の対象かを判定する(ステップS91)。この判定ルールは、ユーザによって予め設定される。ここでは、EODとSTDの各フィールドがグループ化の対象である場合を例にする。
【0081】
ステップS91において当該フィールドがグループ化の対象ではない(NO)と判定された場合には次のフィールドに移る。
【0082】
一方、ステップS91において当該フィールドがグループ化の対象である(YES)と判定された場合にはステップS92に移る。ステップS92においては、データ要素グループ化部19は、当該フィールドのデータを取得する。
【0083】
次に、データ要素グループ化部19は、グループ化ルールメモリ19aに格納されている当該フィールドに対するグループ化の条件を参照する(ステップS93)。
【0084】
図10は、グループ化の条件の一例を示す模式図である。
図10では、EODとSTDの各フィールドに対するグループ化の条件を例示している。
【0085】
EODの例では、データ要素グループ化部19は、EODフィールドの値TEODに応じたグループ化コードGid0をEODフィールドに付与する。ここでは、0<TEOD≦200であればGid0を「01」とし、201<TEOD≦1200であればGid0を「10」とする。また、1201<TEODであればGid0を「11」とし、TEOD≦0であればGid0を「00」とする。
【0086】
一方、STDについては、その値TSTDの意味は前述のようにDCTフィールドのコードによって定義される。この例では、DCTフィールドのコードによって、STDの各値の意味が温度範囲を示すTd、振動範囲を示すVd、湿度範囲を示すPeであると定義されている。この場合、グループ化コードは、Td、Vd、Peの各々について定義される。例えば、Td、Vd、Peのそれぞれの値をRT、RV、RPとする。このとき、温度RTをその範囲に応じてRTu、RTm、RTs、RToに区分する。そして、データ要素グループ化部19は、この区分に応じたグループ化コードGid1をSTDフィールドに付与する。
【0087】
以下では、グループ化コードGid0、Gid1をまとめてグループ化コード97と呼ぶ。
【0088】
再び
図9を参照する。次に、データ要素グループ化部19は、グループ化の条件に基づいて、当該フィールドに付与するグループ化コード97を前述の
図10のように算出する(ステップS94)。
【0089】
次いで、データ要素グループ化部19は、当該フィールドにグループ化コード97を付与する(ステップS95)。この後は、フィールドごとにステップS91~S95を繰り返す。
【0090】
以上により、グループ化を行う場合に計算機1が実行する基本的な処理を終える。
【0091】
診断データ重複判定部16は、ステップS72(
図7参照)において、診断データ34に含まれる複数のフィールドの全部又は一部のグループ化コード97が複数の診断データ34において同一の場合、これらの診断データ34の内容が共通すると判定する。
【0092】
このように所定の条件に基づいてグループ化することで、二つの診断データ34の内容が完全に一致しない場合でも、例えば同一の温度範囲にある二つの診断データ34は内容が共通すると判定されるようになる。その結果、二つの診断データ34の内容が共通すると判定される可能性が高まり、これらの診断データ34が診断データ格納DB11において占める領域を解放できる可能性が高くなる。
【0093】
なお、診断データ34に画像データや波形データを含め、データ要素グループ化部19がこれらのデータに対する画像認識処理や波形認識処理によって特徴量を抽出し、その特徴量やオブジェクトタイプに基づいてグループ化をしてもよい。
【0094】
また、診断データ34に、時刻データ31が示す時刻とその時刻での自車位置における気象データのURL(Uniform Resource Locator)を格納してもよい。この場合、データ要素グループ化部19は、同一のURLを含む診断データ34を内容が共通する診断データ34として特定する。
【0095】
更に、自車位置等の位置情報のように逐次変化するデータは、そのまま診断データ34に格納してもよいし、当該位置情報が示す位置の行政区画の名称や識別コードによってグループ化してもよい。
【0096】
また、データ要素グループ化部19は、診断データ34に含まれる複数のデータを組み合わせてグループ化してもよい。例えば、温度と湿度の組み合わせや、これと振動データとの組み合わせに対してグループ化してもよい。これにより、グループ化コード97の種類を削減することができる。しかも、内容が共通すると判定される診断データ34の個数が増えるため、データ削減量を増やすことができる。
【0097】
図4の例では診断データ格納DB11がキーバリュー型データベースであるが、診断データ格納DB11の種類はこれに限定されず、以下のようにグラフ型データベースでもよい。
【0098】
図11は、グラフ型データベースの一例を示す模式図である。
図11に示す例では、データ保存処理部5は、グラフ型データベースの各ノードの属性値として識別コード32と診断データ34とを保存し、グラフ型データベースの各エッジの属性値として時刻データ31を保存する。
【0099】
この場合、整形データ30において同一の時刻データ31に関連付けられている識別コード32と診断データ34とが、当該時刻データ31を属性値とするエッジにより接続される。
【0100】
図11の例では、aの診断データ34とcの診断データ34が、診断データ重複判定部16によって内容が重複していると判定された第1の診断データ34と第2の診断データ34である場合を想定している。この場合、時刻データリンク更新部15は、cの時刻データ31に対応したエッジをaの診断データ34に対応したノードに接続する。これにより、cの診断データ34に関連付けられていたcの時刻データ31がaの診断データ34に新たに関連付けられる。また、cの診断データ34に対応したノードは、いずれのエッジにも接続されない独立したノードとなる。
【0101】
そして、重複データ削除処理部18は、診断データ格納DB11においてcの診断データ(第2の診断データ)34が保存されている位置をDB更新部14に通知すると共に、当該第2の診断データ34を削除する指示をDB更新部14に通知する。その指示を受けて、DB更新部14は、診断データ格納DB11においてcの診断データ34が保存されている領域を解放する。これにより、キーバリュー型の診断データ格納DB11(
図4参照)と同様に、診断データ34を扱う際のデータ量を適切に削減することができる。
【0102】
<第2実施形態>
図12は、本実施形態に係る計算機の機能構成の一例を示す模式図である。以下では、
図12において
図1と相違する要素について説明する。
【0103】
図12に示すように、本実施形態に係る計算機1は更新処理部121を備える。本実施形態では、入力データ20の送信元であるエッジシステム2の位置を示す位置情報123が入力データ20に含まれている場合を想定する。位置情報123としては、例えばGPS(Global Positioning System)情報がある。
【0104】
更新処理部121は、データ入力処理部3から位置情報123を取得して、その位置情報123が示す位置、又は位置情報123から特定した地域を示す情報124をデータ要素グループ化部19に通知する。そのような情報124としては、例えば地域を示すタグ情報等がある。
【0105】
データ要素グループ化部19は、情報124に基づいてグループ化の条件の更新が必要かを判定する。例えば、エッジシステム2が自動車等の移動体の場合には、移動によって地域を跨ぐため、地域ごとにグループ化の条件を変えてもよい。この場合、データ要素グループ化部19は、情報124が示す地域が変わったときに、グループ化の条件の更新が必要であると判定してもよい。
【0106】
データ要素グループ化部19は、グループ化の条件の更新が必要と判定すると、更新後のグループ化の条件をグループ化ルールメモリ19aから読み出し、更新後の条件に基づいて診断データ34をグループ化する。なお、位置情報123から特定される地域が変わったときに、更新処理部121が、更新後のグループ化の条件をデータ要素グループ化部19に通知する指示125をグループ化ルールメモリ19aに出力してもよい。
【0107】
これにより、例えばグループ化の条件で温度の閾値を定める場合、気温が定常的に低い地域と高い地域とで閾値を地域ごとに変えることができる。同様に、湿度についても地域ごとに閾値を変えることができる。これにより、地域の特性を反映した診断が可能となる。
【0108】
<第3実施形態>
図13は、本実施形態に係る計算機1の機能構成の一例を示す模式図である。なお、第1実施形態と共通する要素については
図13では省略している。本実施形態に係る計算機1は、
図1の構成に加えて、タイマ部131、監視時間設定部132、時刻データ比較部133、及び時刻データ削除指示部134を備える。
【0109】
タイマ部131は、現在時刻を時刻データ比較部133に出力する。時刻データ比較部133は、データリード処理部13が取得した時刻データ31の時刻と、タイマ部131が出力した現在時刻とを比較する。
【0110】
監視時間設定部132は、時刻データ31の時刻と現在時刻との差に対する閾値である所定時間を出力する。
【0111】
時刻データ比較部133は、時刻データ31の時刻と現在時刻との差が所定時間以上のときに、時刻データ削除指示部134に対して当該時刻データ31を削除するように指示する。その指示を受けた時刻データ削除指示部134は、DB更新部14に対して、当該時刻データ31とそれに関連付けられた識別コード32、時刻データ33、及び診断データ34を上書き可能にするように指示し、DB更新部14がその指示に従って各データ31、33、34と識別コード32とを上書き可能にする。
【0112】
これによれば、時刻データ31の時刻が現在時刻と比較して所定以上古い場合に、当該時刻データ31とこれに関連付けられた識別コード32、時刻データ33、及び診断データ34が保存されている領域が自動的に解放される。そのため、記憶部10のデータ量を削減できると共に、データ量削減のためにユーザが記憶部10を監視する必要がなくなり、ユーザが行うメンテナンス工数を削減できる。
【0113】
なお、計算機1は、記憶部10に保存された複数の時刻データ31の合計のデータサイズが設定値を超えたときに、各時刻データ31のうちで最も古い時刻データ31とそれに関連付けられた診断データ34とを上書き可能にしてもよい。これにより、時刻データ31の合計のデータサイズが設定値を超えて増大するのを防止することができる。
【0114】
<ハードウェア構成>
図14は、第1~第3実施形態に係る計算機1のハードウェア構成の一例を示す図である。
【0115】
計算機1は、データの生成、送信、受信及びこれら以外の各種処理を行うため、メモリリソースに格納されたデータ管理プログラムを、プロセッサが読み込むことで、プロセッサがデータ管理プログラムに応じた処理を実行する。なお、計算機1は、例えばパーソナルコンピュータ、タブレット端末(コンピュータ)、スマートフォン、サーバ計算機、ブレードサーバ、及びクラウドサーバ等であり、少なくともこれらを1つ以上含むシステムである。すなわち、計算機1は、例えばクラウドサーバと、表示用の計算機(例えば、タブレット端末またはスマートフォン)と、を含むシステムも包含する。また、プロセッサとメモリリソースを含む、何かしらの装置を制御又は管理するコントローラも計算機1の一例である。
【0116】
具体的には、計算機1は、
図14に示すように、1以上のプロセッサ1aと、1以上のメモリリソース1bと、1以上のUIデバイス1cと、1以上のNI(Network Interface)デバイス1dとを有する。なお、計算機1は、これら以外の構成物を含んでもよい。また、プロセッサ1a、メモリリソース1b、UIデバイス1c、及びNIデバイス1dはバス1eを介して相互に接続される。
【0117】
プロセッサ1aは、メモリリソース1bに格納されている各種プログラムを読み込んで、各プログラムに対応する処理を実行する演算装置である。なお、プロセッサ1aは、マイクロプロセッサ、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、量子プロセッサ、あるいはその他の演算できる半導体デバイスが例である。
【0118】
メモリリソース1bは、データ管理プログラムを記憶する記憶装置であり、不揮発メモリ又は/及び揮発メモリが例である。揮発メモリの例は、RAM(Random Access Memory)やROM(Read Only Memory)である。不揮発メモリの例は、フラッシュメモリ、ハードディスクあるいはSSD(Solid State Drive)等の書き換え可能な記憶媒体であってもよく、USB(Universal Serial Bus)メモリ、メモリカードおよびハードディスクなどであってもよい。また、MRAM(Magnetoresistive RAM)、PRAM(Phase change RAM)、ReRAM(Resistive RAMといったRAMを不揮発メモリと見なしてもよい。そのメモリリソース1bによって記憶部10(
図1、
図12参照)が実現される。なお、プロセッサ1aは、メモリリソースbに格納されているデータ管理プログラムを他のコンピュータに配信するサービスを行ってもよい。
【0119】
UIデバイス1cは、ユーザ(オペレーターでもよい)の指示を計算機1に入力する入力デバイス、及び計算機1で生成した情報等を出力する出力デバイスである。入力デバイスには、例えばキーボード、タッチパネル、マウスなどのポインティングデバイスやマイクロフォンのような音声入力デバイスなどがある。また、出力デバイスには、例えばディスプレイ、プリンタ、及び音声合成装置等がある。なお、特に言及しない場合は、計算機1とユーザとの間の情報の入出力は、UIデバイス1cを介して実行される。なお、UIデバイス1cは、入力デバイスのみでもよく、出力デバイスのみでもよい。
【0120】
NIデバイス1dは、エッジシステム2等の外部装置との間で情報通信を行う通信装置である。NIデバイス1dは、ネットワーク9を介して外部装置と情報通信を行う。なお、特に言及しない場合は、計算機1(又はプロセッサ1a)と外部装置との情報通信は、NIデバイス1dを介して実行される。
【0121】
この計算機1においては、プロセッサ1aがメモリリソース1bと協働してデータ管理プログラムを実行することにより、第1~第3実施形態で説明した機能が実現される。
【0122】
本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【0123】
本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明が、必ずしも説明した全ての構成要素を備えるものに限定されるものではない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に、他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0124】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現されてもよい。各機能を実現するプログラム、判定テーブル、ファイル等の情報は、メモリや、HDD、SSD等の記憶装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、DVD(Digital Versatile Disc)等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0125】
計算機1は、データ管理プログラムにより実現される機能や処理の一部または全部をユーザ(オペレータ)が実施することで実現してもよい。
【0126】
なお、計算機1がUIデバイス1cを持たず、代わりにシステム外部のスマートフォンやタブレット端末等のプロセッサシステム(外部プロセッサシステムと呼ぶ)に、ユーザへの出力処理や、ユーザからの入力処理の一部を任せる場合がある。このような場合、計算機1(又はプロセッサ1a、データ管理プログラム)は、以上に説明の通りの処理やプログラムの他の部分を実行するために、以下を行ってもよい。
【0127】
*以上に説明のUIデバイス1cを用いたユーザへの出力の代わりとして、NIデバイス1dを介して外部プロセッサシステムに、ユーザへの出力に必要なデータの送信をする。当該データの例としては、出力するデータそのもの、出力データを別プロセッサシステムで生成するためのデータが考えられるが、外部プロセッサシステムでユーザ出力を行う処理が記述されたプログラムやWebデータであってもよい。
【0128】
*以上に説明のUIデバイス1cを用いたユーザからの入力又は操作受信の代わりとして、NIデバイス1dを介して外部プロセッサシステムから、ユーザ入力又は操作を示すデータを受信する。別な視点では、ユーザへのデータ出力の意味は、計算機1自身が行うことも含む以外に、計算機1以外の別の存在に当該データ出力をさせる(使役)ことを含めてもよい。また、ユーザからの入力又は操作受信の意味は、計算機1のUIデバイス1cでユーザへ直接出力や受信をする以外に、計算機1が間接的に当該受信をすることを含めてもよい。
【符号の説明】
【0129】
1…計算機、1a…プロセッサ、1b…メモリリソース、1c…UIデバイス、1d…NIデバイス、1d…NIデバイス、1e…バス、2…エッジシステム、3…データ入力処理部、4…データ整形処理部、5…データ保存処理部、6…診断処理部、7…診断操作処理部、8…結果表示処理部、9…ネットワーク、10…記憶部、13…データリード処理部、14…DB更新部、15…時刻データリンク更新部、16…診断データ重複判定部、17…時刻リンク確認処理部、18…重複データ削除処理部、19…データ要素グループ化部、19a…グループ化ルールメモリ、20…入力データ、30…整形データ、31…時刻データ、32…識別コード、33…時刻データ、34…診断データ、34…診断データ、97…グループ化コード、121…更新処理部、123…位置情報、124…情報、125…指示、131…タイマ部、132…監視時間設定部、133…時刻データ比較部、134…時刻データ削除指示部。