処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020170790 - メッセージ中継装置及び方法

Document

明 細 書

発明の名称 メッセージ中継装置及び方法

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007   0008   0009  

課題を解決するための手段

0010  

発明の効果

0011  

図面の簡単な説明

0012  

発明を実施するための形態

0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046  

実施例

0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085  

符号の説明

0086  

請求の範囲

1   2   3   4   5   6   7   8  

図面

1   2   3   4   5   6   7   8   9  

明 細 書

発明の名称 : メッセージ中継装置及び方法

技術分野

[0001]
 本発明は、クラウド等のサーバ上に構築されたアプリケーションからデバイスにメッセージを送信するサーバ-クライアントモデルのような通信形態において、デバイスへのメッセージの到達性を向上させるためのメッセージ中継装置及び方法に関する。

背景技術

[0002]
 IoT(Internet of Things)技術の進展に伴い、通信ネットワークを経由して様々なアプリケーションと通信することによってデバイスを制御する、IoTサービスが増えてきた。
[0003]
 このようなIoTサービスでは、移動ロボット等のようにデバイスが移動する場合、無線区間の通信ネットワークが不安定になる可能性が高いため、その状態によっては、メッセージをデバイスに到達させることができない。
[0004]
 メッセージの到達性を向上させることを目的とした技術としては特許文献1に記載された技術が提案されている。特許文献1に記載された技術は、クラウド等のサーバに構築されたアプリケーションからデバイスにメッセージを送信するサーバ-クライアントモデルのような通信形態のIoTサービスにおいて、アプリケーションからデバイスにメッセージが送信された際にデバイスが通信不可能な状態だった場合、通信ネットワークに設けた通信ノード装置が、当該メッセージを一時的に保持し、デバイスが通信可能な状態に遷移した際に転送するものである。

先行技術文献

特許文献

[0005]
特許文献1 : 特開2017-41714号公報

発明の概要

発明が解決しようとする課題

[0006]
 デバイスが通信不可能な状態になる状況は、デバイスが通信可能な状態と通信不可能な状態を繰り返す通信ネットワークの不安定な環境にデバイスが存在している可能性が高い。そのため、通信可能な状態に遷移したとしても、即時に、通信不可能な状態に再び遷移する可能性が高い。このような環境でメッセージを転送しても、メッセージを到達させることができない。
[0007]
 上記特許文献1に記載された技術は、デバイスが通信可能な状態に遷移したことを起因に、一時的に保持したメッセージを転送しているため、通信ネットワークの不安定な状況まで考慮できていない。
[0008]
 このように、メッセージの到達性を向上させるためには、デバイスの通信可不可の状態だけでなく、通信ネットワークが不安定な環境か否かを考慮することが必要である。
[0009]
 本発明は上記事情に鑑みてなされたものであり、その目的とするところは、通信ネットワークの状況を考慮したメッセージ到達率の高いメッセージ中継装置及び方法を提供することにある。

課題を解決するための手段

[0010]
 上記目的を達成するために、本願発明は、アプリケーションが端末宛に送信したアプリケーションメッセージを受信し、受信したアプリケーションメッセージを宛先の端末に転送するメッセージ中継装置であって、端末との間の通信可否状態を判定する通信可否状態判定部と、前記通信可否状態に基づき端末とメッセージ中継装置との間のネットワーク状態を推定するネットワーク状態推定部と、アプリケーションから受信したアプリケーションメッセージの宛先となる端末について推定されたネットワーク状態に基づきアプリケーションメッセージの転送可否状態を判定し、転送不可の場合にアプリケーションメッセージをバッファリングするメッセージ処理部とを備えたことを特徴とする。

発明の効果

[0011]
 本発明によれば、通信ネットワークの状態を考慮してメッセージの転送可否を決定するので、メッセージ転送の失敗を抑制することができ、メッセージの到達性を向上できる。また、通信ネットワークの状態を考慮してメッセージの転送可否を決定するので、メッセージ転送の失敗によるメッセージの無駄な再送を抑制することができ、通信ネットワークの帯域等のリソースを効率的に使用することができる。

図面の簡単な説明

[0012]
[図1] 一実施の形態に係るメッセージ中継システムの全体構成図
[図2] メッセージ中継装置の機能ブロック図
[図3] メッセージ転送フローの一例
[図4] デバイスの通信状態判定フローの一例
[図5] デバイスの通信状態判定フローの一例
[図6] デバイスの通信状態判定フローの一例
[図7] 通信ネットワークの状態推定フローの一例
[図8] 実施例に係るメッセージ中継システムの全体構成図
[図9] 通信ネットワークの状態変化のイメージを説明する図

発明を実施するための形態

[0013]
 本発明のメッセージ中継システムの概要について説明する。本発明では、サーバ-クライアントモデルのような通信形態において、ネットワークに配置したメッセージ中継装置が、予めメッセージの通信経路である通信ネットワークの状態を推定しておき、サーバに構築されたアプリケーションからクライアントであるデバイスにメッセージが送信された際に、前記推定結果に基づいて当該メッセージを転送する又はバッファリングするというものである。
