【手続補正書】
【提出日】平成21年11月30日(2009.11.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
検索可能なデータサービスにウェブサービスインターフェースを提供するウェブサービスプラットフォームを実装する１つまたは複数のコンピュータデバイスであって、前記ウェブサービスプラットフォームは、前記ウェブサービスインターフェ−スに従って、クライアントアプリケーションからサービス要求を受信するように構成され、前記サービス要求はクエリ要求とストレージ要求を備え、前記ウェブサービスインターフェースは前記クエリ要求及び前記ストレージ要求を送信するために複数のクライアントアプリケーションに対し共通のメッセージのエンドポイントを提供する、１つまたは複数のコンピュータデバイスと、
前記検索可能なデータサービスに関与するように構成された複数のノードを実装するような複数のコンピュータデバイスと、
を具備し、前記複数のノードを実装することによって、
前記クライアントアプリケーションで使用される複数の独立した複数のデータストアに関する検索可能な各インデックスにおける要求を格納し、前記検索可能なインデックスは前記複数のノード上にあり、前記データストアはネットワーク上にある１つまたは複数のそれぞれのストレージデバイス上に存在し、かつ前記検索可能なデータサービスに関与するように構成された前記複数のノードを実装する前記１つまたは複数のコンピュータデバイスから離れており、それぞれの検索可能なインデックスは、各検索可能なインデックスが前記複数の独立したデータストアのうちのたった１つの完全なインデックスを提供できるように、前記複数の独立したデータストアのうち特定の１つに関する検索可能なデータサービスオブジェクトを格納し、それぞれの検索可能なデータサービスオブジェクトは特定のデータストアにおける特定のエンティティの２つ以上の属性を指定し、前記属性は前記特定のデータストアにおける前記特定のエンティティを配置する固有のエンティティ識別子を有し、
前記検索可能なインデックスのうちの１つを特定する受信したクエリ要求を満たす前記検索可能なインデックスから、１つまたは複数の検索可能なデータサービスオブジェクトのセットを配置し、
前記ウェブサービスインターフェースに従って、前記クエリ要求を満たす前記１つまたは複数の検索可能なデータサービスオブジェクトのセットから、前記クライアントアプリケーションに対して少なくとも１つの前記エンティティ識別子を返す、
ことを特徴とするシステム。
【請求項２】
前記複数のノードは、
前記検索可能なインデックスを持続的に保存するように構成される１つまたは複数のストレージノードと、
前回のクエリ要求への応答のローカルクエリキャッシュを維持するようにそれぞれ構成された１つまたは複数のクエリノードと、
１つまたは複数のコーディネータノードと、
から構成され、それぞれのコーディネータノードは、
前記ウェブサービスプラットフォームからのサービス要求を受信し、
各ストレージ要求を１つまたは複数の前記ストレージノードに転送し、
各クエリ要求を１つまたは複数の前記クエリノード転送する、
ように構成されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記１つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定された検索可能なデータサービスオブジェクトを前記検索可能なインデックスに加える
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項４】
前記１つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定されるような特定の前記検索可能なインデックスに保存される検索可能なデータサービスオブジェクトを修正する
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項５】
前記１つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定されるような前記検索可能なインデックスから検索可能なデータサービスオブジェクトの少なくとも一部を削除する
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項６】
前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
前記ローカルクエリキャッシュから前記クエリ要求を満たすことが出来るかどうかを判断するために、前記クエリノード上の前記ローカルクエリキャッシュにアクセスし、
前記ローカルクエリキャッシュから前記クエリ要求を満たすことができる場合、前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに、前記クエリ要求を満たす前記ローカルクエリキャッシュからの１つまたは複数の検索可能なデータサービスオブジェクトのセットから少なくとも識別子を返し、
前記ローカルクエリキャッシュから前記クエリ要求が満たされない場合には、前記クエリ要求を１つまたは複数の前記ストレージノードに転送する
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項７】
前記１つまたは複数のストレージノードのそれぞれは、
クエリノードからクエリ要求を受信し、
前記クエリ要求を満たす特定の検索可能なインデックスに、１つまたは複数の検索可能なデータサービスオブジェクトのセットを配置するために、前記ストレージノードによって持続的に保存される前記検索可能なインデックスのパーティションを検索し、
前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに前記クエリ要求を満たす１つまたは複数の検索可能なデータサービスオブジェクトの前記セットから少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項６に記載のシステム。
【請求項８】
前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
前記検索可能なインデックスの異なるパーティションであって、前記クエリ要求の範囲内にある、特定の検索可能なインデックスの異なるパーティションを、それぞれ持続的に保存する、２つ以上の前記ストレージノードに前記クエリ要求を転送し、
前記クエリ要求が転送された前記２つ以上のストレージノードのそれぞれからの前記クエリ要求を満たす前記特定の検索可能なインデックスから、検索可能なデータサービスオブジェクトの異なるセットを受信し、
検索可能なデータサービスオブジェクトの前記異なる複数のセットをマージし、
前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに検索可能なデータサービスオブジェクトの前記マージされたセットから少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項９】
前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
１つまたは複数の前記ストレージノードに前記クエリ要求を転送し、
前記クエリ要求が転送された１つまたは複数のストレージノードのうちの少なくとも１つからの前記クエリ要求を満たす特定の検索可能なインデックスから検索可能なデータサービスオブジェクトを受信し、
前記クエリ要求におけるソート仕様に従い、前記受信した検索可能なデータサービスオブジェクトをソートし、
前記ウェブサービスインターフェースとソートされた順序に従い、前記ソートされた検索可能なデータサービスオブジェクトから前記クライアントアプリケーションに少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項２に記載のシステム。
【請求項１０】
前記複数のノードは２つ以上のストレージノードを備え、それぞれが
特定の検索可能なインデックスのパーティションを持続的に保存し、
２つ以上の新しいパーティションであって、それぞれが、前記検索可能なインデックスに保存された前記検索可能なデータサービスオブジェクトの異なるサブセットを含む、２つ以上の新しいパーティションを前記ストレージノード上に生成するために前記パーティションを再区分し、
前記２つ以上の新しいパーティションのうちの１つを自ら受信する別のストレージノードを配置するため、前記ストレージノードのその他と通信し、
前記２つ以上の新しいパーティションのうちの１つを、前記他のストレージノードに移動するために、前記他のストレージノードと協力する
ように構成されることを特徴とする請求項１に記載のシステム。
【請求項１１】
前記複数のノードは、２つ以上のストレージノードを備え、それぞれが、
特定の検索可能なインデックスのパーティションを持続的に保存し、
前記パーティションの複製を自ら受信するもう１つのストレージノードを配置するため、１つまたは複数の他の前記ストレージノードと通信し、
前記他のストレージノードに前記パーティションを複製するために、前記他のストレージノードと協力する
ように構成されることを特徴とする請求項１に記載のシステム。
【請求項１２】
前記複数のノードが２つ以上のストレージノードを備え、それぞれが
特定の検索可能なインデックスのパーティションを持続的に保存し、
アンチエントロピープロトコルに従い、前記パーティションを別のストレージノードに複製し、
前記他のストレージノードに前記パーティションの前記複製を更新するための、ゴシッププロトコルに従い、前記他のストレージノードに前記複製されたアプリケーションに対する次のストレージ要求を通信する
ように構成されることを特徴とする請求項１に記載のシステム。
【請求項１３】
各クエリ要求は、
前記検索可能なデータサービスにおける特定の検索可能なインデックスを識別するバケット識別子であって、バケットが前記検索可能なデータサービスにするクエリ要求の範囲を確定する、バケット識別子と、
前記クエリ式を満たす検索可能なデータサービスオブジェクトを位置付けるため、前記バケット識別子によって識別される前記検索可能なインデックスの特定された属性に適応される１つまたは複数の検索基準を特定する、クエリ式と
を含むことを特徴とする請求項１に記載のシステム。
【請求項１４】
各クエリ要求は、前記検索可能なデータサービスに対し、特定の加入者を個別に識別する加入者識別子をさらに含み、各加入者識別子が前記検索可能なデータサービスの１つまたは複数のバケット識別子と関連し、各バケット識別子が正確に１人の加入者と関連することを特徴とする請求項１３に記載のシステム。
【請求項１５】
クエリ式は、
前記特定の検索可能なインデックスの検索可能なデータサービスオブジェクトの１つまたは複数の以上の属性と、
前記特定の検索可能なインデックスの前記クエリ式を満たす検索可能なデータサービスオブジェクトのセットを位置付けるため、前記クエリ式の前記１つ以上の属性に適応される１つまたは複数の演算子と、
を含むことを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記複数のノードは、２つ以上のデータセンタの間で分散されることを特徴とする請求項１に記載のシステム。
【請求項１７】
前記複数のノードは複数のストレージを備え、前記複数のストレージノードは２つ以上のデータセンタ間で分散され、各データセンタは２つ以上の前記複数のストレージノードを備え、
前記データセンタにおいて前記ストレージノードの少なくとも２つが特定の検索可能なインデックスのパーティションの複製を持続的に保存し、
少なくとも１つの他のデータセンタにおいて少なくとも２つの他のストレージノードが前記特定の検索可能なインデックスの前記パーティションの複製を持続的に保存することを特徴とする請求項１に記載のシステム。
【請求項１８】
前記複数のノードのそれぞれは、ゴシッププロトコルに従い前記複数のノードのその他に検索可能なデータサービス情報を伝播するように構成されることを特徴とする請求項１に記載のシステム。
【請求項１９】
ウェブサービスインターフェース上の複数のクライアントアプリケーションから検索可能なデータサービスへのサービス要求を受信するステップであって、前記サービス要求はクエリ要求及びストレージ要求を備え、当該ステップは前記クエリ要求及び前記ストレージ要求を送信するために前記ウェブサービスインターフェースによって提供される共通のメッセージのエンドポイントで前記クエリ要求及び前記ストレージ要求を受信するステップをさらに含む、サービス要求を受信するステップと、
前記ウェブサービスインターフェースから、前記検索可能なデータサービスに関与するように構成される複数のノードのうちの１つに、各サービス要求を転送するステップと、
前記クライアントアプリケーションによって使用される複数の独立したデータストアに関する、検索可能なインデックスにある前記ストレージ要求で指定された検索可能なデータサービスオブジェクトを保存するために、前記複数のノード上で受信したストレージ要求を処理するステップと、
前記クエリ要求を満たす前記検索可能なインデックスから、１つまたは複数の検索可能なサービスオブェクトのセットを配置するため、前記複数のノード上の各受信した前記クエリ要求を処理するステップであって、前記受信したクエリ要求は前記検索可能なインデックスのうち１つを指定する、ステップと、
前記ウェブサービスインターフェースに従って、前記クエリ要求を満たす１つまたは複数の検索可能なデータサービスオブジェクトのセットから、少なくとも前記エンティティ識別子を前記クライアントアプリケーションへ返すステップと、
から成り、
前記検索可能なインデックスは前記複数のノード上にあり、前記データストアはネットワーク上の１つまたは複数のストレージデバイスのそれぞれに存在し、且つ前記検索可能なデータサービスに関与するように構成された前記複数のノードを実装する１つまたは複数のコンピュータデバイスからは離れており、各々の検索可能なインデックスが前記独立したデータストアのうちの１つのみに関する完全なインデックスを提供できるように、各検索可能なインデックスは前記複数の独立したデータストアのうち特定の１つに関する検索可能なデータサービスオブジェクトを格納し、各々の検索可能なデータサービスオブジェクトは、特定のデータストアにおける特定のエンティティの２つ以上の属性を特定し、前記属性は前記データストアにおける前記特定のエンティティを配置するための固有のエンティティ識別子を含むことを特徴とする方法。