JP5015951B2 - Httpセッション負荷の特性を明らかにするデータを収集するための方法及び装置 - Google Patents

Httpセッション負荷の特性を明らかにするデータを収集するための方法及び装置 Download PDF

Info

Publication number
JP5015951B2
JP5015951B2 JP2008546389A JP2008546389A JP5015951B2 JP 5015951 B2 JP5015951 B2 JP 5015951B2 JP 2008546389 A JP2008546389 A JP 2008546389A JP 2008546389 A JP2008546389 A JP 2008546389A JP 5015951 B2 JP5015951 B2 JP 5015951B2
Authority
JP
Japan
Prior art keywords
session
http
computer system
redundant
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.)
Expired - Fee Related
Application number
JP2008546389A
Other languages
English (en)
Other versions
JP2009521741A (ja
Inventor
バースネス、エリック、ローレンス
サントスオッソ、ジョン、マシュー
ステッチャー、ジョン、ジョセフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009521741A publication Critical patent/JP2009521741A/ja
Application granted granted Critical
Publication of JP5015951B2 publication Critical patent/JP5015951B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/3447Performance evaluation by modeling
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/1027Persistence of sessions during load balancing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Description

本発明はデジタル・データ処理に関し、より詳細には、ネットワーク化されたデジタル・コンピュータ環境においてHTTPセッションを用いてクライアント要求に応答するサーバの動作に関する。
二十世紀の後半に、情報革命として知られる現象が始まった。情報革命は、いずれか一つの事象又は機械というよりも広い範囲の歴史的な出来事であるが、デジタル電子コンピュータ以上に情報革命を代表する単一の装置は現れていない。コンピュータ・システムの開発は、間違いなく革命であった。コンピュータ・システムは年々高速化し、より多くのデータを記憶するようになり、より多くの用途をユーザに提供している。同時に、コンピュータ・リソースのコストは一貫して減少しており、その結果、数年前には収集し、記憶し、処理するのに費用がかかり過ぎていた情報は、今ではコンピュータによって取り扱うことが採算性を持つようになっている。情報処理コストの減少は、製品設計、製造プロセス、リソース・スケジューリング、管理上の諸事、その他の多くの要因がより効果的に行われるため、生産性を雪だるま式に増加させる。
コンピュータ・コストの減少及びデジタル装置の一般的な可用性は、そうした装置に記憶される情報容量の急増をもたらした。非常に多くの情報がデジタル形式で記憶されると、当然のことながら、コンピュータ・システムから情報に広くアクセスできるようになることが望ましい。情報の容量によって、いずれの装置においても記憶性能が小さく見える。情報アクセスを改善するために、コンピュータ装置が互いに通信を行って情報を交換することを可能にする種々の技術が開発されている。おそらく、この分散型コンピュータの最も顕著な例は、インターネットを用いて世界中で利用可能になったリソースの集合体であるワールド・ワイド・ウェブ(単に「Web」として知られていることが多い)である。児童から高齢者に至るまでの人々が、ウェブを使うことを学んでおり、彼らの家又は職場の利便性からほぼ無限の多様な情報を見つけ出している。企業、行政、組織、さらには普通の個人でさえもが、知る価値のあるすべてのことがウェブ上のどこかで得られると期待される程、情報をウェブ上で利用可能にしている。
ウェブ、並びに、多数のデジタル・システム間のe−メール及び他の形式の通信及び分散処理のためのサポートを提供するインターネットは、多数のリンクによって接続されたデジタル装置(ノード)の異機種ネットワークであり、そのためネットワークのいずれか2つのノード間には典型的には多数の経路が存在し、インターネットにある程度の冗長性を与えている。データはパケットで送られ、各々のパケットは、宛先に到達するまで多数の連続するノードにわたってルーティングされる。
パケット・ルーティングの基本レベルでは、インターネットは、あらゆる任意のデータを1つのノードから別のノードに伝送することができるため、通信媒体と見なすことができる。しかしながら、インターネットの有用性は、ソース・ノード及び宛先ノードにおけるデータ交換を取り扱うアプリケーションに依存する。したがって、ウェブ・ブラウザ及び他のウェブ・アプリケーションの出現は、幅広いコンピュータ・プログラミング・スキルのない人々が基本的な情報伝送技術を個々の対話ベースで用いることができるようにすることによって、インターネットの使用を大きく拡大させた。
したがって、インターネット技術の有用性の向上は、インターネットが幅広く受け入れられるために重要であり、我々はこれが、将来の問題を解決するためのインターネット及び関連技術の継続的使用及び拡大についても当てはまると期待してもよいことを認識されたい。
ワールド・ワイド・ウェブは、対話型クライアント−サーバ・パラダイムを利用する。クライアント側で実行される対話型ブラウザ・アプリケーションが、ユーザ入力に応答して、サーバによって保持される(ホームページなどの)ウェブ・ページにアクセスすることにより、サーバ・アプリケーションとの間でハイパー・テキスト伝送プロトコル(HTTP)セッションと呼ばれる接続を確立する。サーバはリアルタイムで応答し、ブラウザはユーザに表示するための応答をフォーマットする。対話の最も基本的なレベルでは、HTTPセッションは、(ウェブ・ページなどの)所望のドキュメントのURLを送信することによってそのドキュメントを要求するクライアントと、要求されたドキュメントのコピーを送信することによって応答するサーバとからなるものに過ぎない。多くの場合、HTTPセッションは、極めて複雑なデータ交換に関係する。例えば、ユーザは、オンラインの小売業者にアクセスし、小売業者のオンライン・カタログの様々なアイテム(異なるウェブ・ページ)を閲覧し、関心のあるアイテムを見つけ出すための検索パラメータを与え、購入する特定のアイテムを選択し、料金請求及び届け先の情報を提供するなどといったことができ、これらの全ては単一のHTTPセッション内に含まれる。
HTTPセッション内の複雑な対話型データ交換をサポートするために、サーバは、あるセッションパーシステントデータ(session-persistent data)、すなわちセッション状態を維持するのに用いられ、そのセッションの間サーバ内に存在し続けるデータを維持することが一般に望ましい。このセッションパーシステントデータは、データ・パケットが交換され、クライアントがサーバの環境内の1つのウェブ・ページから別のウェブ・ページにナビゲートする際の、クライアント―サーバ間の相互交換の間サーバ内に存続する。一般に、セッションパーシステントデータは、クライアントとサーバとの間で伝送されるデータ・パケットの各々については繰り返されないが、クライアントから受信される入力又はサーバにより内部で生成されるデータによって更新することができる。このセッションパーシステントデータは、典型的には、サーバ内の、JAVA(登録商標)Beanのようなセッション・データ・オブジェクト内に維持される。
ウェブを介してクライアントに対してサーバ機能を提供するサーバにおいては、いつでも多数のクライアントがサーバに接続される可能性がある。すなわち、サーバ内にアクティブな多数のHTTPセッションが存在する可能性は常にある。典型的な大企業においては、サポートされなければならない同時アクティブ・セッションの数は、どのような単一のコンピュータ・システムの能力をもはるかに超える。さらに、多くの大企業においては、サーバを常に利用可能とする必要性が高い。したがって、多くのそうした企業は、サーバ・クラスタとも呼ばれる多数のサーバ・コンピュータ・システムを用いてウェブ・サービスを提供する。こうしたクラスタは、マルチプルシステムに対し処理パワーを付加するものであり、適正に構成されると、クラスタ内における個々のサーバ・システムのうちの1つ又は複数の故障又は他の使用不能状態が生じた場合にも、クライアントへのサービス拒否を防止するのに望ましい程度の冗長性をもたらすことができる。サーバ・システムの1つが故障した場合にシームレスなクライアント・インターフェースを提供するために、セッションパーシステントデータに冗長性を持たせて維持することが可能である。冗長性のあるセッションパーシステントデータを維持するための一般的な技術によれば、クライアントのためにサーバの機能を果たすクラスタの他のシステムの代わりに、セッションパーシステントデータのデータベースを維持する1つ又は複数のシステムをクラスタ内に設けることである。サーバ・システムのいずれかが故障した場合には、そのアクティブなセッションは、クラスタの1つ又は複数の他のサーバ・システムに割り当てることができ、対応するセッションパーシステントデータは、適切な1つ又は複数のサーバに与えられる。
セッションパーシステントデータとして維持されるデータの容量及びタイプは、サーバによって実行されているアプリケーションによって決まる。アプリケーションによっては、セッション毎にそれほど大きく変化しない最小量の状態データを維持するものもあるが、多くのアプリケーションは、セッションの間におけるサーバとのクライアントの対話履歴を表すはるかに複雑なセッション・データを維持する。そうしたアプリケーションにおいては、セッションが長くなり、クライアントがより多くのサーバと対話を行う場合、セッションパーシステントデータが蓄積する傾向がある。そうしたセッションパーシステントデータを保持する場合、サーバ・クラスタの利用可能なハードウェア・リソースの大部分が消費されることがある。
典型的な複雑なウェブ・サーバ環境においては、クライアントの代わりにサーバによって実行されている機能は、絶えず発展している。例えば、オンライン小売環境においては、ユーザに表示されるウェブ・ページは、新しいアイテム、製造中止アイテム、特別提供品などを反映するために絶えず更新されている。時々、企業は、そのウェブ・インターフェース全体を、改善された機能、グラフィックス、ナビゲーションなどを提供する改善バージョンに置き換えることがある。さらに、サーバ(オンライン小売業者)にアクセスするクライアント(顧客)の組は、サーバとの異なるパターンの対話を発展又は展開させることがある。
このクライアント−サーバ相互対話の流動性及び複雑性のために、サーバ内での使用パターンを予測するのは難しく、特に、維持されなければならないセッションパーシステントデータの容量と、それを維持するのに必要なリソースとを予測することは難しい。これらの使用パターンを予測する適切な手段がなければ、クライアントからの要求に対してサービスを提供し、冗長性を維持し、サーバの可用性を保障するために、適切なリソースが利用可能となることを保障するのは難しい。さらに、最適な形で利用可能なリソースを割り当てることは難しく、その結果、十分なリソースが利用可能な場合であっても、所望の機能性が損なわれることがある。
したがって、ウェブ・サーバのHTTPセッション内におけるクライアント−サーバ対話の特性を明らかにし、理解するための、改善された技術についての必要性が存在する。
多数のコンピュータ・システムを含むウェブ・サーバは、クライアントのためのHTTPセッション負荷を処理する他のシステムの代わりに、冗長セッションパーシステントデータのレポジトリ(例えばデータベース、これ以降、参照しやすいようにデータベースと呼ぶ)を維持する少なくとも1つのシステムを含む。セッション・アナライザが、HTTPセッション負荷の特性を明らかにするために、このデータベースから情報を抽出する。
好ましい実施形態においては、HTTPセッションは、クラスタ内の多数のサーバ・システムに割り当てられ、各々のサーバ・システムは、アクティブなHTTPセッションのそれぞれのサブセットを処理する。アプリケーション・サーバと、アプリケーション・サーバによってサポートされる1つ又は複数のアプリケーションとは、アクティブなHTTPセッションを処理するためにクラスタの各々のサーバ・システム上で実行される。アプリケーション・サーバは、好ましくはJAVA(登録商標)BeansであるHTTPセッション・データ・オブジェクトの形式でセッションパーシステントデータを維持するが、他の何らかの形式をとることもできる。クラスタはさらに、冗長セッションパーシステントデータのデータベースを維持する少なくとも1つのセッション冗長システムを含む。サーバ・システムのいずれかの故障又は他の使用不能状態が発生した場合に、故障したサーバ・システム上のアクティブなセッションに対応するセッションパーシステントデータを、冗長セッションパーシステントデータから回復することができる。アプリケーション・サーバは、アプリケーション・サーバ内のセッションパーシステントデータに変更が加えられ、応答がクライアントに伝送されたときに、セッション冗長システムの冗長セッションパーシステントデータを自動的に更新するための機能部を含む。好ましい実施形態として説明されたこの構成及び機能の区分は、変えることができる。
好ましい実施形態においては、セッション・アナライザは、データ・マイニング機能と知的推論機能との両方を行う。データ・マイニング機能は、セッション負荷の特性を明らかにするために、冗長セッションパーシステントデータのデータベースからデータを抽出する。このデータは、様々な形式のいずれかでシステム管理者などのユーザに提示することができる。任意の改善点として、アナライザは、抽出されたデータからルール・ベースのシステムを用いて推論を導くことができる知的推論機能を含む。好ましくは、これらの推論は、システム管理者又はそれに類する者が利用可能なチューニング・パラメータの調節に関するものであるが、他の推論を導くこともできる。
HTTPセッション負荷の特性を明らかにするための使いやすいツールを提供することによって、複雑なウェブ・サーバにおける適正なリソース計画及びチューニングが容易になる。HTTPセッション負荷の特性を明らかにすることによって得られたデータはまた、アプリケーション・プログラム自体の将来バージョンを設計する際に考えられる修正行為のために、過剰なリソース消費をもたらすウェブ・サーバ・アプリケーション・プログラムのこれらの特性を特定するのに役立つものとすることができる。さらに、セッション・データの冗長性及びクライアントへのサーバ可用性を保障する目的で、既に冗長セッションパーシステントデータのデータベースが維持されているため、この既存のデータベースからのHTTPセッション負荷データの抽出は、比較的小さな追加のシステム・オーバーヘッドしか必要としない。
本発明の構造及び動作の両方に関する本発明のさらなる詳細は、以下の詳細な説明と添付図面とを参照することによって最もよく理解することができる。
本発明の実施形態は、共通の参照番号が同じ部分を示す添付図面を参照しながら、単なる例として、以下により詳細に説明される。
インターネットの概要
本発明の実施形態の動作を説明する前に、インターネットの概要を簡単に説明する。
「インターネット」という用語は、「インターネットワーク」の短縮形であり、一般に、コンピュータ・ネットワークの分野では周知の、TCP/IPプロトコル・スイートを使用するコンピュータ・ネットワークの集合体を指す。TCP/IPは、「Transport Control Protocol/Internet Protocol」の頭字語であり、コンピュータ間の通信を容易にするソフトウェア・プロトコルである。
図1は、インターネットのハイレベル概念図である。インターネットは、予め確立されたトポロジーをもたず、新しいノードとリンクとを追加することによって無制限に拡張可能である。1つのノードは、他のノードに接続するあらゆる数のリンクを有することができ、これらのリンクは、異なるデータ容量及び他の特徴を有する種々の通信技術のいずれかを用いたものとすることができる。したがって、インターネットのトポロジーは、典型的にはいずれか2つのノード間に多数の可能な経路が存在する極めて複雑な相互接続ネットワークとなる。
「バックボーン」と呼ばれることもあるネットワークの中央部は、データ・パケットを受信して、これらをネットワークの他のノードに転送する、多数の高速ルータ101を含む。典型的には、各々のルータは、他のルータへの多数の接続を有し、これらの接続は高データ容量を有する。例えば、光ファイバ・リンクが高速ルータ101間に用いられる場合が多い。高速ルータに接続されるのは、図1においてノード102として示される、高速ルータのインターネット「バックボーン」へのアクセス・ポイントとして働くノードである。アクセス・ノード102もまた、高速ルータ101と他のネットワーク・ノードとの間でデータ・パケットをルーティングするように機能することから、ルータであるが、それらは典型的には低速接続を用いている。アクセス・ノードは、例えば、電話線又は手数料を徴収するその他の接続を通じてインターネットへのアクセスを提供する公共のインターネット・サービス・プロバイダであってもよく、又は、大企業の内部システムのためのアクセス・ノードであってもよい。普通は、各々のアクセス・ノード102は、冗長性を与えるために多数の高速ルータ101に接続されるが、これは必要条件ではない。各々のアクセス・ノードは、典型的には、多数のホスト・コンピュータ・システム103A、103B(総称して参照番号103と呼ばれる)へのアクセスを提供し、そのうちの2つのみが図1に示されている。ホスト103は、インターネットに接続されて、インターネット上で伝送されるデータ・パケットをソースとして生成するか又は最終宛先として受信するコンピュータ・システムである。ホスト103は、PCに対する大型メインフレーム・システムからハンドヘルド・ポータブル装置に至るまでのいずれかのタイプのコンピュータ・システムとすることができ、単一のホストがシステムのクラスタを表してもよい。ホストは、インターネットにアクセスするのに用いられる1つのアクセス・ノード102のみを有する(その場合は冗長ではない)ことが多いが、冗長性を持たせるためにそうしたアクセス・ノードを多数有してもよい。ホストとアクセス・ノードとの間の接続は、(電話線又は無線リンクのような)比較的低速である場合が多いが、高速リンクとすることもできる。主にインターネット上で情報を提供するように機能する大型インターネット・サーバのような幾つかのコンピュータ・システムの場合、ホストは、高速ルータ101に直接接続され、自分自身のアクセス・ノードとして働くこともできる。
図1はインターネットの概念図として意図されており、実際にはインターネット上のノード及び接続の数は図1に示されるよりもはるかに多く、接続のトポロジーは変わる場合があることが理解されるであろう。さらに、説明を明確にするために図1には示されていない接続タイプ及びアクセス形式の階層がさらに存在してもよいことが理解されるであろう。すなわち、ホストがバックボーンの高速ルータ101に到達するために接続する多数のタイプ又はクラスのアクセス・ノード102が存在してもよく、異なるホストが異なるレベルのアクセス・ノードで接続してもよい。厳密に言えば、インターネットは、それに結合される全ての装置を含み、PCのような小さいコンピュータ・システムがインターネットにログオンしたときには、それがインターネット・ノードとなってアドレスを有する(しかしアドレスは単に一時的なものであってもよい)という意味でインターネットの一部である。インターネット・バックボーン及びアクセス・ノードのルータ及び接続は、インターネットと呼ばれる場合が多い、すなわち、インターネットは、コンピュータ・システムの分散処理ネットワークに対して通信媒体と見なされる。一般に、「インターネット」は、ここでは通信媒体を説明する後者の意味で用いられるが、文脈に応じて、前者の意味で使用される場合がある。
ネットワーク・システムは、典型的にはクライアント・サーバ・アーキテクチャに従う。「クライアント」は、関係のない別のクラス又はグループのサービスを利用するクラス又はグループのメンバーである。インターネットなどのコンピュータ・ネットワークの分野では、クライアントとは、別のプログラムによって提供されるサービスを要求するプロセスである(すなわち、広義にはプログラム又はタスクである)。クライアント・プロセスは、他のプログラム又はサーバ自体に関し、いかなる動作の詳細も知ることを要さずに、要求されたサービスを利用する。ネットワーク・システムにおいては、クライアントは、普通は、別のコンピュータ(すなわちサーバ)によって提供される共有ネットワーク・リソースにアクセスするコンピュータである。
サーバは、典型的には、インターネットのような通信媒体を介してアクセス可能な1つ又は複数の遠隔コンピュータ・システムである。サーバは、情報ソースを走査し、検索する。ユーザによるそうした要求に基づいて、サーバは、クライアント・プロセスに対するサーバ応答として、フィルタにかけられた電子情報をユーザに提示する。第1のコンピュータ・システムにおいてクライアント・プロセスをアクティブとし、第2のコンピュータ・システムにおいてサーバ・プロセスをアクティブとすることができ、これらのプロセスは、通信媒体上で互いに通信し、多数のクライアントがサーバの情報収集能力を利用できるようになる。したがって、サーバは、ディスク・ドライブ上のデータのようなネットワーク及びそのリソースの全て又は一部へのアクセスを制御する管理ソフトウェアを走らせるネットワーク・コンピュータとして記述することができる。サーバとして作動するコンピュータにより、ネットワーク上でワークステーションとして働く複数のコンピュータがリソースを利用できるようになる。
クライアントとサーバは、ハイパー・テキスト伝送プロトコル(HTTP)によって提供される機能を利用して互いに通信することができる。ワールド・ワイド・ウェブ(WWW)又は単に「ウェブ」は、このプロトコルに準拠するインターネット上の全てのサーバを含み、これらはユニバーサル・リソース・ロケータ(URL)アドレスを介してクライアントにアクセス可能である。インターネット・サービスは、用いられるプロトコルとオブジェクト・パス名との2つの基本要素を有するユニバーサル・リソース・ロケータを指定することによって、アクセスすることができる。例えば、ユニバーサル・リソース・ロケータ・アドレス「http://www.uspto.gov」は、米国特許商標局のサーバのハイパー・テキスト伝送プロトコル(「http」)及び名称(「www.uspto.gov」)を指定する。サーバ名は、固有の数値(すなわちTCP/IPアドレス)と関連付けられる。サーバは、実際には全体としてサーバ機能を果たす多数のコンピュータ・システムを含むものとすることができるが、サーバは、それが応答する単一のTCP/IPアドレスを有するという意味で単一の「ホスト」であり、サーバの正確な構造(装置の数、機能の区分など)は、クライアントの目から隠されている。
クライアント内では第1のプロセスがアクティブであり、この第1のプロセスは、HTTPセッションを開始するためにサーバとの接続を確立し、確立されたHTTPセッション内でサーバにHTTP要求を送信し、HTTPセッション内でサーバからHTTP応答を受信し、情報をユーザに提示する。通常、この第1のプロセスは、対話型ブラウザ・アプリケーションである。サーバ自体は、情報をHTTP応答の形でクライアントに提示するための、対応するサーバ・ソフトウェアを実行する。HTTP応答は、ハイパー・テキスト・マークアップ言語(HTML)又は他のサーバ生成データから構成される「ウェブ・ページ」に対応する。
ブラウザは、サーバからウェブ・ページを取得し、それをクライアントにおけるユーザに表示する。「ウェブ・ページ」(「ページ」又は「ドキュメント」とも呼ばれる)は、典型的には、HTMLなどのハイパー・テキスト言語で書かれたデータ・ファイルであり、テキスト、グラフィック・イメージ、さらにはそのデータ・ファイルと関連付けられた音声記録又はムービー・ビデオ・クリップのようなマルチメディア・オブジェクトを有するものとすることができるが、ウェブ・ページは、単なるイメージとすることもできる。ハイパー・テキスト・ページは、コントロール・タグ及びデータを含む。コントロール・タグは、構造、例えば、見出し、副見出し、段落、リスト、及びイメージの埋め込みを識別する。データは、ユーザに対して表示又は再生される、テキスト又はマルチメディアなどのコンテンツからなる。ブラウザは、コントロール・タグを翻訳し、コントロール・タグによって指定された構造に従ってデータをフォーマットして、ブラウザがユーザに表示するか、再生するか、又は他の方法で実行する、可視オブジェクトを生成する。コントロール・タグは、別のソースからページを取得して、それをコントロール・タグによって指定された場所に配置するようにブラウザに指示することもある。このようにして、ブラウザは、スプレッドシート、テキスト、ホットリンク、ピクチャー、サウンド、チャットルーム及びビデオ・オブジェクトなどといった多数のコンポーネントを含む可視オブジェクトを構築することができる。ウェブ・ページは、1つ又は複数の個別のファイルをアクティブなディレクトリ又はファイル構造にロードすることによって構成することができ、次に、グラフィカル・ユーザ・インターフェース内で可視オブジェクトとして表示される。
前述の簡単なケースでは、情報伝送は基本的に一方向であり、クライアント・ブラウザが(そのURLによって所望のドキュメントを識別することにより)情報を要求し、サーバがそれを提供するのみである。HTTPセッション内でクライアントがサーバ指定フォーマットに従ってサーバに情報を提供することも可能である。サーバは、ウェブ上にHTMLフォームを提供することによって、クライアントからの情報が送信されるフォーマットを指定することができる。クライアント・ブラウザは、サーバにアクセスし、それがそのままいずれかのウェブ・ページとなるHTMLフォームを取得する。ブラウザは、ユーザに対話的表示を提供するためにHTMLフォームをフォーマットする。フォームは、典型的には、ユーザが入力データを指定することができる1つ又は複数の対話入力フィールドを含む。この入力データは、対話的入力フィールドにおいてユーザによって直接入力される(例えばクレジット・カード番号のような)テキスト・データ、又は、対話的入力フィールドにおいてユーザによって指定されたクライアント・システム上のファイルから得られるデータとすることができる。指定されたユーザ・データは、HTMLフォーム仕様にしたがってフォーマットされる。(複数の部分とすることができる「フォーム・データ」として知られる)このフォーマットされたユーザ・データは、次に、HTTP要求においてサーバに送信される。次に、サーバは、フォーム・データを含む要求を処理し、クライアントに適切に応答する。
単一のHTTPセッションは、クライアントからサーバへ及びサーバからクライアントへ向かう多数のデータ交換を含み、データをクライアントに提供するだけでなく、サーバ又は他の同様のシステムによって維持されるデータを更新するようにサーバに要求することができるため、双方向的HTTPセッション全体は、複雑な有限状態プロセスと見なすことができる。クライアントに適正にサービスするために、サーバは、典型的には、個々のアクティブなセッションの各々についてセッションパーシステントデータを維持し、このセッションパーシステントデータは、(HTTPセッションの後続する双方向的データ交換の各々によって更新される場合もあるが)セッションの期間中、サーバ内に存続する。
詳細な説明
図面を参照すると(幾つかの図面においては、同様の部分には同様の番号を付す)、図2は、典型的なウェブ・サーバ環境のハイレベル図であり、本発明の好ましい実施形態に係る、HTTPセッション負荷の特性を明らかにするためのものである。ウェブ・サービス企業は、コンピュータ・システムのクラスタ202(ここではウェブ・サーバと呼ばれる)を維持して、ウェブプレゼンスを提供する、すなわち、インターネット100上でアクセス可能な情報の1つ又は複数の対話型ウェブ・ページを生成する。インターネットに接続された他の装置からみれば、ウェブ・サーバ202は、単一のホスト・システム103である。インターネット100上で通信するクライアント201A−D(ここではまとめて機構201と呼ぶ)は、ウェブ・サーバ202に対し、サービス要求を生成する。ウェブ・サーバ・システムの少なくとも1つは、インターネットに接続されたゲートウェイ203である。ウェブ・サーバはさらに、多数のセッション・サーバ・システム205A−205C(ここではまとめて機構205と呼ぶ)と、少なくとも1つのセッション冗長データベース・システム206とを含む。ウェブ・サーバの種々のシステムは、ネットワーク204を介して互いに通信する。ネットワーク204は、イーサネット・ローカル・エリア・ネットワークのようなローカル・エリア・ネットワーク(LAN)であることが好ましいが、他のネットワークも可能である。
動作時に、ゲートウェイ203は、インターネット上でウェブ・サーバ202を宛先とするデータ・パケットを受信する。ゲートウェイ203は、各々のデータ・パケットについてウェブ・サーバ202内の適切な宛先を判定する。詳細には、クライアント201とウェブ・サーバ202との間のHTTPセッション接続の確立を要求するパケットが到着したときに、ゲートウェイ203は、そのセッションを取り扱うセッション・サーバ・システム205を選択する。セッションが確立されると、同一セッション内の同一クライアントからのその後の通信は、一般に、当初選択されたセッション・サーバ・システムにルーティングされ、その結果、1つセッション・サーバ・システムのみがいずれかの特定のセッションを処理する。セッション・サーバ・システムにセッションを割り当てるゲートウェイ・システムは、当該技術分野では周知であり、その割り当ては、現在公知の又は後に開発されるいずれかのアルゴリズム又は基準に基づくものとすることができる。典型的には、割り当ては、セッション・サーバ間の負荷をバランスさせようとするものであるが、他の又は付加的な事項が考慮されることもある。ゲートウェイ203は、図2においてはインターネット100とLAN204との間に置かれた単一システムとして表されているが、多数のシステム又は装置によってゲートウェイ機能が果たされてもよい。例えば、ルータが、インターネット100とLAN204との間でデータをルーティングし、一方、LAN204に接続された別個のシステムによって、異なるセッション・サーバにセッションを割り当てる機能が果たされてもよい。
セッション・サーバ205の機能は、ウェブ・サーバの代わりにセッション負荷を処理することである。セッション・サーバは、クライアントによって要求された情報を生成し、及び/又は、クライアントによって要求されたトランザクションを処理する。クライアントに送信される情報の場合には、このことは一般に、情報がHTMLドキュメントとして又はその他の適切なフォームでフォーマットされることを意味する。セッション・サーバは、要求されたすべてのサービスを単独で実行することができるが、より典型的には、セッション・サーバは、クライアントにサービスするために、データベース・システム207によって表される1つ又は複数の共有データベースにアクセスすることが必要となる。例えば、オンライン小売業者の場合、セッション・サーバは、小売業者のカタログを表すウェブ・ページのローカル・コピーを持つことができるが、一般には、顧客プロフィールを取得し、在庫を確認し、顧客の選択を記録し、オンライン商取引を完了するのに必要な他のすべての事項を行うために、共有データベースにアクセスすることが必要となる。幾つかの場合には、クライアントは単に共有データベースからの情報を必要としており、セッション・サーバは、主にデータベース・システム207にアクセスし、(例えばウェブ・ブラウザ上で見るために)データをクライアントに適したフォームでフォーマットするように機能する。セッション・サーバ205は、クライアント要求をサービスするためにクライアント201の代わりに共有データベース207にアクセスすることから、中間階層システム又は中間階層サーバと呼ばれることもある。
多数のセッション・サーバが用いるための共有データベースを維持するデータベース・システム207は、ウェブ・サーバ企業の一部であってもよく、又は、ウェブ・サーバ企業とは完全に無関係に維持されるデータベースであってもよい。データベース・システム207は、ウェブ・サーバ企業内部のデータベース・システムの場合に典型的なようにLAN204に結合されて示されているが、インターネットを含むいずれかの通信リンク若しくはネットワーク又はそれらの組み合わせを介して、セッション・サーバ205と通信してもよい。
セッション・サーバ205とは別個の少なくとも1つのセッション冗長データベース・システム206は、ここでは冗長セッション・データベースとも呼ばれる冗長セッションパーシステントデータのデータベースを維持する。通常は、冗長セッション・データベースの目的は、データ損失を防止し、セッション・サーバ205の1つが使用不能状態になった場合にシームレスな回復をもたらすことである。詳細には、セッション・サーバ205が使用不能になった場合には、ゲートウェイ203は、クライアントから新しいデータ・パケットが到着したときに、使用不能セッション・サーバ上のアクティブなセッションの各々についてそれぞれの代替セッション・サーバを選択する。以前に確立されたセッションに関するデータ・パケットは、それらが関連するセッションのセッション識別子を含む。このセッションが、現在使用不能なセッション・サーバに既に割り当てられていたと判定されると、ゲートウェイは、それを後続セッション・サーバに割り当てて、適宜ルーティングする。後続セッション・サーバは、セッション冗長データベース・システム206にアクセスして、(そうでなければ使用不能セッション・サーバによって維持されていた)セッションのセッションパーシステントデータを得る。後続セッション・サーバは、冗長セッション・データベースのデータからセッションの状態を再構成して、使用不能なサーバがやり残したセッションの処理を続行することができる。クライアントは、セッション・サーバの代替が行われたことを決して知ることはなく、クライアントにとってはプロセス全体がシームレスに見える。
本発明の好ましい実施形態によれば、セッション冗長データベース・システム206における冗長セッション・データベースは、その本来の目的の範囲外の付加的な目的のために用いられる。詳細には、セッション冗長データベースのデータは、ウェブ・サーバ202内のセッション負荷の特性を明らかにするために分析され、使用される。セッション冗長データベース・システムの動作を、ここでさらに詳しく説明する。
図2は、典型的なウェブ・サーバ環境をハイレベルの一般概念で表すことを意図されており、そうした環境のすべてのコンポーネント又はウェブ・サーバ環境のすべての可能な組み合わせを詳細に表すようには意図されていない。図2の環境表現の多くの変化形が可能であり、特に以下のことが可能で、ここでの特定の変化形の説明は、限定的なものではなく単なる例であることが意図されている。説明する目的で単一のゲートウェイ203及び単一のLAN204が示されているが、単一のゲートウェイ・システム及び単一のLANの使用は、単一のコンポーネントの故障がウェブ・サーバ全体をダウンさせることがあるため、信頼性及び可用性を損なうことが明らかである。したがって、ウェブ・サーバ・クラスタのシステムの間で多数の冗長ゲートウェイ・システム及び多数の冗長通信経路を提供することが一般的である。さらに、データベース・システム207は単一のモノリシック・エンティティとして示されているが、実際には、分散方式でデータが格納され及び/又は動作が実行される多数のコンピュータ・システムを含むものとすることができる。実際には、すべてが同じセッション・サーバの組によってアクセスされる、異なる編成及びインターフェースを有する多数のデータベースが存在してもよく、1つ又は複数のデータベースは、多数のシステム上に冗長に格納されてもよい。ネットワーク204はローカル・エリア・ネットワークとして説明されるが、ネットワークは、種々のウェブ・サーバ装置が互いに通信できるようにする通信リンク、ネットワーク、又はネットワークの組み合わせのいずれかの組とすることができ、冗長リンクを含んでもよい。4つのクライアント201は、単一のユーザ・ワークステーションとして表されているが、クライアントは、ウェブ・サーバへのサービス要求を生成するいずれかのエンティティとすることができ、大きなマルチユーザ・システム上で実行するプロセスを含むことができ、さらに、クライアントの数は、変わる場合があり、典型的には図2において説明の目的で表された4つのクライアントよりはるかに多い。
図3は、好ましい実施形態に係る、ウェブ・サーバ202のコンピュータ・システム300における主要なハードウェア・コンポーネントのハイレベル・ブロック図である。システム300は、セッション・サーバ・システム205のハードウェア・コンポーネント、セッション冗長データベース・システム206のハードウェア・コンポーネント、又は、他の何らかのシステムのハードウェア・コンポーネントを表すことができる、一般的なシステム表現である。CPU301は、命令を実行し、メイン・メモリ302からのデータを処理する、少なくとも1つの汎用プログラマブル・プロセッサである。メイン・メモリ302は、データがストレージからロードされるか又はそうでなければCPU301による処理のための、種々のメモリ技術のいずれかを用いるランダム・アクセス・メモリであることが好ましい。
1つ又は複数の通信バス305は、CPU301と、メイン・メモリ302と、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる種々のI/Oインターフェース・ユニット311−314との間でデータを伝送するためのデータ通信経路を提供する。I/Oインターフェース・ユニットは、種々のストレージ及びI/O装置との通信をサポートする。例えば、端末インターフェース・ユニット311は、1つ又は複数のユーザ端末321−324の接続をサポートする。ストレージ・インターフェース・ユニット312は、1つ又は複数の直接アクセス・ストレージ装置(DASD)325−327(これらは、典型的には回転式磁気ディスク・ドライブ・ストレージ装置であるが、ホストにとって単一の大型ストレージ装置として見えるように構成されたディスク・ドライブのアレイを含む他の装置とすることもできる)の接続をサポートする。I/Oデバイス・インターフェース・ユニット313は、プリンタ328及びファックス機329といった様々な他のタイプのI/O装置のいずれかの接続をサポートし、他のタイプ又は付加的なタイプのI/O装置を用いることもできることが理解される。ネットワーク・インターフェース314は、1つ又は複数の他のデジタル装置と通信するための1つ又は複数の外部ネットワーク330との接続をサポートする。ネットワーク330は、ネットワーク204又は多数のネットワークのいくつかの組のいずれかを表すものとすることができ、当該技術分野では公知の種々のローカル・エリア・ネットワーク又はワイド・エリア・ネットワークのいずれかとして具体化することができる。
図3はシステム300の代表的な主要コンポーネントをハイレベルで示すように意図されており、個々のコンポーネントは図3に表されるものよりはるかに複雑な場合があり、図3に表されるもの以外のコンポーネント又は付加的なコンポーネントが存在してもよく、こうしたコンポーネントの数、タイプ、及び構成は変わる場合があり、大規模コンピュータ・システムは典型的には図3に表されるより多くのコンポーネントを有することを理解されたい。本明細書においては、こうした付加的な複雑形又は付加的な変化形の幾つかの特定の例が開示されており、これらは単なる例であって必ずしもこうした変化形のみである必要はないことが理解される。
図3には説明する目的で単一のCPU301のみが示されているが、コンピュータ・システム300は、当該技術分野では公知のように、多数のCPUを含んでもよい。メイン・メモリ302は、単一のモノリシック・エンティティとして図3に示されているが、メモリ302は、実際には、当該技術分野では公知のように、分散型及び/又は階層型とすることができる。例えば、メモリは、多数のレベルのキャッシュの形で存在してもよく、これらのキャッシュはさらに、1つのキャッシュが命令を保持する一方で別のキャッシュが1つ又は複数のプロセッサによって用いられる非命令データを保持するように、機能によって分けられてもよい。メモリはさらに、種々のいわゆる非均一メモリ・アクセス(NUMA)コンピュータ・アーキテクチャのいずれかで知られているように、分散させて、異なるCPU又はCPUの組と関連付けることができる。通信バス305は、図3において単一のエンティティとして示されているが、実際には、種々のシステム・コンポーネント間の通信は、典型的にはより高速の経路がCPU301とメモリ302との間の通信のために用いられ、より低速の経路がI/Oインターフェース・ユニット311−314との通信のために用いられる、バス、インターフェースなどの複雑な階層によって実現される。バス305は、階層におけるポイント・ツー・ポイント・リンク、スター型又はウェブ型構成、多数の階層バス、並列経路及び冗長経路などといった、種々の形態のいずれかで構成してもよい。例えば、NUMAアーキテクチャでは公知のように、通信経路は、ノードベースで構成される。バスは、例えば、業界標準のPCIバス又は他のいずれかの適切なバス技術を用いることができる。種々のI/O装置につながる種々の通信経路とシステム・バス305とを隔てる多数のI/Oインターフェース・ユニットが示されているが、I/O装置の幾つか又はすべてを1つ又は複数のシステム・バスに直接接続することもできる。
図3に示されるコンピュータ・システム300は、マルチユーザ「メインフレーム」コンピュータ・システムでは典型的なように、接続された多数の端末321−324を有する。接続されるデバイスの実際の数は変わる場合があり、本発明は、いずれかの特定のサイズのシステムに限定されない。コンピュータ・システム300にアクセスするユーザ・ワークステーション又は端末はまた、ネットワーク330上のシステム300に接続されて通信を行うことがある。あるいは、コンピュータ・システム300は、接続される端末を含まないシステム、又は、単一のユーザ・ディスプレイとキーボード入力のみを有する単一のオペレータ・コンソールのみを含むシステムであってもよい。さらに、本明細書における本発明の特定の機能は、説明する目的で単一のコンピュータ・システムにおいて具体化されるものとして説明されるが、これらの機能は、本明細書において説明される異なる機能又はステップが異なるコンピュータ・システム上で実行される、互いに通信するコンピュータ・システムの分散型ネットワークを用いて実装することもできる。
種々のシステム・コンポーネントがハイレベルで説明され図示されたが、典型的なコンピュータ・システムは、図示されていない他の多くのコンポーネントを含み、これらは本発明の理解のために必須のものではないことを理解されたい。好ましい実施形態においては、コンピュータ・システム300は、IBMi/Series(商標)アーキテクチャに基づくコンピュータ・システムであり、本発明は他のコンピュータ・システム上に実装できることが理解される。
図4は、好ましい実施形態に係る、メモリ302のコンポーネントとして表される、セッション・サーバ205の主要なソフトウェア・コンポーネントの概念図である。オペレーティング・システム・カーネル401は、当該技術分野では公知のように、デバイス・インターフェース、メモリ・ページの管理、多数のタスクの管理及びディスパッチなどといった種々の低レベル・ソフトウェア機能を提供する、実行可能コード及び状態データである。特に、オペレーティング・システム401は、少なくとも1つのネットワーク・アクセス機能402を含む。ネットワーク・アクセス機能402は、ネットワーク・インターフェース314を通じて1つ又は複数の外部ネットワーク、具体的にはネットワーク204と通信するソフトウェアである。ネットワーク・アクセス機能402は一般に、セッション・サーバ・システム205において実行されるアプリケーションの代わりにネットワーク通信を取り扱い、セッション・サーバ・システム205は特に、中間階層セッション・アプリケーション405、406の代わりに機能を実行するアプリケーション・サーバ404を含む。ネットワーク・アクセス機能402は、オペレーティング・システム・カーネル401の一部として示されているが、別個のソフトウェア・モジュールとすることもできる。
セッション・サーバ機能部403は、HTTPセッション内においてクライアントの代わりにサービスを実行する。セッション・サーバ機能部403は、必要に応じてクライアント要求を処理するためにクライアントの代わりに1つ又は複数の共有データベース207にアクセスすることから、中間階層機能部と見なすことができる。セッション・サーバ機能部403は、インターネット100上でセッション・サーバ・システム205と通信する多数のクライアント201に対話型ワールド・ワイド・ウェブ・インターフェースを提示する。すなわち、セッション・サーバ機能部403は、クライアント・システム201において実行されるウェブ・ブラウザ・アプリケーションで閲覧するための対話型ウェブ・ページを、HTML又は他の適切なフォーマットで生成する。クライアント201に対しては、セッション・サーバ機能部403はサーバとして機能し、クライアントは、セッション・サーバ機能部403の背後にあるいずれかのデータベース又は他のアプリケーションを認識しない。特に、クライアントは、冗長セッション・データを維持するいずれの機能又はアプリケーションも認識しない。
好ましい実施形態においては、セッション・サーバ機能部403は、アプリケーション・サーバ404と、1つ又は複数のセッション・サーバ・アプリケーション405、406(そのうち2つが図4に示されているが、その数は変わる場合があることが理解できる)とを含む。アプリケーション・サーバ404は、クライアント−サーバ環境において中間階層アプリケーションを一般にサポートするためのフレームワーク又はシェルであり、特にクライアントがインターネット上で中間階層にアクセスする対話型ウェブ・ブラウザ・アプリケーションである場合のアプリケーションをサポートするためのフレームワーク又はシェルである。他の機構のなかで、アプリケーション・サーバ404は、一般に用いられる種々のネイティブ・データベース・フォーマットでデータベース207にアクセスするための機能の組、すなわちそれぞれのHTTPセッション内でクライアント201との通信を取り扱うための機能の組(接続機能部)を含む。セッション・サーバ・アプリケーション405、406は、クライアント103の代わりに特定のサーバ機能の一部の組を実行するために開発されたコードである。アプリケーション・サーバ404は、入ってくるクライアント要求データをアプリケーション405、406に与える。これらの要求は、共有データのデータベース207にアクセスすることが必要な場合が多いが、幾つかのアプリケーションはそうしたアクセスを必要としないことがある。アプリケーション405、406は、データベースへのアクセスを必要とする場合には、アプリケーション・サーバ404の接続機能部を呼び出してデータベース・システム207にアクセスする。アプリケーション・サーバ404は、データベースからの応答を受信し、それらの応答は一般に適切なアプリケーションに転送される。クライアントへのデータ応答は、アプリケーション405、406によって生成され、アプリケーション・サーバ404を通じて伝送される。アプリケーション405、406は、アクセスされるアプリケーション又はデータベースから独立した共通インターフェース407を通して、アプリケーション・サーバ404と通信する。好ましい実施形態においては、インターフェース407は、JAVA 2 Enterprise Edition(J2EE)インターフェース仕様に準拠するが、他のインターフェースが用いられてもよい。好ましい実施形態においては、アプリケーション・サーバ404は、IBM WEBSPHERE(商標)アプリケーション・サーバであり、他の形式のアプリケーション・サーバ機能部を用いることもできることが理解される。
アプリケーション・サーバ404は、HTTPセッションパーシステントデータを維持するセッション・オブジェクト・マネージャ機能408を含む。好ましくは、セッションパーシステントデータは、多数のセッションパーシステントデータ・オブジェクト411−414の形で維持され、詳細には、各々のセッションパーシステントデータ・オブジェクト411−414は、Sun Microsystemsによって広められたEnterprise JAVA Bean(EJB)仕様に準拠するデータ構造であることが好ましく、セッションパーシステントデータは他の形式で維持できることが理解される。アクティブなセッションの各々について1つのセッションパーシステントデータ・オブジェクトが存在する。セッションパーシステントデータ・オブジェクト411−414の各々は、セッションの寿命の間セッション・サーバ内に存続し、典型的には、セッションが終わるときに消去される。図4には4つのセッションパーシステントデータ・オブジェクト411−414が示されており、セッション・オブジェクトの数と、いずれかの所与の時点にけるアクティブなセッションの数は、典型的には、はるかに多いことが理解される。セッション・オブジェクト・マネージャ408は、セッションパーシステントデータ・オブジェクトからデータを取得し、データを更新することなどのために、該セッションパーシステントデータ・オブジェクトにアクセスするアクセス機能を備える。セッション・オブジェクト・マネージャ408はまた、新しいセッションパーシステントデータ・オブジェクトを割り当て、セッションが終わるときにオブジェクトの割り当てを解除する。
アプリケーション・サーバ404はさらに、データ・オブジェクト411−414におけるセッションパーシステントデータについて冗長性を自動的に提供する、セッションパーシステントデータ冗長機能409を含む。詳細には、セッションパーシステントデータ・オブジェクト411−414が割り当てられ、修正され、割り当て解除される際に、冗長機能409が、割り当て、修正、及び割り当て解除を含む冗長データをネットワーク204上のセッション冗長データベース・システム206に伝送する。冗長システム206は、冗長機能409からのこの冗長データを用いて、冗長セッション・データのデータベースを維持する。冗長システム206は、冗長システム206における冗長セッション・データのデータベースが一般にウェブ・サーバにおけるすべてのアクティブなHTTPセッションのそれぞれの現在のセッション状態を表すように(伝送遅延を無視する、他の処理遅延などをキューに入れるなど)、ウェブ・サーバ202を形成するシステム・クラスタのすべてのサーバ・システムから冗長データを受信する。
冗長機能409は、クライアント201へ送出されるメッセージを伝送するのとほぼ同時に、冗長データ更新メッセージを冗長システム206に伝送する。すなわち、セッション・サーバにおける処理の結果としてのセッションパーシステントデータの変化は、セッション・サーバがクライアントへの応答を伝送する準備ができるまで、セッション・サーバ205に保持され蓄積される。応答がクライアントに伝送されたときに、冗長機能409は同時に、蓄積されたセッションパーシステントデータの変化を冗長システム206に伝送する。このようにして、クライアントのそれぞれからのセッション・データ状態のみが冗長システム206に維持される。
セッション・サーバ205は、典型的には、図4には示されていない付加的なデータを含む。例えば、セッション・サーバ205は、クライアントへの応答を生成する際に、共有データベース・システム207からの幾つかのデータ、及び/又は、セッション・サーバ・アプリケーション405、406によって用いられる幾つかのウェブ・ページをキャッシュすることができる。様々な他の状態データは、セッション・サーバによって維持することができる。
図5は、好ましい実施形態に係る、メモリ302のコンポーネントとして表される、セッション冗長データベース・システム206の主要なソフトウェア・コンポーネントの概念図である。オペレーティング・システム・カーネル501及びネットワーク・アクセス機能502は、それぞれ、セッション・サーバ・システム205のオペレーティング・システム・カーネル401及びネットワーク・アクセス機能402と同様の機能を提供する。提供される機能は同様であるが、オペレーティング・システム401及び501は必ずしも同じものである必要はない(しかしながら、それらは同じものとすることもできる)。ネットワーク・アクセス機能502は、ネットワーク・インターフェース314を通じて、具体的にはネットワーク104を含む1つ又は複数のネットワークに通信する。ネットワーク・アクセス機能502は、一般に、具体的にはデータベース管理システム511を含む冗長データベース・システム206において実行されるアプリケーションの代わりに、ネットワーク通信を取り扱う。ネットワーク・アクセス機能502は、オペレーティング・システム・カーネル501の一部として示されているが、別個のソフトウェア・モジュールとすることもできる。
構造化データベース503は、種々のセッション・サーバ205の代わりに冗長セッションパーシステントデータを維持する。データベース503は、当該技術分野では周知のように、1つ又は複数のテーブル504(図5においてはそのうち1つが示されている)を含み、各々のテーブルは複数のエントリ又はレコードを有し、各々のエントリは少なくとも1つの(普通は多くの)フィールドを含む。データベース・テーブル504(又は複数のテーブル)は、特定のセッションを再構成するためにアクセス可能な方法で編成された冗長セッションパーシステントデータを含む。1つ又は複数のデータベース・テーブルと関連付けられるのは、メタデータと呼ばれることもある1つ又は複数の補助データ構造505−508である。補助データ構造は、データベース及びその中のデータの構造を特徴付けるものであり、データベース管理に関係する種々のタスクにおいて、特にデータベースに対するクエリを実行するのに役立つ。補助データ構造の例として、データベース・インデックス505、ヒストグラム506、及び履歴データ507が挙げられており、他のタイプのメタデータが存在してもよいことが理解される。
データベース管理システム511は、データベース503の管理のための基本機能を備える。データベース管理システム511は、理論上は、関連情報を有することもそうでないこともある任意の数のデータベース・テーブルをサポートするが、図5には1つのテーブルのみが示されている。データベース管理システム511は、ユーザが、データベースを定義すること、データベースの定義を変更すること、データベースの記録を生成し編集し削除すること、データベースから記録を取得すること、データベース・インデックスを定義することなどといった基本的なデータベース操作を実行できるようにすることが好ましい。
データベース管理システム511は、データベースを管理するための一般的に用いられる様々な機能を有する汎用データベース管理システムであることが好ましい。すなわち、データベース503は、冗長セッションパーシステントデータを維持する目的で存在し、したがって他のデータベースにおいて用いられる特定の機能を必要としなくてもよいが、完全な機能を有する汎用データベース・ソフトウェアを用いて実装されることが好ましい。データベース管理ソフトウェアは、(特にセッションパーシステントデータのために設計された特注のデータベース・ソフトウェアとは対照的に)ほぼあらゆるタイプのデータベースを管理するように設計された汎用データベース・マネージャであるため、これらの機能はデータベース管理ソフトウェアに存在する。
データベース管理システム511によってサポートされる機能の中には、外部プロセスからコマンドを受け取るためのアプリケーション・プログラミング・インターフェース(API)512、データベースのデータに対する複雑なクエリを実行するためのクエリ・エンジン513、及び、データベースのアクティビティを監視して履歴メタデータ507の履歴統計情報を生成するためのモニタ514がある。データベース管理システム511はさらに、より高度な様々なデータベース機能のいずれかを含んでもよい。図5においては、データベース管理システム511は、オペレーティング・システム・カーネル501とは別個のエンティティとして表されているが、幾つかのコンピュータ・アーキテクチャにおいては、種々のデータベース管理機能がオペレーティング・システムと統合されることが理解されるであろう。
内部状態情報及び他のデータに加えて、データベース管理システム511は、実行の間に、データ構造508−509として表される多くの一時データ構造を生成することができる。特に、これらの一時構造は、中間クエリ結果を保持するためにクエリ実行の間に生成される場合が多い。こうした一時構造の数は、大きく変わる場合があり、極めて多くなることがある。
図5においては、1つのデータベース・テーブル504と、1つのインデックス505と、1つのヒストグラム506と、1つの履歴データ・テーブル507とを含む1つのデータベース503が示されているが、こうしたエンティティの数は変わる場合があり、極めて多くなることがある。コンピュータ・システムは、多数のデータベース・テーブルを含んでもよく、それに、多数のインデックス、ヒストグラム、又は図示されていない他の補助データ構造を関連付けることができる。あるいは、図5に表される幾つかのエンティティは、すべてのデータベースに存在していなくてもよい。図5においては、データベース管理システム511は、データベース503の一部として表されているが、実行可能コードであるデータベース管理システムは、「データベース」すなわちデータとは別個のエンティティであると見なされることもある。
好ましい実施形態においては、別個のセッション・アナライザ515は、セッション・サーバ205におけるセッション負荷の特性を明らかにするために、データベース503からデータを取得する。セッション・アナライザ515は、図5においては、セッション冗長データベース・システム206内に存在するものとして表されている。しかしながら、データベース503から独立したソフトウェア・エンティティであるセッション・アナライザ515は、LAN204に接続された他の何らかのシステム上に存在するか、又は、より遠隔に接続されたシステム上に存在することもできる。セッション・アナライザ515は、典型的には、システム管理者又はウェブ・サーバ企業のそれに相当する者によって用いられる機能部であり、一般に公衆が利用可能なものではない。セッション・アナライザ515は、コマンドを入力し結果を見るための対話型ユーザ・インターフェース516を含むことが好ましい。セッション・アナライザ515は、ネットワーク上で接続された遠隔端末からアクセスすることができるが、一般にアクセスは制限されることになり、システム206のローカル端末からのみアクセス可能とすることができる。
セッション・アナライザ515は、データ・マイニング機能517を含み、必要に応じて、ルール・ベースのインテリジェント推論機能518を含む。データ・マイニング機能517は、セッション負荷の特性を明らかにするのに役立つデータを収集する。特に、データ・マイニング機能は、データベースのクエリ、データベース・アクティビティの監視などを実行するために、標準データベース管理機能を用いてAPI512を通じてデータベース管理システム511にアクセスし、データベース503から情報を取得する。これらの機能は、上述のようにデータベース管理システム511において利用可能であるが、通常は、冗長セッションパーシステントデータを維持し提供するためには用いられない。マイニング機能517によってマイニングされたデータは、時間の経過とともに蓄積され、履歴データとして履歴データ・ファイル519に保存することができる。インテリジェント推論機能518は、データ・マイニング機能517によって収集されたデータを用いてセッション・システム205及び/又は冗長システム206の設定可能なチューニング・パラメータを変更するためのチューニング推奨(tuning recommendation)をトリガする、ルール・ベースのエキスパート・システムである。セッション・アナライザ機能515は、本明細書においてさらに詳しく説明される。
図4及び/又は図5においては、種々のソフトウェア・エンティティは、別個のエンティティとして、又は他のエンティティ内に含まれるものとして、表されている。しかしながら、この表現は単なる説明のためであって、特定のモジュール又はデータ・エンティティを別個のエンティティ又は共通のモジュール若しくはモジュールのパッケージの一部とすることができると理解される。さらに、図4及び図5の概念的な表現においては、特定の数及びタイプのソフトウェア・エンティティが示されているが、こうしたエンティティの実際の数は変わる場合があり、特に、複雑なウェブ・サーバ環境においては、こうしたエンティティの数及び複雑さは典型的には極めて大きいことが理解される。さらに、図4及び図5においては、種々のソフトウェア・コンポーネントは、2つのコンピュータ・システム上に示されているが、これらのエンティティは、2つ以外の多くのシステムに含まれてもよい。
図4及び図5のソフトウェア・コンポーネントは、メモリ302に存在するものとして概念的に示されているが、コンピュータ・システムのメモリは、一般にすべてのプログラム及びデータを同時に保持するには小さすぎるものであり、情報は、典型的には、回転磁気ディスク・ドライブのような1つ又は複数のマス・ストレージ装置を含むデータ・ストレージ装置325−327に格納され、情報は、必要に応じてオペレーティング・システムによってメモリ内にページ化されることが理解される。特に、データベース503は、典型的にはメモリにロードするには大きすぎるものであり、典型的には、データベース・レコードの総数のうちのほんの一部が一度にメモリ内にロードされる。データベース503全体は、典型的には、ディスク・ストレージ325−327に記録される。さらに、図4及び図5の概念的表現は、いずれかの特定のメモリ編成モデルを意味することは意図されておらず、システム205又はシステム206は、単一アドレス空間仮想メモリを利用するか、又は、オーバーラップする複数の仮想アドレス空間を利用できることが理解される。
好ましい実施形態によれば、セッション・サーバ205上で実行されるセッション・アプリケーション405、406は、クライアントのトランザクション要求を処理する。セッション・アプリケーション405、406は、アプリケーション・サーバ404の機能を用いて、セッション状態データが維持されるセッションパーシステントデータ・オブジェクト411−414を管理する。アプリケーション・サーバ404は、セッションの間に変化が生じたときにセッションパーシステントデータ・オブジェクト411−414の状態データをセッション冗長データベース・システム206に自動的にバックアップして、冗長セッションパーシステントデータベース503が現在のセッション状態を反映し、データベースへの変化がセッション・アクティビティを反映するようにする。
図6は、好ましい実施形態に係る、クライアント要求をサービスし、セッション状態データを維持するプロセスをハイレベルで示すフロー図である。図6を参照すると、フロー図は、縦方向に走る3つの部分に分割されており、これらは、クライアント201、セッション・サーバ205、及びセッション冗長データベース・システム206の各々において実行されるアクションを示す。
クライアントは、ウェブ・サーバからの遠隔サービスについての要求を作成し、その要求をインターネット上でウェブ・サーバに伝送して、ウェブ・サーバにおけるセッションを開始する(ステップ601)。好ましい実施形態においては、クライアントは、対話型ウェブ・ブラウザ・プロセスを実行し、最初の要求は、典型的には、ウェブ・サーバによって維持されるホーム・ページなどのウェブ・ページにアクセスするための要求である。ウェブ・サーバのゲートウェイにおいて要求が受け取られると、セッションが生成され、その要求がセッション・サーバに割り当てられる(ステップ602)。次に、セッション・サーバは、クライアントのサブミッションを処理して、適切な応答を生成する(ステップ603)。処理は、セッション・サーバ・アプリケーション及び要求の性質に応じて、任意の複雑さの任意の数のステップを含むものとすることができる。ステップ603によって表されるサブミッションの処理は、必要に応じて、共有データベース・システム207のデータにアクセスすることを含んでもよい。要求の処理は、セッション状態を記録するためにセッションパーシステントデータ・オブジェクトを割り当てることと、必要なときにセッションパーシステントデータを更新することを含む。
クライアント・サブミッションの処理が終了したときに、セッション・サーバ205は、クライアントに応答を伝送する(ステップ604)。クライアントのブラウザは、応答を受信し、それをクライアントが閲覧できる形式(ウェブ・ページ)に表現する(ステップ605)。ステップ604においてクライアントに応答を伝送するのと同時に、セッション・サーバは、セッション冗長データベース・システム206にもセッション状態更新メッセージを伝送する。メッセージは、セッション・オブジェクトが新しいセッションのために割り当てられ、現在のセッション状態データを含むことを示す。メッセージに応答して、冗長システム206は、新しいセッションのための新しいエントリをデータベース503に生成し、この新しいデータベース・エントリは、セッションパーシステントデータ・オブジェクトに含まれるセッション状態データを記録する(ステップ607)。データベース503のエントリは、セッション・サーバの使用不能時に新しいセッションパーシステントデータ・オブジェクトを再構成できるようにすべてのセッションパーシステントデータを記録するが、セッションパーシステントデータ・オブジェクトに用いられる同一のデータ構造又はフォーマットを用いるすべてのデータを必ずしも記録するわけではない。
次に、クライアントは、1つ又は複数の追加のデータ・サブミッションを作成し、それらをウェブ・サーバに伝送することによって、対話型セッションを続行することができる(ステップ606)。これらの追加のサブミッションは、セッション・サーバによって受信され、処理されて、応答が生成される(ステップ608)。すでに述べたように、処理は、必要に応じて共有データベース・システム207のデータにアクセスすることを含む。要求の処理は、必要なときにセッションパーシステントデータ・オブジェクトに記録されたセッション状態を更新することを含む。
ステップ608においてクライアント・サブミッションの処理が終了すると、セッション・サーバ205は、応答をクライアントに伝送する(ステップ609)。クライアントのブラウザは、応答を受信し、それをクライアントが閲覧できる形式(ウェブ・ページ)に表現する(ステップ610)。ステップ609においてクライアントに応答を伝送するのと同時に、セッション・サーバは、セッション冗長データベース・システム206にも、セッションパーシステントデータが更新されたことを示す、更新されたデータを含むセッション状態更新メッセージを伝送する。メッセージに応答して、冗長システム206は、現在のセッションについてのデータベース503内のエントリを更新する(ステップ611)。サブミッションを作成し、サブミッションを処理し、応答するこのプロセスは、セッション内で何度でも続行することができる。
一般にステップ612として表されているように、一般に、クライアントによるいずれかのアクティビティのないタイムアウト又はクライアントによる明示的な接続解除の結果として、いずれかの時点でセッションが終了する。セッション・サーバのアプリケーション・サーバ404は、セッション・イベントの終了を検出したときに、セッションパーシステントデータ・オブジェクトの割り当てを解除し、セッションが終了したことを示すメッセージをセッション冗長データベース・システムに送信する(ステップ613)。冗長システムは、セッション・データベースの対応するエントリを削除することによって応答する(ステップ614)。
図7及び図8は、好ましい実施形態に係る、冗長セッションパーシステントデータ503のデータベースなどからデータを抽出してセッション負荷の特性を明らかにするプロセスをハイレベルで示すフロー図である。図7及び図8のフロー図は、縦方向に走る3つの部分に分割されており、これらは、セッション・アナライザ515、データベース503、及び有用なデータを得ることができる他の何らかのエンティティを示す。
図7及び図8を参照すると、対話型ユーザ・インターフェース516を通じてセッション・アナライザ515と対話するシステム管理者などのユーザは、セッション負荷の特性を明らかにするのに役立つ特定のデータ、特にデータベース503の動作に関するデータの監視及び収集を開始する(ステップ701)。一般に、単独で又は組み合わせて用いることが可能な、関連するデータを収集することができる多くの方法がある。
関連するデータを収集するための第1の方法においては、セッション・アナライザ515は、適切なAPI512を通じてデータベース503を呼び出し、内部モニタ514をアクティブにする。次に、モニタは、履歴統計値の収集を開始し、これらのデータは履歴データ507としてデータベース内に保存される(ステップ703)。モニタ514は、典型的には、大規模データベース管理システムのなくてはならない部分であり、クエリを最適化すること、データベース性能を分析することなどのために統計値を収集するのに役立つ。幾つかのデータベースにおいては、モニタは、デフォルトでアクティブにされていてもよく、又は、必ずしもセッション・アナライザ515を通じて明示的にアクティブにする必要がないように、他の手段によってアクティブにされていてもよい。統計値は、通常は、ある間隔で収集される。例えば、ある間隔で受信されたデータベース更新動作の数、これらの更新のサイズなどを用いて、その間隔における平均到着速度、平均サイズなどを計算することができる。モニタは、ステップ704として示されるタイム・ラグの間に積極的に統計値を収集する。タイム・ラグは、前もって指定することができるが、より典型的には、モニタは単に無期限にアクティブにされ、ある時間が経過した後で、ユーザは、履歴データに対する1つ又は複数のクエリを走らせることによって、履歴データを取得する次のアクションを開始する。セッション・アナライザ515は、適切なAPI512を用いてデータベース管理システム511を呼び出して、データ・マイナ517によって指定された1つ又は複数のクエリを実行し(ステップ705)、データベース管理システムは、クエリ・エンジン513を起動して1つ又は複数のクエリを実行し、クエリ結果をセッション・アナライザに戻す(ステップ706)。
関連するデータを収集するための第2の方法において、セッション・アナライザ515のデータ・マイナ517は、適切なAPI512を通じてクエリ・エンジン513を呼び出すことによりデータベースに対するクエリを周期的にサブミットすることによって、独自の履歴統計値を作る(ステップ707)。次に、クエリ・エンジンは、クエリを実行し、結果をセッション・アナライザ515に戻す(ステップ708)。データ・マイナ517は、結果(又は、結果から抽出されたデータ)を、保存された履歴クエリ結果データ519として保存する(ステップ709)。履歴データは、ステップ707−709を定期的に繰り返すことによって蓄積される(分かりやすくするために、ステップ710として省略形で表されており、ステップ707−709は、何回も繰り返される場合があることが理解される)。説明のために、保存された履歴クエリ結果519は、データベース503の外にあるファイル又は他のデータ・エンティティとして示されている。こうした方法でデータを保存することができるが、さらに、データをデータベース503の一部として保存する、すなわち結果データ519を保持するために1つ又は複数の付加的なデータベース・テーブルを定義すること、並びに、データベース管理システム511のAPI512及びクエリ・エンジン513を用いて保存された結果データ519にアクセスすることが可能である。
関連するデータを収集するための第3の方法においては、前述の第2の方法と同じであるが、クエリを周期的にサブミットして履歴データを保存することを必要とせずに、同時に負荷のスナップショットを得ることができる。すなわち、データ・マイナ517は、現在のセッション負荷状態に関する情報を得るために適切な1つ又は複数のクエリを構成し、適切なAPI512を通じてクエリ・エンジン513を呼び出すことによってデータベースに対するクエリ(又は複数のクエリ)をサブミットする(ステップ711)。次に、クエリ・エンジン513は、クエリを実行し、結果をセッション・アナライザ515に戻す(ステップ712)。
関連するデータを収集するための第4の方法においては、データ・マイナ517は、オペレーティング・システム501の特定の機能を呼び出して、冗長システム206について比較的静的な設定データを得ることができ、同様に、オペレーティング・システム401又はアプリケーション・サーバ404の類似の機能を遠隔的に呼び出して、セッション・サーバ・システム205について静的な設定データを得ることができる。適用可能なオペレーティング・システム、アプリケーション・サーバ、又は他のエンティティは、要求された設定情報によって応答する(ステップ714)。
好ましい実施形態においては、収集されるデータは、以下のいずれか又はすべてを含むものとすることができる。
データベース更新動作数:
この数は、短い間隔で、比較的長い間隔で、又は多数の間隔にわたって多数回、測定することができる。この数は、すべてのセッション・サーバについて集約するか、又は、各々のサーバについて個別に得ることができる。更新動作の数は、応答がクライアントに伝送されたときにセッション・サーバにおいてセッション状態が更新された回数に直接関連する。これは、セッション・サーバのアクティビティ・レベルの基本的な尺度である。
平均更新サイズ:
この数字もまた、1つ又は複数の間隔にわたって測定することができ、すべてのサーバについて集約するか、又は、各々について個別に得ることができる。更新のサイズは、各々の更新について変化したセッションパーシステント状態データの量である。これは、全セッション負荷の特性を明らかにするのにも役立ち、過度に大きい数字は、セッション持続状態が非効率に編成又は維持されていることを示している可能性がある。平均更新サイズに加えて、ピーク・サイズを報告すること、及び/又は、更新サイズのヒストグラムを生成することも可能である。
平均行サイズ:
行サイズは、データベースの単一セッションについてのセッションパーシステントデータ量であり、これは、行ごとに大きく変わる場合がある。行サイズは、セッション・サーバにおけるセッションパーシステントデータ・オブジェクト411−414のサイズに密接に関係するが、データ・オブジェクトのデータは異なる形で構造化されることがあるため、2つの行サイズは同一ではない。特に、行サイズは、各々のセッションによって消費されるセッション持続メモリの量の一般的指標である。行サイズは、同時に測定しても、多数の読み取り値を平均してもよい。行サイズは、セッション・サーバごとに報告されても、すべてのセッション・サーバについて集約されてもよい。平均行サイズに加えて、ピーク・サイズを報告すること、及び/又は、行サイズのヒストグラムを生成することも可能である。
全データベース・サイズ、すなわち行数:
行数として測定することができるセッションパーシステントデータの総量は、平均行サイズを与える。全サイズは、セッション・サーバのメモリがセッションパーシステントデータによって消費される程度を示す。行数は、セッション・サーバごとに報告される場合も、集約される場合もある。行数は、同時に又は多数の時点で報告されてもよい。
特定の列についての平均列サイズ:
列サイズは、特定のフィールドにおける平均データ量であり、これは、フィールドごと及び行ごとに大きく変わる場合がある。列サイズは、メモリの使用パターンを分析し、過度のメモリ量を使用する特定の列(フィールド)を識別するのに役立つ。列サイズは、同時に測定しても、多数の読み取り値にわたって平均してもよい。列サイズは、セッション・サーバごとに報告されても、すべてのセッション・サーバについて集約されてもよい。平均列サイズ(すなわち、すべての行についてのフィールドの平均サイズ)に加えて、ピーク・サイズを報告すること、及び/又は、特定の列についてのフィールド・サイズのヒストグラムを生成することも可能である。
使用されているデータ・タイプ:
列サイズと同様に、これは、セッションパーシステントデータとして保存されているデータのタイプを理解するのに役立ち、データを表すか又は取り扱うためのより効果的な方法を識別するのに役立つ場合がある。
平均セッション寿命:
このデータは、様々な理由から、クライアントがどのようにウェブ・サーバと対話するかを理解するのに役立つ場合があり、この効果が性能上の課題を有することがあるが、それは性能問題を直接示すものではない。寿命は、1つ又は多数の履歴にわたって測定されても、現在のスナップショットであってもよい。寿命は、サーバごとに個別に測定することができるが、一般に、すべてのサーバが同様の挙動を示すことが期待される。
データベース更新についての平均応答時間:
この数字は、1つ又は複数の間隔にわたって測定することができる。一般に、この数字は、冗長システム206の負荷を評価するものである。応答時間が大きい場合には、冗長システムに負担がかかりすぎている。
データベース・ログへの書き込み数:
この数字もまた、冗長システムの性能に関連するものであり、更新動作数と比較したときに、あまりにも長いログへの書き込みが蓄積しており、障害の可能性があるかどうかを示すことができる。
冗長システムのディスクへの平均待ち時間:
この数字もまた、冗長システムの性能に関連するものであり、ストレージ・システムに負担がかかりすぎていることを示すことができる。
収集することができるデータの具体例を上述したが、他のデータ及び/又は付加的なデータも収集できることが理解されるであろう。
上述のようなデータをマイニングするために1つ又は複数の技術のいずれが用いられても、いったん収集されたデータは、ユーザに提示される(ステップ715)。ユーザにデータを提示することは、図形フォーマットを含む種々のフォーマットのいずれかでデータを対話型ディスプレイ・スクリーン上に表示することを意味することがある。データを提示することは、プリンタ又は他の出力装置上にデータを出力すること、データをネットワーク上で1又は複数の別のユーザに伝送すること、データを電子媒体に保存することなどを意味することもある。
あるいは、任意の実施形態においては、セッション・アナライザは、推論部518を呼び出して、ウェブ・サーバに関する推奨を調整する(ステップ716)。推論部518は、データを分析し、ユーザに推奨を提示する(ステップ717)。好ましくは、データベース管理システム511と、より重要なものとして各々のセッション・サーバのアプリケーション・サーバ404との両方において、種々の調整可能なパラメータが存在する。例えば、データベース管理システムにおける調整可能なパラメータとして、インデックスの仕様、記録削除といった特定の機能を実行するためのトリガ、ディスク・アドレス指定及びファイル・サイズといったファイル・システム・パラメータなどを挙げることができる。アプリケーション・サーバにおける調整可能なパラメータとして、データベース接続プール、ミドルウェア・メモリ・サイズ、プロセス・メモリ割り当て、ロード・バランシングなどを挙げることができる。これらの調整可能なパラメータの設定は、性能に著しい影響を与えることがある。
好ましい実施形態として本明細書で説明された技術の利点は、セッション・サーバの各々において性能監視ソフトウェアを直接実行することなく、セッション負荷に関して意味のあるデータを得られることである。性能監視ソフトウェアは、セッション・サーバが望ましくない場合には、監視されるシステムに大きなオーバーヘッドをかける。セッション・サーバは、セッションの冗長性と、クライアントに対するウェブ・サーバのシームレスで一貫性のある可用性とを維持する一環として、冗長セッション状態データを冗長システムにすぐに伝送する。したがって、セッション・サーバ自体には付加的なオーバーヘッドの負担はかからない。冗長システムには何らかの付加的なオーバーヘッドが存在するが、このオーバーヘッドは比較的小さいものである。データベース503を構築し維持する費用は、冗長性のためにすでに必要とされており、唯一の付加的なオーバーヘッド・コストは、データベースに対する幾つかの付加的なクエリ及びクエリ結果の分析のコストである。
一般に、本発明の図示された実施形態を実装するために実行されるルーチンは、オペレーティング・システムの一部として実装されるか、特定のアプリケーション、プログラム、オブジェクト、モジュール、又は命令シーケンスとして実装されるかにかかわらず、ここでは「プログラム」又は「コンピュータ・プログラム」と呼ばれる。プログラムは、典型的には、本発明に従うコンピュータ・システムの装置又はシステムにおける1つ又は複数のプロセッサによって読み取られ実行されたときに、本発明の種々の態様を具体化するステップを実行するか又は具体化する要素を生成するのに必要なステップをこれらの装置又はシステムに行わせる命令を含む。さらに、本発明は、完全に機能するコンピュータ・システムとの関連で説明され、これ以降も説明されることになるが、本発明の種々の実施形態は、種々の形式のプログラム製品として配布することができ、本発明は、その配布を実際に行うのに用いられる信号支持媒体の特定のタイプにかかわらず等しく適用される。信号支持媒体の例として、揮発性及び不揮発性メモリ・デバイス、フロッピー(登録商標)ディスク、ハードディスク・ドライブ、CD−ROM、DVD、磁気テープなどが挙げられるが、これらに限定されるものではない。さらに、無線ネットワークを含む伝送ネットワーク上でデータが1つの形式の信号支持媒体から別の形式の信号支持媒体に交換されるかどうかにかかわらず、本発明は、あらゆる形式の信号支持媒体に適用される。信号支持媒体の例は、システム・メモリ302及びデータ・ストレージ装置325−327として、図3に示されている。
本発明の特定の実施形態が特定の変形例とともに開示されたが、当業者であれば、特許請求の範囲における請求項の範囲内で形式及び詳細をさらに変化させることができることが分かるであろう。
インターネットのハイレベル図である。 本発明の好ましい実施形態に係る、HTTPセッション負荷の特性を明らかにするための典型的なウェブ・サーバ環境のハイレベル図である。 好ましい実施形態に係る、ウェブ・サーバのコンピュータ・システムにおける主要なハードウェア・コンポーネントのハイレベル・ブロック図である。 好ましい実施形態に係る、セッション・サーバ・コンピュータ・システムの主要なソフトウェア・コンポーネントの概念図である。 好ましい実施形態に係る、セッション冗長データベース・システムの主要なソフトウェア・コンポーネントの概念図である。 好ましい実施形態に係る、クライアント要求をサービスし、セッション状態データを維持するプロセスをハイレベルで示すフロー図である。 好ましい実施形態に係る、セッション負荷の特性を明らかにするためのデータを抽出するプロセスをハイレベルで示すフロー図である。 好ましい実施形態に係る、セッション負荷の特性を明らかにするためのデータを抽出するプロセスをハイレベルで示すフロー図である。

Claims (20)

  1. ウェブ・サーバにおけるHTTPセッション負荷の特性を明らかにする方法であって、 第1のコンピュータ・システムにおいて複数のHTTPセッションを処理するステップであって、前記複数のHTTPセッションについてのセッションパーシステント状態データを前記第1のコンピュータ・システムに維持する、コンピュータ実行ステップと、
    前記第1のコンピュータ・システムから第2のコンピュータ・システムに冗長セッションパーシステント状態データを伝送するコンピュータ実行ステップと、
    前記冗長セッションパーシステント状態データを前記第2のコンピュータ・システムに格納するステップであって、前記第2のコンピュータ・システムは、前記第2のコンピュータ・システムに格納された前記冗長セッションパーシステント状態データを用いて前記複数のHTTPセッションのセッション状態の回復をサポートする、コンピュータ実行ステップと、
    前記第2のコンピュータ・システムに格納された前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにするコンピュータ実行ステップと、
    を含む方法。
  2. 前記冗長セッションパーシステント状態データを前記第2のコンピュータ・システムに格納する前記ステップは、前記冗長セッションパーシステント状態データを前記第2のコンピュータ・システム内の構造化データベースに格納することを含み、前記構造化データベースは複数のエントリを持つ少なくとも1つのテーブルを有し、前記エントリの各々は前記複数のHTTPセッションのそれぞれのHTTPセッションに対応する、請求項1に記載のHTTPセッション負荷の特性を明らかにする方法。
  3. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースに対して1つ又は複数のクエリを実行して前記構造化データベースに格納されたデータを取得することを含む、請求項2に記載のHTTPセッション負荷の特性を明らかにする方法。
  4. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースの変化を監視し、前記構造化データベースの変化に関する履歴データを用いて前記HTTPセッション負荷の特性を明らかにすることを含む、請求項2に記載のHTTPセッション負荷の特性を明らかにする方法。
  5. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースからのデータを用いて前記第1のコンピュータ・システムのチューニング・パラメータに関する推論を導くことを含み、前記推論は、コンピュータ実行プロセスによって自動的に導かれる、請求項2に記載のHTTPセッション負荷の特性を明らかにする方法。
  6. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースからのデータを用いて、
    (a)少なくとも1つの間隔にわたって測定されたデータベース更新動作数、
    (b)平均更新動作サイズ、
    (c)前記エントリの平均サイズ、
    (d)前記構造化データベースの全体サイズ、
    (e)前記構造化データベースの少なくとも1つの列についての平均列サイズ、
    (f)前記構造化データベースのエントリによって用いられているデータ・タイプ、
    (g)平均セッション寿命、
    (h)前記データベースの更新についての平均応答時間、
    (i)前記データベースのログへの書き込み数、及び、
    (j)前記第2のコンピュータ・システム内のディスクへの平均待ち時間、
    からなる特性パラメータの組から少なくとも1つの特性パラメータを得ることを含む、請求項2に記載のHTTPセッション負荷の特性を明らかにする方法。
  7. 前記第1のコンピュータ・システムは、HTTPセッションを処理するためのセッション・サーバ・アプリケーションをサポートするアプリケーション・サーバを含む、請求項1に記載のHTTPセッション負荷の特性を明らかにする方法。
  8. 前記第2のコンピュータ・システムは、複数の前記第1のコンピュータ・システムから受信した冗長セッションパーシステント状態データを格納し、前記第1のコンピュータ・システムの各々は、それぞれの複数のHTTPセッションを処理し、前記それぞれの複数のHTTPセッションについてのセッションパーシステント状態データを維持することを含む、請求項1に記載のHTTPセッション負荷の特性を明らかにする方法。
  9. 前記第1のコンピュータ・システムと前記第2のコンピュータ・システムとは、共通のローカル・エリア・ネットワークに結合され、前記第1のコンピュータ・システムから前記第2のコンピュータ・システムに冗長セッションパーシステント状態データを伝送する前記ステップは、前記冗長セッションパーシステント状態データを前記ローカル・エリア・ネットワーク全体に伝送することを含む、請求項1に記載のHTTPセッション負荷の特性を明らかにする方法。
  10. ウェブ・サーバのHTTPセッション負荷の特性を明らかにするコンピュータ・プログラムであって、
    信号支持媒体上に記録される複数のコンピュータ実行可能命令であって、少なくとも1つのコンピュータ・システムによって実行されたときに、
    第1のコンピュータ・システムに格納された冗長セッションパーシステント状態データにアクセスするステップであって、前記冗長セッションパーシステント状態データは、第2のコンピュータ・システムから前記第1のコンピュータ・システム内に受信され、前記第2のコンピュータ・システムによって複数のHTTPセッションを処理するために前記第2のコンピュータ・システムによって維持されるセッション持続状態を表し、前記冗長セッションパーシステント状態データを用いて前記複数のHTTPセッションのセッション状態の回復をサポートするように前記第1のコンピュータ・システムに格納されている、ステップと、
    前記アクセスするステップによってアクセスされる前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにするステップと、
    を前記少なくとも1つのコンピュータ・システムに実行させる命令を含む、コンピュータ・プログラム。
  11. 前記第1のコンピュータ・システムに格納された前記冗長セッションパーシステント状態データは、前記第1のコンピュータ・システム内の構造化データベースに格納された冗長セッションパーシステント状態データを含み、前記構造化データベースは複数のエントリを持つ少なくとも1つのテーブルを有し、前記エントリの各々は前記複数のHTTPセッションのそれぞれのHTTPセッションに対応する、請求項10に記載のコンピュータ・プログラム。
  12. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースに対して1つ又は複数のクエリを実行して前記構造化データベースに格納されたデータを取得することを含む、請求項11に記載のコンピュータ・プログラム。
  13. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースの変化を監視し、前記構造化データベースの変化に関する履歴データを用いて前記HTTPセッション負荷の特性を明らかにすることを含む、請求項11に記載のコンピュータ・プログラム。
  14. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースからのデータを用いて前記第2のコンピュータ・システムのチューニング・パラメータに関する推論を導くことを含み、前記推論は、コンピュータ実行プロセスによって自動的に導かれる、請求項11に記載のコンピュータ・プログラム。
  15. 前記冗長セッションパーシステント状態データを用いて前記HTTPセッション負荷の特性を明らかにする前記ステップは、前記構造化データベースからのデータを用いて、
    (a)少なくとも1つの間隔にわたって測定されたデータベース更新動作数、
    (b)平均更新動作サイズ、
    (c)前記エントリの平均サイズ、
    (d)前記構造化データベースの全体サイズ、
    (e)前記構造化データベースの少なくとも1つの列についての平均列サイズ、
    (f)前記構造化データベースのエントリによって用いられているデータ・タイプ、
    (g)平均セッション寿命、
    (h)前記データベースの更新についての平均応答時間、
    (i)前記データベースのログへの書き込み数、及び、
    (j)前記第2のコンピュータ・システム内のディスクへの平均待ち時間、
    からなる特性パラメータの組から少なくとも1つの特性パラメータを得ることを含む、請求項11に記載のコンピュータ・プログラム。
  16. HTTPセッション負荷の特性を明らかにするための装置であって、
    少なくとも1つのプロセッサと、外部にある少なくとも1つのセッション・サーバ・コンピュータ・システムから受信された冗長セッションパーシステント状態データを格納するためのデータ・ストレージとを有するセッション冗長コンピュータ・システムであって、前記少なくとも1つのセッション・サーバ・コンピュータ・システムは、複数のHTTPセッションを処理して前記複数のHTTPセッションについてのセッションパーシステント状態データを維持し、前記セッション冗長コンピュータ・システムは、前記データ・ストレージに格納された前記冗長セッションパーシステント状態データを用いて前記複数のHTTPセッションのセッション状態の回復をサポートする、セッション冗長コンピュータ・システムと、
    コンピュータ・システム上で実行可能な複数の命令として具体化されたHTTPセッション・アナライザ機能であって、前記セッション冗長コンピュータ・システムの前記データ・ストレージに格納された前記冗長セッションパーシステント状態データを用いて、前記少なくとも1つのセッション・サーバ・コンピュータ・システム上における前記複数のHTTPセッションの負荷の特性を明らかにする、HTTPセッション・アナライザ機能と、
    を含む装置。
  17. 前記HTTPセッション・アナライザ機能は、前記セッション冗長コンピュータ・システム内に存在し、前記セッション冗長コンピュータ・システムの前記少なくとも1つのプロセッサ上で実行される、請求項16に記載の装置。
  18. 前記セッション冗長コンピュータ・システムに格納された前記冗長セッションパーシステント状態データは、前記セッション冗長コンピュータ・システム内の構造化データベースに格納された冗長セッションパーシステント状態データを含み、前記構造化データベースは複数のエントリを持つ少なくとも1つのテーブルを有し、前記エントリの各々は前記複数のHTTPセッションのそれぞれのHTTPセッションに対応する、請求項16に記載の装置。
  19. 複数のセッション・サーバ・コンピュータ・システムをさらに含み、前記セッション・サーバ・コンピュータ・システムの各々は、それぞれの複数のHTTPセッションを処理し、前記それぞれの複数のHTTPセッションのそれぞれのHTTPセッションの各々についての前記セッションパーシステント状態データを維持することを含む、請求項16に記載の装置。
  20. 前記冗長セッションパーシステント状態データを前記セッション・サーバ・コンピュータ・システムの各々から前記セッション冗長コンピュータ・システムに伝送するための通信経路を提供する少なくとも1つのローカル・エリア・ネットワークをさらに含む、請求項19に記載の装置。
JP2008546389A 2005-12-22 2006-12-13 Httpセッション負荷の特性を明らかにするデータを収集するための方法及び装置 Expired - Fee Related JP5015951B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/316,285 US20070150600A1 (en) 2005-12-22 2005-12-22 Method and apparatus for collecting data for characterizing HTTP session workloads
US11/316,285 2005-12-22
PCT/EP2006/069678 WO2007071607A1 (en) 2005-12-22 2006-12-13 Method and apparatus for collecting data for characterizing http session workloads

Publications (2)

Publication Number Publication Date
JP2009521741A JP2009521741A (ja) 2009-06-04
JP5015951B2 true JP5015951B2 (ja) 2012-09-05

Family

ID=37831802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008546389A Expired - Fee Related JP5015951B2 (ja) 2005-12-22 2006-12-13 Httpセッション負荷の特性を明らかにするデータを収集するための方法及び装置

Country Status (8)

Country Link
US (1) US20070150600A1 (ja)
EP (1) EP1974529B1 (ja)
JP (1) JP5015951B2 (ja)
KR (1) KR101221205B1 (ja)
CN (1) CN101346972B (ja)
BR (1) BRPI0620640B1 (ja)
CA (1) CA2634360A1 (ja)
WO (1) WO2007071607A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180110A1 (en) * 2006-01-27 2007-08-02 Ge Medical Systems Information Technologies, Inc. System and method for retaining information in a data management system
US8024439B2 (en) * 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US8326996B2 (en) * 2006-06-02 2012-12-04 Oracle International Corporation Method and apparatus for establishing multiple sessions between a database and a middle-tier client
JP4405503B2 (ja) 2006-12-28 2010-01-27 キヤノンItソリューションズ株式会社 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体
JP4653147B2 (ja) * 2007-08-06 2011-03-16 日本電信電話株式会社 情報機能提供システム、情報機能提供装置、情報機能提供方法および情報機能提供プログラム
US8607197B2 (en) * 2007-08-28 2013-12-10 International Business Machines Corporation Displaying HTTP session entry and exit points
US8055649B2 (en) * 2008-03-06 2011-11-08 Microsoft Corporation Scaled management system
US20090240802A1 (en) * 2008-03-18 2009-09-24 Hewlett-Packard Development Company L.P. Method and apparatus for self tuning network stack
CN101621532B (zh) * 2008-06-30 2012-09-05 中兴通讯股份有限公司 一种使用线程池实现超文本传输协议应用的方法
US20130086414A1 (en) 2010-07-13 2013-04-04 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods recovering from the failure of a server load balancer
JP5538560B2 (ja) * 2010-11-01 2014-07-02 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
US8914521B2 (en) 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
WO2013104956A1 (en) * 2012-01-12 2013-07-18 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for scalable and resilient load balancing
US9569356B1 (en) * 2012-06-15 2017-02-14 Emc Corporation Methods for updating reference count and shared objects in a concurrent system
EP2750355A1 (en) * 2012-12-28 2014-07-02 Koninklijke KPN N.V. Reducing a number of server-client sessions
US9948726B2 (en) * 2013-07-01 2018-04-17 Avaya Inc. Reconstruction of states on controller failover
JP6428012B2 (ja) * 2014-07-16 2018-11-28 富士通株式会社 分散処理プログラム、分散処理管理装置及び分散処理方法
US10284621B2 (en) 2015-11-09 2019-05-07 International Business Machines Corporation Session management
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
US10564854B2 (en) * 2017-04-11 2020-02-18 Microsoft Technology Licensing, Llc Tracking internal latencies for load balancing of file server
US20200264970A1 (en) * 2019-02-19 2020-08-20 Nvidia Corporation Memory management system
US11469996B2 (en) 2020-09-25 2022-10-11 Adobe Inc. Systems for session-based routing
CN114945048A (zh) * 2022-05-20 2022-08-26 国网江苏省电力有限公司 网络冗余数据传输方法、装置、存储介质和电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0688702B2 (ja) * 1990-04-19 1994-11-09 東海興業株式会社 紙送り装置
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
JPH11328113A (ja) * 1998-05-14 1999-11-30 Nec Corp 情報検索装置
US6279001B1 (en) * 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
JP4149599B2 (ja) * 1999-02-03 2008-09-10 株式会社東芝 セッション管理装置およびセッション管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001167071A (ja) * 1999-12-10 2001-06-22 Toshiba Corp サーバセッション管理装置
US20020073211A1 (en) * 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7792948B2 (en) * 2001-03-30 2010-09-07 Bmc Software, Inc. Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
JP4306152B2 (ja) * 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
AU2002329602B2 (en) * 2001-07-16 2008-05-22 Oracle International Corporation Method and apparatus for session replication and failover
CN1283115C (zh) * 2003-06-03 2006-11-01 华为技术有限公司 提高多媒体消息系统处理多媒体消息性能的方法及系统
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
JP4185012B2 (ja) * 2004-03-30 2008-11-19 東芝ソリューション株式会社 サーバシステム、第1のアプリケーションサーバ、第2のアプリケーションサーバ、セッションデータ取得方法

Also Published As

Publication number Publication date
EP1974529B1 (en) 2012-09-19
BRPI0620640A2 (pt) 2011-04-05
KR101221205B1 (ko) 2013-01-10
CN101346972B (zh) 2013-02-06
WO2007071607A1 (en) 2007-06-28
US20070150600A1 (en) 2007-06-28
EP1974529A1 (en) 2008-10-01
CA2634360A1 (en) 2007-06-28
KR20080085840A (ko) 2008-09-24
CN101346972A (zh) 2009-01-14
JP2009521741A (ja) 2009-06-04
BRPI0620640B1 (pt) 2019-11-12

Similar Documents

Publication Publication Date Title
JP5015951B2 (ja) Httpセッション負荷の特性を明らかにするデータを収集するための方法及び装置
US11860874B2 (en) Multi-partitioning data for combination operations
US20210049175A1 (en) Tracking query execution status for selectively routing queries
US11151137B2 (en) Multi-partition operation in combination operations
US11513844B1 (en) Pipeline set selection based on duty cycle estimation
US8839209B2 (en) Software performance profiling in a multi-tenant environment
US7412709B2 (en) Method and apparatus for managing multiple data processing systems using existing heterogeneous systems management software
US7490265B2 (en) Recovery segment identification in a computing infrastructure
US20120144374A1 (en) Capturing Replayable Information at Software Defect Locations in a Multi-Tenant Environment
US8438276B1 (en) Method of monitoring network and application performance by analyzing web clients and web servers
JP2005538459A (ja) 分散システム内の根本原因識別および問題判定のための方法および装置
JP2004103015A (ja) 分散型システムにおける依存性管理の方法および装置
WO2008052892A2 (en) Method, system and program product for determining a number of concurrent users accessing a system
US11609913B1 (en) Reassigning data groups from backup to searching for a processing node
US11892976B2 (en) Enhanced search performance using data model summaries stored in a remote data store
EP3616061B1 (en) Hyper dynamic java management extension
US10644971B2 (en) Graph search in structured query language style query
JP6213038B2 (ja) 情報処理システム、情報処理システムの制御方法および制御装置の制御プログラム
US11841827B2 (en) Facilitating generation of data model summaries
US20060165010A1 (en) Method, system and program product for determining bandwidth consumption across a multi-tiered computer environment
JP2004164610A (ja) 管理装置
US11876689B1 (en) Method and system for SLA/QoS adherence-based flex on demand in a multi-API virtual desktop infrastructure (VDI) environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees