(57)【要約】  高ネットワークトラフィックの期間中のサーバの動的使用の技術を提供する。１つの例示的な実施形態では、ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信する段階を含むシステム及び方法を示す。更に、ユーザカウント情報を使用してリミット変数を超過したか否かを判断する段階を含むオペレーションを実行することができる。リミット変数がユーザカウント情報によって超過した場合には、アドレス識別子によって識別されるメンバを負荷均衡プールから取り除くオペレーションを実行することができる。ユーザカウント情報が、リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しい場合には、負荷均衡プールにデバイスを導入する段階を含む更に別のオペレーションを示すことができる。【選択図】図１
2010541096.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施式方法であって、
ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信する段階と、
デバイスのアイデンティティを判断するために、前記アドレス識別子を別のアドレス識別子に対して比較する段階と、
前記ユーザカウント情報を前記アドレス識別子に関連付けて、該ユーザカウント情報をデータストアに記憶する段階と、
を含むことを特徴とする方法。
【請求項２】
前記ユーザカウント情報は、コンピュータシステムを現在使用しているユーザ数であることを特徴とする請求項１に記載のコンピュータ実施式方法。
【請求項３】
前記アドレス識別子は、コンピュータシステムインタフェースに対応する「インターネットプロトコル（ＩＰ）」アドレスであることを特徴とする請求項１に記載のコンピュータ実施式方法。
【請求項４】
前記インタフェースは、管理インタフェースと外部インタフェースのうちの少なくとも一方を含むことを特徴とする請求項３に記載のコンピュータ実施式方法。
【請求項５】
前記デバイスは、負荷均衡プールの一部であることを特徴とする請求項１に記載のコンピュータ実施式方法。
【請求項６】
コンピュータ実施式方法であって、
ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信する段階と、
前記ユーザカウント情報を使用して、リミット変数を超過したか否かを判断する段階と、
前記アドレス識別子によって識別されたメンバを該メンバのリミット変数が前記ユーザカウント情報によって超過した場合に負荷均衡プールから取り除く段階と、
を含むことを特徴とする方法。
【請求項７】
前記リミット変数は、メンバを保護するライセンス制約の一部として定められ、かつ該メンバを使用することができるユーザ数を反映することを特徴とする請求項６に記載のコンピュータ実施式方法。
【請求項８】
前記メンバは、サーバであることを特徴とする請求項６に記載のコンピュータ実施式方法。
【請求項９】
前記負荷均衡プールは、部分的に負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含むことを特徴とする請求項６に記載のコンピュータ実施式方法。
【請求項１０】
前記ユーザカウント値は、期間中にサーバを使用するユーザ数を反映する数値であることを特徴とする請求項６に記載のコンピュータ実施式方法。
【請求項１１】
コンピュータ実施式方法であって、
ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信する段階と、
前記ユーザカウント情報を使用して、該ユーザカウント情報がリミット変数値とバッファ変数間の差よりも小さいか又はこれに等しいかを判断する段階と、
前記ユーザカウント情報が前記リミット変数値と前記バッファ変数間の前記差よりも小さいか又はこれに等しい場合に、デバイスを負荷均衡プールに導入する段階と、
を含むことを特徴とする方法。
【請求項１２】
前記バッファ変数は、前記リミット変数よりも小さくユーザ数を反映する数値であることを特徴とする請求項１１に記載のコンピュータ実施式方法。
【請求項１３】
前記リミット変数は、サーバを保護するライセンス制約によって定められ、かつサーバを使用することができるユーザ数を反映することを特徴とする請求項１１に記載のコンピュータ実施式方法。
【請求項１４】
前記デバイスは、サーバを含む予備ハードウエアデバイスであることを特徴とする請求項１１に記載のコンピュータ実施式方法。
【請求項１５】
前記負荷均衡プールは、部分的に負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含むことを特徴とする請求項１１に記載のコンピュータ実施式方法。
【請求項１６】
コンピュータシステムをトレーニングするスクリプトを受信する受信機と、
サーバに関連付けられた現在ユーザカウントを検索する検索器と、
前記スクリプトを実行して前記現在ユーザカウントがライセンス制約に説明されたリミット変数を超過したか否かを判断するスクリプト記述エンジンと、
前記現在ユーザカウントが前記リミット変数を超過した場合に、前記サーバを負荷均衡プールから取り除くか否かを判断する負荷均衡プールエンジンと、
を含むことを特徴とするコンピュータシステム。
【請求項１７】
前記スクリプトは、Ｐｅｒｌを含むスクリプト記述言語で書かれることを特徴とする請求項１６に記載のコンピュータシステム。
【請求項１８】
前記コンピュータシステムは、「ローカル・トラフィック・マネージャ（ＬＴＭ）」電気器具及び「グローバル・トラフィック・マネージャ（ＧＴＭ）」電気器具のうちの少なくとも一方を含む負荷均衡電気器具であることを特徴とする請求項１６に記載のコンピュータシステム。
【請求項１９】
前記サーバは、前記負荷均衡電気器具からネットワークトラフィックを受信することを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記リミット変数は、コンピュータシステムを使用することができるユーザ数を含む数値であることを特徴とする請求項１６に記載のコンピュータシステム。
【請求項２１】
コンピュータシステムをトレーニングするスクリプトを受信する受信機と、
サーバに関連付けられた現在ユーザカウントを検索する検索器と、
前記スクリプトを実行して、余分の容量が負荷均衡プール内に存在するか否かを判断するスクリプト記述エンジンと、
前記現在ユーザカウントがリミット変数とバッファ変数間の差よりも小さいか又はこれに等しい場合に、サーバを負荷均衡プールに再導入するか否かを判断する負荷均衡プールエンジンと、
を含むことを特徴とするコンピュータシステム。
【請求項２２】
「ローカル・トラフィック・マネージャ（ＬＴＭ）」電気器具及び「グローバル・トラフィック・マネージャ（ＧＴＭ）」電気器具のうちの少なくとも一方を含む負荷均衡電気器具であることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２３】
前記リミット変数は、コンピュータシステムを使用することができるユーザ数を含む値であることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２４】
前記バッファ変数は、前記リミット変数よりも小さい数値であることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２５】
命令、
を含み、
前記命令は、１つ又はそれよりも多くの機械によって実施された時に、該１つ又はそれよりも多くの機械をして、
ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信し、
前記ユーザカウント情報を使用して、リミット変数を超過したか否かを判断し、
前記リミット変数が前記ユーザカウント情報によって超過した場合に、前記アドレス識別子によって識別されたメンバを負荷均衡プールから取り除き、かつ
前記ユーザカウント情報が前記リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しい場合に、デバイスを前記負荷均衡プールに導入する、
オペレーションを実行させる、
ことを特徴とする機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本特許出願は、２００７年１０月３日出願の「パンデミックリモートアクセス設計」という名称の米国特許仮出願出願番号第６０／９７７、３３０号の優先権の恩典を請求し、この内容は、本明細書においてその全内容が引用により組み込まれている。
著作権
本文書の開示の部分は、著作権保護の対象になる内容を含む。著作権所有者は、特許及び登録商標事務所特許ファイル又は記録に現れる特許文書又は特許開示の他者によるファクシミリ複製に異議はないが、それ以外は、全ての著作権を保有する。以下の通知は、下記及び本文書の一部を形成する図面に示されているソフトウエア、データ、及び／又はスクリーンショットに適用される：著作権２００７年、「Ｖｉｒｔｅｌａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、Ｉｎｃｏｒｐｏｒａｔｅｄ」。全権利を保有する。
本出願は、一般的に、ネットワーキングの技術分野に関し、１つの特定的な実施例においては、高ネットワークトラフィックの期間中のサーバの動的使用に関する。
【背景技術】
【０００２】
負荷均衡電気器具は、とりわけ均一方式で、又はネットワークリソースを十分に利用する方式でネットワークトラフィックを分散させることを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ある一定の場合では、これらの負荷均衡電気器具のサービスを受けるサーバ又は他の適切なデバイスの容量は、超過することがある。例えば、特定のサーバのサービスを受けているユーザ数が過剰であると、特定サーバの容量は超過する場合がある。
【課題を解決するための手段】
【０００４】
１つの例示的な実施形態では、負荷均衡プールからのサーバの動的追加又は除去を可能にするシステム及び方法を示す。一部の例示的な実施形態は、複数のＬＴＭ電気器具間でネットワークトラフィックを均衡させる「グローバルトラフィックマネージャ（ＧＴＭ）」電気器具の使用を含むことができる。こうしてこれらのＬＴＭは、次に、ＬＴＭのサービスを受ける複数のサーバ又は特定の他の適切なデバイスに送られたネットワークトラフィックを均衡させることができる。特定のＬＴＭのサービスを受けているこの複数のサーバは、負荷均衡プールである。一部の例示的な実施形態では、ＬＴＭは、「自律システム（ＡＳ）」、エリア、又は他の適切なドメインのような特定のドメインにサービス提供することができる。負荷均衡プールは、このドメインの一部として常駐することができる。
【０００５】
一部の例示的な実施形態は、何らかの種類の所定の基準に基づくネットワークトラフィックの均衡化を含むことができる。１つの例示的な実施形態では、ネットワークトラフィックは、ＬＴＭがネットワークトラフィックを送信しているサーバのいずれか１つのサービスを受けるＬＴＭによって既知のユーザ数に基づいて均衡化される。ユーザは、例えば、ユーザに関連付けられた永続的な「インターネットプロトコル（ＩＰ）」アドレスによって識別することができる。一部の例示的な実施形態では、サーバには、どの時点においてもサーバのサービスを受けることができるユーザ数を制限するある一定の制限値（例えば、リミット変数）が課せられる場合がある。これらの制限値は、例えば、サーバの製造業者によって課せられるサーバの使用に関連付けられたある一定のライセンス規制を反映することができる。例えば、サーバは、一度に数千の「送信制御プロトコル（ＴＣＰ）」セッションにサービス提供することができるが、サーバは、どの時点においても２千のユーザのみにサービス提供するようにサーバを保護するライセンスによって制限される場合がある。
【０００６】
一部の例示的な実施形態では、ユーザ数に関連するライセンス期限を超過又はほぼ超過した時には、利用可能な予備ハードウエアドメインが、負荷均衡プールを補足するために存在する場合がある。この利用可能な予備ハードウエアドメインは、必要に応じて負荷均衡プール内に持ち込むことができる複数のサーバ又は他の適切なデバイスを収容することができる。更に、これらのサーバ又は他の適切なデバイスは、それらが必要とされなくなった場合に負荷均衡プールから取り除くことができる。例えば、利用可能な予備ハードウエアドメインからのこれらのサーバは、負荷均衡プールを構成するサーバのサービスを受けるユーザ数が何らかの閾値よりも下の場合に取り除くことができる。一部の例示的な実施形態では、利用可能な予備ハードウエアドメインの一部として常駐するサーバ又は他の適切なデバイスは、暗いハードウエアとして参照される場合がある。
【０００７】
一部の例示的な実施形態は、ＬＴＭが負荷均衡プールにサーバを追加するか又は負荷均衡プールからサーバを取り除くことを可能にするスクリプトを実行するＬＴＭを含むことができる。一部の例示的な場合では、サーバが追加された時に、別のサーバが追加のユーザにサービス提供することを制限することができる。このサーバを制限することにより、サーバは、実質的に負荷均衡プールから取り除かれる。しかし、このサーバは、既存のユーザにサービス提供することを依然として要求される場合があり、例えば、ＴＣＰ接続がこのサーバに対して確立される。
【０００８】
一部の例示的な実施形態では、負荷均衡プールからサーバを取り除くか又はサーバを負荷均衡プールに追加するか否かを判断するＬＴＭの機能は、ユーザカウントデータ（例えば、ユーザカウント値）に一部基づく場合がある。このユーザカウントデータは、ＬＴＭによってモニタされる管理インタフェースを通じてサーバから受信することができる。より具体的には、負荷均衡プールにサービス提供するＬＴＭは、ネットワークトラフィックをサーバの外部インタフェースに送信することができるが、管理インタフェースを通じてサーバのサービスを受けるユーザ数をモニタする場合がある。一部の例示的な実施形態は、管理インタフェースを通じて「シンプルネットワーク管理プロトコル（ＳＮＭＰ）」ベースのメッセージをサーバに定期的に送信するＬＴＭを含むことができる。これに応答して、サーバは、とりわけ、サーバによって現在サービスを受けているユーザ数（例えば、ユーザカウント値）及び管理インタフェースを識別するＩＰアドレスを収容するＳＮＭＰベースの応答メッセージを送信することができる。次に、ＬＴＭは、ＩＰアドレス及びユーザカウント値を抽出し、マッピング表でルックアップを実行し、ＬＴＭがＳＮＭＰベースのメッセージを受信したサーバに関連付けられた外部インタフェースのアイデンティティを判断することができる。サーバのアイデンティティが判断された状態で、ＬＴＭは、次に、サーバに関連付けられたライセンスによって指示されたリミット変数を判断することができ、リミット変数を超過したか又は超過していないかに基づいて、負荷均衡プールからサーバを取り除くか又は追加することができる。
一部の例示的な実施形態は、添付の図面の図において制限ではなく一例として示される。
【図面の簡単な説明】
【０００９】
【図１】複数のネットワーク環境内の複数の負荷均衡電気器具の使用を示す例示的な実施形態によるシステムを示す図である。
【図２】付加的な予備デバイスを利用しなくてはならないようにドメインリソースを超過した場合の例示的な実施形態によるシステムを示す図である。
【図３】負荷均衡プールへのサーバの返却及び負荷均衡プールからの予備ハードウエアデバイスの除去を示す例示的な実施形態によるシステムを示す図である。
【図４】例示的な実施形態によるドメインとドメインに包含されたコンピュータシステムとを示す図である。
【図５】「ローカルトラフィックマネージャ（ＬＴＭ）」とすることができる例示的な実施形態によるコンピュータシステムを示すブロック図である。
【図６】負荷均衡プールにハードウエアデバイスを追加又は取り除くために使用される例示的な実施形態による方法を示す流れ図である。
【図７】ＬＴＭ上に実施される例示的な実施形態による方法７００を示す流れ図である。
【図８】各接続したデバイスに対する現在ユーザカウント値を検索する例示的な実施形態による方法を示す二重ストリーム流れ図である。
【図９】リミット変数を超過したか否かを判断する実行オペレーションに使用される例示的な実施形態による方法を示す流れ図である。
【図１０】特定の負荷均衡プールに余分の容量が存在するか否かを判断するオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。
【図１１】利用可能な予備ハードウエアデバイスをアクティブメンバとして負荷均衡プール内に追加するオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。
【図１２】ある一定のライセンス制約に基づくメンバとして負荷均衡プールから様々なハードウエアデバイスを取り除くことができるオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。
【図１３】予備デバイスが負荷均衡プールのメンバであることを取り除くオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。
【図１４】負荷均衡プールに以前取り除かれたデバイスを戻すオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。
【図１５】デバイスを負荷均衡プールから取り除くべきか否かを判断するために使用される例示的な実施形態による方法を示す流れ図である。
【図１６】特定のデバイスを負荷均衡プールから取り除き、かつ付加的な利用可能な予備ハードウエアデバイスを負荷均衡プールに導入すべきか否かを判断するために使用される例示的な実施形態による方法を示す流れ図である。
【図１７】マッピング表に含めることができる例示的な実施形態による表を示す図である。
【図１８】例示的な実施形態によるコンピュータシステムの形態の機械を図式表示した図である。
【発明を実施するための形態】
【００１０】
図１は、複数のネットワーク環境内での複数の負荷均衡電気器具の使用を示す例示的なシステム１００の図である。それを通してネットワークトラフィック１０２がＧＴＭ１０３に送信されるネットワーク１０１が示されている。このネットワークトラフィック１０２は、ＧＴＭのサービスを受ける様々なドメインの同時利用ユーザ数を示している。これらのドメインは、例えば、ドメイン１０７、１０８及び１１３を含むことができる。これらのドメインの各ドメインは、例えば、ＡＳ、エリア、又は何らかの他の適切なドメインを表すことができる。これらのドメインのうちの各ドメイン内に収容されているのがＬＴＭである。ＬＴＭは、例えば、ドメイン１０８に関連付けられたＬＴＭ１０９、ドメイン１０７に関連付けられたＬＴＭ１１８、又はドメイン１１３に関連付けられたＬＴＭ１１７とすることができる。これらのＬＴＭのうちの１つの各々に作動的に接続されるのが、複数のサーバである。この作動的接続は、物理的又は論理的な接続とすることができる。例えば、ＬＴＭ１１８に接続されているのが、サーバ１１９、サーバ１２０、及びサーバ１２１である。更に、例えば、ＬＴＭ１０９に作動的に接続されているのが、サーバ１１０、サーバ１１１及びサーバ１１２である。更に、ＬＴＭ１１７に作動的に接続されているのが、サーバ１１４、サーバ１１５、及びサーバ１１６である。一部の例示的な実施形態では、ＧＴＭ１０３は、ネットワークトラフィック１０２を取り、ＬＴＭ１０９、１１７、及び１１８の各々の間で実際にネットワークトラフィック１０２を均衡させることができる。例えば、ネットワークトラフィック１０４は、ＬＴＭ１０９によって受信され、次に、サーバ１１０、１１１、又は１１２の１つ又はそれよりも多くに送信される。同様に、ネットワークトラフィック１０５は、引き続いて均衡されてサーバ１１４、１１５、又は１１６に送信されるように、ＧＴＭ１０３によってＬＴＭ１１７に送信することができる。更に、ネットワークトラフィック１０６は、均衡化されてサーバ１１９、１２０、又は１２１に送信されるように、ＧＴＭ１０３によってＬＴＭ１１８に送信することができる。一部の例示的な実施形態では、ドメイン１０８、１１３、及び１０７の各々は、負荷均衡プールを構成することができる。一部の例示的な実施形態では、ＧＴＭのサービスを受けるドメイン及び関連付けられたＬＴＭの全てがまとまって、負荷均衡プールを構成することができる。
【００１１】
一部の例示的な実施形態では、更に別のドメイン１２２が示されており、このドメイン１２２は、例えば、ＡＳ、エリア、又は何らかの他の適切なドメインとすることができる。このドメイン１２２内に包含されているのが、例えば、サーバ１２３、サーバ１２４、及びサーバ１２５のような複数の利用可能な予備ハードウエアデバイスである。一部の例示的な実施形態では、これらのサーバ１２３から１２５は、例えば、ドメイン１０７、１０８、又は１１３に常駐しているサーバを補うのに必要に応じて利用することができる。一部の例示的な実施形態では、これらのサーバ１２３から１２５は、ネットワークトラフィック１０２を処理するための付加的なシステムリソース及び容量を提供することができる他のドメインを補うことができる。一部の例示的な実施形態では、ＩＰ持続性は、サーバに対する管理インタフェースに関連付けられたＩＰアドレスが、サーバを識別するためにＬＴＭによって使用されるように、特定のサーバを識別する基準として使用される。一部の例示的な実施形態では、これらのサーバ１１０から１１２、１１４から１１６、及び１１９から１２１は、例えば、「セキュア・ソケット・レイヤ（ＳＳＬ）」−「バーチャル・プライベート・ネットワーク（ＶＰＮ）」サーバ（まとめてＳＳＬ−ＶＰＮサーバと呼ばれる）とすることができる。
【００１２】
一部の例示的な実施形態は、これらのサーバ１１０から１１２、１１４から１１６、及び１１９から１２１の各々を含むことができ、これらのリソースの使用に課せられるある一定の制限を有する。これらの制限は、例えば、どの時点においてもこれらのサーバの１つ又はそれよりも多くを利用することができるユーザ数に課せられる制限の形式を取ることができる。例えば、一部の実施形態では、ドメイン１０８に関わっているサーバ１１０から１１２は、これらの永続ＩＰアドレスによって固有に識別される７、５００の顧客に一度だけサービスを提供することができる。この制限の１つの要点は、ＬＴＭ１０９が、例えば、特定のサーバに２、５００のユーザを割り当てることしかできないということである。１サーバ当たりのこの制限（例えば、リミット変数）を超過した場合、例えば、ドメイン１２２に示されている利用可能な予備ハードウエア（例えば、サーバ１２３から１２５）が、付加的なシステムリソースをドメイン１０８に追加するためにオンラインになる。
【００１３】
図２は、利用可能な予備ハードウエアを利用しなくてはならないようなドメインリソースを超過した場合の例示的なシステム２００の図である。このネットワークトラフィック２０１が、サーバ１１４から１１６に課せられたライセンス制約を超過した場合に、ネットワークトラフィック２０１をＬＴＭ１１７に割り当てるＧＴＭ１０３が示されている。一部の例示的な実施形態では、ライセンス制約は、個人がサーバ１１４から１１６のようなサーバをどのように使用するかという制限を反映する記憶された法律上の義務である。例えば、図示のように、サーバ１１６はその制限を超過しており、したがって、２０３で示すように負荷均衡プールから出される。一部の例示的な実施形態では、負荷均衡プールからサーバ１１６を出すことにより、サーバ２０３は、それ以上ユーザにサービス提供することができない。更に、サーバ１１６によって現在サービスを受けているユーザは、サーバ１１６を使用し続けることができるが、これらのユーザとサーバ１１６間に更に別のＴＣＰ接続は設定されない。ライセンスを超過するユーザ数のために、ドメイン１２２の一部として常駐しているサーバ１２３は、オンラインになり、そうでなければサーバ１１６に進むトラフィック２０２は、サーバ１２３に再経路指定される。
【００１４】
図３は、負荷均衡プールへのサーバの返却及び負荷均衡プールからの予備ハードウエアデバイスの除去を示す例示的なシステム３００の図である。図示しているのは、例えば、このネットワークトラフィックがライセンス制約によって示された何らかの所定のリミット変数よりも下の同時利用ユーザ数を表しているネットワークトラフィック３０１である。同時利用ユーザ数が制限値よりも下である場合、サーバ１１６のような非予備ハードウエアデバイスが、オンラインに戻り、ネットワークトラフィック３０２のようなネットワークトラフィックを受信する。端的には、ネットワークトラフィック３０２は、以前利用されていたサーバ１２３から再経路指定され、サーバ１１６によって処理される。サーバ１１６が負荷均衡プールから出される場合と同様に、サーバ１２３は、その同時利用ユーザへのサービスを続けることができるが、付加的なＴＣＰ接続のサービスを提供することはできない。更に、バツ印３０３で示すように、サーバ１２３は、同時利用ユーザ数がライセンス制約によって示された何らかの所定のリミット変数よりも下の場合に負荷均衡プールから出される。
【００１５】
図４は、例示的なドメイン１１３及びこれに関わっているコンピュータシステムの図である。図示しているのは、一部の例示的な実施形態においてネットワークトラフィックを負荷均衡し、例えば、サーバ１１４、１１５、又は１１６に対する外部インタフェースにネットワークトラフィックを送るために使用することができる以前に参照されたＬＴＭ１１７である。これらの外部インタフェースを通じて、ネットワークトラフィック（以前に参照されたネットワークトラフィック１０５など）が受信される。１つの例示的な実施形態では、ＬＴＭ１１７は、サーバ１１４、１１５、及び１１６の各々に均一にネットワークトラフィック１０５を均衡させることができる。このトラフィックは、例えば、物理的又は論理的接続を通じて送信される。一部の例示的な実施形態では、サーバ１１４は、管理インタフェース４０４を収容する。更に、サーバ１１５は、管理インタフェース４０５を収容することができる。同様に、サーバ１１６は、管理インタフェース４０６を収容することができる。ＳＮＭＰは、一部の例示的な場合に、これらの管理インタフェース４０４から４０６にＳＮＭＰベースのメッセージを送信し、これらのインタフェースからメッセージを受信するために利用することができる。例えば、ＳＮＭＰベースのメッセージ４０１から４０３は、例えば、サーバ１１４、１１５及び１１６から受信され、ＬＴＭ１１７に送信される。これらのＳＮＭＰベースのメッセージにより、ＬＴＭ１１７は、ネットワークトラフィック、及び特にサーバ１１４から１１６のいずれか１つを利用する同時利用ユーザ数をモニタすることができるようなる。これらのＳＮＭＰベースのメッセージをモニタすることにより、ＬＴＭ１１７は、サーバ１１４から１１６の各々に対するリミット変数を超過した時間を知ることができる。このリミット変数を超過した場合、サーバ１２３から１２５のような利用可能な予備ハードウエアデバイスがオンラインになり、更に別のネットワーク及び／又はシステムリソースを提供することができる。
【００１６】
図５は、例示的なコンピュータシステム５００のブロック図であり、このコンピュータシステム５００は、例えば、ＬＴＭ１１７のようなＬＴＭとすることができる。図示しているのは、コンピュータシステム５００の一部として常駐することができるいくつかのブロック５０１から５０８である。これらのブロックは、ハードウエア、ファームウエア、又はソフトウエアに実施することができる。図示しているのは、コンピュータシステムをトレーニングするためにスクリプトを受信する受信機５０１である。また、サーバに関連付けられた現在ユーザカウントを検索するための検索器５０２も示されている。更に、現在ユーザカウントがライセンス制約に説明したリミット変数を超過したかを判断するためにスクリプトを実行するスクリプト記述エンジン５０３が示されている。現在ユーザカウントがリミット変数を超過した場合、負荷均衡プールからサーバを取り除くか否かを判断するための負荷均衡プールエンジン５０４が示されている。一部の例示的な実施形態では、スクリプトは、Ｐｅｒｌを含むスクリプト記述言語で書かれる。一部の例示的な実施形態は、ＬＴＭ電気器具及びＧＴＭ電気器具の少なくとも一方を含む負荷均衡電気器具であるコンピュータシステムを含むことができる。一部の例示的な実施形態では、サーバは、負荷均衡電気器具からネットワークトラフィックを受信する。一部の例示的な実施形態は、コンピュータシステムを使用することができるユーザ数を含む数値であるリミット変数を含むことができる。
【００１７】
一部の例示的な実施形態では、コンピュータシステム５００は、コンピュータシステムをトレーニングするためのスクリプトを受信する受信機５０５を含むことができる。更に、コンピュータシステム５００は、サーバに関連付けられた現在ユーザカウントを検索するための検索器５０６を含むことができる。更に、余分の容量が負荷均衡プールに存在するか否かを判断するためのスクリプトを実行するスクリプト記述エンジン５０７が示されている。更に、現在ユーザカウントが、リミット変数とバッファ変数間の差よりも小さいか又はこれに等しい場合、サーバを負荷均衡プールに再導入するか否かを判断する負荷均衡プールエンジン５０８が示されている。一部の例示的な実施形態では、コンピュータシステム５００は、ＬＴＭ電気器具とＧＴＭ電気器具の少なくとも一方を含む負荷均衡電気器具である。一部の例示的な実施形態は、コンピュータシステムを使用することができるユーザ数を含む値であるリミット変数を含むことができる。一部の例示的な場合、バッファ変数は、リミット変数よりも小さい数値である。
【００１８】
図６は、負荷均衡プールにデバイスを追加するか又は負荷均衡プールからデバイスを取り除くために使用される例示的な方法６００を示す流れ図である。図示しているのは、実行された時に、ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション６０１である。オペレーション６０２を実行してアドレス識別子を別のアドレス識別子に対して比較し、デバイスのアイデンティティを判断することができる。オペレーション６０３は、ユーザカウント情報をアドレス識別子に関連付け、更に、ユーザカウント情報をデータストアに記憶するために実行することができる。一部の例示的な実施形態では、ユーザカウント情報は、コンピュータシステムを現在使用しているユーザ数である。一部の例示的な実施形態は、コンピュータシステムインタフェースに対応するＩＰアドレスであるアドレス識別子を含むことができる。更に、一部の例示的な実施形態では、インタフェースは、管理インタフェースと外部インタフェースの少なくとも一方を含む。一部の例示的な場合、デバイスは、負荷均衡プールの一部である。
【００１９】
一部の例示的な実施形態では、方法６００は、実行された時にユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション６０４を含むことができる。更に、リミット変数を超過したか否かを判断するためにユーザカウント情報を使用するオペレーション６０５を実行することができる。更に、オペレーション６０６は、メンバのリミット変数がユーザカウント情報によって超過した場合、負荷均衡プールからアドレス識別子によって識別されるメンバを取り除くために実行することができる。一部の例示的な実施形態では、リミット変数は、サーバを保護するライセンス制約の一部として定められており、サーバを使用することができるユーザ数を反映する。一部の例示的な実施形態は、サーバとしてメンバを含むことができる。一部の例示的な場合、負荷均衡プールは、部分的に、負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含む。ユーザカウントは、一部の例示的な実施形態では、特定の期間中にサーバを使用しているユーザ数を反映する数値である。
【００２０】
一部の例示的な実施形態では、方法６００は、実行された時にユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション６０７を含む。実行された時に、ユーザカウント情報が、リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しいかを判断するためにユーザカウント情報を使用するオペレーション６０８が示されている。更に、実行された時に、ユーザカウント情報が、リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しい場合にデバイスを負荷均衡プールに導入するオペレーション６０９が示されている。一部の例示的な実施形態では、バッファ変数は、リミット変数よりも小さいユーザ数を反映する数値である。一部の例示的な実施形態は、サーバを保護するライセンス制約の一部として定められたリミット変数を含むことができ、サーバを使用することができるユーザ数を反映する。更に、一部の例示的な実施形態では、デバイスは、サーバを含む予備ハードウエアデバイスである。更に、一部の例示的な実施形態では、負荷均衡プールは、部分的に、負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含む。
【００２１】
図７は、例えば、ＬＴＭ１１７、１１８、又は１１９のようなＬＴＭ上で実行される例示的な方法７００を示す流れ図である。図示しているのは、均衡化スクリプト７０１である。一部の例示的な実施形態では、このスクリプトは、Ｐｅｒｌ、Ｐｙｔｈｏｎ、「Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔ」、又は何らかの他の適切なスクリプト記述言語のようなスクリプト記述言語の何らかのタイプで書くことができる。このスクリプトは、オペレーション７０２の実行によって受信される。オペレーション７０３は、各接続したデバイスに対する現在ユーザカウント値及びＩＰアドレスを検索するために実行される。接続したデバイスは、例えば、サーバ１１４から１１６とすることができる。ＩＰマッピングを使用して、管理インタフェースに関連付けられたＩＰアドレスが、特定の接続したデバイス（例えば、サーバ１１６）に対する外部インタフェースに関連付けられたＩＰアドレスにマップされる。このデバイス（例えば、サーバ１１６）に対する現在ユーザカウントは、次に、マッピング表７０４に記憶される。一部の例示的な実施形態では、利用可能な予備ハードウエアデバイス１２３から１２５の１つ又はそれよりも多くが、負荷均衡の目的のために付加的なシステムリソースを提供するようにオンラインになる必要があるか否かをＬＴＭに指示する均衡化スクリプト７０１を実施するオペレーション７０５が実行され、均衡化スクリプト７０１は、各接続したデバイスに対する現在ユーザカウント値を使用する。一部の例示的な実施形態では、スクリプト７０１は、どのデバイスを負荷均衡プールから取り除くべきかをＬＴＭに指示することができる。判断オペレーション７０６は、一部の例示的な実施形態では、リミット変数を超過したか否かを判断するために実行することができる。このリミット変数は、いずれか１つの特定の接続したデバイス（例えば、サーバ１１４から１１６）がどの時点においてもサービスを提供することができる同時利用ユーザ数に課せられたある一定のライセンス制約によって設定される。判断オペレーション７０６が「真」であると認めた場合、利用可能な予備ハードウエアデバイスをアクティブメンバとして負荷均衡プールに追加するオペレーション７０７が実行される。これらのハードウエアデバイス（例えば、サーバ１１４から１１６）に課せられた制限値が、同時利用ユーザ数に基づいて超過した場合、メンバとして均衡プールから様々なハードウエアデバイスを取り除くことができるオペレーション７０８が実行される。判断オペレーション７０６が「偽」であると認めた場合、特定の負荷均衡プールに余分の容量が存在するか否かを判断する更に別の判断オペレーション７０９が実行される。判断オペレーション７０９が「偽」であると認めた場合、終了条件７９９が実行される。判断オペレーション７０９が「真」であると認めた場合、予備デバイスが負荷均衡プールのメンバであることを取り除く更に別のオペレーション７１０が実行される。一部の例示的な実施形態では、前に取り除かれたデバイスを負荷均衡プールに戻すオペレーション７１１が実行される。
【００２２】
図８は、例示的な方法７０３を示す二重ストリーム流れ図である。図示しているのは、オペレーション８０１、８０６、８０７、及び８０９を収容する第１ストリームである。この第１ストリームの一部としてマッピング表７０４が示されている。一部の例示的な実施形態では、これらのオペレーション８０１、８０６、８０７、及び８０９、及びマッピング表７０４は、ＬＴＭ１１７の一部として常駐している。更に、オペレーション８０２、８０３、及び８０５、及び現在ユーザカウント表８０４を収容する第２ストリームが示されている。これらの様々なオペレーション８０２、８０３、及び８０５、及び現在ユーザ表８０４は、例えば、サーバ１１６の一部として常駐することができる。１つの例示的な実施形態では、負荷均衡プールの一部であるデバイスに問い合わせるオペレーション８０１が実行される。これらのデバイスは、例えば、以前に示したサーバ１１４から１１６とすることができる。オペレーション８０２は、実行された時、ＳＮＭＰベースのメッセージ要求８１０の形式でユーザカウント問合せを受信する。オペレーション８０３は、現在ユーザカウント表８０４から現在ユーザアカウント情報を検索することに関して実行される。ＬＴＭ１１７によって受信される管理インタフェース４０６のような管理インタフェースを通じてこの現在ユーザカウント情報を送信するオペレーション８０５が実行される。一部の例示的な実施形態は、ユーザカウント情報を包含し、更に管理インタフェース及び接続したデバイス（例えば、サーバ１１６）に関連付けられたＩＰアドレスを識別するＳＮＭＰベースのメッセージを受信するために実行されるオペレーション８０６を含むことができる。オペレーション８０７は、ＳＮＭＰベースのメッセージから管理インタフェースに関連付けられたＩＰアドレスを構文解析するために実行される。この同じオペレーション８０７は、一部の例示的な実施形態では、ユーザカウント情報を構文解析することができる。更に、このオペレーション８０７は、次に、管理インタフェースに関連付けられたＩＰアドレスをサーバ１１６のようなデバイスに対する外部インタフェースに関連付けられたＩＰアドレスにマップすることができる。マップされた状態で、サーバ１１６のような特定のデバイスに対するユーザカウント値をマッピング表７０４に記憶するオペレーション８０９が実行される。
【００２３】
図９は、オペレーション７０６を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、例えば、ＳＮＭＰベースのメッセージ（例えば、ＳＮＭＰベースメッセージ４０１から４０３を参照）からユーザカウント値を受信するオペレーション９０１である。ユーザカウント値が、サーバ１１６のような特定のサーバに対する同時利用ユーザライセンス制約を定めるリミット変数よりも大きいか又はこれに等しいか否かを判断する判断オペレーション９０２が実行される。判断オペレーション９０２が「偽」であると認めた場合、偽信号を送信するオペレーション９０３が実行される。判断オペレーション９０２が「真」であると認めた場合、真信号を送信するオペレーション９０４が実行される。
【００２４】
図１０は、オペレーション７０９を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、実行された時に偽信号を受信するオペレーション１００１である。リミット変数よりも小さいか又はこれに等しくなくてはならない再入場値よりも現在ユーザカウント値が小さいか又は等しいかを判断する判断オペレーション１００２が実行される。一部の例示的な実施形態では、再入場値は、リミット変数と手動で定められたバッファ値間の差に基づいている。この手動で定められたバッファ値は、ＬＴＭの構成中にネットワーク管理者又は他の適切な個人によって定められる。再入場値は、リミット変数値付近で停止しているネットワークトラフィックのためにデバイスが連続して負荷均衡プールに入り及び負荷均衡プールから出ないことを保証するのに使用される。一部の例示的な実施形態では、現在ユーザカウント値は、サーバ１１４のような特定のデバイスを同時に利用しているユーザ数とすることができる。再入場値は、サーバ１１６のようなデバイスが負荷均衡プールに再度入ることができる時間を示すために使用される何らかのタイプの所定の値とすることができる。判断オペレーション１００２が「偽」であると認めた場合、偽信号を送信する更に別のオペレーション１００３が実行される。判断オペレーション１００２が「真」であると認めた場合、真信号を送信する更に別のオペレーション１００４が実行される。
【００２５】
図１１は、オペレーション７０７を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、予備デバイス又は複数の予備デバイスに負荷均衡プールのメンバとしてのフラグを立てるオペレーション１１０１である。オペレーション１１０２は、実行された時、サーバ１２３から１２５のような予備デバイスに関連付けられたスクリプトを有効にする。このスクリプトにより、予備デバイスはユーザへのサービスを開始することができる。サーバ１１６のような特定のデバイスが、実際には負荷均衡プールのメンバであるということを記載した情報により、マッピング表７０４のようなマッピング表を更新するオペレーション１１０３が実行される。
【００２６】
図１２は、オペレーション７０８を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、フラグの除去が、負荷均衡プールのメンバがもはやメンバでないことを示す場合、デバイスに関するマッピング表７０９におけるフラグ値を除去するオペレーション１２０１である。一部の例示的な実施形態では、このフラグ値は、ブール値である。一部の例示的な実施形態では、特定のデバイスがもはや負荷均衡プールの一部でないことがマッピング表７０４に示されるようなフラグの除去により、マッピング表７０４を更新するオペレーション１２０２が実行される。
【００２７】
図１３は、オペレーション７１０を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、負荷均衡プールのメンバとしてのデバイスからフラグを取り除くオペレーション１３０１である。オペレーション１３０２は、サーバ１２３から１２５のような予備デバイスの１つを実行するのに使用されるスクリプトを無効にするように実行される。スクリプトを無効にされたデバイスが、もはや負荷均衡プールのメンバでないという情報によってマッピング表７０４を更新するオペレーション１３０３が実行される。
【００２８】
図１４は、オペレーション７１１を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、負荷均衡プールから以前取り除かれたデバイスを再度負荷均衡プールのメンバにすることができるというフラグをマッピング表７０４に立てるオペレーション１４０１である。オペレーション１４０２は、一部の例示的な実施形態においてネットワークトラフィックを受信することができるように、以前取り除かれたデバイスが再度負荷均衡プールのメンバになるようにマッピング表７０４を更新するために実行される。
【００２９】
図１５は、デバイスを負荷均衡プールのメンバにすべきか否か、又はデバイスを負荷均衡プールから取り除くべきか否かを判断するために使用される例示的な方法１５００を示す流れ図である。図示しているのは、複数のオペレーション１５０１から１５０５、及びデータ記述１５０６から１５０８である。これらの様々なオペレーションは、ＬＴＭ１１７の一部として常駐することができる。図示しているのは、時間順のジョブ（例えば、「Ｃｒｏｎ  Ｊｏｂ」）が何らかの所定のスケジュールに基づいてスクリプトを始めるオペレーション１５０１である。一部の例示的な実施形態では、均衡化スクリプト７０１は、３０秒、６０秒、９０秒毎に、又は何らかの他の適切な時間間隔で実行されるように何らかの所定のスケジュールに基づいて実行される。ＬＴＭ１１７に接続することができるサーバ１１４から１１６のような特定のデバイスに対する同時利用ユーザカウントを判断するためにＳＮＭＰポールを実行するオペレーション１５０２が実行される。例えば、プールメンバナンバー１（１５０３）、プールメンバナンバー２（１５０４）、及びプールメンバナンバーＮ（１５０５）が示されている。これらのプールメンバ１５０３から１５０５の各々によって生成されるのが、データ１５０６から１５０８の形式のデータであり、例えば、データ１５０６は、プールメンバナンバー１（１５０３）に対する同時利用ユーザアカウント値である。更に、データ１５０７は、プールメンバナンバー２（１５０４）に対する同時利用ユーザアカウント値１５０７である。更に、データ１５０８は、プールメンバナンバーＮ（１５０５）に対する同時利用ユーザアカウント値である。以下に更に詳しく説明するように、これらの様々なデータ値１５０６から１５０８は、リミット変数を超過したか否かに関する判断を実行するために処理される。
【００３０】
図１６は、例えば、サーバ１１４から１１６のような特定のデバイスを負荷均衡プールから取り除き、更に、付加的な利用可能な予備ハードウエアデバイス（例えば、サーバ１２３から１２５）を負荷均衡プールに導入すべきか否かを判断するために使用される例示的な方法１６００を示す流れ図である。図示しているのは、例えば、ＬＴＭ１１７の一部として常駐することができる様々なオペレーション１６０１から１６０６である。現在ユーザアカウント値がある一定のリミット変数又はこのリミット変数を超過したか否かを判断する判断オペレーション１６０１が示されている。判断オペレーション１６０１が「真」であると認めた場合、プールメンバがもうこれ以上付加的なユーザを受け入れないようにプールメンバのスクリプトを無効にするオペレーション１６０２が実行される。しかし、プールメンバは、プールメンバと、様々なユーザ及びユーザによって利用されるコンピュータシステムとの間に存在する様々なＴＣＰ接続のサービスを提供し続けることができる。次に、終了条件として機能するオペレーション１６０６が実行される。
【００３１】
判断オペレーション１６０１が「偽」であると認める例示的な場合、更に別の判断オペレーション１６０５が実行される。この判断オペレーション１６０５は、例えば、現在ユーザカウント値が、リミット変数と有効化ドバッファ変数間の差よりも小さいか又はこれに等しいかを判断することができる。一部の例示的な実施形態では、リミット変数は、例えば、サーバ１１４から１１６のような特定のデバイスのサービスを受ける同時利用ユーザ数に特定のライセンスによって課せられた制約とすることができる。一部の例示的な実施形態では、有効化ドバッファ変数は、例えば、新しい同時利用ユーザとこれらのユーザによって生成された関連のＴＣＰ接続とを処理するためにサーバ１１４から１１６によって利用されるバッファに存在することができる自由空間の量を示すネットワーク管理者によって判断された何らかのタイプの変数とすることができる。判断オペレーション１６０５が「真」であると認めた場合、更に別の判断オペレーション１６０４が実行される。一部の例示的な実施形態では、判断オペレーション１６０４は、プールメンバのステータスを判断することができる。判断オペレーション１６０４が「真」であると認め、更に、プールメンバのステータスが無効であると判断された場合には、オペレーション１６０３が実行される。オペレーション１６０３は、実行された時、以前に無効されたプールメンバをアクティブになるように有効にすることができ、これらに付加的な同時利用ユーザ及びその関連付けられたＴＣＰ接続を処理させることができる。判断オペレーション１６０４が「偽」であると認めた場合、以前に参照されたオペレーション１６０６が実行される。判断オペレーション１６０５が「偽」であると認めた場合、再度以前に参照されたオペレーション１６０６が実行される。
【００３２】
図１７は、例えば、マッピング表７０４内に含まれる様々な表の図である。図示しているのは、例えば、いくつかの列を収容するマッピング表７０４の一部として常駐しているマッピング表である。これらの列は、例えば、ユーザカウント列１７０１、マネージャインタフェースアドレス列１７０２、外部インタフェースアドレス列１７０３、及びプールのメンバ列１７０４を含む。ユーザカウント列１７０１に関して、特定のデバイスに対するユーザカウントが示されている。これらのユーザカウントは、このデバイスがその永続ＩＰアドレスによって識別することができる場合の特定のデバイスに対する同時利用ユーザ数である。これらのデバイスは、例えば、サーバ１１４から１１６を含む。列１７０２に関して、いくつかの管理インタフェースＩＰアドレスが示されている。これらの管理インタフェースアドレスは、例えば、永続ＩＰアドレスとすることができる。列１７０３内に付加的な永続ＩＰアドレスが示されているが、ここでは、ある一定のデバイスに対する外部インタフェースアドレスを表している。列１７０４内には、サーバ１１４から１１６のような特定のデバイスが負荷均衡プールのメンバであるか否かを示すプールメンバに対するフラグが示されている。同時利用ユーザカウント値がリミット変数値を超過する例示的な場合、ライセンス制約によって指示されたように、プールメンバ列１７０４内に包含されたブール値が「偽」に設定される。特に、列７０４に包含された値が「偽」に設定された場合、サーバ１１４から１１６のようなデバイスは、もはやプールのメンバとしては考えられず、したがって、例えば、ネットワークトラフィック１０５、１０４、又は１０６のようなネットワークトラフィックはそれ以上送信されない。しかし、ユーザカウント値がライセンス制約によって指示されるリミット変数値よりも下である場合、プールメンバ列１７０４内に包含されたブール値は、そのデバイス（例えば、サーバ１１４から１１６）がネットワークトラフィックを受信することができることを示す「真」に設定される。
【００３３】
３層アーキテクチャ
一部の例示的な実施形態では、３層アーキテクチャパラダイムの下で設計された分散又は非分散ソフトウエアアプリケーションで実行される方法が示されており、それによって本方法を実行するコンピュータコードの様々なコンポーネントは、これらの３層の１つ又はそれよりも多くに属するものとして分類することができる。一部の例示的な実施形態は、アプリケーション処理から比較的自由であるインタフェース（例えば、インタフェース層）として第１層を含むことができる。更に、第２層は、インタフェースレベルを通じて入力されたデータの論理的／数学的操作の形式でのアプリケーション処理を実行し、これらの論理的／数学的操作の結果は、インタフェース層、及び／又はバックエンド又は記憶層に伝達される論理層とすることができる。これらの論理的／数学的操作は、全体としてソフトウエアアプリケーションを管理するいくつかのビジネス規則又は処理に関するものとすることができる。第３記憶層は、永続記憶媒体又は非永続記憶媒体とすることができる。一部の例示的な場合、これらの層の１つ又はそれよりも多くは、別の層に分解することができ、結果として、２層アーキテクチャ又は１層アーキテクチャをもたらす。例えば、組込みデータベースを備えたソフトウエアアプリケーションの場合のように、インタフェース及び論理層を統合することができ、又は論理及び記憶層を統合することができる。この３層アーキテクチャは、１つの技術を使用して達成することができ、又は以下に説明するように様々な技術を使用して達成することができる。この３層アーキテクチャ及びこれが達成される技術は、サーバ／クライアント、ピア・ツー・ピア、又は何らかの他の適切な構成に組織された２つ又はそれよりも多くのコンピュータシステム上で実行することができる。更に、これらの３層は、様々なソフトウエアコンポーネントとして１つよりも多いコンピュータシステム間に分散させることができる。
【００３４】
コンポーネントの設計
一部の例示的な実施形態は、上述の層、及び１つ又はそれよりも多くのソフトウエアコンポーネントとして書かれる場合にこれらを作り上げる処理又はオペレーションを含むことができる。これらのコンポーネントの多くに共通することは、データを生成し、使用し、更に操作するための機能である。これらのコンポーネント及び各々に関連付けられた機能は、クライアント、サーバ、又はピアコンピュータシステムによって使用される。これらの様々なコンポーネントは、必要に応じてコンピュータシステムによって実施される。これらのコンポーネントは、コンポーネント指向又はオブジェクト指向のプログラミング技術が「ビジュアル・コンポーネント・ライブラリ（ＶＣＬ）」、「コンポーネント・ライブラリ・フォー・クロス・プラットフォーム（ＣＬＸ）」、「ジャバ・ビーンズ（ＪＢ）」、「ジャバ・エンタープライズ・ビーンズ（ＥＪＢ）」、「コンポーネント・オブジェクト・モデル（ＣＯＭ）」、「ディストリビューテッド・コンポーネント・オブジェクト・モデル（ＤＣＯＭ）」、又は他の適切な技術を使用して達成されるようにオブジェクト指向コンピュータ言語で書かれる。これらのコンポーネントは、様々な「アプリケーション・プログラミング・インタフェース（ＡＰＩ）」を通じて他のコンポーネントに連結され、次に、１つの完全なサーバ、クライアント、及び／又はピアソフトウエアアプリケーションにコンパイルされる。更に、これらのＡＰＩは、分散コンピュータコンポーネントとして様々な分散プログラミングプロトコルを通じて通信することができる。
【００３５】
分散コンピュータコンポーネント及びプロトコル
一部の例示的な実施形態は、分散コンピュータコンポーネントとして分散プログラミング環境にわたって上述のコンポーネントの１つ又はそれよりも多くを実施するのに使用されるリモート手順呼び出しを含むことができる。例えば、インタフェースコンポーネント（例えば、インタフェース層）は、論理コンポーネント（例えば、論理層）を収容する第２コンピュータシステムから遠隔に位置する第１コンピュータシステムに存在することができる。これらの第１及び第２コンピュータシステムは、サーバ・クライアント、ピア・ツー・ピア、又は何らかの他の適切な構成に構成することができる。これらの様々なコンポーネントは、上述のオブジェクト指向のプログラミング技術を使用して書かれ、同じプログラミング言語又は異なるプログラミング言語で書くことができる。様々なプロトコルは、これらの様々なコンポーネントが、これらのコンポーネントを書くために使用されたプログラミング言語に関わらず通信することができるように実施される。例えば、Ｃ＋＋で書かれたコンポーネントは、「コモン・オブジェクト・リクエスト・ブローカー・アーキテクチャ（ＣＯＲＢＡ）」、「シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）」、又は何らかの他の適切なプロトコルのような分散コンピュータプロトコルを使用してジャバプログラミング言語で書かれた別のコンポーネントと通信することができる。一部の例示的な実施形態は、ＯＳＩモデル、又はデータを送信するためにネットワークによって使用されるプロトコルを定めるためのＴＣＰ／ＩＰプロトコルスタックモデルで説明された様々なプロトコルを備えたこれらのプロトコルの１つ又はそれよりも多くの使用を含むことができる。
【００３６】
サーバとクライアント間の送信のシステム
一部の例示的な実施形態は、「オープン・システムズ・インターコネクション（ＯＳＩ）」基本基準モデル、又はデータを送信するためにネットワークによって使用されるプロトコルを定めるための送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）プロトコルスタックモデルを使用することができる。これらのモデルを用いる場合、サーバとクライアント間、又はピアコンピュータシステム間のデータ送信のシステムは、アプリケーション層、トランスポート層、ネットワーク層、データリンク層、及び物理層を含む一連の大まかな５つの層として示される。３層アーキテクチャを有するソフトウエアの場合、様々な層（例えば、インタフェース、論理、及び記憶層）が、ＴＣＰ／ＩＰプロトコルスタックのアプリケーション層に常駐する。ＴＣＰ／ＩＰプロトコルスタックモデルを使用する例示的な実施例では、アプリケーション層に常駐しているアプリケーションからのデータが、トランスポート層に常駐しているＴＣＰセグメントのデータ負荷フィールドに負荷される。このＴＣＰセグメントは、遠隔に存在している受信者ソフトウエアアプリケーションに対するポート情報を収容する。このＴＣＰセグメントは、ネットワーク層に常駐しているＩＰデータグラムのデータ負荷フィールドに負荷される。次に、このＩＰデータグラムは、データリンク層に常駐しているフレームに負荷される。次に、このフレームは、物理層で符号化され、データは、「インターネット」、「ローカルエリアネットワーク（ＬＡＮ）」、「ワイドエリアネットワーク（ＷＡＮ）」、又は何らかの他の適切なネットワークのようなネットワーク上で送信される。一部の例示的な場合、「インターネット」は、複数のネットワークの１つのネットワークを指す。これらのネットワークは、上述のＴＣＰ／ＩＰ、及び付加的にＡＴＭ、ＳＮＡ、ＳＤＩ、又は何らかの他の適切なプロトコルを含むデータの交換のための様々なプロトコルを使用することができる。これらのネットワークは、様々なトポロジー（例えば、スター・ポロジー）又は構造内で組織することができる。
【００３７】
コンピュータシステム
図１８は、本明細書に説明する方法のいずれか１つ又はそれよりも多くを機械に実行させるための１組の命令を実行することができるコンピュータシステム１８００の例示的な形式における機械の図式表示を示している。他の実施形態では、機械は、独立型デバイスとして作動するか、又は他の機械に接続することができる（例えば、ネットワーク）。ネットワーク化された配置では、機械は、サーバ・クライアントネットワーク環境におけるサーバ又はクライアント機械の資格で、又はピア・ツー・ピア（又は分散）ネットワーク環境におけるピア機械として作動させることができる。機械は、「パーソナルコンピュータ（ＰＣ）」、タブレットＰＣ、「セット−トップボックス（ＳＴＢ）」、「携帯情報端末（ＰＤＡ）」、携帯電話、ウェブ電気器具、ネットワークルータ、スイッチ又はブリッジ、又はその機械によって取られる作動を指定する１組の命令（連続又はそれ以外）を実行することができるあらゆる機械とすることができる。更に、単一の機械だけが示されているが、「機械」という語は、本明細書に説明する方法のいずれか１つ又はそれよりも多くを実行するために１組（又は複数の組）の命令を個々に又は一緒に実行する機械のあらゆる集合を含むものと解釈される。例示的な実施形態は、ネットワーク上で連結されている（例えば、有線、無線、又は有線及び無線接続の組合せのいずれかにより）ローカル及びリモートコンピュータシステムがタスクを実行する分散システム環境に実施される。分散システム環境では、プログラムモジュールは、ローカル及びリモートのメモリ記憶デバイスの両方に位置決めすることができる（以下を参照）。
【００３８】
例示的なコンピュータシステム１８００は、バス１８０８を通じて互いに通信するプロセッサ１８０２（例えば、「中央演算処理装置（ＣＰＵ）」、「グラフィック処理ユニット（ＧＰＵ）」、又は両方）、主メモリ１８０１、及び静的メモリ１８０６を含む。コンピュータシステム１８００は、ビデオディスプレイユニット１８１０（例えば、「液晶ディスプレイ（ＬＣＤ）」又は「ブラウン管（ＣＲＴ）」）を更に含むことができる。コンピュータシステム１８００は、英数字入力デバイス１８１７（例えば、キーボード）、「ユーザインタフェース（ＵＩ）」カーソルコントローラ１８１１（例えば、マウス）、ディスク駆動ユニット１８１６、信号発生デバイス１８１８（例えば、スピーカ）、及びネットワークインタフェースデバイス（例えば、送信機）１８２０を含む。
【００３９】
ディスク駆動ユニット１８１６は、本明細書に示されている方法又は機能のいずれか１つ又はそれよりも多くを実行するか又はこれらによって利用される１つ又はそれよりも多くの組の命令、及びデータ構造（例えば、ソフトウエア）を記憶する機械可読媒体１８２２を含む。ソフトウエアは、機械可読媒体を構成しているコンピュータシステム１８００、主メモリ１８０１、及びプロセッサ１８０２によるソフトウエアの実行中に、主メモリ１８０１内及び／又はプロセッサ１８０２内に完全に又は少なくとも部分的に常駐することができる。
命令１８２１は、更に、いくつかの公知の転送プロトコル（例えば、「ハイパーテキスト転送プロトコル（ＨＴＴＰ）」、「セッションイニシエーションプロトコル（ＳＩＰ）」）のいずれか１つを使用してネットワークインタフェースデバイス１８２３を通じてネットワーク１８２６を通じて送信又は受信される。
【００４０】
一部の例示的な実施形態では、取外し可能物理記憶媒体は、単一の媒体として示されており、「機械可読媒体」という語は、１つ又はそれよりも多くの組の命令を記憶する単一の媒体又は複数の媒体（例えば、集中化又は分散データベース、及び／又は関連付けられたキャッシュ及びサーバ）を含むものと解釈される。「機械可読媒体」という語は、機械による実行のための１組の命令を記憶し、符号化し、又は搬送することができ、更に、本明細書に示す方法の１つ又はそれよりも多くのいずれかを機械に実行させるあらゆる媒体を含むものと解釈される。「機械可読媒体」という語は、したがって、以下に限定されるものではないが、固体メモリ、光及び磁気媒体、及び搬送波信号を含むものと解釈される。
【００４１】
市場用途
一部の例示的な実施形態では、リソースをこのネットワークに追加するために利用可能な予備ハードウエアデバイスをネットワークに追加することができる。一部の例示的な場合、このハードウエアの追加は、ネットワークの所有者に付加的なコストを負わせる場合がある。これらのコストは、負荷均衡プール及びそれに関連付けられたリソースを増すために実際に付加的な予備ハードウエアを借りることに関連したコストから発生する。例えば、利用可能な予備ハードウエアが長く使用される程、コストが増大する。これらのコストを制限するための１つの方法は、必要な期間だけ利用可能な予備ハードウエアデバイスを使用することである。この利用可能な予備ハードウエアデバイスは、新しいユーザを処理するための負荷均衡プールの容量が超過した場合にのみ必要とされる。
【００４２】
本発明の開示の要約は、読者が技術的な開示の性質を迅速に確認することを可能にする要約を要求する３７「Ｃ．Ｆ．Ｒ．」§１．７２（ｂ）に従って提供されたものである。本発明の開示の要約が特許請求の範囲又は意味を解釈又は制限するように使用されるものではないという了解の下で、本発明の開示の要約は提出されている。更に、上述の詳細説明では、様々な特徴が本発明の開示を簡素化する目的のために単一の実施形態に一緒にまとめられていることが分る。この開示の方法は、請求する実施形態が各請求項に明確に記載されるよりも多くの特徴を必要とする意図を反映するものとして解釈すべきではない。逆に、特許請求の範囲が反映するように、本発明の主題は、単一の開示する実施形態の全ての特徴に満たないものに存在する。したがって、以下の特許請求の範囲は、ここに詳細説明に組み込まれるものとし、各請求項は、別々の実施形態として独立するものとする。
【図１】
2010541096.tif 000003
【図２】
2010541096.tif 000004
【図３】
2010541096.tif 000005
【図４】
2010541096.tif 000006
【図５】
2010541096.tif 000007
【図６】
2010541096.tif 000008
【図７】
2010541096.tif 000009
【図８】
2010541096.tif 000010
【図９】
2010541096.tif 000011
【図１０】
2010541096.tif 000012
【図１１】
2010541096.tif 000013
【図１２】
2010541096.tif 000014
【図１３】
2010541096.tif 000015
【図１４】
2010541096.tif 000016
【図１５】
2010541096.tif 000017
【図１６】
2010541096.tif 000018
【図１７】
2010541096.tif 000019
【図１８】
2010541096.tif 000020
【国際調査報告】
2010541096.tif 000021