(57)【要約】【課題】多様なデータ変換に対応する。【解決手段】データ変換システム１０において、仕様解析部２１は、アプリケーションデータ仕様５２を解析して、メモリ１２上に、機器データ４１の項目名である変換前項目名ごとに変換前項目名に対応する項目値を格納する変換バッファ３０を構築するとともに、アプリケーションデータ５１の項目名である変換後項目名ごとに、変換バッファ３０に格納された項目値を用いて変換後項目名に対応する項目値を生成する処理を設定する。少なくとも１つの処理は、別々の変換前項目名に対応する複数の項目値を用いて変換後項目名に対応する項目値を生成する処理である。変換式評価部２３は、変換後項目名ごとに、仕様解析部２１により設定された処理を選択し、選択した処理で用いられる項目値を変換バッファ３０から取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力する。【選択図】図１
2019045333.tif 000002
【特許請求の範囲】
【請求項１】
データを変換するための仕様を解析して、メモリ上に、変換前のデータの項目名である変換前項目名ごとに変換前項目名に対応する項目値を格納する変換バッファを構築するとともに、変換後のデータの項目名である変換後項目名ごとに、前記変換バッファに格納された項目値を用いて変換後項目名に対応する項目値を生成する処理を設定し、設定した処理のうち少なくとも１つの処理が、別々の変換前項目名に対応する複数の項目値を用いて変換後項目名に対応する項目値を生成する処理である仕様解析部と、
変換後項目名ごとに、前記仕様解析部により設定された処理を選択し、選択した処理で用いられる項目値を前記変換バッファから取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力する変換式評価部と
を備えるデータ変換システム。
【請求項２】
前記仕様解析部は、少なくとも１つの変換後項目名について、異なる複数の処理を設定し、
前記変換式評価部は、前記少なくとも１つの変換後項目名について、前記仕様解析部により設定された複数の処理の中から、適用する処理を選択する請求項１に記載のデータ変換システム。
【請求項３】
前記複数の処理のそれぞれは、処理によって異なる組み合わせの変換前項目名に対応する項目値を用いて変換後項目名に対応する項目値を生成する処理であり、
前記変換式評価部は、前記少なくとも１つの変換後項目名について、前記複数の処理のうち１つの処理で用いられる項目値がすべて前記変換バッファに格納されている場合、当該１つの処理を、適用する処理として選択する請求項２に記載のデータ変換システム。
【請求項４】
前記変換バッファには、更新領域と保持領域とが含まれ、
前記データ変換システムは、
前記変換前のデータを取得する度に、取得したデータを分解して、変換前項目名に対応する項目値を１つ以上抽出し、抽出した項目値を前記更新領域に格納するデータ分解部をさらに備え、
前記仕様解析部により設定された処理のうち一部の処理は、前記更新領域に格納された項目値と、前記保持領域に格納された項目値とを用いて変換後項目名に対応する項目値を生成する処理であり、
前記変換式評価部は、前記一部の処理を選択した場合、選択した処理で用いられる項目値を前記更新領域と前記保持領域とから取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力するとともに、選択した処理で用いた、前記保持領域に格納された項目値を、選択した処理で用いた、前記更新領域に格納された項目値と、出力した項目値とのいずれかに更新する請求項１から３のいずれか１項に記載のデータ変換システム。
【請求項５】
前記一部の処理は、前記更新領域に格納された、１つの変換前項目名に対応する項目値と、前記保持領域に格納された、当該１つの変換前項目名と同じ変換前項目名に対応する項目値とから変換後項目名に対応する項目値を演算する処理であり、
前記変換式評価部は、前記一部の処理を選択した場合、選択した処理で用いた、前記保持領域に格納された項目値を、選択した処理で用いた、前記更新領域に格納された項目値で更新する請求項４に記載のデータ変換システム。
【請求項６】
前記仕様解析部は、１つの変換前項目名である第１項目名に対応する項目値を別の変換前項目名である第２項目名に対応する項目値に変換する変換ルールが入力された場合、前記第２項目名に対応する項目値を用いて変換後項目名に対応する項目値を生成する処理の一部として、前記第１項目名に対応する項目値を前記第２項目名に対応する項目値に変換する処理を設定する請求項１から５のいずれか１項に記載のデータ変換システム。
【請求項７】
前記少なくとも１つの処理は、前記複数の項目値から変換後項目名に対応する項目値を演算する処理である請求項１から６のいずれか１項に記載のデータ変換システム。
【請求項８】
前記仕様解析部は、前記少なくとも１つの処理とは別の処理として、前記変換バッファに格納された項目値と同じ値の項目値を生成する処理を設定する請求項１から７のいずれか１項に記載のデータ変換システム。
【請求項９】
前記仕様解析部は、前記変換後のデータにおいてキーになる変換後項目名ごとに前記変換バッファを構築する請求項１から８のいずれか１項に記載のデータ変換システム。
【請求項１０】
コンピュータに、
データを変換するための仕様を解析して、メモリ上に、変換前のデータの項目名である変換前項目名ごとに変換前項目名に対応する項目値を格納する変換バッファを構築するとともに、変換後のデータの項目名である変換後項目名ごとに、前記変換バッファに格納された項目値を用いて変換後項目名に対応する項目値を生成する処理を設定し、設定した処理のうち少なくとも１つの処理が、別々の変換前項目名に対応する複数の項目値を用いて変換後項目名に対応する項目値を生成する処理である仕様解析手順と、
変換後項目名ごとに、前記仕様解析手順により設定された処理を選択し、選択した処理で用いられる項目値を前記変換バッファから取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力する変換式評価手順と
を実行させるデータ変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換システムおよびデータ変換プログラムに関するものである。
【背景技術】
【０００２】
機器データを活用するＩｏＴアプリケーションの開発を効率化し、機器変更時の再利用性を向上させるためには、多様な機器データに統一的にアクセスする仕組みが必要である。「ＩｏＴ」は、Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓの略語である。
【０００３】
特許文献１には、元データとなる機器データの仕様記述とアプリケーションの要求仕様記述とに基づき、データを変換してからアプリケーションに提供する方法が開示されている。このような方法により、例えば、機器から得られる速度情報がｋｍ／時で表されるかマイル／時で表されるかを意識することなくアプリケーションを開発可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１３−５３０４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、元データの項目とアプリケーションデータの項目とが１対１で対応している必要があり、多様なデータ変換に対応できない。例えば、元データの複数項目を組み合わせてアプリケーションデータの項目を導出する場合に対応できない。特に、元データの複数項目が異なるタイミングで得られる場合に対応できない。
【０００６】
本発明は、多様なデータ変換に対応することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るデータ変換システムは、
データを変換するための仕様を解析して、メモリ上に、変換前のデータの項目名である変換前項目名ごとに変換前項目名に対応する項目値を格納する変換バッファを構築するとともに、変換後のデータの項目名である変換後項目名ごとに、前記変換バッファに格納された項目値を用いて変換後項目名に対応する項目値を生成する処理を設定し、設定した処理のうち少なくとも１つの処理が、別々の変換前項目名に対応する複数の項目値を用いて変換後項目名に対応する項目値を生成する処理である仕様解析部と、
変換後項目名ごとに、前記仕様解析部により設定された処理を選択し、選択した処理で用いられる項目値を前記変換バッファから取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力する変換式評価部とを備える。
【発明の効果】
【０００８】
本発明では、変換バッファによって多様なデータ変換に対応することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るデータ変換システムの構成を示すブロック図。
【図２】実施の形態１に係るデータ変換システムのユースケースを示す図。
【図３】実施の形態１に係るデータ変換システムの仕様解析部の動作を示すフローチャート。
【図４】実施の形態１に係るデータ変換システムのアプリケーションデータ仕様の記述例を示す図。
【図５】実施の形態１に係るデータ変換システムの変換ルールの記述例を示す図。
【図６】実施の形態１に係るデータ変換システムの変換バッファの構成例を示すブロック図。
【図７】実施の形態１に係るデータ変換システムのデータ分解部の動作を示すフローチャート。
【図８】実施の形態１に係るデータ変換システムの変換式評価部の動作を示すフローチャート。
【図９】実施の形態１の変形例に係るデータ変換システムの構成を示すブロック図。
【図１０】実施の形態２に係るデータ変換システムのユースケースを示す図。
【図１１】実施の形態２に係るデータ変換システムのアプリケーションデータ仕様の記述例を示す図。
【図１２】実施の形態２に係るデータ変換システムの変換バッファの構成例を示すブロック図。
【図１３】実施の形態３に係るデータ変換システムのユースケースを示す図。
【図１４】実施の形態３に係るデータ変換システムのアプリケーションデータ仕様の記述例を示す図。
【図１５】実施の形態３に係るデータ変換システムの変換バッファの構成例を示すブロック図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態のうち、２つ以上の実施の形態が組み合わせられて実施されても構わない。あるいは、以下に説明する実施の形態のうち、１つの実施の形態または２つ以上の実施の形態の組み合わせが部分的に実施されても構わない。
【００１１】
実施の形態１．
本実施の形態について、図１から図８を用いて説明する。
【００１２】
本実施の形態に係るシステム、方法およびプログラムによれば、異なるタイミングで順次与えられる複数データ項目を別形式にまとめる変換式を受け取り、変換に必要なすべてのデータ項目を受信する都度、変換結果を出力することで、受信データの合計値、差分値または累積値への変換を柔軟に実現することができる。
【００１３】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係るデータ変換システム１０の構成を説明する。
【００１４】
データ変換システム１０は、コンピュータである。データ変換システム１０は、プロセッサ１１を備えるとともに、メモリ１２および通信装置１３といった他のハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１５】
データ変換システム１０は、機能要素として、仕様解析部２１と、データ分解部２２と、変換式評価部２３とを備える。仕様解析部２１、データ分解部２２および変換式評価部２３の機能は、ソフトウェアにより実現される。
【００１６】
プロセッサ１１は、データ変換プログラムを実行する装置である。データ変換プログラムは、仕様解析部２１、データ分解部２２および変換式評価部２３の機能を実現するプログラムである。プロセッサ１１は、例えば、ＣＰＵである。「ＣＰＵ」は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００１７】
メモリ１２は、データ変換プログラムを記憶する装置である。メモリ１２は、例えば、フラッシュメモリまたはＲＡＭである。「ＲＡＭ」は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。
【００１８】
メモリ１２には、機器データ４１をアプリケーションデータ５１に変換するための変換バッファ３０が構築される。変換バッファ３０には、最新データを格納するための更新領域３１と、過去データを格納するための保持領域３２とが含まれる。
【００１９】
通信装置１３は、データ変換プログラムに入力されるデータを受信するレシーバと、データ変換プログラムから出力されるデータを送信するトランスミッタとを含む。通信装置１３は、例えば、通信チップまたはＮＩＣである。「ＮＩＣ」は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００２０】
本実施の形態では、機器データ４１、機器プロファイル４２、アプリケーションデータ仕様５２および変換ルール５３が通信装置１３を介して外部から受信される。なお、機器プロファイル４２、アプリケーションデータ仕様５２および変換ルール５３は、入力装置を介して入力されてもよいし、あらかじめメモリ１２または補助記憶装置に記憶されていてもよい。入力装置は、例えば、マウス、キーボードまたはタッチパネルである。補助記憶装置は、例えば、フラッシュメモリまたはＨＤＤである。「ＨＤＤ」は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。
【００２１】
本実施の形態では、アプリケーションデータ５１が通信装置１３を介して外部に送信される。なお、アプリケーションデータ５１は、ディスプレイの画面に表示されてもよいし、単にメモリ１２または補助記憶装置に格納されて後で利用されてもよい。ディスプレイは、例えば、ＬＣＤである。「ＬＣＤ」は、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略語である。
【００２２】
データ変換プログラムは、プロセッサ１１に読み込まれ、プロセッサ１１によって実行される。メモリ１２には、データ変換プログラムだけでなく、ＯＳも記憶されている。「ＯＳ」は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略語である。プロセッサ１１は、ＯＳを実行しながら、データ変換プログラムを実行する。
【００２３】
データ変換プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置に記憶されているデータ変換プログラムおよびＯＳは、メモリ１２にロードされ、プロセッサ１１によって実行される。
【００２４】
なお、データ変換プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２５】
データ変換システム１０は、プロセッサ１１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、データ変換プログラムの実行を分担する。それぞれのプロセッサは、例えば、ＣＰＵである。
【００２６】
データ変換プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ１２、補助記憶装置、または、プロセッサ１１内のレジスタまたはキャッシュメモリに記憶される。
【００２７】
データ変換プログラムは、仕様解析部２１、データ分解部２２および変換式評価部２３の「部」を「処理」に読み替えた各処理をコンピュータに実行させるプログラムである。あるいは、データ変換プログラムは、仕様解析部２１、データ分解部２２および変換式評価部２３の「部」を「手順」に読み替えた各手順をコンピュータに実行させるプログラムである。データ変換プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００２８】
データ変換システム１０は、１台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。データ変換システム１０が複数台のコンピュータで構成されている場合は、仕様解析部２１、データ分解部２２および変換式評価部２３の機能が、各コンピュータに分散されて実現されてもよい。
【００２９】
＊＊＊動作の説明＊＊＊
図１のほかに図２から図８を参照して、本実施の形態に係るデータ変換システム１０の動作を説明する。データ変換システム１０の動作は、本実施の形態に係るデータ変換方法に相当する。
【００３０】
本実施の形態では、機器データ４１をアプリケーションデータ５１に変換する際に、変換バッファ３０を用いることによって、異なるタイミングで得られた機器データ４１をまとめて利用することができる。具体例として、図２に示すように、機器データ４１がある時点での計測値に対応し、前後２回の計測値の差分をアプリケーションが必要とする場合に対応できる。
【００３１】
図３を参照して、仕様解析部２１の動作を説明する。この動作は、データ変換システム１０の初期化時に行われる。
【００３２】
ステップＳ１０１において、仕様解析部２１は、アプリケーションから、図４に示すような、項目名を含むアプリケーションデータ仕様５２を受け取る。また、仕様解析部２１は、図５に示すような、項目の定義式を含む変換ルール５３を受け取る。仕様解析部２１は、受け取ったアプリケーションデータ仕様５２と変換ルール５３とを解析する。
【００３３】
図４の例において、アプリケーションデータ仕様５２に用いられている記法の概要は以下の通りである。
・「．」で始まる名前はアプリケーションデータ５１の項目名を表す。アプリケーションデータ５１の項目名は、データベース表のカラム名に相当する。
・「＜−」の右辺はアプリケーションデータ５１の項目値を導出する式を表す。
・「：」で始まる名前は機器データ４１の項目名のうち、以下のいずれかを表す。なお、「ＩＤ」は、Ｉｄｅｔｉｆｉｅｒの略語である。
−タイムスタンプ「：ｔｉｍｅｓｔａｍｐ」
−機器ＩＤ「：ｄｅｖｉｃｅ」
−データタイプ名「：ｔｙｐｅ」
−値「：ｖａｌｕｅ」
・「＠」で始まる名前は、機器データ４１の値を分解して得られた項目名を表す。「＠ｅｎｅｒｇｙ＿３０ｍｉｎ」は、３０分間の消費電力の計測値に対応する項目名を表す。「＠ｄ１」は、任意の項目値である第１値に対応する項目名を表す。「＠ｄ２」は、任意の項目値である第２値に対応する項目名を表す。
・「ｌａｓｔ（）」は、更新領域３１ではなく保持領域３２の、括弧内の項目名に対応する値を用いること、すなわち、過去データを参照することを表す。
・「ｋｅｙ｛｝」は、括弧で括られた範囲のアプリケーションデータ５１の項目がデータベース表のキーであることを表す。
【００３４】
図５の例において、変換ルール５３は、「＜−」の右辺から左辺が導出されることを表している。「＠ｅｎｅｒｇｙ＿ａｃｃｕｍ」は、単調増加する消費電力の積算値に対応する項目名を表す。
【００３５】
ステップＳ１０２において、仕様解析部２１は、アプリケーションデータ仕様５２の右辺に対応し、変換バッファ３０の行を作成する。
【００３６】
ステップＳ１０３において、仕様解析部２１は、アプリケーションデータ仕様５２の右辺の項に変換ルール５３を適用し、新たに加わった項目を変換バッファ３０の行に追加する。
【００３７】
ステップＳ１０４において、仕様解析部２１は、アプリケーションデータ仕様５２の左辺と、アプリケーションデータ仕様５２の右辺およびそれに変換ルール５３を適用した結果の式である変換式の右辺の項を変換バッファ３０の行への参照とする演算木とを対応付ける。このとき、仕様解析部２１は、演算木として、公知の構文解析木等を用いる。このように、本実施の形態では、演算木の形で演算処理を格納し、参照先の値を呼び出して値を求めることができるが、変形例として、数式の形で演算処理を格納し、インタプリタで値を求めることも可能である。あるいは、演算処理を変換バッファ３０に格納する代わりに、演算命令等として別の要素に格納することも考えられる。
【００３８】
図６の例において、変換バッファ３０の出力側には、アプリケーションデータ仕様５２に列挙されたアプリケーションデータ５１の項目名が並び、変換バッファ３０の更新領域３１の入力側には、機器データ４１の項目名が並んでいる。変換バッファ３０の更新領域３１を１次元配列とみなした場合、配列の各要素が前述した行に相当し、ｉ番目の要素には、ｉ行目に対応する機器データ４１の項目値が格納される。変換バッファ３０は、本実施の形態では、機器データ４１の送信元の機器ＩＤごとに別々のハッシュテーブルとして構築されるが、１つのテーブルが複数機器に対応するように構築されてもよいし、ハッシュテーブル以外のデータ構造で実装されてもよい。アプリケーションデータ５１は、本実施の形態では、データベースのテーブルに追加されるレコードであるが、ＸＭＬ等、他の形式で出力されてもよい。「ＸＭＬ」は、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅの略語である。
【００３９】
図４に示したアプリケーションデータ仕様５２は、アプリケーションデータ５１の項目「ＥＮＥＲＧＹ」に対して機器データ４１の項目「ｅｎｅｒｇｙ＿３０ｍｉｎ」の値を格納するよう要求している。機器データ４１に３０分間の消費電力の計測値が含まれていれば、その値を直接用いることができる。図６に示した変換バッファ３０では、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の値がアプリケーションデータ５１の「ＥＮＥＲＧＹ」にそのまま格納される。一方、３０分間の消費電力の計測値ではなく、単調増加する消費電力の積算値だけを報告する機器Ｘがある場合、機器Ｘに対して、図５に示した変換ルール５３が適用される。図６に示した変換バッファ３０では、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の値と保持領域３２の「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の値から「ｅｎｅｒｇｙ＿３０ｍｉｎ」の値が導出されてアプリケーションデータ５１の「ＥＮＥＲＧＹ」に格納される。
【００４０】
このように、本実施の形態では、変換バッファ３０を、アプリケーションデータ５１の項目を導出可能なすべての変換方法に従って構成することで、同じ情報を異なる表現で報告する複数機器を同様に扱える。
【００４１】
図４に示したアプリケーションデータ仕様５２は、アプリケーションデータ５１の項目「Ｄ１」に対して機器データ４１の項目「ｄ１」の値を直前の「Ｄ１」の値に加算した結果を格納するよう要求している。図６に示した変換バッファ３０では、更新領域３１の「ｄ１」の値を保持領域３２の「ｌａｓｔ（Ｄ１）」の値に加算した結果がアプリケーションデータ５１の「Ｄ１」に格納されるとともに、その格納された値が保持領域３２に保持される。
【００４２】
このように、本実施の形態では、機器データ４１の累積値をアプリケーションデータ５１の項目とすることが可能となる。
【００４３】
図４に示したアプリケーションデータ仕様５２は、アプリケーションデータ５１の項目「Ｄ２」に対して機器データ４１の複数項目「ｄ１」および「ｄ２」の値から求めた値を格納するよう要求している。図６に示した変換バッファ３０では、更新領域３１の「ｄ１」および「ｄ２」の値の合計がアプリケーションデータ５１の「Ｄ２」に格納される。
【００４４】
このように、本実施の形態では、機器データ４１の合計値をアプリケーションデータ５１の項目とすることが可能となる。
【００４５】
以上説明したように、本実施の形態において、仕様解析部２１は、データを変換するための仕様であるアプリケーションデータ仕様５２を解析して、メモリ１２上に、機器データ４１の項目名である変換前項目名ごとに変換前項目名に対応する項目値を格納する変換バッファ３０を構築する。このとき、仕様解析部２１は、アプリケーションデータ５１の項目名である変換後項目名ごとに、変換バッファ３０に格納された項目値を用いて変換後項目名に対応する項目値を生成する処理を設定する。なお、本実施の形態では、変換前のデータとして機器データ４１、変換後のデータとしてアプリケーションデータ５１を用いているが、他の種類の変換前および変換後のデータを用いてもよい。
【００４６】
本実施の形態では、仕様解析部２１は、変換後のデータであるアプリケーションデータ５１においてキーになる変換後項目名ごとに変換バッファ３０を構築する。
【００４７】
本実施の形態では、仕様解析部２１により設定された処理のうち少なくとも１つの処理が、別々の変換前項目名に対応する複数の項目値を用いて変換後項目名に対応する項目値を生成する処理である。当該少なくとも１つの処理は、具体的には、当該複数の項目値から変換後項目名に対応する項目値を演算する処理である。
【００４８】
図４に示したアプリケーションデータ仕様５２では、機器データ４１の「ｄ１」の項目値と機器データ４１の「ｄ２」の項目値との合計がアプリケーションデータ５１の「Ｄ２」の項目値に相当することが定義されている。そのため、仕様解析部２１は、更新領域３１に、「ｄ１」の行と「ｄ２」の行とを設定する。仕様解析部２１は、演算木に、更新領域３１の「ｄ１」および「ｄ２」の行に格納された項目値の合計を計算し、計算結果を「Ｄ２」の項目値として出力する処理を設定する。
【００４９】
本実施の形態では、仕様解析部２１は、上記少なくとも１つの処理とは別の処理として、変換バッファ３０に格納された項目値と同じ値の項目値を生成する処理を設定する。
【００５０】
図４に示したアプリケーションデータ仕様５２では、機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値がアプリケーションデータ５１の「ＥＮＥＲＧＹ」の項目値に相当することが定義されている。そのため、仕様解析部２１は、更新領域３１に、「ｅｎｅｒｇｙ＿３０ｍｉｎ」の行を設定する。仕様解析部２１は、演算木に、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の行に格納された項目値と同じ値を「ＥＮＥＲＧＹ」の項目値として出力する処理を設定する。
【００５１】
本実施の形態では、仕様解析部２１は、１つの変換前項目名である第１項目名に対応する項目値を別の変換前項目名である第２項目名に対応する項目値に変換する変換ルール５３が入力された場合、第２項目名に対応する項目値を用いて変換後項目名に対応する項目値を生成する処理の一部として、第１項目名に対応する項目値を第２項目名に対応する項目値に変換する処理を設定する。
【００５２】
図５に示した変換ルール５３では、機器データ４１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の項目値を「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値に変換する式が定義されている。そのため、仕様解析部２１は、更新領域３１に、「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行を設定する。仕様解析部２１は、演算木に、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行に格納された項目値を「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値に変換し、「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値を「ＥＮＥＲＧＹ」の項目値として出力する処理を設定する。
【００５３】
本実施の形態では、仕様解析部２１により設定された処理のうち一部の処理は、更新領域３１に格納された項目値と、保持領域３２に格納された項目値とを用いて変換後項目名に対応する項目値を生成する処理である。当該一部の処理は、具体的には、更新領域３１に格納された、１つの変換前項目名に対応する項目値と、保持領域３２に格納された、当該１つの変換前項目名と同じ変換前項目名に対応する項目値とから変換後項目名に対応する項目値を演算する処理である。
【００５４】
図５に示した変換ルール５３では、機器データ４１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の項目値が「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値の積算値に相当する。そのため、仕様解析部２１は、前述したように、更新領域３１に、「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行を設定するだけでなく、保持領域３２に、「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の行を設定する。仕様解析部２１は、演算木に、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行に格納された項目値と、保持領域３２の「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の行に格納された項目値との差を計算し、計算結果を「ＥＮＥＲＧＹ」の項目値として出力する処理を設定する。
【００５５】
上述した「ＥＮＥＲＧＹ」の項目値を出力する処理の例のように、本実施の形態では、仕様解析部２１は、少なくとも１つの変換後項目名について、異なる複数の処理を設定する。当該複数の処理のそれぞれは、具体的には、処理によって異なる組み合わせの変換前項目名に対応する項目値を用いて変換後項目名に対応する項目値を生成する処理である。
【００５６】
図７を参照して、データ分解部２２の動作を説明する。この動作は、データ分解部２２が機器データ４１を受信する都度行われる。
【００５７】
ステップＳ２０１において、データ分解部２２は、単一文字列として受信した値をデータタイプ名に基づいて解釈し、項目名および項目値の組を１つ以上生成する。
【００５８】
ステップＳ２０２において、データ分解部２２は、項目値から変換バッファ３０のキーを算出し、キーの値に対応する変換バッファ３０を探索する。このとき、キーの値に対応する変換バッファ３０が存在していなければ、データ分解部２２は、空の変換バッファ３０を新たに作成し、キーの値を設定する。
【００５９】
ステップＳ２０３において、データ分解部２２は、生成した項目値のそれぞれについて、探索した変換バッファ３０から、同名の行を探索し、項目名に対応する項目値を設定する。
【００６０】
ステップＳ２０４において、データ分解部２２は、変換式評価部２３に機器データ４１の受信を通知する。
【００６１】
以上説明したように、本実施の形態において、データ分解部２２は、変換前のデータである機器データ４１を取得する度に、取得した機器データ４１を分解して、変換前項目名に対応する項目値を１つ以上抽出する。データ分解部２２は、抽出した項目値を更新領域３１に格納する。
【００６２】
図８を参照して、変換式評価部２３の動作を説明する。この動作は、変換式評価部２３がデータ分解部２２から通知を受ける都度行われる。
【００６３】
ステップＳ３０１において、変換式評価部２３は、変換後のデータであるアプリケーションデータ５１の項目名のそれぞれについて、対応する演算木の中に参照する項がすべて定義済みの演算木が存在するかチェックする。
【００６４】
ステップＳ３０２において、変換式評価部２３は、アプリケーションデータ５１の項目名すべてに、参照する項がすべて定義済みの演算木が対応していれば、各演算木を評価し、評価結果をアプリケーションデータ５１の項目値として格納する。
【００６５】
ステップＳ３０３において、変換式評価部２３は、更新領域３１の項目値およびアプリケーションデータ５１の項目値のうち、過去データとして「ｌａｓｔ（）」で参照される項目値を保持領域３２に格納する。すなわち、変換式評価部２３は、現時点の機器データ４１の項目および出力済みのアプリケーションデータ５１の項目を、以後の機器データ４１の受信時に参照できるよう、変換バッファ３０の更新領域３１から保持領域３２に格納する。
【００６６】
以上説明したように、本実施の形態において、変換式評価部２３は、変換後項目名ごとに、仕様解析部２１により設定された処理を選択する。変換式評価部２３は、変換後項目名ごとに、選択した処理で用いられる項目値を変換バッファ３０から取得する。変換式評価部２３は、変換後項目名ごとに、選択した処理を、取得した項目値に適用して、得られた項目値を出力する。
【００６７】
前述したように、本実施の形態では、仕様解析部２１が、少なくとも１つの変換後項目名について、異なる複数の処理を設定する。そのため、変換式評価部２３は、当該少なくとも１つの変換後項目名について、仕様解析部２１により設定された複数の処理の中から、適用する処理を選択する。具体的には、変換式評価部２３は、当該少なくとも１つの変換後項目名について、当該複数の処理のうち１つの処理で用いられる項目値がすべて変換バッファ３０に格納されている場合、当該１つの処理を、適用する処理として選択する。
【００６８】
第１の具体例として、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の行に項目値が格納されており、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行には項目値が格納されていないとする。この場合、変換式評価部２３は、演算木から、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の行に格納された項目値と同じ値をアプリケーションデータ５１の「ＥＮＥＲＧＹ」の項目値として出力する処理を選択して実行する。
【００６９】
第２の具体例として、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ」の行には項目値が格納されておらず、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行に項目値が格納されているとする。保持領域３２の「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の行にも項目値が格納されているとする。この場合、変換式評価部２３は、演算木から、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行に格納された項目値と、保持領域３２の「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の行に格納された項目値との差を計算し、計算結果をアプリケーションデータ５１の「ＥＮＥＲＧＹ」の項目値として出力する処理を選択して実行する。
【００７０】
前述したように、本実施の形態では、仕様解析部２１により設定された処理のうち一部の処理が、更新領域３１に格納された項目値と、保持領域３２に格納された項目値とを用いて変換後項目名に対応する項目値を生成する処理である。そのため、変換式評価部２３は、当該一部の処理を選択した場合、選択した処理で用いられる項目値を更新領域３１と保持領域３２とから取得し、選択した処理を、取得した項目値に適用して、得られた項目値を出力する。このとき、変換式評価部２３は、選択した処理で用いた、保持領域３２に格納された項目値を、選択した処理で用いた、更新領域３１に格納された項目値と、出力した項目値とのいずれかに更新する。
【００７１】
上記第２の具体例において、変換式評価部２３は、保持領域３２の「ｌａｓｔ（ｅｎｅｒｇｙ＿ａｃｃｕｍ）」の行に格納された項目値を、更新領域３１の「ｅｎｅｒｇｙ＿ａｃｃｕｍ」の行に格納された項目値に更新する。
【００７２】
第３の具体例として、更新領域３１の「ｄ１」および「ｄ２」の行に項目値が格納されているとする。この場合、変換式評価部２３は、演算木から、更新領域３１の「ｄ１」の行に格納された項目値と、更新領域３１の「ｄ２」の行に格納された項目値との合計を計算し、計算結果をアプリケーションデータ５１の「Ｄ２」の項目値として出力する処理を選択して実行する。
【００７３】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、変換バッファ３０によって多様なデータ変換に対応することができる。
【００７４】
本実施の形態では、受信したデータを一時格納する変換バッファ３０を設けたので、異なる機器から受信した機器データ４１を集約して変換することが可能である。
【００７５】
本実施の形態では、変換バッファ３０に更新領域３１と保持領域３２とを設けたので、同一機器から受信した機器データ４１の合計値の計算および積算が可能である。アプリケーションデータ仕様５２を適宜変更することで、合計値の計算の代わりに、差分値の計算等、他の計算も可能となる。
【００７６】
本実施の形態では、変換ルール５３を用い、同じ変換結果を得る複数の変換方法に対応して変換バッファ３０を構成するので、機器の変更等により仕様の詳細が変わってもデータ変換システム１０およびアプリケーションへの変更が不要である。
【００７７】
＊＊＊他の構成＊＊＊
本実施の形態では、仕様解析部２１、データ分解部２２および変換式評価部２３の機能がソフトウェアにより実現されるが、変形例として、仕様解析部２１、データ分解部２２および変換式評価部２３の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
【００７８】
図９を参照して、本実施の形態の変形例に係るデータ変換システム１０の構成を説明する。
【００７９】
データ変換システム１０は、電子回路１４および通信装置１３といったハードウェアを備える。
【００８０】
電子回路１４は、仕様解析部２１、データ分解部２２および変換式評価部２３の機能を実現する専用のハードウェアである。電子回路１４は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡまたはＡＳＩＣである。「ＩＣ」は、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。「ＧＡ」は、Ｇａｔｅ  Ａｒｒａｙの略語である。「ＦＰＧＡ」は、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。「ＡＳＩＣ」は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。
【００８１】
データ変換システム１０は、電子回路１４を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として仕様解析部２１、データ分解部２２および変換式評価部２３の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡまたはＡＳＩＣである。
【００８２】
別の変形例として、仕様解析部２１、データ分解部２２および変換式評価部２３の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、仕様解析部２１、データ分解部２２および変換式評価部２３の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
【００８３】
プロセッサ１１および電子回路１４は、いずれも処理回路である。すなわち、データ変換システム１０の構成が図１および図９のいずれに示した構成であっても、仕様解析部２１、データ分解部２２および変換式評価部２３の機能は、処理回路により実現される。
【００８４】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を、図１０から図１２を用いて説明する。
【００８５】
＊＊＊構成の説明＊＊＊
本実施の形態に係るデータ変換システム１０の構成については、図１に示した実施の形態１のものと同じであるため、説明を省略する。
【００８６】
＊＊＊動作の説明＊＊＊
本実施の形態に係るデータ変換システム１０の動作については、図３、図７および図８に示した実施の形態１のものと同じであるが、参照されるアプリケーションデータ仕様５２が異なるため、構築される変換バッファ３０も異なる。
【００８７】
本実施の形態では、図１０に示すように、複数機器から独立して機器データ４１が送信され、それら複数機器から異なる時刻に受信した同じ時刻の計測値を集計した結果をアプリケーションが必要とする場合に対応できる。
【００８８】
図１１に示したアプリケーションデータ仕様５２では、機器ＩＤの右２桁が「０１」、「０２」、・・・、「９９」の９９台の機器からの機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の項目値の合計がアプリケーションデータ５１の「ＥＮＥＲＧＹ」の項目値に相当することが定義されている。そのため、仕様解析部２１は、更新領域３１に、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行を設定する。仕様解析部２１は、演算木に、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行に格納された項目値の合計を計算し、計算結果を「ＥＮＥＲＧＹ」の項目値として出力する処理を設定する。
【００８９】
実施の形態１では、機器ＩＤがキーになっているが、本実施の形態では、機器ＩＤが１２桁であり、機器ＩＤの左１０桁で表されるグループＩＤがキーになっている。
【００９０】
９９台の機器からの機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の項目値が更新領域３１の対応する９９行すべてに格納されているとする。この場合、変換式評価部２３は、演算木から、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行に格納された項目値の合計を計算し、計算結果をアプリケーションデータ５１の「ＥＮＥＲＧＹ」の項目値として出力する処理を選択して実行する。
【００９１】
変換バッファ３０は、実施の形態１では、機器データ４１の送信元の機器ＩＤごとに別々のハッシュテーブルとして構築されるが、本実施の形態では、機器のグループＩＤごとに別々のハッシュテーブルとして構築される。
【００９２】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、実施の形態１と同じように、変換バッファ３０によって多様なデータ変換に対応することができる。本実施の形態では、特に、元データの複数項目が異なるタイミングで得られる場合に対応できるようになる。
【００９３】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を、図１３から図１５を用いて説明する。
【００９４】
＊＊＊構成の説明＊＊＊
本実施の形態に係るデータ変換システム１０の構成については、図１に示した実施の形態１のものと同じであるため、説明を省略する。
【００９５】
＊＊＊動作の説明＊＊＊
本実施の形態に係るデータ変換システム１０の動作については、図３、図７および図８に示した実施の形態１のものと同じであるが、参照されるアプリケーションデータ仕様５２が異なるため、構築される変換バッファ３０も異なる。
【００９６】
本実施の形態では、具体例として、図１３に示すように、複数機器から独立して機器データ４１が送信され、それら複数機器から異なる時刻に受信した同じ時刻の状態を示す機器データ４１をアプリケーションが一括して取得する場合に対応できる。
【００９７】
図１４に示したアプリケーションデータ仕様５２では、機器ＩＤの右２桁が「０１」、「０２」、・・・、「９９」の９９台の機器からの機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の項目値が、それぞれアプリケーションデータ５１の「Ｅ０１」、「Ｅ０２」、・・・、「Ｅ９９」の項目値に相当することが定義されている。そのため、仕様解析部２１は、更新領域３１に、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行を設定する。仕様解析部２１は、演算木に、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行に格納された項目値と同じ値をそれぞれ「Ｅ０１」、「Ｅ０２」、・・・、「Ｅ９９」の項目値として出力する処理を設定する。例えば、仕様解析部２１は、「ｅｎｅｒｇｙ＿３０ｍｉｎ」の項目値を「Ｅ０１」の項目値として出力する処理を設定する。
【００９８】
実施の形態１では、機器ＩＤがキーになっているが、本実施の形態では、実施の形態２と同じように、機器ＩＤが１２桁であり、機器ＩＤの左１０桁で表されるグループＩＤがキーになっている。
【００９９】
機器ＩＤの右２桁が「０１」の機器からの機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」の項目値が更新領域３１の対応する行に格納されているとする。この場合、変換式評価部２３は、演算木から、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０１」の行に格納された項目値と同じ値をアプリケーションデータ５１の「Ｅ０１」の項目値として出力する処理を選択して実行する。
【０１００】
同様に、機器ＩＤの右２桁が「０２」、・・・、「９９」の機器からの機器データ４１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の項目値が更新領域３１の対応する各行に格納されている場合、変換式評価部２３は、演算木から、更新領域３１の「ｅｎｅｒｇｙ＿３０ｍｉｎ＿０２」、・・・、「ｅｎｅｒｇｙ＿３０ｍｉｎ＿９９」の行に格納された項目値と同じ値をそれぞれアプリケーションデータ５１の「Ｅ０２」、・・・、「Ｅ９９」の項目値として出力する処理を選択して実行する。
【０１０１】
変換バッファ３０は、実施の形態１では、機器データ４１の送信元の機器ＩＤごとに別々のハッシュテーブルとして構築されるが、本実施の形態では、機器のグループＩＤごとに別々のハッシュテーブルとして構築される。
【０１０２】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、実施の形態１と同じように、変換バッファ３０によって多様なデータ変換に対応することができる。本実施の形態では、特に、元データの複数項目が異なるタイミングで得られる場合に対応できるようになる。
【符号の説明】
【０１０３】
１０  データ変換システム、１１  プロセッサ、１２  メモリ、１３  通信装置、１４  電子回路、２１  仕様解析部、２２  データ分解部、２３  変換式評価部、３０  変換バッファ、３１  更新領域、３２  保持領域、４１  機器データ、４２  機器プロファイル、５１  アプリケーションデータ、５２  アプリケーションデータ仕様、５３  変換ルール。
【図１】
2019045333.tif 000003
【図２】
2019045333.tif 000004
【図３】
2019045333.tif 000005
【図４】
2019045333.tif 000006
【図５】
2019045333.tif 000007
【図６】
2019045333.tif 000008
【図７】
2019045333.tif 000009
【図８】
2019045333.tif 000010
【図９】
2019045333.tif 000011
【図１０】
2019045333.tif 000012
【図１１】
2019045333.tif 000013
【図１２】
2019045333.tif 000014
【図１３】
2019045333.tif 000015
【図１４】
2019045333.tif 000016
【図１５】
2019045333.tif 000017