[0014]
 次に、本発明の一実施の形態に係るメッセージ中継システムについて図1を参照して説明する。図1は本発明の実施の形態に係るメッセージ中継システムの全体構成図である。
[0015]
 メッセージ中継システムは、図1に示すように、1以上のアプリケーション20と、1以上のデバイス30とが通信ネットワーク10に通信可能に接続している。通信ネットワーク10には、本実施の形態に係るメッセージ中継装置100が配備されている。
[0016]
 アプリケーション20は、デバイス30に対してメッセージを送信するアプリケーションである。アプリケーション20の実装形態は不問であり、物理サーバ上に実装されていてもよいし、仮想サーバ上に実装されていてもよい。典型的な例では、アプリケーション20はインターネット上のクラウドサーバに実装される。他の例としては、アプリケーション20は回線事業者網のデータセンタや基地局に配備されたサーバに実装される。アプリケーション20は、サービス事業者によって提供される。なお、デバイス30と通信するアプリケーション20はメッセージ中継システム上で単一とは限らない点に留意されたい。
[0017]
 アプリケーション20は、OSI(Open Systems Interconnection)参照モデルの第7層であるアプリケーション層におけるアプリケーションである。すなわち、アプリケーション20からデバイス30に送られるメッセージはアプリケーション層におけるメッセージである。なお、以下の説明では、アプリケーション20からデバイス30に送られるメッセージを「アプリケーションメッセージ」と呼ぶ。アプリケーションメッセージの送信に用いるプロトコルは不問であり、例えば、CoAP(Constrained Application Protocol)やMQTT(Message Queuing Telemetry Transport)といった軽量なM2M(Machine to Machine)向けプロトコルや、HTTP(HyperText Transfer Protocol)やHTTP/2等の高機能プロトコルなどが挙げられる。アプリケーション20が実装されたサーバは、アプリケーションメッセージの送信に必要なアプリケーション層より下位の層におけるプロトコルスタックや装置が実装されている。本実施の形態では、アプリケーションメッセージはTCP/IP(Transmission Control Protocol/Internet Protocol)を用いて送信されることを例示するが、他のプロコトルスタックを用いてもよい。また、本実施の形態では、アプリケーションメッセージの送信は、トランスポート層においてコネクションを形成してデータ送信を行うコネクション型プロトコルであるTCPを用いる。なお、UDP(User Datagram Protocol)などコネクションレス型プロトコルであっても本発明を実施できる。
[0018]
 通信ネットワーク10は、アプリケーション20とデバイス30との間の通信経路を形成する。通信ネットワーク10は、複数のネットワークから構成することができる。本発明では、メッセージ中継装置100とデバイス30との間の通信経路に無線通信区間を含むことを想定する。典型的な例では、デバイス30のアクセス回線として無線通信区間を含む。なお、通信ネットワーク10が無線通信区間を含んでいなくても本発明を適用できる。通信ネットワーク10においては、アプリケーションメッセージの送信に必要なトランスポーション層以下のプロトコルスタックをサポートする。本実施の形態では、TCP/IPのプロトコルスタックをサポートする。
[0019]
 デバイス30は、アプリケーション20からアプリケーションメッセージを受信し、このアプリケーションメッセージに基づき所定の動作を行う装置である。デバイス30は、アプリケーション20及び通信ネットワーク10と対応して、アプリケーションメッセージの受信のためのアプリケーション層におけるプロコトル、及び、その下位の層におけるプロトコルスタックをサポートする。本実施の形態では、TCP/IPのプロトコルスタックをサポートする。なお、デバイス30はメッセージ中継システム上で単一とは限らない点に留意されたい。
[0020]
 メッセージ中継装置100は、アプリケーション20からデバイス30に向けて送信されたアプリケーションメッセージを受信し、このアプリケーションメッセージをデバイス30に転送する機能を有する。以下、メッセージ中継装置100の詳細について図2を参照して説明する。図2はメッセージ中継装置の機能ブロック図である。
[0021]
 メッセージ中継装置100は、図2に示すように、通信機能部110と、メッセージ処理部120と、状態確認部130とを備えている。ここで、メッセージ中継装置100の実装形態は不問であり、1つのノードとして実装されている必要はない。すなわち、図2では、メッセージ中継装置100は説明の便宜上3つの機能部が設けられているが、他の機能部から共通的に利用される通信機能部110を除き、これらにも実装上の制約等はない。
[0022]
 通信機能部110は、アプリケーションメッセージの送受信を行うアプリケーション層よりも下位の層における機能部であり、上位層に対してトランスポート層以下の各種機能を提供する。通信機能部110は、メッセージ処理部120と状態確認部130とから共通的に利用される。通信機能部110は、通信管理部111と、通信処理部112とを含む。
[0023]
 通信管理部111は、通信処理部112が行う通信を制御・管理する。例えば、通信管理部111は、5-tupleによる通信の識別や、TCP(Transmission Control Protocol)コネクションの形成・維持・管理など、通信の実現に必要な管理を行う。通信処理部112は、通信ネットワーク10を介してアプリケーションサーバやデバイス30などの機器との間でデータの送受信処理を行う。
[0024]
 メッセージ処理部120は、通信機能部110を介してアプリケーション20からアプリケーションメッセージを受信し、受信したアプリケーションメッセージを、必要に応じて一時的に保存(バッファリング)し、通信機能部110を介してデバイス30に転送する機能部である。ここで、アプリケーション20との通信に用いられるトランスポート層におけるコネクションと、デバイス30との通信に用いられるトランスポート層におけるコネクションとは異なる点に留意されたい。すなわち、アプリケーション20によるアプリケーションメッセージの送信に用いられるコネクションは、メッセージ中継装置100の通信機能部110で終端される。同様に、デバイス30によるアプリケーションメッセージの受信に用いられるコネクションは、メッセージ中継装置100の通信機能部110で終端される。
[0025]
 メッセージ処理部120は、アプリケーションメッセージ宛先特定機能部121と、アプリケーションメッセージバッファ機能部122と、アプリケーションメッセージ転送機能部123とを備えている。
[0026]
 アプリケーションメッセージ宛先特定機能部121は、アプリケーション20から受信したアプリケーションメッセージの宛先となるデバイス30を特定する。当該特定処理は、例えば、デバイス30のアプリケーションレベルにおける識別情報や5-tupleやこれらの組み合わせにより行われる。
[0027]
 アプリケーションメッセージバッファ機能部122は、アプリケーション20から受信したメッセージの宛先となるデバイス30についての転送可否状態(後述する)が「転送不可」状態であった場合に、一時的にそのアプリケーションメッセージを保持する機能である。アプリケーションメッセージバッファ機能部122に保持されているアプリケーションメッセージは、その宛先となるデバイス30についての転送可否状態が「転送可能」状態になると、アプリケーションメッセージ転送機能部123により当該アプリケーションメッセージが宛先デバイス30に送信され、アプリケーションメッセージバッファ機能部122から削除される。
[0028]
 アプリケーションメッセージ転送機能部123は、アプリケーション20から受信したメッセージについて、その宛先となるデバイス30についての転送可否状態、すなわち「転送可能」状態であるか又は「転送不可」状態であるかを判定する。当該判定処理の際には、後述する状態確認部130のデバイス通信状態DB132及び通信ネットワーク状態DB134を参照する。当該判定の結果、「転送可能」状態の場合、アプリケーションメッセージ転送機能部123は、通信機能部110を介して当該アプリケーショメッセージを宛先デバイス30に送信する。一方、「転送不可」状態の場合、アプリケーションメッセージ転送機能部123は、当該アプリケーションメッセージバッファ機能部122に記憶する。また、アプリケーションメッセージ転送機能部123は、アプリケーションメッセージバッファ機能部122に保持されているアプリケーションメッセージについて、その宛先となるデバイスについての転送可否状態が「転送可能」状態に遷移したことを検出すると、当該アプリケーションメッセージをアプリケーションメッセージバッファ機能部122から取り出して宛先デバイス30に送信するとともに、当該アプリケーションメッセージをアプリケーションメッセージバッファ機能部122から削除する。前記検出処理は、後述する状態確認部130の通信ネットワーク状態DB134を参照することにより行う。
[0029]
 メッセージ処理部120の動作について図3のフローチャートを参照して説明する。メッセージ処理部120は、アプリケーションメッセージを受信すると(ステップS101)、当該アプリケーションメッセージの宛先となるデバイス30を特定する(ステップS102)。メッセージ処理部120は、まず、後述する状態確認部130のデバイス通信状態DB132を参照して当該デバイス30についての通信可否状態を確認する(ステップS103)。そして、メッセージ処理部120は、当該デバイス30が通信可能状態でない場合、アプリケーションメッセージをアプリケーションメッセージバッファ機能部122に一時的に記憶し(ステップS104,S105)、デバイス30が通信可能状態に遷移するまで待機する(ステップS106)。
[0030]
 次に、メッセージ処理部120は、当該デバイス30についての転送可否状態を判定し(ステップS107)、「転送不可」状態の場合、メッセージ処理部120は、当該アプリケーションメッセージをアプリケーションメッセージバッファ機能部122に一時的に記憶し(ステップS108,S109)、デバイス30についての転送可否状態が「転送可能」状態に遷移するまで待機する(ステップS110)。次に、メッセージ処理部120は、当該アプリケーションメッセージを当該デバイス30に送信する(ステップS111)。
[0031]
 なお、メッセージ処理部120は、通信機能部110を介してアプリケーション20から受信したアプリケーションメッセージの全てを、一旦、アプリケーションメッセージバッファ機能部122に記憶し、その後に、アプリケーションメッセージバッファ機能部122に記憶されているアプリケーションメッセージについて、通信可否状態や転送可否状態の判定を行うようにしてもよい。
