(57)【要約】  カジュアルサーバネットワーク内の分散検索が提供される。まず、発信元サーバが、発信元サーバに関連する情報によって第１の要求が対処され得ないと判定する。次いで、発信元サーバが、第１の要求を、分散要求リングにポストする。次に、分散要求リングの内のリモートサーバが、第１の要求を受け取る。次いで、リモートサーバが、第１の要求を満たし得るリモートサーバに関連するデータストア上の現在のデータを求めて問い合わせする。次に、リモートサーバが、データストア内に外部参照を書き込む。外部参照は、発信元サーバが現在のデータを要求したことを示す。次に、発信元サーバが、リモートサーバから第１の要求への応答を受信する。応答は、現在のデータを含んでいる。
2010528350.tif 000002
【特許請求の範囲】
【請求項１】
分散カジュアル検索を提供するための方法であって、
発信元サーバ（１０５）で、前記発信元サーバに関連する情報によって第１の要求が遂行され得ないと判定するステップ（２１５）と、
前記発信元サーバ（１０５）から、分散要求リング（１２０）に前記第１の要求をポストするステップと、
前記分散要求リング（１２０）内のリモートサーバ（１２５）で、前記第１の要求を受け取るステップ（２２５）と、
前記リモートサーバ（１２５）によって、前記第１の要求を満たす前記リモートサーバ（１２５）に関連するデータストア（１３０）内の現在のデータを求めて問い合わせるステップ（２３０）と、
前記リモートサーバ（１２５）で、前記データストア（１３０）内に外部参照を書き込むステップ（２３５）であって、前記外部参照は、前記発信元サーバ（１０５）が前記現在のデータを要求したことを示す、ステップと、
前記発信元サーバ（１０５）で、前記リモートサーバ（１２５）から前記第１の要求への応答を受け取るステップ（２４０）であって、前記応答は前記現在のデータを含む、ステップとを備えることを特徴とする方法。
【請求項２】
前記発信元サーバ（１０５）で、第１のクライアント（１１０）から前記第１の要求を受け取るステップ（２１０）をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記発信元サーバ（１０５）で、前記第１の要求への前記応答を保存するステップ（２４５）をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記発信元サーバ（１０５）で、前記第１の要求への前記応答を保存するステップ（２４５）と、
所定の期間の後、またはブール述語を満たした後に、前記保存された応答を廃棄するステップとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記発信元サーバ（１０５）で、前記第１の要求への前記応答を保存するステップ（２４５）と、
前記発信元サーバ（１０５）で、第２のクライアント（１３５）から第２の要求を受け取る（２５５）ステップと、
前記発信元サーバ（１０５）で、前記第１の要求への前記保存された応答によって第２の要求が満たされると判定するステップ（２６０）とをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
第１のクライアント（１１０）に前記第１の要求への前記応答を送信するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記リモートサーバ（１２５）で、前記現在のデータを更新するコマンドを受け取るステップ（２６５）であって、前記コマンドは、前記リモートサーバに関連する前記現在のデータを置き換えるための最新のデータを含む、ステップと、
前記リモートサーバ（１２５）で、前記外部参照が前記現在のデータに関連付けられると判定するステップ（２７０）と、
前記外部参照が前記現在のデータに関連付けられるとの判定に応答して、前記発信元サーバ（１０５）に前記最新のデータを送信するステップ（２７５）とをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記発信元サーバ（１０５）から前記分散要求リング（１２０）に前記第１の要求をポストするステップ（２２０）は、少なくとも１つの他のサーバを備える前記分散要求リング（１２０）にポストするステップを備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記発信元サーバ（１０５）から前記分散要求リング（１２０）に前記第１の要求をポストするステップ（２２０）は、前記発信元サーバ（１０５）から前記分散要求リング（１２０）に前記第１の要求をポストするステップ（２２０）を備え、前記発信元サーバ（１０５）は前記分散要求リング（１２０）内の他のサーバのアイデンティティを知らないことを特徴とする請求項１に記載の方法。
【請求項１０】
前記発信元サーバ（１０５）から前記分散要求リング（１２０）に前記第１の要求をポストするステップ（２２０）は、前記第１の要求を表しており、前記分散要求リング（１２０）内の少なくとも１つの他のサーバのオペレーティングシステム（ＯＳ）（３０５）のアプリケーションプログラムインターフェース（ＡＰＩ）、および前記リモートサーバ（１２５）のオペレーティングシステム（ＯＳ）（３０５）のアプリケーションプログラムインターフェース（ＡＰＩ）で受け取られるように構成されている情報を前記分散要求リング（１２０）にポストするステップ（２２０）を備えることを特徴とする請求項１に記載の方法。
【請求項１１】
前記外部参照を書き込むステップ（２３５）は、前記発信元サーバ（１０５）を識別する前記外部参照を書き込むステップ（２３５）を備えることを特徴とする請求項１に記載の方法。
【請求項１２】
分散カジュアル検索を提供するためのシステムであって、
記憶装置（３０４、３０６、３０７、３０９、３１０）と、
前記記憶装置（３０４、３０６、３０７、３０９、３１０）に結合された処理装置（３０２）と
を備える発信元サーバ（１０５）を備え、前記処理装置（３０２）は、
前記発信元サーバ（１０５）に関連する情報によって第１の要求が遂行され得ないと判定し（２１５）、
分散要求リング（１２０）に前記第１の要求をポストし（２２０）、
リモートサーバ（１２５）から、現在のデータを含む前記第１の要求への応答を受け取り（２４０）、
前記発信元サーバ（１０５）で、前記第１の要求への前記応答を保存し（２４５）、
第２のクライアント（１３５）から第２の要求を受け取り（２５５）、
前記第１の要求への前記保存された応答によって前記第２の要求が遂行され得ると判定する（２６０）ように動作可能であることを特徴とするシステム。
【請求項１３】
前記処理装置（３０２）がさらに、第１のクライアント（１１０）から前記第１の要求を受け取る（２１０）ように動作可能であることを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記処理装置（３０２）はさらに、第１のクライアント（１１０）に前記第１の要求への前記応答を送信する（２５０）ように動作可能であることを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記処理装置（３０２）はさらに、前記第２のクライアント（１３５）に前記第２の要求への前記応答を送信するように動作可能であることを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記処理装置（３０２）がポストする（２２０）ように動作可能であることは、前記処理装置（３０２）が、少なくとも１つの他のサーバを備える前記分散要求リング（１２０）にポスト（２２０）するように動作可能であることを備えることを特徴とする請求項１２に記載のシステム。
【請求項１７】
前記処理装置（３０２）がポストする（２２０）ように動作可能であることは、前記処理装置（３０２）が、前記分散要求リング（１２０）に前記第１の要求をポストする（２２０）ように動作可能であることを備え、前記発信元サーバ（１０５）は、前記分散要求リング（１２０）内の他のサーバのアイデンティティを知らないことを特徴とする請求項１２に記載のシステム。
【請求項１８】
前記処理装置（３０２）がポストする（２２０）ように動作可能であることは、前記処理装置（３０２）が、前記第１の要求を表しており、前記分散要求リング（１２０）内の少なくとも１つの他のサーバのオペレーティングシステム（ＯＳ）（３０５）のアプリケーションプログラムインターフェース（ＡＰＩ）、およびリモートサーバ（１２５）のオペレーティングシステム（ＯＳ）（３０５）のアプリケーションプログラムインターフェース（ＡＰＩ）で受け取られるように構成されている情報を前記分散要求リング（１２０）にポストする（２２０）ように動作可能であることを特徴とする請求項１２に記載のシステム。
【請求項１９】
実行されるとき、分散カジュアル検索を提供するための方法を実施する命令のセットを格納するコンピュータ読取り可能媒体であって、前記命令のセットによって実行される前記方法は、
分散要求リング（１２０）内のリモートサーバ（１２５）で第１の要求を受け取るステップ（２２５）と、
前記リモートサーバ（１２５）によって、前記第１の要求を満たす前記リモートサーバ（１２５）に関連するデータストア（１３０）上の現在のデータを求めて問い合わせるステップ（２３０）と、
前記リモートサーバ（１２５）によって、前記データストア（１３０）内に外部参照を書き込むステップ（２３５）であって、前記外部参照は、発信元サーバ（１０５）が前記現在のデータを要求したことを示す、ステップと、
前記リモートサーバ（１２５）で、前記現在のデータを更新するコマンドを受け取るステップ（２６５）であって、前記コマンドは、前記リモートサーバに関連する前記現在のデータを置き換えるための最新のデータを含む、ステップと、
前記リモートサーバ（１２５）で、前記外部参照が前記現在のデータに関連すると判定するステップ（２７０）と、
前記外部参照が前記現在のデータに関連するとの判定に応答して、前記発信元サーバ（１０５）に前記最新のデータを送信するステップ（２７５）とを備えることを特徴とするコンピュータ読取り可能媒体。
【請求項２０】
前記外部参照を書き込むステップ（２３５）は、前記発信元サーバ（１０５）を識別する前記外部参照を書き込むステップ（２３５）を備えることを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
従来のシステムでは、ユーザは、求められているデータがどのサーバに常駐しているか知らないでデータを探す場合、せいぜい所与のネットワーク内のすべてのサーバの検索を試みることしかできない。従来のシステムでは、データ要求がネットワークにポストされ、ネットワーク内で要求を遂行可能なサーバが要求を遂行できるように、サーバがネットワークに参加することはできない。換言すると、従来のシステムは、データのローカリティを知らずにデータを取り扱うことはできない。
【発明の概要】
【課題を解決するための手段】
【０００２】
この要約は、発明を実施するための形態において下記にさらに述べられる選択された概念を簡略化された形で述べるために提供される。この要約は、特許請求された主題の主な特徴または本質的な特徴を識別することを意図していない。またこの要約は、特許請求された主題の範囲を限定するために用いられることも意図していない。
【０００３】
カジュアルサーバネットワーク内の分散検索が提供され得る。まず、発信元サーバで、発信元サーバに関連する情報によって第１の要求が遂行され得ないと判定される。次いで、発信元サーバから第１の要求が、分散要求リングにポストされる。次に、分散要求リング内のリモートサーバが、第１の要求を受け取る。次いで、リモートサーバは、第１の要求を満たすことができる、リモートサーバに関連するデータストア内の現在のデータを求めて問い合わせる。次に、リモートサーバは、データストア内に外部参照を書き込む。外部参照は、発信元サーバが現在のデータを要求したことを示してもよい。次に、発信元サーバが、リモートサーバから、第１の要求への応答を受け取る。応答は、現在のデータを含んでもよい。
【０００４】
上記の概説と下記の詳細な説明の両方は、例を提供しており、説明するためのものにすぎない。したがって、上記の概説と下記の詳細な説明は、限定的なものと見なすべきでない。さらに、本明細書に述べられたものに加えて、特徴または変形が提供されてもよい。たとえば、実施形態は、詳細な説明に述べられた様々な特徴の組合せおよびサブ・コンビネーションを対象としてもよい。
【０００５】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明の様々な実施形態を例示する。
【図面の簡単な説明】
【０００６】
【図１】動作環境のブロック図である。
【図２】分散カジュアル検索を提供するための方法のフローチャートである。
【図３】コンピューティング装置を含むシステムのブロック図である。
【発明を実施するための形態】
【０００７】
下記の詳細な説明では、添付の図面を参照する。同じまたは類似の要素に言及する図面および下記の説明では、可能な限り同じ参照番号を使用する。本発明の実施形態について述べるが、修正、改訂および他の実装形態が可能である。たとえば、図面に示された各構成要素を置換、追加または修正してもよく、本明細書に述べる方法は、開示された方法に対して置換、再順序付け、または段階を追加することによって修正することができる。したがって、下記の詳細な説明は、本明細書を限定するものではなく、本発明の適切な範囲は、添付の特許請求の範囲によって定義される。
【０００８】
カジュアルサーバネットワーク内の分散検索が提供される。本発明の実施形態に従って、サーバは、データ要求がカジュアルネットワークにポストされ、要求を遂行することができるサーバがそうできるように、カジュアルネットワークに参加することができる。たとえば、ユーザは、データのローカリティを知らずにデータを取り扱うことができる。本発明の実施形態は、この「分散性」のために構築されることも、されないこともあるサーバが、分散されたやり方で働くことを可能にする。さらに、データへの更新の伝播を可能にするトラックバック機構が提供される。
【０００９】
図１は、カジュアルネットワーク１００を示している。図１に示されるように、カジュアルネットワーク１００は、発信元サーバ１０５と、第１のクライアント１１０と、発信元データストア１１５と、分散要求リング１２０と、リモートサーバ１２５と、リモートデータストア１３０と、第２のクライアント１３５とを含んでいる。たとえば、図３に関して下記に述べられるように、発信元サーバ１０５を実装するために、コンピューティング装置３００が使用されてもよく、他のコンピューティング装置３１８のいずれかが、リモートサーバ１２５を実装するために使用されてもよい。発信元サーバ１０５とリモートサーバ１２５は、直接接続されてもよく、分散要求リング１２０を介して接続される必要はない。上記内容は例であり、任意のプロセッサまたはサーバが使用されてもよい。
【００１０】
図２は、分散カジュアル検索を提供するための本発明の一実施形態による方法２００に関与する一般的な段階を示すフローチャートである。方法２００は、図３に関して以下により詳細に述べられるように、コンピューティング装置３００、および他のコンピューティング装置３１８のいずれかを使用して実行される。方法２００の諸段階を実行するやり方について、下記により詳細に述べる。方法２００は、開始ブロック２０５で開始し、発信元サーバ１０５が、第１のクライアント１１０から第１の要求を受け取る段階２１０に進む。たとえば、第１のクライアント１１０は、発信元サーバ１０５に接続されてもよい。第１のクライアント１１０を使用するユーザは、何らかのデータまたは何らかのサービスを求める要求を提示することができる。したがって、ユーザは、第１の要求を発信元サーバ１０５にポストしてもよい。
【００１１】
方法２００は、発信元サーバ１０５が第１のクライアント１１０から第１の要求を受け取る段階２１０から段階２１５に進む。この段階２１５で、発信元サーバ１０５は、発信元サーバ１０５に関連する情報によって第１の要求が遂行され得ないと判定する。たとえば、発信元サーバ１０５は、それが第１の要求を遂行できるかどうか確かめるために、まず発信元データストア１１５内でローカルにチェックしてもよい。
【００１２】
方法２００は、段階２１５で発信元サーバ１０５が発信元サーバ１０５に関連する情報によって第１の要求が遂行され得ないと判定すると、段階２２０を続行する。この段階２２０で、発信元サーバ１０５は、第１の要求を分散要求リング１２０にポストする。たとえば、分散要求リング１２０は、発信元サーバ１０５および分散要求リング１２０に加えて、少なくとも１つの他のサーバを備えてもよく、このサーバは、分散要求リング１２０内にあると見なされる。分散要求リング１２０内の各サーバは、第１の要求をポストしたサーバ（たとえば発信元サーバ１０５）を除いて、要求をピックアップしてもよい。分散要求リング１２０内の各サーバは、分散要求リング１２０内の他のサーバからアクセス可能である。しかし、分散要求リング１２０内のサーバは、分散要求リング１２０内の他のサーバのアイデンティティを知らないことがある。たとえば、発信元サーバ１０５は、分散要求リング１２０内の他のサーバのアイデンティティを知らないことがある。さらに、第１の要求は、分散要求リング１２０内の少なくとも１つの他のサーバのオペレーティングシステム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）のアプリケーションプログラムインターフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）、およびリモートサーバ１２５のＯＳのＡＰＩで受信されるように構成されてもよい。
【００１３】
段階２２０で発信元サーバ１０５が分散要求リング１２０に第１の要求をポストした後、方法２００は段階２２５に進む。この段階２２５で、分散要求リング１２０内のリモートサーバ１２５が、第１の要求を受け取る。リモートサーバ１２５が第１の要求を受け取る段階２２５から、方法２００は段階２３０に進む。この段階２３０で、リモートサーバ１２５は、第１の要求を満たし得るリモートサーバ１２５に関連するデータストア１３０内の現在のデータを求めて問い合わせる。たとえば、分散要求リング１２０内にあるリモートサーバ１２５は、第１の要求をピックアップしてもよい。受信された第１の要求に対処するために、リモートサーバ１２５は、第１の要求が対処され得るかどうか確かめるためにデータストア１３０に問い合わせてもよい。
【００１４】
段階２３０でリモートサーバ１２５がデータストア１３０内の現在のデータを求めて問い合わせると、方法２００は、段階２３５へと続く。この段階２３５で、リモートサーバ１２５は、データストア１３０内に外部参照を書き込む。外部参照は、現在のデータを要求した発信元サーバ１０５を示してもよい。たとえば、外部参照は、第１の要求が届いたところから発信元サーバ１０５を識別してもよい。外部参照は、第１の要求に対処するために使用されたデータがいつか更新され、または事前定義された期間内に更新される場合に、どの要求元サーバもが更新されるように書き込まれる。さらに、本発明の実施形態では、それは必ずしも更新境界を定義する期間ではない。より正確に述べると、どんな述語をも使用することができる。したがって、データの「所有者」が、更新を伝播すべきかどうか決定することが可能である。換言すると、時間は外部コピーの残存を決定する唯一の要因ではないことがあり、たとえば任意のブール述語が使用されてもよい。
【００１５】
段階２３５でリモートサーバ１２５がデータストア１３０内に外部参照を書き込んだ後、方法２００は、段階２４０に進む。この段階２４０で、発信元サーバ１０５は、リモートサーバ１２５から、第１の要求への応答を受け取る。応答は、第１の要求に応答する現在のデータを含んでもよい。発信元サーバ１０５が第１の要求への応答を受け取る段階２４０から、方法２００は、段階２４５に進む。この段階２４５で、発信元サーバ１０５は、第１の要求への応答を保存する。たとえば、発信元サーバ１０５は、保存された応答を所定期間後に廃棄するように構成されてもよい。
【００１６】
段階２４５で発信元サーバ１０５が第１の要求への応答を保存すると、方法２００は、段階２５０へと続く。この段階２５０で、発信元サーバ１０５は、クライアント１１０に第１の要求への応答を送信する。たとえば、発信元サーバ１０５は、第１のクライアント１１０が第１の要求を発信したので、第１のクライアント１１０に応答を提供してもよい。
【００１７】
段階２５０で発信元サーバ１０５が第１の要求への応答を送信した後、方法２００は、段階２５５に進む。この段階２５５で、発信元サーバ１０５は、第２のクライアント１３５から第２の要求を受け取る。たとえば、第２のクライアント１３５は、発信元サーバ１０５に接続される。第２のクライアント１３５を使用するユーザは、何らかのデータまたは何らかのサービスを求める別の要求を提示することができる。したがって、ユーザは、発信元サーバ１０５に第２の要求をポストしてもよい。
【００１８】
発信元サーバ１０５が第２のクライアント１３５から第２の要求を受け取る段階２５５から、方法２００は、段階２６０に進む。この段階２６０で、発信元サーバ１０５は、第２の要求が第１の要求に対する保存された応答によって遂行され得ると判定する。たとえば、受信された第２の要求に対処するために、発信元サーバ１０５は、第１の要求に関連する現在のデータが第２の要求への対処のために使用され得るかどうか確かめるためにデータストア１１５に問い合わせてもよい。第１の要求に関連する現在のデータは、現在のデータの削除の所定期間が経過していないことがあるので、発信元サーバ１０５内に依然として存在する。あるいは、発信元サーバ１０５は、現在のデータを無期限に保持するように構成されてもよい。
【００１９】
段階２６０で発信元サーバ１０５が、第１の要求への保存された応答によって第２の要求が遂行され得ると判定すると、方法２００は、段階２６５へと続く。この段階２６５で、リモートサーバ１２５は、現在のデータを更新するコマンドを受け取る。コマンドは、リモートサーバ１２５に関連する現在のデータを置き換えるための最新データを含んでもよい。たとえば、リモートサーバ１２５が発信元サーバ１０５に以前に提供した現在のデータは、変化していることがある。したがって、リモートサーバ１２５は、現在のデータを更新するために最新のデータを受け取る。
【００２０】
段階２６５でリモートサーバ１２５が現在のデータを更新するコマンドを受け取った後、方法２００は、段階２７０に進む。この段階２７０で、リモートサーバ１２５は、外部参照が現在のデータに関連すると判定する。たとえば、以前に書き込まれた外部参照は、現在のデータが発信元サーバ１０５に以前に提供されたことを示してもよい。したがって、発信元サーバ１０５は最新のデータを必要とする。
【００２１】
リモートサーバ１２５が、外部参照は現在のデータに関連していると判定する段階２７０から、方法２００は、段階２７５に進む。この段階２７５で、リモートサーバ１２５は、外部参照が現在のデータに関連していると判定することに応答して、発信元サーバ１０５に最新のデータを送信する。段階２７５でリモートサーバ１２５が発信元サーバ１０５に最新のデータを送信すると、次いで、方法２００は、段階２８０で終了する。
【００２２】
本発明に従う一実施形態は、分散カジュアル検索を提供するためのシステムを備えてもよい。このシステムは、記憶装置に結合された記憶装置と処理装置とを備える。処理装置は、発信元サーバで、発信元サーバに関連する情報によって第１の要求が遂行され得ないと判定するように動作可能である。さらに、処理装置は、第１の要求を発信元サーバから分散要求リングにポストし、分散要求リング内のリモートサーバで第１の要求を受け取るように動作可能である。また、処理装置は、リモートサーバによって、第１の要求を満たすリモートサーバに関連するデータストア内の現在のデータを求めて問い合わせるように動作可能である。さらに、処理装置は、リモートサーバによってデータストア内に外部参照を書き込むように動作可能である。外部参照は、発信元サーバが現在のデータを要求したことを示す。さらに、処理装置は、発信元サーバで、リモートサーバから第１の要求への応答を受け取るように動作してもよく、応答は、現在のデータを含む。
【００２３】
本発明に従う別の実施形態は、分散カジュアル検索を提供するためのシステムを備えてもよい。このシステムは、記憶装置に結合された記憶装置と処理装置とを含む。処理装置は、発信元サーバに関連する情報によって第１の要求が遂行され得ないと判定するように動作可能である。さらに、処理装置は、第１の要求を発信元サーバから分散要求リングにポストし、リモートサーバから第１の要求への応答を受け取るように動作可能であり、応答は、現在のデータを含む。さらに、処理装置は、発信元サーバで、第１の要求への応答を保存し、第２のクライアントから第２の要求を受け取り、第１の要求への保存された応答によって第２の要求が遂行され得ると判定するように動作可能である。
【００２４】
さらに、本発明に従う別の実施形態は、分散カジュアル検索を提供するためのシステムを備えてもよい。このシステムは、記憶装置と、記憶装置に結合された処理装置とを備える。処理装置は、分散要求リング内のリモートサーバで第１の要求を受け取り、リモートサーバによって、第１の要求を満たすリモートサーバに関連するデータストア内の現在のデータを求めて問い合わせるように動作可能である。さらに、処理装置は、リモートサーバによってデータストア内に外部参照を書き込むように動作可能である。外部参照は、発信元サーバが現在のデータを要求したことを示す。さらに、処理装置は、リモートサーバで、現在のデータを更新するコマンドを受け取るように動作可能である。コマンドは、リモートサーバに関連する現在のデータを置き換えるための最新のデータを含む。さらに、処理装置は、リモートサーバで、外部参照が現在のデータに関連していると判定し、外部参照が現在のデータに関連していると判定することに応答して、発信元サーバに最新のデータを送信するように動作可能である。
【００２５】
図３は、コンピューティング装置３００を含むシステムのブロック図である。本発明の一実施形態に従って、上記の記憶装置および処理装置は、図３のコンピューティング装置３００など、コンピューティング装置で実装されてもよい。ハードウェア、ソフトウェアまたはファームウェアの任意の適切な組合せが、記憶装置および処理装置を実装するために使用される。たとえば、記憶装置および処理装置は、コンピューティング装置３００、またはコンピューティング装置３００と組み合わせた他のコンピューティング装置３１８のいずれかで実装してもよい。上記のシステム、装置およびプロセッサは例であり、他のシステム、装置およびプロセッサは、本発明の実施形態に従う上記の記憶装置と処理装置とを備えてもよい。
【００２６】
図３を参照すると、本発明の一実施形態に従うシステムが、コンピューティング装置３００など、コンピューティング装置を含んでもよい。基本の構成では、コンピューティング装置３００は、少なくとも１つの処理装置３０２とシステムメモリ３０４とを含んでもよい。コンピューティング装置の構成およびタイプに応じてシステムメモリ３０４は、それだけに限らないが、揮発性（たとえばランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））、不揮発性（たとえば読取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ））、フラッシュメモリまたは任意の組合せを備えてもよい。システムメモリ３０４は、オペレーティングシステム３０５と１つまたは複数のプログラミングモジュール３０６とを含んでもよく、またプログラムデータ３０７を含んでもよい。オペレーティングシステム３０５は、たとえば、コンピューティング装置３００の動作を制御するのに適し得る。一実施形態では、プログラミングモジュール３０６は、たとえば分散カジュアル検索アプリケーション３２０を含んでもよい。さらに、本発明の実施形態は、グラフィックスライブラリ、他のオペレーティングシステムまた他の任意のアプリケーションプログラムと共に実施されてもよく、またどんな特定のアプリケーションまたはシステムにも限定されない。この基本構成は、図３に、破線３０８内のそれらのコンポーネントによって示されている。
【００２７】
コンピューティング装置３００は、追加の特徴または機能性を有してもよい。たとえば、コンピューティング装置３００は、たとえば磁気ディスク、光ディスクまたはテープなど、追加のデータ記憶機構装置（取外し可能および／または取外し不可能）を含むこともできる。こうした追加の記憶装置は、図３に、リムーバブル記憶装置３０９およびノンリムーバブル記憶装置３１０によって示されている。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装された揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体を含んでもよい。システムメモリ３０４、リムーバブル記憶装置３０９およびノンリムーバブル記憶装置３１０はすべて、コンピュータ記憶装置媒体の例（すなわち記憶装置）である。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、電気的消去可能読取り専用メモリ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは情報を格納するために使用することができ、またコンピューティング装置３００によってアクセスすることができる他の任意の媒体が含まれ得る。こうした任意のコンピュータ記憶媒体は、装置３００の一部であり得る。コンピューティング装置３００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など、入力装置３１２を有することもできる。ディスプレイ、スピーカ、プリンタなどの他の出力装置３１４も含まれ得る。上記の装置は例であり、また他の装置が使用されてもよい。
【００２８】
コンピューティング装置３００は、分散コンピューティング環境内のネットワーク、たとえばイントラネットやインターネットを介してなど、装置３００が他のコンピューティング装置３１８と通信することを可能にし得る通信接続３１６を含むこともできる。通信接続３１６は、通信媒体の一例である。通信媒体は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波や他の移送機構などの変調されたデータ信号内の他のデータによって実施されてもよく、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するなどのやり方で１つまたは複数の特性が設定されまたは変更された信号を表し得る。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）、赤外線などの無線媒体、および他の無線媒体が含まれ得る。本明細書で使用される用語コンピュータ読取り可能媒体は、記憶媒体と通信媒体の両方を含んでもよい。
【００２９】
上述されたように、オペレーティングシステム３０５を含めて、複数のプログラムモジュールおよびデータファイルが、システムメモリ３０４に格納されてもよい。処理装置３０２で実行される間、プログラミングモジュール３０６（たとえば分散カジュアル検索アプリケーション３２０）は、たとえば上述された方法２００の１つまたは複数の段階を含むプロセスを実施してもよい。さらに、１つまたは複数の他のコンピューティング装置３１８内の他のプログラミングモジュールが、たとえば上述された方法２００の１つまたは複数の段階を含むプロセスを実施してもよい。上記のプロセスは例であり、処理装置３０２は、他のプロセスを実施してもよい。本発明の実施形態に従って使用され得る他のプログラミングモジュールは、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピュータ支援アプリケーションプログラムなどを含んでもよい。
【００３０】
一般に、本発明の実施形態に従ってプログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、ならびに特定のタスクを実施してもよく、または特定の抽象データ型を実装してもよい他のタイプの構造体を含んでもよい。さらに、本発明の実施形態は、手持ち式装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成で実施されてもよい。本発明の実施形態は、通信網を介してリンクされたリモート処理装置よってタスクが実施される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に置かれてもよい。
【００３１】
さらに、本発明の実施形態は、個別電子素子を備える電気回路、論理ゲートを含むパッケージまたは集積電子チップ、マイクロプロセッサを使用した回路、あるいは電子素子またはマイクロプロセッサを含む単一のチップ内で実施されてもよい。本発明の実施形態は、それだけに限らないが、機械、光、流体および量子技術を含めて、たとえばＡＮＤ、ＯＲおよびＮＯＴなどの論理演算を実施することができる他の技術を使用して実施することもできる。さらに、本発明の実施形態は、汎用コンピュータ、あるいは他の任意の回路またはシステム内で実施されてもよい。
【００３２】
本発明の実施形態は、たとえばコンピュータプロセス（メソッド）、コンピューティングシステム、あるいはコンピュータプログラム製品やコンピュータ読取り可能媒体などの製品として実施されてもよい。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、またコンピュータプロセスを実行するための命令のコンピュータプログラムを符号化するコンピュータ記憶媒体であってもよい。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化する搬送波内の伝搬信号とすることもできる。したがって、本発明は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）で実施されてもよい。換言すると、本発明の実施形態は、命令実行システムによって、またはそれに関連して使用するための媒体で実施されたコンピュータ使用可能またはコンピュータ読取り可能プログラムコードを有するコンピュータ使用可能またはコンピュータ読取り可能記憶媒体内のコンピュータプログラム製品の形を取り得る。コンピュータ使用可能またはコンピュータ読取り可能媒体は、命令実行システム、装置またはデバイスによって、あるいはそれに関連して使用するためのプログラムを含み、格納し、通信し、伝播し、または移送することができる任意の媒体であってもよい。
【００３３】
コンピュータ使用可能またはコンピュータ読取り可能媒体は、たとえば、それだけに限らないが、電子、磁気、光、電磁気、赤外線または半導体システム、装置、デバイスまたは伝播媒体であり得る。より具体的なコンピュータ読取り可能媒体の例（非網羅的リスト）のコンピュータ読取り可能媒体には、下記が含まれ得る：１つまたは複数の電線を有する電気接続、携帯型コンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバおよび携帯型コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）。コンピュータ使用可能またはコンピュータ読取り可能媒体は、プログラムがたとえば紙または他の媒体の光学式走査によって電子的に捕捉され、次いでコンパイルされ解釈され、必要であれば他の適切なやり方で処理され、次いでコンピュータメモリ内に格納され得るので、さらにはプログラムが印刷される紙または別の適切な媒体であり得ることに留意されたい。
【００３４】
本発明の実施形態について、たとえば本発明の実施形態による方法、システムおよびコンピュータプログラム製品のブロック図および／または操作説明図を参照して上記に述べられている。ブロック内に示された機能／行為は、いずれかのフローチャートに示された順序以外で行われてもよい。たとえば、連続して示された２つのブロックは実際、事実上同時に実行されてもよく、あるいはブロックは、関与する機能性／行為に応じて時には逆の順序で実行されることもある。
【００３５】
本発明の特定の実施形態について述べられているが、他の実施形態も存在し得る。さらに、本発明の実施形態は、メモリおよび他の記憶媒体内に格納されたデータに関連付けられるものとして述べられているが、データは、ハードディスク、フロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭのような２次記憶装置、インターネットからの搬送波、あるいはＲＡＭまたはＲＯＭの他の形など、他のタイプのコンピュータ読取り可能媒体内に格納し、またはそこから読み出すこともできる。さらに、開示された方法の段階は、本発明から逸脱せずに、段階の再順序付けおよび／または段階の挿入または削除を含めて任意のやり方で修正され得る。
【００３６】
本明細書に含まれたコードの著作権を含むすべての権利は、本出願人に帰属し、またその所有物である。本出願人は、本明細書に含まれたコードのすべての権利を留保し保有し、他の目的ではなく、付与された特許の複製に関してだけ本資料の複製の許可を与える。
【００３７】
本明細書は例を含むが、本発明の範囲は、添付の特許請求の範囲によって示される。さらに、本明細書は、構造的特徴および／または方法論的行為に特有の言語で述べられているが、請求項の範囲は、上記に述べられた特徴または行為に限定されない。より正確に述べると、上記に述べられた特定の特徴または行為は、本発明の実施形態の例として開示されている。
【図１】
2010528350.tif 000003
【図２】
2010528350.tif 000004
【図３】
2010528350.tif 000005
【国際調査報告】
2010528350.tif 000006
2010528350.tif 000007