(57)【要約】【課題】送信側のデータのデータ形式と受信側のデータのデータ形式が異なる場合でも、受信側でデータの更新ができるようにする。【解決手段】受信側計算機８は、ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データから構造体データへの変換が可能である。送信側計算機７において、差分データ生成部２は、受信側計算機８が保持している構造体データに対する差分データをＣＤＲデータで生成する。通信部１３は、差分データ生成部２により生成された差分データを受信側計算機８に送信する。【選択図】図１
2017146659.tif 000002
【特許請求の範囲】
【請求項１】
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データから構造体データへの変換が可能なデータ受信装置が保持している構造体データに対する差分データをＣＤＲデータで生成する差分データ生成部と、
前記差分データ生成部により生成された前記差分データを前記データ受信装置に送信する通信部とを有するデータ送信装置。
【請求項２】
前記データ受信装置は、
１つの構造体データを保持しており、
前記差分データ生成部は、
前記データ受信装置が保持している前記１つの構造体データに対する差分データをＣＤＲデータで生成する請求項１に記載のデータ送信装置。
【請求項３】
前記データ受信装置は、
複数の構造体データを保持しており、
前記差分データ生成部は、
前記データ受信装置が保持している前記複数の構造体データのうちのいずれか１つの構造体データに対する差分データをＣＤＲデータで生成する請求項１に記載のデータ送信装置。
【請求項４】
前記差分データ生成部は、
前記データ受信装置が保持している前記複数の構造体データの中から差分データのデータサイズが最小となる構造体データに対する差分データをＣＤＲデータで生成する請求項３に記載のデータ送信装置。
【請求項５】
前記差分データ生成部は、
前記データ受信装置が保持している構造体データにおける更新位置と更新値とを通知する差分データをＣＤＲデータで生成する請求項１に記載のデータ送信装置。
【請求項６】
前記差分データ生成部は、
前記データ受信装置が保持している構造体データにおける更新位置と更新値を得るための演算方法と被演算値とを通知する差分データをＣＤＲデータで生成する請求項１に記載のデータ送信装置。
【請求項７】
構造体データを保持するデータ受信装置であって、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データである、前記構造体データに対する差分データを受信する通信部と、
前記通信部により受信された前記差分データを用いて前記構造体データを更新するデータ更新部とを有するデータ受信装置。
【請求項８】
前記データ受信装置は、
１つの構造体データを保持しており、
前記通信部は、
前記１つの構造体データに対する差分データを受信し、
前記データ更新部は、
前記通信部により受信された前記差分データを用いて前記１つの構造体データを更新する請求項７に記載のデータ受信装置。
【請求項９】
前記データ受信装置は、
複数の構造体データを保持しており、
前記通信部は、
前記複数の構造体データのうちのいずれか１つの構造体データに対する差分データを受信し、
前記データ更新部は、
前記通信部により受信された前記差分データを用いて、対象となる構造体データを更新する請求項７に記載のデータ受信装置。
【請求項１０】
前記通信部は、
前記構造体データにおける更新位置と更新値とを通知する差分データを受信し、
前記データ更新部は、
前記通信部により受信された前記差分データで通知された更新位置と更新値とを用いて、前記構造体データを更新する請求項７に記載のデータ受信装置。
【請求項１１】
前記通信部は、
前記構造体データにおける更新位置と更新値を得るための演算方法と被演算値とを通知する差分データを受信し、
前記データ更新部は、
前記通信部により受信された前記差分データで通知された更新位置と演算方法と被演算値とを用いて、前記構造体データを更新する請求項７に記載のデータ受信装置。
【請求項１２】
コンピュータであるデータ送信装置が、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データから構造体データへの変換が可能なデータ受信装置が保持している構造体データに対する差分データをＣＤＲデータで生成する差分データ生成ステップと、
前記差分データ生成ステップにより生成された前記差分データを前記データ受信装置に送信する送信ステップとを有するデータ送信方法。
【請求項１３】
構造体データを保持する、コンピュータであるデータ受信装置が、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データである、前記構造体データに対する差分データを受信する受信ステップと、
前記受信ステップにより受信された前記差分データを用いて前記構造体データを更新するデータ更新ステップとを有するデータ受信方法。
【請求項１４】
コンピュータであるデータ送信装置に、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データから構造体データへの変換が可能なデータ受信装置が保持している構造体データに対する差分データをＣＤＲデータで生成する差分データ生成ステップと、
前記差分データ生成ステップにより生成された前記差分データを前記データ受信装置に送信する送信ステップとを有するデータ送信プログラム。
【請求項１５】
構造体データを保持する、コンピュータであるデータ受信装置に、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データである、前記構造体データに対する差分データを受信する受信ステップと、
前記受信ステップにより受信された前記差分データを用いて前記構造体データを更新するデータ更新ステップとを有するデータ受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、差分データを送受信する技術に関する。
【背景技術】
【０００２】
従来の差分データ通信方式である特許文献１の方式は、データの圧縮・復元を行う処理部を備え、類似するデータパターンを繰り返し通信する場合に、今回送信するデータ領域を前のデータ領域と比較して値が変化したデータのみを送信することで通信量を削減している。より具体的には、特許文献１の方式では、通信するデータ領域全体の先頭からのオフセット（データ位置）と変化したデータの値を組にして送信データを作成し、この送信データを送信することによって通信量を削減している。
【０００３】
また、別の従来の差分データ通信方式である特許文献２の方式では、時系列観測データに対して直前のデータとの差分を取って差分化する差分化手段を備える。そして、特許文献２の方式では、差分化データの値及び並びに応じて差分化データを分類し、差分化データを特定のビットパターンで置換することにより、プロセスの監視のための時系列観測データの特徴に合ったデータ圧縮を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２８６８８９号公報
【特許文献２】特開２００７−２８１０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の差分データ通信方式は、送信側と受信側で保持しているデータのデータ形式が異なる場合に受信側でデータの更新ができない、という課題がある。
つまり、送信側で送信側のデータの差分を取り、差分を通知する差分データを受信側に送信しても、受信側のデータのデータ形式が異なるため、差分データに基づいて受信側のデータを更新することができないという課題がある。
【０００６】
本発明は、このような課題を解決することを主な目的としており、送信側のデータのデータ形式と受信側のデータのデータ形式が異なる場合でも、受信側でデータの更新ができるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ送信装置は、
ＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データから構造体データへの変換が可能なデータ受信装置が保持している構造体データに対する差分データをＣＤＲデータで生成する差分データ生成部と、
前記差分データ生成部により生成された前記差分データを前記データ受信装置に送信する通信部とを有する。
【発明の効果】
【０００８】
本発明によれば、ＣＤＲデータである差分データを送信するため、データ受信装置は差分データを用いてデータを更新することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る通信システムの構成例を示す図。
【図２】実施の形態１に係る構造体データの例を示す図。
【図３】実施の形態１に係る送信対象の構造体データの例を示す図。
【図４】実施の形態１に係る送信対象のＣＤＲデータの例を示す図。
【図５】実施の形態１に係る送信データ保持部が保持するＣＤＲデータの例と受信データ保持部が保持する構造体データの例を示す図。
【図６】実施の形態１に係る差分情報データ群の例を示す図。
【図７】実施の形態１に係る送信側計算機での動作例を示す図。
【図８】実施の形態１に係るリセットデータ用バッファの例を示す図。
【図９】実施の形態１に係る代入データ用バッファの例を示す図。
【図１０】実施の形態１に係るリセット用データの例を示す図。
【図１１】実施の形態１に係る代入用データの例を示す図。
【図１２】実施の形態１に係るＡＮＤ演算により得られたデータの例を示す図。
【図１３】実施の形態１に係るＯＲ演算により得られたデータの例を示す図。
【図１４】実施の形態１に係る受信側計算機の動作例を示す図。
【図１５】実施の形態１に係る受信側計算機の動作例を示す図。
【図１６】実施の形態２に係る送信データ保持部が保持するデータのデータ形式の例を示す図。
【図１７】実施の形態２に係る送信データ保持部が保持するＣＤＲデータの例を示す図。
【図１８】実施の形態２に係る差分情報データ群の例を示す図。
【図１９】実施の形態２に係る送信側計算機の動作例を示す図。
【図２０】実施の形態２に係る受信データ保持部が保持する構造体データの例を示す図。
【図２１】実施の形態３に係る通信システムの構成例を示す図。
【図２２】実施の形態３に係る演算子識別テーブルの例を示す図。
【図２３】実施の形態３に係る構造体データの例と構造体情報テーブルの例を示す図。
【図２４】実施の形態３に係る送信対象の構造体データの例を示す図。
【図２５】実施の形態３に係る送信対象のＣＤＲデータの例を示す図。
【図２６】実施の形態３に係る送信データ保持部が保持するＣＤＲデータの例を示す図。
【図２７】実施の形態３に係る送信側計算機の動作例を示す図。
【図２８】実施の形態３に係る被演算データ用バッファの例を示す図。
【図２９】実施の形態３に係る受信側計算機の動作例を示す図。
【図３０】実施の形態３に係る受信側計算機の動作例を示す図。
【図３１】実施の形態３に係る受信側計算機で得られる構造体データの例を示す図。
【図３２】実施の形態１に係る送信側計算機の動作例を示すフローチャート図。
【図３３】実施の形態１に係る受信側計算機の動作例を示すフローチャート図。
【図３４】実施の形態２に係る送信側計算機の動作例を示すフローチャート図。
【図３５】実施の形態２に係る受信側計算機の動作例を示すフローチャート図。
【図３６】実施の形態３に係る送信側計算機の動作例を示すフローチャート図。
【図３７】実施の形態３に係る受信側計算機の動作例を示すフローチャート図。
【図３８】実施の形態１に係る送信側計算機及び受信側計算機のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る通信システムの構成例を示す。
図１に示すように、送信側計算機７と受信側計算機８がネットワーク９で接続されている。
送信側計算機７は差分データを送信し、受信側計算機８は送信側計算機７から送信された差分データを受信し、データを更新する。
送信側計算機７はデータ送信装置の例に相当し、受信側計算機８はデータ受信装置の例に相当する。
ネットワーク９は、送信側計算機７と受信側計算機８を接続する通信路であり、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）である。
送信側計算機７は、機能構成として、送信データ変換部１、差分データ生成部２、送信データ保持部３、制御部１２、通信部１３、記憶部１４を有する。また、受信側計算機８は、機能構成として、受信データ保持部４、データ受信部５、受信データ変換部６、制御部１２、通信部１３、記憶部１４を有する。
各構成要素の詳細は後述する。
【００１１】
図３８は、送信側計算機７及び受信側計算機８のハードウェア構成例を示す。
送信側計算機７及び受信側計算機８は、ともに、ハードウェアとしてプロセッサ、記憶装置及び通信装置を備える。
送信側計算機７の記憶装置には、図１に示す送信データ変換部１、差分データ生成部２、送信データ保持部３及び制御部１２の機能を実現するプログラムが記憶されている。
そして、送信側計算機７のプロセッサがこれらのプログラムを実行して、送信データ変換部１、差分データ生成部２、送信データ保持部３及び制御部１２の動作を行う。
図３８では、プロセッサが、送信データ変換部１、差分データ生成部２、送信データ保持部３及び制御部１２の機能を実現するプログラムを実行している状態を模式的に表している。
また、受信側計算機８の記憶装置には、図１に示す受信データ保持部４、データ受信部５、受信データ変換部６、制御部１２の機能を実現するプログラムが記憶されている。
そして、受信側計算機８のプロセッサがこれらのプログラムを実行して、受信データ保持部４、データ受信部５、受信データ変換部６、制御部１２の動作を行う。
図３８では、プロセッサが、受信データ保持部４、データ受信部５、受信データ変換部６、制御部１２の機能を実現するプログラムを実行している状態を模式的に表している。
プロセッサは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
記憶装置は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
通信装置は、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
また、図１の記憶部１４は記憶装置により実現され、通信装置１３は通信装置により実現される。
【００１２】
次に、図１に示す送信側計算機７の構成要素を説明する。
【００１３】
送信データ変換部１は、構造体データをＣＤＲ（Ｃｏｍｍｏｎ  Ｄａｔａ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）データに変換する。更に、送信データ変換部１は、変換後のＣＤＲデータを送信バッファに格納する。
【００１４】
送信データ保持部３は、送信データ変換部１が作成し、受信側計算機８に送信済のＣＤＲデータ（以下、送信済データという）を保持する。送信データ保持部３は、差分データ生成部２が差分データを作成する際に、送信済データを差分データ生成部２に渡す。本実施の形態では、送信データ保持部３は、直近に送信した送信済データをただ１つ保持している。
なお、送信データ保持部３で保持されている送信済データは、差分データが送信されたＣＤＲデータである。後述するように、送信側計算機７は、最新のＣＤＲデータと前回のＣＤＲデータとの差分を抽出し、抽出した差分を通知する差分データを受信側計算機８に送信しており、最新のＣＤＲデータそのものは送信しない。送信データ保持部３では、差分データが送信された最新のＣＤＲデータが送信済データとして保持される。
後述するように、受信側計算機８は受信データ保持部４において受信済の構造体データ（以下、受信済データという）を保持している。受信済データは、構造体データとＣＤＲデータというデータ形式の違いはあるものの、送信済データと同じデータである（同じ値である）。
【００１５】
差分データ生成部２は、送信データ保持部３が持つ送信済データと、送信対象の最新のＣＤＲデータとの差分を求める。そして、差分データ生成部２は、求めた差分を通知する差分データを通信部１３及びネットワーク９を経由して受信側計算機８のデータ受信部４に送信する。
前述したように、受信データ保持部４で保持されている受信済データと送信データ保持部３で保持されている送信済データは同じデータであるため、この差分データは、受信済データに対する差分データでもある。
受信側計算機８は、ＣＤＲデータから構造体データへの変換が可能である。このため、差分データ生成部２は、差分データをＣＤＲデータで生成しても、受信側計算機８は構造体データを更新することができる。
なお、差分データ生成部２の動作は差分データ生成ステップに相当する。
【００１６】
送信側計算機７の制御部１２は、送信側計算機７の全体の制御を行う。具体的には、制御部１２は、送信データ変換部１、差分データ生成部２、送信データ保持部３、通信部１３及び記憶部１４を御する。
【００１７】
送信側計算機７の通信部１３は、差分データ生成部２により生成された差分データをネットワーク９を介して受信側計算機８に送信する。
送信側計算機７の通信部１３の動作は送信ステップに相当する。
【００１８】
送信側計算機７の記憶部１４は、送信側計算機７で用いられる各種データを記憶する。具体的には、送信側計算機７の記憶部１４は、送信データ変換部１の演算に用いられる値、送信データ変換部１の演算結果を記憶する。また、送信側計算機７の記憶部１４は、差分データ生成部２の演算に用いられる値、差分データ生成部２の演算結果を記憶する。また、送信側計算機７の記憶部１４は、送信バッファとしても機能する。
【００１９】
次に、受信側計算機８の構成要素を説明する。
【００２０】
受信データ保持部４は、受信済データを保持する。本実施の形態では、受信データ保持部４は、直近の受信済データをただ１つ保持している。
受信済データは、差分データから復元された構造体データである。
【００２１】
データ受信部５は、通信部１３を介して差分情報データ群を受信すると、差分情報データ群と受信済データから、最新のデータを再構成するために必要な２つのデータを作成する。
【００２２】
受信データ変換部６は、データ受信部５が作成した２つのデータと受信データ保持部４が持つ受信済データを用いて、送信データ変換部１がＣＤＲ変換する前のデータに復元する。
データ受信部５及び受信データ変換部６は、協働により、通信部１３により受信された差分データを用いて構造体データを更新しており、データ更新部の例に相当する。また、データ受信部５及び受信データ変換部６の動作はデータ更新ステップに相当する。
【００２３】
受信側計算機８の制御部１２は、受信側計算機８の全体の制御を行う。具体的には、制御部１２は、受信データ保持部４、データ受信部５、受信データ変換部６、通信部１３及び記憶部１４を制御する。
【００２４】
受信側計算機８の通信部１３は、ネットワーク９から差分データを受信する。
受信側計算機８の通信部１３の動作は受信ステップに相当する。
【００２５】
受信側計算機８の記憶部１４は、受信側計算機８で用いられる各種データを記憶する。具体的には、受信側計算機８の記憶部１４は、データ受信部５の演算に用いられる値、データ受信部５の演算結果を記憶する。また、受信側計算機８の記憶部１４は、受信データ変換部６の演算に用いられる値、受信データ変換部６の演算結果を記憶する。また、受信側計算機８の記憶部１４は、リセットデータ用バッファ及び代入データ用バッファとしても機能する。
【００２６】
本実施の形態では、送信側計算機７において最新の構造体データをＣＤＲデータに変換し、ＣＤＲデータにおける差分を通知する差分データをＣＤＲデータで生成し、受信側計算機８において差分データを用いて、最新の構造体データを復元する。
送信側計算機７の構造体データと受信側計算機８の構造体データでバージョンが異なっている場合は、送信側計算機７において構造体データで差分を取って、受信側計算機８に構造体データでの差分を通知しても、バージョン違いにより、受信側計算機８でデータを更新することができない。本実施の形態では、このような事情に鑑みて、送信側計算機７で構造体データをＣＤＲデータに変換し、ＣＤＲデータにて差分を受信側計算機８に通知している。
【００２７】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る通信システムおける動作を、例を用いて説明する。
図２は、送信側計算機７でＣＤＲ変換される前の構造体データの形式を示す。
本実施の形態では、送信側計算機７の送信データ変換部１は、図３に示す送信対象の構造体データをＣＤＲデータに変換するものとする。
図４は、送信データ変換部１による変換により得られた、送信対象のＣＤＲデータを示す。
図５（ａ）は、送信データ保持部３で保持されている送信済データ（ＣＤＲデータ）を示す。図５（ｂ）は、受信データ保持部４で保持されている送信済データを示す。図５（ａ）の送信済データと、図５（ｂ）の受信済データは、データ形式が異なるが、データ値は同じである。
【００２８】
送信データ変換部１は、図１に不図示のデータソースから、図３に示す送信対象の構造体データを取得すると、ＣＤＲ変換を行って、図４のＣＤＲデータを送信バッファに配置する。
差分データ生成部２は、図５に示す送信済データを送信データ保持部３から取得し、また、図４に示す送信対象データを送信バッファから取得する。そして、差分データ生成部２は、送信済データと送信対象データを１バイトずつ比較する。
図５と図４の例では、４バイト目の値が０ｘ０１から０ｘ０２に変わり、５バイト目の値が０ｘ６１（文字‘ａ’のアスキーコード）から０ｘ６２（文字‘ｂ’のアスキーコード）に変わっていることがわかる。
差分データ生成部２は、この情報を伝えるための４バイトデータを、異なる１バイトデータが存在するたびに作成する。
以降、この４バイトデータを「差分情報データ」と呼び、差分情報データを組み合わせたものを「差分情報データ群」と呼ぶ。差分情報データ群は、送信対象データと送信済データとの差分を通知する差分データである。換言すると、差分情報データは、受信データ保持部４で保持されている構造データにおける更新位置と更新値とを通知する。
４バイトの差分情報データのうち先頭２バイトに、異なる１バイトデータが位置する先頭アドレスからのオフセットを格納し、１バイト空けて、最後の１バイトに、新規に送信する値を格納する。
本例の場合、差分データ生成部は、４バイト目の値が異なることを示す差分情報データとして、０ｘ００、０ｘ０４、０ｘ００、０ｘ０２を作成し、５バイト目の値が異なることを示す差分情報データとして、０ｘ００、０ｘ０５、０ｘ００、０ｘ６２を作成する。
図６は、差分データ生成部２が作成した差分情報データ群を示す。
その後、差分データ生成部２は、通信部１３及びネットワーク９を介して、差分情報データ群を受信側計算機８に送信する。
【００２９】
送信側計算機７での一連の動作を示した概念図が図７である。
【００３０】
受信側計算機８では、通信部１３を介してデータ受信部５が差分情報データ群を受信する。
データ受信部５は、差分情報データ群を受信すると、図３の構造体データに復元するために、２つのバッファを用意する。
この２つのバッファを、リセットデータ用バッファ、代入データ用バッファという。
データ受信部５は、まず、リセットデータ用バッファの全てのバイトのデータを０ｘｆｆとし、次に、差分情報データ群のデータを、差分情報データを単位として読み出す。
本例では、まず、最初の差分情報データの先頭２バイトが０ｘ００、０ｘ０４であることから、データ受信部５は、リセットデータ用バッファの４バイト目のデータを０ｘ００とする。同様に、２つ目の差分情報データの先頭２バイトのデータが０ｘ００、０ｘ０５であることから、リセットデータ用バッファの５バイト目のデータを０ｘ００とする。本操作後のリセットデータ用バッファの状態は図８のようになる。
次に、データ受信部５は、代入データ用バッファの全てのバイトのデータを０ｘ００とし、次に差分情報データ群のデータを、差分情報データを単位として読み出す。本例では、まず、最初の差分情報データの先頭２バイトが０ｘ００、０ｘ０４、４バイト目が０ｘ０２であることから、データ受信部５は、代入データ用バッファの４バイト目のデータを０ｘ０２とする。同様に、２つ目の差分情報データの先頭２バイトのデータが０ｘ００、０ｘ０５、４バイト目のデータ０ｘ６２であることから、リセットデータ用バッファの５バイト目のデータを０ｘ６２とする。本操作後の代入データ用バッファの状態は図９のようになる。
そして、データ受信部５は、リセットデータ用バッファ、代入データ用バッファを受信データ変換部６に渡す。
【００３１】
受信データ変換部６は、この２つのバッファを受け取ると、図２に示す構造体のデータとしてデータを復元する。図８に示すリセットデータ用バッファを図２の構造体に復元すると、図１０のデータとなる。本データをリセット用データと呼ぶ。また、図９に示す代入データ用バッファを図２の構造体に復元すると、図１１のデータとなる。本データを代入用データと呼ぶ。
受信データ変換部６は、受信データ保持部４が保持する受信済データを取得し、受信済データとリセット用データとの間で、各構造体のメンバを単位としてＡＮＤ演算を行う。ＡＮＤ演算の結果得られたデータが図１２となる。更に、受信データ変換部６は、図１２のデータと図１１のデータとの間で、各構造体のメンバを単位としてＯＲ演算を行う。その結果得られたデータが図１３となり、このデータは送信側計算機７が送信しようとしていたデータ（図３）に一致する。
このように、受信データ変換部６は、差分情報データ群で通知された更新位置と更新値とを用いて、受信データ保持部４で保持されている構造体データを更新する。
【００３２】
受信側計算機８での一連の動作を示した概念図が図１４、図１５である。
図１４では、データ受信部５がリセットデータ用バッファ、代入用バッファにデータを格納し、リセット用データ、代入用データを作成する処理を示している。一方、図１５は、リセット用データと代入用データを使用して送信側計算機７からのデータ（図３）を復元する処理を示している。
【００３３】
次に、本実施の形態における、送信側計算機７での動作例を図３２のフローチャートで説明する。
図３２に示す動作手順がデータ送信方法及びデータ送信プログラムの例に相当する。
【００３４】
ステップＳ１で、送信データ変換部１は、送信データをＣＤＲ変換し、ＣＤＲデータを差分データ生成部２に渡す。
ステップＳ２で、差分データ生成部２は、送信データ保持部３が持つ、送信済データを取得する。
ステップＳ４で、差分データ生成部２は、ＣＤＲ変換後のデータと、送信データ保持部３から受け取った送信済データを、先頭からの同一オフセットの１バイトデータを比較する。
値が異なった場合、ステップＳ６で、差分データ生成部２は、差分情報データを作成し、差分情報データ群に追加する。差分データ生成部２は、ステップＳ４からステップＳ６の処理を、ＣＤＲ変換後の全てのデータについて行う。全てのデータについて行った後、ステップＳ７に進む。
ステップＳ７では、差分データ生成部２は、差分情報データ群を通信部１３を介してデータ受信部５に送る。
【００３５】
次に、本実施の形態における、ステップＳ７で差分データ生成部２がデータ受信部５にデータを送信した後の受信側計算機８における動作を、図３３のフローチャートで説明する。
図３３に示す動作手順がデータ受信方法及びデータ受信プログラムの例に相当する。
【００３６】
ステップＳ８で、データ受信部５は差分データ生成部２からの差分情報データ群を待ち、差分情報データ群を受け取ると、ステップＳ９で、データ受信部５は、代入データ用バッファを用意し、代入データ用バッファの全データを０ｘ００とする。
ステップＳ１１で、データ受信部５は、差分情報データ群から差分情報データを読み出し、差分情報データに書かれているオフセットの１バイトの値を、差分情報データの値とする。これを、差分情報データ群にある全ての差分情報データについて行う。
ステップＳ１２で、データ受信部５は、リセットデータ用バッファを用意し、リセットデータ用バッファの全データを０ｘｆｆとする。
ステップＳ１４で、データ受信部５は、差分情報データ群から差分情報データを読み出し、差分情報データに書かれているオフセットの１バイトの値を０とする。これを、差分情報データ群にある全ての差分情報データについて行う。
ステップＳ１５で、データ受信部５は、受信データ変換部６に、代入データ用バッファ、リセットデータ用バッファを渡す。
ステップＳ１６で、受信データ変換部６は、代入データ用バッファ、受信データ用バッファからそれぞれ代入用データ、リセット用データを作成する。
ステップＳ１７で、受信データ変換部６は、受信データ保持部４から、受信済データを取得し、構造体の各メンバについて、リセット用データと受信済データとのＡＮＤ演算、ＡＮＤ演算結果と代入用データとのＯＲ演算を行い、送信データを復元する。
【００３７】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、送信側計算機がＣＤＲ変換済のデータを持ち、受信側計算機が構造体データを保持している場合において、全ての構造体データを送ると１６バイトのデータ送信が必要であるが、差分データを送る場合には８バイトで済むことから、受信側計算機において、より少ないデータで送信データを復元、取得することができる。
また、送信側、受信側で保持しているデータフォーマットが異なっていても、保持しているデータを変更することなく送信データの値に復元することができる。
【００３８】
実施の形態２．
実施の形態１では、送信データ保持部、受信データ保持部でそれぞれ１つのデータのみを保持している場合において差分データを作成する例を説明した。
本実施の形態では、送信データ保持部、受信データ保持部がそれぞれ複数のデータを保持している場合において、差分データを作成する例を説明する。
なお、本実施の形態では、送信データ保持部と受信データ保持部が同一データを複数保持していることを前提とする。
以下では、主に実施の形態１との差異を説明する。以下で説明していない事項は実施の形態１と同じである。
【００３９】
＊＊＊構成の説明＊＊＊
本実施の形態に係る通信システムの構成例は、図１に示す通りである。また、送信側計算機７の機能構成例及び受信側計算機８の機能構成例も図１に示す通りある。更に、送信側計算機７のハードウェア構成例及び受信側計算機８のハードウェア構成例も図３８に示す通りである。
本実施の形態では、送信データ保持部３が保持するデータには、データを一意に判別するためのシーケンス番号が付与されているものとする。
本実施の形態において、送信データ保持部３が保持するデータの形式を図１６に示す。図中、上段の四角い枠で囲まれたデータ０ｘ００、０ｘ００、０ｘ００、０ｘ０９は当該データのシーケンス番号を示したものであり、本例のデータは９番目のデータを意味しているものとする。図中、下段の四角い枠で囲まれたデータは、元の構造体データをＣＤＲ変換したものである。
【００４０】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る通信システムおける動作を、例を用いて説明する。
本実施の形態でも、図２に示す形式の構造体データをＣＤＲ変換した後のＣＤＲデータの差分データを送信側計算機７から受信側計算機８に送信するものとする。
なお、本実施の形態では、送信データ保持部３は、送信済データとして図１７に示すＣＤＲデータを保持しているものとする。図１７の例では、左から順に、シーケンス番号７、８、９の送信済データを保持していることを意味する。
本例においても、送信側計算機７は、図３に示すデータを送信しようとしているものとする。実施の形態１と同様、送信データ変換部１は図３に示すデータをＣＤＲの形式に変換して図４のＣＤＲデータを生成し、図４のＣＤＲデータを送信バッファに配置する
差分データ生成部２は、送信データ保持部３が持つ全ての送信済データを取得する。本例では、図１７に示す３つのデータを取得することとする。
本実施の形態では、実施の形態１と異なり、差分データ生成部２は、取得した全てのデータについて図４に示すデータと１バイトずつ比較し、差分情報データ群を作成する。
本例における差分情報データ群を図１８に示す。図１８の左端がシーケンス番号７番のデータと図４のデータを比較した際の差分情報データ群である。図１８の中央がシーケンス番号８番のデータと図４のデータを比較した際の差分情報データ群である。図１８の右端が、シーケンス番号９番のデータと図４のデータを比較した際の差分情報データ群となる。図１８の例では、シーケンス番号９番と比較した場合の差分情報データ（右端）が最もデータサイズが小さいことがわかる。
差分データ生成部２は、送信済データをシーケンス番号９番と比較して得られた差分情報データ群をデータ受信部５に送信する。
以上の送信側計算機での一連の動作を示した概念図が図１９である。
【００４１】
データ受信部５は、差分情報データ群を受信すると、受信データ変換部６は、実施の形態１と同一の方法でリセット用データ、代入用データを作成する。そして、受信データ変換部６は、差分情報データ群の先頭４バイトにあったシーケンス番号の構造体データを受信データ保持部４から取得する。前述のように、受信データ保持部４は送信データ保持部３が持つデータを構造体の形式に変換した受信済データ保持しており、本実施の形態ではシーケンス番号７、８、９のデータを構造体データで保持している。
受信データ保持部４が保持している受信済データを図２０に示す。本実施の形態では、受信データ保持部４は図２０中の最下段の受信済データを受信データ変換部６に渡す。
受信データ変換部６は、受信データ保持部４から取得した、差分情報データ群のシーケンス番号に一致する受信済データに対して、リセット用データとの間で、各構造体のメンバを単位としてＡＮＤ演算を行う。そして、ＡＮＤ演算を行った結果得られたデータと、代入用データとの間で、各構造体のメンバを単位としてＯＲ演算を行うことにより、送信側計算機７が送信したデータを復元することができる。
【００４２】
次に、本実施の形態における、送信側計算機７での動作例を図３４のフローチャートで説明する。
【００４３】
ステップＳ１０１で、送信データ変換部１は、送信データをＣＤＲ変換し、ＣＤＲデータを差分データ生成部２に渡す。
ステップＳ１０２で、差分データ生成部２は、送信データ保持部３が持つ、全ての送信済データを取得する。
ステップＳ１０４で、差分データ生成部２は、送信済データの１つについて、図３２のＳ３〜Ｓ６を行う。また、ステップＳ１０４を、全ての送信済データについて行う。
ステップＳ１０５で、差分データ生成部２は、各送信済データの差分情報データ群で、最もサイズの小さい差分情報データ群をデータ受信部５に送信する。
【００４４】
次に、本実施の形態における、受信側計算機８での動作例を図３５のフローチャートで説明する。
【００４５】
ステップＳ１０６で、図３３のＳ９〜Ｓ１６を行う。
ステップＳ１０７で、受信データ変換部６は、受信した差分情報データ群に示されているシーケンス番号のデータを、受信データ保持部４から取得し、構造体の各メンバに対し、リセット用データとのＡＮＤ演算、代入用データとのＯＲ演算を行い、送信データを復元する。
【００４６】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、複数の送信済データ、受信済データを送信データ保持部、受信データ保持部が保持していた場合、保持しているデータの中から最もデータの差分が小さくなるデータから差分情報データを作成する。これにより、実施の形態１と比べてより小さい差分情報データで送信データの復元が可能となる。
なお、本実施の形態では、送信データ保持部３、受信データ保持部４がそれぞれ同一のデータを保持している例について示しているが、例えば、事前に受信データ保持部４が保持可能なデータ数と送信データ保持部３が保持可能なデータ数が異なる場合、事前に受信データ保持部４が保持可能なデータ数を送ることにより、受信データ保持部４が保持しているデータの中で最も差分情報データ群のデータサイズが小さいデータについて、差分情報データ群を送ることができる。
【００４７】
実施の形態３．
実施の形態１及び２では、１バイトずつ値を比較し、異なるデータのオフセットとその値を送信している。
本実施の形態では、受信側計算機で、受信データ保持部が保持しているデータとの間で何らかの演算を行うことにより送信データを復元できる場合において、その演算方法と、被演算データを送信することにより、送信データを復元する方式を説明する。
本実施の形態では、送信データ保持部及び受信データ保持部はそれぞれ最新の送信済データ、受信済データを保持することとする。
以下では、主に実施の形態１との差異を説明する。以下で説明していない事項は実施の形態１と同じである。
【００４８】
＊＊＊構成の説明＊＊＊
実施の形態３に係る通信システムの構成例を図２１に示す。
本実施の形態では、送信側計算機７、受信側計算機８の双方に演算子識別テーブル１０、構造体情報テーブル１１を追加している。
演算子識別テーブル１０、構造体情報テーブル１１以外の構成要素は、図１に示したものと同じであるので、説明を省略する。
また、本実施の形態に係る送信側計算機７のハードウェア構成例、受信側計算機８のハードウェア構成例は図３８に示したものと同じであるため、説明を省略する。
【００４９】
演算子識別テーブル１０の構成例を図２２に示す。図２２では演算内容として加減乗除のみを示しているが、０ｘ００〜０ｘｆｆの２５６通りの演算を定義することができる。
構造体情報テーブル１１の例を図２３に示す。構造体情報テーブル１１は、構造体の各メンバのデータサイズ及び、配列の要素数を格納している。メンバが配列でない場合には、１を記載する。
【００５０】
＊＊＊動作の説明＊＊＊
次に、本実施の形態における動作について、例を用いて説明する。
本実施の形態でも、図２に示す形式の構造体データをＣＤＲ変換した後のＣＤＲデータの差分データを送信側計算機７から受信側計算機８に送信するものとする。
なお、本実施の形態では、送信側計算機７が送信するデータを図２４とする。
送信データ変換部１は、図２４に示すデータをＣＤＲの形式に変換して図２５のＣＤＲデータを生成し、図２５のＣＤＲデータを送信バッファに配置する。
また、送信データ保持部３は、送信済データとして図２６に示すデータを保持しているものとする。
差分データ生成部２は、図２５に示すデータを送信バッファから取得するとともに、図２６に示す送信済データを送信データ保持部３から取得し、データの比較を行う。
本実施の形態では、データの比較は、構造体情報テーブル１１のエントリを最初のエントリから順に参照し、メンバのサイズが１の場合は実施の形態１と同一の方法で、１より大きい場合には、テーブルのエントリに示されているサイズ分だけまとめて比較する。本例の場合は、最初のエントリが４であることから、図２５のデータの先頭から４バイト０ｘ０００００１００と図２６のデータの先頭から４バイト０ｘ００００００ｆｆを４バイトの数値として比較する。比較方法として、演算子識別テーブル１０の０ｘ０１〜０ｘｆｆに定義されている演算方法を順に試す。本例では、差分データ生成部２は、まず、演算子識別テーブル１０の０ｘ０１を参照し、０ｘ００００００ｆｆに何らかの１バイトの値を加算した場合に０ｘ０００００１００になるかどうかを調査する。本例の場合、０ｘ００００００ｆｆに０ｘ０１を加算することにより０ｘ０００００１００になる。差分データ生成部２は、このように、１バイトの値を被演算データとして演算子識別テーブル１０に示した演算を行うことにより比較したデータが一致する場合、差分情報データを作成する。
本実施の形態では、最初の２バイトに、比較を行った構造体情報テーブル１１のエントリ番号、次の１バイトに演算子識別テーブル１０で、２つのデータが一致する演算の番号、最後の１バイトに、データが一致するための被演算データを格納する。本例の場合は、最初のエントリについて、０ｘ０１を加算することにより一致することから、最初の４バイトのデータに対する差分情報データは０ｘ０００１０１０１となる。そして、差分データ生成部２は、ＣＤＲ変換後の送信データのバッファのポインタと送信データ保持部３が持つデータのバッファのポインタを４バイトずらす。そして、差分データ生成部２は、構造体情報テーブル１１の次のエントリを参照し、次のエントリの値は１であることから、実施の形態１の手法で比較を行う。そして、ＣＤＲ変換後の送信データのバッファのポインタと送信データ保持部が持つデータのバッファのポインタを、構造体情報テーブル１１の参照エントリの値である１バイトに加えてＣＤＲの変換ルールに従い３バイトスキップし、さらに構造体情報テーブル１１の次のエントリを参照する。次のエントリの値は４であることから、差分データ生成部２は、４バイトデータを比較する。本例では同一のデータであることから何もせず、ＣＤＲ変換後の送信データのバッファのポインタと送信データ保持部３が持つデータのバッファのポインタを４バイトずらす。そして、構造体情報テーブル１１の最後の値が２であることから、差分データ生成部２は、２バイトを比較する。ここでは、送信データが０ｘｆｆｆｅ、送信データ保持部３が持つデータが０ｘｆｆｆｆであることから、演算子識別テーブル１０の０ｘ０１〜０ｘｆｆに定義されている演算方法を順に試す。本例では、０ｘｆｆｆｆから１を引くことにより０ｘｆｆｆｅになる。そこで、差分データ生成部２は差分情報データを作成する。ここでは、構造体情報テーブル１１の４番目のエントリについて、０ｘ０１を減算することにより、送信データが得られることから、差分情報データは、０ｘ０００４０２０１となる。差分データ生成部２は、この値と、前に求めた０ｘ０００１０１０１をセットにして差分情報データ群を作成し、受信データ処理部５に送る。
このように、本実施の形態では、差分データ生成部２は、受信側計算機８が保持している構造体データにおける更新位置と更新値を得るための演算方法と被演算値とを通知する差分情報データ群を生成し、受信側計算機８に送信する。
なお、ここまでの処理概要を図２７に示す。
【００５１】
データ受信部５は、差分情報データ群を受信すると、被演算データバッファを用意し、当該バッファにデータを書き込む。
データ受信部５は、まず被演算データバッファの全バイトを０ｘ００とする。次に、データ受信部５は、差分情報データを単位として読み出し、構造体情報テーブルを参照しながら、被演算データを作成する。本例では、まず１つ目の差分情報データ０ｘ０００１０１０１を参照し、最初の２バイト０ｘ０００１から、当該差分情報データの情報が１つめの構造体データの値であることを認識し、３バイト目を参照することにより演算種別が加算、４バイト目を被演算データが１であることを認識する。データ受信部５は、被演算データを格納するためのバッファを用意し、先頭４バイトに０ｘ０００００００１を格納する。そして、次の差分情報データを参照すると、最初の２バイト０ｘ０００４から、２番目、３番目の構造体メンバをスキップしたことから、そのメンバ分だけＣＤＲのルールに従って、バッファの被演算データの書き込み位置をスキップする。この場合、２番目のデータが１バイトであり、３番目のデータが４バイトであることから、８バイトスキップする。そして、差分情報データの次の１バイトが２であることから、データ受信部５は、演算データが減算であることを認識し、最後の１バイトが１であることから、被演算データが１であることを認識する。そして、構造体データが２バイトであることから、バッファの位置から２バイトデータ：０ｘ０００１を書き込む。データ受信部５が作成した被演算データ用バッファは図２８のようになる。
受信データ変換部６は、被演算データ用バッファを受け取り、図２に示す構造体のデータとしてデータを復元する。図２８に示すバッファのデータを復元すると、図２９のデータとなる。本データを被演算データとする。
受信データ変換部６は、受信データ保持部４が保持するデータを取得し、被演算データの各構成要素との間で演算を行う。差分情報データ群には、１つ目の構造体メンバに対しては加算、４つ目の構造体メンバに対しては減算を示していたことから、受信データ保持部４が保持するデータの１つ目のメンバであるｉｎｔ＿ｄａｔａ１の値を１加算し、４つ目のメンバであるｓｈｏｒｔ＿ｄａｔａのデータを１減らす。
データ受信部５が差分情報データ群を受け取ってからの一連の処理を示した概念図を図２９、図３０に示す。また、これによって得られた値は図３１となり、送信側計算機７で送ろうとしたデータに一致する。
【００５２】
次に、本実施の形態における送信側計算機７での動作例を図３６のフローチャートで説明する。
【００５３】
ステップＳ２０１で、図３２のステップＳ１を行い、ステップＳ２０２で、図３２のステップＳ２を行い、ステップＳ２０３で、図３２のステップＳ３を行う。
ステップＳ２０４で、差分データ生成部２は、ＣＤＲ変換後のデータと送信データ保持部３から受け取ったデータの、同一オフセットのデータを、構造体情報テーブルの、Ｓ２０９で示されているエントリに示されているサイズ数分だけ比較する。値が異なる場合は、差分データ生成部２は、当該サイズのデータが一致するような演算方法と被演算データを求める。そのような演算方法、被演算データがあれば、差分データ生成部２は、ステップＳ２０８で、差分情報データを作成し、差分情報データ群にマージする。
ステップＳ２０９で、差分データ生成部２は、構造体情報テーブルの、ステップＳ２０９で示されているエントリに示されているバイト数だけＣＤＲ変換後のデータと送信データ保持部３のデータのポインタのオフセットをずらすととともに、ＣＤＲのルールに従ってポインタのオフセットをずらす。
ステップＳ２１０で、差分データ生成部２は、次のＳ２０８の処理で、構造体情報テーブルの次のエントリを参照するよう、参照エントリを変更し、全てのデータについて比較が終わった場合は、ステップＳ２１１に進む。
ステップＳ２１１で、差分データ生成部２は、差分情報データ群を、データ受信部５に送信する。
なお、ステップＳ２０７において、どのように計算をしても、送信済データがＣＤＲ変換後のデータにならない場合には、実施の形態１の手法で差分情報データを作成する。
【００５４】
次に、本実施の形態における受信側計算機での動作例を図３７のフローチャートで説明する。
【００５５】
ステップＳ２１２で、図３３のステップＳ８〜Ｓ１６を行う。
ステップＳ２１３で、受信データ変換部６は、受信データ保持部４からデータを取得し、構造体の各メンバに対し、差分情報データ群に示された演算方法及び被演算データで、送信データを求める。
つまり、受信データ変換部６は、差分情報データ群で通知された更新位置と演算方法と被演算値とを用いて、構造体データを更新する。
【００５６】
＊＊＊実施の形態の効果の説明＊＊＊
このように、本実施の形態では、実施の形態１及び実施の形態２で１バイト単位でデータを比較した場合と比べ、より小さいサイズで差分情報データ群を作成することができる。
【００５７】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
＊＊＊ハードウェア構成の説明＊＊＊
最後に、図３８に示すハードウェア構成の補足説明を行う。
図３８の記憶装置には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサにより実行される。
プロセッサがＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
図３８では、送信側計算機７及び受信側計算機８において１つのプロセッサが図示されているが、送信側計算機７及び受信側計算機８は複数のプロセッサを備えていてもよい。
また、送信データ変換部１、差分データ生成部２、送信データ保持部３、受信データ保持部４、データ受信部５、受信データ変換部６、処理部１２の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
また、送信側計算機７及び受信側計算機８は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００５８】
１  送信データ変換部、２  差分データ生成部、３  送信データ保持部、４  受信データ保持部、５  データ受信部、６  受信データ変換部、７  送信側計算機、８  受信側計算機、９  ネットワーク、１０  演算子識別テーブル、１１  構造体情報テーブル、１２  制御部、１３  通信部、１４  記憶部。
【図１】
2017146659.tif 000003
【図２】
2017146659.tif 000004
【図３】
2017146659.tif 000005
【図４】
2017146659.tif 000006
【図５】
2017146659.tif 000007
【図６】
2017146659.tif 000008
【図７】
2017146659.tif 000009
【図８】
2017146659.tif 000010
【図９】
2017146659.tif 000011
【図１０】
2017146659.tif 000012
【図１１】
2017146659.tif 000013
【図１２】
2017146659.tif 000014
【図１３】
2017146659.tif 000015
【図１４】
2017146659.tif 000016
【図１５】
2017146659.tif 000017
【図１６】
2017146659.tif 000018
【図１７】
2017146659.tif 000019
【図１８】
2017146659.tif 000020
【図１９】
2017146659.tif 000021
【図２０】
2017146659.tif 000022
【図２１】
2017146659.tif 000023
【図２２】
2017146659.tif 000024
【図２３】
2017146659.tif 000025
【図２４】
2017146659.tif 000026
【図２５】
2017146659.tif 000027
【図２６】
2017146659.tif 000028
【図２７】
2017146659.tif 000029
【図２８】
2017146659.tif 000030
【図２９】
2017146659.tif 000031
【図３０】
2017146659.tif 000032
【図３１】
2017146659.tif 000033
【図３２】
2017146659.tif 000034
【図３３】
2017146659.tif 000035
【図３４】
2017146659.tif 000036
【図３５】
2017146659.tif 000037
【図３６】
2017146659.tif 000038
【図３７】
2017146659.tif 000039
【図３８】
2017146659.tif 000040