[0032]
 図2に示すように、状態確認部130は、デバイス通信状態判定機能部131と、デバイス通信状態DB132と、通信ネットワーク状態推定機能部133と、通信ネットワーク状態DB134とを備えている。
[0033]
 デバイス通信状態判定機能部131は、デバイス30がメッセージ中継装置100と通信可能であるか否かを示す状態(通信可否状態)を判定し、その判定結果と、必要に応じてその付加情報とともにデバイス通信状態DB132に記憶する。判定結果はデバイス30の識別情報と判定処理時刻情報を含む。また、付加情報とは、デバイス30の各種属性情報やデバイス30の通信状態に関連する情報を含む。付加情報としては、例えば、デバイス30の種別情報、位置情報、移動方向情報などが挙げられる。
[0034]
 ここで、デバイス30が通信可能である状態とは、メッセージ中継装置100とデバイス30との間にトランスポート層のコネクションが形成され、且つ、当該コネクション上でデータの送受信が可能な状態を意味する。したがって、通信可否状態の判定処理は、トランスポート層だけでなくその下位のレイヤにおける通信の正常性の判定をもって行うこともできる。通信可否状態の判定処理としては種々の方法を用いることができる。通信可否状態の判定処理としては、例えば、(1)メッセージ中継装置100とデバイス30との間に形成されたトランスポート層のコネクション上で状態確認用メッセージの疎通を判定する、(2)メッセージ中継装置100とデバイス30との間のトランスポート層のコネクションの状態を判定する、(3)デバイス30の通信ネットワーク10への接続状態を管理する他の装置や機能部(以下、便宜的に「管理装置」と言う)からその管理情報である接続状態情報を取得して判定する、というものが挙げられる。デバイス通信状態判定機能部131は、前記判定方法のうちの何れかを用いてもよいし、例えばPINGによるデバイス30の疎通確認を用いた判定など他の方法を用いてもよいし、前記の各判定方法を複数組み合わせて用いてもよい。
[0035]
 デバイス通信状態判定機能部131は、通信可否状態の判定処理及び判定結果の記憶処理を定期的に繰り返し実施することにより、デバイス30について最新の通信可否状態を含む複数の通信可否状態がデバイス通信状態DB132に蓄積される。本処理の実施間隔は不問であり、ネットワークの負荷やメッセージ中継装置100の負荷等を考慮して適宜決定すればよい。
[0036]
 上記(1)状態確認用メッセージを用いる方法について図4のフローチャートを参照して説明する。本方法では、後述するように、デバイス30は当該状態確認用メッセージを受信すると、当該状態確認用メッセージに対して応答メッセージを返答するよう構成されていることを前提とする。
[0037]
 デバイス通信状態判定機能部131は、デバイス30に対して状態確認用メッセージを送信する(ステップS201)。このメッセージ送信は、デバイス30との間に形成されたコネクションが用いられる。また、このコネクションは、アプリケーションメッセージの送信に用いられるものと共通である。次に、デバイス通信状態判定機能部131は、デバイス30から応答メッセージを受信すると(ステップS202)、当該デバイス30が通信可能な状態であると判定し(ステップS203)、判定結果をデバイス通信状態DB132に記憶する(ステップS204)。所定時間内にデバイス30から応答メッセージを受信しない場合、デバイス通信状態判定機能部131は、所定回数(n回)状態確認用メッセージの送信を繰り返す(ステップS202,S205)。所定回数(n回)状態確認用メッセージの送信を繰り返しても応答メッセージを受信できない場合、デバイス30が通信不可な状態であると判定し(ステップS206)、判定結果をデバイス通信状態DB132に記憶する(ステップS204)。
[0038]
 なお、状態確認用メッセージの再送処理は、デバイス通信状態判定機能部131自身が行ってもよいし、通信機能部110のトランスポート層の処理部が再送処理機能を有している場合には、当該機能を用いてもよい。また、デバイス30は応答メッセージに付加情報を付加することができる。この場合、デバイス通信状態判定機能部131は、デバイス通信状態DB132に判定結果を記憶する際に、判定結果とともに付加情報を記憶することができる。
[0039]
 上記(2)コネクションの状態に基づく方法について図5のフローチャートを参照して説明する。本方法では、デバイス通信状態判定機能部131は、通信機能部110の通信管理部111を用いてメッセージ中継装置100とデバイス30との間のコネクションの状態遷移の検出に基づき、具体的にはコネクションの確立又は切断の検出に基づき、デバイス30の通信状態を判定する。
[0040]
 デバイス通信状態判定機能部131は、コネクションが確立されていてデバイス30が通信可能な状態において、デバイス30による通信が終了してコネクションの切断を検出すると(ステップS301,S302)、デバイスが通信不可の状態であると判定し(ステップS303)、判定結果をデバイス通信状態DB132に記憶する(ステップS304)。一方、デバイス通信状態判定機能部131は、コネクションが切断されてデバイス30が通信不可な状態において、デバイス30が通信ネットワーク10に再接続してコネクションが確立したことを検出すると(ステップS301,S305)、デバイス30が通信可能の状態であると判定し(ステップS306)、判定結果をデバイス通信状態DB132に記憶する(ステップS304)。
