(57)【特許請求の範囲】
【請求項１】
複数のクライアントから受信したリクエストを複数のプロキシノードに分散して伝達するスイッチと、
前記スイッチから受信するリクエストを複数のキャッシュノードのうち少なくとも１つのキャッシュノードに伝達する前記複数のプロキシノードと、
前記複数のプロキシノードのうち少なくとも１つのプロキシノードから受信したリクエストを処理する前記複数のキャッシュノードと、
を備え、
前記複数のプロキシノードの各々は、予め選定された命令の実行時間に基づいて、データサイズ別の応答速度を測定するノード制御部を備えることを特徴とするキャッシュシステム。
【請求項２】
前記複数のプロキシノードの各々は、
キャッシュサーバリストに基づいて前記少なくとも１つのキャッシュノードを選択し、前記キャッシュノードに前記リクエストを送信するプロキシサーバと、
前記プロキシノードのリソースをモニタリングして統計情報を生成する情報収集部と、をさらに備え、
前記ノード制御部は、前記プロキシサーバのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御することを特徴とする請求項１に記載のキャッシュシステム。
【請求項３】
前記ノード制御部は、
開始、中止、および再開始命令を受信して前記プロキシサーバのプロセスを開始、中止、および再開始することを特徴とする請求項２に記載のキャッシュシステム。
【請求項４】
前記ノード制御部は、
キャッシュサーバ追加／削除命令に基づいて、前記キャッシュサーバリストにキャッシュサーバを追加し、または、前記キャッシュサーバリストからキャッシュサーバを削除することを特徴とする請求項２に記載のキャッシュシステム。
【請求項５】
前記情報収集部は、
前記複数のクライアントから前記プロキシノードに送信されたすべてのリクエストの数と、前記複数のキャッシュノードのうち前記リクエストを伝達したキャッシュノードから応答を受けることが出来ないリクエストの数のうち少なくとも１つに関する情報を統計情報として生成することを特徴とする請求項２に記載のキャッシュシステム。
【請求項６】
前記複数のキャッシュノードの各々は、
前記リクエストに応じてデータを格納し、または、前記リクエストに応じてデータを提供する複数のキャッシュサーバと、
前記キャッシュノードのリソースをモニタリングして統計情報を生成する情報収集部と、をさらに備え、
前記ノード制御部は、前記複数のキャッシュサーバの各々のアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御することを特徴とする請求項１に記載のキャッシュシステム。
【請求項７】
前記ＨＢは、物理的な装備とアプリケーションが正常に動作するかを周期的に確認する動作を備えることを特徴とする請求項２または請求項６に記載のキャッシュシステム。
【請求項８】
前記複数のプロキシノードと前記複数のキャッシュノードから受信されるデータに基づいて、前記複数のプロキシノードおよび前記複数のキャッシュノードを管理する管理ノードをさらに備えることを特徴とする請求項１に記載のキャッシュシステム。
【請求項９】
前記管理ノードは、
前記複数のプロキシノードと前記複数のキャッシュノードとがそれぞれ備えるノード制御部から受信された情報を管理制御部に伝達するメッセージ中継部と、
前記メッセージ中継部を介して受信された情報に基づいて前記複数のプロキシノードと前記複数のキャッシュノードに対する状態を把握して、前記複数のプロキシノードと前記複数のキャッシュノードの各々に対する開始および終了命令を提供する前記管理制御部と、
前記複数のプロキシノードと前記複数のキャッシュノードとがそれぞれ備える情報収集部から受信された情報を用いて統計情報を生成するモニタリング部と、
ネットワークを介して接続する管理者端末機と通信するユーザインターフェース部と、
前記管理制御部および前記モニタリング部で生成される情報を格納するデータベースと、
を備えることを特徴とする請求項８に記載のキャッシュシステム。
【請求項１０】
前記管理制御部は、
前記複数のプロキシノードと前記複数のキャッシュノードとがそれぞれ備えるノード制御部を介して受信されるデータサイズ別の応答速度に関する情報および前記管理制御部が測定するデータサイズ別の応答速度に関する情報を前記モニタリング部に送信することを特徴とする請求項９に記載のキャッシュシステム。
【請求項１１】
前記モニタリング部は、
前記管理制御部から受信されるデータサイズ別の応答速度に関する情報をデータの大きさにより前記データベースに格納することを特徴とする請求項１０に記載のキャッシュシステム。
【請求項１２】
前記管理制御部は、
前記ユーザインターフェース部を介して受信される前記管理者端末機の命令に基づいて前記複数のプロキシノードと前記複数のキャッシュノードの各々に対する開始および終了命令を提供することを特徴とする請求項９に記載のキャッシュシステム。
【請求項１３】
スイッチからクライアントのリクエストを受信し、複数のキャッシュノードのうちキャッシュサーバリストに基づいて選択された少なくとも１つのキャッシュノードに前記リクエストを送信するプロキシサーバと、
予め選定された命令の実行時間に基づいて、データサイズ別の応答速度を測定するノード制御部と、
を備えることを特徴とするプロキシシステム。
【請求項１４】
さらに、システムリソースをモニタリングして統計情報を生成する情報収集部を備え、
前記ノード制御部は、前記プロキシサーバのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御することを特徴とする請求項１３に記載のプロキシシステム。
【請求項１５】
前記ノード制御部は、
キャッシュサーバ追加／削除命令に基づいて、キャッシュサーバリストにキャッシュサーバを追加し、または、前記キャッシュサーバリストからキャッシュサーバを削除することを特徴とする請求項１３に記載のプロキシシステム。
【請求項１６】
複数のクライアントから受信したリクエストを複数のコンボノードに分散して伝達するスイッチと、
プロキシサーバと複数のキャッシュサーバの各々を含み、前記スイッチから受信するリクエストを前記プロキシサーバを介して前記複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに伝達する前記複数のコンボノードと、を備え、
前記複数のコンボノードの各々は、予め選定された命令の実行時間に基づいて、データサイズ別の応答速度を測定するノード制御部を備えることを特徴とするキャッシュシステム。
【請求項１７】
前記ノード制御部は、前記コンボノードのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御し、
前記複数のコンボノードの各々は、前記コンボノードのリソースをモニタリングして統計情報を生成する情報収集部をさらに備えることを特徴とする請求項１６に記載のキャッシュシステム。
【請求項１８】
スイッチで複数のクライアントから受信したリクエストを複数のプロキシノードに分散して伝達するステップと、
プロキシノードで前記スイッチから受信するリクエストを複数のキャッシュノードのうち少なくとも１つのキャッシュノードに伝達するステップと、
キャッシュノードで前記複数のプロキシノードのうち少なくとも１つのプロキシノードから受信したリクエストを処理するステップと、
を含み、
前記プロキシノード又は前記キャッシュノードが備えるノード制御部が、予め選定された命令の実行時間に基づいて、データサイズ別の応答速度を測定するステップをさらに含むことを特徴とするキャッシングサービスの提供方法。
【請求項１９】
スイッチで複数のクライアントから受信したリクエストを複数のコンボノードに分散して伝達するステップと、
前記コンボノードで前記スイッチから受信するリクエストを前記コンボノードが備えるプロキシサーバを介して前記コンボノードに接続された複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに伝達するように制御するステップと、
前記コンボノードで前記少なくとも１つのキャッシュサーバが前記伝達されたリクエストを処理するように制御するステップと、
を含み、
前記コンボノードが備えるノード制御部が、予め選定された命令の実行時間に基づいて、データサイズ別の応答速度を測定するステップをさらに含むことを特徴とするキャッシングサービスの提供方法。
【請求項２０】
請求項１８または請求項１９に記載の方法を行うプログラムを記録したことを特徴とするコンピュータ読み出し可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュクラウド構造を利用したキャッシュシステムおよびキャッシングサービスの提供方法に関する。
【背景技術】
【０００２】
従来技術に係るキャッシングソリューション（ｃａｃｈｉｎｇ  ｓｏｌｕｔｉｏｎ）において、クライアントは、それぞれが必要なすべてのキャッシュサーバ（ｃａｃｈｅ  ｓｅｒｖｅｒ）に接続された構成を有する。このとき、キャッシュサーバに問題が発生すると、クライアント（ｃｌｉｅｎｔ）が直接問題を把握し、独立的にキャッシュサーバリストを用いてハッシング（ｈａｓｈｉｎｇ）しなければならなかった。なお、ここでクライアントとは、キャッシングソリューションを用いるシステムを意味するものであり、例えば、一般的なウェブシステムでは、ウェブサーバやウェブアプリケーションサーバ（ｗｅｂ  ａｐｐｌｉｃａｔｉｏｎ  ｓｅｒｖｅｒ、ＷＡＳ）を意味するものであってもよい。
【０００３】
従来技術によると、キャッシュサーバの問題をキャッシングソリューションを用いるクライアントが直接解決しなければならないため、クライアント全体に追加的機能を追加することのできるクライアント中心のフォールト・トレランス（ｆａｕｌｔ−ｔｏｌｅｒａｎｃｅ）が必要となるものであった。また、各クライアントが独立的にキャッシュサーバリストを保守（ｍａｉｎｔｅｎａｎｃｅ）する場合、分散ハッシュテーブルにおける整合性（ｃｏｎｓｉｓｔｅｎｃｙ）の問題が発生することがあった。例えば、同じキー（ｋｅｙ）に対するハッシュが、異なるキャッシュサーバにマッチングする虞があるという問題があった。
【０００４】
したがって、より安全で効率的なキャッシュ技術の導入に対する要求が高まる傾向にあった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、クライアントが、複数のキャッシュサーバの各々に個別的に接続する必要がなく、キャッシュクラウド（ｃａｃｈｅ  ｃｌｏｕｄ）に接続してキャッシングサービスの提供を受けることのできるキャッシュシステムおよびキャッシングサービスの提供方法を提供する。
【０００６】
また、本発明は、クライアントに別の構成を追加しなくとも、キャッシングサービスの提供を受けることができるキャッシュシステムおよびキャッシングサービスの提供方法を提供する。
【０００７】
また、本発明は、プロキシサーバを用いてクライアントとキャッシュサーバとの間の障害が発生した場合にも整合性を保障できるキャッシュシステムおよびキャッシングサービスの提供方法を提供する。
【０００８】
また、本発明は、別の管理構成によってキャッシュクラウドを管理することにより、キャッシュクラウドの拡張性をクライアントで考慮する必要がなく、当該管理構成を用いてプロキシサーバやキャッシュサーバの統計情報およびリソース状況をリアルタイムでモニタリングして障害の発生を予防し、サービス品質を持続的に向上させることができるキャッシュシステムおよびキャッシングサービスの提供方法を提供する。
【課題を解決するための手段】
【０００９】
本発明の一実施形態によれば、複数のクライアントから受信したリクエストを複数のプロキシノードに分散して伝達するスイッチと、スイッチから受信するリクエストを複数のキャッシュノードのうち少なくとも１つのキャッシュノードに伝達する複数のプロキシノードと、複数のプロキシノードのうち少なくとも１つのプロキシノードから受信したリクエストを処理する複数のキャッシュノードとを備えるキャッシュシステムが提供される。
【００１０】
また、複数のプロキシノードの各々は、キャッシュサーバリストに基づいて少なくとも１つのキャッシュノードを選択し、キャッシュノードでリクエストを送信するプロキシサーバ、プロキシサーバのアプリケーションの初期化、開始および終了、モニタリング、およびＨＢ（Ｈｅａｒｔ  Ｂｅａｔ）のうち少なくとも１つを制御するノード制御部および当該プロキシノードのリソースをモニタリングして統計情報を生成する情報収集部を備えてもよい。
【００１１】
また、複数のキャッシュノードの各々は、リクエストに伴うデータを格納し、または、リクエストに伴うデータを提供する複数のキャッシュサーバ、複数のキャッシュサーバの各々のアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御するノード制御部および前記キャッシュノードのリソースをモニタリングして統計情報を生成する情報収集部を備えてもよい。
【００１２】
また、キャッシュシステムは、複数のプロキシノードと複数のキャッシュノードから受信されるデータに基づいて複数のプロキシノードおよび複数のキャッシュノードを管理する管理ノードをさらに備えてもよい。この場合、管理ノードは、複数のプロキシノードと複数のキャッシュノードがそれぞれ備えるノード制御部から受信された情報を管理制御部に伝達するメッセージ中継部と、メッセージ中継部を介して受信された情報に基づいて複数のプロキシノードと複数のキャッシュノードに対する状態を把握して、複数のプロキシノードと複数のキャッシュノードの各々に対する開始および終了命令を提供する管理制御部と、複数のプロキシノードと複数のキャッシュノードがそれぞれ備える情報収集部から受信された情報を用いて統計情報を生成するモニタリング部と、ネットワークを介して接続する管理者端末機と通信するユーザインターフェース部と、管理制御部およびモニタリング部で生成される情報を格納するデータベースとを備えてもよい。
【００１３】
また、本発明の一実施形態によれば、スイッチからクライアントのリクエストを受信し、複数のキャッシュノードのうちキャッシュサーバリストに基づいて選択された少なくとも１つのキャッシュノードでリクエストを送信するプロキシサーバと、プロキシサーバのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢのうち少なくとも１つを制御するノード制御部と、システムリソースをモニタリングして統計情報を生成する情報収集部とを備えるプロキシシステムを提供する。
【００１４】
また、本発明の一実施形態によれば、複数のクライアントから受信したリクエストを複数のコンボノードに分散して伝達するスイッチと、プロキシサーバと複数のキャッシュノードとをそれぞれ含み、スイッチから受信するリクエストをプロキシサーバを介して複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに伝達する複数のコンボノードとを備えるキャッシュシステムが提供される。
【００１５】
また、本発明の一実施形態によれば、スイッチで複数のクライアントから受信したリクエストを複数のプロキシノードに分散して伝達するステッと、プロキシノードでスイッチから受信するリクエストを複数のキャッシュノードのうち少なくとも１つのキャッシュノードに伝達するステップと、キャッシュノードで複数のプロキシノードのうち少なくとも１つのプロキシノードから受信したリクエストを処理するステップとを含むキャッシングサービスの提供方法を提供する。
【００１６】
また、本発明の一実施形態によれば、スイッチで複数のクライアントから受信したリクエストを複数のコンボノードに分散して伝達するステップと、コンボノードでスイッチから受信するリクエストをコンボノードが備えるプロキシサーバを介してコンボノードに接続された複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに伝達するように制御するステップと、コンボノードで少なくとも１つのキャッシュサーバが伝達されたリクエストを処理するように制御するステップとを含むキャッシングサービスの提供方法を提供する。
【発明の効果】
【００１７】
本発明によれば、クライアントが複数のキャッシュサーバの各々に個別的に接続する必要がなく、キャッシュクラウド（ｃａｃｈｅ  ｃｌｏｕｄ）に接続することによりキャッシングサービスの提供を受けることができる。
【００１８】
また、クライアントに別の構成を追加しなくとも、キャッシングサービスの提供を受けることができる。
【００１９】
また、プロキシサーバを用いてクライアントとキャッシュサーバとの間の障害が発生した場合にも整合性を保障することができる。
【００２０】
また、別の管理構成によってキャッシュクラウドを管理することにより、キャッシュクラウドの拡張性をクライアントで考慮する必要がなく、当該管理構成を用いてプロキシサーバやキャッシュサーバの統計情報およびリソース状況をリアルタイムでモニタリングして障害の発生を予防し、サービス品質を持続的に向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態において、キャッシュシステムの概略構成を示す図である。
【図２】本発明の一実施形態に係るキャッシュシステムの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態に係るキャッシュシステムでコンシステントハッシングを保障するための方法を説明するための図である。
【図４】本発明の他の実施形態において、キャッシュシステムの概略構成を示す図である。
【図５】本発明の他の実施形態に係るキャッシュシステムの内部構成を説明するためのブロック図である。
【図６】本発明の一実施形態において、キャッシングサービスの提供方法を示すフローチャートである。
【図７】本発明の他の実施形態において、キャッシングサービスの提供方法を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を添付する図面を参照しながら詳細に説明する。
【００２３】
本発明の実施形態に係るキャッシュシステムは、キャッシュ機能を速くかつ安全に提供するためのサービスであり、基本的にキャッシュクラウドコンピュータ形態で構成することができる。
【００２４】
図１は、本発明の一実施形態において、キャッシュシステムの概略構成を示す図である。図１は、複数のクライアント１１０、キャッシュクラウド領域１２０、管理領域１３０、および管理者端末機１４０を示している。このとき、本実施形態に係るキャッシュシステムは、キャッシュクラウド領域１２０および管理領域１３０に含まれる構成を備えてもよい。ここで、キャッシュクラウド領域１２０は、スイッチ１２１、複数のプロキシノード１２２、および複数のキャッシュノード１２３を備えており、管理領域１３０は、管理制御部１３１、およびユーザインターフェース部１３２を備えている。
【００２５】
まず、複数のクライアント１１０のうち１つのクライアントからスイッチ１２１を介して命令語が送信されると、このような命令語は複数のプロキシノード１２２のうち１つのプロキシノードを経て、複数のキャッシュノード１２３のうち少なくとも１つのキャッシュノードに伝達されて処理される。このとき、少なくとも１つのキャッシュノードで処理された結果は、複数のプロキシノード１２２のうち１つのプロキシノードとスイッチ１２１を経てクライアントに送信される。すなわち、複数のプロキシノード１２２は、情報の整合性のための中継の役割を担ってもよい。
【００２６】
スイッチ１２１は、複数のプロキシノード１２２がそれぞれ備えるプロキシサーバに対する負荷を分散させて、ヘルスチェック（ｈｅａｌｔｈ  ｃｈｅｃｋ）を担う。
【００２７】
また、管理領域１３０は、複数のプロキシノード１２２と複数のキャッシュノード１２３を管理してモニタリングすることによって、より容易にキャッシュシステムを管理できるように補助する役割を担う。このとき、管理領域１３０は、管理制御部１３１とユーザインターフェース部１３２とを少なくとも備えてもよい。管理制御部１３１とユーザインターフェース部１３２については、図２を参照してより詳しく説明する。
【００２８】
図２は、本発明の一実施形態に係るキャッシュシステムの内部構成を説明するためのブロック図である。クライアント２１０は、メムキャッシュクライアント２１１を構成要素として備えてもよい。ここで、メムキャッシュクライアント２１１は、一例として、既存メムキャッシュ（ｍｅｍｃａｃｈｅｄ）サーバの利用のために用いられるクライアントプログラムを備えてもよい。すなわち、クライアント２１０は、別の構成を追加する必要がなく、本実施形態に係るキャッシュシステムを介してキャッシングサービスを利用することができる。
【００２９】
スイッチ１２１は、上述したように複数のプロキシサーバに対する負荷を分散させてヘルスチェックを実行する。例えば、ヘルスチェックの周期を５秒に設定し、それ以上応答がないプロキシサーバは障害が発生したと判断してクライアントのリクエストや命令語などを伝達しないように設定する。
【００３０】
図２においては、複数のプロキシノードのうち１つのプロキシノード２２０及び複数のキャッシュノードのうち１つのキャッシュノード２３０だけを具体化して図示している。実質的に、複数のプロキシノードと複数のキャッシュノードはそれぞれ互いに通信することができ、以下に説明する管理ノード２４０ともそれぞれ互いに通信することができる。しかし、図２では、説明の便宜上、プロキシノード２２０とキャッシュノード２３０をそれぞれ一つずつ用いてキャッシュシステムを説明する。
【００３１】
複数のプロキシノードは、それぞれ複数のキャッシュノードのうち１つ以上のキャッシュノードと通信することができるが、図２では、説明の便宜上、プロキシノード２２０がスイッチ１２１を介してクライアントのリクエストを受信し、受信されたクライアントのリクエストを伝達するためにキャッシュノード２３０と通信する構成例を示している。
【００３２】
プロキシノード２２０は、既存のキャッシュサーバ（本実施形態では、上述したメムキャッシュサーバ）のためのプロトコルをサポートして、クライアントが汎用的なメムキャッシュクライアント２１１をそのまま利用できるようにしてもよい。また、プロキシノード２２０は、コンシステントハッシング（ｃｏｎｓｉｓｔｅｎｔ  ｈａｓｈｉｎｇ）によってキャッシュデータの整合性を提供することができ、キャッシュノードの障害を処理することができる。コンシステントハッシングとキャッシュノードに対する障害処理については、以下により詳しく説明する。また、プロキシノード２２０は、関連するキャッシュノードを管理する統制サーバの役割も同時に担うことができる。すなわち、プロキシノード２２０のリソースに対する統計情報を提供し、リアルタイム負荷分散機能を提供することができる。
【００３３】
このような機能の実行のために、プロキシノード２２０は、プロキシサーバ２２１、ノード制御部２２２、および情報収集部２２３を構成要素として備えてもよい。
【００３４】
プロキシサーバ２２１は、スイッチ１２１を介して受信されるクライアントのリクエストを受けてキャッシュノード２３０のメムキャッシュ２３１に送信する。
【００３５】
ノード制御部２２２は、プロキシサーバ２２１のアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢ（Ｈｅａｒｔ  Ｂｅａｔ）を行う。ここで、ＨＢは、物理的な装備とアプリケーションが正常に動作するかを周期的に確認する動作を意味する。すなわち、キャッシュシステムは、このようなノード制御部２２２を用いてプロキシサーバ２２１の中断なくキャッシュサーバを追加および削除することができる。例えば、障害が発生したキャッシュサーバのリアルタイムでの除去や、プロキシサーバの性能が閾値に到達した場合、キャッシュサーバの増設などの過程を柔軟に処理することができる。
【００３６】
このとき、ノード制御部２２２は、管理制御部２４２から開始／中止／再開始命令を受信してプロキシプロセスを開始／中止／再開始してもよい。また、ノード制御部２２２は、プロキシサーバ２２１が備えるキャッシュサーバリストに新しいキャッシュサーバを追加したり、既存のキャッシュサーバを削除するための命令を管理制御部２４２を介して受信して処理してもよい。
【００３７】
情報収集部２２３は、プロキシノード２２０のリソースをモニタリングする。このとき、モニタリングされた結果は、以下に説明する管理ノード２４０のモニタリング部２４３に送信してもよい。例えば、情報収集部２２３は、現在のプロキシノード２２０で複数のクライアントらから受信したすべてのリクエストの数とキャッシュノード２３０で応答を受けることが出来ないリクエストの数などの統計情報を、前記モニタリングされた結果として提供してもよい。
【００３８】
キャッシュノード２３０は、複数のメムキャッシュサーバ２３１、ノード制御部２３２、および情報収集部２３３を構成要素として備えてもよい。
【００３９】
複数のメムキャッシュ２３１は、それぞれキャッシュデータの格納領域として、キャッシュサーバを意味するものであってもよい。例えば、複数のメムキャッシュ２３１は、それぞれメムキャッシュサーバであってもよい。
【００４０】
ノード制御部２３２は、キャッシュサーバのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢを行う。このとき、ノード制御部２２２は、管理制御部２４２から開始／中止／再開始命令を受信してキャッシュプロセスを開始／中止／再開始してもよい。
【００４１】
情報収集部２３３は、キャッシュノード２３０のリソースをモニタリングする。この場合、モニタリングされた結果は管理ノード２４０のモニタリング部２４３に送信してもよい。
【００４２】
管理ノード２４０は、メッセージ中継部２４１、管理制御部２４２、モニタリング部２４３、ＷＡＳ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ）２４４、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ）２４５、およびＲＲＤ（Ｒｏｕｎｄ  Ｒｏｂｉｎ  Ｄａｔａｂａｓｅ）２４６を備えてもよい。
【００４３】
メッセージ中継部２４１は、プロキシノード２２０のノード制御部２２２およびキャッシュノード２３０のノード制御部２３２から送信される情報を受信して管理制御部２４２に送信する中継の役割を担ってもよい。
【００４４】
管理制御部２４２は、メッセージ中継部２４１を介してノード制御部２２２,２３２で受信された情報によって各ノードの状態を把握し、各ノードに開始および終了の命令を下し、各ノードの統計情報を土台に各ノードのヘルスチェックを行う。また、必要に応じて、各ノードの交換もまた管理制御部２４２がチェックしてもよい。
【００４５】
例えば、管理制御部２４２は、ノード制御部２２２，２３２に送信するＨＢを用いてプロキシノード２２０やキャッシュノード２３０の障害を探知して処理してもよい。障害の探知および処理については、以下により詳しく説明する。
【００４６】
管理制御部２４２は、ノード制御部２２２，２３２に送信するＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データと管理制御部２４２が測定するＱｏＳデータを、モニタリング部２４３に送信してもよい。すなわち、プロキシノード２２０とキャッシュノード２３０のノード制御部２２２，２３２は、ＱｏＳデータを測定して周期的に管理制御部２４２に送信してもよく、管理制御部２４２はモニタリング部２４３にＱｏＳデータを送信してもよい。ノード制御部２２２，２３２は、例えば、周期的に登録されたＩＰポートに「ｓｅｔ」命令と「ｇｅｔ」命令を送り、測定された命令の実行時間に基づいてＱｏＳデータを生成してもよい。例えば、ＱｏＳデータはデータサイズ別の応答の速度情報を含んでもよい。
【００４７】
また、管理制御部２４２は、管理者から受信されるプロキシノード２２０やキャッシュノード２３０の開始／中止／再開始命令を処理してもよい。管理制御部２４２は、プロキシノード２２０およびキャッシュノード２３０のノード制御部２２２，２３２で開始／中止／再開始をリクエストしてもよい。
【００４８】
モニタリング部２４３は、上述したように情報収集部２２３，２３３からプロキシノード２２０とキャッシュノード２３０のリソースに対するモニタリングされた結果を受信して統計情報を生成してもよい。例えば、モニタリング部２４３は、プロキシノード２２０とキャッシュノード２３０の情報収集部２２３，２３３からリソースデータを受信してもよく、このようなリソースデータを分析してＲＲＤ２４６に格納してもよい。
【００４９】
また、モニタリング部２４３は、管理制御部２４２から受信されたＱｏＳデータを分析してＱｏＳデータの大きさに応じてＲＲＤ２４６に格納してもよい。
【００５０】
ＷＡＳ２４４は、管理者と通信するためのユーザインターフェースを提供するためのものであり、図１で説明したユーザインターフェース部１３２に対応してもよい。すなわち、管理者は、管理者端末機とウェブを介してＷＡＳ２４４に接続してプロキシサーバ２２０とキャッシュサーバ２３０をモニタリングして、管理することができる。管理者やユーザには、例えば、キャッシュシステム、プロキシノード２２０、キャッシュノード２３０のＱｏＳ結果、プロキシノード２２０及びキャッシュノード２３０のＣＰＵ、ネットワーク、ディスクなどのシステムリソース、プロキシサーバ２２１の使用量情報などを提供することができる。
【００５１】
ＲＤＢ２４５およびＲＲＤ２４６は、それぞれ管理制御部２４２およびモニタリング部２４３が収集したデータを格納するデータベースを意味する。
【００５２】
図３は、本発明の一実施形態に係るキャッシュシステムでコンシステントハッシングを保障するための方法を説明するための図である。第１点線ボックス３１０は、ノード１〜ノード４の４つのノードと４つの各ノードが備えるキーインデックスを示している。ここで、それぞれのノードは、キャッシュノードを意味してもよく、それぞれのキーは、特定ハッシュ関数によって生成されてもよい。このとき、ノード４に障害が発生した場合、キー「ｊｋｌ」、「ｊｋｍ」および「ｊｋｎ」を利用できなくなり、ハッシュ値が不一致する。第２点線ボックス３２０は、ノード１〜ノード３の３つのノードと３つの各ノードが備えるキーインデックスを示している。すなわち、キー「ｊｋｌ」、「ｊｋｍ」および「ｊｋｎ」が３つのノードに分散して格納されたことを示している。このように、キャッシュシステムのプロキシノードは、障害が発生したキャッシュノードのキーをノードに分散して格納することによって、コンシステントハッシングを保障することができる。
【００５３】
上述したように、従来のメムキャッシュクライアントとメムキャッシュサーバの形態では、サーバの障害がすぐにクライアントの障害に広がり得る。しかし、本実施形態では、プロキシサーバを中間媒介として用いて、障害に対してより安定して対処することができる。
【００５４】
例えば、クライアントは、「ｇｅｔ」命令によってキャッシュサーバに作業をリクエストし、一定期間後にも応答がない場合、キャッシュミス（ｃａｃｈｅ  ｍｉｓｓ）が発生し、データ格納（「ｓｅｔ」命令などを用いて）作業をリクエストし、一定期間後にも応答がない場合、サーバエラーを発生させる。このとき、プロキシノードとキャッシュノードのノード制御部は、キャッシュサーバの状態を検出し、障害が発生したキャッシュサーバを除去した後の他のキャッシュサーバにおいて、キャッシングサービスを持続的に処理するように制御してもよい。
【００５５】
他の例として、プロキシサーバは、キャッシュサーバの障害を検出した瞬間から予め選定された第１期間の間に、予め選定された第２期間ごとにキャッシュサーバの状態を確認してもよい。例えば、プロキシサーバは、１０分の間２秒間隔でキャッシュサーバの状態を確認してもよい。このとき、１０分以内にキャッシュサーバの状態が正常に戻る場合、プロキシサーバはキャッシュサーバを自動的に接続させてクライアントに正常にサービスが提供できるように制御してもよい。このような状況は、キャッシュノードのノード制御部でも処理されるが、ノード制御部が検出できない場合、例えばプロキシノードとキャッシュノードの間のネットワーク問題によって一時的に接続が切れる状況においては、プロキシサーバが自主的なヘルスチェックによって障害を処理することができる。
【００５６】
図４は、本発明の他の実施形態において、キャッシュシステムの概略構成を示す図である。図４は、複数のクライアント４１０、キャッシュクラウド領域４２０、管理領域４３０および、管理者端末機４４０を示している。このとき、本実施形態に係るキャッシュシステムは、キャッシュクラウド領域４２０および管理領域４３０に含まれる構成を備えることができる。
【００５７】
ここで、キャッシュクラウド領域４２０は、スイッチ４２１および複数のコンボノードを備えることができる。図４では、複数のコンボノードのうちコンボノード１  ４３１とコンボノードＮ  ４３２を具体的に示している。このとき、それぞれのコンボノードはプロキシサーバ、複数のキャッシュサーバ、ノード制御部、および情報収集部を備えてもよい。図４において、三角形の図形はプロキシサーバを、円筒形の図形はキャッシュサーバをそれぞれ示している。そして、「Ｎ」が書かれた円形図はノード制御部を、「Ｃ」が書かれた円形図は情報収集部をそれぞれ示している。
【００５８】
また、管理領域４３０は、管理制御部とユーザインターフェース部とを備えてもよい。このとき、図４で「ＡＣ」が書かれた円形図は管理制御部を、「ＵＩ」が書かれた円形図はユーザインターフェース部をそれぞれ意味している。
【００５９】
本実施形態に係るキャッシュシステムは、図１および２で説明したキャッシュシステムとは異なり、プロキシサーバとキャッシュサーバを１つのコンボノードで構成する。
【００６０】
このとき、複数のクライアント４１０のうち１つのクライアントからスイッチ４２１を介して命令語が送信されれば、このような命令語は複数のコンボノードのうち１つのコンボノードに伝達されて処理されることができる。１つのコンボノード内では、プロキシサーバが命令語を受信して複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに命令語を伝達することができ、命令語を受信したキャッシュサーバは受信された命令語によってデータを格納または提供することができる。少なくとも１つのキャッシュノードで処理された結果は、プロキシサーバとスイッチ４２１を経て当該クライアントに送信される。このとき、プロキシサーバは情報の整合性のための中継の役割のために用いられてもよい。
【００６１】
スイッチ４２１は、複数のコンボノードの各々が備えるプロキシサーバに対する負荷を分散させて、ヘルスチェックを行う。
【００６２】
また、管理領域４３０は、複数のコンボノードを管理してモニタリングすることによって、より容易にキャッシュシステムを管理できるように補助する役割を担ってもよい。
【００６３】
図５は、本発明の他の実施形態に係るキャッシュシステムの内部構成を説明するためのブロック図である。まず、クライアント５１０は、メムキャッシュクライアント５１１を構成要素として備えてもよい。ここで、メムキャッシュクライアント５１１は一例として、既存メムキャッシュ（ｍｅｍｃａｃｈｅｄ）サーバを利用するために用いられるクライアントプログラムを備えてもよい。すなわち、クライアント５１０は、別の構成を追加する必要がなく、本実施形態に係るキャッシュシステムを介してキャッシングサービスを利用してもよい。
【００６４】
スイッチ４２１は、上述したように複数のコンボノードの各々が備えるプロキシサーバに対する負荷を分散させてヘルスチェックを実行する。例えば、ヘルスチェックの周期を５秒に設定し、それ以上応答がないプロキシサーバは、障害が発生したと判断してクライアントのリクエストや命令語などを伝達しないように設定してもよい。
【００６５】
このとき、図５においては、複数のコンボノードのうちコンボノードＮ４３２だけを具体化して示している。図５を参照し、説明の便宜上、コンボノードＮ４３２を中心にキャッシングサービスについて説明する。
【００６６】
コンボノードＮ４３２は、既存のキャッシュサーバ（本実施形態では、上述したメムキャッシュサーバ）のためのプロトコルをサポートしてクライアントが汎用的なメムキャッシュクライアント５１１をそのまま利用できるようにしてもよい。また、コンボノードＮ４３２は、プロキシサーバ５２０を用いたコンシステントハッシングによって、キャッシュデータの整合性を提供することができ、キャッシュノードの障害を処理することができる。コンシステントハッシングとキャッシュノードの障害処理については、すでに詳しく説明し、本実施形態においても同一の方法を用いるため、繰り返しの説明は省略する。このとき、プロキシサーバ５２０は、関連するキャッシュノードを管理する統制サーバの役割も同時に担うことができる。また、コンボノードＮ４３２は、プロキシサーバ５２０とキャッシュサーバの複数のメムキャッシュ５３０の各々のリソースに対する統計情報を提供し、リアルタイム負荷分散機能を提供してもよい。
【００６７】
このような機能を実行するために、コンボノードＮ４３２は、プロキシサーバ５２０、複数のメムキャッシュ５３０、ノード制御部５４０、および情報収集部５５０を構成要素として備えてもよい。
【００６８】
プロキシサーバ５２０は、スイッチ４２１を介して受信されるクライアントのリクエストを受けてメムキャッシュ５３０に送信する。
【００６９】
複数のメムキャッシュ５３０の各々は、キャッシュデータの格納領域として、キャッシュサーバを意味するものであってもよい。例えば、複数のメムキャッシュ５３０の各々は、メムキャッシュサーバであってもよい。このとき、プロキシサーバ５２０からクライアントのリクエストを伝達されたキャッシュサーバは、リクエストと関連する命令語によってキャッシュデータを格納したり提供したりすることができる。
【００７０】
ノード制御部５４０は、コンボノードＮ４３２のアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢを行うことができる。すなわち、キャッシュシステムは、このようなノード制御部５４０を用いてプロキシサーバ５２０の中断なくキャッシュサーバを追加および削除することができる。例えば、障害が発生したキャッシュサーバのリアルタイムでの除去およびプロキシサーバの性能が閾値が到達した場合、キャッシュサーバの増設などの過程を柔軟に処理することができる。
【００７１】
このとき、ノード制御部５４０は、管理ノード５６０から開始／中止／再開始命令を受信してプロキシプロセスを開始／中止／再開始してもよい。また、ノード制御部５４０は、プロキシサーバ５２０が備えるキャッシュサーバリストに新しいキャッシュサーバを追加したり、既存キャッシュサーバを削除するための命令を管理ノード５６０を介して受信して削除処理をしてもよい。管理ノード５６０は、図２に図示したようにプロキシノード２２０およびキャッシュノード２３０と通信するためではなく、図５に図示したように複数のコンボノードと通信し、複数のコンボノードと通信するという点を除いては、図２によって説明した管理ノード２４０と同じように動作し得るため、繰返しの説明は省略する。
【００７２】
情報収集部５５０は、コンボノードＮ４３２のリソースをモニタリングする。このとき、モニタリングされた結果は、以下にて説明する管理ノード５６０に送信してもよい。例えば、情報収集部５５０は、現在のプロキシサーバ５２０で複数のクライアントらから受信したすべてのリクエストの数と、複数のメムキャッシュ５３０で応答を受けることが出来ないリクエストの数などの統計情報を、モニタリングされた結果として提供してもよい。
【００７３】
なお、図５の説明において省略された内容は、図１〜図４に示した構成と同様の構成に関するものであるため、図１〜図４の説明を参照するものとする。
【００７４】
図６は、本発明の一実施形態において、キャッシングサービスの提供方法を示すフローチャートである。本実施形態に係るキャッシングサービスの提供方法は、図２を介して説明したキャッシュシステムによって行なうことができる。図６を参照し、キャッシュシステムの備える構成において、それぞれのステップを行う過程を説明することによってキャッシングサービスの提供方法を説明する。
【００７５】
ステップ６１０において、キャッシュシステムは、スイッチで複数のクライアントから受信したリクエストを、複数のプロキシノードに分散して伝達する。まず、複数のクライアントは、それぞれ、メムキャッシュクライアントのように、従来のキャッシュサーバを用いるために用いられるクライアントプログラムをそのまま利用してもよい。クライアントは別の構成を追加する必要がなく、本実施形態に係るキャッシュシステムを介してキャッシングサービスの提供を受けることができる。スイッチは、複数のプロキシサーバに対する負荷を分散させてヘルスチェックを担当する。例えば、ヘルスチェックの周期を５秒に設定し、それ以上応答がないプロキシサーバは、障害が発生したと判断してクライアントのリクエストや命令語などを伝達しない。
【００７６】
ステップ６２０において、プロキシノードは、スイッチから受信するリクエストを複数のキャッシュノードのうち少なくとも１つのキャッシュノードに伝達する。複数のプロキシノードは、それぞれ、複数のキャッシュノードのうち１つ以上のキャッシュノードと通信してもよい。すなわち、プロキシノードは、既存キャッシュサーバのためのプロトコルをサポートしてクライアントが汎用的なメムキャッシュクライアントをそのまま利用できるようにしてもよい。
【００７７】
ここで、プロキシノードは、コンシステントハッシングによってキャッシュデータの整合性を提供することができ、キャッシュノードの障害を処理することができる。また、プロキシノードは、関連するキャッシュノードを管理する統制サーバの役割も同時に行うことができる。すなわち、プロキシノードは、リソースに対する統計情報を提供し、リアルタイム負荷分散機能を提供することができる。
【００７８】
ステップ６３０において、キャッシュノードは、複数のプロキシノードのうち少なくとも１つのプロキシノードから受信したリクエストを処理する。このとき、各キャッシュノードはキャッシュデータの格納領域の複数のキャッシュサーバを備えてもよい。すなわち、キャッシュノードは、ステップ６３０で受信したリクエストによってキャッシュデータを格納または提供することができる。
【００７９】
図７は、本発明の他の実施形態において、キャッシングサービスの提供方法を示すフローチャートである。本実施形態に係るキャッシングサービスの提供方法は、図５によって説明したキャッシュシステムによって行なうことができる。図７を参照し、キャッシュシステムの備える構成において、それぞれのステップを行う過程を説明することによってキャッシングサービスの提供方法を説明する。
【００８０】
ステップ７１０において、スイッチは、複数のクライアントから受信したリクエストを複数のコンボノードに分散して伝達する。まず、複数のクライアントは、それぞれ、メムキャッシュクライアントのように従来のキャッシュサーバを用いるために用いられるクライアントプログラムをそのまま利用してもよい。クライアントは、別の構成を追加する必要がなく、本実施形態に係るキャッシュシステムを介してキャッシングサービスの提供を受けることができる。スイッチは、複数のプロキシサーバに対する負荷を分散してヘルスチェックを担当する。例えば、ヘルスチェックの周期を５秒に設定し、それ以上応答がないプロキシサーバは、障害が発生したと判断してクライアントのリクエストや命令語などを伝達しない。
【００８１】
ステップ７２０において、コンボノードはスイッチから受信するリクエストをコンボノードが備えるプロキシサーバを介してコンボノードに接続された複数のキャッシュサーバのうち少なくとも１つのキャッシュサーバに伝達するように制御する。すなわち、コンボノードは、プロキシサーバと複数のキャッシュサーバを備えることができる。このとき、コンボノードは、プロキシサーバを介してリアルタイム負荷分散機能を提供することができ、複数のキャッシュサーバに対するコンシステントハッシングを保障することができる。また、キャッシュサーバの障害を処理することもできる。
【００８２】
このようなコンボノードは、コンボノードのアプリケーションの初期化、開始および終了、モニタリング、並びにＨＢを行うノード制御部と、コンボノードのリソースをモニタリングして統計情報を生成する情報収集部とをさらに備えてもよく、キャッシュシステムが管理ノードをさらに備える場合、管理ノードとの通信によって統計情報を提供したり当該コンボノードの状態の情報を提供することができる。
【００８３】
ステップ７３０において、キャッシュシステムは、コンボノードで少なくとも１つのキャッシュサーバが伝達されたリクエストを処理するように制御する。すなわち、キャッシュサーバは、伝達されたリクエストによってキャッシュデータを格納したり、または、提供することができる。
【００８４】
図６および図７の説明において省略した内容は、図１〜図５を参照するものとする。
【００８５】
このように、本発明の実施形態によれば、クライアントが複数のキャッシュサーバの各々に個別的に接続する必要がなく、キャッシュクラウド（ｃａｃｈｅ  ｃｌｏｕｄ）に接続してキャッシングサービスを提供することができ、クライアントで別の構成を追加しなくとも、キャッシングサービスの提供を受けることができる。また、プロキシサーバを用いてクライアントとキャッシュサーバとの間の障害が発生した場合にも整合性を保障することができる。それだけでなく、別の管理構成によってキャッシュクラウドを管理することによって、キャッシュクラウドの拡張性をクライアントで考慮する必要がなく、当該管理構成を用いてプロキシサーバやキャッシュサーバの統計情報およびリソース状況をリアルタイムでモニタリングして障害の発生を予防し、サービス品質を持続的に向上させることができる。
【００８６】
本発明に係る実施形態は、多様なコンピュータ手段によって行われることができるプログラム命令形態で実現され、コンピュータ読み出し可能媒体に記録されてもよい。前記記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせたものを含んでもよい。前記記録媒体及びプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。また、上述したファイルシステムは、コンピュータ読み出しが可能な記録媒体に記録することができる。
【００８７】
上述したように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００８８】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【００８９】
１１０：複数のクライアント
１２０：キャッシュクラウド領域
１２１：スイッチ
１２２：複数のプロキシノード
１２３：複数のキャッシュノード
１３０：管理領域
【図１】
0005753030.tif 000002
【図２】
0005753030.tif 000003
【図３】
0005753030.tif 000004
【図４】
0005753030.tif 000005
【図５】
0005753030.tif 000006
【図６】
0005753030.tif 000007
【図７】
0005753030.tif 000008