(57)【要約】  システムおよび方法は、複数のトランザクショナルミドルウェアマシンを有するトランザクショナルミドルウェアマシン環境において正確なロードバランシングをサポートすることができる。サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン環境において各トランザクショナルミドルウェアマシン上で維持することができる。上記サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能である。トランザクショナルミドルウェアマシン環境はさらに、複数の同期サーバを含むことができ、各上記同期サーバは、トランザクショナルミドルウェアマシン環境における１つのトランザクショナルミドルウェアマシンに関連付けられる。複数の同期サーバは、トランザクショナルミドルウェアマシン環境における各上記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを周期的に同期させるように動作する。
2014528615.tif 000002
【特許請求の範囲】
【請求項１】
複数のトランザクショナルミドルウェアマシンを有するトランザクショナルミドルウェアマシン環境においてロードバランシングをサポートするためのシステムであって、
トランザクショナルミドルウェアマシン環境において各トランザクショナルミドルウェアマシン上で維持されるサービスレスポンスタイムテーブルを備え、前記サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能であり、さらに、前記システムは、
複数の同期サーバを備え、各前記同期サーバは、トランザクショナルミドルウェアマシン環境における１つのトランザクショナルミドルウェアマシンに関連付けられ、
複数の同期サーバは、トランザクショナルミドルウェアマシン環境における各前記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを周期的に同期させるように動作する、システム。
【請求項２】
トランザクショナルミドルウェアマシン環境は、１つ以上のトランザクショナルドメインを含み、少なくとも１つのトランザクショナルドメインは、トランザクショナルミドルウェアマシン環境における異なるトランザクショナルミドルウェアマシン上に存在する複数のトランザクショナルサーバを含む、請求項１に記載のシステム。
【請求項３】
少なくとも１つのトランザクショナルサービスは、トランザクショナルミドルウェアマシン環境における異なるトランザクショナルミドルウェアマシン上に存在する異なるトランザクショナルサーバ上に提供される、請求項１に記載のシステム。
【請求項４】
サービスレスポンスタイムテーブルは、クライアントによって使用されて、どのトランザクショナルサーバが最短のサービスレスポンスタイムでトランザクショナルサービスを提供するかを決定する、請求項１に記載のシステム。
【請求項５】
トランザクショナルミドルウェアサーバは、トランザクショナルミドルウェアサーバがトランザクショナルサービスの実行を終了した後で、トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを更新する、請求項１に記載のシステム。
【請求項６】
サービスレスポンスタイムテーブルにおけるサービスレスポンスタイムは、ダイナミックロードおよびスタティックロードの少なくとも一方に基づいて推定される、請求項１に記載のシステム。
【請求項７】
１つのトランザクショナルミドルウェアマシン上のトランザクショナルサーバは、別のトランザクショナルミドルウェアマシン上のクライアントに返されるサービスレスポンスメッセージにサービスレスポンスタイムを埋込む、請求項１のシステム。
【請求項８】
クライアントは、サービスレスポンスタイムにおける情報を用いて、当該別のトランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを更新するように動作する、請求項７に記載のシステム。
【請求項９】
トランザクショナルサービスのためのサービスレスポンスタイムテーブルにおけるサービスレスポンスタイムは、サービス実行時間、キュー待ち時間およびネットワークタイムの合計である、請求項１に記載のシステム。
【請求項１０】
同期サーバは、マシン間のネットワークタイムを周期的に測定することを担う、請求項９に記載のシステム。
【請求項１１】
複数のトランザクショナルミドルウェアマシンを有するトランザクショナルミドルウェアマシン環境において正確なロードバランシングをサポートするための方法であって、
トランザクショナルミドルウェアマシン環境における各トランザクショナルミドルウェアマシン上でサービスレスポンスタイムテーブルを維持することを含み、前記サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能であり、さらに、
複数の同期サーバを提供することを含み、各前記同期サーバは、トランザクショナルミドルウェアマシン環境における１つのトランザクショナルミドルウェアマシンに関連付けられ、さらに、
複数の同期サーバを介して、トランザクショナルミドルウェアマシン環境における各前記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを周期的に同期させることを含む、方法。
【請求項１２】
トランザクショナルミドルウェアマシン環境が１つ以上のトランザクショナルドメインを含むことを許可することをさらに含み、少なくとも１つのトランザクショナルドメインは、トランザクショナルミドルウェアマシン環境における異なるトランザクショナルミドルウェアマシン上に存在する複数のトランザクショナルサーバを含む、請求項１１に記載の方法。
【請求項１３】
トランザクショナルミドルウェアマシン環境における異なるトランザクショナルミドルウェアマシン上に存在する異なるトランザクショナルサーバ上に少なくとも１つのトランザクショナルサービスを提供することをさらに含む、請求項１１に記載の方法。
【請求項１４】
サービスレスポンスタイムテーブルを用いて、どのトランザクショナルサーバが最短のサービスレスポンスタイムでトランザクショナルサービスを提供するかを決定することをさらに含む、請求項１１に記載の方法。
【請求項１５】
トランザクショナルミドルウェアサーバがトランザクショナルサービスの実行を終了した後で、トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを更新することをさらに含む、請求項１１に記載の方法。
【請求項１６】
ダイナミックロードおよびスタティックロードの少なくとも一方に基づいて、サービスレスポンスタイムテーブルにおけるサービスレスポンスタイムを推定することをさらに含む、請求項１１に記載の方法。
【請求項１７】
別のトランザクショナルミドルウェアマシン上のクライアントに返されるサービスレスポンスメッセージにサービスレスポンスタイムを埋込むことを、１つのトランザクショナルミドルウェアマシン上のトランザクショナルサーバに許可することをさらに含む、請求項１１に記載の方法。
【請求項１８】
サービスレスポンスタイムにおける情報を用いて、当該別のトランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを更新することをさらに含む、請求項１７に記載の方法。
【請求項１９】
トランザクショナルサービスのためのサービスレスポンスタイムテーブルにおけるサービスレスポンスタイムが、サービス実行時間、キュー待ち時間およびネットワークタイムの合計であることを許可することをさらに含む、請求項１１に記載の方法。
【請求項２０】
マシン間のネットワークタイムを周期的に測定することをさらに含む、請求項１９に記載の方法。
【請求項２１】
請求項１１〜２０のうちいずれか１項に記載の方法をコンピュータに行なわせる、プログラム。
【請求項２２】
請求項２１に記載のプログラムを格納する、コンピュータ読取り可能な不揮発性媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権の保護下にある内容を含む。特許商標庁の特許ファイルまたは記録に現れる限りにおいては、著作権所有者は、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
【０００２】
発明の分野
本発明は概して、コンピュータシステムおよびミドルウェアのようなソフトウェアに関し、特定的にはトランザクショナルミドルウェアマシン環境をサポートすることに関する。
【背景技術】
【０００３】
背景
トランザクショナルミドルウェアシステム、すなわちトランザクション指向のミドルウェアは、組織内の様々なトランザクションを処理することができる企業アプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータのような新たな技術の発展により、トランザクショナルミドルウェアのパフォーマンスをさらに向上させる必要がある。これらは、一般に発明の実施例が対処することが意図される分野である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本願明細書において、複数のトランザクショナルミドルウェアマシンを有するトランザクショナルミドルウェアマシン環境において正確なロードバランシングをサポートするためのシステムおよび方法が記載される。サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン環境において各トランザクショナルミドルウェアマシン上において維持することができる。上記サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能である。トランザクショナルミドルウェアマシン環境はさらに複数の同期サーバを含むことができ、上記各同期サーバは、トランザクショナルミドルウェアマシン環境においてトランザクショナルミドルウェアマシンと関連付けられる。複数の同期サーバは、トランザクショナルミドルウェアマシン環境において各上記トランザクショナルミドルウェアマシン上でサービスレスポンスタイムテーブルを周期的に同期させるように動作する。
【図面の簡単な説明】
【０００５】
【図１】発明の実施例に係る、正確なロードバランスをサポートするトランザクショナルミドルウェアマシン環境の例証を示す図である。
【図２】発明の実施例に係る、トランザクショナルミドルウェアマシン環境において正確なロードバランスをサポートするための典型的なフローチャートを例示する図である。
【図３】発明の実施例に係る、正確なロードバランスをサポートするトランザクショナルミドルウェアマシン環境の実例を示す図である。
【発明を実施するための形態】
【０００６】
詳細な説明
本明細書に記載されるのは、複数のプロセッサを有する高速マシンを利用することができるトランザクショナルミドルウェアシステムおよび高性能ネットワーク接続をサポートするためのシステムおよび方法である。ダイナミックリクエストブローカは、スタティックロードの代わりにダイナミックロードに基づいて、複数マシン環境においてトランザクショナルサービスのための正確なロードバランスを行なうことができる。トランザクショナルミドルウェアマシン環境は、複数のトランザクショナルミドルウェアマシンを含むことができる。各上記トランザクショナルミドルウェアマシンは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能なサービスレスポンスタイムテーブルを維持する。トランザクショナルミドルウェアマシン環境は、複数の同期サーバをさらに含むことができる。各上記同期サーバは、トランザクショナルミドルウェアマシン環境において上記トランザクショナルミドルウェアマシンに関連付けられる。複数の同期サーバは、複数のトランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを周期的に同期させるように動作する。
【０００７】
本発明の実施例に従うと、当該システムは、高性能ハードウェア、たとえば６４ビットプロセッサ技術、高性能な大きなメモリ、ならびに冗長なインフィニバンドおよびイーサネット（登録商標）ネットワーキング）と、ＷｅｂＬｏｇｉｃ  Ｓｕｉｔｅのようなアプリケーションサーバまたはミドルウェア環境との組合せを含み、これにより、迅速に備えられ得るとともにオンデマンドでスケール変更可能な大規模並列メモリグリッドを含む完全なＪａｖａ（登録商標）ＥＥアプリケーションサーバコンプレックスを提供する。本発明の実施例に従うと、当該システムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびインフィニバンド（ＩＢ）ネットワークを提供するフルラック、ハーフラック、もしくはクォーターラック、または他の構成としてデプロイされ得る。ミドルウェアマシンソフトウェアは、たとえばＷｅｂＬｏｇｉｃ  Ｓｅｒｖｅｒ、ＪＲｏｃｋｉｔまたはＨｏｔｓｐｏｔ  ＪＶＭ、Ｏｒａｃｌｅ  Ｌｉｎｕｘ（登録商標）またはＳｏｌａｒｉｓ、およびＯｒａｃｌｅ  ＶＭといった、アプリケーションサーバと、ミドルウェアと、他の機能性とを提供し得る。本発明の実施例に従うと、当該システムは、ＩＢネットワークによって互いに通信する複数のコンピュートノードと、１つ以上のＩＢスイッチゲートウェイと、ストレージノードまたはユニットとを含み得る。ラック構成として実施される場合、当該ラックの未使用部分は、空のままとされるか、またはフィラー（ｆｉｌｌｅｒ）によって占有され得る。
【０００８】
本願明細書において「Ｓｕｎ  Ｏｒａｃｌｅ  Ｅｘａｌｏｇｉｃ」または「Ｅｘａｌｏｇｉｃ」と称される本発明の実施例に従うと、当該システムは、Ｏｒａｃｌｅ  Ｍｉｄｄｌｅｗａｒｅ  ＳＷ  ｓｕｉｔｅまたはＷｅｂｌｏｇｉｃといったミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、デプロイが容易なソリューションである。本願明細書に記載されるように、実施例に従うと、当該システムは、１つ以上のサーバと、ストレージユニットと、ストレージネットワーキングのためのＩＢファブリックと、ミドルウェアアプリケーションをホストするために要求されるすべての他のコンポーネントとを含む「グリッド・イン・ア・ボックス（ｇｒｉｄ  ｉｎ  ａ  ｂｏｘ）」である。たとえばＲｅａｌ  Ａｐｐｌｉｃａｔｉｏｎ  ＣｌｕｓｔｅｒｓおよびＥｘａｌｏｇｉｃ  ｏｐｅｎ  ｓｔｏｒａｇｅを用いて大規模並列グリッドアーキテクチャを活用することにより、すべてのタイプのミドルウェアアプリケーションのために有意な性能が与えられ得る。このシステムは、線形のＩ／Ｏスケーラビリティとともに向上した性能を与え、使用および管理が簡易であり、ミッションクリティカルな可用性および信頼性を与える。
【０００９】
発明の実施例に従うと、Ｔｕｘｅｄｏ（登録商標）は、高性能の分散ビジネスアプリケーションの構築、実行および管理を可能にし、多くの多階層アプリケーション開発ツールによってトランザクショナルミドルウェアとして使用されてきたソフトウェアモジュールのセットである。Ｔｕｘｅｄｏ（登録商標）は、分散コンピューティング環境における分散トランザクション処理を管理するために使用することができるミドルウェアプラットフォームである。無限のスケーラビリティおよび規格ベースのインターオペラビリティを提供しつつ、企業レガシーアプリケーションをアンロックし、それらをサービス指向のアーキテクチャに拡張するための検証済みのプラットフォームである。
【００１０】
発明の実施例に従うと、Ｔｕｘｅｄｏ（登録商標）システムのようなトランザクショナルミドルウェアシステムは、Ｅｘａｌｏｇｉｃ  ｍｉｄｄｌｅｗａｒｅ  ｍａｃｈｉｎｅのような複数のプロセッサを有する高速マシンおよびＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークのような高性能ネットワーク接続を利用することができる。
【００１１】
複数マシン環境における正確なロードバランス
発明の実施例に従うと、Ｅｘａｌｏｇｉｃミドルウェアマシン環境のような複数マシンミドルウェアサーバ環境は、集約的なクロスマシンコールを許可する。マシン間のロード情報は、複数マシン環境において、より正確なロードバランスのために同期させることができる。ダイナミックロードは、Ｔｕｘｅｄｏ（登録商標）サービスのようなトランザクショナルサービスのために導入することができる。ロードバランスは、スタティックロードの代わりにダイナミックロードに基づいて行なうことができる。
【００１２】
図１は、発明の実施例に係る、正確なロードバランスをサポートするトランザクショナルミドルウェアマシン環境の例証を示す。図１に示されるように、トランザクショナルミドルウェアマシン環境は、複数のトランザクショナルミドルウェアマシン、たとえばマシンＡ１０１およびマシンＢ１０２を含む。各トランザクショナルミドルウェアマシンは、サービスレスポンスタイム情報を含むサービスレスポンスタイムテーブルをマシンごとに維持することができる。たとえば、マシンＡはサービスレスポンスタイムテーブル、サービスレスポンスタイムテーブルＡ１０３を含み、マシンＢはサービスレスポンスタイムテーブル、サービスレスポンスタイムテーブルＢ１０４を含む。たとえば、サービスレスポンスタイムテーブルＡ１０３は、マシンＡの記憶装置またはメモリに格納され得、サービスレスポンスタイムテーブルＢ１０４は、マシンＢの記憶装置またはメモリに格納され得る。
【００１３】
その上、各トランザクショナルミドルウェアマシンは、トランザクショナルミドルウェアマシン環境においてロード情報を他のトランザクショナルミドルウェアマシンと同期させることを担う同期サーバを含むことができる。図１に示される例では、マシンＡは同期サーバ、同期サーバＡ１０５を含み、マシンＢは同期サーバ、同期サーバＢ１０６を含む。同期サーバＡおよび同期サーバＢは、マシンＡおよびマシンＢ両方上でロード情報を同期させるために、互いに直接通信することができる。同期サーバＡ１０５および同期サーバＢ１０６は、ハードウェアコンピュートノードであり得る。同期サーバＡ１０５はマシンＡのラックに設けられ得、同期サーバＢ１０６はマシンＢのラックに設けられ得る。
【００１４】
また、図１に示されるように、トランザクショナルミドルウェアマシン環境は、複数のトランザクショナルドメイン、たとえばドメインＡ１１１およびドメインＢ１１２をサポートする。ドメインＡは、２つのトランザクショナルアプリケーションサーバ：マシンＡ上のサーバＡ１０９およびマシンＢ上のサーバＢ１１０を含む。サーバＡは、２つのトランザクショナルサービス：サービスＩ  １２１およびサービスＩＩ  １２３を提供し、サーバＢも２つのトランザクショナルサービス：サービスＩ  １２２およびサービスＩＩＩ  １２４を提供する。ドメインＢは、１つのトランザクショナルアプリケーションサーバ、サーバＣ１２０を含み、サーバＣ１２０は、１つのトランザクショナルサービス、サービスＩＩＩ  １２６のみを提供する。サーバＣ１２０は、ハードウェアコンピュートノードであり得る。サーバＣ１２０は、サーバＢのラックに設けられ得る。
【００１５】
発明の実施例に従うと、トランザクショナルミドルウェアマシン上のクライアントは、トランザクショナルプラットフォームによって提供されるサービスをリクエストするために、トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを使用して、ルーティング決定を行なうことができる。クライアントは、サービスレスポンスタイムテーブルを使用して、どのトランザクショナルサーバが最短のサービスレスポンスタイムでトランザクショナルサービスを提供するかを決定することができる。
【００１６】
たとえば、クライアントＡ１０７がサービスＩをドメインＡに配置した場合、クライアントＡは、マシンＡ上でサービスレスポンスタイムテーブルＡ１０３を検索して、どのサーバがサービスリクエストメッセージを送るかを決定することができる。次いで、クライアントＡは、サービスレスポンスタイムテーブルＡ１０３に格納されたそれらの現在のサービスレスポンスタイムに基づいて、サーバＡおよびサーバＢから、速い方のサーバを選択することができる。
【００１７】
発明の実施例に従うと、トランザクショナルアプリケーションサーバがサービスを行うたびに、トランザクショナルアプリケーションサーバを含むトランザクショナルミドルウェアマシンは、マシン上のサービスレスポンスタイムテーブルを更新することができる。マシンは、様々なサーバについてのサービスレスポンス情報を更新するために、同期サーバを用いて、このサービスレスポンスタイムテーブルを他のマシン上の他のサービスレスポンスタイムテーブルと定期的に同期させることができる。上記の例では、マシンＡ１０１上のサーバＡ１０９がクライアントＡ１０７にサービスＩ  １２１を提供し終えると、マシンＡ１０１上の同期サーバＡ１０５は、サービスレスポンスタイムテーブルＡ１０３を対応して更新することができる。
【００１８】
発明の実施例に従うと、同期サーバを介してサービスレスポンス情報を同期させる代わりに、トランザクショナルアプリケーションサーバは、クライアントに返されるサービスレスポンスメッセージに、サービスレスポンスタイムを埋込むことができる。このシナリオでは、クライアントは、同期サーバとは別個に、サービスレスポンスタイムテーブルを更新することができる。
【００１９】
図１に示された例では、サーバＡ１０９がサービスＩ  １２１を提供するように選択されると、サーバＡ１０９は、クライアントＡ１０７に送り返されるサービスレスポンスメッセージにサービスレスポンス情報を埋込むことができ、ひいてはサービスレスポンスタイムテーブルＡ１０３を更新することができる。同様に、サーバＢ１１０がサービスＩ  １２２を提供するように選択されると、サーバＢ１１０は、クライアントＡ１０７に送り返されるサービスレスポンスメッセージにサービスレスポンス情報を埋込むことができ、ひいてはマシンＡとマシンＢとの同期を待機する必要なく、直接的にサービスレスポンスタイムテーブルＡ１０３を更新することができる。
【００２０】
図２は、発明の実施例に係る、トランザクショナルミドルウェアマシン環境において正確なロードバランスをサポートするための典型的なフローチャートを例示する。図２に示されるように、ステップ２０１において、システムは、トランザクショナルミドルウェアマシン環境における各トランザクショナルミドルウェアマシン上でサービスレスポンスタイムテーブルを維持することができる。各上記サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能である。次いで、ステップ２０２において、トランザクショナルミドルウェアマシン環境は、複数の同期サーバを含む。各上記同期サーバは、トランザクショナルミドルウェアマシン環境におけるトランザクショナルミドルウェアマシンに関連付けられる。最後に、２０３において、複数の同期サーバは、トランザクショナルミドルウェアマシン環境における各上記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを周期的に同期させることができる。
【００２１】
ダイナミックロードに基づいたロードバランシング
発明の実施例に従うと、ダイナミックリクエストブローカは、トランザクショナルミドルウェアマシン環境においてサポートされて、Ｔｕｘｅｄｏ（登録商標）のようなトランザクショナルミドルウェアマシンプラットフォームにダイナミックかつ正確なロードバランシングを提供することができる。
【００２２】
ロードバランスアルゴリズムは、典型的には短いレスポンスタイムおよび高スループットを必要とするオンライントランザクション処理（ＯＬＴＰ）アプリケーションにおけるサーバのようなトランザクショナルサーバ間でワークロードの良好な分散を提供することができる計算のクイックセットを行なうように設計することができる。システムは、システムの効率を向上させるために使用されるより多くのクロスマシンコールによって、たとえばＥｘａｌｏｇｉｃミドルウェアマシン環境において、複数のマシン構成から、より多くの利点を得ることをユーザに可能にする。
【００２３】
発明の実施例に従うと、ダイナミックロードに基づくダイナミックロードバランシングアルゴリズムをトランザクショナルサービスに提供することができる。ダイナミックロード情報は、複数のマシン環境においてより正確なロードバランスのためにマシン間で同期させることができる。
【００２４】
クライアントの観点からは、ロードバランシングの目的は、リクエストコールごとのレスポンスタイムを最小化することである。ロードバランシング決定は、サービスレスポンスタイムに基づいて動的になすことができる。換言すると、システムは、サービスリクエストベースでレスポンスタイムを連続的に測定することができ、後のサービスリクエストルーティング決定のためにこの情報を保持することができる。
【００２５】
発明の実施例に従うと、クライアントは、各サービスリクエストを処理するために、あらゆる候補サーバについてレスポンスタイムを推定することができる。推定されるレスポンスタイムは、以下の式を用いて算出することができる。
【００２６】
推定されるレスポンスタイム＝ネットワークタイム＋キュー待ち時間＋サービス実行時間
上の式に示されるように、一つのＴｕｘｅｄｏ（登録商標）サービスリクエストを処理するためのレスポンスタイムは、少なくともネットワークタイム、キュー待ち時間およびサービス実行時間を含むことができる。ネットワークタイムは、発信サーバマシンからサーバマシンにリクエストコールを送信し、かつ対応するリプライを発信サーバマシンに送信するのにかかる時間を測定する。キュー待ち時間は、リクエストコールがサービスを得る前にサーバキュー内で待機する時間を測定する。サービス実行時間は、サーバがリクエストを満たすのにかかる時間を測定する。
【００２７】
その上、上の式では、ネットワークタイムおよびサービス実行時間の両方は、規定の期間にわたる平均時間であり得る。キュー待ち時間の場合、定義された期間にわたる平均キュー待ち時間、または最新のキュー待ち時間のいずれかであり得る。特定のサーバについての最新のキュー待ち時間は、サーバが設置されるマシン上で連続的に維持されることができる。キュー待ち時間はワークロードに著しく依存して変動することがあるため、最新のキュー待ち時間を用いて推定されるレスポンスタイムは、平均キュー待ち時間を用いて推定されるレスポンスタイムよりも正確であり得る。
【００２８】
Ｔｕｘｅｄｏ（登録商標）の例では、各Ｔｕｘｅｄｏ（登録商標）マシン上の専用の同期サーバがデータ収集および同期を担うことができる。平均サービス実行時間は、ピアの間で同期させることができるように、同期サーバによって収集されることができる。最新データはサーバが位置するノードのみに保持され得るため、同様の手法を用いてキュー待ち時間を同期させることができる。代替的に、データ同期は、サービスをリクエストしたクライアントに返されるサービスリプライメッセージにロード情報を重畳することによって実施されることができる。
【００２９】
その上、各Ｔｕｘｅｄｏ（登録商標）マシン上の同期サーバは、ネットワークタイムを収集することを担うこともできる。同期サーバは、他のＴｕｘｅｄｏ（登録商標）マシンに特別なリクエストを定期的に送信して、Ｔｕｘｅｄｏ（登録商標）マシン間のネットワークタイムを測定することができる。
【００３０】
スタティックロードに基づいたロードバランシング
発明の実施例に従うと、トランザクショナルミドルウェアマシン環境におけるロードバランスアルゴリズムは、サービスごとに定義されるスタティックロードに依存することができる。このスタティックロードバランシングアルゴリズムは、トランザクショナルミドルウェアマシン環境においてダイナミックロードバランシングアルゴリズムと共に使用することができる。たとえばダイナミックロードが適用不可能な場合、スタティックロードを使用することができる。
【００３１】
ダイナミックロードバランシング手法と比較して、スタティックロードバランスアルゴリズムは、トレードオフを有するより単純な手法である。たとえば、スタティックロードは、ランタイムにおける正確な実際のロードを反映しない場合があり、スタティックロードバランスアルゴリズムは、複数マシンモードでは正確でない場合がある。
【００３２】
Ｔｕｘｅｄｏ（登録商標）の例では、スタティックロードバランシングアルゴリズム実装例は、Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄという名のパラメータを用いて、１組の候補サーバから宛先サーバを選択することができる。Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄは、リクエストキューの現在のワークロードを示すパラメータである。サービスリクエストのルーティングは、全サーバ候補についてのＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値の比較に基づいて、クライアント側で行なわれることができる。
【００３３】
その上、複数マシンモードでは、一定値であり得る別のパラメータＮＥＴＬＯＡＤを、比較のためにＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄ値に追加することができる。ＮＥＴＬＯＡＤパラメータは、あるマシンから別のマシンにサービスリクエストを送信するコストを計算する場合に追加される追加的なロードを特定することができる。ＮＥＴＬＯＡＤは、Ｔｕｘｅｄｏ（登録商標）コンフィギュレーションファイルにおいて特定される静的値であり得る。
【００３４】
発明の実施例に従うと、異なるモデルのアプリケーションに従ってＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄを算出するために、２つの異なる手順を使用することができる。
【００３５】
Ｐｅｒｉｏｄｉｃ  Ａｃｃｕｍｕｌａｔｉｖｅ  Ｕｐｄａｔｉｎｇ手法を用いて、サービスリクエストがサーバのリクエストキューに追加されると、システムは、サービスのＬＯＡＤ値によってＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値を増加させることができる。リクエストがサーバによって完了されると、Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値は減少されない。Ｗｋｑｕｅｕｅｄ値は、管理上のチェック期間中に直線的に増加することができ、Ｔｕｘｅｄｏ（登録商標）のサーバの健全性スキャンのような管理上のチェック時にリセットすることができる。この手法の一例は、複数マシンモードにおいて使用することができるラウンドロビン（ＲＲ）アルゴリズムを用いてＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値を更新することである。
【００３６】
リアルタイム更新手法を用いて、サービスリクエストがリクエストキューに追加されると、システムは、Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値をサービスのＬＯＡＤ値だけ増加させることができる。Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値は、サーバによるリクエストの完了後にサービスＬＯＡＤ値だけ低下される。この更新方法は、Ｓｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄをリアルタイムモードにおいて維持し、現在のキューに入れられている作業を第１の手法よりも正確に反映することができる。この手法の一例は、一つのマシンモードにおいて使用することができるリアルタイム（ＲＴ）アルゴリズムを用いてＳｅｒｖｅｒ  Ｗｋｑｕｅｕｅｄの値を更新することである。
【００３７】
サービスのＬＯＡＤ値は、Ｔｕｘｅｄｏ（登録商標）コンフィギュレーションファイルにおいて特定された静的値であり得る。たとえばＬＯＡＤのデフォルト値を７０に設定することができる。その上、サービスのＬＯＡＤ値は、サービスインスタンスに関連付けられた相対的な負荷率として特定されることができる。
【００３８】
発明の実施例に従うと、スタティックロードバランシングアルゴリズムがダイナミックリクエストブローカを単純化するため、このスタティックロードバランシングアルゴリズムに関連付けられたトレードオフがあり得る。
【００３９】
まず、ダイナミックリクエストブローカにおけるサービス実行時間は、スタティックロードバランシングアルゴリズムにおける一定のサービスＬＯＡＤに換算される。コンピューティングリソースのためのサービスの必要はそのアクティブな寿命にわたって変動することがあるため、静的な一定値は、サービスのリアルタイムワークロードレベルを反映しない場合がある。その上、サービスＬＯＡＤ値はコンフィギュレーションファイルにおいてＴｕｘｅｄｏ（登録商標）管理者によってアサインされることができるため、サービスについて適用可能なＬＯＡＤ値を選択することは管理者の実験に大いに依存する。
【００４０】
第二に、ダイナミックリクエストブローカにおける平均ネットワークタイムは、スタティックロードバランシングアルゴリズムにおける一定のＮＥＴＬＯＡＤに換算される。ＮＥＴＬＯＡＤパラメータは、異なるターゲットノードへのネットワークコストがネットワークトポロジーごとに変動し得るという事実を考慮に入れていない。また、ネットワークコストはロードによって左右され得、したがって一定ではない。
【００４１】
第三に、複数マシンモードでは、ラウンドロビンアルゴリズムは、リアルタイムサーバロードレベルではなく、サーバロードレベルの統計量のみを取得し得る。その上、ノード間に同期メカニズムがないため、クライアントは、リモートノードに配置された候補サーバの実際のかつ現在の画像を取得しない場合がある。したがって、ローカルノードにおけるリモートキューワークロード値はあまり正確ではない場合がある。
【００４２】
図３は、発明の実施例に係る、正確なロードバランスをサポートするトランザクショナルミドルウェアマシン環境の実例を示す。図１のものと同じ図３のコンポーネントは同じ参照番号で表示され、その詳細な説明は省略される。
【００４３】
図１と同様に、トランザクショナルミドルウェアマシン環境は、複数のトランザクショナルミドルウェアマシン、たとえばマシンＡ１０１およびマシンＢ１０２を含む。各トランザクショナルミドルウェアマシンは、マシンごとのサービスレスポンスタイム情報を含むサービスレスポンスタイムテーブルを維持することができる。たとえばマシンＡは、サービスレスポンスタイムテーブル、サービスレスポンスタイムテーブルＡ１０３を含み、マシンＢは、サービスレスポンスタイムテーブル、サービスレスポンスタイムテーブルＢ１０４を含む。具体的には、マシンＡのサービスレスポンスタイムテーブル維持ユニット１１０３は、サービスレスポンスタイムテーブルＡ１０３を維持するかまたは格納し、マシンＢのサービスレスポンスタイムテーブル維持ユニット１１０４は、サービスレスポンスタイムテーブルＢ１０４を維持するかまたは格納する。当業者によって容易に理解することができるように、サービスレスポンスタイムテーブル維持ユニットは、データベース、記憶装置、サーバ、またはサービスレスポンスタイムテーブルを維持するためのいずれかの他の手段であり得る。
【００４４】
一実施例に従うと、トランザクショナルミドルウェアマシン環境においてトランザクショナルミドルウェアマシンが提供され、各トランザクショナルミドルウェアマシン上で維持され、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能であるサービスレスポンスタイムテーブルと、トランザクショナルミドルウェアマシン環境における上記トランザクショナルミドルウェアマシンに関連付けられ、トランザクショナルミドルウェアマシン環境における上記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを、トランザクショナルミドルウェアマシン環境における他のトランザクショナルミドルウェアマシン上の他のサービスレスポンスタイムテーブルと周期的に同期させるように動作する同期サーバとを備える。
【００４５】
一実施例に従うと、トランザクショナルミドルウェアマシンは、上記トランザクショナルミドルウェアマシン上に存在するトランザクショナルサーバをさらに備え、トランザクショナルミドルウェアマシン環境は、１つ以上のトランザクショナルドメインを含み、少なくとも１つのトランザクショナルドメインは、上記トランザクショナルミドルウェアマシン上に存在する上記トランザクショナルサーバと、他のトランザクショナルミドルウェアマシン上に存在する他のトランザクショナルサーバとを含む。
【００４６】
一実施例に従うと、トランザクショナルミドルウェアマシンは、少なくとも１つのトランザクショナルサービスが提供されるトランザクショナルサーバをさらに備える。
【００４７】
一実施例に従うと、サービスレスポンスタイムテーブルは、クライアントによって用いられて、どのトランザクショナルサーバが最短のサービスレスポンスタイムでトランザクショナルサービスを提供するかを決定する。
【００４８】
一実施例に従うと、トランザクショナルミドルウェアマシンは、トランザクショナルミドルウェアサーバがトランザクショナルサービスの実行を終了した後、上記トランザクショナルミドルウェアマシン上の上記サービスレスポンスタイムテーブルを更新するトランザクショナルミドルウェアサーバをさらに備える。
【００４９】
一実施例に従うと、サービスレスポンスタイムテーブルにおけるサービスレスポンスタイムは、ダイナミックロードおよびスタティックロードの少なくとも一方に基づいて推定される。
【００５０】
一実施例に従うと、トランザクショナルミドルウェアマシンは、他のトランザクショナルミドルウェアマシン上の他のクライアントに返されるサービスレスポンスメッセージにサービスレスポンスタイムを埋込むトランザクショナルサーバをさらに備える。
【００５１】
１つの実施例に従うと、クライアントは、上記サービスレスポンスタイムにおける情報を用いて他のトランザクショナルミドルウェアマシン上の他のサービスレスポンスタイムテーブルを更新するように動作する。
【００５２】
一実施例に従うと、トランザクショナルサービスについてのサービスレスポンスタイムテーブルにおけるサービスレスポンスタイムは、サービス実行時間、キュー待ち時間およびネットワークタイムの合計である。
【００５３】
一実施例に従うと、同期サーバは、マシン間のネットワークタイムを周期的にを測定することを担う。
【００５４】
一実施例に従うと、トランザクショナルミドルウェアマシン環境におけるトランザクショナルミドルウェアマシンのための方法が提供され、当該方法は、上記トランザクショナルミドルウェアマシン上でサービスレスポンスタイムテーブルを維持することを含み、サービスレスポンスタイムテーブルは、トランザクショナルミドルウェアマシン上でクライアントによって使用されて、サービスリクエストについてルーティング決定を行なうように適合可能であり、さらに、同期サーバを提供することと、同期サーバを介して、トランザクショナルミドルウェアマシン環境における上記トランザクショナルミドルウェアマシン上のサービスレスポンスタイムテーブルを、トランザクショナルミドルウェアマシン環境における他のトランザクショナルミドルウェアマシン上の他のサービスレスポンスタイムテーブルと周期的に同期させることとを含む。
【００５５】
一実施例に従うと、当該方法はさらに、上記トランザクショナルミドルウェアマシン上に存在するトランザクショナルサーバを提供することをさらに含み、トランザクショナルミドルウェアマシン環境は、１つ以上のトランザクショナルドメインを含み、少なくとも１つのトランザクショナルドメインは、トランザクショナルミドルウェアマシン上に存在する上記トランザクショナルサーバと、他のトランザクショナルミドルウェアマシン上に存在する他のトランザクショナルサーバとを含む。
【００５６】
一実施例に従うと、当該方法はさらに、少なくとも１つのトランザクショナルサービスが提供されるトランザクショナルサーバを提供することを含む。
【００５７】
一実施例に従うと、当該方法はさらに、サービスレスポンスタイムテーブルを用いて、どのトランザクショナルサーバが最短のサービスレスポンスタイムでトランザクショナルサービスを提供するかを決定することを含む。
【００５８】
一実施例に従うと、当該方法はさらに、トランザクショナルミドルウェアサーバがトランザクショナルサービスの実行を終了した後で、上記トランザクショナルミドルウェアマシン上の上記サービスレスポンスタイムテーブルを更新することを含む。
【００５９】
一実施例に従うと、当該方法はさらに、ダイナミックロードおよびスタティックロードの少なくとも一方に基づいたサービスレスポンスタイムテーブルにおけるサービスレスポンスタイムを推定することを含む。
【００６０】
一実施例に従うと、当該方法はさらに、他のトランザクショナルミドルウェアマシン上の他のクライアントに返されるサービスレスポンスメッセージにサービスレスポンスタイムを埋込むことを、上記トランザクショナルミドルウェアマシン上のトランザクショナルサーバに許可することを含む。
【００６１】
一実施例に従うと、当該方法はさらに、上記サービスレスポンスタイムにおける情報を用いて、他のトランザクショナルミドルウェアマシン上の他のサービスレスポンスタイムテーブルを更新することを含む。
【００６２】
一実施例に従うと、当該方法はさらに、トランザクショナルサービスについてのサービスレスポンスタイムテーブルにおけるサービスレスポンスタイムが、サービス実行時間、キュー待ち時間およびネットワークタイムの合計であることを許可することを含む。
【００６３】
一実施例に従うと、当該方法はさらに、マシン間のネットワークタイムを周期的に測定することを含む。
【００６４】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従ってプログラムされたコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティング装置、マシンまたはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【００６５】
いくつかの実施例では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／またはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
【００６６】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確であろう。上記の実施例は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施例について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。
【図１】
2014528615.tif 000003
【図２】
2014528615.tif 000004
【図３】
2014528615.tif 000005
【国際調査報告】
2014528615.tif 000006