[0041]
 上記(3)他の管理装置から取得した接続状態情報に基づく方法について図6のフローチャートを参照して説明する。本方法において接続状態情報を取得する他の管理装置は、デバイス30の通信ネットワーク10への接続を管理する装置である。当該管理装置は、例えば通信ネットワーク10がLTE(Long Term Evolution)などの移動通信網を含んでおり、デバイス30が当該移動通信網に収容されている場合、当該移動通信網内における基地局や移動管理装置や中継装置などが挙げられる。
[0042]
 デバイス通信状態判定機能部131は、他の管理装置に対して接続状態情報の問合せメッセージを送信し(ステップS401)、当該他の管理装置から接続状態情報を含む応答メッセージを受信する(ステップS402)。そして、デバイス通信状態判定機能部131は、応答メッセージに含まれる接続状態情報に基づきデバイス30の通信可否状態を判定し(ステップS403~S405)、判定結果をデバイス通信状態DB132に記憶する(ステップS406)。
[0043]
 通信ネットワーク状態推定機能部133は、デバイス通信状態DB132に記憶されているデバイス30の通信可否状態情報に基づき、当該デバイス30とメッセージ中継装置100との間における通信ネットワーク10の状態、すなわちデバイス30とメッセージ中継装置100との間の通信経路の状態を推定する。より詳しくは、通信ネットワーク状態推定機能部133は、デバイス30の通信可否状態の経時的な変化に基づき、通信ネットワーク10の状態を推定する。そして、通信ネットワーク状態推定機能部133は、推定結果を、必要に応じて付加情報とともに通信ネットワーク状態DB134に記憶する。ここで、付加情報とは推定処理に利用した情報である。本実施の形態では、通信ネットワーク状態推定機能部133は、デバイス30が通信不可な状態の発生間隔に基づき、当該デバイス30についての通信ネットワーク10の状態を推定する。
[0044]
 通信ネットワーク状態推定機能部133が、通信ネットワーク状態の推定処理及び推定結果の記憶処理を定期的に繰り返し実施することにより、デバイス30について最新の通信ネットワーク状態が通信ネットワーク状態DB134に記憶される。本処理の実施間隔は不問であり、メッセージ中継装置100の負荷等を考慮して適宜決定すればよい。また、本処理は、前記デバイス通信状態判定機能部131の処理とは独立して実施してもよいし、前記デバイス通信状態判定機能部131の処理に引き続き実施してもよいし、前記デバイス通信状態判定機能部131の処理によりデバイス通信状態DB132の更新があったときにのみ実施してもよい。
[0045]
 通信ネットワーク状態推定機能部133の動作について図7のフローチャートを参照して説明する。通信ネットワーク状態推定機能部133は、デバイス通信状態DB132からデバイス30の通信可否状態を取得し(ステップS501)、当該デバイス30の通信不可状態の発生間隔を算出する(ステップS502)。次に、通信ネットワーク状態推定機能部133は、算出した通信不可状態の発生間隔に基づき、デバイス30の通信不可状態の発生モデルを導出する(ステップS503)。次に、通信ネットワーク状態推定機能部133は、前記発生モデルに基づき、前記メッセージ処理部120のアプリケーションメッセージ転送機能部123におけるアプリケーションメッセージの転送可否状態の判定に用いられる基準値を算出し(ステップS504)、この基準値を推定結果として通信ネットワーク状態DB134に記憶する(ステップS505)。
[0046]
 本実施の形態に係るメッセージ中継装置によれば、通信ネットワーク10の状態を考慮してアプリケーションメッセージの転送可否を決定するので、アプリケーションメッセージ転送の失敗を抑制することができ、メッセージの到達性を向上できる。また、通信ネットワーク10の状態を考慮してアプリケーションメッセージの転送可否を決定するので、アプリケーションメッセージ転送の失敗によるメッセージの無駄な再送を抑制することができ、通信ネットワーク10の帯域等のリソースを効率的に使用することができる。
実施例
[0047]
 本発明の実施例に係るメッセージ中継システムについて図面を参照して説明する。ここでは、図8に示すような全体構成におけるアプリケーションメッセージ転送の例を示す。ここで、前述したように、アプリケーション20やデバイス30は複数あっても良い。また、メッセージ中継装置100を構成する各機能部/機能が一つのノードに実装されている必要もない。
[0048]
 実際は、前述した図3~7のフローに基づいて実施するため、並行処理を行うものも存在しているが、説明の便宜上、各手順に(1)~(13)の番号を振り分けている。ここで、手順(1)~(3)は図4~6のフローを説明するための手順、手順(4)~(6)は図7のフローを説明するための手順、手順(7)~(13)は図3のフローを説明するための手順である。以下、各手順について説明する。
