(57)【特許請求の範囲】
【請求項１】
送信元から入力されるメッセージ群を送信先に出力する通信装置であって、
前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するタイマ部と、
前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するメッセージ入出力部と、
前記タイマ部が計測している経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するメッセージ破棄部と
を備えることを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記メッセージ破棄部は、更に、
前記タイマ部が計測している経過時間が予め定められた時間に達するごとに、該時間に対応して予め定められた規定数以上のメッセージの出力が完了していない場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除する
ことを特徴とする通信装置。
【請求項３】
請求項１又は請求項２のいずれかに記載の通信装置であって、
前記メッセージ破棄部は、更に、
前記バッファに記憶されている前記メッセージ群のメッセージを削除すると、前記規定時間内に出力できないメッセージがあることを示すタイムアウト信号を前記送信元及び前記送信先に通知する
ことを特徴とする通信装置。
【請求項４】
送信元から入力されるメッセージ群を送信先に出力する通信装置が行う通信方法であって、
前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するステップと、
前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するステップと、
前記経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するステップと
を有することを特徴とする通信方法。
【請求項５】
送信元から入力されるメッセージ群を送信先に出力する通信装置に設けられているコンピュータに
前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するステップと、
前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するステップと、
前記経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するステップと
を実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及び通信プログラムに関する。
【背景技術】
【０００２】
近年のネットワーク技術の進歩に伴い、数μ秒〜数１００μ秒といったオーダーで高速にメッセージを伝送するリアルタイム通信に対する需要が高まっている。このような通信では、予め定められた規定時間を過ぎると、メッセージ自体に価値がなくなってしまうため、メッセージの伝送における制御が重要である。
【０００３】
メッセージの伝送においてメッセージキューを用いた技術がある（非特許文献１）。
図５は、キューを用いたメッセージ転送の概要を示す図である。ここでは、送信元の処理プログラムＡから送信先の処理プログラムへ複数のメッセージを、メッセージキュー（バッファ）を介して伝送する場合を説明する。
処理プログラムＡに含まれる通信用プロセスの集合は、一意的な識別子を持つメッセージキューにメッセージを入力する。メッセージキューは、入力されたメッセージをバッファリングし、バッファリングしたメッセージを処理プログラムＢに逐次出力することにより、メッセージを転送する。この技術では、メッセージがリアルタイム性を備える場合に（すなわち、高速なメッセージ伝送が要求される場合に）、メッセージが満たすべき規定時間Ｔ０を超えてバッファリングされていたとしても、そのメッセージを転送する。
非特許文献１に記載の技術では、メッセージのリアルタイム性に応じた制御や処理を行っていないために、規定時間を超えてしまったメッセージ、すなわち価値のないメッセージを伝送してしまい、通信資源を浪費してしまうことになる。
【０００４】
これに対して、メッセージキューにメッセージを入力する前に規定時間を満たした伝送が行えるか否かを判定し、規定時間を満たせるメッセージのみをメッセージキューに入力する技術が検討されている（非特許文献２）。
図６は、非特許文献２に記載されているメッセージ転送の概要を示す図である。ここでは、図５に示した例と同様に、送信元の処理プログラムＡから送信先の処理プログラムＢへ複数のメッセージを、メッセージキューを介して伝送する場合を説明する。
図６に示すように、処理プログラムＡに含まれる通信用プロセスの集合は、メッセージをメッセージキュー１２に入力する前に、メッセージの伝送に要する時間（経過時間＋予想処理時間）が規定時間を満たすか否かを判定する。規定時間を満たすと判断した場合に、各通信プロセスは、メッセージをメッセージキューに入力する。すなわち、メッセージごとにリアルタイム性の充足可能性を判断した上で、メッセージをメッセージキューに入力する。
このよう処理することにより、無価値なメッセージが伝送されることを防ぎ、通信資源の浪費を抑えている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】桜川貴司（訳）、Berny M. Goodheart、James H. Cox、「ＵＮＩＸカーネルの魔法  ＳｙｓｔｅｍＶリリース４のアーキテクチャ」、ピアンソンエデュケーション、２０００年４月、ｐ．５２３−５３０
【非特許文献２】野村哲弘、石川裕、「リアルタイムパケットの通信制御」、情報処理学会研究報告−システムソフトウエアとオペレーティング・システム（ＯＳ）、２００５年５月、Ｖｏｌ．２００５、Ｎｏ．７９、ｐ．７９−８４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献２に記載の技術では、無価値なメッセージの伝送による通信資源の浪費を防げるが、メッセージごとにリアルタイム性の充足可能性を判断する処理のために時間を要してしまう。この判断の処理に要する時間が長くなると、メッセージを規定時間内に伝送することが困難になってしまう。特に、伝送するメッセージ数が増加した場合、判断に要する時間が増加して、結果的にほとんどのメッセージをメッセージキューに入力せずに、メッセージの伝送を行わないことになってしまうという問題がある。
【０００７】
本発明は、上記問題を解決すべくなされたもので、その目的は、リアルタイム性を有するメッセージの伝送において、メッセージの伝送への影響を抑えつつ、無価値なメッセージの伝送を回避する通信装置、通信方法、及び通信プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記問題を解決するために、本発明は、送信元から入力されるメッセージ群を送信先に出力する通信装置であって、前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するタイマ部と、前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するメッセージ入出力部と、前記タイマ部が計測している経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するメッセージ破棄部とを備えることを特徴とする通信装置である。
【０００９】
また、本発明は、上記の発明において、前記メッセージ破棄部は、更に、前記タイマ部が計測している経過時間が予め定められた時間に達するごとに、該時間に対応して予め定められた規定数以上のメッセージの出力が完了していない場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除することを特徴とする。
【００１０】
また、本発明は、上記の発明において、前記メッセージ破棄部は、更に、前記バッファに記憶されている前記メッセージ群のメッセージを削除すると、前記規定時間内に出力できないメッセージがあることを示すタイムアウト信号を前記送信元及び前記送信先に通知することを特徴とする。
【００１１】
また、上記問題を解決するために、本発明は、送信元から入力されるメッセージ群を送信先に出力する通信装置が行う通信方法であって、前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するステップと、前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するステップと、前記経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するステップとを有することを特徴とする通信方法である。
【００１２】
また、上記問題を解決するために、本発明は、送信元から入力されるメッセージ群を送信先に出力する通信装置に設けられているコンピュータに前記送信元から前記メッセージ群のうち最初のメッセージが入力されてから経過した経過時間を測定するステップと、前記送信元から入力された前記メッセージ群のメッセージをバッファに記憶させ、前記送信先からの要求に応じて前記バッファに記憶されている前記メッセージ群のメッセージを前記送信先に出力するステップと、前記経過時間が予め定められている規定時間を超えた場合、前記バッファに記憶されている前記メッセージ群のメッセージを削除するステップとを実行させるための通信プログラムである。
【発明の効果】
【００１３】
この発明によれば、通信装置において、送信元からメッセージが入力されてから経過した時間が規定時間を超えた場合に記憶されているメッセージを削除するようにした。これにより、事前に規定時間内にメッセージを伝送できるか否かの判定を行うことなく、経過時間と規定時間とを比較するという演算負荷の小さい処理で無価値なメッセージの伝送を回避することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る実施形態における通信装置１の構成を示す概略ブロック図である。
【図２】同実施形態における通信装置１が行う転送処理を示すフローチャートである。
【図３】同実施形態における通信装置１が行う転送時間管理処理を示すフローチャートである。
【図４】同実施形態における通信装置１によるメッセージ転送の一例を示す概要図である。
【図５】キューを用いたメッセージ転送の概要を示す図である。
【図６】キューを用いた他のメッセージ転送の概要を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明に係る実施形態における通信装置、通信方法、及び通信プログラムを説明する。
図１は、本実施形態における通信装置１の構成を示す概略ブロック図である。通信装置１は、送信元から入力される少なくとも１つのメッセージを含むメッセージ群が入力され、入力されたメッセージ群を一時的に記憶し、記憶しているメッセージ群を送信先に出力する転送処理を行う。また、通信装置１は、同図に示すように、メッセージ入出力部１１と、メッセージキュー１２と、制御部１３とを具備している。
【００１６】
メッセージ入出力部１１は、メッセージの送信元から入力されるメッセージをメッセージキュー１２に出力し、送信元の識別子を記憶する。また、メッセージ入出力部１１は、送信先からアクセスされると送信先の識別子を記憶し、また、メッセージキュー１２からメッセージを読み出して送信先に出力する。メッセージ入出力部１１は、送信先からメッセージの送信先であることを示す登録要求信号が入力され、また、送信先からメッセージを要求するメッセージ要求信号が入力される。また、メッセージ入出力部１１は、制御部１３から入力されるタイムアウト信号を送信元及び送信先に出力する。
メッセージキュー１２は、メッセージ入出力部１１から入力されるメッセージを記憶する。また、メッセージキュー１２は、記憶しているメッセージのうち、メッセージ入出力部１１が読み出したメッセージを削除する。メッセージキュー１２は、例えば、ＦＩＦＯ方式のバッファとして構成される。
制御部１３は、送信元から送信先へのメッセージの伝送に対して予め定められている規定時間Ｔ０に基づいて、メッセージの伝送を制御する。ここで、規定時間Ｔ０は、本実施形態において、通信装置１が送信元よりメッセージを入力されてから、通信装置１が送信先にメッセージを出力するまでに要する時間に対する制約である。換言すると、メッセージのリアルタイム性を維持するために守るべき条件である。
【００１７】
制御部１３は、タイマ部１３１と、タイムアウト判定部１３２と、メッセージ破棄部１３３とを備えている。タイマ部１３１は、送信元から通信装置１にメッセージが入力されてから経過した時間（滞留時間Ｔ１）を計測する。タイムアウト判定部１３２は、メッセージキュー１２に記憶されているメッセージの規定時間Ｔ０が守られているか否かを判定する。また、タイムアウト判定部１３２は、判定結果に基づいてメッセージ破棄部１３３を制御する。メッセージ破棄部１３３は、タイムアウト判定部１３２の制御に応じて、メッセージキュー１２に記憶されているメッセージを削除する。また、メッセージ破棄部１３３は、メッセージキュー１２に記憶されているメッセージを削除した場合、メッセージ入出力部１１を介して、タイムアウトの発生を示すタイムアウト信号を当該メッセージの送信元及び送信先に通知する。ここで、タイムアウトとは、規定時間内に伝送できないメッセージが発生することである。
【００１８】
図２は、本実施形態における通信装置１が行う転送処理を示すフローチャートである。
通信装置１において、転送処理が開始されると、タイムアウト判定部１３２は、送信元から送信先へのメッセージの転送における規定時間（Ｔ０）を設定し、メッセージキュー１２をクリアして初期化する（ステップＳ１０１）。なお、送信元と送信先との組み合わせに関わらず規定時間が一定である場合には、規定時間（Ｔ０）の設定を行わずともよい。
メッセージ入出力部１１は、送信元又は送信先からのアクセスを待ち（ステップＳ１０２）、アクセスがあると当該アクセスが送信元のアクセスであるか否かを判定する（ステップＳ１０３）。
【００１９】
アクセスが送信元からのアクセスである場合（ステップＳ１０３：Ｙｅｓ）、メッセージ入出力部１１は、メッセージ群における最初のメッセージであるか否かを判定する（ステップＳ１０４）。
最初のメッセージである場合（ステップＳ１０４：Ｙｅｓ）、メッセージ入出力部１１は、制御部１３に対して転送時間管理処理の開始を指示し（ステップＳ１０５）、送信元から入力されたメッセージをメッセージキュー１２に出力して記憶させ（ステップＳ１０６）、処理をステップＳ１０２に戻す。
一方、最初のメッセージでない場合（ステップＳ１０４：Ｎｏ）、メッセージ入出力部１１は、送信元から終端信号が入力されたか否かを判定し（ステップＳ１０７）、終端信号でない場合（ステップＳ１０７：Ｎｏ）、処理をステップＳ１０６に進め、終端信号である場合（ステップＳ１０７：Ｙｅｓ）、処理をステップＳ１０２に戻す。ここで、終端信号とは、送信元からのメッセージ群の入力の完了を示す信号である。
【００２０】
ステップＳ１０３において、アクセスが送信元からのアクセスでない場合（ステップＳ１０３：Ｎｏ）、メッセージ入出力部１１は、送信先から登録要求信号が入力されたか否かを判定する（ステップＳ１１１）。
メッセージ入出力部１１は、送信先からの登録要求信号が入力された場合（ステップＳ１１１：Ｙｅｓ）、当該登録要求信号を自装置に出力した送信先を記憶して登録し（ステップＳ１１２）、処理をステップＳ１０２に戻す。
一方、送信先から登録要求信号が入力されなかった場合、すなわち送信先からメッセージ要求信号が入力された場合（ステップＳ１１１：Ｎｏ）、メッセージ入出力部１１は、メッセージキュー１２からメッセージを読み出し、読み出したメッセージを送信先に出力する。このとき、送信先に出力したメッセージをメッセージキュー１２から削除する（ステップＳ１１３）。
【００２１】
メッセージ入出力部１１は、メッセージキュー１２に記憶されていたすべてのメッセージを送信先に出力する転送が完了したか否かを判定し（ステップＳ１１４）、完了している場合（ステップＳ１１４：Ｙｅｓ）、制御部１３に対して転送時間管理処理の停止を指示し（ステップＳ１１５）、転送処理を終了させる。
一方、メッセージの転送が完了していない場合（ステップＳ１１４：Ｎｏ）、メッセージ入出力部１１は、処理をステップＳ１０２に戻し、ステップＳ１０２からステップＳ１１５までの処理を繰り返して行う。
【００２２】
図３は、本実施形態における通信装置１が行う転送時間管理処理を示すフローチャートである。
通信装置１において、メッセージ入出力部１１から制御部１３に転送時間管理処理の開始が指示されると、タイマ部１３１はカウント値（Ｔ１）を「０」にする初期化を行う（ステップＳ２０１）。
タイマ部１３１がカウント値（Ｔ１）をカウントアップ（インクリメント）すると（ステップＳ２０２）、タイムアウト判定部１３２は、カウント値（Ｔ１）とチェックポイント値とが一致しているか否かを判定する（ステップＳ２０３）。
ここで、チェックポイント値は、０以上、かつ規定時間Ｔ０未満の少なくとも１つの時間（時限）を示す値である。また、チェックポイント値ごとに、経過時間がチェックポイント値に達した際に、転送が完了しているべきメッセージ数を示す規定数（Ｍ）が予め設定されている。チェックポイント値には、例えば、規定時間（Ｔ０）の半分（Ｔ０／２）や、規定時間（Ｔ０）の４分の１、４分の３などの値を設定する。
【００２３】
カウント値（Ｔ１）とチェックポイント値とが一致している場合（ステップＳ２０３：Ｙｅｓ）、タイムアウト判定部１３２は、最初のメッセージが送信元から入力された以降において送信先に出力したメッセージ数（転送済のメッセージ数）が予め定められた規定数（Ｍ）以上であるか否かを判定する（ステップＳ２０４）。
転送済のメッセージが規定数（Ｍ）以上である場合（ステップＳ２０４：Ｙｅｓ）、タイムアウト判定部１３２は、処理をステップＳ２０２に戻す。
一方、転送済のメッセージ数が規定数（Ｍ）未満である場合（ステップＳ２０４：Ｎｏ）、タイムアウト判定部１３２は、処理をステップＳ２０６に進める。
【００２４】
ステップＳ２０３において、カウント値（Ｔ１）とチェックポイント値とが一致していない場合（ステップＳ２０３：Ｎｏ）、タイムアウト判定部１３２は、カウント値（Ｔ１）が規定時間（Ｔ０）より大きいか否かを判定する（ステップＳ２０５）。
カウント値（Ｔ１）が規定時間（Ｔ０）より大きくない場合（ステップＳ２０５：Ｎｏ）、タイムアウト判定部１３２は処理をステップＳ２０２に戻す。
一方、カウント値（Ｔ１）が規定時間（Ｔ０）より大きい場合（ステップＳ２０５：Ｙｅｓ）、タイムアウト判定部１３２は、メッセージ破棄部１３３を制御してエラー処理を開始させる。メッセージ破棄部１３３は、メッセージキュー１２に記憶されているメッセージを削除する（ステップＳ２０６）。
メッセージ破棄部１３３は、メッセージ入出力部１１を介して、ステップＳ２０６において削除したメッセージの送信元及び送信先にタイムアウト信号を出力し（ステップＳ２０７）、転送時間管理処理を終了させる。送信元と送信先とは、タイムアウト信号によりメッセージの転送が正常に行われなかったことを把握することができる。
【００２５】
図４は、本実施形態における通信装置１によるメッセージ転送の一例を示す概要図である。ここでは、６つのメッセージを含むメッセージ群が送信元から通信装置１に入力され、規定時間Ｔ０内に３つのメッセージが通信装置１から送信先に出力された場合について説明する。
同図に示すように、通信装置１は６つのメッセージを含むメッセージ群が入力されると、メッセージキュー１２に各メッセージを記憶する。通信装置１は、送信先からの要求に応じて、メッセージキュー１２に記憶しているメッセージを順に送信先に出力し、メッセージを転送する。
ここで、最初のメッセージを送信元から入力されてから規定時間（Ｔ０）が経過すると、通信装置１は、転送時間管理処理において、メッセージキュー１２に記憶されているメッセージの削除、及び送信元及び送信先へのタイムアウトの通知を含むエラー処理を行う。これにより、通信装置１は、規定時間（Ｔ０）が経過した後に、無価値なメッセージを送信先に出力することを回避することができる。
【００２６】
上述のように、通信装置１は、送信元から最初のメッセージが入力されると、タイマ部１３１により経過時間（カウント値）を測定し、経過時間が規定時間（Ｔ０）に達した場合に、メッセージキュー１２に記憶されているメッセージを破棄するとともに、メッセージの送信元及び送信先にタイムアウトの通知を行う。
これにより、メッセージをメッセージキュー１２に入力する都度、メッセージの転送に要する時間を推定することなく、無価値なメッセージの転送を回避することができる。
【００２７】
また、通信装置１は、チェックポイントを設け、経過時間がチェックポイントに達した場合に、転送済のメッセージ数が規定数（Ｍ）に達していないときには、処理を継続して行っても規定時間（Ｔ０）内にメッセージの転送を完了することができないと判断し、エラー処理を行う。
これにより、規定時間（Ｔ０）の経過を待つことなく、メッセージの破棄を行うことができ、通信装置１における処理の負荷を軽減することができる。
【００２８】
なお、上述の実施形態においては、転送処理、及び転送時間管理処理を通信装置１が行う処理として説明したが、コンピュータシステム上で実行されるプロセスやスレッドが、転送処理、及び転送時間管理処理を行うようにしてもよい。この場合、送信元及び送信先は、コンピュータシステムが備えるインタフェースや、当該コンピュータシステム上で実行されるプロセスやスレッドなどになる。
【００２９】
なお、本発明における通信装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、転送処理及び転送時間管理処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。更に「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３０】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。更に、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００３１】
１…通信装置
１１…メッセージ入出力部
１２…メッセージキュー
１３…制御部
１３１…タイマ部
１３２…タイムアウト判定部
１３３…メッセージ破棄部
【図１】
0005667097.tif 000002
【図２】
0005667097.tif 000003
【図３】
0005667097.tif 000004
【図４】
0005667097.tif 000005
【図５】
0005667097.tif 000006
【図６】
0005667097.tif 000007