(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022063135
(43)【公開日】2022-04-21
(54)【発明の名称】検索システム、システムの拡張方法、検索サーバ、及び、検索方法
(51)【国際特許分類】
G06F 16/182 20190101AFI20220414BHJP
G06F 16/27 20190101ALI20220414BHJP
【FI】
G06F16/182
G06F16/27
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020171518
(22)【出願日】2020-10-09
(71)【出願人】
【識別番号】516093389
【氏名又は名称】ナスクインターナショナル株式会社
(71)【出願人】
【識別番号】515333411
【氏名又は名称】庄司 渉
(74)【代理人】
【識別番号】110000523
【氏名又は名称】アクシス国際特許業務法人
(72)【発明者】
【氏名】庄司 渉
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA03
(57)【要約】 (修正有)
【課題】拡張容易な検索システム及びの拡張方法並びに検索サーバ及び検索方法を提供する。
【解決手段】検索サーバがネットワーク接続された検索システムであって、各検索サーバは、記憶媒体に記録された情報を検索する検索モジュール、検索要求を受付ける検索要求受付モジュール、受付けた検索要求に基づく検索処理を検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、該検索要求を他の全ての検索サーバに転送する検索要求転送モジュール、転送した検索要求に対する他の検索サーバからの検索結果を受信し、ユーザに送る検索結果受信モジュール、他の検索サーバから転送された他のユーザからの検索要求を受信する検索要求受信モジュール及び検索要求受信モジュールが受信した他のユーザからの検索要求を前記検索モジュールで検索した結果を、ネットワークを介して他のユーザの検索サーバに転送する検索結果転送モジュールを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
各々が同一の機能要素を有する複数の検索サーバがネットワーク接続された検索システムであって、
各検索サーバは、
(A)情報を記録した記憶媒体、
(B)前記記憶媒体に記録された情報を検索する検索モジュール、
(C)自身のユーザからの検索要求を受付ける検索要求受付モジュール、
(D)前記受付けた検索要求に基づく検索処理を前記検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、
(E)前記受付けた検索要求を、ネットワークを介して他の全ての検索サーバに転送する検索要求転送モジュール、
(F)前記転送した検索要求に対する他の検索サーバからの検索結果を、前記ネットワークを介して受信し、ユーザに送る検索結果受信モジュール、
(G)他の検索サーバから転送されてきた他のユーザからの検索要求を、前記ネットワークを介して受信する検索要求受信モジュール、
(H)前記検索要求受信モジュールが受信した他のユーザからの検索要求を前記検索モジュールで検索した結果を、前記ネットワークを介して前記他のユーザの検索サーバに転送する検索結果転送モジュール、
を備える、検索システム。
【請求項2】
請求項1の検索システムであって、(D)前記検索結果送信モジュールによる検索結果の送信と、(F)前記検索結果受信モジュールによる検索結果送信とが、シリアルに実行されるように構成される、検索システム。
【請求項3】
請求項1又は2の検索システムであって、前記各検索サーバが、OSをWindows(登録商標)とする1台の情報処理装置(以下Windows装置)と、OSをLinux(登録商標)とする1台の情報処理装置(以下Linux装置)とから構成される、検索システム。
【請求項4】
請求項3に記載のシステムの拡張方法であって、
前記各検索サーバのWindows装置は、互いにハブによるネットワークで接続され、
前記各検索サーバのWindows装置と、Linux装置とは、互いに、前記ハブによるネットワークとは異なるネットワークで接続され、
前記方法は、
新たなWindows装置を、前記ハブによるネットワークに接続すること、及び、
新たなLinux装置を、前記新たなWindows装置に、新たなネットワークで接続すること
を含む方法。
【請求項5】
以下を備える検索サーバ:
各検索サーバは、
(A)情報を記録した記憶媒体、
(B)前記記憶媒体に記録された情報を検索する検索モジュール、
(C)自身のユーザからの検索要求を受付ける検索要求受付モジュール、
(D)前記受付けた検索要求に基づく検索処理を前記検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、
(E)前記受付けた検索要求を、ネットワークを介して他の全ての検索サーバに転送する検索要求転送モジュール、
(F)前記転送した検索要求に対する他の検索サーバからの検索結果を、前記ネットワークを介して受信し、ユーザに送る検索結果受信モジュール、
(G)他の検索サーバから転送されてきた他のユーザからの検索要求を、前記ネットワークを介して受信する検索要求受信モジュール、
(H)前記検索要求受信モジュールが受信した他のユーザからの検索要求を前記検索モジュールで検索した結果を、前記ネットワークを介して前記他のユーザの検索サーバに転送する検索結果転送モジュール。
【請求項6】
請求項1~3のいずれか1項に記載の検索システムを用いた検索方法であって、前記方法は、
(1)前記検索サーバの検索要求受付モジュールが、自身のユーザからの検索要求を受付けるステップと、
(2)前記検索サーバの検索モジュールが、受付けた検索要求に基づく検索処理を実行して検索結果を出力するステップと、
(3)前記検索サーバの検索結果送信モジュールが、前記検索結果を、前記自身のユーザに送信するステップと、
(4)前記検索サーバの検索要求転送モジュールが、前記受付けた検索要求を、ネットワークを介して、他の全ての検索サーバの検索要求受信モジュールに転送するステップと、
(5)前記他の検索サーバの検索モジュールが、前記転送された検索要求に基づく検索処理を実行して検索結果を出力するステップと、
(6)前記他の検索サーバの検索結果転送モジュールが、前記転送された検索要求に基づく検索処理による検索結果を、ネットワークを介して、前記検索サーバの検索結果受信モジュールに送信するステップと、
(7)前記検索サーバの検索結果受信モジュールが、前記転送された検索要求に基づく検索処理による検索結果を、前記自身のユーザに送信するステップと、
を含む、方法。
【請求項7】
請求項6の方法であって、前記(3)と(7)のステップをシリアルに実行する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索システム、システムの拡張方法、検索サーバ、及び、検索方法に関する。より具体的には、分散型の検索システム、システムの拡張方法、検索サーバ、及び、検索方法に関する。
【背景技術】
【0002】
近年、情報技術の進化に伴い、情報処理装置が取り扱うデータ量が飛躍的に増加している。これに伴い、1台のハードウェアのみでは、処理にかかる負荷に耐え切れなくなってきている。そこで、複数の情報処理装置から構成される負荷分散型のシステム構成が考案されてきた。また、データ量の増加、アクセス負荷の増加等に伴い、適宜ハードウェアを追加する(スケールアウト)措置が取られている。
【0003】
特許文献1では、1台の管理サーバに複数の蓄積サーバが接続された構成が開示されている。更に、特許文献1は、管理サーバが、全蓄積サーバから検索結果を示す応答を受信するまで待つこと、そして、管理サーバが、各蓄積サーバから、検索結果を示す応答を受信したら、各蓄積サーバからの検索結果を束ねて情報処理端末に応答することが開示されている。
【0004】
特許文献2では、分散して存在するデータベースから、必要となるデータのみを効率よく検索することが可能となるシステムを開示している。このシステムでは、受付けプログラム及びパトローラを用いており、そして、検索条件を必要に応じて他のサーバに転送することを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2018-180931号公報
【特許文献2】特開2001-282845号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
分散型の検索システムを構築する目的の1つは、個々の装置にかかる負荷を分散することにある。従って、データ量の増加、アクセス件数の増加などで、負荷が増えた場合には、必要に応じてスケールアウトする。ここで、問題となるのは、スケールアウトするたびに、管理サーバなどにおいて、設定情報の書き換えを行わなくてはならない。従って、システムを拡張するたびに、システム管理者にとって負担が生じていた。以上の点にかんがみ、本発明では、システムのスケールアウトを容易に行うことができるシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明者が鋭意検討した結果、各検索サーバに互いに同等の機能を持たせることにした。具体的には、外部からの検索要求を、特定の検索サーバが受信した場合、自身で検索処理を実行するだけでなく、他の全ての検索サーバにも検索条件の情報を転送して、当該他の検索サーバを監視して、検索結果を受け取るような機能を持たせることにした。
【0008】
本発明は、上記知見に基づいて完成され、一側面において、以下の発明を包含する。
(発明1)
各々が同一の機能要素を有する複数の検索サーバがネットワーク接続された検索システムであって、
各検索サーバは、
(A)情報を記録した記憶媒体、
(B)前記記憶媒体に記録された情報を検索する検索モジュール、
(C)自身のユーザからの検索要求を受付ける検索要求受付モジュール、
(D)前記受付けた検索要求に基づく検索処理を前記検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、
(E)前記受付けた検索要求を、ネットワークを介して他の検索サーバに転送する検索要求転送モジュール、
(F)前記転送した検索要求に対する他の検索サーバからの検索結果を、前記ネットワークを介して受信し、ユーザに送る検索結果受信モジュール、
(G)他の検索サーバから転送されてきた他のユーザからの検索要求を、前記ネットワークを介して受信する検索要求受信モジュール、
(H)前記検索要求受信モジュールが受信した他のユーザからの検索要求を前記検索モジュールで検索した結果を、前記ネットワークを介して前記他のユーザの検索サーバに転送する検索結果転送モジュール、
を備える、検索システム。
(発明2)
発明1の検索システムであって、(D)前記検索結果送信モジュールによる検索結果の送信と、(F)前記検索結果受信モジュールによる検索結果送信とが、シリアルに実行されるように構成される、検索システム。
(発明3)
発明1又は2の検索システムであって、前記各検索サーバが、OSをWindows(登録商標)とする1台の情報処理装置(以下Windows装置)と、OSをLinux(登録商標)とする1台の情報処理装置(以下Linux装置)とから構成される、検索システム。
(発明4)
発明3に記載のシステムの拡張方法であって、
前記各検索サーバのWindows装置は、互いにハブによるネットワークで接続され、
前記各検索サーバのWindows装置と、Linux装置とは、互いに、前記ハブによるネットワークとは異なるネットワークで接続され、
前記方法は、
新たなWindows装置を、前記ハブによるネットワークに接続すること、及び、
新たなLinux装置を、前記新たなWindows装置に、新たなネットワークで接続すること
を含む方法。
(発明5)
以下を備える検索サーバ:
各検索サーバは、
(A)情報を記録した記憶媒体、
(B)前記記憶媒体に記録された情報を検索する検索モジュール、
(C)自身のユーザからの検索要求を受付ける検索要求受付モジュール、
(D)前記受付けた検索要求に基づく検索処理を前記検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、
(E)前記受付けた検索要求を、ネットワークを介して他の全ての検索サーバに転送する検索要求転送モジュール、
(F)前記転送した検索要求に対する他の検索サーバからの検索結果を、前記ネットワークを介して受信し、ユーザに送る検索結果受信モジュール、
(G)他の検索サーバから転送されてきた他のユーザからの検索要求を、前記ネットワークを介して受信する検索要求受信モジュール、
(H)前記検索要求受信モジュールが受信した他のユーザからの検索要求を前記検索モジュールで検索した結果を、前記ネットワークを介して前記他のユーザの検索サーバに転送する検索結果転送モジュール。
(発明6)
発明1~3のいずれか1つに記載の検索システムを用いた検索方法であって、前記方法は、
(1)前記検索サーバの検索要求受付モジュールが、自身のユーザからの検索要求を受付けるステップと、
(2)前記検索サーバの検索モジュールが、受付けた検索要求に基づく検索処理を実行して検索結果を出力するステップと、
(3)前記検索サーバの検索結果送信モジュールが、前記検索結果を、前記自身のユーザに送信するステップと、
(4)前記検索サーバの検索要求転送モジュールが、前記受付けた検索要求を、ネットワークを介して、他の全ての検索サーバの検索要求受信モジュールに転送するステップと、
(5)前記他の検索サーバの検索モジュールが、前記転送された検索要求に基づく検索処理を実行して検索結果を出力するステップと、
(6)前記他の検索サーバの検索結果転送モジュールが、前記転送された検索要求に基づく検索処理による検索結果を、ネットワークを介して、前記検索サーバの検索結果受信モジュールに送信するステップと、
(7)前記検索サーバの検索結果受信モジュールが、前記転送された検索要求に基づく検索処理による検索結果を、前記自身のユーザに送信するステップと、
を含む、方法。
(発明7)
発明6の方法であって、前記(3)と(7)のステップをシリアルに実行する、方法。
【発明の効果】
【0009】
一側面において、(D)前記受付けた検索要求に基づく検索処理を前記検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュールと、(E)前記受付けた検索要求を、ネットワークを介して他の全ての検索サーバに転送する検索要求転送モジュールとを備える。これにより、各検索サーバが、自身の検索サーバの検索結果と、他の検索サーバからの検索結果とを出力することができる。また、検索サーバが増えたとしても、それにともなって管理サーバを設けて設定情報を書き換える必要がない。
【図面の簡単な説明】
【0010】
【
図1】一実施形態における検索サーバの構成を示す。
【
図2】一実施形態における情報処理装置の構成を示す。
【
図3】一実施形態における検索サーバの構成を示す。
【
図4】一実施形態における検索システムの構成を示す。
【
図6】一実施形態におけるシステムの拡張方法を示す。
【
図7】一実施形態における検索システムにおいて、複数の検索サーバからデータを抽出する概念を示す(なお、図に記載の名簿の氏名及び生年月日等は架空のデータである)。
【
図8】一実施形態における検索システムが検索結果を出力する方法を示す。
【
図9】一実施形態において、データ構造が検索サーバごとに異なる場合に対処するための仕組みを示す。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための具体的な実施形態について説明する。以下の説明は、本発明の理解を促進するためのものである。即ち、本発明の範囲を限定することを意図するものではない。
【0012】
1.検索サーバの構成
本発明は、一実施形態において、検索サーバに関する。検索サーバは、
図1に示すように、少なくとも以下を備える。
(A)情報を記録した記憶媒体、
(B)記憶媒体に記録された情報を検索する検索モジュール、
(C)自身のユーザからの検索要求を受付ける検索要求受付モジュール、
(D)受付けた検索要求に基づく検索処理を検索モジュールで実行した検索結果をユーザに送信する検索結果送信モジュール、
(E)受付けた検索要求を、ネットワークを介して他の全ての検索サーバに転送する検索要求転送モジュール、
(F)転送した検索要求に対する他の検索サーバからの検索結果を、ネットワークを介して受信し、ユーザに送る検索結果受信モジュール、
(G)他の検索サーバから転送されてきた他のユーザからの検索要求を、ネットワークを介して受信する検索要求受信モジュール、
(H)前記検索要求受信モジュールが受信した他のユーザからの検索要求を検索モジュールで検索した結果を、ネットワークを介して他のユーザの検索サーバに転送する検索結果転送モジュール。
【0013】
各モジュールの詳細については、処理内容と共に後述する。
【0014】
検索サーバは、一般的な情報処理装置であればよく、典型的には、
図2に示すように、プロセッサ、メモリ、記憶媒体、及び、通信モジュールを備えることができる。プロセッサは、プログラム(例えば、OS及びアプリケーション)などに記載された指示を実行することができる。記憶媒体は、プログラム、及び/又は、データを記憶することができる。メモリは、記憶媒体に記憶されたデータをロードすることができる。通信モジュールは、ネットワークを通して、外部との通信を行うことができる。なお、通信モジュールは、複数種類のネットワークに接続できるように、2以上備えてもよい。
【0015】
上述した(A)~(H)までのモジュール等は、
図2に示すハードウェアリソースと、プログラムを組み合わせることで実現することができる。(A)情報を記録した記憶媒体については、当該検索サーバから見て、物理的にローカルな記憶媒体(USB、SATA、IDEなどのインターフェースで接続された記憶媒体)であってもよい。また、外部のデータストレージサービスを利用して、外見上ローカルに存在するようなものであってもよい(例えば、Microsoft社の提供するOneDrive、Google社の提供するGoogleDrive、BOX社の提供するBoxDrive)。ただし、(A)情報を記録した記憶媒体については、他の検索サーバからはアクセスできる必要はなく、好ましくは、アクセスできない。
【0016】
なお、
図1~2では、検索サーバを、概念上1台の装置として記載しているが、必要に応じて、複数の装置に分散してもよい。例えば、ユーザからの検索条件を受け付ける機能などは、別のサーバが担ってもよい。むろん、上述した(A)~(H)までのモジュールが、物理的に一台の情報処理装置内で実現されてもよい。
【0017】
図3は、一実施形態における、本発明の検索サーバの構成を示す。検索サーバは、2台のサーバに分散された構成となっている。1台目は、検索仲介サーバであり、インターネット又はLANを経由して、ユーザの端末と接続されている。検索仲介サーバは、例えば、Webサーバなどであってもよく、或いは、検索用のAPIを提供するサーバであってもよい。いずれにしても、検索仲介サーバは、ユーザの端末から送信された検索条件を、受信する機能を有する。さらに、検索仲介サーバは、受信した検索条件を、検索実行サーバに送信する機能を有する。その際に、検索条件の情報を適宜加工したうえで(例えば、所定のクエリ形式に変換するなど)、検索実行サーバに送信してもよい。
【0018】
検索実行サーバは、
図1に示す各種モジュールを備え、検索処理を実行することができる。そして、検索結果を、検索仲介サーバに送信することができる。検索仲介サーバは、検索結果を、ユーザ端末に送信することができる。
【0019】
検索実行サーバ、及び、検索仲介サーバのOSは特に限定されず、UNIX(登録商標)、Windows(登録商標)、ChromeOS(登録商標)、Linux(登録商標)など当分野で公知のOSを使用してもよい。好ましくは、検索実行サーバのOSはWindows(特に、WindowsServer)であり、検索仲介サーバのOSはLinuxである。この理由として、検索実行サーバがWindowsの場合、種類によっては、接続するユーザの数によって、ライセンスのコストが変動する可能性がある。従って、直接接続されるのは、LinuxをOSとするサーバ1台だけにすることでそのコストを抑えることができる。一方で、ライセンスコストなどをかけることなく、不特定多数のユーザ端末からの検索要求を受け付ける目的から、不特定多数のユーザ端末から接続される可能性があるサーバについては、OSをLinuxにする。こうした理由から、両サーバは1:1の関係となるように接続される。例えば、両サーバをつなぐネットワークは、両サーバ以外存在しない構成にしてもよい(例えば、1台のハブに、両サーバのみが接続されている構成であってもよい)。また、こうした観点から、両サーバは、常時複数のネットワークに接続されるよう、少なくとも2つの通信モジュール(例えば、これに対応するハードウェアとして、Ethernet(登録商標)アダプタ、又は、LANボード)を備えることができる。
【0020】
また、システム全体をスケールアウトする際には、両サーバ1台ずつをペア又は1組として増設してもよい。
【0021】
2.検索システムの構成
本発明は、一実施形態において、検索システムに関する。検索システムは、上述した検索サーバを組み合わせて構成される。
図4に一例を示す。システムは、少なくとも2種類のネットワークを含むことができる。1種類目のネットワーク(第1ネットワーク)は、検索サーバ同士(例えば、検索実行サーバ同士)を接続するためのネットワークである。
図4においては、当該ネットワークは、検索サーバ専用ネットワークとして示される。典型的には、所定のハブ(1台又は複数台)に、検索サーバのみ(例えば、検索実行サーバのみ)が接続されてもよい。2種類目のネットワーク(第2ネットワーク)は、上述したように、検索サーバとユーザ端末とをつなぐネットワークである。好ましくは、検索サーバが検索実行サーバと検索仲介サーバに分散されている例において、両者をつなぐ3種類目のネットワーク(第3ネットワーク)が存在してもよい。
【0022】
詳細は、後述するが、例えば、ユーザ端末11が検索条件を送信すると、検索仲介サーバ1が受信し、検索実行サーバ1が検索を実行する。これに加えて、検索実行サーバ1は、当該検索条件を他の検索実行サーバ2~3にも転送し、他の検索実行サーバ2~3の実行状況を監視する。そして、自身の検索結果を、検索仲介サーバ1を介してユーザ端末11に送信するとともに、検索実行サーバ2~3から送信される検索結果も、同様に、検索仲介サーバ1を介してユーザ端末11に送信する。
【0023】
もしも、ユーザ端末11ではなく、ユーザ端末21が検索条件を送信した場合には、検索実行サーバ2が、当該検索条件を他の検索実行サーバ1及び3に転送することになる。なお、検索サーバ(及び検索実行サーバ)の台数は特に限定されず、2~N(Nは任意の整数)であってもよい。以下では、検索方法の詳細について説明する。
【0024】
3.検索方法
一実施形態において、本発明は、検索方法に関する。前記検索方法は、以下のステップを含む。
(1)検索サーバの検索要求受付モジュールが、自身のユーザからの検索要求を受付けるステップ、
(2)検索サーバの検索モジュールが、受付けた検索要求に基づく検索処理を実行して検索結果を出力するステップ、
(3)検索サーバの検索結果送信モジュールが、検索結果を、自身のユーザに送信するステップ、
(4)検索サーバの検索要求転送モジュールが、受付けた検索要求を、ネットワークを介して、他の全ての検索サーバの検索要求受信モジュールに転送するステップ、
(5)他の検索サーバの検索モジュールが、転送された検索要求に基づく検索処理を実行して検索結果を出力するステップ、
(6)他の検索サーバの検索結果転送モジュールが、転送された検索要求に基づく検索処理による検索結果を、ネットワークを介して、検索サーバの検索結果受信モジュールに送信するステップ、
(7)検索サーバの検索結果受信モジュールが、転送された検索要求に基づく検索処理による検索結果を、自身のユーザに送信するステップ。
【0025】
以下では、例示的な処理を示す
図5を参照しながら各ステップについて詳述する。
図5は、ユーザ端末11が検索条件を送信した場合を例示している。図に示していないが、実際には、検索仲介サーバ1が、ユーザ端末11から送信された検索条件を、検索実行サーバ1に転送してもよい。
【0026】
まず、
図5の(1)に示すように、検索サーバ1の検索要求受付モジュールが、ユーザ端末11からの検索要求を受付ける。上述したように、この検索要求は、検索サーバ専用ネットワーク以外のネットワークから受信される(例えば、上述した第3ネットワーク)。
【0027】
次に、この検索条件は、検索サーバ1の検索モジュールに転送される。そして、
図5の(2)に示すように、検索サーバ1の検索モジュールが、受付けた検索要求に基づく検索処理を実行して検索結果を出力する。なお、
図5に示すように、検索サーバ1の検索モジュールが検索を実行する対象は、検索サーバ1の記憶媒体である。
【0028】
さらに、この出力された検索結果は、検索サーバ1の検索結果送信モジュールに送信される。そして、
図5の(3)に示すように、検索サーバ1の検索結果送信モジュールは、ユーザ端末11に検索結果を送信する。その際には、
図4に示す検索仲介サーバ1を介して、ユーザ端末11に送信されてもよい。
【0029】
また、上記(1)のステップと同時又はこれと前後してもよいが、
図5の(4)に示すように、検索サーバ1の検索要求転送モジュールが、受付けた検索要求(外部ネットワークから直接受け付けてもよく、検索要求受付モジュールを経由して受け付けてもよい。
図5では後者のパターンを示す)を、
図4に示す検索サーバ専用ネットワークを介して、他の検索サーバ2~3の検索要求受信モジュールに転送する。例えば、検索サーバ1の検索要求転送モジュールは、自身の検索サーバ以外の全ての検索サーバの検索要求受信モジュールに転送することができる。
【0030】
他の検索サーバ2~3の検索要求受信モジュールは、転送された検索要求を、他の検索サーバ2~3の検索モジュールに送信することができる。
図5の(5)に示すように、他の検索サーバ2~3の検索モジュールは、転送された検索要求に基づく検索処理を実行して検索結果を出力する。
【0031】
検索結果は、検索サーバ2~3の検索結果転送モジュールに送信される。そして、
図5の(6)に示すように、他の検索サーバ2~3の検索結果転送モジュールが、検索結果を、ネットワークを介して、検索サーバ1の検索結果受信モジュールに送信する。そして、
図5の(7)に示すように、検索サーバ1の検索結果受信モジュールは、ユーザ端末11に検索結果を送信する。その際には、
図4に示す検索仲介サーバ1を介して、ユーザ端末11に送信されてもよい。
【0032】
ここで、
図5に示す(4)及び(6)は、
図4に示す検索サーバ専用ネットワークを介して行われる。また、
図5に示す(1)、(3)、及び(7)は、検索実行サーバ1及び検索仲介サーバ1をつなぐネットワーク、並びに、検索仲介サーバ1及びユーザ端末11~14をつなぐネットワークを介して行われる。
【0033】
なお、検索結果を送信する(3)及び(7)は、同時に行われてもよいが、好ましくは、シリアルに行われてもよい。具体的には、送信可能なものから順次検索結果を送信する方式であってもよい。この方式のメリットは、例えば、検索サーバ2による検索に時間がかかっている場合であっても、すでに検索結果が出ている検索サーバ1による検索結果を送信することができる。これによって、ユーザにとっては、心理的に待たされている感覚を軽減することができる。検索結果を結合して一斉に送信する方式だと、最も遅い検索結果が出力及び/又は転送されるまで待たなくてはならなくなる。
【0034】
4.システム拡張の方法
一実施形態において、本発明は、システムの拡張方法に関する。より具体的には、スケールアウトの方法に関する。
図6に、
図4のシステムをスケールアウトした概念図を示す。例えば、データ量が増えたため、及び/又は、接続ユーザ数が増えた場合などに、スケールアウトを行うことができる。
【0035】
検索実行サーバ4と検索仲介サーバ4とが、新たに追加されている。検索実行サーバ4は、既存の検索サーバ専用ネットワークに接続されている。また、検索サーバ4と検索仲介サーバ4とは、新たなネットワークにて接続される。今後新たに増えるデータは、例えば、検索サーバ4が備える記憶媒体に追加されてもよい。
【0036】
この方法の大きなメリットは、スケールアウトの際の設定の手間が少ない点があげられる。この理由として管理サーバを設けていないので、追加したハードウェアの情報を管理サーバの設定ファイル等に記録する必要がないからである。また、各検索実行サーバを、検索サーバ専用ネットワークに接続することで、各検索実行サーバの再設定も不要となる。例えば、従来技術だと、どこかで、検索実行サーバの存在を管理し(例えば、テーブルなどの一覧リストなどで管理)、当該管理情報を参照しながら、
図5の(4)に示す工程を実行しなくてはならない。この場合には、台数が増減するたびに管理情報のアップデートが必要となる。しかし、検索サーバ専用ネットワークが、検索実行サーバ以外接続されない構成を採用することで、尚且つ、デフォルトで当該ネットワーク内の全ての機器に検索条件を転送する設定を採用することで、検索実行サーバの台数が増減しても、管理情報のアップデートの手間は不要となり、そもそも、管理情報自体も不要となる。更に好ましくは、OSなどが標準で備える機能として、ネットワーク内に存在する機器を自動認識する機能がある。こうした機能も適宜利用してもよい。
【0037】
また、検索実行サーバ4と検索仲介サーバ4とが常にペアで1:1となるようにスケールアウトすることで、処理の流れなどをシンプルな状態に維持することができる。仮にこれが、1:Nの関係になると、スケールアウトのたびに再設定の手間が増加する。
【0038】
5.応用例1
上述した本発明の具体的な実施形態は、様々な検索に適用することができる。検索の方式としては、記憶媒体内に存在するファイルの検索、記憶媒体内に存在するファイルの内容の検索(例えば、Grep検索)、記憶媒体内に存在するデータベース内のデータの検索などがあげられる。
【0039】
データベースを利用した方式の場合には、特定のデータベース方式に限定されず、当分野で公知の方式などを利用してもよい。
【0040】
以下、名簿を例にした、検索システムについて説明する。
図7は、
図4に示す検索システムにおいて、各々の検索実行サーバ1~3の情報媒体に記録されている名簿の情報を示す。
【0041】
ここで、ユーザ端末11には、検索条件として、1985/1/1以降に生まれた人という条件が入力され、検索条件の情報が、検索仲介サーバ1へ送信される。検索仲介サーバ1は、検索実行サーバ1が解釈可能な形式に、検索条件を変換する。例えば、「select * from 名簿テーブル where 生年月日 >= to_date(1985/1/1)」といったSQL形式の検索要求に変換してもよい。そして、この変換後の検索要求を、検索実行サーバ1に送信する。
【0042】
検索実行サーバ1の検索要求受付モジュールは、この検索要求を受け取り、上述した仕組みで、検索実行サーバ1の記憶媒体内に記録されているデータを検索する。その結果、1985/1/1以降の生まれである、「佐藤政治」の行のデータが抽出される。
【0043】
一方で、検索実行サーバ1は、上述した仕組みで、検索要求を検索実行サーバ2~3にも転送し、各々の検索実行サーバ2~3でも検索が実行される。その結果、検索実行サーバ2は、「田中守彦」の行のデータを抽出する。そして、検索実行サーバ3は、「高橋乃愛」及び「中村利之」の行のデータを抽出する。検索実行サーバ2~3は、それぞれが抽出した行のデータを、検索実行サーバ1に送信する。
【0044】
検索実行サーバ1は、上述した仕組みで、各々の検索実行サーバ1~3が抽出したデータを、検索結果として、検索仲介サーバ1に送信し、最終的に、検索要求を出したユーザ端末11に送信される。
【0045】
検索実行サーバ1は、各々の検索実行サーバ1~3が抽出したデータを、統合したうえで、検索結果として、検索仲介サーバ1に送信してもよい。しかし、好ましくは、各々の検索実行サーバ1~3のいずれかが抽出したデータを、他の検索結果が到着するのを待つことなく、順次検索仲介サーバ1に送信してもよい。
【0046】
例えば、
図8に示すような順序で処理してもよい。
(1)検索実行サーバ1が、当該サーバが実行した検索結果を検索仲介サーバ1に送信
(2)検索実行サーバ1が、検索実行サーバ3から検索結果を受信
(3)検索実行サーバ1が、検索仲介サーバ1に、受信した検索結果を送信
(4)検索実行サーバ1が、検索実行サーバ2から検索結果を受信
(5)検索実行サーバ1が、検索仲介サーバ1に、受信した検索結果を送信
【0047】
このように、検索結果の出力に時間がかかる特定の検索実行サーバがボトルネックとなることなく、検索結果を順次送信することで、ユーザが体感する待ち時間を軽減させることができる。
【0048】
このような送信方式に関連して、各検索サーバ(例えば、検索実行サーバ)は、検索処理監視モジュールを備えてもよい。当該モジュールの役割は、すべての検索実行サーバからのレスポンスがそろったかどうかを監視し、それを、検索仲介サーバに通知する機能を有することができる。これにより、検索仲介サーバは、順次検索結果を受信する際に、まだ、全てのデータが出そろっていないのか、それとも、これで全部なのかを判別することができる。
【0049】
6.応用例2
上記の応用例1では、各検索サーバが検索対象とするデータの構造が同じであった。しかし、別の一実施形態における本発明においては、各検索サーバが検索対象とするデータの構造は同じである必要はない。例えば、各検索サーバ(より具体的には、検索実行サーバ)が、変換モジュールを備えることで、データ構造の相違を吸収することが可能となる。当該変換モジュールは、例えば、共通形式の検索要求及び検索結果を、各データ構造固有の検索要求及び検索結果と相互に変換することができる。
【0050】
例えば、上記応用例1の場合だと、同一のテーブル構造となっているが、別の例では、検索サーバ2に対応するテーブルでは、生年月日というカラムではなく、年齢と誕生月日(例えば、20歳、5月7日)という形で表現されているかもしれない。また、検索サーバ3に対応するテーブルでは、氏名と生年月日が例えば、テーブルの正規化等の理由により、別のテーブルで管理されており、検索する際にはテーブルの結合が必要となるかもしれない。
【0051】
こうした相違に対応するための仕組みを
図9に示す。
図9はあくまでも一例であり、他の手段によっても対応可能である。そして、本発明の範囲は、
図9に示した例に限定されるものではない点留意されたい。
【0052】
図9は、変換モジュールを実装するコードを疑似言語で表現している。Mainの関数は、クエリ文と、データ構造識別コードとを引数として受け取ることができる。クエリ文は、例えば、
図7に示されるSQL文のような、或いは、検索仲介サーバによって送信されるような、共通形式の検索条件である。また、データ構造識別コードは、データ構造の相違に応じて割り当てられる。例えば、同一のデータ構造に対しては、同一のデータ構造識別コードが割り当てられる。
【0053】
引数のクエリ文は、検索仲介サーバから送信されてもよく、及び/又は、他の検索サーバから検索条件として転送されてもよい。データ構造識別コードは、各検索実行サーバの設定ファイルなどに記憶されてもよい。
【0054】
これらの引数を受け取ったMain関数は、データ構造の相違に応じて、クエリ文を変換する処理を行うことができる。例えば、
図9に示すように、データ構造の相違に応じて、より具体的には、データ構造識別コードに応じて、呼び出す変換関数(func_search_1~3)を切り替えることができる。
【0055】
呼び出された関数では、共通形式のクエリを固有形式のクエリに変換する。その後、固有形式のクエリで、検索を実行する。ここで得られる検索結果は、固有の形式となっているので、共通の形式に変換する。そして、変換後の検索結果をReturnする。
【0056】
例えば、検索実行サーバ1~3で、それぞれ、データ構造が相違する場合、検索実行サーバ1は、受け取った検索条件の情報を、func_search_1を呼び出すことによって、固有のデータ構造に対応したクエリ文に変換することができる。以下同様に、検索実行サーバ2は、受け取った検索条件の情報を、func_search_2を呼び出すことによって、固有のデータ構造に対応したクエリ文に変換することができる。そして、検索実行サーバ3は、受け取った検索条件の情報を、func_search_3を呼び出すことによって、固有のデータ構造に対応したクエリ文に変換することができる。
【0057】
このように、変換モジュールを使用することで、検索実行サーバごとのデータ構造の相違にも対応することが可能となる。
【0058】
以上、本発明の具体的な実施形態について説明してきた。上記実施形態は、本発明の具体例に過ぎず、本発明は上記実施形態に限定されない。例えば、上述の実施形態の1つに開示された技術的特徴は、他の実施形態に適用することができる。また、特記しない限り、特定の方法については、一部の工程を他の工程の順序と入れ替えることも可能であり、特定の2つの工程の間に更なる工程を追加してもよい。本発明の範囲は、特許請求の範囲によって規定される。