"リクエスタから送信されたリクエストを、プロセッサに振り分ける複数の呼処理データ振り分け装置と、前記呼処理データ振り分け装置から受信したリクエストに基づき、呼処理データをデータストアに保存させる複数の前記プロセッサと、前記プロセッサの指示により前記呼処理データを保存する複数の前記データストアとを備えるデータベースクラスタの呼処理データ保存方法であって、前記呼処理データ振り分け装置は、前記リクエスタから前記リクエストを受信し、前記受信したリクエストの内容を構文解析するステップと、前記構文解析した結果、前記リクエストが前記呼処理データの書き込み要求であると解析した場合に、前記複数のプロセッサのうちから2以上のプロセッサを、前記書き込み要求を示すリクエストの送信先に決定するステップと、前記決定した2以上のプロセッサそれぞれに、前記書き込み要求を示すリクエストを送信するステップと、を実行し、前記2以上のプロセッサそれぞれは、前記書き込み要求を示すリクエストを受信し、自身と接続する前記データストアそれぞれに前記呼処理データを保存させるステップを実行することを特徴とする呼処理データ保存方法。前記呼処理データ振り分け装置は、前記書き込み要求を示すリクエストの送信先を決定するステップにおいて、コンシステントハッシュに基づき、前記複数のプロセッサの担当領域をハッシュ空間上に設定するステップと、前記書き込み要求を示すリクエストに含まれるユニークな識別情報をキーとして抽出するステップと、前記抽出したキーを、2以上のハッシュ関数それぞれに導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記書き込み要求を示すリクエストの送信先となる前記2以上のプロセッサを決定するステップと、を含んで実行することを特徴とする請求項1に記載の呼処理データ保存方法。前記呼処理データ振り分け装置は、前記リクエスタから第2の前記リクエストを受信し、前記受信した第2のリクエストの内容を構文解析するステップにおいて、前記構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記書き込み要求を示すリクエストの送信先に決定した2以上のプロセッサのうちの1つを選択し、前記読み込み要求を示す第2のリクエストの送信先に決定するステップと、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信するステップと、を実行し、前記読み込み要求を示す第2のリクエストを受信したプロセッサは、自身と接続する前記データストアから前記呼処理データを取得して、前記呼処理データ振り分け装置に返信するステップを実行し、前記呼処理データ振り分け装置は、前記返信された前記呼処理データを、前記リクエスタに送信するステップを実行することを特徴とする請求項1に記載の呼処理データ保存方法。前記呼処理データ振り分け装置は、前記リクエスタから第2の前記リクエストを受信し、前記受信した第2のリクエストの内容を構文解析するステップにおいて、前記構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記読み込み要求を示す第2のリクエストに含まれるユニークな識別情報をキーとして抽出するステップと、前記抽出したキーを、前記2以上のハッシュ関数のうちの1つを選択して導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記読み込み要求を示す第2のリクエストの送信先となる前記プロセッサを決定するステップと、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信するステップと、を実行し、前記読み込み要求を示す第2のリクエストを受信したプロセッサは、自身と接続する前記データストアから前記呼処理データを取得して、前記呼処理データ振り分け装置に返信するステップを実行し、前記呼処理データ振り分け装置は、前記返信された前記呼処理データを、前記リクエスタに送信するステップを実行することを特徴とする請求項2に記載の呼処理データ保存方法。リクエスタから送信されたリクエストを、複数のプロセッサに振り分けることにより、呼処理データをデータストアに保存させる呼処理データ振り分け装置であって、前記リクエスタから前記リクエストを受信し、前記受信したリクエストの内容を構文解析する構文解析部と、前記構文解析部が構文解析した結果、前記リクエストが前記呼処理データの書き込み要求であると解析した場合に、前記複数のプロセッサのうちから2以上のプロセッサを、前記書き込み要求を示すリクエストの送信先に決定し、前記決定した2以上のプロセッサそれぞれに、前記書き込み要求を示すリクエストを送信する振り分け処理部と、を備えることを特徴とする呼処理データ振り分け装置。前記振り分け処理部は、コンシステントハッシュに基づき、前記複数のプロセッサの担当領域をハッシュ空間上に設定し、前記書き込み要求を示すリクエストに含まれるユニークな識別情報をキーとして抽出し、前記抽出したキーを、2以上のハッシュ関数それぞれに導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記書き込み要求を示すリクエストの送信先となる前記2以上のプロセッサを決定することを特徴とする請求項5に記載の呼処理データ振り分け装置。前記構文解析部が、前記リクエスタから第2の前記リクエストを受信し構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記振り分け処理部が、前記書き込み要求を示すリクエストの送信先に決定した2以上のプロセッサのうちの1つを選択し、前記読み込み要求を示す第2のリクエストの送信先に決定し、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信することを特徴とする請求項5に記載の呼処理データ振り分け装置。前記構文解析部が、前記リクエスタから第2の前記リクエストを受信し構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記振り分け処理部が、前記読み込み要求を示す第2のリクエストに含まれるユニークな識別情報をキーとして抽出し、前記抽出したキーを、前記2以上のハッシュ関数のうちの1つを選択して導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記読み込み要求を示す第2のリクエストの送信先となる前記プロセッサを決定し、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信することを特徴とする請求項6に記載の呼処理データ振り分け装置。コンピュータを、請求項5乃至請求項8のいずれか1項に記載の呼処理データ振り分け装置として機能させるためのプログラム。一般的にデータベースを、複数台の汎用サーバを用いてクラスタ構成として実現する場合、データの複製を保持することで、サーバが故障しても他のサーバで処理を継続し、データの冗長化を実現している。しかし、呼制御サーバで扱うデータ、主に加入者情報等を保存するデータベースには、データの一貫性、応答時間等の要件が数多く存在し、汎用サーバのクラスタ構成を採った際、様々な要因により、要件を満たさない可能性がある。従来の呼制御において用いられるデータベースはRDBRelationalDataBaseを使用し、冗長化を図る際には、ActiveStandbyの構成を採用している。そのため、常に必要なデータベースサーバの倍以上のサーバ筐体を用意しなければならない。一方、データベース分散技術として、Cassandra非特許文献5:AvinashLakshmanPrashantMalikCassandraADecentralizedStructuredStorageSystemACMSIGOPSOperatingSystemsReviewarchiveVolume44Issue2April2010を初めとする複数台の汎用サーバを用いてデータベースをクラスタ構成で実現する技術が知られている。このデータベースクラスタでは、データを分散配置することで冗長性、可用性を高めているが、複数の複製データ間の一貫性を完全に担保しようとすると可用性が低下し、一貫性を維持しつつ可用性をある程度確保しようとすると冗長性を下げる必要がある等、トレードオフの関係にあるため、一貫性、可用性、冗長性のいずれかを犠牲にしている場合が多い。また、既存の呼処理における問題点として、アクセス頻度が偏在することが挙げられる。例えば、イベント予約向け特別電話番号等に対するバースト的な着呼処理時に、特定のデータに対して参照処理が集中するような場合がある。加入者データベースを既存のデータベースクラスタにおいて実現した場合、加入者データを複数サーバに分散保存しているが、複数サーバに対する複製の分散は、ハッシュ関数に基づいてまず1つのサーバに対してマスタデータとしてのデータを送信し、さらに複製となるデータを他サーバに対して割り振って送信している。そして、集中呼による参照時には、マスタデータに対してのみ参照処理を行うため、そのマスタデータを保存する1つのサーバに対して負荷が集中し、処理オーバヘッドが発生してしまう。このような背景を鑑みて本発明がなされたのであり、本発明は、呼制御サーバが扱う呼処理データを保存するクラスタ構成のデータベースにおいて、複数の複製データ間の一貫性を保ちつつ、可用性や冗長性を低下させず、スケーラブルにデータを書き込むことができる、呼処理データ保存方法、呼処理データ振り分け装置およびプログラムを提供することを課題とする。前記した課題を解決するため、請求項1に記載の発明は、リクエスタから送信されたリクエストを、プロセッサに振り分ける複数の呼処理データ振り分け装置と、前記呼処理データ振り分け装置から受信したリクエストに基づき、呼処理データをデータストアに保存させる複数の前記プロセッサと、前記プロセッサの指示により前記呼処理データを保存する複数の前記データストアとを備えるデータベースクラスタの呼処理データ保存方法であって、前記呼処理データ振り分け装置が、前記リクエスタから前記リクエストを受信し、前記受信したリクエストの内容を構文解析するステップと、前記構文解析した結果、前記リクエストが前記呼処理データの書き込み要求であると解析した場合に、前記複数のプロセッサのうちから2以上のプロセッサを、前記書き込み要求を示すリクエストの送信先に決定するステップと、前記決定した2以上のプロセッサそれぞれに、前記書き込み要求を示すリクエストを送信するステップと、を実行し、前記2以上のプロセッサそれぞれが、前記書き込み要求を示すリクエストを受信し、自身と接続する前記データストアそれぞれに前記呼処理データを保存させるステップを実行することを特徴とする呼処理データ保存方法とした。また、請求項5に記載の発明は、リクエスタから送信されたリクエストを、複数のプロセッサに振り分けることにより、呼処理データをデータストアに保存させる呼処理データ振り分け装置であって、前記リクエスタから前記リクエストを受信し、前記受信したリクエストの内容を構文解析する構文解析部と、前記構文解析部が構文解析した結果、前記リクエストが前記呼処理データの書き込み要求であると解析した場合に、前記複数のプロセッサのうちから2以上のプロセッサを、前記書き込み要求を示すリクエストの送信先に決定し、前記決定した2以上のプロセッサそれぞれに、前記書き込み要求を示すリクエストを送信する振り分け処理部と、を備えることを特徴とする呼処理データ振り分け装置とした。このようにすることで、本発明によれば、呼処理データ振り分け装置が、書き込み要求を示すリクエストを受信した際に、複数のプロセッサのうちから2以上のプロセッサをリクエストの送信先に決定することにより、複数の複製データ間の一貫性を保ちつつ、可用性や冗長性を低下させず、スケーラブルにデータの書き込みを行うことができる。請求項2に記載の発明は、前記呼処理データ振り分け装置が、前記書き込み要求を示すリクエストの送信先を決定するステップにおいて、コンシステントハッシュに基づき、前記複数のプロセッサの担当領域をハッシュ空間上に設定するステップと、前記書き込み要求を示すリクエストに含まれるユニークな識別情報をキーとして抽出するステップと、前記抽出したキーを、2以上のハッシュ関数それぞれに導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記書き込み要求を示すリクエストの送信先となる前記2以上のプロセッサを決定するステップと、を含んで実行することを特徴とする請求項1に記載の呼処理データ保存方法とした。また、請求項6に記載の発明は、前記振り分け処理部が、コンシステントハッシュに基づき、前記複数のプロセッサの担当領域をハッシュ空間上に設定し、前記書き込み要求を示すリクエストに含まれるユニークな識別情報をキーとして抽出し、前記抽出したキーを、2以上のハッシュ関数それぞれに導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記書き込み要求を示すリクエストの送信先となる前記2以上のプロセッサを決定することを特徴とする請求項5に記載の呼処理データ振り分け装置とした。このように、呼処理データ振り分け装置は、コンシステントハッシュに基づいて、書き込み要求を示すリクエストに含まれるユニークな識別情報をキーとして、2以上のハッシュ関数それぞれに導入することにより、書き込み要求を示すリクエストの送信先となる2以上のプロセッサを決定する。よって、本発明によれば、複数の複製データ間の一貫性を保ちつつ、可用性や冗長性を低下させず、スケーラブルにデータの書き込みを行うことができる。請求項3に記載の発明は、前記呼処理データ振り分け装置が、前記リクエスタから第2の前記リクエストを受信し、前記受信した第2のリクエストの内容を構文解析するステップにおいて、前記構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記書き込み要求を示すリクエストの送信先に決定した2以上のプロセッサのうちの1つを選択し、前記読み込み要求を示す第2のリクエストの送信先に決定するステップと、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信するステップと、を実行し、前記読み込み要求を示す第2のリクエストを受信したプロセッサが、自身と接続する前記データストアから前記呼処理データを取得して、前記呼処理データ振り分け装置に返信するステップを実行し、前記呼処理データ振り分け装置が、前記返信された前記呼処理データを、前記リクエスタに送信するステップを実行することを特徴とする請求項1に記載の呼処理データ保存方法とした。また、請求項7に記載の発明は、前記構文解析部が、前記リクエスタから第2の前記リクエストを受信し構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記振り分け処理部が、前記書き込み要求を示すリクエストの送信先に決定した2以上のプロセッサのうちの1つを選択し、前記読み込み要求を示す第2のリクエストの送信先に決定し、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信することを特徴とする請求項5に記載の呼処理データ振り分け装置とした。このように、呼処理データ振り分け装置が、読み込み要求を示す第2のリクエストを受信した際に、呼処理データをデータストアに保存させた2以上のプロセッサのうちから1つのプロセッサを選択して、読み込み要求を示す第2のリクエストを送信し、データを送信することができる。よって、本発明によれば、アクセス頻度が高い場合でも、呼処理データへの対等は振り分けが可能となり、オーバヘッドを防ぐことができる。請求項4に記載の発明は、前記呼処理データ振り分け装置が、前記リクエスタから第2の前記リクエストを受信し、前記受信した第2のリクエストの内容を構文解析するステップにおいて、前記構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記読み込み要求を示す第2のリクエストに含まれるユニークな識別情報をキーとして抽出するステップと、前記抽出したキーを、前記2以上のハッシュ関数のうちの1つを選択して導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記読み込み要求を示す第2のリクエストの送信先となる前記プロセッサを決定するステップと、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信するステップと、を実行し、前記読み込み要求を示す第2のリクエストを受信したプロセッサが、自身と接続する前記データストアから前記呼処理データを取得して、前記呼処理データ振り分け装置に返信するステップを実行し、前記呼処理データ振り分け装置が、前記返信された前記呼処理データを、前記リクエスタに送信するステップを実行することを特徴とする請求項2に記載の呼処理データ保存方法とした。また、請求項8に記載の発明は、前記構文解析部が、前記リクエスタから第2の前記リクエストを受信し構文解析した結果、前記第2のリクエストが前記データストアそれぞれに保存した呼処理データの読み込み要求であると解析した場合に、前記振り分け処理部が、前記読み込み要求を示す第2のリクエストに含まれるユニークな識別情報をキーとして抽出し、前記抽出したキーを、前記2以上のハッシュ関数のうちの1つを選択して導入することにより、ハッシュ値を計算し、前記ハッシュ空間上の前記プロセッサの担当領域に基づき、前記読み込み要求を示す第2のリクエストの送信先となる前記プロセッサを決定し、前記決定したプロセッサに、前記読み込み要求を示す第2のリクエストを送信することを特徴とする請求項6に記載の呼処理データ振り分け装置とした。このように、呼処理データ振り分け装置は、コンシステントハッシュに基づいて、読み込み要求を示す第2のリクエストに含まれるユニークな識別情報をキーとして、2以上のハッシュ関数のうちの1つを選択して導入することにより、呼処理データをデータストアに保存させた2以上のプロセッサのうちから1つのプロセッサを選択して、読み込み要求を示す第2のリクエストを送信し、データを送信することができる。よって、本発明によれば、アクセス頻度が高い場合でも、呼処理データへの対等は振り分けが可能となり、オーバヘッドを防ぐことができる。請求項9に記載の発明は、コンピュータを、請求項5乃至請求項8のいずれか1項に記載の呼処理データ振り分け装置として機能させるためのプログラムとした。このようなプログラムによれば、請求項5乃至請求項8のいずれか1項に記載の呼処理データ振り分け装置としての機能を、一般的なコンピュータで実現させることができる。本発明によれば、呼制御サーバが扱う呼処理データを保存するクラスタ構成のデータベースにおいて、複数の複製データ間の一貫性を保ちつつ、可用性や冗長性を低下させず、スケーラブルにデータを書き込むことができる、呼処理データ保存方法、呼処理データ振り分け装置およびプログラムを提供することができる。次に、本発明を実施するための形態以下、本実施形態というにおけるクラスタ構成のデータベース以下、データベースクラスタというの比較例となる従来技術について説明し、その後に、本実施形態について、適宜図面を参照しながら詳細に説明する。比較例図1は、比較例である従来のデータベースクラスタの全体構成を示す概念図である。比較例である従来のデータベースクラスタは、図1に示すように、ロードバランサBalancer:各図においてBと表記と、複数のディスパッチャDispatcher:各図においてDと表記と、複数のプロセッサProcessor:各図においてPと表記と、複数のデータストアで指定した部分0990exampleaxml等、ファイルをユニークに識別可能な箇所をキーにハッシュ関数にかけることでハッシュ値を求め、割り振り先となるプロセッサPに振り分ける。図2においては、プロセッサP2に振り分けている。プロセッサP2は、ディスパッチャD1から受信したリクエストに含まれるXMLファイル等について、スキーマ定義が記述されたXSDXMLSchemaDefinitionファイルと照合することで、ファイル形式が正しいか等の判定を行った上で、データストアSここではデータストアS2に、そのXMLファイル等を書き込む処理を指示する。データストアSデータストアS2では、プロセッサPここではプロセッサP2から受信したXMLファイル等を保存する書き込む。また、図2bを参照して、データ読み込み時のデータベースクラスタの処理について説明する。ロードバランサBの振り分け処理により、データを読み込むリクエストを受信したディスパッチャD3は、書き込み時と同様にコンシステントハッシュによる振り分けを行う。具体的には、ディスパッチャD3が、httpのGETに含まれるURLの一部auidusers0990exampleaxmlから、コンフィグで指定した部分0990exampleaxml等をキーにハッシュ関数にかけることでハッシュ値を求め、振り分け先となるプロセッサP2にリクエストを振り分ける。プロセッサP2は、XSDファイルとの照合等を行った上で、データストアS2からリクエストで指定されたXMLデータを取得し、ディスパッチャD3、ロードバランサBを経由して、そのXMLデータをリクエスタに送信する。なお、ここでのデータストアSは、メモリで実現しても、SASSerialAttachedSCSIのようなハードディスクで実現してもよい。また、ディスパッチャD、プロセッサP、データストアSは、それぞれ論理的な構成要素であり、本例では、別々のサーバ筐体に実装しているものとして説明するが、同一のサーバ筐体においてプロセスとして分離されている形で実装してもよい。<冗長化処理>次に、比較例であるデータベースクラスタにおける冗長化処理について説明する。既存のデータベースクラスタでは、プロセッサPがデータストアSに対してデータを書き込む際に、データの冗長化、可用性を高めるために複製を作成する。図3は、比較例である既存のデータベースクラスタにおける冗長化処理を説明するための図である。図3aは、データの書き込み時の複製処理を示し、図3bは、データの読み込み時の処理を示している。既存のデータベースクラスタでは、図3aに示すように、書き込み時に、ディスパッチャDここでは、ディスパッチャD1が、ハッシュ関数により特定のプロセッサPここでは、プロセッサP1にリクエストの振り分けを行う。そして、振り分けられたプロセッサP1は、特定のデータストアSここではデータストアS1をマスタデータの保存先としてデータを書き込み、他のデータストアSのうち予め設定された1つ以上のデータストアSここでは、データストアS2,S3に対して順次複製を作成する。一方、正常時の読み込み処理では、図3bに示すように、各ディスパッチャDここでは、ディスパッチャD1は、ハッシュ関数によりプロセッサP1にリクエストを振り分け、複製データに対しては読み込みを行わず、マスタデータに対してのみ読み込み処理を行う。既存のデータベースクラスタでは、書き込み時に、プロセッサPがすべての複製に対して同期をとったことを確認してから処理を完了としているものではなく、マスタデータの書き込みが正常完了すると、処理が正常完了としている。そして、その後に非同期で、複製データを他のデータストアSに作成する。このような既存のデータベースクラスタの処理には、前記したように次に示す問題がある。マスタデータへの書き込み完了後、即座に複製データの作成を行うものではないため、マスタデータと複製データとの間でデータが異なる状況が発生する。例えば、複製を行う前にマスタデータを保存するノードデータストアSが故障してしまった場合、古い複製データをマスタデータとして復元してしまうため、データの一貫性がとれない。既存の処理は、可用性を高めるための方式であるが、すべての複製データについて一貫性が担保できないというトレードオフが存在する。また、データの読み込み時には、マスタデータに対してのみ参照しているため、特定の呼番号に対して集中リクエストがあった場合に、処理オーバヘッドが発生し、スループットが低下してしまうという問題がある。本発明は、これらの問題を解決するものである。本実施形態次に、本実施形態に係る呼処理データ保存方法について説明する。図4は、本実施形態に係るディスパッチャD呼処理データ振り分け装置を含むデータベースクラスタの全体構成を示す概念図である。図4aは、書き込み時における処理を示し、図4bは、読み込み時における処理を示している。図4に示すデータベースクラスタの全体構成は、図1~図3に示した従来のデータベースクラスタの構成と同じであるが、本実施形態に係る呼処理データ保存方法においては、次の点が従来のデータベースクラスタの処理とは異なる。従来は、ロードバランサBからリクエストを受信したディスパッチャDが、複数のプロセッサPの中から、ハッシュ関数によりプロセッサPを1つ選択してそのリクエストを振り分けていた。これに対し、本実施形態に係る呼処理データ保存方法では、ディスパッチャD図4aのディスパッチャD1が複数のハッシュ関数h1,h2,h3を備えており、データ書き込み時に、複数のハッシュ関数h1,h2,h3に同一キーを入力することで、複数のプロセッサPP1,P2,P3を選択してリクエストを送信し、各データストアSS1,S2,S3にデータを書き込む処理をする際に、すべての複製に対して同期をとったことを確認してから処理を完了とする。このように、複数のプロセッサPP1,P2,P3に対してリクエストを振り分けて複製を作成することにより冗長化させ、データを均等配分し、可用性を高めるとともに、各複製データにおいて一貫性を保つことができる。また、データ読み込み時には、ディスパッチャD図4bのディスパッチャD1が、複数のハッシュ関数h1,h2,h3のうちの1つを選択し、そのハッシュ関数にキー情報を入力することで、1つのプロセッサPここでは、プロセッサP1を決定し、そのプロセッサPP1がデータストアSここでは、データストアS1からデータを取得する。このようにすることで、アクセス頻度が偏在している参照時であっても、複製データへの対等な振り分けが可能になるため、オーバヘッドを防ぐことができる。<ディスパッチャ>次に、本実施形態に係るディスパッチャD呼処理データ振り分け装置について詳細に説明する。図5は、本実施形態に係るディスパッチャD呼処理データ振り分け装置の構成例を示すブロック図である。ディスパッチャDは、ロードバランサBおよび複数のプロセッサPと通信可能に接続され適宜図4参照、ロードバランサBから取得したリクエストを、プロセッサPに振り分ける装置であり、図5に示すように、制御部10と、入出力部20と、メモリ部30と、記憶部40とを含んで構成される。入出力部20は、ロードバランサBや、各プロセッサPとの間の情報の入出力を行う。例えば、入出力部20は、ロードバランサBが送信したリクエストを受信し、各プロセッサPに対し、そのリクエストの送信を行う。また、データストアSに保存されていたデータをプロセッサPから受信し、ロードバランサBに対して送信する等の処理を行う。また、この入出力部20は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力装置やモニタ等の出力装置等との間で入出力を行う入出力インタフェースとから構成される。制御部10は、ディスパッチャD全体の制御を司り、情報受信部11と、構文解析部12と、振り分け処理部13と、情報送信部14とを含んで構成される。なお、この制御部10は、例えば、ディスパッチャDの記憶部40に格納されたプログラムをCPUCentralProcessingUnitがメモリ部30であるRAMRandomAccessMemoryに展開し実行することで実現される。情報受信部11は、入出力部20を介して、ロードバランサBからのリクエストや、プロセッサP等からのデータを取得する。構文解析部12は、情報受信部11からリクエストを受け取り、そのリクエストの内容を構文解析する。例えば、構文解析部12は、そのリクエストがデータストアSに対するPUT書き込みを要求するリクエストであるか、GET読み込みを要求するリクエスト第2のリクエストであるか等を解析し、その解析情報とともに、リクエストを振り分け処理部13に引き渡す。振り分け処理部13は、リクエストの振り分け先となるプロセッサPを決定する処理を行う。この振り分け処理部13は、関数選択部131と複数のハッシュ値計算部132132a,132b,132cとを備える。関数選択部131は、構文解析部12の解析情報に基づき、振り分け先となるプロセッサPをハッシュ関数を用いて決定するハッシュ値計算部132を選択する。具体的には、関数選択部131は、構文解析部12が、リクエストの内容を、PUT書き込みであると解析した場合には、設定されている各ハッシュ値計算部132132a,132b,132cを選択し、その選択したハッシュ値計算部132に対して、リクエストを引き渡す。また、関数選択部131は、構文解析部12が、リクエストの内容を、GET読み込みであると解析した場合には、ランダム若しくはラウンドロビンで、設定されているハッシュ値計算部132132a,132b,132cのうちの1つを選択し、その選択したハッシュ値計算部132に対して、リクエストを引き渡す。ハッシュ値計算部132は、コンシステントハッシュを用いて、例えば、記憶部40に記憶された、各プロセッサPP1,P2,P3,...のIDIPアドレス等のハッシュ値を計算し、閉じたハッシュ空間上に配置しておく。なお、このハッシュ値計算部132は、プロセッサPが故障等で減設された場合や、システム設計者等によりプロセッサPが増設された場合ごとに、ハッシュ空間上での各プロセッサPの担当領域の再設定を行う。そして、ハッシュ値計算部132は、取得したリクエストに含まれるURLの一部から、コンフィグで指定した部分であるユニークな識別箇所識別情報をキーとしてハッシュ関数hにかけることでハッシュ値を計算し、ハッシュ空間上に配置する。続いて、ハッシュ値計算部132は、ハッシュ空間上での配置から、その領域を担当するプロセッサPを、リクエストの振り分け先として決定する。このハッシュ値計算部132は、システム設計者等により、データの冗長化が必要な数として複数設定される。つまり、2以上のハッシュ関数が設定される。図5に示すように、例えば、データを3重化する場合には、3つのハッシュ値計算部132132a,132b,132cが設けられ、3つのハッシュ関数h1,h2,h3が設定される。そして、ハッシュ値計算部132aは、ハッシュ関数h1によりハッシュ値を計算し、ハッシュ値計算部132bは、ハッシュ関数h2によりハッシュ値を計算し、ハッシュ値計算部132cは、ハッシュ関数h3によりハッシュ値を計算する。このハッシュ関数h1,h2,h3は、リクエストに含まれるURIの一部をキー同一キーとして計算されるハッシュ値を、異なるプロセッサPの担当領域に配置するように演算する。このようにすることで、2以上のプロセッサPがリクエストの振り分け先として決定される。従って、ハッシュ値計算部132を設けた数だけ、冗長化することができる。また、関数選択部131により、複数のハッシュ値計算部132132a,132b,132cのうちの1つのハッシュ値計算部132が、ランダム若しくはラウンドロビンで選択されることで、アクセス頻度が偏在している読み込み時であっても、複製データへの対等な振り分けが可能になる。なお、ディスパッチャD1,D2,D3は、それぞれ同じ複数のハッシュ関数h1,h2,h3を備えたハッシュ値計算部132132a,132b,132cを備える。情報送信部14は、振り分け処理部13が決定した振り分け先となるプロセッサPに対し、リクエスト等を送信する。また、プロセッサPから受信したデータをロードバランサBへ送信する等の制御を行う。次に、記憶部40は、ハードディスクやフラッシュメモリ等の記憶装置からなり、制御部10や入出力部20を制御するためのプログラム等を記憶している。メモリ部30は、RAM等の一次記憶装置からなり、制御部10によるデータ処理に必要な情報、例えば、各プロセッサPのIDIPアドレス等を一時的に記憶している。<呼処理データ保存方法>次に、本実施形態に係る呼処理データ保存方法について、図4を参照して詳細に説明する適宜図5参照。≪書き込み時≫まず、図4aを参照して、書き込み時の処理について説明する。リクエスタ不図示からの書き込み要求としてのリクエストを取得したロードバランサBは、ラウンドロビンで振り分け先のディスパッチャDを決定し、そのリクエストを送信する。ここでは、振り分け先としてディスパッチャD1が選択される。ディスパッチャD1は、リクエストを受信すると、構文解析部12が、そのリクエストの内容を構文解析する。そして、ここでは、構文解析部12が、そのリクエストがデータストアSに対するPUT書き込みを要求するものであると解析し、この解析情報とともに、リクエストを振り分け処理部13に引き渡す。振り分け処理部13は、解析情報とリクエストとを受け取ると、まず、関数選択部131が、受け取った解析情報に基づき、ハッシュ値計算部132を選択する。ここで、関数選択部131は、解析情報により、リクエストの内容がPUT書き込みであるので、振り分け処理部13内に設定された複数のハッシュ値計算部132132a,132b,132cを振り分け先として選択する。そして、関数選択部131は、リクエストをハッシュ値計算部132132a,132b,132cそれぞれに引き渡す。ハッシュ値計算部132132a,132b,132cそれぞれは、取得したリクエストに含まれるURLの一部から、コンフィグで指定した部分であるユニークな識別箇所識別情報をキーとして、それぞれに設定されているハッシュ関数h1,h2,h3にかけることでハッシュ値を計算し、ハッシュ空間上に配置する。続いて、ハッシュ値計算部132132a,132b,132cそれぞれは、ハッシュ空間上での配置から、その領域を担当するプロセッサPを、リクエストの振り分け先として決定する。例えば、ハッシュ値計算部132aは、URLの一部をキーとして、ハッシュ関数h1にかけることで、ハッシュ値を計算し、ハッシュ空間上での配置から、振り分け先をプロセッサP1に決定する。ハッシュ値計算部132bは、同じURLの一部をキーとして、ハッシュ関数h2にかけることで、ハッシュ値を計算し、ハッシュ空間上での配置から、振り分け先をプロセッサP2に決定する。また、ハッシュ値計算部132cは、同じURLの一部をキーとして、ハッシュ関数h3にかけることで、ハッシュ値を計算し、ハッシュ空間上での配置から、振り分け先をプロセッサP3に決定する。そして、各ハッシュ値計算部132a,132b,132cは、情報送信部14を介して、リクエストをそれぞれが決定したプロセッサPP1,P2,P3に送信する。プロセッサP1,P2,P3それぞれは、ディスパッチャD1から受信したリクエストを受信すると、そのリクエストに含まれるXMLファイル等について、スキーマ定義が記述されたXSDファイルと照合することで、ファイル形式が正しいか等の判定を行った上で、データストアSS1,S2,S3それぞれに、そのXMLファイル等を書き込む処理を行う。その際、すべての複製に対して同期をとったことを確認して、ディスパッチャD1は、処理を完了とする。≪読み込み時≫次に、図4bを参照して、読み込み時の処理について説明する適宜図5参照。なお、ここでは、図4aの書き込み処理により、同じXMLファイルのデータがデータストアSS1,S2,S3に書き込まれているものとする。リクエスタ不図示からの読み込み要求としてのリクエスト第2のリクエストを取得したロードバランサBは、ラウンドロビンで振り分け先のディスパッチャDを決定し、そのリクエストを送信する。ここでは、振り分け先としてディスパッチャD1が選択される。ディスパッチャD1は、リクエストを受信すると、構文解析部12が、そのリクエストの内容を構文解析する。そして、ここでは、構文解析部12が、そのリクエストがデータストアSに対するGET読み込みを要求するものであると解析し、この解析情報とともに、リクエストを振り分け処理部13に引き渡す。振り分け処理部13は、解析情報とリクエストとを受け取ると、まず、関数選択部131が、受け取った解析情報に基づき、ハッシュ値計算部132を選択する。ここで、関数選択部131は、解析情報により、リクエストの内容がGET読み込みであるので、ランダム若しくはラウンドロビンで、設定されている複数のハッシュ値計算部132132a,132b,132cのうちの1つを選択し、その選択したハッシュ値計算部132に対して、リクエストを引き渡す。ここでは、ハッシュ値計算部132aが選択されたものとする。ハッシュ値計算部132aは、取得したリクエストに含まれるURLの一部から、コンフィグで指定した部分であるユニークな識別箇所識別情報をキーとして、ハッシュ関数h1にかけることでハッシュ値を計算し、ハッシュ空間上での配置から、振り分け先をプロセッサP1に決定する。そして、ハッシュ値計算部132aは、情報送信部14を介して、リクエストを決定したプロセッサP1に送信する。プロセッサP1は、ディスパッチャD1から受信したリクエストを受信すると、そのリクエストに含まれるXMLファイルについて、スキーマ定義が記述されたXSDファイルと照合することで、ファイル形式が正しいか等の判定を行った上で、データストアS1からデータを取得する。そして、プロセッサP1、ディスパッチャD1、ロードバランサBを経由して、リクエスタにそのデータを送信する。以上のように、本実施形態に係る呼処理データ保存方法、ディスパッチャD呼処理データ振り分け装置およびプログラムによれば、ディスパッチャDから複数のプロセッサPにリクエストを分散させて、複数のデータストアSに複製データを記憶するため、複数のデータ間の一貫性を保ちつつ、可用性や冗長性を低下させることなくスケーラブルな構成が可能となる。つまり、ディスパッチャDや、プロセッサP、データストアSが故障等の理由で減設した場合でも、他のデータストアSが複製情報を保持しているため、データベースへのアクセスを中断することなく実行でき、高い可用性が実現できる。また、アクセス頻度が偏在している参照時に、プロセッサPを、複数のプロセッサPからランダム若しくはラウンドロビンで振り分けて実行させることができるため、複製データへの対等な振り分けが可能となりオーバヘッドを防ぐことができる。さらに、それでも処理の応答時間の増加や、保存データ容量が逼迫した場合、動的にディスパッチャD、プロセッサP、データストアSを追加することも可能となる。なお、本実施形態の構成は、従来技術と同様に、データストアSを、メモリで実現しても、SASSerialAttachedSCSIのようなハードディスクで実現してもよい。また、ディスパッチャD、プロセッサP、データストアSそれぞれは、別々のサーバ筐体に実装されていてもよいし、同一のサーバ筐体においてプロセスとして分離されている形で実装してもよい。また、ロードバランサBをなくし、リクエスタから直接各ディスパッチャDD1,D2,D3がリクエストを受信するようにしてもよいし、本実施形態のように、ロードバランサBがリクエスタからリクエストを受信し、各ディスパッチャDD1,D2,D3に振り分けるようにしてもよい。"