(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0016】
(実施の形態の概要)
まず、本実施の形態の概要を説明する。本実施の形態では、IoT機器から画像や映像等のデータを直接クラウド上の蓄積サーバ(これをクラウド装置と呼んでもよい)まで送るのではなく、モバイル網(モバイルコア網と基地局網からなる網)と有線キャリア網における中間層がデータを受信し、クラウド上のサーバへは必要なデータだけに絞って送信する。もしくは、クラウド上のサーバが必要に応じてデータを中間層から吸い上げる。このような仕組みにより、IoT機器からの通信遅延を削減できるだけでなく、モバイル網から有線キャリア網へのトラフィックを減少させることや、有線キャリア網からクラウドのサーバへのトラフィックを減少させることができる。
【0017】
中間層においてデータのバッファリングを行うため、例えば中間層に追加の装置(エッジ装置と呼び、物理的な装置でもよいし、仮想的な装置でもよい)を設置し、当該エッジ装置にデータの受信やバッファリング等の機能を持たせる。エッジ装置は物理的な距離やNWを考慮して分散して配置する。
【0018】
IoT機器からエッジ装置へのデータ送信に際して、まずIoT機器から付近の基地局の選択が生じるが、ここは一般的なモバイル網の経路最適化を利用することができる。エッジ装置がIoT機器からデータを受信し、確実に必要とされたデータをクラウドに送った後は、クラウドからのリクエストに応じてバッファしたデータをクラウド側に追加で送信する。
【0019】
IoT機器から(基地局からでもよい)エッジ装置に対して遅延を含む様々なヘルスチェックを定常的に行うことで、遅延情報を保持しておき、当該遅延情報に基づいて最適なエッジ装置を選定することを可能としている。エッジ装置の選定は例えばIoT機器側がDNSに問い合わせる方法等で実現できる。エッジ装置は分散ファイルシステムもしくは分散DBとしての機能も有している。可用性を担保するためにデータ(ファイル)のレプリケーションをエッジ装置に設定することも可能である。その場合、近傍のエッジ装置間でレプリケートのトラフィックが発生する。
【0020】
エッジ装置は、IoT機器から受け取ったデータのうち、例えばプライオリティが高いものをクラウドに対して送信する。プライオリティの違いの識別方法としては、例えば、IoT機器側で指定する方法(例:データにフラグを付して送信)、クラウド側で指定する方法(クラウド側からエッジ装置にルールを設定)がある。また、リソース消費は増えるが、IoT機器が、データに、より情報量の多いメタデータを追加し、エッジ装置がメタデータをもとにある程度複雑なロジックで決定することも可能である。また、これら以外の方法を用いてもよい。
【0021】
また、本実施の形態では、データの所在(例:エッジ装置、クラウド等)を把握できる仕組みが備えられている。当該仕組みとして、例えば、一般的な分散ファイルシステムのように、エッジ装置のデータを含めたデータのマップ情報を保持し、当該マップ情報に基づき、データの所在を把握する方法がある。クラウド側では、当該仕組みを利用することで、ユーザからのリクエスト等に応じて、適宜のエッジ装置に対してデータのリクエストを送信することが可能である。なお、ユーザからのリクエストに対し、データそのものではなく接続先を返すこととしてもよい。
【0022】
また、エッジ装置に保存されるデータは大量であるため、本実施の形態では、予め定めた期間を過ぎたら(又はデータ量が閾値を超えたら)エッジ装置はデータを破棄することとしている。予め定めた期間とは例えば数日間、数週間等、ユースケースにより異なってくる。予め定めた期間の情報はエッジ装置に設定してもよいし、IoT機器がデータ自身に当該期間の情報を付加して送信することとしてもよい。
【0023】
また、エッジ装置はデータの暗号化と圧縮の機能、及びデータの送信先とするクラウドのサーバを選定する機能を備えてもよい。これにより、エッジ装置からクラウドまでのトラフィック量を軽減することができる。なお、エッジ装置をどこに設置するにしても、IoT機器やクラウドのサーバ(とそのアプリケーション)からエッジ装置にIPで接続できるようにする。ただし、これに限られるわけではなく、IP以外の方法で接続を実現してもよい。
【0024】
以下、本実施の形態におけるシステム構成及び動作の例をより詳細に説明する。
【0025】
(システム構成)
図1は、本実施の形態における例1のデータ処理システムの構成図である。
図1に示すように、例1のデータ処理システムは、IoT機器100、基地局網を構成する基地局1、モバイルコア網3と有線キャリア網4とを接続するGW(ゲートウェイ)2、エッジ装置200、及びクラウド装置300を含む。後述するように、本実施の形態では、LB/DNS(Load Balancer/Domain Name System)400、及び、メタデータ管理装置500も使用される。これらの装置はそれぞれ、これを利用する他の装置と通信が可能であれば、どこに備えられていてもよい。例えば、クラウド装置300と同様に有線キャリア網4に備えられてもよいし、モバイルコア網3に備えられてもよい。
【0026】
本実施の形態における基地局1には、張り出し局となる無線部(アンテナ等)が光ファイバ等で接続されており、各IoT機器100は、当該無線部と無線通信を行う。各GW2は、例えばAPN(Access Point Name)で識別される。
【0027】
例1では、エッジ装置200は、GW2側に備えられている。エッジ装置200がGW2側に備えられているとは、例えば、エッジ装置200がGW2と物理的に近い距離で接続されいることを含む。また、エッジ装置200の機能が、GW2内に備えられていてもよい。つまり、GW2がエッジ装置200であってもよい。クラウド装置300は、例えば、DC(データセンタ)に備えられているサーバである。
【0028】
図2は、例2のデータ処理システムの構成図である。例2では、エッジ装置200が、GW2側ではなく、基地局1側に備えられている点が例1と異なる。エッジ装置200が基地局1側に備えられているとは、例えば、エッジ装置200が基地局1と物理的に近い距離で接続されていることを含む。また、エッジ装置200の機能が、基地局1内に備えられていてもよい。つまり、基地局1がエッジ装置200であってもよい。
【0029】
図3は、例3のデータ処理システムの構成図である。例3では、エッジ装置200が、GW2側と基地局1側の両方に備えられている。つまり、例3では、エッジ装置200が2段構成になっている。
【0030】
なお、例1〜例3は一例に過ぎない。エッジ装置200は、IoT機器100とクラウド装置300との間のどこに設置してもよい。また、IoT機器100は、モバイル網の他、無線LAN網に接続されてもよい。この場合、例えば、エッジ装置200を、無線LANのアクセスポイント側に備えることとしてもよい。
【0031】
以下、例1あるいは例2のように、エッジ装置200が1段構成である場合について、各装置の構成の詳細、及び、動作例を説明するが、多段構成であっても、エッジ装置200の動作は、基本的に以下で説明する動作と同様である。例えば、多段構成において、ある段に位置するエッジ装置200がその下位の段のエッジ装置200からデータを受信し、その上位の段のエッジ装置200にデータを送信する動作は、1段構成におけるエッジ装置200が、IoT機器100からデータを受信し、クラウド装置300にデータを送信する動作と基本的に同様である。
【0032】
(各装置の構成)
図4に、各装置の機能構成を示す。各装置間を接続する矢印付きの線は、後述する動作説明における動作に対応している。以下では、各装置の構成を説明し、装置を構成する各機能部の動作については、後述する動作説明の中で説明する。
【0033】
IoT機器100は、データの発生源となる端末装置であり、例えばカメラである。IoT機器100が、PC、スマートフォン等の一般的なユーザ端末であってもよい。
図4に示すように、IoT機器100は、データ送信部110、ヘルスチェック部120、チェック結果送信部130、及び接続先検索部140を含む。
【0034】
エッジ装置200は、前述した中間層を構成する装置である。
図4に示すように、エッジ装置200は、データ受信部210、データバッファ部220、データマップ生成部230、ヘルスチェック部240、データ送信部250、非送信データストア260、リクエスト受信部270、データマップ送信部280を含む。
【0035】
LB/DNS400は、IoT機器100とエッジ装置200間の距離(例:遅延で表わされる距離)を保持・更新し、IoT機器100からの問い合わせに対して近傍のエッジ装置200を返す等の処理を実行する装置である。
図4に示すように、LB/DNS400は、データ受信部410、機器・エッジ間マップ格納部420を含む。
【0036】
クラウド装置300は、IoT機器100から出力され、エッジ装置200から送信されたデータを受信し、保存する等の処理を行う装置である。
図4に示すように、クラウド装置300は、データ受信部310、データストア320、データリクエスト部330、リクエストデータ接続先検索部340を含む。
【0037】
メタデータ管理装置500は、IoT機器100から出力されたデータが、どのエッジ装置200に格納されているか等のデータマップ情報を管理する装置である。
図4に示すように、メタデータ管理装置500は、各エッジデータマップ受信部510、データマップ格納部520を含む。
【0038】
上述したIoT機器100、エッジ装置200、クラウド装置300、LB/DNS400、メタデータ管理装置500はいずれも、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
図5は、各装置のハードウェア構成例を示す図である。
図5の装置は、それぞれバスBで相互に接続されているドライブ装置150、補助記憶装置152、メモリ装置153、CPU154、インタフェース装置155、表示装置156、及び入力装置157等を有する。
【0039】
当該装置(IoT機器100、エッジ装置200、クラウド装置300、LB/DNS400、又は、メタデータ管理装置500)での処理を実現するプログラムは、例えば、CD−ROM又はメモリカード等の記録媒体151によって提供される。プログラムを記憶した記録媒体151がドライブ装置150にセットされると、プログラムが記録媒体151からドライブ装置150を介して補助記憶装置152にインストールされる。但し、プログラムのインストールは必ずしも記録媒体151より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置152は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0040】
メモリ装置153は、プログラムの起動指示があった場合に、補助記憶装置152からプログラムを読み出して格納する。CPU154は、メモリ装置153に格納されたプログラムに従って当該装置に係る機能を実現する。インタフェース装置155は、ネットワークに接続するためのインタフェースとして用いられる。表示装置156はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置157はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。なお、各装置において表示装置156及び/又は入力装置157を備えないこととしてもよい。
【0041】
なお、LB/DNS400は、例えばモバイル網が5Gであれば、モバイル網内の仮想スライスの中にある仮想ファンクションであってもよい。
【0042】
(データ処理システムの動作)
以下、シーケンス図等を参照して、本実施の形態におけるデータ処理システムの動作を説明する。なお、各シーケンス図におけるステップ番号に対応するステップ番号が
図4にも記載されている。以下の説明は、シーケンス図を参照して行うが、機能部間の情報送受信等に関しては、
図4も適宜参照されたい。
【0043】
<ヘルスチェック時の動作手順>
複数のIoT機器100と複数のエッジ装置200が存在する本実施の形態に係る構成において、各IoT機器100がどのエッジ装置200に近いかを管理するために、各IoT機器100は、複数のエッジ装置200との間でヘルスチェックを実施する。なお、本実施の形態におけるヘルスチェックは、遅延のチェックも含むものである。
【0044】
ヘルスチェック時の動作手順を
図6を参照して説明する。
図6は、1つのIoT機器100と1つのエッジ装置200に着目した図である。
【0045】
IoT機器100のヘルスチェック部120は、エッジ装置200のヘルスチェック部240に対し、ヘルスチェック用データを送信する(ステップS101)。ヘルスチェック用データの送信は、例えば一定時間間隔で定常的に行われる。ヘルスチェック用データを受信したエッジ装置200のヘルスチェック部240は、応答を返す(ステップS102)。
【0046】
IoT機器100のヘルスチェック部120は、当該応答を受信することで、エッジ装置200が動作していることを確認するとともに、IoT機器100とエッジ装置200間の遅延を把握する。
【0047】
一例として、ヘルスチェック用データは、ping等で使用されるICMPパケットである。IoT機器100のヘルスチェック部120は、ICMPパケットを送信してから、その応答を受信するまでの時間を遅延時間として把握することができる。また、ヘルスチェック用データが、ICMPパケット以外の軽量のチェック用データであってもよい。その場合、例えば、エッジ装置200のヘルスチェック部240が、チェック用データを受信した時刻を含む応答をIoT機器100のヘルスチェック部120に返すことで、IoT機器100のヘルスチェック部120は、チェック用データを送信した時刻と、応答に含まれる時刻とから、上り方向の遅延を把握することができる。
【0048】
IoT機器100のチェック結果送信部130は、ヘルスチェックの結果をLB/DNS400に送信する。ヘルスチェックの結果には、例えば、IoT機器100の識別情報、ヘルスチェックの対象となったエッジ装置200の識別情報、及び遅延(遅延の値)が含まれる。なお、これらの識別情報はそれぞれ、IPアドレスであってもよいし、MACアドレス等の装置固有の情報であってもよいし、装置に割り当てられたID等であってもよいし、その他の情報であってもよい。
【0049】
LB/DNS400のデータ受信部410は、ヘルスチェックの結果を受信すると、当該ヘルスチェックの結果を、機器・エッジ間マップ(各エッジ装置200と各IoT機器100間の主に遅延で表される距離を逐次更新しているマップ)として、機器・エッジ間マップ格納部420に格納する。なお、該当のIoT機器100とエッジ装置200の組に関して、既に情報が格納されている場合、距離の情報が更新される。
【0050】
図7に、機器・エッジ間マップ格納部420に格納される情報の例を示す。
図7に示すとおり、IoT機器の識別情報と、エッジ装置の識別情報と、距離(遅延)とが対応付けて格納される。
【0051】
<データアップロード時の動作手順>
次に、IoT機器100が、データをアップロードする際の動作手順を
図8を参照して説明する。
【0052】
まず、IoT機器100の接続先検索部140が、データの送信先の問い合わせ(メッセージ)をLB/DNS400に送信する(ステップS201)。問い合わせを受信したLB/DNS400は、機器・エッジ間マップ格納部420を参照することで、問い合わせの送信元のIoT機器100との間の遅延が小さいエッジ装置200(1つ又は複数)を特定し、当該エッジ装置200の識別情報(例:IPアドレス)を当該IoT機器100に返す(ステップS202)。なお、IoT機器100との間の遅延が小さいエッジ装置200とは、例えば、IoT機器100が遅延測定を実施した複数のエッジ装置200のうちの遅延が最小のエッジ装置200である。
【0053】
上記ステップS201、S202の処理は、例えば、通常のDNSと同じく、FQDNで問い合わせを受け付けて、IPアドレスを返すことであってもよい。
【0054】
IoT機器100は、LB/DNS400から指定されたエッジ装置200を宛先としてデータを送信する(ステップS203)。なお、LB/DNS400から複数のエッジ装置200が指定された場合、例えば、IoT機器100は任意に選択した1つのエッジ装置200にデータを送信する。例えば、データの送信が開始されると、ある期間(例:ある時間長の映像データの送信が完了するまで)、データ(パケット)が連続的に送信される。
【0055】
エッジ装置200のデータ受信部210が、IoT機器100から送信されたデータを受信すると、データ受信部210は、当該データをデータバッファ部220に一時的に格納(バッファ)する。データバッファ部220は、バッファ機能とともに、バッファしたデータのうち、すぐにクラウド装置300に送信するデータと、それ以外のデータとを判別する機能を含み、当該機能により、すぐにクラウド装置300に送信するデータと、それ以外のデータとを判別する。
【0056】
なお、エッジ装置200は、順次データ(パケット)を受信するが、データバッファ部220に蓄積するデータ量に関し、例えば、データバッファ部220は、1つのパケットを蓄積したら、当該パケットについて、すぐにクラウド装置300に送信するか否かの判定、及び判定に伴う処理(送信/格納)を行うこととしてもよいし、データバッファ部220は、予め定めたデータ量だけ複数パケットを蓄積し、当該複数パケットのそれぞれについて、すぐにクラウド装置300に送信するか否かの判定、及び判定に伴う処理(送信/格納)を行うこととしてもよい。
【0057】
データバッファ部220は、すぐにクラウド装置300に送信すると判断したデータをデータバッファ部220からデータ送信部250に送る。データ送信部250は、当該データをクラウド装置300に送信する(ステップS204)。クラウド装置300のデータ受信部310が、当該データを受信し、データストア320に格納する(ステップS206)。
【0058】
データバッファ部220は、すぐにクラウド装置300に送信すると判断したデータ以外のデータを非送信データストアに保存(格納)する(ステップS205)。
【0059】
すぐにクラウド装置300に送信するデータと、それ以外のデータとを判別する機能に関して、例えば、IoT機器100から送信されるデータのヘッダに、すぐにクラウド装置300に送信するデータと、それ以外のデータとを識別するフラグが付けられる。例えば、フラグとしてのあるビットが1であればすぐにクラウド装置300に送信するデータであり、ビットが0であればそれ以外のデータであるとする。この場合、データバッファ部220は、バッファしたデータのフラグのビットを確認し、1であれば当該データをデータ送信部250によりすぐにクラウド装置300に送信し、0であれば当該データを非送信データストア260に格納する。
【0060】
また、IoT機器100から送信されるデータにフラグ等を付さず、エッジ装置200において、すぐにクラウド装置300に送信するデータと、それ以外のデータとを判別することとしてもよい。この場合、例えば、エッジ装置200に対し、すぐにクラウド装置300に送信するデータと、それ以外のデータとを判別するためのルール(メタデータと称してもよい)を設定(格納)しておく。例えば、アプリケーションAのデータであればすぐにクラウド装置300に送信し、それ以外のアプリケーションのデータであれば非送信データストア260に格納する、ことを示すルールが設定される場合において、データバッファ部220は、バッファしたデータからアプリケーションを判別し、当該アプロケーションがアプリケーションAであればデータをすぐにクラウド装置300に送信し、それ以外のアプリケーションであればデータを非送信データストア260に格納する。
【0061】
データマップ生成部230は、データ送信元のIoT機器100、データ発生時刻、どのデータをクラウド装置300に送信し、どのデータを非送信データストア260に保存したか、等を示す情報をデータマップとして生成する。一例として、ここで生成されるデータマップには、データ送信元のIoT機器100の識別情報、データ送信先のクラウド装置300の識別情報、データ発生時刻(日時)、クラウド装置300に送信したデータの識別情報(例:映像であればフレーム番号等)、非送信データストア260に保存したデータの識別情報(例:映像であればフレーム番号等)が含まれる。
【0062】
データマップ送信部280は、データマップ生成部230により生成されたデータマップをメタデータ管理装置500に送信する(ステップS207)。なお、前述したとおり、各エッジ装置200はデータを分散させて保持する機能を含む。例えば、あるエッジ装置200が、自身が非送信データストア260に保存すべきと判断したデータの一部を他のエッジ装置200に渡す場合、当該データに係るマップデータも当該他のエッジ装置200に渡すこととしてもよい。これにより、各エッジ装置200は、分散機能により保持するデータについてもデータマップを保持することができ、当該データマップをメタデータ管理装置500に送信することができる。
【0063】
メタデータ管理装置500のエッジデータマップ受信部510が、データマップをエッジ装置200から受信し、データマップ格納部520に格納する(ステップS208)。データマップ格納部520には、各エッジ装置200から受信したマップデータが集約されて格納される。
【0064】
図9に、データマップ格納部520に格納されるデータマップの情報の例を示す。
図9の例では、データマップ格納部520には、データマップとして、データを識別する識別情報(ここでは、「ID」)、データが格納されている場所を示す所在情報、データが発生した発生時刻、その他の情報が格納される。
【0065】
データを識別する識別情報は、そのデータを送信したIoT機器100の識別情報であってもよいし、データをあるサイズのブロックに分割して扱う場合における当該ブロックの番号であってもよいし、データに順番が付けられる場合における当該順番であってもよいし、映像のフレーム番号であってもよいし、これら以外の情報であってもよいし、これらの組み合わせでも良い。
【0066】
所在情報は、例えば、該当データを格納している装置(エッジ装置200、クラウド装置300等)の識別情報である。また、所在情報に、当該装置の識別情報に加えて、装置内の格納場所が含まれていてもよい。
【0067】
発生時刻は、例えば、IoT機器100から送信されるデータにタイムスタンプが付される場合における当該タイムスタンプ、あるいは、エッジ装置200がデータを受信した時刻等である。その他の情報は、例えば、該当データに関わるアプリケーション名、該当データの所有者(例:企業名)等である。
【0068】
なお、
図8のステップS204において、エッジ装置200からクラウド装置300にデータを送信するに際して、どのクラウド装置300にデータを送信するかについては、IoT機器100とエッジ装置200との間での処理と同様にして、予め各クラウド装置300との間でヘルスチェックにより遅延を測定しておいて、当該遅延に基づき決定する。また、IoT機器100とエッジ装置200との間での処理と同様に、遅延の情報をDNSに保持しておき、DNSからの回答として制御することとしてもよい。
【0069】
あるいは、エッジ装置200とクラウド装置300との間は、有線であることもあり、例えばホップ数等である程度固定で決めておくこととしてもよい。また、業務要件等により、データ保存先となるクラウド装置300を、IoT機器100毎に決定することとしてもよい。
【0070】
<データリクエスト時の動作手順>
次に、データリクエスト時の動作手順の例を
図10を参照して説明する。ステップS301において、クラウド装置300が、データストア320に格納されたデータに基づいて異常を検知する。この異常検知は、クラウド装置300自身が行うこととしてもよいし、クラウド装置300に格納されたデータを遠隔で利用するユーザが行うこととしてもよい。後者の場合、クラウド装置300は、当該ユーザのユーザ端末から、異常を通知されることで異常検知を行う。
【0071】
一例として、IoT機器100が監視カメラであり、格納するデータが映像データである場合において、異常を示す映像が検知された場合に異常検知となる。異常が検知されると、データリクエスト部330からエッジ装置200に対して不足データのリクエストを送信する。リクエスト内容は、例えば、普段はフレームを間引いたものをクラウド装置300に保存していれば、残りのフレームをリクエストするといったものである。
【0072】
上記のようなリクエストを実行するために、まず、クラウド装置300のリクエストデータ接続先検索部340が、異常検知したデータが、どのエッジ装置200に保存されているかをメタデータ管理装置500に問い合わせる(ステップS302)。この問い合わせには、データを識別する情報(例:データの送信元のIoT機器100の識別情報、データの番号等)が含まれる。
【0073】
問い合わせを受信したメタデータ管理装置500は、データマップ格納部520に格納されているデータマップを検索し、当該データの所在情報(例:データを格納するエッジ装置200の識別情報)を返す(ステップS303)。なお、メタデータ管理装置500において、分散格納されたデータへのアクセスを実現するために、例えばHDFSのネームノード等の技術を適用してもよい。
【0074】
データリクエスト部330は、データを格納しているエッジ装置200に対してデータリクエスト(例:前述したフレームの要求)を送信する(ステップS304)。エッジ装置200のリクエスト受信部270が当該データリクエストを受信すると、データ送信部250は、当該データリクエストに応じたデータを非送信データストア260から読み出し、当該データをクラウド装置300に送信する。なお、データ送信部250は、当該データそのものではなく、当該データにアクセスするための接続先をクラウド装置300に送信することとしてもよい。
【0075】
エッジ装置200では、例えばリクエスト受信部270が、クラウド装置300からのリクエストに基づき送信したデータを非送信データストア260から削除する(ステップS306)。また、非送信データストア260は、非送信データストア260に格納したデータのうち、格納してから予め定めた時間が経過したデータを順次削除する。また、非送信データストア260は、非送信データストア260のデータ容量が逼迫した場合(例:閾値に達した場合)には、データを削除する。この場合、例えば、最も古いデータ(格納してから経過した時間が最も長いデータ)から削除する。なお、データ容量が逼迫した場合に古いデータから削除することは一例に過ぎない。例えば、データの種類(アプリケーションの種類等)に応じて優先度を定めておき、最も優先度の低いデータから削除することとしてもよい。
【0076】
なお、上記の例では、エッジ装置200は、クラウド装置300からリクエストを受信した場合に、非送信データストア260に格納しておいたデータをクラウド装置300に送信しているが、これは非送信データストア260に格納しておいたデータを送信する場合の一例である。
【0077】
例えば、データ送信部250に予めルールを設定しておき、データ送信部250が当該ルールに従って、非送信データストア260に格納しておいたデータをクラウド装置300に送信することとしてもよい。また、送信したデータを非送信データストア260から削除する。ルールとしては、例えば、エッジ装置200とクラウド装置300との間のNW負荷の少ない時間帯(予め設定する時間帯)に非送信データストア260に格納しておいたデータを送信すること等がある。また、データ送信部250に、エッジ装置200とクラウド装置300との間のNW負荷の値(例:遅延)を取得する機能を備え、データ送信部250が、NW負荷の値が所定閾値以下となったことを検出した場合に、非送信データストア260に格納しておいたデータを送信することとしてもよい。なお、非送信データストア260に格納しておいたデータの送信先はクラウド装置300に限られない。例えば、データの送信元のIoT機器100のユーザにより予め指定された宛先(例:ユーザ所有のサーバ)であってもよい。
【0078】
(実施の形態の効果)
従来技術では、IoT機器100等から画像や映像のような大量データをアップロードするシステムを構築する際に、遅延の影響や回線コストを抑えるための方法として、主にIoT機器100側の制御を行うこととしていた。例えば、単純にデータを圧縮する以外に、普段はビットレートや解像度を下げたデータを送信し、特別なイベント(異常時等)の時だけ、高画質データを送信することで全体として網にかかるトラフィックを削減する方法がとられていた。
【0079】
一方、本実施の形態に係る技術を用いることで、上記のような制御を行うことなく、エッジ装置200の置き場所を適宜変えることによって、IoT機器100からみた遅延削減や各網でのトラフィック量を削減することができる。例えば、エッジ装置200をモバイルコア網3と有線キャリア網4との間の接続ポイントであるGW2付近のモバイルコア網3内に設置した場合、GW2を通って有線キャリア網4へ抜けるトラフィックを抑えることができる。また、モバイルコア網3内のトラフィックを抑えたければ基地局1付近にも設置し、多段構成にすれば良い。トラフィックを抑えることにより、コスト削減及び遅延削減が実現される。
【0080】
また、従来技術では、過去のデータに遡って詳細データが欲しいときに、IoT機器100等に保存しておいたデータを追加で取得する方法しかとれず、通常貧弱であるIoT機器100のストレージ容量に大きく依存するばかりか、モバイルコア網3に突発的な負荷をかけることになったが、本実施の形態に係る技術を用いることで、エッジ装置200として高集約のストレージを備えることが可能であるため、IoT機器100の種類によらず、ある程度の容量のデータをバッファリングしておくことが可能である。これにより、IoT機器100のコスト削減が可能である。
【0081】
上記のように、本実施の形態に係る技術により、IoT機器等の端末装置からクラウド装置へのデータ送信を効率的に行うことができるようになる。
【0082】
(実施の形態のまとめ)
以上、説明したとおり、本実施の形態によれば、端末装置から出力されたデータをサーバに送信するための処理を実行するエッジ装置であって、前記端末装置から出力されたデータを受信し、当該データが、すぐに前記サーバに送信すべきデータであるか否かを判定する判定手段と、前記判定手段により、すぐに前記サーバに送信すべきであると判定されたデータを前記サーバに送信する送信手段と、前記判定手段により、すぐに前記サーバに送信すべきであると判定されなかったデータを格納する非送信データ格納手段とを備えることを特徴とするエッジ装置が提供される。
【0083】
データバッファ部220、データ送信部250、及び非送信データストア260はそれぞれ、判定手段、送信手段、非送信データ格納手段の例である。
【0084】
前記判定手段は、前記端末装置から出力されたデータに付されたフラグに基づいて前記判定を行う、又は、データに関する予め定めたルールに基づいて前記判定を行うこととしてもよい。
【0085】
所定の条件が満たされた場合に、前記送信手段は、前記非送信データ格納手段からデータを読み出し、当該データを前記サーバに送信する、又は、前記非送信データ格納手段に格納されたデータにアクセスするための接続先を前記サーバに送信することとしてもよい。なお、「所定の条件が満たされた場合」とは、例えば、サーバからリクエストを受信した場合、現在時刻が所定の時間帯になった場合、あるいはNW品質が良好である場合、等であるが、これらに限定されるわけではない。
【0086】
エッジ装置は、前記サーバに送信したデータと、前記非送信データ格納手段に格納したデータに関する情報を生成し、当該情報をメタデータ管理装置に送信する手段を更に備えることとしてもよい。なお、データマップ生成部230及びデータマップ送信部280は、当該手段の例である。
【0087】
また、エッジ装置は、前記非送信データ格納手段に格納されたデータから、所定の条件を満たすデータを削除する手段を更に備えてもよい。「所定の条件を満たすデータ」とは、例えば、格納してから予め定めた時間が経過したデータ、データ容量が閾値に達した場合における最も古いデータや最も優先度の低いデータ、等であるが、これらに限られるわけではない。
【0088】
また、本実施の形態により、端末装置から出力されたデータをサーバに送信するための処理を実行する複数のエッジ装置と、前記サーバとを備えるデータ処理システムであって、各エッジ装置と前記端末装置との間の遅延に基づいて、前記複数のエッジ装置の中から選択されたエッジ装置が、前記端末装置から出力されたデータを順次受信し、前記エッジ装置は、前記端末装置から順次受信するデータのうち、すぐに前記サーバに送信すべきであると判定されたデータを前記サーバに送信し、前記サーバは、前記エッジ装置から送信された前記データを受信し、格納することを特徴とするデータ処理システムが提供される。
【0089】
また、本実施の形態により、コンピュータを、エッジ装置における各手段として機能させるためのプログラムが提供される。
【0090】
<付記>
(第1項)
端末装置から出力されたデータをサーバに送信するための処理を実行するエッジ装置であって、
前記端末装置から出力されたデータを受信し、当該データが、すぐに前記サーバに送信すべきデータであるか否かを判定する判定手段と、
前記判定手段により、すぐに前記サーバに送信すべきであると判定されたデータを前記サーバに送信する送信手段と、
前記判定手段により、すぐに前記サーバに送信すべきであると判定されなかったデータを格納する非送信データ格納手段と
を備えることを特徴とするエッジ装置。
(第2項)
前記判定手段は、前記端末装置から出力されたデータに付されたフラグに基づいて前記判定を行う、又は、データに関する予め定めたルールに基づいて前記判定を行う
ことを特徴とする第1項に記載のエッジ装置。
(第3項)
所定の条件が満たされた場合に、前記送信手段は、
前記非送信データ格納手段からデータを読み出し、当該データを前記サーバに送信する、又は、
前記非送信データ格納手段に格納されたデータにアクセスするための接続先を前記サーバに送信する
ことを特徴とする第1項又は第2項に記載のエッジ装置。
(第4項)
前記サーバに送信したデータと、前記非送信データ格納手段に格納したデータに関する情報を生成し、当該情報をメタデータ管理装置に送信する手段
を更に備えることを特徴とする第1項ないし第3項のうちいずれか1項に記載のエッジ装置。
(第5項)
前記非送信データ格納手段に格納されたデータから、所定の条件を満たすデータを削除する手段
を更に備えることを特徴とする第1項ないし第4項のうちいずれか1項に記載のエッジ装置。
(第6項)
端末装置から出力されたデータをサーバに送信するための処理を実行する複数のエッジ装置と、前記サーバとを備えるデータ処理システムであって、
各エッジ装置と前記端末装置との間の遅延に基づいて、前記複数のエッジ装置の中から選択されたエッジ装置が、前記端末装置から出力されたデータを順次受信し、
前記エッジ装置は、前記端末装置から順次受信するデータのうち、すぐに前記サーバに送信すべきであると判定されたデータを前記サーバに送信し、
前記サーバは、前記エッジ装置から送信された前記データを受信し、格納する
ことを特徴とするデータ処理システム。
(第7項)
端末装置から出力されたデータをサーバに送信するための処理を実行するエッジ装置におけるデータ送信方法であって、
前記端末装置から出力されたデータを受信し、当該データが、すぐに前記サーバに送信すべきデータであるか否かを判定する判定ステップと、
前記判定ステップにより、すぐに前記サーバに送信すべきであると判定されたデータを前記サーバに送信するステップと、
前記判定ステップにより、すぐに前記サーバに送信すべきであると判定されなかったデータを非送信データ格納手段に格納するステップと
を備えることを特徴とするデータ送信方法。
(第8項)
コンピュータを、第1項ないし第5項のうちいずれか1項に記載のエッジ装置における各手段として機能させるためのプログラム。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。