(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-15
(54)【発明の名称】仮想キャリアネットワーク
(51)【国際特許分類】
H04W 76/15 20180101AFI20231108BHJP
H04W 48/18 20090101ALI20231108BHJP
H04W 48/16 20090101ALI20231108BHJP
【FI】
H04W76/15
H04W48/18 110
H04W48/16 130
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022571852
(86)(22)【出願日】2021-11-02
(85)【翻訳文提出日】2022-11-22
(86)【国際出願番号】 US2021057669
(87)【国際公開番号】W WO2022094448
(87)【国際公開日】2022-05-05
(32)【優先日】2020-11-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】サム・ウォン,ベネディクト・セン
(72)【発明者】
【氏名】ハロルド,ネイサン・シィ
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067DD11
5K067EE02
5K067EE16
5K067HH11
(57)【要約】
モバイル機器(110)の仮想ネットワーク(30)のための方法(500)は、第1のワイヤレスネットワーク(120)および第2のワイヤレスネットワークに同時に接続された、ユーザアプリケーション(116)を実行するモバイル機器のために、複数のリモートサーバから1つのリモートサーバ(130)を選択するステップを含む。また、この方法は、第1のワイヤレスネットワークおよび第2のワイヤレスネットワーク上のモバイル機器と選択したリモートサーバとの間に少なくとも1つのトンネル(122)を含む仮想ネットワークを選択したリモートサーバとモバイル機器との間に確立するステップを含む。また、この方法は、仮想ネットワーク上でユーザアプリケーションから選択したリモートサーバにデータ(50)を送信するステップを含む。データは、選択したリモートサーバによって受信されると、選択したリモートサーバに、データを宛先サーバ(60)までルーティングさせる。
【特許請求の範囲】
【請求項1】
方法(500)であって、
MVNO(モバイル仮想ネットワーク事業者)(70)に対応付けられた第1のワイヤレスネットワーク(120)および同じMVNO(70)に対応付けられた第2のワイヤレスネットワーク(120)に同時に接続された、ユーザアプリケーション(116)を実行するモバイル機器(110)のために、データ処理ハードウェア(112)が、複数のリモートサーバ(130)から1つのリモートサーバ(130)を選択するステップを含み、前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)は、地理的位置に対応付けられており、前記方法(500)は、さらに、
前記データ処理ハードウェア(112)が、前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に仮想ネットワーク(30)を確立するステップを含み、前記仮想ネットワーク(30)は、前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に少なくとも1つのトンネル(122)を含み、前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に少なくとも1つのトンネル(122)を含み、前記方法(500)は、さらに、
前記データ処理ハードウェア(112)が、前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)のうち1つを経由して、または、前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)のうち1つを経由して、前記仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)にデータ(50)を送信するステップを含み、前記データ(50)は、前記選択した1つのリモートサーバ(130)によって受信されると、前記選択した1つのリモートサーバ(130)に、前記データ(50)を宛先サーバ(60)までルーティングさせる、方法(500)。
【請求項2】
前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)は、第1サービスのデータ(50)をサポートする第1トンネル(122)と、第2サービスのデータ(50)をサポートする第2トンネル(122)とを含み、
前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)は、前記第1サービスのデータ(50)をサポートする第3トンネル(122)と、前記第2サービスのデータ(50)をサポートする第4トンネル(122)とを含み、
前記仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)にデータ(50)を送信するステップは、前記ユーザアプリケーション(116)に基づいて、前記第1のワイヤレスネットワーク(120)を経由する前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記第1トンネル(122)もしくは前記第2トンネル(122)、または、前記第2のワイヤレスネットワーク(120)を経由する前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記第3トンネル(122)もしくは前記第4トンネル(122)を選択するステップを含む、請求項1に記載の方法(500)。
【請求項3】
前記第1サービスは、インターネットサービスを含み、前記第2サービスは、テザリングサービスを含む、請求項2に記載の方法(500)。
【請求項4】
前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)に前記データ(50)を送信するステップの後、
前記データ処理ハードウェア(112)が、前記モバイル機器(110)を、ユーザWi-Fi(Wireless Fidelity)ネットワークを含む第3のワイヤレスネットワーク(120U)に接続するステップと、
前記データ処理ハードウェア(112)が、前記第3のワイヤレスネットワーク(120U)で前記ユーザアプリケーション(116)から前記宛先サーバ(60)にデータ(50)を送信するステップとをさらに含む、請求項1~3のいずれか1項に記載の方法(500)。
【請求項5】
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択するステップは、前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)の前記地理的位置に基づく、請求項1~4のいずれか1項に記載の方法(500)。
【請求項6】
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択するステップの前に、
前記データ処理ハードウェア(112)が、ネットワーク基本設定(450)に基づいて前記第1のワイヤレスネットワーク(120)または前記第2のワイヤレスネットワーク(120)から、優先ワイヤレスネットワーク(120)を選択するステップをさらに含み、
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択するステップは、前記選択した優先ワイヤレスネットワーク(120)に基づく、請求項5に記載の方法(500)。
【請求項7】
前記優先ワイヤレスネットワーク(120)を選択するステップの後、
前記データ処理ハードウェア(112)が、前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)の前記地理的位置に基づいて、前記複数のリモートサーバ(130)から第2のリモートサーバ(130)を選択するステップと、
前記データ処理ハードウェア(112)が、前記モバイル機器(110)と前記選択した第2のリモートサーバ(130)との間に第2の仮想ネットワーク(30)を確立するステップと、
前記データ処理ハードウェア(112)が、前記第2の仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した第2のリモートサーバ(130)にデータ(50)を送信するステップとをさらに含み、前記データ(50)は、前記選択した第2のリモートサーバ(130)によって受信されると、前記選択した第2のリモートサーバ(130)に、前記データ(50)を前記宛先サーバ(60)までルーティングさせる、請求項6に記載の方法(500)。
【請求項8】
前記ユーザアプリケーション(116)は、VPN(仮想プライベートネットワーク)アプリケーション(116)を含み、前記宛先サーバ(60)は、前記VPNアプリケーション(116)に対応付けられたVPNサーバを含む、請求項1~7のいずれか1項に記載の方法(500)。
【請求項9】
前記データ処理ハードウェア(112)が、前記第1のワイヤレスネットワーク(120)が前記第2のワイヤレスネットワーク(120)と同じMVNO(70)に対応付けられているかどうかを判断するステップをさらに含む、請求項1~8のいずれか1項に記載の方法(500)。
【請求項10】
前記第1のワイヤレスネットワーク(120)は、セルラーネットワークを含み、前記第2のワイヤレスネットワーク(120)は、Wi-Fi(Wireless Fidelity)ネットワークを含む、請求項1~9のいずれか1項に記載の方法(500)。
【請求項11】
システム(100)であって、
モバイル機器(110)のデータ処理ハードウェア(112)と、
前記データ処理ハードウェア(112)と通信するメモリハードウェア(114)とを備え、前記メモリハードウェア(114)は、命令を格納し、前記命令は、前記データ処理ハードウェア(112)上で実行されると、前記データ処理ハードウェア(112)に動作を実行させ、前記動作は、
MVNO(モバイル仮想ネットワーク事業者)(70)に対応付けられた第1のワイヤレスネットワーク(120)および同じMVNO(70)に対応付けられた第2のワイヤレスネットワーク(120)に同時に接続された、ユーザアプリケーション(116)を実行する前記モバイル機器(110)のために、複数のリモートサーバ(130)から1つのリモートサーバ(130)を選択することを含み、前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)は、地理的位置に対応付けられており、前記動作は、さらに、
前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に仮想ネットワーク(30)を確立することを含み、前記仮想ネットワーク(30)は、前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に少なくとも1つのトンネル(122)を含み、前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間に少なくとも1つのトンネル(122)を含み、前記動作は、さらに、
前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)のうち1つを経由して、または、前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)のうち1つを経由して、前記仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)にデータ(50)を送信することを含み、前記データ(50)は、前記選択した1つのリモートサーバ(130)によって受信されると、前記選択した1つのリモートサーバ(130)に、前記データ(50)を宛先サーバ(60)までルーティングさせる、システム(100)。
【請求項12】
前記第1のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)は、第1サービスのデータ(50)をサポートする第1トンネル(122)と、第2サービスのデータ(50)をサポートする第2トンネル(122)とを含み、
前記第2のワイヤレスネットワーク(120)上の前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記少なくとも1つのトンネル(122)は、前記第1サービスのデータ(50)をサポートする第3トンネル(122)と、前記第2サービスのデータ(50)をサポートする第4トンネル(122)とを含み、
前記仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)にデータ(50)を送信することは、前記ユーザアプリケーション(116)に基づいて、前記第1のワイヤレスネットワーク(120)を経由する前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記第1トンネル(122)もしくは前記第2トンネル(122)、または、前記第2のワイヤレスネットワーク(120)を経由する前記モバイル機器(110)と前記選択した1つのリモートサーバ(130)との間の前記第3トンネル(122)もしくは前記第4トンネル(122)を選択することを含む、請求項11に記載のシステム(100)。
【請求項13】
前記第1サービスは、インターネットサービスを含み、前記第2サービスは、テザリングサービスを含む、請求項12に記載のシステム(100)。
【請求項14】
前記ユーザアプリケーション(116)から前記選択した1つのリモートサーバ(130)に前記データ(50)を送信することの後、前記動作は、さらに、
前記モバイル機器(110)を、ユーザWi-Fi(Wireless Fidelity)ネットワークを含む第3のワイヤレスネットワーク(120U)に接続することと、
前記第3のワイヤレスネットワーク(120U)で前記ユーザアプリケーション(116)から前記宛先サーバ(60)にデータ(50)を送信することとを含む、請求項11~13のいずれか1項に記載のシステム(100)。
【請求項15】
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択することは、前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)の前記地理的位置に基づく、請求項11~14のいずれか1項に記載のシステム(100)。
【請求項16】
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択することの前に、前記動作は、さらに、
ネットワーク基本設定(450)に基づいて前記第1のワイヤレスネットワーク(120)または前記第2のワイヤレスネットワーク(120)から、優先ワイヤレスネットワーク(120)を選択することを含み、
前記複数のリモートサーバ(130)から前記1つのリモートサーバ(130)を選択することは、前記選択した優先ワイヤレスネットワーク(120)に基づく、請求項15に記載のシステム(100)。
【請求項17】
前記優先ワイヤレスネットワーク(120)を選択するステップの後、前記動作は、さらに、
前記複数のリモートサーバ(130)に含まれる各リモートサーバ(130)の前記地理的位置に基づいて、前記複数のリモートサーバ(130)から第2のリモートサーバ(130)を選択することと、
前記モバイル機器(110)と前記選択した第2のリモートサーバ(130)との間に第2の仮想ネットワーク(30)を確立することと、
前記第2の仮想ネットワーク(30)上で前記ユーザアプリケーション(116)から前記選択した第2のリモートサーバ(130)にデータ(50)を送信することとをさらに含み、前記データ(50)は、前記選択した第2のリモートサーバ(130)によって受信されると、前記選択した第2のリモートサーバ(130)に、前記データ(50)を前記宛先サーバ(60)までルーティングさせる、請求項16に記載のシステム(100)。
【請求項18】
前記ユーザアプリケーション(116)は、VPN(仮想プライベートネットワーク)アプリケーション(116)を含み、前記宛先サーバ(60)は、前記VPNアプリケーション(116)に対応付けられたVPNサーバを含む、請求項11~17のいずれか1項に記載のシステム(100)。
【請求項19】
前記動作は、さらに、前記第1のワイヤレスネットワーク(120)が前記第2のワイヤレスネットワーク(120)と同じMVNO(70)に対応付けられているかどうかを判断することを含む、請求項11~18のいずれか1項に記載のシステム(100)。
【請求項20】
前記第1のワイヤレスネットワーク(120)は、セルラーネットワークを含み、前記第2のワイヤレスネットワーク(120)は、Wi-Fi(Wireless Fidelity)ネットワークを含む、請求項11~19のいずれか1項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示は、ユーザデバイスの仮想キャリアネットワークに関する。
【背景技術】
【0002】
背景
モバイル機器(たとえば、スマートフォン)およびその他のユーザデバイスは、通常、異なるワイヤレス接続技術(たとえば、セルラー、Wi-Fi、Bluetooth(登録商標)など)のホストを提供する。モバイルデータのコストを抑えるために、MNO(モバイルネットワーク事業者)およびMNVO(モバイル仮想ネットワーク事業者)は、さらなるより低コストのネットワーク(たとえば、Wi-Fiネットワーク)を頻繁に仲介させて、可能な場合に顧客のモバイルデータを、セルラー接続(たとえば、4G、5Gなど)からより低コストのネットワークにオフロードさせる。最近のモバイルオペレーティングシステムでは、複数のキャリアネットワークにとって便利なモビリティソリューションおよびユーザエクスペリエンスを提供できない。
【発明の概要】
【0003】
概要
本開示の一態様は、モバイル機器の仮想キャリアネットワークを提供する。方法は、MVNO(モバイル仮想ネットワーク事業者)に対応付けられた第1のワイヤレスネットワークおよび同じMVNOに対応付けられた第2のワイヤレスネットワークに同時に接続された、ユーザアプリケーションを実行するモバイル機器のために、データ処理ハードウェアが、複数のリモートサーバから1つのリモートサーバを選択するステップを含む。複数のリモートサーバに含まれる各リモートサーバは、地理的位置に対応付けられる。また、この方法は、データ処理ハードウェアが、モバイル機器と選択した1つのリモートサーバとの間に仮想ネットワークを確立するステップを含む。仮想ネットワークは、第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間に少なくとも1つのトンネルを含み、第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間に少なくとも1つのトンネルを含む。また、この方法は、データ処理ハードウェアが、第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルのうち1つを経由して、または、第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルのうち1つを経由して、仮想ネットワーク上でユーザアプリケーションから選択した1つのリモートサーバにデータを送信するステップを含む。データは、選択した1つのリモートサーバによって受信されると、選択した1つのリモートサーバに、データを宛先サーバまでルーティングさせる。
【0004】
本開示の実施態様は、下記のオプションの特徴のうち1つ以上を含み得る。いくつかの実施態様では、第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルは、第1サービスのデータをサポートする(supporting)第1トンネルと、第2サービスのデータをサポートする第2トンネルとを含む。第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルは、第1サービスのデータをサポートする第3トンネルと、第2サービスのデータをサポートする第4トンネルとを含んでもよい。この実施態様では、仮想ネットワーク上でユーザアプリケーションから選択した1つのリモートサーバにデータを送信するステップは、ユーザアプリケーションに基づいて、第1のワイヤレスネットワークを経由するモバイル機器と選択した1つのリモートサーバとの間の第1トンネルもしくは第2トンネル、または、第2のワイヤレスネットワークを経由するモバイル機器と選択した1つのリモートサーバとの間の第3トンネルもしくは第4トンネルを選択するステップを含む。
【0005】
いくつかの例では、第1サービスは、インターネットサービスを含み、第2サービスは、テザリングサービスを含む。オプションで、この方法は、ユーザアプリケーションから選択した1つのリモートサーバにデータを送信するステップの後、データ処理ハードウェアが、モバイル機器を、第3のワイヤレスネットワークに接続するステップをさらに含む。第3のワイヤレスネットワークは、ユーザWi-Fi(Wireless Fidelity)ネットワークを含む。この例では、また、この方法は、データ処理ハードウェアが、第3のワイヤレスネットワークでユーザアプリケーションから宛先サーバにデータを送信するステップを含む。
【0006】
複複数のリモートサーバから1つのリモートサーバを選択するステップは、複数のリモートサーバに含まれる各リモートサーバの地理的位置に基づいてもよい。いくつかの実施態様では、この方法は、複数のリモートサーバから1つのリモートサーバを選択するステップの前に、データ処理ハードウェアが、ネットワーク基本設定に基づいて第1のワイヤレスネットワークまたは第2のワイヤレスネットワークから、優先ワイヤレスネットワークを選択するステップをさらに含む。ここで、複数のリモートサーバから1つのリモートサーバを選択するステップは、選択した優先ワイヤレスネットワークに基づく。いくつかの例では、方法は、優先ワイヤレスネットワークを選択するステップの後、データ処理ハードウェアが、複数のリモートサーバに含まれる各リモートサーバの地理的位置に基づいて、複数のリモートサーバから第2のリモートサーバを選択するステップをさらに含む。また、方法は、データ処理ハードウェアが、モバイル機器と選択した第2のリモートサーバとの間に第2の仮想ネットワークを確立するステップと、データ処理ハードウェアが、第2の仮想ネットワーク上でユーザアプリケーションから選択した第2のリモートサーバにデータを送信するステップとを含んでもよい。データは、選択した第2のリモートサーバによって受信されると、選択した第2のリモートサーバに、データを宛先サーバまでルーティングさせる。
【0007】
オプションで、ユーザアプリケーションは、VPN(仮想プライベートネットワーク)アプリケーションを含む。宛先サーバは、VPNアプリケーションに対応付けられたVPNサーバを含んでもよい。いくつかの実施態様では、方法は、データ処理ハードウェアが、第1のワイヤレスネットワークが第2のワイヤレスネットワークと同じMVNOに対応付けられているかどうかを判断するステップをさらに含む。いくつかの例では、第1のワイヤレスネットワークは、セルラーネットワークを含み、第2のワイヤレスネットワークは、Wi-Fi(Wireless Fidelity)ネットワークを含む。
【0008】
本開示の別の態様は、モバイル機器の仮想キャリアネットワークを確立するためのシステムを提供する。システムは、モバイル機器のデータ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを備える。メモリハードウェアは、命令を格納し、命令は、データ処理ハードウェア上で実行されると、データ処理ハードウェアに動作を実行させる。これらの動作は、MVNO(モバイル仮想ネットワーク事業者)に対応付けられた第1のワイヤレスネットワークおよび同じMVNOに対応付けられた第2のワイヤレスネットワークに同時に接続された、ユーザアプリケーションを実行するモバイル機器のために、複数のリモートサーバから1つのリモートサーバを選択することを含む。複数のリモートサーバに含まれる各リモートサーバは、地理的位置に対応付けられる。また、動作は、モバイル機器と選択した1つのリモートサーバとの間に仮想ネットワークを確立することを含む。仮想ネットワークは、第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間に少なくとも1つのトンネルを含み、第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間に少なくとも1つのトンネルを含む。動作は、さらに、第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルのうち1つを経由して、または、第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルのうち1つを経由して、仮想ネットワーク上でユーザアプリケーションから選択した1つのリモートサーバにデータを送信することを含む。データは、選択した1つのリモートサーバによって受信されると、選択した1つのリモートサーバに、データを宛先サーバまでルーティングさせる。
【0009】
この態様は、下記のオプションの特徴のうち1つ以上を含み得る。いくつかの実施態様では、記第1のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルは、第1サービスのデータをサポートする第1トンネルと、第2サービスのデータをサポートする第2トンネルとを含む。第2のワイヤレスネットワーク上のモバイル機器と選択した1つのリモートサーバとの間の少なくとも1つのトンネルは、第1サービスのデータをサポートする第3トンネルと、第2サービスのデータをサポートする第4トンネルとを含んでもよい。この実施態様では、仮想ネットワーク上でユーザアプリケーションから選択した1つのリモートサーバにデータを送信することは、ユーザアプリケーションに基づいて、第1のワイヤレスネットワークを経由するモバイル機器と選択した1つのリモートサーバとの間の第1トンネルもしくは第2トンネル、または、第2のワイヤレスネットワークを経由するモバイル機器と選択した1つのリモートサーバとの間の第3トンネルもしくは第4トンネルを選択することを含む。
【0010】
いくつかの例では、第1サービスは、インターネットサービスを含み、第2サービスは、テザリングサービスを含む。オプションで、ユーザアプリケーションから選択した1つのリモートサーバにデータを送信することの後、動作は、さらに、モバイル機器を、第3のワイヤレスネットワークに接続することを含む。第3のワイヤレスネットワークは、ユーザWi-Fi(Wireless Fidelity)ネットワークを含む。また、この例では、動作は、第3のワイヤレスネットワークでユーザアプリケーションから宛先サーバにデータを送信することとを含む。
【0011】
複数のリモートサーバから1つのリモートサーバを選択することは、複数のリモートサーバに含まれる各リモートサーバの地理的位置に基づいてもよい。いくつかの実施態様では複数のリモートサーバから1つのリモートサーバを選択することの前に、動作は、さらに、ネットワーク基本設定に基づいて第1のワイヤレスネットワークまたは第2のワイヤレスネットワークから、優先ワイヤレスネットワークを選択することを含む。ここで、複数のリモートサーバから1つのリモートサーバを選択することは、選択した優先ワイヤレスネットワークに基づく。いくつかの例では、優先ワイヤレスネットワークを選択するステップの後、動作は、さらに、複数のリモートサーバに含まれる各リモートサーバの地理的位置に基づいて、複数のリモートサーバから第2のリモートサーバを選択することを含む。また、動作は、モバイル機器と選択した第2のリモートサーバとの間に第2の仮想ネットワークを確立することと、第2の仮想ネットワーク上でユーザアプリケーションから選択した第2のリモートサーバにデータを送信することとを含んでもよい。データは、選択した第2のリモートサーバによって受信されると、選択した第2のリモートサーバに、データを宛先サーバまでルーティングさせる。
【0012】
オプションで、ユーザアプリケーションは、VPN(仮想プライベートネットワーク)アプリケーションを含む。宛先サーバは、VPNアプリケーションに対応付けられたVPNサーバを含んでもよい。いくつかの実施態様では、動作は、さらに、第1のワイヤレスネットワークが第2のワイヤレスネットワークと同じMVNOに対応付けられているかどうかを判断することを含む。いくつかの例では、第1のワイヤレスネットワークは、セルラーネットワークを含み、第2のワイヤレスネットワークは、Wi-Fi(Wireless Fidelity)ネットワークを含む。
【0013】
1つ以上の本開示の実施態様の詳細を、添付の図面および以下の説明に記載する。その他の態様、特徴、および利点は、本明細書および図面から、ならびに請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1】2つ以上のキャリアワイヤレスネットワークでモバイル機器の仮想キャリアネットワークを提供するための例示的なシステムの概略図である。
【
図2】仮想キャリアネットワークマネージャの例示的な構成要素の概略図である。
【
図3】仮想キャリアネットワークマネージャおよびユーザネットワークマネージャの概略図である。
【
図4A】モビリティアンカーを切り替える仮想キャリアネットワークマネージャの概略図である。
【
図4B】モビリティアンカーを切り替える仮想キャリアネットワークマネージャの概略図である。
【
図5】モバイル機器の仮想キャリアネットワークを提供する方法の動作の例示的な構成のフローチャートである。
【
図6】本明細書に記載のシステムおよび方法を実現するために用いられ得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0015】
様々な図面に含まれている同じ参照記号は、同じ要素を示す。
詳細な説明
MNO(モバイルネットワーク事業者)およびモバイル仮想ネットワーク事業者(MVNO)などのキャリアは、複数のヘテロジニアスネットワークタイプ(たとえば、セルラーネットワークおよびWi-Fiネットワーク)を経由する接続性を以前にも増して提供している。キャリアは、より安価なネットワーク(たとえば、セルラーからWi-Fiへ)にトラフィックを移動させることによって、日和見データオフロードを利用してデータコストを減らし得る。しかしながら、従来のモバイルOS(オペレーティングシステム)は、基盤となるネットワークの抽象化は行わず、ユーザエクスペリエンスの低下および/またはモバイル機器がネットワークを切り替える際の接続性の低下につながる。
【0016】
この課題を解決するための現在の技術には、概して、複数のワイヤレスネットワーク間のVPN(仮想プライベートネットワーク)をリモートVPNサーバまで延在させることを伴う。これにより、ユーザおよびモバイル機器のネットワーク抽象化が提供されるが、いくつかの欠点もある。たとえば、VPNは、ユーザ仲介ネットワーク(自宅Wi-Fiネットワークなど)を含む、モバイル機器に接続されたすべてのネットワークからのトラフィックを集約する。ユーザ仲介ネットワーク上のデータはこれからVPNサービスを横断しなければならなくなり、プライバシー問題が生じ、概して、少なくともユーザの同意を必要とする。また、VPNでは、ユーザデバイス上の複数のプロファイルやそれぞれ異なるデータサービス(たとえば、テザリング)のモビリティを提供できない。すなわち、通常、すべてのプロファイルおよびすべてのデータサービスが、同じVPNを利用しなければならない。さらに別の例として、VPNは、ユーザが自身のVPNアプリケーションを利用することを制限してしまう。さらには、多くの場合、VPNは、ユーザ制御可能であるため、せいぜい脆弱性のある抽象化しか提供できない。
【0017】
本明細書における実施態様は、ユーザデバイス上で動作する、ユーザデバイスと、ワイヤレスネットワーク事業者(たとえば、MVNO(モバイル仮想ネットワーク事業者))に対応付けられた複数のワイヤレスネットワークとの間で仮想ネットワーク(たとえば、仮想キャリアネットワーク)を確立するための仮想キャリアネットワークマネージャを対象とする。仮想ネットワークは、複数のリモートサーバから選択された、モビリティアンカーとして機能するリモートサーバを含む。また、仮想ネットワークは、ユーザデバイスと選択されたリモートサーバとの間に1つ以上のトンネルを含む。ユーザデバイス上で実行されているアプリケーションは、仮想ネットワークの当該1つ以上のトンネルを経由して、選択されたリモートサーバとデータを送受信し、当該リモートサーバは、データを宛先サーバまでルーティングする。
【0018】
図1を参照すると、いくつかの実施態様では、例示的なワイヤレス通信環境(たとえば、システム)100は、同時に少なくとも2つのワイヤレスネットワーク120、120a~bを通じて外部ネットワーク40と通信するモバイル機器110(本明細書において、「ユーザデバイス」とも称す)を含む。たとえば、ユーザデバイス110は、キャリアセルラーネットワーク120aおよびキャリアWi-Fiネットワーク120bを経由して外部ネットワーク40と通信を行ってもよい。これらのワイヤレスネットワーク120は、例示に過ぎず、ユーザデバイス110は、任意の数のその他の種類のワイヤレスネットワーク(たとえば、CBRS(市民ブロードバンド無線サービス)、Bluetoothなど)を利用して外部ネットワーク40と通信を行ってもよい。キャリアセルラーネットワーク120aは、GPRS(General Packet Radio Service)ネットワーク、UMTS(Universal Mobile Telecommunications System)ネットワーク、HSPA(High Speed Packet Access)ネットワーク、enhanced-HSPA(H+)ネットワーク、EDGE(Enhanced Data Rates for Global System for Mobile Communications)(GSM(登録商標))ネットワーク、LTE(ロングタームエボリューション)RAN(無線アクセスネットワーク)(たとえば、4G/5GLTE)、または、たとえばMeNB(macro-cell evolved Node B)などの基地局を経由した外部ネットワーク40からユーザデバイス110へのデータパケット50(本明細書において、単に「データ」と称する)および/またはその他のサービスの無線通信をサポートする5GNR(New Radio)ネットワークを含み得る。Wi-Fiネットワーク120bは、データパケット50の無線通信もサポートする任意のバージョンのWi-Fi(たとえば、802.11n、802.11acなど)を含み得る。いくつかの例では、ユーザデバイス110は、同じ種類の複数のワイヤレスネットワーク120に同時に接続する。たとえば、ユーザデバイス110は、それぞれ異なるキャリア70が運用する2つの別個のキャリアセルラーネットワーク120a、またはアクセスポイントがそれぞれ異なる複数のキャリアWi-Fiネットワーク120bに同時に接続するための機能を含み得る。
【0019】
キャリアセルラーネットワーク120aは、キャリアセルラーネットワーク120aを経由して加入ユーザデバイス110にワイヤレス通信のサービスを提供するMNO(モバイルネットワーク事業者)またはMNVO(モバイル仮想ネットワーク事業者)に対応付けられる。また、MNOまたはMVNOは、ワイヤレスサービスプロバイダ、無線キャリア、携帯電話会社、モバイルネットワーク事業者、またはモバイルネットワークキャリアなどを称され得る。「キャリア」という用語は、本明細書において、MNOまたはMVNOを指すために用いられ得る。「ワイヤレスネットワーク事業者」という用語は、本明細書において、ワイヤレスネットワーク120を運用または仲介するエンティティを指すために用いられ得、キャリア仲介ワイヤレスネットワーク120を運用/仲介するキャリア(たとえば、MNOまたはMVNO)またはユーザ仲介ワイヤレスネットワーク120を運用/仲介するユーザ10を含み得る。
【0020】
本明細書において使用するとき、キャリア仲介ワイヤレスネットワーク120(本明細書において、単に「キャリアワイヤレスネットワーク120」と称され得る)は、キャリアが提供するサービスにユーザデバイス110が加入する1つの特定のキャリア70(たとえば、MNOまたはMVNO)によって管理、仲介、または制御された任意のワイヤレスネットワーク120を含む。すなわち、ユーザ10がワイヤレスネットワーク120を制御または管理することはない。キャリア仲介ネットワーク120とは、キャリアが提供するSIMプロファイルまたはキャリアが提供するSIMプロファイルによって認証され得るキャリアが提供するアプリケーションの一方がクレデンシャルを提供したネットワークなど、キャリアがクレデンシャルを提供したネットワークである。たとえば、UICC(Universal Integrated Circuit Card)上に設けられたSIMプロファイルは、ユーザデバイス110がキャリアセルラーネットワーク120aに繋がって認証できるようにする。または、キャリアアプリケーションは、OS(オペレーティングシステム)111によって、SIMプロファイルにアクセスすることが認証されている。キャリアアプリケーションは、キャリアの秘密鍵を用いて暗号的に署名され、SIMプロファイルに含まれるアプリケーションのシグネチャによって認証され得る。キャリアアプリケーションは、オペレーティングシステム111によって、たとえば、キャリアWi-Fiアクセスポイントにアクセスするためのクレデンシャルを提供することが許可される。いくつかの例では、認証されたキャリアアプリケーションがWPAパスワードもしくはホットスポット2.0証明書を提供し得る、または、アクセスポイントに接続するためにクレデンシャルを必要としないオープンネットワークの場合は、キャリアは、ユーザが介在する必要なくユーザデバイス110をアクセスポイントに接続させる、もしくは、ネットワークに接続する提案をユーザに対して行い、これをユーザが受け入れるまたは拒否することができる。オープンワイヤレスネットワーク120へのキャリア仲介接続の場合、利用規約への同意、またはパスコードもしくはその他のログイン情報の提供など、インターネットアクセスを得るための「キャプティブポータル」の要件を満たすためのさらなるステップが必要になる。キャプティブポータルを有するオープンネットワーク120へのキャリア仲介接続の場合、キャリアは、ユーザに代わって条件を承諾し得る、または、電子メールアドレス、パスコードもしくはその他のログイン情報を自動的に提供し得る。自動的とは、WISPrなどのプロトコルを介して、またはウェブフォームの自動提出によって、ログイン情報を提供することを意味する。1つのユーザデバイス110が、複数のキャリア仲介ワイヤレスネットワーク120を同時にサポートできる。
【0021】
ユーザ仲介ワイヤレスネットワーク120が最終的にはユーザ10によって管理、仲介、または制御されるよう、ユーザ仲介ワイヤレスネットワーク120は、ユーザデバイス110が明示的に加入していないワイヤレスネットワーク事業者(たとえば、キャリア)70に対応付けられた任意のワイヤレスネットワーク120を含む。ユーザ仲介ネットワークは、たとえばアクセスポイント、たとえばWPAパスワードもしくはホットスポット2.0証明書などのユーザがインストールした証明書に、必要であれば、接続するための、ユーザが自身のクレデンシャルを提供したネットワークであり、アクセスポイントに接続するためのクレデンシャルを必要としないオープンネットワークの場合、リストからネットワークを選択する、またはオペレーティングシステムが選んだ候補を受け入れるなど、ユーザは、ネットワークに接続するためにアファーマティブアクションを行わなければならない。いかなる選択も、デバイスがネットワークに最初に公開された時しか起こり得ない。ユーザ仲介オープンネットワーク上では、利用規約への同意、または電子メールアドレス、パスコードもしくはその他のログイン情報の提供など、インターネットアクセスを得るための「キャプティブポータル」の要件を満たすためにさらなる手動ステップが必要であり得る。
【0022】
1つのデバイス、たとえば、アクセスポイントは、ユーザ仲介ネットワークと、キャリア仲介ネットワークとの両方へのアクセスを提供できる。APを所有、レンタル、または制御するユーザは、その他のユーザがアクセスポイントを利用してインターネットにアクセスすることを可能にできる、たとえば、ユーザは、ユーザがその他のユーザに提供するWEPパスワードを作成する。アクセスポイントは、そのようにアクセスされた場合、ユーザ仲介ネットワークへのアクセスを提供する。ケーブルサービスプロバイダまたはDSLサービスプロバイダが、同じアクセスポイントからのキャリア仲介ネットワークサービスを運用してもよい。キャリアアプリがプロビジョニングしたHS2.0証明書付きのデバイスは、同じアクセスポイントに自動的に接続されることになる。ユーザによる介在や、パスワードは、必要としない。
【0023】
ISP(インターネットサービスプロバイダ)に対応するワイヤレスネットワーク事業者70が提供するインターネットサービスをユーザが契約しているため、インターネットサービスにいつでもアクセスするためにたくさんの異なるワイヤレス対応ユーザデバイス110からいずれか1つを選択できる例では、選択されたユーザデバイス110がインターネットサービスを利用するためにアクセスするワイヤレスネットワーク120(たとえば、キャリアWi-Fiネットワーク120b)が、ユーザ仲介ワイヤレスネットワーク120に相当する。ここで、ユーザ10は、インターネットサービスに接続するモデム、および当該モデムと通信しているワイヤレスAP(アクセスポイント)(たとえば、ワイヤレスルータ)を制御して、選択されたユーザデバイス110がインターネットサービスを利用するためにワイヤレス接続を確立し得るLAN(ローカルエリアネットワーク)を提供し得る。その他の例では、ユーザ仲介ワイヤレスネットワーク120は、単に、ユーザデバイス110と、ユーザデバイス110の近くにある別のデバイスとの間のBluetooth接続(または、その他のワイヤレス接続)を含み得る。一方で、ユーザ10に対応付けられた特定のユーザデバイス110が特定のキャリア70(たとえば、MNOまたはMVNO)が提供するワイヤレス通信のサービスに加入している場合、ワイヤレス通信のサービスを受信するために加入ユーザデバイス110がアクセスするワイヤレスネットワーク120(たとえば、セルラーおよび/またはキャリアWi-Fiネットワーク120a、120b)が、キャリア仲介ワイヤレスネットワーク120に相当する。いくつかの実施態様では、ユーザデバイス110上にインストールされているSIM(加入者識別モジュール)は、特定のキャリア70に対応付けられたキャリア仲介ワイヤレスネットワーク120にユーザデバイス110が接続することを可能にして認証するための、特定のキャリア70によって定義されているプロファイルを含む。しかしながら、ユーザ10が、特定のキャリア70に対応付けられたこれらのキャリア仲介ワイヤレスネットワーク120にその他のユーザデバイス110を接続させたい場合、これらのその他のユーザデバイス110は、各々、特定のキャリア70が提供するワイヤレス通信のサービスに個々に加入しなければならない。これらの実施態様では、ユーザデバイス110は、特定のキャリア70ではない1つ以上のワイヤレスネットワーク事業者70に対応付けられたユーザ仲介ワイヤレスネットワーク120に自由に接続し得る。図示した例では、ユーザデバイス110がモバイル機器110として示されているが、ユーザデバイス110は、タブレット端末、ラップトップ、デスクトップ、スマートウォッチ、スマートスピーカー、スマートディスプレイ、スマート家電などのワイヤレスネットワーク120に接続可能な任意のデバイスを含み得るが、これらに限定されない。
【0024】
ユーザデバイス110は、コンピューティングリソース112(たとえば、データ処理ハードウェア)および/またはストレージリソース114(たとえば、メモリハードウェア)を含む。データ処理ハードウェア112は、オペレーティングシステム111と、1つ以上のユーザソフトウェアアプリケーション116とを実行する。さらに、データ処理ハードウェア112は、仮想キャリアネットワークマネージャ150を実行する。いくつかの実施態様では、オペレーティングシステム111は、仮想キャリアネットワークマネージャ150の機能を実行する。
【0025】
ユーザデバイス110は、様々な異なるオペレーティングシステム111を利用し得る。ユーザデバイス110がモバイル機器である例では、ユーザデバイス110は、グーグル社が開発したANDROID(登録商標)、アップルが開発したIOS(登録商標)、またはマイクロソフトが開発したWINDOWS PHONE(登録商標)を含む、オペレーティングシステムを実行し得るが、これらに限定されない。したがって、ユーザデバイス110上で動作するオペレーティングシステム111は、ANDROID(登録商標)、IOS(登録商標)、またはWINDOWS PHONE(登録商標)のうち1つを含み得るが、これらに限定されない。いくつかの例では、ユーザデバイスは、マイクロソフトによるMICROSOFT WINDOWS(登録商標)、アップルによるMAC OS(登録商標)、またはLinux(登録商標)を含むオペレーティングシステムを実行し得るが、これらに限定されない。
【0026】
ユーザデバイス110は、少なくとも1つのモデム165(ベースバンドまたはベースバンドプロセッサとも称す)をさらに備える。モデム165は、ユーザデバイスがワイヤレスネットワーク120とワイヤレスに通信することを可能にする1つ以上のアンテナを備える。モデム165は、様々な周波数(たとえば、700MHz、900MHz、2.4GHz、5.0GHzなど)上で同時に動作する1つ以上の無線と通信し得る。モデム165は、送受信機能を提供する様々な構成要素を備え得る(プロセッサ、メモリなど)。いくつかの実施態様では、データ処理ハードウェア112は、モデム165を含む。すなわち、データ処理ハードウェア112によって実行されるタスクは、いくつかの例では、代わりにモデム165によって実行され得、モデム165によって実行されるタスクは、いくつかの例では、代わりにデータ処理ハードウェア112によって実行され得る。
【0027】
ユーザデバイス110は、ユーザデバイス110を特定して特定の種類のキャリア仲介ワイヤレスネットワーク120に接続させるための1つ以上の対応SIM(加入者識別モジュール)118をさらに備える。たとえば、SIM118は、ユーザデバイス110がキャリアセルラーネットワーク120aに接続して外部ネットワーク40で宛先サーバ60にアクセスすることを許可するためのクレデンシャルを有する対応するSIMプロファイルを含み得る。同様に、SIM118は、キャリアセルラーネットワーク120aを管理するネットワーク事業者ではなくワイヤレスネットワーク事業者70が管理するその他のキャリア仲介ワイヤレスネットワーク120にユーザデバイス110が接続することを許可するための対応するクレデンシャルを有する1つ以上の追加のSIMプロファイルを含み得る。いくつかの例では、当該1つ以上のSIM118は、1つ以上のeSIM(埋め込み型SIM)と1つ以上の物理SIMとの任意の組合せを含む。
【0028】
仮想キャリアネットワークマネージャ150(本明細書において、「VCNマネージャ150」とも称す)は、ユーザデバイス110とリモートサーバ130、130a~bとの間に仮想ネットワーク30、30a~b(本明細書において、「仮想キャリアネットワーク」または「VCN」とも称す)を確立する。詳細は後述するが、VCNマネージャ150は、複数のリモートサーバ130の中から当該リモートサーバ130を選択する。各リモートサーバ130は、地理的位置に対応付けられ得る。いくつかの例では、これらの地理的位置は、それぞれ異なる。たとえば、第1のリモートサーバ130aは、キャリアセルラーネットワーク120aをサポートするデータセンターに対応付けられた地理的位置またはその近くの地理的位置に対応付けられる。すなわち、キャリアセルラーネットワーク120aを横断するデータパケット50は、キャリアセルラーネットワーク120aに対応付けられた1つ以上のサーバ(図示せず)によって処理される。第1のリモートサーバ130aは、キャリアセルラーネットワーク120aをサポートするデータセンターに対応付けられた1つ以上のサーバに地理的に近い場所に位置し得る(たとえば、「共同設置」または「共同配置」される)。同様に、第2のリモートサーバ130bは、キャリアWi-Fiネットワーク120bをサポートするデータセンターまたはその近くに地理的に位置し得る。その他の例では、複数のリモートサーバ130の地理的位置は、同じである。たとえば、ワイヤレスネットワーク120に対応付けられたデータセンターは、複数のリモートサーバ130を含む。
【0029】
VCNマネージャ150は、モバイル機器110と選択したリモートサーバ130との間に、仮想ネットワーク30を確立する。たとえば、VCNマネージャ150が第1のリモートサーバ130aを選択した場合、VCNマネージャ150は、モバイル機器110と第1のリモートサーバ130aとの間に、第1の仮想ネットワーク30、30aを確立する。これに代えて、VCNマネージャ150が第2のリモートサーバ130bを選択した場合、VCNマネージャ150は、モバイル機器110と第2のリモートサーバ130bとの間に、第2の仮想ネットワーク30、30bを確立する。仮想ネットワーク30は、第1のワイヤレスネットワーク120(たとえば、キャリアセルラーネットワーク120a)上でモバイル機器110と選択したリモートサーバ130との間に少なくとも1つのトンネル122、122Aa~nを含み、第2のワイヤレスネットワーク120b(たとえば、キャリアWi-Fiネットワーク120b)上でモバイル機器110と選択したリモートサーバ130との間に少なくとも1つのトンネル122、122Ba~nを含む。各トンネル122は、カプセル化によって(たとえば、IPSec(インターネットプロトコルセキュリティ)を用いるなどして)その各々のワイヤレスネットワーク120上でプライベートネットワーク通信を確立する。各トンネル122は、ユーザデバイス110と選択したリモートサーバ130との間にセキュアな通信を独立して確立し得る。これは、(たとえば、IKE(インターネット鍵交換)による)鍵交換の実行、ならびに暗号化およびその他のセキュアな通信プロシージャの確立を含み得る。いくつかの実施態様では、VCNマネージャ150は、1つ以上のワイヤレスネットワーク事業者70が(たとえば、SIM(複数可)118を介して)提供する構成とともに、IKEライブラリをコントロールプレーンとして利用し、IPSecをデータプレーンとして利用する。なお、これらのプロトコルは、例示に過ぎず、VCNマネージャ150は、その他のプロトコルを実装してもよい。
【0030】
ユーザデバイス110は、宛先サーバ60と通信するユーザソフトウェアアプリケーション116を実行する。たとえば、ユーザソフトウェアアプリケーション116は、インターネットブラウザ、ゲームアプリケーション、メッセージングアプリケーション、電子メールアプリケーション、および/またはワイヤレスネットワーク120を経由してユーザデバイス110から遠隔のその他のデバイス(たとえば、宛先サーバ60)と通信するその他のアプリケーションを含む。いくつかの例では、ユーザソフトウェアアプリケーション116は、ユーザVPNアプリケーションを含み、宛先サーバ60は、VPNアプリケーションに対応付けられたVPNサーバを含む。VCNマネージャ150は、ユーザデバイス110に接続されたキャリアワイヤレスネットワーク120のうち1つのキャリアワイヤレスネットワーク120上のトンネル122のうち1つを経由して、仮想ネットワーク30上でユーザソフトウェアアプリケーション116から選択したリモートサーバ130にデータパケット50を送信する。選択したリモートサーバ130は、データパケット50を受信すると、外部ネットワーク40を経由して宛先サーバ60にデータパケットを転送する。同様に、(外部ネットワーク40を通じて)宛先サーバ60から選択したリモートサーバ130が受信したデータパケット50は、(トンネル122を経由して)ユーザデバイス110およびユーザソフトウェアアプリケーション116に送信されるので、ユーザソフトウェアアプリケーション16と宛先サーバ60との間に、ワイヤレスネットワーク120のうち1つ以上と、外部ネットワーク40とを経由する双方向通信が確立される。
【0031】
外部ネットワーク40は、ユーザデバイス110に関連するネットワークまたはワイヤレスネットワーク120を操作するキャリア70のいずれからも独立し得る。宛先サーバ60は、ユーザデバイス110上で実行されているユーザソフトウェアアプリケーション116がデータパケット50を送受信する任意のリモートサーバであり得る。たとえば、宛先サーバ60は、ウェブコンテンツをホスティングするウェブサーバであってもよい。
【0032】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)とは、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指し得る。いくつかの例では、ソフトウェアアプリケーションを、「アプリケーション」、「アプリ」、「プログラム」と称する場合がある。アプリケーションとして、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションなどが挙げられるが、これらに限定されない。
【0033】
図2を参照すると、いくつかの実施態様では、ユーザデバイス110は、異なるサービスおよび/または異なる機能のためのそれぞれ異なるユーザソフトウェアアプリケーション(すなわち、サービスアプリケーション)116を実行する。たとえば、ユーザデバイス110は、第1サービスまたは機能を必要とするまたは利用する第1のサービスアプリケーション116、116Aを実行する。第1のサービスアプリケーション116Aは、インターネットへのアクセスを必要とするブラウザまたは電子メールアプリケーションなどのユーザアプリケーションを含み得る。また、ユーザデバイス110は、第2サービスまたは機能を必要とするまたは利用する第2のサービスアプリケーション116、116Bを実行し得る。たとえば、第2のサービスアプリケーション116Bは、ユーザデバイス110をその他の近くにあるデバイスにテザリングするテザリングアプリケーションなどのプラットフォームアプリケーション(たとえば、OSアプリケーション)を含む。ユーザデバイス110は、SMS(ショートメッセージサービス)、MMS(マルチメディアメッセージングサービス)、RCS(リッチコミュニケーションサービス)、アシストGPS(Global Positioning System)、VoIP(ボイスオーバーインターネットプロトコル)など、さらなるサービスまたは機能をサポートまたは必要とするサービスアプリケーション116(たとえば、第3のサービスアプリケーション)のクラスの任意の組合せを実行し得る。
【0034】
いくつかの例では、VCNマネージャ150は、1つ以上の種類のサービスアプリケーション116と各々がやり取りする1つ以上のサービスコネクタ210、210a~bを含む。たとえば、第1のサービスコネクタ210aは、第1のサービスアプリケーション116Aからデータパケット50を受信し、第2のサービスコネクタ210bは、第2のサービスアプリケーション116Bからデータパケット50を受信する。各サービスコネクタ210は、ワイヤレスネットワーク120ごとに、ユーザデバイス110と選択したリモートサーバ130との間にトンネル122を確立し得る。図示した例では、第1のサービスコネクタ210aは、第1のサービスアプリケーション116Aから受信したデータ50のために、第1のワイヤレスネットワーク120a上でユーザデバイス110と選択したリモートサーバ130との間に第1トンネル122aを確立する。第2のサービスコネクタ210bは、第2のサービスアプリケーション116Bから受信したデータ50のために、第1のワイヤレスネットワーク120a上でユーザデバイス110と選択したリモートサーバ(すなわち、選択したモビリティアンカー)130との間に第2トンネル122bを確立する。同様に、第1のサービスコネクタ210aは、第1のサービスアプリケーション116Aから受信したデータ50のために、第2のワイヤレスネットワーク120b上でユーザデバイス110と選択したリモートサーバ130との間に第3トンネル122cを確立し、第2のサービスコネクタ210bは、第2のサービスアプリケーション116Bから受信したデータ50のために、第2のワイヤレスネットワーク120b上でユーザデバイス110と選択したリモートサーバ130との間に第4トンネル122dを確立する。
【0035】
よって、この例では、第1のワイヤレスネットワーク120a上のユーザデバイス110と選択したリモートサーバ130との間のトンネル122は、第1のサービスアプリケーション116Aによって通信される第1サービス(たとえば、インターネットサービス)のデータ50をサポートする第1トンネル122と、第2のサービスアプリケーション116Bによって通信される第2サービス(たとえば、テザリングサービス)のデータ50をサポートする第2トンネル122bとを含む。同様に、第2のワイヤレスネットワーク120b上のユーザデバイス110と選択したリモートサーバ130との間のトンネル122は、第1のサービスアプリケーション116Aによって通信される第1サービスのデータ50をサポートする第3トンネル122cと、第2のサービスアプリケーション116Bによって通信される第2サービスのデータ50をサポートする第4トンネル122dとを含む。いくつかの実施態様では、VCNマネージャ150は、各ユーザソフトウェアアプリケーション116(たとえば、どのユーザソフトウェアアプリケーション116がデータ50を送信するか)に基づいて、第1のワイヤレスネットワーク120aを経由するユーザデバイス110と選択したリモートサーバ130との間の第1トンネル1222aもしくは第2トンネル122bを選択する、または、第2のワイヤレスネットワーク120bを経由するユーザデバイス110と選択したリモートサーバ130との間の第3トンネル122cもしくは第4トンネル122dを選択することにより、仮想ネットワーク30上でサービスアプリケーション116から選択したリモートサーバ130にデータ50を送信する。
【0036】
サービスコネクタ210は、データサービスを分離する柔軟性を維持したまま、物理ワイヤレスネットワーク120を抽象化してユーザソフトウェアアプリケーション116から切り離す(すなわち、サービスコネクタ210がデータ50を送信するためにどのトンネル122または物理ワイヤレスネットワーク120を選択するかに関係なく、この接続は、ユーザソフトウェアアプリケーション116には同じに見える)。ワイヤレスネットワーク事業者70および/またはユーザ10は、価格、優先順位、加入レベルなどを含むいくつかの理由で、データサービスの分離を利用し得る。たとえば、MNOまたはMVNOは、テザリングサービスを介して送信されたデータ50を、両方のサービスが最終的には同じ宛先サーバ60と通信することになる場合であっても、標準インターネットデータ50とは別個に請求または追跡し得る。一方で、1つの仮想化されたネットワーク接続を有するユーザソフトウェアアプリケーション116をVCNマネージャ150が代わりに提示してくれるので、サービスコネクタ210がもたらすネットワーク抽象化により、VCNマネージャ150は、ユーザソフトウェアアプリケーション116に影響を与えることなくデータ50を送信するためのワイヤレスネットワーク120を一方的に選択できるようになる。よって、仮想ネットワーク30が提供するサービスと、基盤となる物理ワイヤレスネットワーク120との間には、厳密な相関関係はない。つまり、VCNマネージャ150は、1つのトンネル122を用いてすべてのサービスをトンネリングし得る、または、個々のサービスをそれぞれ異なる独立したトンネル122に分け得る。言い換えると、トンネル122は、サービスを公開する、マッピングし直す、または仮想エンドポイントから見えないようにし得る。5Gワイヤレスネットワーク120に接続された場合、および5Gスライシングが有効になった場合、VCNマネージャ150は、各スライスを、基盤となるサービスとしてみなし得、公開されたサービスを適宜マッピングし直し得る。
【0037】
いくつかの実施態様では、VCNマネージャ150は、ユーザ10および/またはユーザソフトウェアアプリケーション116には物理キャリアワイヤレスネットワーク120の可視性がなく制御できず、代わりに仮想ネットワーク30への接続のみとやり取りするよう、ユーザ10およびユーザソフトウェアアプリケーション116に仮想ネットワーク30のみを提供する。よって、VCNマネージャ150は、用いられる基盤となるワイヤレスネットワーク120に関係なく連続して信頼できる接続性をもたらす安定したネットワーク接続をユーザ10および/またはユーザソフトウェアアプリケーション116に提供し、VCNマネージャ150は、物理ワイヤレスネットワーク120を実装の詳細としてみなし、ワイヤレスネットワーク120上で送信されるデータ50をセキュリティ保護する。
【0038】
別個の機能をサポートした状態の複数のトンネル122を各サービスコネクタ210が確立し得るので、MVNOなどのエンティティは、そのネットワークを可能な限り柔軟に構成し得る。たとえば、サービスコネクタ210がMVNO向けサービスを排他的にトンネリングする一方で、MNO向けサービスは、継続して通常稼働し得る。
【0039】
いくつかの実施態様では、VCNマネージャ150は、特定のユーザソフトウェアアプリケーション116が特定の物理ワイヤレスネットワーク120またはサービスコネクタ210にアクセスすることを制限する、さもなければ阻止する。すなわち、VCNマネージャ150は、ユーザデバイス110上で実行されているユーザソフトウェアアプリケーション116の一部またはすべてにアクセス制限を課し得る。たとえば、VCNマネージャ150は、インターネット機能をサポートするサービスコネクタ210を除くすべてのサービスコネクタ210から上位ユーザソフトウェアアプリケーション116(たとえば、電子メールアプリケーション)を制限し得る。すなわち、VCNマネージャ150は、たとえばテザリングをサポートするサービスコネクタ210に電子メールアプリケーションがアクセスすることを制限し得る。さらに別の例では、VCNマネージャ150は、キャリアアプリケーション160(すなわち、特定のワイヤレスネットワーク事業者70に対応付けられたアプリケーション)がその他のキャリアのワイヤレスネットワーク120にアクセスすることを制限し得る。すなわち、サービスコネクタ210は、同じキャリア70が運用するワイヤレスネットワーク120に接続を集約させ、2つ以上のワイヤレスネットワーク事業者70のワイヤレスネットワーク120にユーザデバイス110が接続された場合にサービスアプリケーション(すなわち、キャリアアプリケーション)116がその他のキャリアワイヤレスネットワーク120にアクセスすることを禁止し得る。オプションで、VCNマネージャ150は、ユーザソフトウェアアプリケーション116が位置情報の利用許可を与えない限り、ユーザソフトウェアアプリケーション116の、位置による影響を受けやすいワイヤレスネットワーク120(たとえば、キャリアWi-Fiネットワーク)へのアクセスまたは可視性を制限する。
【0040】
いくつかの実施態様では、VCNマネージャ150は、ユーザデバイス110に接続された各ワイヤレスネットワーク120に対応付けられたワイヤレスネットワーク事業者70を判断する。いくつかの例では、VCNマネージャ150は、第1のワイヤレスネットワーク120aが、第2のワイヤレスネットワーク120bと同じネットワーク事業者70に対応付けられているかどうかを判断する。たとえば、VCNマネージャ150は、ユーザデバイス110にインストールされているおよび/またはユーザデバイス110上で実行されている1つ以上のキャリアアプリケーション116に問い合わせ得る。キャリアアプリケーション116は、各々、特定のキャリア/ワイヤレスネットワーク事業者70、たとえば、MNOまたはMVNOに対応付けられ得る。ワイヤレスネットワーク事業者70は、キャリアアプリケーション116にデジタル署名を行い得、VCNマネージャ150は、ユーザデバイス110のSIM118に格納または対応付けられた暗号鍵によって、当該デジタル署名を検証し得る。
【0041】
VCNマネージャ150は、各ユーザソフトウェアアプリケーション116を分類し、当該分類に基づいてアクセス制限を決定し得る。たとえば、VCNマネージャ150は、アプリケーション116を、プラットフォーム(すなわち、OS)アプリケーション、システムアプリケーション、キャリアアプリケーション、およびユーザアプリケーションとして分類し得る。VCNマネージャ150は、どのワイヤレスネットワーク120およびどのサービスコネクタ210を見えるようにするかならびに/またはアクセス可能にするかを、ユーザソフトウェアアプリケーション116の分類に基づいて制御し得る。
【0042】
いくつかの例では、VCNマネージャ150は、ユーザデバイス110の1つ以上のSIM118によって定義される複数のプロファイル間の仮想ネットワーク30を管理する。たとえば、ユーザデバイス110上に仕事用プロファイルおよび個人用プロファイルの両方を含み得るユーザ10もある。これらのプロファイルは、同じワイヤレスネットワーク事業者70に加入していてもよく、異なるワイヤレスネットワーク事業者70に加入していてもよい。VCNマネージャ150は、仮想ネットワーク30、優先ワイヤレスネットワークなどにどのワイヤレスネットワーク120を含めるかを、現在有効なプロファイル(複数可)に基づいて調整し得る。
【0043】
図3を参照すると、いくつかの実施態様では、ユーザデバイス110は、自宅Wi-Fiネットワークなど、ユーザ仲介ネットワーク120、120Uに接続する。ここで、ユーザデバイス110は、VCNマネージャ150に加えて、ユーザネットワークマネージャ310を実行する。この例では、ユーザソフトウェアアプリケーション116(ならびに/またはユーザ10および/もしくはOS111)は、仮想ネットワーク30を通じてVCNマネージャ150(すなわち、キャリアワイヤレスネットワーク120のうち1つ)を経由して宛先サーバ60と通信するか、ユーザネットワークマネージャ310を通じてユーザ仲介ネットワーク120Uを経由して宛先サーバ60と通信するかのいずれかを選択する。すなわち、いくつかの例では、ユーザ仲介ネットワーク120Uは、VCNマネージャ150からも、仮想ネットワーク30からも独立している。ユーザネットワークマネージャ310は、宛先サーバ60につながるユーザ仲介ネットワーク120Uを経由(さらなる外部ネットワークを通過する可能性あり)してユーザデバイス110から宛先サーバ60にデータパケット50を送信し、VCNマネージャ150、仮想ネットワーク30、および選択したリモートサーバ130を経由しない。よって、ユーザ仲介ネットワーク120Uを横断するデータ50は、リモートサーバ130によって受信されることはない。これにより、プライバシーや同意に関する懸念が軽減する。
【0044】
図4Aを参照すると、いくつかの実施態様では、VCNマネージャ150は、複数のリモートサーバ130の各々の異なる地理的位置に基づいてリモートサーバ130を選択する。図示した例では、ユーザデバイス110は、ユーザ10の住宅410に位置し、キャリアWi-Fiネットワーク120bの範囲内にある。ネットワーク基本設定450に基づいて、VCNマネージャ150は、優先ワイヤレスネットワーク120として、キャリアセルラーネットワーク120aではなくキャリアWi-Fiネットワーク120bを選択する。ネットワーク基本設定450は、コスト、信頼性、待ち時間、輻輳、帯域幅、位置、転送種別、DNS(ドメインネームシステム)プライバシー、セルラーRAT(無線アクセス技術)、信号強度、現在の有効リンク、リンクの信頼性の欠如、ユーザデバイス110の移動または速度などの要因を含み得る。たとえば、範囲内にある場合、キャリアWi-Fiネットワーク120bは、キャリアセルラーネットワーク120aよりも安価かつ信頼性がある傾向があるため、キャリアWi-Fiネットワーク120bは、利用可能な場合、キャリアセルラーネットワーク120aよりも優先される場合がある。VCNマネージャ150は、ネットワーク基本設定450に影響を与える接続ワイヤレスネットワーク120のうち1つ以上についてのネットワーク統計を受信し得る。ワイヤレスネットワーク事業者70は、ネットワーク基本設定450の一部を(たとえば、ユーザソフトウェアアプリケーション116またはSIM118によって)規定し得る。
【0045】
VCNマネージャ150は、選択した優先ワイヤレスネットワークおよび/またはリモートサーバ130の地理的位置に基づいて、リモートサーバ130を選択し得る。
図4Aの例を引き続き参照すると、リモートサーバ130bの地理的位置は、キャリアWi-Fiネットワーク120bのデータセンターまたはその近くの位置であり、リモートサーバ130aの地理的位置は、キャリアセルラーネットワーク120aの別のデータセンターまたはその近くの位置である。キャリアセルラーネットワーク120aではなく、キャリアWi-Fiネットワーク120b上でユーザデバイス110がデータ50を主に送信している状況で(たとえば、ユーザデバイス110の地理的位置、優先ワイヤレスネットワーク120、ネットワーク基本設定450などを理由に)、VCNマネージャ150は、たとえば、データ50が移動しなければならない距離が短くて済むためリモートサーバ130aを選択するのではなく、データ50の待ち時間を概して減らすことができるキャリアWi-Fiネットワークデータセンターの近くにリモートサーバ130bがあるので、リモートサーバ130bを選択する。
【0046】
リモートサーバ130bを選択した後、VCNマネージャ150は、キャリアセルラーネットワーク120aおよびキャリアWi-Fiネットワーク120bの両方のネットワーク上でユーザデバイス110と選択したリモートサーバ130bとの間のトンネル122を経由する仮想ネットワーク30を確立する。ユーザソフトウェアアプリケーション116は、トンネル122を経由して選択したリモートサーバ130bにデータ50を送信し、リモートサーバ130bは、データ50を、外部ネットワーク40を通して宛先サーバ60までルーティングさせる。
【0047】
ここで
図4Bを参照すると、この例では、ユーザ10は、車両420で移動中である。ここで、VCNマネージャ150は、複数のリモートサーバ130の各々の異なる地理的位置に基づいて、複数のリモートサーバ130から2つ目のリモートサーバ130を選択し得る。たとえば、車両420内でユーザデバイス110が移動するので、キャリアWi-Fiネットワーク120bは、もはや存続可能な優先ワイヤレスネットワーク120ではなく、キャリアセルラーネットワーク120aが優先ワイヤレスネットワーク120となる。いくつかの例では、これによって、新しい優先ワイヤレスネットワーク120によく適した新しい「モビリティアンカー」(すなわち、リモートサーバ130)をVCNマネージャ150が選択することになる。ここで、キャリアセルラーネットワーク120aのデータセンターまたはその近くにリモートサーバ130aが地理的に位置しているので、VCNマネージャ150は、リモートサーバ130bよりも、リモートサーバ130aを選択する。
【0048】
いくつかの実施態様では、VCNマネージャ150は、キャリアセルラーネットワーク120aおよびキャリアWi-Fiネットワーク120b上でユーザデバイス110と選択したリモートサーバ130aとの間のトンネル122を経由する第2の仮想ネットワーク30を確立する。ユーザソフトウェアアプリケーション116は、トンネル122を経由して、選択したリモートサーバ130aにデータ50を送信し、選択したリモートサーバ130aは、データ50を、外部ネットワーク40を通して宛先サーバ60までルーティングさせる。
【0049】
VCNマネージャ150は、いくつかのその他の理由で、それぞれ異なるリモートサーバ130(すなわち、モビリティアンカー)を選択し得る。たとえば、リモートサーバがメンテナンスを必要としていたり、障害が発生したりしている場合、VCNマネージャ150は、別のリモートサーバ130を選択し得る。VCNマネージャ150は、ビットマイル(bit mile)、待ち時間、およびスループットの課題に基づいて、異なるリモートサーバ130を選択し得る。VCNマネージャ150は、第1の仮想ネットワーク30を終了する前の一定時間モビリティを維持するために、新たに選択したリモートサーバ130との第2の仮想ネットワーク30を確立した後(すなわち、2つの別個の仮想ネットワーク30を維持する)、以前選択したリモートサーバ130との第1の仮想ネットワーク30を維持し得る。すなわち、モビリティアンカーは、終了前の一定時間、非推奨になり得る。VCNマネージャ150は、リモートサーバ130がサポートするサービスに基づいて、リモートサーバ130(すなわち、モビリティアンカー)を選択し得る。すなわち、すべてのリモートサーバ130がすべてのサービスをサポートしなくてもよい。いくつかの地理的位置は、複数のリモートサーバ130を含み得、各リモートサーバ130は、一部が重複するまたはまったく重複しない異なるセットのサービスをサポートし得る。よって、VCNマネージャ150は、特定のサービスが同じ地理的位置にあっても、または、負荷分散、メンテナンスなどその他の目的で、複数のリモートサーバ130を選択し得る。
【0050】
よって、VCNマネージャ150は、1つ以上の物理ワイヤレスネットワーク120の上に1つの統合ネットワーク抽象化を設け、ユーザ10とユーザソフトウェアアプリケーション116の物理ワイヤレスネットワーク120間でネットワーク接続性を移行する。VCNマネージャ150は、ユーザデバイス110が同時に提供する各データサービス(たとえば、インターネット、MMS、テザリング、VoIPなど)を仮想化し、ユーザデバイス110に接続された物理キャリアワイヤレスネットワーク120に各サービスを適切にマッピングする。これにより、VCNマネージャ150は、ユーザ10およびユーザソフトウェアアプリケーション116両方へのセルラーネットワーク接続を完全にエミュレートできるようになる。VCNマネージャ150は、それぞれ異なるモビリティアンカー(すなわち、リモートサーバ130)間でハンドオフして、負荷分散する機能、メンテナンスを行う機能、および地理的最適化のための機能をMNOまたはMVNOに提供し得る。VCNマネージャ150は、ワイヤレスネットワーク事業者70がネットワークの変更中またはインフラストラクチャの変更中にそれぞれ異なるモビリティアンカーに切り替えることによってネットワークの信頼性を向上できるようにしつつ、従来の仮想化レイヤーとは違って、パフォーマンスのオーバーヘッドを最小限に抑える。本明細書における例では、ユーザデバイス110が第1のワイヤレスネットワーク120aおよび第2のワイヤレスネットワーク120bと通信すると共通して示しているが、ユーザデバイス110およびVCNマネージャ150は、任意の数のキャリアワイヤレスネットワーク120に接続および管理してもよい。
【0051】
図5は、モバイル機器110との仮想キャリアネットワークを確立する方法の動作の例示的な構成のフローチャートである。方法500は、動作502では、MVNO(モバイル仮想ネットワーク事業者)に対応付けられた第1のワイヤレスネットワーク120aと、同じMVNOに対応付けられた第2のワイヤレスネットワーク120bとに同時に接続された、ユーザソフトウェアアプリケーション116を実行するモバイル機器110のために、データ処理ハードウェア112が、複数のリモートサーバ130のうち1つを選択することを含む。複数のリモートサーバ130に含まれる各リモートサーバ130は、異なる地理的位置に対応付けられている。
【0052】
方法500は、動作504では、モバイル機器110と選択したリモートサーバ130との間でデータ処理ハードウェア112が仮想ネットワーク30を確立することを含む。仮想ネットワーク30は、第1のワイヤレスネットワーク120a上のモバイル機器110と選択したリモートサーバ130との間に少なくとも1つのトンネル122を含み、第2のワイヤレスネットワーク120b上のモバイル機器110と選択したリモートサーバ130との間に少なくとも1つのトンネル122を含む。
【0053】
動作506では、方法500は、第1のワイヤレスネットワーク120a上のモバイル機器110と選択したリモートサーバ130との間の少なくとも1つのトンネル122のうち1つを経由して、または、第2のワイヤレスネットワーク120b上のモバイル機器110と選択したリモートサーバ130との間の少なくとも1つのトンネル122のうちの1つを経由して、仮想ネットワーク30上でユーザソフトウェアアプリケーション116から選択したリモートサーバ13にデータ処理ハードウェア112がデータ50を送信するステップを含む。データ50は、選択したリモートサーバ130によって受信されると、選択したリモートサーバ130に、データ50を宛先サーバ60までルーティングさせる。
【0054】
図6は、本明細書に記載のシステムおよび方法を実現するために用いられ得る例示的なコンピューティングデバイス600の概略図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すよう意図される。本明細書に示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示に過ぎず、本明細書において説明および/またはクレームされた発明の実施態様を限定するものではない。
【0055】
コンピューティングデバイス600は、プロセッサ610と、メモリ620と、記憶装置630と、メモリ620および高速拡張ポート650に接続された高速インタフェース/コントローラ640と、低速バス670および記憶装置630に接続された低速インタフェース/コントローラ660とを備える。構成要素610、620、630、640、650、および660の各々は、様々なバスを用いて互いに接続されており、共通のマザーボード上に実装され得、またはその他の方法で適宜実装され得る。プロセッサ610は、コンピューティングデバイス600内で実行するための命令を処理することができ、当該命令は、高速インタフェース640に連結されたディスプレイ680など、外付けの入出力装置上のGUI(グラフィカルユーザインターフェース)のためのグラフィック情報を表示するためのメモリ620に格納された命令または記憶装置630上に格納された命令を含む。その他の実施態様では、複数のプロセッサおよび/または複数のバスが複数のメモリおよび複数種類のメモリとともに適宜用いられ得る。また、(たとえば、サーババンク、ブレードサーバ群、または多重プロセッサシステムなどとしての)必要な動作の一部を各々が提供する複数のコンピューティングデバイス600が接続されてもよい。
【0056】
メモリ620は、情報を非一時的にコンピューティングデバイス600内に格納する。メモリ620は、コンピュータ読み取り可能な媒体、揮発性記憶装置(複数可)、または非揮発性記憶装置(複数可)であってもよい。非一時的なメモリ620は、プログラム(たとえば、一連の命令)またはデータ(たとえば、プログラム状態情報)をコンピューティングデバイス600が使用するために一時的または恒久的に格納するために用いられる物理デバイスであってもよい。不揮発性メモリとして、フラッシュメモリおよびROM(読み出し専用メモリ)/PROM(プログラマブルROM)/EPROM(消去可能なプログラマブルOM)/EEPROM(電気的に消去可能なプログラマブルROM)(たとえば、ブートプログラムなど、通常、ファームウェアのために使用される)などが挙げられるが、これらに限定されない。揮発性メモリとして、RAM(ランダムアクセスメモリ)、DRAM(ダイナミックRAM)、SRAM(スタティックRAM)、PCM(相変化メモリ)、およびディスクまたはテープなどが挙げられるが、これらに限定されない。
【0057】
記憶装置630は、コンピューティングデバイス600用の大容量ストレージを提供できる。いくつかの実施態様では、記憶装置630は、コンピュータ読み取り可能な媒体である。様々な異なる実施態様では、記憶装置630は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置であってもよく、フラッシュメモリもしくはその他の同様の固体メモリ装置であってもよく、ストレージエリアネットワークもしくはその他の構成に含まれる装置を含む装置の配列であってもよい。その他の実施態様では、情報担体にコンピュータプログラムプロダクトが有形に含まれている。また、このコンピュータプログラムプロダクトは、命令を含んでおり、当該命令は、実行されると、上述した方法など、1つ以上の方法を実行する。情報担体は、メモリ620、記憶装置630、またはプロセッサ610上のメモリなど、コンピュータ読み取り可能または機械読み取り可能な媒体である。
【0058】
高速コントローラ640は、コンピューティングデバイス600のための多くの帯域幅を必要とする動作を管理し、低速コントローラ660は、より低い帯域幅の多くを必要とする動作を管理する。このような役割の割振りは、例示に過ぎない。いくつかの実施態様では、高速コントローラ640は、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)メモリ620、ディスプレイ680に連結され、様々な拡張カード(図示せず)を受け付け得る高速拡張ポート650に連結される。いくつかの実施態様では、低速コントローラ660は、記憶装置630および低速拡張ポート690に連結される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet(登録商標))を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
【0059】
コンピューティングデバイス600は、図に示すような複数の異なる形態で実現されてもよい。たとえば、1つの標準サーバ600aとして実現されてもよく、もしくは、複数回実現されてこのようなサーバ600aの群とされてもよく、ラップトップコンピュータ600bとして実現されてもよく、またはラックサーバシステム600cの一部として実現されてもよい。
【0060】
本明細書において説明したシステムおよび技術の様々な実施態様は、デジタル電子回路および/もしくは光学回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組合せで実現することができる。これらの様々な実施態様は、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実装を含み得る。当該少なくとも1つのプログラム可能なプロセッサは、特定用途プロセッサであってもよく、汎用プロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置に連結されてそれらとデータおよび命令を送受信してもよい。
【0061】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサ用の機械命令を含み、高水準の手続き形言語および/もしくはオブジェクト指向プログラミング言語で実現でき、ならびに/またはアセンブリ言語/機械言語で実現できる。本明細書において使用するとき、「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意のコンピュータプログラムプロダクト、非一時的なコンピュータ読み取り可能な媒体、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、PLD(プログラマブルロジックデバイス))を指し、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意の信号を指す。
【0062】
入力データ上で動作して出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラマブルプロセッサ(データ処理ハードウェアとも称される)が実行することによって、本明細書において説明した処理および論理フローが実行され得る。また、当該処理および論理フローは、専用の論理回路、たとえば、FPGA(Field Programmable Gate Array)またはASIC(特定用途向け集積回路)によって実行され得る。コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、およびあらゆる種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、ROM(読み出し専用メモリ)もしくはRAM(ランダムアクセスメモリ)、またはその両方から命令およびデータを受け取る。コンピュータを構成する必須の構成要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリ素子である。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを備える、または、このような1つ以上の大容量記憶装置に操作可能に接続されて、データの受信、送信、もしくはその両方を行う。しかしながら、コンピュータは、このような機器を有する必要はない。コンピュータプログラム命令およびデータを格納するのに適した読み取り可能な媒体は、一例として、EPROM、EEPROM、およびフラッシュメモリ素子などの半導体メモリ素子;内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク;光磁気ディスク;およびCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体ならびにメモリ素子を含む。プロセッサおよびメモリは、専用の論理回路によって補ったり、専用の論理回路に内蔵したりすることができる。
【0063】
ユーザとのやり取りを可能にするために、本開示の1つ以上の態様は、ユーザに情報を表示するための表示装置、たとえば、CRT(ブラウン管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンと、オフションで、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとやり取りすることもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、あらゆる形式の感覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、あらゆる形式で受け付けられ得る。これに加えて、コンピュータは、ユーザが使用する機器と文書を送受信すること、たとえば、ウェブブラウザから受信した要求に応答してユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザとやり取りすることができる。
【0064】
いくつかの実施態様を説明したが、本開示の趣旨および範囲を逸脱することなく、様々な変更がなされてもよいことが理解されるだろう。したがって、その他の実施態様も、添付の特許請求の範囲に含まれる。
【国際調査報告】