【文献】
吉田雅裕・中田亮太・森航哉・荒川豊・井上知洋・高橋紀之・田中裕之,自律型モビリティにおけるエッジサーバ切り替え予測方式,電子情報通信学会技術研究報告 NS2017-234,日本,一般社団法人電子情報通信学会,2018年 2月22日,Vol.117 No.459,pp.315-320
(58)【調査した分野】(Int.Cl.,DB名)
前記対応処理装置決定部は、前記ルート情報取得部が取得した第1ルート情報に基づいて決定した前記対応処理装置に前記アプリケーションが送信された後、前記ルート情報取得部が前記第1ルート情報とは異なる第2ルート情報を取得した場合、前記第2ルート情報に基づいて前記対応処理装置を決定し、
前記送信制御部は、前記第2ルート情報に基づいて決定された前記対応処理装置に前記アプリケーションを送信するよう制御する、請求項1又は2に記載の制御装置。
【発明を実施するための形態】
【0014】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0015】
図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は、移動体通信網を流れるパケットデータの内容を解析する。
【0016】
図1に示す従来技術では、UE70が一のeNB60から他のeNB60にハンドオーバした場合であっても、UE70のアプリケーションのセッション情報を維持することを目的とし、UE70とUE70を収容するMEC50との間のセッションを終端し、UE70側のアプリケーションのセッション情報を保持するセッション維持Proxy90がUE70に対して設定され、UE70が移動して新たなMEC50に収容された場合、当該UE70の移動に追従して、当該UE70に対し設定されていたセッション維持Proxy90のセッションの移動処理が実行されることで、新たなMEC50に収容されたUE70に対しセッション維持Proxy90が設定される。
【0017】
図2は、
図1に示す従来技術の課題を説明するための説明図である。
図1に示す従来技術では、UE70が移動して新たなMEC50に収容された場合にセッションの移動処理が実行されることになるが、例えば、UE70を保持するユーザが電車等に乗っている場合等、連続でハンドオーバが発生する状況では、セッションの移動処理が間に合わず、このような状況に対応しきれない。この点、LTEネットワークよりもセルの大きさが小さい5Gネットワークにおいて、より顕著になる。
【0018】
また、セッションの移動処理が行われたとしても、アプリケーション52によって利用されていたUE70のユーザの個人データ54はコピーされず、ハンドオーバ後に個人データ54を利用することができなくなる。例えば、アプリケーション52がゲームアプリであり、個人データ54がゲームのセーブデータである場合に、ハンドオーバ後に、セーブデータを利用できなくなるおそれがあり、ユーザの利便性を著しく低下させ得る。
【0019】
また、UE70のユーザによって利用されるアプリケーション52の種類は膨大であり、複数のMEC50のそれぞれがすべての種類のアプリケーション52を有しているとは限らない。そのため、セッションの移動処理が行われたとしても、移動前にUE70が利用していたアプリケーション52と同じアプリケーション52が移動後のMEC50になければ、UE70のユーザは、継続してそのアプリケーション52を利用することができなくなる。
【0020】
また、移動前にUE70が利用していたサービスが、移動後のMEC50に収容されていない場合で、UE70がそのサービスの利用を希望する場合であっても、従来技術においては、MEC50のサービスの配置方法が明確になっておらず、また、仮にMEC50においてそのサービスを提供できる場合であっても、MEC50においてそのサービスを起動するシーケンス(時間)が必要になってしまう。
【0021】
本実施形態に係るシステム100は、このような課題の解決に貢献する技術を提供する。
【0022】
図3は、システム100の一例を概略的に示す。システム100は、MECFar200及び複数のMECNear300を含む。MECNear300は、いわゆるエッジ側に配置され、移動体によって移動される通信端末500にアプリケーションによるサービスを提供する。
図3では、移動体の一例として車両600を示している。
【0023】
MECNear300は、いわゆるエッジ側のMECサーバであってよい。MECサーバは、サービス提供サーバの一例であってよい。MECFar200は、いわゆるコア側に配置され、複数のMECNear300を制御する。MECFar200は、いわゆるコア側のMECサーバであってよい。MECNear300は、MECFar200よりも通信端末500の近くに位置し、MECFar200は、MECNear300よりも通信端末500の遠くに位置する。
【0024】
MECFar200は、制御装置の一例であってよい。MECNear300は、処理装置の一例であってよい。
図3では、複数のMECNear300の一例として、MECNear301、MECNear302、及びMECNear303を図示しているが、MECNear300の数はこれに限らず、任意の数であってよい。
【0025】
通信端末500は、例えば、車両600に搭載される。通信端末500は、例えば、車両600のナビゲーションシステムである。通信端末500は、車両600のナビゲーションシステムの一部であってもよい。通信端末500は、車両600のナビゲーションシステムとは別の通信端末であってもよい。MECNear300は、通信端末500に対して任意の種類のアプリケーションによるサービスを提供する。MECNear300は、例えば、車両600のナビゲーションに関連するアプリケーションによるサービスを通信端末500に提供する。また、MECNear300は、例えば、動画及び音楽等のコンテンツを配信するアプリケーションによるサービスを通信端末500に提供する。
【0026】
車両600が自動運転車である場合、通信端末500は、車両600の自動運転を制御する制御装置であってもよい。MECNear300は、例えば、車両600の自動運転を制御するアプリケーションによるサービスを通信端末500に提供する。
【0027】
また、通信端末500は、例えば、車両600に搭乗する搭乗者が所有するユーザ端末であってもよい。通信端末500は、スマートフォン等の携帯電話であってよく、また、タブレット端末及びPC(Personal Computer)等であってもよい。MECNear300は、例えば、動画及び音楽等のコンテンツを配信するアプリケーションによるサービスを通信端末500に提供する。
【0028】
なお、通信端末500は、車両600によって移動されるいわゆるIoT(Internet of Thing)デバイスであってもよい。IoTデバイスとしては、各種センサ及び各種アクチュエータ等が例示できる。通信端末500は、いわゆるIoE(Internet of Everything)に該当するあらゆるものを含み得る。
【0029】
ここでは、移動体として車両600を主に例に挙げて説明するが、移動体は、通信端末500を移動させることができればどのようなものであってもよい。例えば、移動体は、ドローンであってよく、通信端末500は、ドローンに搭載される。MECNear300は、例えば、ドローンによる荷物の配送をサポートするアプリケーションによるサービスを通信端末500に提供する。また、MECNear300は、例えば、ドローンによる災害地の状況確認をサポートするアプリケーションによるサービスを通信端末500に提供する。
【0030】
また、例えば、移動体は、ロボットであってよく、通信端末500は、ロボットに搭載される。MECNear300は、例えば、ロボットによる荷物の配送をサポートするアプリケーションによるサービスを通信端末500に提供する。また、MECNear300は、例えば、ロボットによる災害地の状況確認をサポートするアプリケーションによるサービスを通信端末500に提供する。
【0031】
MECFar200は、複数のMECNear300とバックホール110を介して通信する。
図3では、1つのMECFar200を図示しているが、MECFar200の数は1つに限らず、複数のMECFar200が配置されてもよい。例えば、複数のMECFar200が地域毎に配置され、各地域内の複数のMECNear300を制御する。
【0032】
MECNear300は、eNB120に対応して配置される。eNB120に対応して配置されるとは、eNB120のセルに在圏する通信端末500に対してアプリケーションによるサービスを提供すべく、eNB120に接続されることであってよい。MECNear300は、複数のeNB120に対応して配置されてもよい。
【0033】
MECNear300は、eNB120の近傍に配置されてよい。eNB120の近傍に配置されるとは、例えば、eNB120との距離が予め定められた距離以内に配置されることである。また、eNB120の近傍に配置されるとは、eNB120との通信距離が予め定められた通信距離以内に配置されることであってもよい。MECNear300は、例えば、eNB120の近傍であって、必要な電力を受給できる場所に配置される。
【0034】
図3では、MECNear301がeNB121に対応して配置され、MECNear302がeNB122に対応して配置され、MECNear303がeNB123に対応して配置されている場合を例示している。
図3は、MECNear301に接続されているeNBが、eNB121のみである場合を示しているが、これに限らず、MECNear301には複数のeNBが接続されていてもよい。MECNear302及びMECNear303についても同様である。
【0035】
図3では、MECNear301とeNB121とが接続され、eNB121がバックホール110と接続されている例を示している。この場合、eNB121は、MECNear301を介してバックホール110と通信してよい。なお、これに限らず、MECNear301とeNB121とが接続され、MECNear301及びeNB121のそれぞれがバックホール110と接続されていてもよい。また、MECNear301とバックホール110とが接続されずに、MECNear301がeNB121を介してバックホール110と通信するように構成されてもよい。MECNear302及びeNB122と、MECNear303及びeNB123についても同様である。
【0036】
システム100は、MECMaster400を含んでよい。MECMaster400は、複数のMECNear300に対してアプリケーションを配信する。MECMaster400は、例えば、アプリケーション開発者及びアプリケーション運用者等からAPI(Application Programming Interface)によるリクエストを受けて、MECFar200及びMECNear300にアプリケーションを展開する。なお、MECFar200が、MECFar200の役割に加えて、MECMaster400の役割を果たしてもよい。
図3では、1つのMECMaster400を図示しているが、MECMaster400の数は1つに限らず、複数のMECMaster400が配置されてもよい。
【0037】
本実施形態に係るシステム100において、MECFar200は、例えば、MECNear300に展開するアプリケーションを稼働した状態で待ち受ける。通信端末500は、アプリケーションを利用する場合、MECFar200に対してアプリケーションの利用要求を送信してよい。利用要求には、通信端末500の情報が含まれる。通信端末500の情報は、例えば、IMSI(International Mobile Equipment Identifier)及びIMEI(International Mobile Equipment Identifier)等の識別情報であってよい。なお、通信端末500の情報は、これに限らず、通信端末500を識別可能であればどのような情報であってもよい。
【0038】
MECFar200は、利用要求に含まれる通信端末500の情報を用いて、位置情報サーバ140から通信端末500の位置情報を受信してよい。そして、MECFar200は、通信端末500の位置情報に基づいて、複数のMECNear300から、アプリケーションによるサービスを通信端末500に提供する提供処理装置を決定する。MECFar200は、例えば、通信端末500が在圏しているeNB120に対応するMECNear300を、提供処理装置として決定する。なお、MECFar200は、通信端末500からアクセス可能なMECNear300のうち、要求されたアプリケーションによるサービスを通信端末500に対して提供可能なMECNear300を提供処理装置として決定するようにしてもよい。
【0039】
MECFar200は、さらに、複数のMECNear300から、提供処理装置に対応する対応処理装置を決定する。提供処理装置に対応するとは、例えば、提供処理装置からアプリケーションによるサービスの提供を受けている通信端末500がハンドオーバする可能性があるeNB120に対応することである。MECFar200は、例えば、通信端末500がハンドオーバする可能性があるeNB120に対応するMECNear300を、対応処理装置として決定する。
【0040】
MECFar200は、提供処理装置に対応する複数の対応処理装置を決定してもよい。提供処理装置に対応する複数の対応処理装置とは、移動体が移動することにより通信端末500が提供処理装置から順にハンドオーバしていく可能性がある複数のMECNear300であってよい。
【0041】
本実施形態に係るMECFar200は、車両600の移動先までのルートを示すルート情報に基づいて対応処理装置を決定する。MECFar200は、例えば、通信端末500が在圏しているeNB120に隣接するeNB120であって、ルート情報によって示されるルートの少なくとも一部をカバーしているeNB120に対応するMECNear300を対応処理装置として決定する。
【0042】
図3に示す例では、通信端末500がeNB121に在圏しており、MECFar200は、eNB121に対応するMECNear301を提供処理装置として決定する。また、MECFar200は、eNB121に隣接するeNB122及びeNB123のうち、車両600のルート情報によって示されるルート602の少なくとも一部をカバーしているeNB122に対応するMECNear302を対応処理装置として決定する。一のeNBに隣接するeNBとは、基地局設計上、一のeNBに隣接して配置されたeNBであってよい。また、一のeNBに隣接するeNBとは、一のeNBのセルを出た通信端末500が、他のセルに入ることなく、次に入るセルを形成するeNBであってもよい。
【0043】
複数の対応処理装置を決定する場合、MECFar200は、ルート602に沿って、通信端末500がハンドオーバしていくeNB120を順番に特定していき、特定した複数のeNB120に対応する複数のMECNear300を、複数の対応処理装置として決定してよい。
【0044】
MECFar200は、決定した提供処理装置及び対応処理装置にアプリケーションを送信するよう制御する。MECFar200は、例えば、自らがアプリケーションを提供処理装置及び対応処理装置に送信する。また、MECFar200は、MECMaster400に、提供処理装置及び対応処理装置に対してアプリケーションを送信させてもよい。このように、提供処理装置に加えて対応処理装置にもアプリケーションを送信することによって、通信端末500のハンドオーバ時のアプリケーションへのアクセスの継続性を担保することができる。
【0045】
例えば、移動体が車両600であり、車両600が目的地まで移動する場合、通信端末500は、車両600のルートに沿って配置されているeNB120に順々にハンドオーバしていくことになる。通信端末500が動画配信アプリによるサービスを受けている場合に、ハンドオーバ先のeNB120に対応するMECNear300に当該動画配信アプリが格納されていない場合、サービスが途中で途絶えてしまうことになる。これに対して、本実施形態に係るシステム100によれば、通信端末500がハンドオーバする可能性があるeNB120に対応するMECNear300に対して事前にアプリケーションを送信して格納させておくことができ、サービスの継続性を担保することができる。
【0046】
また、例えば、移動体がドローンであり、ドローンが目的地まで荷物を配送する場合、通信端末500は、ドローンの飛行ルートに沿って配置されているeNB120に順々にハンドオーバしていくことになる。通信端末500が、ドローンの飛行をサポートするアプリケーションとして、各地の建物の情報、飛行可能高度の情報、及び障害物の情報等を提供するアプリケーションによるサービスを受けている場合に、ハンドオーバ先のeNB120に対応するMECNear300に当該アプリケーションが格納されていない場合、飛行に問題が発生する可能性がある。これに対して、本実施形態に係るシステム100によれば、通信端末500がハンドオーバする可能性があるeNB120に対応するMECNear300に対して事前にアプリケーションを送信して格納させておくことができ、ドローンの飛行に問題が発生する可能性を低減することができる。
【0047】
ルート情報を用いない場合、ルート情報を用いる場合と比較して、通信端末500がハンドオーバする可能性があるeNB120を特定することが難しいため、例えば、提供処理装置に対応するeNB120に隣接するすべてのeNB120に対応するMECNear300にアプリケーションを送信するよう制御することが考えられる。これに対して、本実施形態に係るMECFar200によれば、ルート情報を用いることにより、ルート情報を用いない場合と比較して、高い精度で通信端末500がハンドオーバする可能性があるeNB120を特定することができ、アプリケーションを送信するMECNear300を限定することができる。これにより、通信トラフィックを低減したり、MECFar200及びMECNear300の処理負荷を低減したりすることができる。
【0048】
本実施形態に係るシステム100において、アプリケーションによって利用されるデータは、MECFar200とMECNear300とに分散して配置されてよい。例えば、MECFar200は、アプリケーションによって利用されるデータのうち、低遅延が要求されないデータを格納する。MECNear300は、低遅延が要求されないデータについては、MECFar200に格納されているデータを参照してよい。また、アプリケーションによって利用されるデータのうち、低遅延が要求されるデータは、提供処理装置及び対応処理装置に配置される。当該低遅延が要求されるデータは、MECMaster400又はMECNear300から、提供処理装置及び対応処理装置に送信されてよい。なお、アプリケーションによって利用されるデータのうち低遅延が要求されないデータと、低遅延が要求されるデータとは、アプリケーション開発者、アプリケーション運用者、及びMECFar200の管理者等によって予め定められてよい。
【0049】
アプリケーションによって利用されるデータのすべてを提供処理装置及び対応処理装置に配置すれば、通信端末500の通信の低遅延を図ることができる。しかし、例えば、提供処理装置に格納されているデータが更新された場合、MECFar200は、その更新を対応処理装置のデータに反映しなければならなくなる。それに対して、本実施形態に係るMECFar200によれば、低遅延が要求されるデータを提供処理装置及び対応処理装置に配置することによって、要求される低遅延を実現するとともに、低遅延が要求されないデータをMECFar200が格納して提供処理装置及び対応処理装置に参照させることによって、同期が必要なデータの量を適切に低減させることができる。
【0050】
また、本実施形態に係るシステム100において、セッション情報等の通信端末500が継続的に利用する必要のあるデータについては、ハンドオーバ前に通信端末500が保持しておき、ハンドオーバの直後に、通信端末500が対応処理装置に送信してよい。通信端末500は、例えば、提供処理装置と対応処理装置とで共有する共有鍵を用いて、データを暗号化して保持しておき、ハンドオーバの直後に、暗号化データを対応処理装置に送信してもよい。対応処理装置は、共有鍵を用いて暗号化データを復号可能である。このように、セッション情報等を通信端末500が保持しておき、ハンドオーバ後に対応処理装置に送信する構成を採用することにより、通信端末500のハンドオーバに対して、体験の継続性を担保することができる。
【0051】
図4は、システム100の処理の流れの一例を概略的に示す。ここでは、通信端末500がeNB121に在圏しており、通信端末500が利用するアプリケーションを、MECFar200が稼働済みである状態を開始状態とし、通信端末500に対してサービスの提供が開始されるまでの処理の流れの一例を説明する。
【0052】
ステップ(ステップをSと省略して記載する場合がある。)102では、通信端末500が、MECFar200に対してアプリ利用要求を送信する。S104では、MECFar200が、アプリ利用要求に対応する応答を行う。S106では、通信端末500が、車両600の移動先までのルートを示すルート情報をMECFar200に送信する。通信端末500は、例えば、車両600のナビゲーションシステムにおいて設定されているルートを示すルート情報をMECFar200に送信する。
【0053】
S108では、MECFar200が、S102において受信した利用要求に含まれる通信端末500の情報を位置情報サーバ140に送信する。S110では、位置情報サーバ140が、通信端末500の位置情報をMECFar200に送信する。MECFar200は、S110において受信した位置情報に基づいて、提供処理装置を決定し、S106において受信したルート情報に基づいて、提供処理装置に対応する対応処理装置を決定する。ここでは、MECNear301を提供処理装置として決定し、MECNear302を対応処理装置として決定したものとして説明を続ける。
【0054】
S112では、MECFar200が、MECNear301及びMECNear302にアプリケーションを展開するよう、MECMaster400に指示する。S114では、MECMaster400が、S112において受信した指示に従って、アプリケーションをMECNear301及びMECNear302に展開する。
【0055】
S116では、通信端末500と、提供処理装置であるMECNear301との間で、アプリケーションによるサービスの利用が開始される。このとき、通信端末500の宛先はMECFar200のままであってよく、MECFar200宛のパケットをフィルタリングすることによって、MECNear301が代理返答するような構成としてよい。
【0056】
図4では、通信端末500が、S104における応答に応じてルート情報をMECFar200に送信する例を挙げて説明したが、これに限らない。ルート情報を送信するタイミングは、任意のタイミングであってよい。例えば、通信端末500は、S102において、ルート情報を含むアプリ利用要求をMECFar200に送信してもよい。
【0057】
図5は、システム100の処理の流れの一例を概略的に示す。ここでは、
図4に示す処理によって通信端末500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態とし、車両600のルートが変更された場合の処理の流れの一例を説明する。車両600のルートは、例えば、車両600の目的地が変更された場合に、変更される。また、車両600のルートは、車両600がルートから外れたことによりナビゲーションシステムによってリルートされた場合や、ルート上の交通状況の変化等によりナビゲーションシステムによってリルートされた場合に、変更され得る。
【0058】
S202では、通信端末500が、変更後のルートを示すルート情報をMECFar200に送信する。MECFar200は、受信したルート情報に基づいて、対応処理装置を決定する。ここでは、MECNear304を対応処理装置として決定したものとして説明を続ける。
【0059】
S204では、MECFar200が、MECNear304にアプリケーションを展開するよう、MECMaster400に指示する。S206では、MECMaster400が、S204において受信した指示に従って、アプリケーションをMECNear304に展開する。
図5に示すような処理が実行されることによって、ルート情報を用いて特定した対応処理装置に対してアプリケーションが送信された後に、ルートが変更された場合であっても、通信端末500に対してアプリケーションによるサービスを提供することになるMECNear304に対して、事前に適切にアプリケーションを展開することができる。
【0060】
図6は、システム100の処理の流れの一例を概略的に示す。ここでは、通信端末500がeNB121に在圏しており、通信端末500が利用するアプリケーションを、MECFar200が稼働済みである状態を開始状態とし、通信端末500に対してサービスの提供が開始されるまでの処理の流れの他の一例を説明する。
【0061】
S302では、通信端末500が、MECFar200に対してアプリ利用要求を送信する。S304では、MECFar200が、アプリ利用要求に対応する応答を行う。S306では、通信端末500が、車両600の移動先までのルートを示すルート情報をMECMaster400に送信する。このとき、通信端末500の宛先はMECFar200のままであってよく、MECFar200を経由して、ルート情報がMECMaster400に送信されてよい。MECMaster400は、受信したルート情報によって示されるルートをカバーしている複数のeNB120を特定する。
【0062】
S308では、MECFar200が、S302において受信した利用要求に含まれる通信端末500の情報を位置情報サーバ140に送信する。S310では、位置情報サーバ140が、通信端末500の位置情報をMECFar200に送信する。S112では、MECFar200が、S310において受信した通信端末500の位置情報と、アプリケーションの展開の指示とをMECMaster400に送信する。
【0063】
MECMaster400は、S312において受信した位置情報に基づいて、提供処理装置を決定する。ここでは、MECNear301を提供処理装置として決定したものとして説明を続ける。また、MECMaster400は、S306において受信したルート情報によって示されるルートをカバーしている複数のeNB120のうち、当該ルートにおける通信端末500の位置に、より近い部分をカバーしているeNB120に対応するMECNear300を対応処理装置として決定する。ここでは、MECNear302を対応処理装置として決定したものとして説明を続ける。なお、MECMaster400は、複数の対応処理装置を決定してもよい。例えば、MECMaster400は、S306において受信したルート情報によって示されるルートをカバーしている複数のeNB120のうち、カバーしているルートの部分の位置が通信端末500の位置に近い方から順番に、複数の対応処理装置を決定する。
【0064】
MECMaster400は、S312において受信した指示に従って、アプリケーションをMECNear301及びMECNear302に展開する。S316では、通信端末500と、提供処理装置であるMECNear301との間で、アプリケーションによるサービスの利用が開始される。このとき、通信端末500の宛先はMECFar200のままであってよく、MECFar200宛のパケットをフィルタリングすることによって、MECNear301が代理返答するような構成としてよい。
【0065】
図7は、システム100の処理の流れの一例を概略的に示す。ここでは、
図6に示す処理によって通信端末500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態とし、車両600のルートが変更された場合の処理の流れの一例を説明する。
【0066】
S402では、通信端末500が、変更後のルートを示すルート情報をMECMaster400に送信する。このとき、通信端末500の宛先はMECFar200のままであってよく、MECFar200を経由して、ルート情報がMECMaster400に送信されてよい。
【0067】
MECMaster400は、受信したルート情報によって示されるルートをカバーしている複数のeNB120を特定する。ここで、車両600の次の移動先のセルが、MECNear302に対応するeNB122のセルではなく、他のMECNear300に対応するeNB120である場合、MECMaster400は、当該MECNear300に対してアプリケーションを展開してよい。
【0068】
S404では、モバイルネットワークの情報を取得するコアノード150が、通信端末500がeNB122にハンドオーバしたことを検出して、通信端末500の移動をMECMaster400に報告する。コアノード150は、例えば、バックホール110に接続されているMMEから、通信端末500がeNB122にハンドオーバしたことを知得する。コアノード150は、MMEであってもよい。
【0069】
S406では、MECMaster400が、S402において特定した複数のeNB120のうち、MECNear302に対応するeNB122に隣接するeNB120に対応するMECNear300に、アプリケーションを展開する。S408では、MECMaster400が、MECNear301に、アプリケーションおよびアプリケーションによって利用されるデータの削除を指示する。MECMaster400は、MECNear301が通信端末500に対して、当該アプリケーションによるサービスの提供を再開しないと判定した場合に、MECNear301に、当該削除を指示するようにしてもよい。
【0070】
図8は、システム100の処理の流れの一例を概略的に示す。ここでは、
図6に示す処理によって通信端末500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態とし、通信端末500がeNB121からeNB122にハンドオーバした場合の処理の流れを説明する。
【0071】
S502では、通信端末500が、eNB122にハンドオーバする。S504では、MECNear302が、予め受信して格納していたアプリケーションによって、通信端末500に対してサービスを提供する。このとき、通信端末500の宛先はMECFar200のままであってよく、MECFar200宛のパケットをフィルタリングすることによって、MECNear302が代理返答するような構成としてよい。
【0072】
S506では、コアノード150が、通信端末500がeNB122にハンドオーバしたことを検出して、通信端末500の移動をMECMaster400に報告する。
【0073】
S508では、MECMaster400が、ルート情報に基づいて特定した複数のeNB120のうち、MECNear302に対応するeNB122に隣接するeNB120を特定し、当該eNB120に対応するMECNear300に、アプリケーションを展開する。S510では、MECMaster400が、MECNear301に、アプリケーションおよびアプリケーションによって利用されるデータの削除を指示する。MECMaster400は、MECNear301が通信端末500に対して、当該アプリケーションによるサービスの提供を再開しないと判定した場合に、MECNear301に、当該削除を指示するようにしてもよい。
【0074】
図9は、システム100の処理の流れの一例を概略的に示す。ここでは、
図4に示す処理によって通信端末500がMECNear301からアプリケーションによるサービスを受けている状態を開始状態として説明する。
【0075】
S602では、MECNear301とMECNear302との間で共通鍵を共有する。共通鍵の共有は、S602よりも前の任意のタイミングで行われてもよい。例えば、MECNear301は、複数のMECNear300との間で予め共通鍵を共有する。
【0076】
S604では、MECNear301が、通信端末500がハンドオーバした後即時に利用するデータを、S602において共有した共通鍵で暗号化する。S606では、MECNear301が、暗号化データを通信端末500に送信する。
【0077】
S608では、通信端末500が、MECNear302に対応するeNB122にハンドオーバする。S610では、通信端末500が、S606において受信した暗号化データを、ハンドオーバしたeNB122に対応するMECNear302に送信する。通信端末500は、eNB122を介して、暗号化データをMECNear302に送信してよい。
【0078】
S612では、MECNear302が、S602において共有した共通鍵で、S610において受信した暗号化データを復号化する。S614では、通信端末500が、MECNear302からアプリケーションによるサービスを受ける。MECNear302は、S612において復号化したデータを用いて、通信端末500に対してサービスを提供してよい。S614では、MECNear302とMECFar200との間で、即時性の低いデータの同期が行われる。
【0079】
S604において暗号化されるデータは、任意のデータであってよい。例えば、通信端末500が、車両600の搭乗者のユーザ端末である場合、通信端末500は、ゲームのアプリケーションによるサービスや、3D画像の編集アプリによるサービス等を受ける場合があるが、アプリケーションがゲームのアプリである場合、当該データは、セーブデータであってよい。また、例えば、アプリケーションが3D画像の編集アプリである場合、当該データは、編集中の3D画像であってよい。
【0080】
このようなデータは、通信端末500が処理するにはデータ容量が大き過ぎる場合があり、通信端末500では処理できなかったり、処理速度が極端に低下したりしてしまうので、通信端末500側では端末操作と映像描画だけを行い、データ処理をMECNear300側が行うことで処理が分散される場合がある。
図9に示す例において、MECNear301とMECNear302との間で適切にデータを受け渡すことができれば、継続性を担保することができるが、適切に受け渡すことが難しい場合がある。例えば、eNB121のセルとeNB122のセルとの間に、トンネル等の圏外エリアが存在する場合、MECNear301に対応する対応処理装置としてMECNear302を決定することが難しい場合がある。データの受け渡しが適切に行わなければ、通信端末500のユーザはサービスを継続的に利用することができなくなる。
【0081】
それに対して、
図9に示すような処理を行うことによって、例えば、通信端末500が圏外エリアに移動する前に、MECNear301がeNB121を介して通信端末500に暗号化データを送信し、トンネル等の圏外エリアを抜けた後にeNB122にハンドオーバした通信端末500が、eNB122に対応するMECNear302に暗号化データを送信することによって、サービスの継続性を担保することができる。
【0082】
図10は、MECFar200の機能構成の一例を概略的に示す。MECFar200は、格納部202、受信部204、利用要求取得部206、情報取得部208、処理装置決定部210、送信制御部220、送信部224、及び同期処理部230を備える。なお、MECFar200がこれらのすべての構成を備えることは必須とは限らない。
【0083】
格納部202は、各種データを格納する。格納部202は、複数のMECNear300の情報を格納する。MECNear300の情報は、当該MECNear300に対応する無線基地局の情報を含んでよい。MECNear300の情報は、当該MECNear300に対応する他のMECNear300の情報を含んでよい。例えば、当該情報として、MECNear300に対応する無線基地局に隣接する無線基地局に対応するMECNear300の情報を含む。
【0084】
MECNear300の情報は、MECNear300の位置を示す位置情報を含んでよい。MECNear300の情報は、MECNear300の機器性能の情報を含んでよい。MECNear300の情報は、MECNear300が実行可能なアプリケーションの情報を含んでよい。
【0085】
受信部204は、各種データを受信する。受信部204は、受信したデータを格納部202に格納する。受信部204は、例えば、MECMaster400からアプリケーションを受信する。また、受信部204は、例えば、MECMaster400から、アプリケーションによって利用されるデータを受信する。
【0086】
格納部202は、受信部204が受信したアプリケーションを格納する。格納部202は、アプリ格納部の一例であってよい。格納部202は、受信部204が受信したアプリケーションによって利用されるデータを格納する。格納部202は、データ格納部の一例であってよい。アプリケーションによって利用されるデータは、低遅延が要求されるデータと、低遅延が要求されないデータとが含まれてよい。格納部202は、アプリケーションによって利用されるデータのうち、低遅延が要求されるデータと、低遅延が要求されないデータとを識別可能に格納してよい。
【0087】
利用要求取得部206は、通信端末500によって送信されたアプリケーションの利用要求を取得する。利用要求には、通信端末500の情報が含まれる。通信端末500の情報は、通信端末500の識別情報を含んでよい。利用要求には、通信端末500を移動する移動体の移動先までのルートを示すルート情報を含んでもよい。
【0088】
情報取得部208は、各種情報を取得する。情報取得部208は、例えば、通信端末500を移動する移動体の移動先までのルートを示すルート情報を取得する。移動体が車両600である場合、ルート情報は、車両600のナビゲーションシステムにおいて設定されているルートを示すものであってよい。また、移動体がドローンである場合、ルート情報は、目的地までの飛行ルートを示すものであってよい。また、移動体がロボットである場合、ルート情報は、目的地までの移動ルートを示すものであってよい。
【0089】
情報取得部208は、通信端末500からルート情報を受信してよい。情報取得部208は、移動体からルート情報を受信してもよい。利用要求取得部206が取得した利用要求にルート情報が含まれている場合、情報取得部208は、利用要求に含まれるルート情報を取得してよい。
【0090】
また、情報取得部208は、通信端末500を移動する移動体に関連する情報を取得してよい。情報取得部208は、例えば、移動体の移動速度を取得する。情報取得部208は、移動体に関連する情報を、通信端末500から受信してよい。情報取得部208は、移動体に関連する情報を、移動体から受信してもよい。
【0091】
処理装置決定部210は、利用要求取得部206が利用要求を取得したことに応じて、複数のMECNear300から、提供処理装置及び対応処理装置を決定する。処理装置決定部210は、利用要求取得部206に含まれる通信端末500の情報を位置情報サーバ140に送信して、位置情報サーバ140から通信端末500の位置情報を受信し、当該位置情報と、情報取得部208が取得したルート情報に基づいて、提供処理装置及び対応処理装置を決定してよい。
【0092】
処理装置決定部210は、例えば、通信端末500の位置情報によって特定される、通信端末500が在圏している無線基地局に対応するMECNear300を、提供処理装置として決定する。処理装置決定部210は、提供処理装置決定部の一例であってよい。処理装置決定部210は、通信端末500からアクセス可能なMECNear300が複数存在する場合、当該複数のMECNear300のうち、通信端末500に最も近いMECNear300を提供処理装置として決定してよい。また、処理装置決定部210は、当該複数のMECNear300のうち、通信端末500が利用することを要求しているアプリケーションを実行可能なMECNear300を特定し、特定したMECNear300のうち、最も通信端末500に近いMECNear300を提供処理装置として決定してもよい。
【0093】
また、処理装置決定部210は、提供処理装置に対応する1又は複数のMECNear300を、対応処理装置として決定する。処理装置決定部210は、対応処理装置決定部の一例であってよい。処理装置決定部210は、提供処理装置に対応する無線基地局に在圏している通信端末500がハンドオーバする可能性がある無線基地局に対応するMECNear300を、対応処理装置として決定してよい。処理装置決定部210は、通信端末500が在圏している無線基地局に隣接する無線基地局であって、ルート情報によって示されるルートの少なくとも一部をカバーしている無線基地局に対応するMECNear300を、対応処理装置として決定してよい。処理装置決定部210は、ルート情報によって示されるルートをカバーしている複数の無線基地局のうち、当該ルートにおける通信端末500の位置に、より近い部分をカバーしている無線基地局に対応するMECNear300を、対応処理装置として決定してよい。
【0094】
処理装置決定部210は、ルート情報によって示されるルートをカバーしている複数の無線基地局のうち、カバーしているルートの部分の位置が、当該ルートに沿って、通信端末500の位置に近い方から順番に、予め設定された基地局数の無線基地局を特定し、特定した無線基地局に対応するMECNear300を対応処理装置として決定してもよい。
【0095】
処理装置決定部210は、情報取得部208が取得した移動体に関連する情報に基づいて、基地局数を設定してよい。処理装置決定部210は、例えば、移動体の移動速度に基づいて基地局数を設定する。具体例として、処理装置決定部210は、移動体の移動速度が速いほど多い数の基地局数を設定する。これにより、移動体の移動速度が速く、通信端末500のハンドオーバが短期間で連続して発生する場合に、より遠くの無線基地局に対応するMECNear300に事前にアプリケーションを送信することができ、通信端末500がハンドオーバしたときに、ハンドオーバ先の無線基地局に対応するMECNear300にアプリケーションが格納されておらず、当該アプリケーションによるサービスを受けられない事態が発生する可能性を低減することができる。
【0096】
処理装置決定部210は、アプリケーションに関連する情報に基づいて、基地局数を設定してもよい。処理装置決定部210は、例えば、アプリケーションのデータ量に基づいて基地局数を設定する。具体例として、処理装置決定部210は、アプリケーションのデータ量が多いほど多い数の基地局数を設定する。これにより、アプリケーションのデータ量が多く、MECNear300への送信により時間がかかってしまう場合に、より速いタイミングで、MECNear300へのアプリケーションの送信を開始させることができ、通信端末500がハンドオーバしたときに、ハンドオーバ先の無線基地局に対応するMECNear300へのアプリケーションの送信が完了しておらず、当該アプリケーションによるサービスを受けられない事態が発生する可能性を低減することができる。
【0097】
処理装置決定部210は、アプリケーションの種類に基づいて基地局数を設定してもよい。例えば、処理装置決定部210は、初期設定により時間がかかるアプリケーションに対して、より数の基地局数を設定する。これにより、アプリ―ションの初期設定により多くの時間がかかる場合に、より速いタイミングでMECNear300へのアプリケーションの送信を開始させることができ、通信端末500がハンドオーバしたときに、ハンドオーバ先の無線基地局に対応するMECNear300におけるアプリケーションの初期設定が完了しておらず、当該アプリケーションによるサービスを受けられない事態が発生する可能性を低減することができる。
【0098】
処理装置決定部210は、移動体に関連する情報及びアプリケーションに関連する情報のうち、複数の情報に基づいて基地局数を設定してもよい。例えば、処理装置決定部210は、移動体の移動速度、アプリケーションのデータ量、及びアプリケーションの種類のうち複数に基づいて基地局数を設定する。
【0099】
送信制御部220は、処理装置決定部210によって決定された提供処理装置及び対応処理装置に、利用要求によって要求されているアプリケーションを送信するように制御する。送信制御部220は、例えば、利用要求によって要求されているアプリケーションを、提供処理装置及び対応処理装置に送信する指示を、送信部224に、MECMaster400に対して送信させる。送信部224は、指示送信部の一例であってよい。これにより、提供処理装置及び対応処理装置に送信するアプリケーションを、MECFar200が予め格納しておくことを不要にできる。また、送信制御部220は、例えば、提供処理装置及び対応処理装置に送信するアプリケーションを格納部202が格納している場合、当該アプリケーションを、送信部224に、提供処理装置及び対応処理装置に対して送信させてもよい。アプリ送信部224は、アプリ送信部の一例であってよい。これにより、当該アプリケーションを、提供処理装置及び対応処理装置に対してMECMaster400に送信させる場合と比較して、当該アプリケーションをより早く提供処理装置及び対応処理装置に送信することができる。
【0100】
送信制御部220は、利用要求によって要求されているアプリケーションによって利用されるデータのうち、低遅延が要求されるデータを、送信部224に、提供処理装置及び対応処理装置に対して送信させてよい。送信部224は、データ送信部の一例であってよい。これにより、低遅延の実現に貢献することができる。
【0101】
送信制御部220は、提供処理装置に対応する無線基地局に在圏している通信端末500が圏外エリアに移動する前に、当該通信端末500が利用しているアプリケーションが利用するデータのうち予め定められたデータを、提供処理装置に、当該通信端末500に対して送信させてよい。送信制御部220は、当該予め定められたデータを当該通信端末500に対して送信する指示を、提供処理装置に送信してよい。送信制御部220は、通信端末500の位置情報と、情報取得部208が取得するルート情報とから、当該通信端末500が圏外エリアに移動するか否かを判定してよい。送信制御部220は、提供処理装置に、当該予め定められたデータを、予め格納している共通鍵を用いて暗号化させて、通信端末500に対して送信させてよい。
【0102】
当該予め定められたデータは、通信端末500が圏外エリアを通過した後に利用されるデータであってよい。例えば、当該予め定められたデータは、通信端末500が圏外エリアを通過して、ハンドオーバした後即時に利用するデータであってよい。当該データは、アプリケーション毎に予め定められてよい。
【0103】
処理装置決定部210は、情報取得部208が取得した第1ルート情報に基づいて決定した対応処理装置にアプリケーションが送信された後、情報取得部208が第1ルート情報とは異なる第2ルート情報を取得した場合、第2ルート情報に基づいて対応処理装置を決定してよい。情報取得部208は、例えば、移動体の移動先までのルートが変更された場合に、変更後のルートを示す第2ルート情報を取得する。
【0104】
移動体のルートは、例えば、移動体の目的地が変更された場合に変更される。また、移動体のルートは、ルートの状況が変化した場合に変更され得る。また、移動体のルートは、移動体のタスクが変化した場合に変更され得る。
【0105】
同期処理部230は、提供処理装置及び対応処理装置に送信されたアプリケーションによって利用されるデータのうち、低遅延が要求されるデータの同期処理を行う。例えば、提供処理装置によって、低遅延が要求されるデータが更新された場合に、提供処理装置から更新内容を受信し、当該更新内容を、対応処理装置に送信したデータに反映する。
【0106】
図11は、MECFar200による処理の流れの一例を概略的に示す。ここでは、MECFar200が、アプリケーションの利用要求を待ち受けている状態を開始状態として説明する。
【0107】
S702では、利用要求取得部206が、通信端末500からアプリケーションの利用要求を取得する。ここでは、利用要求に通信端末500の情報及びルート情報が含まれているものとして説明する。S704では、処理装置決定部210が、S702において受信した利用要求に含まれる通信端末500の情報を位置情報サーバ140に送信して、通信端末500の位置情報を位置情報サーバ140から受信する。
【0108】
S706では、処理装置決定部210が、S704において受信した通信端末500の位置情報に基づいて、提供処理装置を決定する。S708では、処理装置決定部210が、S702において受信したルート情報を用いて、S406において決定した提供処理装置に対応する1又は複数の対応処理装置を決定する。S710では、送信制御部220が、S706及びS708において決定された提供処理装置及び対応処理装置に、利用要求によって要求されているアプリケーションを送信するよう制御する。当該アプリケーションによって利用されるデータに、低遅延が要求されるデータが含まれる場合、送信制御部220は、当該低遅延が要求されるデータを提供処理装置及び対応処理装置に送信するよう制御する。そして、処理を終了する。
【0109】
図12は、MECFar200又はMECNear300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本発明の実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本発明の実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0110】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD−ROMドライブ及びDVD−RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0111】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0112】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD−ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0113】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0114】
プログラムは、DVD−ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0115】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD−ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0116】
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD−ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0117】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0118】
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0119】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0120】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0121】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0122】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0123】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0124】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。