[0049]
 手順(1):メッセージ中継装置100は、デバイス30に通信状態確認メッセージを送信する。
[0050]
 手順(2):デバイス30は、通信状態確認メッセージに基づいて、メッセージ中継装置100に応答メッセージを返信する。
[0051]
 手順(3):メッセージ中継装置100は、デバイス30からの応答メッセージを受信し、デバイス30が通信可能な状態であると判定する。さらに、判定結果をデバイス通信状態DB132に記憶する。
[0052]
 手順(4):メッセージ中継装置100は、デバイス通信状態DB132の情報に基づいて、デバイス30の通信が不可能な状態が発生する時間間隔tnを算出する。
[0053]
 手順(5):メッセージ中継装置100は、手順(4)で算出したデバイスの通信が不可能な状態が発生する時間間隔t に基づいて、後述の手順(12)で実施するメッセージ転送の判定基準となる閾値t thを決定する。閾値t thの決定方法については後述す
る。
[0054]
 手順(6):手順(5)の算出結果を通信ネットワーク状態DB134に記憶する。閾値決定方法が後述の(c)~(d)のように、経験分布関数や累積分布関数等のように数式モデルを導出する場合は、この数式モデルも記憶する。
[0055]
 手順(7):アプリケーション20は、メッセージ中継装置100にアプリケーションメッセージを送信する。
[0056]
 手順(8):メッセージ中継装置100は、アプリケーションメッセージを受信し、アプリケーションメッセージの宛先を判定する。
[0057]
 手順(9):メッセージ中継装置100は、デバイス通信状態DB132を参照し、アプリケーションメッセージの宛先であるデバイス30の最新の通信状態を確認する。ここで、宛先デバイス30が通信不可能な状態の場合、メッセージ中継装置100は、アプリケーションメッセージを一時的に保持し、宛先デバイス30が通信可能な状態に遷移した場合、手順(10)に進む。
[0058]
 手順(10):メッセージ中継装置100は、デバイス通信状態DB132に記憶されている一番最新のデバイス30が通信不可能になった時刻と、デバイスの種別、位置、移動方向等の付加情報を抽出する。
[0059]
 手順(11):メッセージ中継装置100は、一番最新のデバイス30が通信不可能になった時刻からの経過時間を算出する。
[0060]
 手順(12):メッセージ中継装置100は、前述の手順(10)で抽出した情報に基づいて手順(6)で通信ネットワーク状態DB134に記憶した閾値t thを参照し、この閾値t thと前述の手順(11)の経過時間とを比較して、閾値t thよりも経過時間が大きい、もしくは、以上であったときに、アプリケーションメッセージを転送可能と判定する。
[0061]
 手順(13):メッセージ中継装置100は、アプリケーションメッセージをデバイス30に転送する。前述の手順(12)で転送不可能と判定された場合は、前述の手順(11)の経過時間が手順(6)の閾値t thよりも大きい、もしくは、以上になるまで、アプリケーションメッセージを保持する。
[0062]
 また、最近では、移動デバイスの自動走行や遠隔制御等の、デバイスが通信不可能になる時間を最小化する必要のあるユースケースが増えてきている。したがって、デバイス30が通信不可能になる時間を最小化するために、Wi-Fi(登録商標)やLTE等、シングル/マルチキャリアに限らず、複数の通信ネットワーク用のインタフェースをデバイスに具備している。このように、メッセージ転送に利用できる通信ネットワークが複数存在する場合は、手順(1)~(12)をそれぞれの通信ネットワークに対して実施し、それぞれの通信ネットワークでメッセージ転送の判定を行い、判定結果の良い方の通信ネットワークを利用して、メッセージを転送する。
[0063]
 <閾値決定方法>
 次に、上記手順(5)の閾値t thの決定方法の実施例について詳述する。この閾値決定方法は、前述のとおり、デバイス30が通信ネットワーク10の不安定な環境に存在する際の通信不可能な状態が発生する時間間隔t を使った決定方法である。
[0064]
 なお、他の決定方法としては、デバイス30が、通信ネットワーク10の不安定な環境に存在し始めて最初に通信不可能な状態になってから、通信ネットワーク10の安定した環境に移動して通信可能な状態に遷移するまでの時間を使った決定方法もある。これは、下記閾値決定方法と同様の論理で決定することができる。この方法で閾値を決定した場合は、上記手順(11)で算出する経過時間は、通信ネットワーク10の不安定な環境に存在し始めて最初に通信不可能な状態になってから現在時刻までの時間とする必要がある。
[0065]
 また、下記閾値決定方法は一例であるため、このメッセージ中継装置100を利用したり運用したりするユーザが任意で決定する等の他の方法を実施しても構わない点に留意されたい。
[0066]
 <閾値決定方法(a)>
 下記数1に示すように、予め指定されたn個の時間間隔t の平均値を閾値t thとする。なお、閾値計算に使用する時間間隔t のサンプルを抽出する方法は後述する。
