以下の詳細な説明は、添付の図面を参照して記述されている。図面において、参照符号の最も左の桁によって、当該参照符号の初出の図面を識別することができる。同様又は同一の項目又は特徴については、異なる図面においても同一の参照符号が用いられる。
ネットワークの特徴及び送信されるデータの特徴に従った、ネットワークを介したデータ送信を管理するための構成及び技術を含む実装がある。例えば、計算機は、例えばまもなく、ネットワーク障害が発生すると予測してもよい。当該計算機は、ネットワーク障害中に受信すると予測された1以上のデータ種別に関連付けられた優先度を決定してもよい。さらに、計算機は、ネットワーク障害中に受信すると予測された1以上のデータ種別の遅延カテゴリを決定してもよい。計算機は、当該1以上のデータ種別のためのデータ送信ルールを、少なくとも部分的には各々の優先度及び遅延カテゴリに基づいて、決定してもよい。障害発生前又は障害発生中において、計算機は、1以上のデータ生成器から、ネットワークに送信するためのデータを受信してもよい。ネットワークが利用可能になったとき、計算機は、少なくとも部分的にはデータ送信ルールに基づいて、受信したデータの少なくとも一部をネットワークに送信してもよい。
計算機が、ネットワーク状態履歴情報及び計算機の現在の地理的位置の示唆に基づいて、ネットワーク障害の発生を予測してもよい例がある。さらに、計算機は、障害発生前及び/又は障害発生中に、第1センサからの第1データと、第2センサからの第2データと、を受信してもよい。障害が終わった後、計算機は、第1データに関連付けられた第1優先度と第1遅延カテゴリに基づいて、第1データの少なくとも一部を送信してもよく、第2データに関連付けられた第2優先度と第2遅延カテゴリに基づいて、第2データの少なくとも一部を送信してもよい。
本実施形態に記載の実施例は、送信ネットワークの特徴及び送信されるデータの特徴に従う、データ送信の管理を含むデータのエッジ処理のための技術及び手順のために用意されている。例えば、本実施形態中のデータ送信技術は、データ量、データ速度、及びデータの種類を減少させるための、及び実施例においてクラウド計算機とも呼ばれることがある1以上の計算機にネットワークを介してデータを送信するための、生成済みデータに対する意思決定の分散を含んでもよい。従って、本実施形態中の例は、ネットワーク計算機に送信されるデータのフィルタリング及び/又は圧縮のための意思決定の分散を可能にする。
計算機が、送信に優先して、無線ネットワークの現在の示唆された信号品質及び/又は無線ネットワークの予測された信号品質に基づいて、アプリケーションレベルでのデータの解像度を減少させる(例えばデータ圧縮)実装がある。例えば、計算機の現在位置、信号品質履歴及び他のネットワーク状態履歴、又は信号品質データベース等に基づいて、計算機は近い将来における無線ネットワークの信号品質を予測する。計算機は、無線ネットワークの信号品質の未来の予測値を、次回の1以上の時間間隔において用いてもよいし、現在の時間間隔において送信するデータ及び未来の時間間隔において送信するデータを決定するために、リソースの割り当てと、受信したIoTデータの圧縮と、を実行してもよい。
本議論の目的のために、無線ネットワークを介してデータを送信する計算機の環境における実装例が記述されており、また、計算機は携帯可能であってもよい例もある。しかし、本実施形態は、当業者にとって明白となるように、以下に記載する特定の例に限定されず、本実施形態の観点に照らして、他種の計算機、他種のデータ、他種の環境、他のシステム構成等に拡張されてもよい。
図1は、本実施例におけるシステム100の構成例を示す。システム100は、例えば、1以上のネットワーク106を介して少なくとも1つのネットワーク計算機104と通信可能な、少なくとも1つの計算機102を含む。計算機102は、例えば、デスクトップ、ワークステーション、サーバ、ラップトップ、タブレット計算機、携帯デバイス、スマートフォン、携帯電話、ウェアラブル計算機、ビークルエレクトロニックコントロールユニット(ECU)等、又は埋め込み計算機等のような、ネットワークを介してデータを送信可能な種々の計算機のいずれであってもよい。
いくつかの例において、計算機102は、IoTデータ108を1以上のデータ生成器110から受信してもよく、さらに、ネットワーク106を介してデータ108の少なくとも一部を、データ送信112として送信してもよい。例えば、データ生成器110は、カメラ、マイク、グローバルポジショニングシステム(GPS)装置、身体状態センサ、輸送機器センサ、他の機器のためのセンサ、並びに人間、動物、及び局所的状態のためのセンサ等のような種々のセンサ、を含むIoTデバイスのいずれであってもよい。さらに、データ108は、センサデータに加え、データ生成器110及び/又は計算機102によって生成された他の種別のデータ等を含んでもよい。
計算機102は、様々な環境におかれてもよい。一例として、計算機102は、自動車、トラック、列車、ボート、飛行機、ドローン、又はオートバイ等の輸送機器114−1に埋め込まれていてもよいし、含まれていてもよい。例えば、データ生成器110は、位置情報、速度情報、機械状態情報、燃料情報、運転者情報、及び自律航法情報等の、ネットワーク計算機104に送信される当該輸送機器についての情報を供給してもよい。
他の例として、計算機102は、人114−2によって着用されてもよいし、運搬されてもよい。また、計算機102は、スマートフォン、携帯電話、ウェアラブル計算機、フィットネストラッカー、又は他の携帯可能なデバイス等の、持ち運び可能な計算機を含んでもよい。例えば、データ生成器110が、心拍計、血糖計、又はフィットネストラッキングセンサ等の身体状態センサを含むと仮定する。歩行中、走行中、又は輸送機器による移動中のような、移動時において、人114−2が計算機102を持ち運びしてもよい例がある。
また、他の例として、計算機102が設置される環境は、家屋114−3、職場114−4、又は移動体でない他の場所であってもよい。さらに、通信能力及びデータ処理能力を有する、サーモスタット、アラームシステム、又はアプライアンス等のように、計算機102とデータ生成器110とは統合されていてもよい例がある。本開示の受益者である当業者にとって、多くのバリエーションが明らかになるであろう。
計算機102は少なくとも1つのプロセッサ116、1以上のコンピュータ読み取り可能媒体118、及び1以上の通信インタフェース(I/F)を含む。プロセッサ116それぞれは単一又は複数のプロセッシングユニットであってもよいし、単一若しくは複数のプロセッシングユニット又はマルチ処理コアを含んでもよい。プロセッサ116は、1以上のCPU、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、DSP、ステートマシン、論理回路、及び/又は操作指示に基づいて信号を操作する装置として、実装され得る。例えば、プロセッサ116は、本実施形態中のアルゴリズム及びプロセスを実行するよう具体的にプログラムされた又は構成された適切な種別の1以上のハードウェアプロセッサ及び/又は論理回路であってもよい。プロセッサ116に本実施形態中の機能を実行させるようプログラムすることができる、コンピュータ読み取り可能媒体118に格納されたコンピュータ読み取り可能な指示、を取得し実行するように、プロセッサ116が構成されてもよい。
コンピュータ読み取り可能媒体118は、コンピュータ読み取り可能な指示、データ構造体、プログラムモジュール、又は他のデータのような情報、を格納するためのあらゆる種類のテクノロジーに実装された揮発性メモリ及び不揮発性メモリ、並びに/又はリムーバブルメディア及びノンリムーバブルメディアを含んでもよい。例えば、コンピュータ読み取り可能媒体118は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、光学ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、RAIDストレージシステム、ストレージアレイ、ネットワークアタッチトストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を保持するために利用可能で計算機によってアクセス可能な他の媒体を含んでもよいが、これらに限定されるものではない。コンピュータ読み取り可能な非一時的媒体について言及するときに、エネルギー、搬送波信号、電磁波、及び/又は信号それ自体のような媒体を除外する限り、ネットワーク計算機104の構成次第でコンピュータ読み取り可能媒体118は、有形の非一時的媒体であってもよい。いくつかの場合において、コンピュータ読み取り可能媒体118は、計算機102と同一の場所にあってもよい。また、他の例において、コンピュータ読み取り可能媒体118は、例えばネットワーク106を介してアクセス可能である場合のように、一部は計算機102の遠隔地にあってもよい。
コンピュータ読み取り可能媒体118はプロセッサ116によって実行可能な多数の機能部を格納するために利用されてもよい。多くの実装において、これらの機能部は、プロセッサ116によって実行可能な指示又はプログラムを含み、これらの指示又はプログラムが実行された場合、計算機102に起因する動作をプロセッサ116に具体的に実行させる。コンピュータ読み取り可能媒体118に格納された機能部は、データ管理アプリケーション122を含んでもよい。データ管理アプリケーション122は、1以上のコンピュータプログラム、コンピュータ読み取り可能な指示、実行可能コード、又は実行可能モジュール、又はこれらの一部を含んでもよい。当該一部は、データ108の受信及びネットワーク計算機104へのデータ送信112の送信等の様々なタスクをプロセッサ116に実行させることができる。加えて、計算機102は、計算機102の様々な機能を制御及び管理するオペレーティングシステム(図1において不図示)を含んでもよい例がある。機能部はコンピュータ読み取り可能媒体118の記憶部に格納され、コンピュータ読み取り可能媒体118のローカルメモリ部にロードされ、1以上のプロセッサ116によって実行されてもよい例がある。多くの他のソフトウェア構成及び/又はハードウェア構成は、本開示の受益者である当業者にとって明らかになるであろう。
加えて、コンピュータ読み取り可能媒体118は、本実施形態中の機能及びサービスを実行するために用いられるデータ及びデータ構造体を格納してもよい。例えば、コンピュータ読み取り可能媒体118は、データ108を対応するデータ送信112がネットワーク計算機104に送信されるまで少なくとも一時的に格納するために、データバッファ及び/又はデータストレージ124を含む。また、計算機102は、プログラム、ドライバ等、及び機能部に利用又は生成される他のデータを含む、他の機能部、データ、及びデータ構造体を含んでもよい又は保持してもよい。さらに、計算機102は、多くの他の論理的構成、プログラム的構成、及び物理的構成を含んでもよく、上述した構成は、本実施形態における議論に関連する単なる例でしかない。
通信インタフェース120は、例えば1以上のネットワーク106を介して様々な他の機器との通信を可能にするために、1以上のインタフェース及びハードウェアコンポーネントを含んでもよい。従って、通信インタフェース120は、ネットワーク計算機104と通信するためのネットワーク106への接続を提供する1以上のポートを含んでもよい、又は当該ポートに接続されていてもよい。例えば、通信インタフェース120は、BlueTooth(登録商標、以下同)及びZigBee(登録商標、以下同)等のような近距離通信だけでなく、LAN(local area network)、WAN(wide area network)、インターネット、ケーブルネットワーク、セルラーネットワーク、無線ネットワーク(例えばWi−Fi(登録商標、以下同))及び有線ネットワーク(例えば光ファイバ、イーサネット(登録商標、以下同)、ファイバチャネル)、並びに直接接続、のうちの1以上を介した通信を可能にしてもよい。但し、本実施形態において、必要な通信を他の箇所に追加的に列挙することもある。さらに、データ生成器110が通信インタフェース120を介して計算機102と通信してもよい例があり、データ生成器110が計算機102に直接接続又は統合されている例もある。
ネットワーク計算機104は、1以上のサーバ、パーソナルコンピュータ、又は多くの方法で具現化され得る他種の計算機を含んでもよい例がある。例えば、サーバの場合、モジュール、他の機能部、及び少なくとも一部のデータストレージは、例えば、サーバ群、サーバファーム又はデータセンタ、及びクラウドホスティングサービス等のうちの少なくとも1つのサーバに実装されてもよいが、他の計算機構成を追加してもよいし、他の計算機構成に代替されてもよい。図示された例において、ネットワーク計算機104は、1以上のプロセッサ126、1以上の通信インタフェース130、及び1以上のコンピュータ読み取り可能媒体128を含む、又はこれらと関連付けられている。
プロセッサ126それぞれは単一又は複数のプロセッシングユニットであってもよいし、単一若しくは複数のプロセッシングユニット又はマルチ処理コアを含んでもよい。プロセッサ126は、1以上のCPU、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、DSP、ステートマシン、論理回路、及び/又は操作指示に基づいて信号を操作する装置として、実装され得る。例えば、プロセッサ126は、本実施形態中のアルゴリズム及びプロセスを実行するよう具体的にプログラムされた又は構成された適切な種別の1以上のハードウェアプロセッサ及び/又は論理回路であってもよい。プロセッサ126は、プロセッサ126に本実施形態中の機能を実行させることができる、コンピュータ読み取り可能媒体128に格納されたコンピュータ読み取り可能な指示、を取得し実行するよう構成されてもよい。
コンピュータ読み取り可能媒体128は、コンピュータ読み取り可能な指示、データ構造体、プログラムモジュール、又は他のデータのような情報、を格納するためのあらゆる種類のテクノロジーに実装された揮発性メモリ及び不揮発性メモリ、並びに/又はリムーバブルメディア及びノンリムーバブルメディアを含んでもよい。例えば、コンピュータ読み取り可能媒体128は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、光学ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、RAIDストレージシステム、ストレージアレイ、ネットワークアタッチトストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を保持するために利用可能で計算機によってアクセス可能な他の媒体を含んでもよいが、これらに限定されるものではない。コンピュータ読み取り可能な非一時的媒体について言及するときに、エネルギー、搬送波信号、電磁波、及び/又は信号それ自体のような媒体を除外する限り、ネットワーク計算機104の構成次第でコンピュータ読み取り可能媒体118は、有形の非一時的媒体であってもよい。いくつかの場合において、コンピュータ読み取り可能媒体128は、ネットワーク計算機104と同一の場所にあってもよい。また、他の例において、コンピュータ読み取り可能媒体128は、例えばネットワーク106を介してアクセス可能である場合のように、一部はネットワーク計算機104の遠隔地にあってもよい。
コンピュータ読み取り可能媒体128はプロセッサ126によって実行可能な多数の機能部を格納するために利用されてもよい。多くの実装において、これらの機能部は、プロセッサ126によって実行可能な指示又はプログラムを含み、これらの指示又はプログラムが実行された場合、計算機102に起因する動作をプロセッサ126に具体的に実行させる。コンピュータ読み取り可能媒体128に格納された機能部は、データ格納・処理アプリケーション132を含んでもよい。データ格納・処理アプリケーション132は、1以上のコンピュータプログラム、コンピュータ読み取り可能な指示、実行可能コード、又は実行可能モジュール、又はこれらの一部を含んでもよい。当該一部は、計算機102が送信したデータの受信及び処理等のための様々なタスクをプロセッサ126に実行させることができる。加えて、オペレーティングシステム(図1において不図示)がネットワーク計算機104の様々な機能を制御及び管理してもよい例がある。機能部はコンピュータ読み取り可能媒体128の記憶部に格納され、コンピュータ読み取り可能媒体128のローカルメモリ部にロードされ、1以上のプロセッサ126によって実行されてもよい例がある。多くの他のソフトウェア構成及び/又はハードウェア構成は、本開示の受益者である当業者にとって明らかになるであろう。
加えて、コンピュータ読み取り可能媒体128は、本実施形態中の機能及びサービスを実行するために用いられるデータ及びデータ構造体を格納してもよい。例えば、コンピュータ読み取り可能媒体128は、データ送信112を経由して計算機102から受信したデータ134を格納してもよい。データ134がデータ108と比較してフィルタリング、圧縮、又は修正されてもよい例がある。また、ネットワーク計算機104は、プログラム、ドライバ等、及び機能部に利用又は生成される他のデータを含む、他の機能部、データ、及びデータ構造体を含んでもよい又は保持してもよい。さらに、ネットワーク計算機104は、多くの他の論理的構成、プログラム的構成、及び物理的構成を含んでもよく、上述した構成は、本実施形態における議論に関連する単なる例でしかない。
通信インタフェース130は、例えば1以上のネットワーク106を介して様々な他の機器との通信を可能にするために、1以上のインタフェース及びハードウェアコンポーネントを含んでもよい。従って、通信インタフェース120は、計算機102と通信するためのネットワーク106への接続を提供する1以上のポートを含んでもよい、又は当該ポートに接続されていてもよい。例えば、通信インタフェース130は、BlueTooth(登録商標、以下同)及びZigBee(登録商標、以下同)等のような近距離通信だけでなく、LAN(local area network)、WAN(wide area network)、インターネット、ケーブルネットワーク、セルラーネットワーク、無線ネットワーク(例えばWi−Fi(登録商標、以下同))及び有線ネットワーク(例えば光ファイバ、イーサネット(登録商標、以下同)、ファイバチャネル)、並びに直接接続、のうちの1以上を介した通信を可能にしてもよい。但し、本実施形態において、必要な通信を他の箇所に追加的に列挙することもある。
1以上のネットワーク106は、イントラネット等のLAN、インターネット等のWAN、セルラーネットワーク等の無線ネットワーク、Wi−Fiのようなローカル無線ネットワーク、及び/又はBlueToothやZigBee等の近距離無線通信、光ファイバ、イーサネット、及びファイバチャネル等の有線ネットワーク、若しくは他のいかなるネットワーク、又はこれらのネットワークのいかなる組み合わせを含んでもよい。従って、1以上のネットワーク106は有線通信技術及び/又は無線通信技術を含んでもよい。このような通信に用いられるための構成は、ネットワーク種別、及び選択された環境の少なくとも一方に部分的に依存し得る。このようなネットワークを介した通信のためのプロトコルは公知であり、ここでは詳細について議論しない。図示された例においては、ネットワーク106は、いくつかの例において計算機102がデータ送信112を送信する際に通信することができる複数の通信塔136−1、136−2、・・・、を含む。例えば、計算機は、データ送信112を送信する通信塔136と無線通信をしてもよい。従って、いくつかの例において、ネットワーク計算機104及び計算機102は、部分的に有線で、部分的に無線で、1以上のネットワーク106を介して通信を行うことができる。
図1の例において、データ管理アプリケーション122は、ネットワーク106を介してデータ108の少なくとも一部をネットワーク計算機104に送信するために、実行される。しかし、いくつかの場合において、計算機102とネットワーク106の接続は、不安定又は長く続かないおそれがある。例えば、計算機が移動している(例えば、輸送機器内にある又は人が徒歩によって持ち運んでいる)場合において、計算機102は、一時的な信号の損失、干渉、サービスの中断、又は他の障害を引き起こす可能性がある通信塔136の範囲に出入りする可能性がある。従って、いくつかの例において、データ管理アプリケーション122は、これらの障害を予想する又はこれらの障害に反応してもよく、データ108のどの断片が、例えば、障害発生前、障害発生中、又は障害終了後に、ネットワーク計算機104に送られたかを管理してもよい。
通常のIoTデバイスのようないくつかの場合において、データ生成器110によって生成されたデータ108の大半は、決定論的なパターンを有していてもよい。例えば、センサは、固定された間隔で測定結果を報告するようプログラムされていてもよい。従って、データ生成周期及びデータ生成量は、計算機102によるデータ108の受信に先立って、実質的に認識されている、又は予測可能である可能性がある。受信が予想されるデータに関するこの情報は、計算機102によってどのデータ片がどの送信機会の最中に送信されるべきかを決定する処理の一部として、用いられる。例えば、どのデータ片を現在の時間間隔において送信するか、どのデータ片を未来の時間間隔において送信するために保存するか、及びどのデータ片を送信することなく破棄してもよいか、を決定するための、ネットワークについての障害履歴情報又は予測可能な障害情報と、該データの優先度情報及び遅延情報と、とともにデータ108の決定論的な又は予測可能なパターンが用いられてもよい。
図2は、本実施例におけるデータ送信のためのタイムライン200の一例を示す。図2のタイムライン200の例は、時刻t0からt3までの無線ネットワークにおける信号品質変化の概要を示す。従って、直線202は時間の経過を示す。この場合、ΔTPREは、ネットワーク障害発生前の時間間隔204を示す。従って、時刻t0からt1までの期間においてネットワークは利用可能である。加えて、ΔToutageは時刻t1からt2までのネットワーク障害中の時間間隔206を示す。一例として、セルラーネットワーク内の混雑により当該ネットワークによるサービスが提供されない場所が発生し、当該場所に計算機102が位置することに起因する障害がある。当該ネットワーク上のデータ送信速度(例えば最大送信速度等)及びデータ送信の信頼性は、少なくとも部分的にはネットワーク品質及びネットワークの可用性に依存する。さらに、ΔTpostは、時刻t2からt3までの、信頼可能なデータ送信のための許容可能な閾値レベルにネットワークサービスが復旧している間における、時間間隔208を示す。
図3は、本実施例における、ネットワーク障害の観点から示されるデータ送信の例300を示す。この例において、破線は、ネットワークを介したデータ送信が可能な複数の送信時点302を代表する。一例として、送信時点302それぞれは、LTE(Long−Term Evolution)無線通信基準又は他の基準における1ミリ秒のサブフレームに対応してもよいし、送信時点302は、ネットワークが利用可能な場合、送信機会と呼ばれてもよい。この例において、送信時点5〜13は、送信のためのネットワーク利用ができない、又は信頼可能な送信を実行不可能にする超過混雑が発生している可能性がある、時間間隔206の間に発生している。上述したようにこの時間間隔はToutageと呼ばれ、ネットワークサービスが利用できない及び/又はネットワークが信頼できないゆえに、この時間においてデータ送信を試みることは望ましくない。
障害発生前の最初の時間間隔204に受信したデータD1は、送信時点1〜3の間において送信されてもよい。さらに、障害発生中である2番目の時間間隔206に受信したデータD2は、バッファに保存されてもよいし、時刻t2からt3までの時間間隔である3番目の時間間隔208、即ち送信機会14〜20において、3番目の時間間隔208において受信した新しいいかなるデータD3とともに送信されてもよい。加えて、障害発生時刻t1の直前、例えば送信機会3の後、に受信したデータD1の一部は、さらにバッファされ、かつ時刻t2の後、即ちネットワークサービス復旧後である3番目の時間間隔208、において送信されてもよい。
図4は、本実施例における送信ルールの決定及び送信ルールの適用の例400を示す。図4は、本実施例におけるデータ送信例を示し、障害発生前に行われるルール決定フェーズ402と、障害発生中及び/又は終了後に行われる適用フェーズ404と、を含む。ルール決定フェーズ402は、リソース割り当ての1以上のルールの導出を含んでもよい。例えば、ルール決定フェーズ402において、計算機102は、どのデータサンプル又は他のデータ片を、例えば次回の時間間隔の送信機会において送信されるかを決定してもよい。従って、ルール決定フェーズ402は、決定されたルールに基づいて送信される予定のデータ108の一部又は全部を受信する前に実行されてもよい。
本例では、データプロファイルモジュール406は、対応するデータ生成器から受信した選択されたデータ種別についてのデータプロファイル408を、ルール決定モジュール410に入力する。例えば、各Iotアプリケーション、各IoTデバイス、又は他の各データ生成器110は、データプロファイルデータ構造体412に格納される、対応するデータプロファイル408を有してもよい。いくつかの例において、データプロファイルモジュール406は、各データ生成器110についてのデータプロファイル408の少なくとも一部を、経時的に受信したデータ108の観察結果に基づいて、決定してもよい。これに加え又は代えて、各データ種別、例えば各データ生成器のためのデータプロファイル408は、管理者等によって、少なくとも一部が予め設定されていてもよい。データプロファイルデータ構造体412の一例は、図5を用いて以下で説明される。
また、ネットワーク状態予測モジュール414は、ネットワーク品質が低いと予測された時間間隔に少なくとも部分的には基づいて、送信機会を予測してもよい。一例として、ネットワーク状態予測モジュール414は、時刻や計算機の地理的位置によってネットワーク状態がどのように異なるかを示すネットワーク状態履歴情報416、を考慮してもよい。例えば、ネットワーク状態予測モジュール414は、計算機102が経時的に経験したネットワーク障害についての情報であるネットワーク情報を収集してもよいし、さらにネットワーク情報をネットワーク状態履歴情報416として、データベース等に格納してもよい。例えば、ネットワーク状態履歴情報416は、障害が最初に発生した地理的位置、障害発生時間の長さ、サービスが復旧した地理的位置、障害発生前、障害発生中、及び障害終了後の計算機の移動経路等を含んでもよい。これに加えて又は代えて、ネットワーク状態履歴情報416は、サービスプロバイダ、又は、例えば、信号品質が悪かったり他のネットワーク障害が発生したりする地理的位置、ネットワークがひどく混雑したり利用不可能である時刻等を示す他の情報源、から受信した情報を含んでもよい。
また、ネットワーク状態予測モジュール414は、時刻や曜日等を示す現在時刻418、混雑レベル及び予測混雑レベル等を示す現在ネットワーク状態420、並びに計算機の移動速度及び計算機の移動経路等を示す、現在及び最近の地理的位置等の地理的位置情報422、等の追加情報を受信してもよい。ネットワーク状態予測モジュール414は、これらの情報の一部又は全部及び/又は他の情報を、ルール決定モジュール410に提供するネットワーク状態予測情報424を決定するために用いてもよい。ルール決定モジュール410は、ネットワーク状態予測情報424及びデータプロファイル408を入力として受信してもよく、さらに、図6及び図10を用いて後述するが、どのデータ片をどの送信機会において送信するかを決定してもよい。従って、ルール決定モジュール410は、送信ルール適用モジュール428に提供される1以上のデータ送信ルール426を決定してもよい。
適用フェーズ404は、データ生成器110からのIoTデータ108の受信中及び/又は受信後において実行される、ネットワーク106への送信処理のための、動作を含む。特に、データ108はデータ生成器110から受信すると、ルール決定フェーズ402において定められた1以上のデータ送信ルールは、受信したデータ108に対して送信ルール適用モジュール428によって適用される。
適用フェーズ404において、データ採集モジュール430は、データ生成器110からデータ108を受信する。例えば、データ採集モジュール430は、センサ及び/又は多くの異種のデータ生成器110、並びにWi−Fi、BlueTooth、及びZigBee等だけでなくイーサネット、光ファイバ、若しくは他の直接有線接続のような送信技術、とインタフェースで接続可能であってもよい。データ採集モジュール430はデータ108を受信し、データ108を1以上のデータバッファ432に格納してもよい。例えば、データ種別ごと、IoTデバイスごと、又はデータ生成器110ごと等の、計算機102から受信したデータ種別に依存する単位ごとに、1つずつバッファが存在してもよい。例えば、計算機102が輸送機器に埋め込まれたシステムであり、データ生成器110がGPSデータを提供するGPSデバイス、現在の移動速度を提供するスピードメータ、輸送機器の現在の向きを提供するコンパス、及び現在の燃料残量を示す燃料測定機器等を含むと仮定する。これらの異なる各種別のデータは、定期的に受信され、別箇のデータバッファ432に保管されてもよい。
送信ルール適用モジュール428は、1以上のデータサンプル又は他のデータ片を1以上のデータバッファ432から選択するために、データ送信ルール426を用いてもよい。当該データバッファ432は、当該選択されたデータを利用可能な送信機会中に送信するためのバッファである。例えば、送信ルール適用モジュール428は、1以上のデータ送信ルール426をルール決定モジュール410から受信し、当該1以上のデータ送信ルール426を適用する。例えば、送信ルール適用モジュール428は、1以上のデータ送信ルール426に基づいて、データ送信112としてネットワーク106に送信するために、データバッファ432から1以上のデータ片を選択してもよい。
送信ルール適用モジュール428は、1以上の送信技術を用いてデータ送信112として選択されたデータをネットワーク106に送信する送信モジュール434に、選択されたデータを提供してもよい。例えば、送信モジュール434は、セルラーLTEの場合におけるLTEトランシーバ、又はネットワーク106への送信が可能ないかなる他種若しくは他の通信インタフェース等のような他の通信ハードウェアトランシーバを操作する送信ソフトウェアを含んでもよい。送信モジュール434は、1以上のデータバッファ432から選択されたデータを取得してもよいし、パケット化してもよいし、通信インタフェースに当該データパケットを送信させてもよい。従って、送信ルール適用モジュール428は、ネットワーク106に送信するために、データ送信ルール426、並びにネットワーク及び/又は計算機102の状態に基づいてデータを選択してもよい。また、送信ルール適用モジュール428は、送信モジュール434に、選択したデータをデータ送信112として、ネットワーク106に送信させてもよい。
いくつかの例において、点線で示されているように、モジュール406、410、414,428、430、及び434の一部又は全部は、図1を用いて上述したデータ管理アプリケーション122に含まれていてもよい。例えば、モジュール406、410、414,428、430、及び434のそれぞれは、上述したステップ及びアルゴリズムをプロセッサに実行させるための実行可能なコードの一部であってもよい。他の例において、モジュール406、410、414,428、430、及び434の一部は、データ管理アプリケーション122と独立して実行可能であってもよい。加えて、いくつかの例において、より多くの若しくはより少ないモジュールが存在する、及び/又はいくつかのモジュールが結合されていてもよい。多くの他のバリエーションは、本開示の受益者である当業者にとって明らかになるであろう。
図5は、本実施例における、データプロファイルデータ構造体412の一例を示す。データプロファイルデータ構造体412は、図1を用いて上述したデータ生成器110によって生成されたデータについての情報を含んでもよい。従って、データプロファイルデータ構造体412は、対応するデータ生成器の識別子を示すデータ生成器ID502(即ち、アプリケーション及び/又はデバイスのID)と、データ生成器によって生成されたデータの種別を示すデータ種別504と、データが生成される頻度を示すデータ生成周期506と、データ生成周期506によって示される各周期中において生成されるデータのサイズを示すデータサイズ508と、他のデータ生成器によって生成された他のデータとの相対的な優先度を示すデータ優先度510と、計算機102が受信時間閾値内にデータを送信することの重要性を示す遅延カテゴリ512と、を含む。例えば、いくつかのデータ種別については、各データサンプルを送信する必要はない可能性がある。従って、いくつかの例において、受信時間閾値内にデータが送信されるべき「CRITICAL」と、当該データが後になって送信されてもよい「NOT CRITICAL」と、の2つの遅延カテゴリが存在してもよい。データプロファイルデータ構造体412の各行は、別箇のアプリケーション及びセンサ機器のような別箇のデータ生成機又はデータ種別のための別箇のデータプロファイル408を示してもよい。いくつかの例において、管理者又は他のユーザが、データ優先度510及び遅延カテゴリ512のような情報の一部又は全部を、システムの初期セットアップ時に提供してもよい。
図6は、本実施例における、ルール決定及び適用のタイミング600の一例を示す。本例において、ネットワーク状態予測モジュール414は、ネットワークの状態を予測してもよい。例えば、「ネットワーク利用可能」は、データが送信可能であることを示す。一例として、送信可能なデータのサイズが、大、中、小からなる3つのカテゴリのうちの1つに決定可能であるとしてもよい。但し、「ゼロ」はネットワーク障害が起きていることを示すため、当該送信データ可能なサイズに含まれない。従って、ネットワークが利用可能という示唆は、必ずしもネットワーク状態が良いことを示していないが、少なくともデータ送信可能であることを示している。
一方、「障害」は、送信可能データ量が閾値を下回っていることを意味してもよいし、いくつかの場合において送信可能データ量がゼロであることを意味してもよい。例えば、障害状態は、ネットワーク利用不可能性(例えば、セルラー方式のカバレッジがない等)、又はデータ送信ができない可能性があるほどのネットワークの激しい混雑、によって引き起こされる。
ネットワーク状態予測モジュール414が、まもなく障害が発生すると判定した場合、ネットワークがまだ利用可能な状態のうちに、図4を用いて上述したルール決定フェーズ402が開始されてもよい。ルール決定フェーズが開始する時刻は、ルール決定フェーズ402の全てのアルゴリズム及び機能を実行するために必要な通常の時間に、少なくとも部分的に依存する。一例として、ルール決定フェーズ402は、障害発生予測を開始する少なくとも3〜5msec前に開始されていてもよい。ルール決定フェーズ402が完了すると、図4の適用フェーズ404が開始し、これはΔTpre+ΔTpostに対応する可能性がある。適用フェーズ404の期間は、データD2(ネットワーク障害時に生成されたデータ、図3を参照)の全体を送信するために必要とされる時間量として選択される可能性があるΔTpostの期間に、少なくとも部分的には依存する。
図示された例において、期間602は、ネットワークが利用可能であるが、障害が発生すると予測済みである期間を示す。期間604は、当該障害が発生している期間を、期間606は、再度ネットワークが利用可能である期間を示す。ネットワーク状態予測モジュール414が、期間604における障害がまもなく、例えばおよそ数sec又は数msec等の間に、発生すると判定した、と仮定する。図4を用いて上述したように、ネットワーク状態予測モジュール414は、当該障害が発生する前に、ネットワーク予測状態を示す情報をルール決定モジュール410に提供してもよい。ルール決定モジュール410は、予測された障害発生時より前に、ルール決定フェーズ402を開始してもよい。期間608が示すように、ルール決定フェーズ402は3〜5msecを要してもよく、その後、期間610、612が示すように、適用フェーズ404が行われる。従って、ルール決定モジュール410が決定したデータ送信ルール426が、時間間隔204、206、208の間において、図4の送信ルール適用モジュール428によって適用される。例えば、適用フェーズ404は、時刻t0から時刻t3まで、即ち、障害中に受信したデータでありデータ送信ルールに基づいて送信対象に選択されたデータであるデータD2、の送信が完了するまで継続してもよい。
図7は、本実施例における相対的チャネル容量700の一例を示す。図6の例において、ネットワークが「利用可能」に分類されている場合、データを送信するためのチャネル容量がある。「利用可能」という分類は、ネットワーク状態が、チャネル容量大702、チャネル容量中704、又はチャネル容量小706のいずれかであることを示してもよい。これは必ずしも、ネットワーク状態又はチャネル状態が良いことを示す必要はないが、その代わりに確実に送信可能なデータ量が、大、中、又は小であるかを示す必要がある(但し、ゼロを用いて示すことはない)。一方、ネットワークが「障害」に分類されている場合、送信されるデータ量はゼロ、そうでなければ、データを確実には送信できない場合のように、閾値708が示す閾値容量を下回っている。セルラー方式のサービスが提供されていない等のネットワーク利用不可能性、又は確実なデータ送信が不可能である等のネットワークの高混雑に起因して、障害が発生している可能性がある。
図8は、本実施例における圧縮を含むルール決定の例800を示す。本例では、ルール決定モジュール410は、図4を用いて上述したように、1以上のデータプロファイル408をデータプロファイルモジュール406から受信してもよい。例えば、L個のデータ生成器によって生成されたL種類のデータ種別があり、S1〜SLは、それぞれデータプロファイル408−1〜408−Lを意味するものと仮定する。
いくつかの例において、ルール決定モジュール410は、例えば各データ種別について階層データ圧縮が推奨されるか否かを決定するために、各データについてデータ圧縮階層情報802−1〜802−Lを決定してもよい。さらにルール決定モジュール410は、選択されたデータ種別に対して実行される可能性がある圧縮についての異なる複数の起こり得るレベルを、データ圧縮階層情報802の一部として、リストアップしてもよい。一例として、データ種別が、カメラ(例えばIoTセンサが、ビデオ監視フィードを収集するため等のビデオカメラであってもよい。)であるデータ生成器から受信したビデオコンテンツデータであると仮定する。ビデオコンテンツデータは、様々な異なる圧縮レベル(例えば、低精細度、標準精細度、又は高精細度のビデオフォーマット)に対応して、異なる解像度で符号化されてもよい。各々の場合において圧縮レベルが異なり、これによりネットワークを介して送信されるデータサイズの違いが発生する可能性がある。
データ圧縮階層情報802は、所与のデータ種別についての各圧縮可能レベルの圧縮詳細のリストを含んでもよい。例えば、圧縮詳細は、圧縮レベル、圧縮の結果生じるペイロード、圧縮が可逆であるか非可逆であるか、及び非可逆圧縮の場合に失われるデータの範囲等を含んでもよい。本実施形態では、データ804が示すように、所与のデータ種別「k」はデータSkに関連付けられており、ベクトルとしてのSkは、圧縮レベルの値であるnkを用いて、取り得る全ての圧縮レベルを示す。例えば、nk=3の場合、圧縮レベルは、低精細度、標準精細度、及び高精細度のビデオ解像度からなり、さらにビデオのローデータ即ち圧縮が行われていないことを示す圧縮レベル0がある。
データプロファイル408についてのデータ圧縮階層情報の詳細は、ルール決定モジュール410によって、データ送信ルール426が決定されるときに適用されてもよい。例えば、ルール決定モジュール410は、図5を用いて上述したデータ優先度及び遅延カテゴリ等のデータプロファイル408からの追加データプロファイル情報806だけでなく、データ圧縮階層情報802−1〜802−L、及びネットワーク状態予測モジュール414からのネットワーク状態予測情報424を、入力として受信する。ルール決定モジュール410は、送信予定の全てのIoTデータを、次の送信期間においてネットワークを介した信頼可能な送信が行われる1以上の送信パケットに収めること、を含むリソース割り当てを実行してもよい。ネットワーク状態が異なる可能性があるため、また信頼可能な送信が可能なIoTデータのサイズ及びデータ量のような、結果として得られるネットワーク容量(例えばチャネル容量)、が大きかったり(大容量)小さかったり(低容量)する可能性があるため、例えば、リソース割り当てが利用されてもよい。従って、ルール決定モジュール410のリソース割り当て機能は、受信したデータのどの程度の量を(さらに、どの圧縮レベルで)、割り当てられた送信機会においてチャネルを介して信頼可能な送信が可能なチャネル送信パケットに収めることができるかを決定する。
図9は、本実施例におけるデータ圧縮階層の例900を示す。上述したように、アプリケーションデータに対して実行される異なるレベルの圧縮を可能にする圧縮階層、を含む実装がある。例えば、圧縮モジュールは所与のデータに対して実行可能な各圧縮レベルの詳細をリストアップしてもよいし、圧縮レベル、圧縮の結果生じるペイロード、圧縮が可逆であるか非可逆であるか、及び非可逆圧縮の場合に失われるデータの範囲等のような圧縮詳細を含んでもよい。図9は、例えば無圧縮902、最小限圧縮904、中程度圧縮906、及び最大限圧縮908等を含む、異なる圧縮レベルを例示する。上述したように、所与のデータ種別「k」はデータSkに関連付けられており、ベクトルとしてのSkは、圧縮レベルの値であるnkを用いて、取り得る全ての圧縮レベルを示す。例えば、nk=3の場合、圧縮レベルは、低精細度、標準精細度、及び高精細度のビデオ解像度からなり、さらにビデオのローデータ即ち圧縮が行われていないことを示す圧縮レベル0がある。
図10及び図16は、本実施例における処理の例を示すフローチャートである。一部又は全部がハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせにおいて実行される一連の動作、を代表する論理フローチャートにおいて、処理はステップの集合として記載されている。ソフトウェアのコンテキストにおいて、ステップは、1以上のコンピュータ読み取り可能媒体に格納されたコンピュータが実行可能な指示を代表してもよく、当該指示は、1以上のプロセッサによって実行された場合、列挙された処理を当該プロセッサに実行させるようプログラムする。通常は、コンピュータが実行可能な指示は、特定の機能を実行したり特定のデータ種別を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造体等を含む。ステップの記載順序は、限定的に解釈されるべきではない。なお、記載されたいかなるステップが結合されてもよいし、各ステップの実行順序が変更されてもよいし、各ステップが並行して実行されてもよいし、必ずしも全てのステップが実行されなくてもよい。本議論の目的のために、本実施形態の環境、フレームワーク、及びシステムに関連する処理が記載されているが、他の多様な環境、フレームワーク、及びシステムにおいて、本実施形態の処理が実行されてもよい。
図10は、本実施例におけるルール決定のための処理1000の一例を示す。処理1000は、計算機102に実行されてもよいし、他の適切な計算機によって実行されてもよい。上述したように、データ管理アプリケーション122は、選択したデータを、ネットワークを介してネットワーク計算機に送信するための、エッジコンピューティング及び受信したデータについての他の処理を実行してもよい。データ管理アプリケーション122は、所与の送信時点においてデータを最適化する従来のオプティマイザとは異なり、複数の送信時点に跨ったリソース割り当てを実行してもよい。従って、データ管理アプリケーション122は、未来のデータパターン及び未来の送信機会を考察してもよく、データトラフィックが軽い見通しであると判定した場合、データ管理アプリケーション122は、いくつかのデータサンプルの送信を、未来の送信機会へと延期してもよい。例えば、データトラフィックパターンが少なくとも部分的には決定論的であってもよく、従って、どのデータがどの時点で送信されるかを決定するためにルールが適用されてもよい。図10は、データ管理アプリケーション122のルール決定モジュール410の処理の一例を提供する。いくつかの動作が省略されたり、動作順序が変更されたり、他の処理が含まれたりする、他の例があってもよい。
ステップ1002において、計算機は、ネットワーク障害予測の兆候を受信してもよい。例えば、図4及び図6を用いて上述したように、ネットワーク状態予測モジュールが、まもなく障害が発生するかもしれないことを示す予測ネットワーク状態を、ルール決定モジュール410に送信することに基づいて、ルール決定フェーズが開始されてもよい。
ステップ1004において、計算機は、優先度をp=1(最高優先度)に設定してもよい。例えば、計算機は、まず最高優先度のデータを、ネットワークに送信するデータに選択するか否かを決定するために、精査する。当該データをネットワークに送信するためのデータに選択するか否かを決定するためである。本例においては、データ優先度は、最高優先度である1から、数字が大きくなるほど連続的に優先度が下がるものとする。他の例において、他の相対的な値が、データ優先度に用いられてもよいことは言うまでもない。
ステップ1006において、計算機は、障害中に、優先度がpであるデータをバッファが受信すると予期されるかどうかを判定してもよい。例えば、計算機は、最初に、障害中にデータ生成器110からデータを受信済み又は受信予定のあらゆるバッファ内の、最高優先度のデータについて検討する。
ステップ1008において、計算機は、次の送信機会に送信される場合には超過するであろう遅延カテゴリ時間閾値を有するデータサンプル又は他のデータ片が存在するかどうかを判定してもよい。例えば、計算機は、各バッファに格納されたデータのパターンを決定してもよいし、当該データの遅延カテゴリを決定してもよい。遅延カテゴリは、ネットワークへ送信予定のデータのための、計算機による受信後の制限時間閾値を含んでもよい。従って、遅延カテゴリに基づいて、計算機は、送信するには遅すぎることになるデータサンプル又はデータ片を識別することができる。例えば、仮にこれらのデータサンプルが次回の送信機会中に送信されるとすると、これらのデータサンプルの遅延カテゴリ時間閾値(例えば、送信のための時間閾値)が満たされない。従って、これらのデータサンプルが存在する場合、計算機は、これらのデータサンプルを送信することなく、バッファから破棄、上書き、又は削除してもよい。遅延カテゴリ時間閾値を既に逸しているため、これらのデータサンプルを送信することは無意味だからである。
次回の送信機会において送信された場合に遅延カテゴリが満たされないデータサンプルが存在する場合、ステップ1010において、計算機は、これらのデータサンプルをバッファから破棄してもよい。例えば、上述したように、たとえこれらのデータサンプルが次の送信機会に送信されるとしても、これらのデータサンプルの遅延カテゴリは満たされない。従って、これらのデータサンプルは、各バッファから取り出されて破棄されてもよい。
ステップ1012において、ステップ1008及びステップ1010において破棄されなかったデータサンプルの中から、計算機は、遅延カテゴリが最高(例えば「CRITICAL」かつクリティカル時間閾値以内にいまだ送信可能である)の1以上のデータサンプルを選択してもよい。従って、1以上のバッファに残っているデータサンプルから、計算機は最高の遅延カテゴリ(例えば、送信のための残り時間が最も短い)を有するデータサンプルを選択してもよい。例えば、同一のセンサ又は他の同一のデータ生成器から受信した複数のデータサンプルが存在する場合、最も早く受信したデータサンプルは、当該センサ又は当該データ生成器から当該データサンプルよりも遅く受信したデータサンプルよりも、よりクリティカルな遅延カテゴリを有してもよい。
ステップ1014において計算機は、1以上の選択されたデータサンプルのデータ種別に要求されるデータ圧縮レベルを選択してもよい。例えば、計算機は、選択されたデータサンプルに対して取り得る圧縮レベルを、データ優先度情報に基づいて決定してもよい。一例として、優先度がより高いデータは圧縮されなくてもよく、相対的により重要でなく、優先度が低い種別のデータは圧縮されてもよい。
ステップ1016において、予測されたネットワーク状態に基づいて、計算機は、現在の選択されたデータ及び既に選択された可能性がある全てのデータが送信可能かどうかを判定してもよい。例えば、圧縮が許可される場合、計算機は、データを圧縮した場合に、ネットワークが、選択済みの他のいかなる高優先度のデータとともに当該データを信頼可能に送信できるかどうかを判定してもよい。一例として、計算機は、図4を用いて上述したネットワーク状態予測情報424から得られるネットワーク容量(例えばbpsを単位として)の推定、に基づいて当該判定を行ってもよい。例えば、ネットワーク容量が、次回の送信機会において信頼可能な送信のためのデータを送るために必要な1MBであると仮定する。これに基づいて、送信対象として選択された全てのデータの合計容量が1MB未満であるとよい。ネットワーク容量についての記載は図7に記載されている。
ステップ1018において、計算機は決定した情報をルール、例えば{データ優先度、遅延カテゴリ、圧縮レベル}として、保存してもよい。例えば、ネットワーク容量が十分にある場合、現在の対象としている送信可能なデータサンプル及び当該データサンプルの圧縮レベルが、ルールとしてルールデータ構造体に書き込まれてもよい。ルールを保持するルールデータ構造体の一例が図11に示されている。
ステップ1020において、計算機は、次に高い優先度を有するデータ種別へと移行するために優先度pを例えばp=p+1へとインクリメントする。ステップ1016における結果が「NO」となると図10の処理が終了する。
ステップ1022において、計算機は、データ送信ルールに従うデータ送信のために、データ送信ルールを送信ルール適用モジュールに提供してもよい。図12を用いて一例を後述する。
図11は、本実施例におけるルールデータ構造体1100の一例を示す。ルールデータ構造体1100は、図4及び図10を用いて上述したルール決定モジュール410によって生成された1以上のデータ送信ルールを含んでもよい。本例では、ルールデータ構造体1100は、ルールID(識別子)1102、ルール適用状況1104、ルール適用送信時点1106、送信予定データ生成器ID1108、データサンプル送信数1110、及びデータサンプル向け圧縮レベル1102を含む。
例えば、ルールID1102は、各ルールを他のルールと識別可能なように割り当てられていてもよい。さらに、ルール適用状況は、ネットワーク障害中又は通常のネットワーク状態においてルールが適用されるべきか否かを示してもよい。ルール適用送信時点1106は、当該ルールに従ってどの送信時点の間にデータが送信される可能性があるかを示してもよい。送信予定データ生成器ID1108は、データ送信を受信するネットワーク計算機への送信データのデータ種別を識別する生成済みデータの識別子を示してもよい。データサンプル送信数1110は、特定のバッファから送信予定のサンプル数を示してもよい。さらに、データサンプル向け圧縮レベル1112は、送信される予定のデータの圧縮レベルを示してもよい。
図12は、本実施例における、送信ルール適用モジュール428の動作の例1200を示す。本例では、データ生成器110はデータ108をデータバッファ432それぞれに提供してもよい。例えば、データ種別それぞれに対してデータバッファが存在してもよい、つまりデータ種別それぞれは異なるデータ生成器からのデータに対応する。従って第1データ生成器110−1は、第1データバッファ432−1に第1種データ108−1を提供してもよく、同様に第Lデータ生成器110−Lは、第Lデータバッファ432−Lに第L種データ108−Lを提供してもよい。データバッファ432にデータが取り込まれ格納されると、送信ルール適用モジュール428は、ネットワーク106に送信するために選択するデータをデータバッファ432から決定するために、データ送信ルール426を参照してもよい。
本例では、ステップ1202において、データ送信ルール426に基づいて、送信ルール適用モジュール428は、1以上の選択されたデータサンプルS1〜SLを、所与の送信時点における送信のために圧縮してもよい。上述したように、優先度がより高いデータの場合のように、当該1以上のデータサンプルS1〜SLが、圧縮されない可能性がある場合もある。
送信ルール適用モジュール428は、選択したデータサンプルS1〜SLと、これらに対応するメタデータ1204と、を1以上のデータ送信パケットを生成可能な送信モジュール434に提供してもよい。例えば、データパケット1206は、圧縮データサンプル(圧縮されていない例もある)を含んでもよい。さらに、データパケット1206は、どのデータがどのデータ生成器から送信されたかについての情報、データパケット1206内のデータの圧縮レベルについての情報等を含む、メタデータ1204を含んでもよく、メタデータ1204は、ネットワーク計算機104によってデータパケットが受信されたときに復号化するための制御情報として利用されてもよい。従って、1以上のデータパケットが生成された後、送信モジュールは、図1を用いて上述したネットワーク計算機104が受信するデータ送信として、ネットワークを介したこれらのデータパケット1206の送信をもたらす。
図13は、本実施例における、データ送信のためのデータ選択及び生成の例1300を示す。図示された例において、データ生成器は、第一センサG及び第二センサEからなる2つのセンサを含むと仮定する。また、本例において、データバッファ432−1及びデータバッファ432−2それぞれの、各センサに対して2つのデータサンプルが存在すると仮定する。仮定1302に示すように、当該データサンプルの遅延カテゴリはともに「CRITICAL」であり、かつ当該データサンプルは次回の送信機会において送信可能であると仮定する。さらに、仮定1304に示すように、センサGからのデータの優先度はセンサEからのデータの優先度より高いと仮定する。さらに、仮定1306が示すように、ネットワーク状態が良好であり、それゆえネットワーク容量が大きいものの、4つのデータサンプルの1つも圧縮することなく当該4つのデータサンプルを送信できるほどネットワーク容量が高くはない可能性がある、と仮定する。従って、データ送信ルールはセンサEからのデータを圧縮することを推奨してもよい。
データバッファ432−1は、センサGからのデータであるセンサGデータ1308を保持する。センサGデータ1308のうち、最新のデータサンプルが最新データサンプルGt1310であり、古いデータサンプルが前データサンプルGt−11312である。なお、前データサンプルGt−11312は、最新データサンプルGt1310の1つ前に受信したデータサンプルであってもよい。さらに、データバッファ432−2は、センサEからのデータであるセンサEデータ1314を保持する。センサEデータ1314のうち、最新のデータサンプルが最新データサンプルEt1316であり、古いデータサンプルが前データサンプルEt−11318である。ステップ1320に示すように、データ量、ネットワーク状態についての仮定1306、及びデータ送信ルールに基づいて、センサEデータ1314を圧縮することにより、圧縮センサEデータEt1326及び圧縮センサEデータEt−11328が得られる。さらに、パケット1340が示すように、センサGデータ及び圧縮センサEデータは、パケット化されてもよい。
図14は、本実施例における、データ送信のためのデータ選択及び生成の例1400を示す。本例において、データバッファ432−1及びデータバッファ432−2それぞれの各センサに対して、2つのデータサンプルが存在すると仮定する。仮定1402に示すように、当該データサンプルの遅延カテゴリはともに「CRITICAL」であり、かつ当該データサンプルは次回の送信機会において送信可能であると仮定する。さらに、仮定1404に示すようにセンサGからのデータの優先度はセンサEからのデータの優先度より高いと仮定する。さらに、仮定1406が示すように、ネットワーク状態が不良であり、それゆえネットワーク容量が小さいと仮定する。従って、この場合、データ送信ルールは、センサGからのデータの優先度がセンサEからのデータの優先度より高いものの、センサG及びセンサEの双方からのデータをからのデータを圧縮することを推奨してもよい。
データバッファ432−1は、センサGからのデータであるセンサGデータ1408を保持する。センサGデータ1408のうち、最新のデータサンプルが最新データサンプルGt1410であり、古いデータサンプルが前データサンプルGt−11412である。なお、前データサンプルGt−11412は、最新データサンプルGt1410の1つ前に受信したデータサンプルであってもよい。さらに、データバッファ432−2は、センサEからのデータであるセンサEデータ1314を保持する。センサEデータ1414のうち、最新のデータサンプルが最新データサンプルEt1416であり、古いデータサンプルが前データサンプルEt−11418である。ステップ1420に示すように、データ量、ネットワーク状態についての仮定1406、及びデータ送信ルールに基づいて、センサGデータ1408及びセンサEデータ1414を圧縮することにより、圧縮センサGデータ1430Gt、圧縮センサGデータGt−11432、圧縮センサEデータEt1436、及び圧縮センサEデータEt−11438が得られる。さらに、パケット1442が示すように、圧縮センサGデータ及び圧縮センサEデータは、パケット化されてもよい。
図15は、本実施例における、データ送信のためのデータ選択及び生成の例1500を示す。本例において、データバッファ432−1及びデータバッファ432−2それぞれの、各センサに対して2つのデータサンプルが存在すると仮定する。仮定1502に示すように、センサEからのデータサンプルの遅延カテゴリは「CRITICAL」であり、センサGからのデータサンプルの遅延カテゴリは「NOT CRITICAL」であると仮定する。さらに、仮定1504に示すように、センサGからのデータサンプルの遅延カテゴリが「NOT CRITICAL」であるため、センサGからの最新データは次回の送信機会中に送信される必要がない。例えば、より早く受信したデータサンプルが、遅延カテゴリの要求を満たすために、送信されてもよい。さらに、仮定1506に示すように、ネットワーク状態が不良であり、それゆえネットワーク容量が小さいと仮定する。さらに、センサGデータ1508の優先度は、センサEデータ1514の優先度より高くてもよい。
データバッファ432−1は、センサGからのデータであるセンサGデータ1508を保持する。センサGデータ1508のうち、最新のデータサンプルが最新データサンプルGt1510であり、古いデータサンプルが前データサンプルGt−11512である。なお、前データサンプルGt−11512は、最新データサンプルGt1510の1つ前に受信したデータサンプルであってもよい。さらに、データバッファ432−2は、センサEからのデータであるセンサEデータ1514を保持する。センサEデータ1514のうち、最新のデータサンプルが最新データサンプルEt1516であり、古いデータサンプルが前データサンプルEt−11518である。しかし、当該遅延カテゴリは最新データサンプルGt1510の送信を要求していないため、データ送信ルールは圧縮をしないこと又は最小限の圧縮をすることを推奨してもよく、さらにセンサGからの1つのデータサンプル(例えば、前データサンプルGt−11512等)及びセンサEからの双方のデータサンプルの送信を推奨してもよい。ステップ1520に示すように、データ量、ネットワーク状態についての仮定1506、及びデータ送信ルールに基づいて、前データサンプルGt−11512、最新データサンプルEt1516、及び前データサンプルEt−11518が、圧縮されることなく又は最小限の圧縮を経て、パケット化される。
図16は、本実施例におけるデータ受信及び送信のための処理例1600を示すフローチャートである。本例において、処理例1600は、計算機102に実行されてもよいし、他の適切な計算機によって実行されてもよい。
ステップ1602において、計算機は、現在の地理的位置、現在のネットワーク状態、ネットワーク状態履歴情報、サービスプロバイダからの情報、及び/又は現在時刻に基づいて、ネットワーク障害の発生が予測されるかを判断してもよい。例えば、図4を用いて上述したように、ネットワーク状態予測モジュールは、ネットワーク予測状態を決定するために種々の情報を考慮してもよい。
ステップ1604において、計算機は、障害発生前及び発生中に受信が予想されるデータ種別の、データ優先度及び遅延カテゴリの少なくとも一方を決定してもよい。例えば、計算機は、どの種別のデータを障害発生中に受信するかを認識していてもよく、かつ対応するデータプロファイルから得られるデータ優先度、遅延カテゴリ、及び圧縮情報等を決定してもよい。
ステップ1606において、計算機は、受信が予想されるデータ種別のデータ優先度及び遅延カテゴリの少なくとも一方に基づいて、データを送信するための1以上のデータ送信ルールを、障害終了後に決定してもよい。データ送信ルールを決定する例は図4及び図10を用いて上述されており、データ送信ルールは、予想データ、遅延カテゴリ、データ優先度、及び圧縮情報に基づいて決定される。
ステップ1608において、計算機は、障害発生前及び障害発生中の少なくとも一方において、第一データ種別の第一データを第一センサから受信してもよいし、第二データ種別の第二データを第二センサから受信してもよい。例えば、データ種別ごとに、異なるデータバッファに格納されてもよく、データ種別ごとに別箇のデータプロファイルに関連付けられていてもよく、データプロファイルは、データ生成周期、データサイズ、当該データの優先度、及び/又は当該データの遅延カテゴリを示す。
ステップ1610において、障害終了の後、計算機は、例えば少なくとも1つのデータ送信ルールに規定されているように、第一データに関連付けられた第一優先度及び第一遅延カテゴリの少なくとも一方に基づいて、第一データの少なくとも第一データ片を送信してもよく、さらに第二データに関連付けられた第二優先度及び第二遅延カテゴリの少なくとも一方に基づいて、第二データの少なくとも第一データ片を送信してもよい。さらに、計算機が、第一データに関連付けられた第一遅延カテゴリに基づいて、次回の送信機会に送信が行われた場合に第一データの第二データ片の第一遅延カテゴリに対応する時間閾値を超過すると判定する例があってもよい。これに基づいて、計算機は、第一データから第にデータ片を削除したデータをネットワークに送信してもよいし、第一データから第二データ片を削除してもよい。
本実施形態に記載の処理の例は、本議論の目的のための単なる処理の例として記載されたものである。本実施形態の観点に照らして、多くの他のバリエーションが当業者にとって明白である。さらに、本実施形態において処理を実行するための適切なフレームワーク、構成、及び環境のいくつかの例が明らかにされている一方、実装は本実施形態において開示された又は議論された特定の例に限られない。さらに、本実施形態は、上述したように、また図面に記載されているように、種々の実装例を提供している。しかし、本開示は、上述された実装及び図面に記載された実装に限定されず、当業者にとって既知である他の実装又は当業者が知ることになる他の実装に拡張することができる。
本実施形態の様々な指示、処理、及び手法は、コンピュータ読み取り可能な媒体に格納されたプログラムモジュールのような、コンピュータ読み取り可能な指示の通常のコンテキストと考えられてもよく、上述したプロセッサによって実行されてもよい。一般的に、プログラムモジュールは、特定のタスクを実行するための又は特定の抽象データ型を実装するための、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体、実行可能コード等を含む。これらのプログラムモジュール等は、ネイティブコードとして実行されてもよいし、例えば仮想マシン又は他の実行時コンパイル環境等において、ダウンロードされて実行されてもよい。一般的には、プログラムモジュールの機能は、様々な実装の要求に応じて結合又は分散されてもよい。これらのモジュール及び技術の実装は、コンピュータストレージ媒体に格納されていてもよいし、通信媒体を介して送信されてもよい。
本発明の対象が構造上の特徴及び/又は方法論的な動作に特有の言葉を用いて記載されているが、添付の特許請求の範囲で定義される本発明の対象が必ずしも上述した特定の特徴又は動作に限定される必要はないこと、が理解されるべきである。むしろ、当該特定の特徴及び動作は、特許請求の範囲に記載の発明を実行するための一例として記載されているにすぎない。
<補足>
<15>
1以上のプロセッサと、実行可能指示を保持するコンピュータ読み取り可能な1以上の非一時的媒体と、を含むシステムであって、
前記実行可能指示が前記1以上のプロセッサに実行された場合、前記1以上のプロセッサは、
ネットワーク状態予測情報と、前記1以上のプロセッサの現在位置情報に基づいて、ネットワークの障害の発生予測を決定し、
前記障害の発生前及び発生中の少なくとも一方において、第1センサから第1データ種別の第1データと、第2センサから第2データ種別の第2データと、を受信し、
前記障害の終了後に、前記第1データに関連付けられた第1優先度及び第1遅延カテゴリの少なくとも一方に基づいて、前記第1データの少なくとも第1データ片を送信し、前記第2データに関連付けられた第2優先度及び第2遅延カテゴリの少なくとも一方に基づいて、前記第2データの少なくとも第2データ片を送信する、ようプログラムされる、システム。
<16>
上記15に記載のシステムであって、
前記実行可能指示が前記1以上のプロセッサに実行された場合、前記1以上のプロセッサは、
前記発生予測に基づいて、前記障害の発生前又は発生中に受信すると予想されるデータ種別のデータ優先度及び遅延カテゴリの少なくとも一方を決定するよう、プログラムされる、システム。
<17>
上記16に記載のシステムであって、
前記実行可能指示が前記1以上のプロセッサに実行された場合、前記1以上のプロセッサは、前記少なくとも一方に基づいて、データ送信のための少なくとも1つの送信ルールを、前記障害の終了後に、決定するようプログラムされ、
前記少なくとも1つの送信ルールに基づいて、前記第1データの少なくとも第1データ片と、前記第2データの少なくとも第2データ片と、の送信が行われる、システム。
<18>
上記15に記載のシステムであって、
前記実行可能指示が前記1以上のプロセッサに実行された場合、前記1以上のプロセッサは、
前記障害の発生中に受信した前記第1データの遅延カテゴリを決定し、
前記第1データの第3データ片が次回の送信機会において送信される場合に、前記第3データ片に対応する遅延カテゴリの時間閾値を超過すると判定し、
前記ネットワークに送信される前記第1データから、前記第1データ片を除外する、ようプログラムされる、システム。
<19>
上記15に記載のシステムであって、
前記第1データ種別の前記第1データは、第1データプロファイルに関連付けられた第1データバッファに格納され、
前記第2データ種別の前記第2データは、第2データプロファイルに関連付けられた第2データバッファに格納され、
前記第1データプロファイル及び前記第2データプロファイルのそれぞれは、データ生成周期、データサイズ、データ優先度、及び遅延カテゴリの少なくとも1つを示す、システム。
<20>
上記15に記載のシステムであって、
前記ネットワークは無線ネットワークであり、
前記発生予測は、前記1以上のプロセッサが近付いている地理的領域が、制限された無線カバレッジを含むことの判断に基づき、
前記判断は、前記1以上のプロセッサが過去に収集したネットワーク履歴情報、及びセルラーサービスプロバイダから受信した地理的な通信カバレッジを示唆する情報の少なくとも一方に基づいて、前記地理的領域を決定する、システム。