(57)【要約】      （修正有）【課題】分散データベースシステムにおける検索処理を効率よく行う。【解決手段】ＤＢホストには分散して加入者情報が保有される。検索サーバ１は、どのＤＢホストに所望の加入者データが記憶されているかについての問い合わせ（ホスト検索要求）を処理する。検索サーバ１は複数のプロセッサを備える構成を有しており、これらが並行して処理を行うため、問い合わせを高速に処理することが可能となる。さらに、変換情報ＤＢ１１２１やホスト情報ＤＢ１１２２をインメモリＤＢとすることで、問い合わせ処理を高速化することが可能となる。呼制御サーバは、検索サーバ１へ問い合わせた結果に基づいて、ＤＢホストから加入者情報を効率よく取得することができる。【選択図】図３
2008233966.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースサーバと、前記複数のデータベースサーバにネットワークを介して接続され、複数プロセッサから構成される検索サーバと、を備えるデータベースシステムであって、
前記複数のデータベースサーバの各々は、
キー情報と、データとを対応付けて、前記データベースサーバ毎に異なるデータを記憶する情報記憶手段と、
キー情報を受信すると、該キー情報に対応付けられたデータを前記情報記憶手段から取得する情報取得手段と、
を備え、
前記検索サーバの各プロセッサは、
前記キー情報と、該キー情報のハッシュ値と、該キー情報によって特定されるデータを保有する前記情報記憶手段を備えるデータベースサーバを識別するホスト識別情報とを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する配置情報記憶手段と、
前記全てのプロセッサが備える前記配置情報記憶手段に記憶される全ハッシュ値について、各ハッシュと、該ハッシュ値を記憶する前記配置情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶手段と、
キー情報を受信すると、該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記自プロセッサの前記配置情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているホスト識別情報を取得し、該プロセッサ識別情報が他プロセッサを特定するものである場合は、前記他プロセッサの前記配置情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているホスト識別情報を取得する情報検索手段と、
を備える、
ことを特徴とするデータベースシステム。
【請求項２】
ネットワークを介して接続されるコンピュータを備え、前記コンピュータは、前記情報検索手段にキー情報を送信し、該キー情報を前記情報記憶手段に記憶する前記データベースサーバのホスト識別情報を取得し、該ホスト識別情報によって特定される前記データベースサーバの前記情報取得手段にキー情報を送信することで、キー情報に対応付けられたデータを取得する手段を備える、
ことを特徴とする、請求項１に記載のデータベースシステム。
【請求項３】
前記データベースサーバの前記情報記憶手段は、顧客アドレスをキー情報として記憶し、該顧客アドレスによって特定される顧客についての認証情報を該顧客アドレスに対応付けて記憶し、
前記コンピュータは、
外部から呼出要求とともに、呼出元の顧客のアドレス、該顧客の認証情報、および呼出先アドレスを受信すると、前記検索サーバの前記情報検索手段に呼出元顧客アドレスを送信し、該呼出元顧客アドレスを前記情報記憶手段に記憶する前記データベースサーバのホスト識別情報を取得し、該ホスト識別情報によって特定される前記データベースサーバの前記情報取得手段に該顧客アドレスを送信することで、該顧客アドレスに対応付けられた認証情報を取得し、該認証情報を外部から受信した認証情報と照合して一致すると、呼出先アドレスを呼び出し、呼出元顧客アドレスにとの間で通話を確立する、
ことを特徴とする、請求項２に記載のデータベースシステム。
【請求項４】
複数のプロセッサから構成される検索サーバであって、
前記複数のプロセッサの各々は、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する分散情報記憶手段と、
前記全てのプロセッサが備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値が記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶手段と、
外部から検索条件としてキー情報を受信すると、該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得し、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサの前記分散情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているデータを取得する情報検索手段と、
を備える、
ことを特徴とする検索サーバ。
【請求項５】
前記複数のプロセッサの前記情報検索手段は、予め設定された順番に基づいて要求を処理する、
ことを特徴とする請求項３に記載の検索サーバ。
【請求項６】
前記複数のプロセッサの前記情報検索手段が要求を処理する順番は、ラウンドロビン方式に基づく、
ことを特徴とする請求項４に記載の検索サーバ。
【請求項７】
前記情報記憶手段、および、プロセッサ情報記憶手段は、前記プロセッサが保有するメモリ上に構成される、
ことを特徴とする請求項３に記載の検索サーバ。
【請求項８】
複数のプロセッサから構成される検索サーバにおいて、データを検索する方法であって、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを、各プロセッサが保有する分散情報記憶手段が記憶する分散情報記憶ステップと、
前記各プロセッサのプロセッサ情報記憶手段が、前記複数のプロセッサの備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶ステップと、
前記各プロセッサの情報検索手段が、外部から検索条件としてキー情報を受信すると該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得し、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサの前記分散情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているデータを取得する情報検索ステップと、
を備える、
ことを特徴とするデータを検索する方法。
【請求項９】
前記情報検索ステップは、予め設定された順番に基づいて、前記複数のプロセッサの前記情報検索手段によって実施される、
ことを特徴とする請求項８に記載のデータを検索する方法。
【請求項１０】
前記情報検索ステップは、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサの前記情報検索手段によって実施される、
ことを特徴とする請求項９に記載のデータを検索する方法。
【請求項１１】
前記情報記憶ステップ、および、プロセッサ情報記憶ステップは、前記プロセッサが保有するメモリ上に構成される前記情報記憶手段、および、プロセッサ情報記憶手段によって実施される、
ことを特徴とする請求項８に記載のデータを検索する方法。
【請求項１２】
複数のプロセッサから構成される検索サーバにおいて、前記各プロセッサに、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶させる分散情報記憶ステップと、
前記全プロセッサが前記分散情報記憶ステップで記憶する全ハッシュ値について、各ハッシュ値と、前記分散情報記憶ステップで該ハッシュ値を記憶した前記プロセッサを特定するプロセッサ識別情報とを対応付けて記憶させるプロセッサ情報記憶ステップと、
外部から検索条件としてキー情報を受信すると、該キー情報のハッシュ値を算出させ、前記プロセッサ情報記憶ステップで記憶された情報の中から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得させ、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶ステップにて自プロセッサが記憶した情報の中から、該キー情報とそのハッシュ値とに対応付けられているデータを取得させ、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサが前記分散情報記憶ステップにて記憶した情報の中から該キー情報とそのハッシュ値とに対応付けられているデータを取得させる情報検索ステップと、
を実行させる、
プログラム。
【請求項１３】
前記情報検索ステップを、予め設定された順番に基づいて、前記複数のプロセッサに実行させる、
ことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記情報検索ステップを、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサに実行させる、
ことを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記情報記憶ステップ、および、プロセッサ情報記憶ステップにおいて記憶される内容は、前記プロセッサが保有するメモリ上に記憶させるように、前記情報記憶ステップ、および、プロセッサ情報記憶ステップを前記各プロセッサに実行させる、
ことを特徴とする請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データベースシステム、検索サーバ、等に関する。
【背景技術】
【０００２】
記憶装置を備えた複数のＣＰＵ （Central Processing Unit）から構成される分散データベースシステムにおいて、データを分散して配置するための技術が、例えば特許文献１に開示されている。特許文献１に開示される技術は、ハッシュ関数を使用してレコードを格納するＣＰＵのＩＤを算出し、そのＩＤに従ってＣＰＵの保有する記憶装置中にレコードを分割して格納する。一方、データを検索する際には、各ＣＰＵが各々の記憶装置を並列に検索する。しかし、全ての記憶装置を並列に検索することは効率がよいとはいえない。
【０００３】
【特許文献１】特開平９−２９３００６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は上記実状を鑑みてなされたものであり、分散データベースシステム上に分割して配置されるデータを効率よく検索することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の第１の観点に係るデータベースシステムは、
複数のデータベースサーバと、前記複数のデータベースサーバにネットワークを介して接続され、複数プロセッサから構成される検索サーバと、を備えるデータベースシステムであって、
前記複数のデータベースサーバの各々は、
キー情報と、データとを対応付けて、前記データベースサーバ毎に異なるデータを記憶する情報記憶手段と、
キー情報を受信すると、該キー情報に対応付けられたデータを前記情報記憶手段から取得する情報取得手段と、
を備え、
前記検索サーバの各プロセッサは、
前記キー情報と、該キー情報のハッシュ値と、該キー情報によって特定されるデータを保有する前記情報記憶手段を備えるデータベースサーバを識別するホスト識別情報とを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する配置情報記憶手段と、
前記全てのプロセッサが備える前記配置情報記憶手段に記憶される全ハッシュ値について、各ハッシュと、該ハッシュ値を記憶する前記配置情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶手段と、
キー情報を受信すると、該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記自プロセッサの前記配置情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているホスト識別情報を取得し、該プロセッサ識別情報が他プロセッサを特定するものである場合は、前記他プロセッサの前記配置情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているホスト識別情報を取得する情報検索手段と、
を備える。
【０００６】
また、前記データベースシステムは、
ネットワークを介して接続されるコンピュータを備え、前記コンピュータは、前記情報検索手段にキー情報を送信し、該キー情報を前記情報記憶手段に記憶する前記データベースサーバのホスト識別情報を取得し、該ホスト識別情報によって特定される前記データベースサーバの前記情報取得手段にキー情報を送信することで、キー情報に対応付けられたデータを取得する手段を備える、
ようにしてもよい。
【０００７】
また、前記データベースシステムにおいて、
前記データベースサーバの前記情報記憶手段は、顧客アドレスをキー情報として記憶し、該顧客アドレスによって特定される顧客についての認証情報を該顧客アドレスに対応付けて記憶し、
前記コンピュータは、
外部から呼出要求とともに、呼出元の顧客のアドレス、該顧客の認証情報、および呼出先アドレスを受信すると、前記検索サーバの前記情報検索手段に呼出元顧客アドレスを送信し、該呼出元顧客アドレスを前記情報記憶手段に記憶する前記データベースサーバのホスト識別情報を取得し、該ホスト識別情報によって特定される前記データベースサーバの前記情報取得手段に該顧客アドレスを送信することで、該顧客アドレスに対応付けられた認証情報を取得し、該認証情報を外部から受信した認証情報と照合して一致すると、呼出先アドレスを呼び出し、呼出元顧客アドレスにとの間で通話を確立する、
ようにしてもよい。
【０００８】
また、本発明の第２の観点に係る検索サーバは、
複数のプロセッサから構成される検索サーバであって、
前記複数のプロセッサの各々は、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する分散情報記憶手段と、
前記全てのプロセッサが備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値が記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶手段と、
外部から検索条件としてキー情報を受信すると、該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得し、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサの前記分散情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているデータを取得する情報検索手段と、
を備える。
【０００９】
また、前記検索サーバにおいて、
前記複数のプロセッサの前記情報検索手段は、予め設定された順番に基づいて要求を処理する、
ようにしてもよい。
【００１０】
また、前記検索サーバにおいて、
前記複数のプロセッサの前記情報検索手段が要求を処理する順番は、ラウンドロビン方式に基づく、
ようにしてもよい。
【００１１】
また、前記検索サーバにおいて、
前記情報記憶手段、および、プロセッサ情報記憶手段は、前記プロセッサが保有するメモリ上に構成される、
ようにしてもよい。
【００１２】
また、本発明の第３の観点に係る方法は、
複数のプロセッサから構成される検索サーバにおいて、データを検索する方法であって、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを、各プロセッサが保有する分散情報記憶手段が記憶する分散情報記憶ステップと、
前記各プロセッサのプロセッサ情報記憶手段が、前記複数のプロセッサの備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶するプロセッサ情報記憶ステップと、
前記各プロセッサの情報検索手段が、外部から検索条件としてキー情報を受信すると該キー情報のハッシュ値を算出し、前記プロセッサ情報記憶手段から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得し、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得し、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサの前記分散情報記憶手段から該キー情報とそのハッシュ値とに対応付けられているデータを取得する情報検索ステップと、
を備える。
【００１３】
また、前記方法において、
前記情報検索ステップは、予め設定された順番に基づいて、前記複数のプロセッサの前記情報検索手段によって実施される、
ようにしてもよい。
【００１４】
また、前記方法において、
前記情報検索ステップは、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサの前記情報検索手段によって実施される、
ようにしてもよい。
【００１５】
また、前記方法において、
前記情報記憶ステップ、および、プロセッサ情報記憶ステップは、前記プロセッサが保有するメモリ上に構成される前記情報記憶手段、および、プロセッサ情報記憶手段によって実施される、
ようにしてもよい。
【００１６】
また、本発明の第４の観点に係るプログラムは、
複数のプロセッサから構成される検索サーバにおいて、前記各プロセッサに、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、前記ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶させる分散情報記憶ステップと、
前記全プロセッサが前記分散情報記憶ステップで記憶する全ハッシュ値について、各ハッシュ値と、前記分散情報記憶ステップで該ハッシュ値を記憶した前記プロセッサを特定するプロセッサ識別情報とを対応付けて記憶させるプロセッサ情報記憶ステップと、
外部から検索条件としてキー情報を受信すると、該キー情報のハッシュ値を算出させ、前記プロセッサ情報記憶ステップで記憶された情報の中から、該ハッシュ値に対応付けられているプロセッサ識別情報を取得させ、該プロセッサ識別情報が自プロセッサを特定するものである場合は、前記分散情報記憶ステップにて自プロセッサが記憶した情報の中から、該キー情報とそのハッシュ値とに対応付けられているデータを取得させ、該プロセッサ識別情報が自プロセッサ以外を特定するものである場合は、該プロセッサ識別情報によって特定されるプロセッサが前記分散情報記憶ステップにて記憶した情報の中から該キー情報とそのハッシュ値とに対応付けられているデータを取得させる情報検索ステップと、
を実行させる。
【００１７】
また、前記プログラムは、
前記情報検索ステップを、予め設定された順番に基づいて、前記複数のプロセッサに実行させる、
ようにしてもよい。
【００１８】
また、前記プログラムは、
前記情報検索ステップを、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサに実行させる、
ようにしてもよい。
【００１９】
また、前記プログラムは、
前記情報記憶ステップ、および、プロセッサ情報記憶ステップにおいて記憶される内容が、前記プロセッサが保有するメモリ上に記憶させるように、前記情報記憶ステップ、および、プロセッサ情報記憶ステップを前記各プロセッサに実行させる、
ようにしてもよい。
【発明の効果】
【００２０】
本発明によれば、分散データベースシステムの検索を効率よく行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照して説明する。なお、本発明の実施の形態においては、パケット通信技術に基づいて電話サービスを提供するＩＰ電話システム、特に呼出処理を行う部分を例に説明する。
【００２２】
図１は、本実施の形態におけるＩＰ電話システムの構成例を示すブロック図である。図１に示すように、ＩＰ電話システムは、内部ネットワーク１０がプロキシサーバ３を介して外部ネットワーク１１に接続された構成を有している。内部ネットワーク１０には、呼制御サーバ２、検索サーバ１、および複数のＤＢホスト５ａ〜ｃが接続されている。モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等のＩＰ電話端末からのＩＰ電話システムを利用しての呼出要求は、外部ネットワーク１１、およびプロキシサーバ３を介して呼制御サーバ２によって受信され、処理される。
【００２３】
なお、図１においては３台のＤＢホストを示しているが、台数は３台に限らず複数台接続されていてもよい。また、呼制御サーバ２およびプロキシサーバ３についても同様に複数台接続されていてもよい。本実施の形態に係るＩＰ電話システムにおいては、複数のプロキシサーバがそれぞれ、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等からの要求を複数の呼制御サーバ２のいずれかへと送信する。
【００２４】
以下本ＩＰ電話システムの各要素について詳述する。
【００２５】
プロキシサーバ３は外部通信ネットワークからの内部ネットワークへの侵入を防ぐために、内部ネットワーク１０と外部ネットワーク１１とのやり取りを一元管理するサーバである。モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等からのＩＰ通話サービスの利用要求は全てこのプロキシサーバ３を介して呼制御サーバ２へと送信される。
【００２６】
呼制御サーバ２は、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等から指定された呼出先アドレスを呼び出し、呼出元と、呼出先の通話を確立するサーバである。図２に示すように、呼制御サーバ２は、制御部２１０、記憶部２１１、通信部２１３などを備える。
【００２７】
制御部２１０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）（図示せず）、ＲＡＭ（Random Access Memory）（図示せず）等から構成されており、呼制御サーバ２全体の制御を行う。具体的には、ＣＰＵがＲＯＭや後述の記憶部２１１に記憶されているプログラムを実行することによって制御・演算処理を行う。この制御・演算処理の際、制御部２１０はＲＡＭに各種データを一時的に記憶し、作業領域として使用する。
【００２８】
記憶部２１１はハードディスクなどから構成され、制御部２１０が呼出元の加入者の認証処理や、通話を確立するためのプログラムなどが記憶される。
【００２９】
通信部２１３は、通信インタフェース等を備え、内部ネットワーク１０を介して、後述の検索サーバ１や、ＤＢホスト５ａ〜ｃと通信するためのものである。通信部２１３は、モデム装置や赤外線通信装置等を含んでいてもよい。
【００３０】
次に、ＤＢホスト５は、本ＩＰ電話システムの提供する電話サービスの加入者に関する情報を保有するホストコンピュータである。図４に示すようにＤＢホスト５ａ〜５ｃは、それぞれ加入者ＤＢ５００ａ〜５００ｃを備えており、分散して加入者に関する情報を記憶している。
【００３１】
具体的には、各加入者ＤＢ５００ａ〜ｃの各レコードには、加入者ＩＤに対応付けて、端末情報、加入契約情報、などの加入者情報が記憶される。加入者ＩＤは、ＩＰ電話サービスの加入者を特定するための識別情報である。端末情報は、該加入者が利用している端末を特定する識別情報である。加入契約情報は、該加入者が契約している料金プランや、割引プランなどである。
【００３２】
検索サーバ１は、呼制御サーバ２からのホスト検索要求に応じて、呼制御サーバ２が所望する加入者情報を有するホストをＤＢホスト５a〜ｃの内から特定し、そのホストＩＤ（識別情報）を返信するホスト検索処理を行うサーバである。
【００３３】
ＤＢホスト５ａ〜ｃのそれぞれは、加入者に関する情報を分散して記憶している。よって、呼制御サーバ２は、効率よく所望の加入者情報を取得するために、どのＤＢホスト５ａ〜ｃに所望の情報が記憶されているかを知っている必要がある。この情報を提供するのが検索サーバ１である。
【００３４】
呼制御サーバ２が加入者ＩＤを指定してホスト検索要求を検索サーバ１に送信すると、該加入者ＩＤによって特定される加入者に関する情報を保有するＤＢホスト５のホストＩＤを返信する。呼制御サーバ２は、返信されたホストＩＤによって識別されるＤＢホスト５に加入者情報を問い合わせれることで、効率よく、加入者情報を取得することができる。
【００３５】
呼出処理の際に、呼制御サーバ２は必ず検索サーバ１にＤＢホスト５に関する問い合わせ（ホスト検索要求）を行う。よって、この問い合わせが呼出処理のボトルネックとならないように、検索サーバ１は、図３に示すように複数のＰＵ（Processing Unit）１００a〜ｃがバス１５に接続された所謂マルチプロセッサシステムの構成を有している。そして、これら各ＰＵが並行・協調して問い合わせを処理する。なお、図３においては、検索サーバ１は３台のプロセッサ（ＰＵ）を保有するが、台数はこれに限らず１つ以上であればよい。複数のＰＵ１００a〜ｃそれぞれが並行して呼制御サーバ２からのホスト検索要求を処理するため、ホスト検索処理の高速化が可能となる。具体的なホスト検索処理のフローについては、検索サーバ１の動作説明の部分にて詳述する。
【００３６】
次に検索サーバ１が備えるＰＵ１００a〜ｃの構成について説明する。ＰＵ１００a〜ｃのそれぞれは、制御部１１０、記憶部１１１、ＲＡＭ１１２、通信部１１３を備える。
【００３７】
各制御部１１０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）図示せず、ＲＡＭ（Random Access Memory）１１２等から構成されており、各ＰＵ１００の制御を行ったり、バス１５を介して情報を交換しながら他のＰＵ１００の制御部１１０と協調して検索サーバ１全体の制御を行う。具体的には、ＣＰＵがＲＯＭや後述の記憶部１１１に記憶されているプログラムを実行することによって制御・演算処理を行う。この制御・演算処理の際、制御部１１０はＲＡＭ１１２に各種データを一時的に記憶し、作業領域として使用する。
【００３８】
ＲＡＭ１１２は、インメモリＤＢとして変換ＤＢ１１２１およびホスト情報ＤＢ１１２２も格納する。
【００３９】
ホスト情報ＤＢ１１２２は、図５（Ｂ）に示すように、ハッシュ値、加入者ＩＤ、そしてホストＩＤを対応付けて記憶する。ハッシュ値は、本ＩＰ電話システムが提供するサービスを利用する加入者を識別する加入者ＩＤにハッシュ関数を適用した結果である。加入者ＩＤは、該加入者を識別する識別情報である。ホストＩＤは、該加入者ＩＤによって特定される加入者に関する加入者情報を記憶するＤＢホスト５の識別情報である。
【００４０】
なお、ハッシュ関数とは、数値をある一定範囲に制限する関数であり、ハッシュ関数を適用することで、いずれの加入者ＩＤも同じハッシュ値を有するいくつかの組に分割される。各ＰＵ１００のホスト情報ＤＢ１１２２には、ハッシュ値に応じて、分散してデータが記憶されている。ハッシュ関数は、通常剰余演算を用いるが、これに限るものではなく、数値を一定範囲に制限する関数であればよい。
【００４１】
一方、変換ＤＢ１１２１は、図５（Ａ）に示すように、各レコードに、ハッシュ値をキーとして、ＰＵＩＤ（Processor Unit ID；ＰＵ識別情報)を対応付けて記憶する。ハッシュ値は、全ＰＵ１００のホスト情報ＤＢ１１２２に記憶される、加入者ＩＤから算出されたハッシュ値である。ＰＵＩＤは、該ハッシュ値の算出元である該加入者ＩＤによって特定される加入者情報を保有するＤＢホスト５を特定するホストＩＤを記憶するＰＵの識別情報である。即ち、ハッシュ値に応じて、各ＰＵ１００のホスト情報ＤＢ１１２２に記憶されるデータが決定され、どのハッシュ値にどのＰＵ１００が対応付けられているのかを記憶するのが、変換ＤＢ１１２１である。
【００４２】
変換ＤＢ１１２１は、加入者ＩＤから算出される全てのハッシュ値をキー情報として記憶している。そして、ＰＵ１００ａ〜ｃは、同じ内容の変換ＤＢ１１２１をそれぞれのＲＡＭ１１２に記憶する。加入者ＩＤから得たハッシュ値をキー情報としているため、このように同じ内容の変換ＤＢ１１２１を全ＰＵ１００ａ〜ｃの保有するＲＡＭ１１２に格納することが可能なる。
【００４３】
ＰＵ１００ａ〜ｃの記憶部１１１はハードディスクなどから構成され、制御部１１０が検索処理を行うためのプログラムなどが記憶される。また、ＲＡＭ１１２内に格納されるインメモリＤＢである変換ＤＢ１１２１やホスト情報ＤＢ１１２２は、電源がオフになると内容が消えてしまうため、記憶部１１１はこれらＤＢのバックアップも記憶する。
【００４４】
ＰＵ１００ａ〜ｃの通信部１１３は、通信インタフェース等を備え、内部ネットワーク１０を介して、呼制御サーバ２と通信するためのものである。通信部１１３は、モデム装置や赤外線通信装置等を含んでいてもよい。
【００４５】
次に、上述した各種ＤＢに記憶されている情報に基づいて、呼制御サーバ２が行う呼出処理のフローを図６を参照して説明する。
【００４６】
モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２は、プロキシサーバ３を介して、呼制御サーバ２に、呼出先ＩＤ（本システムの提供するサービスの加入者でなくてもよい）を指定して、呼出要求を送信する。呼出要求送信の際には、端末側に記憶される、呼出元の加入者ＩＤ、認証用のパスワード、端末を特定する情報なども同時に送信される。呼制御サーバ２は、呼出要求を受信すると（ステップＳ１０１）、検索サーバ１に呼出元の加入者ＩＤを送信し、該加入者ＩＤによって特定される加入者の情報を有するＤＢホスト５のホストＩＤについて問い合わせをする（ステップＳ１０２）。
【００４７】
なお、呼制御サーバ２はＳＩＰ( Session Initiation Protocol ) と呼ばれるプロトコルに基づいて呼出処理を行い、呼出元、および呼出先を指定するために、ＳＩＰプロトコルで用いられるＳＩＰアドレスを利用する。ＳＩＰアドレスは、メールアドレス形式に似ており、”ユーザＩＤ＠ＳＩＰドメイン名”の形式を有している。加入者ＩＤには、このＳＩＰアドレスを利用する。なお、ＩＰ電話の呼出処理としては、ＳＩＰプロトコル以外を利用してもよく、この場合、呼出元、呼出先ＩＤも、ＳＩＰアドレスではなく電話番号などを利用してもよい。
【００４８】
次に、検索サーバ１が呼制御サーバ２からのホスト検索要求を処理するフローについて説明する。
【００４９】
検索サーバ１の、各ＰＵ１００ａ〜ｃは各自の記憶部１１１に、負荷を分散するためのプログラムを記憶しており、呼制御サーバ２からの問い合わせ（検索要求）を各ＰＵ１００が順次受け付け、処理するよう制御する。なお、１つのＰＵ１００が検索処理を終了する前に次の検索要求が送信された場合、他のＰＵ１００が並行してホスト検索処理を行う。処理の分散方法は、予め設定されており、ラウンドロビン方式や、またそれ以外の方式、例えば、その時点で一番負荷の軽いＰＵ１００が処理を行うような方式を選択可能とする。
【００５０】
負荷分散プログラムによって決定された、今回処理を担当するＰＵ１００の制御部１１０は、まず、呼出元の呼出元ＩＤ（加入者ＩＤ）および呼出先ＩＤを呼制御サーバ２から受信する（ステップＳ２０１）。次に今回処理を担当する制御部１１０は、受信した加入者ＩＤのハッシュ値を算出し（ステップＳ２０２）、ハッシュ値に対応するＰＵＩＤを変換ＤＢ１１２１を検索して取得する（ステップＳ２０３）。ＰＵＩＤが自ＰＵのＩＤであれば（ステップＳ２０４；Ｙｅｓ）、制御部１１０は、自ＲＡＭ１１２のホスト情報ＤＢ１１２２を参照し、算出したハッシュ値と加入者ＩＤとに対応づけられたホストＩＤ情報を取得する（ステップＳ２０５）。一方、ステップＳ２０３で取得したＰＵＩＤが他ＰＵのＩＤである場合（ステップＳ２０４；Ｎｏ）、該ＩＤを有するＰＵに、該ハッシュ値と加入者ＩＤとに対応づけられたホストＩＤ情報を送信するよう依頼する（ステップＳ２１１）。依頼を受けたＰＵは自制御部１１０内のホスト情報ＤＢ１１２２を参照し、該当するホストＩＤ情報を依頼元へと送信する。ホストＩＤ情報を受信すると（ステップＳ２１２）、制御部１１０は結果を呼制御サーバ２へと返信する（ステップＳ２０６）。
【００５１】
上述のステップＳ１０１〜Ｓ１０２、Ｓ２０２〜Ｓ２１２に示す処理を、具体例を用いて説明する。ａをＰＵＩＤとして有するＰＵ１００ａが、呼制御サーバ２から、加入者ＩＤ”aaa@zzz”についての情報を保有するＤＢホスト５のＩＤに関する検索処理要求を受信したとする。このとき、加入者ＩＤのハッシュ値は、図７（Ａ）に示すとおりであり、各ＰＵ１００の保有する変換ＤＢ１１２１およびホスト情報ＤＢ１１２２の内容は図７（Ｂ）に示すとおりであるとする。ＰＵ１００ａはまず加入者ＩＤ”aaa@zzz”のハッシュ値を算出する。図７（Ａ）に示すように、”aaa@zzz”から算出されるハッシュ値は０１０なので、ＰＵ１００ａは変換ＤＢ１１２１を参照して、ハッシュ値０１０に対応するＰＵＩＤを検索する。ハッシュ値０１０に対応付けられるＰＵＩＤはｃである。よって、ＰＵ１００ａは自分がハッシュ値０１０に関するホスト情報を有していないと判断し、ｃをＰＵＩＤとするＰＵ１００ｃへとハッシュ値と加入者ＩＤを送信し、ホスト情報を返信するように依頼する。依頼を受けたＰＵ１００ｃはホスト情報ＤＢ１１２２を参照し、受信したハッシュ値０１０と加入者ＩＤ”aaa@zzz”とに対応付けて記憶されているホストＩＤである、”２”を呼制御サーバ２へと送信する。
【００５２】
検索サーバ１からホストＩＤ情報を受信すると、呼制御サーバ２は、受信したホストＩＤによって識別されるＤＢホスト５に加入者ＩＤを送信し、該加入者ＩＤに対応する加入者情報を送信するよう、問い合わせを行う（ステップＳ１０４）。問い合わせを受けたＤＢホスト５は、加入者情報ＤＢ５００を参照して加入者ＩＤに対応付けられた全ての加入者情報を呼制御サーバ２へと返信する。
【００５３】
例えば、前述の加入者ＩＤ”aaa@zzz”の場合、呼制御サーバ２は、ホストＩＤ”２”で識別されるＤＢホスト５ｂ（図４参照）に問い合わせを行い、ＤＢホスト５ｂは加入者ＤＢ５００ｂを参照して、aaa@zzzに関する加入者情報を呼制御サーバ２へと返信する。
【００５４】
呼制御サーバ２は、受信した加入者情報のうち、パスワードや端末情報を、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２からプロキシサーバ３を介して送信された情報と照らし合わせることで、呼出元の認証を行う（ステップＳ１０５）。パスワードや端末情報が照合すれば（ステップＳ１０６；Ｙｅｓ）、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２から送信された呼出先ＩＤにＳＩＰプロトコルに基づいて呼出要求を送り、通話を確立する（ステップＳ１０７）。認証に失敗すると、呼出処理は終了する（ステップＳ１０６；Ｎｏ）。なお、課金は、ＤＢホスト５から受信した加入契約情報などに基づいて行われる。
【００５５】
以上説明したように、ＤＢホスト５ａ〜ｃには分散して加入者情報が保有される。検索サーバ１は、どのＤＢホスト５に所望の加入者データが記憶されているかについての問い合わせ（ホスト検索要求）を処理する。検索サーバ１は複数のプロセッサを備える構成を有しており、これらが並行して処理を行うため、問い合わせを高速に処理することが可能となる。さらに、変換情報ＤＢ１１２１やホスト情報ＤＢ１１２２をインメモリＤＢとすることで、問い合わせ処理を高速化することが可能となる。ＲＡＭ１１２の容量は限られているため、ホスト情報ＤＢ１１２２は各ＰＵ１００に分散して記憶させ、変換情報ＤＢ１１２１を全ＰＵ１００に記憶させるようにしている。このようにして、呼制御サーバ２は、検索サーバ１へ問い合わせた結果に基づいて、ＤＢホスト５から加入者情報を効率よく取得することができる。
【００５６】
以上、本発明の実施の形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能であり、上記実施の形態に限られるものではない。
【００５７】
例えば、本ホストＤＢ５および検索サーバ１を用いて、ＩＰ電話以外の用途のデータベースシステムを構築してもよい。すなわち、ホストＤＢ５には、任意のデータを保有してもよい。そして、その任意のデータが複数のホストＤＢ５のいずれに記憶されているかに関する配置情報を、検索サーバ１が保有するようにしてもよい。
【００５８】
また、検索サーバ１は、配置情報を記憶するのではなく、単独にデータベースサーバとして利用してもよい。
【００５９】
また、上記実施の形態では、検索サーバ１の制御プログラムが記憶部等に予め記憶されているものとして説明した。しかし、検索サーバ１に、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）、ＵＳＢメモリ等の記憶媒体を読み取る装置のいずれか適したものを備え、これら記憶媒体に制御プログラムを格納して配布してもよい。そして、そのプログラムをインストールすることにより、上述の処理動作を実行をする装置を構成してもよい。
【００６０】
また、制御プログラムを、内部ネットワーク１０、または外部ネットワーク１１上の所定のサーバ装置が有するディスク装置等に格納しておき、検索サーバ１にダウンロード等するようにしてもよい。さらに、内部ネットワーク１０、または外部ネットワーク１１を介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
【００６１】
なお、上記実施の形態に係る検索サーバ１を、各制御部がプログラムを実行することによって制御する構成にするのではなく、専用のハードウェアによっても実現することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態に係る電話システムの構成例を示すブロック図である。
【図２】呼制御サーバの構成例を示すブロック図である。
【図３】検索サーバの構成例を示すブロック図である。
【図４】加入者情報ＤＢのデータ構成例を示す図である。
【図５】（Ａ）は変換ＤＢのデータ構成例、（Ｂ）はホスト情報ＤＢのデータ構成例を示す図である。
【図６】検索サーバの処理を示すフロー図である。
【図７】各ＰＵが変換ＤＢと、ホスト情報ＤＢを備える様子を示す図である。
【符号の説明】
【００６３】
１  検索サーバ
１５  バス
１００  ＰＵ
１１０  制御部
１１１  記憶部
１１２  ＲＡＭ
１１２１  変換サーバ
１１２２  ホスト情報ＤＢ
１１３  通信部
２  呼制御サーバ
２１０  制御部
２１１  記憶部
２１３  通信部
３  プロキシサーバ
５  ＤＢホスト
５００  加入者情報ＤＢ
１０  内部ネットワーク
１１  外部ネットワーク
２１  モバイルＰＣ
２１  携帯端末
２２  固定ＩＰ電話
【図１】
2008233966.tif 000003
【図２】
2008233966.tif 000004
【図３】
2008233966.tif 000005
【図４】
2008233966.tif 000006
【図５】
2008233966.tif 000007
【図６】
2008233966.tif 000008
【図７】
2008233966.tif 000009