<実施例1>
本発明の第一の実施例について説明する。図1は、第一の実施例のネットワークシステムの構成を示す図である。図1において、端末100には、センサが実装されており、通常、1日よりも短い周期において定期的に測定している。端末100には、通信手段が実装されており、センサが測定したデータを定期的に中央処理部300に送信する。データ収集する際の回線(図1で、端末100と集約部200の間の矢印)には、例えば無線が使用される。無線を使用すれば、遠距離でも有線による物理回線を敷設するための開設コストを低減できる。
無線回線を介した端末100の対向には、無線回線の上り側の終端装置となる集約部200が設けられる。集約部200は、無線回線を終端し、電波で受信した信号をデジタルデータに変換する。集約部200が収集したデータは、バックホール回線を通じて中央処理部300に送られる。通常、バックホール回線は有線回線であり、例えばインターネットなどの回線や通信事業者が設けた専用線などが利用される。中央処理部300は、収集した一次データが集計、集約、加工し、第三者が利活用可能な二次データに変換する。
図1においては、端末100は一台しか記載していないが、IoTシステムにおいては、多数の端末100が集約部200と接続し、様々な情報を収集する。端末100は分散した場所に設置されており、端末100の設置範囲をサポートするため、複数の集約部200が配置される場合もある。多数のデータが同時又は同時期に送信されると、送信された信号が重なり、干渉が発生する。このため、受信側である集約部200においてデータの復号に失敗し、正しい情報を受信できない問題が発生する。
この問題を解決するために、システム全体としてデータ送信タイミングを調整し、調整されたタイミングに従って、各端末100がデータを送信する仕組み(スケジューリング機能)が重要である。センサに様々な種類がある場合、データの種類や場所によって収集する頻度が異なる。このような多数の端末100について、システム全体としてのデータ送信タイミングの調整を、ユーザ600やアプリケーションの開発者が考えることは難しい。従って、本実施例では、端末100に実装される通信手段が送信可能な絶対時間を通知し、ユーザ600は送信周期を指定するだけで、絶対時間を決定するために必要なパラメータであるオフセットをユーザ600が指定することなく、予約部400がオフセットを決定する構成とした。
さらに、集約部200がメッセージを受けるべきタイミング301を中央処理部300が予め知っているため、集約部200を含むセンタ側のシステムは、適切なタイミングにおいて、正しい情報が受信できないことを容易に検出できる。このことを利用して、期待するタイミングでメッセージ受信ができない場合に、メッセージの再送をセンタから要求する。この方法は、センタ側のシステムが、スケジューリング機能と連携して、端末それぞれのメッセージ送信タイミングを知っており、当該タイミングから一定時間以内に該当するメッセージを受信して、メッセージが受信できたかを判定することによって、メッセージを受信する度に端末にACKを送信しなくてもデータの完全性を高めることができる。
本実施例では、予約部400がデータ送信タイミングを決定し、端末100に指示する。無線の通信路としては、例えばLoRaWANなどのIoT用途の通信方式が適する。本実施例では、「メッセージの送信タイミングをスケジューリングすること」を特徴としているが、無線システム一般において使われるスケジューリングとの違いを明らかにする必要がある。一般に、モバイル通信方式では、集約部200がスケジューラ機能を備えており、端末100が送信するスケジュール割り当て要求に応じて動的に回線を割り当てている。このモバイル通信のスケジューラは、端末100からのランダムアクセスによるキューの処理を処理するものであり、予めシステムとして、メッセージの送信タイミングを調整する本実施例とはスケジューリングの考え方が異なる。このモバイル通信方式と本実施例との違いを明確にするために、モバイル通信方式の仕組みを説明する。
端末100は、集約部200が作成し指示するスケジューリング情報に従ってデータを送信する。しかし、集約部200が作成するスケジューリング情報は、その時点で端末100から受信したスケジューリング割り当て要求をバッファにキャッシュして、特定のアルゴリズムに従って優先順位を決めているにすぎず、高々1秒以下の範囲の短期的なスケジューリング制御しか行っていない。それゆえ、1秒以下の短期的なメッセージの衝突を緩和して回避する効果しか期待できない。大量の端末100が同時にスケジューリングを要求する環境においては、要求そのものを分散させて回線を有効利用することは困難である。
モバイルのスケジューラでは、特定のトラヒックが集中する時刻には回線の利用率が限界にまで上昇し、回線がパンク状態になってしまう。例えば、0時0分などの特定時刻に多くの端末100からのトラヒックが集中する場合、端末100から大量のスケジュール要求がほぼ同時に送信され、割り当て可能な回線の帯域幅で回線処理が飽和し、長期に渡って通信が滞る状態が続く。このような事態を回避するため、本実施例では、IoTのトラヒックの性質を考慮し、予約部400が特定時刻へのトラヒック集中を回避するように予め送信タイミングを分散させる。これにより特定時刻へのトラヒックの集中を回避できる。
次に、予約部400の動作を説明する。予約部400は、例えば5ミリ秒や30ミリ秒などの固定の時間分解能で、1日を時間のスロットに分割しており、各スロットに付された識別子によって端末100がデータを送信するタイミングを指示する。本実施例では、ポータル500がネットワークのサービスメニューを提供する。ユーザは、提供されたメニューからAPIを使って利用したいサービスを選択する仕組みを提供する。特にIoTにおいて重要なのは、報告周期であることから、ポータル500上では、複数の報告周期(例えば1分周期や1時間周期などの相対時間)が選択可能な通信サービスのメニューがユーザに提供される。
本実施例の中央処理部300、予約部400及びポータル500は、プロセッサ(CPU)、記憶装置及び通信インターフェースを有する計算機システムによって構成される。
プロセッサは、メモリに格納されたプログラムを実行する。メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
記憶装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。記憶装置は、プログラムの実行時にアクセスされるデータを格納する。また、記憶装置は、プロセッサが実行するプログラムを格納してもよい。この場合、プログラムは、記憶装置から読み出されて、メモリにロードされて、プロセッサによって実行される。
CPUが実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して物体検出装置に提供され、非一時的記憶媒体である不揮発性の記憶装置に格納される。このため、計算機システムは、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
中央処理部300、予約部400、ポータル500の各々は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
図2を用いて送信周期の種類を説明する。図2において、横軸1301は、例えば、1日(24時間)を表している。140Xで示す縦棒は、そのタイミング(スロット)で信号を送信することを表す。1401は、1日に1回しか送信しないサービスを示す。1302は半日(12時間)を表しており、送信タイミング(1402-1、1402-2)は1日の内、12時間離隔した2回である。1303及び1304も同様であり、1304は、1/4日(6時間)を表しており、送信タイミング(1404-1、1404-2、1404-3、1404-4)は、1日の内、6時間離隔した4回である。ユーザは、このような送信周期のメニューを選択することによって、例えば1分周期で報告が上がる通信回線を契約できる。
ここで、ユーザがメニューから選択するのは「周期」だけで、絶対時間を確定するために必要なもう一つのパラメータである「オフセット」は選択されず、ユーザに隠ぺいされている点がポイントとなる。予約部400は、複数の端末100が互いに送信タイミングが重なって通信エラーが発生しないように、ユーザから指示された「周期」を維持しつつ、複数の回線のオフセットを調整して絶対時間である送信タイミングを決定する。そして、決定した絶対時間(周期とオフセット)を端末100に伝え、干渉を回避する。本実施例によると、ユーザとの契約事項は周期のみで、オフセットは隠ぺいするので、ユーザは干渉などの問題を特に認識せずに通信回線を調達できる。また、予約部400は、オフセットも含めて送信周期を端末100に指示することによって、システム全体としての送信タイミングの集中を回避できる。
図3を用いて、オフセットの考え方を説明する。図3は、送信周期が同じでオフセットが違う送信タイミングを示し、横軸1301は1日(24時間)を表している。図3に示す例では、1日を3等分した1303(8時間)だけ離散した3つの送信タイミング(1403-1、1403-2、1403-3)があり、データの送信時刻は0時0分、8時0分、16時0分である。また、図3は、時刻を20分オフセットした三つの送信タイミング(1403-4、1403-5、1403-6)も示しており、データの送信時刻は0時20分、8時20分、16時20分である。送信時刻をオフセットしていないペア(1403-1、1403-2、1403-3)と、送信時刻を20分オフセットしたペア(1403-4、1403-5、1403-6)とでは、互いに20分ずれて同じ「周期」でデータが送信される。「周期」は同じであるが、「オフセット」が20分ずれている。そのため、送信タイミング(データが送信される絶対時間)は同じならない。このように、同一の送信周期であっても、オフセットの調整によってトラヒック集中を回避した割り当てが可能である。
予約部400は、ユーザから要求があった周期で、過去に割り当てた送信タイミングと互いに重ならないオフセットを探して、該当する端末100の送信タイミングの絶対時間(周期とオフセットのペアー)を決定する。
図4は、予約部400のユーザ側とのインターフェースと、端末100とのインターフェースの違いを示す。予約部400が端末100に対して割り当てる送信タイミングは、既に説明した通り、「周期」と「オフセット」からなる絶対時間の群を示す情報である。一方で、ユーザ600とやり取りするスケジューリングに関わる情報は、「周期」からなる相対時間の情報だけで、オフセットに関わる情報はやり取りされない。予約部400が端末100に指示する周期は、ユーザが要求した周期と一致しており、ユーザが選択した相対的な送信周期は守られる。
端末がメッセージを送信するタイミングは、センタ側にあるスケジューラが決定しているので、スケジューリングの結果を蓄積したファイルを参照することによって、受信側であるセンタにおいて、信号が適切なタイミングで受信されたかを容易に判定できる。その判定結果に基づいて、スケジュール通りにメッセージが受信されていない場合を検知し、再送を指示するメッセージを端末に対して送る仕組みを作り、メッセージ受信の失敗によるデータの欠損を防止できる。この仕組みにより、集約部200は、端末100からのメッセージ受信時に、各々の受信メッセージに対するACKメッセージを送信する必要がなくなる。例えば、誤り率が10%の無線回線の場合、全メッセージに対してACKメッセージを送付する方法と、メッセージ受信失敗時のみに再送要求を行う方法とを比べると、再送を端末に認知させるためのメッセージの送信回数は、実施例では1/10に削減できる。ACKメッセージは、1ビットの情報であるが、LPWAでは、大きなオーバーヘッドを付けてメッセージを送るため、ACKメッセージの送信に周波数リソースを多く消費する。例えば、LoRaWANの場合では、メッセージの物理フォーマットは、プリアンブルと呼ばれるシンボル長の長いオーバーヘッドとMACヘッダが、1ビットのACK情報に加算されるため、プリアンブルの分の周波数リソースも消費する。従って、ACKメッセージを省略し、再送が必要な端末にのみ再送要求を送れば、周波数利用効率の改善に有効である。
しかし、LoRaWANのようなLPWAでは、通常、端末の送信タイミングはセンタ側では分からないため、ACKメッセージによる確認が望ましい。しかし、本実施例の場合、該当端末のメッセージ送信タイミングは、センタ側のスケジューラによって決めているため、センタ側で端末の送信タイミングを取得でき、前述した再送要求の仕組みを実施できる。
この再送メッセージの送信について、図9、図10、図11、図13を用いて詳細に説明する。
図9は、従来例において、端末100とセンタ側システム(集約部200、中央処理部300)とのメッセージの送受信を示す図である。図9において、中央処理部300は、上位の予約部400からのスケジューリング情報を含むメッセージの送信を集約部200に指示する(2001)。集約部200は、中央処理部300から指示された情報を端末100に送信する(2002)。
端末100の無線部は、受信したメッセージを端末100の制御部に報告する(2003)。制御部は、指示された送信タイミングに従って、メッセージの送信タイミングを調整し、適切なタイミングにおける情報の送信を無線部に指示する(2004)。無線部は、指示に従って該当するメッセージを無線信号として集約部200に送信する(2005)。
集約部200は、受信したメッセージに含まれる信号の復号の成否を判定し、復号に成功した場合には中央処理部300にメッセージを伝える(2006)。また、集約部200は、成否の結果をACKメッセージとして端末100に送信する(2007)。
端末100の無線部は、制御部にACKメッセージの内容を報告する。制御部はACKメッセージに含まれる信号の復号の成否の結果によって再送するかを判定する。すなわち、ACKメッセージが受信され、且つ、復号の結果が成功(ACK)である場合以外に、メッセージを再送する。
図10及び図11は、本発明の実施例において、端末100とセンタ側システム(集約部200、中央処理部300)とのメッセージの送受信を示す図である。図10において、中央処理部300は、上位の予約部400からのスケジューリング情報を含むメッセージの送信を集約部200に指示する(2001)、集約部200は、中央処理部300から指示された情報を端末100に送信する(2002)。
端末100の無線部は、受信したメッセージを端末100の制御部に報告する(2003)。制御部は、指示された送信タイミングに従って、メッセージの送信タイミングを調整し、適切なタイミングにおいて情報の送信を無線部に指示する(2004)。無線部は、指示に従って該当するメッセージを無線信号として集約部200に送信する(2005)。
集約部200は、受信したメッセージに含まれる信号の復号の成否を判定し、復号に成功した場合には中央処理部300にメッセージを伝える(2006)。図9と異なり、集約部200は、復号の成否をACKメッセージとして端末に送信しない。中央処理部300では、スケジューラが定めた時刻を参照し、予め利用者が設定した状態と、上記の推定された端末の状態とを比較し、差分が発生した場合に、規定の制御を実施する。例えば、予め利用者が設定する状態として、「予め設定された時刻において期待されるシーケンス番号を持つデータが受信されること」を設定する。予め設定された時刻において、条件を満たさない(期待されるシーケンス番号を持つデータが受信されない)場合、予め利用者が定めたアクションを実行する。例えば、アクションは、「該当端末に対して、一定の時間が経過後に該当するデータの再送を要求すること」である。図10では、集約部200が中央処理部300に伝えるメッセージ2006の受信タイミングに設けられた窓2020の範囲でメッセージ2006を受信できた場合には、ACKは送信せず、次の受信タイミングまで該当端末に対する処理はない。
図11は、受信タイミングに設けられた窓2020において、メッセージ2006を受信できなかった場合の処理を示す。
中央処理部300は、端末の状態が期待される状態と異なる、すなわち、受信タイミングに設けられた窓2020において、メッセージ2006を受信できなかったので、一定又は決められた計算によって得られた時間の待機の後、再送指示のメッセージを発行する(2009)。集約部200は、端末に再送指示を送信する(2010)。端末100の無線部は、再送メッセージを受けると、制御部に再送メッセージを伝え(2011)、先のメッセージ2005が正しく受信されていないことを知る。制御部からの指示2012に従って、無線部は集約部200にメッセージを再送する(2013)。集約部200は、受信した再送メッセージに含まれる信号の復号の成否を判定し、復号に成功した場合には中央処理部300にメッセージを伝える(2014)。
再送メッセージの指示において、一定又は決められた計算によって得られた時間の待機時間を設けたが、この意味ついて、図13を用いて説明する。図13(A)は、端末100と集約部200との間の伝搬環境の品質(例えば、無線信号の受信電界強度)2030を示している。伝搬環境の品質は、通信の誤りと密接に関係する受信信号強度等である。図13(A)において、横軸は時間を示し、品質が高いほど、通信回線は良好であることを模式的に表している。IoTのようなセンサの場合、モバイル環境ではなく、端末100は固定位置に設置される。このような場合、無線の伝搬環境の変化は周囲の環境の変化に依存し、人や社会の活動に応じた速度で変動する。すなわち、モバイル通信のように数ミリ秒オーダの変化ではなく、数分から数時間オーダの長い時間で変動する。図13(A)に示す品質2030は、横軸における中央部分で低い値となっているが、そのタイミングにおいて数時間程度の品質が劣化している。このような状況において、図13(B)に示す従来例、図13(C)に示す本実施例における端末100と集約部200との間のメッセージの送受信を矢印で示している。×マークが付されている矢印はメッセージが届いていないことを示し、伝搬環境の品質が低下している期間と一致している。
図13(B)に示す従来例において、端末100はACKメッセージを受信しないため、再送を繰り返すが、すぐには伝搬環境が回復しないため、何度も再送を繰り返す。この繰り返しの周期は、無線方式に依存するため、環境やソフトの作りで制御し難く、環境に依存した設定が困難である。
図13(C)に示す本実施例において、再送要求のタイミングは無線方式に依存せず、環境に応じてユーザが設定できる。これにより、周波数利用効率を低下させるACKメッセージの送信を抑止しつつ、通信の失敗を端末100に伝え、再送を行うための仕組みを構築できる。よって課題が解決される。
次に、端末100がメッセージ受信する場合について説明する。端末100は、ある周期でスリープから復帰して一定のタイミングにおいて端末への信号が集約部200から送られていないかをチェックしている。集約部200は、端末100毎に定められたスリープから復帰して、信号を受信しているタイミングに合わせて再送処理を指示するメッセージを送付する。
予約部400は、中央処理部300及び集約部200を経由して、端末100にスケジューリング情報を送る。端末100は、新たな送信タイミングを含むスケジューリング情報の情報を受けると、受信した新たな送信タイミングに従って、信号を送信する。
本実施例のサービスでは、通信は特定の周期で実行され、干渉も回避されるように制御しやすいため、管理を自動化しやすい。例えば、ある時刻に発生した不具合に関わる通信は特定が容易である。そのため、問題発生時の関連ノードを容易に特定できる。
図5を用いて、スケジュールが割り当てられるまでの手順を説明する。図5の上部には端末100、集約部200、中央処理部300、予約部400、ポータル500、ユーザ600が記載されている。まず、ポータル500は、ユーザに周期を選択させるために、いくつかの周期のオプションを示す(10)。周期のオプションは、提供される通信サービスのテンプレートの形式でユーザに提示されてもよい。ユーザ600は、ポータル500が示したオプションから選択したものをポータル500に伝える(20)。ポータル500は、選択結果を受信すると、選択された周期を予約部400に伝える(30)。予約部400は、現在割り当てられているタイミングと、ポータル500から受信した周期から、データ送信タイミングが衝突しない(すなわち、他の通信と干渉しない)オフセットを探索し、探索されたオフセット及び周期を端末100に指示する(40)。端末100は、指示されたオフセット及び周期に基づいて定められるタイミングで測定結果を報告する(50-1、50-2、50-3)。
図6を用いて、スロットの割り当てにおいて、異なる周期でオフセットがずれたスロットが互いに重ならない様に設定する例を説明する。図6の横軸1001は、36×10ミリ秒の時間を示し、この時間内に36個のスロット2000が配置されている。また、図6は、スケジューリング結果3000を示し、40ミリ秒毎に割り当てられた「0/4」でマークされた送信タイミングを例示する。この「X/Y」のXはオフセットを、Yは周期を示す。図6で示す6種類のスケジューリング(「0/4」、「1/16」、「2/4」、「5/16」、「9/16」、「13/16」)は、いずれも時間的に衝突しない割り当てを可能としている。ユーザからは、2種類の40ミリ秒周期のスロットと、4種類の160ミリ秒周期のスロットが割り当てられているように見えるが、予約部400がオフセットを調整することによって、これらが互いに衝突せずに同時に利用できる様にユーザに見せることができる。ユーザはオフセットを意識せずに、衝突しない割り当てを生成して、課題が解決される。
図6に示す例では、4分割されたスロットを更に4分割して1/16のスロットを作り、四つの1/16のスロットを異なるオフセットとして利用する。同様の操作を行うと、図7に示すように、1/64のスロットも作れる。
図7を用いて、割り当てが互いに衝突が発生しない周期とオフセットからなるペアを簡易に作る方法を説明する。図7において、「0/1」が左端に書かれているが、この枠を分解して、4スロット周期で、オフセットがそれぞれ0、1、2、3の4つの枠を作ることができる。この4つの枠は互いに衝突しない。また、その内の「3/4」だけを分解し、更に4分割された(すなわち最初の「0/1」から16分割された)4つの枠を作ることができる。そのオフセットを3、7、11、15とすることで、「0/4」、「1/4」、「2/4」、「3/16」、「7/16」、「11/16」、「15/16」は互いに衝突しない。このようにして、間隔があいたスロットをつくれば、無駄がないスロットを利用できる。さらに、「15/16」を4分割して64スロット周期のタイミングも作成すると、「0/4」、「1/4」、「2/4」、「3/16」、「7/16」、「11/16」、「15/64」、「31/64」、「47/64」、「63/64」を作成し、これらは互いに衝突を起こさない。
本実施例では、図1において、端末100はセンサを含む例で説明したが、センサ以外であっても、データを生成する装置、手段であれば、本発明の効果は変わらない。また、測定する対象も限定されるものではない。また、報告周期について、1日以下の例を挙げたが、1日よりも長い周期においても、本実施例は適用可能である。その場合、本実施例ではスロットの周期の最大値を1日として説明している部分を1週間あるいは1年と読み替えて実施方法を拡張することで本説明と同じことが容易に実施可能である。また、端末100と集約部200の接続について、無線通信を例に挙げて説明しているが、有線通信であっても、帯域に上限がある点は同じであり、同時に通信を行う大量の端末からのデータが集中すると、ネットワークだけでなく、データを加工する処理手段にも負荷がかかるため、時間的に分散されることが望ましい。よって、本実施例の効果は有線通信においても適用し、その効果が認められることは自明である。また、本実施例は、集約部200と中央処理部300が分離され、バックホール回線で接続する説明をしているが、これら(200、300)が物理的に1つの装置で実現される場合においても、端末100と集約部200間の回線における本実施例の効果は変わらないことは明らかである。更には、集約部200(200)が複数あり、それぞれが個別の識別子を持つなどして独立して動作する場合においても、端末100とのメッセージの送受信において隣接する複数の集約部200をグループとみなして、同グループ内での同時時刻の送信を回避することで、複数の集約部200に関する問題解決に本実施例が適用できることは明らかである。十分に距離が離れ、電波が微弱にしか届かず、その影響を及ぼさない範囲については、同じ送信時間の送信時間を与えたとしても問題はない。本実施例の説明では、システム全体としてデータ送信タイミングを調整するとの記載部分を、システム全体で、互いに影響するデータ送信タイミングを調整するとの記載に読み替えることで、本実施例が適用可能である。
図8を用いて、予約部400の動作例を説明する。予約部400は、ユーザ600からの指示である「周期」を受信すると、図8に示す処理を実行する。
まず、ステップ6000において、ポータル500から周期を取得する。また、ステップ6001において、既に割り当てられた周期及びオフセットの情報を取得する。予約部400は、既に割り当てられた周期及びオフセットの情報を保持しており、ステップ6001ではこれを取得する。
ステップ6002において、新たなオフセットを取得する。例えば、オフセットを0から開始すればよい。ステップ6003において、取得した新たなオフセットを用いた仮の割り当てに従って、既に割り当てられた情報と照合し、割り当てが衝突するかを判定する。衝突が発生しなければ(ステップ6003でNo)、ステップ6005において、端末100に割り当てを通知して、割り当て処理を終了する。
一方、ステップ6003において、衝突を検出した場合(ステップ6003でYes)、ステップ6004において、全てのオフセットについて調査を終えたかを判定する。一部のオフセットの調査を残っている場合、ステップ6002に戻り、新たなオフセットについての調査を継続する。一方、全てのオフセットの調査を終えていれば、ステップ6006において、割り当てを行わず、割り当てが失敗したことをポータル500に通知する。
図12を用いて、中央処理部300における再送指示メッセージに関する処理を説明する。図12は、再送指示に関わるシーケンスの例を示す図である。
中央処理部300は、メッセージの送信後、端末100が送信するメッセージの受信を待ち受ける(6100)。端末100はスケジューラが定められた時刻にメッセージを送信するため、端末100がメッセージを送信する時刻にマージン時間を含めた時刻を処理時刻(=該当時刻+マージン時間)とする。この処理時刻において、期待される状態と現状とを比較する(6103)。比較は様々な方法が考えられる。例えば、期待される状態が、処理時刻において、期待されるシーケンス番号を持つデータが受信されて、保持されること(6110)として説明する。この例では、端末からのメッセージに固有のシーケンス番号が付されており、そのシーケンス番号は新しいメッセージを送信する度に加算される。従って、新たに送信されるメッセージには、直近のメッセージのシーケンス番号に1を加算した番号が付される。
その最新の情報が期待されるタイミング、すなわち処理時刻において受信済みであることをクライテリアとする。条件を満たさない場合には、端末の状態が期待される状態と異なるため、制御アクション(6104)を実行する。一方、条件が満たされる場合には(すなわち、最新のシーケンス番号のメッセージを受信していれば)、端末の状態が期待される状態であるため、メッセージの受信処理(6101)を実行してデータを格納すると共に、タイマをリセット(6102)して、次のメッセージを受信するための準備を行い、待ち受け状態に戻る(6100)。
条件が満たされない場合に実行される制御アクション(6104)には様々なものが考えられるが、本例では、所定の時間の待機の後に再送要求のメッセージを端末100に送信し(6111)、その応答を待つ。応答があった場合には、受信処理を実行する(6101)。応答がない場合には、所定回数の再送要求を行ったかを判定し(6113)、所定回数未満であればさらに再送要求を行い(6111)、所定回数に達したならば再送要求を停止する(6114)という制御アクションを実行する。本実施例の動作を行うために、はじめにタイマを設定する必要があるが、そのタイマは、図8で説明した割り当ての通知(6005)の後に設定するとよい。
<実施例2>
本発明の第二の実施例について、図14を用いて説明する。図14は、図13において説明した再送要求に関する待機時間の決定方法を示すシーケンス図である。第一の実施例では、システム全体として所定の待機時間を設定しているが、既に説明している様に、端末100の設置場所や設置方法によって電波伝搬の変動の周期が変化する。このため、システム全体で一つの待機時間ではなく、端末100に個別の待機時間の設定が望ましい場合に、第二の実施例が好適である。端末100に個別に待機時間を設定することによって、各端末100が置かれた環境に対応したデータ転送方法を採用できる。例えば、工場において、端末100の周囲で定期的な機械や機器の動作や移動があり、その周期に応じて電波環境が変化する環境であれば、その機器が移動する周期に応じた再送の周期の設定が適切である。
但し、個々の端末100の特性が不明である場合、簡易な決定方法を採用しても、できるだけ時間間隔を取ることが再送を成功させる可能性が高められる。すなわち、各端末100が設定している報告の周期に応じて時間間隔を決めることは有効である。よって、待機時間を個々の端末100の報告周期をN分割し、分割された時間単位を待機時間とする方法が簡便かつ効果的である。例えば、N=2において報告周期をN分割することを考える。報告周期が2時間の端末Aと、報告周期が4時間の端末Bの2種類がある場合、端末Aについては、1時の報告の次は3時の報告であるが、1時の報告が失敗した場合には、2時に再送を指する。また、同様に、端末Bについては、1時の報告の次は5時の報告であるが、1時の報告が失敗した場合には、3時に再送を指示する。
このように、個別に報告周期に応じて設定することによって、再送の頻度を減らすことができる。図14では、これを実現するために、各端末のタイマ設定値として、端末毎の周期を取得し(7000)、取得した周期の1/2の値を待機時間として設定する(7001)。
端末100に個別に待機時間を設定する他の例を説明する。図15は、センサの種別毎に異なる設定が記録されたテーブルを予め持ち、センサの種別毎に異なる待機時間を設定する方法を示す。センサの種別と設置される環境に関連性がある場合には、このようなセンサの種類によるグルーピングが有効である。例えば、クレーンの近傍に設置されるセンサは、クレーンの動作の影響を受ける可能性が高く、クレーンの動きに応じた待機時間が設定されるとよい。また、運搬車の車庫の近傍に設置されるセンサは、車が収納される例えば夜間などに影響を受ける可能性が高い。このように周囲環境の変化との関係で再送の時間を決定するとよい。図15では、センサ毎の種別(種別毎テーブルのTYPE)を取得し、それによって、予め設定された種別毎テーブルを参照して待機時間を取得することで、センサの種別に応じた待機時間を設定できる。
また、同じセンサのグループでも、周囲環境が異なるために待機時間を調整する必要がある場合もある。そのため、自動的に待機時間に補正を加える方法を説明する。例えば、1時間毎に温度を測定する温度センサのグループあり、設置された場所の特殊性に影響を受ける場合、前述した種別毎テーブルの他に、個別の調整が可能な時間的な待機時間のオフセットを加えて、端末100に個別に待機時間を設定できるようにする。
図16に、待機時間に補正を加えるためのシーケンスを示す。該当する端末は、予め定められた待機時間の設定で動作している。そのため、図12で説明した再送回数の管理(6113)において、期待される動作は、再送の1回目でデータ送信が成功することである。しかし、1回目の再送でデータ送信が成功せずに、再送を繰り返す場合、その環境において待機時間が足りないことを意味する。そのため、再送回数を取得し(7004)、取得した再送回数に応じて該当する端末個別のオフセット時間αを増加させて待機時間を長くするように調整する。図15に示すように端末の種別毎の待機時間をテーブルに定義しておく。そして、当該テーブルから得られる値に、この個別のオフセット時間αを加えた時間を待機時間に設定する。これにより、同一のグループでも、個別のオフセット時間に設定できる。
以上に説明したように、本発明の実施例によると、中央処理部300が、予約部400が決定したタイミングから定められる処理時間帯において、端末100が送信した情報を監視し、監視された情報から端末100の状態を推定し、推定された端末100の状態と予め設定された状態とを比較した結果に応じて(例えば、これらの状態が異なる場合に)、所定の制御を実行するので、端末100の正常な動作状態を規定するマニフェストに従って動作をしていない端末に所定の制御をさせることができる。また、ネットワークの効率的な運用ができる。
また、中央処理部300は、送信信号を処理時間帯(窓2020)において受信しない場合に、所定の待機時間後に再送指示を端末に送信するので、回線利用効率を向上できる。すなわち、処理時間帯においてデータを受信できたことを示すACKメッセージの送信をなくし、データが届かなかった場合にだけ再送を要求する仕組みを設定でき、無駄な無線リソースの消費を抑制して無線回線の利用効率を向上できる。特に、LPWAなどの無線方式に有効である。
また、端末10毎に所定の待機時間が設定可能としたので、各端末に適切なタイミングで再送を要求できる。すなわち、各端末の状態を把握することによって、各端末に適切なアクションを実行させるためのトリガーを起こすことができる。
また、中央処理部300は、端末の種別によって予め設定された待機時間を参照して、端末100の種別によるグループ毎に所定の待機時間を設定するので、端末毎の再送タイミングの設定が不要であり、端末の管理が容易になる。
また、予約部400が、端末100が情報を送信する時間としてユーザが指定した相対時間を受信し、相対時間に従って端末100が通信した場合に他の通信と干渉しないように、IoTシステム内で一意に定まる絶対時間をスケジューリング情報として定めるので、短い周期(例えば、数分程度)のデータ収集において回線利用効率を向上できる。回線としてLPWAなどのアンライセンスの無線方式に適用すると、本発明は有効である。また、3GPPなどの標準団体で議論されているNB-IoTなどのIoT専用に設けられたモバイル通信においても有効である。また、サービスを提供するためのアプリケーションソフトウェアを開発する上で、ネットワークの詳細な設定を隠蔽し、上位概念である送信周期と帯域を指定するだけでネットワークが利用できるため、アプリケーションソフトウェアの開発速度を向上できる。
また、絶対時間は、基準時刻からのオフセット及びユーザが相対時間として指定した周期から定められるので、従来の回線提供に比べて、各ユーザによる回線の使い方を明確にできるため、ネットワークの管理が容易となり、管理のコストを低減できる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。