(57)【要約】【課題】  データ形式の異なる装置間の通信において、受信側の装置フロー制御上の理由により一時的に受信可能でなくなった場合の、データ変換時間を含めた通信時間の長期化を抑制する。【解決手段】  データを他の通信装置のデータ形式に変換するデータ変換手段と、他の通信装置にデータを送信した後、他の通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）受信可能通知を受信しないとデータ変換手段により変換された次データを、他の通信装置に送信するデータ通信手段と、を備える通信装置。【選択図】      図１
2018085638.tif 000002
【特許請求の範囲】
【請求項１】
データを他の通信装置のデータ形式に変換するデータ変換手段と、
前記他の通信装置にデータを送信した後、前記他の通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないと、前記データ変換手段により変換された前記次データを、前記他の通信装置に送信するデータ通信手段と、を備える通信装置
【請求項２】
前記他の通信装置の前記データ形式を格納するデータ形式記憶手段と、
前記データ形式記憶手段を参照して、自装置と前記他の通信装置の前記データ形式が一致するか判定し、一致しないと前記他の通信装置の前記データ形式を出力するデータ変換判断手段と、をさらに備え、
前記データ変換手段は、前記次データを、前記データ変換判断手段が出力した前記データ形式に変換し、
前記データ通信手段は、前記受信可能通知を受信せず、かつ、前記データ変換判断手段が、前記データ形式が一致しないと判断すると、前記データ変換手段により変換された前記次データを送信する、請求項１の通信装置。
【請求項３】
前記他の通信装置からデータ形式情報を取得し、前記データ形式記憶手段に格納するデータ形式採取手段を、さらに備える、請求項２の通信装置。
【請求項４】
前記データ形式が前記通信装置と異なる前記他の通信装置と、
請求項１乃至３の何れか一項の通信装置を、を包含する通信システム。
【請求項５】
通信装置にデータを送信した後、前記通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないとデータを前記通信装置のデータ形式に変換して、変換された前記次データを、前記通信装置に送信するデータ通信方法。
【請求項６】
前記通信装置の前記データ形式を予め記憶し、
記憶した前記データ形式を参照して、前記データ通信方法を実行した装置と前記通信装置の前記データ形式が一致するか判定し、一致しないと前記通信装置の前記データ形式を出力し、
前記受信可能通知を受信せず、かつ、前記データ形式が一致しないとき、前記次データを出力された前記データ形式に変換し、変換された前記次データを送信する、請求項５の通信方法。
【請求項７】
前記通信装置から前記データ形式を取得して予め記憶する、請求項６の通信方法。
【請求項８】
データを、通信相手となる通信装置のデータ形式に変換するデータ変換処理と、
前記通信装置にデータを送信した後、前記通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないと前記データ変換処理により変換された前記次データを、前記通信装置に送信するデータ通信処理と、をコンピュータに実行させる通信プログラム
【請求項９】
前記通信装置の前記データ形式を予め記憶するデータ形式記憶処理と、
記憶した前記データ形式を参照して、自装置と前記通信装置の前記データ形式が一致するかを判定し、一致しないと前記通信装置の前記データ形式を出力するデータ変換判断処理と、をさらにコンピュータに実行させ、
前記データ変換処理において、前記次データを、前記データ変換判断処理で出力した前記データ形式に変換し、
前記データ通信処理において、前記受信可能通知を受信せず、かつ、前記データ形式が一致しないと判断すると、前記データ変換処理により変換された前記次データを送信する処理をコンピュータに実行させる、請求項８の通信プログラム。
【請求項１０】
前記通信装置からデータ形式情報を取得して記憶するデータ形式採取処理をコンピュータに実行させる、請求項９の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、通信方法、および、通信プログラム、特に、データ形式の異なる通信装置間の通信に関する。
【背景技術】
【０００２】
特許文献１は、エンディアン形式が混在する複数の計算機による通信システムにおいて、１対１通信の場合、送信側の計算機が、受信側の計算機のエンディアンに合わせて送信データを変換する計算機を開示する。
【０００３】
特許文献２は、エンディアン形式が混在する通信システムにおいて、受信側と送信側のデータ変換能力を比較し、変換能力の高い側の装置が相手装置のエンディアンに合わせて送信データを変換する伝送データ変換装置を開示する。
【０００４】
特許文献３は、エンディアン形式が混在するネットワークシステムで、同報通信に使用するエンディアン形式を、同報通信グループ内の各端末の重みづけに従って決定する端末を開示する。この重みは、各端末プロセッサ性能値（ＭＩＰＳ値）（Million Instruction Per Second）等であり、この端末は、同報グループ内の低い重みづけの端末のエンディアン形式を同報通信に用いる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０-３２７２１０号公報
【特許文献２】特開２０００-２７６４２４号公報
【特許文献３】特開特開平１１-３２８０４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されているように、送信側装置で受信側装置のエンディアン形式に合わせて送信データを変換する場合、以下に説明する問題が発生する。
【０００７】
図８は、分散並列システムにおいて、ノード１が通信データを、ノード２、ノード３、ノード４にそれぞれ送信する例を示した図である。
【０００８】
図９は、図８の分散並列システムで送受信される通信データの詳細を示した図である。ノード１は、ａ）ノード２には、図９のノード２用の通信データを送信し、ｂ）ノード３には、図９のノード３用の通信データを送信し、というように個々のノードに対して別の通信データを送信する。
【０００９】
図８の分散並列システムで送信側であるノード１でのみデータ変換を行った場合（図８のａ））、ノード１は、ノード２への通信データのデータ変換を行ってから、ノード２へのデータ転送を実施する。次にノード１は、ノード３への通信データのデータ変換を行ってから、ノード３へのデータ転送を実施する。
【００１０】
このように、ノード１は、ノード２からノード４に対してデータ変換（図８ａ）の黒塗り部）とデータ通信（図８ａ）の白抜き部）を交互に繰り返す。この場合、受信側であるノード２からノード４において通信待ち時間（図８ａ）のハッチング部）が発生することになる。
【００１１】
その結果として、データ変換を送信側で実施した場合、データ変換、データ転送、待ち時間を含めたデータ通信時間が長くなる。
【００１２】
一方、受信側のノード２からノード４がデータ変換を行った場合、ノード１は、データ通信のみを行う（図８のｂ））。受信側のノード２からノード４の各々が、データ変換を実施する（図８ｂ）の黒塗り部）。
【００１３】
ノード１はデータ転送のみを行うため、受信側のノード２からノード４において、通信待ちはほとんど発生せず、各ノードのデータ変換が並列して実施可能である。
【００１４】
その結果として、データ変換を受信側で実施した場合のデータ変換、データ転送を含めたデータ通信時間は、送信側でデータ変換を実施する場合に比べて短くなる（図８のｃ）の矢印）。
【００１５】
従って、データ変換を受信側で実施することが有利であるが、そうでない場合も発生することがある。以下は、この問題の説明である。
【００１６】
図１０は、送信側のノード１から受信側のノード２に対する１対１通信の例を示す。１対１通信の場合、理想的なパターン（図１０のａ））では、データ通信時間は、データ転送時間（図１０ａ）白抜き部）とデータ変換にかかった時間（図１０ａ）黒塗り部）の合計時間となる。
【００１７】
しかし、受信側のノード２が、通信バッファ満杯等のフロー制御上の理由により一時的に受信可能でない場合（図１０のｂ）の黒矢印）、送信側のノード１はデータ送信を待ち合わせる（図１０ｂ）のハッチング部）。
【００１８】
このようなケースにおいて、受信側のノード２がデータ変換を実施する（図１０ｂ）の黒塗り部）と、データ通信時間が増加してしまう（図１０ｃ））。データ通信時間が、データ転送時間（図１０ｂ）の白抜き部）とデータ変換（図１０ｂ）の黒塗り部）にかかった時間に、通信待ち合わせ時間（図１０ｂ）のハッチング部）が加わったものとなってしまうからである。
【００１９】
本発明は上記課題を解決し、データ形式の異なる装置間の通信において、受信側の端末装置がフロー制御上の理由により一時的に受信可能でなくなった場合の、データ変換時間を含めた通信時間の長期化を抑制できる通信装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の１実施の形態の通信装置は、データを他の通信装置のデータ形式に変換するデータ変換手段と、前記他の通信装置にデータを送信した後、前記他の通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないと、前記データ変換手段により変換された前記次データを、前記他の通信装置に送信するデータ通信手段と、を備える。
【００２１】
本発明の１実施の形態の通信方法は、通信装置にデータを送信した後、前記通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないとデータを前記通信装置のデータ形式に変換して、変換された前記次データを、前記通信装置に送信する。
【００２２】
本発明の１実施の形態の通信プログラムは、データを、通信相手となる通信装置のデータ形式に変換するデータ変換処理と、前記通信装置にデータを送信した後、前記通信装置から、ａ）フロー制御に基づく受信可能通知を受信すると次データを、ｂ）前記受信可能通知を受信しないと前記データ変換処理により変換された前記次データを、前記通信装置に送信するデータ通信処理と、をコンピュータに実行させる。
【発明の効果】
【００２３】
本発明にかかる通信装置は、データ形式の異なる装置間の通信において、受信側の通信装置がフロー制御上の理由により一時的に受信可能でなくなった場合の、データ変換時間を含めた通信時間の長期化を抑制できる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の第１の実施の形態にかかる通信システム３００の構成図である。
【図２】図２は、データ形式記憶部１３０に格納されるデータ形式情報１３１の構成図である。
【図３】図３は、通信データ１１１の構成図である。
【図４】図４は、通信装置１００における送信処理の動作を示すフローチャートである。
【図５】図５は、通信装置１００における受信処理の動作を示すフローチャートである。
【図６】図６は、コンピュータ装置６００の構成図である。
【図７】図７は、本発明の第２の実施の形態にかかる通信装置１００の構成図である。
【図８】図８は、分散並列システムにおいて、ノード１が通信データを、ノード２、ノード３、ノード４にそれぞれ送信する例を示した図である。
【図９】図９は、図８の分散並列システムで送受信される通信データの詳細を示した図である。
【図１０】図１０は、送信側のノード１から受信側のノード２に対する１対１通信の例を示す。
【発明を実施するための形態】
【００２５】
＜第１の実施の形態＞
＜構成＞
次に、本発明の第１の実施の形態の構成について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態にかかる通信システム３００の構成図である。
【００２６】
通信システム３００は、ネットワーク２４０に接続された複数の通信装置１００を包含する。通信システム３００内において、複数の通信装置１００のデータ形式は、統一されていない。すなわち、通信システム３００内には、データ形式が異なる通信装置１００が混在する。
【００２７】
ここで、データ形式は、例えば、エンディアン形式、文字コード体系である。エンディアン形式は、ビックエンディアンかリトルエンディアンである。
【００２８】
各通信装置１００は、データ形式採取部１２０と、データ形式記憶部１３０と、データ変換判断部１４０と、データ変換部１５０と、データ通信部１６０とを備える。
【００２９】
データ形式採取部１２０は、通信システム３００内に存在する他の通信装置１００のデータ形式を採取して、後述するデータ形式情報１３１を作成して、データ形式記憶部１３０に格納する。
【００３０】
データ変換判断部１４０は、指定された通信装置１００との通信において通信データ１１１のデータ形式変換が必要か否かを判断する。データ変換判断部１４０は、この判断を、データ形式情報１３１を参照して、両通信装置１００のデータ形式が一致するか否かを判断することにより行う。一致すれば、データ形式変換は不要である。
【００３１】
データ変換部１５０は、入力された通信データ１１１のデータ形式変換を行う。データ通信部１６０は、相手の通信装置１００との間で、通信データ１１１の送受信を行う。
【００３２】
通信データ１１１のデータ形式の変換は、送信時に行われる場合と、受信時に行われる場合が有る。送信時に行われる場合、データ変換部１５０は、通信装置１００内で業務処理を実行するプロセス１１０から通信データ１１１を受領し、データ形式を変換した後、データ通信部１６０に出力する。受信時に行われる場合、データ変換部１５０は、データ通信部１６０から通信データ１１１を受領し、データ形式を変換した後、プロセス１１０に出力する。
【００３３】
なお、各通信装置１００は、通信システム３００内で一意の識別子を付与されている。識別子は、例えば、ノード１、ノード２….ノードＮ（Ｎは、通信システム３００内の通信装置１００の台数）である。
【００３４】
図２は、データ形式記憶部１３０に格納されるデータ形式情報１３１の構成図である。データ形式情報１３１は、通信装置１００の識別子に関連付けて、当該通信装置１００のデータ形式を格納する。図２の例は、データ形式は、Ｌ（リトルエンディアン）またはＢ（ビッグエンディアン）である。
【００３５】
データ形式採取部１２０は、分散並列プログラムを実行する他の通信装置１００内のプロセス１１０から、実行環境である各通信装置１００のデータ形式を採取し、データ形式情報１３１を作成する。
【００３６】
図３は、通信データ１１１の構成図である。通信データ１１１は、データの中身であるペイロード１１４と、ヘッダ情報１１２を持つ。ヘッダ情報１１２は、ペイロード１１４のデータ変換が行われたかどうかを示すデータ変換ビット１１３を有する。なお、ペイロード１１４のデータ形式を変換することを、通信データ１１１のデータ形式を変換するということが有る。
【００３７】
ここで、通信装置１００のデータ形式採取部１２０と、データ変換判断部１４０と、データ変換部１５０と、データ通信部１６０とは、論理回路で構成される。データ形式記憶部１３０は、ディスク装置、または、半導体記憶装置等の記憶装置である。
【００３８】
通信装置１００は、コンピュータ装置６００により実現されても良い。図６は、コンピュータ装置６００の構成図である。コンピュータ装置６００は、バス６４０で相互に接続された、プロセッサ６１０、主記憶部６３０、および、外部記憶装置６２０を備える。プロセッサ６１０は、バス６４０を経由して、主記憶部６３０、および、外部記憶装置６２０に対してデータの読み書きを行う。また、プロセッサ６１０は、主記憶部６３０に格納されているプログラム６５０を実行する。なお、プログラム６５０は、当初外部記憶装置６２０に格納されており、コンピュータ装置６００の初期設定時に、プロセッサ６１０が外部記憶装置６２０から主記憶部６３０にロードしても良い。
【００３９】
ここで、主記憶部６３０は半導体メモリ装置である。外部記憶装置６２０はディスク装置、または、半導体記憶装置等の記憶装置である。
【００４０】
プロセッサ６１０は、プログラム６５０を実行することにより、データ形式採取部１２０、データ変換判断部１４０、データ変換部１５０、および、データ通信部１６０として機能する。すなわち、プロセッサ６１０は、プログラム６５０を実行することにより、データ形式採取部１２０、データ変換判断部１４０、データ変換部１５０、および、データ通信部１６０が行う処理を実行する。
【００４１】
主記憶部６３０、または、外部記憶装置６２０は、データ形式記憶部１３０として使用されても良い。
【００４２】
＜動作＞
通信装置１００の動作について図面を参照して詳細に説明する。図４は、通信装置１００における送信処理の動作を示すフローチャートである。
【００４３】
まず、データ変換判断部１４０は、データ形式情報１３１を参照し、送信側である自装置と受信側の通信装置１００のデータ形式が同じかどうかチェックを行う（ステップ４１０）。データ形式が同じ場合は（ステップ４１０でＹ）、データ通信部１６０が、通信データ１１１をデータ形式変換せずに送信する（ステップ４６０）。
【００４４】
データ形式が異なる場合は（ステップ４１０でＮ）、データ変換判断部１４０は、受信側の通信装置１００のデータ形式を出力する。
【００４５】
次に、データ通信部１６０は、受信側通信装置１００のデータ通信部１６０のフロー制御におけるＡｃｋ（受信可能）通知のチェック（ステップ４２０）に移る。データ通信部１６０は、例えば、スライディングウインドウによるフロー制御を行っている。スライディングウインドウによるフロー制御では、データ通信部１６０は、通信データ１１１を送信し、その後受信側からＡｃｋ通知を受け取ると、次の通信データ１１１を送信する。通信データ１１１を送信後、所定時間経過してもＡｃｋ信号を受け取らない場合であっても、データ通信部１６０は、ウインドウで定められた個数までの通信データ１１１を送り続ける。
【００４６】
データ形式が異なった場合（ステップ４１０でＮ）、データ通信部１６０は、通信データ１１１の送信後、所定時間内にAckを受信したかをチェックし、受信した場合は（ステップ４２０でＹ）、次の通信データ１１１をデータ形式変換せずに送信する（ステップ４６０）。
【００４７】
通信データ１１１送信後、所定時間内にAckを受信しない場合（ステップ４２０でＮ）、データ変換部１５０は、次の通信データ１１１を受信側通信装置１００のデータ形式に変換して、データ変換ビット１１３をオンする（ステップ４４０、および、４５０）。データ変換部１５０は、受信側通信装置１００のデータ形式を、データ変換判断部１４０の出力値から判別する。
【００４８】
最後に、データ通信部１６０は、受信側のデータ形式に変換された次の通信データ１１１を、受信側通信装置１００に送信する（ステップ４６０）。
【００４９】
通信データ１１１の送信後、所定時間内にAckを受信しない場合（ステップ４２０でＮ）であっても、1対多通信の場合（ステップ４３０でＹ）、データ通信部１６０は、次の通信データ１１１をデータ形式変換せずに送信する（ステップ４６０）。
【００５０】
図５は、通信装置１００における受信処理の動作を示すフローチャートである。受信側の通信装置１００においてデータ変換部１５０は、受信した通信データ１１１のデータ変換ビット１１３がオンでない場合（ステップ５１０でＮ）、通信データ１１１を自装置のデータ形式に変換し（ステップ５２０）、変換後の通信データ１１１をプロセス１１０に渡す。
【００５１】
受信した通信データ１１１のデータ変換ビット１１３がオンである場合（ステップ５１０でＹ）、データ通信部１６０は、受信した通信データ１１１をデータ変換しないでプロセス１１０に出力する。データ変換ビット１１３がオンである場合（ステップ５１０でＹ）、通信データ１１１は、既に送信側の通信装置１００により自装置のデータ形式に変換されているからである。
【００５２】
＜効果＞
本実施の形態にかかる通信装置１００は、データ形式の異なる通信装置１００間の通信において、受信側の通信装置１００がフロー制御上の理由により一時的に受信可能でなくなった場合の、データ変換時間を含めた通信時間の長期化を抑制できる。
【００５３】
その理由は、フロー制御の受信可能通知を受け取れない場合、データ変換部１５０が次の通信データ１１１を受信側のデータ形式に変換して、データ通信部１６０が変換後の次の通信データ１１１を送信するからである。
【００５４】
すなわち、図１０のｂ）のようなケースにおいては、送信側が、通信待ち合わせ時間にデータ変換を実施することにより、全体としてのデータ変換を含めた通信時間を短縮する（図１０のｃ））。
【００５５】
＜第２の実施形態＞
図７は、本発明の第２の実施の形態にかかる通信装置１００の構成図である。
【００５６】
通信装置１００は、データ変換部１５０と、データ通信部１６０を備えている。データ変換部１５０は、データを他の通信装置１００のデータ形式に変換する。
【００５７】
データ通信部１６０は、他の通信装置１００にデータを送信した後、当該他の通信装置１００からフロー制御に基づく受信可能通知を受信すると、次データを当該他の通信装置１００に送信する。一方、データ通信部１６０は、受信可能通知を受信しないと、データ変換部１５０により変換された次データを当該他の通信装置１００に送信する。
【００５８】
このような通信装置１００は、例えば、送信相手の通信装置１００のデータ形式が自装置と異なることが、予め分かっているときに有効である。このような場合、データ形式採取部１２０や、データ変換判断部１４０は不要となる。
【００５９】
本実施の形態にかかる通信装置１００は、データ形式の異なる通信装置１００間の通信において、受信側の通信装置１００がフロー制御上の理由により一時的に受信可能でなくなった場合の、データ変換時間を含めた通信時間の長期化を抑制できる。
【００６０】
その理由は、フロー制御の受信可能通知を受け取れない場合、データ変換部１５０が次のデータを受信側のデータ形式に変換して、データ通信部１６０が変換後の次のデータを送信するからである。
【００６１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６２】
１００    通信装置
１１０    プロセス
１１１    通信データ
１１２    ヘッダ情報
１１３    データ変換ビット
１１４    ペイロード
１２０    データ形式採取部
１３０    データ形式記憶部
１３１    データ形式情報
１４０    データ変換判断部
１５０    データ変換部
１６０    データ通信部
２４０    ネットワーク
３００    通信システム
６００    コンピュータ装置
６１０    プロセッサ
６２０    外部記憶装置
６３０    主記憶部
６４０    バス
６５０    プログラム
【図１】
2018085638.tif 000003
【図２】
2018085638.tif 000004
【図３】
2018085638.tif 000005
【図４】
2018085638.tif 000006
【図５】
2018085638.tif 000007
【図６】
2018085638.tif 000008
【図７】
2018085638.tif 000009
【図８】
2018085638.tif 000010
【図９】
2018085638.tif 000011
【図１０】
2018085638.tif 000012