(57)【要約】【課題】システム開発工程におけるテスト負荷を抑制しつつ、電文フォーマットが異なるシステム間の連携を容易にする。【解決手段】異なるフォーマットの電文を受信し、構文解析して階層構造のオブジェクトデータに変換する。オブジェクトデータから階層Ｎｏ、入力ｋｅｙ及び入力ｖａｌｕｅを抽出し、階層表現テーブルを生成する。辞書データテーブルは、入力ｋｅｙ親子候補、子要素の入力ｖａｌｕｅの正規表現、変換部品名、及び出力ｋｅｙの関係を記憶する。階層表現テーブルから階層Ｎｏ及びデータ型に基づいて選択した親要素及び子要素に係るレコードの入力ｋｅｙの組合せが辞書データテーブルの入力ｋｅｙ親子候補と一致し、子要素の入力ｖａｌｕｅが正規表現と一致する場合、子要素の入力ｖａｌｕｅを引数として変換部品を呼び出し、戻り値を出力ｋｅｙとともに共通電文として出力する。【選択図】図１
2015156103.tif 000002
【特許請求の範囲】
【請求項１】
複数の連携システムから、異なるフォーマットで入力ｋｅｙと入力ｖａｌｕｅの組合せを記録した電文をそれぞれ受信するデータ受信部と、
前記電文を構文解析し、階層構造のオブジェクトデータに変換する電文パース部と、
前記オブジェクトデータから前記階層構造に基づく階層Ｎｏ、前記入力ｋｅｙ及び前記入力ｖａｌｕｅを抽出し、これらの抽出したデータと前記入力ｖａｌｕｅのデータ型をデータ項目として階層表現テーブルを生成する階層表現テーブル生成部と、
前記階層Ｎｏが１つ異なり親要素及び子要素となる前記入力ｋｅｙの組合せを予め定義した入力ｋｅｙ親子候補、前記子要素に係る前記入力ｖａｌｕｅの正規表現、前記入力ｖａｌｕｅを共通電文フォーマットに変換する変換部品名、及び出力ｋｅｙの関係を記憶する辞書データテーブルと、
前記階層表現テーブルから前記階層Ｎｏ及び前記データ型に基づいて選択した前記親要素及び前記子要素に係るレコードの前記入力ｋｅｙの組合せが前記辞書データテーブルの前記入力ｋｅｙ親子候補と一致し、かつ、前記子要素の前記入力ｖａｌｕｅが前記正規表現と一致することを条件に、前記子要素の前記入力ｖａｌｕｅを引数として前記変換部品を呼び出し、その戻り値を前記出力ｋｅｙとともに前記共通電文フォーマットで出力する辞書照合部と、
を備えることを特徴とするＭ２Ｍにおける電文変換システム。
【請求項２】
辞書照合部は、前記辞書データテーブルがデータ項目として前記子要素の未変換ｖａｌｕｅを含み、かつ、前記親要素及び前記子要素として選択したレコードに含まれる前記入力ｋｅｙの組合せが前記辞書データテーブル内に存在しない場合には、前記辞書データテーブルに新規追加したレコードの前記入力ｋｅｙ親子候補及び前記未変換ｖａｌｕｅに対して前記組合せ及び前記子要素の前記入力ｖａｌｕｅをそれぞれ格納することを特徴とする請求項１記載のＭ２Ｍにおける電文変換システム。
【請求項３】
前記辞書データテーブル内に前記未変換ｖａｌｕｅに値が格納されたレコードが登録された場合に、前記辞書データの更新要求メッセージを出力する通知部を更に備えることを特徴とする請求項２記載のＭ２Ｍにおける電文変換システム。
【請求項４】
複数の連携システムから、異なるフォーマットで入力ｋｅｙと入力ｖａｌｕｅの組合せを記録した電文をそれぞれ受信するデータ受信ステップと、
前記受信された電文を構文解析し、階層構造のオブジェクトデータに変換する電文パースステップと、
前記変換されたオブジェクトデータから前記階層構造に基づく階層Ｎｏ、前記入力ｋｅｙ及び前記入力ｖａｌｕｅを抽出し、これら抽出したデータと前記入力ｖａｌｕｅのデータ型をデータ項目として階層表現テーブルを生成する階層表現テーブル生成ステップと、
前記階層Ｎｏが１つ異なり親要素及び子要素となる前記入力ｋｅｙの組合せを予め定義した入力ｋｅｙ親子候補、前記子要素に係る前記入力ｖａｌｕｅの正規表現、前記入力ｖａｌｕｅを共通電文フォーマットに変換する変換部品名、及び出力ｋｅｙの関係を記憶した辞書データテーブルを生成する辞書データテーブル生成ステップと、
前記階層表現テーブルから前記階層Ｎｏ及び前記データ型に基づいて選択した前記親要素及び前記子要素に係るレコードの前記入力ｋｅｙの組合せが前記辞書データテーブルの前記入力ｋｅｙ親子候補と一致し、かつ、前記子要素の前記入力ｖａｌｕｅが前記正規表現と一致することを条件に、前記子要素の前記入力ｖａｌｕｅを引数として前記変換部品を呼び出し、その戻り値を前記出力ｋｅｙとともに共通電文共通電文フォーマットで出力する辞書照合ステップと、
を有することを特徴とするＭ２Ｍにおける電文変換方法。
【請求項５】
前記辞書照合ステップにおいて、前記親要素及び前記子要素として選択したレコードに含まれる前記入力ｋｅｙの組合せが前記辞書データテーブル内に存在しない場合には、前記辞書データテーブルに新規追加したレコードの前記入力ｋｅｙ親子候補及び未変換ｖａｌｕｅに対して前記組合せ及び前記子要素の前記入力ｖａｌｕｅをそれぞれ格納することを特徴とする請求項４記載のＭ２Ｍにおける電文変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、Ｍ２Ｍにおける電文変換システム及び電文変換方法に関する。
【背景技術】
【０００２】
近年、機械と機械が通信ネットワークを介して互いに情報をやり取りすることにより、自律的に高度な制御を行うＭ２Ｍ（Machine to Machine）システムが知られている。Ｍ２Ｍシステムの具体例としては、工場内での工作機械の集中監視システム、自動販売機の在庫状況の遠隔監視システム、様々な建物に設置されたエレベーターの稼働状況監視システム、電力使用料の監視や供給制御を行なうＨＥＭＳ(Home Energy Management System)などがある。ＨＥＭＳでは、発電所や家庭の配電盤などに導入された種々のコンピュータから受信した電文に含まれるデータ（消費電力量や水消費量、機器の状態情報等）をデータベースで一元的に格納し、「見える化機能」として対象家庭の居住者がＷｅｂアプリケーションで上記データを閲覧可能なサービスを提供する。
【０００３】
ＨＥＭＳのようなＭ２Ｍシステムでは、異なるシステム間で通信が行われるため、電文フォーマットの違いを吸収する仕組みが必要となる。図７は、従来のＭ２Ｍシステムの全体構成例を説明するブロック図である。ここでは、センター管理サーバに対して四つの連携システムＡ，Ｂ，Ｃ，Ｄがそれぞれ接続されており、センター管理サーバのビジネスサービス提供部（サービス用アプリケーション群）が利用できる電文フォーマット（以下、「共通電文フォーマット」という。）が、
key1:value1,key2:value2,key3:value3,・・・
であることが示されている。
【０００４】
当初、センター管理サーバに対して連携システムＡのみが接続されていたとすると、連携システムＡからデータ受信部に対して送信される電文のフォーマットは共通電文と同じであるため、連携システムＡとの間では電文フォーマットの変換処理は必要ない。しかし、図７に示すように、連携システムＢ，連携システムＣ，連携システムＤが送信する電文のフォーマットはいずれも共通電文と異なっている。そこで、これらのシステムを連携させるために、センター管理サーバには３種類の共通電文変換モジュール（変換ロジックＢ，Ｃ，Ｄ）を設ける必要があった。
【０００５】
また、図７の場合、連携システムＢと連携システムＣがそれぞれ送信する電文は、オブジェクトの最下層の要素に着目すると、
・連携システムＢ：“data1" : 15.0,“data2" : 20.4,“data3" : 24.1
・連携システムＣ：“D0001" : 16.0,“D0002" : 20.2,“D0003" : 25.3
である。これらはｋｅｙの名称のみが異なり、key1:value1,key2:value2,key3:value3というデータ構成は共通している。このような場合、この２種類の類似した電文を一つのスキーマとし、これに対する変換ロジックを用意することは有効である。しかしながら、ｋｅｙ名称のみが異なる電文同士の場合に、一つのスキーマとして変換ロジックを纏められるに過ぎなかった。
【０００６】
例えば、以下の二つの電文Ａと電文Ｂが異なる連携システムから送信される場合、電文Ａと電文Ｂの電文フォーマットは大幅に異なるので、一つのスキーマに纏められない。
【０００７】
・電文Ａ
2015156103.tif 000003
・電文Ｂ
2015156103.tif 000004
このため、以下のような共通電文
10:2013111613123,20:2013111613123
を生成するためには、従来技術では２種類の変換ロジックを用意する必要があった。
【０００８】
一般に、システム開発工程においては、テスト（単体テスト／結合テスト等）が大きなボリュームを占めている。一つの電文フォーマット若しくはスキーマに対して、一つの変換ロジックを設ける場合、当該変換ロジックに対して変更や修正作業を実施すると、対象箇所のテストだけでなく、既存の連携システムから受信した電文を正しく変換できるか否かについてもテストしなければならない。すなわち、電文フォーマットが互いに異なるシステム間を連携させる際には、多くの作業時間を要した。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１０１６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、システム開発工程におけるテスト負荷を抑制しつつ、電文フォーマットが異なるシステム間の連携が容易なＭ２Ｍにおける電文変換システム及び電文変換方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態に係るＭ２Ｍにおける電文変換システムは、複数の連携システムから、異なるフォーマットで入力ｋｅｙと入力ｖａｌｕｅの組合せを記録した電文をそれぞれ受信するデータ受信部と、前記電文を構文解析し、階層構造のオブジェクトデータに変換する電文パース部と、前記オブジェクトデータから前記階層構造に基づく階層Ｎｏ、前記入力ｋｅｙ及び前記入力ｖａｌｕｅを抽出し、これらの抽出したデータと前記入力ｖａｌｕｅのデータ型をデータ項目として階層表現テーブルを生成する階層表現テーブル生成部と、前記階層Ｎｏが１つ異なり親要素及び子要素となる前記入力ｋｅｙの組合せを予め定義した入力ｋｅｙ親子候補、前記子要素に係る前記入力ｖａｌｕｅの正規表現、前記入力ｖａｌｕｅを共通電文フォーマットに変換する変換部品名、及び出力ｋｅｙの関係を記憶する辞書データテーブルと、前記階層表現テーブルから前記階層Ｎｏ及び前記データ型に基づいて選択した前記親要素及び前記子要素に係るレコードの前記入力ｋｅｙの組合せが前記辞書データテーブルの前記入力ｋｅｙ親子候補と一致し、かつ、前記子要素の前記入力ｖａｌｕｅが前記正規表現と一致することを条件に、前記子要素の前記入力ｖａｌｕｅを引数として前記変換部品を呼び出し、その戻り値を前記出力ｋｅｙとともに共通電文フォーマットで出力する辞書照合部と、を備えることを特徴とする。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るＭ２Ｍにおける電文変換システムの全体構成例を示すブロック図。
【図２】階層表現テーブルの具体例を示す図。
【図３】辞書データテーブルの具体例を示す図。
【図４】電文内にパースできない文字列が含まれていた場合の辞書データテーブルの更新例を示す図。
【図５】電文パース部及び階層表現テーブル生成部の処理例を示すフローチャート。
【図６】辞書照合部及び通知部の処理例を示すフローチャート。
【図７】従来のＭ２Ｍにおける電文変換システムを説明するブロック図。
【発明を実施するための形態】
【００１３】
以下、Ｍ２Ｍにおける電文変換システムについて図面を参照して詳細に説明する。図１は、本発明の一実施形態に係るＭ２Ｍにおける電文変換システムの全体構成例を示すブロック図である。本システムは、センター管理サーバ１に対して連携システム（１）〜（３）が接続されている。センター管理サーバ１は、データ受信部１０、電文解析部１１、階層表現テーブル１２、辞書データテーブル１３、変換部品モジュール１４、通知部１５及びビジネスサービス提供部１６を備えたサーバコンピュータである。
【００１４】
データ受信部１０は、複数の連携システム（１）〜（３）から、異なるフォーマットで入力ｋｅｙと入力ｖａｌｕｅの組合せを記録した電文をそれぞれ受信し、電文をそのまま電文解析部１１へ出力する。図１では、連携システム（１）〜（３）とデータ受信部１０間の通信方式はシステムによって様々であることが示されている。具体的には、センター側から連携システム（１）にリクエストを送信してリクエストに対するレスポンスのボディに格納された電文を電文解析部１１に出力する方法、連携システム（２）からサーバ間のＴＣＰ/ＩＰソケット通信を用いて電文を受信し電文解析部１１に出力する方法、データ受信部１０が連携システム（３）側からＢＡＣｎｅｔＷＳによって電文を受信し、電文解析部１１に出力する方法が例示されている。なお、通信方法及び接続される連携システムの数はこれらに限定されない。
【００１５】
電文解析部１１は、電文パース部１１Ａ、階層表現テーブル生成部１１Ｂ及び辞書照合部１１Ｃの３種類の処理ロジックを含んでいる。電文解析部１１の入力はデータ受信部１０から渡される各種フォーマットの電文であり、出力はビジネスサービス提供部１６が解析可能な共通電文である。
【００１６】
電文パース部１１Ａは、データ受信部１０側から入力された電文を構文解析し、階層構造のオブジェクトデータにパース（変換）する。以下に、ＪＳＯＮ形式によって表現される電文の例を示す。
【００１７】
2015156103.tif 000005
電文のパースには、ＪＳＯＮデータやＸＭＬデータの汎用的なパーサ（例えばＪａｃｋｓｏｎ Ｊａｖａ(登録商標) ＪＳＯＮ−ｐｒｏｃｅｓｓｏｒやｇｏｏｇｌｅ−ｊｓｏｎ等）を使用することができるため、説明を省略する。パースされる前の電文は見かけ上は階層構造となっているものの、実際は単なる文字列に過ぎず、パースされることで、階層構造を保持するオブジェクトデータとなる。以下に、Ｊａｃｋｓｏｎ Ｊａｖａ(登録商標) ＪＳＯＮ−ｐｒｏｃｅｓｓｏｒを使用した場合の、ＪＳＯＮオブジェクトデータ生成例を示す。
【００１８】
2015156103.tif 000006
このように、ＪＳＯＮオブジェクトデータに変換された電文は、以下のようにｋｅｙを指定して対となるｖａｌｕｅを取得可能となる。
【００１９】
2015156103.tif 000007
上記の例の場合、変数ｒｅｓにはｌｏｃａｔｉｏｎという名称のｋｅｙに対応するｖａｌｕｅである“Ｌ０００００００００００００００１”が格納される。なお、上記電文の一部のデータであるｋｅｙとｖａｌｕｅの組合せを本実施形態では「要素」と呼ぶ。また、この組合せに対応するレコードも同様とする。
【００２０】
階層表現テーブル生成部１１Ｂは、オブジェクトデータから階層構造に基づく階層Ｎｏ、入力ｋｅｙ及び入力ｖａｌｕｅをそれぞれ抽出し、これらの抽出したデータと入力ｖａｌｕｅのデータ型をデータ項目として階層表現テーブル１２を生成する。図２は、階層表現テーブル１２の具体例を示す図である。ここでは、上記のＪＳＯＮ文字列を変換した例を示している。階層表現テーブル１２の保存形式は、ファイルやデータベースなどシステムによって設計変更可能である。ファイルの場合は、階層Ｎｏ、ｋｅｙ、ｖａｌｕｅ、ｖａｌｕｅのデータ型の順にシステムごとに定める区切り文字で区切って保存すれば良い。データベースの場合は、階層Ｎｏ、ｋｅｙ、ｖａｌｕｅ、ｖａｌｕｅのデータ型というカラムにデータを追加していけば良い。本実施形態では、データベースを例に説明する。
【００２１】
階層表現テーブル生成部１１Ｂにおける階層表現テーブル１２の生成手順は以下の通りである。  
［手順１］
ｋｅｙ及びそのｖａｌｕｅを階層表現テーブル１２に追加する。
【００２２】
［手順２］
ｖａｌｕｅに対して更にパースを行い、パース可能であればｖａｌｕｅのデータ型にＯｂｊｅｃｔを追加する。パースが不可能であれば、木構造の先端であることが分かるため、そのｖａｌｕｅがＡｒｒａｙ(配列)あるいはＯｔｈｅｒｓ(配列以外)であるのかを判別し、ｖａｌｕｅのデータ型へ追加する。例えば、ｖａｌｕｅを配列へ変換する処理を行い、処理が正常に終了すればＡｒｒａｙ(配列)と判断する。処理が正常に終了しなかった場合、Ｏｔｈｅｒｓ(配列以外)であると判断する。ここで、配列への変換処理は、各プログラミング言語もしくはパーサによって実装済であることから、割愛する。本実施形態におけるｖａｌｕｅのデータ型は、Ｏｂｊｅｃｔ、Ａｒｒａｙ、Ｏｔｈｅｒｓの３種類とする。
【００２３】
［手順３］
手順１，２を再帰的に繰り返し、全要素を階層表現テーブル１２へ追加する。再帰的に繰り返す過程で、再帰回数を階層Ｎｏとして、階層表現テーブル１２へ追加する。
【００２４】
図３は、辞書データテーブル１３の具体例を示す図である。辞書データテーブル１３は、オブジェクトデータにおいて階層Ｎｏが１つ異なり親要素及び子要素となる入力ｋｅｙの組合せを予め定義した入力ｋｅｙ親子候補、子要素に係る入力ｖａｌｕｅの正規表現、入力ｖａｌｕｅを共通電文フォーマットに変換する変換部品名、出力ｋｅｙ及び未変換ｖａｌｕｅの関係を記憶する。辞書データテーブル１３の保存形式は、階層表現テーブル１２と同様に、ファイルやデータベースなどシステムによって設計変更可能である。
【００２５】
辞書照合部１１Ｃは、階層表現テーブル１２から階層Ｎｏ及びデータ型に基づいて選択した親要素及び子要素に係るレコードの入力ｋｅｙの組合せが辞書データテーブル１３の入力ｋｅｙ親子候補と一致し、かつ、子要素の入力ｖａｌｕｅが正規表現と一致することを条件に、子要素の入力ｖａｌｕｅを引数として変換部品を呼び出し、その戻り値を出力ｋｅｙとともに共通電文としてビジネスサービス提供部１６に出力する。
【００２６】
辞書照合部１１Ｃにおける辞書照合手順は以下の通りである。  
［手順１］
階層表現テーブル１２の階層Ｎｏについて降順に、入力ｖａｌｕｅのデータ型がＯｂｊｅｃｔでない要素を検索する。図２において最初に検索するのは以下の要素となる。ここで検索した要素を「子要素」と呼ぶ。
【００２７】
2015156103.tif 000008
［手順２］
ｖａｌｕｅのデータ型がＯｂｊｅｃｔでない子要素を発見すると、子要素が含まれるオブジェクト要素を検索する。検索方法は、一つ上の階層Ｎｏであってｖａｌｕｅのデータ型がＯｂｊｅｃｔである要素を検索する。ここで検索した要素を「親要素」と呼ぶ。図２において検索されるのは以下の要素となる。
【００２８】
2015156103.tif 000009
この親要素のｋｅｙ（“ｄａｔａ”）及び子要素のｋｅｙ（“Ｍ０００００００００００００００１/ＡＩ０００１”）、ｖａｌｕｅ(［“＊＊”］)、ｖａｌｕｅのデータ型(Ａｒｒａｙ)をプログラムにおける変数に保存する。
【００２９】
［手順３］
手順２で取得した親要素のｋｅｙ（“ｄａｔａ”）と子要素のｋｅｙ（“Ｍ０００００００００００００００１/ＡＩ０００１”）の組合せと辞書データテーブルの入力ｋｅｙ親子候補とを比較し、一致するものがあれば手順４へ進む。テーブル内に当該組合せが無い場合には新規の組合せであるため、入力ｋｅｙ親子候補に追加する。図３の最下行のレコードは、新規の組合せを入力ｋｅｙ親子候補に追加した例を示している。
【００３０】
［手順４］
手順３で親要素と子要素のｋｅｙは既に辞書データに登録済の場合には、本手順に入る。その後、子要素のｖａｌｕｅと辞書データ内の入力ｖａｌｕｅフォーマットの正規表現とをマッチングし、ｔｒｕｅとなる場合は、次の手順５へ進む。ｆａｌｓｅの場合はｖａｌｕｅの値を未変換ｖａｌｕｅに追加する。図４は、電文内にパースできない文字列が含まれていた場合の辞書データテーブルの更新例を示す図である。入力ｖａｌｕｅフォーマットが複数存在する場合は、その数分マッチングを行う。尚、ｖａｌｕｅと正規表現とのマッチング方法は様々なプログラミング言語で実装済みのため、説明を省略する。ｖａｌｕｅのデータ型がＡｒｒａｙの場合は、プログラミング言語の配列型に変換し、配列の要素分正規表現とのマッチングを繰り返す。
【００３１】
［手順５］
親要素のｋｅｙ、子要素のｋｅｙ、子要素のｖａｌｕｅのフォーマットが辞書データテーブル１３に存在した場合、入力ｖａｌｕｅフォーマットの変換部品名をキーにビジネスサービス提供部（ビジネス用サービスアプリケーション群）１６内から呼び出した変換部品にｖａｌｕｅを渡し、変換部品が返した結果（戻り値）を、出力ｋｅｙの対となる出力ｖａｌｕｅに設定する。この出力ｋｅｙ及び出力ｖａｌｕｅはシステム標準の形式（共通電文フォーマット）である。
【００３２】
続いて、辞書照合部１１Ｃは、辞書データテーブル１３によって処理できない未知の電文を受信した場合、辞書照合部１１Ｃは図４の最下行のように出力ｋｅｙが空、かつ、未変換ｖａｌｕｅに値が入っている状態でレコードを登録する。通知部１５は、所定のタイミングで辞書データテーブル１３内を参照し、出力ｋｅｙ、入力ｋｅｙ親子候補及び子要素ｖａｌｕｅフォーマットの３項目の関係が定義されていない不完全なレコードを検出した場合には、管理者端末（図示省略）などにメッセージを通知し、辞書データテーブル１３のレコード更新あるいは新規部品開発を促す。例えば、入力ｋｅｙ親子候補に値が入っている場合は、対応する出力ｋｅｙを手動で入力し、未変換ｖａｌｕｅに値が入っている場合は、入力ｖａｌｕｅフォーマットを手動で入力することで対応できる。変換部品名に関しては、既存の部品で対応可能であればその部品名を入力し、それでも対応できない場合は、新規部品開発及びその変換部品名の入力を促すものとする。
【００３３】
以下、上記の電文変換システムの詳細な動作例を図面に基づいて説明する。  
図５は、電文パース部１１Ａ及び階層表現テーブル生成部１１Ｂの処理例を示すフローチャートである。  
Ｓ１０１において、電文パース部１１Ａは、データ受信部１０から電文を取得する。  
Ｓ１０２において、電文パース部１１Ａは、電文をパースして、階層構造のオブジェクトデータを取得する。
【００３４】
Ｓ１０３において、電文パース部１１Ａは、階層Ｎｏ（再帰回数）の値に基づいて階層表現テーブル１２に新規行のレコードを追加する。階層Ｎｏの初期値は１である。  
Ｓ１０４において、電文パース部１１Ａは、オブジェクトデータから得られる入力ｋｅｙ、入力ｖａｌｕｅを階層表現テーブル１２の新規行に格納する。
【００３５】
Ｓ１０５において、電文パース部１１Ａは、入力ｖａｌｕｅのパースが可能か否かを判定する。ここで、パース可能と判定した場合には、Ｓ１０６へ進む。これに対し、パース不可能と判定した場合には、Ｓ１０７へ進む。  
Ｓ１０６において、階層表現テーブル生成部１１Ｂは、階層表現テーブル１２の新規行の入力ｖａｌｕｅのデータ型に「Ｏｂｊｅｃｔ」を格納し、Ｓ１１０へ進む。
【００３６】
Ｓ１０７において、階層表現テーブル生成部１１Ｂは、入力ｖａｌｕｅのデータ型が配列型（Ａｒｒａｙ）か否かを判定する。ここで、データ型が配列型（Ａｒｒａｙ）であると判定した場合は、Ｓ１０８へ進む。これに対し、データ型が配列型（Ａｒｒａｙ）ではないと判定した場合は、Ｓ１０９へ進む。
【００３７】
Ｓ１０８において、階層表現テーブル生成部１１Ｂは、階層表現テーブル１２の新規行の入力ｖａｌｕｅのデータ型に「Ａｒｒａｙ」を格納し、Ｓ１１０へ進む。  
Ｓ１０９において、階層表現テーブル生成部１１Ｂは、階層表現テーブル１２の新規行の入力ｖａｌｕｅのデータ型に「Ｏｔｈｅｒｓ」を格納し、Ｓ１１０へ進む。
【００３８】
Ｓ１１０において、階層表現テーブル生成部１１Ｂは、階層構造の全要素、すなわち、階層表現テーブル１２の全レコードの探索が終了したか否かを判定する。ここで、探索が終了したと判定した場合は、処理を終了する。これに対し、探索が終了していないと判定した場合は、Ｓ１１１へ進む。  
Ｓ１１１において、階層表現テーブル生成部１１Ｂは、階層Ｎｏを１加算し、Ｓ１０３へ戻る。Ｓ１０３〜Ｓ１１１の処理は、全レコードの探索が終了するまで繰り返し実行される。
【００３９】
図６は、辞書照合部１１Ｃ及び通知部１４の処理例を示すフローチャートである。  
Ｓ２０１において、辞書照合部１１Ｃは、階層レベルが低い要素（レコード）から検索対象とするために、階層Ｎｏの降順で階層表現テーブル１２の全レコードを読込む。
【００４０】
Ｓ２０２において、辞書照合部１１Ｃは、検索対象となる階層Ｎｏのレコード行に着目する。  
Ｓ２０３において、辞書照合部１１Ｃは、検索対象行の階層Ｎｏが１か否かを判定する。ここで、階層Ｎｏが１であると判定した場合は、Ｓ２１６へ進む。これに対し、階層Ｎｏが１ではないと判定した場合は、Ｓ２０４へ進む。
【００４１】
Ｓ２０４において、辞書照合部１１Ｃは、検索対象行の入力ｖａｌｕｅのデータ型がＯｂｊｅｃｔか否かを判定する。ここで、データ型がＯｂｊｅｃｔであると判定した場合は、Ｓ２１６へ進む。これに対し、データ型がＯｂｊｅｃｔ以外であると判定した場合は、Ｓ２０５へ進む。
【００４２】
Ｓ２０５において、辞書照合部１１Ｃは、検索対象行の入力ｋｅｙを子要素として変数に保存する。  
Ｓ２０６において、辞書照合部１１Ｃは、検索対象行の階層Ｎｏを１減算し、その階層Ｎｏのレコードに着目する。
【００４３】
Ｓ２０７において、辞書照合部１１Ｃは、検索対象行の入力ｖａｌｕｅのデータ型がＯｂｊｅｃｔか否かを判定する。ここで、入力ｖａｌｕｅのデータ型がＯｂｊｅｃｔであると判定した場合は、Ｓ２０８へ進む。これに対し、データ型がＯｂｊｅｃｔ以外であると判定した場合は、次のレコード行を検索対象行とする。  
Ｓ２０８において、辞書照合部１１Ｃは、検索対象行の入力ｋｅｙを親要素として変数に保存する。
【００４４】
Ｓ２０９において、辞書照合部１１Ｃは、親要素・子要素の入力ｋｅｙのペアが、辞書データテーブル１３の入力ｋｅｙ親子候補に存在するか否かを判定する。ここで、入力ｋｅｙのペアが入力ｋｅｙ親子候補に存在すると判定した場合は、Ｓ２１０へ進む。これに対し、当該ペアが入力ｋｅｙ親子候補に存在しないと判定した場合は、Ｓ２１３へ進む。
【００４５】
Ｓ２１０において、辞書照合部１１Ｃは、子要素の入力ｖａｌｕｅが辞書データテーブル１３の子要素ｖａｌｕｅフォーマットの正規表現と一致するか否かを判定する。ここで、入力ｖａｌｕｅが子要素ｖａｌｕｅフォーマットの正規表現と一致すると判定した場合は、Ｓ２１１へ進む。これに対し、正規表現と一致しないと判定した場合は、Ｓ２１４へ進む。
【００４６】
Ｓ２１１において、辞書照合部１１Ｃは、出力ｋｅｙを共通電文のｋｅｙに設定する。  
Ｓ２１２において、辞書照合部１１Ｃは、子要素ｖａｌｕｅを変換部品名で指定された部品に渡し、その戻り値を共通電文のｋｅｙに対するｖａｌｕｅに設定し、Ｓ２１６へ進む。
【００４７】
Ｓ２１３において、辞書照合部１１Ｃは、辞書データテーブル１３の新規行の入力ｋｅｙ親子候補に、親要素・子要素のｋｅｙのペアを格納し、Ｓ２１６へ進む。  
Ｓ２１４において、辞書照合部１１Ｃは、未変換ｖａｌｕｅに子要素のｖａｌｕｅを格納する。  
Ｓ２１５において、通知部１５は、センター管理サーバ１に接続されている管理者端末（図示省略する）などに辞書データ更新要求メッセージを出力し、Ｓ２１６へ進む。
【００４８】
Ｓ２１６において、辞書照合部１１Ｃは、階層表現テーブル１２の全レコード行について検索終了か否かを判定する。ここで、検索終了と判定した場合には、処理を終了する。  
Ｓ２１７において、辞書照合部１１Ｃは、階層Ｎｏを１減算し、Ｓ２０２へ戻る。なお、上記処理の中で作成された共通電文は、処理終了とともにビジネスサービス提供部１６へ出力される。
【００４９】
このように、本実施形態によれば、新規に連携するシステムが既存システムと異なる電文フォーマットを使用する場合であっても、電文オブジェクトデータから生成した階層表現テーブル１２と要素単位での変換部品が予め定義された辞書データテーブル１３とのデータ照合結果に基づいて使用可能な変換部品があれば自動で判別し、電文解析に流用することができる。また、既存の変換部品を使用できない場合でも、電文オブジェクトデータから得られた入力ｋｅｙと入力ｖａｌｕｅの組合せが辞書データテーブル１３内に追加登録されるため、新規に開発すべき変換部品を迅速に把握できる。これにより、製造物のボリュームを最小化し、使用可能な部品を再利用することで製造における不具合発生のリスクを抑止し、設計・製造工程の短縮化を図ることが出来る。
【００５０】
以上、本発明の実施形態を説明したが、本実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。本実施形態及びその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５１】
１…センター管理サーバ、
１０…データ受信部、
１１…電文解析部、
１１Ａ…電文パース部、
１１Ｂ…階層表現テーブル生成部、
１１Ｃ…辞書照合部、
１２…階層表現テーブル、
１３…辞書データテーブル、
１４…変換部品モジュール、
１５…通知部、
１６…ビジネスサービス提供部。
【図１】
2015156103.tif 000010
【図２】
2015156103.tif 000011
【図３】
2015156103.tif 000012
【図４】
2015156103.tif 000013
【図５】
2015156103.tif 000014
【図６】
2015156103.tif 000015
【図７】
2015156103.tif 000016