(57)【要約】【課題】瞬断時間を削減させるようにした通信装置、及び通信方法を提供すること。【解決手段】端末装置と通信可能な通信装置において、前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出するハンドオーバ管理部と、前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する第１のマイグレーション管理部とを備える。【選択図】図１
2019075710.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と通信可能な通信装置において、
前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出するハンドオーバ管理部と、
前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する第１のマイグレーション管理部と
を備えることを特徴とする通信装置。
【請求項２】
前記第１のマイグレーション管理部は、前記通信装置において実行されているアプリケーションに関する情報を記憶するアプリケーション管理テーブルに基づいて、前記プロセス情報を送信することを特徴とする請求項１記載の通信装置。
【請求項３】
前記第１のマイグレーション管理部は、前記第２のプロセスと前記第１のプロセスとが通信を行う際の通信路に関する通信路情報を含む前記プロセス情報を送信する請求項１記載の通信装置。
【請求項４】
前記アプリケーション管理テーブルは、前記端末装置の識別情報と、前記端末装置に対して前記アプリケーションを実行する前記第２のプロセスの識別情報とを記憶し、
更に、前記ハンドオーバ管理部が前記端末装置の切替えを検出したときに出力した切替え通知を入力し、該切替え通知に含まれる前記端末装置の識別情報に基づいて、前記第２のプロセスの識別情報を、前記アプリケーション管理テーブルから読み出し、前記端末装置の識別情報と前記第２のプロセスの識別情報とを含む再配置指示を出力する第２のマイグレーション管理部を備え、
前記第１のマイグレーション管理部は、前記再配置指示に従って、前記プロセス情報を送信することを特徴とする請求項２記載の通信装置。
【請求項５】
端末装置と通信可能な通信装置において、
前記端末装置の接続先を他の通信装置から前記通信装置への切替えることを検出するハンドオーバ管理部と、
プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスを実行しているとき、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を受信する第３のマイグレーション管理部と
を備えることを特徴とする通信装置。
【請求項６】
更に、第１の識別子と該第１の識別子に対応する第２の識別子とを記憶する対応テーブルと、
変換部とを備え、
前記変換部は、前記通信装置で実行される前記第２のプロセスからオペレーティングシステム宛の通信要求を入力すると、前記通信要求に含まれる識別子を前記第１の識別子とし、前記識別子を、前記第１の識別子に対応する前記第２の識別子に変換し、変換後の前記第２の識別子を含む前記通信要求を前記オペレーティングシステムへ出力し、前記オペレーティングシステムから通信結果を入力すると、前記通信結果に含まれる前記第２の識別子を前記第１の識別子に変換し、変換後の前記第１の識別子を含む前記通信結果を、前記第２のプロセスへ出力することを特徴とする請求項５記載の通信装置。
【請求項７】
ハンドオーバ管理部と、第１のマイグレーション管理部とを有し、端末装置と通信可能な通信装置における通信方法であって、
前記ハンドオーバ管理部により、前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出し、
前記第１のマイグレーション管理部により、前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する
ことを特徴とする通信方法。
【請求項８】
ハンドオーバ管理部と、第３のマイグレーション管理部とを有し、端末装置と通信可能な通信装置における通信方法であって、
前記ハンドオーバ管理部により、前記端末装置の接続先を他の通信装置から前記通信装置への切替えることを検出し、
前記第３のマイグレーション管理部により、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスを実行しているとき、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を受信する
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、及び通信方法に関する。
【背景技術】
【０００２】
近年、エッジコンピューティングが注目されている。エッジコンピューティングは、例えば、クラウドサーバに配置されたアプリケーションプログラムやデータなどを、エッジサーバに分散させるようにした技術である。端末装置は、クラウドサーバよりも近い場所にあるエッジサーバを利用してアプリケーションプログラムやデータを利用することが可能となる。そのため、端末装置では、クラウドサーバを利用する場合と比較して、低遅延での通信が可能となる。端末装置は、エッジコンピューティングにより、安全運転支援アプリケーションなど、低遅延の特性を活かした様々なアプリケーションを利用することが可能となる。
【０００３】
エッジコンピューティングの１つとして、例えば、モバイルエッジコンピューティングがある。モバイルエッジコンピューティングでは、端末装置から見てコアネットワークの外側にサーバを配置するのではなく、基地局装置の近傍にサーバを配置させる。端末装置では、サーバを介して、低遅延の特性を活かした様々なサービスの提供を受けることが可能となる。
【０００４】
エッジコンピューティングでは、利用者（又は端末装置）の移動に伴って、あるエッジサーバから他のエッジサーバへ、データやアプリケーションプログラムなどを移動させる場合がある。このようにデータなどを移動させることを、例えば、マイグレーション（又は再配置）と称する場合がある。
【０００５】
マイグレーションに関して、例えば、以下の技術がある。すなわち、移動体端末がＡ地点からＤ地点へ移動する場合、Ａ地点の計算機Ａは、移動体端末の移動先であるＤ地点を予測し、Ｄ地点の計算機Ｄへプロセスのアドレス空間のデータを送信し、Ｄ地点への移動が確定すると、アドレス空間の差分情報を計算機Ｄへ送信する技術がある。
【０００６】
この技術によれば、移動端末の要求に応じて実行中のプロセスを、移動体端末の移動先を予測して移動させることができる、とされる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−８８２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、マイグレーションの際、データなどがエッジサーバ間を移動するため、端末装置では、一瞬だけアプリケーションを利用できない時間が存在する。このような時間のことを、例えば、瞬断時間と称する場合がある。
【０００９】
上述した、アドレス空間の差分情報を送信する技術は、移動体端末の移動先を予測した後、移動先が確定するまでの間の差分情報を、計算機Ｄへ送信している。従って、かかる技術では、移動体端末の移動先を予測後、確定するための時間が長いと、差分情報の情報量も多くなる。差分情報の情報量が多くなればなるほど、瞬断時間は長くなる。そのため、上述した技術では、移動体端末において、アプリケーションを利用しても、低遅延の特性を活かすことができない場合がある。
【００１０】
そこで、一開示は、瞬断時間を削減させるようにした通信装置、及び通信方法を提供することにある。
【課題を解決するための手段】
【００１１】
一開示は、端末装置と通信可能な通信装置において、前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出するハンドオーバ管理部と、前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する第１のマイグレーション管理部とを備える。
【発明の効果】
【００１２】
一開示によれば、瞬断時間を削減させることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は通信システムの構成例を表す図である。
【図２】図２（Ａ）と図２（Ｂ）は通信路の設定例を表す図である。
【図３】図３は通信システムの動作例を表すシーケンス図である。
【図４】図４は通信システムの動作例を表すシーケンス図である。
【図５】図５はＶＭ起動処理の動作例を表すフローチャートである。
【図６】図６はアプリケーション登録処理の動作例を表すフローチャートである。
【図７】図７はアプリ管理表の例を表す図である。
【図８】図８はプロセス接続処理の動作例を表すフローチャートである。
【図９】図９は端末登録処理の動作例を表すフローチャートである。
【図１０】図１０はハンドオーバ処理の動作例を表すフローチャートである。
【図１１】図１１は再配置申請処理の動作例を表すフローチャートである。
【図１２】図１２は再配置可否判定処理の動作例を表すフローチャートである。
【図１３】図１３はプロセス情報送信処理の動作例を表すフローチャートである。
【図１４】図１４はエントリ登録処理の動作例を表すフローチャートである。
【図１５】図１５（Ａ）は通信路情報、図１５（Ｂ）と図１５（Ｃ）は対応表の例を夫々表す図である。
【図１６】図１６は通信システムの動作例を表すシーケンス図である。
【図１７】図１７は通信システムの動作例を表すシーケンス図である。
【図１８】図１８は代理要求処理の動作例を表すフローチャートである。
【図１９】図１９（Ａ）はＶＭの構成例、図１９（Ｂ）は対応表の例を夫々表す図である。
【図２０】図２０は通信路再生成処理と通信処理の動作例を表すフローチャートである。
【図２１】図２１（Ａ）はＶＭの構成例、図２１（Ｂ）は対応表の例を夫々表す図である。
【図２２】図２２は基地局のハードウェア構成例を表す図である。
【図２３】図２３は通信システムの構成例を表す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について説明する。なお、以下の実施例は開示の技術を限定するものではない。そして、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、本明細書に記載された用語や技術的内容は、３ＧＰＰ（Third Generation Partnership Project）やＩＥＥＥなど、規格として仕様書に記載された用語や技術的内容が適宜用いられてもよい。
【００１５】
［第１の実施の形態］
＜通信システムの構成例＞
図１は第１の実施の形態における通信システム１０の構成例を表す図である。
【００１６】
通信システム１０は、基地局装置（以下、「基地局」と称する場合がある。）２００−１，２００−２と端末装置（以下、「端末」と称する場合がある。）４００を備える。
【００１７】
基地局２００−１，２００−２は、例えば、自局の通信可能範囲に在圏する端末４００に対して無線通信を行う無線通信装置である。基地局２００−１，２００−２は、端末４００に対して、通話サービスや映像配信サービスなど、種々のサービスを提供する。
【００１８】
本第１の実施の形態においては、基地局２００−１，２００−２は、モバイルエッジコンピューティングを利用して端末４００にサービスを提供する。モバイルエッジコンピューティングは、上述したように、例えば、基地局２００−１，２００−２の近傍やその内部にサーバ装置（以下、「サーバ」と称する場合がある。）を配置させ、サーバから端末４００へ、サービスを提供できるようにした技術である。図１の例では、基地局２００−１，２００−２内に、サーバ１００−１，１００−２を含む例を表している。
【００１９】
サーバ１００−１，１００−２は、例えば、アプリケーションプログラムを実行することで、アプリケーションを実行し、端末４００へ、サービスを提供する。そのようなアプリケーションの種類としては、例えば、車（端末４００）の安全運転を支援する「安全運転支援サービス」がある。このアプリケーションを実行することで、サーバ１００−１，１００−２は、車を運転する運転手に対して、例えば、障害物によって、走行中の自動車からは見えない位置にいる歩行者の存在を通知することが可能である。基地局２００−１，２００−２内に配置されたサーバ１００−１，１００−２により、このような低遅延特性を活かしたアプリケーションを実行させることが可能となる。
【００２０】
端末４００は、基地局２００−１，２００−２と無線通信を行うことで、サーバ１００−１，１００−２から、種々のサービスの提供を受けることが可能である。
【００２１】
図１の例では、端末４００は、基地局２００−１から基地局２００−２へ接続を切り替える例を表している。このように、接続している基地局を切り替えることを、例えば、ハンドオーバと称する場合がある。ハンドオーバにより、例えば、端末４００は、継続したサービスの提供を受けることが可能となる。
【００２２】
なお、図１の例では、基地局２００−１が接続元の基地局、基地局２００−２が接続先の基地局となっている。そのため、サーバ１００−１も、端末４００から見ると移動元のサーバ（以下、「移動元サーバ」と称する場合がある。）となり、サーバ１００−２は移動先のサーバ（以下、「移動先サーバ」と称する場合がある。）となる。
【００２３】
移動元サーバ１００−１は、端末４００の移動により、サーバ１００−１が端末４００に提供しているアプリケーションに関する情報や、実行しているプロセスに関する情報などを、移動先のサーバ１００−２へ送信する。このように、移動元サーバ１００−１から移動先のサーバ１００−２へ情報などを送信することを、例えば、マイグレーション（又は再配置）と称する場合がある。マイグレーションによって、端末４００は、移動元サーバ１００−１から受けていたアプリケーションによるサービスを、移動先のサーバ１００−２から継続して受けることが可能となる。
【００２４】
なお、サーバ１００−１においてアプリケーションプログラムが実行されることで、例えば、アプリケーションが持っている機能が実行される。以下においては、「アプリケーションプログラムの実行」と「アプリケーションの実行」とを区別しないで用いる場合がある。
【００２５】
また、サーバ１００−１において、アプリケーションプログラムが実行されることで、例えば、複数のプロセス１１５−１１，１１５−１２，…が実行される。プロセス１１５−１１，１１５−１２，…は、例えば、アプリケーションプログラムの動作中のインスタンス（又はオブジェクトの実体）を表し、アプリケーションプログラムのコード、変数、状態などを含む。プロセス１１５−１１，１１５−１２，…は、アプリケーションを実行する際の種々の情報に対する処理を行う実行部分である。以下においては、「プロセスの実行」と「アプリケーションプログラムの実行」、「プロセスの実行」と「アプリケーションの実行」とを、区別しないで用いる場合がある。また、「プロセス」と「アプリケーション」とを区別しないで用いる場合もある。
【００２６】
さらに、以下においては、例えば、「プロセスが情報をメモリに保持又は記憶する」ことと、「プロセスが情報を保持する」ことは、例えば、区別しないで用いる場合がある。例えば、「プロセスがプロセスＩＤをメモリに保持する」又は「プロセスが識別子をメモリに保持する」ことを、「プロセスがプロセスＩＤを保持する」又は「プロセスが識別子を保持する」と称する場合がある。
【００２７】
＜サーバの構成例＞
図１は、サーバ１００−１，１００−２の構成例を表す図である。サーバ１００−１とサーバ１００−２は、いずれも同一構成のため、代表して、サーバ１００−１を例にして説明する。
【００２８】
サーバ１００−１は、ハンドオーバ管理部１０１−１、ホストレベルマイグレーション管理部（又は第２のマイグレーション管理部）１０２−１を備える。また、サーバ１００−１は、アプリ管理表（又はアプリ管理テーブル）１０３−１、ＶＭ（Virtual Machine：仮想マシン）管理部１０４−１、ＶＭ１０５−１１，１０５−１２，…を備える。
【００２９】
ハンドオーバ管理部１０１−１は、例えば、端末４００のハンドオーバを管理する。例えば、ハンドオーバ管理部１０１−１は、端末４００がハンドオーバを行うとき、端末４００や移動先サーバ１００−２との間で、ハンドオーバに関するメッセージなどを送受信する。
【００３０】
ホストレベルマイグレーション管理部（以下、「ホストレベル管理部」と称する場合がある。）１０２−１は、例えば、マイグレーションに関する処理を管理する。例えば、ホストレベル管理部１０２−１は、ハンドオーバ管理部１０１−１からハンドオーバ通知を入力すると、ネットワーク３００を介して、移動先サーバ１００−２のホストレベル管理部１０２−２へ、マイグレーションの申請（以下、「再配置申請」と称する場合がある。）を行う。
【００３１】
また、例えば、ホストレベル管理部１０２−１は、ＶＭ管理部１０４−１へ、マイグレーションの指示（以下、「再配置指示」と称する場合がある。）を通知する。
【００３２】
さらに、ホストレベル管理部１０２−１は、例えば、どの端末４００に対して、どのようなアプリケーションが実行されているかを管理する。例えば、ホストレベル管理部１０２−１は、ＶＭ管理部１０４−１や変換部１１１−１から通知を入力すると、アプリケーションの情報や接続対象の端末４００の情報をアプリ管理表１０３−２に登録する。
【００３３】
アプリ管理表１０３−１は、例えば、どのようなアプリケーションがどの端末４００で実行されているかを管理するテーブル（又はメモリ）である。図７は、アプリ管理表１０３−１の例を表す。詳細は動作例で説明する。
【００３４】
ＶＭ管理部１０４−１は、例えば、ＶＭ１０５−１１，１０５−１２，…を管理する。仮想マシン（ＶＭ）は、例えば、サーバ１００−１の動作をエミュレートするソフトウェアやフレームワークのことである。仮想マシンにより、例えば、サーバ１００−１のハードウェア資源を複数に分割し、各資源を別々のユーザに割り当てることで、１つのサーバ１００−１で複数のサーバを動作させるように見せかけることが可能となる。ＶＭ管理部１０４−１は、１つ１つのＶＭ１０５−１１，１０５−１２，…を起動させることが可能である。ＶＭ管理部１０４−１は、各ＶＭ１０５−１１，１０５−１２，…を起動させると、例えば、起動したことを示す起動通知をホストレベル管理部１０２−１へ通知する。
【００３５】
ＶＭ１０５−１１は、例えば、端末４００に対して割り当てられた仮想マシンであり、端末４００に対して種々のアプリケーションを提供する。
【００３６】
ＶＭ１０５−１１は、ＯＳ（Operating System）１１０−１、変換部１１１−１、対応表（又は対応テーブル）１１２−１、ＶＭレベルマイグレーション管理部（又は第１のマイグレーション管理部）１１３−１、プロセス管理部１１４−１を備える。さらに、プロセス管理部１１４−１では、複数のプロセス１１５−１１，１１５−１２，…が実行される。
【００３７】
ＯＳ１１０−１は、例えば、ＶＭ１０５−１１で実行されるプロセス１１５−１１，１１５−１２，…とハードウェアとの間のインタフェースの役割を果たす。ＯＳ１１０−１は、変換部１１１−１を介して、プロセス１１５−１１，１１５−１２間の通信を管理する。
【００３８】
変換部１１１−１は、例えば、ＯＳ１１０−１を介して、プロセス１１５−１１，１１５−１２，…間で通信を行う際に、ＯＳ１１０−１やプロセス１１５−１１，１１５−１２，…から受け取った識別子を他の識別子に変換したり、要求を代理して出力したりする。変換部１１１−１は、通信路に関する情報を表す通信路情報を、対応表１１２−１に登録し、これを利用して変換などの処理を行う。詳細は動作例で説明する。
【００３９】
なお、通信路とは、例えば、プロセス１１５−１１とプロセス１１５−１２とがＯＳ１１０−１を介して、情報の交換を行うときに、情報の交換が行われる経路のことである。詳細は後述する。例えば、プロセス１１５−１１からプロセス１１５−１２へ情報を通知するとき、このような通信路を介して、情報が通知される。
【００４０】
対応表１１２−１は、例えば、通信路の関係を表す情報を記憶するテーブル（又はメモリ）である。図１５（Ｂ）は対応表１１２−１の例を表す図である。詳細は動作例で説明する。
【００４１】
ＶＭレベルマイグレーション管理部（以下、「ＶＭレベル管理部」と称する場合がある。）１１３−１は、例えば、マイグレーション対象のプロセス１１５−１１をダンプ（又はファイル化）し、ダンプしたプロセス１１５−１１の情報などを含むプロセス情報を生成する。ＶＭレベル管理部１１３−１は、生成したプロセス情報を、移動先サーバ１００−２へ送信する。
【００４２】
プロセス管理部１１４−１は、例えば、ＶＭ管理部１０４−１からの要求に従って、各プロセス１１５−１１，１１５−１２，…を実行させる。その際、プロセス管理部１１４−１は、実行させたプロセス１１５−１１，１１５−１２，…に対して、プロセスＩＤ（Identification）を発行し、各プロセス１１５−１１，１１５−１２，…をプロセスＩＤで管理する。
【００４３】
また、プロセス管理部１１４−１は、各プロセス１１５−１１，１１５−１２，…からの要求を、変換部１１１−１へ出力したり、変換部１１１−１から受け取った情報などを、各プロセス１１５−１１，１１５−１２，…で実行させたりする。
【００４４】
このように、プロセス１１５−１１，１１５−１２，…間の通信は、例えば、プロセス管理部１１４−１により行われる。ただし、以下においては、プロセス管理部１１４−１ではなく、プロセス１１５−１１，１１５−１２，…が、そのような通信を行う実行主体であるものとして説明する。
【００４５】
＜プロセスの種類と通信路の例＞
図２（Ａ）は通信路の生成処理を表し、図２（Ｂ）は通信路を介した通信の例を表す図である。
【００４６】
本第１の実施の形態では、プロセスの種類として、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２の２つのプロセスがある。
【００４７】
ステートフルプロセス１１５−１１は、例えば、プロセスが実行中において端末４００に関する情報を示す端末情報を保持するプロセスである。例えば、サーバ１００−１において、「安全運転支援サービス」に関するアプリケーションが実行されているとき、ステートフルプロセス１１５−１１は、端末情報として、車（端末４００）の識別情報、位置、速度、方向、加速度、搭乗者数、重量などを保持する。ステートフルプロセス１１５−１１は、例えば、プロセス実行中においては、このような端末４００に関する情報を保持しているため、他のプロセス、ここでは、ステートレスプロセス１１５−１２へ、保持した端末４００に関する情報を出力することができる。
【００４８】
他方、ステートレスプロセス１１５−１２は、例えば、プロセス実行中において端末情報の入力があれば端末情報を保持し、端末情報の入力がないときは端末情報を保持しないプロセスである。ステートレスプロセス１１５−１２は、例えば、待機状態のときは端末情報を保持することはしないで、入力があると端末情報を保持し、その端末情報を用いて処理を行う。これにより、ステートレスプロセス１１５−１２は、例えば、車（又は端末４００）の移動先を予測し、移動先において衝突の可能のある歩行者がいる場合、そのような歩行者の存在を、車の運転手（又は端末４００を利用するユーザ）へ通知することが可能となる。
【００４９】
ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２とがこのような通信を行う前に、通信路の設定が行われる。
【００５０】
図２（Ａ）に示すように、ステートフルプロセス１１５−１１は、通信路の生成の際に、通信路の生成要求をＯＳ１１０−１へ出力する。ＯＳ１１０−１は、生成要求を入力すると、通信路に対する識別子（図２（Ａ）の例では、“４”）を発行し、発行した識別子をステートフルプロセス１１５−１１へ出力する。同様に、ステートレスプロセス１１５−１２も、生成要求をＯＳ１１０−１へ出力すると、ＯＳ１１０−１は、通信路に対する識別子（図２（Ａ）の例では“７”）を発行し、発行した識別子をステートレスプロセス１１５−１２へ出力する。
【００５１】
なお、識別子は、例えば、プロセス１１５−１１，１１５−１２の通信を、他のプロセス間の通信と識別する識別情報である。
【００５２】
ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２では、例えば、プロセスＩＤと通信路の名前（図２（Ａ）の例では、“tmp/fifo”）とを含む生成要求を、ＯＳ１１０−１へ出力する。ＯＳ１１０−１は、例えば、通信路の名前が共通であることから、２つのプロセス１１５−１１，１１５−１２を括り付けて管理することが可能となる。
【００５３】
なお、この通信路の名前は、例えば、各プロセス１１５−１１，１１５−１２が予め保持する（又はプロセス管理部１１４−１が予め保持する）情報である。各プロセス１１５−１１，１１５−１２，…は、プロセスＩＤとともにこの通信路の名前を含む生成要求を生成して、出力するようにしている。
【００５４】
従って、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２とは、異なる識別子が割り当てられても、ＯＳ１１０−１側の方で、２つのプロセス１１５−１１，１１５−１２を括り付けて、２つのプロセス１１５−１１，１１５−１２を１つの通信路で結合することが可能となる。
【００５５】
そして、図２（Ｂ）に示すように、ステートフルプロセス１１５−１１は、発行された識別子を用いて通信要求をＯＳ１１０−１へ出力すると、ＯＳ１１０−１は、例えば、ステートレスプロセス１１５−１２へ通信要求を出力するなどして、通信路を確立させる。以後、ステートフルプロセス１１５−１１からステートレスプロセス１１５−１２へ、ＯＳ１１０−１を介して、端末情報を通知することが可能となる。
【００５６】
＜動作例＞
図３と図４は、通信システム１０におけるシーケンス例を表す図である。
【００５７】
図３と図４に示すように、本シーケンス例は、最初に、デプロイフェーズ、次に、接続フェーズ、以降は、通信路生成フェーズ、再配置フェーズ、再接続フェーズ、通信路再生成フェーズ、最後に、通信フェーズの順番となっている。
【００５８】
これのフェーズは、例えば、マイグレーションに関するシーケンス例を表している。最初にこのマイグレーションのシーケンス例について説明する。
【００５９】
一方、通信路生成フェーズ、通信路再生成フェーズ、及び通信フェーズは、例えば、通信路の動的変換のシーケンス例を表している。図１６と図１７に、そのシーケンス例を表している。マイグレーションのシーケンス例を説明した後、この通信路の動的変換のシーケンス例について説明する。動作例は以下の順番で説明する。
＜１．マイグレーションのシーケンス例＞
＜１．１  デプロイフェーズ＞
＜１．２  接続フェーズ＞
＜１．３  再配置フェーズ＞
＜１．４  再接続フェーズ＞
＜２．通信路の動的変換のシーケンス例＞
＜２．１  通信路生成フェーズ＞
＜２．２  通信路再生成フェーズ＞
＜２．３  通信フェーズ＞
【００６０】
＜１．マイグレーションのシーケンス例＞
＜１．１  デプロイフェーズ＞
デプロイフェーズは、例えば、移動元サーバ１００−１と移動先サーバ１００−２において、アプリケーションを利用可能な状態にするフェーズである。アプリケーションとしては、「安全運転支援サービス」などがある。
【００６１】
図３に示すように、開発者がパーソナルコンピュータ（Personal Computer）（以下、「ＰＣ」と称する場合がある。）を操作することで、デプロイ要求が生成される。デプロイ要求は、移動元サーバ１００−１のＶＭ管理部１０４−１へ送信される（Ｓ１０）。デプロイ要求は、例えば、仮想マシンの生成要求（又は実行要求）である。例えば、ＰＣに代えて、開発者が移動元サーバ１００−１を操作することで、移動元サーバ１００−１においてデプロイ要求が生成されてもよい。
【００６２】
次に、ＶＭ管理部１０４−１は、ＶＭ起動処理を行い、ＶＭ１０５−１１を起動させる（Ｓ１１）。
【００６３】
図５は、ＶＭ起動処理の例を表すフローチャートである。
【００６４】
ＶＭ管理部１０４−１は、処理を開始すると（Ｓ１００）、ＶＭイメージと実行対象のアプリケーションの名前とを含む、デプロイ要求を受信する（Ｓ１０１）。ＶＭイメージは、例えば、ＶＭの構成情報を表し、具体的には、メモリやＣＰＵ（Central Processing Unit）など、どのハードウェア資源を用いてＶＭが実行されるのかを表す情報である。
【００６５】
次に、ＶＭ管理部１０４−１は、サーバ１００−１の現在の計算資源の使用状況を考慮して、デプロイ可能か否かを判定する（Ｓ１０２）。例えば、ＶＭ管理部１０４−１は、ＶＭイメージと、サーバ１００−１におけるハードウェア資源の使用状況とを比較して、ＶＭを実行するだけの資源があるか否かにより判定してもよい。
【００６６】
ＶＭ管理部１０４−１は、デプロイ可能と判定すると、端末４００と接続するプロセスを生成するＶＭを起動させる（Ｓ１０３）。これにより、例えば、図１に示すようにＶＭ１０５−１１がサーバ１００−１で起動される。
【００６７】
次に、ＶＭ管理部１０４−１は、ＶＭ１０５−１１を起動させると、ＶＭ１０５−１１を起動させたことを示し、デプロイ内容を含む起動通知を生成し、生成した起動通知を、ホストレベル管理部１０２−１へ出力する（Ｓ１０４）。デプロイ内容は、例えば、実行させたアプリケーションやＶＭなどの情報が含まれる。
【００６８】
そして、ＶＭ管理部１０４−１は、ＶＭ起動処理を終了する（Ｓ１０５）。
【００６９】
一方、ＶＭ管理部１０４−１は、Ｓ１０２において、デプロイ可能ではないと判定したとき、ＶＭを起動させることなく、デプロイフェーズの処理自体を終了してもよい。
【００７０】
図３に戻り、ＶＭ管理部１０４−１は、ＶＭ１０５−１１を起動させると（Ｓ１１）、起動通知をホストレベル管理部１０２−１へ通知する（Ｓ１２）。
【００７１】
次に、ホストレベル管理部１０２−１は、アプリケーションの登録処理を行い、アプリケーションの登録を行う（Ｓ１３）。
【００７２】
図６は、アプリケーションの登録処理の例を表すフローチャートである。
【００７３】
ホストレベル管理部１０２−１は、処理を開始すると（Ｓ１３０）、起動通知を受信し（Ｓ１３１）、起動したＶＭのＩＰ（Internet Protocol）アドレスと、アプリケーション名とを、アプリ管理表１０３−１に登録する（Ｓ１３２）。例えば、ＶＭ管理部１０４−１では、ＶＭ１０５−１１を起動させると（Ｓ１１）、ＶＭ１０５−１１に対してＩＰアドレスを割り当て、起動通知（Ｓ１２）に含める。また、ＶＭ管理部１０４−１は、デプロイ要求に含まれるアプリケーション名も、起動通知に含める。起動通知には、ＶＭ１０５−１１のＩＰアドレスと、アプリケーション名とが含まれる。ホストレベル管理部１０２−１は、起動通知から、ＶＭ１０５−１１のＩＰアドレスとアプリケーション名とを抽出して、アプリ管理表１０３−１に記憶する。
【００７４】
図７は、アプリ管理表１０３−１の構成例を表す図である。図７に示すように、アプリ管理表１０３−１は、アプリケーション名を表す「アプリ名」と、起動させたＶＭのＩＰアドレスを表す「ＶＭのＩＰアドレス」の項目が含まれる。アプリケーション登録処理により、ホストレベル管理部１０２−１は、起動通知から抽出したアプリケーション名を「アプリ名」に記憶し、起動通知から抽出したＶＭ１０５−１１のＩＰアドレスを「ＶＭのＩＰアドレス」に記憶する。
【００７５】
図６に戻り、ホストレベル管理部１０２−１は、Ｓ１３２の処理を終了すると、アプリケーション登録処理を終了する（Ｓ１３３）。
【００７６】
図３に戻り、ＶＭ管理部１０４−１により起動されたＶＭ１０５−１１（Ｓ１１）は、プロセス１１５−１１，１１５−１２を生成する（Ｓ１４）。本処理では、ＶＭ１０５−１１は、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２とを生成する。
【００７７】
次に、ＰＣは、デプロイ要求を、移動先サーバ１００−２へ送信する（Ｓ１５）。ここで、ＰＣが、デプロイ要求を、移動先サーバ１００−２へ送信するのは、例えば、以下の理由からである。
【００７８】
すなわち、端末４００が基地局２００−１に接続しているとき、ハンドオーバ先の基地局は、基地局２００−１との接続関係から、基地局２００−１に隣接する基地局が対象となる。従って、デプロイ要求の送信先は、基地局２００−１に隣接する基地局に含まれるサーバとなる。そのため、デプロイ要求は、そのような隣接基地局に含まれる他のサーバへ送信される。サーバ１００−２も、その一つとして、ＰＣはデプロイ要求を送信している。ただし、サーバ１００−２は、この段階では、移動先候補のサーバ１００−２ではあるものの、以下では、移動先サーバ１００−２として説明する。
【００７９】
図３に戻り、移動先サーバ１００−２においても、ＶＭ管理部１０４−２は、デプロイ要求を受信すると（Ｓ１５）、ＶＭ１０５−２１を起動させ（Ｓ１６、図５のＶＭ起動処理）、起動通知をホストレベル管理部１０２−２へ通知する（Ｓ１７）。そして、ホストレベル管理部１０２−２は、アプリケーションの登録処理を行い（Ｓ１８、図６のアプリケーション登録処理）、ＶＭ１０５−２１は、プロセス１１５−２１，１１５−２２，…を生成する（Ｓ１９）。
【００８０】
なお、Ｓ１４により、移動元サーバ１００−１では、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２が生成される。また、Ｓ１９により、移動先サーバ１００−２では、ステートレスプロセス１１５−２１が生成される。その理由は、例えば、以下である。
【００８１】
すなわち、端末４００に関する情報がない状態で、ＶＭ１０５−１１，１０５−１２がプロセスを生成すると、ステートレスプロセス１１５−１２が生成される。また、端末４００に関する情報がある状態で、ＶＭ１０５−１１，１０５−１２がプロセスを生成すると、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２が生成される。
【００８２】
Ｓ１４の場合、例えば、デプロイ要求に端末４００に関する情報が含まれるため、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２が生成される。一方、Ｓ１９の場合、例えば、デプロイ要求に端末４００に関する情報が含まれないため、ステートレスプロセス１１５−１２が生成され、ステートフルプロセス１１５−１１は生成されない。
【００８３】
このような理由から、図３の例では、移動元サーバ１００−１では、ステートフルプロセス１１５−１１とステートレスプロセス１１５−１２が生成され、移動先サーバ１００−２では、ステートレスプロセス１１５−１２が生成される。
【００８４】
＜１．２  接続フェーズ＞
接続フェーズへ移行すると、端末４００は、変換部１１１−１へ接続要求を送信する（Ｓ２０）。接続要求は、例えば、端末４００が基地局２００−１への接続を要求するものである。例えば、ハンドオーバ管理部１０１−１は、端末４００から送信された接続要求を受信し、これを、ホストレベル管理部１０２−１、ＶＭ管理部１０４−１を経由して、プロセス１１５−１１へ出力する。このとき、変換部１１１−１は、ＶＭ管理部１０４−１からプロセス１１５−１１へ出力される接続要求をフックする。フックとは、例えば、要求が要求先へ届く前に要求を参照したり変更したりした上で、要求を要求先へ届けることである。変換部１１１−１は、このときプロセス接続処理を行う。
【００８５】
図８は、プロセス接続処理の例を表すフローチャートである。
【００８６】
変換部１１１−１は、プロセス接続処理を開始すると（Ｓ２００）、端末４００からプロセス１１５−１１へ出力される接続要求をフックする（Ｓ２０１）。
【００８７】
次に、変換部１１１−１は、端末４００のＩＰアドレスと、プロセス１１５−１１のプロセスＩＤとを、ホストレベル管理部１０２−１へ通知する（Ｓ２０２）。
【００８８】
端末４００のＩＰアドレスは、例えば、接続要求に含まれるため、変換部１１１−１は、接続要求から端末４００のＩＰアドレスを抽出できる。
【００８９】
一方、プロセスＩＤについては、例えば、以下の処理となる。すなわち、変換部１１１−１は、接続要求を受信すると、ＯＳ１１０−１に対して、対応するプロセスＩＤを問い合わせる。ＯＳ１１０−１は、例えば、図２で説明したように、各プロセスのプロセスＩＤと識別子との対応関係を内部メモリなどに保持している。この際、ＯＳ１１０−１は、対応関係を保持することで、端末４００からの接続要求が到来するのを待ち受ける状態となる。ＯＳ１１０−１は、待ち受け状態で、変換部１１１−１からの問い合わせを受けると、待ち受けの対象となっているプロセスのうち、ステートフルプロセス１１５−１１のプロセスＩＤ（例えば、“１００”）を、変換部１１１−１へ通知する。
【００９０】
以上により、変換部１１１−１は、接続要求から抽出した端末４００のＩＰアドレスと、ＯＳ１１０−１から受け取ったプロセスＩＤと、を含む接続通知を生成し、生成した接続通知を、ホストレベル管理部１０２−１へ通知する。
【００９１】
次に、変換部１１１−１は、端末４００とプロセス１１５−１１とを接続する（Ｓ２０３）。すなわち、変換部１１１−１は、フックした接続要求を本来の送信先であるプロセス１１５−１１へ通知する。
【００９２】
そして、変換部１１１−１は、プロセス接続処理を終了する（Ｓ２０４）。
【００９３】
図３に戻り、変換部１１１−１は、プロセス接続処理によって、接続通知をホストレベル管理部１０２−１へ通知する（Ｓ２１）。ホストレベル管理部１０２−１は、接続通知を入力すると、端末登録処理を行う（Ｓ２２）。
【００９４】
図９は、端末登録処理の例を表すフローチャートである。
【００９５】
ホストレベル管理部１０２−１は、端末登録処理を開始すると（Ｓ２２０）、接続通知を受信し、接続通知から端末４００のＩＰアドレスと、プロセス１１５−１１のプロセスＩＤとを抽出する（Ｓ２２１）。
【００９６】
次に、ホストレベル管理部１０２−１は、端末４００のＩＰアドレスとプロセスＩＤとをアプリ管理表１０３−１へ登録する（Ｓ２２２）。
【００９７】
例えば、図７に示すアプリ管理表１０３−１においては、（Ｙ）の情報を登録することになる。例えば、接続通知（Ｓ２０，Ｓ２１）にはアプリケーション名も含まれている。ホストレベル管理部１０２−１は、接続通知から抽出したアプリケーション名と対応する、アプリ管理表１０３−１の「アプリ名」（図７の例では「安全運転支援サービス」）のエントリに、端末４００のＩＰアドレスとプロセスＩＤとを記憶すればよい。
【００９８】
なお、ホストレベル管理部１０２−１は、変換部１１１−１から接続通知を入力するが、接続通知に含まれるプロセスＩＤは、例えば、端末４００と接続するステートフルプロセス１１５−１１のプロセスＩＤである。従って、アプリ管理表１０３−１の「プロセスＩＤ」には、例えば、ステートフルプロセス１１５−１１のプロセスＩＤが登録される。
【００９９】
図９に戻り、ホストレベル管理部１０２−１は、アプリ管理表１０３−１への登録を終了すると、端末登録処理を終了する（Ｓ２２３）。
【０１００】
図３に戻り、変換部１１１−１では、接続通知をホストレベル管理部１０２−１へ送信後、端末４００に代理して、接続要求を、プロセス１１５−１１へ出力する（Ｓ２３）。
【０１０１】
なお、図３において、Ｓ２２とＳ２３の処理順は逆順でもよい。
【０１０２】
＜１．３  再配置フェーズ＞
通信システム１０において、通信路生成フェーズを終了すると、再配置フェーズへ移行する。再配置フェーズでは、例えば、ステートフルプロセス１１５−１１のプロセス情報についてマイグレーションが行われる。
【０１０３】
図３に示すように、端末４００は、接続元の基地局２００−１から接続先の基地局２００−２へ移動する（Ｓ３０）。このとき、移動元サーバ１００−１のハンドオーバ管理部１０１−１と、移動先サーバ１００−２のハンドオーバ管理部１０１−２は、ハンドオーバ処理を行う（Ｓ３１）。
【０１０４】
図１０は、ハンドオーバ処理の動作例を表すフローチャートである。
【０１０５】
ハンドオーバ管理部１０１−１は、ハンドオーバ処理を開始すると（Ｓ３１０）、端末４００の移動を検知する（Ｓ３１１）。移動先のハンドオーバ管理部１０１−２においても、端末４００の移動を検知する（Ｓ３１１）。例えば、端末４００は、無線区間の品質を表すＭｅａｓｕｒｅｍｅｎｔ  Ｒｅｐｏｒｔを送信するため、移動元のハンドオーバ管理部１０１−１はこれを受信することで、端末４００の移動を検知する。このとき、ハンドオーバ管理部１０１−１は、検知した端末４００の移動を、ネットワーク３００を経由して、移動先のハンドオーバ管理部１０１−２へ通知する。これにより、基地局２００−２が端末４００のハンドオーバ先の基地局となり、サーバ１００−２が移動先サーバとなる。
【０１０６】
次に、移動元サーバ１００−１と移動先サーバ１００−２のハンドオーバ管理部１０１−１，１０１−２は、ハンドオーバ処理を行う（Ｓ３１２）。例えば、ハンドオーバ管理部１０１−１，１０１−２は、ハンドオーバに関するメッセージを送受信したり、或いは、端末４００との間でハンドオーバに関するメッセージを送受信したりすることで、ハンドオーバ処理を行う。
【０１０７】
次に、移動元サーバ１００−１のハンドオーバ管理部１０１−１は、ハンドオーバ対象の端末４００のＩＰアドレスを含むハンドオーバ通知を、ホストレベル管理部１０２−１へ出力する（Ｓ３１３）。例えば、ハンドオーバ管理部１０１−１は、ハンドオーバ処理（Ｓ３１２）の際に、端末４００から受信したメッセージから、端末４００のＩＰアドレスを抽出する。ハンドオーバ管理部１０１−１は、抽出した端末４００のＩＰアドレスを含むハンドオーバ通知を生成し、ホストレベル管理部１０２−１へ出力する。
【０１０８】
そして、ハンドオーバ管理部１０１−１，１０１−２は、ハンドオーバ処理を終了する（Ｓ３１４）。
【０１０９】
図３に戻り、ハンドオーバ管理部１０１−１は、ハンドオーバ処理を終了すると、ハンドオーバ通知をホストレベル管理部１０２−１へ通知する（Ｓ３２）。
【０１１０】
ホストレベル管理部１０２−１は、ハンドオーバ通知を入力すると、再配置申請を、移動先サーバ１００−２のホストレベル管理部１０２−２へ送信する（Ｓ３３）。再配置申請は、例えば、アプリケーション（又はプロセス１１５−１１）の再配置（マイグレーション）を、移動先サーバ１００−２へ申請するものである。
【０１１１】
図１１は、再配置申請処理の動作例を表すフローチャートである。
【０１１２】
ホストレベル管理部１０２−１は、再配置申請処理を開始すると（Ｓ３３０）、ハンドオーバ通知を、ハンドオーバ管理部１０１−１から受信する（Ｓ３３１）。
【０１１３】
次に、ホストレベル管理部１０２−１は、ネットワーク３００経由で、移動先サーバ１００−２のホストレベル管理部１０２−２へ、“アプリケーション名”を含む再配置申請を送信する（Ｓ３３２）。例えば、ホストレベル管理部１０２−１は、以下の処理を行う。すなわち、ホストレベル管理部１０２−１は、ハンドオーバ通知から端末４００のＩＰアドレスを抽出する。ホストレベル管理部１０２−１は、アプリ管理表１０３−１に登録された、端末４００のＩＰアドレスに対応する“アプリケーション名”を、アプリ管理表１０３−１の「アプリ名」から読み出す。ホストレベル管理部１０２−１は、アプリ管理表１０３−１から読み出した“アプリケーション名”を含む再配置申請を生成する。ホストレベル管理部１０２−１は、生成した再配置申請を、ネットワーク３００経由で、移動先サーバ１００−２のホストレベル管理部１０２−２へ送信する。
【０１１４】
次に、ホストレベル管理部１０２−１は、ネットワーク３００経由で、移動先サーバ１００−２のホストレベル管理部１０２−２から送信された可否通知を受信する（Ｓ３３３）。可否通知は、移動先サーバのホストレベル管理部１０２−２において、再配置可否判定処理を行うことによって送信された通知である。再配置可否判定処理の詳細は後述する。なお、可否通知には、移動先サーバ１００−２で実行されるＶＭ１０５−２１のＩＰアドレスが含まれる。ホストレベル管理部１０２−１は、可否通知から、ＶＭ１０５−２１のＩＰアドレスを抽出する。
【０１１５】
次に、ホストレベル管理部１０２−１は、再配置可である場合、再配置対象のプロセス１１５−１１のプロセスＩＤと、移動先サーバ１００−２のＶＭ１０５−２１のＩＰアドレスとを含む再配置指示を生成する。そして、ホストレベル管理部１０２−１は、生成した再配置指示を、ＶＭレベル管理部１１３−１へ出力する（Ｓ３３４）。例えば、ホストレベル管理部１０２−１は、以下の処理を行う。
【０１１６】
すなわち、ホストレベル管理部１０２−１は、可否通知に含まれる情報から再配置可であることを確認すると、再配置申請を行った（又はハンドオーバを行った）端末４００に接続するプロセスのプロセスＩＤを、アプリ管理表１０３−１から取得する。図７の例の場合、再配置申請を行った「アプリ名」であって、ハンドオーバを行った端末４００の「ＩＰアドレス」に対応する「プロセスＩＤ」を、アプリ管理表１０３−１から読み出す。この「プロセスＩＤ」に記憶されるのは、例えば、上述したようにステートフルプロセス１１５−１１のプロセスＩＤである。よって、ホストレベル管理部１０２−１は、アプリ管理表１０３−１からステートフルプロセス１１５−１１のプロセスＩＤを読み出すことができる。ホストレベル管理部１０２−１は、ステートフルプロセス１１５−１１のプロセスＩＤと、可否通知から抽出した、移動先サーバ１００−２でＶＭ１０５−２１のＩＰアドレスと、を含む再配置指示を生成する。ホストレベル管理部１０２−１は、生成した再配置指示を、ＶＭレベル管理部１１３−１へ出力する。
【０１１７】
そして、ホストレベル管理部１０２−１は、再配置申請処理を終了する（Ｓ３３５）。
【０１１８】
図３に戻り、一方、移動先サーバ１００−２のホストレベル管理部１０２−２は、ネットワーク経由で再配置申請を受信すると（Ｓ３３）、再配置可否判定処理を行う。
【０１１９】
図１２は、再配置可否判定処理の例を表すフローチャートである。
【０１２０】
ホストレベル管理部１０２−２は、再配置申請処理を開始すると（Ｓ３４０）、再配置申請から“アプリケーション名”を抽出する（Ｓ３４１）。
【０１２１】
次に、ホストレベル管理部１０２−２は、現在のサーバ１００−２の計算資源の使用状況を考慮して、再配置可能か否かを判定する（Ｓ３４２）。例えば、ホストレベル管理部１０２−２は、“アプリケーション名”により示されたアプリケーションを実行するにあたり、使用可能なハードウェア資源があるか否かにより判定してもよい。この場合、ホストレベル管理部１０２−２は、例えば、一定以上のハードウェア資源があるか否かにより判定してもよい。
【０１２２】
次に、ホストレベル管理部１０２−２は、再配置可否の判定結果とデプロイフェーズで起動させたＶＭ１０５−２１のＩＰアドレスとを含む可否通知を、移動元サーバ１００−１のホストレベル管理部１０２−１へ送信する（Ｓ３４３）。例えば、移動先サーバ１００−２では、以下の処理を行う。
【０１２３】
すなわち、ＶＭ管理部１０４−２は、デプロイ要求でＶＭ１０５−２１を起動させた際に（図３のＳ１６）、ＶＭ１０５−２１のＩＰアドレスを割り当てている。そのため、ホストレベル管理部１０２−２は、ＶＭ管理部１０４−２から、ＶＭ１０５−２１のＩＰアドレスを取得できる。また、ホストレベル管理部１０２−２は、一定以上のネットワーク資源があれば、再配置可、そうでなければ、再配置不可を示す判定結果を生成する。ホストレベル管理部１０２−１は、取得したＶＭ１０５−２１のＩＰアドレスと、判定結果とを含む可否通知を生成し、生成した可否通知を、ネットワーク３００経由で、移動元サーバ１００−１のホストレベル管理部１０２−１へ送信する。
【０１２４】
図１２に戻り、そして、ホストレベル管理部１０２−２は、再配置可否判定処理を終了する（Ｓ３４４）。
【０１２５】
図３に戻り、上述したように、ホストレベル管理部１０２−１は、再配置可と表す可否通知を受信すると、再配置指示をＶＭレベル管理部１１３−１へ通知する（Ｓ３５）。この場合、ホストレベル管理部１０２−１は、再配置不可を表す可否通知を受信すると、再配置の処理を行うことなく、一連のマイグレーションに関する処理を終了してもよい。
【０１２６】
ＶＭレベル管理部１１３−１は、再配置指示を入力すると、プロセス１１５−１１をダンプする（Ｓ３６）。ダンプとは、例えば、ファイル化することである。ＶＭレベル管理部１１３−１は、ステートフルプロセス１１５−１１が保持する端末情報や、通信路情報、プロセス構成情報などを、１つのファイルとして、内部メモリに保持する。この場合、例えば、ステートフルプロセス１１５−１１が、通信路情報やプロセス構成情報を保持していないときは、ＶＭレベル管理部１１３−１は、ＯＳ１１０−１へ問い合わせて、ステートフルプロセス１１５−１１の通信路情報やプロセス構成情報を取得するようにしてもよい。ＯＳ１１０−１は、例えば、通信路情報やプロセス構成情報を、通信路作成の際（例えば図２（Ａ））やプロセス生成の際（例えば、図３のＳ１４）にこれらの情報をそれぞれ生成し、メモリなどに保持しているからである。
【０１２７】
ここで、ダンプされる端末情報としては、例えば、車（端末４００）の識別情報、位置、速度などの情報である。また、ダンプされる通信路情報は、例えば、ステートフルプロセス１１５−１１のプロセスＩＤ（例えば、“１００”）や通信路名（例えば、“tmp/fifo”）、識別子（例えば、“４”）を含む。図１５（Ａ）に通信路情報の例を示す。さらに、ダンプされるプロセス構成情報は、例えば、ステートフルプロセス１１５−１１が実行されるハードウェア資源に関する情報などを含む。
【０１２８】
図３に戻り、次に、ＶＭレベル管理部１１３−１は、プロセス情報を、移動先サーバ１００−２のＶＭレベル管理部１１３−２へ送信する（Ｓ３７）。例えば、ＶＭレベル管理部１１３−１は、内部メモリからファイル化した情報を読み出して、これらの情報をプロセス情報として、ネットワーク３００経由で、ＶＭレベル管理部１１３−２へ送信する。プロセス情報には、例えば、通信路情報、端末情報、プロセス構成情報などが含まれる。
【０１２９】
図１３は、プロセス情報送信処理の例を表すフローチャートである。
【０１３０】
ＶＭレベル管理部１１３−１は、処理を開始すると（Ｓ３７０）、再配置指示（Ｓ３５）を受信し（Ｓ３７１）、マイグレーション対象のステートフルプロセス１１５−１１をダンプする（Ｓ３７２）。
【０１３１】
そして、ＶＭレベル管理部１１３−１は、通信路情報などを含むプロセス情報を生成し、移動先サーバ１００−２のＶＭレベル管理部１１３−２へ送信し（Ｓ３７３）、一連の処理を終了する（Ｓ３７４）。
【０１３２】
図３に戻り、移動先サーバ１００−２のＶＭレベル管理部１１３−２は、プロセス情報を受信すると、対応表１１２−１にエントリを登録する（Ｓ３８）。
【０１３３】
図１４は、エントリ登録処理の例を表すフローチャートである。
【０１３４】
ＶＭレベル管理部１１３−２は、処理を開始すると（Ｓ３８０）、プロセス情報を受信する（Ｓ３８１）。
【０１３５】
次に、ＶＭレベル管理部１１３−２は、通信路情報に含まれる“プロセスＩＤ”を、対応表１１２−１の「プロセスＩＤ」、通信路情報に含まれる“識別子”を「仮想識別子」、未登録を意味する“ｎｏｎｅ”を「実識別子」に、エントリとして登録する（Ｓ３８２）。
【０１３６】
図１５（Ｂ）は、エントリ登録後の対応表１１２−２の例を表す図である。対応表１１２−２の「プロセスＩＤ」には、各プロセスのプロセスＩＤが記憶される。図１５（Ｂ）の例では、移動元サーバ１００−１で実行されたステートフルプロセスのプロセスＩＤである“１００”が記憶されている。また、移動元サーバ１００−１で実行されたステートレスプロセス１１５−１２であって、デプロイ要求で生成されたプロセス１１５−２１（図３の１５）のプロセスＩＤである“２０１”が記憶される。このステートレスプロセス１１５−２１は、例えば、移動元サーバ１００−１で実行されたステートレスプロセス１１５−１２と同じプロセスである。しかし、デプロイ要求によって、移動先サーバ１００−２において新たに生成されたプロセスであるため、移動元サーバのプロセスＩＤ“１０１”（例えば図２（Ａ））とは異なるプロセスＩＤ“２０１”となっている。
【０１３７】
「仮想識別子」には、例えば、移動元サーバ１００−１の各プロセス１１５−１１，１１５−１２が、ＯＳ１１０−１から割り当てられた識別子“４”，“８”が記憶される。これらはプロセス情報に含まれるものである。
【０１３８】
また、「実識別子」は、例えば、移動先サーバ１００−２の各プロセス１１５−２１，１１５−２２，…が、ＯＳ１１０−２から割り当てられた識別子が記憶される。プロセス情報を受信した段階では、ステートフルプロセス１１５−１１は、実際には、ＯＳ１１０−２から識別子を受け取っていないため、“ｎｏｎｅ”が記憶される。なお、ステートレスプロセス１１５−２１は、ＯＳ１１０−２から、識別子として“８”を割り当てられたので、図１５（Ｂ）では“８”が登録されている。
【０１３９】
図１４に戻り、次に、ＶＭレベル管理部１１３−２は、プロセス情報に含まれる他の情報から、ステートフルプロセス１１５−１１をリストアする（Ｓ３８３）。例えば、ＶＭレベル管理部１１３−２は、プロセス情報に含まれるプロセス構成情報に基づいて、ＶＭ１０５−２１上で、ステートフルプロセス１１５−１１をリストアする。これにより、例えば、移動先サーバ１００−２において、移動元サーバ１００−１で実行されたステートフルプロセス１１５−１１が実行される。
【０１４０】
そして、ＶＭレベル管理部１１３−２は、エントリ登録処理を終了する（Ｓ３８４）。
【０１４１】
図３に戻り、ＶＭレベル管理部１１３−２は、エントリ登録処理（Ｓ３８）を行い、ステートフルプロセス１１５−１１をリストアする（Ｓ３９）。
【０１４２】
＜１．４  再接続フェーズ＞
次に、通信システム１０は再接続フェーズへ移行する。
【０１４３】
図４に示すように、端末４００は、ハンドオーバ後の接続要求を接続先の基地局２００−２へ送信する（Ｓ５０）。移動先サーバ１００−２の変換部１１１−２は、接続フェーズと同様に、接続要求をフックし、接続通知を、ホストレベル管理部１０２−２へ通知し（Ｓ５１）、代理接続を、プロセス１１５−１１へ通知する（Ｓ５３）。変換部１１１−２は、例えば、接続フェーズと同様に、図８に示すプロセス接続処理を行うことで、端末４００と、リストアされたプロセス１１５−１１とを接続する。
【０１４４】
図４に戻り、次に、ホストレベル管理部１０２−２は、端末登録処理を行う（Ｓ５２）。ホストレベル管理部１０２−２は、例えば、接続フェーズと同様に、図９に示す端末登録処理を行い、アプリ管理表１０３−２に、端末４００のＩＰアドレスとプロセスＩＤとを登録する。移動先サーバ１００−２のアプリ管理表１０３−２においても、例えば、図７に示す、端末４００のＩＰアドレスなどの情報が登録される。
【０１４５】
＜２．通信路の動的変換のシーケンス例＞
図１６と図１７は、通信路の動的変換のシーケンス例を表す図である。
【０１４６】
＜２．１  通信路生成フェーズ＞
図１６に示すように、通信システム１０は、接続フェーズ終了後、通信路生成フェーズへ移行する。
【０１４７】
通信路生成フェーズへ移行すると、移動元サーバ１００−１のステートフルプロセス１１５−１１は、通信路の生成要求をＯＳ１１０−１へ出力する。このとき、変換部１１１−１は、生成要求をフックする（Ｓ６０）。例えば、図１に示すように、変換部１１１−１は、プロセス１１５−１１とＯＳ１１０−１との間に配置されるため、生成要求をフック可能である。
【０１４８】
図１６に戻り、次に、変換部１１１−１は、代理要求処理を行う（Ｓ６１〜Ｓ６４）。
【０１４９】
図１８は、代理要求処理の動作例を表すフローチャートである。
【０１５０】
変換部１１１−１は、代理要求処理を開始すると（Ｓ６００）、プロセス１１５−１１が出力した通信路の生成要求をフックし（Ｓ６０１）、プロセス１１５−１１に代わって、変換部１１１−１がＯＳ１１０−１に対して、通信路の生成要求を出力する（Ｓ６０２）。
【０１５１】
図１９（Ａ）は変換部１１１−１における動作例を表す図である。図１９（Ａ）に示すように、変換部１１１−１は、生成要求をフックし、代理生成要求をＯＳ１１０−１へ出力する。
【０１５２】
図１８に戻り、次に、変換部１１１−１は、ＯＳ１１０−１から生成要求の結果を入力する（Ｓ６０３）。図１９（Ａ）に示すように、変換部１１１−１は、ＯＳ１１０−１が割り当てた識別子“４”を、ＯＳ１１０−１から受け取る。
【０１５３】
図１８に戻り、そして、変換部１１１−１は、結果に含まれる“プロセスＩＤ”を対応表１１２−１の「プロセスＩＤ」に登録し、“識別子”を「仮想識別子」と「実識別子」に登録する（Ｓ６０４）。
【０１５４】
図１９（Ｂ）は、対応表１１２−１の例を表す図である。変換部１１１−１は、「プロセスＩＤ」の項目に、プロセス１１５−１１のプロセスＩＤである“１００”、「名前」の項目に、通信路の名前“/tmp/fifo”をそれぞれ記憶する。また、変換部１１１−１は、「仮想識別子」と「実識別子」の項目に、ＯＳ１１０−１が割り当てた識別子“４”を記憶する。なお、プロセスＩＤや通信路の名前は、生成要求や結果に含まれるため、変換部１１１−１はこれを利用して、プロセスＩＤと通信路の名前を対応表１１２−１に登録可能である。
【０１５５】
図１８に戻り、次に、変換部１１１−１は、ＯＳ１１０−１の代わりに、プロセス１１５−１１に対して出力する（Ｓ６０５）。図１９（Ａ）に示すように、識別子を含む結果（「代理結果」）を、プロセス１１５−１１へ出力する。
【０１５６】
なお、以上は、ステートフルプロセス１１５−１１に対する代理要求処理である。変換部１１１−１は、ステートレスプロセス１１５−１２に対しても、代理要求処理を行う。対応表１１２−１には、図１９（Ｂ）で示すように、ステートレスプロセス１１５−１２のプロセスＩＤ“２０１”や識別子“８”などが登録される。
【０１５７】
図１６に戻り、上述したように、変換部１１１−１は、生成要求を受信すると（Ｓ６０）、代理生成要求をＯＳ１１０−１へ出力し（Ｓ６１）、識別子を入力すると（Ｓ６２）、識別子を対応表１１２−１に登録する（Ｓ６３）。そして、変換部１１１−１は、識別子を、プロセス１１５−１１へ出力する（Ｓ６４）。
【０１５８】
＜２．２  通信路再生成フェーズ＞
図１６及び図１７に示すように、通信システム１０は、再接続フェーズが終了すると、通信路再生成フェーズ、又は通信フェーズへ移行する。ここでは、通信路再生フェーズへ移行するとして、以下説明する。
【０１５９】
なお、デプロイフェーズのデプロイ要求（図３のＳ１５）により、移動先サーバ１００−２のＶＭ１０５−２１では、ステートレスプロセス１１５−２１（例えば、プロセスＩＤは“２０１”）が実行されているものとする。また、再配置フェーズのリストア（Ｓ３９）により、ＶＭ１０５−２１では、ステートフルプロセス１１５−１１も実行されているものとする。
【０１６０】
図１６は、通信路再生成フェーズのシーケンス例を表し、図２０は通信路再生処理の例を表すフローチャートである。また、図２１（Ａ）は、変換部１１１−２においてどのような処理が行われるかの例を表す図である。
【０１６１】
図１６に示すように、通信路再生成フェーズへ移行すると、ステートフルプロセス１１５−１１は、通信要求をＯＳ１１０−２へ出力する（Ｓ７０）。ステートフルプロセス１１５−１１は、移動元サーバ１００−１で通信路に対する識別子をＯＳ１１０−１から取得したため、この識別子を利用して、マイグレーション後の移動先サーバ１００−２において、通信要求を出力している。
【０１６２】
図２０に示すように、変換部１１１−２は、通信路再生成処理を開始すると（Ｓ７００）、通信要求をフックし（Ｓ７０１）、通信要求に含まれる識別子と同一の「仮想識別子」のエントリ内において、「実識別子」が登録されているか否かを判別する（Ｓ７０２）。
【０１６３】
上述した再配置フェーズのエントリ登録処理（図３のＳ３８、図１４のＳ３８２）により、ＶＭレベル管理部１１３−２は、対応表１１２−２の「実識別子」に未登録を意味する“ｎｏｎｅ”を登録した。従って、変換部１１１−２は、この段階では、「実識別子」が登録されていないと判定する（Ｓ７０２でＮｏ）。
【０１６４】
他方、図２１（Ａ）に示すように、変換部１１１−２では、プロセス１１５−１１から通信要求を入力するが、通信要求に含まれる識別子（例えば“４”）は、移動元サーバ１００−１のＯＳ１１０−１が割り当てたもので、移動先のＯＳ１１０−２は割り当てた識別子ではない。
【０１６５】
変換部１１１−２は、ＯＳ１１０−２が割り当てることなく、プロセス１１５−１１から受け取った識別子を、例えば、仮想識別子として管理する。変換部１１１−２は、プロセス１１５−１１との間では、プロセス１１５−１１が識別子として把握しているものを、仮想識別子として、通信する。
【０１６６】
しかし、この段階では、プロセス１１５−１１は、実際には、移動先サーバ１００−２のＯＳ１１０−２からは、識別子の割り当てを受けていない。
【０１６７】
そこで、図２０に示すように、変換部１１１−２は、対応表１１２−２に実識別子が登録されていないと判定すると（Ｓ７０２でＮｏ）、変換部１１１−２自身が、プロセス１１５−１１に代わって、代理で、生成要求をＯＳ１１０−２へ出力する（Ｓ７０３）。図２１（Ａ）に示すように、変換部１１１−２が生成要求をＯＳ１１０−２へ出力している。
【０１６８】
図２０に戻り、次に、変換部１１１−２は、ＯＳ１１０−２から生成要求の結果を入力する（Ｓ７０４）。変換部１１１−２は、結果に含まれる識別子を抽出する。
【０１６９】
次に、変換部１１１−２は、抽出した識別子を、仮想識別子に対応する「実識別子」として、対応表１１２−２へ登録する（Ｓ７０５）。
【０１７０】
図２１（Ｂ）は、対応表１１２−２の例を表す図である。図２１（Ｂ）に示すように、変換部１１１−２は、「ｎｏｎｅ」となっていた「実識別子」の項目に、ＯＳ１１０−２から受け取った識別子“９”を記憶する。この「実識別子」は、ステートレスプロセス１１５−１２が通信要求に含めた識別子（＝仮想識別子“４”）に対応する識別子となる。
【０１７１】
以後、変換部１１１−２は、ステートフルプロセス１１５−１１から受け取った仮想識別子を、実識別子に変換して、ＯＳ１１０−２と通信し、ＯＳ１１０−２から受け取った実識別子を、仮想識別子に変換して、ステートフルプロセス１１５−１１と通信する。
【０１７２】
図２０に戻り、次に、変換部１１１−２は、要求された仮想識別子を実識別子に変換し、ＯＳ１１０−２に対して代理で通信要求を行う（Ｓ７０６）。例えば、図２１（Ａ）に示すように、変換部１１１−２は、ステートフルプロセス１１５−１１から通信要求を受け取っているので、これを、ＯＳ１１０−２へ送信する。この場合、変換部１１１−２は、通信要求に含まれる仮想識別子（例えば、“４”）を実識別子（例えば“９”）へ変換して、ＯＳ１１０−２へ出力する。
【０１７３】
次に、変換部１１１−２は、ＯＳ１１０−２から受け取った通信結果を、ＯＳ１１０−２に代わって、代理で、ステートフルプロセス１１５−１１へ出力する（Ｓ７０７）。この場合も変換部１１１−２は、ＯＳ１１０−２から受け取った通信結果に含まれる実識別子（例えば“９”）を、仮想識別子（例えば“４”）に変換し、仮想識別子を含む通信結果を、ステートフルプロセス１１５−１１へ出力する。
【０１７４】
そして、変換部１１１−２は、通信路再生成処理を終了する（Ｓ７０８）。
【０１７５】
図１６に戻り、変換部１１１−２は、通信要求を受信すると、通信路再生成フェーズでは、生成要求をＯＳ１１０−２へ出力する（Ｓ７１）。変換部１１１−２は、ＯＳ１１０−２から識別子を受け取り（Ｓ７２）、対応表１１２−２へ登録する（Ｓ７３）。
【０１７６】
次に、変換部１１１−２は、通信要求に含まれる仮想識別子を実識別子に変換し（Ｓ７４）、通信要求を代理で、ＯＳ１１０−２へ出力する（Ｓ７５）。変換部１１１−２は、結果を、ＯＳ１１０−２から受け取り、これを、プロセス１１５−１１へ出力する（Ｓ７７）。
【０１７７】
＜２．３  通信フェーズ＞
図１７は、通信フェーズのシーケンス例である。また、図２０は、通信フェーズで行われる通信処理の例を表すフローチャートも表している。
【０１７８】
通信フェーズは、対応表１１２−２に、実識別子が登録されている場合に行われるフェーズであり、通信路再生成処理が終了した後に行われるフェーズでもある。
【０１７９】
図２０に示すように、変換部１１１−２は、通信要求をフックし（Ｓ７０１）、通信要求に含まれる仮想識別子に対応する実識別子が対応表１１２−２に登録されているとき（Ｓ７０２でＹｅｓ）、要求された仮想識別子を、対応する実識別子に変換し、変換後の実識別子を含む通信要求を、代理で、ＯＳ１１０−２へ出力する（Ｓ７０６）。
【０１８０】
変換部１１１−２は、ＯＳ１１０−２から結果を受け取り、これを、プロセス１１５−１１へ出力する（Ｓ７０７）。
【０１８１】
そして、変換部１１１−１は、通信処理を終了する（Ｓ８０７）。
【０１８２】
図１７に示すように、変換部１１１−２は、通信要求を受けて（Ｓ７０）、対応する実識別子が対応表１１２−２に登録されていることを確認すると、対応表１１２−２に基づいて通信要求に含まれる仮想識別子を実識別子に変換する（Ｓ８１）。変換部１１１−２は、実識別子を含む通信要求を、プロセス１１５−１１に代理でＯＳ１１０−２へ出力する（Ｓ８２）。変換部１１１−２は、通信結果をＯＳ１１０−２から受け取り（Ｓ８３）、受け取った通信結果に含まれる実識別子を、対応表１１２−２に基づいて、仮想識別子に変換する。変換部１１１−２は、変換後の仮想識別子を含む通信結果を、プロセス１１５−１１へ出力する（Ｓ８４）。
【０１８３】
以上説明したように、移動元サーバ１００−１は、端末４００のハンドオーバが行われる前に、移動先サーバ１００−２において、ステートレスプロセス１１５−１２を実行させる（例えば図３のＳ１９）。そして、移動元サーバ１００−１は、端末４００のハンドオーバが行われた後のマイグレーションで、ステートフルプロセス１１５−１１のプロセス情報を、ステートレスプロセス１１５−１２が実行されている移動先サーバ１００−２へ送信している。
【０１８４】
このように、本第１の実施の形態では、マイグレーションの際に、移動元サーバ１００−１は、ステートレスプロセス１１５−１２のプロセス情報を移動先サーバ１００−２へ送信していない。そのため、本第１の実施の形態では、マイグレーションの際に、双方のプロセス１１５−１１，１１５−１２のプロセス情報を送信する場合と比較して、移動元サーバ１００−１が送信する送信情報の情報量を少なくすることができる。
【０１８５】
よって、本第１の実施の形態では、かかる場合と比較して、瞬断時間を削減させることが可能となる。
【０１８６】
また、本第１の実施の形態では、変換部１１１−２は、マイグレーション後、リストアされたステートフルプロセス１１５−１１との間で、仮想識別子を利用して、ＯＳ１１０−２とプロセス１１５−１１との通信を行うようにしている（例えば図１７のＳ８１）。
【０１８７】
従って、通信路の識別子を設計したライブラリを開発者が別途開発することもなく、開発者にとって、処理が容易なサーバ１００−１，１００−２を提供することも可能となる。
【０１８８】
上記第１の実施の形態では、仮想マシン（ＶＭ１０５−１１，…，１０５−２１，…）を例にして説明した。仮想マシンに代えて、コンテナ（又はコンテナ型仮想化）による場合でも、第１の実施の形態は実施可能である。仮想マシンの場合、ＣＰＵ１５１の使用資源、メモリ１５４の領域など、ＶＭ１０５−１１，…，１０５−２１，…ごとに分割されて利用される。一方、コンテナの場合、このようなハードウェア資源の分離ではなく、１つのＯＳ１１０−１，１１０−２上において、各コンテナが分離されて利用される。各コンテナにおいて、変換部１１１−１、対応表１１２−１、ＶＭレベル管理部１１３−１、プロセス１１５−１１，…、プロセス管理部１１４−１の機能が実行される。この場合、デプロイ要求（図３のＳ１０）は、例えば、ＶＭの生成要求ではなく、コンテナの生成要求となり、ＶＭレベル管理部１１３−１は、デプロイ要求を受けると、コンテナを生成することになる。そして、コンテナ上で、各プロセス１１５−１１，１１５−１２，…，１１５−２１，１１５−２２，…が実行される。
【０１８９】
また、第１の実施の形態では、ホストレベル管理部１０２−１，１０２−２とＶＭレベル管理部１１３−１，１１３−２とを分けて説明した。例えば、ＶＭレベル管理部１１３−１，１１３−２の機能は、ホストレベル管理部１０２−１，１０２−２で行われてもよい。この場合、ホストレベル管理部１０２−１，１０２−２が、アプリ管理表１０３−１に基づいて、マイグレーション対象のプロセス１１５−１を判別して、判別したプロセス１１５−１１をダンプし、ダンプした内容や通信路情報などを含むプロセス情報を送信してもよい。
【０１９０】
［その他の実施の形態］
図２２は、基地局２００−１のハードウェア構成例を表す図である。なお、基地局２００−１と基地局２００−２は同一構成のため、代表して、基地局２００−１のハードウェア構成例を表している。
【０１９１】
基地局２００−１は、ＣＰＵ１５１、ＲＯＭ（Read Only Memory）１５２、ＲＡＭ（Random Access Memory）１５３、メモリ１５４、ＩＦ（Interface）１５５、ＤＳＰ（Digital Signal Processor）１５６、及びアンテナ１５７を備える。この場合、サーバ１００−１は、ＣＰＵ１５１、ＲＯＭ１５２、ＲＡＭ１５３、メモリ１５４、ＩＦ１５５を含む。
【０１９２】
ＣＰＵ１５１は、ＲＯＭ１５２に記憶されたプログラムを読み出してＲＡＭ１５３にロードし、ロードしたプログラムを実行することで、ホストレベル管理部１０２−１、ＶＭ管理部１０４−１、ＶＭ１０５−１１，１０５−１２，…の機能を実行する。ＣＰＵ１５１は、例えば、ホストレベル管理部１０２−１、ＶＭ管理部１０４−１、ＶＭ１０５−１１，１０５−１２，…に対応する。また、ＣＰＵ１５１は、例えば、ＯＳ１１０−１、変換部１１１−１、ＶＭレベル管理部１１３−１、プロセス管理部１１４−１、プロセス１１５−１１，１１５−１２，…に対応する。さらに、メモリ１５４は、例えば、アプリ管理表１０３−１、対応表１１２−１を記憶する。
【０１９３】
なお、ＣＰＵ１５１に代えて、ＭＰＵ（Micro Processing Unit）やＤＳＰ、ＦＰＧＡ（Field Programmable Gate Array）などのプロセッサやコントローラであってもよい。
【０１９４】
図２３は、通信システム１０の構成例を表す図である。通信システム１０は、通信装置１００−１と端末装置４００、及び他の通信装置１００−２を備える。
【０１９５】
なお、通信装置１００−１は、例えば、第１の実施の形態における移動元サーバ１００−１に対応する。また、他の通信装置１００−２は、例えば、第１の実施の形態における移動先サーバ１００−２に対応する。
【０１９６】
通信装置１００−１は、ハンドオーバ管理部１０１−１と第１のマイグレーション管理部１１３−１とを備える。なお、第１のマイグレーション管理部１３１−１は、例えば、第１の実施の形態におけるＶＭレベルマイグレーション管理部１１３−１に対応する。
【０１９７】
ハンドオーバ管理部１０１−１は、端末装置４００の接続先を通信装置１００−１から他の通信装置１００−２へ切替えることを検出する。
【０１９８】
第１のマイグレーション管理部１１３−１は、切替えを検出すると、第１のプロセス１１５−２１が実行されている他の通信装置１００−２へ、第２のプロセス１１５−１１に関するプロセス情報を送信する。
【０１９９】
第１のプロセス１１５−２１は、プロセス実行中において端末装置４００に関する情報を示す端末情報の入力があれば端末情報をメモリに保持し、端末情報の入力がないときは端末情報をメモリに保持しないプロセスである。また、第２のプロセスは、プロセス実行中において端末情報をメモリに保持するプロセスである。
【０２００】
従って、通信装置１００−１は、第１及び第２のプロセスのプロセス情報ではなく、第２のプロセスのプロセス情報を他の通信装置１００−２へ送信している。よって、通信装置１００−１では、２つのプロセス１１５−１１，１１５−２１に関するプロセス情報を送信する場合と比較して、送信情報量を少なくさせることが可能となる。これにより、例えば、マイグレーションによりプロセス情報の再配置が行われるとき、２つのプロセス１１５−１１，１１５−２１のプロセス情報を送信する場合と比較して、プロセス情報の送信によって生じるアプリケーションの瞬断時間を短縮させることが可能となる。
【０２０１】
以上まとめると、付記のようになる。
【０２０２】
（付記１）
端末装置と通信可能な通信装置において、
前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出するハンドオーバ管理部と、
前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する第１のマイグレーション管理部と
を備えることを特徴とする通信装置。
【０２０３】
（付記２）
前記第１のマイグレーション管理部は、前記通信装置において実行されているアプリケーションに関する情報を記憶するアプリケーション管理テーブルに基づいて、前記プロセス情報を送信することを特徴とする付記１記載の通信装置。
【０２０４】
（付記３）
前記第１のマイグレーション管理部は、前記第２のプロセスと前記第１のプロセスとが通信を行う際の通信路に関する通信路情報を含む前記プロセス情報を送信する付記１記載の通信装置。
【０２０５】
（付記４）
前記第１のマイグレーション管理部は、前記第２のプロセスが前記第１のプロセスと通信を行う際に前記メモリに記憶した前記通信路情報を前記メモリから読み出して、前記通信路情報を含む前記プロセス情報を送信する付記３記載の通信装置。
【０２０６】
（付記５）
前記通信路情報は、前記第２のプロセスの識別情報と、前記通信路の識別情報を含むことを特徴とする付記４記載の通信装置。
【０２０７】
（付記６）
前記アプリケーション管理テーブルは、前記端末装置の識別情報と、前記端末装置に対して前記アプリケーションを実行する前記第２のプロセスの識別情報とを記憶し、
更に、前記ハンドオーバ管理部が前記端末装置の切替えを検出したときに出力した切替え通知を入力し、該切替え通知に含まれる前記端末装置の識別情報に基づいて、前記第２のプロセスの識別情報を、前記アプリケーション管理テーブルから読み出し、前記端末装置の識別情報と前記第２のプロセスの識別情報とを含む再配置指示を出力する第２のマイグレーション管理部を備え、
前記第１のマイグレーション管理部は、前記再配置指示に従って、前記プロセス情報を送信することを特徴とする付記２記載の通信装置。
【０２０８】
（付記７）
更に、仮想マシンの生成要求を受信する仮想マシン管理部と、
前記端末装置から送信された基地局装置への接続要求を受信する変換部とを備え、
前記第２のマイグレーション管理部は、前記仮想マシン管理部から前記生成要求の受信により前記仮想マシンを起動したことを示す起動通知を入力したとき、前記生成要求に含まれるアプリケーション名を前記アプリケーション管理テーブルに記憶し、前記変換部から前記接続要求に対する接続通知を入力したとき、前記接続通知に含まれる前記アプリケーション名に基づいて、前記接続通知に含まれる前記端末の識別情報と前記第２のプロセスの識別情報とを、前記アプリケーション管理テーブルに記憶することを特徴とする付記６記載の通信装置。
【０２０９】
（付記８）
前記変換部は、前記第２のプロセス宛の前記接続要求を受信したとき、前記第２のプロセスが前記第１のプロセスと通信を行うときにオペレーティングシステムが生成した前記第２のプロセスの識別情報と前記第１のプロセスの識別情報との対応関係に基づいて、前記オペレーティングシステムから前記第２のプロセスの識別情報を入力し、該第２のプロセスの識別情報と、前記接続要求から抽出した前記端末の識別情報と前記アプリケーション名とを含む前記接続通知を、前記第２のマイグレーション管理部へ出力することを特徴とする付記７記載の通信装置。
【０２１０】
（付記９）
前記変換部は、前記接続要求を前記第２のプロセスへ出力することを特徴とする付記８記載の通信装置。
【０２１１】
（付記１０）
前記第２のマイグレーション管理部は、前記切替え通知を入力したとき、前記他の通信装置へ、前記第２のプロセスで前記端末装置に対して実行されるアプリケーションの再配置を申請する再配置申請を、前記他の通信装置へ送信し、前記再配置申請に応答する可否通知を前記他の通信装置から受信し、前記可否通知に含まれる再配置申請に対する可否結果に応じて、前記再配置指示を出力することを特徴とする付記６記載の通信装置。
【０２１２】
（付記１１）
更に、対応テーブルと、
前記第２のプロセスからオペレーティングシステム宛の通信路の生成要求を入力し、前記第２のプロセスに代わって前記生成要求を前記オペレーティングシステムへ出力し、前記オペレーティングシステムから識別子を入力し、該識別子を対応テーブルに記憶し、該記識別子を前記オペレーティングシステムに代わって前記第２のプロセスへ出力する変換部と
を備えることを特徴とする付記１記載の通信装置。
【０２１３】
（付記１２）
前記変換部は、前記対応テーブルの仮想識別子と実識別子のエントリに、前記識別子を記憶することを特徴とする付記１１記載の通信装置。
【０２１４】
（付記１３）
端末装置と通信可能な通信装置において、
前記端末装置の接続先を他の通信装置から前記通信装置への切替えることを検出するハンドオーバ管理部と、
プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスを実行しているとき、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を受信する第３のマイグレーション管理部と
を備えることを特徴とする通信装置。
【０２１５】
（付記１４）
更に、第１の識別子と該第１の識別子に対応する第２の識別子とを記憶する対応テーブルと、
変換部とを備え、
前記変換部は、前記通信装置で実行される前記第２のプロセスからオペレーティングシステム宛の通信要求を入力すると、前記通信要求に含まれる識別子を前記第１の識別子とし、前記識別子を、前記第１の識別子に対応する前記第２の識別子に変換し、変換後の前記第２の識別子を含む前記通信要求を前記オペレーティングシステムへ出力し、前記オペレーティングシステムから通信結果を入力すると、前記通信結果に含まれる前記第２の識別子を前記第１の識別子に変換し、変換後の前記第１の識別子を含む前記通信結果を、前記第２のプロセスへ出力することを特徴とする付記１３記載の通信装置。
【０２１６】
（付記１５）
更に、第１の識別子を記憶する対応テーブルと、変換部とを備え、
前記変換部は、前記第２のプロセスからオペレーティングシステム宛の通信要求を入力し、前記通信要求に含まれる識別子を前記第１の識別子とし、前記第１の識別子に対応する第２の識別子が前記対応テーブルに記憶されていないとき、通信路の生成要求を前記オペレーティングシステムへ出力し、前記オペレーティングシステムから識別子を入力すると、該識別子を前記第１の識別子に対応する前記第２の識別子として前記対応テーブルに記憶し、前記第２のプロセスに代わって、前記第２の識別子を用いて通信要求をオペレーティングシステムへ出力し、前記オペレーティングシステムから入力した通信結果に含まれる前記第２の識別子を前記第１の識別子に変換して、前記通信結果を前記第２のプロセスへ出力することを特徴とする付記１３記載の通信装置。
【０２１７】
（付記１６）
更に、対応テーブルを備え、
前記第３のマイグレーション管理部は、前記プロセス情報を受信したとき、前記プロセス情報に含まれる通信路の識別子を、前記対応テーブルの第１の識別子として前記対応テーブルに記憶し、前記第１の識別子に対応する第２の識別子は未登録を示す情報を前記対応テーブルに記憶することを特徴とする付記１３記載の通信装置。
【０２１８】
（付記１７）
前記端末情報は、前記端末装置の識別情報、位置、速度、方向を含むことを特徴とする付記１記載の通信装置。
【０２１９】
（付記１８）
ハンドオーバ管理部と、第１のマイグレーション管理部とを有し、端末装置と通信可能な通信装置における通信方法であって、
前記ハンドオーバ管理部により、前記端末装置の接続先を前記通信装置から他の通信装置への切替えることを検出し、
前記第１のマイグレーション管理部により、前記切替えを検出すると、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスが実行されている前記他の通信装置へ、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を送信する
ことを特徴とする通信方法。
【０２２０】
（付記１９）
ハンドオーバ管理部と、第３のマイグレーション管理部とを有し、端末装置と通信可能な通信装置における通信方法であって、
前記ハンドオーバ管理部により、前記端末装置の接続先を他の通信装置から前記通信装置への切替えることを検出し、
前記第３のマイグレーション管理部により、プロセス実行中において前記端末装置に関する情報を示す端末情報の入力があれば前記端末情報をメモリに保持し、前記端末情報の入力がないときは前記端末情報を前記メモリに保持しない第１のプロセスを実行しているとき、プロセス実行中において前記端末情報を前記メモリに保持する第２のプロセスに関するプロセス情報を受信する
ことを特徴とする通信方法。
【符号の説明】
【０２２１】
１０：通信システム                    １００：サーバ
１００−１：移動元サーバ              １００−２：移動先サーバ
１０１−１，１０１−２：ハンドオーバ管理部
１０２−１，１０２−２：ホストレベルマイグレーション管理部
１０３−１，１０３−２：アプリ管理表
１０４−１，１０４−２：ＶＭ管理部    
１０５−１１，１０５−１２，…，１０５−２１，１０５−２２，…：ＶＭ
１１０−１，１１０−２：ＯＳ          １１１−１，１１１−２：変換部
１１２−１，１１２−２：対応表
１１３−１，１１３−２：ＶＭレベルマイグレーション管理部
１１４−１，１１４−２：プロセス管理部
１１５−１１，１１５−１２，…，１１５−２１，１１５−２２，…：プロセス
１１５−１１：ステートフルプロセス    １１５−１２：ステートレスプロセス
１５１：ＣＰＵ                        ２００−１，２００−２：基地局装置
３００：ネットワーク                  ４００：端末
【図１】
2019075710.tif 000003
【図２】
2019075710.tif 000004
【図３】
2019075710.tif 000005
【図４】
2019075710.tif 000006
【図５】
2019075710.tif 000007
【図６】
2019075710.tif 000008
【図７】
2019075710.tif 000009
【図８】
2019075710.tif 000010
【図９】
2019075710.tif 000011
【図１０】
2019075710.tif 000012
【図１１】
2019075710.tif 000013
【図１２】
2019075710.tif 000014
【図１３】
2019075710.tif 000015
【図１４】
2019075710.tif 000016
【図１５】
2019075710.tif 000017
【図１６】
2019075710.tif 000018
【図１７】
2019075710.tif 000019
【図１８】
2019075710.tif 000020
【図１９】
2019075710.tif 000021
【図２０】
2019075710.tif 000022
【図２１】
2019075710.tif 000023
【図２２】
2019075710.tif 000024
【図２３】
2019075710.tif 000025