(57)【要約】【課題】システムの安定性を確保する通信装置、通信システム及び通信装置制御方法を提供する。【解決手段】状態保持プロセス実行部１０１は、移動局から取得した情報を基に、移動局個別の状態を保持する状態保持プロセスを実行する。地域別プロセス実行部１０２は、状態保持プロセス実行部１０１と通信を行うことで地域別プロセスを実行する。移動管理部１０４は、状態保持プロセス実行部１０１が状態を保持する移動局が、エッジサーバ１１が管理する第１エリアからエッジサーバ１２が管理する第２エリアへ移動することを検知した場合、予め決められた通信規約に基づいて、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間の通信における不可分操作の完了が検知された場合に、状態保持プロセスをエッジサーバ１２に移動させる。【選択図】図２
2019092015.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から取得した情報を基に、前記端末装置個別の状態を保持する第１プロセスを実行する第１実行部と、
前記第１実行部と通信を行うことで第２プロセスを実行する第２実行部と、
前記第１実行部が状態を保持する前記端末装置が、自装置が管理する第１エリアから他の通信装置が管理する第２エリアへ移動することを検知した場合、予め決められた通信規約に基づいて、前記第１実行部と前記第２実行部との間の通信における不可分操作の完了が検知された場合に、前記第１プロセスを前記他の通信装置に移動させる移動管理部と
を備えたことを特徴とする通信装置。
【請求項２】
前記第１実行部と前記第２実行部との通信を監視し、前記通信規約と前記通信とを比較して、前記不可分操作の完了を検知する検知部をさらに備えたことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１実行部は、前記第２実行部と通信を行う通信インタフェース部を有し、
前記通信インタフェース部は、前記第２実行部との間の通信と前記通信規約とを比較して前記不可分操作の完了を検知し、前記移動管理部へ前記第１プロセスの送信許可を通知し、
前記移動管理部は、前記送信許可の通知を前記通信インタフェース部から受けた場合、前記第１プロセスを移動させる
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記通信規約は、処理順に並べられた前記不可分操作で実行される複数の通信処理を表す情報を有することを特徴とする請求項１〜３のいずれか一つに記載の通信装置。
【請求項５】
端末装置及び複数の通信装置を有する通信システムであって、
前記端末装置は、位置に応じて前記通信装置の何れか１つと通信を行い、
前記通信装置は、
前記端末装置が自装置が管理する第１エリアに在圏する場合、前記端末装置と通信を行い、前記端末装置から取得した情報を基に、前記端末装置個別の状態を保持する第１プロセスを実行する第１実行部と、
前記第１実行部と通信を行うことで第２プロセスを実行する第２実行部と、
前記第１実行部が状態を保持する前記端末装置が前記第１エリアから他の通信装置が管理する第２エリアへ移動した場合、予め決められた通信規約に基づいて、前記第１実行部と前記第２実行部との通信における不可分操作の完了が検知された場合に、前記他の通信装置へ前記第１プロセスを移動する移動管理部と
を備えたことを特徴とする通信システム。
【請求項６】
端末装置から取得した情報を基に、前記端末装置個別の状態を保持する第１プロセスを実行し、
前記第１プロセスと第２プロセスとの間で通信を行わせて前記第２プロセスを実行し、
前記第１プロセスが状態を保持する前記端末装置が、在圏する第１エリアから他の通信装置が管理する第２エリアへ移動した場合、予め決められた通信規約に基づいて、前記第１プロセスと前記第２プロセスとの通信における不可分操作の完了を検知し、
不可分操作の完了が検知された場合、前記第１プロセスを前記他の通信装置へ移動させる
ことを特徴とする通信装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信装置制御方法に関する。
【背景技術】
【０００２】
近年、インターネットやモバイル網などのネットワークが普及し、端末装置は、データの送受信を伴うアプリケーションプログラムをあらゆる場所で利用することができる。この中には、インターネットにおける高速且つ広帯域の回線を用いてネットワーク上の資源にアクセスするクラウドコンピューティングの技術などがある。例えば、クラウドコンピューティングでは、配下の全ての端末装置がアクセス可能なクラウド上の資源で動作するアプリケーションプログラムに、各端末装置がアクセスして処理が行われる。昨今、ネットワークに繋がる機器は、自動車や家電製品、さらには日用品にまで広がり、大量のデータが通信回線に送り出されている。そのため、端末装置によるデータの送受信により、回線の帯域が圧迫される状況がしばしば発生する。
【０００３】
そこで、移動局からのアプリケーションへのアクセス遅延を軽減するため、クラウドではなくエッジサーバにアプリケーションを配置し、エッジサーバが低遅延なサービスを移動局へ提供する技術が提案されている。ここで、エッジサーバとは、クラウドに接続する地域毎に配置されたサーバといったモバイル端末の近くに配置されたサーバである。エッジサーバは、例えば、ＬＴＥ（Long  Term  Evolution）などのモバイル網の場合、基地局近傍に配置される。
【０００４】
モバイル網におけるエッジサーバに搭載されるアプリケーションは、複数のモバイル端末などの移動局を収容する。すなわち、エッジサーバに搭載されるアプリケーションは、複数の移動局からのアクセスを受けて要求に応じた処理を行う。このようなシステムでは、アプリケーションは、移動局毎の状態を保持する複数の状態保持プロセスを有することが一般的である。
【０００５】
移動局は、最も近く低遅延なエッジサーバで動作するアプリケーションからサービスの提供を受ける。そのため、移動局が移動することでサービス提供元のエッジサーバが切り替わる場合、移動局の移動を検知し、移動した移動局の状態保持プロセスを新たなサービス提供元となるエッジサーバへ移動する。そして、新たなサービス提供元となるエッジサーバが、取得した移動局の状態保持プロセスを用いて引き続き移動してきた移動局へサービスを提供する。
【０００６】
アプリケーションが有するプロセスを他のマシンへ移動させる技術として、プロセス全体のメモリイメージそのものをそのまま取得し送信して、そのメモリイメージを移動先のマシンのメモリ上に復元するプロセスマイグレーションという従来技術がある。さらに、このプロセスマイグレーションの技術として、プロセスのコピーを送信しつつ、送信元でプロセスの実行を行い、転送完了後に実行記録を再生して同期をとる従来技術がある。例えば、Ｌｉｎｕｘ（登録商標）ＯＳ（Operating  System）であれば、ＣＲＩＵ（Checkpoint  Restart  in  Userspace）というコマンドを使用することでプロセスマイグレーションが実現される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−８８２００号公報
【特許文献２】特開２００４−７８４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、エッジサーバを用いるシステムには、状態保持プロセスとは別に、移動局毎の状態は保持せずにエッジサーバ毎にサービス提供エリアの処理を行う地域別プロセスを利用するシステムがある。この場合、状態保持プロセスと地域別プロセスとがプロセス間通信を行い、全体としてアプリケーションの機能が実現される。この地域別プロセスは、移動局毎の状態を保持しないため、移動局へサービスを提供するエッジサーバの切り替わりが発生しても移動されない。
【０００９】
ここで、プロセスを移動させる場合、プロセスに含まれる不可分操作を考慮して移動を行うことが好ましい。不可分操作とは、途中で操作を分解することができない一連の操作を指す。不可分操作は、アトミック操作とも呼ばれ、一連の操作が不可分であることは「アトミック性」を有すると呼ばれる場合がある。
【００１０】
アプリケーションが、サービス提供元のエッジサーバの切り替え時に移動させる状態保持プロセスと移動させない地域別プロセスとを有する場合、移動する状態保持プロセス及び状態保持プロセスに関するアトミック性を考慮することが好ましい。具体的には、状態保持プロセスの移動時に、移動する状態保持プロセス内のアトミック性と、状態保持プロセスと地域別プロセスとの間のプロセス間通信のアトミック性を考慮することが好ましい。
【００１１】
この点、状態保持プロセス内のアトミック性は、従来のプロセスマイグレーション技術により解決される。従来のプロセスマイグレーション技術を利用することで、プロセス実行中のどの実行段階においても連続的にアトミック性が確保され、どのタイミングで状態保持プロセスを移動しても、状態保持プロセス内のアトミック性は確保される。
【００１２】
これに対して、状態保持プロセスと地域別プロセスとの間のプロセス間通信のアトミック性は、従来のプロセスマイグレーション技術を用いても確保することは困難である。例えば、プロセス間通信における不可分操作実行中に状態保持プロセスの移動が発生した場合、従来のプロセスマイグレーション技術では、プロセス間通信のアトミック性が確保されずに状態保持プロセスの移動が行われてしまう。そのため、新たなサービス提供元のエッジサーバにおいて、移動してきた状態保持プロセスの処理及び通信が継続困難となってしまう。これは、プロセスのコピーを送信しつつ、送信元でプロセスの実行を行い、転送完了後に実行記録を再生して同期をとる従来技術を用いた場合も同様である。すなわち、従来技術では、プロセス間通信のアトミック性を考慮した状態保持プロセスの移動が困難であり、システムの安定性が損なわれるおそれがある。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、システムの安定性を確保する通信装置、通信システム及び通信装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する通信装置、通信システム及び通信装置制御方法の一つの態様において、第１実行部は、端末装置から取得した情報を基に、前記端末装置個別の状態を保持する第１プロセスを実行する。第２実行部は、前記第１実行部と通信を行うことで第２プロセスを実行する。移動管理部は、第１実行部が状態を保持する端末装置が、自装置が管理する第１エリアから他の通信装置が管理する第２エリアへ移動することを検知した場合、予め決められた通信規約に基づいて、前記第１実行部と前記第２実行部との間の通信における不可分操作の完了が検知された場合に、前記第１プロセスを他の通信装置に移動させる。
【発明の効果】
【００１５】
１つの側面では、本発明は、システムの安定性を確保することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、通信システムのシステム構成図である。
【図２】図２は、実施例１に係るエッジサーバのブロック図である。
【図３】図３は、実施例１に係るエッジサーバのハードウェア構成図である。
【図４】図４は、実施例１に係るプロセスマイグレーションを説明するための図である。
【図５】図５は、通信規約の一例を表す図である。
【図６】図６は、実施例１に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。
【図７】図７は、実施例１に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。
【図８】図８は、自動車の運転支援のアプリケーションの例を表す図である。
【図９】図９は、ドローンによる災害状況把握のアプリケーションの例を表す図である。
【図１０】図１０は、実施例２に係るエッジサーバのブロック図である。
【図１１】図１１は、実施例２に係るエッジサーバのハードウェア構成図である。
【図１２】図１２は、実施例２に係るプロセスマイグレーションを説明するための図である。
【図１３】図１３は、実施例２に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。
【図１４】図１４は、実施例２に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。
【図１５】図１５は、エッジサーバが複数の基地局のエリアを管轄する場合のシステム構成図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する通信装置、通信システム及び通信装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信装置、通信システム及び通信装置制御方法が限定されるものではない。
【実施例１】
【００１８】
図１は、通信システムのシステム構成図である。図１に示すように、本実施例に係る通信システム１００は、複数のサーバ７０、モバイルコアネットワーク６、エッジサーバ１１及び１２、基地局２１及び２２、並びに、移動局５１〜５３を有する。
【００１９】
サーバ７０は、モバイルコアネットワーク６に接続される。サーバ７０は、ネットワーク上の資源である。ここでは、サーバ７０をネットワーク上の資源としてクラウドサービスを提供するサービス提供元をクラウド７という。また、クラウド７がモバイルコアネットワーク６に接続されているとして説明する。サーバ７０は、クラウドサービスを提供するアプリケーションが搭載される。クラウド７は、エッジサーバ１１及び１２で収集された情報を用いて、各基地局２１〜２２の通信エリアの全体に関する情報の移動局５１〜５３への送信などのサービス提供を実行する。
【００２０】
モバイルコアネットワーク６は、移動局５１〜５３が無線通信に使用するモバイル網である。モバイルコアネットワーク６は、ＭＭＥ（Mobility  Management  Entity）やゲートウェイなどを有する。
【００２１】
エッジサーバ１１及び１２は、モバイルコアネットワーク６に接続される。また、エッジサーバ１１は、基地局２１に接続される。エッジサーバ１２は、基地局２２に接続される。
【００２２】
エッジサーバ１１及び１２は、エッジサービスを提供するアプリケーションが搭載される。エッジサーバ１１及び１２は、移動局個別の状況を用いたサービス提供や、自装置が接続された基地局２１又は２２の通信エリアに関するサービス提供を行う。このエッジサーバ１１及び１２が、「通信装置」の一例にあたる。
【００２３】
基地局２１は、エッジサーバ１１に接続される。また、基地局２２は、エッジサーバ１２に接続される。ここで、本実施例ではエッジサービスに関する通信を主に説明するため、説明の都合上、基地局２１及び２２は、エッジサーバ１１又は１２を介してモバイルコアネットワーク６に接続するように図示した。ただし、基地局２１及び２２は、移動局５１〜５３に無線通信を行わせるため、モバイルコアネットワーク６に直接接続することが一般的である。
【００２４】
基地局２１は、自装置との通信可能なエリアであるセル３０を形成する。また、基地局２２は、自装置との通信可能なエリアであるセル４０を形成する。基地局２１は、セル３０に在圏する移動局５１及び５２と通信可能である。また、基地局２２は、セル４０に在圏する移動局５３と通信可能である。
【００２５】
基地局２１は、例えば、移動局５２が移動してセル４０に在圏する場合、基地局２２へのハンドオーバ要求を移動局５２から受信する。そして、基地局２１は、ハンドオーバ要求をエッジサーバ１１へ出力する。その後、基地局２１は、ハンドオーバ命令をエッジサーバ１１から受ける。そして、基地局２１は、ハンドオーバ命令を移動局５２へ送信する。
【００２６】
また、例えば、移動局５３が移動してセル３０に在圏する場合、基地局２１は、ハンドオーバ完了通知を移動局５３から受ける。そして、基地局２１は、エッジサーバ１１へハンドオーバ完了通知を送信する。その後、基地局２１は、ハンドオーバ完了応答をエッジサーバ１１から受信する。そして、基地局２１は、ハンドオーバ完了応答を移動局５３へ出力する。これにより、移動局５３のハンドオーバが完了する。基地局２２も、基地局２１と同様の機能を有する。
【００２７】
移動局５１〜５３は、セル３０又は４０のいずれか在圏する側のセルを形成する基地局２１又は２２と通信を行う。例えば、移動局５２は、図１の状態では、基地局２１と通信を行う。その後、移動局５２は、移動してセル３０からセル４０へ移動すると、電波状況などを基に基地局２２へのハンドオーバの要求を基地局２１へ送信する。
【００２８】
その後、移動局５２は、ハンドオーバ命令を基地局２１から受けると、ハンドオーバを開始する。そして、移動局５２は、基地局２１との通信用の電波から、基地局２２との通信用の電波へ切り替える。さらに、移動局５２は、電波の同期を行う。電波の同期が完了すると、移動局５２は、ハンドオーバ完了通知をハンドオーバ先の基地局２２へ送信する。その後、移動局５２は、ハンドオーバ完了応答を基地局２２から受信し、ハンドオーバの処理を終了する。ハンドオーバ終了後は、移動局５２は、基地局２２を接続先として通信を行う。この移動局５１〜５３が、「端末装置」の一例にあたる。
【００２９】
図２は、実施例１に係るエッジサーバのブロック図である。エッジサーバ１１は、図２に示すように、状態保持プロセス実行部１０１、地域別プロセス実行部１０２、プロセス間通信監視部１０３及び移動管理部１０４を有する。ここでは、エッジサーバ１１を例に説明するが、エッジサーバ１２も同様の機能を有する。
【００３０】
また、図３は、実施例１に係るエッジサーバのハードウェア構成図である。図３に示すように、エッジサーバ１１は、ＣＰＵ（Central  Processing  Unit）２０１、メモリ２０２、バス２０３、ハードディスク２０４及びネットワークインタフェース２０５を有する。ＣＰＵ２０１は、バス２０３を介してメモリ２０２、ハードディスク２０４及びネットワークインタフェース２０５と接続される。
【００３１】
ハードディスク２０４は、図２に例示した状態保持プロセス実行部１０１、地域別プロセス実行部１０２、プロセス間通信監視部１０３及び移動管理部１０４の機能を実現するプログラムを含む各種プログラムを格納する。
【００３２】
ＣＰＵ２０１は、状態保持プロセス実行部１０１、地域別プロセス実行部１０２、プロセス間通信監視部１０３及び移動管理部１０４の機能を実現するプログラムを含む各種プログラムをハードディスク２０４から読み出す。そして、ＣＰＵ２０１は、読み出したプログラムをメモリ２０２上に展開してプロセス間通信監視プロセス２２１、移動管理プロセス２２２、アプリケーション２２３及びＯＳ２２４を含む各種プロセスを生成する。アプリケーション２２３には、状態保持プロセス１１１及び１１２、並びに、地域別プロセス１２１が含まれる。この状態保持プロセス１１１及び１１２が、「第１プロセス」の一例にあたる。また、地域別プロセス１２１が、「第２プロセス」の一例にあたる。
【００３３】
また、アプリケーション２２３が動作することで、図２に例示した状態保持プロセス実行部１０１及び地域別プロセス実行部１０２の機能が実現される。プロセス間通信監視プロセス２２１が動作することで、図２に例示したプロセス間通信監視部１０３の機能が実現される。
【００３４】
図２に戻って説明を続ける。状態保持プロセス実行部１０１は、セル３０に在圏し基地局２１と通信を行う移動局５１及び５２から送信された情報を基地局２１を介して取得する。そして、状態保持プロセス実行部１０１は、移動局５１から送られた情報を用いて移動局５１の状態を表す情報を取得する。また、状態保持プロセス実行部１０１は、移動局５２から送られた情報を用いて移動局５２の状態を表す情報を取得する。そして、状態保持プロセス実行部１０１は、取得した情報の解析などを行うことで移動局５１及び５２のそれぞれに提供する個別的な情報を生成する。そして、状態保持プロセス実行部１０１は、生成した情報を移動局５１及び５２のそれぞれに基地局２１を介して送信する。また状態保持プロセス実行部１０１は、移動局から取得した情報及び生成した情報を、地域別プロセス実行部１０３またはモバイルコアネットワーク６を介してクラウド７へ提供する。
【００３５】
このように、移動局５１又は５２の個別的な現在の状態を表す情報を用いて移動局５１又は５２に提供する個別的な情報を生成し送信する処理が、状態保持プロセス１１１及び１１２にあたる。すなわち、状態保持プロセス１１１は、移動局５１の現在の状態を保持するプロセスと言え、状態保持プロセス１１２は、移動局５２の現在の状態を保持するプロセスと言える。そして、状態保持プロセス実行部１０１は、状態保持プロセス１１１及び１１２を実行するといえる。
【００３６】
さらに、状態保持プロセス実行部１０１は、地域別プロセス実行部１０２と通信を行う。例えば、状態保持プロセス実行部１０１は、移動局５１及び５２から送信された情報及びそれらを用いて生成した情報のうち後述する地域別プロセス実行部１０２の処理に用いられる移動局５１及び５２の在圏する地域に関する情報を地域別プロセス実行部１０２へ送信する。この状態保持プロセス実行部１０１が、「第１実行部」の一例にあたる。
【００３７】
地域別プロセス実行部１０２は、状態保持プロセス実行部１０１と通信を行う。地域別プロセス実行部１０２は、移動局５１及び５２の在圏する地域に関する情報を状態保持プロセス実行部１０１から取得する。そして、地域別プロセス実行部１０２は、取得した情報を用いて基地局２１が形成するセル３０がカバーする地域に関する情報を生成する。そして、地域別プロセス実行部１０２は、生成した基地局２１が形成するセル３０がカバーする地域に関する情報を基地局２１を介して移動局５１及び５２に送信する。
【００３８】
このように、移動局５１及び５２の在圏する地域に関する情報を用いて基地局２１が形成するセル３０がカバーする地域に関する情報を生成し送信する処理が、地域別プロセス１２１にあたる。すなわち、地域別プロセス実行部１０２は、地域別プロセス１２１を実行するといえる。また、地域別プロセス１２１は、移動局５１及び５２に関する情報を用いるが、移動局５１及び５２のそれぞれの現在の状態の情報を用いない。すなわち、移動局５１及び５２の現在の状態を表す情報を保持しなくても、地域別プロセス実行部１０２は、地域別プロセス１２１を実行できる。そのため、地域別プロセス１２１は、移動局５１及び５２の現在の状態を表す情報を保持しないプロセスといえる。この地域別プロセス実行部１０２が、「第２実行部」の一例にあたる。
【００３９】
また、状態保持プロセス実行部１０１と地域別プロセス実行部１０２の通信は、状態保持プロセス１１１又は１１２と地域別プロセス１２１との間の通信といえる。すなわち、状態保持プロセス実行部１０１と地域別プロセス実行部１０２の通信は、プロセス間通信にあたる。
【００４０】
プロセス間通信監視部１０３は、図４に示すように、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間で行われるプロセス間通信を監視する。図４は、実施例１に係るプロセスマイグレーションを説明するための図である。図４では、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間の通信経路上の破線で表した丸から延びる矢印によりプロセス間通信の監視を表した。また、この場合、エッジサーバ１２の状態保持プロセス実行部１０１は、状態保持プロセス１１２が移動してくる以前から、状態保持プロセス１１３を実行する。また、エッジサーバ１２の地域別プロセス実行部１０２は、地域別プロセス１２２を実行する。
【００４１】
プロセス間通信監視部１０３は、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間で行われるプロセス間通信における不可分操作を表す通信規約を予め有する。図５は、通信規約の一例を表す図である。例えば、図５に示す通信規約１５０は、１つの不可分操作に含まれる処理要求や応答を表すメッセージを一塊として各メッセージが送受信される順番に並べられた情報を有する。Ａｔｏｍ＃１〜＃３のそれぞれが、１つの不可分操作に含まれるメッセージを表す。例えば、Ａｔｏｍ＃１であれば、Ｐｕｔ（Ａ，＊）、Ｒｅｓｐｏｎｓｅ（Ａ，＊）、Ｐｕｔ（Ｂ，＊）、Ｒｅｓｐｏｎｓｅ（Ｂ，＊）という４つのメッセージがこの順番で送受信されると１つの不可分操作が完了する。ここで、Ａ，Ｂなどは、固定のパラメータであり、＊は、変数のパラメータを表す。
【００４２】
図４に戻って説明を続ける。プロセス間通信監視部１０３は、プロセス間通信を監視して、通信メッセージを自己の記憶領域に保存する。ここで、地域別プロセス１２１と状態保持プロセス１１１及び１１２との間のプロセス間通信は、ＯＳ２２４を介して行われる。そのため、プロセス間通信監視プロセス２２１は、ＯＳ２２４における特定の箇所を監視することでプロセス間通信を監視することができる。このプロセス間通信監視部１０３が、「検知部」の一例にあたる。
【００４３】
そして、移動管理部１０４からアトミック性の確認要求を受信すると、プロセス間通信監視部１０３は、自己の記憶領域から通信メッセージを読み出す。そして、プロセス間通信監視部１０３は、読み出した通信メッセージと通信規約１５０とを比較する。プロセス間通信監視部１０３は、取得した通信メッセージから、プロセス間通信の現在の通信状態が通信規約１５０に登録された不可分操作の何れかの途中の状態か否かを判定する。
【００４４】
プロセス間通信監視部１０３は、取得した通信メッセージと通信規約１５０に登録されたメッセージにおいて、メッセージの記述及び固定のパラメータが一致し、変数のパラメータに適切な値を有するメッセージであればそれらは同じメッセージであると判定する。この通信規約１５０に登録された各不可分操作に含まれるメッセージが、「通信処理を表す情報」の一例にあたる。
【００４５】
例えば、プロセス間通信監視部１０３は、Ｐｕｔ（Ａ，＊）が取得した通信メッセージに含まれていることを検出した場合、その後、Ｒｅｓｐｏｎｓｅ（Ａ，＊）、Ｐｕｔ（Ｂ，＊）、Ｒｅｓｐｏｎｓｅ（Ｂ，＊）という通信メッセージが送信されているか否かを判定する。それら３つの通信メッセージが含まれていれば、プロセス間通信監視部１０３は、通信規約１５０に登録されたＡｔｏｍ＃１で表される不可分操作は完了したと判定する。
【００４６】
このように、プロセス間通信監視部１０３は、通信規約１５０に登録された不可分操作で完了していない操作の有無により、プロセス間通信の現在の状態がアトミック性が確保された状態か否かを判定する。プロセス間通信の現在の状態がアトミック性が確保された状態であれば、プロセス間通信監視部１０３は、プロセスイメージの移動許可の通知を移動管理部１０４へ出力する。
【００４７】
次に、移動管理部１０４について図２〜４を参照して説明する。移動管理部１０４は、基地局２１からハンドオーバ要求を受信する。ハンドオーバ要求を受信すると、移動管理部１０４は、アトミック性の確認要求をプロセス間通信監視部１０３へ出力する。その後、移動管理部１０４は、プロセスイメージの移動許可通知をプロセス間通信監視部１０３から取得する。
【００４８】
プロセスイメージの移動許可通知を受信すると、移動管理部１０４は、状態保持プロセス実行部１０１で動作する状態保持プロセス１１２の動作を停止させる。そして、移動管理部１０４は、状態保持プロセス１１２のプロセスイメージを状態保持プロセス実行部１０１から取得する。言い換えれば、移動管理部１０４は、図３に図示したメモリ２０２に状態保持プロセス１１２のプロセスイメージのダンプを出力させ取得する。その後、移動管理部１０４は、取得したプロセスイメージを含むプロセスイメージファイルを生成する。そして、移動管理部１０４は、生成したプロセスイメージファイルをエッジサーバ１２へ送信する。
【００４９】
また、セル３０からセル４０に移動局５２が移動してきた場合、図４に示すエッジサーバ１２の移動管理部１０４は、エッジサーバ１１の移動管理部１０４が送信したプロセスイメージファイルを受信する。そして、移動管理部１０４は、プロセスイメージファイルからプロセスイメージを取得し、メモリ２０２にリストアする。その後、移動管理部１０４は、状態保持プロセス実行部１０１及び地域別プロセス実行部１０２に地域別プロセス１２２と状態保持プロセス１１２とのプロセス間通信を指示し、プロセス間通信を復元する。これにより、図４の一点鎖線で表されるように、状態保持プロセス１１２は、移動局５２の移動に応じてエッジサーバ１１からエッジサーバ１２へ移動する。
【００５０】
次に、図６を参照して、本実施例に係る通信システム１００におけるプロセスマイグレーション処理の流れについて説明する。図６は、実施例１に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。図６の縦軸は、紙面に向かって縦軸の上部に記載された各部の動作を表す。また、図６の縦軸は、紙面に向かって下に進むにしたがい時間が経過することを表す。図６では、ハンドオーバのことをＨＯ（Hand  Over）として略して表した。
【００５１】
ここでは、移動局５２のハンドオーバ要求が発生する前に、状態保持プロセス実行部１０１は、不可分操作Ｃ１に含まれるＰｕｔ（Ａ，１）を地域別プロセス実行部１０２へ送信する（ステップＳ１）。
【００５２】
移動局５２は、セル３０からセル４０への移動に応じて、ハンドオーバ要求を基地局２１へ送信する（ステップＳ２）。
【００５３】
基地局２１は、ハンドオーバ要求を移動局５２から受信する。そして、基地局２１は、ハンドオーバ要求をエッジサーバ１１の移動管理部１０４へ送信する（ステップＳ３）。
【００５４】
エッジサーバ１１の移動管理部１０４は、ハンドオーバ要求を基地局２１から受信する。そして、エッジサーバ１１の移動管理部１０４は、アトミック性確認要求をエッジサーバ１１のプロセス間通信監視部１０３へ出力する（ステップＳ４）。この時点では、状態保持プロセス実行部１０１と地域別プロセス実行部１０２とは不可分操作Ｃ１を行っている。そこで、エッジサーバ１１のプロセス間通信監視部１０３は、プロセス間通信における通信メッセージを取得し、通信規約１５０との比較を行い、不可分操作Ｃ１の完了まで待機する。
【００５５】
その間、エッジサーバ１１の地域別プロセス実行部１０２は、不可分操作Ｃ１に含まれるＲｅｓｐｏｎｓｅ（Ａ，５）を状態保持プロセス実行部１０１へ送信する（ステップＳ５）。次に、エッジサーバ１１の状態保持プロセス実行部１０１は、不可分操作Ｃ１に含まれるＰｕｔ（Ｂ，７）を地域別プロセス実行部１０２へ送信する（ステップＳ６）。次に、エッジサーバ１１の地域別プロセス実行部１０２は、不可分操作Ｃ１に含まれるＲｅｓｐｏｎｓｅ（Ｂ，９）を状態保持プロセス実行部１０１へ送信する（ステップＳ７）。
【００５６】
エッジサーバ１１のプロセス間通信監視部１０３は、不可分操作Ｃ１で実行されるステップＳ１及びＳ５〜Ｓ７において送受信される通信メッセージを取得する（ステップＳ８）。
【００５７】
そして、ステップＳ１及びＳ５〜Ｓ７において送受信される通信メッセージを全て取得した場合、エッジサーバ１１のプロセス間通信監視部１０３は、不可分操作Ｃ１が完了したと判定し、アトミック性の確保を確認する（ステップＳ９）。
【００５８】
その後、エッジサーバ１１のプロセス間通信監視部１０３は、状態保持プロセス１１２の移動許可通知をエッジサーバ１１の移動管理部１０４へ出力する（ステップＳ１０）。
【００５９】
エッジサーバ１１の移動管理部１０４は、状態保持プロセス１１２の移動許可通知の入力をエッジサーバ１１のプロセス間通信監視部１０３から受ける。そして、エッジサーバ１１の移動管理部１０４は、ハンドオーバ命令を基地局２１へ送信する（ステップＳ１１）。
【００６０】
基地局２１は、ハンドオーバ命令をエッジサーバ１１の移動管理部１０４から受信する。そして、基地局２１は、ハンドオーバ命令を移動局５２へ送信する（ステップＳ１２）。
【００６１】
移動局５２は、ハンドオーバ命令を基地局２１から受信する。そして、移動局５２は、ハンドオーバを開始し、電波の切り替えやハンドオーバ先の基地局２２との電波の同期を実行する。この間に、エッジサーバ１１の移動管理部１０４は、状態保持プロセス１１２の停止を状態保持プロセス実行部１０１へ指示し、状態保持プロセス１１２を停止させる（ステップＳ１３）。
【００６２】
次に、エッジサーバ１１の移動管理部１０４は、プロセスイメージを状態保持プロセス実行部１０１から取得する（ステップＳ１４）。具体的には、移動管理部１０４は、状態保持プロセス１１２のプロセスイメージのダンプをメモリ２０２に出力させることで、プロセスイメージを取得する。そして、エッジサーバ１１の移動管理部１０４は、プロセスイメージを含むプロセスイメージファイルを生成する。
【００６３】
次に、エッジサーバ１１の移動管理部１０４は、生成したプロセスイメージファイルをエッジサーバ１２の移動管理部１０４へ送信する（ステップＳ１５）。
【００６４】
エッジサーバ１２の移動管理部１０４は、プロセスイメージファイルをエッジサーバ１１の移動管理部１０４から受信する。そして、エッジサーバ１２の移動管理部１０４は、メモリ２０２に状態保持プロセス１１２をリストアする（ステップＳ１６）。
【００６５】
その後、エッジサーバ１２の移動管理部１０４は、エッジサーバ１２の状態保持プロセス実行部１０１に状態保持プロセス１１２の実行を開始させる。そして、エッジサーバ１２の移動管理部１０４は、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間における、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信を復元させる（ステップＳ１７及びＳ１８）。
【００６６】
移動局５２は、ハンドオーバの処理が完了すると、ハンドオーバ完了通知を基地局２２へ出力する（ステップＳ１９）。
【００６７】
基地局２２は、ハンドオーバ完了通知を移動局５２から受信する。そして、基地局２２は、ハンドオーバ完了通知をエッジサーバ１２の移動管理部１０４へ送信する（ステップＳ２０）。
【００６８】
エッジサーバ１２の移動管理部１０４は、ハンドオーバ完了通知を基地局２２から受信する。そして、エッジサーバ１２の移動管理部１０４は、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信の復元が完了している場合、ハンドオーバ完了応答を基地局２２へ送信する（ステップＳ２１）。
【００６９】
基地局２２は、ハンドオーバ完了応答をエッジサーバ１２の移動管理部１０４から受信する。そして、基地局２２は、ハンドオーバ完了応答を移動局５２へ送信する（ステップＳ２２）。
【００７０】
移動局５２は、ハンドオーバ完了応答を受信する。これにより、移動局５２は、エッジサーバ１２の状態保持プロセス実行部１０１及び地域別プロセス実行部１０２に情報を送信し、サービスを受けることが可能となる。
【００７１】
ここで、図６では、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信の復元が完了した後に、移動管理部１０４が、ハンドオーバ完了通知と受信する場合を説明した。ただし、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信の復元が完了する前に、移動管理部１０４が、ハンドオーバ完了通知を受信する場合も考えられる。
【００７２】
その場合、移動管理部１０４は、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信の復元が完了するのを待って、その後、ハンドオーバ完了応答を基地局２２へ送信する。この場合でも、アプリケーション２２３の遅延要件に応じて、実際にエッジサーバ１２が移動局５２へサービスを提供開始するまでに時間的余裕がある。そのため、移動管理部１０４は、その時間的余裕を利用して、ハンドオーバ完了通知を受信してからハンドオーバ完了応答を出力するまでの時間を調整することができる。また、セル３０とセル４０とはオーバラップしているため、移動管理部１０４は、そのオーバラップ領域に移動局５２が在圏している間を利用して、サービスの提供元の切り替えのタイミングを調整することが可能である。
【００７３】
次に、図７を参照して、本実施例に係るエッジサーバ１１によるアトミック性の確保の処理の流れの詳細について説明する。図７は、実施例１に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。図７における誌面に向かって破線の左側がプロセス間通信監視部１０３による処理の流れを表し、破線の右側が移動管理部１０４による処理の流れを表す。そして、各フローチャート間を結ぶ一点鎖線の矢印は、プロセス間通信監視部１０３と移動管理部１０４との間の通信を表す。
【００７４】
プロセス間通信監視部１０３は、プロセス間通信が実行されたか否かを判定する（ステップＳ１０１）。プロセス間通信が実行されていない場合（ステップＳ１０１：否定）、プロセス間通信監視部１０３は、プロセス間通信が実行されるまで待機する。
【００７５】
これに対して、プロセス間通信が実行された場合（ステップＳ１０１：肯定）、プロセス間通信監視部１０３は、プロセス間通信で送受信された通信メッセージを保存する（ステップＳ１０２）。
【００７６】
その後、プロセス間通信監視部１０３は、移動管理部１０４からアトミック性確認要求を受信すると自己の記憶領域から通信メッセージを読み出す（ステップＳ１０３）。
【００７７】
そして、プロセス間通信監視部１０３は、読み出した通信メッセージと通信規約１５０とを比較して、アトミック性が確保されたか否かを判定する（ステップＳ１０４）。アトミック性が確保されていない場合（ステップＳ１０４：否定）、プロセス間通信監視部１０３は、ステップＳ１０２へ戻る。
【００７８】
これに対して、アトミック性が確保された場合（ステップＳ１０４：肯定）、プロセス間通信監視部１０３は、移動許可通知を移動管理部１０４へ送信する（ステップＳ１０５）。
【００７９】
一方、移動管理部１０４は、ハンドオーバ要求を受信したか否かを判定する（ステップＳ１０６）。ハンドオーバ要求を受信していない場合（ステップＳ１０６：否定）、移動管理部１０４は、ハンドオーバ要求を受信するまで待機する。
【００８０】
これに対して、ハンドオーバ要求を受信した場合（ステップＳ１０６：肯定）、移動管理部１０４は、アトミック性確認要求をプロセス間通信監視部１０３へ送信する（ステップＳ１０７）。
【００８１】
その後、移動管理部１０４は、移動許可通知をプロセス間通信監視部１０３から受信すると、ハンドオーバ命令を送信する（ステップＳ１０８）。
【００８２】
次に、移動管理部１０４は、状態保持プロセス１１２の停止の通知を状態保持プロセス実行部１０１へ出力する（ステップＳ１０９）。
【００８３】
次に、移動管理部１０４は、状態保持プロセス１１２のダンプをメモリ２０２に出力させ、プロセスイメージを取得する（ステップＳ１１０）。
【００８４】
その後、移動管理部１０４は、メモリ２０２から出力された状態保持プロセス１１２のプロセスイメージを送信する（ステップＳ１１１）。
【００８５】
次に、図８を参照して、エッジサービスを提供するアプリケーションの一例について説明する。図８は、自動車の運転支援のアプリケーションの例を表す図である。
【００８６】
状態保持プロセス実行部１０１は、以下に説明する状態保持プロセス１１１及び１１２を実行する。この場合、状態保持プロセス１１１及び１１２は、自動車の安全運転支援のサービスを提供する処理Ｐ１を行う。以下では、状態保持プロセス１１２を例に説明する。
【００８７】
状態保持プロセス１１２は、送信された自動車に備えられたカメラで撮影された連続する画像Ｐ１１を自動車に搭載された車載端末５５から取得する。そして、状態保持プロセス１１２は、画像Ｐ１１の中から、動き検知に用いるフレーム範囲に含まれる複数の画像Ｐ１１を集めた連続画像Ｐ１２を取得する。
【００８８】
次に、状態保持プロセス１１２は、連続画像Ｐ１２に対して動き検知プログラムＰ１３を用いて動き検知処理を行い中間の処理結果である中間データＰ１５を生成しつつ車載端末５５が搭載された車の周囲の人や車の動き検知を行う。動き検知プログラムＰ１３は、例えば、複数の画像Ｐ１１をスライディングしながら参照して、動く物体の有無及び動きの方向性などを検知するプログラムである。この際、状態保持プロセス１１２は、プログラムカウンタＰ１４を用いて動き検知プログラムＰ１３をどこまで実行したかの情報を保持する。
【００８９】
状態保持プロセス１１２は、動き検知の結果を車載端末５５へフィードバックする。車載端末５５が搭載された車は、フィードバック結果を利用して、自動ブレーキなどの安全運転支援を行うことができる。
【００９０】
さらに、状態保持プロセス１１２は、画像Ｐ１１や車の走行情報などのその他情報を用いて車載端末５５が搭載された車が走行する経路の渋滞の状態を分析する。そして、状態保持プロセス１１２は、車載端末５５が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を地域別プロセス１２１の要求に応じて送信する。
【００９１】
一方、地域別プロセス実行部１０２は、以下に説明する地域別プロセス１２１を実行する。この場合、地域別プロセス１２１は、セル３０の範囲内の渋滞情報の統計処理を行う。
【００９２】
例えば、地域別プロセス１２１は、車載端末５５が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を状態保持プロセス１１２から取得する。このように、地域別プロセス１２１は、セル３０の各位置における渋滞分析情報をその位置の情報とともに収集する。そして、地域別プロセス１２１は、収集した情報を用いてセル３０に含まれる地域の渋滞情報を統計処理する。その後、地域別プロセス１２１は、統計処理結果の図１のクラウド７への送信などを行う。
【００９３】
地域別プロセス実行部１０２は、車載端末５５が搭載された車の位置の情報及び分析結果であるその位置に関する渋滞分析情報を状態保持プロセス実行部１０１から取得するために、不可分操作Ｃ２で表される通信を状態保持プロセス実行部１０１との間で行う。
【００９４】
すなわち、地域別プロセス実行部１０２は、車載端末５５の位置情報の送信要求であるＲｅｑｕｅｓｔ（位置情報）を状態保持プロセス実行部１０１へ送信する（ステップＳ２０１）。Ｒｅｑｕｅｓｔ（位置情報）を受信した状態保持プロセス実行部１０１は、車載端末５５の位置情報を送信するＲｅｓｐｏｎｓｅ（位置情報）を地域別プロセス実行部１０２へ送信する（ステップＳ２０２）。
【００９５】
Ｒｅｓｐｏｎｓｅ（位置情報）を受信した地域別プロセス実行部１０２は、渋滞分析情報の送信要求であるＲｅｑｕｅｓｔ（渋滞分析情報）を状態保持プロセス実行部１０１へ送信する（ステップＳ２０３）。Ｒｅｑｕｅｓｔ（渋滞分析情報）を受信した状態保持プロセス実行部１０１は、車載端末５５の位置における渋滞分析情報を送信するＲｅｓｐｏｎｓｅ（渋滞分析情報）を地域別プロセス実行部１０２へ送信する（ステップＳ２０４）。
【００９６】
このように、位置情報の送受信及び渋滞分析情報の送受信という２セットの処理を完了することで、状態保持プロセス１１２と地域別プロセス１２１とのプロセス間通信のアトミック性が確保される。例えば、位置情報の送受信後に、車が移動して車載端末５５がセル４０に移動した場合、エッジサーバ１２の地域別プロセス１２２は、車載端末５５の位置における渋滞分析情報を取得しても車載端末５５の位置の情報を持たないため、渋滞情報の統計処理の継続が困難となる。
【００９７】
そこで、プロセス間通信監視部１０３は、不可分操作Ｃ２の完了を確認して移動許可通知を出す。そして、移動管理部１０４は、移動許可通知を受信すると状態保持プロセス１１２の移動を行う。これにより、不可分操作Ｃ２の途中で状態保持プロセス１１２が、エッジサーバ１２に移動することが防止でき、渋滞情報の統計処理の継続性を維持することができる。
【００９８】
次に、図９を参照して、クラウドサービスを提供するアプリケーション２２３の他の例について説明する。図９は、ドローンによる災害状況把握のアプリケーションの例を表す図である。ドローンとは、一般的に３つ以上の回転翼を備え、遠隔操作できる無人のマルチコプターを指す。
【００９９】
状態保持プロセス実行部１０１は、以下に説明する状態保持プロセス１１１及び１１２を実行する。この場合、状態保持プロセス１１１及び１１２は、災害状況を認識して認識結果を連続的に出力するサービスを提供する処理Ｐ２を行う。災害状況の認識には、例えば、被災者が存在することを検知する「被災者発見検知」、群衆がパニックを起こしていることを検知する「群衆行動検知」及び堤防の決壊した箇所を検知する「河川状況検知」などが考えられる。以下では、状態保持プロセス１１２を例に説明する。
【０１００】
状態保持プロセス１１２は、ドローン５７に備えられたカメラで撮影された連続する画像Ｐ２１をドローン５７から取得する。そして、状態保持プロセス１１２は、画像Ｐ２１の中から動き検知に用いるフレーム範囲に含まれる複数の画像Ｐ２１を集めた連続画像Ｐ２２を取得する。
【０１０１】
次に、状態保持プロセス１１２は、連続画像Ｐ２２に対して災害状況認識プログラムＰ２３を用いて動き検知処理を行い中間の処理結果である中間データＰ２５を生成しつつドローン５７の周囲の災害状況の認識を行う。この際、状態保持プロセス１１２は、プログラムカウンタＰ２４を用いて災害状況認識プログラムＰ２３をどこまで実行したかの情報を保持する。
【０１０２】
状態保持プロセス１１２は、災害状況認識の結果をドローン５７が位置する地域の情報として出力する。ドローン５７が位置する地域の被災者は、災害状況認識の結果を確認することで災害に効率的に対処することができる。このように、自動検知を行うことで、人海戦術で多数の映像を人が監視する場合よりも、効率的に災害状況を把握することができる。
【０１０３】
さらに、状態保持プロセス１１２は、ドローン５７の位置の情報及びその位置に関する災害状況認識の結果を地域別プロセス１２１の要求に応じて送信する。
【０１０４】
一方、地域別プロセス実行部１０２は、以下に説明する地域別プロセス１２１を実行する。この場合、地域別プロセス１２１は、セル３０の範囲内の災害状況認識の結果の集約を行う。
【０１０５】
例えば、地域別プロセス１２１は、ドローン５７の位置の情報及びその位置に関する災害状況認識の結果を状態保持プロセス１１２から取得する。そして、地域別プロセス１２１は、セル３０の各位置から取得した情報を用いて対策箇所を決定する。その後、地域別プロセス１２１は、セル３０に含まれる地域の対策箇所に優先順位などを付加して地図上に表示する。各地域の災害対策本部は、表示箇所の優先順位に応じて注目すべき個所の映像をピックアップして参照し、対策を指示する。この場合も、人海戦術で多数の映像を人が監視する場合よりも、効率的に災害状況を把握することができ、効率的に対策を行うことができる。ここでの対策には、例えば、ドローン５６〜５８を特定の地域の地区へ集中的に投入することや、別の担当地域へドローン５６〜５８を派遣するためのドローン５６〜５７への移動指示がある。
【０１０６】
地域別プロセス実行部１０２は、ドローン５７の位置の情報及びその位置に関する災害状況認識の結果を状態保持プロセス実行部１０１から取得するために、不可分操作Ｃ３で表される通信を状態保持プロセス実行部１０１との間で行う。
【０１０７】
すなわち、地域別プロセス実行部１０２は、ドローン５７の位置情報の送信要求であるＲｅｑｕｅｓｔ（位置情報）を状態保持プロセス実行部１０１へ送信する（ステップＳ２１１）。Ｒｅｑｕｅｓｔ（位置情報）を受信した状態保持プロセス実行部１０１は、ドローン５７の位置情報を送信するＲｅｓｐｏｎｓｅ（位置情報）を地域別プロセス実行部１０２へ送信する（ステップＳ２１２）。
【０１０８】
Ｒｅｓｐｏｎｓｅ（位置情報）を受信した地域別プロセス実行部１０２は、災害状況認識の結果の送信要求であるＲｅｑｕｅｓｔ（災害認識情報）を状態保持プロセス実行部１０１へ送信する（ステップＳ２１３）。Ｒｅｑｕｅｓｔ（災害認識情報）を受信した状態保持プロセス実行部１０１は、ドローン５７の位置における災害状況認識の結果を送信するＲｅｓｐｏｎｓｅ（災害認識情報）を地域別プロセス実行部１０２へ送信する（ステップＳ２１４）。
【０１０９】
このように、位置情報の送受信及び災害認識情報の送受信という２セットの処理を完了することで、状態保持プロセス１１２と地域別プロセス１２１とのプロセス間通信のアトミック性が確保される。そこで、プロセス間通信監視部１０３は、不可分操作Ｃ３の完了を確認して移動許可通知を出す。そして、移動管理部１０４は、移動許可通知を受信すると状態保持プロセス１１２の移動を行う。これにより、不可分操作Ｃ３の途中で状態保持プロセス１１２が、エッジサーバ１２に移動することが防止でき、災害認識情報の集約処理の継続性を維持することができる。
【０１１０】
以上に説明したように、本実施例に係る通信システム及びエッジサーバは、プロセス間通信における不可分操作が完了した後に、状態保持プロセスを他のエッジサーバへ移動させる。これにより、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動することができ、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【実施例２】
【０１１１】
図１０は、実施例２に係るエッジサーバのブロック図である。本実施例に係るエッジサーバ１１は、状態保持プロセス実行部１０１がアトミック性確保の判定を行うことが実施例１と異なる。以下の説明では、実施例１と同様の各部の動作については説明を省略する。
【０１１２】
本実施例に係る状態保持プロセス実行部１０１は、通信規約１５０を有する。状態保持プロセス実行部１０１は、地域別プロセス実行部１０２との間の通信における通信メッセージを確認する。そして、状態保持プロセス実行部１０１は、地域別プロセス実行部１０２との間で送受信した通信メッセージの情報を用いて、プロセス間通信の現在の通信状態が通信規約１５０に登録された不可分操作の何れかの途中の状態か否かを判定する。
【０１１３】
プロセス間通信の現在の通信状態が通信規約１５０に登録された不可分操作の途中の状態でなければ、状態保持プロセス実行部１０１は、移動許可通知を移動管理部１０４へ出力する。
【０１１４】
ここで、図１１及び１２を参照して、状態保持プロセス実行部１０１による通信状態の監視の詳細について説明する。図１１は、実施例２に係るエッジサーバのハードウェア構成図である。また、図１２は、実施例２に係るプロセスマイグレーションを説明するための図である。
【０１１５】
図１１に示すように、本実施例に係るエッジサーバ１１では、ＣＰＵ２０１によりメモリ上に展開されたアプリケーション２２３が、状態保持プロセス１１１及び１１２のそれぞれに結合する通信インタフェース１１４及び１１５を有する。また、アプリケーション２２３は、移動許可フラグ１１７及び１１８を有する。移動許可フラグ１１７及び１１８は、状態保持プロセス１１１及び１１２の数に対応して生成される。
【０１１６】
例えば、通信インタフェース１１５は、状態保持プロセス実行部１０１が、状態保持プロセス１１２と地域別プロセス１２１とのプロセス間通信を行う場合のデータの送受信のインタフェースである。すなわち、状態保持プロセス実行部１０１が、通信インタフェース１１４及び１１５を動作させるといえる。状態保持プロセス実行部１０１は、状態保持プロセス１１２及び通信インタフェース１１５に以下の処理を実行させる。
【０１１７】
状態保持プロセス１１２は、通信インタフェース１１５を介して地域別プロセス１２１へメッセージを送信する。
【０１１８】
通信インタフェース１１５は、例えば、使用するプロセス間通信手段に応じて通信メッセージに対してエンコード処理を行う。プロセス間通信手段は、ＯＳ２２４により複数種類存在する。
【０１１９】
そして、通信インタフェース１１５は、プロセス間通信の通信メッセージの送受信パターンと通信規約１５０に登録された不可分操作に含まれるメッセージを比較する。プロセス間通信の通信メッセージの送受信パターンが通信規約１５０に登録された不可分操作に含まれるメッセージに一致すると、通信インタフェース１１５は、アトミック性が確保されたと判定する。
【０１２０】
アトミック性が確保された場合、通信インタフェース１１５は、移動許可フラグ１１８をセットする。また、アトミック性が確保された後に、プロセス間通信において新たに通信メッセージの送受信が行われ、アトミック性が確保されない状態に遷移した場合、通信インタフェース１１５は、移動許可フラグ１１８をアンセットする。図１２では、説明の都合上、移動許可フラグ１１７を省略して図示した。この通信インタフェース１１５が、「通信インタフェース部」の一例にあたる。
【０１２１】
この場合、エッジサーバ１２の地域別プロセス実行部１０２は、状態保持プロセス１１３に結合した通信インタフェース１１６を用いて、地域別プロセス実行部１０２と通信を行う。
【０１２２】
移動管理部１０４は、ハンドオーバ要求を受けた場合、移動許可フラグ１１８がセットされた状態であれば、状態保持プロセス１１２の移動を行う。これに対して、移動許可フラグ１１８がセットされていない状態であれば、移動管理部１０４は、移動許可フラグ１１８がセットされるまで状態保持プロセス１１２の移動を保留する。
【０１２３】
次に、図１３を参照して、本実施例に係る通信システム１００におけるプロセスマイグレーション処理の流れについて説明する。図１３は、実施例２に係る通信システムにおけるプロセスマイグレーション処理のシーケンス図である。図１３の縦軸は、紙面に向かって縦軸の上部に記載された各部の動作を表す。また、図１３の縦軸は、紙面に向かって下に進むにしたがい時間が経過することを表す。
【０１２４】
移動局５２のハンドオーバ要求が発生する前に、状態保持プロセス実行部１０１が実行する状態保持プロセス１１２は、不可分操作Ｃ４に含まれるＰｕｔ（Ａ，１）を通信インタフェース１１５を介して地域別プロセス実行部１０２へ送信する（ステップＳ３０１）。図１３では、通信を表す矢印上に黒丸を配置することで、通信インタフェース１１５がプロセス間通信の中継を行っていることを表した。
【０１２５】
通信インタフェース１１５は、不可分操作Ｃ４が開始されたことを確認して、移動許可フラグ１１８をアンセットする（ステップＳ３０２）。
【０１２６】
移動局５２は、セル３０からセル４０への移動に応じて、ハンドオーバ要求を基地局２１へ送信する（ステップＳ３０３）。
【０１２７】
基地局２１は、ハンドオーバ要求を移動局５２から受信する。そして、基地局２１は、ハンドオーバ要求をエッジサーバ１１の移動管理部１０４へ送信する（ステップＳ３０４）。
【０１２８】
この時点では、状態保持プロセス実行部１０１と地域別プロセス実行部１０２とは不可分操作Ｃ４を行っている。そこで、通信インタフェース１１５は、移動許可フラグ１１８のアンセット状態を維持する。移動管理部１０４は、移動許可フラグ１１８を参照して、フラグがアンセットの状態であることを確認し、状態保持プロセス１１２の移動を保留する（ステップＳ３０５）。
【０１２９】
その間、エッジサーバ１１の地域別プロセス実行部１０２は、不可分操作Ｃ４に含まれるＲｅｓｐｏｎｓｅ（Ａ，５）を状態保持プロセス１１２へ送信する（ステップＳ３０６）。次に、エッジサーバ１１の状態保持プロセス実行部１０１は、不可分操作Ｃ４に含まれるＰｕｔ（Ｂ，７）を地域別プロセス実行部１０２へ送信する（ステップＳ３０７）。次に、エッジサーバ１１の地域別プロセス実行部１０２は、不可分操作Ｃ４に含まれるＲｅｓｐｏｎｓｅ（Ｂ，９）を状態保持プロセス実行部１０１へ送信する（ステップＳ３０８）。
【０１３０】
エッジサーバ１１の状態保持プロセス実行部１０１により実行される通信インタフェース１１５は、不可分操作Ｃ４で実行されるステップＳ３０１及びＳ３０６〜Ｓ３０８において送受信される通信メッセージのパターンと通信規約１５０とを比較する。ステップＳ３０１及びＳ３０６〜Ｓ３０８において送受信される通信メッセージのパターンが通信規約１５０に登録された不可分操作に含まれるメッセージに一致した場合、通信インタフェース１１５は、プロセス間通信のアトミック性が確保されたと判定する。そして、通信インタフェース１１５は、移動許可フラグ１１８に対してフラグセットを行う（ステップＳ３０９）。
【０１３１】
エッジサーバ１１の移動管理部１０４は、移動許可フラグ１１８を参照する（ステップＳ３１０）。
【０１３２】
そして、エッジサーバ１１の移動管理部１０４は、移動許可フラグ１１８にフラグがセットされた状態であることから、アトミック性の確保を確認する（ステップＳ３１１）。
【０１３３】
次に、エッジサーバ１１の移動管理部１０４は、ハンドオーバ命令を基地局２１へ送信する（ステップＳ３１２）。
【０１３４】
基地局２１は、ハンドオーバ命令をエッジサーバ１１の移動管理部１０４から受信する。そして、基地局２１は、ハンドオーバ命令を移動局５２へ送信する（ステップＳ３１３）。
【０１３５】
移動局５２は、ハンドオーバ命令を基地局２１から受信する。そして、移動局５２は、ハンドオーバを開始し、電波の切り替えやハンドオーバ先の基地局２２との電波の同期を実行する。この間に、エッジサーバ１１の移動管理部１０４は、状態保持プロセス１１２の停止を状態保持プロセス実行部１０１へ指示し、状態保持プロセス１１２を停止させる（ステップＳ３１４）。
【０１３６】
次に、エッジサーバ１１の移動管理部１０４は、プロセスイメージを状態保持プロセス実行部１０１から取得する。具体的には、移動管理部１０４は、状態保持プロセス１１２のプロセスイメージのダンプをメモリ２０２に出力させることで（ステップＳ３１５）、プロセスイメージを取得する。そして、エッジサーバ１１の移動管理部１０４は、プロセスイメージを含むプロセスイメージファイルを生成する。
【０１３７】
次に、エッジサーバ１１の移動管理部１０４は、生成したプロセスイメージファイルをエッジサーバ１２の移動管理部１０４へ送信する（ステップＳ３１６）。
【０１３８】
エッジサーバ１２の移動管理部１０４は、プロセスイメージファイルをエッジサーバ１１の移動管理部１０４から受信する。そして、エッジサーバ１２の移動管理部１０４は、メモリ２０２に状態保持プロセス１１２をリストアする（ステップＳ３１７）。
【０１３９】
その後、エッジサーバ１２の移動管理部１０４は、エッジサーバ１２の状態保持プロセス実行部１０１に状態保持プロセス１１２の実行を開始させる。そして、エッジサーバ１２の移動管理部１０４は、状態保持プロセス実行部１０１と地域別プロセス実行部１０２との間における、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信を復元させる（ステップＳ３１８及びＳ３１９）。
【０１４０】
移動局５２は、ハンドオーバの処理が完了すると、ハンドオーバ完了通知を基地局２２へ出力する（ステップＳ３２０）。
【０１４１】
基地局２２は、ハンドオーバ完了通知を移動局５２から受信する。そして、基地局２２は、ハンドオーバ完了通知をエッジサーバ１２の移動管理部１０４へ送信する（ステップＳ３２１）。
【０１４２】
エッジサーバ１２の移動管理部１０４は、ハンドオーバ完了通知を基地局２２から受信する。そして、エッジサーバ１２の移動管理部１０４は、状態保持プロセス１１２と地域別プロセス１２２とのプロセス間通信の復元が完了している場合、ハンドオーバ完了応答を基地局２２へ送信する（ステップＳ３２２）。
【０１４３】
基地局２２は、ハンドオーバ完了応答をエッジサーバ１２の移動管理部１０４から受信する。そして、基地局２２は、ハンドオーバ完了応答を移動局５２へ送信する（ステップＳ３２３）。
【０１４４】
移動局５２は、ハンドオーバ完了応答を受信する。これにより、移動局５２は、エッジサーバ１２の状態保持プロセス実行部１０１及び地域別プロセス実行部１０２に情報を送信し、サービスを受けることが可能となる。
【０１４５】
次に、図１４を参照して、本実施例に係るエッジサーバ１１によるアトミック性の確保の処理の流れの詳細について説明する。図１４は、実施例２に係るエッジサーバによるアトミック性の確保の処理のフローチャートである。図１４における破線で分けられた領域の誌面に向かって左端が状態保持プロセス実行部１０１による処理の流れを表し、右端が移動管理部１０４による処理の流れを表す。そして、各フローチャートから移動許可フラグ１１８へ延びる一点鎖線の矢印は、状態保持プロセス実行部１０１又は移動管理部１０４と移動許可フラグ１１８との間の通信を表す。
【０１４６】
状態保持プロセス実行部１０１の通信インタフェース１１５は、プロセス間通信が実行されたか否かを判定する（ステップＳ４０１）。プロセス間通信が実行されていない場合（ステップＳ４０１：否定）、通信インタフェース１１５は、プロセス間通信が実行されるまで待機する。
【０１４７】
一方、プロセス間通信が実行された場合（ステップＳ４０１：肯定）、通信インタフェース１１５は、プロセス間通信で送受信された通信メッセージのパターンと通信規約１５０とを比較して、アトミック性が確保されたか否かを判定する（ステップＳ４０２）。
【０１４８】
アトミック性が確保されていない場合（ステップＳ４０２：否定）、通信インタフェース１１５は、移動許可フラグ１１８をアンセットする（ステップＳ４０３）。その後、状態保持プロセス実行部１０１の通信インタフェース１１５は、ステップＳ４０１へ戻る。
【０１４９】
これに対して、アトミック性が確保された場合（ステップＳ４０２：肯定）、通信インタフェース１１５は、移動許可フラグ１１８をセットする（ステップＳ４０４）。
【０１５０】
一方、移動管理部１０４は、ハンドオーバ要求を受信したか否かを判定する（ステップＳ４０５）。ハンドオーバ要求を受信していない場合（ステップＳ４０５：否定）、移動管理部１０４は、ハンドオーバ要求を受信するまで待機する。
【０１５１】
これに対して、ハンドオーバ要求を受信した場合（ステップＳ４０５：肯定）、移動管理部１０４は、移動許可フラグ１１８の値を読み出す（ステップＳ４０６）。
【０１５２】
そして、移動管理部１０４は、読み出した移動許可フラグ１１８の値からプロセス間通信のアトミック性が確保されたか否かを判定する（ステップＳ４０７）。アトミック性が確保されていない場合（ステップＳ４０７：否定）、移動管理部１０４は、ステップＳ４０６に戻る。
【０１５３】
これに対して、アトミック性が確保されている場合（ステップＳ４０７：肯定）、移動管理部１０４は、ハンドオーバ命令を送信する（ステップＳ４０８）。
【０１５４】
次に、移動管理部１０４は、状態保持プロセス１１２の停止の通知を状態保持プロセス実行部１０１へ出力する（ステップＳ４０９）。
【０１５５】
次に、移動管理部１０４は、状態保持プロセス１１２のダンプをメモリ２０２に出力させる（ステップＳ４１０）。
【０１５６】
その後、移動管理部１０４は、メモリ２０２から出力された状態保持プロセス１１２のプロセスイメージを送信する（ステップＳ４１１）。
【０１５７】
以上に説明したように、本実施例に係る通信システム及びエッジサーバは、状態保持プロセスに結合する通信インタフェースがプロセス間通信のアトミック性の確保を判定する。そして、プロセス間通信における不可分操作が完了した後に、状態保持プロセスが他のエッジサーバへ移動される。このように、状態保持プロセスの通信インタフェースでアトミック性の確保の判定を行うこともできる。そのような構成であっても、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動することができ、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【０１５８】
さらに、以上の各実施例では、エッジサーバ１１及び１２が、それぞれ１つの基地局２１及び２２と対応する場合で説明したが、エッジサーバ１１及び１２は、これ以外のシステム構成でも同様に動作可能である。
【０１５９】
図１５は、エッジサーバが複数の基地局のエリアを管轄する場合のシステム構成図である。基地局２１Ａはセル３１を形成し、基地局２１Ｂはセル３２を形成する。また、基地局２２Ａはセル４１を形成し、基地局２２Ｂはセル４２を形成し、基地局２２Ｃはセル４３を形成する。
【０１６０】
エッジサーバ１１は、基地局２１Ａ及び２１Ｂに接続される。また、エッジサーバ１２は、基地局２２Ａ〜２２Ｃに接続される。この場合、エッジサーバ１１の状態保持プロセス実行部１０１は、移動局５２などのセル３１及び３２に在圏する移動局の状態の情報を用いて状態保持プロセス１１２を実行する。また、エッジサーバ１１の地域別プロセス実行部１０２は、セル３１及び３２の範囲に関する情報の処理を行う。
【０１６１】
このように、エッジサーバ１１が複数の基地局２１Ａ〜２１Ｂに接続される構成でも、エッジサーバ１１は、プロセス間通信のアトミック性を確保したタイミングで状態保持プロセスを移動でき、サービス提供の継続性の維持及びシステムの安定性の確保が可能となる。
【０１６２】
また、以上の各実施例では、状態保持プロセス及び地域別プロセスを実行する場合で説明したが、不可分操作を相互に実行する２つのプロセスの内の少なくともいずれか一方を他の装置に移動する構成であれば、各実施例と同様の機能により同様の効果を奏する。
【符号の説明】
【０１６３】
６  モバイルコアネットワーク
７  クラウド
１１，１２  エッジサーバ
２１，２２  基地局
３０，４０  セル
５１〜５３  移動局
７０  サーバ
１００  通信システム
１０１  状態保持プロセス実行部
１０２  地域別プロセス実行部
１０３  プロセス間通信監視部
１０４  移動管理部
１１１〜１１３  状態保持プロセス
１１４〜１１６  通信インタフェース
１１７，１１８  移動許可フラグ
１２１，１２２  地域別プロセス
１５０  通信規約
２０１  ＣＰＵ
２０２  メモリ
２０３  バス
２０４  ハードディスク
２０５  ネットワークインタフェース
２２１  プロセス間通信監視プロセス
２２２  移動管理プロセス
２２３  アプリケーション
２２４  ＯＳ
【図１】
2019092015.tif 000003
【図２】
2019092015.tif 000004
【図３】
2019092015.tif 000005
【図４】
2019092015.tif 000006
【図５】
2019092015.tif 000007
【図６】
2019092015.tif 000008
【図７】
2019092015.tif 000009
【図８】
2019092015.tif 000010
【図９】
2019092015.tif 000011
【図１０】
2019092015.tif 000012
【図１１】
2019092015.tif 000013
【図１２】
2019092015.tif 000014
【図１３】
2019092015.tif 000015
【図１４】
2019092015.tif 000016
【図１５】
2019092015.tif 000017