JP5706468B2 - パンデミックリモートアクセス設計 - Google Patents

パンデミックリモートアクセス設計 Download PDF

Info

Publication number
JP5706468B2
JP5706468B2 JP2013112742A JP2013112742A JP5706468B2 JP 5706468 B2 JP5706468 B2 JP 5706468B2 JP 2013112742 A JP2013112742 A JP 2013112742A JP 2013112742 A JP2013112742 A JP 2013112742A JP 5706468 B2 JP5706468 B2 JP 5706468B2
Authority
JP
Japan
Prior art keywords
load balancing
balancing pool
pool
variable
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013112742A
Other languages
English (en)
Other versions
JP2013164875A (ja
Inventor
キャメロン ディーン ウィリアムズ
キャメロン ディーン ウィリアムズ
エリック オークソン
エリック オークソン
Original Assignee
ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド
ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド, ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド filed Critical ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド
Publication of JP2013164875A publication Critical patent/JP2013164875A/ja
Application granted granted Critical
Publication of JP5706468B2 publication Critical patent/JP5706468B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願
本特許出願は、2007年10月3日出願の「パンデミックリモートアクセス設計」という名称の米国特許仮出願出願番号第60/977、330号の優先権の恩典を請求し、この内容は、本明細書においてその全内容が引用により組み込まれている。
著作権
本文書の開示の部分は、著作権保護の対象になる内容を含む。著作権所有者は、特許及び登録商標事務所特許ファイル又は記録に現れる特許文書又は特許開示の他者によるファクシミリ複製に異議はないが、それ以外は、全ての著作権を保有する。以下の通知は、下記及び本文書の一部を形成する図面に示されているソフトウエア、データ、及び/又はスクリーンショットに適用される:著作権2007年、「Virtela Communications、Incorporated」。全権利を保有する。
本出願は、一般的に、ネットワーキングの技術分野に関し、1つの特定的な実施例においては、高ネットワークトラフィックの期間中のサーバの動的使用に関する。
負荷均衡電気器具は、とりわけ均一方式で、又はネットワークリソースを十分に利用する方式でネットワークトラフィックを分散させることを可能にする。
ある一定の場合では、これらの負荷均衡電気器具のサービスを受けるサーバ又は他の適切なデバイスの容量は、超過することがある。例えば、特定のサーバのサービスを受けているユーザ数が過剰であると、特定サーバの容量は超過する場合がある。
1つの例示的な実施形態では、負荷均衡プールからのサーバの動的追加又は除去を可能にするシステム及び方法を示す。一部の例示的な実施形態は、複数のLTM電気器具間でネットワークトラフィックを均衡させる「グローバルトラフィックマネージャ(GTM)」電気器具の使用を含むことができる。こうしてこれらのLTMは、次に、LTMのサービスを受ける複数のサーバ又は特定の他の適切なデバイスに送られたネットワークトラフィックを均衡させることができる。特定のLTMのサービスを受けているこの複数のサーバは、負荷均衡プールである。一部の例示的な実施形態では、LTMは、「自律システム(AS)」、エリア、又は他の適切なドメインのような特定のドメインにサービス提供することができる。負荷均衡プールは、このドメインの一部として常駐することができる。
一部の例示的な実施形態は、何らかの種類の所定の基準に基づくネットワークトラフィックの均衡化を含むことができる。1つの例示的な実施形態では、ネットワークトラフィックは、LTMがネットワークトラフィックを送信しているサーバのいずれか1つのサービスを受けるLTMによって既知のユーザ数に基づいて均衡化される。ユーザは、例えば、ユーザに関連付けられた永続的な「インターネットプロトコル(IP)」アドレスによって識別することができる。一部の例示的な実施形態では、サーバには、どの時点においてもサーバのサービスを受けることができるユーザ数を制限するある一定の制限値(例えば、リミット変数)が課せられる場合がある。これらの制限値は、例えば、サーバの製造業者によって課せられるサーバの使用に関連付けられたある一定のライセンス規制を反映することができる。例えば、サーバは、一度に数千の「送信制御プロトコル(TCP)」セッションにサービス提供することができるが、サーバは、どの時点においても2千のユーザのみにサービス提供するようにサーバを保護するライセンスによって制限される場合がある。
一部の例示的な実施形態では、ユーザ数に関連するライセンス期限を超過又はほぼ超過した時には、利用可能な予備ハードウエアドメインが、負荷均衡プールを補足するために存在する場合がある。この利用可能な予備ハードウエアドメインは、必要に応じて負荷均衡プール内に持ち込むことができる複数のサーバ又は他の適切なデバイスを収容することができる。更に、これらのサーバ又は他の適切なデバイスは、それらが必要とされなくなった場合に負荷均衡プールから取り除くことができる。例えば、利用可能な予備ハードウエアドメインからのこれらのサーバは、負荷均衡プールを構成するサーバのサービスを受けるユーザ数が何らかの閾値よりも下の場合に取り除くことができる。一部の例示的な実施形態では、利用可能な予備ハードウエアドメインの一部として常駐するサーバ又は他の適切なデバイスは、暗いハードウエアとして参照される場合がある。
一部の例示的な実施形態は、LTMが負荷均衡プールにサーバを追加するか又は負荷均衡プールからサーバを取り除くことを可能にするスクリプトを実行するLTMを含むことができる。一部の例示的な場合では、サーバが追加された時に、別のサーバが追加のユーザにサービス提供することを制限することができる。このサーバを制限することにより、サーバは、実質的に負荷均衡プールから取り除かれる。しかし、このサーバは、既存のユーザにサービス提供することを依然として要求される場合があり、例えば、TCP接続がこのサーバに対して確立される。
一部の例示的な実施形態では、負荷均衡プールからサーバを取り除くか又はサーバを負荷均衡プールに追加するか否かを判断するLTMの機能は、ユーザカウントデータ(例えば、ユーザカウント値)に一部基づく場合がある。このユーザカウントデータは、LTMによってモニタされる管理インタフェースを通じてサーバから受信することができる。より具体的には、負荷均衡プールにサービス提供するLTMは、ネットワークトラフィックをサーバの外部インタフェースに送信することができるが、管理インタフェースを通じてサーバのサービスを受けるユーザ数をモニタする場合がある。一部の例示的な実施形態は、管理インタフェースを通じて「シンプルネットワーク管理プロトコル(SNMP)」ベースのメッセージをサーバに定期的に送信するLTMを含むことができる。これに応答して、サーバは、とりわけ、サーバによって現在サービスを受けているユーザ数(例えば、ユーザカウント値)及び管理インタフェースを識別するIPアドレスを収容するSNMPベースの応答メッセージを送信することができる。次に、LTMは、IPアドレス及びユーザカウント値を抽出し、マッピング表でルックアップを実行し、LTMがSNMPベースのメッセージを受信したサーバに関連付けられた外部インタフェースのアイデンティティを判断することができる。サーバのアイデンティティが判断された状態で、LTMは、次に、サーバに関連付けられたライセンスによって指示されたリミット変数を判断することができ、リミット変数を超過したか又は超過していないかに基づいて、負荷均衡プールからサーバを取り除くか又は追加することができる。
一部の例示的な実施形態は、添付の図面の図において制限ではなく一例として示される。
複数のネットワーク環境内の複数の負荷均衡電気器具の使用を示す例示的な実施形態によるシステムを示す図である。 付加的な予備デバイスを利用しなくてはならないようにドメインリソースを超過した場合の例示的な実施形態によるシステムを示す図である。 負荷均衡プールへのサーバの返却及び負荷均衡プールからの予備ハードウエアデバイスの除去を示す例示的な実施形態によるシステムを示す図である。 例示的な実施形態によるドメインとドメインに包含されたコンピュータシステムとを示す図である。 「ローカルトラフィックマネージャ(LTM)」とすることができる例示的な実施形態によるコンピュータシステムを示すブロック図である。 負荷均衡プールにハードウエアデバイスを追加又は取り除くために使用される例示的な実施形態による方法を示す流れ図である。 LTM上に実施される例示的な実施形態による方法700を示す流れ図である。 各接続したデバイスに対する現在ユーザカウント値を検索する例示的な実施形態による方法を示す二重ストリーム流れ図である。 リミット変数を超過したか否かを判断する実行オペレーションに使用される例示的な実施形態による方法を示す流れ図である。 特定の負荷均衡プールに余分の容量が存在するか否かを判断するオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。 利用可能な予備ハードウエアデバイスをアクティブメンバとして負荷均衡プール内に追加するオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。 ある一定のライセンス制約に基づくメンバとして負荷均衡プールから様々なハードウエアデバイスを取り除くことができるオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。 予備デバイスが負荷均衡プールのメンバであることを取り除くオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。 負荷均衡プールに以前取り除かれたデバイスを戻すオペレーションを実行するのに使用される例示的な実施形態による方法を示す流れ図である。 デバイスを負荷均衡プールから取り除くべきか否かを判断するために使用される例示的な実施形態による方法を示す流れ図である。 特定のデバイスを負荷均衡プールから取り除き、かつ付加的な利用可能な予備ハードウエアデバイスを負荷均衡プールに導入すべきか否かを判断するために使用される例示的な実施形態による方法を示す流れ図である。 マッピング表に含めることができる例示的な実施形態による表を示す図である。 例示的な実施形態によるコンピュータシステムの形態の機械を図式表示した図である。
図1は、複数のネットワーク環境内での複数の負荷均衡電気器具の使用を示す例示的なシステム100の図である。それを通してネットワークトラフィック102がGTM103に送信されるネットワーク101が示されている。このネットワークトラフィック102は、GTMのサービスを受ける様々なドメインの同時利用ユーザ数を示している。これらのドメインは、例えば、ドメイン107、108及び113を含むことができる。これらのドメインの各ドメインは、例えば、AS、エリア、又は何らかの他の適切なドメインを表すことができる。これらのドメインのうちの各ドメイン内に収容されているのがLTMである。LTMは、例えば、ドメイン108に関連付けられたLTM109、ドメイン107に関連付けられたLTM118、又はドメイン113に関連付けられたLTM117とすることができる。これらのLTMのうちの1つの各々に作動的に接続されるのが、複数のサーバである。この作動的接続は、物理的又は論理的な接続とすることができる。
例えば、LTM118に接続されているのが、サーバ119、サーバ120、及びサーバ121である。更に、例えば、LTM109に作動的に接続されているのが、サーバ110、サーバ111及びサーバ112である。更に、LTM117に作動的に接続されているのが、サーバ114、サーバ115、及びサーバ116である。一部の例示的な実施形態では、GTM103は、ネットワークトラフィック102を取り、LTM109、117、及び118の各々の間で実際にネットワークトラフィック102を均衡させることができる。例えば、ネットワークトラフィック104は、LTM109によって受信され、次に、サーバ110、111、又は112の1つ又はそれよりも多くに送信される。同様に、ネットワークトラフィック105は、引き続いて均衡されてサーバ114、115、又は116に送信されるように、GTM103によってLTM117に送信することができる。更に、ネットワークトラフィック106は、均衡化されてサーバ119、120、又は121に送信されるように、GTM103によってLTM118に送信することができる。一部の例示的な実施形態では、ドメイン108、113、及び107の各々は、負荷均衡プールを構成することができる。一部の例示的な実施形態では、GTMのサービスを受けるドメイン及び関連付けられたLTMの全てがまとまって、負荷均衡プールを構成することができる。
一部の例示的な実施形態では、更に別のドメイン122が示されており、このドメイン122は、例えば、AS、エリア、又は何らかの他の適切なドメインとすることができる。このドメイン122内に包含されているのが、例えば、サーバ123、サーバ124、及びサーバ125のような複数の利用可能な予備ハードウエアデバイスである。一部の例示的な実施形態では、これらのサーバ123から125は、例えば、ドメイン107、108、又は113に常駐しているサーバを補うのに必要に応じて利用することができる。
一部の例示的な実施形態では、これらのサーバ123から125は、ネットワークトラフィック102を処理するための付加的なシステムリソース及び容量を提供することができる他のドメインを補うことができる。一部の例示的な実施形態では、IP持続性は、サーバに対する管理インタフェースに関連付けられたIPアドレスが、サーバを識別するためにLTMによって使用されるように、特定のサーバを識別する基準として使用される。一部の例示的な実施形態では、これらのサーバ110から112、114から116、及び119から121は、例えば、「セキュア・ソケット・レイヤ(SSL)」−「バーチャル・プライベート・ネットワーク(VPN)」サーバ(まとめてSSL−VPNサーバと呼ばれる)とすることができる。
一部の例示的な実施形態は、これらのサーバ110から112、114から116、及び119から121の各々を含むことができ、これらのリソースの使用に課せられるある一定の制限を有する。これらの制限は、例えば、どの時点においてもこれらのサーバの1つ又はそれよりも多くを利用することができるユーザ数に課せられる制限の形式を取ることができる。例えば、一部の実施形態では、ドメイン108に関わっているサーバ110から112は、これらの永続IPアドレスによって固有に識別される7、500の顧客に一度だけサービスを提供することができる。この制限の1つの要点は、LTM109が、例えば、特定のサーバに2、500のユーザを割り当てることしかできないということである。1サーバ当たりのこの制限(例えば、リミット変数)を超過した場合、例えば、ドメイン122に示されている利用可能な予備ハードウエア(例えば、サーバ123から125)が、付加的なシステムリソースをドメイン108に追加するためにオンラインになる。
図2は、利用可能な予備ハードウエアを利用しなくてはならないようなドメインリソースを超過した場合の例示的なシステム200の図である。このネットワークトラフィック201が、サーバ114から116に課せられたライセンス制約を超過した場合に、ネットワークトラフィック201をLTM117に割り当てるGTM103が示されている。
一部の例示的な実施形態では、ライセンス制約は、個人がサーバ114から116のようなサーバをどのように使用するかという制限を反映する記憶された法律上の義務である。
例えば、図示のように、サーバ116はその制限を超過しており、したがって、203で示すように負荷均衡プールから出される。一部の例示的な実施形態では、負荷均衡プールからサーバ116を出すことにより、サーバ203は、それ以上ユーザにサービス提供することができない。更に、サーバ116によって現在サービスを受けているユーザは、サーバ116を使用し続けることができるが、これらのユーザとサーバ116間に更に別のTCP接続は設定されない。ライセンスを超過するユーザ数のために、ドメイン122の一部として常駐しているサーバ123は、オンラインになり、そうでなければサーバ116に進むトラフィック202は、サーバ123に再経路指定される。
図3は、負荷均衡プールへのサーバの返却及び負荷均衡プールからの予備ハードウエアデバイスの除去を示す例示的なシステム300の図である。図示しているのは、例えば、このネットワークトラフィックがライセンス制約によって示された何らかの所定のリミット変数よりも下の同時利用ユーザ数を表しているネットワークトラフィック301である。同時利用ユーザ数が制限値よりも下である場合、サーバ116のような非予備ハードウエアデバイスが、オンラインに戻り、ネットワークトラフィック302のようなネットワークトラフィックを受信する。端的には、ネットワークトラフィック302は、以前利用されていたサーバ123から再経路指定され、サーバ116によって処理される。サーバ116が負荷均衡プールから出される場合と同様に、サーバ123は、その同時利用ユーザへのサービスを続けることができるが、付加的なTCP接続のサービスを提供することはできない。更に、バツ印303で示すように、サーバ123は、同時利用ユーザ数がライセンス制約によって示された何らかの所定のリミット変数よりも下の場合に負荷均衡プールから出される。
図4は、例示的なドメイン113及びこれに関わっているコンピュータシステムの図である。図示しているのは、一部の例示的な実施形態においてネットワークトラフィックを負荷均衡し、例えば、サーバ114、115、又は116に対する外部インタフェースにネットワークトラフィックを送るために使用することができる以前に参照されたLTM117である。これらの外部インタフェースを通じて、ネットワークトラフィック(以前に参照されたネットワークトラフィック105など)が受信される。1つの例示的な実施形態では、LTM117は、サーバ114、115、及び116の各々に均一にネットワークトラフィック105を均衡させることができる。このトラフィックは、例えば、物理的又は論理的接続を通じて送信される。一部の例示的な実施形態では、サーバ114は、管理インタフェース404を収容する。更に、サーバ115は、管理インタフェース405を収容することができる。同様に、サーバ116は、管理インタフェース406を収容することができる。SNMPは、一部の例示的な場合に、これらの管理インタフェース404から406にSNMPベースのメッセージを送信し、これらのインタフェースからメッセージを受信するために利用することができる。例えば、SNMPベースのメッセージ401から403は、例えば、サーバ114、115及び116から受信され、LTM117に送信される。これらのSNMPベースのメッセージにより、LTM117は、ネットワークトラフィック、及び特にサーバ114から116のいずれか1つを利用する同時利用ユーザ数をモニタすることができるようなる。これらのSNMPベースのメッセージをモニタすることにより、LTM117は、サーバ114から116の各々に対するリミット変数を超過した時間を知ることができる。このリミット変数を超過した場合、サーバ123から125のような利用可能な予備ハードウエアデバイスがオンラインになり、更に別のネットワーク及び/又はシステムリソースを提供することができる。
図5は、例示的なコンピュータシステム500のブロック図であり、このコンピュータシステム500は、例えば、LTM117のようなLTMとすることができる。図示しているのは、コンピュータシステム500の一部として常駐することができるいくつかのブロック501から508である。これらのブロックは、ハードウエア、ファームウエア、又はソフトウエアに実施することができる。図示しているのは、コンピュータシステムをトレーニングするためにスクリプトを受信する受信機501である。また、サーバに関連付けられた現在ユーザカウントを検索するための検索器502も示されている。更に、現在ユーザカウントがライセンス制約に説明したリミット変数を超過したかを判断するためにスクリプトを実行するスクリプト記述エンジン503が示されている。現在ユーザカウントがリミット変数を超過した場合、負荷均衡プールからサーバを取り除くか否かを判断するための負荷均衡プールエンジン504が示されている。一部の例示的な実施形態では、スクリプトは、Perlを含むスクリプト記述言語で書かれる。一部の例示的な実施形態は、LTM電気器具及びGTM電気器具の少なくとも一方を含む負荷均衡電気器具であるコンピュータシステムを含むことができる。一部の例示的な実施形態では、サーバは、負荷均衡電気器具からネットワークトラフィックを受信する。一部の例示的な実施形態は、コンピュータシステムを使用することができるユーザ数を含む数値であるリミット変数を含むことができる。
一部の例示的な実施形態では、コンピュータシステム500は、コンピュータシステムをトレーニングするためのスクリプトを受信する受信機505を含むことができる。更に、コンピュータシステム500は、サーバに関連付けられた現在ユーザカウントを検索するための検索器506を含むことができる。更に、余分の容量が負荷均衡プールに存在するか否かを判断するためのスクリプトを実行するスクリプト記述エンジン507が示されている。更に、現在ユーザカウントが、リミット変数とバッファ変数間の差よりも小さいか又はこれに等しい場合、サーバを負荷均衡プールに再導入するか否かを判断する負荷均衡プールエンジン508が示されている。一部の例示的な実施形態では、コンピュータシステム500は、LTM電気器具とGTM電気器具の少なくとも一方を含む負荷均衡電気器具である。一部の例示的な実施形態は、コンピュータシステムを使用することができるユーザ数を含む値であるリミット変数を含むことができる。一部の例示的な場合、バッファ変数は、リミット変数よりも小さい数値である。
図6は、負荷均衡プールにデバイスを追加するか又は負荷均衡プールからデバイスを取り除くために使用される例示的な方法600を示す流れ図である。図示しているのは、実行された時に、ユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション601である。オペレーション602を実行してアドレス識別子を別のアドレス識別子に対して比較し、デバイスのアイデンティティを判断することができる。
オペレーション603は、ユーザカウント情報をアドレス識別子に関連付け、更に、ユーザカウント情報をデータストアに記憶するために実行することができる。一部の例示的な実施形態では、ユーザカウント情報は、コンピュータシステムを現在使用しているユーザ数である。一部の例示的な実施形態は、コンピュータシステムインタフェースに対応するIPアドレスであるアドレス識別子を含むことができる。更に、一部の例示的な実施形態では、インタフェースは、管理インタフェースと外部インタフェースの少なくとも一方を含む。一部の例示的な場合、デバイスは、負荷均衡プールの一部である。
一部の例示的な実施形態では、方法600は、実行された時にユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション604を含むことができる。更に、リミット変数を超過したか否かを判断するためにユーザカウント情報を使用するオペレーション605を実行することができる。更に、オペレーション606は、メンバのリミット変数がユーザカウント情報によって超過した場合、負荷均衡プールからアドレス識別子によって識別されるメンバを取り除くために実行することができる。一部の例示的な実施形態では、リミット変数は、サーバを保護するライセンス制約の一部として定められており、サーバを使用することができるユーザ数を反映する。一部の例示的な実施形態は、サーバとしてメンバを含むことができる。一部の例示的な場合、負荷均衡プールは、部分的に、負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含む。ユーザカウントは、一部の例示的な実施形態では、特定の期間中にサーバを使用しているユーザ数を反映する数値である。
一部の例示的な実施形態では、方法600は、実行された時にユーザカウント値とアドレス識別子とを含むユーザカウント情報を受信するオペレーション607を含む。実行された時に、ユーザカウント情報が、リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しいかを判断するためにユーザカウント情報を使用するオペレーション608が示されている。更に、実行された時に、ユーザカウント情報が、リミット変数値とバッファ変数間の差よりも小さいか又はこれに等しい場合にデバイスを負荷均衡プールに導入するオペレーション609が示されている。一部の例示的な実施形態では、バッファ変数は、リミット変数よりも小さいユーザ数を反映する数値である。一部の例示的な実施形態は、サーバを保護するライセンス制約の一部として定められたリミット変数を含むことができ、サーバを使用することができるユーザ数を反映する。更に、一部の例示的な実施形態では、デバイスは、サーバを含む予備ハードウエアデバイスである。更に、一部の例示的な実施形態では、負荷均衡プールは、部分的に、負荷均衡電気器具からネットワークトラフィックを受信する複数のサーバを含む。
図7は、例えば、LTM117、118、又は119のようなLTM上で実行される例示的な方法700を示す流れ図である。図示しているのは、均衡化スクリプト701である。一部の例示的な実施形態では、このスクリプトは、Perl、Python、「Java(登録商標) Script」、又は何らかの他の適切なスクリプト記述言語のようなスクリプト記述言語の何らかのタイプで書くことができる。このスクリプトは、オペレーション702の実行によって受信される。オペレーション703は、各接続したデバイスに対する現在ユーザカウント値及びIPアドレスを検索するために実行される。接続したデバイスは、例えば、サーバ114から116とすることができる。IPマッピングを使用して、管理インタフェースに関連付けられたIPアドレスが、特定の接続したデバイス(例えば、サーバ116)に対する外部インタフェースに関連付けられたIPアドレスにマップされる。このデバイス(例えば、サーバ116)に対する現在ユーザカウントは、次に、マッピング表704に記憶される。一部の例示的な実施形態では、利用可能な予備ハードウエアデバイス123から125の1つ又はそれよりも多くが、負荷均衡の目的のために付加的なシステムリソースを提供するようにオンラインになる必要があるか否かをLTMに指示する均衡化スクリプト701を実施するオペレーション705が実行され、均衡化スクリプト701は、各接続したデバイスに対する現在ユーザカウント値を使用する。一部の例示的な実施形態では、スクリプト701は、どのデバイスを負荷均衡プールから取り除くべきかをLTMに指示することができる。判断オペレーション706は、一部の例示的な実施形態では、リミット変数を超過したか否かを判断するために実行することができる。このリミット変数は、いずれか1つの特定の接続したデバイス(例えば、サーバ114から116)がどの時点においてもサービスを提供することができる同時利用ユーザ数に課せられたある一定のライセンス制約によって設定される。判断オペレーション706が「真」であると認めた場合、利用可能な予備ハードウエアデバイスをアクティブメンバとして負荷均衡プールに追加するオペレーション707が実行される。これらのハードウエアデバイス(例えば、サーバ114から116)に課せられた制限値が、同時利用ユーザ数に基づいて超過した場合、メンバとして均衡プールから様々なハードウエアデバイスを取り除くことができるオペレーション708が実行される。判断オペレーション706が「偽」であると認めた場合、特定の負荷均衡プールに余分の容量が存在するか否かを判断する更に別の判断オペレーション709が実行される。判断オペレーション709が「偽」であると認めた場合、終了条件799が実行される。判断オペレーション709が「真」であると認めた場合、予備デバイスが負荷均衡プールのメンバであることを取り除く更に別のオペレーション710が実行される。一部の例示的な実施形態では、前に取り除かれたデバイスを負荷均衡プールに戻すオペレーション711が実行される。
図8は、例示的な方法703を示す二重ストリーム流れ図である。図示しているのは、オペレーション801、806、807、及び809を収容する第1ストリームである。
この第1ストリームの一部としてマッピング表704が示されている。一部の例示的な実施形態では、これらのオペレーション801、806、807、及び809、及びマッピング表704は、LTM117の一部として常駐している。更に、オペレーション802、803、及び805、及び現在ユーザカウント表804を収容する第2ストリームが示されている。これらの様々なオペレーション802、803、及び805、及び現在ユーザ表804は、例えば、サーバ116の一部として常駐することができる。1つの例示的な実施形態では、負荷均衡プールの一部であるデバイスに問い合わせるオペレーション801が実行される。これらのデバイスは、例えば、以前に示したサーバ114から116とすることができる。オペレーション802は、実行された時、SNMPベースのメッセージ要求810の形式でユーザカウント問合せを受信する。オペレーション803は、現在ユーザカウント表804から現在ユーザアカウント情報を検索することに関して実行される。LTM117によって受信される管理インタフェース406のような管理インタフェースを通じてこの現在ユーザカウント情報を送信するオペレーション805が実行される。一部の例示的な実施形態は、ユーザカウント情報を包含し、更に管理インタフェース及び接続したデバイス(例えば、サーバ116)に関連付けられたIPアドレスを識別するSNMPベースのメッセージを受信するために実行されるオペレーション806を含むことができる。オペレーション807は、SNMPベースのメッセージから管理インタフェースに関連付けられたIPアドレスを構文解析するために実行される。この同じオペレーション807は、一部の例示的な実施形態では、ユーザカウント情報を構文解析することができる。更に、このオペレーション807は、次に、管理インタフェースに関連付けられたIPアドレスをサーバ116のようなデバイスに対する外部インタフェースに関連付けられたIPアドレスにマップすることができる。マップされた状態で、サーバ116のような特定のデバイスに対するユーザカウント値をマッピング表704に記憶するオペレーション809が実行される。
図9は、オペレーション706を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、例えば、SNMPベースのメッセージ(例えば、SNMPベースメッセージ401から403を参照)からユーザカウント値を受信するオペレーション901である。ユーザカウント値が、サーバ116のような特定のサーバに対する同時利用ユーザライセンス制約を定めるリミット変数よりも大きいか又はこれに等しいか否かを判断する判断オペレーション902が実行される。判断オペレーション902が「偽」であると認めた場合、偽信号を送信するオペレーション903が実行される。判断オペレーション902が「真」であると認めた場合、真信号を送信するオペレーション904が実行される。
図10は、オペレーション709を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、実行された時に偽信号を受信するオペレーション1001である。リミット変数よりも小さいか又はこれに等しくなくてはならない再入場値よりも現在ユーザカウント値が小さいか又は等しいかを判断する判断オペレーション1002が実行される。一部の例示的な実施形態では、再入場値は、リミット変数と手動で定められたバッファ値間の差に基づいている。この手動で定められたバッファ値は、LTMの構成中にネットワーク管理者又は他の適切な個人によって定められる。再入場値は、リミット変数値付近で停止しているネットワークトラフィックのためにデバイスが連続して負荷均衡プールに入り及び負荷均衡プールから出ないことを保証するのに使用される。一部の例示的な実施形態では、現在ユーザカウント値は、サーバ114のような特定のデバイスを同時に利用しているユーザ数とすることができる。再入場値は、サーバ116のようなデバイスが負荷均衡プールに再度入ることができる時間を示すために使用される何らかのタイプの所定の値とすることができる。判断オペレーション1002が「偽」であると認めた場合、偽信号を送信する更に別のオペレーション1003が実行される。判断オペレーション1002が「真」であると認めた場合、真信号を送信する更に別のオペレーション1004が実行される。
図11は、オペレーション707を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、予備デバイス又は複数の予備デバイスに負荷均衡プールのメンバとしてのフラグを立てるオペレーション1101である。オペレーション1102は、実行された時、サーバ123から125のような予備デバイスに関連付けられたスクリプトを有効にする。このスクリプトにより、予備デバイスはユーザへのサービスを開始することができる。サーバ116のような特定のデバイスが、実際には負荷均衡プールのメンバであるということを記載した情報により、マッピング表704のようなマッピング表を更新するオペレーション1103が実行される。
図12は、オペレーション708を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、フラグの除去が、負荷均衡プールのメンバがもはやメンバでないことを示す場合、デバイスに関するマッピング表709におけるフラグ値を除去するオペレーション1201である。一部の例示的な実施形態では、このフラグ値は、ブール値である。一部の例示的な実施形態では、特定のデバイスがもはや負荷均衡プールの一部でないことがマッピング表704に示されるようなフラグの除去により、マッピング表704を更新するオペレーション1202が実行される。
図13は、オペレーション710を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、負荷均衡プールのメンバとしてのデバイスからフラグを取り除くオペレーション1301である。オペレーション1302は、サーバ123から125のような予備デバイスの1つを実行するのに使用されるスクリプトを無効にするように実行される。スクリプトを無効にされたデバイスが、もはや負荷均衡プールのメンバでないという情報によってマッピング表704を更新するオペレーション1303が実行される。
図14は、オペレーション711を実行するのに使用される例示的な方法を示す流れ図である。図示しているのは、負荷均衡プールから以前取り除かれたデバイスを再度負荷均衡プールのメンバにすることができるというフラグをマッピング表704に立てるオペレーション1401である。オペレーション1402は、一部の例示的な実施形態においてネットワークトラフィックを受信することができるように、以前取り除かれたデバイスが再度負荷均衡プールのメンバになるようにマッピング表704を更新するために実行される。
図15は、デバイスを負荷均衡プールのメンバにすべきか否か、又はデバイスを負荷均衡プールから取り除くべきか否かを判断するために使用される例示的な方法1500を示す流れ図である。図示しているのは、複数のオペレーション1501から1505、及びデータ記述1506から1508である。これらの様々なオペレーションは、LTM117の一部として常駐することができる。図示しているのは、時間順のジョブ(例えば、「Cron Job」)が何らかの所定のスケジュールに基づいてスクリプトを始めるオペレーション1501である。一部の例示的な実施形態では、均衡化スクリプト701は、30秒、60秒、90秒毎に、又は何らかの他の適切な時間間隔で実行されるように何らかの所定のスケジュールに基づいて実行される。LTM117に接続することができるサーバ114から116のような特定のデバイスに対する同時利用ユーザカウントを判断するためにSNMPポールを実行するオペレーション1502が実行される。例えば、プールメンバナンバー1(1503)、プールメンバナンバー2(1504)、及びプールメンバナンバーN(1505)が示されている。これらのプールメンバ1503から1505の各々によって生成されるのが、データ1506から1508の形式のデータであり、例えば、データ1506は、プールメンバナンバー1(1503)に対する同時利用ユーザアカウント値である。更に、データ1507は、プールメンバナンバー2(1504)に対する同時利用ユーザアカウント値1507である。更に、データ1508は、プールメンバナンバーN(1505)に対する同時利用ユーザアカウント値である。以下に更に詳しく説明するように、これらの様々なデータ値1506から1508は、リミット変数を超過したか否かに関する判断を実行するために処理される。
図16は、例えば、サーバ114から116のような特定のデバイスを負荷均衡プールから取り除き、更に、付加的な利用可能な予備ハードウエアデバイス(例えば、サーバ123から125)を負荷均衡プールに導入すべきか否かを判断するために使用される例示的な方法1600を示す流れ図である。図示しているのは、例えば、LTM117の一部として常駐することができる様々なオペレーション1601から1606である。現在ユーザアカウント値がある一定のリミット変数又はこのリミット変数を超過したか否かを判断する判断オペレーション1601が示されている。判断オペレーション1601が「真」であると認めた場合、プールメンバがもうこれ以上付加的なユーザを受け入れないようにプールメンバのスクリプトを無効にするオペレーション1602が実行される。しかし、プールメンバは、プールメンバと、様々なユーザ及びユーザによって利用されるコンピュータシステムとの間に存在する様々なTCP接続のサービスを提供し続けることができる。次に、終了条件として機能するオペレーション1606が実行される。
判断オペレーション1601が「偽」であると認める例示的な場合、更に別の判断オペレーション1605が実行される。この判断オペレーション1605は、例えば、現在ユーザカウント値が、リミット変数と有効化ドバッファ変数間の差よりも小さいか又はこれに等しいかを判断することができる。一部の例示的な実施形態では、リミット変数は、例えば、サーバ114から116のような特定のデバイスのサービスを受ける同時利用ユーザ数に特定のライセンスによって課せられた制約とすることができる。一部の例示的な実施形態では、有効化ドバッファ変数は、例えば、新しい同時利用ユーザとこれらのユーザによって生成された関連のTCP接続とを処理するためにサーバ114から116によって利用されるバッファに存在することができる自由空間の量を示すネットワーク管理者によって判断された何らかのタイプの変数とすることができる。判断オペレーション1605が「真」であると認めた場合、更に別の判断オペレーション1604が実行される。一部の例示的な実施形態では、判断オペレーション1604は、プールメンバのステータスを判断することができる。判断オペレーション1604が「真」であると認め、更に、プールメンバのステータスが無効であると判断された場合には、オペレーション1603が実行される。オペレーション1603は、実行された時、以前に無効されたプールメンバをアクティブになるように有効にすることができ、これらに付加的な同時利用ユーザ及びその関連付けられたTCP接続を処理させることができる。判断オペレーション1604が「偽」であると認めた場合、以前に参照されたオペレーション1606が実行される。
判断オペレーション1605が「偽」であると認めた場合、再度以前に参照されたオペレーション1606が実行される。
図17は、例えば、マッピング表704内に含まれる様々な表の図である。図示しているのは、例えば、いくつかの列を収容するマッピング表704の一部として常駐しているマッピング表である。これらの列は、例えば、ユーザカウント列1701、マネージャインタフェースアドレス列1702、外部インタフェースアドレス列1703、及びプールのメンバ列1704を含む。ユーザカウント列1701に関して、特定のデバイスに対するユーザカウントが示されている。これらのユーザカウントは、このデバイスがその永続IPアドレスによって識別することができる場合の特定のデバイスに対する同時利用ユーザ数である。これらのデバイスは、例えば、サーバ114から116を含む。列1702に関して、いくつかの管理インタフェースIPアドレスが示されている。これらの管理インタフェースアドレスは、例えば、永続IPアドレスとすることができる。列1703内に付加的な永続IPアドレスが示されているが、ここでは、ある一定のデバイスに対する外部インタフェースアドレスを表している。列1704内には、サーバ114から116のような特定のデバイスが負荷均衡プールのメンバであるか否かを示すプールメンバに対するフラグが示されている。同時利用ユーザカウント値がリミット変数値を超過する例示的な場合、ライセンス制約によって指示されたように、プールメンバ列1704内に包含されたブール値が「偽」に設定される。特に、列704に包含された値が「偽」に設定された場合、サーバ114から116のようなデバイスは、もはやプールのメンバとしては考えられず、したがって、例えば、ネットワークトラフィック105、104、又は106のようなネットワークトラフィックはそれ以上送信されない。しかし、ユーザカウント値がライセンス制約によって指示されるリミット変数値よりも下である場合、プールメンバ列1704内に包含されたブール値は、そのデバイス(例えば、サーバ114から116)がネットワークトラフィックを受信することができることを示す「真」に設定される。
3層アーキテクチャ
一部の例示的な実施形態では、3層アーキテクチャパラダイムの下で設計された分散又は非分散ソフトウエアアプリケーションで実行される方法が示されており、それによって本方法を実行するコンピュータコードの様々なコンポーネントは、これらの3層の1つ又はそれよりも多くに属するものとして分類することができる。一部の例示的な実施形態は、アプリケーション処理から比較的自由であるインタフェース(例えば、インタフェース層)として第1層を含むことができる。更に、第2層は、インタフェースレベルを通じて入力されたデータの論理的/数学的操作の形式でのアプリケーション処理を実行し、これらの論理的/数学的操作の結果は、インタフェース層、及び/又はバックエンド又は記憶層に伝達される論理層とすることができる。これらの論理的/数学的操作は、全体としてソフトウエアアプリケーションを管理するいくつかのビジネス規則又は処理に関するものとすることができる。第3記憶層は、永続記憶媒体又は非永続記憶媒体とすることができる。一部の例示的な場合、これらの層の1つ又はそれよりも多くは、別の層に分解することができ、結果として、2層アーキテクチャ又は1層アーキテクチャをもたらす。例えば、組込みデータベースを備えたソフトウエアアプリケーションの場合のように、インタフェース及び論理層を統合することができ、又は論理及び記憶層を統合することができる。
この3層アーキテクチャは、1つの技術を使用して達成することができ、又は以下に説明するように様々な技術を使用して達成することができる。この3層アーキテクチャ及びこれが達成される技術は、サーバ/クライアント、ピア・ツー・ピア、又は何らかの他の適切な構成に組織された2つ又はそれよりも多くのコンピュータシステム上で実行することができる。更に、これらの3層は、様々なソフトウエアコンポーネントとして1つよりも多いコンピュータシステム間に分散させることができる。
コンポーネントの設計
一部の例示的な実施形態は、上述の層、及び1つ又はそれよりも多くのソフトウエアコンポーネントとして書かれる場合にこれらを作り上げる処理又はオペレーションを含むことができる。これらのコンポーネントの多くに共通することは、データを生成し、使用し、更に操作するための機能である。これらのコンポーネント及び各々に関連付けられた機能は、クライアント、サーバ、又はピアコンピュータシステムによって使用される。これらの様々なコンポーネントは、必要に応じてコンピュータシステムによって実施される。
これらのコンポーネントは、コンポーネント指向又はオブジェクト指向のプログラミング技術が「ビジュアル・コンポーネント・ライブラリ(VCL)」、「コンポーネント・ライブラリ・フォー・クロス・プラットフォーム(CLX)」、「ジャバ・ビーンズ(JB)」、「ジャバ・エンタープライズ・ビーンズ(EJB)」、「コンポーネント・オブジェクト・モデル(COM)」、「ディストリビューテッド・コンポーネント・オブジェクト・モデル(DCOM)」、又は他の適切な技術を使用して達成されるようにオブジェクト指向コンピュータ言語で書かれる。これらのコンポーネントは、様々な「アプリケーション・プログラミング・インタフェース(API)」を通じて他のコンポーネントに連結され、次に、1つの完全なサーバ、クライアント、及び/又はピアソフトウエアアプリケーションにコンパイルされる。更に、これらのAPIは、分散コンピュータコンポーネントとして様々な分散プログラミングプロトコルを通じて通信することができる。
分散コンピュータコンポーネント及びプロトコル
一部の例示的な実施形態は、分散コンピュータコンポーネントとして分散プログラミング環境にわたって上述のコンポーネントの1つ又はそれよりも多くを実施するのに使用されるリモート手順呼び出しを含むことができる。例えば、インタフェースコンポーネント(例えば、インタフェース層)は、論理コンポーネント(例えば、論理層)を収容する第2コンピュータシステムから遠隔に位置する第1コンピュータシステムに存在することができる。これらの第1及び第2コンピュータシステムは、サーバ・クライアント、ピア・ツー・ピア、又は何らかの他の適切な構成に構成することができる。これらの様々なコンポーネントは、上述のオブジェクト指向のプログラミング技術を使用して書かれ、同じプログラミング言語又は異なるプログラミング言語で書くことができる。様々なプロトコルは、これらの様々なコンポーネントが、これらのコンポーネントを書くために使用されたプログラミング言語に関わらず通信することができるように実施される。例えば、C++で書かれたコンポーネントは、「コモン・オブジェクト・リクエスト・ブローカー・アーキテクチャ(CORBA)」、「シンプル・オブジェクト・アクセス・プロトコル(SOAP)」、又は何らかの他の適切なプロトコルのような分散コンピュータプロトコルを使用してジャバプログラミング言語で書かれた別のコンポーネントと通信することができる。一部の例示的な実施形態は、OSIモデル、又はデータを送信するためにネットワークによって使用されるプロトコルを定めるためのTCP/IPプロトコルスタックモデルで説明された様々なプロトコルを備えたこれらのプロトコルの1つ又はそれよりも多くの使用を含むことができる。
サーバとクライアント間の送信のシステム
一部の例示的な実施形態は、「オープン・システムズ・インターコネクション(OSI)」基本基準モデル、又はデータを送信するためにネットワークによって使用されるプロトコルを定めるための送信制御プロトコル/インターネットプロトコル(TCP/IP)プロトコルスタックモデルを使用することができる。これらのモデルを用いる場合、サーバとクライアント間、又はピアコンピュータシステム間のデータ送信のシステムは、アプリケーション層、トランスポート層、ネットワーク層、データリンク層、及び物理層を含む一連の大まかな5つの層として示される。3層アーキテクチャを有するソフトウエアの場合、様々な層(例えば、インタフェース、論理、及び記憶層)が、TCP/IPプロトコルスタックのアプリケーション層に常駐する。TCP/IPプロトコルスタックモデルを使用する例示的な実施例では、アプリケーション層に常駐しているアプリケーションからのデータが、トランスポート層に常駐しているTCPセグメントのデータ負荷フィールドに負荷される。このTCPセグメントは、遠隔に存在している受信者ソフトウエアアプリケーションに対するポート情報を収容する。このTCPセグメントは、ネットワーク層に常駐しているIPデータグラムのデータ負荷フィールドに負荷される。次に、このIPデータグラムは、データリンク層に常駐しているフレームに負荷される。次に、このフレームは、物理層で符号化され、データは、「インターネット」、「ローカルエリアネットワーク(LAN)」、「ワイドエリアネットワーク(WAN)」、又は何らかの他の適切なネットワークのようなネットワーク上で送信される。一部の例示的な場合、「インターネット」は、複数のネットワークの1つのネットワークを指す。これらのネットワークは、上述のTCP/IP、及び付加的にATM、SNA、SDI、又は何らかの他の適切なプロトコルを含むデータの交換のための様々なプロトコルを使用することができる。これらのネットワークは、様々なトポロジー(例えば、スター・ポロジー)又は構造内で組織することができる。
コンピュータシステム
図18は、本明細書に説明する方法のいずれか1つ又はそれよりも多くを機械に実行させるための1組の命令を実行することができるコンピュータシステム1800の例示的な形式における機械の図式表示を示している。他の実施形態では、機械は、独立型デバイスとして作動するか、又は他の機械に接続することができる(例えば、ネットワーク)。ネットワーク化された配置では、機械は、サーバ・クライアントネットワーク環境におけるサーバ又はクライアント機械の資格で、又はピア・ツー・ピア(又は分散)ネットワーク環境におけるピア機械として作動させることができる。機械は、「パーソナルコンピュータ(PC)」、タブレットPC、「セット−トップボックス(STB)」、「携帯情報端末(PDA)」、携帯電話、ウェブ電気器具、ネットワークルータ、スイッチ又はブリッジ、又はその機械によって取られる作動を指定する1組の命令(連続又はそれ以外)を実行することができるあらゆる機械とすることができる。更に、単一の機械だけが示されているが、「機械」という語は、本明細書に説明する方法のいずれか1つ又はそれよりも多くを実行するために1組(又は複数の組)の命令を個々に又は一緒に実行する機械のあらゆる集合を含むものと解釈される。例示的な実施形態は、ネットワーク上で連結されている(例えば、有線、無線、又は有線及び無線接続の組合せのいずれかにより)ローカル及びリモートコンピュータシステムがタスクを実行する分散システム環境に実施される。分散システム環境では、プログラムモジュールは、ローカル及びリモートのメモリ記憶デバイスの両方に位置決めすることができる(以下を参照)。
例示的なコンピュータシステム1800は、バス1808を通じて互いに通信するプロセッサ1802(例えば、「中央演算処理装置(CPU)」、「グラフィック処理ユニット(GPU)」、又は両方)、主メモリ1801、及び静的メモリ1806を含む。コンピュータシステム1800は、ビデオディスプレイユニット1810(例えば、「液晶ディスプレイ(LCD)」又は「ブラウン管(CRT)」)を更に含むことができる。コンピュータシステム1800は、英数字入力デバイス1817(例えば、キーボード)、「ユーザインタフェース(UI)」カーソルコントローラ1811(例えば、マウス)、ディスク駆動ユニット1816、信号発生デバイス1818(例えば、スピーカ)、及びネットワークインタフェースデバイス(例えば、送信機)1820を含む。
ディスク駆動ユニット1816は、本明細書に示されている方法又は機能のいずれか1つ又はそれよりも多くを実行するか又はこれらによって利用される1つ又はそれよりも多くの組の命令、及びデータ構造(例えば、ソフトウエア)を記憶する機械可読媒体1822を含む。ソフトウエアは、機械可読媒体を構成しているコンピュータシステム1800、主メモリ1801、及びプロセッサ1802によるソフトウエアの実行中に、主メモリ1801内及び/又はプロセッサ1802内に完全に又は少なくとも部分的に常駐することができる。
命令1821は、更に、いくつかの公知の転送プロトコル(例えば、「ハイパーテキスト転送プロトコル(HTTP)」、「セッションイニシエーションプロトコル(SIP)」)のいずれか1つを使用してネットワークインタフェースデバイス1823を通じてネットワーク1826を通じて送信又は受信される。
一部の例示的な実施形態では、取外し可能物理記憶媒体は、単一の媒体として示されており、「機械可読媒体」という語は、1つ又はそれよりも多くの組の命令を記憶する単一の媒体又は複数の媒体(例えば、集中化又は分散データベース、及び/又は関連付けられたキャッシュ及びサーバ)を含むものと解釈される。「機械可読媒体」という語は、機械による実行のための1組の命令を記憶し、符号化し、又は搬送することができ、更に、本明細書に示す方法の1つ又はそれよりも多くのいずれかを機械に実行させるあらゆる媒体を含むものと解釈される。「機械可読媒体」という語は、したがって、以下に限定されるものではないが、固体メモリ、光及び磁気媒体、及び搬送波信号を含むものと解釈される。
市場用途
一部の例示的な実施形態では、リソースをこのネットワークに追加するために利用可能な予備ハードウエアデバイスをネットワークに追加することができる。一部の例示的な場合、このハードウエアの追加は、ネットワークの所有者に付加的なコストを負わせる場合がある。これらのコストは、負荷均衡プール及びそれに関連付けられたリソースを増すために実際に付加的な予備ハードウエアを借りることに関連したコストから発生する。例えば、利用可能な予備ハードウエアが長く使用される程、コストが増大する。これらのコストを制限するための1つの方法は、必要な期間だけ利用可能な予備ハードウエアデバイスを使用することである。この利用可能な予備ハードウエアデバイスは、新しいユーザを処理するための負荷均衡プールの容量が超過した場合にのみ必要とされる。
本発明の開示の要約は、読者が技術的な開示の性質を迅速に確認することを可能にする要約を要求する37「C.F.R.」§1.72(b)に従って提供されたものである。
本発明の開示の要約が特許請求の範囲又は意味を解釈又は制限するように使用されるものではないという了解の下で、本発明の開示の要約は提出されている。更に、上述の詳細説明では、様々な特徴が本発明の開示を簡素化する目的のために単一の実施形態に一緒にまとめられていることが分る。この開示の方法は、請求する実施形態が各請求項に明確に記載されるよりも多くの特徴を必要とする意図を反映するものとして解釈すべきではない。
逆に、特許請求の範囲が反映するように、本発明の主題は、単一の開示する実施形態の全ての特徴に満たないものに存在する。したがって、以下の特許請求の範囲は、ここに詳細説明に組み込まれるものとし、各請求項は、別々の実施形態として独立するものとする。
100、200、300 システム
101 ネットワーク
102、104、105、106 ネットワークトラフィック
107、108、113、122 ドメイン

Claims (15)

  1. コンピュータ実施式方法であって、
    受信機が、複数のデバイスの負荷均衡プールから以前に除去されたデバイスから、該デバイスのサービスを受けているユーザ数を表すユーザカウント値を受信する段階と、
    プロセッサが、前記ユーザカウント値がリミット変数とバッファ変数間の差よりも小さいか又はこれに等しいかを判断する段階であって、前記リミット変数が前記デバイスのサービスを同時に受けることができる最大のユーザ数を表し且つ前記バッファ変数が前記リミット変数よりも小さいユーザ数を表す段階と、
    プロセッサが、前記ユーザカウント値が前記リミット変数と前記バッファ変数間の前記差よりも小さいか又はこれに等しいのに応答して、前記デバイスを前記負荷均衡プールに再導入する段階と、
    を含むことを特徴とする方法。
  2. 前記デバイスは、以前のユーザカウント値が前記リミット変数を超えるのに応答して前記負荷均衡プールから以前に除去されたことを特徴とする請求項1に記載のコンピュータ実施式方法。
  3. 前記リミット変数は、前記デバイスを保護するライセンス制約によって定められることを特徴とする請求項1に記載のコンピュータ実施式方法。
  4. プロセッサが、前記負荷均衡プールから以前に除去された前記デバイスに関連して前記負荷均衡プールに以前に追加された予備ハードウエアデバイスを、前記負荷均衡プールから除去する段階であって、前記予備ハードウエアデバイスが、前記ユーザカウント値が前記リミット変数と前記バッファ変数間の前記差よりも小さいか又はこれに等しいのに応答して、前記負荷均衡プールから除去される段階を更に含むことを特徴とする請求項1に記載のコンピュータ実施式方法。
  5. 前記負荷均衡プールは、複数のユーザに関連するネットワークトラフィックを受信する複数のサーバを含むことを特徴とする請求項1に記載のコンピュータ実施式方法。
  6. コンピュータシステムであって、
    実行時に負荷均衡オペレーションを実施するスクリプトを受信するように構成された受信機と、
    複数のデバイスの負荷均衡プールから以前に除去されたデバイスから、該デバイスのサービスを受けているユーザ数を表す現在ユーザカウントを検索するように構成された検索器と、
    前記スクリプトを実行して、前記現在ユーザカウントがリミット変数とバッファ変数間の差よりも小さいか又はこれに等しいかを判断するように構成されたスクリプトエンジンであって、前記リミット変数が前記デバイスのサービスを同時に受けることができる最大のユーザ数を表し且つ前記バッファ変数が前記リミット変数よりも小さいユーザ数を表すスクリプトエンジンと、
    前記現在ユーザカウントが前記リミット変数と前記バッファ変数間の差よりも小さいか又はこれに等しいのに応答して、前記デバイスを前記負荷均衡プールに再導入するように構成された負荷均衡プールエンジンと、
    を含むことを特徴とするコンピュータシステム。
  7. 前記コンピュータシステムは、前記負荷均衡プールの複数のデバイスの間でネットワークトラフィックを均衡させるように構成された「ローカル・トラフィック・マネージャ(LTM)」電気器具及び前記負荷均衡プールに対応するLTMを含む複数のLTMの間でネットワークトラフィックを均衡させるように構成された「グローバル・トラフィック・マネージャ(GTM)」電気器具のグループのうちの少なくとも一方を含む負荷均衡電気器具であることを特徴とする請求項6に記載のコンピュータシステム。
  8. 前記予備ハードウエアデバイスは、前記負荷均衡プールから除去された後も現在ユーザにサービスを行い続けるように構成されたことを特徴とする請求項4に記載のコンピュータ実施方法。
  9. 前記デバイスは、前記負荷均衡プールから以前に除去された後も現在ユーザにサービスを行い続けるように構成されたことを特徴とする請求項2に記載のコンピュータ実施方法
  10. 前記デバイスは、以前のユーザカウントが前記リミット変数を超えるのに応答して前記負荷均衡プールから以前に除去されたことを特徴とする請求項6に記載のコンピュータシステム。
  11. 前記デバイスは、前記負荷均衡プールから以前に除去された後も現在ユーザにサービスを行い続けるように構成されたことを特徴とする請求項10に記載のコンピュータシステム。
  12. 前記リミット変数は、前記デバイスを保護するライセンス制約によって定められることを特徴とする請求項6に記載のコンピュータシステム。
  13. 更に、前記負荷均衡プールから以前に除去された前記デバイスに関連して該負荷均衡プールに以前に追加された予備ハードウエアデバイスを、該負荷均衡プールから除去するよう構成され、前記予備ハードウエアデバイスが、前記現在ユーザカウントが前記リミット変数と前記バッファ変数間の前記差よりも小さいか又はこれに等しいのに応答して、前記負荷均衡プールから除去されるように構成されたことを特徴とする請求項6に記載のコンピュータシステム。
  14. 前記予備ハードウエアデバイスは、前記負荷均衡プールから除去された後も現行ユーザにサービスを行い続けるように構成されたことを特徴とする請求項13に記載のコンピュータシステム。
  15. 前記負荷均衡プールは、複数のユーザに関連するネットワークトラフィックを受信する複数のサーバを含むことを特徴とする請求項6に記載のコンピュータシステム。
JP2013112742A 2007-10-03 2013-05-29 パンデミックリモートアクセス設計 Active JP5706468B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97733007P 2007-10-03 2007-10-03
US60/977,330 2007-10-03

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010527946A Division JP5323844B2 (ja) 2007-10-03 2008-09-24 パンデミックリモートアクセス設計

Publications (2)

Publication Number Publication Date
JP2013164875A JP2013164875A (ja) 2013-08-22
JP5706468B2 true JP5706468B2 (ja) 2015-04-22

Family

ID=40524127

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010527946A Expired - Fee Related JP5323844B2 (ja) 2007-10-03 2008-09-24 パンデミックリモートアクセス設計
JP2013112742A Active JP5706468B2 (ja) 2007-10-03 2013-05-29 パンデミックリモートアクセス設計

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010527946A Expired - Fee Related JP5323844B2 (ja) 2007-10-03 2008-09-24 パンデミックリモートアクセス設計

Country Status (4)

Country Link
US (1) US9531798B2 (ja)
EP (1) EP2201468B1 (ja)
JP (2) JP5323844B2 (ja)
WO (1) WO2009045298A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009045298A1 (en) 2007-10-03 2009-04-09 Virtela Communications, Inc. Pandemic remote access design
US8495218B1 (en) * 2011-01-21 2013-07-23 Google Inc. Managing system resources
US8732268B2 (en) * 2011-04-19 2014-05-20 Microsoft Corporation Global traffic management using modified hostname
US9405887B2 (en) * 2011-12-08 2016-08-02 Verizon Patent And Licensing Inc. Limiting concurrent viewing sessions on multiple user devices
US20140281434A1 (en) * 2013-03-15 2014-09-18 Carlos Madriles Path profiling using hardware and software combination
CN105205231B (zh) * 2015-09-06 2018-11-09 中国电力科学研究院 一种基于dcom的配电网数字仿真系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
JPH1139267A (ja) * 1997-07-23 1999-02-12 Hitachi Software Eng Co Ltd サーバシステムの負荷分散方法
US7716348B1 (en) * 1999-09-03 2010-05-11 Safenet, Inc. License management system and method with license balancing
JP2001117896A (ja) * 1999-10-18 2001-04-27 Sony Corp 負荷情報管理システム
US7590739B2 (en) * 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US6757362B1 (en) * 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
JP4040234B2 (ja) 2000-03-27 2008-01-30 ローム株式会社 ネットワークシステム
US6763372B1 (en) * 2000-07-06 2004-07-13 Nishant V. Dani Load balancing of chat servers based on gradients
US7082521B1 (en) * 2000-08-24 2006-07-25 Veritas Operating Corporation User interface for dynamic computing environment using allocateable resources
JP2002163241A (ja) 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
JP2003178040A (ja) * 2001-12-10 2003-06-27 Hitachi Information Systems Ltd ウェブサイトの構成決定支援方法
JP2003323224A (ja) 2002-04-30 2003-11-14 Daikin Ind Ltd ライセンス管理システムおよび方法、情報処理装置および方法、並びにプログラム
US7430616B2 (en) * 2002-09-16 2008-09-30 Clearcube Technology, Inc. System and method for reducing user-application interactions to archivable form
US20090299791A1 (en) * 2003-06-25 2009-12-03 Foundry Networks, Inc. Method and system for management of licenses
JP4323421B2 (ja) * 2004-12-22 2009-09-02 インスティチュート フォー インフォメイション インダストリ 分散仮想環境管理システムと方法
JP4287363B2 (ja) * 2004-12-24 2009-07-01 株式会社東芝 Ip電話システム、およびその通信制御方法
JP2006227963A (ja) 2005-02-18 2006-08-31 Fujitsu Ltd 多段負荷分散装置、方法及びプログラム
JP4919608B2 (ja) * 2005-03-02 2012-04-18 株式会社日立製作所 パケット転送装置
US7908314B2 (en) * 2005-03-23 2011-03-15 Hitachi, Ltd. Method for controlling a management computer
US7340744B2 (en) * 2005-04-08 2008-03-04 Cisco Technology, Inc. System and method for optimizing sessions and network resources in a loadbalancing environment
JP4663528B2 (ja) * 2006-01-12 2011-04-06 株式会社日立製作所 計算機割当システム
WO2009045298A1 (en) 2007-10-03 2009-04-09 Virtela Communications, Inc. Pandemic remote access design

Also Published As

Publication number Publication date
EP2201468A4 (en) 2014-10-08
WO2009045298A1 (en) 2009-04-09
EP2201468B1 (en) 2018-08-01
JP2010541096A (ja) 2010-12-24
EP2201468A1 (en) 2010-06-30
JP2013164875A (ja) 2013-08-22
JP5323844B2 (ja) 2013-10-23
US20090094176A1 (en) 2009-04-09
US9531798B2 (en) 2016-12-27

Similar Documents

Publication Publication Date Title
JP5706468B2 (ja) パンデミックリモートアクセス設計
US9961143B2 (en) Providing enhanced data retrieval from remote locations
JP4900982B2 (ja) サーバ・クラスタにおいてフェイルオーバを管理するための方法、フェイルオーバ・サーバ及びコンピュータ・プログラム
CN104145261B (zh) 使用发布订阅模型的身份提供者发现服务
US8380843B2 (en) System and method for determining affinity groups and co-locating the affinity groups in a distributing network
US20070011685A1 (en) Load balancer management
JP6061936B2 (ja) ロケーションニュートラルソフトウェアの需要増大に伴う展開に対するシステム及び方法
CN103973741A (zh) 用于在云系统中进行远程调试的方法和装置
JP2005539298A (ja) サーバを遠隔かつ動的に構成する方法およびシステム
CN101313292A (zh) 对等数据传送指挥协调
EP1850231A2 (en) Systems and methods of accessing information across distributed computing components
CN108234208A (zh) 基于业务的资源管理的可视化负载均衡部署方法及系统
CN108632354A (zh) 物理机纳管方法、装置及云桌面管理平台
JP4566200B2 (ja) トランザクションをサポートするための方法
US11522864B1 (en) Secure identity transfer
US8112495B2 (en) Transmitting information about distributed group memberships
US7885997B2 (en) Data processing method, program, device, message structure, message generation method, and message transmission method
KR100947114B1 (ko) 더미 메시지를 이용하여 웹 서비스의 품질 데이터를추출하는 방법
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof
CN115516842A (zh) 编排代理服务
Lin et al. A web services status monitoring technology for distributed system management in the cloud
JP5222346B2 (ja) 情報監視方法
US11537707B1 (en) Secure identity binding
US11872497B1 (en) Customer-generated video game player matchmaking in a multi-tenant environment
JP2011203887A (ja) 仮想環境データ転送システムおよび仮想環境データ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140901

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140904

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141002

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150226

R150 Certificate of patent or registration of utility model

Ref document number: 5706468

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250