(57)【特許請求の範囲】
【請求項１】
ユーザデバイスが第１のセルから第２のセルへ移動する確率を計算することと、
前記計算された確率に少なくとも部分的に基づき、前記第２のセルに対応する第２のキャッシュサーバから前記第１のセルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算することと、
を含む方法。
【請求項２】
地理データに対する要求を前記ユーザデバイスから受け取ることと、
前記ユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方を、前記受け取られた要求から抽出することと、
をさらに含んでおり、移動する前記確率の前記計算が、前記抽出された識別子とジオロケーション情報との前記少なくとも一方に基づく、請求項１に記載の方法。
【請求項３】
前記要求がＨＴＴＰ（ハイパーテキスト転送プロトコル）要求を含み、前記識別子と前記ジオロケーション情報との少なくとも一方の前記抽出が、前記ＨＴＴＰ要求のヘッダの解析を含む、請求項２に記載の方法。
【請求項４】
前記ＨＴＴＰ要求がＨＴＴＰ  ＧＥＴ要求またはＨＴＴＰ  ＰＯＳＴ要求を含んでおり、前記識別子が前記ＨＴＴＰ  ＧＥＴ要求または前記ＨＴＴＰ  ＰＯＳＴ要求の前記ヘッダにおけるクッキーと識別テキストストリングとの少なくとも一方を含む、請求項３に記載の方法。
【請求項５】
前記ジオロケーション情報がＧＰＳ（全地球測位システム）情報を含む、請求項２に記載の方法。
【請求項６】
前記ユーザデバイスが移動する前記確率の前記計算が、前記ユーザデバイスの移動速度に少なくとも部分的に基づく、請求項１に記載の方法。
【請求項７】
前記第１のキャッシュサーバと前記第２のキャッシュサーバとがインメモリキャッシュサーバである、請求項１に記載の方法。
【請求項８】
前記第１のキャッシュサーバと前記第２のキャッシュサーバとが、データベースサーバから、前記第１のセルに関する地理データと前記第２のセルに関する地理データとをそれぞれキャッシュする、請求項１に記載の方法。
【請求項９】
コピーするキャッシュされたデータの前記量が、移動の前記計算された確率と共に増加する、請求項１に記載の方法。
【請求項１０】
コピーするキャッシュされたデータの量の前記計算が、前記第１のセルと前記第２のセルとの間の距離に少なくとも部分的に基づく、請求項１に記載の方法。
【請求項１１】
前記第１のセルと前記第２のセルとが相互に実質的に同じサイズである、請求項１に記載の方法。
【請求項１２】
前記第１のセルと前記第２のセルとのそれぞれのサイズが、キャッシュサーバの総数と前記キャッシュサーバのメモリ容量との少なくとも一方に依存して変動する、請求項１に記載の方法。
【請求項１３】
キャッシュされたデータの前記計算された量を前記第２のキャッシュサーバから前記第１のキャッシュサーバにコピーすることをさらに含む、請求項１に記載の方法。
【請求項１４】
前記第１のキャッシュサーバは、前記第１のセルに関するデータをキャッシュし、前記第２のキャッシュサーバは、前記第２のセルに関するデータをキャッシュする、請求項１に記載の方法。
【請求項１５】
ユーザデバイスから受け取られたストリームから、前記ユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方を抽出するように構成されたデバイス情報抽出器と、
キャッシュサーバと現実空間セルとの間の関連付けを管理するように構成されたジオロケーションメッシュマネージャであって、前記キャッシュサーバは、それぞれが、当該キャッシュサーバに配分されたセルに関する情報をデータベースサーバからキャッシュする、ジオロケーションメッシュマネージャと、
前記ユーザデバイスが第１の現実空間セルから第２の現実空間セルに移動する確率を計算するように構成された移動確率計算器と、
前記計算された移動確率に少なくとも部分的に基づき、前記第２の現実空間セルに対応する第２のキャッシュサーバから前記第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算するように構成されたコピーファクタ計算器と、
を備えているロードバランサ。
【請求項１６】
前記ストリームが前記ユーザデバイスからのＨＴＴＰ（ハイパーテキスト転送プロトコル）要求から生じ、
前記デバイス情報抽出器が、さらに、前記ユーザデバイスに関連する前記識別子と前記ジオロケーション情報との少なくとも一方を抽出するために、前記ＨＴＴＰ要求のヘッダを解析するように構成されている、請求項１５に記載のロードバランサ。
【請求項１７】
前記ジオロケーション情報がＧＰＳ（全地球測位システム）情報を含む、請求項１５に記載のロードバランサ。
【請求項１８】
前記第１のキャッシュサーバと前記第２のキャッシュサーバとがインメモリキャッシュサーバである、請求項１５に記載のロードバランサ。
【請求項１９】
前記第１のキャッシュサーバと前記第２のキャッシュサーバとが、前記データベースサーバから、前記第１の現実空間セルに関する地理データと前記第２の現実空間セルに関する地理データとをそれぞれキャッシュする、請求項１５に記載のロードバランサ。
【請求項２０】
前記移動確率計算器が、さらに、前記ユーザデバイスの移動速度に少なくとも部分的に基づき、前記確率を計算するように構成されている、請求項１５に記載のロードバランサ。
【請求項２１】
前記コピーファクタ計算器が、さらに、前記第１の現実空間セルと前記第２の現実空間セルとの間の距離に少なくとも部分的に基づき、前記第２のキャッシュサーバから前記第１のキャッシュサーバへのキャッシュコピーの量を計算するように構成されている、請求項１５に記載のロードバランサ。
【請求項２２】
前記第１の現実空間セルと前記第２の現実空間セルとのサイズが、キャッシュサーバの総数と前記キャッシュサーバのメモリ容量との少なくとも一方に依存して変動する、請求項１５に記載のロードバランサ。
【請求項２３】
地理データを記憶するデータベースサーバとウェブアプリケーションサーバとの間での負荷平衡を実施するプログラムが記憶されているコンピュータ可読記憶媒体であって、前記プログラムが、
現実空間セルとキャッシュサーバとの間の関連付けを管理するように構成されているジオロケーションメッシュ管理モジュールであって、前記キャッシュサーバは、それぞれが、前記現実空間セルの内の対応する１つに関連する前記地理データの少なくとも一部を、前記データベースサーバからキャッシュする、ジオロケーションメッシュ管理モジュールと、
第２の現実空間セルに対応する第２のキャッシュサーバから第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を、前記第１の現実空間セルから前記第２の現実空間セルへユーザデバイスが移動する計算された確率と、前記第１の現実空間セルと前記第２の現実空間セルとの間の距離とに少なくとも部分的に基づき、計算するように構成されているコピーファクタ計算モジュールと、
を含む、コンピュータ可読記憶媒体。
【請求項２４】
前記プログラムが、
前記ユーザデバイスからのＨＴＴＰ（ハイパーテキスト転送プロトコル）要求を解析し、前記ＨＴＴＰ要求から、前記ユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方を抽出するように構成されているＨＴＴＰヘッダ解析モジュールをさらに含む、請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記第１のキャッシュサーバと前記第２のキャッシュサーバとがインメモリキャッシュサーバである、請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２６】
地理データを記憶するデータベースサーバとウェブアプリケーションサーバとの間での負荷平衡を実施するプログラムであって、
現実空間セルとキャッシュサーバとの間の関連付けを管理するように構成されているジオロケーションメッシュ管理機能であって、前記キャッシュサーバは、それぞれが、前記現実空間セルの内の対応する１つに関連する前記地理データの少なくとも一部を、前記データベースサーバからキャッシュする、ジオロケーションメッシュ管理機能と、
第２の現実空間セルに対応する第２のキャッシュサーバから第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を、前記第１の現実空間セルから前記第２の現実空間セルへユーザデバイスが移動する計算された確率と、前記第１の現実空間セルと前記第２の現実空間セルとの間の距離とに少なくとも部分的に基づき、計算するように構成されているコピーファクタ計算機能と、
コンピュータに実現させるための前記プログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
スマートフォンやタブレットコンピュータなど、ハイエンドのモバイルデバイスと関連するネットワークトラフィックが増加しつつある。スマートフォンに関するユーザ一人あたりの平均トラフィック（ＡＴＰＵ）は２０１５年までに７７６メガバイト／月に到達し、スマートフォンと関連する全世界のネットワークトラフィックは２０１５年には６．３エクサバイト／月まで増加すると予想される。モバイルトラフィックが上述したように爆発的に増加するにつれて、クラウドコンピューティングシステムを用いたスケールアウトが、重要になる。
【０００２】
しかし、クラウドコンピューティング環境を実装するための既存のインフラストラクチャは、一般に、パーソナルコンピュータ上で動作する電子メールアプリケーションやワードプロセッサなどの業務用アプリケーションに適応しており、モバイルコンピューティングアプリケーションを効率的に実装することは困難である。例えば、モバイルサービスのための地図アプリケーションやジオロケーション情報に基づく情報配信アプリケーションでは、大量の地図イメージデータや配信データがデータベースサーバから一度に取り出されるため、データベースサーバとウェブアプリケーションサーバとの間の通信がボトルネックになる傾向がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ある例では、方法が、ユーザデバイスが第１のセルから第２のセルへ移動する確率を計算することと、計算された確率に少なくとも部分的に基づき、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算することと、を含みうる。
【０００４】
別の例では、方法が、ユーザデバイスの移動に少なくとも部分的に基づき、データベースサーバのためのデータキャッシュを動的に構成することと、動的構成に基づき、ユーザデバイスによって要求された地理データをキャッシュすることと、を含みうる。
【０００５】
さらに別の例では、ロードバランサが、ユーザデバイスから受け取られたストリームから、ユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方を抽出するように構成されたデバイス情報抽出器と、キャッシュサーバと現実空間セルとの間の関連付けを管理するように構成されたジオロケーションメッシュマネージャであって、キャッシュサーバは、それぞれが、当該キャッシュサーバに配分されたセルに関する情報をデータベースサーバからキャッシュする、ジオロケーションメッシュマネージャと、ユーザデバイスが第１の現実空間セルから第２の現実空間セルに移動する確率を計算するように構成された移動確率計算器と、計算された移動確率に少なくとも部分的に基づき、第２の現実空間セルに対応する第２のキャッシュサーバから第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算するように構成されたコピーファクタ計算器と、を含みうる。
【０００６】
さらに別の例では、コンピュータ可読記憶媒体が、地理データを記憶するデータベースサーバとウェブアプリケーションサーバとの間での負荷平衡を実施するプログラムを記憶しうるのであって、このプログラムが、現実空間セルとキャッシュサーバとの間の関連付けを管理するように構成されているジオロケーションメッシュ管理モジュールであって、キャッシュサーバのそれぞれが現実空間セルの内の対応する１つに関連する地理データの少なくとも一部をデータベースサーバからキャッシュする、ジオロケーションメッシュ管理モジュールと、第２の現実空間セルに対応する第２のキャッシュサーバから第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を、第１の現実空間セルから第２の現実空間セルへユーザデバイスが移動する計算された確率と、第１の現実空間セルと第２の現実空間セルとの間の距離とに少なくとも部分的に基づいて、計算するように構成されているコピーファクタ計算モジュールと、を含む。
【０００７】
以上の概要は、説明の目的だけを有し、どのような意味においても限定的であることは意図されていない。上述した説明のための態様、実施形態、および特徴に加え、さらなる態様、実施形態、および特徴が、図面と以下の詳細な説明とを参照することにより明らかになるであろう。
【０００８】
本開示の以上のおよびそれ以外の特徴は、添付の図面と共に以下の説明と添付の特許請求の範囲とを考察することで、より明らかになる。これらの図面は本開示によるいくつかの実施形態を示しているだけであり、したがって、本開示の範囲を限定するものと考えるべきではないことを理解した上で、本開示は、以下の添付の図面を用いることを通じ、追加的な特定性と詳細とを伴って、説明される。
【図面の簡単な説明】
【０００９】
【図１】本明細書で説明される少なくともいくつかの実施形態に従って構成されたロードバランサがデータベースサーバとアプリケーションサーバとの間で負荷均衡化を提供する環境の説明を目的とする例を概略的に示す図である。
【図２（Ａ）】本明細書で説明される少なくともいくつかの実施形態に従って構成された、キャッシュサーバと現実空間セルとの間を関連付けるためのメッシュ構造の、説明を目的とする例を示す図である。
【図２（Ｂ）】本明細書で説明される少なくともいくつかの実施形態に従って構成された、キャッシュサーバの間でキャッシュされたデータをコピーすることの、説明を目的とする例を示す図である。
【図３】本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するように構成されているロードバランサの、説明を目的とする例の概略的なブロック図である。
【図４】本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するように構成されている説明目的の例示的なシステムを概略的に示す図である。
【図５】本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するプロセスの例示的な流れ図である。
【図６】本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するのに用いることができるコンピュータプログラム製品を示す図である。
【図７】本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するのに用いることができる例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【００１０】
以下の詳細な説明では添付の図面を参照するが、これらの図面は、詳細な説明の一部を形成する。図面では、別段文脈により示されない限り、類似の記号は類似のコンポーネントを識別するのが典型的である。詳細な説明、図面、および特許請求の範囲に記載されている説明のための実施形態は、限定を意図していない。本明細書において提示される主題の精神または範囲から逸脱することなく、他の実施形態を用いることが可能であり、他の変更を行うことが可能である。本明細書で一般的に説明され図面で示されている本開示の態様は、広範な異なる構成で配列され、置き換えられ、組み合わされ、分離され、設計されることが可能であり、これらのすべてが、本明細書で明示的に企図されることが容易に理解されよう。
【００１１】
この開示は、一般に、とりわけ、モバイルサービスをホストするクラウドコンピューティング環境において負荷を均衡化することに関係する方法、装置、システム、デバイス、およびコンピュータプログラム製品に関する。
【００１２】
データベースサーバとアプリケーションサーバとの間でジオロケーションに基づく負荷均衡化を提供するように構成されたロードバランサのための技術が、一般的に説明される。
【００１３】
いくつかの例では、クラウドコンピューティング環境におけるアプリケーションを、ウェブサーバ、ウェブアプリケーションサーバなどのアプリケーションサーバ、およびデータベースサーバを含む３つのサーバ層を用いて実装することができる。いくつかの例では、ロードバランサは、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供して、トラフィックの増加に起因するそれらのサーバの間での通信ボトルネックを解消することができる。
【００１４】
いくつかの例では、モバイルサービスのための地図アプリケーションまたはジオロケーション情報に基づく情報配信アプリケーションの場合に、ロードバランサは、データベースサーバとアプリケーションサーバとの間でジオロケーションに基づく負荷均衡化を提供して、大量の地図イメージデータまたは配信データをデータベースサーバから取り出すことによって生じる通信ボトルネックを解消することができる。
【００１５】
いくつかの例では、ロードバランサは、ユーザデバイスの移動に少なくとも部分的に基づいてデータベースサーバのためにデータキャッシュを動的に構成し、その動的構成に少なくとも部分的に基づいてユーザデバイスによって要求される地理データをキャッシュすることができ、よって、アプリケーションサーバからデータベースサーバへのデータアクセスを高速化することができる。
【００１６】
いくつかの例では、インメモリキャッシュサーバなど、データベースサーバから取り出されたデータをキャッシュする複数のキャッシュサーバを用いて、アプリケーションサーバからデータベースサーバへのアクセス数を減少させることができる。
【００１７】
いくつかの例では、モバイルサービスの応答速度とサービス提供容量（すなわち、同時に接続可能なユーザデバイスの数）とを改善するために、ロードバランサは、複数のキャッシュサーバの間でのデータのコピーを管理することができる。
【００１８】
いくつかの例では、ロードバランサは、現実空間の所定の範囲または領域を複数のセルに分割し、複数のキャッシュサーバを、それら複数のキャッシュサーバのそれぞれが複数のセルの内の１つに関する地理データをデータベースサーバからキャッシュするように、管理することができる。ロードバランサは、キャッシュサーバとセルとの間の関連付けを管理することができる。
【００１９】
いくつかの例では、ロードバランサは、地理データに対する要求をユーザデバイスから受け取り、受け取られた要求から抽出されたユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方に少なくとも部分的に基づいて、第１のセルから第２のセルにユーザデバイスが移動する確率を計算することができる。
【００２０】
いくつかの例では、ロードバランサは、この確率を、地図情報を用いることによって、前もって静的に計算することができる。
【００２１】
いくつかの例では、ロードバランサは、次に、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバへのコピーファクタ、すなわち、第２のキャッシュサーバから第１のキャッシュサーバへコピーするキャッシュされたデータの量を、計算された確率に少なくとも部分的に基づいて、計算することができる。
【００２２】
いくつかの例では、すべての領域およびユーザに対するコピーファクタを管理することによって、キャッシュサーバを、ユーザがそこへ移動する可能性がある領域に関する情報を動的および／または自動的に記憶するように構成することができ、それによりアプリケーションサーバからデータベースサーバへのアクセス数を減少させることができる。
【００２３】
いくつかの例では、ロードバランサを、アプリケーションサーバおよびデータベースサーバと独立なネットワーク機器として、実装することができる。そうすることで、ロードバランサを、既存のインフラストラクチャとアプリケーションとを著しく修正することなく、クラウドコンピューティング環境に導入し、モバイルサービスの応答速度とサービス提供容量とを向上させることができる。
【００２４】
図１は、本明細書で説明される少なくともいくつかの実施形態に従って構成されたロードバランサが、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供する環境の、説明を目的とする例を概略的に示している。図１に示されているように、ユーザデバイス１１０は、アプリケーションサーバ１２０−１、１２０−２、・・・、１２０−ｍの内の少なくとも１つに、データベースサーバ１３０に記憶されている可能性がある地理データに対する要求を送ることができる。例示であり限定ではないが、この要求は、例えばＨＴＴＰ（ハイパーテキスト転送プロトコル）  ＧＥＴ要求またはＨＴＴＰ  ＰＯＳＴ要求などのＨＴＴＰ要求を含みうる。
【００２５】
いくつかの実施形態では、接続ハンドラ１４０が、ユーザデバイス１１０からの要求を、アプリケーションサーバ１２０−１、１２０−２、・・・、１２０−ｍの内の適切な１つに配分または割り当てることができる。いくつかの実施形態では、接続ハンドラ１４０は、アプリケーションサーバ１２０−１、１２０−２、・・・、１２０−ｍの処理負荷に少なくとも部分的に基づいて、要求の配分または割り当てを行うことができる。
【００２６】
いくつかの実施形態では、データベースサーバ１３０は、所定の範囲または領域の現実空間に関する地理データを記憶していることがある。いくつかの実施形態では、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎは、データベースサーバ１３０に記憶されている地理データの少なくとも一部をキャッシュしていることがありうる。いくつかの実施形態では、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎは、それぞれが、上記所定の範囲または領域の現実空間における複数のセルの内の１つに関連する地理データの少なくとも一部を、データベースサーバ１３０からキャッシュすることがありうる。例示であり限定ではないが、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎは、インメモリキャッシュサーバでありうる。例示であり限定ではないが、セルのそれぞれのサイズは、クラウドコンピューティング環境に提供されているキャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎの総数および／またはキャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎのメモリ容量に応じて、変動しうる。例えば、クラウドコンピューティング環境において十分な数のキャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎが提供され、そのメモリ容量も十分であるときには、セルのサイズを比較的小さく設定することができ（例えば、それぞれの辺が１０メートルである正方形）、他方で、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎの数が十分でないおよび／またはそのメモリ容量が小さいときには、セルのサイズを比較的大きく設定することができる（例えば、それぞれの辺が１０００メートルである正方形）。
【００２７】
いくつかの実施形態では、ロードバランサ１６０は、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎと現実空間セルとの間の関連付けを管理することができる。例示であり限定ではないが、ロードバランサ１６０は、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎをセル１７０−１、１７０−２、・・・、１７０−ｎにそれぞれ配分して、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎが、セル１７０−１、１７０−２、・・・、１７０−ｎにそれぞれ関連する地理データをデータベースサーバ１３０からキャッシュまたは取り出すことができる。
【００２８】
いくつかの実施形態では、ロードバランサ１６０は、また、アプリケーションサーバ１２０−１、１２０−２、・・・、１２０−ｍの内の少なくとも１つから、ユーザデバイス１１０からの要求を受け取ることがある。すると、ロードバランサ１６０は、受け取られた要求を解析し、その要求から、ユーザデバイス１１０に関連する識別子および／またはジオロケーション情報を抽出することができる。例示であり限定ではないが、要求がＨＴＴＰ  ＧＥＴ要求またはＨＴＴＰ  ＰＯＳＴ要求などのＨＴＴＰ要求であるときには、識別子は、ＨＴＴＰ要求のヘッダに、クッキーと識別テキストストリングとの少なくとも一方を含みうる。例示であり限定ではないが、ジオロケーション情報は、ＧＰＳ（全地球測位システム）情報を含みうる。
【００２９】
いくつかの実施形態では、ロードバランサ１６０は、また、要求から抽出された識別子とジオロケーション情報との少なくとも一方に少なくとも部分的に基づいて、セルの間をユーザデバイス１１０が移動する確率を計算することができる。例示であり限定ではないが、ロードバランサ１６０は、その現在の位置から他のセルへユーザデバイス１１０が移動する確率を、ユーザデバイス１１０の輸送手段および／または移動速度を考慮することによって、計算することができる。
【００３０】
いくつかの実施形態では、ロードバランサ１６０は、また、計算された確率に少なくとも部分的に基づいて、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎの間のコピーファクタを、すなわち、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎの間でコピーするキャッシュされたデータの量を、計算することができる。例示であり限定ではないが、ロードバランサ１６０は、セル１７０−２に対応するキャッシュサーバ１５０−２からセル１７０−１に対応するキャッシュサーバ１５０−１へのコピーファクタを、すなわち、セル１７０−２に対応するキャッシュサーバ１５０−２からセル１７０−１に対応するキャッシュサーバ１５０−１にコピーするキャッシュされたデータの量を、セル１７０−１からセル１７０−２にユーザデバイス１１０が移動する計算された確率に少なくとも部分的に基づいて、計算することができる。いくつかの実施形態では、キャッシュサーバ１５０−２からキャッシュサーバ１５０−１へのコピーファクタは、セル１７０−１からセル１７０−２への計算された移動確率が増加するのにつれて、増加することがある。いくつかの実施形態では、キャッシュサーバ１５０−２からキャッシュサーバ１５０−１へのコピーファクタは、セル１７０−１とセル１７０−２との間の距離が増加するのにつれて、減少することがある。
【００３１】
現実空間における点ｘ２ｙ２に対応するキャッシュサーバから現実空間における点ｘ１ｙ１に対応する別のキャッシュサーバに情報をコピーすることに対するコピーファクタ、すなわち、ｃｏｐｙ＿ｆａｃｔｏｒ（ｘ１ｙ１，ｘ２ｙ２）の例は、次の例示的な数式１に従って計算することができる。
【００３２】
【数１】
0005941167.tif 000002
【００３３】
数式１では、ｉｔｅｍ＿ｃｏｕｎｔ（ｘ２ｙ２）は点ｘ２ｙ２に対応するキャッシュサーバにおいてキャッシュされているデータの量を示し、確率（ｘ１ｙ１，ｘ２ｙ２）は点ｘ１ｙ１から点ｘ２ｙ２にユーザデバイス１１０が移動する確率を示し、距離（ｘ１ｙ１，ｘ２ｙ２）は点ｘ１ｙ１から点ｘ２ｙ２への現実空間での距離を示す。
【００３４】
図２（Ａ）および図２（Ｂ）は、それぞれ、本明細書で説明される少なくともいくつかの実施形態に従って構成された、キャッシュサーバと現実空間セルとの間を関連付けるためのメッシュ構造の説明目的の例と、キャッシュサーバの間でキャッシュされたデータをコピーすることの説明目的の例と、を示している。示されているように、所定の範囲または領域の現実空間２００を、複数のセル２１０−１、２１０−２、・・・、２１０−２５に分割することができる。図２（Ａ）および図２（Ｂ）では、空間２００が２５個の同じサイズのセル２１０−１、２１０−２、・・・、２１０−２５に分割されているように示されているが、空間２００は、任意の数および／または任意のサイズのセルに分割することも可能であることは、当業者であれば理解するはずである。
【００３５】
いくつかの実施形態では、セル２１０−１、２１０−２、・・・、２１０−２５に関する地理データは、データベースサーバ（例えば、データベースサーバ１３０）に記憶されうる。複数のキャッシュサーバ（例えば、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎ）が、データベースサーバへのアクセス数を減らすために、セル２１０−１、２１０−２、・・・、２１０−２５に関する地理データを、データベースサーバからリトリーブおよび／またはキャッシュすることができる。いくつかの実施形態では、複数のキャッシュサーバのそれぞれは、セル２１０−１、２１０−２、・・・、２１０−２５のそれぞれと関連付けるかまたはセル２１０−１、２１０−２、・・・、２１０−２５のそれぞれに配分して、セル２１０−１、２１０−２、・・・、２１０−２５の内の対応する１つに関する地理データをキャッシュすることができる。
【００３６】
図２（Ａ）に示されているように、ユーザデバイス２２０が現時点でセル２１０−１４に存在するときには、ロードバランサ（例えば、ロードバランサ１６０）は、ユーザデバイス２２０がセル２１０−１４から他のセルに移動する確率を計算することができ、さらに、他のセルに対応する他のキャッシュサーバからセル２１０−１４に対応するキャッシュサーバへのコピーファクタを計算することができる。例示であり限定ではないが、図２（Ａ）に示されているようにロードバランサがセル２１０−１４から他のセルにユーザデバイス２２０が移動する確率を見出して計算し、図２（Ｂ）に示されているようにセルに対応するキャッシュサーバのそれぞれにおけるキャッシュされているデータの量を見出すと、ロードバランサは、上述した数式１に従って、他のセルに対応するキャッシュサーバからセル２１０−１４に対応するキャッシュサーバへのそれぞれのコピーファクタを計算することができる。
【００３７】
図３は、本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するように構成されているロードバランサの説明目的の例の概略的なブロック図を示している。示されているように、ロードバランサ１６０は、デバイス情報抽出器３１０と、ジオロケーションメッシュマネージャ３２０と、移動確率計算器３３０と、コピーファクタ計算器３４０と、を含みうる。離散的なコンポーネントとして示されているが、開示されている主題の範囲に属するものと考えつつ、様々なコンポーネントを追加的なコンポーネントに分割したり、より少数のコンポーネントになるように組み合わせたり、または完全に除去したりすることが可能である。
【００３８】
デバイス情報抽出器３１０は、ユーザデバイス（例えば、ユーザデバイス１１０）から受け取られたストリームから、そのユーザデバイスと関連するデバイス情報を抽出するように構成することができる。いくつかの実施形態では、このデバイス情報には、当該ユーザデバイスと関連する識別子とジオロケーション情報との少なくとも一方が含まれうる。いくつかの実施形態では、ストリームがユーザデバイスからのＨＴＴＰ（ハイパーテキスト転送プロトコル）要求から生じており、デバイス情報抽出器は、ＨＴＴＰ要求のヘッダを解析することにより、ユーザデバイスに関連する識別子とジオロケーション情報との少なくとも一方を抽出することができる。例示であり限定ではないが、ジオロケーション情報には、ＧＰＳ（全地球測位システム）情報が含まれうる。いくつかの実施形態では、抽出されたデバイス情報は、ユーザデバイスの現在位置を見つけるのに用いられることがある。
【００３９】
ジオロケーションメッシュマネージャ３２０は、キャッシュサーバ（例えば、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎ）と現実空間セル（例えば、セル１７０−１、１７０−２、・・・、１７０−ｎ）との間の関連付けを管理するように構成することができる。キャッシュサーバのそれぞれは、それ自体に配分されているセルに関する情報を、データベースサーバ（例えば、データベースサーバ１３０）からキャッシュすることができる。例示であり限定ではないが、キャッシュサーバのそれぞれは、セルの内の対応する１つに関する地理データを、データベースサーバからキャッシュすることができる。いくつかの実施形態では、キャッシュサーバは、インメモリキャッシュサーバを含みうる。いくつかの実施形態では、ジオロケーションメッシュマネージャ３２０は、ユーザデバイスの現在位置に対応するキャッシュサーバを含む関連キャッシュサーバを見つけることができる。
【００４０】
移動確率計算器３３０は、第１のセルから第２のセルにユーザデバイスが移動する確率を計算するように構成することができる。いくつかの実施形態では、移動確率計算器３３０は、ユーザデバイスの移動速度に少なくとも部分的に基づいて、確率を計算することができる。いくつかの実施形態では、移動確率計算器３３０は、ユーザデバイスが現在位置から他の位置へ移動する確率を計算することができる。
【００４１】
コピーファクタ計算器３４０は、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバへのコピーファクタ、すなわち、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバへコピーするキャッシュされたデータの量を、移動確率計算器３３０によって計算された移動確率に少なくとも部分的に基づいて、計算することができる。いくつかの実施形態では、コピーファクタ計算器３４０は、第１のセルと第２のセルとの間の距離を考慮することによって、第２のキャッシュサーバから第１のキャッシュサーバへのコピーファクタを計算することができる。いくつかの実施形態では、コピーファクタ計算器３４０は、キャッシュサーバを動的に管理または構成するために、他のキャッシュサーバからユーザデバイスの現在位置に対応するキャッシュサーバにコピーするキャッシュされたデータの量を計算することもある。
【００４２】
図４は、本明細書で説明される少なくともいくつかの実施形態に従って構成され、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するように構成されている説明目的の例示的なシステムを概略的に示している。示されているように、例えばモバイルサービスのための地図アプリケーションまたはジオロケーション情報に基づく情報配信アプリケーションなどのアプリケーションプログラムを、ユーザがユーザデバイス１１０上で走らせるまたは実行するときには、ユーザデバイス１１０は、地理データに対する要求をアプリケーションサーバ１２０に送るのであるが、要求された地理データは、データベースサーバ１３０に記憶されている可能性がある。次いで、アプリケーションサーバ１２０は、受け取られた要求を、ロードバランサ１６０に送ることができる。
【００４３】
いくつかの実施形態では、ロードバランサ１６０の中のデバイス情報抽出器３１０が、アプリケーションサーバ１２０から受け取られた要求を含むストリームから、ユーザデバイス１１０に関連する識別子および／またはジオロケーション情報を含むユーザデバイス１１０に関連するデバイス情報を抽出することができる。
【００４４】
いくつかの実施形態では、ロードバランサ１６０の中の、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎと現実空間セルとの間の関連付けを管理できるジオロケーションメッシュマネージャ３２０が、デバイス情報抽出器３１０によって抽出されたユーザデバイス１１０に関連する識別子および／またはジオロケーション情報に少なくとも部分的に基づいて、ユーザデバイス１１０の現在位置に対応するキャッシュサーバを含む関連キャッシュサーバを見出すことができる。
【００４５】
いくつかの実施形態では、ロードバランサ１６０の中の移動確率計算器３３０が、ユーザデバイス１１０の現在位置が属する可能性のある第１の現実空間セルから第２の現実空間セルへのユーザデバイス１１０の移動確率を、ジオロケーションメッシュマネージャ３２０によって管理されているおよび／もしくは見出されたデバイス情報抽出器３１０ならびに／または関連キャッシュサーバによって抽出されたユーザデバイス１１０に関連する識別子および／またはジオロケーション情報に少なくとも部分的に基づいて、計算することができる。
【００４６】
いくつかの実施形態では、ロードバランサ１６０の中のコピーファクタ計算器３４０は、移動確率計算器３３０によって計算された確率に少なくとも部分的に基づいて、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算することができる。
【００４７】
いくつかの実施形態では、ロードバランサ１６０は、コピーファクタ計算器３４０によって計算された第２のキャッシュサーバから第１のキャッシュサーバにコピーするキャッシュされたデータの量に少なくとも部分的に基づき、第２のキャッシュサーバから第１のキャッシュサーバに、キャッシュされたデータの計算された量をコピーすることによって、キャッシュサーバ１５０−１、１５０−２、・・・、１５０−ｎを動的に管理または構成することができる。
【００４８】
図５は、本明細書で説明されている少なくともいくつかの実施形態に従って構成された、データベースサーバとアプリケーションサーバとの間で負荷均衡化を提供するプロセスの例示的な流れ図を示している。図５の方法は、上で論じたデバイス情報抽出器３１０と、ジオロケーションメッシュマネージャ３２０と、移動確率計算器３３０と、コピーファクタ計算器３４０とを含むロードバランサ１６０などのロードバランサにおいて実装することができる。このプロセスの例は、１つまたは複数のブロック５００、５１０、５２０および／または５３０によって示されているような１つまたは複数の動作、作用、または機能を含みうる。離散的なブロックとして示されているが、様々なブロックを、所望の実装例に応じて、追加的なブロックに分割する、より少数のブロックになるように結合させる、または消去することが可能である。処理は、ブロック５００において開始しうる。
【００４９】
ブロック５００では、ロードバランサは、ユーザデバイスから生じる地理データに対する要求を受け取りうる。例えば、限定ではないが、要求は、例えばＨＴＴＰ（ハイパーテキスト転送プロトコル）  ＧＥＴ要求やＨＴＴＰ  ＰＯＳＴ要求などのＨＴＴＰ要求を含みうる。処理は、ブロック５００からブロック５１０に続きうる。
【００５０】
ブロック５１０では、ロードバランサは、受け取られた要求を解析して、ユーザデバイスに関連する識別子および／またはジオロケーション情報を、受け取られた要求から抽出することができる。例示であり限定ではないが、要求がＨＴＴＰ  ＧＥＴ要求やＨＴＴＰ  ＰＯＳＴ要求などのＨＴＴＰ要求であるときには、識別子には、ＨＴＴＰ要求のヘッダにおけるクッキーと識別テキストストリングとの少なくとも一方が含まれる。例示であり限定ではないが、ジオロケーション情報には、ＧＰＳ（全地球測位システム）情報が含まれうる。処理は、ブロック５１０からブロック５２０に続きうる。
【００５１】
ブロック５２０では、ロードバランサは、ユーザデバイスが第１のセルから第２のセルに移動する確率を計算することができる。いくつかの実施形態では、ロードバランサは、要求から抽出された識別子とジオロケーション情報との少なくとも一方に少なくとも部分的に基づいて、この確率を計算することができる。例示であり限定ではないが、ロードバランサは、ユーザデバイスの輸送手段および／または移動速度を考慮することによって、この確率を計算することができる。処理は、ブロック５２０からブロック５３０に続きうる。
【００５２】
ブロック５３０では、ロードバランサは、第２のセルに対応する第２のキャッシュサーバから第１のセルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を、すなわち、第２のキャッシュサーバから第１のキャッシュサーバへのコピーファクタを、計算することができる。いくつかの実施形態では、ロードバランサは、計算された確率に少なくとも部分的に基づいて、このコピーファクタを計算することができる。いくつかの実施形態では、ロードバランサは、さらに第１のセルと第２のセルとの間の距離に基づいて、このコピーファクタを計算することができる。ロードバランサは、第２のキャッシュサーバから第１のキャッシュサーバに、キャッシュされたデータの計算された量をコピーすることによって、キャッシュサーバを動的に管理または構成することができる。
【００５３】
本明細書に開示されているこのおよび他のプロセスおよび方法に関し、これらのプロセスおよび方法において実行される機能は、別の順序でも実装可能であることを、当業者であれば理解するであろう。さらに、概要が示されているステップおよび動作は単なる例としてのみ提供されており、これらのステップおよび動作の内の一部を、開示されている実施形態の本質から逸脱することなく、オプションとしたり、より少数のステップおよび動作となるように組み合わせたり、追加的なステップおよび動作に拡張したりすることが可能である。
【００５４】
図６は、本明細書で説明される少なくとも一部の実施形態に従って構成された、データベースサーバとアプリケーションサーバとの間での負荷均衡化を提供するのに用いることができるコンピュータプログラム製品を示す。プログラム製品６００は、信号搬送媒体６０２を含むことがありうる。信号搬送媒体６０２は、例えばプロセッサによって実行されると、図１〜図５との関係で上述した機能を提供することができる１つまたは複数の命令６０４を含みうる。例えば、命令６０４は、現実空間セルとキャッシュサーバとの間の関連付けを管理する１つまたは複数の命令であって、キャッシュサーバのそれぞれが現実空間セルの内の対応する１つに関連する地理データの少なくとも一部をデータベースサーバからキャッシュする、１つまたは複数の命令と、第１の現実空間セルから第２の現実空間セルへのユーザデバイスの計算された移動確率と第１の現実空間セルと第２の現実空間セルとの間の距離とに少なくとも部分的に基づいて、第２の現実空間セルに対応する第２のキャッシュサーバから第１の現実空間セルに対応する第１のキャッシュサーバにコピーするキャッシュされたデータの量を計算する１つまたは複数の命令と、を含みうる。したがって、例えば、図３を参照すると、ロードバランサ１６０は、命令６０４に応答して、図５に示されているブロックの内の１つまたは複数を引き受けることができる。
【００５５】
いくつかの実装例では、信号搬送媒体６０２は、これらに限定されないが、ハードディスクドライブ、ＣＤ、ＤＶＤ、デジタルテープ、メモリなどのようなコンピュータ可読媒体６０６を含みうる。いくつかの実装例では、信号搬送媒体６０２は、これらに限定されないが、メモリ、リード／ライト（Ｒ／Ｗ）ＣＤ、Ｒ／Ｗ  ＤＶＤなどのような記録可能媒体６０８を含みうる。いくつかの実装例では、信号搬送媒体６０２は、これらに限定されないが、デジタルおよび／またはアナログ通信媒体（例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）などの通信媒体６１０を含みうる。よって、例えば、プログラム製品６００は、ＲＦ信号搬送媒体６０２により、ロードバランサ１６０の内の１つまたは複数のモジュールまで運ばれうる。なお、ＲＦ信号搬送媒体６０２は、無線通信媒体６１０（例えば、ＩＥＥＥ８０２．１１の標準に従う無線通信媒体）によって運ばれる。
【００５６】
図７は、本明細書で説明されている少なくとも一部の実施形態に従って構成された、データベースサーバとアプリケーションサーバとの間の負荷均衡化を提供するのに用いることができる例示的なコンピューティングデバイスを示すブロック図である。これらの例では、コンピューティングデバイス７００の構成要素を、モバイルサービスをホストするクラウドコンピューティングシステムのために配列または構成することができる。非常に基本的な構成７０２では、コンピューティングデバイス７００は、１つまたは複数のプロセッサ７０４と、システムメモリ７０６とを含むのが典型的である。メモリバス７０８は、プロセッサ７０４とシステムメモリ７０６との間で、通信のために、用いられうる。
【００５７】
所望の構成に応じて、プロセッサ７０４は、これらに限定されることはないが、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはこれらの任意の組み合わせを含む任意のタイプでありうる。プロセッサ７０４は、レベル１キャッシュ７１０およびレベル２キャッシュ７１２などのキャッシングの１つまたは複数のレベル、プロセッサコア７１４、ならびにレジスタ７１６を含みうる。例示的なプロセッサコア７１４は、算術論理ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、デジタル信号処理コア（ＤＳＰコア）、またはこれらの任意の組み合わせを含みうる。例示的なメモリコントローラ７１８が、プロセッサ７０４と共に用いられることもあり、または、いくつかの実装例では、メモリコントローラ７１８が、プロセッサ７０４の内部的な部分である場合もありうる。
【００５８】
所望の構成に応じて、システムメモリ７０６は、これらに限定されることはないが、（ＲＡＭなどの）揮発性メモリ、（ＲＯＭ、フラッシュメモリなどの）不揮発性メモリ、またはそれらの任意の組み合わせを含む任意のタイプでありうる。システムメモリ７０６は、オペレーティングシステム７２０、１つまたは複数のアプリケーション７２２、およびプログラムデータ７２４を含みうる。アプリケーション７２２は、図３に示されているようなロードバランサ１６０のアーキテクチャとの関係で説明される動作を含めて、または、図５に示されている流れ図との関係で説明されている動作を含めて、本明細書で説明されているような機能を実行するように構成することができる命令７２６を含みうる。プログラムデータ７２４は、命令７２６を実装するために用いられうるデータを含みうる（例えば、キャッシュサーバと現実空間セルとの間を関連付けるためのメッシュ構造）。いくつかの例では、アプリケーション７２２は、オペレーティングシステム７２０の上でプログラムデータ７２４を用いて動作するように構成でき、そのことにより、本明細書において説明されているロードバランサに対する命令を実装することができる。
【００５９】
コンピューティングデバイス７００は、基本構成７０２と任意の必要とされるデバイスおよびインターフェースとの間の通信を容易にするために、追加的な特徴または機能と、追加的なインターフェースとを有することがある。例えば、基本構成７０２と１つまたは複数のデータ記憶装置７３２との間での、ストレージインターフェースバス７３４を経由した通信を容易にするために、バス／インターフェースコントローラ７３０が用いられることがある。データ記憶装置７３２は、取外し式ストレージデバイス７３６、非取外し式ストレージデバイス７３８、またはそれらの組み合わせでありうる。取外し式ストレージデバイスと非取外し式ストレージデバイスとの例には、いくつかの例を挙げるならば、フレキシブルディスクドライブやハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブやデジタルバーサタイルディスク（ＤＶＤ）ドライブなどの光ディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、およびテープドライブが含まれる。例示的なコンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはそれ以外のデータなどの情報を記憶するための任意の方法または技術として実装されている、揮発性および不揮発性、そして、取外し式および非取外し式の媒体が含まれうる。
【００６０】
システムメモリ７０６、取外し式ストレージデバイス７３６、および非取外し式ストレージデバイス７３８は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、これらに限定されることはないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくはそれ以外のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）もしくはそれ以外の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはそれ以外の磁気記憶デバイス、または、所望の情報を記憶するのに用いることができコンピューティングデバイス７００によってアクセス可能である任意のそれ以外の媒体が含まれる。任意のそのようなコンピュータ記憶媒体は、コンピューティングデバイス７００の一部でありうる。
【００６１】
コンピューティングデバイス７００は、また、インターフェースバス７４０を含みうるが、このインターフェースバス７４０は、様々なインターフェース装置（例えば、出力装置７４２、周辺インターフェース７４４、および通信装置７４６）からバス／インターフェースコントローラ７３０を経由して基本構成７０２に至る通信を容易にするためのものである。例示的な出力装置７４２には、グラフィック処理ユニット７４８とオーディオ処理ユニット７５０とが含まれており、これらのユニットは、１つまたは複数のＡ／Ｖポート７５２を経由してディスプレイやスピーカなど様々な外部装置と通信するように構成されうる。例示的な周辺インターフェース７４４には、シリアルインターフェースコントローラ７５４またはパラレルインターフェースコントローラ７５６が含まれ、これらのコントローラは、入力装置（例えば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など）または他の周辺装置（例えば、プリンタ、スキャナなど）などの外部装置と１つまたは複数のＩ／Ｏポート７５８を経由して通信するように構成されうる。例示的な通信装置７４６には、ネットワークコントローラ７６０が含まれるが、これは、１つまたは複数の通信ポート７６４を経由してネットワーク通信リンクを介する１つまたは複数の他のコンピューティングデバイス７６２との通信を容易にするように構成されうる。
【００６２】
ネットワーク通信リンクは、通信媒体の一例でありうる。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波やそれ以外の転送機構などの変調されたデータ信号におけるそれ以外のデータによって、実現されうるのが典型的であり、任意の情報搬送媒体を含みうる。「変調されたデータ信号」とは、当該信号の中の情報を符号化するような態様にその特性の１つまたは複数が設定または変更されている信号でありうる。例示であり限定ではないが、通信媒体には、ワイアードネットワークやダイレクトワイアード接続などのワイアード媒体と、音響、無線周波数（ＲＦ）、マイクロ波、赤外（ＩＲ）、およびそれ以外の無線媒体などの無線媒体とが含まれうる。本明細書において用いられるコンピュータ可読媒体という用語は、記憶媒体と通信媒体との両者を含みうる。
【００６３】
コンピューティングデバイス７００は、携帯電話、携帯情報端末（パーソナルデータアシスタント、ＰＤＡ）、パーソナルメディアプレイヤデバイス、無線Ｗｅｂ視聴デバイス、パーソナルヘッドセットデバイス、特定用途向け（アプリケーションスペシフィック）デバイス、または上記の機能のいずれかを含むハイブリッドデバイスなど、小型フォームファクタポータブル（またはモバイル）電子デバイスの一部として実装されることがある。コンピューティングデバイス７００は、また、ラップトップコンピュータの構成とラップトップコンピュータ以外の構成との両方を含むパーソナルコンピュータとして実装されることもある。
【００６４】
本開示は、この出願に記載されており様々な態様の例示として意図されている特定の実施形態に限定されることはない。当業者には明らかであるように、その精神および範囲から逸脱することなく、多くの修正および変更を行うことが可能である。本明細書で列挙されているものに加えて、本開示の範囲に含まれる機能的に均等な方法および装置が、以上の記載から、当業者には明らかになるであろう。そのような修正および変更は、添付の特許請求の範囲に属することが意図されている。本開示は、特許請求の範囲が及ぶ均等物の全範囲と共に、添付されている特許請求の範囲の記載によってのみ限定される。本開示は、当然に変動の余地がある特定の方法、試薬、化合物、組成、または生体系には限定されないことを理解すべきである。また、本明細書において用いられている用語は特定の実施形態を説明することのみを目的とし、限定を意図していないことも理解すべきである。
【００６５】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。様々な単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００６６】
通常、本明細書において、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（例えば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。例えば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない（例えば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（例えば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（例えば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（例えば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、そ���に限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。例えば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００６７】
さらに、本開示の特徴または態様がマーカッシュ形式の群として記載されている場合には、そのような開示は、マーカッシュ形式の群の任意の個々の構成要素としても、またはマーカッシュ形式の群の複数の構成要素で構成される任意の部分群としても記載される、ということを当業者であれば理解するであろう。
【００６８】
当業者によって理解されるように、書面による説明を提供することに関してなど、任意のおよびすべての目的について、本明細書に開示されているすべての範囲は、任意のおよびすべての可能性のある下位の範囲と下位の範囲の組み合わせとにも及ぶ。リスト化されているいずれの範囲も、同一の範囲が、少なくとも、等しい２分の１、３分の１、４分の１、５分の１、１０分の１などに分割されることを十分に説明し可能にするものとして、容易に認識されうる。非限定的な例として、本明細書で論じられているそれぞれの範囲は、下位の３分の１、中間の３分の１、上位の３分の１などに、容易に分割可能である。当業者によって容易に理解されるように、「まで」、「少なくとも」などのすべての言葉は、言及されている数値を含み、上述したように、以後に下位の範囲に分割可能な範囲も意味する。最後に、当業者に理解されるように、範囲は、それぞれの個別の構成要素を含む。したがって、例えば、１個から３個のセルを有するグループとは、１個、２個、または３個のセルを有するグループも意味する。同様に、１個から５個のセルを有するグループとは、１個、２個、３個、４個、または５個のセルを有するグループも意味する、などである。
【００６９】
本明細書では、本開示の様々な実施形態について説明を目的として述べてきたが、本開示の範囲および精神から逸脱せずに様々な修正が可能であることは、以上から理解されるであろう。したがって、本明細書に開示されている様々な実施形態は限定を意図したものではなく、真の範囲および精神は、以下の特許請求の範囲によって示される。
【図１】
0005941167.tif 000003
【図２】
0005941167.tif 000004
【図３】
0005941167.tif 000005
【図４】
0005941167.tif 000006
【図５】
0005941167.tif 000007
【図６】
0005941167.tif 000008
【図７】
0005941167.tif 000009