(57)【要約】受取クライアントの検索要求に応じて提供サーバから受取クライアントに直接転送するのに現在利用可能なデータオブジェクトのデータオブジェクト記述及びサーバ記述を含む検索応答を提供するリアルタイム検索エンジンをインターネット上に構築する方法を開示する。この方法では、提供サーバは、インターネットを介してリアルタイム検索エンジンに接続し、提供サーバは、その提供サーバ上にあるデータオブジェクトのデータオブジェクト記述をリアルタイム検索エンジンに供給し、リアルタイム検索エンジンは、提供サーバのデータオブジェクトに関連したデータオブジェクト記述のインデックスを生成し、提供サーバがリアルタイム検索エンジンから切断されたときに、その提供サーバにより供給されたデータオブジェクト記述をリアルタイム検索エンジンから除去する。
2004502987.tif 000002
【特許請求の範囲】
【請求項１】
受取クライアントの検索要求に応じて提供サーバから受取クライアントに直接転送するのに現在利用可能なデータオブジェクトのデータオブジェクト記述及びサーバ記述を含む検索応答を提供するリアルタイム検索エンジンをインターネット上に構築するリアルタイム検索エンジン構築方法において、
ａ．　上記提供サーバは、上記インターネットを介して上記リアルタイム検索エンジンに接続し、上記提供サーバは、該提供サーバ上にあるデータオブジェクトのデータオブジェクト記述を上記リアルタイム検索エンジンに供給し、
ｂ．　上記リアルタイム検索エンジンは、上記提供サーバのデータオブジェクトに関連したデータオブジェクト記述のインデックスを生成し、
ｃ．　上記提供サーバが上記リアルタイム検索エンジンから切断されたときに、当該提供サーバにより供給されたデータオブジェクト記述を上記リアルタイム検索エンジンから除去するリアルタイム検索エンジン構築方法。
【請求項２】
上記提供サーバは、当該提供サーバに追加されたデータオブジェクトのデータオブジェクト記述を上記リアルタイム検索エンジンに対して自動的にリアルタイムで供給することを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項３】
上記提供サーバは、当該提供サーバから除去されたデータオブジェクトを上記リアルタイム検索エンジンに対して自動的にリアルタイムで通知し、その後、上記リアルタイム検索エンジンは、データオブジェクト記述を取り除くことを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項４】
上記データオブジェクト記述は、データオブジェクトのタイトル、データオブジェクトのサイズ、データオブジェクトの種類、データオブジェクトに関連したテキスト、データオブジェクトの作成者、データオブジェクトの品質格付け、データオブジェクトが存在する提供サーバのいずれかからなることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項５】
上記サーバ記述は、サーバのインターネットプロトコル（ＩＰ）アドレス、サーバにより可能とされる同時接続数、サーバの信頼性、サーバ名のいずれかからなることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項６】
クライアント検索コマンドを有し、上記受取クライアントは、データオブジェクト記述をサーチして、最良のデータオブジェクトを検出し、該検出したデータオブジェクトが存在する最適な提供サーバを選択することを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項７】
上記受取クライアントの検索要求は上記提供サーバの制限基準を有し、上記検索エンジンは、上記サーバ制限基準に合致しない全てのサーバを上記検索応答から取り除くことを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項８】
上記提供サーバの制限基準は帯域幅制限からなり、上記検索エンジンは、上記帯域幅制限より低い帯域幅特性を有する提供サーバを上記検索応答から取り除くことを特徴とする請求項７記載のリアルタイム検索エンジン構築方法。
【請求項９】
上記リアルタイム検索エンジンは、受取クライアントからの新たなダウンロード要求を受け付けられない提供サーバを上記検索応答からパージすることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１０】
更に、クライアントブラウザによって、上記検索応答を自動的にソートする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１１】
上記自動的な検索応答のソートは応答値によって行われ、該応答値は、上記提供サーバによって上記受取クライアントにエコー応答メッセージが返信されるまでの時間を測定することにより決定されることを特徴とする請求項１０記載のリアルタイム検索エンジン構築方法。
【請求項１２】
上記提供サーバが特定の時間内に上記受取クライアントのエコー要求に応答しなかった場合、当該提供サーバは上記検索応答から取り除かれることを特徴とする請求項１１記載のリアルタイム検索エンジン構築方法。
【請求項１３】
上記データオブジェクトは、オーディオデータオブジェクト、テキストデータオブジェクト、画像データオブジェクト、ビデオデータオブジェクト、ソフトウェアによる実行可能なデータオブジェクトからなるグループから選択された種類のものであることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１４】
受取人が上記検索応答における提供サーバのうちの１つを選択した後、上記受取クライアントは、該選択された提供サーバから上記データオブジェクトをダウンロードすることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１５】
上記受取クライアントは、同時に他の受取クライアントに対する提供サーバとして動作し、上記受取クライアントによりダウンロードされたデータオブジェクトは、上記インターネット上の他の受取クライアントに対して使用可能とされることを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１６】
スコアリングメカニズムを用いて、所望のデータオブジェクトを提供することができる少なくとも２つ以上の提供サーバから１つの提供サーバを自動的に選択することを特徴とする請求項１記載のリアルタイム検索エンジン構築方法。
【請求項１７】
上記スコアリングメカニズムは、受取クライアントから提供サーバまでのラウンドトリップ応答時間、提供サーバのインターネット接続ライン速度（データ伝送速度）、ファイルサイズ、提供サーバの信頼性よりなることを特徴とする請求項１６記載のリアルタイム検索エンジン構築方法。
【請求項１８】
最適のスコアは、ライン速度と提供サーバ信頼性が高い提供サーバから得られることを特徴とする請求項１７記載のリアルタイム検索エンジン構築方法。
【発明の詳細な説明】
【０００１】
【従来の技術】
現在インターネット上に存在する検索エンジンは、サーバ上の関心のあるデータオブジェクトを見つけてダウンロードするために世界中の人々により使用されている。一般にこれらの検索エンジンは、各サーバがどのようなデータオブジェクトを有しているか知るためにインターネット上の多数のサーバを周期的に調査する。その後、検索エンジンは、各サーバのコンテンツのインデックス（ｉｎｄｅｘ）を生成し、そのコンテンツをサーバのロケーション（ｓｅｒｖｅｒ’ｓ ｌｏｃａｔｉｏｎ）にリンクさせる。
【０００２】
インデックスの生成は時間がかかる作業であるとともに、サーバ及び検索エンジンに対して比較的コストがかかるため、余り頻繁に行うことができない。検索エンジンのインデックスビルダ（ｉｎｄｅｘ ｂｕｉｌｄｅｒ）及び検索されるデータを有するサーバに対する負担を低減するために、検索エンジンによって生成される情報のタイムリー性（ｔｉｍｅｌｉｎｅｓｓ）が犠牲になっている。
【０００３】
すなわち、検索エンジンのインデックスは直ぐに古くなってしまう。データオブジェクトの種類によっては作成や変更が比較的遅く、余り問題にならないものもある。しかしながら、比較的頻繁に作成や除去が行われるデータオブジェクトに対しては、検索エンジンのインデックスは実用的ではなく、追加や除去が毎日行われるデータオブジェクトの場合、標準的な検索エンジンは事実上役に立たない。また、現状（ｃｕｒｒｅｎｔ ｐａｒａｄｉｇｍ）は、比較的静的なサーバ環境を前提としているが、サーバが比較的頻繁に立ち上がったり（ｃｏｍｅ ｕｐ）、ダウンしたり（ｇｏ ｄｏｗｎ）、またデータの追加や削除が毎時間あるいはもっと頻繁に行われている環境では、標準的な検索エンジンの手法は全く役に立たない。
【０００４】
【発明が解決しようとする課題】
したがって、現在インターネットに接続されているサーバ上のデータコンテンツのインデックスを最新に維持するインターネット検索エンジンが必要であることは明らかである。
【０００５】
更に、従来の技術で採用されている方法を用いた検索エンジンのインデックスを生成するコストを大幅に低減するリアルタイム検索エンジンが必要である。
【０００６】
【課題を解決するための手段】
本発明は、上述した必要性を達成するために、受取クライアント（ｒｅｃｉｐｉｅｎｔ ｃｌｉｅｎｔ）の検索要求に応じて提供サーバ（ｐｒｏｖｉｄｅｒ ｓｅｒｖｅｒ）から受取クライアントに直接転送するのに現在利用可能なデータオブジェクトのデータオブジェクト記述（ｄａｔａ ｏｂｊｅｃｔ ｄｅｓｃｒｉｐｔｉｏｎ）及びサーバ記述（ｓｅｒｖｅｒ ｄｅｓｃｒｉｐｔｉｏｎ）を含む検索応答を提供するリアルタイム検索エンジンをインターネット上に構築するリアルタイム検索エンジン構築方法を提供する。この方法は、提供サーバはインターネットを介してリアルタイム検索エンジンに接続し、提供サーバはこの提供サーバ上にあるデータオブジェクトのデータオブジェクト記述をリアルタイム検索エンジンに供給し、リアルタイム検索エンジンは提供サーバのデータオブジェクトに関連したデータオブジェクト記述のインデックスを生成し、提供サーバがリアルタイム検索エンジンから切断されたときに、提供サーバにより供給されたデータオブジェクト記述をリアルタイム検索エンジンから除去する。
【０００７】
この方法は、更に、提供サーバは、その提供サーバに追加されたデータオブジェクトのデータオブジェクト記述をリアルタイム検索エンジンに対して自動的にリアルタイムで供給する。
【０００８】
好ましくは、この方法は、更に、提供サーバは、その提供サーバから除去されたデータオブジェクトをリアルタイム検索エンジンに対して自動的にリアルタイムで通知し、その後、リアルタイム検索エンジンは、データオブジェクト記述を取り除く。
【０００９】
データオブジェクト記述は、データオブジェクトのタイトル、データオブジェクトのサイズ、データオブジェクトの種類、データオブジェクトに関連したテキスト、データオブジェクトの作成者、データオブジェクトの品質格付け、データオブジェクトが存在する提供サーバのいずれかからなる。サーバ記述は、サーバのインターネットプロトコルアドレス、サーバにより可能とされる同時接続数、サーバの信頼性、サーバ名のいずれかからなる。
【００１０】
好ましくは、クライアント検索コマンドが用いられ、受取クライアントは、データオブジェクト記述をサーチして、最良のデータオブジェクトを検出し、そのデータオブジェクトが存在する最適な提供サーバを選択する。
【００１１】
更に、受取クライアントの検索要求は提供サーバの制限基準を有し、検索エンジンは、サーバ制限基準に合致しない全てのサーバを検索応答から取り除く。
【００１２】
好ましい実施例において、提供サーバの制限基準は帯域幅制限からなり、検索エンジンは、帯域幅制限より低い帯域幅特性を有する提供サーバを検索応答から取り除く。
【００１３】
また、リアルタイム検索エンジンは、受取クライアントからの更なるダウンロード要求を受け付けられない提供サーバを検索応答からパージするようにしてもよい。
【００１４】
また、好ましい実施例において、受取クライアントによって、検索応答を自動的にソートする。自動的な検索応答のサーチは、応答値によって行われ、応答値は、提供サーバによって受取クライアントにエコー応答メッセージが返信されるまでの時間を測定することにより決定される。好ましくは、提供サーバが特定の時間内に受取クライアントのエコー要求に応答しなかった場合、その提供サーバは検索応答から取り除かれる。
【００１５】
データオブジェクトは、オーディオデータオブジェクト、テキストデータオブジェクト、画像データオブジェクト、ビデオデータオブジェクト、ソフトウェアによる実行可能なデータオブジェクトからなるグループから選択された種類のものである。
【００１６】
好ましい実施例において、リアルタイム検索エンジンは、更に、受取人が検索応答における提供サーバのうちの１つを選択した後、受取クライアントは、選択された提供サーバからデータオブジェクトをダウンロードする。また、受取クライアントは、同時に他の受取クライアントに対する提供サーバとして動作し、受取クライアントによりダウンロードされたデータオブジェクトは、インターネット上の他の受取クライアントに対して使用可能とされる。
【００１７】
【発明の実施の形態】
本発明は、受取クライアント（ｒｅｃｉｐｉｅｎｔ ｃｌｉｅｎｔ）の検索要求に応じて、提供サーバ（ｐｒｏｖｉｄｅｒ ｓｅｒｖｅｒ）から受取クライアントに直接転送する現在利用可能なデータオブジェクトのデータオブジェクト記述（ｄａｔａ ｏｂｊｅｃｔ ｄｅｓｃｒｉｐｔｉｏｎ）及びサーバ記述（ｓｅｒｖｅｒ ｄｅｓｃｒｉｐｔｉｏｎ）を含む検索応答を提供するリアルタイム検索エンジンをインターネット上に構築する方法を提供する。提供サーバがリアルタイム検索エンジンから切断されたときに、提供サーバにより供給されたデータオブジェクト記述をリアルタイムで検索エンジンからパージ（ｐｕｒｇｅ）することが本発明の最も重要な点である。これにより、受取クライアントは、受取クライアントにデータの供給及び転送する現在利用可能なサーバソースのみが含まれた検索結果を得ることができる。
【００１８】
図１は、本発明を適用したリアルタイム検索システム全体の構成とその構成要素を示すブロック図である。リアルタイム検索システムの構成要素は、本質的には、少なくとも１つの受取クライアント（ｒｅｃｉｐｉｅｎｔ ｃｌｉｅｎｔ）１６を含み、受取クライアント１６は、所望のデータオブジェクト（ｄａｔａ ｏｂｊｅｃｔ）２４の位置を検出するリアルタイム検索エンジン１０に接続されている。少なくとも１つの提供サーバ１２は、リアルタイム検索エンジン１０に接続し、１つ以上のデータオブジェクト記述（ｄａｔａ ｏｂｊｅｃｔ ｄｅｓｃｒｉｐｔｉｏｎ）２２をリアルタイム検索エンジン１０に供給する。提供サーバ１２がリアルタイム検索エンジン１０から切断されたとき、データオブジェクト記述２２は、リアルタイム検索エンジン１０からパージ（ｐｕｒｇｅ）され、そのデータオブジェクト２４は提供サーバ１２から受取クライアント１６に最早ダウンロードすることができないことを示している。
【００１９】
好ましくは、提供サーバ１２は、提供サーバ１２に追加されたデータオブジェクト２４のデータオブジェクト記述２２をリアルタイム検索エンジン１０に対して自動的にリアルタイムで供給する。
【００２０】
また好ましくは、提供サーバ１２は、提供サーバ１２から除去されたデータオブジェクト２４をリアルタイム検索エンジン１０に対して自動的にリアルタイムで通知し、その後、リアルタイム検索エンジン１０はデータオブジェクト記述２２をパージする。
【００２１】
受取クライアント
受取クライアント１６は、リアルタイム検索エンジン１０に接続して、受取クライアント１６が提供サーバ１２からダウンロードしたい特定のデータオブジェクト２４を有する最良の提供サーバ１２を探す。受取クライアント１６は、好ましくは、リアルタイム検索エンジン１０と通信するとともに、リアルタイム検索エンジン１０からの検索要求を生成する受取ブラウザ１８を用いる。この受取ブラウザ１０の例として、ネットスケープ社製のコミュニケータ、マイクロソフト社製のエクスプローラ、その他のカスタムインターフェースがある。
【００２２】
接続は、典型的には、接続されたエンティティ（ｅｎｔｉｔｙ）間で情報を伝送する方法を提供するソフトウェアプロトコルによって行われ、このようなプロトコルの例としてはＴＣＰがあり、ＴＣＰは、本発明にとって好ましい接続プロトコルである。なお、このようなプロトコルとしては、ＴＣＰと同じ基本機能を実行する他のプロトコル（例えば、再送信やタイムアウトによる切断を有するＵＤＰプロトコル）であってもよい。これらのプロトコルは、当該技術分野においてよく知られている。
【００２３】
他の実施例において、データオブジェクト２４は、テキストファイルであり、検索要求には、部分ファイル名（ｐａｒｔｉａｌ ｆｉｌｅｎａｍｅ）、キーワード、著者、ファイルのサイズ、カテゴリー、テキスト記述のうちのいずれかが含まれる。
【００２４】
また、一実施例において、データオブジェクト２４は、オーディオデータファイルであり、検索要求には、部分ファイル名、ビットレート（ｂｐｓ）、データのサンプルレート（Ｈｚ）、ファイルのサイズ、期間（ｄｕｒａｔｉｏｎ）、著者名又はアーティスト名、楽曲のタイトル、ジャンル、アルバム名のうちのいずれかが含まれる。
【００２５】
また、他の実施例において、データオブジェクト２４は、画像又はビデオファイルであり、検索要求には、部分ファイル名、圧縮の量及び種類、ファイルのサイズ、カテゴリー、画像又はビデオ記述のうちのいずれかが含まれる。
【００２６】
検索応答が受取人に返信されると、受取ブラウザ１８は、受取人が確認できるように検索要求の結果を表示する。
【００２７】
好ましい実施例において、受取クライアント１６は、各提供サーバ１２の検索応答における返信された応答時間を判定する。応答時間は、受取クライアント１６が各提供サーバ１２にＩＣＭＰエコーパケット（ｅｃｈｏ ｐａｃｋｅｔ）を送信して、提供サーバ１２からの応答を受信するまでの時間を測定することにより得られる。受取クライアントブラウザ１８は、応答時間を用いてデータオブジェクト記述２２をソートし、応答時間順に提供サーバ１２のデータオブジェクト記述２２を表示する。
【００２８】
一実施例において、データ伝送の帯域幅特性（ｍｉｎｉｍｕｍ ｄａｔａ ｔｒａｎｓｆｅｒ ｂａｎｄｗｉｄｔｈ ｃａｐａｂｉｌｉｔｙ）が最小の提供サーバ上のデータオブジェクト記述のみを含んだ検索応答３８をリアルタイム検索エンジン１０が提供するように、受取人は検索パラメータを選択することができる。
【００２９】
他の実施例において、受取人は、現在回線が余りにも混雑して更なるダウンロード要求を受け付けられない提供サーバを除く提供サーバが有するデータオブジェクト記述のみを含んだ検索応答３８を返信するように、検索エンジンに指示する。
【００３０】
また、一実施例において、提供サーバ１２は、ファイアウォールで保護されていない。受取クライアント１６は、提供サーバ１２に直接接続して、データオブジェクト２４を要求することによって、提供サーバ１２からデータオブジェクト２４をダウンロードした後、受取人のデータオブジェクトコレクション（ｄａｔａ ｏｂｊｅｃｔ ｃｏｌｌｅｃｔｉｏｎ）にそのデータオブジェクト２４を格納する。
【００３１】
また、一実施例において、所望のデータオブジェクト２４を提供することができる少なくとも２つ以上の提供サーバから、スコアリングメカニズム（ｓｃｏｒｉｎｇ ｍｅｃｈａｎｉｓｍ）を用いて、最適な提供サーバが自動的に選択される。スコアリングメカニズムは、受取クライアント１６から提供サーバ１２までのラウンドトリップ応答時間（ｒｏｕｎｄｔｒｉｐ ｒｅｓｐｏｎｓｅ ｔｉｍｅ）、提供サーバのインターネット接続ライン速度（データ伝送速度）、ファイルのサイズ、提供サーバの信頼性からなる。通常、最高スコアは、ライン速度と提供サーバ信頼性が高い提供サーバから得られる。最高スコアの提供サーバは、好ましくはダウンロード用の受取クライアント１６により選択される。
【００３２】
他の実施例において、最高スコアを決定するために、受取クライアント１６又は提供サーバ１２は、各データオブジェクト２４の転送毎の実効伝送速度をリアルタイム検索エンジン１０にアップロードし、この実効伝送速度は、提供サーバ１２の有効ライン速度を計算するのに用いられる。
【００３３】
提供サーバ
各提供サーバ１２は、その提供サーバからダウンロードできるデータオブジェクト２４からなるデータオブジェクトコレクションを有している。提供サーバ１２は、要求しているいずれの受取クライアント１６にもデータオブジェクト２４を供給する準備ができると、リアルタイム検索エンジン１０に接続して、データオブジェクトコレクション中の各データオブジェクト記述をアップロードする。リアルタイム検索エンジン１０は即座に更新される。データオブジェクト記述２２には、データオブジェクトのタイトル（ｔｉｔｌｅ）、データオブジェクトのサイズ（ｓｉｚｅ）、データオブジェクトの種類（ｔｙｐｅ）、データオブジェクトに関連するテキスト、データオブジェクトの作成者（ｃｒｅａｔｏｒ）、データオブジェクトの品質格付け（ｑｕａｌｉｔｙ ｒａｔｉｎｇ）、データオブジェクトが存在する提供サーバのうちのいずれかが含まれている。
【００３４】
好ましい実施例において、提供サーバ１２とリアルタイム検索エンジン１０との接続はＴＣＰプロトコルを用いて行われる。提供サーバ１２とリアルタイム検索エンジン１０との間で随時メッセージを送り、これらの間の接続が有効であることを確認する。提供サーバ１２からメッセージが数分間受信されない場合、接続が終了し、提供サーバへの接続は切断される。
【００３５】
一実施例において、提供サーバ１２は、リアルタイム検索エンジン１０に接続した直後に、ログインネームとパスワードを送信することにより、ログインプロセスを用いてリアルタイム検索エンジン１０に対して自己認証を行う。
【００３６】
他の実施例において、提供サーバ１２がファイアウォールで保護されているか否か判定し、この判定を最初のログインの際にリアルタイム検索エンジン１０に送る。
【００３７】
更に他の実施例において、提供サーバ１２がデータオブジェクトコレクションのデータオブジェクトをスキャンするときに、ファイル名の拡張子（例えば、．ｍｐ３、．ｊｐｇ、．ｍｐｇ、．ｄｏｃなど）を調べることにより、各データオブジェクトの種類を確かめる。拡張子のないファイルは無視する。各ファイルは、そのファイルに含まれるデータの適切なフォーマットが検証される。検証に失敗したデータオブジェクトについては、その記述はリアルタイム検索エンジン１０にアップロードされない。
【００３８】
データオブジェクト２４が提供サーバ１２に追加された場合、提供サーバ１２は、新たなデータオブジェクト記述をリアルタイム検索エンジン１０に送信する。同様に、データオブジェクト２４が削除された場合、提供サーバ１２は、リアルタイム検索エンジン１０にその削除を通知する。
【００３９】
一実施例において、ログインプロセス中に、提供サーバ１２は、最後にリアルタイム検索エンジン１０と接続したとき以降にデータオブジェクトコレクションに加えられた変更のみを送信する。リアルタイム検索エンジン１０と提供サーバ１２はいずれも、リアルタイム検索エンジン１０にアップロードされたデータオブジェクト記述のコピーと、それらの記述に認められた変更の全てを記憶する。このように、提供サーバ１２からリアルタイム検索エンジン１０に送られる初期情報は、大量のデータオブジェクトコレクションに対しても最小化される。
【００４０】
好ましい実施例において、データオブジェクトコレクションは提供サーバ１２の少なくとも１ディレクトリである。また、データオブジェクトコレクションには、他のデータオブジェクト２４又は複数のディレクトリを有する他のディレクトリが含まれる。
【００４１】
他の実施例において、データオブジェクトコレクションは提供サーバ１２から離れたコンピュータに記憶されているが、提供サーバ１２はアクセスすることができる。また、データオブジェクトコレクションは、データベース内のデータオブジェクト、ディレクトリ内のファイル、メモリ上又はＣＤ−ＲＯＭ、フラッシュメモリ等におけるデータオブジェクトであってもよい。
【００４２】
また、一実施例において、提供サーバ１２は、インターネットに対する自己のデータ転送ラインの帯域幅を含むサーバ記述を有し、リアルタイム検索エンジン１０への最初の接続の際に、このサーバ記述をアップロードする。
【００４３】
好ましい実施例において、提供サーバ１２と受取クライアント１６は、いずれも同じ実行可能な画面内に位置している。したがって、受取人が受取ブラウザ１８を動作させると、必ず提供サーバ１２も同時に動作させることになる。
【００４４】
一実施例において、受取クライアント１６により他の提供サーバ１２からダウンロードされたデータオブジェクトは、即座にデータオブジェクトコレクションに追加され、これらのデータオブジェクトは、インターネット上の他の受取クライアント１６に対しても使用可能となる。この実施例では、提供サーバ１２と受取クライアント１６からなるネットワークを介したデータオブジェクト２４の迅速な拡張が非常に容易になる。
【００４５】
好ましい実施例において、データオブジェクトのチェックサムを行うことに余って、データオブジェクトのフィンガプリント（ｆｉｎｇｅｒｐｒｉｎｔ）が生成される。各データオブジェクトは、データオブジェクトのデータのフィンガプリントによってそれぞれ独自に識別可能である。
【００４６】
好ましい実施例において、提供サーバ１２がファイアウォールで保護されていない場合、受取クライアント１６は、提供サーバ１２に直接接続して、提供サーバ１２から選択したデータオブジェクトが転送され、受取クライアント１６にダウンロードされることを要求する。提供サーバ１２がファイアウォールで保護されている場合、受取クライアント１６は、ダウンロード要求を提供サーバ１２に送るようにリアルタイム検索エンジン１０に要求する。提供サーバ１２は、このダウンロード要求を受信すると、受取クライアント１６に接続し、その後ダウンロードが行われる。提供サーバ１２と受取クライアント１６がいずれもファイアウォールで保護されている場合、転送を容易にするためにプロキシサーバが用いられる。受取クライアント１６はリアルタイム検索エンジン１０にダウンロード要求を通知し、リアルタイム検索エンジン１０は要求を提供サーバに送信し、受取クライアント１６と提供サーバ１２の両方がプロキシサーバに接続することにより、プロキシサーバを介して受取クライアント１６と提供サーバ１２との間でデータが流れ、ダウンロードを行うことができる。
【００４７】
リアルタイム検索エンジン
図２に示すように、好ましい実施例において、リアルタイム検索エンジンは以下の構成要素を有している。すなわち、リアルタイム検索エンジンは、少なくとも１つの検索エンジンゲートウェイ４４と、少なくとも１つの検索エンジン４０と、少なくとも１つの検索エンジンインデックスビルダ４２と、検索エンジンインデックスを有している。
【００４８】
検索エンジンゲートウェイ
好ましい実施例において、リアルタイム検索エンジンに接続する各提供サーバは、検索エンジンゲートウェイ４４に接続する。提供サーバが有するデータオブジェクトについての情報をアップロードすると、検索エンジンゲートウェイ４４は、この情報を受信して、検索エンジンインデックスビルダ４２に送る。検索エンジンインデックスビルダ４２は、これを用いて検索エンジンインデックスを更新する。提供サーバが切断した場合、又はネットワークエラーにより切断された場合、又はリアルタイム検索エンジンとの通信に失敗した場合、検索エンジンゲートウェイ４４は、これを検出して検索エンジンインデックスビルダ４２に通知する。検索エンジンインデックスビルダ４２は、その提供サーバ１２によりアップロードされたデータオブジェクト記述を検索エンジンインデックスから除去する。
【００４９】
また、特定の提供サーバが切断されると、検索エンジンインデックスビルダ４２は、実際にデータオブジェクトを除去するのではなく、データオブジェクト記述に「使用不可能」というマークを付す。その提供サーバが再び接続すると、データオブジェクト記述のリスト全体を送る代わりに、切断期間中に発生したデータオブジェクトコレクションの変更のみを送る。検索の際、検索エンジン４０は、「使用不可能」というマークが付されたデータオブジェクト記述を全て無視する。
【００５０】
また、一実施例において、各受取クライアント１６も、検索エンジンゲートウェイ４４に接続する。この実施例では、各検索エンジンゲートウェイ４４が検索エンジン４０に交互に接続する。受取クライアント１６からの検索要求は全て検索エンジンゲートウェイ４４に送信され、検索エンジンゲートウェイ４４は、接続した検索エンジン４０に検索要求を送信する。検索エンジン４０は、検索要求を実行して、検索応答３８を検索エンジンゲートウェイ４４に返信し、今度は、検索エンジンゲートウェイ４４が、検索応答３８を元の受取クライアント１６に返信する。
【００５１】
他の実施例において、検索エンジンゲートウェイ４４は、受取クライアント１６によって開始されたデータオブジェクトのダウンロードを追跡する。受取クライアント１６は、ある提供サーバ１２から特定のデータオブジェクト２４をダウンロードするための要求を送信する。ダウンロードが成功した場合、受取クライアント１６は、ダウンロードが完了したという情報を検索エンジンゲートウェイ４４に通知する。検索エンジンゲートウェイ４４は、この情報を用いて、提供サーバ１２の信頼性とともに、特定の提供サーバ１２からデータオブジェクト２４を現在ダウンロードしている受取クライアント１６の数を追跡する。
【００５２】
検索エンジン
検索エンジン４０は、受取クライアント１６から検索要求３６を受信して検索要求を実行し、検索応答を生成する。検索応答は受取クライアント１６に返信される。
【００５３】
また、他の実施例において、検索エンジン４０は、検索エンジンゲートウェイ４４からの検索要求を受信するが、この場合、検索エンジンゲートウェイ４４は、単に受取クライアント１６からの検索要求を中継しているだけである。
【００５４】
好ましい実施例において、検索要求には、部分データオブジェクト名（ｐａｒｔｉａｌ ｄａｔａ ｏｂｊｅｃｔ ｎａｍｅ）が含まれ、また任意に、データオブジェクトの最低品質格付け（ｍｉｎｉｍｕｍ ｄａｔａ ｏｂｊｅｃｔ ｑｕａｌｉｔｙ ｒａｔｉｎｇ）、提供サーバの最小接続帯域幅（ｍｉｎｉｍｕｍ ｐｒｏｖｉｄｅｒ）、検索されるデータオブジェクト記述の最大数（ｍａｘｉｍｕｍ ｎｕｍｂｅｒ ｏｆ ｄａｔａ ｏｂｊｅｃｔ ｄｅｓｃｒｉｐｔｉｏｎ）も含まれる。
【００５５】
各検索応答には、データオブジェクト記述のリストとともに、サーバ記述のリストが含まれる。好ましい実施例において、データオブジェクト記述及びサーバ記述内のフィールドサブセット（ｓｕｂｓｅｔ ｏｆ ｆｉｅｌｄ）は検索応答で返信される。これには、提供サーバ名及びインターネットプロトコル（ｉｎｔｅｒｎｅｔ ｐｒｏｔｏｃｏｌ：ＩＰ）アドレス、提供サーバの帯域幅記述（５６ｋモデム、ＤＳＬ、Ｔ１等）、データオブジェクト名（オーディオの例では、楽曲のタイトル及びアーティスト名）、データオブジェクトのフィンガプリント、データオブジェクトのサイズ（バイト）、データオブジェクトの品質格付けが含まれる。
【００５６】
検索を実行するため、検索エンジン４０は、検索要求内のフィールドを用いて、検索エンジンインデックスに格納されている記録（ｒｅｃｏｒｄ）をスキャンする。ある特定のデータオブジェクト記述に「使用不可能」というマークが付されている場合、検索エンジン４０は、このデータオブジェクト記述を無視する。
【００５７】
一実施例において、検索エンジンゲートウェイ４２と検索エンジン４０は、同じプロセスに存在する。他の実施例では、検索エンジンゲートウェイ４２と検索エンジン４０は、異なるプロセスに存在するが、同じマシーン（ｍａｃｈｉｎｅ）上で動作する。マシーン、検索エンジンゲートウェイ、検索エンジンについては多数の構成が可能である。
【００５８】
検索エンジンインデックス
好ましい実施例において、検索エンジンインデックスは、２つの内部テーブルを備えている。これらのテーブルは、データオブジェクト記述のテーブルと提供サーバ記述のテーブルからなる。これらのテーブルは、検索エンジンインデックスビルダ４２によって管理される。
【００５９】
提供サーバ記述のテーブルには、提供サーバ記述３４のコレクションが含まれる。これらのフィールドのうちの幾つかは、検索エンジンゲートウェイ４４に対する最初の接続中に提供サーバ１２によりアップロードされる。他のフィールドはイベントが発生すると計算される。好ましい実施例において、このテーブルのエントリには、以下のフィールドが含まれている。
・サーバ名及びＩＰアドレス
・パスワード
・接続帯域幅（Ｔ１、５６ｋモデム、ＤＳＬ等）
・受取クライアントにデータオブジェクトを送出しなければならないか否か
・この提供サーバのデータオブジェクト記述のリスト
・提供サーバにより可能とされる残りの利用可能な接続
・サイトの信頼性（転送成功率％）
【００６０】
データオブジェクト記述のテーブルには、データオブジェクト記述２２のコレクションが含まれる。これらは提供サーバ１２によりアップロードされる。データオブジェクトが追加されると、新たなデータオブジェクト記述がアップロードされる。データオブジェクトが除去されると、既存のデータオブジェクト記述が除去されるか、あるいは除去のためのマークが付される。好ましい実施例において、このテーブルのエントリには、以下のフィールドが含まれる。
・ファイル名
・メタデータ（オーディオの例では、楽曲名、アーティスト名、楽曲記述）
・データオブジェクトのフィンガプリント
・サイズ（バイト）
・品質格付け（オーディオの例では、符号化ビットレート及びサンプリング周波数）
・提供サーバ記述の記録へのリンク
【００６１】
実行プロセス
５つの異なる実行プロセスがシステムによって実行される。すなわち、データオブジェクトの追加、データオブジェクトの除去、検索要求、提供サーバの接続、提供サーバの切断である。
【００６２】
データオブジェクトの追加
図３に示すような一実施例において、提供サーバ上に新たなデータオブジェクトを作成する場合、又は新たなデータオブジェクトをインターネットからダウンロードする場合、又はログインプロセス中にデータオブジェクトコレクションを初期スキャンする際に、以下のプロセスが行われる。
ａ）データオブジェクトのフィンガプリントを計算する。
ｂ）データオブジェクトに対して、名称、ソース名、サイズ、品質格付けを与え、データオブジェクト記述を形成する。
ｃ）データオブジェクト記述を検索エンジンのゲートウェイにアップロードして、検索エンジンインデックスビルダに送る。
ｄ）検索エンジンインデックスビルダは、新たなデータオブジェクト記述のエントリを検索エンジンインデックス内に生成する。
ｅ）検索エンジンインデックスビルダは、提供サーバ記述のエントリを更新して、この提供サーバが新たなデータオブジェクト記述のエントリを反映できるようにする。
【００６３】
データオブジェクトの除去
一実施例において、既存のデータオブジェクトを除去する場合、以下のことが行われる。
ａ）データオブジェクトのフィンガプリントを検索する。
ｂ）データオブジェクトのフィンガプリントを検索エンジンゲートウェイに送信して、検索エンジンインデックスビルダに送る。
ｃ）検索エンジンインデックスビルダは、その提供サーバについてのデータオブジェクト記述のエントリを除去する。
ｄ）検索エンジンインデックスビルダは、提供サーバ記述のエントリを更新して、その提供サーバがデータオブジェクト記述の除去を反映できるようにする。
【００６４】
検索要求
図４に示すような一実施例において、受取クライアント１６により検索要求が生成された場合、以下のことが行われる。
ａ）検索要求を検索エンジンにアップロードする。
ｂ）検索エンジンは、データオブジェクト記述のテーブルの名称コラムをサーチして、データオブジェクト名に一致するものを全て探す。
ｃ）検索エンジンは、提供サーバの帯域幅制限及び最低品質格付け制限を用いて、得られるデータオブジェクト記述のリストを取り除く。
ｄ）返信されるデータオブジェクト記述の数がデータオブジェクト記述の最大制限数を上回るときには、常に、検索を終了して、それ以上データオブジェクト記述の検索は行わない。
ｅ）得られたデータオブジェクト記述とそれに関連するサーバ記述のリストを受取クライアントに送る。
【００６５】
提供サーバの接続
一実施例において、提供サーバが最初にリアルタイム検索エンジンに接続するとき、以下のことが行われる。
ａ）提供サーバについての提供サーバ記述の記録を生成する。
ｂ）提供サーバのデータオブジェクトコレクション内の全てのデータオブジェクトについてのデータオブジェクト記述を検索エンジンゲートウェイにアップロードして、検索エンジンインデックスビルダに送る。
ｃ）検索エンジンインデックスビルダは、アップロードされた各データオブジェクト記述をデータオブジェクトの追加プロセスとして処理する。
【００６６】
提供サーバの切断
一実施例において、提供サーバがリアルタイム検索エンジンから切断されるときに、以下のことが行われる。
ａ）検索エンジンインデックスビルダは、データオブジェクト除去プロセスと同様に、この提供サーバに関する全てのデータオブジェクト記述を除去する。
ｂ）検索エンジンインデックスビルダは、提供サーバ記述の記録を削除するか、あるいは削除マークを付す。
【００６７】
他の実施例
一実施例において、データオブジェクトはオーディオファイルであり、データオブジェクト記述は、ファイル名、オーディオファイル自体から得られるビットレート、サンプリング周波数、サイズからなる。この実施例では、好ましくは、受取クライアント１６は、オーディオファイルを再生するためのオーディオプレーヤを備えている。また、提供サーバは、ＣＤ又は他のオーディオメディアソースからオーディオファイルを構築する機構を有し、新たに作成されるオーディオファイルをデータオブジェクトコレクションに保管する。
【００６８】
他の実施例において、データオブジェクトは画像及びビデオファイルであり、データオブジェクト記述は、ファイル名、ｊｐｇファイル自体から得られる圧縮の詳細及びその他の情報に加えて、画像のショート記述からなる。この実施例では、好ましくは、受取クライアント１６は、画像又はビデオファイルを表示する手段を備え、提供サーバ１２は、写真又は他の画像ソースから画像又はビデオファイルを作成する手段を備えている。
【００６９】
更に他の実施例において、データオブジェクトは、テキスト、オーディオ、画像、ビデオデータオブジェクトであってもよい。フォーマットの例として、ＨＴＭＬ、テキスト、ＭＰ３、オーディオ、ＪＰＥＧ静止画、ＭＰＥＧビデオデータがある。各種類のデータオブジェクトは、名称や上述の他の属性だけではなく、種類によっても区別することができる。
【００７０】
新たな画像ソース、画像圧縮及び記憶機構が使用可能となれば、本発明の趣旨を逸脱しない範囲で、これらのプロトコルや記憶形式に対するデータオブジェクトの作成方法を、受取クライアント１６及び提供サーバ１２に追加することができる。
【図面の簡単な説明】
【図１】
本発明を適用したリアルタイム検索システムの具体的な構成を示すブロック図である。
【図２】
検索エンジン、インデックスビルダ及びゲートウェイコンポーネントを有するリアルタイム検索エンジンの具体的な構成を示すブロック図である。
【図３】
インターネットから新たなデータオブジェクトをダウンロードするとき又は他の方法で提供サーバに追加するとき、あるいは、ログインプロセス中にデータオブジェクトのコレクションを初期スキャンする際の処理を説明するためのフローチャートである。
【図４】
受取クライアントにより生成される検索要求の一実施例のフローチャートである。
【図１】
2004502987.tif 000003
【図２】
2004502987.tif 000004
【図３】
2004502987.tif 000005
【図４】
2004502987.tif 000006
【国際公開パンフレット】
2004502987.tif 000007
2004502987.tif 000008
2004502987.tif 000009
2004502987.tif 000010
2004502987.tif 000011
2004502987.tif 000012
2004502987.tif 000013
2004502987.tif 000014
2004502987.tif 000015
2004502987.tif 000016
2004502987.tif 000017
2004502987.tif 000018
2004502987.tif 000019
2004502987.tif 000020
2004502987.tif 000021
2004502987.tif 000022
2004502987.tif 000023
2004502987.tif 000024
2004502987.tif 000025
2004502987.tif 000026
2004502987.tif 000027
2004502987.tif 000028
2004502987.tif 000029