(57)【要約】格納すべきデータを受け付けるＸＭＬエンジン１０３と、上記データの特性（人気度、緊急度、重要度等）を考慮して予め指定されたポリシーデータを参照し、データを所定ノードの記録媒体（ディスク、キャッシュメモリ）へ格納するポリシー制御部１０４とを備えている。
2003069480.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
格納データを受け付ける受付手段、
格納データの特性を考慮して予め指定されたポリシーを参照するポリシー参照手段、
前記ポリシー参照手段の参照結果に基づいて、前記格納データを所定ノードの記録媒体へ格納する制御手段、
として機能させるためのデータ格納制御プログラム。
【請求項２】
前記コンピュータを、前記格納データに含まれるプログラミング言語をチェックするチェック手段として機能させ、前記制御手段は、前記チェック手段のチェック結果がエラーである場合、当該格納データの格納を中止することを特徴とする請求の範囲第１項に記載のデータ格納制御プログラム。
【請求項３】
前記コンピュータを、ある特定のノードにおける障害発生を監視する監視手段、前記監視手段で障害発生が確認された場合、前記特定のノードの機能を自ノードで実現するバックアップ手段、として機能させることを特徴とする請求の範囲第１項に記載のデータ格納制御プログラム。
【請求項４】
格納データを受け付ける受付工程と、
格納データの特性を考慮して予め指定されたポリシーを参照するポリシー参照工程と、
前記ポリシー参照工程の参照結果に基づいて、前記格納データを所定ノードの記録媒体へ格納する制御工程と、
を含むことを特徴とするデータ格納制御方法。
【発明の詳細な説明】
技術分野
本発明は、予め指定されたポリシーに従って、所定のノードの記録媒体（ディスク、キャッシュメモリ）にデータを格納するためのデータ格納制御プログラムおよびデータ格納制御方法に関するものである。
背景技術
近時、インターネット、ブロードバンドネットワーク、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ（Ｄａｔａ）Ａｓｓｉｓｔａｎｔｓ）等の普及により、電子政府、電子商取引に関する技術発展が目覚ましい。特に、電子政府、電子商取引が求めるシステムでは、高性能、高信頼性が要求され、大容量のデータが取り扱われる。
ここで、データを１台のサーバで一元管理した場合には、データの人気度、緊急度、重要度の度合いにより、特定のデータにアクセスが集中し、ユーザへの応答が悪くなる。
そこで、従来では、高速化を目的として、分散配置されたキャッシュサーバにデータを格納しておき、クライアントからのアクセス要求に応じて、キャッシュサーバからデータを取り出している。
ところで、従来では、キャッシュサーバにデータを格納する場合、データの人気度、緊急度、重要度等の特性を考慮せずに、すなわち、格納する場合のポリシーを持たずにデータを格納しているため、アクセス時の応答が悪化する場合があるという問題があった。
本発明は、上記に鑑みてなされたもので、アクセス時の応答を向上させることができるデータ格納制御プログラムおよびデータ格納制御方法を提供することを目的としている。
発明の開示
上記目的を達成するために、本発明は、コンピュータを、格納データを受け付ける受付手段、格納データの特性を考慮して予め指定されたポリシーを参照するポリシー参照手段、前記ポリシー参照手段の参照結果に基づいて、前記格納データを所定ノードの記録媒体へ格納する制御手段として機能させるためのデータ格納制御プログラムである。
また、本発明は、格納データを受け付ける受付工程と、格納データの特性を考慮して予め指定されたポリシーを参照するポリシー参照工程と、前記ポリシー参照工程の参照結果に基づいて、前記格納データを所定ノードの記録媒体へ格納する制御工程とを含むことを特徴とする。
かかる発明によれば、格納データの特性を考慮して予め指定されたポリシーに基づいて、格納データを所定ノードの記録媒体へ格納しているため、アクセス時の応答を向上させることができる。
発明を実施するための最良の形態
以下、図面を参照して本発明にかかる一実施の形態について詳細に説明する。第１図は、本発明にかかる一実施の形態の構成を示すブロック図である。この図において、データセンタサーバ１００は、ネットワーク２００におけるノードＡに設けられており、後述するポリシーデータ５００（第２図参照）に基づいて、データをディスク１０１、キャッシュメモリ１０２に格納するサーバである。
ディスク１０１は、キャッシュメモリ１０２よりもアクセス速度が遅いが、大容量のデータを記録可能であるという特性を備えた記録媒体である。キャッシュメモリ１０２は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、高速アクセス可能な記録媒体である。
ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）エンジン１０３は、例えば、ＸＭＬエディタであり、コンテンツを編集する機能や、格納されるデータを受け取り、該データに含まれるスクリプト（プログラミング言語）をチェックする機能等を備えている。ポリシー制御部１０４は、第２図に示したポリシーデータ５００を参照して、格納すべきデータの人気度、緊急度、重要度等に応じたポリシーに基づいて、所定ノードの所定場所（ディスク、キャッシュメモリ）にデータを格納させる制御を行う。
第２図に示したポリシーデータ５００は、グループリスト、ポリシー指定パス名、ポリシー機能のデータから構成されている。グループリストは、ネットワーク２００上のノード名、当該ノードに存在するサーバの機能である。同図に示した例において、第１図に示したノードＡに存在するデータセンタサーバ１００には、データセンタサーバとしての機能が指定されている。
また、ノードＢに存在するキャッシュサーバ３００１には、キャッシュサーバとしての機能、および交替データセンタサーバとしての機能が指定されている。ここで、交替データセンタサーバは、データセンタサーバ１００で障害が発生した場合に、データセンタサーバ１００に替わって、データセンタサーバ１００の同一の機能を実現するバックアップ用のサーバである。
また、ノードＧに存在するキャッシュサーバ３００２には、キャッシュサーバとしての機能、および交替データセンタサーバとしての機能が指定されている。また、ノードＩに存在するキャッシュサーバ３００ｎには、キャッシュサーバとしての機能が指定されている。
ポリシー指定パス名は、データの格納位置を表すパス名であってポリシー機能を指定するためのものである。例えば、／ｍｅｄｉａを含むポリシー指定パス名の場合には、ディスクに当該データを格納することが指定される。ここで、ディスクに格納されるデータは、音声データや画像データ等のように、データ自体の更新が少なくかつ比較的データサイズが大きい。
また、／ｉｎｄｅｘを含むポリシー指定パス名の場合には、ディスクにデータを格納するとともに、キャッシュメモリに上記データへのポインタデータを格納することが指定される。ここで、ディスクおよびキャッシュメモリの双方にデータを格納するのは、データ検索を高速化するためである。
また、／ｏｒｄｅｒ−ｃｇｉを含むポリシー指定パス名の場合には、キャッシュサーバ３００３〜３００ｎにデータを格納せず、データセンタサーバ１００および交替データセンタサーバのディスク３０１にのみデータを格納することが指定される。このデータは、商品注文データのように、頻繁に更新を受け、かつ更新順序がクリティカルなデータであり、キャッシュメモリに格納するとサービス応答性能が悪化するデータである。このため、交替データセンタサーバにあるデータは、バックアップのために格納されている。
第１図に戻り、リプリケータ１０５は、ポリシーデータ５００に基づいて、ネットワーク２００を介して、所定のノードへデータを転送する機能等を備えている。
キャッシュサーバ３００１は、ネットワーク２００におけるノードＢに設けられており、ポリシーデータ５００（第２図参照）に基づいて、データをディスク３０１、キャッシュメモリ３０２に格納するサーバである。また、キャッシュサーバ３００１には、第２図に示したポリシーデータ５００により、キャッシュサーバとしての機能、および交替データセンタサーバとしての機能が指定されている。
ディスク３０１は、キャッシュメモリ３０２よりもアクセス速度が遅いが、大容量のデータを記録可能であるという特性を備えた記録媒体である。キャッシュメモリ３０２は、例えば、ＳＲＡＭであり、高速アクセス可能な記録媒体である。ＸＭＬエンジン３０３は、ＸＭＬエンジン１０３と同様の機能を備えている。
ポリシー制御部３０４は、第２図に示したポリシーデータ５００を参照して、格納すべきデータの人気度、緊急度、重要度等に応じたポリシーに基づいて、所定場所（ディスク、キャッシュメモリ）にデータを格納させる制御を行う。リプリケータ３０５は、ネットワーク２００を介して、データを受信する機能等を備えている。
キャッシュサーバ３００２は、ネットワーク２００におけるノードＧに設けられており、キャッシュサーバ３００１と同一構成とされている。すなわち、キャッシュサーバ３００２は、ポリシーデータ５００（第２図参照）に基づいて、データをディスク、キャッシュメモリ（図示略）に格納するサーバである。
キャッシュサーバ３００ｎは、ネットワーク２００におけるノードＩに設けられており、キャッシュサーバ３００１と同一構成とされている。すなわち、キャッシュサーバ３００ｎは、ポリシーデータ５００（第２図参照）に基づいて、データをディスク、キャッシュメモリ（図示略）に格納するサーバである。
クライアント４００は、ユーザ側またはデータセンタ側に設けられており、一般利用者、コンテンツ編集者、データセンタ管理者等に操作される。このクライアント４００は、データセンタサーバ１００およびキャッシュサーバ３００１〜３００ｎにネットワーク２００を介してアクセス可能なコンピュータ端末や携帯電話端末等である。
つぎに、一実施の形態の基本動作について、第３図および図４図に示したフローチャートを参照しつつ説明する。第３図は、第１図に示したデータセンタサーバ１００の基本動作を説明するフローチャートである。第４図は、第１図に示したキャッシュサーバ３００１〜３００ｎの基本動作を説明するフローチャートである。
第３図に示したステップＳＡ１では、データセンタサーバ１００のＸＭＬエンジン１０３は、例えば、コンテンツ編集者が操作するクライアント４００から、編集データを保有するためのデータ格納が要求されたか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
また、第４図に示したステップＳＢ１では、キャッシュサーバ３００１のＸＭＬエンジン３０３は、データセンタサーバ１００から格納すべきデータを受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
そして、例えば、コンテンツ編集者（またはデータセンタ管理者）により操作されたクライアント４００より、格納すべきデータおよびポリシーデータ５００（第２図参照）がデータセンタサーバ１００に受信されると、ＸＭＬエンジン１０３は、第３図に示したステップＳＡ１の判断結果を「Ｙｅｓ」とする。
ステップＳＡ２では、ＸＭＬエンジン１０３は、予め設定された悪影響スクリプトが当該データに含まれているか否かのチェックを実行する。この悪影響スクリプトは、コンピュータウィルスに準じるものであり、システムダウン等の悪影響を及ぼす。また、ＸＭＬエンジン１０３は、データに含まれるスクリプトを疑似的に実行し、悪影響スクリプトに関連するデータを無視する。
ステップＳＡ３では、ＸＭＬエンジン１０３は、疑似実行でエラー、すなわち、悪影響スクリプトがデータに含まれているか否かを判断し、この判断結果が「Ｙｅｓ」である場合、データの格納処理を中止する。
一方、ステップＳＡ３の判断結果が「Ｎｏ」である場合、ステップＳＡ４では、ポリシー制御部１０４は、ポリシーデータ５００（第２図参照）を参照する。ステップＳＡ５では、ポリシー制御部１０４は、ポリシーデータ５００のグループリストより、他ノード（ノードＡ以外のノード）へデータを格納するか否かを判断する。
例えば、グループリストにノードＢが指定されている場合、ポリシー制御部１０４は、ステップＳＡ５の判断結果を「Ｙｅｓ」とする。ステップＳＡ７では、リプリケータ１０５は、格納すべきデータおよびポリシーデータ５００をネットワーク２００を介して、ノードＢに対応するキャッシュサーバ３００１へ送信する。
そして、格納すべきデータおよびポリシーデータ５００が、キャッシュサーバ３００１のリプリケータ３０５に受信されると、ＸＭＬエンジン３０３は、第４図に示したステップＳＢ１の判断結果を「Ｙｅｓ」とする。ステップＳＢ２では、ポリシー制御部３０４は、ポリシーデータ５００に基づいて、データを所定の場所（ディスク３０１、キャッシュメモリ３０２）に格納する。
例えば、第２図に示したポリシー指定パス名として／ｍｅｄｉａが指定されている場合、ポリシー制御部３０４は、データをディスク３０１に格納する。また、ポリシー指定パス名として／ｉｎｄｅｘが指定されている場合、ポリシー制御部３０４は、ディスク３０１およびキャッシュメモリ３０２の双方にデータを格納する。
一方、ポリシーデータ５００（第２図参照）のグループリストにノードＡが指定されている場合、データセンタサーバ１００のポリシー制御部１０４は、第３図に示したステップＳＡ５の判断結果を「Ｎｏ」とする。
ステップＳＡ６では、ポリシー制御部１０４は、ポリシーデータ５００に基づいて、データを所定の場所（ディスク１０１、キャッシュメモリ１０２）に格納する。
例えば、第２図に示したポリシー指定パス名として／ｍｅｄｉａが指定されている場合、ポリシー制御部１０４は、データをディスク１０１に格納する。また、ポリシー指定パス名として／ｉｎｄｅｘが指定されている場合、ポリシー制御部１０４は、ディスク１０１およびキャッシュメモリ１０２の双方にデータを格納する。
つぎに、第５図および第６図を参照して、データセンタサーバ１００での障害が発生した場合の交替動作について説明する。第５図は、第６図に示したキャッシュサーバ３００１〜３００ｎの障害発生時の動作を説明するフローチャートである。
同図に示したステップＳＣ１では、第６図に示したキャッシュサーバ３００１のリプリケータ３０５は、データセンタサーバ１００への定期的な生存確認に基づいて、データセンタサーバ１００に障害が発生したか否かを判断し、この場合、判断結果を「Ｎｏ」とする。同様にして、キャッシュサーバ３００２〜３００ｎのそれぞれにおいても、ステップＳＣ１の判断が行われる。
そして、データセンタサーバ１００に障害が発生すると、キャッシュサーバ３００１のリプリケータ３０５は、ステップＳＣ１の判断結果を「Ｙｅｓ」とする。ステップＳＣ２では、キャッシュサーバ３００１のポリシー制御部３０４は、ポリシーデータ５００（第２図参照）のグループリスト（機能）を参照して、交替データセンタサーバに指定されているか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＣ３では、キャッシュサーバ３００１のポリシー制御部３０４は、交替レベルが最高レベルであるか否かを判断する。ここで交替レベルは、ポリシーデータ５００（第２図参照）のグループリストで指定（図示略）されるものであり、複数のキャッシュサーバに交替データセンタサーバが指定された場合の交替の優先順位を表す。
この場合、キャッシュサーバ３００１の交替レベルが最高レベルであるとすると、キャッシュサーバ３００１のポリシー制御部３０４は、ステップＳＣ３の判断結果を「Ｙｅｓ」とする。ステップＳＣ７では、キャッシュサーバ３００１のポリシー制御部３０４は、キャッシュサーバ３００１が正常動作しているか否かを判断する。この判断結果が「Ｎｏ」である場合、障害が発生しているため、キャッシュサーバ３００１は、交替データセンタサーバとして機能できない。
一方、ステップＳＣ７の判断結果が「Ｙｅｓ」である場合、ステップＳＣ８では、キャッシュサーバ３００１のポリシー制御部３０４は、他のキャッシュサーバ３００２〜３００ｎに対して、データセンタサーバ１００に替わってデータセンタサーバとして機能する旨の交替メッセージを送信する。
また、データセンタサーバ１００に障害が発生すると、キャッシュサーバ３００２は、ステップＳＣ１の判断結果を「Ｙｅｓ」とする。ステップＳＣ２では、キャッシュサーバ３００２では、ポリシーデータ５００（第２図参照）のグループリスト（機能）を参照して、交替データセンタサーバに指定されているか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
ステップＳＣ３では、他のキャッシュサーバ３００２〜３００ｎは、交替レベルが最高レベルであるか否かを判断し、この場合、判断結果を「Ｎｏ」とする。ステップＳＣ４では、キャッシュサーバ３００２〜３００ｎは、交替データセンタサーバ（この場合、キャッシュサーバ３００１）からの交替メッセージを受信したか否かを判断する。
この場合、キャッシュサーバ３００２〜３００ｎは、交替データセンタサーバ（この場合、キャッシュサーバ３００１）からの交替メッセージを受信し、ステップＳＣ４の判断結果を「Ｙｅｓ」とする。これにより、キャッシュサーバ３００１は、データセンタサーバとして機能する。また、キャッシュサーバ３００２〜３００ｎは、キャッシュサーバ３００１をデータセンタサーバとして認識する。
一方、ステップＳＣ４の判断結果が「Ｎｏ」である場合、ステップＳＣ５では、キャッシュサーバ３００２〜３００ｎは、交替後のデータセンタサーバ（この場合、キャッシュサーバ３００１）でも障害が発生したと判定する。
ステップＳＣ６では、キャッシュサーバ３００２〜３００ｎは、最高レベルを１つ下げた後、ステップＳＣ３の判断を行う。これにより、キャッシュサーバ３００１のつぎに優先順位が高い、例えば、キャッシュサーバ３００２が交替データセンタサーバとして機能する。
つぎに、第７図を参照して、ユーザが商品をオンライン購入する場合の例を挙げて、更新順序がクリティカルなデータにアクセスをする場合の動作について説明する。同図においては、第１図の各部に対応する部分には同一の符号を付ける。まず、一般利用者により操作されたクライアント４００（第１図参照）により商品の検索を行う場合、（１）に示したように、ノードＩ（キャッシュサーバとしての機能のみ）のキャッシュサーバ３００ｎのキャッシュメモリ３０２に格納されているデータ／ｉｎｄｅｘ／ｉｔｅｍ１．ｈｔｍ，．．．がアクセスされる。また、商品を参照する場合、（２）に示したように、キャッシュサーバ３００ｎのディスク３０１に格納されている／ｍｅｄｉａ／ｐｉｃｔｕｒｅ１．ｊｐｇ，．．．がアクセスされる。この場合には、アクセスがキャッシュサーバ３００ｎのみであるため、サービス性能が維持される。
また、商品を注文する場合、（３）に示したように、キャッシュサーバ３００ｎを素通りし、データセンタサーバ１００のディスク１０１に格納されている／ｏｒｄｅｒ＿ｃｇｉ／ｉｔｅｍ１．ｃｇｉ，．．．がアクセスされる。
なお、ノードＢまたはＧ（交替データセンタサーバとしての機能）のキャッシュサーバ３００１または３００２の場合には、／ｏｒｄｅｒ＿ｃｇｉ／ｉｔｅｍ１．ｃｇｉ，．．．がバックアップされている。
以上説明したように、一実施の形態によれば、格納すべきデータの特性を考慮して予め指定されたポリシーデータ５００（第２図参照）に基づいて、データを所定ノードの記録媒体（ディスク、キャッシュメモリ）へ格納しているため、アクセス時の応答を向上させることができる。
また、一実施の形態によれば、第３図のステップＳＡ２で説明したように、格納すべきデータに含まれるスクリプト（プログラミング言語）をチェックし、チェック結果がエラーである場合、当該格納データの格納を中止しているため、悪影響を与えるデータを事前に排除することができる。
また、一実施の形態によれば、ノードＡ（データセンタサーバ１００）で障害発生が確認された場合、ノードＡの機能を自ノード（例えば、ノードＢ）で実現しているため、システム上のバックアップが採られ、信頼性を高めることができる。
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
例えば、前述した一実施の形態においては、データセンタサーバ１００、キャッシュサーバ３００１〜３００ｎの各機能を実現するためのプログラムを第８図に示したコンピュータ読み取り可能な記録媒体７００に記録して、この記録媒体７００に記録されたプログラムをコンピュータ６００に読み込ませ、実行することにより前述した各機能を実現してもよい。
コンピュータ６００は、上記プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６１０と、キーボード、マウス等の入力装置６２０と、各種データを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６３０と、演算パラメータ等を記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６４０と、記録媒体７００からプログラムを読み取る読取装置６５０と、ディスプレイ、プリンタ等の出力装置６６０と、装置各部を接続するバス６７０とから構成されている。
ＣＰＵ６１０は、読取装置６５０を経由して記録媒体７００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した各機能を実現する。なお、記録媒体７００としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
以上説明したように、本発明によれば、格納データの特性を考慮して予め指定されたポリシーに基づいて、格納データを所定ノードの記録媒体へ格納しているため、アクセス時の応答を向上させることができるという効果を奏する。
また、本発明によれば、格納データに含まれるプログラミング言語をチェックし、チェック結果がエラーである場合、当該格納データの格納を中止しているため、悪影響を与えるデータを事前に排除することができるという効果を奏する。
また、本発明によれば、ある特定のノードで障害発生が確認された場合、特定のノードの機能を自ノードで実現しているため、システム上のバックアップが採られ、信頼性を高めることができるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかるデータ格納制御プログラムおよびデータ格納制御方法は、ポリシーに基づいて、所定のノードのディスク、キャッシュメモリ等の記録媒体にデータを格納する場合に対して有用である。
【図面の簡単な説明】
第１図は、本発明にかかる一実施の形態の構成を示すブロック図であり、第２図は、同一実施の形態で用いられるポリシーデータ５００のフォーマット例を示す図であり、第３図は、第１図に示したデータセンタサーバ１００の基本動作を説明するフローチャートであり、第４図は、第１図に示したキャッシュサーバ３００１〜３００ｎの基本動作を説明するフローチャートであり、第５図は、第６図に示したキャッシュサーバ３００１〜３００ｎの障害発生時の動作を説明するフローチャートであり、第６図は、第１図に示したデータセンタサーバ１００で障害が発生した場合の動作を説明するブロック図であり、第７図は、同一実施の形態の動作を説明するブロック図であり、第８図は、同一実施の形態の変形例の構成を示すブロック図である。
【図１】
2003069480.tif 000003
【図２】
2003069480.tif 000004
【図３】
2003069480.tif 000005
【図４】
2003069480.tif 000006
【図５】
2003069480.tif 000007
【図６】
2003069480.tif 000008
【図７】
2003069480.tif 000009
【図８】
2003069480.tif 000010
【国際調査報告】
2003069480.tif 000011
2003069480.tif 000012
2003069480.tif 000013