(57)【特許請求の範囲】
【請求項１】
物理バッテリと、アプリケーションの少なくとも１グループとを含むコンピュータデバイスを制御する方法であって、アプリケーションの各グループが、前記コンピュータデバイスのハードウェア資源で実行可能な１以上のアプリケーションを含む、前記方法において、
アプリケーションの各グループが実行される仮想マシンを、前記コンピュータデバイスが接続されているネットワーク内の各ネットワークスライスと関連付けてインスタンス化することであり、各仮想マシンが各々の仮想バッテリと関連付けられる、ことと、
アプリケーションの各グループを、アプリケーションの当該グループが実行されるインスタンス化された仮想マシンに関連付けられた仮想バッテリの状態に基づき制御することと
を有し、
前記仮想バッテリは、前記物理バッテリの容量の定義された部分に対応する仮想容量と、前記仮想バッテリに関連付けられた前記アプリケーションのグループによる使用に利用可能であるエネルギの量を表す仮想バッテリリザーブとを有し、
前記仮想バッテリの前記仮想容量は、関連する仮想マシンがインスタンス化されるときに割り当てられ、前記インスタンス化された関連する仮想マシンにおいて実行されるアプリケーションのグループのランタイム中に動的に更新され、
各々の仮想バッテリの状態に基づきアプリケーションの各グループを制御することは、
特定の仮想バッテリの低バッテリ状態を検出し、該低バッテリ状態の検出に応答して、
前記特定の仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションをシャットダウンすること、及び
前記特定の仮想バッテリに関連付けられた前記アプリケーションの各々のグループの１以上のアプリケーションによって、前記コンピュータデバイスのハードウェア資源へのアクセスを制限すること
のうちのいずれか１つ以上を実行することを有し、
前記特定の仮想バッテリの低バッテリ状態を検出することは、前記特定の仮想バッテリの仮想バッテリリザーブが定義された将来の期間内に所定の閾値を下回ると予測されることを検出することを有する、
方法。
【請求項２】
アプリケーションの各グループに関連付けられた仮想バッテリマネージャをインスタンス化することを更に有し、
前記仮想バッテリマネージャは、各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される、
請求項１に記載の方法。
【請求項３】
各仮想マシンは、各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される仮想バッテリマネージャに関連付けられる、
請求項１に記載の方法。
【請求項４】
所与の仮想バッテリの仮想容量は、
アプリケーションの各々のグループの推定されるバッテリ利用、
前記アプリケーションの各々のグループの優先度、及び
ユーザ入力
のうちのいずれか１つ以上に基づき計算される、
請求項１乃至３のうちいずれか一項に記載の方法。
【請求項５】
前記更新された仮想容量は、前記アプリケーションの各々のグループの実際のバッテリ利用に基づき計算される、
請求項１乃至４のうちいずれか一項に記載の方法。
【請求項６】
前記低バッテリ状態を検出することは、
前記アプリケーションの各々のグループのバッテリ利用の推定値を計算することと、
前記バッテリ利用の前記計算された推定値に基づき前記特定の仮想バッテリの各々の仮想バッテリリザーブの値を減少させることと
を有する、
請求項１乃至５のうちいずれか一項に記載の方法。
【請求項７】
特定の仮想バッテリの状態を検出することは、前記物理バッテリで現在保持されているエネルギが増大しているときに、前記特定の仮想バッテリの仮想バッテリリザーブを増大させることを更に有する、
請求項６に記載の方法。
【請求項８】
前記特定の仮想バッテリの前記仮想バッテリリザーブを増大させることは、
前記物理バッテリで現在保持されているエネルギが増大しているレート、
前記特定の仮想バッテリの仮想容量、
前記特定の仮想バッテリに関連付けられた前記アプリケーションの各々のグループの優先度、及び
ユーザ入力
のうちのいずれか１つ以上に基づく、
請求項７に記載の方法。
【請求項９】
コンピュータデバイスであって、
定義されたバッテリ容量を有する物理バッテリと、
メモリ及びプロセッサを有するハードウェア資源と、
前記メモリ内にあるアプリケーションの少なくとも１グループであり、アプリケーションの各グループが、前記ハードウェア資源で実行可能な１以上のアプリケーションを含み、アプリケーションの各グループは、当該コンピュータデバイスが接続されているネットワーク内の各ネットワークスライスと関連付けてインスタンス化された各々の仮想マシンにおいて実行される、前記アプリケーションの少なくとも１グループと、
前記メモリ内にあり、前記ハードウェア資源において前記プロセッサによってインスタンス化されるとき、アプリケーションの各グループが実行される各々のインスタンス化された仮想マシンに関連付けられた各々の仮想バッテリの状態に基づきアプリケーションの各グループを制御するよう構成される仮想バッテリマネージャであり、各仮想バッテリが、前記物理バッテリの容量の定義された部分に対応する各々の仮想容量と、当該仮想バッテリに関連付けられた前記アプリケーションのグループによる使用のために利用可能であるエネルギの量を表す各々の仮想バッテリリザーブとを有する、前記仮想バッテリマネージャと
を有し、
前記仮想バッテリの前記仮想容量は、関連する仮想マシンがインスタンス化されるときに割り当てられ、前記インスタンス化された関連する仮想マシンにおいて実行されるアプリケーションのグループのランタイム中に動的に更新され、
前記仮想バッテリマネージャは、
前記各々の仮想バッテリの低バッテリ状態を検出し、該低バッテリ状態の検出に応答して、
当該仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションをシャットダウンすること、及び
当該仮想バッテリに関連付けられた前記アプリケーションの各々のグループの１以上のアプリケーションによって、前記ハードウェア資源へのアクセスを制限すること
のうちのいずれか１つ以上を実行することによって、アプリケーションの各グループを制御するよう構成され、
前記各々の仮想バッテリの低バッテリ状態を検出することは、前記各々の仮想バッテリの仮想バッテリリザーブが定義された将来の期間内に所定の閾値を下回ると予測されることを検出することを有する、
コンピュータデバイス。
【請求項１０】
各仮想マシンは、前記各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される仮想バッテリマネージャに関連付けられる、
請求項９に記載のコンピュータデバイス。
【請求項１１】
所与の仮想バッテリの仮想容量は、
アプリケーションの各々のグループの推定されるバッテリ利用、
前記アプリケーションの各々のグループの優先度、及び
ユーザ入力
のうちのいずれか１つ以上に基づき計算される、
請求項９又は１０に記載のコンピュータデバイス。
【請求項１２】
前記低バッテリ状態を検出することは、
アプリケーションの各々のグループのバッテリ利用の推定値を計算することと、
前記バッテリ利用の前記計算された推定値に基づき当該仮想バッテリの前記各々の仮想バッテリリザーブの値を減少させることと
を有する、
請求項９乃至１１のうちいずれか一項に記載のコンピュータデバイス。
【請求項１３】
前記各々の仮想バッテリの状態を検出することは、前記物理バッテリで現在保持されているエネルギが増大しているときに、前記各々の仮想バッテリの仮想バッテリリザーブを増大させることを更に有する、
請求項１２に記載のコンピュータデバイス。
【請求項１４】
前記各々の仮想バッテリの仮想バッテリリザーブを増大させることは、
前記物理バッテリで現在保持されているエネルギが増大しているレート、
前記各々の仮想バッテリの仮想容量、
前記各々の仮想バッテリに関連付けられたアプリケーションの各々のグループの優先度、及び
ユーザ入力
のうちのいずれか１つ以上に基づく、
請求項１３に記載のコンピュータデバイス。
【請求項１５】
前記コンピュータデバイスは、ユーザ装置である、
請求項９乃至１４のうちいずれか一項に記載のコンピュータデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エネルギの保持及び管理の分野に、特に、バッテリ仮想化に関係がある。
【背景技術】
【０００２】
本開示のために、「バッテリ」との語は、有限な量のエネルギを（何らかの適切な形で）保持し、保持されているエネルギを電力の形で放出することが可能なデバイスを指すと理解されるべきである。バッテリの例には、電気化学電池、キャパシタ、エネルギ貯蔵フライホイール、及び燃料電池又は有限な燃料供給による発電機がある。バッテリに保持されるエネルギの量は、例えば、ジュール（Ｊ）、英熱量（ＢＴＵ）、アンペア時間（Ａｈ）又はミリアンペア時間（ｍＡｈ）のような何らかの適切な方法で表現され得る。
【０００３】
図１は、簡単なバッテリを表す。図１の例では、バッテリ１００が、エネルギストア（又はストレージ）１０２と、コントローラ１０４とを有する。エネルギストア１０２の例には、電気化学電池、キャパシタ、エネルギ貯蔵フライホイール、及び燃料電池又は有限な燃料供給による発電機がある。エネルギストア１０２に保持されるエネルギの量は、例えば、ジュール（Ｊ）、英熱量（ＢＴＵ）、アンペア時間（Ａｈ）又はミリアンペア時間（ｍＡｈ）のような何らかの適切な方法で表現され得る。
【０００４】
その最も簡単な形において、コントローラ１０４は、エネルギストア１０２を負荷１０６へ適切な導体を通じて選択的に接続するために使用され得るスイッチとして設けられてよい。この接続が構成されるとき、エネルギストアは、負荷１０６へ電気エネルギを供給するよう（１１０で）放電される。より複雑な例では、コントローラ１０４は、エネルギストア１０２から負荷１０６へ供給される電気エネルギが負荷１０６による使用にとって適切であることを確かにするために、電圧レギュレータ、整流器又はインバータ等のような電力調整回路を備えてもよい。その上、コントローラ１０４は、エネルギストア１０２が（１１２に示されるように）再充電されることを可能にするよう構成された回路を含んでもよい。
【０００５】
この背景情報は、本発明に関係がある可能性があると本出願によって信じられている情報を明らかにするために与えられている。承認は必ずしも意図されず、上記の情報のいずれかが本発明に対する先行技術を構成するとも解されるべきではない。
【発明の概要】
【０００６】
本発明の実施形態の目的は、コンピュータデバイスでのバッテリ利用を制御するための構造上の選択肢を提供することである。
【０００７】
従って、本発明の第１の態様は、コンピュータデバイスを制御する方法であって、コンピュータデバイスは、物理バッテリと、コンピュータデバイスのハードウェア資源で実行可能なアプリケーションの少なくとも１グループとを含み、各グループは１以上のアプリケーションを含む、前記方法を提供する。方法は、アプリケーションの各グループに関連付けられた各々の仮想バッテリの状態に基づきアプリケーションの各グループを制御することを有し、各仮想バッテリは、物理バッテリの容量の定義された部分に対応する各々の仮想容量と、仮想バッテリに関連付けられたアプリケーションのグループによる使用に利用可能であるエネルギの量を表す仮想バッテリリザーブとを有する。
【０００８】
本発明の第１の態様の実施形態において、方法は、アプリケーションの各グループに関連付けられた仮想バッテリマネージャをインスタンス化することを更に有し、仮想バッテリマネージャは、各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される。他の実施形態で、アプリケーションの各グループは、各々の仮想マシン及びスライスのうちの１つで実行され、任意に、各仮想マシンは、各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される仮想バッテリマネージャに関連付けられる。
【０００９】
他の実施形態では、所与の仮想バッテリの仮想容量は、アプリケーションの各々のグループの推定されるバッテリ利用、アプリケーションの各々のグループの優先度、及びユーザ入力のうちのいずれか１つ以上に基づき計算される。
【００１０】
他の実施形態では、所与の仮想バッテリの仮想容量は、アプリケーションの各々のグループのランタイム中に固定される。他の実施形態では、所与の仮想バッテリの仮想容量は、アプリケーションの各々のグループのランタイム中に可変であり、任意に、方法は、アプリケーションの各々のグループのランタイム中に所与の仮想バッテリの更新された仮想容量を計算することを更に含むことができ、更なる任意の実施形態では、更新された仮想容量は、アプリケーションの各々のグループの実際のバッテリ利用に基づき計算される。
【００１１】
他の実施形態では、各々の仮想バッテリの状態に基づきアプリケーションの各グループを制御することは、特定の仮想バッテリの低バッテリ状態を検出し、該低バッテリ状態の検出に応答して、特定の仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションをシャットダウンすることと、特定の仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションによって、コンピュータデバイスのハードウェア資源へのアクセスを制限することとのうちのいずれか１つ以上を実行することを有する。他の実施形態では、低バッテリ状態を検出することは、アプリケーションの各々のグループのバッテリ利用の推定値を計算することと、記バッテリ利用の計算された推定値に基づき特定の仮想バッテリの各々の仮想バッテリリザーブの値を減少させることとを有する。更なる実施形態では、特定の仮想バッテリの状態を検出することは、物理バッテリで現在保持されているエネルギが増大しているときに、特定の仮想バッテリの仮想バッテリリザーブを増大させることを更に有する。他の実施形態では、特定の仮想バッテリの仮想バッテリリザーブを増大させることは、物理バッテリで現在保持されているエネルギが増大しているレート、特定の仮想バッテリの仮想容量、特定の仮想バッテリに関連付けられたアプリケーションの各々のグループの優先度、及びユーザ入力のうちのいずれか１つ以上に基づく。更なる実施形態では、特定の仮想バッテリの低バッテリ状態を検出することは、特定の仮想バッテリの仮想バッテリリザーブが所定の閾値以下であることを検出することと、特定の仮想バッテリの仮想バッテリリザーブが定義された将来の期間内に所定の閾値を下回ると予測されることを検出することとのうちのいずれ１つ以上を有する。
【００１２】
本発明の第２の態様では、定義されたバッテリ容量を有する物理バッテリと、メモリ及びプロセッサを有するハードウェア資源と、メモリ内にあって、プロセッサによって実行されるアプリケーションの少なくとも１グループとを有するコンピュータデバイスが提供される。アプリケーションの各グループは、ハードウェア資源で実行可能な１以上のアプリケーションを含む。コンピュータデバイスは、メモリ内にあり、ハードウェア資源においてプロセッサによってインスタンス化されるとき、アプリケーションの各グループに関連付けられた各々の仮想バッテリの状態に基づきアプリケーションの各グループを制御するよう構成される仮想バッテリマネージャを更に有し、各仮想バッテリは、物理バッテリの容量の定義された部分に対応する各々の仮想容量と、仮想バッテリに関連付けられたアプリケーションのグループによる使用のために利用可能であるエネルギの量を表す各々の仮想バッテリリザーブとを有する。
【００１３】
本発明の第２の態様の実施形態において、アプリケーションの各グループは、各々の仮想マシン及びスライスのうちの１つにおいて実行され、任意に、各仮想マシンは、各々の仮想バッテリの状態に基づきアプリケーションの各々のグループを制御するよう構成される仮想バッテリマネージャに関連付けられる。他の実施形態では、所与の仮想バッテリの仮想容量は、アプリケーションの各々のグループの推定されるバッテリ利用、アプリケーションの各々のグループの優先度、及びユーザ入力のうちのいずれか１つ以上に基づき計算される。他の実施形態では、所与の仮想バッテリの仮想容量は、アプリケーションの各々のグループのランタイム中に固定されるか、あるいは、アプリケーションの各々のグループのランタイム中に可変であるかのいずれかである。他の実施形態では、仮想バッテリマネージャは、各々の仮想バッテリの低バッテリ状態を検出し、低バッテリ状態の検出に応答して、仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションをシャットダウンすることと、仮想バッテリに関連付けられたアプリケーションの各々のグループの１以上のアプリケーションによって、ハードウェア資源へのアクセスを制限することとのうちのいずれか１つ以上を実行することによって、アプリケーションの各グループを制御するよう構成される。更なる実施形態では、低バッテリ状態を検出することは、アプリケーションの各々のグループのバッテリ利用の推定値を計算することと、バッテリ利用の計算された推定値に基づき特定の仮想バッテリの各々の仮想バッテリリザーブの値を減少させることとを有する。他の実施形態では、各々の仮想バッテリの状態を検出することは、物理バッテリで現在保持されているエネルギが増大しているときに、各々の仮想バッテリの仮想バッテリリザーブを増大させることを更に有する。他の実施形態では、各々の仮想バッテリの仮想バッテリリザーブを増大させることは、物理バッテリで現在保持されているエネルギが増大しているレート、各々の仮想バッテリの仮想容量、各々の仮想バッテリに関連付けられたアプリケーションの各々のグループの優先度、及びユーザ入力のうちのいずれか１つ以上に基づく。更なる実施形態では、各々の仮想バッテリの低バッテリ状態を検出することは、各々の仮想バッテリの仮想バッテリリザーブが所定の閾値以下であることを検出することと、記各々の仮想バッテリの仮想バッテリリザーブが定義された将来の期間内に前記所定の閾値を下回ると予測されることを検出することとのうちのいずれ１つ以上を有する。実施形態において、コンピュータデバイスは、ユーザ装置である。他の実施形態では、コンピュータデバイスは、基地局である。
【００１４】
本発明の第３の態様では、ネットワークインターフェイスと、ディスプレイと、プロセッサと、プロセッサによって実行されるときに、ネットワークインターフェイス、ディスプレイ、及びプロセッサへのアクセスを有する第１デバイススライスと、ディスプレイへのアクセスなしでネットワークインターフェイス及びプロセッサへのアクセスを有する第２デバイススライスとをインスタンス化するようユーザ装置を構成する命令を記憶するメモリとを有するユーザ装置が提供される。
【００１５】
第３の態様の実施形態において、ユーザ装置は、バッテリを更に有し、第１デバイススライスは、バッテリの第１の仮想化された表現へのアクセスを有し、第２デバイススライスは、バッテリの第２の仮想化された表現へのアクセスを有する。実施形態において、メモリは、プロセッサによって実行されるときに、バッテリの各々の仮想化された表現の状態に従って第１デバイススライス及び第２デバイススライスの１つをシャットダウンするようユーザ装置を構成する命令を更に記憶する。
【００１６】
異なる態様の上記の実施形態は、単独で又は他の実施形態と組み合わせて、それらが記載されている態様に適用されてよく、いくつかの状況では、それらは、他の態様に適用されてもよいことが当業者に理解されるだろう。いくつかの実施形態は、相互に排他的であることがあり、そのような場合に、それらは、上記のように組み合わせ可能であると考えられないことが当業者に理解されるだろう。
【００１７】
本発明の更なる特徴及び利点は、添付の図面と組み合わせて理解される以下の詳細な説明から明らかになるだろう。
【図面の簡単な説明】
【００１８】
【図１】従来のバッテリシステムのブロック図である。
【図２】本発明の代表的な実施形態に従うデバイス及び方法を実装するために使用され得るコンピュータシステム２００のブロック図である。
【図３】代表的なユーザ装置（ＵＥ）の機能アーキテクチャを概略的に表すブロック図である。
【図４】本発明の実施形態に従うバッテリ仮想化を組み込むユーザ装置（ＵＥ）を概略的に表すブロック図である。
【図５】本発明の実施形態で使用可能な代表的なサーバのアーキテクチャを概略的に表すブロック図である。
【００１９】
添付の図面に全体にわたり、同じ特徴は、同じ参照番号によって特定されることが明記される。
【発明を実施するための形態】
【００２０】
図２は、本明細書で開示されるデバイス及び方法を実装するために使用され得るコンピュータシステム２００のブロック図である。具体的なデバイスは、図示されている構成要素の全て又は構成要素の一部のみを利用してよく、一体化の程度は、デバイスごとに様々であってよい。更には、デバイスは、複数の処理ユニット、プロセッサ、メモリ、送信器、受信器、等のような、コンポーネントの複数のインスタンスを含んでもよい。コンピュータシステム２００は、処理ユニット２０２を含む。処理ユニット２０２は、通常は、中央演算処理装置（ＣＰＵ）２０４、バス２０６、及びメモリ２０８を含み、任意に、大容量記憶装置２１０、ビデオアダプタ２１２、及びＩ／Ｏインターフェイス２１４（破線で示される。）も含んでよい。
【００２１】
ＣＰＵ２０４は、如何なるタイプの電子データプロセッサも有してよい。よって、ＣＰＵ２０４は、１以上の汎用のマイクロプロセッサと、グラフィック・プロセッシング・ユニット（ＧＰＵ）又は他のいわゆるアクセラレイテッド・プロセッサ（若しくはプロセッシング・アクセラレータ）のような１以上の特化されたプロセッシング・コアとの任意の適切な組み合わせとして設けられてよい。メモリ２０８は、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、動的ランダム・アクセス・メモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、又はそれらの組み合わせのような、如何なるタイプの非一時的なシステムメモリも有してよい。実施形態において、メモリ２０８は、起動時に使用されるＲＯＭと、プログラム及びプログラム実行中に使用されるデータの記憶のためのＤＲＡＭとを含んでよい。バス２０６は、メモリバス若しくはメモリコントローラ、ペリフェラルバス、又はビデオバスを含むあらゆるタイプのいくつかのバスアーキテクチャのうちの１つ以上であってよい。
【００２２】
大容量記憶装置２１０は、データ、プログラム、及び他の情報を記憶するよう、且つ、データ、プログラム、及び他の情報をバス２０６を介してアクセス可能にするよう構成された如何なるタイプの非一時的な記憶デバイスも有してよい。大容量記憶装置２１０は、例えば、ソリッド・ステート・ドライブ、ハード・ディスク・ドライブ、磁気ディスク・ドライブ、又は光ディスク・ドライブを有してよい。
【００２３】
任意のビデオアダプタ２１２及びＩ／Ｏインターフェイス２１４は、外部の入力及び出力デバイスを処理ユニット２０２に結合するインターフェイスを提供するために使用されてよい。入力及び出力デバイスの例には、ビデオアダプタ２１２へ結合されるディスプレイ２１６と、Ｉ／Ｏインターフェイス２１４へ結合されるタッチスクリーンのようなＩ／Ｏデバイス２１８とが含まれる。他のデバイスが処理ユニット２０２へ結合されてもよく、追加の又はより少ないインターフェイスが利用されてよい。例えば、ユニバーサル・シリアル・バス（ＵＳＢ）（図示せず。）のようなシリアルインターフェイスが、外部のデバイスのためのインターフェイスを提供するために使用されてもよい。
【００２４】
処理ユニット２０２はまた、１以上のネットワークインターフェイス２２０を含んでもよく、ネットワークインターフェイス２２０は、１以上のネットワーク２２２にアクセスするための、Ｅｔｈｅｒｎｅｔケーブルのような無線及び有線リンクのうちの少なくとも１つを有してよい。ネットワークインターフェイス２２０は、処理ユニット２０２がネットワーク２２２を介して遠隔エンティティと通信することを可能にする。例えば、ネットワークインターフェイス２２０は、１以上の送信器／送信アンテナ及び１以上の受信器／受信アンテナを介して無線通信を提供し得る。実施形態において、処理ユニット２０２は、データ処理と、他の処理ユニット、インターネット、又は遠隔記憶設備のような遠隔デバイスとの通信とのために、ローカル・エリア・ネットワーク又はワイド・エリア・ネットワークへ結合される。
【００２５】
図３は、ユーザ装置（ＵＥ）３００のような代表的な電子デバイスの機能アーキテクチャを概略的に表すブロック図である。電子デバイスは、携帯電話機、タブレットコンピュータ等として具現されてよく、それは従来のＵＥであってよいが、他の実施形態では、それはマシン・タイプ・コミュニケーション（ＭＴＣ）デバイスであってもよい。図３の例において、ＵＥ３００は、ハードウェア資源３０２及びソフトウェア資源３０４から広く構成される。ハードウェア資源３０２は、１以上のプロセッサ（それらのうちのいずれか又は全てが、図２を参照して上述されたシステム２００に従って構成されてよい。）として実装されてよい。ＵＥ３００は、１以上の異なる無線アクセス技術（ＲＡＴ）及び標準の使用を通じてネットワーク２２２へ接続してよい。適切なソフトウェアの実行は、プロセッサが、ＵＥ３００の無線アクセス要素（例えば、トランシーバ３０６及びアンテナ３０８等）を、異なるＲＡＴを用いて接続して、接続されるときにその意図された機能を実行するよう制御することを可能にし得る。当業者は、本発明のために使用され得るハードウェア及びソフトウェアの多数の適切な組み合わせがあることを認識するだろう。それらのハードウェア及びソフトウェアは、当該技術で知られているか、あるいは、将来開発され得るかのいずれかである。この理由により、物理ＵＥハードウェアを示す図は、本明細書に含まれない。むしろ、図３のブロック図は、ＵＥ３００の代表的な機能アーキテクチャを示し、この機能アーキテクチャは、ハードウェア及びソフトウェアの任意の適切な組み合わせを用いて実装され得ることが理解される。
【００２６】
図３から分かるように、表されているＵＥ３００は、一般に、トランシーバ３０６及びアンテナ３０８を使用したパケットの送信を管理する媒体アクセス制御（ＭＡＣ）機能３１４やアプリケーション３１２のための柔軟且つ効率的なマルチテナンシ・ランタイム及びホスティング環境を提供し得るランタイム環境（ＲＥ）３１０を有する。ＲＥ３１０は、ＵＥ３００によってホストされている各アプリケーション３１２のための安全性及び資源“サンドボックス”を提供し得る。各“サンドボックス”は、オペレーティング・システムのインスタンスを含む仮想マシン（ＶＭ）３１６として実装され、ＵＥ３００のハードウェア資源３０２へのアクセスを制御され得る。ＲＥ３１０は、ＵＥ３００のハードウェア資源３０２で実行されるハイパーバイザによって提供され得ることが当業者によって理解されるだろう。他の実施形態では、ＶＭ３１６に代えて、異なる機能コンポーネントが、ＯＳレベル仮想化とも呼ばれる技術である、共通ＯＳカーネルの上で実行されるソフトウェアコンテナとして実装可能である。コンテナに基づく仮想化は、通常ＶＭによって提供される資源分離を提供するための仮想マシンのインスタンス化を通常は必要としない。
【００２７】
ベンダー、サービスプロバイダ、及びサードパーティからのアプリケーション３１２は、各々の仮想マシン３１６又は他の適切なコンテナ内で開発及び実行されてよい。例えば、メッセージング、ビデオストリーミング及び位置に基づくサービスは、上述されたように、ＲＥ３１０でホストされている１以上のアプリケーション３１２を用いて実装されてよい。単一のＶＭ３１６内で、複数のアプリケーションがサポートされ得ることが理解されるべきである。アプリケーション３１２とネットワーク２２２との間の通信は、ＵＥ３００によってサポートされている１以上の無線アクセス技術（ＲＡＴ）及びＭＡＣ機能３１４を用いてＲＥ３１０のサービスとして通常は実装されることになる。それらの無線アクセス技術（ＲＡＴ）は、ロング・ターム・エボリューション（ＬＴＥ）、高速パケット・アクセス（ＨＳＰＡ）、グローバル・システム・フォー・モバイル・コミュニケーション（ＧＳＭ）、エンハンスド・データ・レート・フォーＧＳＭエボリューション（ＥＤＧＥ）、ＷｉＦｉ及びブルートゥース並びに先に挙げられているものの後継のＲＡＴのうちのいずれか１つ以上を含んでよい。今後、より多くのＲＡＴが開発されることが予想される。
【００２８】
ＵＥ３００の動作は、ハードウェア資源３０２への十分な電力の供給に依存する。この電力供給は、バッテリ１００によって電気導体１０８を介して供給される。典型的なＵＥ３００では、バッテリのエネルギストア１０２は、１以上の電気化学電池として設けられる。コントローラ１０４は、通常は、エネルギストア１０２が幹線電源から（例えば、図示されないが、適切な電気ケーブルを介して）再充電されることを可能にするようスイッチング回路を設けられることになる。加えて、コントローラ１０４は、電圧レギュレータ及び、バッテリ１００の状態に関する様々なデータを検出するモニタリング回路のような、電力調整回路（図示せず。）を設けられてもよい。モニタリング回路の例として、エネルギストア１０２にかかる全電圧を検出する電圧センサと、エネルギストア１０２から引き出される全電流を検出する電流センサとがある。それらの検出された値は、バッテリマネージャ３１８へ送られ、バッテリ１００の状態に関する情報を推測するために使用され得る。
【００２９】
いくつかの例において、バッテリマネージャ３１８は、ＲＥ３１０のサービスとして、又はＵＥ３００の基礎をなすオペレーティング・システムとして設けられてよい。他の例では、バッテリマネージャ３１８は、ＲＥ３１０によってホストされているＶＭ３１６で実行されるアプリケーション３１２として設けられてもよい。通常、バッテリマネージャ３１８は、エネルギストア１０２に残っているエネルギの量の指示を（例えば、ＵＥ３００のディスプレイ２１６で）表示するよう動作する。いくつかの場合に、バッテリマネージャ３１８は、エネルギストア１０２のエネルギを使い果たす残り時間の推定値を計算することといった、より高度な動作を提供し得る。いくつかの場合に、バッテリマネージャ３１８は、ハードウェア資源３０２の一部へ供給される電力が低減され得る“バッテリ節約”動作モードを実施するようＲＥ３１０（又はＵＥ３００の基礎をなすオペレーティング・システム）と相互作用してもよい。例えば、プロセッサ２０２へ供給される最大電力が制限されることがあり、これはプロセッサ２０２の速度を制限することになる。これは、ＵＥ３１０で実行されるアプリケーションの性能を低下させる傾向があるが、エネルギストア１０２のエネルギを使い果たす残り時間を延ばすことにもなる。他の例では、エネルギを節約して、エネルギストア１０２のエネルギを使い果たす残り時間を延ばすために、ディスプレイ２１６の明るさが低減されてもよい。それらの技術のいずれもが、本質的に、ＵＥ３００で実行されるアプリケーション３１２の全てに実質的に同じように作用することになる。
【００３０】
エネルギストア１０２に残っているエネルギの量が比較的少ない状況で特に、ＵＥ内の電力消費を制御するための更なる選択肢を有することが望ましい。より広くは、例えば、ＵＥ、基地局のようなアクセスノード、ネットワークサーバ、モバイル・エッジ・コンピューティング（ＭＥＣ）ノード又はデータセンタのような、如何なるコンピューティング環境内でもバッテリ利用を制御するための更なる選択肢を有することが望ましい。それに関連して、通信ネットワークの全ノードがそれらの動作のために電力の供給に依存することが思い起こされるだろう。ほとんどの場合に、ネットワークノードは、幹線電源へ接続されている。しかし、多くの場合に、バッテリ（又は他の二次電源）が、幹線電力の供給停止中に一次電力を供給するために使用される。バッテリ利用が重要になるのは、そのような期間中である。
【００３１】
本発明によれば、バッテリ利用は、ランタイム環境（又はハイパーバイザ）によりインスタンス化されたバッテリ仮想化レイヤと、各仮想マシン内でインスタンス化された仮想バッテリマネージャとを用いて、制御され得る。ごく一般的な言い方をすると、バッテリ仮想化レイヤは、各アプリケーション（又はアプリケーションのグループ）のバッテリ利用を推定するよう構成され、この情報を各仮想バッテリマネージャインスタンスへ供給する。バッテリ仮想化レイヤによって供給された情報に基づき、仮想バッテリマネージャは、１以上のアプリケーションのバッテリ利用を制御し得る。事実上、物理バッテリが１以上の“仮想バッテリ”によって置き換えられており、仮想バッテリの夫々は１以上のアプリケーションに関連付けられており、それにより、バッテリ利用は、仮想バッテリの夫々の進化状態に基づき、アプリケーションごとに又はサービス単位で制御され得る。図４は、本発明に従うバッテリ仮想化が図３のＵＥ３００に適用される例を表す。
【００３２】
本記載のために、物理バッテリは、バッテリで保持可能なエネルギの最大量と、バッテリに現在保持されているエネルギの量であって、ＵＥ３００による使用に利用可能なエネルギの量に相当するエネルギの量とを表す定義された容量を有していると考えることが都合がよい。同様に、仮想バッテリは、物理バッテリの容量の定義された部分と、仮想バッテリに関連付けられたアプリケーションによる使用に利用可能なエネルギの量に相当する仮想バッテリリザーブとを表す定義された仮想容量を有していると考えることが都合がよい。
【００３３】
図４を参照すると、バッテリマネージャ３１８に関連付けられたバッテリ仮想化レイヤ４０２と、各仮想マシン３１６に関連付けられた各々の仮想バッテリマネージャ（ｖＢＭ）インスタンス４０４とを含むＵＥ４００が示されている。
【００３４】
いくつかの実施形態において、バッテリ仮想化レイヤ４０２は、ランタイム環境３１０若しくはハイパーバイザの、又はＵＥ４００の基礎をなすオペレーティング・システムの、サービスとして設けられてよい。他の実施形態では、バッテリ仮想化レイヤ４０２は、仮想マシン３１６で実行されるアプリケーション３１２として実装されてもよい。動作中、バッテリ仮想化レイヤ４０２は、バッテリマネージャ３１８から、バッテリ１００の状態の情報を受け取り、ランタイム環境３１０から、各アプリケーション３１２によって使用されるハードウェア資源の情報を受け取ることができる。例えば、バッテリ仮想化レイヤ４０２は、バッテリマネージャ３１８から、バッテリ１００での総電流引き出しと、バッテリ１００に現在保持されている総エネルギと、バッテリを使い果たす残り時間とを特定する情報を受け取ることができる。具体例となる実施形態では、総電流引き出しの正値は、バッテリ１００が放電中であることを示すことができ、一方、総電流引き出しの負値は、バッテリ１００が充電中であることを示すことができる。ランタイム環境３１０は、例えば、各アプリケーションによって使用されているプロセッサ２０２の処理能力の割合や、各アプリケーションによって用いられているディスプレイ２１６、Ｉ／Ｏデバイス２１８及びネットワークインターフェイス２２０の割合といった情報を、バッテリ仮想化レイヤ４０２へ供給してよい。代替的に、バッテリ仮想化レイヤ４０２は、各ＶＭ３１６によって使用されるハードウェア資源の情報をランタイム環境３１０から受け取ってもよい。例えば、バッテリ仮想化レイヤ４０２は、各ＶＭ３１６によって用いられているプロセッサ２０２、ディスプレイ２１６、Ｉ／Ｏデバイス２１８及びネットワークインターフェイス２２０の能力の割合を特定する情報を受け取ることができる。受け取られた情報に基づき、バッテリ仮想化レイヤ４０２は、各アプリケーション３１２（又はＶＭ３１６）のバッテリ利用の推定値を計算し得る。望まれる場合には、バッテリ仮想化レイヤ４０２は、規則的な間隔で各アプリケーション３１２（又はＶＭ３１６）のバッテリ利用の更新された推定値を計算してもよい。このようなアプリケーションごと（又はＶＭごと）のバッテリ利用推定値は、次いで、バッテリ仮想化レイヤ４０２によって各仮想バッテリマネージャ４０４へ送られてよい。
【００３５】
いくつかの実施形態において、特定のアプリケーション３１２（又はＶＭ３１６）についてのバッテリ利用推定値は、関連するＶＭ３１６に関連付けられたｖＢＭ４０４へだけ送られればよい。バッテリ仮想化レイヤ４０２から受け取られたバッテリ利用推定値に基づき、ｖＢＭ４０４は、そのｖＢＭの仮想マシン３１６内で実行されるアプリケーション３１２の動作を制御し得る。例えば、あるＶＭ３１６がインスタンス化されるとき、それのｖＢＭ４０４は特定の仮想容量を割り当てられてよい。その後の動作中に、ｖＢＭ４０４は、割り当てられた仮想容量から、アプリケーション３１２によって使用されたエネルギを差し引いて、残りの仮想バッテリリザーブを計算するために、バッテリ仮想化レイヤ４０２からのバッテリ利用推定値を使用してよい。残りの仮想バッテリリザーブが所定の閾値に達するとき、又は何らかの所定の将来期間内に閾値を下回ると予測されるとき、ｖＢＭ４０４は“低バッテリ”状態を検出し、ＶＭ３１６と相互作用して、ＶＭ３１６で実行されるアプリケーション３１２のバッテリ利用を制限し得る。例えば、ｖＢＭ４０４は、ＶＭ３１６と相互作用して、ＶＭ３１６で実行されるアプリケーション３１２の部分的又は完全なシャットダウンを開始してもよい。他の例では、ｖＢＭ４０４は、ＶＭ３１６と相互作用して、ＶＭ３１６で実行されるアプリケーション３１２によって、ＵＥ３００のハードウェア資源３０２へのアクセスを制御してもよい。例えば、ＶＭ３１６は、ＲＥ３１０と相互作用して、ＶＭ３１６で実行されるアプリケーション３１２による使用に利用可能なプロセッサ２０２及びネットワークインターフェイス２２０の能力の割合を下げてよい。事実上、ｖＢＭ４０４は、それのＶＭ３１６にだけ関連付けられており、ＶＭ３１６のインスタンス化の時点でそれに割り当てられている物理バッテリ容量の量（又は割合）に対応する仮想容量を有している仮想バッテリ４０６の状態に基づき、ＶＭ３１６で実行されるアプリケーション３１２を制御するよう動作する。
【００３６】
明らかなように、本発明によって提供されるバッテリ仮想化は、多種多様な方法で使用されてよい。使用ケースの選ばれた４つの例が以下で提示される。
【００３７】
使用ケース１：アプリケーションの段階的なシャットダウン
上述されたように、物理バッテリ容量のうちの特定の量が、例えば、ｖＢＭの仮想マシン３１６がインスタンス化されるときに、ｖＢＭ４０４へ割り当てられ得る。この割り当てられた物理バッテリ容量がｖＢＭの仮想バッテリ４０６の仮想容量になり、ｖＢＭ４０４は、その仮想バッテリ４０６に残っている仮想バッテリリザーブが所定の閾値に近づくか又はそれを下回る（若しくは下回ると予想される）場合に、ＶＭ３１６内で実行されているアプリケーション３１２のシャットダウンをトリガしてよい。この機能性は、ランタイム環境３１０内でインスタンス化されているＶＭ３１６の全てにわたるアプリケーションの体系化された段階的シャットダウンをトリガするために使用されてよい。より具体的には、各仮想バッテリ４０６に割り当てられているバッテリ容量の各々の量に基づき、異なるＶＭ内で実行されるアプリケーションは、異なる時点でシャットダウンされ得る。
【００３８】
例えば、所与のｖＢＭ４０４の特定の仮想容量は、ＶＭ３１６で実行されるアプリケーションによって必要とされる期待される電流引き出しに基づき、選択されてよい。例えば、所与の仮想バッテリ４０６に割り当てられるバッテリ容量は、各々のＶＭ３１６でインスタンス化されているアプリケーション（又はアプリケーションのグループ）が、シャットダウン前の定義された期間（例えば、１５分間）にバッテリ電力で実行し続けることを可能にするよう、計算されてよい。この状況は、バッテリ電力で期待された期間作動し続ける必要はないが、シャットダウンされる前にデータのセーブ又は通信セッションの終了にいくらかの時間を必要とするアプリケーションに関係があり得る。
【００３９】
他の例では、所与の仮想バッテリ４０６に割り当てられる仮想容量の量は、ユーザ入力に基づき選択されてもよい。例えば、ユーザは、特定のアプリケーションが可能な限り長くバッテリ電力で作動することを望む場合がある。代替的に、ユーザは、特定のアプリケーションを、物理バッテリ１００の総容量のうちの定義された割合に制限することを望む場合がある。それらの選択肢のいずれもが、ユーザが各アプリケーション（又はアプリケーションのグループ）に割り当てたいと望むバッテリ１００の総容量のうちの割合を示すパラメータを入力することをユーザに可能にするユーザインターフェイスを提供し、次いで、関連する仮想バッテリ４０６への仮想容量の割り当てを計算することによって、達成され得る。ユーザによって入力されるパラメータは、バッテリ容量の如何なる都合の良い単位であってもよい。例えば、ユーザによって入力されるパラメータは、バッテリ１００の総容量のうちのパーセンテージであってよい。
【００４０】
使用ケース２：優先アプリケーションの保護
いくつかのアプリケーション３１２は、高優先であると見なされることがあり、故に、可能な限り長く電力を供給されるべきである。例えば、緊急サービス（例えば、９１１呼び出し、等）の提供に関連付けられたアプリケーション３１２は、それらのアプリケーションが可能な限り長く動作状態に保たれるべきであるということで、高い優先度を割り当てられてよい。これは、バッテリ１００の総容量のうちの比較的多くの割合を、関連する仮想バッテリ４０６の仮想容量へ割り当てることによって、達成され得る。
【００４１】
対照的に、いくつかのアプリケーションは、低優先であると見なされることがあり、故に、特に、より優先度が高いアプリケーションを維持するために、比較的短い期間バッテリ電力を供給されればよい。例えば、エンターテイメントサービス、例えばＮｅｔｆｌｉｘ（登録商標）等の提供に関連付けられたアプリケーション３１２は、それらのアプリケーションが動作中に維持される必要がなく、幹線電力が再開されると直ちに再開可能であるということで、低い優先度を割り当てられてよい。これは、バッテリ１００の総容量のうちの比較的少ない割合を、関連する仮想バッテリ４０６の仮想容量に割り当てることによって、達成され得る。
【００４２】
使用ケース３：バッテリ容量のサービスに基づく割り当て
上記の例１及び２は、アプリケーションごとのバッテリ容量の割り当てについて記載する。多くのネットワーク及びデータセンタサービスは、ＵＥ４００で実行される１以上のアプリケーションに依存する。この場合に、所与のサービスに関連付けられた１以上のアプリケーションの組が、単一のＶＭ３１６内でインスタンス化されてよい。上記のアプリケーションごとの例は、サービスにも適用されてよい。従って、サービスは、サービスのアプリケーションをホストするＶＭ３１６に関連付けられた仮想バッテリ４０６に割り当てられる物理バッテリ容量の割合に基づき、制御された様態で、維持、シャットダウン、又は両方をされ得る。
【００４３】
使用ケース４：バッテリ容量のスライス固有割り当て
本開示のために、（例えば、１以上のネットワーク２２２内の）ネットワーク“スライス”が、何らかの任意の目的のためにグループにまとめられている１以上のベアラ（又はＰＤＵセッション）の集合として定義される。この集合は、例えば、ビジネス局面（例えば、特定の仮想移動体通信事業者（ＭＶＮＯ））、クオリティ・オブ・サービス（ＱｏＳ）要件（例えば、レイテンシ、最低データレート、優先順位付け、等）、トラフィックパラメータ（例えば、超高信頼低遅延通信（ＵＲＬＬＣ）、モバイル・ブロードバンド（ＭＢＢ）、マシン・タイプ・コミュニケーション（ＭＴＣ）、等）、又は使用ケース（例えば、マシン・ツー・マシン通信、モノのインターネット（ＩｏＴ）、等）のような何らかの適切な基準に基づいてよい。
【００４４】
各ネットワークスライスと関連して各々のＶＭ３１６をインスタンス化することによって、ＵＥの及び他のネットワーク接続されたコンピュータデバイス（例えば、データセンタ、等）にスライシングの概念を拡張することが可能である。スライスに関連したＰＤＵセッションをサポートするアプリケーションが次いで、そのＶＭ内でインスタンス化される。結果として、上記のアプリケーションごと及びサービスごとの処理の例は、ネットワークスライスにも適用されてよい。従って、ネットワークスライスは、スライスのアプリケーションをホストするＶＭ３１６に関連付けられた仮想バッテリ４０６に割り当てられる物理バッテリ容量の割合に基づき、制御された様態で、維持、シャットダウン、又は両方をされ得る。
【００４５】
例えば、いくつかのネットワーキング環境で、ＵＥを中継器として使用して、第２ＵＥがネットワークへ接続することを可能にすることが望ましい。そのような中継動作に関連したＰＤＵセッションは、その目的のためにインスタンス化されるスライス内でグループ化されてよい。この場合に、ＶＭ３１６は、そのスライスについてインスタンス化され、中継動作をサポートするために使用される１以上のアプリケーションは、そのＶＭ内で実行してよい。結果として、上記のアプリケーションごとの処理の例は、スライスにも適用されてよい。従って、スライスは、関連する仮想バッテリ４０６の仮想容量に基づき、制御された様態で、維持、シャットダウン、又は両方をされ得る。
【００４６】
他の例では、スライシングは、ＵＥがネットワークへの１以上の接続を確立及び維持することを可能にするために使用されてよい。例えば、ＵＥは、超高信頼低遅延通信（ＵＲＬＬＣ）のための第１接続と、モバイル・ブロードバンド（ＭＢＢ）のための第２接続と、マシン・タイプ・コミュニケーション（ＭＴＣ）のための第３接続とを確立してよい。これらの接続の夫々が独立して管理されることを可能にするために、各接続は、各々のスライスと、各スライスについてインスタンス化された各々のＶＭ３１６とに関連付けられ得る。各ＶＭ３１６内で、１以上のアプリケーションは、関連するスライスのＰＤＵセッションをサポートするよう各ＶＭ３１６においてインスタンス化されてよい。各ＶＭ／スライスの仮想バッテリ４０６に割り当てられる仮想容量は、各スライスの推定される利用に基づき計算されてよく、それにより、各スライスのＰＤＵセッションは、物理バッテリ１００の容量がスライスのいずれか１つによって独占されないことを確かにしながら適切にサポートされ得る。
【００４７】
明らかなように、本発明に従うバッテリ仮想化は、優先度が高いアプリケーションがバッテリ電力で可能な限り長くサポートされることを可能にすることによって、優先度が低いアプリケーションの早期のシャットダウンと、物理バッテリ１００が枯渇した（すなわち、完全放電された）場合における全てのアプリケーションの体系化されたシャットダウンとをトリガすることによって、ＵＥ４００の動作を改善する（あるいは、同等に、技術的効果を提供する。）。
【００４８】
上記の例では、（各）仮想バッテリ４０６の仮想容量は、起動時（すなわち、対応するＶＭ３１６がインスタンス化されるとき）に割り当てられ、ＶＭ３１６に関連付けられたアプリケーション（又はアプリケーションのグループ）のランタイム中に変化しない。これは、ハード（又は固定）バッテリ容量割り当ての例である。しかし、バッテリ容量の割り当ては、それがランタイム中に調整され得る限りにおいて、動的であってよいことが理解されるだろう。例えば、３つのＶＭ／スライスがＵＲＬＬＣ、ＭＢＢ及びＭＴＣ接続のＰＤＵセッションを夫々ホストするためにインスタンス化される上記の使用ケースを考える。その使用ケースにおいて、各ＶＭ／スライスは、各々の仮想バッテリ４０６に関連付けられ、仮想バッテリ４０６の容量は、３つの接続タイプの夫々の期待される利用に基づき決定される。しかし、３つの接続タイプの夫々の実際の利用が、期待される利用とは実質的に異なる場合に、各仮想バッテリ４０６の当初割り当てられた容量は、各スライスの実際の電力要件を反映しないことになる。そのような場合に、バッテリ仮想化レイヤ４０２は、バッテリ利用が実際よりも実質的に高いか又は低い１以上のスライス（又はＶＭ）を識別し、関連する仮想バッテリ４０６の夫々について、更新された仮想容量割り当てを計算してよい。例えば、十分に利用されていないスライスに関連付けられた仮想バッテリ４０６の仮想容量は、過度に利用されているスライスのような他のスライスに関連付けられた仮想バッテリ４０６の仮想容量を増大させるために、低減されてよい。また、いくつかの実施形態において、ＵＥ４００の異なるスライスは、ＵＥ４００の異なる資源へのアクセスを提供され得ることが理解されるべきである。１つのそのような例で、ＭＴＣサービスに関連するスライスは、ＵＥ４００の利用可能なアンテナの限られた組へのアクセスを提供されてよく、あるいは、特定のタイプのネットワークインターフェイスのみにアクセスする（例えば、ＷｉＦｉインターフェイス又はブルートゥースインターフェイスのような資源へのアクセスを提供するのではなく、無線アクセスネットワーク（ＲＡＮ）に基づくデータ接続にのみアクセスする）能力を有してもよい。いくつかのシナリオにおいて、ＭＴＣサービスに、又はＵＥに基づく中継サービスのようなキャリアサービスに関連するスライスは、ディスプレイへのアクセスを提供されなくてもよい。ディスプレイへのアクセスを制限することによって、スライスに関連した電力消費は大いに低減され得る。いくつかの実施形態において、ＵＥに基づく中継サービスのＭＴＣサービスに関連したスライスは、それが関連付けられている仮想バッテリを使い果たさないことがあり、一方、ＭＢＢ又はｅＭＢＢサービスに関連した仮想バッテリは、使い果たされる可能性がある。そのような場合に、ユーザの観点から、ＵＥ４００は使用できない場合があるが、ＵＥ４００は、自身の仮想バッテリを使い果たしていない他のスライスにサービスを提供するよう、（いくつかの実施形態では、ディスプレイと相互作用することなしに）動作し続けることができる。入力及び出力デバイス（例えば、タッチスクリーン入力、スピーカ、マイクロホン、等）のような他の資源は、全てのスライスが利用できない可能性がある他のＵＥ資源であってよいことが更に理解されるべきである。
【００４９】
上記の例において、バッテリ仮想化は、スマートフォン又はタブレットＰＣのようなユーザ装置（ＵＥ）４００の形をとる電子デバイスとの関連で記載される。図５は、ネットワークサーバ、データセンタ、又はモバイル・エッジ・コンピューティング・サーバのようなサーバでバッテリ仮想化が実装される代替の実施形態を表す。
【００５０】
図５は、本発明の代表的な実施形態に従うバッテリ仮想化を実装する代表的なサーバ５００のアーキテクチャを概略的に表すブロック図である。サーバ５００は、ローカルネットワーク又はクラスタを形成するよう一緒に相互接続され、その意図された機能を実行するよう適切なソフトウェアを実行する１以上のコンピュータ、記憶デバイス及びルータ（そのうちのいずれか又は全てが、図２を参照して上述されたシステム２００に従って構成され得る。）として物理的に実装されてよいと考えられている。当業者は、本発明のために使用され得るハードウェア及びソフトウェアの多数の適切な組み合わせがあることを認識するだろう。それらのハードウェア及びソフトウェアは、当該技術で知られているか、あるいは、将来開発され得るかのいずれかである。この理由により、物理サーバハードウェアを示す図は、本明細書に含まれない。むしろ、図５のブロック図は、サーバ５００の代表的な機能アーキテクチャを示し、この機能アーキテクチャは、ハードウェア及びソフトウェアの任意の適切な組み合わせを用いて実装され得ることが理解される。
【００５１】
図５から分かるように、表されているサーバ５００は、一般に、ホスティングインフラストラクチャ５０２と、アプリケーションプラットフォーム５０４とを有する。ホスティングインフラストラクチャ５０２は、サーバ５００の物理ハードウェア資源５０６（例えば、情報処理資源、トラフィック転送資源、及びデータ記憶資源、等）と、ハードウェア資源５０６の抽象概念をアプリケーションプラットフォーム５０４に与える仮想化レイヤ５０８とを有する。この抽象概念の具体的な詳細は、アプリケーションレイヤによってホストされているアプリケーションの要件に依存する（後述）。よって、例えば、トラフィック転送機能を提供するアプリケーションは、１以上のルータでのトラフィック転送ポリシーの実装を簡単にするハードウェア資源５０６の抽象概念を与えられ得る。同様に、データ記憶機能を提供するアプリケーションは、（例えば、ライトウェイト・ディレクトリ・アクセス・プロトコル−ＬＤＡＰを用いて）データの記憶及び取り出しを助けるハードウェア資源５０６の抽象概念を与えられ得る。
【００５２】
アプリケーションプラットフォーム５０４は、仮想化マネージャ５１０及びアプリケーションプラットフォームサービス５１２を含み、アプリケーションをホストする能力を提供する。仮想化マネージャ５１０は、インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）設備を提供することによってアプリケーション５１４のための柔軟且つ効率的なマルチテナンシ・ランタイム及びホスティング環境をサポートする。動作中、仮想化マネージャ５１０は、プラットフォーム５０４によってホストされている各アプリケーションのための安全性及び資源“サンドボックス”を提供し得る。各“サンドボックス”は、適切なオペレーティング・システムを含むことができる仮想マシン（ＶＭ）５１６として実装され、サーバ５００の（仮想化された）ハードウェア資源５０６へのアクセスを制御され得る。アプリケーションプラットフォームサービス５１２は、以下で更に詳細に記載されるように、アプリケーションプラットフォーム５０４でホストされるアプリケーション５１４へミドルウェアアプリケーションサービス及びインフラストラクチャサービスの組を提供する。
【００５３】
ベンダー、サービスプロバイダ、及びサードパーティからのアプリケーション５１４は、各々の仮想マシン５１６内で開発及び実行されてよい。例えば、マネージメント・アンド・オーケストレーション（ＭＡＮＯ）及びサービス指向ネットワーク自動生成（ＳＯＮＡＣ）、並びにソフトウェア定義トポロジ（ＳＤＴ）、ソフトウェア定義プロトコル（ＳＤＰ）、及びソフトウェア定義資源割り当て（ＳＤＲＡ）のようなその様々な機能は、上述されたように、アプリケーションプラットフォーム５０４でホストされている１以上のアプリケーション５１４を用いて実装されてよい。サーバ５００におけるアプリケーション５１４とサービスとの間の通信は、当該技術で知られているサービス指向アーキテクチャ（ＳＯＡ）の原理に従って都合良く設計され得る。
【００５４】
通信サービス５１８は、単一のサーバ５００でホストされるアプリケーション５１４がアプリケーションプラットフォームサービス５１２と（例えば、事前に定義されたアプリケーション・プログラミング・サービス（ＡＰＩ）を通じて）及びお互いと（例えば、サービス固有ＡＰＩを通じて）通信することを可能にし得る。
【００５５】
サービスレジストリ５２０は、サーバ５００で利用可能なサービスの可視性を提供し得る。加えて、サービスレジストリ５２０は、サービス利用可能性（例えば、サービスの状態）を、関係のあるインターフェイス及びバージョンとともに提示してもよい。これは、アプリケーションによって、それらが必要とするサービスについてエンドポイントを発見し位置を突き止めるために、且つ、他のアプリケーションが使用するためにそれら自身のサービスエンドポイントを公開するために、使用されてよい。
【００５６】
モバイル・エッジ・コンピューティングは、クラウドアプリケーションサービスがモバイルネットワーク要素と一緒にホストされること可能にし、利用可能な実時間のネットワーク及び無線情報の活用も促進する。ネットワーク情報サービス（ＮＩＳ）５２２は、低レベルのネットワーク情報をアプリケーション５１４に供給してよい。例えば、ＮＩＳ５２２によって供給される情報は、セルＩＤ、加入者の位置、セル負荷及びスループットガイダンスのような高レベル且つ有意味なデータを計算及び提示するためにアプリケーション５１４によって使用されてよい。
【００５７】
トラフィック・オフロード・ファンクション（ＴＯＦ）サービス５２４は、トラフィックに優先順位を付け、アプリケーション５１４との間で、選択された、ポリシーに基づくユーザデータストリームを転送してよい。ＴＯＦサービス５２４は、（アップリンク又はダウンリンクのいずれか一方の）トラフィックが、それをモニタ、変更、又は成形して元のパケット・データ・ネットワーク（ＰＤＮ）接続（例えば、３ＧＰＰベアラ）へ返送することができるアプリケーション５１４へ送られるパススルーモードと、トラフィックが、サーバとして働くアプリケーション５１４によって終端されるエンドポイントモードとを含む様々な方法で、アプリケーション５１４へ供給されてよい。
【００５８】
ネットワークサーバ、データセンタ、又はモバイル・エッジ・コンピューティング・サーバのようなサーバ５００との関連で、通常動作のための電力は、幹線電源から供給され、物理バッテリ１００は、幹線電力の供給停止時に緊急電源として使用される。そのような場合に、バッテリ１００は、複数の電気化学電池、燃料電池、発電機、又はそれらの組み合わせとして設けられてよい。
【００５９】
本発明によれば、上述されたサーバ５００の機能アーキテクチャは、サーバ５００でホストされるアプリケーション５１４へ仮想化されたバッテリ機能性を提供するよう拡張され得る。図５から分かるように、仮想化レイヤ５０８は、バッテリ仮想化レイヤ４０２の機能性を包含し、故に、物理バッテリ１００の抽象概念をアプリケーションプラットフォーム５０４に提示するよう拡張され得る。この抽象概念の具体的な詳細は、アプリケーションプラットフォーム５０４によってホストされているアプリケーション５１４の具体的な要件に依存し得るが、一般的には、各ＶＭ５１６について各々の仮想バッテリのインスタンス化及び管理を促進するよう設計される。
【００６０】
明らかなように、サーバ５００内の仮想化マネージャ５１０の役割は、仮想化マネージャ５１０がアプリケーション５１４のための柔軟且つ効率的なマルチテナンシ・ランタイム及びホスティング環境をサポートする点で、ＵＥ３００のランタイム環境３１０のそれとほぼ同じである。動作中、仮想化マネージャ５１０は、プラットフォーム５０４によってホストされている各アプリケーションのための安全性及び資源“サンドボックス”を提供し得る。各“サンドボックス”は、適切なオペレーティング・システムを含むことができる仮想マシン（ＶＭ）５１６として実装され、サーバ５００の（仮想化された）ハードウェア資源５０６へのアクセスを制御され得る。本発明によれば、この機能性は、各ＶＭ５１６について各々の仮想バッテリを実装し、それによって（仮想化された）バッテリ１００へのアクセスを提供するよう拡張され得る。同様に、アプリケーションプラットフォームサービス５１２は、アプリケーションプラットフォーム５０４でホストされるアプリケーション５１４へミドルウェアインフラストラクチャとして仮想バッテリマネージャ（ｖＢＭ）機能５２６を提供するよう拡張され得る。
【００６１】
図５の配置によれば、アプリケーションプラットフォーム５０４は、（例えば、１以上のアプリケーション５１４に関して無停電電源を実装するための）バッテリ容量へのアクセスが、顧客に課金されることがあるアプリケーションプラットフォーム５０４のサービスとして提供され得るバッテリ・アズ・ア・サービス（ＢａａＳ）を含むよう、インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）の概念を拡張し得る。
【００６２】
上記の説明において、本発明の例となる実施形態は、バッテリ１００に保持されているエネルギが使い果たされている状況を参照して記載されてきた。上述されたように、この条件は、バッテリ１００から引き出される全電流の正値によって示され得る。対照的に、バッテリ１００に保持されているエネルギが増大している状況は、バッテリ１００から引き出される全電流の負値によって示され得る。バッテリ１００が充電中であるとき、バッテリマネージャ３１８は、各ｖＢＭ４０４と相互作用して、各仮想バッテリ４０６の各々の仮想バッテリリザーブを、その仮想バッテリ４０６に割り当てられている総仮想容量まで増大させ得る。望まれる場合には、各仮想バッテリ４０６の各々の仮想バッテリリザーブは、全てのＶＭ３１６にわたって等しく、又はそれらの仮想容量に比例して増大し得る。これは、物理バッテリ１００に保持されている再充電エネルギの公平な共有を意味する。代替的に、各仮想バッテリ４０６の各々の仮想バッテリリザーブは、定義された順序で増大してもよい。例えば、優先度が高いＶＭ３１６（又は優先度が高いアプリケーション３１２）に関連付けられた仮想バッテリ４０６の各々の仮想バッテリリザーブが最初に増大され得る。そのような場合に、優先度が低いＶＭ３１６（又は優先度が低いアプリケーション３１２）に関連付けされた仮想バッテリ４０６の各々の仮想バッテリリザーブは、優先度が高い仮想バッテリ４０６が十分な容量になるまで増大され得ない。
【００６３】
本発明は具体的な特徴及びそれらの実施形態を参照して記載されてきたが、様々な変更及び組み合わせが、本発明から外れることなしにそれらに対して行われ得ることは、明らかである。明細書及び図面は、従って、添付の特許請求の範囲によって定義される本発明の実例と単に見なされるべきであり、本発明の適用範囲内に入るありとあらゆる変更、変形、組み合わせ又は同等物も網羅すると考えられている。
【００６４】
関連出願の相互参照
本願は、“Battery  Virtualization”と題されて、２０１７年４月２４日付けで出願された米国特許出願第１５／４９５０９６号に基づく優先権の利益を主張する。なお、優先権と基礎とされた特許出願の内容は、参照により本願に援用される。
【図１】
0006924895.tif 000002
【図２】
0006924895.tif 000003
【図３】
0006924895.tif 000004
【図４】
0006924895.tif 000005
【図５】
0006924895.tif 000006