(57)【特許請求の範囲】
【請求項１】
パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送する中間通信装置と、
前記中間通信装置から通知を受けたことに応じて、前記パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を当該中間通信装置に通知する負荷分散制御サーバと、を含み、
前記中間通信装置は、前記複数のアプリケーションサーバのうち前記通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、前記パケットを転送し、
前記中間通信装置は、所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを前記負荷分散制御サーバに通知し、
前記負荷分散制御サーバは、前記中間通信装置から前記タイムアウトの通知を受けたことに応じて、前記複数のアプリケーションサーバの各々に対して、前記所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせる
ことを特徴とする分散処理システム。
【請求項２】
前記中間通信装置は、前記負荷分散制御サーバから通知されたフロー転送情報を記憶し、前記複数のアプリケーションサーバのうち、当該記憶したフロー転送情報を検索して決定されたアプリケーションサーバに対して、前記パケットを転送する
ことを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記負荷分散制御サーバは、前記複数のアプリケーションサーバの各々における通信数に基づいて、前記パケットの転送経路を決定する
ことを特徴とする請求項１又は２に記載の分散処理システム。
【請求項４】
前記負荷分散制御サーバは、前記複数のアプリケーションサーバの各々のアプリケーション数に基づいて、前記パケットの転送経路を決定する
ことを特徴とする請求項１乃至３のいずれかに記載の分散処理システム。
【請求項５】
前記負荷分散制御サーバは、前記複数のアプリケーションサーバの各々から、当該複数のアプリケーションサーバの各々で実行されるアプリケーションの通信状態の通知を受ける
ことを特徴とする請求項１乃至４のいずれかに記載の分散処理システム。
【請求項６】
前記負荷分散制御サーバは、通知を受けた前記アプリケーションの通信状態に基づいて、当該アプリケーションに関するフロー転送情報を維持するか否かを決定する
ことを特徴とする請求項５に記載の分散処理システム。
【請求項７】
前記負荷分散制御サーバは、通知を受けた前記アプリケーションの通信状態が終了状態の場合に、当該アプリケーションに関するフロー転送情報を削除する旨を前記中間通信装置に通知する
ことを特徴とする請求項５又は６に記載の分散処理システム。
【請求項８】
パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送するステップと、
前記パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を通知するステップと、
前記複数のアプリケーションサーバのうち前記通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、前記パケットを転送するステップと、
所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを通知するステップと、
前記タイムアウトの通知を受けたことに応じて、前記複数のアプリケーションサーバの各々に対して、前記所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせるステップと
を含むことを特徴とする分散処理方法。
【請求項９】
前記通知されたフロー転送情報を記憶し、前記複数のアプリケーションサーバのうち、当該記憶したフロー転送情報を検索して決定されたアプリケーションサーバに対して、前記パケットを転送するステップ
を含むことを特徴とする請求項８に記載の分散処理方法。
【請求項１０】
前記複数のアプリケーションサーバの各々における通信数に基づいて、前記パケットの転送経路を決定するステップ
を含むことを特徴とする請求項８又は９に記載の分散処理方法。
【請求項１１】
前記複数のアプリケーションサーバの各々のアプリケーション数に基づいて、前記パケットの転送経路を決定するステップ
を含むことを特徴とする請求項８乃至１０のいずれかに記載の分散処理方法。
【請求項１２】
前記複数のアプリケーションサーバの各々から、当該複数のアプリケーションサーバの各々で実行されるアプリケーションの通信状態の通知を受けるステップ
を含むことを特徴とする請求項８乃至１１のいずれかに記載の分散処理方法。
【請求項１３】
前記通知を受けたアプリケーションの通信状態に基づいて、当該アプリケーションに関するフロー転送情報を維持するか否かを決定するステップ
を含むことを特徴とする請求項１２に記載の分散処理方法。
【請求項１４】
通知を受けた前記アプリケーションの通信状態が終了状態の場合に、当該アプリケーションに関するフロー転送情報を削除する旨を通知するステップ
を含むことを特徴とする請求項１２又は１３に記載の分散処理方法。
【請求項１５】
パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送する工程と、
前記パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を通知する工程と、
前記複数のアプリケーションサーバのうち前記通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、前記パケットを転送する工程と、
所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを通知する工程と、
前記タイムアウトの通知を受けたことに応じて、前記複数のアプリケーションサーバの各々に対して、前記所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせる工程と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの負荷を分散する分散処理システム及び分散処理方法に関し、特にアプリケーションサーバの負荷を軽減しつつ、当該システムにおける信頼性を維持することができる分散処理システム及び分散処理方法に関するものである。
【背景技術】
【０００２】
近年、インターネットの発展により、遠隔地にあるクライアントから、データセンタや企業ネットワーク内などに配置された複数のアプリケーションサーバに接続し、そのアプリケーションサーバ内にあるアプリケーションを利用する利用形態が拡大している。このような利用形態の拡大により、アプリケーションを実行するアプリケーションサーバにかかる負荷は年々増加している。このため、一般的に、アプリケーションサーバを複数配置することにより、そのスケーラビリティ（拡張性）を向上させつつ、負荷分散を行う手法がとられている。また、アプリケーションサーバのスケーラビリティを向上させるために、クライアントとアプリケーション間の通信を、中間通信装置を用いて複数のアプリケーションサーバに負荷分散を行う必要が生じている。
【０００３】
一方で、サーバと、データ中継装置からサーバへの経路とに関する負荷情報を収集し、この負荷情報に基づいてクライアントとサーバとの経路を選択するデータ中継装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第０４／０９３３９４号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述の如く、クライアントを複数のアプリケーションサーバに分散して接続する場合に、クライアントとアプリケーションサーバ間の通信状態は、夫々の通信毎に監視される。この場合、中間通信装置は、通過パケットを監視し、そのパケット内のフラグなどの通信状態情報からセッション状態を推測し、クライアントとアプリケーションサーバ間の通信状態を把握している。また、このように通過パケットを監視する場合、通過する全てのパケット毎にペイロードや通信状態フラグのチェックを行う必要があり、非常に複雑な処理を要し、中間通信装置のコスト増加に繋がる虞がある。
【０００６】
一方で、例えば、通信状態を監視、管理等を行わずに、クライアントとアプリケーションサーバとの間の通信経路の設定を行った場合、初期状態はその通信が存在していないため、その通信開始を検出できるが、通信終了などの通信状態の変化を検出するのが困難となる。この通信終了を検出するためには、例えば、パケット内の通信状態フラグを監視する手法や、通信トラフィックが停止したことをタイマーによって検出する手法などが考えられる。
【０００７】
例えば、コストの抑制を考慮して、タイマーのタイムアウトを使用する場合、通信のトラフィックの停止が、通信終了のために生じたのか、又は、クライアントによるアプリケーションの使用停止によって一時的に通信が途絶えているだけなのか、を判断することが困難となる。また、一時的に通信が途絶えているにもかかわらず、通信終了と誤判断され、一定時間経過後に通信が再開される可能性がある。この場合、その通信再開で、クライアントは適切なアプリケーションサーバに接続して、アプリケーションの使用を再開できず、システムにおける信頼性の低下を招く虞がある。なお、上記特許文献１に示すデータ中継装置においては、例えば、収集した負荷情報に基づいて、サーバの負荷を分散し軽減できるが、一方で、サーバ負荷軽減後におけるシステムの信頼性の維持等については開示されていない。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、アプリケーションサーバの負荷を軽減しつつ、信頼性を維持することができる分散処理システム及び分散処理方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明による分散処理システムは、パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送する中間通信装置と、中間通信装置から通知を受けたことに応じて、パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を当該中間通信装置に通知する負荷分散制御サーバと、を含み、中間通信装置は、複数のアプリケーションサーバのうち通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、パケットを転送し、中間通信装置は、所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを負荷分散制御サーバに通知し、負荷分散制御サーバは、中間通信装置からタイムアウトの通知を受けたことに応じて、複数のアプリケーションサーバの各々に対して、所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせることを特徴とする。
【００１０】
また、本発明による分散処理方法は、パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送するステップと、パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を通知するステップと、複数のアプリケーションサーバのうち通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、パケットを転送するステップと、所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを通知するステップと、タイムアウトの通知を受けたことに応じて、複数のアプリケーションサーバの各々に対して、所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせるステップとを含むことを特徴とする。
また、本発明によるプログラムは、パケットを転送するためのフロー転送情報に基づいて、当該パケットを転送する工程と、パケットの転送先である複数のアプリケーションサーバの負荷情報に基づいて当該パケットの通信経路を決定し、決定した当該通信経路に基づいて求めたフロー転送情報を通知する工程と、複数のアプリケーションサーバのうち通知されたフロー転送情報に基づいて決定されたアプリケーションサーバに対して、パケットを転送する工程と、所定のフロー転送情報に基づいた転送処理を一定時間以上行っていないことに応じて、当該所定のフロー転送情報のタイムアウトを通知する工程と、タイムアウトの通知を受けたことに応じて、複数のアプリケーションサーバの各々に対して、所定のフロー転送情報に関するアプリケーションの通信状態を問い合わせる工程とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、アプリケーションサーバの負荷を軽減しつつ、信頼性を維持することができる分散処理システム及び分散処理方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る分散処理システムの機能ブロック図である。
【図２】本発明の一実施形態に係る分散処理システムの概略的な構成を示すブロック図である。
【図３】負荷分散制御サーバのフロー状態ＤＢに記憶されたセッション識別情報と、通信経路情報と、を示す図である。
【図４】負荷分散制御サーバのアプリケーション通信状態ＤＢに記憶された、アプリケーション識別情報と、アプリケーションサーバ識別情報と、通信状態情報と、情報有効性と、を示す図である。
【図５】中間通信装置のフロー転送ＤＢに記憶された、セッション識別情報と、転送先情報と、通信状態情報と、を示す図である。
【図６】アプリケーションサーバの通信状態ＤＢに記憶された、アプリケーション識別情報と、セッション識別情報と、通信状態情報と、を示す図である。
【図７】本発明の一実施形態に係る分散処理システムの分散処理フローの一例を示すフロー図である。
【図８】本発明の一実施形態に係る分散処理システムにおける、クライアントとアプリケーション間の通信の終了処理の動作フローの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の一実施形態に係る分散処理システムの機能ブロック図である。本実施形態に係る分散処理システム１００は、複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)と、負荷分散制御サーバ１０１と、中間通信装置１０２と、を備えている。
【００１４】
各アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)は、複数のアプリケーション１〜ｎ(１３２１〜１３２ｎ)を実行させると共に、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との通信状態を検出することができる。また、負荷分散制御サーバ１０１は、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)により検出された通信状態に基づいて、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間の通信経路を決定し、負荷分散を行うことができる。さらに、中間通信装置１０２は、クライアント１０５とアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)との間における、フローデータの転送を行うことができる。
【００１５】
本実施形態に係る分散処理システム１００によれば、クライアント１０５とアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)間における通信の開始およびタイムアウトを適切に検出し、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の通信状態を正確に検出することができる。また、中間通信装置１０２を用いて、分散処理システム１００全体における通信の一貫性を維持し、管理することで、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間における接続異常等を確実に抑制でき、分散処理システム１００における信頼性を維持することができる。さらに、新たなクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間における通信接続を、複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に適切に振分けることにより、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の負荷を効果的に軽減することができる。
【００１６】
図２は、本発明の一実施形態に係る分散処理システムの概略的な構成を示すブロック図である。本実施形態に係る分散処理システム１００において、例えば、遠隔地にあるクライアント１０５は、データセンタや企業ネットワーク内などに配置された複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に、中間通信装置１０２を介して通信接続し、そのアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)内にあるアプリケーション１〜ｎ(１３２１〜１３２ｎ)を利用するものである。分散処理システム１００は、負荷分散制御サーバ１０１と、中間通信装置１０２と、複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)と、を備えている。
【００１７】
負荷分散制御サーバ１０１は、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との間における通信経路の設定、維持、変更、削除等を、夫々の通信経路の通信状態に基づいて決定する。
【００１８】
中間通信装置１０２は、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間の通信において、例えば、送信先アドレス（ＩＰ宛先アドレス）と、送信元アドレスとを含むフロー（フローデータ）を、指定された転送先のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)へ転送することができる。また、中間通信装置１０２は、転送するフロー（パケットの集合）が存在しない場合に、初期パケットを負荷分散制御サーバ１０１に送信する機能を有している。さらに、中間通信装置１０２は、登録済みフローにヒットして転送されるパケットがなくなった場合に、一定時間後にタイムアウトを行い、負荷分散制御サーバ１０１に対して、そのタイムアウト情報を送信する機能を有している。
【００１９】
アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)は、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間の通信に対して、終端処理を行う機能を有している。また、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)は、そのアプリケーション１〜ｎ(１３２１〜１３２ｎ)を実行させ、夫々のクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との通信状態を監視する機能を有している。さらに、負荷分散制御サーバ１０１は、アプリケーション通信状態監視インタフェース１〜ｎ(１０４１〜１０４ｎ)を介して、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)から、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間の通信状態を検出する機能を有している。
【００２０】
負荷分散制御サーバ１０１は、経路制御部１１１と、フロー状態ＤＢ（データベース）１１２と、アプリケーション通信状態収集部１１３と、アプリケーション通信状態ＤＢ（データベース）１１４と、を有している。
【００２１】
経路制御部１１１は、クライアント１０５とアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)との通信状態に基づいて、その通信経路の検索を実行し、決定する。また、経路制御部１１１は、中間通信装置１０２に対して、フローの通信経路の設定、維持、変更、削除等の実行、初期パケットの受信、タイムアウト情報の受信、等を行う。
【００２２】
フロー状態ＤＢ１１２は、中間通信装置１０２に対して設定したフロー情報等を、記憶し、管理する。フロー状態ＤＢ１１２は、例えば、セッション識別情報と、通信経路情報と、を記憶する（図３）。
【００２３】
セッション識別情報は、例えば、ＩＰの５タプル(ＩＰ送信元アドレス、送信先アドレス、プロトコル番号、ポート元番号、ポート先番号等)により特定できるフロー情報を含む。また、通信経路情報は、例えば、フローが入出力される中間通信装置１０２（入力される入力物理ポート及び出力される出力物理ポート）、そのときに書換えるべき送信先ＭＡＣアドレス、次に転送されるアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)、そのＭＡＣアドレス、受信されるアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)のアプリケーション１〜ｎ(１３２１〜１３２ｎ)、等の情報を含む。
【００２４】
アプリケーション通信状態収集部１１３は、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)から、アプリケーション通信状態監視インタフェース１〜ｎ(１０４１〜１０４ｎ)を介して取得した、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間における通信状態の維持、管理などの処理を行う。また、アプリケーション通信状態収集部１１３は、経路制御部１１１からの問合わせに応じて、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の位置や通信状態等を送信する。
【００２５】
アプリケーション通信状態ＤＢ１１４は、アプリケーション通信状態収集部１１３により取得されたクライアント１０５と、アプリケーション１〜ｎ(１３２１〜１３２ｎ)との通信状態の情報のキャッシュ（記憶）を行う。また、アプリケーション通信状態ＤＢ１１４は、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に問合わせするための情報などを記憶する。
【００２６】
アプリケーション通信状態ＤＢ１１４は、例えば、アプリケーション識別情報と、アプリケーションサーバ識別情報と、通信状態情報と、情報有効性と、を記憶する（図４）。アプリケーション識別情報は、例えば、アプリケーション１〜ｎ(１３２１〜１３２ｎ)を特定するための、アプリケーション番号等の情報を含む。また、アプリケーションサーバ識別情報は、例えば、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)を特定するための、ＭＡＣアドレス等の情報を含む。さらに、通信状態情報は、例えば、セッションの確立中、正常通信中、セッション終了中などの、クライアント１０５とアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)との通信状態を含む。情報有効性は、その情報の有効性を示すものであり、例えば、更新時刻などの情報を含む。
【００２７】
中間通信装置１０２は、フロー転送部１２１と、フロー転送ＤＢ（データベース）１２２と、通信装置内制御部１２３と、を有している。
【００２８】
フロー転送部１２１は、フローのパケットから抜出したフロー識別に必要なキー情報に基づいて、フロー転送ＤＢ１２２を検索し、そのパケットの転送先であるアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)を決定する。そして、フロー転送部１２１は、決定したアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に、パケットを転送する。また、フロー転送部１２１は、フローのパケットに含まれる特別なアクション情報、例えば、ＭＡＣヘッダ書換え、ＱｏＳ等を、そのパケットに対して実行する。
【００２９】
フロー転送ＤＢ１２２は、フローを格納することができる。また、フロー転送ＤＢ１２２は、例えば、セッション識別情報と、転送先情報と、通信状態情報と、を記憶する（図５）。セッション識別情報は、例えば、ＩＰの５タプル(ＩＰ送信元アドレス、送信先アドレス、プロトコル番号、ポート元番号、ポート先番号等)により特定できるフロー情報を含む。また、転送先情報は、例えば、フローの転送先である、ＭＡＣアドレスにより特定できるアプリケーションサーバ番号等を含む。通信状態情報は、例えば、通信の有無を示す情報を含む。
【００３０】
通信装置内制御部１２３は、負荷分散制御サーバ１０１との通信、フロー転送ＤＢ１２２の維持、管理等を行う。また、通信装置内制御部１２３は、フロー転送部１２１からの初期パケット、フロー転送ＤＢ１２２の情報などを確認することによって、フローのタイムアウト情報を取得することができる。
【００３１】
アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)は、ネットワーク終端部１３１と、複数のアプリケーション１〜ｎ(１３２１〜１３２ｎ)と、通信状態ＤＢ１３３と、通信状態通知部１３４と、を有している。
【００３２】
ネットワーク終端部１３１は、例えば、ＴＣＰ、ＵＤＰなどの、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)と間の通信に対して、終端処理を行う。アプリケーション１〜ｎ(１３２１〜１３２ｎ)は、例えば、アプリケーションプログラムであり、クライアント１０５との通信を実際に実施して、クライアント１０５に対して所定のサービスを提供する。
【００３３】
通信状態ＤＢ１３３は、そのクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との間の通信状態、例えば、通信の開始中、通信の実施中、通信の終了中、等の状態を、アプリケーション１〜ｎ(１３２１〜１３２ｎ)とセッションとを関係付けて記憶する。通信状態ＤＢ１３３は、例えば、アプリケーション識別情報と、セッション識別情報と、通信状態情報と、を記憶する（図６）。アプリケーション識別情報は、例えば、アプリケーション１〜ｎ(１３２１〜１３２ｎ)を特定するための、アプリケーション番号を含む。また、セッション識別情報は、例えば、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との通信を特定する、ＩＰの５タプル(ＩＰ送信元アドレス、送信先アドレス、プロトコル番号、ポート元番号、ポート先番号等)により特定できるフロー情報を含む。さらに、通信状態情報は、例えば、セッションの確立中、正常通信中、セッション終了中、などのクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との通信状態を含む。
【００３４】
通信状態通知部１３４は、負荷分散制御サーバ１０１と通信を行い、また、通信状態ＤＢ１３３から情報を読出す。
【００３５】
なお、フロー状態ＤＢ１１２、アプリケーション通信状態ＤＢ１１４、フロー転送ＤＢ１２２、及び通信状態ＤＢ１３３は、例えば、磁気ディスク装置、光ディスク装置、メモリ等の任意の記憶装置によって構成されている。また、フロー状態ＤＢ１１２、アプリケーション通信状態ＤＢ１１４、フロー転送ＤＢ１２２、及び通信状態ＤＢ１３３は、物理的に分離して構成されているが、物理的に一体で構成されていてもよい。さらに、複数のクライアント１０５が、同時に中間通信装置１０２を介して、複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に夫々接続してもよい。
【００３６】
また、負荷分散制御サーバ１０１、中間通信装置１０２、及びアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)は、例えば、制御処理、演算処理等と行うＣＰＵ（Central Processing Unit）、ＣＰＵによって実行される制御プログラム、演算プログラム等が記憶されたＲＯＭ（Read Only Memory）、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）等からなるマイクロコンピュータを中心にして、ハードウェア構成されている。  次に、本実施形態に係る分散処理システムの分散処理フローについて、詳細に説明する。図７は、本実施形態に係る分散処理システムの分散処理フローの一例を示すフロー図である。
【００３７】
例えば、中間通信装置１０２のフロー転送部１２１は、クライアント１０５から、フロー転送ＤＢ１２２に登録されていないフローのパケットを受信すると、ミスヒットした初期パケットを検出する（ステップＳ２１）。そして、フロー転送部１２１は、このミスヒットしたパケットを、通信装置内制御部１２３に対して送信する（ステップＳ２２）。
【００３８】
通信装置内制御部１２３は、送信されたミスヒットのパケットを、負荷分散制御サーバ１０１の経路制御部１１１に対して送信する（ステップＳ２３）。これにより、通信装置内制御部１２３は、新規フロー、すなわち、新規のクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との間の通信開始を、経路制御部１１１に対して通知する。
【００３９】
経路制御部１１１は、この新規フローの通知を受けると、このフローに対して、中間通信装置１０２を含めたネットワークとアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)とのトポロジー情報（接続形態情報）、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の負荷情報(ＣＰＵ、メモリ、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)上のアプリケーション数、通信数などの情報)等に基づいて、通信経路を決定する。また、経路制御部１１１は、受信したパケットに基づいて、アプリケーション通信状態ＤＢ１１４の情報を更新する。
【００４０】
次に、負荷分散制御サーバ１０１の経路制御部１１１は、決定した通信経路から、中間通信装置１０２における自ホップ情報（中継情報）等のフロー転送情報を抽出する（ステップＳ２４）。そして、経路制御部１１１は、このフローに対するフロー転送情報と共にパケットを、中間通信装置１０２の通信装置内制御部１２３に対して返信する。
【００４１】
その後、通信装置内制御部１２３は、フロー転送ＤＢ１２２にフロー転送情報を登録すると共に、経路制御部１１１からのパケットをフロー転送部１２１に送信する（ステップＳ２５）。
【００４２】
さらに、フロー転送部１２１は、通信装置内制御部１２３から送信されたパケットを、フロー転送ＤＢ１２２に従って、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に転送する（ステップＳ２６）。フロー転送部１２１は、これ以降に受信する該当フローに属するパケットを、フロー転送ＤＢ１２２に従って転送する。
【００４３】
アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)のネットワーク終端部１３１は、受信したパケットに対して終端処理を行い、アプリケーション１〜ｎ(１３２１〜１３２ｎ)に対してペイロードデータを送信する（ステップＳ２７）。また、ネットワーク終端部１３１は、実際のアプリケーション１〜ｎ(１３２１〜１３２ｎ)が認識している状態に一致させるように、通信状態を更新し、更新した通信状態を、通信状態通知部１３４に対して送信する。
【００４４】
通信状態通知部１３４は、負荷分散制御サーバ１０１のアプリケーション通信状態収集部１１３に対して、更新した通信状態を送信する（ステップＳ２８）。アプリケーション通信状態収集部１１３は、この通信状態の情報をアプリケーション通信状態ＤＢ１１４に記憶させ、管理させる。このようにして、負荷分散制御サーバ１０１の経路制御部１１１は、負荷分散したクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)との間における通信の一貫性を維持することができる。
【００４５】
次に、本実施形態に係る分散処理システム１００において、クライアント１０５とアプリケーションとの間における通信の終了処理の動作フローについて、詳細に説明する。図８は、本実施形態に係る分散処理システムにおける、クライアントとアプリケーション間の通信の終了処理の動作フローの一例を示す図である。
【００４６】
例えば、中間通信装置１０２のフロー転送部１２１は、あるフローに関して、転送処理を行っていないことを、検出する（ステップＳ３１）。なお、フロー転送部１２１は、フロー転送ＤＢ１２２における通信状態（図５）が一定時間以上、「通信なし」から「通信あり」の状態に更新されていない場合に、上記転送処理を行っていないことを検出する。通信装置内制御部１２３は、フロー転送ＤＢ１２２からそのフロー情報を取得する。そして、通信装置内制御部１２３は、取得したフロー情報が通信状態にないことを確認して、タイムアウトであると認識する。
【００４７】
次に、中間通信装置１０２の通信装置内制御部１２３は、タイムアウトしたフローを、負荷分散制御サーバ１０１の経路制御部１１１に対して送信する（ステップＳ３２）。経路制御部１１１は、タイムアウトしたフローを受信すると、フロー状態ＤＢ１１２からそのフロー情報を読出し、読出したフロー情報からアプリケーション情報を取得する。
【００４８】
その後、経路制御部１１１は、アプリケーション通信状態収集部１１３にアプリケーションの通信状態を問い合わせる（ステップＳ３３）。アプリケーション通信状態収集部１１３は、アプリケーション通信状態ＤＢ１１４から、該当するアプリケーションの通信状態を読出し、取得する。アプリケーション通信状態収集部１１３は、読出したアプリケーションの通信状態が十分に新しいと判断した場合、下記（ステップＳ３６）へ移行する。
【００４９】
一方、アプリケーション通信状態収集部１１３は、アプリケーション通信状態ＤＢ１１４の情報が古いと判断した場合、アプリケーション通信状態ＤＢ１１４のアプリケーション識別情報に基づいて、そのアプリケーション１〜ｎ(１３２１〜１３２ｎ)が動作している特定のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の通信状態通知部１３４に、アプリケーションの通信状態を問い合わせる（ステップＳ３４）。通信状態通知部１３４は、その通信状態を通信状態ＤＢ１３３から読み出し、取得する。
【００５０】
通信状態通知部１３４は、取得したアプリケーションの通信状態を、負荷分散制御サーバ１０１のアプリケーション通信状態収集部１１３に対して送信する（ステップＳ３５）。そして、アプリケーション通信状態収集部１１３は、そのアプリケーションの通信状態に基づいて、アプリケーション通信状態ＤＢ１１４の情報を更新する。
【００５１】
また、アプリケーション通信状態収集部１１３は、取得したアプリケーションの通信状態を、経路制御部１１１に送信する（ステップＳ３６）。経路制御部１１１は、アプリケーションの状態が終了状態あるいは、存在しない(終了済み)の場合、該当するフローの通信経路情報を、フロー状態ＤＢ１１２から削除する。
【００５２】
さらに、経路制御部１１１は、中間通信装置１０２の通信装置内制御部１２３に対して、フローの通信経路情報を送信する（ステップＳ３７）。経路制御部１１１は、（ステップＳ３６）で入手したアプリケーションの通信状態が終了状態、あるいは、存在しない(終了済み)の場合、通信装置内制御部１２３に対して、該当するフローを削除する旨の通信経路情報を送信し、それ以外の場合、そのフローを維持する旨の通信経路情報を送信する。通信装置内制御部１２３は、送信された通信経路情報に従って、フロー転送ＤＢ１２２の情報を変更する。
【００５３】
以上、本実施形態に係る分散処理システム１００によれば、クライアント１０５とアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)間における通信の開始およびタイムアウトを適切に検出し、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の通信状態を正確に検出することができる。また、例えば、フローのパケットにおける通信状態フラグの監視等を行わない簡易な構成の中間通信装置１０２を用いて、分散処理システム１００全体における通信の一貫性を維持し、管理することで、クライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間における接続異常等を確実に抑制でき、分散処理システム１００の信頼性を適切に維持できる。すなわち、分散処理システム１００の低コスト化を図りつつ、信頼性を適切に維持できる。さらに、新たなクライアント１０５とアプリケーション１〜ｎ(１３２１〜１３２ｎ)間における通信接続を、複数のアプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)に適切に振分けることにより、アプリケーションサーバ１〜ｎ(１０３１〜１０３ｎ)の負荷を軽減しつつ、分散処理システム１００全体のスケーラビリティを向上させることができる。
【００５４】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００５５】
この出願は、２００９年３月１７日に出願された日本特許出願２００９−０６４３３８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００５６】
１００  分散処理システム
１０１  負荷分散制御サーバ
１０２  中間通信装置
１０３１〜１０３ｎ  アプリケーションサーバ１〜ｎ
１０４１〜１０４ｎ  アプリケーション通信状態監視インタフェース１〜ｎ
１０５  クライアント
１１１  経路制御部
１１２  フロー状態ＤＢ
１１３  アプリケーション通信状態収集部
１１４  アプリケーション通信状態ＤＢ
１２１  フロー転送部
１２２  フロー転送ＤＢ
１２３  通信装置内制御部
１３１  ネットワーク終端部
１３２１〜１３２ｎ  アプリケーション１〜ｎ
１３３  通信状態ＤＢ
１３４  通信状態通知部
【図１】
0005915792.tif 000002
【図２】
0005915792.tif 000003
【図３】
0005915792.tif 000004
【図４】
0005915792.tif 000005
【図５】
0005915792.tif 000006
【図６】
0005915792.tif 000007
【図７】
0005915792.tif 000008
【図８】
0005915792.tif 000009