[0067]
[数1]


[0068]
 <閾値決定方法(b)>
 下記数2に示すように、予め指定されたn個の時間間隔t の最大値を閾値t thとする。なお、前述の方法(a)と同様、閾値計算に使用する時間間隔t のサンプルを抽出する方法は後述する。
[0069]
[数2]


[0070]
 <閾値決定方法(c)>
 予め指定されたn個の時間間隔t の中央値を閾値t thとする。対象データを小さい順に並び替えたものをt ,t ,…,t としたとき、下記数3に示す計算式で算出する。なお、前述の方法(a)~(b)と同様、閾値計算に使用する時間間隔t のサンプルを抽出する方法は後述する。
[0071]
[数3]


[0072]
 <閾値決定方法(d)>
 予め指定されたn個の時間間隔t の経験分布関数に基づき、閾値t thについて数値計算、または、経験分布関数に対して近似関数を求め、閾値t thを解析的に解く。経験分布関数の一例を下記数4に示す。閾値t thが時間tとなる確率F(t)は、このメッセージ中継装置100を利用したり運用したりするユーザが任意に決定する。なお、前述の方法(a)~(c)と同様、閾値計算に使用する時間間隔t のサンプルを抽出する方法は後述する。
[0073]
[数4]


[0074]
 <閾値決定方法(e)>
 予め指定されたn個の時間間隔t が、ある確率分布に従うものと仮定し、その累積分布関数に基づき、閾値t thを数値計算する。例として、正規分布に従った場合の確率密度関数を下記数5に示す。また、前述の方法(d)と同様、閾値t thが時間tとなる確率F(t)は、このメッセージ中継装置100を利用したり運用したりするユーザが任意に決定する。また、前述の方法(a)~(d)と同様、閾値計算に使用する時間間隔t のサンプルを抽出する方法は後述する。
[0075]
[数5]


[0076]
 なお、上記数1~数5で用いられた記号は以下のように定義される。
 t :デバイスの通信が不可能な状態が発生する時間間隔
 t th:メッセージ転送の判定基準となる閾値
 t max:n個の時間間隔t の最大値
 n:閾値t thを算出するのに使用する時間間隔のデータ数
 F(t):閾値t thが時間tとなる確率
 μ:閾値t thを算出するのに使用する時間間隔の平均値
 σ:閾値t thを算出するのに使用する時間間隔の標準偏差
[0077]
<時間間隔tnのサンプル抽出方法>
 閾値計算に使用する時間間隔t は、最新n個で抽出しても良いし、無作為に抽出しても良いし、デバイス30の種別や判定時刻や、位置、移動方向/速度、メッセージ転送の成功情報等の属性情報で条件付けしたものから抽出しても良い。ここでは、以下に示す方法を一例として示す。
[0078]
 前述のとおり、デバイス30が通信不可能な状態になる状況は、デバイス30が通信可能な状態と通信不可能な状態を繰り返す通信ネットワーク10の不安定な環境にデバイス30が存在している可能性が高い。そのため、通信可能な状態に遷移したとしても、即時に、通信不可能な状態に再び遷移する可能性が高い。すなわち、通信ネットワーク10の状態変化は、図9のように、時間間隔t の長い通信ネットワーク10が安定している環境にいる状況を経て、時間間隔t の短い通信ネットワーク10の不安定な環境にいる状況に移行し、通信可能な状態と通信不可能な状態の遷移を頻繁に繰り返す傾向がある。マクロで観測すると、この二つの状況を繰り返す傾向がある。
[0079]
 そこで、サンプル抽出法の一例としては、図9のような傾向を考慮して、時間間隔t の長い状態を経て通信不可能な状況が発生した時点を起点として、通信可能な状態に遷移後に再び通信不可能な状況が発生するまでの時間間隔t が長くなるまでの間を抽出対象とする。
[0080]
 また、このような時間間隔t を抽出するためには、時間間隔t が抽出対象であるかを判定する必要がある。ここでは、以下の方法を一例として示す。
[0081]
 すべての時間間隔t に基づいて、確率密度関数f(t)を求める。図9のような傾向があるため、この確率密度関数f(t)は、複数のピークが存在する形状となる。さらに、この確率密度関数f(t)に基づいて、f’(t)=0となる極小値の時間間隔t を算出する。確率密度関数f(t)が、複数のピークの存在する形状の場合は、極小値が複数あり時間間隔t が複数算出される可能性がある。その場合、複数算出された極小値となる時間間隔t のうち、一番小さい値を判定基準とし、これよりも小さい、もしくは、以下となる時間間隔t を抽出する。
[0082]
 ここで、判定基準の抽出方法は、すべての時間間隔t の平均値や中央値等を採用しても良い。
[0083]
 さらに、この抽出された時間間隔t に対して、スミルノフ・グラブス検定やトンプソン検定等の外れ値を検出する検定を実施し、外れ値を除外したものを、閾値計算に使用する時間間隔t とする。外れ値を除外する方法はこれ以外の方法を適用しても構わないし、外れ値の除外自体を実施についても任意である。
