以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、従来技術を説明するための説明図である。図1に示す従来技術では、WAN(Wide Area Network)10と、PGW(Packet data network Gateway)20と、複数のDPI(Deep Packet Inspection)40と、複数のMEC(Mobile Edge Computing)50と、複数のeNB(evolved NodeB)60とが図1に示すように配置される。PGW20は、WAN10と接続するゲートウェイとして機能する。DPI40は、移動体通信網を流れるパケットデータの内容を解析する。
図1に示す従来技術では、UE70が一のeNB60から他のeNB60にハンドオーバした場合であっても、UE70のアプリケーションのセッション情報を維持することを目的とし、UE70とUE70を収容するMEC50との間のセッションを終端し、UE70側のアプリケーションのセッション情報を保持するセッション維持Proxy90がUE70に対して設定され、UE70が移動して新たなMEC50に収容された場合、当該UE70の移動に追従して、当該UE70に対し設定されていたセッション維持Proxy90のセッションの移動処理が実行されることで、新たなMEC50に収容されたUE70に対しセッション維持Proxy90が設定される。
図2は、図1に示す従来技術の課題を説明するための説明図である。図1に示す従来技術では、UE70が移動して新たなMEC50に収容された場合にセッションの移動処理が実行されることになるが、例えば、UE70を保持するユーザが電車等に乗っている場合等、連続でハンドオーバが発生する状況では、セッションの移動処理が間に合わず、このような状況に対応しきれない。この点、LTEネットワークよりもセルの大きさが小さい5Gネットワークにおいて、より顕著になる。
また、セッションの移動処理が行われたとしても、アプリケーション52によって利用されていたUE70のユーザの個人データ54はコピーされず、ハンドオーバ後に個人データ54を利用することができなくなる。例えば、アプリケーション52がゲームアプリであり、個人データ54がゲームのセーブデータである場合に、ハンドオーバ後に、セーブデータを利用できなくなるおそれがあり、ユーザの利便性を著しく低下させ得る。
また、UE70のユーザによって利用されるアプリケーション52の種類は膨大であり、複数のMEC50のそれぞれがすべての種類のアプリケーション52を有しているとは限らない。そのため、セッションの移動処理が行われたとしても、移動前にUE70が利用していたアプリケーション52と同じアプリケーション52が移動後のMEC50になければ、UE70のユーザは、継続してそのアプリケーション52を利用することができなくなる。
また、移動前にUE70が利用していたサービスが、移動後のMEC50に収容されていない場合で、UE70がそのサービスの利用を希望する場合であっても、従来技術においては、MEC50のサービスの配置方法が明確になっておらず、また、仮にMEC50においてそのサービスを提供できる場合であっても、MEC50においてそのサービスを起動するシーケンス(時間)が必要になってしまう。
本実施形態に係るシステム100は、このような課題の解決に貢献する技術を提供する。
図3は、システム100の一例を概略的に示す。システム100は、MECFar200及び複数のMECNear300を含む。MECNear300は、いわゆるエッジ側に配置され、アプリケーションによるサービスをUE500に提供する。MECNear300は、いわゆるエッジ側のMECサーバであってよい。MECサーバは、サービス提供サーバの一例であってよい。MECFar200は、いわゆるコア側に配置され、複数のMECNear300を制御する。MECFar200は、いわゆるコア側のMECサーバであってよい。MECNear300は、MECFar200よりもUE500の近くに位置し、MECFar200は、MECNear300よりもUE500の遠くに位置する。
MECFar200は、制御装置の一例であってよい。MECNear300は、処理装置の一例であってよい。図3では、複数のMECNear300の一例として、MECNear301及びMECNear302を図示しているが、MECNear300の数はこれに限らず、任意の数であってよい。
UE500は、ユーザ端末の一例であってよい。ユーザ端末は、スマートフォン等の携帯電話であってよく、また、タブレット端末及びPC(Personal Computer)等であってもよい。なお、ユーザ端末は、いわゆるIoT(Internet of Thing)デバイスであってもよい。IoTデバイスとしては、各種センサ及び各種アクチュエータ等が例示できる。ユーザ端末は、車両、船舶及びドローン等に搭載された通信モジュールであってもよい。ユーザ端末は、いわゆるIoE(Internet of Everything)に該当するあらゆるものを含み得る。
MECFar200は、複数のMECNear300とバックホール110を介して通信する。図3では、1つのMECFar200を図示しているが、MECFar200の数は1つに限らず、複数のMECFar200が配置されてもよい。例えば、複数のMECFar200が地域毎に配置され、各地域内の複数のMECNear300を制御する。
MECNear300は、eNB120に対応して配置される。eNB120に対応して配置されるとは、eNB120のセルに在圏するUE500に対してアプリケーションによるサービスを提供すべく、eNB120に接続されることであってよい。MECNear300は、複数のeNB120に対応して配置されてもよい。
MECNear300は、eNB120の近傍に配置されてよい。eNB120の近傍に配置されるとは、例えば、eNB120との距離が予め定められた距離以内に配置されることである。また、eNB120の近傍に配置されるとは、eNB120との通信距離が予め定められた通信距離以内に配置されることであってもよい。MECNear300は、例えば、eNB120の近傍であって、必要な電力を受給できる場所に配置される。
図3では、MECNear301がeNB121に対応して配置され、MECNear302がeNB122に対応して配置されている場合を例示している。図3は、MECNear301に接続されているeNBが、eNB121のみである場合を示しているが、これに限らず、MECNear301には複数のeNBが接続されていてもよい。MECNear302についても同様である。
図3では、MECNear301とeNB121とが接続され、MECNear301及びeNB121のそれぞれがバックホール110と接続されている例を示しているが、これに限らない。MECNear301とバックホール110とが接続されずに、MECNear301がeNB121を介してバックホール110と通信するように構成されてもよい。また、eNB121とバックホール110とが接続されずに、eNB121がMECNear301を介してバックホール110と通信するように構成されてもよい。MECNear302及びeNB122についても同様である。
システム100は、MECMaster400を含んでよい。MECMaster400は、複数のMECNear300に対してアプリケーションを配信する。MECMaster400は、例えば、アプリケーション開発者及びアプリケーション運用者等からAPI(Application Programming Interface)によるリクエストを受けて、MECFar200及びMECNear300にアプリケーションを展開する。なお、MECFar200が、MECFar200の役割に加えて、MECMaster400の役割を果たしてもよい。図3では、1つのMECMaster400を図示しているが、MECMaster400の数は1つに限らず、複数のMECMaster400が配置されてもよい。
本実施形態に係るシステム100において、MECFar200は、例えば、MECNear300に展開するアプリケーションを稼働した状態で待ち受ける。UE500は、アプリケーションを利用する場合、MECFar200に対してアプリケーションの利用要求を送信してよい。利用要求には、UE500の情報が含まれる。UE500の情報は、例えば、IMSI(International Mobile Equipment Identifier)及びIMEI(International Mobile Equipment Identifier)等の識別情報であってよい。なお、UE500の情報は、これに限らず、UE500を識別可能であればどのような情報であってもよい。
MECFar200は、利用要求に含まれるUE500の情報を用いて、位置情報サーバ140からUE500の位置情報を受信してよい。そして、MECFar200は、UE500の位置情報に基づいて、複数のMECNear300から、アプリケーションによるサービスをUE500に提供する提供処理装置を決定する。MECFar200は、例えば、UE500が在圏しているeNB120に対応するMECNear300を、提供処理装置として決定する。なお、MECFar200は、UE500からアクセス可能なMECNear300のうち、要求されたアプリケーションによるサービスをUE500に対して提供可能なMECNear300を提供処理装置として決定するようにしてもよい。
本実施形態に係るMECFar200は、さらに、複数のMECNear300から、提供処理装置に対応する対応処理装置を決定する。提供処理装置に対応するとは、例えば、提供処理装置からアプリケーションによるサービスの提供を受けているUE500がハンドオーバする可能性があるeNB120に対応することである。MECFar200は、例えば、UE500がハンドオーバする可能性があるeNB120に対応するMECNear300を、対応処理装置として決定する。また、提供処理装置に対応するとは、例えば、提供処理装置からアプリケーションによるサービスの提供を受けているUE500が在圏しているeNB120に隣接するeNB120に対応することである。MECFar200は、例えば、UE500が在圏するeNB120に隣接するeNB120に対応するMECNear300を、対応処理装置として決定する。MECFar200は、UE500が在圏するeNB120に隣接するeNB120が複数存在する場合、当該複数のeNB120のそれぞれに対応するMECNear300を、対応処理装置として決定してよい。
図3に示す例では、UE500がeNB121に在圏しており、MECFar200は、eNB121に対応するMECNear301を提供処理装置として決定する。また、MECFar200は、eNB121に隣接するeNB122に対応するMECNear302を、対応処理装置として決定する。一のeNBに隣接するeNBとは、基地局設計上、一のeNBに隣接して配置されたeNBであってよい。また、一のeNBに隣接するeNBとは、一のeNBのセルを出たUE500が、他のセルに入ることなく、次に入るセルを形成するeNBであってもよい。
MECFar200は、決定した提供処理装置及び対応処理装置にアプリケーションを送信するよう制御する。MECFar200は、例えば、自らがアプリケーションを提供処理装置及び対応処理装置に送信する。また、MECFar200は、MECMaster400に、提供処理装置及び対応処理装置に対してアプリケーションを送信させてもよい。このように、提供処理装置に加えて対応処理装置にもアプリケーションを送信することによって、UE500のハンドオーバ時のアプリケーションへのアクセスの継続性を担保することができる。
本実施形態に係るシステム100において、アプリケーションによって利用されるデータは、MECFar200とMECNear300とに分散して配置されてよい。例えば、MECFar200は、アプリケーションによって利用されるデータのうち、低遅延が要求されないデータを格納する。MECNear300は、低遅延が要求されないデータについては、MECFar200に格納されているデータを参照してよい。また、アプリケーションによって利用されるデータのうち、低遅延が要求されるデータは、提供処理装置及び対応処理装置に配置される。当該低遅延が要求されるデータは、MECMaster400又はMECNear300から、提供処理装置及び対応処理装置に送信されてよい。なお、アプリケーションによって利用されるデータのうち低遅延が要求されないデータと、低遅延が要求されるデータとは、アプリケーション開発者、アプリケーション運用者、及びMECFar200の管理者等によって予め定められてよい。
アプリケーションによって利用されるデータのすべてを提供処理装置及び対応処理装置に配置すれば、UE500の通信の低遅延を図ることができる。しかし、例えば、提供処理装置に格納されているデータが更新された場合、MECFar200は、その更新を対応処理装置のデータに反映しなければならなくなる。それに対して、本実施形態に係るMECFar200によれば、低遅延が要求されるデータを提供処理装置及び対応処理装置に配置することによって、要求される低遅延を実現するとともに、低遅延が要求されないデータをMECFar200が格納して提供処理装置及び対応処理装置に参照させることによって、同期が必要なデータの量を適切に低減させることができる。
また、本実施形態に係るシステム100において、セッション情報等のUE500が継続的に利用する必要のあるデータについては、ハンドオーバ前にUE500が保持しておき、ハンドオーバの直後に、UE500が対応処理装置に送信してよい。UE500は、例えば、提供処理装置と対応処理装置とで共有する共有鍵を用いて、データを暗号化して保持しておき、ハンドオーバの直後に、暗号化データを対応処理装置に送信してもよい。対応処理装置は、共有鍵を用いて暗号化データを復号可能である。このように、セッション情報等をUE500が保持しておき、ハンドオーバ後に対応処理装置に送信する構成を採用することにより、UE500のハンドオーバに対して、体験の継続性を担保することができる。
図4は、システム100の処理の流れの一例を概略的に示す。ここでは、UE500がeNB121に在圏しており、UE500のユーザが利用を希望するアプリケーションを、MECFar200が稼働済みである状態を開始状態とし、UE500に対してサービスの提供が開始されるまでの処理の流れを説明する。
ステップ(ステップをSと省略して記載する場合がある。)102では、UE500が、MECFar200に対してアプリ利用要求を送信する。S104では、MECFar200が、アプリ利用要求に対応する応答を行う。
S106では、MECFar200が、S102において受信した利用要求に含まれるUE500の情報を位置情報サーバ140に送信する。S108では、位置情報サーバ140が、UE500の位置情報をMECFar200に送信する。MECFar200は、受信した位置情報に基づいて、提供処理装置及び対応処理装置を決定する。ここでは、MECNear301を提供処理装置として決定し、MECNear302を対応処理装置として決定したものとして説明を続ける。
S110では、MECFar200が、MECNear301及びMECNear302にアプリケーションを展開するよう、MECMaster400に指示する。S112では、MECMaster400が、S110において受信した指示に従って、アプリケーションをMECNear301及びMECNear302に展開する。
S114では、UE500と、提供処理装置であるMECNear301との間で、アプリケーションによるサービスの利用が開始される。このとき、UE500の宛先はMECFar200のままであってよく、MECFar200宛のパケットをフィルタリングすることによって、MECNear301が代理返答するような構成としてよい。
図5は、システム100の処理の流れの一例を概略的に示す。ここでは、図4に示す処理によってUE500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態とし、UE500がeNB121からeNB122にハンドオーバした場合の処理の流れを説明する。
S202では、UE500が、eNB122にハンドオーバする。S204では、MECNear302が、予め受信して格納していたアプリケーションによって、UE500に対してサービスを提供する。このとき、UE500の宛先はMECFar200のままであってよく、MECFar200宛のパケットをフィルタリングすることによって、MECNear302が代理返答するような構成としてよい。
S206では、モバイルネットワークの情報を取得するコアノード150が、UE500がeNB122にハンドオーバしたことを検出して、UE500の移動をMECMaster400に報告する。コアノード150は、例えば、バックホール110に接続されているMMEから、UE500がeNB122にハンドオーバしたことを知得する。コアノード150は、MMEであってもよい。
S208では、MECMaster400が、MECNear302に対応するeNB122に隣接するeNBに対応するMECNear300に、アプリケーションを展開する。S210では、MECMaster400が、MECNear301に、アプリケーションおよびアプリケーションによって利用されるデータの削除を指示する。MECMaster400は、MECNear301がUE500に対して、当該アプリケーションによるサービスの提供を再開しないと判定した場合に、MECNear301に、当該削除を指示するようにしてもよい。これにより、UE500へのアプリケーションによるサービスの提供を完了したMECNear301のデータ利用領域を適切に解放することができる。
図6は、システム100の処理の流れの一例を概略的に示す。ここでは、図4に示す処理によってUE500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態として説明する。
S302では、MECNear301とMECNear302との間で共通鍵を共有する。共通鍵の共有は、S302よりも前の任意のタイミングで行われてもよい。例えば、MECNear301は、複数のMECNear300との間で予め共通鍵を共有する。
S304では、MECNear301が、UE500がハンドオーバした後即時に利用するデータを、S302において共有した共通鍵で暗号化する。S306では、MECNear301が、暗号化データをUE500に送信する。
S308では、UE500が、MECNear302に対応するeNB122にハンドオーバする。S310では、UE500が、S306において受信した暗号化データを、ハンドオーバしたeNB122に対応するMECNear302に送信する。UE500は、eNB122を介して、暗号化データをMECNear302に送信してよい。
S312では、MECNear302が、S302において共有した共通鍵で、S310において受信した暗号化データを復号化する。S314では、UE500が、MECNear302からアプリケーションによるサービスを受ける。MECNear302は、S312において復号化したデータを用いて、UE500に対してサービスを提供してよい。S314では、MECNear302とMECFar200との間で、即時性の低いデータの同期が行われる。
S304において暗号化されるデータは、任意のデータであってよい。例えば、アプリケーションがゲームのアプリである場合、当該データは、セーブデータであってよい。また、例えば、アプリケーションが3D画像の編集アプリである場合、当該データは、編集中の3D画像であってよい。
このようなデータは、UE500が処理するにはデータ容量が大き過ぎる場合があり、UE500では処理できなかったり、処理速度が極端に低下したりしてしまうので、UE500側では端末操作と映像描画だけを行い、データ処理をMECNear300側が行うことで処理が分散される場合がある。図6に示す例において、MECNear301とMECNear302との間で適切にデータを受け渡すことができれば、継続性を担保することができるが、適切に受け渡すことが難しい場合がある。例えば、eNB121のセルとeNB122のセルとの間に、トンネル等の圏外エリアが存在する場合、MECNear301に対応する対応処理装置としてMECNear302を決定することが難しい場合がある。データの受け渡しが適切に行わなければ、UE500のユーザはサービスを継続的に利用することができなくなる。
それに対して、図6に示すような処理を行うことによって、例えば、UE500が圏外エリアに移動する前に、MECNear301がeNB121を介してUE500に暗号化データを送信し、トンネル等の圏外エリアを抜けた後にeNB122にハンドオーバしたUE500が、eNB122に対応するMECNear302に暗号化データを送信することによって、サービスの継続性を担保することができる。
図7は、MECFar200の機能構成の一例を概略的に示す。MECFar200は、格納部202、受信部204、利用要求取得部206、処理装置決定部210、移動方向取得部212、送信制御部220、送信部224、及び同期処理部230を備える。なお、MECFar200がこれらのすべての構成を備えることは必須とは限らない。
格納部202は、各種データを格納する。格納部202は、複数のMECNear300の情報を格納する。MECNear300の情報は、当該MECNear300に対応する無線基地局の情報を含んでよい。MECNear300の情報は、当該MECNear300に対応する他のMECNear300の情報を含んでよい。例えば、当該情報として、MECNear300に対応する無線基地局に隣接する無線基地局に対応するMECNear300の情報を含む。
MECNear300の情報は、MECNear300の位置を示す位置情報を含んでよい。MECNear300の情報は、MECNear300の機器性能の情報を含んでよい。MECNear300の情報は、MECNear300が実行可能なアプリケーションの情報を含んでよい。
受信部204は、各種データを受信する。受信部204は、受信したデータを格納部202に格納する。受信部204は、例えば、MECMaster400からアプリケーションを受信する。また、受信部204は、例えば、MECMaster400から、アプリケーションによって利用されるデータを受信する。
格納部202は、受信部204が受信したアプリケーションを格納する。格納部202は、アプリ格納部の一例であってよい。格納部202は、受信部204が受信したアプリケーションによって利用されるデータを格納する。格納部202は、データ格納部の一例であってよい。アプリケーションによって利用されるデータは、低遅延が要求されるデータと、低遅延が要求されないデータとが含まれてよい。格納部202は、アプリケーションによって利用されるデータのうち、低遅延が要求されるデータと、低遅延が要求されないデータとを識別可能に格納してよい。
利用要求取得部206は、ユーザ端末によって送信されたアプリケーションの利用要求を取得する。利用要求には、ユーザ端末の情報が含まれる。ユーザ端末の情報は、ユーザ端末の識別情報を含んでよい。
処理装置決定部210は、利用要求取得部206が利用要求を取得したことに応じて、複数のMECNear300から、提供処理装置及び対応処理装置を決定する。処理装置決定部210は、利用要求取得部206に含まれるユーザ端末の情報を位置情報サーバ140に送信して、位置情報サーバ140からユーザ端末の位置情報を受信し、当該位置情報に基づいて、提供処理装置及び対応処理装置を決定してよい。
処理装置決定部210は、例えば、ユーザ端末の位置情報によって特定される、ユーザ端末が在圏している無線基地局に対応するMECNear300を、提供処理装置として決定する。処理装置決定部210は、ユーザ端末からアクセス可能なMECNear300が複数存在する場合、当該複数のMECNear300のうち、ユーザ端末に最も近いMECNear300を提供処理装置として決定してよい。また、処理装置決定部210は、当該複数のMECNear300のうち、ユーザ端末が利用することを要求しているアプリケーションを実行可能なMECNear300を特定し、特定したMECNear300のうち、最もユーザ端末に近いMECNear300を提供処理装置として決定してもよい。
また、処理装置決定部210は、提供処理装置に対応する1又は複数のMECNear300を、対応処理装置として決定する。処理装置決定部210は、提供処理装置に対応する無線基地局に在圏しているユーザ端末がハンドオーバする可能性がある無線基地局に対応するMECNear300を、対応処理装置として決定してよい。処理装置決定部210は、通信端末が在圏している無線基地局に隣接する無線基地局に対応するMECNear300を、対応処理装置して決定してよい。
移動方向取得部212は、ユーザ端末の移動方向を取得する。移動方向取得部212は、アプリケーションの利用要求を送信したユーザ端末の移動方向を継続的に取得してよい。例えば、移動方向取得部212は、当該ユーザ端末から、当該ユーザ端末の移動方向を継続的に受信する。また、例えば、移動方向取得部212は、当該ユーザ端末が在圏する無線基地局から、当該ユーザ端末の移動方向を継続的に受信する。
処理装置決定部210は、移動方向取得部212が取得したユーザ端末の移動方向と、当該ユーザ端末の位置情報とに基づいて、対応処理装置を決定してもよい。例えば、処理装置決定部210は、アプリケーションの利用要求を送信したユーザ端末が、移動方向取得部212によって取得された移動方向に移動した場合にハンドオーバすることになる無線基地局を特定し、当該無線基地局に対応するMECNear300を、対応処理装置として決定する。処理装置決定部210は、提供処理装置に対応する無線基地局に隣接する無線基地局に対応するMECNear300を対応処理装置として決定する場合であって、提供処理装置に対応する無線基地局に隣接する無線基地局が複数存在する場合、移動方向取得部212によって取得された移動方向にユーザ端末が移動した場合に当該ユーザ端末がハンドオーバすることになる無線基地局のみを、対応処理装置として決定してよい。これにより、アプリケーションと、当該アプリケーションによって利用されるデータを送信する対象となるMECNear300の数を低減でき、通信量を適切に低減することができる。
送信制御部220は、処理装置決定部210によって決定された提供処理装置及び対応処理装置に、利用要求によって要求されているアプリケーションを送信するように制御する。送信制御部220は、例えば、利用要求によって要求されているアプリケーションを、提供処理装置及び対応処理装置に送信する指示を、送信部224に、MECMaster400に対して送信させる。送信部224は、指示送信部の一例であってよい。これにより、提供処理装置及び対応処理装置に送信するアプリケーションを、MECFar200が予め格納しておくことを不要にできる。また、送信制御部220は、例えば、提供処理装置及び対応処理装置に送信するアプリケーションを格納部202が格納している場合、当該アプリケーションを、送信部224に、提供処理装置及び対応処理装置に対して送信させてもよい。アプリ送信部224は、アプリ送信部の一例であってよい。これにより、当該アプリケーションを、提供処理装置及び対応処理装置に対してMECMaster400に送信させる場合と比較して、当該アプリケーションをより早く提供処理装置及び対応処理装置に送信することができる。
送信制御部220は、利用要求によって要求されているアプリケーションによって利用されるデータのうち、低遅延が要求されるデータを、送信部224に、提供処理装置及び対応処理装置に対して送信させてよい。送信部224は、データ送信部の一例であってよい。これにより、低遅延の実現に貢献することができる。
送信制御部220は、提供処理装置に対応する無線基地局に在圏しているユーザ端末が圏外エリアに移動する前に、当該ユーザ端末が利用しているアプリケーションが利用するデータのうち予め定められたデータを、提供処理装置に、当該ユーザ端末に対して送信させてよい。送信制御部220は、当該予め定められたデータを当該ユーザ端末に対して送信する指示を、提供処理装置に送信してよい。送信制御部220は、ユーザ端末の位置情報と、移動方向取得部212が取得するユーザ端末の移動方向とから、当該ユーザ端末が圏外エリアに移動するか否かを判定してよい。送信制御部220は、提供処理装置に、当該予め定められたデータを、予め格納している共通鍵を用いて暗号化させて、ユーザ端末に対して送信させてよい。
当該予め定められたデータは、ユーザ端末が圏外エリアを通過した後に利用されるデータであってよい。例えば、当該予め定められたデータは、ユーザ端末が圏外エリアを通過して、ハンドオーバした後即時に利用するデータであってよい。当該データは、アプリケーション毎に予め定められてよい。
同期処理部230は、提供処理装置及び対応処理装置に送信されたアプリケーションによって利用されるデータのうち、低遅延が要求されるデータの同期処理を行う。例えば、提供処理装置によって、低遅延が要求されるデータが更新された場合に、提供処理装置から更新内容を受信し、当該更新内容を、対応処理装置に送信したデータに反映する。
図8は、MECFar200による処理の流れの一例を概略的に示す。ここでは、MECFar200が、アプリケーションの利用要求を待ち受けている状態を開始状態として説明する。
S402では、利用要求取得部206が、ユーザ端末からアプリケーションの利用要求を取得する。S404では、処理装置決定部210が、S402において受信した利用要求に含まれるユーザ端末の情報を位置情報サーバ140に送信して、ユーザ端末の位置情報を位置情報サーバ140から受信する。
S406では、処理装置決定部210が、S404において受信したユーザ端末の位置情報に基づいて、提供処理装置を決定する。S408では、処理装置決定部210が、S406において決定した提供処理装置に対応する対応処理装置を決定する。S410では、送信制御部220が、S406及びS408において決定された提供処理装置及び対応処理装置に、利用要求によって要求されているアプリケーションを送信するよう制御する。当該アプリケーションによって利用されるデータに、低遅延が要求されるデータが含まれる場合、送信制御部220は、当該低遅延が要求されるデータを提供処理装置及び対応処理装置に送信するよう制御する。そして、処理を終了する。
図9は、MECNear300の機能構成の一例を概略的に示す。MECNear300は、格納部312、鍵共有部314、アプリ受信部316、データ受信部318、データ参照部320、サービス提供部330、及びデータ送信部340を備える。なお、MECNear300がこれらのすべての構成を備えることは必須とは限らない。
格納部312は、各種データを格納する。鍵共有部314は、他のMECNear300と鍵を共有する。鍵共有部314は、例えば、MECNear300に対応する無線基地局に隣接する無線基地局に対応する他のMECNear300と鍵を共有する。また、鍵共有部314は、例えば、MECNear300に対応する無線基地局と、圏外エリアを挟んで隣接する無線基地局に対応する他のMECNear300と鍵を共有する。また、鍵共有部314は、例えば、MECNear300のオペレータ等の指示に従って、他のMECNear300と鍵を共有する。鍵共有部314は、格納部312に格納されている鍵を、他のMECNear300に送信することによって鍵を共有してよい。また、鍵共有部314は、他のMECNear300から鍵を受信して格納部312に格納することによって鍵を共有してよい。他のMECNear300と共有する鍵は、共通鍵であってよい。
アプリ受信部316は、アプリケーションを受信する。アプリ受信部316は、MECMaster400からアプリケーションを受信してよい。アプリ受信部316は、MECFar200からアプリケーションを受信してよい。アプリ受信部316は、受信したアプリケーションを格納部312に格納してよい。
データ受信部318は、アプリケーションによって利用されるデータを受信する。データ受信部318は、アプリケーションによって利用されるデータのうち、低遅延が要求されるデータを受信してよい。データ受信部318は、MECFar200から当該データを受信してよい。データ受信部318は、MECMaster400から当該データを受信してもよい。データ受信部318は、受信したデータを格納部312に格納してよい。
データ受信部318は、ユーザ端末から暗号化データを受信してよい。データ受信部318は、受信した暗号化データを格納部312に格納してよい。格納部312は、格納している鍵によって、当該暗号化データを復号化してよい。
データ参照部320は、アプリケーションによって利用されるデータを参照する。データ参照部320は、MECFar200に格納されている、アプリケーションによって利用されるデータのうちの低遅延が要求されないデータを参照してよい。
サービス提供部330は、格納部312に格納されているアプリケーションによるサービスをユーザ端末に提供する。サービス提供部330は、データ受信部318が受信した低遅延が要求されるデータと、データ参照部320が参照する低遅延が要求されないデータとを用いて、格納部312に格納されているアプリケーションによるサービスをユーザ端末に提供してよい。
データ送信部340は、アプリケーションによるサービスを提供しているユーザ端末が圏外エリアに移動する前に、アプリケーションによって利用されるデータのうち予め定められたデータを当該ユーザ端末に送信する。データ送信部340は、アプリケーションによって利用されるデータのうち、当該ユーザ端末が圏外エリアを通過した後に利用されるデータとして予め定められたデータを、当該ユーザ端末に送信してよい。データ送信部340は、当該データを、格納部312に格納されている鍵を用いて暗号化した暗号化データを、当該ユーザ端末に送信してよい。データ送信部340は、MECFar200の指示に従って、当該データを当該ユーザ端末に送信してよい。また、例えば、データ送信部340が、MECFar200と同様に、ユーザ端末の位置情報及び移動方向から、ユーザ端末が圏外エリアに移動するか否かを判定し、圏外エリアに移動する前に、当該データをユーザ端末に送信してもよい。
図10は、MECNear300による処理の流れの一例を概略的に示す。ここでは、ユーザ端末に対してアプリケーションによるサービスを提供することが決定した状態を開始状態として説明する。
S502では、サービス提供部330が、ユーザ端末に対してアプリケーションによるサービスを提供する。S504では、サービス提供部330が、ユーザ端末が圏外エリアに移動するか否かを判定する。サービス提供部330は、例えば、ユーザ端末が圏外エリアに移動することの通知をMECFar200から受信した場合に、移動すると判定し、受信していない間は、移動しないと判定する。移動すると判定した場合、S506に進む。
S506では、データ送信部340が、アプリケーションによって利用されるデータのうち予め定められたデータを、格納部312に格納されている鍵を用いて暗号化する。S508では、データ送信部340が、暗号化データをユーザ端末に送信する。そして、処理を終了する。
図11は、MECFar200又はMECNear300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本発明の実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本発明の実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD−ROMドライブ及びDVD−RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD−ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
プログラムは、DVD−ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD−ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD−ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。