JP6047577B2 - トラフィックディレクタ環境におけるロードバランシングおよびデータ圧縮の柔軟性を提供するためのシステムおよび方法 - Google Patents

トラフィックディレクタ環境におけるロードバランシングおよびデータ圧縮の柔軟性を提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP6047577B2
JP6047577B2 JP2014532114A JP2014532114A JP6047577B2 JP 6047577 B2 JP6047577 B2 JP 6047577B2 JP 2014532114 A JP2014532114 A JP 2014532114A JP 2014532114 A JP2014532114 A JP 2014532114A JP 6047577 B2 JP6047577 B2 JP 6047577B2
Authority
JP
Japan
Prior art keywords
server
traffic director
traffic
request
data
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
JP2014532114A
Other languages
English (en)
Other versions
JP2014534492A5 (ja
JP2014534492A (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 JP2014534492A publication Critical patent/JP2014534492A/ja
Publication of JP2014534492A5 publication Critical patent/JP2014534492A5/ja
Application granted granted Critical
Publication of JP6047577B2 publication Critical patent/JP6047577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • 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/10015Access to distributed or replicated servers, e.g. using brokers
    • 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/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)
  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Navigation (AREA)

Description

著作権表示
この特許文書の開示の一部は、著作権の保護下にある内容を含む。著作権所有者は、特許商標庁の特許ファイルまたはレコードに現れるのであれば、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
優先権主張
この出願は、2011年9月27日に出願された「SYSTEMS AND METHODS FOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR(CORE FEATURES)」という名称の米国仮特許出願番号第61/539,886号と、2011年9月27日に出願された「SYSTEMS AND METHODS FOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR(ADMIN FEATURES)」という名称の米国仮特許出願番号第61/539,900号と、2012年8月31日に出願された「SYSTEM AND METHOD FOR PROVIDING ACTIVE-PASSIVE ROUTING IN A TRAFFIC DIRECTOR ENVIRONMENT」という名称の米国特許出願番号第13/601,087号と、2012年8月31日に出願された「SYSTEM AND METHOD FOR SURGE PROTECTION AND RATE ACCELERATION IN A TRAFFIC DIRECTOR ENVIRONMENT」という名称の米国特許出願番号第13/601,428号と、2012年8月31日に出願された「SYSTEM AND METHOD FOR DYNAMIC DISCOVERY OF ORIGIN SERVERS IN A TRAFFIC DIRECTOR ENVIRONMENT」という名称の米国特許出願番号第13/601,530号と、2012年8月31日に出願された「SYSTEM AND METHOD FOR PROVIDING FLEXIBILITY IN CONFIGURING HTTP LOAD BALANCING IN A TRAFFIC DIRECTOR ENVIRONMENT」という名称の米国特許出願番号第13/601,632号と、2012年9月24日に出願された「SYSTEM AND METHOD FOR DYNAMIC CACHE DATA DECOMPRESSION IN A TRAFFIC DIRECTOR ENVIRONMENT」という名称の米国特許出願番号第13/625,716号とへの優先権の利益を要求する。その各々の出願は、本願明細書において参照により援用される。
発明の分野
本発明は一般的に、アプリケーションサーバ、ミドルウェアマシンまたは他のコンピュータ環境における使用のためのロードバランサまたはトラフィックディレクタに関し、より特定的には、トラフィックディレクタまたは他の環境においてアクティブ−パッシブルーティング、サージ保護およびレートアクセラレーション、発信元サーバの動的な発見、httpロードバランシングを構成することにおける柔軟性、および/または動的なキャッシュデータ復元を提供するためのシステムおよび方法に関する。
背景
典型的なエンタープライズレベルのコンピューティング環境は、多くの異なるタイプのコンピューティングリソース(たとえばウェブサーバ、アプリケーションサーバ、データベースサーバ、または他のタイプのリソースサーバ)を含み得る。これらのコンピューティングリソースは、他のコンピュータによってまたはユーザがさまざまな異なるタイプのコンピューティング装置を操作することによってネットワーク(たとえば会社の内部イーサネット(登録商標)ネットワークまたはインターネット)上でアクセスされることが意図される。よく知られる例は、ユーザがインターネットを介してウェブサーバにアクセスし得るウェブブラウザアプリケーションを備えるラップトップのようなクライアントコンピュータの使用である。
今日の組織は、いつでもほとんどどのような位置からでも容易に利用可能な、高いレベルの性能を有するコンピューティングリソースにますます依存している。このようなリソースを確実に効率的に割り当てるタスクはしばしば、その配信ポリシーに従った適性な態様でクライアントからの要求を目標のリソースに配信するようロードバランシング装置の使用を必要とする。これらは、本発明の実施例とともに使用することができるタイプの環境である。
概要
ロードバランサまたはトラフィックディレクタとともに用いられるシステムおよび方法ならびにその管理が本願明細書において記載される。ある実施例に従うと、本願明細書におけるいくつかの実施例において「オラクルトラフィックディレクタ(Oracle Traffic Director(OTD))」として言及されるトラフィックディレクタは、ソフトウェアベースのロードバランサとして設けられる。当該ソフトウェアベースのロードバランサは、インターネットおよび他のトラフィックをロードバランシングするために速く、確実で、スケーラブルで、かつ安全なプラットホームをウェブサーバ、アプリケーションサーバ、または他のリソースサーバといったバックエンドの発信元サーバに送達するよう用いられ得る。
トラフィックディレクタの実施例は、Oracle WebLogicおよびExalogic環境のような、アプリケーションサーバ、ミドルウェアマシン、および同様の高性能なエンタープライズレベルのコンピューティング環境において特に有用である。
ある実施例に従うと、当該システムは、1つ以上のトラフィックディレクタインスタンスを有し、サーバの1つ以上のプールを有する発信元サーバにクライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタを含む。ある実施例に従うと、システムは、要求を受け取る際に発信元サーバによる使用のための通信プロトコルまたはソケットを提供する高速ネットワークインフラストラクチャと、通信プロトコルまたはソケットとの使用のための1つ以上のプロトコルターミネータ/エミュレータと、要求を発信元サーバのうちの特定のものに通信する際にどのターミネータ/エミュレータをトラフィックディレクタが用いるべきかを一緒に示すインバウンドソケット構成およびアウトバンドソケット構成とを含む。
ある実施例に従うと、発信元サーバのプールは、当該プール内のサーバの少なくとも1つ以上がプライマリサーバとして割り当てられるとともに、当該プール内のサーバの少なくとも1つ以上の他のものが、バックアップサーバとして割り当てられるように構成される。トラフィックディレクタは、当該プールにおけるプライマリサーバの可用性を判断し、プールが十分な数の利用可能なプライマリサーバを含む間はプライマリサーバにのみ要求を方向付けするよう構成される。
ある実施例に従うと、トラフィックディレクタにおけるトラフィックモニタが、トラフィックディレクタインスタンスと発信元サーバ内のリソースサーバの1つ以上の間との、接続の数を含むトラフィックを監視する。トラフィックディレクタは、接続の数を含むトラフィックを制御するトラフィックレートをセットし得、サージ保護またはレートの高速化/低速化を提供する。
ある実施例に従うと、ヘルスチェックサブシステムは、当該プール内の発信元サーバとして構成される任意の新しいサーバインスタンスに要求を送り、適切な応答を受け取り、かつそれに従って構成を更新することにより、その構成されるリソースサーバのヘルスを周期的にチェックし、さらに1つ以上のプールにおける変更を検出するよう試みる。
ある実施例に従うと、システムは、要求を受け取る際に発信元サーバによる使用のための通信プロトコルまたはソケットを提供する高速ネットワークインフラストラクチャと、通信プロトコルまたはソケットとの使用のための1つ以上のプロトコルターミネータ/エミュレータと、要求を発信元サーバのうちの特定のものに通信する際にどのターミネータ/エミュレータをトラフィックディレクタが用いるべきかを一緒に示すインバウンドソケット構成およびアウトバンドソケット構成とを含む。
ある実施例に従うと、トラフィックディレクタは、そのキャッシュに格納されるデータを圧縮し、発信元サーバからのコンテンツを圧縮データとして提供することによってか、または特定のクライアントがデータの非圧縮のバリアントを受け取ることを望む場合は、提供の前に当該データを動的に復元することによってクライアントからの要求に応答するよう構成され得る。ある実施例に従うと、トラフィックディレクタは、さらにそのデータ圧縮および復元の性能を向上するよう、ハードウェア支援圧縮プリミティブを使用するよう構成され得る。
ある実施例に従った、ロードバランサまたはトラフィックディレクタを含むコンピュータ環境を示す図である。 ある実施例に従った、1つ以上のプールまたは発信元サーバとのトラフィックディレクタの使用を示す図である。 ある実施例に従ったトラフィックディレクタアーキテクチャを示す図である。 ある実施例に従ったトラフィックディレクタ管理環境およびインターフェイスを示す図である。 ある実施例に従ったトラフィックディレクタにおけるアクティブ/パッシブルーティングの使用を示す図である。 ある実施例に従ったトラフィックディレクタにおけるアクティブ/パッシブルーティングの使用をさらに示す図である。 ある実施例に従ったトラフィックディレクタにおいてアクティブ/パッシブルーティングを提供するための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタにおけるサージ保護の使用を示す図である。 ある実施例に従ったトラフィックディレクタにおけるレートの高速化の使用を示す図である。 ある実施例に従ったトラフィックディレクタにおけるサージ保護を提供するための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタにおけるレートの高速化を提供するための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタにおける発信元サーバの動的な発見を示す図である。 ある実施例に従ったトラフィックディレクタにおける発信元サーバの動的な発見をさらに示す図である。 ある実施例に従ったトラフィックディレクタにおける発信元サーバの動的な発見を提供するための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタにおける発信元サーバの動的な発見を提供するための別の方法のフローチャートである。 ある実施例に従ったトラフィックディレクタの使用を示す図である。 ある実施例に従ったトラフィックディレクタを用いるための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタ環境における動的なHTTP復元の使用を示す図である。 ある実施例に従ったトラフィックディレクタ環境において動的なHTTP復元を提供するための方法のフローチャートである。 ある実施例に従ったトラフィックディレクタ環境における動的なHTTP復元との使用のためのハードウェアプリミティブのためのサポートを示す図である。
詳細な説明
上述したように、今日の組織は、いつでもほとんどどのような位置からでも容易に利用可能な、高いレベルの性能を有するコンピューティングリソースにますます依存している。このようなリソースを確実に効率的に割り当てるタスクはしばしば、その配信ポリシーに従った適性な態様でクライアントからの要求を目標のリソースに配信するようロードバランシング装置の使用を必要とする。
ロードバランサまたはトラフィックディレクタとともに用いられるシステムおよび方法とその管理とが本願明細書において記載される。ある実施例に従うと、本願明細書のいくつかの実施例において「オラクルトラフィックディレクタ(Oracle Traffic Director(OTD))」として言及されるトラフィックディレクタは、ソフトウェアベースのロードバランサとして設けられる。当該ソフトウェアベースのロードバランサは、インターネットおよび他のトラフィックをロードバランシングするために速く、確実で、スケーラブルで、かつ安全なプラットホームをウェブサーバ、アプリケーションサーバ、または他のリソースサーバといったバックエンドの発信元サーバに送達するよう用いられ得る。
トラフィックディレクタの実施例は、Oracle WebLogicおよびExalogic環境のような、アプリケーションサーバ、ミドルウェアマシン、および同様の高性能なエンタープライズレベルのコンピューティング環境において特に有用である。
ある実施例に従うと、トラフィックディレクタは、ハイパーテキスト転送プロトコル(HTTP)およびハイパーテキスト転送プロトコルセキュア(HTTPS)要求のようなトラフィックのためのエントリポイントとして機能する。ハイパーテキスト転送プロトコル(HTTP)およびハイパーテキスト転送プロトコルセキュア(HTTPS)要求は、リソースまたは発信元サーバとして作用するリソースサーバのバックエンドへの通信のためにクライアントまたはクライアントデバイスから受け取られる。各トラフィックディレクタは、リスナー、発信元サーバ、フェイルオーバグループ、およびログのようなインスタンスのさまざまな要素についての情報を提供する構成によって規定される1つ以上のトラフィックディレクタインスタンスを含む。
システムとともに用いられ得るタイプのクライアントの例は、コンピュータサーバ、ラップトップコンピュータ、スマートフォンのようなポータブルデバイス、および他のタイプのコンピューティング装置を含む。そのいくつかはたとえば、ウェブサーバにアクセスするためのウェブブラウザアプリケーションを含んでもよい。
発信元サーバとして用いられ得るタイプのリソースの例は、軽量ディレクトリアクセスプロトコル(lightweight directory access protocol(LDAP))サーバ、ウェブサーバ、マルチメディアサーバ、アプリケーションサーバ、データベースサーバ、および他のタイプのリソースを含む。
ある実施例に従うと、トラフィックディレクタは、1つ以上のロードバランシング方法に基づき発信元サーバへの要求を配信すること、特定されたルールに基づき要求をルーティングすること、頻繁にアクセスされたデータをキャッシュすること、トラフィックに優先順位を付けること、およびサービス品質を制御することといったタスクを行い得る。
性能の観点から、実施例に従うと、トラフィックディレクタは、低いレイテンシーで大量のトラフィックを扱うことを可能にするアーキテクチャを含み得る。たとえば、実施例は、たとえばOracle Exalogic Elastic Cloudのような高性能なコンピューティング環境内での使用に最適化され得るか、またはたとえばインフィニバンドのような高性能通信ファブリックを用いるバックエンドにて発信元サーバと通信し得る。ある実施例に従うと、高い可用性をサポートするために、トラフィックディレクタは、アクティブ―パッシブまたはアクティブーアクティブフェイルオーバを提供するトラフィックディレクタインスタンスのフェイルオーバグループを認識し得る。ネットワークへのトラフィック量が増加すると、トラフィックディレクタ環境は、要求をルーティングし得る付加的なバックエンドサーバでトラフィックディレクタを再構成するかまたはトラフィックが通信されるレートを修正することによりスケーリングされ得る。
管理の観点から、ある実施例に従うと、トラフィックディレクタはインストール、構成、および使用が容易であるよう設計されており、トラフィックディレクタインスタンスを管理する際のアドミニストレータによる使用のために、シンプルなウィザードドリブンのグラフィカルインターフェイスと、堅牢なコマンドラインインターフェイスとを含み得る。任意の特定の組織の場合、トラフィックディレクタを用いて要求をバランスしたいバックエンドアプリケーションの数と、セキュリティなどの内部要求と、使用したいトラフィックディレクタ機能といったビジネス要件に依存して、トラフィックディレクタトポロジーが当該組織のニーズに対応するよう変動され得る。たとえば、シンプルなトラフィックディレクタトポロジーはまず、専用のコンピューティングノード上で実行されるとともにバックエンドのサーバのプールにクライアント要求を配信する単一のトラフィックディレクタインスタンスを用い得る。シングルポイント障害を回避するために、アドミニストレータは、異なるノード上で実行されるとともにアクティブ―パッシブフェイルオーバーペアを形成する2つの同種のトラフィックディレクタインスタンスを構成し得る。リソースの活用を改善するために、アドミニストレータは、2つの仮想IPアドレスを用いてアクティブ―アクティブモードにおける2つのトラフィックディレクタインスタンスを構成し得る。
用語集
ある実施例に従うと、以下の用語が本願明細書において使用される。他の実施例に従うと、付加的および/または異なる用語が用いられ得るということが明らかであろう。
「構成」:トラフィックディレクタインスタンスのランタイム挙動を決定する構成可能な要素(たとえばメタデータ)の集合。ある実施例に従うと、典型的な構成は、トラフィックディレクタが要求をリッスンするべきリスナー(たとえばIPアドレスおよびポートの組合せ)についての定義と、要求が送られるべきバックエンドでのサーバについての情報とを含む。トラフィックディレクタは、トラフィックディレクタインスタンスが開始するとともにクライアント要求を処理する間に当該構成を読み出し得る。
「インスタンス(トラフィックディレクタインスタンス)」:構成からインスタンス化されるとともに管理ノードまたは管理サーバ上で展開されるトラフィックディレクタサーバ。
「クラスタ」:同じ構成から作製される2つ以上のトラフィックディレクタインスタンスの集合。
「フェイルオーバグループ」:仮想IPアドレス(VIP)によってグループ化された2つ以上のトラフィックディレクタインスタンス。ある実施例に従うと、フェイルオーバグループは、アクティブ―パッシブモードにおいて高い可用性を提供する。要求は、VIPにて受け取られるとともにプライマリインスタンスとして指定されるインスタンスにルーティングされる。プライマリインスタンスが到達可能でなければ、要求はバックアップインスタンスにルーティングされる。ある実施例に従うと、アクティブ―アクティブフェイルオーバについて、2つのフェイルオーバグループが必要とされる。各フェイルオーバグループは、一意のVIPを有するが、両者は、プライマリの役割とバックアップの役割とが反転された同じノードを含む。フェイルオーバグループにおける各インスタンスは、1つのVIPについてプライマリインスタンスとして指定され、他のVIPについてバックアップとして指定される。
「管理サーバ」:アドミニストレータがトラフィックディレクタ構成を作り出し得る管理コンソールおよびコマンドラインインターフェイスを含むインターフェイスをホスティングする特別に構成されるトラフィックディレクタインスタンスは、管理ノードに対するインスタンスとして展開し、インスタンスを管理する。
「管理ノード」:アドミニストレータがトラフィックディレクタインスタンスを展開し得るホストとして指定される物理的なサーバ。実施例に従うと、所与のノード上で、アドミニストレータは、ある構成の1つのみのインスタンスを展開し得る。
「INSTANCE_HOME」:トラフィックディレクタインスタンスに関する構成データおよびバイナリファイルが保存される、管理サーバまたは管理ノード上のアドミニストレータの選択のディレクトリ。
「ORACLE_HOME」:アドミニストレータがトラフィックディレクタバイナリをインストールするアドミニストレータの選択のディレクトリ。
「管理コンソール」:アドミニストレータがトラフィックディレクタインスタンスを作成、配置、および管理するよう用い得る管理サーバ上のウェブベースのグラフィカルインターフェイス。
「クライアント」:ある実施例に従うと、要求(たとえばHTTPおよびHTTPS要求)をトラフィックディレクタインスタンスに送るエージェント(たとえばウェブブラウザまたはアプリケーション)。当該システムとともに用いられ得るタイプのクライアントの例は、コンピュータサーバ、ラップトップコンピュータ、スマートフォンのようなポータブルデバイス、および他のタイプのコンピューティング装置を含む。当該他のタイプのコンピューティング装置のいくつかは、たとえばウェブサーバにアクセスするためのウェブブラウザアプリケーションを含んでもよい。
「発信元サーバ」:ある実施例に従うと、トラフィックディレクタがクライアントから受け取った要求をそこに転送するとともに、クライアント要求への応答をそこから受け取る、バックエンドのリソースまたはサーバ。発信元サーバとして用いられ得るタイプのリソースの例は、軽量ディレクトリアクセスプロトコル(LDAP)サーバ、ウェブサーバ、マルチメディアサーバ、アプリケーションサーバ、データベースサーバ、および他のタイプのリソースを含む。
「発信元サーバプール」:同じアプリケーションまたはサービスをホスティングするとともに、トラフィックディレクタを用いることによりアドミニストレータがロードバランスし得る発信元サーバの集合。ある実施例に従うと、トラフィックディレクタは、プールについて特定されるロード分散方法に基づき、クライアント要求を発信元サーバプールにおけるサーバに配信する。
「仮想サーバ」:トラフィックディレクタが1つ以上のドメインについての要求を供給し得る一意のIPアドレス(またはホスト名)およびポートの組合せを提供する、トラフィックディレクタサーバインスタンス内の仮想のエンティティ。ある実施例に従うと、ノード上のトラフィックディレクタインスタンスは複数の仮想サーバを含み得る。アドミニストレータは、各仮想サーバに特定の入力接続の最大数のような設定を構成し得るとともに各仮想サーバが要求をどのように扱うかをカスタマイズし得る。
図1は、ある実施例に従った、ロードバランサまたはトラフィックディレクタを含むコンピューティング環境を示す。図1に示されるように、ある実施例に従うと、トラフィックディレクタ100(本願明細書のいくつかの実施例においてオラクルトラフィックディレクタ(Oracle Traffic Director(OTD))として言及される)は、1つ以上の物理的なコンピュータサーバ101(またはプロセッサ(CPU)、メモリ、およびストレージを含む同様のコンピューティング装置)上に配置され、1つ以上のトラフィックディレクタインスタンス102,104を含み得る。トラフィックディレクタインスタンス102,104は、高い可用性のハートビートまたは類似の手段106を用いて互いに通信し得る。
任意の特定の組織の場合、トラフィックディレクタを用いて要求をバランスしたいバックエンドアプリケーションの数、セキュリティなどの内部要求、使用したいトラフィックディレクタ機能といったビジネス要件に依存して、トラフィックディレクタトポロジーが当該組織のニーズに対応するよう変動され得る。バックエンドは1つ以上の発信元サーバ110を含み得る。その例は、LDAPサーバ114、ウェブサーバ118、マルチメディアサーバ122、アプリケーションサーバ126、およびデータベースサーバ128を含み得る。ある実施例に従うと、アプリケーションサーバはWebLogicサーバ(WLS)であり得る。他のタイプの発信元サーバおよびアプリケーションサーバが組織の特定の必要性に依存して用いられ得る。発信元サーバの各々は、イーサネットネットワークのような内部ネットワーク130を介して、互いにかつトラフィックディレクタと通信し得る。
ある実施例に従うと、トラフィックディレクタは、外部ネットワーク136と、インターネット138と、多くの組織の場合ファイアウォール139とを介してクライアント134から要求を受け取り得る。当該システムとともに用いられ得るタイプのクライアントの例は、コンピュータサーバ、ラップトップコンピュータ、スマートフォンのようなポータブルデバイス、および他のタイプのコンピューティング装置を含む。当該他のタイプのコンピューティング装置のいくつかは、たとえばウェブサーバにアクセスするためのウェブブラウザアプリケーションを含んでもよい。
図2は、ある実施例に従った、1つ以上のプールまたは発信元サーバを有するトラフィックディレクタの使用を示す。図2に示される例において、トラフィックディレクタは、ここではA172、B174、C176、D178として示される4つのアプリケーションサーバを有するアプリケーションサーバの(第1の)プール170と、ここではA182、B184、C186として示される3つのウェブサーバを有するウェブサーバの(第2の)プール180とを含む2つのプールとともに用いられる。他の実施例および例に従うと、組織の特定の必要性に依存して、他のタイプおよび他の数のプールおよびサーバが用いられ得る。
図2に示される例において、トポロジーは、アクティブ―パッシブフェイルオーバグループ150を形成するとともにクライアント要求の受け取りのための単一の仮想IPアドレス190を含む2つのトラフィックディレクタインスタンス(102および104)を含む。アクティブインスタンス(この例ではインスタンス102)は、要求190,192,194を受け取ると、当該プールについて特定されるロード分散方法に基づき、要求が送られるべきサーバプールを決定し、要求197,198を当該プールにおけるサーバの1つに転送する。
図2に示される例は、バックエンドでの2つのサーバプールの使用を示しているが、アドミニストレータは、要求を複数のプールにおけるサーバにルーティングするようトラフィックディレクタを構成し得る。図2に示されるアクティブ―パッシブセットアップにおいて、フェイルオーバグループにおける1つのノードは任意の時点において冗長である。ある実施例に従うと、リソースの活用を改善するために、アドミニストレータは、2つの仮想IPアドレスを用いてアクティブ−アクティブモードにおける2つのトラフィックディレクタインスタンスを構成し得る。この場合、各インスタンスは、1つの仮想IPアドレス上で受け取られる要求に応え、他のインスタンスをバックアップする。
図3は、ある実施例に従ったトラフィックディレクタアーキテクチャを示す。ある実施例に従うと、トラフィックディレクタは、低いレイテンシーで大量のトラフィックを扱うことを可能にするアーキテクチャを含み得る。実施例はさらに、高性能のコンピューティング環境における使用のために最適化され得るか、または高性能の通信ファブリックを用いてバックエンドの発信元サーバと通信し得る。
図3に示されるように、ある実施例に従うと、トラフィックディレクタは、1つ以上のネットスケープポータブルランタイム(NSPR)レイヤー202と、ネットワークセキュリティサービス(NSS)レイヤー206とを含み得る。ある実施例に従うと、トラフィックディレクタはさらに、1つ以上のアクセス制御212、ログ214、HTTP圧縮216、I/Oフィルタ218、エラー処理220、レート調整222、侵入検出224、または他のコンポーネントを有するHTTPエンジン210と、1つ以上のhttpクライアント232、応答クライアント234、ヘルスチェック236、ルーティングポリシー238、ロード制御240、ロードバランサ244、WLSサポート246、スティッキールーティング248、または他のコンポーネントを有するリバースプロキシコンポーネント230とを含み得る。ある実施例に従うと、トラフィックディレクタは、1つ以上のacceptorスレッド252、workerスレッド254、keep−aliveスレッド256、または他のコンポーネントを有するHTTP接続ハンドラ250をさらに含み得る。ある実施例に従うと、トラフィックディレクタはさらに、1つ以上のTCPスレッド262、ロードバランサ264、または他のコンポーネントを有するTCP接続ハンドラ260を含む。ある実施例に従うと、トラフィックディレクタはさらに、1つ以上のイベントスケジュール270、動的構成272、監視274、または他のコンポーネントを含み得る。
他の実施例に従うと、付加的および/または異なるコンポーネントが用いられ得るということが明らかであろう。
図4は、ある実施例に従ったトラフィックディレクタ管理環境およびインターフェイスを示す。管理の観点から、トラフィックディレクタはインストール、構成、および使用が容易であるよう設計されており、トラフィックディレクタインスタンスを管理する際のアドミニストレータによる使用のために、シンプルなウィザードドリブンのグラフィカルインターフェイスと、堅牢なコマンドラインインターフェイスとを含み得る。図4に示されるように、ある実施例に従うと、トラフィックディレクタは、1つ以上のトラフィックディレクタインスタンス280,281,282を含み得る。インスタンスの少なくとも1つは、管理サーバ(280)として指定され、他のインスタンスは管理ノード(281,282)として指定される。
ある実施例に従うと、管理環境284は、管理インターフェイス285を含む。管理インターフェイス285は、管理コンソール(GUI)286および/またはコマンドラインインターフェイス288の1つ以上を含む。これにより、アドミニストレータ290が292にてトラフィックディレクタまたはそのインスタンス294,296を構成またはそうでなければ管理することを可能にする。
アクティブ−パッシブルーティング
いくつかのアクティブ/パッシブルーティング方法では、ロードバランサがプライマリ(すなわちアクティブ)クラスタとしてサーバの第1のクラスタを維持し、バックアップ(すなわちパッシブ)クラスタとしてサーバの別のクラスタを維持する。これは障害復旧状況において有用であり、これによりプライマリデータセンタがダウンした場合、トラフィックは自動的にバックアップデータセンタにルーティングされる。ある実施例に従うと、トラフィックディレクタは、トラフィックディレクタがアクティブノードのすべてがダウンした後にのみバックアップノードをピックアップする微妙に異なるアプローチを取る。
ある実施例に従うと、サーバプール内では、発信元サーバのいくつかはプライマリサーバとして特定され得る一方、他の発信元サーバはバックアップサーバとして特定され得る。トラフィックディレクタは、少なくとも1つのプライマリサーバが利用可能である場合に、非バックアップサーバに(すなわちプライマリサーバ)に要求をルーティングすることになる。しかしながら、プライマリサーバが利用可能でなければ、トラフィックディレクタは当該要求をプールにおけるバックアップサーバにルーティングすることになる。任意のプライマリサーバが再び利用可能になると、トラフィックディレクタは要求をバックアップサーバに送ることを停止し、その後の要求をプライマリサーバにルーティングする。
図5は、ある実施例に従ったトラフィックディレクタにおけるアクティブ/パッシブルーティングの使用を示す。図5に示されるように、アクティブ/パッシブ環境は、要求を発信元サーバ346にルーティングするのに使用するために、1つ以上のトラフィックディレクタインスタンス342を有するトラフィックディレクタ340を含み得る。発信元サーバは、サーバの1つ以上のプール(ここではプールA348およびプールB354として示される)として構成され得る。各プールは、1つ以上のプライマリサーバ350,357、および1つ以上のバックアップサーバ356,358とを有する。
図5に示されるように、トラフィックディレクタは、任意の特定のプール(たとえばプールA)について、少なくとも1つのプライマリサーバが当該プールにおいて利用可能であれば、元々トラフィックディレクタが要求344を非バックアップサーバ(すなわちプライマリサーバ)にルーティングし、要求をバックアップサーバ(説明のためここでは斜線が付けられる)にルーティングしないように構成され得る。
ある実施例に従うと、ある期間の後、1つ以上のプライマリサーバはおそらく障害により利用不可能となり得るが、トラフィックディレクタは、少なくとも1つのプライマリサーバが利用可能であれば、要求360を当該プールにおけるプライマリサーバにルーティングし続けるのみである。
別の期間の後、ある実施例に従うと、当該プールにおけるプライマリサーバのすべてが利用不可能になると、トラフィックディレクタは、要求364を当該プールにおけるバックアップサーバにルーティングする。
図6はさらに、ある実施例に従ったトラフィックディレクタにおけるアクティブ/パッシブルーティングの使用を示す。図6に示されるように、当該プールにおけるプライマリサーバのすべてが未だ利用不可能であれば、トラフィックディレクタは、要求366を当該プールにおけるバックアップサーバにルーティングし続ける。
プライマリサーバ368が再び利用可能になると、当該構成に依存して、トラフィックサーバは、トラフィックを(新しいまたはそうでなければ現在利用可能な)プライマリサーバに転送を開始する前に、ある期間の間、遅延し得る。この場合、トラフィックディレクタは、ある期間の間、要求をバックアップサーバに370にてルーティングし続け、まだ要求をプライマリサーバ(ここでは説明のために斜線が付けられる)にルーティングしない。
その後、少なくとも1つのプライマリサーバが再び完全に利用可能になると、トラフィックディレクタは再び、要求374を非バックアップサーバ(すなわちプライマリサーバ)にのみルーティングし、少なくとも1つのプライマリサーバが利用可能であれば、要求をバックアップサーバにルーティングしない。
ある実施例に従うと、スティッキールーティングが構成される場合、プライマリサーバが利用不可能になれば、サーバに対してスティッキーなすべてのその後の要求が拒否されないことになるが、プライマリサーバが利用可能でなければ他のプライマリサーバまたはバックアップサーバにルーティングされることになる。移行先の発信元サーバはスティッキー要求について格納されるセッション情報を有し得ないので、この場合セッションはおそらく不良になる。しかしながら、新しい供給サーバは、送り手にチャレンジを送信し、それらのスティッキー要求について新しいセッションを確立する。バックアップサーバは、すべてのプライマリサーバが利用可能でない場合のみ、ルーティングのために用いられることになる。
ある実施例に従うと、トラフィックディレクタとの使用のためにアクティブ/パッシブルーティングを構成するよう、「backup-server」と呼ばれる要素が、バックアップサーバを特定するためにserver.xmlファイルにおける<origin-server>という要素に加えられ得る。そのパラメータおよび例は、テーブル1およびリスティング1においてそれぞれ提供される。
図7は、ある実施例に従ったトラフィックディレクタにおいてアクティブ/パッシブルーティングを提供するための方法のフローチャートである。図7に示されるように、ステップ380では、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、サーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が提供される。ステップ382では、1つ以上のプライマリサーバおよび1つ以上のバックアップサーバが、アクティブ/パッシブ構成においてプールに割り当てられる。ステップ384では、トラフィックディレクタは、プールにおけるプライマリサーバの可用性を判断し、プールが十分な数の利用可能なプライマリサーバを含む間は、要求をプライマリサーバにのみ方向付ける。ある実施例に従うと、トラフィックディレクタは、少なくとも1つのプライマリサーバが利用可能であれば、非バックアップサーバ(すなわちプライマリサーバ)にのみ要求をルーティングする。ステップ386では、当該プールにおいてプライマリサーバの数が不十分である(ある実施例に従うと1未満、すなわちプライマリサーバが存在しない)場合、トラフィックディレクタは、上記数のプライマリサーバが再び利用可能になるまで、要求をプールにおけるバックアップサーバに方向付ける。その点において、当該構成に依存して、トラフィックディレクタは再び、プールが十分な数のサーバを含む間にプライマリサーバにのみ要求を方向付け得る。
サージ保護
ロードバランサは、たとえば発信元サーバへのトラフィックの予期しないサージによって引き起こされていたであろうサーバの停止を防止することを補助し得る。ある実施例に従うと、トラフィックディレクタは、トラフィックがあるサージ限界を超えないように、発信元サーバへのトラフィックを監視するとともに必要に応じて接続をキューに入れることによってサージ保護のインテリジェントフォームを提供する。
ある実施例に従うと、サージ保護が有効にされると、トラフィックディレクタは、構成されるキャパシティよりも多くのサーバへの同時接続を開かない。この限界または最大キャパシティは、<max-connections>という要素によって特定され得る。発信元サーバがその最大接続キャパシティに到達すると、新しい接続を要求する要求が、その既存の接続のいくつかが解放されるまで、このサーバにルーティングされない。すべての発信元サーバが自身の接続キャパシティに到達した場合、新しい接続を必要とするその後の要求は拒否され、エラーメッセージが送られる。
図8は、ある実施例に従ったトラフィックディレクタにおけるサージ保護の使用を示す。図8に示されるように、1つ以上のトラフィックディレクタインスタンス402を有するトラフィックディレクタ400と、サーバ422の1つ以上のプールを有する発信元サーバ420とを含むトラフィックディレクタ環境が提供される。サーバの各プールは、1つ以上のリソースサーバ424を含み得る。
ある実施例に従うと、トラフィックディレクタはトラフィックモニタ404を含む。トラフィックモニタ404は、トラフィックディレクタが、発信元サーバ内のトラフィックディレクタインスタンスとリソースサーバの1つ以上との間の、接続の数406を含むトラフィックを監視することを可能にする。ある実施例に従うと、トラフィックディレクタはさらに、接続をキューに入れるよう用いられ得る接続キュー408を含む。
動作中、クライアントからの要求が発信元サーバに通信されている間、トラフィックモニタは、トラフィックディレクタとリソースサーバとの間の、接続の数を含むトラフィックを示すフィードバック430を受け取る。トラフィックモニタが、トラフィックディレクタと特定のリソースサーバとの間の、接続の数を含むトラフィックが当該リソースサーバについて可能とされる最大量を超えると判断すると、トラフィックディレクタは、その後のトラフィックおよび接続をリソースサーバから離れるよう接続キュー434に一時的に方向付け得る。これには、当該リソースサーバに流れるトラフィックの量を436にて一時的に低減または制限する効果がある。
ある実施例に従うと、トラフィックディレクタは、440にて情報メッセージ442をたとえばログファイルまたはアドミニストレータに随意に提供し得、これによりこれらにトラフィックサージを知らせて、処置が取られる。トラフィックモニタは必要に応じて、接続キューへのその後の調節のために、発信元サーバへのトラフィック/接続を監視し続け得る。
レート調整(高速化/低速化)
ある実施例に従うと、トラフィックディレクタはさらに、要求レートの高速化をサポートする。これにより、大量のトラフィックでそれらのサーバを圧倒しないように、新しく加えられたサーバへのトラフィックを徐々に加速することによって、発信元サーバプールへのサーバの適切な追加が可能になる。要求レートの高速化は、アクティブな接続の数または現在の負荷、接続の最大数または発信元サーバのキャパシティのような多くの動的に監視されるパラメータを組み込み得るので、適応可能である。この機能は、要求−レートの低速化を提供するよう拡張され得、これによりトラフィックディレクタは、発信元サーバに方向付けられるトラフィックを効果的に減少させ得るので、そのトラフィックがたとえば計画保守の目的のために完全に休止される際に、アドミニストレータが発信元サーバをオフラインにし得る。一緒に、レートの高速化および低速化の両方が、発信元サーバへのトラフィックのレートを調節するよう用いられ得る。
ある実施例に従うと、発信元サーバがオンラインになると、トラフィックディレクタはその全キャパシティで直ちに要求をサーバに送らず、ある期間に亘って送信レートを徐々に増すことになる。これは、以下のいくつかの利点を提供し得る。たとえば、発信元サーバは、スタートアップの際、データをロードしてさまざまなリソースを割り当てるある期間を必要とする。このウォームアッププロセスの間、発信元サーバの応答時間は遅くなり得、多数の要求をサーバに送ることで、サーバ性能をさらに悪化させ、サーバの予期しない挙動を引き起こし得る。さらに、発信元サーバは、問題があれば、要求のいくつかまたはほとんどに応答する際に機能しなくなり得、その状態は、「UP」状態と「DOWN」状態との間で頻繁に変更し得る。このようなサーバの場合、その「UP」状態の開始時に多くの要求を当該サーバに送らないほうがよい。さらに、リースト・コネクション・カウント(least connection count)のようなロードバランシングアルゴリズムを用いる場合、トラフィックディレクタは、多くの要求を新しいサーバに送り得、開始時においてサーバに多くの要求が殺到し得る。なぜならば新しいサーバの接続数が0だからである。レート高速化により、この問題が緩和し得る。
ある実施例に従って、トラフィックディレクタは、当該レートがサーバの構成される最大レート(最大接続)に到達するまで、新しいサーバへのトラフィックレートを徐々に増加させる。レート高速化は、接続キャパシティの調節を介して達成され得、キャパシティの調節は、時間ベース(すなわち単位時間について固定された値だけ接続キャパシティを増加する)またはウィンドウベース(すなわちある数の応答を受け取った後で、ある値だけ接続キャパシティを増加する)かのいずれかであり得る。
図9は、ある実施例に従ったトラフィックディレクタにおけるレート高速化の使用を示す。図9に示されるように、1つ以上のトラフィックディレクタインスタンス452を有するトラフィックディレクタ450と、サーバ472の1つ以上のプールを有する発信元サーバ470とを含むトラフィックディレクタ環境が再び設けられる。サーバの各プールは、1つ以上の(既存の)リソースサーバ474を含み得る。トラフィックディレクタはまた、トラフィックディレクタが、トラフィックディレクタインスタンスと発信元サーバ内のリソースサーバの1つ以上との間の、接続の数456を含むトラフィックを監視することを可能にするトラフィックモニタ454を含む。
ある実施例に従うと、トラフィックディレクタは最初に、トラフィックディレクタインスタンスと発信元サーバ内の1つ以上の(既存の)リソースサーバとの間の、接続の数476を含むトラフィックを制御するトラフィックレート458をセットし得る。
その後、トラフィックモニタは、トラフィックディレクタがトラフィックを方向付け得る発信元サーバ内の付加的な(新しい)リソースサーバ480の存在481を判断すると、ある期間の間、待機し得、いくつかの場合ではトラフィックをその初期レート482に維持してから、トラフィックレート484を徐々に調整または調節してトラフィックディレクタインスタンスとそれらの新しいリソースサーバ486との間のトラフィック/接続を方向付ける。
要求レート調整(高速化/低速化)は、上記のサージ保護機能とは異なる。すなわち、両方のメカニズムは、要求トラフィックを制限するよう用いられ得るが、異なる基準に基づいている。特に、レート調整は、要求のプロパティに基づき制限動作を取り、サージ保護は発信元サーバへの同時接続の量に一次的に基づく。
ある実施例に従うと、接続キャパシティ調節のための時間ベースの方法と、「上昇時間」と呼ばれる構成パラメータとが用いられ得る。これにより、トラフィックディレクタがサーバの構成されたキャパシティまで送信レートを上昇させるのにどれだけ長くかかるかを特定する。
Adjusted-Connection-Capacity = MAX{(max-connections * MIN{1, server-up-time/ramp-up-time}), 1}
要求レート高速化が有効にされると、構成されるハード限界(最大接続)の代わりに、調節されたキャパシティが、ルーティングの決定を行うよう、トラフィックディレクタによって用いられ得る。上述したように、すべてのサーバが調節された接続キャパシティに到達するならば、新しい要求が拒否されることになる。
実施例に従うと、サージ保護と要求レート高速化とをトラフィックディレクタとの使用のために構成するために、「max-connections」という要素および「ramp-up-time」という要素が、所望のリソースサーバについてのserver.xmlファイルにおける<origin-server>という要素に加えられ得る。そのパラメータおよび例は、テーブル2およびリスティング2にそれぞれ提供される。
図10は、ある実施例に従った、トラフィックディレクタにおいてサージ保護を提供するための方法のフローチャートである。図10に示されるように、ステップ490では、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、サーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が提供される。ステップ492では、トラフィックディレクタにおけるトラフィックモニタは、トラフィックディレクタインスタンスと発信元サーバ内の1つ以上のリソースサーバとの間の、接続の数を含むトラフィックを監視する。ステップ494では、トラフィックモニタが、トラフィックディレクタと特定のリソースサーバとの間の、接続の数を含むトラフィックが当該リソースサーバについて可能とされる最大量を超えると判断すると、トラフィックディレクタは、その後のトラフィックおよび接続をリソースサーバから離れるよう接続キューに一時的に方向付ける。ステップ496では、トラフィックディレクタは、トラフィックサージを通知するよう、たとえばログファイルまたはアドミニストレータに情報メッセージを随意に提供し得、必要に応じて、接続キューへのその後の調節のために、発信元サーバへのトラフィック/接続を監視し続ける。
図11は、ある実施例に従ったトラフィックディレクタにおいてレート高速化を提供するための方法のフローチャートである。図11に示されるように、ステップ502では、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、サーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が再び提供される。ステップ504では、トラフィックモニタからの情報を用いてトラフィックディレクタは、トラフィックディレクタインスタンスと発信元サーバ内の1つ以上の(既存の)リソースサーバとの間の、接続の数を含むトラフィックを最初に制御するトラフィックレートをセットし得る。ステップ506では、トラフィックモニタは、トラフィックディレクタがトラフィックを方向付けし得る発信元サーバ内に付加的な(新しい)リソースサーバの存在を判断し得る。ステップ508では、トラフィックディレクタはある期間の間、待機してからトラフィックレートを徐々に調整または調節し、これにより、トラフィックディレクタインスタンスとそれらの新しいリソースサーバとの間のトラフィック/接続を方向付ける。
図11には示されていないが、上述したように、ある実施例に従うと、同様の技術は、既存のリソースサーバへのトラフィックを減速するよう、トラフィックレートを監視および徐々に調整または調節するために用いられ得るので、たとえばそのトラフィックが完全に休止される場合、サーバがオフラインにされ得る。
発信元サーバの動的な発見
ある実施例に従うと、トラフィックディレクタは、発信元サーバを動的に発見するとともにそれらのサーバタイプおよび/または他のプロパティを検出することにより、アドミニストレータに容易に発信元サーバをサーバプールに追加させる。
たとえば、ある実施例に従うと、アドミニストレータが動的な発見を有効にすると、トラフィックディレクタは、サーバプール内のサポート/認識されるアプリケーションサーバを動的に発見し得る。トラフィックサーバの観点から、それが一般アプリケーションサーバタイプに対してプロキシ(すなわち代理)として動作しているか、または代替的にはWebLogicサーバのような認識されたサーバタイプであるかどうかを知ることは、サーバタイプに固有のルーティング、スロットリング、および他の最適化を適用するようトラフィックディレクタを補助する点で有用である。このような最適化は、アドミニストレータによるさらに別の手動構成の必要なく、自動的にシステムによって適用され得る。
クライアントがバックエンドの発信元サーバへの要求を行う観点から、トラフィックサーバによって発信元サーバへそれらの要求が若干トランスペアレントにルーティングされるが、発信元サーバタイプを発見するとともにサーバに固有の最適化を適用するトラフィックディレクタの能力が、認識されるサーバタイプが用いられる際はいつでも性能の利点を提供する。
ある実施例に従うと、アドミニストレータが、認識される管理されるサーバタイプ、たとえばWebLogicサーバのクラスタを示す発信元サーバプールを作製したい場合、当該クラスタにおいて発信元サーバとして、各管理されるサーバを特定する必要がない。その代わり、管理されるサーバのいずれか1つを、当該プールにおいて発信元サーバとして特定することで十分である。次いで、トラフィックディレクタは、クラスタにおける他のWebLogicサーバインスタンスの存在を動的に発見し得、発信元サーバとして構成される管理されるサーバと、同じクラスタにおける動的に発見される管理されるサーバとの両方にクライアント要求を配信する。
同様に、動的な発見が有効にされる際に、当該クラスタにおける管理されるサーバのいずれかが、停止、追加、または除去されるならば、アドミニストレータは、発信元サーバプールの定義を更新する必要はない。
WebLogicサーバを用いる実施例に従って、各Weblogicサーバインスタンスは、バックエンドアプリケーションサーバへの入力HTTPトラフィックを代理し得るとともに、ヘルスチェック要求に応答してWeblogicに固有の応答ヘッダーを提供し得るその自身のリバースプロキシモジュールまたはプラグインを含む。たとえば、x-weblogic-jvmid応答ヘッダーは、現在のWebLogicサーバノードのJVMIDを示し得る。x-weblogic-cluster-hash応答ヘッダーは、WebLogicクラスタノードのハッシュ値を提供し得るとともに、したがってクラスタが修正されるたびに示し得る。x-weblogic-cluster-list応答ヘッダーは、クラスタにおけるそれらのWeblogicサーバに対応するJVMIDのリストを返し得る。
WebLogic環境における発信元サーバプールについて動的な発見が有効にされると、トラフィックディレクタは以下のように、プールにおける残っているWebLogic発信元サーバを発見し得る。
まず、トラフィックディレクタインスタンスは、スタートすると、プールにおいて特定される発信元サーバがWebLogicが管理するサーバであるかどうかと、クラスタに属するかどうかとを、当該サーバがHTTPヘルスチェック要求を各構成された発信元サーバに送ることによりチェックする。任意の特定の発信元サーバプールについて、トラフィックディレクタが動的な発見のために送るHTTPリクエストタイプは、そのプールについて現在構成されているヘルスチェック要求タイプであり得る。発信元サーバの応答は、上で記載したものと同様の応答ヘッダーを用いて、当該サーバがWebLogicが管理するサーバであるかどうかを示す。発信元サーバがクラスタに属するWebLogicが管理するサーバである場合、応答はさらに、クラスタにおける管理されるサーバのリストを含むことになる。
ある実施例に従うと、トラフィックディレクタがx-weblogic-cluster-hashおよびx-weblogic-cluster-list応答ヘッダーを有する応答を受け取ると、トラフィックディレクタはまず、ハッシュ値応答ヘッダーを用いて当該クラスタが修正されているかどうか決定し、その場合はたとえば、

といった残りの応答ヘッダーをパースする。これにより、クラスタにおいて新しく加えられたWebLogicサーバについてのJVMID、ポート、付加的な情報を決定し、次いでこれらをサーバプールに加える。
次に、トラフィックディレクタは発信元サーバからの応答における情報を用いて、発見された管理サーバについてのその構成を更新する。ある実施例に従うと、当該動的に発見された発信元サーバは、たとえば、構成された発信元サーバについて特定される重みまたは最大接続といったプロパティのすべてを受け継いでいる。
その後、発信元サーバプールについて構成される各周期的なヘルスチェック間隔で、トラフィックディレクタは、動的な発見ヘルスチェック要求を、プールにおける発信元サーバとして構成されるWebLogicサーバインスタンスに送ることにより、クラスタにおける変更を検出するのを試みる。管理されるサーバの除去または追加のような、応答が以前のヘルスチェックからのクラスタの変更を示す場合、トラフィックディレクタは、動的に発見された発信元サーバの新しいセットで当該構成を更新する。
上記の記載は説明としてWebLogicを用いるが、他の実施例に従うと、同様の技術が、サーバプール内の他のタイプのサポート/認識される発信元サーバを発見するよう用いられ得る。動的に発見された発信元サーバは、インスタンスの構成の発信元サーバプールの定義において、永続的に格納されない。したがって、トラフィックディレクタインスタンスが再起動されると、そのインスタンスによる動的な発見のプロセスが新たにスタートする。
ある実施例に従うと、動的な発見機能は、デフォルトでは有効にされていない。アドミニストレータは、管理コンソールまたはコマンドラインインタフェース(CLI)のいずれかの使用により、動的な発見を有効にし得る。発信元サーバプールが修正されると、これは実際に構成を修正しているので、任意の更新された発信元サーバプールのセッティングを実施するために、対応する構成は再配置されるべきである。
図12は、ある実施例に従った、トラフィックディレクタにおける発信元サーバの動的な発見を示す。図12に示されるように、アドミニストレータ290が、292にて管理インターフェイス285を用いてトラフィックディレクタ600と対話および管理し得る。管理インターフェイス285は、管理コンソール(GUI)および/またはコマンドラインインターフェイスの1つ以上を含む。トラフィックディレクタは、1つ以上のトラフィックディレクタインスタンス602を含み得、サーバ610の1つ以上のプールを有する発信元サーバ608への要求を通信し得る。サーバの各プールは、リソースサーバA612のような1つ以上の(既存の)リソースサーバを含み得る。
ある実施例に従うと、トラフィックディレクタは、ヘルスチェックサブシステム604と、構成606とを含む。当該構成は、リスナー、発信元サーバ、フェイルオーバグループ、およびログといった、トラフィックディレクタインスタンスのさまざまな要素についての情報を提供する。
当該構成は、特定の発信元サーバプールが特定のリソースサーバを含むことを示すよう、アドミニストレータが最初に修正し得る。当該発信元サーバプールについて構成される各周期的なヘルスチェック間隔にて、ヘルスチェックサブシステムは次いで、たとえばHTTPヘルスチェック要求613を送るとともに、リソースサーバAからの適切な応答614を受け取ることにより、その構成されたリソースサーバの各々のヘルスをチェックする。
ある実施例に従うと、動的な発見が有効にされると、発信元サーバプールについて構成される各周期的なヘルスチェック間隔で、トラフィックディレクタも、動的な発見ヘルスチェック要求616を、当該プールにおける発信元サーバとして構成される任意の新しいサーバインスタンスに送るとともに適切な応答617を受け取ることにより、リソースサーバB615のようなプールにおける変更を検出することを試みる。動的に発見されたサーバは、ノードが発見されたサーバプールのみにより適用される。トラフィックディレクタは次いで、動的に発見された発信元サーバのこの新しいセット620で、618にてその構成を更新する。
WebLogicサーバインスタンスを用いる実施例に従うと、動的な発見が発信元サーバプールについて有効にされると、ヘルスチェックサブシステムは、プールにおいて特定される発信元サーバがWebLogicが管理するサーバであるかどうか、および当該サーバがクラスタに属するかどうかチェックする。上述したように、発信元サーバの応答ヘッダーは、当該サーバがWebLogicサーバが管理するサーバであるかどうかを示し得、発信元サーバがクラスタに属するWebLogicが管理するサーバである場合、応答は当該クラスタにおける管理サーバのリストを含むことになる。
図13はさらに、ある実施例に従った、トラフィックディレクタにおける発信元サーバの動的な発見を示す。上述したように、動的な発見が有効にされると、発信元サーバプールについて構成される各周期的なヘルスチェック間隔にて、トラフィックディレクタは、動的な発見ヘルスチェック要求を任意の新しいサーバインスタンスに送るとともに、動的に発見される発信元サーバの新しいセットでその構成を更新することにより、その構成されるリソースサーバの各々のヘルスをチェックし、プールにおける変更を検出するよう試みる。
図13にさらに示されるように、当該構成は、この例ではリソースサーバAのプロパティ622を含む、プールにおける各構成される発信元サーバについてのプロパティを含み得る。ある実施例に従うと、当該動的に発見された発信元サーバは、たとえば、構成された発信元サーバについて特定される重みまたは最大接続といったプロパティのすべてを受け継いでいる。たとえば、トラフィックディレクタは、そのプロパティ623が構成されたリソースサーバAのプロパティを引き継ぐ(同じとなるように)ように、発信元サーバとして動的に発見されるリソースサーバBを構成し得る。
その後、その後のヘルスチェック625,626により、トラフィックディレクタがプールにおいて、新しいリソースサーバC624のようなさらに別の変更を検出すると、トラフィックディレクタは、そのプロパティ627も構成されるリソースサーバAのプロパティを引き継ぐ(当該プロパティと同じである)ように、リソースサーバCを発信元サーバとして同様に構成し得る。
ある実施例に従うと、構成または発見されるリソースサーバに関連付けられ得るタイプのサーバプロパティの例は、以下のものを含む。すなわち、
「重み」:発信元サーバは異なるロードの重みを有するよう構成され得る。この構成された重みに依存して、トラフィックディレクタがこのサーバへの入力要求ロードを方向付ける。
「上昇時間」:発信元サーバは、入力要求ロードが直ちに発信元サーバに方向付けされないように上昇時間を有するように構成され得る。
「最大接続」:発信元サーバは同時接続の最大数をサポートするよう構成され得る。
「バックアップ」:プール内の発信元サーバは、バックアップとして構成され得る。その場合、トラフィックディレクタは、プールにおいてバックアップとして示されていないすべての他のサーバがオフラインとマークされなければ、当該サーバに要求をルーティングしない。
WebLogicを用いる実施例に従うと、発信元サーバの応答が当該サーバがWebLogicが管理するサーバであり、あるクラスタに属することを示していれば、応答はクラスタにおける管理されるサーバのリストを含むことになる。トラフィックディレクタは、発信元サーバからの応答における情報を用いて、その構成を発見された管理されるサーバで更新する。たとえば、特定の発信元サーバプールが以下の構成を有する場合、

、そしてトラフィックディレクタが'nsapi.us.oracle.com:7012'にて実行されるWeblogicサーバノードを発見する場合、'nsapi.us.oracle.com:7011'のプロパティと同じ(すなわち引き継がれた)プロパティで当該発信元サーバを構成する。
図14は、ある実施例に従った、トラフィックディレクタにおける発信元サーバの動的な発見を提供するための方法のフローチャートである。図14に示されるように、ステップ632では、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、サーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が提供される。ステップ634では、トラフィックディレクタ(ある実施例に従うと、そのヘルスチェックサブシステム)はスタートアップ時および/または周期的に、アドミニストレータが以前に構成した発信元サーバ内のそれらのリソースサーバのヘルスチェックを要求する。ステップ636では、トラフィックディレクタのヘルスチェックサブシステムは、発信元サーバにて1つ以上の動的に発見されたリソースサーバ(たとえばWebLogicサーバ)からヘルス応答を受け取る。ステップ638では、トラフィックディレクタは動的に発見されたリソースサーバから受け取った情報を用いて、トラフィックディレクタ構成を更新する。この更新には、適切な場合、以前に構成された発信元サーバからプロパティを引き継ぐことを含む。
図15は、ある実施例に従ったトラフィックディレクタにおける発信元サーバの動的な発見を提供するための別の方法のフローチャートである。特に図15は、動的な発見が発信元サーバプールについて有効にされると、トラフィックディレクタは、当該プールにおいて新しいまたは付加的なWebLogic発信元サーバを発見し得るようにWebLogicサーバを用いる実施例を示す。
図15に示されるように、ステップ642では、トラフィックサーバが起動しヘルスチェックサブシステムを呼び出して(ステップ643)、構成されたプールに対するヘルスチェックを行う(ステップ644)。
ステップ645では、ヘルスチェックが完了すると、当該システムは、既存の構成をロードするか(ステップ646,647)、新しい構成をロードするか(ステップ648,650)、または動的再構成を行う(ステップ649)かのいずれかを行うよう、進み得る。
ステップ651では、発信元サーバがWebLogicサーバであって、クラスタとして構成される場合(ステップ653)、当該プロセスは、クラスタリスト(ステップ656)を比較し、適切な場合、新しいノードで構成を更新する(ステップ657,659)。別の態様では、サーバは、オンラインにマークされ得、当該プロセスが進み得る(ステップ652,654,658)。
ある実施例に従うと、トラフィックディレクタとの使用のための動的な発見ルーティングに対して、「dynamic-server-discovery」という要素は、そのサーバについて特定され得る。その例がテーブル3に提供される。

高性能コンピュータ環境を用いたロードバランシングの構成
ある実施例に従うと、高速のインフィニバンドネットワークインフラストラクチャを有するExalogicミドルウェアマシンのような高性能コンピュータ環境のためのローカルのロードバランサとして用いられる際、トラフィックディレクタのロードバランシングは、当該環境のネットワークアーキテクチャとシームレスに動作するよう設計され得る。
インフィニバンドは、ポイント・ツー・ポイントの双方向シリアルリンクを提供するスイッチドファブリック通信リンクであり、ディスクのような高速周辺機器とのプロセッサの接続のために一般的に設計されている。異なるプロトコルがインフィニバンドファブリック上で通信を行うよう用いられ得る。その例は、インターネット・プロトコル・オーバ・インフィニバンド(IPoIB)およびソケットダイレクトプロトコル(SDP)を含む。
IPoIBプロトコルは、インフィニバンドレイヤーの上のインターフェイスとして用いられ、ソケットベースのアプリケーションがホストのTCP/IPプロトコルスタックを利用することを可能にする。次いで、TCP/IPプロトコルスタックは、アプリケーションに対してトランスペアレントな態様でネイティブのインフィニバンドに翻訳される。SDPプロトコルは、ソケットベースのインターフェイスの最適化であり、システムがTCP/IPスタックをバイパスして、その代わりに、リモートダイレクトメモリアクセス(remote direct memory access(RDMA))動作を用いて、既存のTCPストリームソケットセマンティクスを維持しながらソケットベースのパケットを直接的にインフィニバンドレイヤーに翻訳することを可能にする。SDPプロトコルは、IPoIBをサポートするのに必要ないくつかのソフトウェアレイヤーをバイパスする利点を有し、この結果SDPはIPoIBよりも良好なレイテンシーおよび処理量を有することになる。
ある実施例に従うと、トラフィックディレクタは、インバウンド接続としてたとえばインバウンドのイーサネット・トラフィック・エミュレーテッド・オーバ・IB(Ethernet traffic emulated over IB(EoIB))を終了し得、アウトバウンドの接続としてIPoIBまたはSDPのようなプロトコルを用いてインフィニバンドネットワーク上で発信元サーバと通信し得る。トラフィックディレクタの統合されたHTTPキャッシングおよび圧縮能力は、Exalogicのような高性能コンピューティング環境の可変のエグレスおよびイングレス帯域幅要件に特に好適にされる。
図16は、ある実施例に従った、トラフィックディレクタの使用を示す。図16に示されるように、1つ以上のトラフィックディレクタインスタンス672を有するトラフィックディレクタ670は、高速のインフィニバンドネットワークインフラストラクチャ682を有するミドルウェアマシン(たとえばExalogic)680のような高性能コンピューティング環境と組み合されて用いられ得る。
ある実施例に従うと、トラフィックディレクタは、1つ以上のプロトコルターミネータ/エミュレータ674(たとえば、1つ以上のIPoIBおよび/またはSDPターミネータ/エミュレータ)と、インバウンドソケット構成676と、アウトバウンドソケット構成677とを含む。発信元サーバ683がサーバ684,685の1つ以上のプールとして設けられ得、各サーバプールは、1つ以上のリソースサーバ686,688を含む。組織の特定の必要性に依存して、サーバの各プールが、当該プール内の発信元サーバは要求をトラフィックディレクタから受け取る従来のInetソケットのような通信プロトコル/ソケット、または代替的にはIPoIBもしくはSDPのような高速プロトコルを用いるよう構成され得る。図16に示される例において、サーバプール684における発信元サーバはSDP687を用いるよう構成される一方、サーバプール685における発信元サーバはInet689を用いるよう構成される。他の実施例および例に従って、他のタイプのプロトコル/ソケットが用いられ得る。
特定の発信元サーバに方向付けられる要求690が受け取られると、トラフィックディレクタがその構成を用いて適切なターミネータ/エミュレータを決定し、その構成されるプロトコル/ソケット693の上の発信元サーバへの通信のために高速インフィニバンドネットワークインフラストラクチャに要求692を通信する。
ある実施例に従うと、インバウンド接続を構成するよう、httpリスナー構成がserver.xmlファイル内に提供され得る。そのパラメータおよび例がそれぞれ、テーブル4およびリスティング4に提供される。
ある実施例に従うと、アウトバンド接続を構成するよう、httpプロトコル構成がserver.xmlファイル内に提供され得る。そのパラメータおよび例がそれぞれ、テーブル5およびリスティング5において提供される。リバースプロキシ要素下で、サーバプールのリストが提供され得、その各々は、発信元サーバのプールの定義である。各サーバプールは、複数の発信元サーバ要素を含み得る。ファミリー要素が、発信元サーバに接続するよう用いられるソケットファミリーを示す。ある実施例に従うと、可能な値は、たとえばデフォルト、Inet、Inet6、またはinet−SDPソケットを含む。
図17は、ある実施例に従った、トラフィックディレクタを用いるための方法のフローチャートである。図17に示されるように、ステップ694では、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、サーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が提供される。ステップ695では、1つ以上の発信元サーバが、高速(たとえばインフィニバンド)ネットワークを有するミドルウェアマシン(たとえばExalogic)のような高性能コンピューティング環境に展開される。ステップ697では、トラフィックディレクタは、高速ネットワークとの通信のために、1つ以上のインバウンドおよびアウトバウンド接続とプロトコルターミネータ/エミュレータとを有するよう構成される。ステップ698にて、トラフィックディレクタはインバウンド(たとえばEoIB)接続を終了させ、構成されるアウトバンド接続とターミネータ/エミュレータとを用いてクライアントからの要求を発信元サーバに通信する。
動的なキャッシュデータ復元
ある実施例に従うと、トラフィックディレクタは、圧縮データとして発信元サーバからのコンテンツを提供するか、または特定のクライアントが圧縮されていないデータのバリアントを受け取ることを望む場合、提供前に当該データを動的に復元するかのいずれかにより、クライアントからの要求に応答するよう構成され得る。
ある実施例に従うと、その圧縮または復元されたフォーマットのいずれかのデータを提供するかどうかについての決定が、最初のクライアント要求において、たとえば柔軟性および相互運用性を提供するHTTPヘッダーの使用を通じて提供され得る。このようなデータの圧縮および復元が、トラフィックディレクタのビルトインのHTTPキャッシング機能性とともに行われるよう構成され得る。
図18は、ある実施例に従った、トラフィックディレクタ環境における動的なHTTP復元の使用を示す。図18に示されるように、ある実施例に従うと、トラフィックディレクタ900は、クライアント要求を発信元サーバ910に配信するための、リソースサーバ914の1つ以上のプール912を含む1つ以上のトラフィックディレクタインスタンス902を含み得る。
ある実施例に従うと、トラフィックディレクタは、発信元サーバの1つ以上との使用のために有効にされ得るキャッシュ904を含む。いくつかのトラフィックディレクタインスタンスによって共有される単一のキャッシュとして図18に示されるが、ある実施例に従うと、いくつかのこのようなキャッシュが用いられ得、および/または各トラフィックディレクタインスタンスが自身のキャッシュを有し得る。
ある実施例に従うと、キャッシングが有効にされ、クライアント要求が920にて発信元サーバに通信され、当該要求に応答してコンテンツが922にてそれらの発信元サーバから返されると、トラフィックディレクタは、その構成に従ってそのキャッシュ内に発信元サーバコンテンツに対応するデータの1つ以上のセットをキャッシュし得る。例示的な例としては、特定の発信元サーバは、画像ファイル(たとえばGIFファイル)および他のコンテンツをクライアントに提供するよう構成されてもよく、トラフィックディレクタは、ある特定の期間の間、そのキャッシュ内に特定の発信元サーバから受け取った画像ファイルをキャッシュするよう構成されてもよい。
ある実施例に従うと、トラフィックディレクタはインメモリデータベースとして動作する。これは、データをキャッシュすることには、コンピュータメモリの使用が必要であり、システムコストおよび性能の両方に影響を与えるということを意味する。これに対処するために、ある実施例に従うと、トラフィックディレクタが、そのキャッシュに格納されるようデータを圧縮してから、圧縮データ926,927,928をキャッシュする。これにより、必要な全体的なキャッシュサイズが低減され、したがってメモリ要件が低減され、および/または特定のキャッシュサイズ内により多くの数のデータエントリが格納されることが可能になる。
ある実施例に従うと、キャッシュされたデータは次いで、クライアントの必要性に依存して、その圧縮フォーマットまたは復元フォーマットのいずれかでクライアントからの要求に応答してクライアントに提供され得る。
たとえば、いくつかの(たとえば、ブラウザ)クライアントが応答内の圧縮データを受け入れ得る間、他のクライアント(たとえば携帯電話)は、非圧縮フォーマットで提供されるべき応答データを必要とし得る。
図18に示されるように、ある実施例に従うと、クライアントA930は、応答が圧縮データ932を含み得るということをトラフィックディレクタに示し得る。ある実施例に従うと、この指示は、要求コンポーネント(たとえばHTTPトラフィックの場合はHTTP要求ヘッダー)の一部として、トラフィックディレクタにクライアントによって通信され得る。これに応答して、トラフィックディレクタは、応答を得るために発信元サーバに要求を通信するか、またはトラフィックディレクタがデータのコピーが現在キャッシュ内に圧縮フォーマット(たとえば圧縮データA926)で格納されていると判断する場合、936にて圧縮フォーマットでクライアントに当該データを返し得る。
さらに図18に示されるように、ある実施例に従うと、クライアントB940は、応答が圧縮データ942を含み得ない(すなわち非圧縮データのみが受け入れ可能である)ことをトラフィックディレクタに示し得る。ある実施例に従うと、この指示は、たとえばHTTP要求ヘッダーといった要求コンポーネントの一部としてクライアントによってトラフィックディレクタに同様に通信され得る。これに応答して、トラフィックディレクタは再び、応答を得るために要求を発信元サーバに通信するか、またはトラフィックディレクタがデータのコピーが現在そのキャッシュに圧縮フォーマットで格納されている(たとえば圧縮データB927)と判断する場合、そのデータ944を復元し、データの復元されたバリアント946をクライアントに返し得る。
たとえばHTTP要求ヘッダーの使用を通じたクライアントからの肯定的な指示として図18に示されるが、実施例に従うと、当該システムは、デフォルトも認識し得、たとえば、デフォルトでは非圧縮データのみがクライアントに受け入れ可能であると考えられるべきであると、クライアントがそうではないことを示していなければ、それに従って動作することがデフォルトであると認識し得る。
上記の機能性を用いて、キャッシュは、異なるクライアントの必要性に適合するようデータを2つの異なる(たとえば、圧縮と非圧縮)フォーマットで格納する必要がないが、その代わりに単一の圧縮データインスタンス/フォーマットのみが当該キャッシュ内に格納される必要があり、当該要求を行った特定のクライアントの必要性に依存して、必要に応じて復元されるデータが格納される。
図19は、ある実施例に従った、トラフィックディレクタ環境における動的なHTTP復元を提供するための方法のフローチャートである。図19に示されるように、ステップ950にて、1つ以上のトラフィックディレクタインスタンスを有するトラフィックディレクタと、リソースサーバの1つ以上のプールを有する発信元サーバとを含むトラフィックディレクタ環境が提供される。ステップ952では、トラフィックディレクタは、発信元サーバから受け取ったコンテンツまたはデータのキャッシングおよび圧縮を行うよう有効にされ、クライアントからの要求を処理する間、1つ以上の圧縮データをトラフィックディレクタのキャッシュに格納する。ステップ954では、トラフィックディレクタはクライアントから、特定のコンテンツまたはデータについて要求と、クライアントが圧縮データとして応答を受け入れ得るかどうかおよび/または復元データを必要としているかどうかについての指示とを受け取り得る。ステップ956では、必要とされるコンテンツがキャッシュ内にあれば、トラフィックディレクタは、キャッシュに格納されるデータを用いて、クライアントが復元されたデータについて必要性を示す場合には、動的にキャッシュのデータを復元することを、応答を準備することの一部として含めて、応答をクライアントに提供し得る。
ハードウェア支援圧縮プリミティブについてのサポート
ある実施例に従うと、トラフィックディレクタは、ハードウェア支援圧縮プリミティブ、たとえばインテル(登録商標)のインテグレーテッド・パフォーマンス・プリミティブ(Integrated Performance Primitives(IPP))を使用して、上記のHTTPキャッシングおよび動的な復元機能を含むそのデータ圧縮および復元の性能をさらに向上するよう構成され得る。
ある実施例に従うと、プロセッサのようなコンピュータハードウェアが圧縮/復元ライブラリに関連付けられ得る。圧縮/復元ライブラリは、あるプロセッサに対して圧縮および復元動作の性能を向上するよう用いられ得る。たとえば、いくつかのコンピュータハードウェア製造は、それらの製品(たとえばインテルはスタートアップの間にシステムにプレロードされ得るそのIPPライブラリを提供する)との使用のためにzlibライブラリを提供する。ある実施例に従うと、圧縮/復元ライブラリが利用可能であれば、トラフィックディレクタは当該ライブラリを使用してその圧縮および復元動作の性能を向上し得る。
図20は、ある実施例に従った、トラフィックディレクタ環境における動的なHTTP復元との使用のためのハードウェアプリミティブのついてのサポートを示す。図20に示されるように、ある実施例に従うと、トラフィックディレクタは、プロセッサ972を含むコンピュータサーバ970上に設けられ得る。ある実施例に従うと、システムは、圧縮/復元ライブラリ974(たとえばzlibライブラリ)を含む。クライアントに応答して、トラフィックディレクタがコンテンツまたはデータを圧縮または復元する必要がある場合、たとえばキャッシュデータを復元する際に、980,982にて圧縮/復元ライブラリを利用し得、プロセッサによって提供されるハードウェア支援圧縮プリミティブを活用する。
本発明は、1つ以上のプロセッサ、メモリ、および/または本開示の教示に従ってプログラムされたコンピュータ可読記憶媒体を含む1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
いくつかの実施例では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した一時的でない記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ素子、磁気または光学カード、ナノシステム(分子メモリICを含む)、または命令および/またはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。記載された実施例のいくつかはオラクルトラフィックディレクタ環境の文脈で機能を記載しているが、記載される特徴は他のコンピューティング環境の文脈でも用いられ得る。当業者にとっては、多くの修正例および変形例が明確であろう。上記の実施例は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施例について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。

Claims (15)

  1. トラフィックディレクタを含むコンピューティング環境における使用のためのシステムであって、
    1つ以上のトラフィックディレクタインスタンスを有し、1つ以上のサーバプールを有する発信元サーバに、クライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタと、
    要求を受け取る際に、前記発信元サーバによる使用のために通信プロトコルまたはソケットを提供する高速ネットワークインフラストラクチャと、
    前記通信プロトコルまたはソケットとの使用のための1つ以上のプロトコルターミネータ/エミュレータと、
    ンバウンドソケット構成およびアウトバンドソケット構成とを含み、
    前記トラフィックディレクタは、特定の発信元サーバに向けられた要求を受信した場合に、
    前記特定の発信元サーバに含まれる1以上のサーバプールについて特定されるロード分散技術に基づいて、前記要求が送信されるサーバプールを決定し、
    前記インバウンドソケット構成および前記アウトバウンドソケット構成に基づいて、前記決定されたサーバプールで用いるためのプロトコルターミネータ/エミュレータを決定し、
    前記決定されたプロトコルターミネータ/エミュレータを使用して、前記決定されたサーバプールにおける1つのサーバに前記要求を送信する、システム。
  2. 前記システムは、インフィニバンドネットワークインフラストラクチャを含む高性能コンピューティング環境内に含まれる、請求項1に記載のシステム。
  3. 各サーバプールは、1つ以上のリソースサーバを含み、特定の通信プロトコルまたはソケットを用いるよう構成される、請求項1または2に記載のシステム。
  4. 前記通信プロトコルまたはソケットは、インターネット・プロトコル・オーバ・インフィニバンド(IPoIB)を含む、請求項1〜3のいずれか1項に記載のシステム。
  5. 前記通信プロトコルまたはソケットは、ソケットダイレクトプロトコル(SDP)を含む、請求項1〜4のいずれか1項に記載のシステム。
  6. トラフィックディレクタを含むコンピューティング環境における使用のための方法であって、
    1つ以上のトラフィックディレクタインスタンスを有し、1つ以上のサーバプールを有する発信元サーバに、クライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタを提供するステップと、
    要求を受け取る際に、前記発信元サーバによる使用のために通信プロトコルまたはソケットを提供する高速ネットワークインフラストラクチャを提供するステップと、
    前記通信プロトコルまたはソケットとの使用のための1つ以上のプロトコルターミネータ/エミュレータを提供するステップと、
    ンバウンドソケット構成およびアウトバンドソケット構成を提供するステップと
    特定の発信元サーバに向けられた要求が受信された場合に、前記特定の発信元サーバに含まれる1以上のサーバプールについて特定されるロード分散方法に基づいて、前記要求が送信されるサーバプールを決定するステップと、
    前記インバウンドソケット構成および前記アウトバウンドソケット構成に基づいて、前記決定されたサーバプールで用いるためのプロトコルターミネータ/エミュレータを決定するステップと、
    前記決定されたプロトコルターミネータ/エミュレータを使用して、前記決定されたサーバプールにおける1つのサーバに前記要求を送信するステップとを含む、方法。
  7. 命令を含むコンピュータプログラムであって、前記コンピュータプログラムは、1つ以上のコンピュータによって読み出されて実行されると、前記1つ以上のコンピュータに、
    1つ以上のトラフィックディレクタインスタンスを有し、1つ以上のサーバプールを有する発信元サーバに、クライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタを提供するステップと、
    要求を受け取る際に、前記発信元サーバによる使用のために通信プロトコルまたはソケットを提供する高速ネットワークインフラストラクチャを提供するステップと、
    前記通信プロトコルまたはソケットとの使用のための1つ以上のプロトコルターミネータ/エミュレータを提供するステップと、
    ンバウンドソケット構成およびアウトバンドソケット構成を提供するステップと
    特定の発信元サーバに向けられた要求が受信された場合に、前記特定の発信元サーバに含まれる1以上のサーバプールについて特定されるロード分散方法に基づいて、前記要求が送信されるサーバプールを決定するステップと、
    前記インバウンドソケット構成および前記アウトバウンドソケット構成に基づいて、前記決定されたサーバプールで用いるためのプロトコルターミネータ/エミュレータを決定するステップと、
    前記決定されたプロトコルターミネータ/エミュレータを使用して、前記決定されたサーバプールにおける1つのサーバに前記要求を送信するステップとを行わせる、コンピュータプログラム。
  8. トラフィックディレクタ環境において動的データ圧縮を提供するシステムであって、
    1つ以上のトラフィックディレクタインスタンスを有し、サーバの1つ以上のプールを有する発信元サーバにクライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタと、
    前記発信元サーバの1つ以上との使用のために有効にされることが可能である、発信元サーバコンテンツに対応するデータをキャッシュするためのキャッシュとを含み、
    前記トラフィックディレクタは、前記データを圧縮してから、前記データをキャッシュし、
    キャッシュされた前記データは、前記クライアントからの要求に応答して、前記クライアントの必要性に依存してその圧縮フォーマットまたは復元フォーマットのいずれかで、前記クライアントに提供可能であ
    各発信元サーバは、画像ファイルおよび他のコンテンツをクライアントに提供するよう構成可能であり、前記トラフィックディレクタは、要求に応答して当該発信元サーバから受け取られたファイルのうち選ばれたものを、そのキャッシュの中に特定の期間の間、キャッシュするよう構成可能である、システム。
  9. 非圧縮データを必要とする特定のクライアントに応答して、前記トラフィックディレクタは、応答を得るために前記要求を前記発信元サーバに通信するか、または前記トラフィックディレクタが前記データのコピーが現在そのキャッシュの中に圧縮フォーマットで格納されていると判断すれば、当該データを復元し、前記データの復元されたバリアントを前記クライアントに返す、請求項8に記載のシステム。
  10. クライアントは、応答が圧縮データを含んでもよいか、または応答が圧縮データを含んではならず非圧縮データのみが受け入れ可能であるかのいずれかを前記トラフィックディレクタに指示することが可能であり、前記トラフィックディレクタは、それに従って動作する、請求項8または9に記載のシステム。
  11. 前記指示は、HTTPリクエストヘッダーのような要求コンポーネントの部分として、前記クライアントによって前記トラフィックディレクタに通信可能である、請求項10に記載のシステム。
  12. 前記トラフィックディレクタは、ハードウェア支援圧縮プリミティブを使用してそのデータ圧縮および復元の性能をさらに向上するよう構成される、請求項8〜11のいずれか1項に記載のシステム。
  13. 前記システムは、あるプロセッサ上での圧縮および復元動作の性能を向上するよう使用可能である圧縮/復元ライブラリを含む、請求項8〜12のいずれか1項に記載のシステム。
  14. トラフィックディレクタ環境において動的データ圧縮を提供するための方法であって、
    1つ以上のトラフィックディレクタインスタンスを有し、サーバの1つ以上のプールを有する発信元サーバにクライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタを提供するステップと、
    前記発信元サーバの1つ以上との使用のために有効にされることが可能である、発信元サーバコンテンツに対応するデータをキャッシュするためのキャッシュを提供するステップと、
    記トラフィックディレクタ、前記データを圧縮してから、前記データをキャッシュするステップとを含み、
    キャッシュされた前記データは、クライアントからの要求に応答して、前記クライアントの必要性に依存してその圧縮フォーマットまたは復元フォーマットのいずれかで、前記クライアントに提供可能であ
    各発信元サーバは、画像ファイルおよび他のコンテンツをクライアントに提供するよう構成可能であり、
    前記トラフィックディレクタが、要求に応答して当該発信元サーバから受け取られたファイルのうち選ばれたものを、そのキャッシュの中に特定の期間の間、キャッシュするステップとをさらに含む、方法。
  15. 命令を含むコンピュータプログラムであって、前記コンピュータプログラムは、1つ以上のコンピュータによって読み出されて実行されると、前記1つ以上のコンピュータに、
    1つ以上のトラフィックディレクタインスタンスを有し、サーバの1つ以上のプールを有する発信元サーバにクライアントからの要求を受け取って通信するよう構成されるトラフィックディレクタを提供するステップと、
    前記発信元サーバの1つ以上との使用のために有効にされることが可能である、発信元サーバコンテンツに対応するデータをキャッシュするためのキャッシュを提供するステップと
    記トラフィックディレクタ、前記データを圧縮してから、前記データをキャッシュするステップとを行なわせ
    キャッシュされた前記データは、クライアントからの要求に応答して、前記クライアントの必要性に依存してその圧縮フォーマットまたは復元フォーマットのいずれかで、前記クライアントに提供可能であり、
    各発信元サーバは、画像ファイルおよび他のコンテンツをクライアントに提供するよう構成可能であり、
    前記1つ以上のコンピュータに、
    前記トラフィックディレクタが、要求に応答して当該発信元サーバから受け取られたファイルのうち選ばれたものを、そのキャッシュの中に特定の期間の間、キャッシュするステップをさらに行わせる、コンピュータプログラム。
JP2014532114A 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるロードバランシングおよびデータ圧縮の柔軟性を提供するためのシステムおよび方法 Active JP6047577B2 (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201161539886P 2011-09-27 2011-09-27
US201161539900P 2011-09-27 2011-09-27
US61/539,900 2011-09-27
US61/539,886 2011-09-27
US13/601,428 2012-08-31
US13/601,530 US8914502B2 (en) 2011-09-27 2012-08-31 System and method for dynamic discovery of origin servers in a traffic director environment
US13/601,087 US8914521B2 (en) 2011-09-27 2012-08-31 System and method for providing active-passive routing in a traffic director environment
US13/601,632 US9128764B2 (en) 2011-09-27 2012-08-31 System and method for providing flexibility in configuring HTTP load balancing in a traffic director environment
US13/601,530 2012-08-31
US13/601,428 US9733983B2 (en) 2011-09-27 2012-08-31 System and method for surge protection and rate acceleration in a traffic director environment
US13/601,087 2012-08-31
US13/601,632 2012-08-31
US13/625,716 US9652293B2 (en) 2011-09-27 2012-09-24 System and method for dynamic cache data decompression in a traffic director environment
US13/625,716 2012-09-24
PCT/US2012/057375 WO2013049238A2 (en) 2011-09-27 2012-09-26 System and method for providing flexibility in load balancing and data compression in a traffic director environment

Publications (3)

Publication Number Publication Date
JP2014534492A JP2014534492A (ja) 2014-12-18
JP2014534492A5 JP2014534492A5 (ja) 2015-10-08
JP6047577B2 true JP6047577B2 (ja) 2016-12-21

Family

ID=47912446

Family Applications (9)

Application Number Title Priority Date Filing Date
JP2014532111A Active JP6495010B2 (ja) 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2014532113A Active JP6198737B2 (ja) 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるリソースサーバの動的な発見のためのシステムおよび方法ならびに構成
JP2014532114A Active JP6047577B2 (ja) 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるロードバランシングおよびデータ圧縮の柔軟性を提供するためのシステムおよび方法
JP2014532121A Active JP6124898B2 (ja) 2011-09-27 2012-09-27 Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
JP2016189674A Active JP6487401B2 (ja) 2011-09-27 2016-09-28 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2016229210A Active JP6377113B2 (ja) 2011-09-27 2016-11-25 Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
JP2017247800A Active JP6506827B2 (ja) 2011-09-27 2017-12-25 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2017247801A Active JP6506383B2 (ja) 2011-09-27 2017-12-25 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2018030725A Active JP6600373B2 (ja) 2011-09-27 2018-02-23 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2014532111A Active JP6495010B2 (ja) 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2014532113A Active JP6198737B2 (ja) 2011-09-27 2012-09-26 トラフィックディレクタ環境におけるリソースサーバの動的な発見のためのシステムおよび方法ならびに構成

Family Applications After (6)

Application Number Title Priority Date Filing Date
JP2014532121A Active JP6124898B2 (ja) 2011-09-27 2012-09-27 Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
JP2016189674A Active JP6487401B2 (ja) 2011-09-27 2016-09-28 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2016229210A Active JP6377113B2 (ja) 2011-09-27 2016-11-25 Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
JP2017247800A Active JP6506827B2 (ja) 2011-09-27 2017-12-25 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2017247801A Active JP6506383B2 (ja) 2011-09-27 2017-12-25 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2018030725A Active JP6600373B2 (ja) 2011-09-27 2018-02-23 トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法

Country Status (6)

Country Link
US (9) US8914521B2 (ja)
EP (4) EP2761450B1 (ja)
JP (9) JP6495010B2 (ja)
CN (4) CN103827828B (ja)
IN (1) IN2014CN01324A (ja)
WO (4) WO2013049233A2 (ja)

Families Citing this family (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8929524B2 (en) 2004-04-27 2015-01-06 Value-Added Communications, Inc. System and method for determining and associating tariff rates for institutional calls
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
JP2012128721A (ja) * 2010-12-16 2012-07-05 Sony Computer Entertainment Inc 情報処理装置、情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
CN102957718B (zh) * 2011-08-23 2018-04-03 中兴通讯股份有限公司 一种业务节点及业务节点间用户协议消息同步的方法
US8914521B2 (en) * 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
US8761101B1 (en) * 2011-10-13 2014-06-24 Excelfore Corporation Network based machine-to-machine system for monitoring
US9923826B2 (en) * 2011-10-14 2018-03-20 Citrix Systems, Inc. Systems and methods for dynamic adaptation of network accelerators
US8914497B1 (en) * 2011-12-15 2014-12-16 Amazon Technologies, Inc. System and method for throttling service requests having non-uniform workloads
US9094262B2 (en) * 2011-12-30 2015-07-28 Certona Corporation Fault tolerance and maintaining service response under unanticipated load conditions
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9705800B2 (en) * 2012-09-25 2017-07-11 A10 Networks, Inc. Load distribution in data networks
US9515867B2 (en) * 2012-11-14 2016-12-06 Verizon Patent And Licensing Inc. Intelligent command builder and executer
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US20140331078A1 (en) * 2013-01-24 2014-11-06 Uri Cohen Elastic Space-Based Architecture application system for a cloud computing environment
US8667075B1 (en) * 2013-04-15 2014-03-04 Upfront Media Group, Inc. System and method for implementing a subscription-based social media platform
US8769031B1 (en) 2013-04-15 2014-07-01 Upfront Media Group, Inc. System and method for implementing a subscription-based social media platform
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
WO2015042349A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service
US8990376B1 (en) 2013-11-01 2015-03-24 Microsoft Technology Licensing, Llc Managing server membership
US9686581B2 (en) 2013-11-07 2017-06-20 Cisco Technology, Inc. Second-screen TV bridge
US10432452B2 (en) * 2014-04-11 2019-10-01 Oracle International Corporation System and method for enabling application-to-application communication in an enterprise computer system
US10222935B2 (en) 2014-04-23 2019-03-05 Cisco Technology Inc. Treemap-type user interface
US9286001B2 (en) * 2014-06-30 2016-03-15 Microsoft Licensing Technology Llc Effective range partition splitting in scalable storage
CN104270259A (zh) * 2014-09-18 2015-01-07 杭州华为数字技术有限公司 一种关联属性取值确定方法与自适配管理系统
US10382591B2 (en) * 2014-10-13 2019-08-13 International Business Machines Corporation Transparent inline content inspection and modification in a TCP session
CN104468735B (zh) * 2014-11-19 2018-07-17 山东中创软件工程股份有限公司 基于图形用户界面的负载均衡器的管理方法及装置
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
CN104580194B (zh) * 2014-12-31 2017-11-24 北京四达时代软件技术股份有限公司 面向视频应用的虚拟化资源管理方法及装置
US11023117B2 (en) * 2015-01-07 2021-06-01 Byron Burpulis System and method for monitoring variations in a target web page
JP2016148973A (ja) * 2015-02-12 2016-08-18 日本電信電話株式会社 死活監視装置、死活監視システム、死活監視方法、及び死活監視方法プログラム
US9485244B2 (en) 2015-03-02 2016-11-01 Citrix Systems, Inc. Executing an operation over file repositories located in different authentication domains using a representational state transfer (REST)-compliant client
US9386006B1 (en) 2015-03-02 2016-07-05 Citrix Systems, Inc. Authentication mechanism for domain redirection of a representational state transfer (REST)-compliant client
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) * 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) * 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10002153B2 (en) 2015-05-14 2018-06-19 Illumon Llc Remote data object publishing/subscribing system having a multicast key-value protocol
US10848574B2 (en) 2015-06-11 2020-11-24 Microsoft Technology Licensing, Llc Computing resource management system
US20160366246A1 (en) * 2015-06-11 2016-12-15 Microsoft Technology Licensing, Llc Computing resource deployment system
US10298539B2 (en) 2015-07-09 2019-05-21 Microsoft Technology Licensing, Llc Passive delegations and records
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10757064B2 (en) 2015-11-04 2020-08-25 Oracle International Corporation Communication interface for handling multiple operations
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10459905B2 (en) 2016-01-07 2019-10-29 Bank Of America Corporation Centralized hierarchical configuration system for applications in a distributed network
JP6639245B2 (ja) * 2016-01-18 2020-02-05 キヤノン株式会社 サーバシステム、サーバシステムを制御する方法およびプログラム。
US10440153B1 (en) 2016-02-08 2019-10-08 Microstrategy Incorporated Enterprise health score and data migration
US11283900B2 (en) 2016-02-08 2022-03-22 Microstrategy Incorporated Enterprise performance and capacity testing
CN107181636B (zh) * 2016-03-10 2020-09-11 阿里巴巴集团控股有限公司 一种负载均衡系统中的健康检查方法及装置
CN107343012B (zh) * 2016-04-28 2019-12-03 杭州海康威视数字技术股份有限公司 视频存储系统及其视频数据发送方法
US10512053B2 (en) * 2016-05-10 2019-12-17 Servicenow, Inc. System and method for selectively hibernating and restarting a node of an application instance
US20170331960A1 (en) * 2016-05-10 2017-11-16 Global Tel*Link Corp. Inmate voice and video call rating system and method
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US9612927B1 (en) * 2016-09-14 2017-04-04 International Business Machines Corporation Managing server processes with proxy files
US10616320B2 (en) * 2016-09-16 2020-04-07 Oracle International Corporation System and method for restful management distributed collection in an application server environment
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10372520B2 (en) 2016-11-22 2019-08-06 Cisco Technology, Inc. Graphical user interface for visualizing a plurality of issues with an infrastructure
US10739943B2 (en) 2016-12-13 2020-08-11 Cisco Technology, Inc. Ordered list user interface
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10574724B2 (en) 2017-01-06 2020-02-25 Western Digital Technologies, Inc. Automatic discovery of management nodes and generation of CLI using HA module
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US9787671B1 (en) 2017-01-30 2017-10-10 Xactly Corporation Highly available web-based database interface system
JP6474446B2 (ja) * 2017-03-28 2019-02-27 株式会社大一商会 遊技機
CN106911710A (zh) * 2017-03-30 2017-06-30 福州大学 面向cloudstack的数据流量监听方法
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
CN106993000A (zh) * 2017-05-26 2017-07-28 山东浪潮商用系统有限公司 解决反序列化漏洞的方法、反向代理服务器及系统
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10104710B1 (en) 2017-06-19 2018-10-16 Global Tel*Link Corporation Dual mode transmission in a controlled environment
US10333870B2 (en) 2017-07-06 2019-06-25 Global Tel*Link Corporation Presence-based communications in a controlled environment
US10198469B1 (en) 2017-08-24 2019-02-05 Deephaven Data Labs Llc Computer data system data source refreshing using an update propagation graph having a merged join listener
CN107656810B (zh) * 2017-08-29 2021-01-08 山东师范大学 数据中心环境下保证延迟敏感程序服务质量的方法
US10586033B2 (en) * 2017-08-29 2020-03-10 International Business Machines Corporation Automatic upgrade from one step authentication to two step authentication via application programming interface
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
JP6958413B2 (ja) 2018-02-19 2021-11-02 富士通株式会社 情報処理装置、情報処理システム、及びプログラム
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862867B2 (en) 2018-04-01 2020-12-08 Cisco Technology, Inc. Intelligent graphical user interface
US10917409B2 (en) * 2018-04-19 2021-02-09 Microsoft Technology Licensing, Llc System and method to securely execute datacenter management operations remotely
US10761614B2 (en) * 2018-06-13 2020-09-01 Fortinet, Inc. Enhanced context-based command line interface auto-completion using multiple command matching conditions
US10938626B2 (en) 2018-07-25 2021-03-02 Microsoft Technology Licensing, Llc Fast failover for gateway instances
US11113119B2 (en) * 2018-09-17 2021-09-07 International Business Machines Corporation Managing computer resources
CN109246323B (zh) * 2018-09-25 2020-09-11 国家电网有限公司客户服务中心 一种应用于异地双活话务平台的用户接入中心分配方法
US10719340B2 (en) * 2018-11-06 2020-07-21 Microsoft Technology Licensing, Llc Command bar user interface
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
CN111225003B (zh) * 2018-11-23 2022-12-27 京东科技控股股份有限公司 一种nfs节点配置方法和装置
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN109688219B (zh) * 2018-12-24 2021-12-21 国云科技股份有限公司 一种适用于多云管理的网络负载均衡器统一管理方法
US11323431B2 (en) 2019-01-31 2022-05-03 Citrix Systems, Inc. Secure sign-on using personal authentication tag
US10938923B2 (en) 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces
US11288053B2 (en) 2019-08-15 2022-03-29 Microstrategy Incorporated Conversion and restoration of computer environments to container-based implementations
US11106455B2 (en) 2019-08-15 2021-08-31 Microstrategy Incorporated Integration of containers with external elements
US11637748B2 (en) 2019-08-28 2023-04-25 Microstrategy Incorporated Self-optimization of computing environments
US11210189B2 (en) 2019-08-30 2021-12-28 Microstrategy Incorporated Monitoring performance of computing systems
US11507295B2 (en) * 2019-08-30 2022-11-22 Microstrategy Incorporated Backup, restoration, and migration of computer systems
US11467930B2 (en) * 2019-09-11 2022-10-11 EMC IP Holding Company LLC Distributed failover of a back-end storage director
US11354216B2 (en) 2019-09-18 2022-06-07 Microstrategy Incorporated Monitoring performance deviations
US11360881B2 (en) 2019-09-23 2022-06-14 Microstrategy Incorporated Customizing computer performance tests
US11438231B2 (en) 2019-09-25 2022-09-06 Microstrategy Incorporated Centralized platform management for computing environments
US11800354B2 (en) * 2020-04-10 2023-10-24 T-Mobile Usa, Inc. Systems and methods for improved access to customer registration information
US11178222B1 (en) 2020-04-28 2021-11-16 International Business Machines Corporation Controlling a server response latency
TWI766387B (zh) * 2020-10-07 2022-06-01 智捷科技股份有限公司 一種具延遲感知負載平衡的反向代理方法和存儲裝置
CN113485865B (zh) * 2021-09-06 2021-12-07 中航信移动科技有限公司 基于正向代理服务器访问第三方应用的数据处理系统
US11954473B2 (en) 2021-09-20 2024-04-09 Microstrategy Incorporated Deployment architecture for multi-tenant cloud computing systems
US11861342B2 (en) 2022-01-28 2024-01-02 Microstrategy Incorporated Enhanced cloud-computing environment deployment
US20240036873A1 (en) * 2022-07-26 2024-02-01 Dell Products L.P. Dynamic recommendations for faster issue identification and resolution
US20240069940A1 (en) * 2022-08-29 2024-02-29 Microsoft Technology Licensing, Llc. Native ui autocompletion through direct communication with the shell

Family Cites Families (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736159B2 (ja) 1985-12-13 1995-04-19 富士通株式会社 デ−タ処理二重化方式
JPH09259095A (ja) 1996-03-21 1997-10-03 Oki Electric Ind Co Ltd 中央処理システム
JP2872113B2 (ja) 1996-06-12 1999-03-17 日本電気通信システム株式会社 情報処理装置のマイクロ診断方式
US5796952A (en) 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6061721A (en) * 1997-10-06 2000-05-09 Sun Microsystems, Inc. Bean-based management system
JP3539857B2 (ja) 1997-12-25 2004-07-07 セイコーインスツルメンツ株式会社 間欠送り機構
JP2000020201A (ja) 1998-06-29 2000-01-21 Hitachi Ltd 情報処理装置における表示方法
JP2000099435A (ja) 1998-09-18 2000-04-07 Nippon Telegr & Teleph Corp <Ntt> サーバ切り替え装置および方法とサーバ切り替えプログラムを記録した記録媒体
JP2000172619A (ja) * 1998-12-03 2000-06-23 Ntt Communicationware Corp 端末装置、サーバ、クライアントサーバシステムおよび記録媒体
US6701438B1 (en) 1999-06-14 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for providing customizable security and logging protocols in a servlet engine
US20010049741A1 (en) * 1999-06-18 2001-12-06 Bryan D. Skene Method and system for balancing load distribution on a wide area network
US6560717B1 (en) 1999-12-10 2003-05-06 Art Technology Group, Inc. Method and system for load balancing and management
AU2001243218A1 (en) 2000-02-24 2001-09-03 Shin-Ping Liu Content distribution system
GB2360369A (en) 2000-03-10 2001-09-19 Omnis Technology Corp A system for distributing requests from one or more clients amongst a plurality of server processes
US6691244B1 (en) 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
US7158926B2 (en) 2000-05-05 2007-01-02 Sun Microsystems, Inc. Cluster availability model
US6880086B2 (en) 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US20010049732A1 (en) 2000-06-01 2001-12-06 Raciborski Nathan F. Content exchange apparatus
US6658000B1 (en) 2000-06-01 2003-12-02 Aerocast.Com, Inc. Selective routing
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
US7693976B2 (en) 2000-07-11 2010-04-06 Ciena Corporation Granular management of network resources
EP1312007A4 (en) 2000-07-17 2008-01-02 Galactic Computing Corp Bvi Ib PROCESS AND SYSTEM FOR PROVIDING THE MANAGEMENT OF A DYNAMIC HOST SERVICE
US6880156B1 (en) * 2000-07-27 2005-04-12 Hewlett-Packard Development Company. L.P. Demand responsive method and apparatus to automatically activate spare servers
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US20020055982A1 (en) * 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Controlled server loading using L4 dispatching
JP2002163241A (ja) 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US7984147B2 (en) 2000-12-29 2011-07-19 Hewlett-Packard Development Company, L.P. Apparatus and method for identifying a requested level of service for a transaction
US6880013B2 (en) * 2000-12-29 2005-04-12 International Business Machines Corporation Permanent TCP connections across system reboots
US20020122388A1 (en) 2001-03-05 2002-09-05 Taher Behbehani Dynamically reconfigurable intelligent content-based network
JP2002269061A (ja) * 2001-03-08 2002-09-20 Ntt Comware Corp クライアントサーバシステム、中継サーバ、接続先サーバの決定方法
US20020143965A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Server application initiated affinity within networks performing workload balancing
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US20020152307A1 (en) 2001-04-12 2002-10-17 Doyle Ronald Patrick Methods, systems and computer program products for distribution of requests based on application layer information
CN1513144A (zh) 2001-06-04 2004-07-14 Nct���Ź�˾ 用于减少将信息从通信网络投递到用户的时间的系统及方法
US7392546B2 (en) * 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US7774492B2 (en) 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7343487B2 (en) 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
US7139809B2 (en) 2001-11-21 2006-11-21 Clearcube Technology, Inc. System and method for providing virtual network attached storage using excess distributed storage capacity
US7321926B1 (en) 2002-02-11 2008-01-22 Extreme Networks Method of and system for allocating resources to resource requests
US7373556B2 (en) * 2002-02-22 2008-05-13 Bea Systems, Inc. Method for monitoring sub-system health
JP3828444B2 (ja) * 2002-03-26 2006-10-04 株式会社日立製作所 データ通信中継装置及びシステム
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
WO2003105004A1 (en) 2002-06-06 2003-12-18 Crescendo Networks Ltd. System and method for connecting multiple slow connections to multiple fast connections
US7020706B2 (en) 2002-06-17 2006-03-28 Bmc Software, Inc. Method and system for automatically updating multiple servers
JP2004030204A (ja) 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
US20040024861A1 (en) 2002-06-28 2004-02-05 Coughlin Chesley B. Network load balancing
US7395355B2 (en) 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US20040153558A1 (en) 2002-10-31 2004-08-05 Mesut Gunduc System and method for providing java based high availability clustering framework
US7289445B2 (en) 2002-11-25 2007-10-30 Intel Corporation Managing a protocol control block cache in a network device
US7870241B2 (en) 2002-11-27 2011-01-11 International Business Machines Corporation Automated power control policies based on application-specific redundancy characteristics
JP4108486B2 (ja) * 2003-01-08 2008-06-25 Necインフロンティア株式会社 Ipルータ、通信システム及びそれに用いる帯域設定方法並びにそのプログラム
US7937551B2 (en) * 2003-01-21 2011-05-03 Dell Products L.P. Storage systems having differentiated storage pools
US7478151B1 (en) 2003-01-23 2009-01-13 Gomez, Inc. System and method for monitoring global network performance
CA2534807C (en) * 2003-08-14 2010-12-14 Lakshminarayanan Chidambaran On demand node and server instance allocation and de-allocation
US7937493B2 (en) 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
DE10349005C5 (de) * 2003-10-17 2013-08-22 Nec Europe Ltd. Verfahren zur Überwachung eines Netzwerks
US7616625B1 (en) 2003-10-22 2009-11-10 Sprint Communications Company L.P. System and method for selective enhanced data connections in an asymmetrically routed network
JP2005141441A (ja) * 2003-11-06 2005-06-02 Hitachi Ltd 負荷分散システム
US7017327B2 (en) 2003-12-10 2006-03-28 Deere & Company Hybrid electric tool carrier
US20050188295A1 (en) 2004-02-25 2005-08-25 Loren Konkus Systems and methods for an extensible administration tool
US20050213507A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Dynamically provisioning computer system resources
JP4520899B2 (ja) * 2004-04-27 2010-08-11 株式会社日立製作所 クラスタ制御方法、クラスタ制御プログラム、クラスタシステムおよび待機サーバ
US7664948B2 (en) 2004-05-21 2010-02-16 Bea Systems, Inc. Certificate lookup and validation
WO2005114452A2 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture
US20060062177A1 (en) 2004-06-07 2006-03-23 Sarvesh Asthana Apparatus, and an associated method, for communicating data in header-reduced form
US7779081B2 (en) 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
JP4491308B2 (ja) 2004-09-24 2010-06-30 富士通株式会社 ネットワーク監視方法及びその装置
US20060106769A1 (en) 2004-11-12 2006-05-18 Gibbs Kevin A Method and system for autocompletion for languages having ideographs and phonetic characters
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US20060153068A1 (en) * 2004-12-17 2006-07-13 Ubiquity Software Corporation Systems and methods providing high availability for distributed systems
US20060190579A1 (en) 2005-02-23 2006-08-24 Alcatel Assisted command script template creation
US7464303B2 (en) * 2005-06-09 2008-12-09 International Business Machines Corporation Autonomically adjusting configuration parameters for a server when a different server fails
US8266327B2 (en) 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
US7702947B2 (en) 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US8140624B2 (en) 2005-12-01 2012-03-20 Computer Associates Think, Inc. Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US7756972B2 (en) * 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
US20070150600A1 (en) 2005-12-22 2007-06-28 International Business Machines Corporation Method and apparatus for collecting data for characterizing HTTP session workloads
EP1973037B1 (en) 2005-12-28 2012-08-29 International Business Machines Corporation Load distribution in client server system
US7979733B2 (en) * 2005-12-30 2011-07-12 Sap Ag Health check monitoring process
JP4715920B2 (ja) * 2006-03-29 2011-07-06 富士通株式会社 設定方法および管理装置
JP4519098B2 (ja) * 2006-03-30 2010-08-04 株式会社日立製作所 計算機の管理方法、計算機システム、及び管理プログラム
US8667120B2 (en) 2006-04-26 2014-03-04 Nippon Telegraph And Telephone Corporation Load control device and method thereof for controlling requests sent to a server
US20070260702A1 (en) 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US20070288604A1 (en) * 2006-06-08 2007-12-13 Jeffrey Mark Achtermann Method for determining optimal number of connections in multi-connection download configuration
JP4943079B2 (ja) 2006-07-25 2012-05-30 エヌ・ティ・ティ・コミュニケーションズ株式会社 センサ情報変換装置、センサ情報変換方法、及びセンサ情報通知方法
JP4690960B2 (ja) * 2006-07-28 2011-06-01 株式会社日立製作所 情報処理装置における表示方法
JP4916809B2 (ja) 2006-08-04 2012-04-18 日本電信電話株式会社 負荷分散制御装置および方法
US7640354B2 (en) 2006-12-01 2009-12-29 Microsoft Corporation Scalable differential compression of network data
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
JP5246157B2 (ja) * 2007-04-04 2013-07-24 富士通株式会社 負荷分散システム
US7809820B2 (en) 2007-07-17 2010-10-05 Microsoft Corporation Optimizing encrypted wide area network traffic
US7954014B2 (en) * 2007-09-18 2011-05-31 Sap Ag Health check framework for enterprise systems
JP2009116703A (ja) * 2007-11-07 2009-05-28 Ricoh Co Ltd 情報処理装置、情報処理方法及びプログラム
JP5082111B2 (ja) * 2008-01-31 2012-11-28 テックファーム株式会社 コンピュータシステム、サービス利用装置、制御方法、及びプログラム
US20090204885A1 (en) 2008-02-13 2009-08-13 Ellsworth Thomas N Automated management and publication of electronic content from mobile nodes
JP2009193427A (ja) 2008-02-15 2009-08-27 Casio Comput Co Ltd 電子機器の設定装置、設定方法、及び設定プログラム
US8621598B2 (en) * 2008-03-12 2013-12-31 Intuit Inc. Method and apparatus for securely invoking a rest API
US20090259736A1 (en) 2008-04-15 2009-10-15 Juniper Networks, Inc. Label-based target host configuration for a server load balancer
CN101291253B (zh) 2008-06-06 2011-04-20 中兴通讯股份有限公司 一种网管客户端基于图形界面的人机命令交互方法
US8095935B2 (en) 2008-06-26 2012-01-10 Microsoft Corporation Adapting message delivery assignments with hashing and mapping techniques
US9294705B2 (en) 2008-06-27 2016-03-22 Universal Electronics Inc. System and method for ubiquitous appliance control
WO2010012998A1 (en) 2008-07-30 2010-02-04 British Telecommunications Public Limited Company Header compression scheme
JP2010039661A (ja) * 2008-08-04 2010-02-18 Fujitsu Ltd サーバ負荷分散装置,方法およびプログラム
JP2010055499A (ja) * 2008-08-29 2010-03-11 Hitachi Ltd システム構築支援方法及びシステム構築支援システム
US8984046B2 (en) 2008-09-12 2015-03-17 International Business Machines Corporation Process management using representation state transfer architecture
JP2010113495A (ja) 2008-11-06 2010-05-20 Nomura Research Institute Ltd クラスタシステムおよびクラスタ制御方法
US8200800B2 (en) 2009-03-12 2012-06-12 International Business Machines Corporation Remotely administering a server
US8059653B1 (en) * 2009-03-12 2011-11-15 Brocade Communications Systems, Inc. Transaction and connection independent protocol load balancing
US8230336B2 (en) 2009-04-22 2012-07-24 Microsoft Corporation Efficient discovery, display, and autocompletion of links to wiki resources
US8078870B2 (en) * 2009-05-14 2011-12-13 Microsoft Corporation HTTP-based authentication
US8078902B2 (en) 2009-10-30 2011-12-13 Verizon Patent And Licensing, Inc. Fault surveillance and automatic fail-over processing in broker-based messaging systems and methods
US9122537B2 (en) * 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
US9219948B2 (en) 2009-11-17 2015-12-22 Broadcom Corporation Method and system for compression and decompression for handling web content
US20110145786A1 (en) 2009-12-15 2011-06-16 Microsoft Corporation Remote commands in a shell environment
US8463887B2 (en) * 2009-12-23 2013-06-11 Citrix Systems, Inc. Systems and methods for server surge protection in a multi-core system
JP2011150472A (ja) * 2010-01-20 2011-08-04 Nec Software Chubu Ltd ウェブサービスシステム、サーバ選択基準決定装置、サーバ選択基準決定方法およびプログラム
GB201004449D0 (en) 2010-02-22 2010-05-05 Corbett Sean Data accelerator
JP2011186810A (ja) 2010-03-09 2011-09-22 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
US8260757B1 (en) 2010-04-22 2012-09-04 Wal-Mart Stores, Inc. Data access layer
US8533337B2 (en) 2010-05-06 2013-09-10 Citrix Systems, Inc. Continuous upgrading of computers in a load balanced environment
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US9705977B2 (en) 2011-04-20 2017-07-11 Symantec Corporation Load balancing for network devices
US8693981B1 (en) 2011-06-17 2014-04-08 Cellco Partnership Monitoring persistent client connection status in a distributed server environment
US8775628B2 (en) * 2011-08-31 2014-07-08 Metaswitch Networks Ltd. Load balancing for SIP services
US8914521B2 (en) * 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment

Also Published As

Publication number Publication date
EP2761611A1 (en) 2014-08-06
US20130080628A1 (en) 2013-03-28
WO2013049238A3 (en) 2013-07-11
US20130080566A1 (en) 2013-03-28
US20130080510A1 (en) 2013-03-28
JP6198737B2 (ja) 2017-09-20
IN2014CN01324A (ja) 2015-04-24
JP6506383B2 (ja) 2019-04-24
US9733983B2 (en) 2017-08-15
EP2761450B1 (en) 2019-10-30
JP2018067960A (ja) 2018-04-26
US20140289838A1 (en) 2014-09-25
US8914521B2 (en) 2014-12-16
US20130080514A1 (en) 2013-03-28
JP6487401B2 (ja) 2019-03-20
JP2018067959A (ja) 2018-04-26
JP2014530434A (ja) 2014-11-17
JP6377113B2 (ja) 2018-08-22
CN103858157B (zh) 2017-02-15
CN103827828B (zh) 2017-09-12
US9069617B2 (en) 2015-06-30
JP2018125006A (ja) 2018-08-09
CN103858104B (zh) 2017-06-27
WO2013049390A3 (en) 2013-08-01
US9652293B2 (en) 2017-05-16
JP2014534491A (ja) 2014-12-18
WO2013049233A2 (en) 2013-04-04
US8782769B2 (en) 2014-07-15
WO2013049233A3 (en) 2013-08-01
JP2017062840A (ja) 2017-03-30
WO2013049238A2 (en) 2013-04-04
US8914502B2 (en) 2014-12-16
WO2013049236A1 (en) 2013-04-04
US20130080901A1 (en) 2013-03-28
JP2014529145A (ja) 2014-10-30
CN103827828A (zh) 2014-05-28
CN103917956A (zh) 2014-07-09
US9311155B2 (en) 2016-04-12
US9477528B2 (en) 2016-10-25
EP2761452A2 (en) 2014-08-06
JP6495010B2 (ja) 2019-04-03
JP6600373B2 (ja) 2019-10-30
WO2013049390A2 (en) 2013-04-04
US20130081128A1 (en) 2013-03-28
JP2017010587A (ja) 2017-01-12
CN103858157A (zh) 2014-06-11
CN103917956B (zh) 2017-07-28
EP2761611B1 (en) 2021-01-27
US20130080627A1 (en) 2013-03-28
CN103858104A (zh) 2014-06-11
US20130080656A1 (en) 2013-03-28
US9128764B2 (en) 2015-09-08
EP2761451B1 (en) 2019-10-30
JP2014534492A (ja) 2014-12-18
EP2761450A2 (en) 2014-08-06
JP6124898B2 (ja) 2017-05-10
JP6506827B2 (ja) 2019-04-24
EP2761451A2 (en) 2014-08-06

Similar Documents

Publication Publication Date Title
JP6600373B2 (ja) トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
US6597956B1 (en) Method and apparatus for controlling an extensible computing system
US9185054B2 (en) System and method for providing zero buffer copying in a middleware machine environment
US8706864B1 (en) Behavior monitoring and compliance for multi-tenant resources
US20140108664A1 (en) System and method for supporting port multiplexing in a server environment
US20080183991A1 (en) System and Method for Protecting Against Failure Through Geo-Redundancy in a SIP Server
US11418582B1 (en) Priority-based transport connection control
US20230069240A1 (en) Dynamic cloning of application infrastructures
CN112671554A (zh) 一种节点故障处理方法及相关装置
CN115550171A (zh) 一种基于软件定义的api网关的实现方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

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: 20161108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161121

R150 Certificate of patent or registration of utility model

Ref document number: 6047577

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