[0084]
 以上のように、デバイス30が通信ネットワーク10の不安定な環境から安定している環境に移動したかどうかが重要となるため、通信可能な状態と通信不可能な状態の遷移を頻繁に繰り返す通信ネットワークの不安定な環境における時間間隔t のみを対象とすることにより、通信可能な状態で前回通信不可能な状態になってからの経過時間と、閾値t thを比較することによって、通信ネットワークが安定している環境に移動したと判断することが可能となる。
[0085]
 以上、本発明の実施の形態及び実施例について詳述したが、本発明はこれに限定されるものではない。例えば、上記実施の形態では、アプリケーションメッセージの送信にコネクション型のプロトコルであるTCPを用いたが、コネクションレス型のUDPを用いてもよい。

符号の説明

[0086]
 10…通信ネットワーク
 20…アプリケーション
 30…デバイス
 100…メッセージ中継装置
 110…通信機能部
 111…通信管理部
 112…通信処理部
 120…メッセージ処理部
 121…アプリケーションメッセージ宛先特定機能部
 122…アプリケーションメッセージバッファ機能部
 123…アプリケーションメッセージ転送機能部
 130…状態確認部
 131…デバイス通信状態判定機能部
 132…デバイス通信状態DB
 133…通信ネットワーク状態推定機能部
 134…通信ネットワーク状態DB

請求の範囲

[請求項1]
 アプリケーションが端末宛に送信したアプリケーションメッセージを受信し、受信したアプリケーションメッセージを宛先の端末に転送するメッセージ中継装置であって、
 端末との間の通信可否状態を判定する通信可否状態判定部と、
 前記通信可否状態に基づき端末とメッセージ中継装置との間のネットワーク状態を推定するネットワーク状態推定部と、
 アプリケーションから受信したアプリケーションメッセージの宛先となる端末について推定されたネットワーク状態に基づきアプリケーションメッセージの転送可否状態を判定し、転送不可の場合にアプリケーションメッセージをバッファリングするメッセージ処理部とを備えた
 ことを特徴とするメッセージ中継装置。
[請求項2]
 前記通信可否状態判定部は、端末に対して状態確認メッセージに送信し、当該状態確認メッセージに対する端末からの応答メッセージに基づき、端末との間の通信可否状態を判定する
 ことを特徴とする請求項1記載のメッセージ中継装置。
[請求項3]
 前記通信可否状態判定部は、アプリケーションメッセージの転送に用いられるメッセージ中継装置と端末との間のコネクションの状態に基づき、端末との間の通信可否状態を判定する
 ことを特徴とする請求項1又は2記載のメッセージ中継装置。
[請求項4]
 前記通信可否状態判定部は、メッセージ中継装置と端末との間の通信経路を形成するネットワークの管理装置から取得した端末の接続状態情報に基づき、端末との間の通信可否状態を判定する
 ことを特徴とする請求項1乃至3何れか1項記載のメッセージ中継装置。
[請求項5]
 前記メッセージ処理部は、端末の通信可否状態の経時的な変化に関する現在の状況に基づきアプリケーションメッセージの転送可否状態を判定し、
 前記ネットワーク状態推定部は、前記転送可否状態の判定処理で用いられる端末の通信可否状態の経時的な変化に関する情報を算出してネットワーク状態とする
 ことを特徴とする請求項1乃至4何れか1項記載のメッセージ中継装置。
[請求項6]
 前記メッセージ処理部は、端末が通信可能状態である場合に前回の通信不可状態となった時からの経過時間と前記ネットワーク状態に基づきアプリケーションメッセージの転送可否状態を判定する
 ことを特徴とする請求項5記載のメッセージ中継装置。
[請求項7]
 前記ネットワーク状態推定部は、端末が通信不可状態である複数の期間の間の時間間隔に基づき、ネットワーク状態として閾値を算出し、
 前記メッセージ処理部は、前記経過時間と前記閾値とを比較することによりアプリケーションメッセージの転送可否状態を判定する
 ことを特徴とする請求項6記載のメッセージ中継装置。
[請求項8]
 ネットワークに配備されたメッセージ中継装置が、アプリケーションが端末宛に送信したアプリケーションメッセージを受信し、受信したアプリケーションメッセージを宛先の端末に転送するメッセージ中継方法であって、
 通信可否状態判定部が、端末との間の通信可否状態を判定するステップと、
 ネットワーク状態推定部が、前記通信可否状態に基づき端末とメッセージ中継装置との間のネットワーク状態を推定するステップと、
 メッセージ処理部が、アプリケーションから受信したアプリケーションメッセージの宛先となる端末について推定されたネットワーク状態に基づきアプリケーションメッセージの転送可否状態を判定し、転送不可の場合にアプリケーションメッセージをバッファリングするステップとを備えた
 ことを特徴とするメッセージ中継方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]