【実施例1】
【0018】
図1は、通信システムのシステム構成図である。
図1に示すように、本実施例に係る通信システム100は、複数のサーバ70、モバイルコアネットワーク6、エッジサーバ11及び12、基地局21及び22、並びに、移動局51〜53を有する。
【0019】
サーバ70は、モバイルコアネットワーク6に接続される。サーバ70は、ネットワーク上の資源である。ここでは、サーバ70をネットワーク上の資源としてクラウドサービスを提供するサービス提供元をクラウド7という。また、クラウド7がモバイルコアネットワーク6に接続されているとして説明する。サーバ70は、クラウドサービスを提供するアプリケーションが搭載される。クラウド7は、エッジサーバ11及び12で収集された情報を用いて、各基地局21〜22の通信エリアの全体に関する情報の移動局51〜53への送信などのサービス提供を実行する。
【0020】
モバイルコアネットワーク6は、移動局51〜53が無線通信に使用するモバイル網である。モバイルコアネットワーク6は、MME(Mobility Management Entity)やゲートウェイなどを有する。
【0021】
エッジサーバ11及び12は、モバイルコアネットワーク6に接続される。また、エッジサーバ11は、基地局21に接続される。エッジサーバ12は、基地局22に接続される。
【0022】
エッジサーバ11及び12は、エッジサービスを提供するアプリケーションが搭載される。エッジサーバ11及び12は、移動局個別の状況を用いたサービス提供や、自装置が接続された基地局21又は22の通信エリアに関するサービス提供を行う。このエッジサーバ11及び12が、「通信装置」の一例にあたる。
【0023】
基地局21は、エッジサーバ11に接続される。また、基地局22は、エッジサーバ12に接続される。ここで、本実施例ではエッジサービスに関する通信を主に説明するため、説明の都合上、基地局21及び22は、エッジサーバ11又は12を介してモバイルコアネットワーク6に接続するように図示した。ただし、基地局21及び22は、移動局51〜53に無線通信を行わせるため、モバイルコアネットワーク6に直接接続することが一般的である。
【0024】
基地局21は、自装置との通信可能なエリアであるセル30を形成する。また、基地局22は、自装置との通信可能なエリアであるセル40を形成する。基地局21は、セル30に在圏する移動局51及び52と通信可能である。また、基地局22は、セル40に在圏する移動局53と通信可能である。
【0025】
基地局21は、例えば、移動局52が移動してセル40に在圏する場合、基地局22へのハンドオーバ要求を移動局52から受信する。そして、基地局21は、ハンドオーバ要求をエッジサーバ11へ出力する。その後、基地局21は、ハンドオーバ命令をエッジサーバ11から受ける。そして、基地局21は、ハンドオーバ命令を移動局52へ送信する。
【0026】
また、例えば、移動局53が移動してセル30に在圏する場合、基地局21は、ハンドオーバ完了通知を移動局53から受ける。そして、基地局21は、エッジサーバ11へハンドオーバ完了通知を送信する。その後、基地局21は、ハンドオーバ完了応答をエッジサーバ11から受信する。そして、基地局21は、ハンドオーバ完了応答を移動局53へ出力する。これにより、移動局53のハンドオーバが完了する。基地局22も、基地局21と同様の機能を有する。
【0027】
移動局51〜53は、セル30又は40のいずれか在圏する側のセルを形成する基地局21又は22と通信を行う。例えば、移動局52は、
図1の状態では、基地局21と通信を行う。その後、移動局52は、移動してセル30からセル40へ移動すると、電波状況などを基に基地局22へのハンドオーバの要求を基地局21へ送信する。
【0028】
その後、移動局52は、ハンドオーバ命令を基地局21から受けると、ハンドオーバを開始する。そして、移動局52は、基地局21との通信用の電波から、基地局22との通信用の電波へ切り替える。さらに、移動局52は、電波の同期を行う。電波の同期が完了すると、移動局52は、ハンドオーバ完了通知をハンドオーバ先の基地局22へ送信する。その後、移動局52は、ハンドオーバ完了応答を基地局22から受信し、ハンドオーバの処理を終了する。ハンドオーバ終了後は、移動局52は、基地局22を接続先として通信を行う。この移動局51〜53が、「端末装置」の一例にあたる。
【0029】
図2は、実施例1に係るエッジサーバのブロック図である。エッジサーバ11は、
図2に示すように、状態保持プロセス実行部101、地域別プロセス実行部102、プロセス間通信監視部103及び移動管理部104を有する。ここでは、エッジサーバ11を例に説明するが、エッジサーバ12も同様の機能を有する。
【0030】
また、
図3は、実施例1に係るエッジサーバのハードウェア構成図である。
図3に示すように、エッジサーバ11は、CPU(Central Processing Unit)201、メモリ202、バス203、ハードディスク204及びネットワークインタフェース205を有する。CPU201は、バス203を介してメモリ202、ハードディスク204及びネットワークインタフェース205と接続される。
【0031】
ハードディスク204は、
図2に例示した状態保持プロセス実行部101、地域別プロセス実行部102、プロセス間通信監視部103及び移動管理部104の機能を実現するプログラムを含む各種プログラムを格納する。
【0032】
CPU201は、状態保持プロセス実行部101、地域別プロセス実行部102、プロセス間通信監視部103及び移動管理部104の機能を実現するプログラムを含む各種プログラムをハードディスク204から読み出す。そして、CPU201は、読み出したプログラムをメモリ202上に展開してプロセス間通信監視プロセス221、移動管理プロセス222、アプリケーション223及びOS224を含む各種プロセスを生成する。アプリケーション223には、状態保持プロセス111及び112、並びに、地域別プロセス121が含まれる。この状態保持プロセス111及び112が、「第1プロセス」の一例にあたる。また、地域別プロセス121が、「第2プロセス」の一例にあたる。
【0033】
また、アプリケーション223が動作することで、
図2に例示した状態保持プロセス実行部101及び地域別プロセス実行部102の機能が実現される。プロセス間通信監視プロセス221が動作することで、
図2に例示したプロセス間通信監視部103の機能が実現される。
【0034】
図2に戻って説明を続ける。状態保持プロセス実行部101は、セル30に在圏し基地局21と通信を行う移動局51及び52から送信された情報を基地局21を介して取得する。そして、状態保持プロセス実行部101は、移動局51から送られた情報を用いて移動局51の状態を表す情報を取得する。また、状態保持プロセス実行部101は、移動局52から送られた情報を用いて移動局52の状態を表す情報を取得する。そして、状態保持プロセス実行部101は、取得した情報の解析などを行うことで移動局51及び52のそれぞれに提供する個別的な情報を生成する。そして、状態保持プロセス実行部101は、生成した情報を移動局51及び52のそれぞれに基地局21を介して送信する。また状態保持プロセス実行部101は、移動局から取得した情報及び生成した情報を、地域別プロセス実行部103またはモバイルコアネットワーク6を介してクラウド7へ提供する。
【0035】
このように、移動局51又は52の個別的な現在の状態を表す情報を用いて移動局51又は52に提供する個別的な情報を生成し送信する処理が、状態保持プロセス111及び112にあたる。すなわち、状態保持プロセス111は、移動局51の現在の状態を保持するプロセスと言え、状態保持プロセス112は、移動局52の現在の状態を保持するプロセスと言える。そして、状態保持プロセス実行部101は、状態保持プロセス111及び112を実行するといえる。
【0036】
さらに、状態保持プロセス実行部101は、地域別プロセス実行部102と通信を行う。例えば、状態保持プロセス実行部101は、移動局51及び52から送信された情報及びそれらを用いて生成した情報のうち後述する地域別プロセス実行部102の処理に用いられる移動局51及び52の在圏する地域に関する情報を地域別プロセス実行部102へ送信する。この状態保持プロセス実行部101が、「第1実行部」の一例にあたる。
【0037】
地域別プロセス実行部102は、状態保持プロセス実行部101と通信を行う。地域別プロセス実行部102は、移動局51及び52の在圏する地域に関する情報を状態保持プロセス実行部101から取得する。そして、地域別プロセス実行部102は、取得した情報を用いて基地局21が形成するセル30がカバーする地域に関する情報を生成する。そして、地域別プロセス実行部102は、生成した基地局21が形成するセル30がカバーする地域に関する情報を基地局21を介して移動局51及び52に送信する。
【0038】
このように、移動局51及び52の在圏する地域に関する情報を用いて基地局21が形成するセル30がカバーする地域に関する情報を生成し送信する処理が、地域別プロセス121にあたる。すなわち、地域別プロセス実行部102は、地域別プロセス121を実行するといえる。また、地域別プロセス121は、移動局51及び52に関する情報を用いるが、移動局51及び52のそれぞれの現在の状態の情報を用いない。すなわち、移動局51及び52の現在の状態を表す情報を保持しなくても、地域別プロセス実行部102は、地域別プロセス121を実行できる。そのため、地域別プロセス121は、移動局51及び52の現在の状態を表す情報を保持しないプロセスといえる。この地域別プロセス実行部102が、「第2実行部」の一例にあたる。
【0039】
また、状態保持プロセス実行部101と地域別プロセス実行部102の通信は、状態保持プロセス111又は112と地域別プロセス121との間の通信といえる。すなわち、状態保持プロセス実行部101と地域別プロセス実行部102の通信は、プロセス間通信にあたる。
【0040】
プロセス間通信監視部103は、
図4に示すように、状態保持プロセス実行部101と地域別プロセス実行部102との間で行われるプロセス間通信を監視する。
図4は、実施例1に係るプロセスマイグレーションを説明するための図である。
図4では、状態保持プロセス実行部101と地域別プロセス実行部102との間の通信経路上の破線で表した丸から延びる矢印によりプロセス間通信の監視を表した。また、この場合、エッジサーバ12の状態保持プロセス実行部101は、状態保持プロセス112が移動してくる以前から、状態保持プロセス113を実行する。また、エッジサーバ12の地域別プロセス実行部102は、地域別プロセス122を実行する。
【0041】
プロセス間通信監視部103は、状態保持プロセス実行部101と地域別プロセス実行部102との間で行われるプロセス間通信における不可分操作を表す通信規約を予め有する。
図5は、通信規約の一例を表す図である。例えば、
図5に示す通信規約150は、1つの不可分操作に含まれる処理要求や応答を表すメッセージを一塊として各メッセージが送受信される順番に並べられた情報を有する。Atom#1〜#3のそれぞれが、1つの不可分操作に含まれるメッセージを表す。例えば、Atom#1であれば、Put(A,*)、Response(A,*)、Put(B,*)、Response(B,*)という4つのメッセージがこの順番で送受信されると1つの不可分操作が完了する。ここで、A,Bなどは、固定のパラメータであり、*は、変数のパラメータを表す。
【0042】
図4に戻って説明を続ける。プロセス間通信監視部103は、プロセス間通信を監視して、通信メッセージを自己の記憶領域に保存する。ここで、地域別プロセス121と状態保持プロセス111及び112との間のプロセス間通信は、OS224を介して行われる。そのため、プロセス間通信監視プロセス221は、OS224における特定の箇所を監視することでプロセス間通信を監視することができる。このプロセス間通信監視部103が、「検知部」の一例にあたる。
【0043】
そして、移動管理部104からアトミック性の確認要求を受信すると、プロセス間通信監視部103は、自己の記憶領域から通信メッセージを読み出す。そして、プロセス間通信監視部103は、読み出した通信メッセージと通信規約150とを比較する。プロセス間通信監視部103は、取得した通信メッセージから、プロセス間通信の現在の通信状態が通信規約150に登録された不可分操作の何れかの途中の状態か否かを判定する。
【0044】
プロセス間通信監視部103は、取得した通信メッセージと通信規約150に登録されたメッセージにおいて、メッセージの記述及び固定のパラメータが一致し、変数のパラメータに適切な値を有するメッセージであればそれらは同じメッセージであると判定する。この通信規約150に登録された各不可分操作に含まれるメッセージが、「通信処理を表す情報」の一例にあたる。
【0045】
例えば、プロセス間通信監視部103は、Put(A,*)が取得した通信メッセージに含まれていることを検出した場合、その後、Response(A,*)、Put(B,*)、Response(B,*)という通信メッセージが送信されているか否かを判定する。それら3つの通信メッセージが含まれていれば、プロセス間通信監視部103は、通信規約150に登録されたAtom#1で表される不可分操作は完了したと判定する。
【0046】
このように、プロセス間通信監視部103は、通信規約150に登録された不可分操作で完了していない操作の有無により、プロセス間通信の現在の状態がアトミック性が確保された状態か否かを判定する。プロセス間通信の現在の状態がアトミック性が確保された状態であれば、プロセス間通信監視部103は、プロセスイメージの移動許可の通知を移動管理部104へ出力する。
【0047】
次に、移動管理部104について
図2〜4を参照して説明する。移動管理部104は、基地局21からハンドオーバ要求を受信する。ハンドオーバ要求を受信すると、移動管理部104は、アトミック性の確認要求をプロセス間通信監視部103へ出力する。その後、移動管理部104は、プロセスイメージの移動許可通知をプロセス間通信監視部103から取得する。
【0048】
プロセスイメージの移動許可通知を受信すると、移動管理部104は、状態保持プロセス実行部101で動作する状態保持プロセス112の動作を停止させる。そして、移動管理部104は、状態保持プロセス112のプロセスイメージを状態保持プロセス実行部101から取得する。言い換えれば、移動管理部104は、
図3に図示したメモリ202に状態保持プロセス112のプロセスイメージのダンプを出力させ取得する。その後、移動管理部104は、取得したプロセスイメージを含むプロセスイメージファイルを生成する。そして、移動管理部104は、生成したプロセスイメージファイルをエッジサーバ12へ送信する。
【0049】
また、セル30からセル40に移動局52が移動してきた場合、
図4に示すエッジサーバ12の移動管理部104は、エッジサーバ11の移動管理部104が送信したプロセスイメージファイルを受信する。そして、移動管理部104は、プロセスイメージファイルからプロセスイメージを取得し、メモリ202にリストアする。その後、移動管理部104は、状態保持プロセス実行部101及び地域別プロセス実行部102に地域別プロセス122と状態保持プロセス112とのプロセス間通信を指示し、プロセス間通信を復元する。これにより、
図4の一点鎖線で表されるように、状態保持プロセス112は、移動局52の移動に応じてエッジサーバ11からエッジサーバ12へ移動する。
【0050】
次に、
図6を参照して、本実施例に係る通信システム100におけるプロセスマイグレーション処理の流れについて説明する。
図6は、実施例1に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。
図6の縦軸は、紙面に向かって縦軸の上部に記載された各部の動作を表す。また、
図6の縦軸は、紙面に向かって下に進むにしたがい時間が経過することを表す。
図6では、ハンドオーバのことをHO(Hand Over)として略して表した。
【0051】
ここでは、移動局52のハンドオーバ要求が発生する前に、状態保持プロセス実行部101は、不可分操作C1に含まれるPut(A,1)を地域別プロセス実行部102へ送信する(ステップS1)。
【0052】
移動局52は、セル30からセル40への移動に応じて、ハンドオーバ要求を基地局21へ送信する(ステップS2)。
【0053】
基地局21は、ハンドオーバ要求を移動局52から受信する。そして、基地局21は、ハンドオーバ要求をエッジサーバ11の移動管理部104へ送信する(ステップS3)。
【0054】
エッジサーバ11の移動管理部104は、ハンドオーバ要求を基地局21から受信する。そして、エッジサーバ11の移動管理部104は、アトミック性確認要求をエッジサーバ11のプロセス間通信監視部103へ出力する(ステップS4)。この時点では、状態保持プロセス実行部101と地域別プロセス実行部102とは不可分操作C1を行っている。そこで、エッジサーバ11のプロセス間通信監視部103は、プロセス間通信における通信メッセージを取得し、通信規約150との比較を行い、不可分操作C1の完了まで待機する。
【0055】
その間、エッジサーバ11の地域別プロセス実行部102は、不可分操作C1に含まれるResponse(A,5)を状態保持プロセス実行部101へ送信する(ステップS5)。次に、エッジサーバ11の状態保持プロセス実行部101は、不可分操作C1に含まれるPut(B,7)を地域別プロセス実行部102へ送信する(ステップS6)。次に、エッジサーバ11の地域別プロセス実行部102は、不可分操作C1に含まれるResponse(B,9)を状態保持プロセス実行部101へ送信する(ステップS7)。
【0056】
エッジサーバ11のプロセス間通信監視部103は、不可分操作C1で実行されるステップS1及びS5〜S7において送受信される通信メッセージを取得する(ステップS8)。
【0057】
そして、ステップS1及びS5〜S7において送受信される通信メッセージを全て取得した場合、エッジサーバ11のプロセス間通信監視部103は、不可分操作C1が完了したと判定し、アトミック性の確保を確認する(ステップS9)。
【0058】
その後、エッジサーバ11のプロセス間通信監視部103は、状態保持プロセス112の移動許可通知をエッジサーバ11の移動管理部104へ出力する(ステップS10)。
【0059】
エッジサーバ11の移動管理部104は、状態保持プロセス112の移動許可通知の入力をエッジサーバ11のプロセス間通信監視部103から受ける。そして、エッジサーバ11の移動管理部104は、ハンドオーバ命令を基地局21へ送信する(ステップS11)。
【0060】
基地局21は、ハンドオーバ命令をエッジサーバ11の移動管理部104から受信する。そして、基地局21は、ハンドオーバ命令を移動局52へ送信する(ステップS12)。
【0061】
移動局52は、ハンドオーバ命令を基地局21から受信する。そして、移動局52は、ハンドオーバを開始し、電波の切り替えやハンドオーバ先の基地局22との電波の同期を実行する。この間に、エッジサーバ11の移動管理部104は、状態保持プロセス112の停止を状態保持プロセス実行部101へ指示し、状態保持プロセス112を停止させる(ステップS13)。
【0062】
次に、エッジサーバ11の移動管理部104は、プロセスイメージを状態保持プロセス実行部101から取得する(ステップS14)。具体的には、移動管理部104は、状態保持プロセス112のプロセスイメージのダンプをメモリ202に出力させることで、プロセスイメージを取得する。そして、エッジサーバ11の移動管理部104は、プロセスイメージを含むプロセスイメージファイルを生成する。
【0063】
次に、エッジサーバ11の移動管理部104は、生成したプロセスイメージファイルをエッジサーバ12の移動管理部104へ送信する(ステップS15)。
【0064】
エッジサーバ12の移動管理部104は、プロセスイメージファイルをエッジサーバ11の移動管理部104から受信する。そして、エッジサーバ12の移動管理部104は、メモリ202に状態保持プロセス112をリストアする(ステップS16)。
【0065】
その後、エッジサーバ12の移動管理部104は、エッジサーバ12の状態保持プロセス実行部101に状態保持プロセス112の実行を開始させる。そして、エッジサーバ12の移動管理部104は、状態保持プロセス実行部101と地域別プロセス実行部102との間における、状態保持プロセス112と地域別プロセス122とのプロセス間通信を復元させる(ステップS17及びS18)。
【0066】
移動局52は、ハンドオーバの処理が完了すると、ハンドオーバ完了通知を基地局22へ出力する(ステップS19)。
【0067】
基地局22は、ハンドオーバ完了通知を移動局52から受信する。そして、基地局22は、ハンドオーバ完了通知をエッジサーバ12の移動管理部104へ送信する(ステップS20)。
【0068】
エッジサーバ12の移動管理部104は、ハンドオーバ完了通知を基地局22から受信する。そして、エッジサーバ12の移動管理部104は、状態保持プロセス112と地域別プロセス122とのプロセス間通信の復元が完了している場合、ハンドオーバ完了応答を基地局22へ送信する(ステップS21)。
【0069】
基地局22は、ハンドオーバ完了応答をエッジサーバ12の移動管理部104から受信する。そして、基地局22は、ハンドオーバ完了応答を移動局52へ送信する(ステップS22)。
【0070】
移動局52は、ハンドオーバ完了応答を受信する。これにより、移動局52は、エッジサーバ12の状態保持プロセス実行部101及び地域別プロセス実行部102に情報を送信し、サービスを受けることが可能となる。
【0071】
ここで、
図6では、状態保持プロセス112と地域別プロセス122とのプロセス間通信の復元が完了した後に、移動管理部104が、ハンドオーバ完了通知と受信する場合を説明した。ただし、状態保持プロセス112と地域別プロセス122とのプロセス間通信の復元が完了する前に、移動管理部104が、ハンドオーバ完了通知を受信する場合も考えられる。
【0072】
その場合、移動管理部104は、状態保持プロセス112と地域別プロセス122とのプロセス間通信の復元が完了するのを待って、その後、ハンドオーバ完了応答を基地局22へ送信する。この場合でも、アプリケーション223の遅延要件に応じて、実際にエッジサーバ12が移動局52へサービスを提供開始するまでに時間的余裕がある。そのため、移動管理部104は、その時間的余裕を利用して、ハンドオーバ完了通知を受信してからハンドオーバ完了応答を出力するまでの時間を調整することができる。また、セル30とセル40とはオーバラップしているため、移動管理部104は、そのオーバラップ領域に移動局52が在圏している間を利用して、サービスの提供元の切り替えのタイミングを調整することが可能である。
【0073】
次に、
図7を参照して、本実施例に係るエッジサーバ11によるアトミック性の確保の処理の流れの詳細について説明する。
図7は、実施例1に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。
図7における誌面に向かって破線の左側がプロセス間通信監視部103による処理の流れを表し、破線の右側が移動管理部104による処理の流れを表す。そして、各フローチャート間を結ぶ一点鎖線の矢印は、プロセス間通信監視部103と移動管理部104との間の通信を表す。
【0074】
プロセス間通信監視部103は、プロセス間通信が実行されたか否かを判定する(ステップS101)。プロセス間通信が実行されていない場合(ステップS101:否定)、プロセス間通信監視部103は、プロセス間通信が実行されるまで待機する。
【0075】
これに対して、プロセス間通信が実行された場合(ステップS101:肯定)、プロセス間通信監視部103は、プロセス間通信で送受信された通信メッセージを保存する(ステップS102)。
【0076】
その後、プロセス間通信監視部103は、移動管理部104からアトミック性確認要求を受信すると自己の記憶領域から通信メッセージを読み出す(ステップS103)。
【0077】
そして、プロセス間通信監視部103は、読み出した通信メッセージと通信規約150とを比較して、アトミック性が確保されたか否かを判定する(ステップS104)。アトミック性が確保されていない場合(ステップS104:否定)、プロセス間通信監視部103は、ステップS102へ戻る。
【0078】
これに対して、アトミック性が確保された場合(ステップS104:肯定)、プロセス間通信監視部103は、移動許可通知を移動管理部104へ送信する(ステップS105)。
【0079】
一方、移動管理部104は、ハンドオーバ要求を受信したか否かを判定する(ステップS106)。ハンドオーバ要求を受信していない場合(ステップS106:否定)、移動管理部104は、ハンドオーバ要求を受信するまで待機する。
【0080】
これに対して、ハンドオーバ要求を受信した場合(ステップS106:肯定)、移動管理部104は、アトミック性確認要求をプロセス間通信監視部103へ送信する(ステップS107)。
【0081】
その後、移動管理部104は、移動許可通知をプロセス間通信監視部103から受信すると、ハンドオーバ命令を送信する(ステップS108)。
【0082】
次に、移動管理部104は、状態保持プロセス112の停止の通知を状態保持プロセス実行部101へ出力する(ステップS109)。
【0083】
次に、移動管理部104は、状態保持プロセス112のダンプをメモリ202に出力させ、プロセスイメージを取得する(ステップS110)。
【0084】
その後、移動管理部104は、メモリ202から出力された状態保持プロセス112のプロセスイメージを送信する(ステップS111)。
【0085】
次に、
図8を参照して、エッジサービスを提供するアプリケーションの一例について説明する。
図8は、自動車の運転支援のアプリケーションの例を表す図である。
【0086】
状態保持プロセス実行部101は、以下に説明する状態保持プロセス111及び112を実行する。この場合、状態保持プロセス111及び112は、自動車の安全運転支援のサービスを提供する処理P1を行う。以下では、状態保持プロセス112を例に説明する。
【0087】
状態保持プロセス112は、送信された自動車に備えられたカメラで撮影された連続する画像P11を自動車に搭載された車載端末55から取得する。そして、状態保持プロセス112は、画像P11の中から、動き検知に用いるフレーム範囲に含まれる複数の画像P11を集めた連続画像P12を取得する。
【0088】
次に、状態保持プロセス112は、連続画像P12に対して動き検知プログラムP13を用いて動き検知処理を行い中間の処理結果である中間データP15を生成しつつ車載端末55が搭載された車の周囲の人や車の動き検知を行う。動き検知プログラムP13は、例えば、複数の画像P11をスライディングしながら参照して、動く物体の有無及び動きの方向性などを検知するプログラムである。この際、状態保持プロセス112は、プログラムカウンタP14を用いて動き検知プログラムP13をどこまで実行したかの情報を保持する。
【0089】
状態保持プロセス112は、動き検知の結果を車載端末55へフィードバックする。車載端末55が搭載された車は、フィードバック結果を利用して、自動ブレーキなどの安全運転支援を行うことができる。
【0090】
さらに、状態保持プロセス112は、画像P11や車の走行情報などのその他情報を用いて車載端末55が搭載された車が走行する経路の渋滞の状態を分析する。そして、状態保持プロセス112は、車載端末55が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を地域別プロセス121の要求に応じて送信する。
【0091】
一方、地域別プロセス実行部102は、以下に説明する地域別プロセス121を実行する。この場合、地域別プロセス121は、セル30の範囲内の渋滞情報の統計処理を行う。
【0092】
例えば、地域別プロセス121は、車載端末55が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を状態保持プロセス112から取得する。このように、地域別プロセス121は、セル30の各位置における渋滞分析情報をその位置の情報とともに収集する。そして、地域別プロセス121は、収集した情報を用いてセル30に含まれる地域の渋滞情報を統計処理する。その後、地域別プロセス121は、統計処理結果の
図1のクラウド7への送信などを行う。
【0093】
地域別プロセス実行部102は、車載端末55が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を状態保持プロセス実行部101から取得するために、不可分操作C2で表される通信を状態保持プロセス実行部101との間で行う。
【0094】
すなわち、地域別プロセス実行部102は、車載端末55の位置情報の送信要求であるRequest(位置情報)を状態保持プロセス実行部101へ送信する(ステップS201)。Request(位置情報)を受信した状態保持プロセス実行部101は、車載端末55の位置情報を送信するResponse(位置情報)を地域別プロセス実行部102へ送信する(ステップS202)。
【0095】
Response(位置情報)を受信した地域別プロセス実行部102は、渋滞分析情報の送信要求であるRequest(渋滞分析情報)を状態保持プロセス実行部101へ送信する(ステップS203)。Request(渋滞分析情報)を受信した状態保持プロセス実行部101は、車載端末55の位置における渋滞分析情報を送信するResponse(渋滞分析情報)を地域別プロセス実行部102へ送信する(ステップS204)。
【0096】
このように、位置情報の送受信及び渋滞分析情報の送受信という2セットの処理を完了することで、状態保持プロセス112と地域別プロセス121とのプロセス間通信のアトミック性が確保される。例えば、位置情報の送受信後に、車が移動して車載端末55がセル40に移動した場合、エッジサーバ12の地域別プロセス122は、車載端末55の位置における渋滞分析情報を取得しても車載端末55の位置の情報を持たないため、渋滞情報の統計処理の継続が困難となる。
【0097】
そこで、プロセス間通信監視部103は、不可分操作C2の完了を確認して移動許可通知を出す。そして、移動管理部104は、移動許可通知を受信すると状態保持プロセス112の移動を行う。これにより、不可分操作C2の途中で状態保持プロセス112が、エッジサーバ12に移動することが防止でき、渋滞情報の統計処理の継続性を維持することができる。
【0098】
次に、
図9を参照して、クラウドサービスを提供するアプリケーション223の他の例について説明する。
図9は、ドローンによる災害状況把握のアプリケーションの例を表す図である。ドローンとは、一般的に3つ以上の回転翼を備え、遠隔操作できる無人のマルチコプターを指す。
【0099】
状態保持プロセス実行部101は、以下に説明する状態保持プロセス111及び112を実行する。この場合、状態保持プロセス111及び112は、災害状況を認識して認識結果を連続的に出力するサービスを提供する処理P2を行う。災害状況の認識には、例えば、被災者が存在することを検知する「被災者発見検知」、群衆がパニックを起こしていることを検知する「群衆行動検知」及び堤防の決壊した箇所を検知する「河川状況検知」などが考えられる。以下では、状態保持プロセス112を例に説明する。
【0100】
状態保持プロセス112は、ドローン57に備えられたカメラで撮影された連続する画像P21をドローン57から取得する。そして、状態保持プロセス112は、画像P21の中から動き検知に用いるフレーム範囲に含まれる複数の画像P21を集めた連続画像P22を取得する。
【0101】
次に、状態保持プロセス112は、連続画像P22に対して災害状況認識プログラムP23を用いて動き検知処理を行い中間の処理結果である中間データP25を生成しつつドローン57の周囲の災害状況の認識を行う。この際、状態保持プロセス112は、プログラムカウンタP24を用いて災害状況認識プログラムP23をどこまで実行したかの情報を保持する。
【0102】
状態保持プロセス112は、災害状況認識の結果をドローン57が位置する地域の情報として出力する。ドローン57が位置する地域の被災者は、災害状況認識の結果を確認することで災害に効率的に対処することができる。このように、自動検知を行うことで、人海戦術で多数の映像を人が監視する場合よりも、効率的に災害状況を把握することができる。
【0103】
さらに、状態保持プロセス112は、ドローン57の位置の情報及びその位置に関する災害状況認識の結果を地域別プロセス121の要求に応じて送信する。
【0104】
一方、地域別プロセス実行部102は、以下に説明する地域別プロセス121を実行する。この場合、地域別プロセス121は、セル30の範囲内の災害状況認識の結果の集約を行う。
【0105】
例えば、地域別プロセス121は、ドローン57の位置の情報及びその位置に関する災害状況認識の結果を状態保持プロセス112から取得する。そして、地域別プロセス121は、セル30の各位置から取得した情報を用いて対策箇所を決定する。その後、地域別プロセス121は、セル30に含まれる地域の対策箇所に優先順位などを付加して地図上に表示する。各地域の災害対策本部は、表示箇所の優先順位に応じて注目すべき個所の映像をピックアップして参照し、対策を指示する。この場合も、人海戦術で多数の映像を人が監視する場合よりも、効率的に災害状況を把握することができ、効率的に対策を行うことができる。ここでの対策には、例えば、ドローン56〜58を特定の地域の地区へ集中的に投入することや、別の担当地域へドローン56〜58を派遣するためのドローン56〜57への移動指示がある。
【0106】
地域別プロセス実行部102は、ドローン57の位置の情報及びその位置に関する災害状況認識の結果を状態保持プロセス実行部101から取得するために、不可分操作C3で表される通信を状態保持プロセス実行部101との間で行う。
【0107】
すなわち、地域別プロセス実行部102は、ドローン57の位置情報の送信要求であるRequest(位置情報)を状態保持プロセス実行部101へ送信する(ステップS211)。Request(位置情報)を受信した状態保持プロセス実行部101は、ドローン57の位置情報を送信するResponse(位置情報)を地域別プロセス実行部102へ送信する(ステップS212)。
【0108】
Response(位置情報)を受信した地域別プロセス実行部102は、災害状況認識の結果の送信要求であるRequest(災害認識情報)を状態保持プロセス実行部101へ送信する(ステップS213)。Request(災害認識情報)を受信した状態保持プロセス実行部101は、ドローン57の位置における災害状況認識の結果を送信するResponse(災害認識情報)を地域別プロセス実行部102へ送信する(ステップS214)。
【0109】
このように、位置情報の送受信及び災害認識情報の送受信という2セットの処理を完了することで、状態保持プロセス112と地域別プロセス121とのプロセス間通信のアトミック性が確保される。そこで、プロセス間通信監視部103は、不可分操作C3の完了を確認して移動許可通知を出す。そして、移動管理部104は、移動許可通知を受信すると状態保持プロセス112の移動を行う。これにより、不可分操作C3の途中で状態保持プロセス112が、エッジサーバ12に移動することが防止でき、災害認識情報の集約処理の継続性を維持することができる。
【0110】
以上に説明したように、本実施例に係る通信システム及びエッジサーバは、プロセス間通信における不可分操作が完了した後に、状態保持プロセスを他のエッジサーバへ移動させる。これにより、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動することができ、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【実施例2】
【0111】
図10は、実施例2に係るエッジサーバのブロック図である。本実施例に係るエッジサーバ11は、状態保持プロセス実行部101がアトミック性確保の判定を行うことが実施例1と異なる。以下の説明では、実施例1と同様の各部の動作については説明を省略する。
【0112】
本実施例に係る状態保持プロセス実行部101は、通信規約150を有する。状態保持プロセス実行部101は、地域別プロセス実行部102との間の通信における通信メッセージを確認する。そして、状態保持プロセス実行部101は、地域別プロセス実行部102との間で送受信した通信メッセージの情報を用いて、プロセス間通信の現在の通信状態が通信規約150に登録された不可分操作の何れかの途中の状態か否かを判定する。
【0113】
プロセス間通信の現在の通信状態が通信規約150に登録された不可分操作の途中の状態でなければ、状態保持プロセス実行部101は、移動許可通知を移動管理部104へ出力する。
【0114】
ここで、
図11及び12を参照して、状態保持プロセス実行部101による通信状態の監視の詳細について説明する。
図11は、実施例2に係るエッジサーバのハードウェア構成図である。また、
図12は、実施例2に係るプロセスマイグレーションを説明するための図である。
【0115】
図11に示すように、本実施例に係るエッジサーバ11では、CPU201によりメモリ上に展開されたアプリケーション223が、状態保持プロセス111及び112のそれぞれに結合する通信インタフェース114及び115を有する。また、アプリケーション223は、移動許可フラグ117及び118を有する。移動許可フラグ117及び118は、状態保持プロセス111及び112の数に対応して生成される。
【0116】
例えば、通信インタフェース115は、状態保持プロセス実行部101が、状態保持プロセス112と地域別プロセス121とのプロセス間通信を行う場合のデータの送受信のインタフェースである。すなわち、状態保持プロセス実行部101が、通信インタフェース114及び115を動作させるといえる。状態保持プロセス実行部101は、状態保持プロセス112及び通信インタフェース115に以下の処理を実行させる。
【0117】
状態保持プロセス112は、通信インタフェース115を介して地域別プロセス121へメッセージを送信する。
【0118】
通信インタフェース115は、例えば、使用するプロセス間通信手段に応じて通信メッセージに対してエンコード処理を行う。プロセス間通信手段は、OS224により複数種類存在する。
【0119】
そして、通信インタフェース115は、プロセス間通信の通信メッセージの送受信パターンと通信規約150に登録された不可分操作に含まれるメッセージを比較する。プロセス間通信の通信メッセージの送受信パターンが通信規約150に登録された不可分操作に含まれるメッセージに一致すると、通信インタフェース115は、アトミック性が確保されたと判定する。
【0120】
アトミック性が確保された場合、通信インタフェース115は、移動許可フラグ118をセットする。また、アトミック性が確保された後に、プロセス間通信において新たに通信メッセージの送受信が行われ、アトミック性が確保されない状態に遷移した場合、通信インタフェース115は、移動許可フラグ118をアンセットする。
図12では、説明の都合上、移動許可フラグ117を省略して図示した。この通信インタフェース115が、「通信インタフェース部」の一例にあたる。
【0121】
この場合、エッジサーバ12の地域別プロセス実行部102は、状態保持プロセス113に結合した通信インタフェース116を用いて、地域別プロセス実行部102と通信を行う。
【0122】
移動管理部104は、ハンドオーバ要求を受けた場合、移動許可フラグ118がセットされた状態であれば、状態保持プロセス112の移動を行う。これに対して、移動許可フラグ118がセットされていない状態であれば、移動管理部104は、移動許可フラグ118がセットされるまで状態保持プロセス112の移動を保留する。
【0123】
次に、
図13を参照して、本実施例に係る通信システム100におけるプロセスマイグレーション処理の流れについて説明する。
図13は、実施例2に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。
図13の縦軸は、紙面に向かって縦軸の上部に記載された各部の動作を表す。また、
図13の縦軸は、紙面に向かって下に進むにしたがい時間が経過することを表す。
【0124】
移動局52のハンドオーバ要求が発生する前に、状態保持プロセス実行部101が実行する状態保持プロセス112は、不可分操作C4に含まれるPut(A,1)を通信インタフェース115を介して地域別プロセス実行部102へ送信する(ステップS301)。
図13では、通信を表す矢印上に黒丸を配置することで、通信インタフェース115がプロセス間通信の中継を行っていることを表した。
【0125】
通信インタフェース115は、不可分操作C4が開始されたことを確認して、移動許可フラグ118をアンセットする(ステップS302)。
【0126】
移動局52は、セル30からセル40への移動に応じて、ハンドオーバ要求を基地局21へ送信する(ステップS303)。
【0127】
基地局21は、ハンドオーバ要求を移動局52から受信する。そして、基地局21は、ハンドオーバ要求をエッジサーバ11の移動管理部104へ送信する(ステップS304)。
【0128】
この時点では、状態保持プロセス実行部101と地域別プロセス実行部102とは不可分操作C4を行っている。そこで、通信インタフェース115は、移動許可フラグ118のアンセット状態を維持する。移動管理部104は、移動許可フラグ118を参照して、フラグがアンセットの状態であることを確認し、状態保持プロセス112の移動を保留する(ステップS305)。
【0129】
その間、エッジサーバ11の地域別プロセス実行部102は、不可分操作C4に含まれるResponse(A,5)を状態保持プロセス112へ送信する(ステップS306)。次に、エッジサーバ11の状態保持プロセス実行部101は、不可分操作C4に含まれるPut(B,7)を地域別プロセス実行部102へ送信する(ステップS307)。次に、エッジサーバ11の地域別プロセス実行部102は、不可分操作C4に含まれるResponse(B,9)を状態保持プロセス実行部101へ送信する(ステップS308)。
【0130】
エッジサーバ11の状態保持プロセス実行部101により実行される通信インタフェース115は、不可分操作C4で実行されるステップS301及びS306〜S308において送受信される通信メッセージのパターンと通信規約150とを比較する。ステップS301及びS306〜S308において送受信される通信メッセージのパターンが通信規約150に登録された不可分操作に含まれるメッセージに一致した場合、通信インタフェース115は、プロセス間通信のアトミック性が確保されたと判定する。そして、通信インタフェース115は、移動許可フラグ118に対してフラグセットを行う(ステップS309)。
【0131】
エッジサーバ11の移動管理部104は、移動許可フラグ118を参照する(ステップS310)。
【0132】
そして、エッジサーバ11の移動管理部104は、移動許可フラグ118にフラグがセットされた状態であることから、アトミック性の確保を確認する(ステップS311)。
【0133】
次に、エッジサーバ11の移動管理部104は、ハンドオーバ命令を基地局21へ送信する(ステップS312)。
【0134】
基地局21は、ハンドオーバ命令をエッジサーバ11の移動管理部104から受信する。そして、基地局21は、ハンドオーバ命令を移動局52へ送信する(ステップS313)。
【0135】
移動局52は、ハンドオーバ命令を基地局21から受信する。そして、移動局52は、ハンドオーバを開始し、電波の切り替えやハンドオーバ先の基地局22との電波の同期を実行する。この間に、エッジサーバ11の移動管理部104は、状態保持プロセス112の停止を状態保持プロセス実行部101へ指示し、状態保持プロセス112を停止させる(ステップS314)。
【0136】
次に、エッジサーバ11の移動管理部104は、プロセスイメージを状態保持プロセス実行部101から取得する。具体的には、移動管理部104は、状態保持プロセス112のプロセスイメージのダンプをメモリ202に出力させることで(ステップS315)、プロセスイメージを取得する。そして、エッジサーバ11の移動管理部104は、プロセスイメージを含むプロセスイメージファイルを生成する。
【0137】
次に、エッジサーバ11の移動管理部104は、生成したプロセスイメージファイルをエッジサーバ12の移動管理部104へ送信する(ステップS316)。
【0138】
エッジサーバ12の移動管理部104は、プロセスイメージファイルをエッジサーバ11の移動管理部104から受信する。そして、エッジサーバ12の移動管理部104は、メモリ202に状態保持プロセス112をリストアする(ステップS317)。
【0139】
その後、エッジサーバ12の移動管理部104は、エッジサーバ12の状態保持プロセス実行部101に状態保持プロセス112の実行を開始させる。そして、エッジサーバ12の移動管理部104は、状態保持プロセス実行部101と地域別プロセス実行部102との間における、状態保持プロセス112と地域別プロセス122とのプロセス間通信を復元させる(ステップS318及びS319)。
【0140】
移動局52は、ハンドオーバの処理が完了すると、ハンドオーバ完了通知を基地局22へ出力する(ステップS320)。
【0141】
基地局22は、ハンドオーバ完了通知を移動局52から受信する。そして、基地局22は、ハンドオーバ完了通知をエッジサーバ12の移動管理部104へ送信する(ステップS321)。
【0142】
エッジサーバ12の移動管理部104は、ハンドオーバ完了通知を基地局22から受信する。そして、エッジサーバ12の移動管理部104は、状態保持プロセス112と地域別プロセス122とのプロセス間通信の復元が完了している場合、ハンドオーバ完了応答を基地局22へ送信する(ステップS322)。
【0143】
基地局22は、ハンドオーバ完了応答をエッジサーバ12の移動管理部104から受信する。そして、基地局22は、ハンドオーバ完了応答を移動局52へ送信する(ステップS323)。
【0144】
移動局52は、ハンドオーバ完了応答を受信する。これにより、移動局52は、エッジサーバ12の状態保持プロセス実行部101及び地域別プロセス実行部102に情報を送信し、サービスを受けることが可能となる。
【0145】
次に、
図14を参照して、本実施例に係るエッジサーバ11によるアトミック性の確保の処理の流れの詳細について説明する。
図14は、実施例2に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。
図14における破線で分けられた領域の誌面に向かって左端が状態保持プロセス実行部101による処理の流れを表し、右端が移動管理部104による処理の流れを表す。そして、各フローチャートから移動許可フラグ118へ延びる一点鎖線の矢印は、状態保持プロセス実行部101又は移動管理部104と移動許可フラグ118との間の通信を表す。
【0146】
状態保持プロセス実行部101の通信インタフェース115は、プロセス間通信が実行されたか否かを判定する(ステップS401)。プロセス間通信が実行されていない場合(ステップS401:否定)、通信インタフェース115は、プロセス間通信が実行されるまで待機する。
【0147】
一方、プロセス間通信が実行された場合(ステップS401:肯定)、通信インタフェース115は、プロセス間通信で送受信された通信メッセージのパターンと通信規約150とを比較して、アトミック性が確保されたか否かを判定する(ステップS402)。
【0148】
アトミック性が確保されていない場合(ステップS402:否定)、通信インタフェース115は、移動許可フラグ118をアンセットする(ステップS403)。その後、状態保持プロセス実行部101の通信インタフェース115は、ステップS401へ戻る。
【0149】
これに対して、アトミック性が確保された場合(ステップS402:肯定)、通信インタフェース115は、移動許可フラグ118をセットする(ステップS404)。
【0150】
一方、移動管理部104は、ハンドオーバ要求を受信したか否かを判定する(ステップS405)。ハンドオーバ要求を受信していない場合(ステップS405:否定)、移動管理部104は、ハンドオーバ要求を受信するまで待機する。
【0151】
これに対して、ハンドオーバ要求を受信した場合(ステップS405:肯定)、移動管理部104は、移動許可フラグ118の値を読み出す(ステップS406)。
【0152】
そして、移動管理部104は、読み出した移動許可フラグ118の値からプロセス間通信のアトミック性が確保されたか否かを判定する(ステップS407)。アトミック性が確保されていない場合(ステップS407:否定)、移動管理部104は、ステップS406に戻る。
【0153】
これに対して、アトミック性が確保されている場合(ステップS407:肯定)、移動管理部104は、ハンドオーバ命令を送信する(ステップS408)。
【0154】
次に、移動管理部104は、状態保持プロセス112の停止の通知を状態保持プロセス実行部101へ出力する(ステップS409)。
【0155】
次に、移動管理部104は、状態保持プロセス112のダンプをメモリ202に出力させる(ステップS410)。
【0156】
その後、移動管理部104は、メモリ202から出力された状態保持プロセス112のプロセスイメージを送信する(ステップS411)。
【0157】
以上に説明したように、本実施例に係る通信システム及びエッジサーバは、状態保持プロセスに結合する通信インタフェースがプロセス間通信のアトミック性の確保を判定する。そして、プロセス間通信における不可分操作が完了した後に、状態保持プロセスが他のエッジサーバへ移動される。このように、状態保持プロセスの通信インタフェースでアトミック性の確保の判定を行うこともできる。そのような構成であっても、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動することができ、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【0158】
さらに、以上の各実施例では、エッジサーバ11及び12が、それぞれ1つの基地局21及び22と対応する場合で説明したが、エッジサーバ11及び12は、これ以外のシステム構成でも同様に動作可能である。
【0159】
図15は、エッジサーバが複数の基地局のエリアを管轄する場合のシステム構成図である。基地局21Aはセル31を形成し、基地局21Bはセル32を形成する。また、基地局22Aはセル41を形成し、基地局22Bはセル42を形成し、基地局22Cはセル43を形成する。
【0160】
エッジサーバ11は、基地局21A及び21Bに接続される。また、エッジサーバ12は、基地局22A〜22Cに接続される。この場合、エッジサーバ11の状態保持プロセス実行部101は、移動局52などのセル31及び32に在圏する移動局の状態の情報を用いて状態保持プロセス112を実行する。また、エッジサーバ11の地域別プロセス実行部102は、セル31及び32の範囲に関する情報の処理を行う。
【0161】
このように、エッジサーバ11が複数の基地局21A〜21Bに接続される構成でも、エッジサーバ11は、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動でき、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【0162】
また、以上の各実施例では、状態保持プロセス及び地域別プロセスを実行する場合で説明したが、不可分操作を相互に実行する2つのプロセスの内の少なくともいずれか一方を他の装置に移動する構成であれば、各実施例と同様の機能により同様の効果を奏する。