(57)【要約】【課題】  ネットワークを介して通信可能な各集合管理装置間で各々管理する集合同士を演算する際に、ネットワーク通信量を抑制する。【解決手段】  演算元集合Ｇｓと演算先集合Ｇｄとの共通集合Ｇｓ∩Ｇｄを演算元サーバ１０が抽出する際に、ネットワーク上で演算元集合Ｇｓの各バイト列の個数｜Ｇｓ｜及び演算先集合Ｇｄの識別子ＩＤｇｄを含むフィルタ情報要求を送信し、演算先集合Ｇｓの各バイト列を表すフィルタ情報を受信するものの、従来とは異なり、共通要素のリストを送受信しない。【選択図】  図１
2005196480.tif 000002
【特許請求の範囲】
【請求項１】
各バイト列を含む第１集合を管理する他の集合管理装置にネットワークを介して接続され、各バイト列を含む第２集合を管理する集合管理装置において、
前記第２集合の各バイト列を表すフィルタ情報を要求するための、前記第１集合の各バイト列の個数及び前記第２集合の識別情報を含むフィルタ情報要求を前記他の集合管理装置から受信する要求受信手段と、
この第２集合の識別情報に基づいて、前記第２集合の各バイト列の個数を得る個数取得手段と、
前記第１及び第２集合のそれぞれの各バイト列の個数に基づいて、前記第１及び第２集合の共通集合を得るときの誤検出確率を満たすように前記フィルタ情報のサイズを決定するサイズ決定手段と、
前記サイズをもつフィルタ情報を前記第２集合の各バイト列に基づいて生成するフィルタ情報生成手段と、
前記生成されたフィルタ情報を前記他の集合管理装置に返信するフィルタ情報返信手段と、
を備えたことを特徴とする集合管理装置。
【請求項２】
請求項１に記載の集合管理装置において、
前記フィルタ情報は、ブルームフィルタであることを特徴とする集合管理装置。
【請求項３】
請求項１に記載の集合管理装置において、
前記フィルタ情報要求は、許容可能な誤検出確率を含んでおり、
前記サイズ決定手段は、前記フィルタ情報要求に含まれた誤検出確率を満たすように前記サイズを決定することを特徴とする集合管理装置。
【請求項４】
各バイト列を含む第１集合を管理する第１の集合管理装置と、前記第１の集合管理装置にネットワークを介して接続され、各バイト列を含む第２集合を管理する第２の集合管理装置とを備えた集合管理システムにおいて、
前記第１の集合管理装置は、
前記第２集合の各バイト列を表すフィルタ情報を要求するための、前記第１集合の各バイト列の個数及び前記第２集合の識別情報を含むフィルタ情報要求を前記第２の集合管理装置に送信する要求送信手段と、
前記第２の集合管理装置から前記フィルタ情報を受信するフィルタ情報受信手段と、
前記受信したフィルタ情報に対して、前記第１集合の各バイト列に対応するか否かを検査し、前記第１集合と前記第２集合との共通部分を抽出する共通部分抽出手段と、
を備え、
前記第２の集合管理装置は、
前記フィルタ情報要求を前記第１の集合管理装置から受信する要求受信手段と、
この第２集合の識別情報に基づいて、前記第２集合の各バイト列の個数を得る個数取得手段と、
前記第１及び第２集合のそれぞれの各バイト列の個数に基づいて、前記第１及び第２集合の共通集合を得るときの誤検出確率を満たすように前記フィルタ情報のサイズを決定するサイズ決定手段と、
前記サイズをもつフィルタ情報を前記第２集合の各バイト列に基づいて生成するフィルタ情報生成手段と、
前記生成されたフィルタ情報を前記第１の集合管理装置に返信するフィルタ情報返信手段と、
を備えたことを特徴とする集合管理システム。
【請求項５】
請求項４に記載の集合管理システムにおいて、
前記第１の集合管理装置は、
前記第２の集合管理装置が有する前記要求受信手段、前記個数取得手段、前記サイズ決定手段、前記フィルタ情報生成手段及び前記フィルタ情報返信手段と同等の各手段を更に備え、
前記第２の集合管理装置は、
前記第１の集合管理装置が有する前記要求受信手段、前記個数取得手段、前記サイズ決定手段、前記フィルタ情報生成手段及び前記フィルタ情報返信手段と同等の各手段を更に備えたことを特徴とする集合管理システム。
【請求項６】
請求項４に記載の集合管理システムにおいて、
前記フィルタ情報は、ブルームフィルタであることを特徴とする集合管理システム。
【請求項７】
請求項４に記載の集合管理システムにおいて、
前記フィルタ情報要求は、許容可能な誤検出確率を含んでおり、
前記サイズ決定手段は、前記フィルタ情報要求に含まれた誤検出確率を満たすように前記サイズを決定することを特徴とする集合管理システム。
【請求項８】
各バイト列を含む第１集合を管理する第１の集合管理装置と、前記第１の集合管理装置にネットワークを介して接続され、各バイト列を含む第２集合を管理する第２の集合管理装置とを備え、前記第１及び第２集合の共通集合を抽出するための共通集合抽出方法において、
前記第１の集合管理装置が、前記第２集合の各バイト列を表すフィルタ情報を要求するための、前記第１集合の各バイト列の個数及び前記第２集合の識別情報を含むフィルタ情報要求を前記第２の集合管理装置に送信する工程と、
前記第２の集合管理装置が、前記フィルタ情報要求を前記第１の集合管理装置から受信する工程と、
前記第２の集合管理装置が、この第２集合の識別情報に基づいて、前記第２集合の各バイト列の個数を得る工程と、
前記第２の集合管理装置が、前記第１及び第２集合のそれぞれの各バイト列の個数に基づいて、前記第１及び第２集合の共通集合を得るときの誤検出確率を満たすように前記フィルタ情報のサイズを決定する工程と、
前記第２の集合管理装置が、前記サイズをもつフィルタ情報を前記第２集合の各バイト列に基づいて生成する工程と、
前記第２の集合管理装置が、前記生成されたフィルタ情報を前記第１の集合管理装置に返信する工程と、
前記第１の集合管理装置が、前記第２の集合管理装置から前記フィルタ情報を受信する工程と、
前記第１の集合管理装置が、前記受信したフィルタ情報に対して、前記第１集合の各バイト列に対応するか否かを検査し、前記第１集合と前記第２集合との共通部分を抽出する共通部分抽出手段と、
を備えたことを特徴とする共通集合抽出方法。
【請求項９】
各バイト列を含む第１集合を管理する他の集合管理装置にネットワークを介して接続され、各バイト列を含む第２集合を管理する集合管理装置のコンピュータに用いられるプログラムにおいて、
前記コンピュータを、
前記第２集合の各バイト列を表すフィルタ情報を要求するための、前記第１集合の各バイト列の個数及び前記第２集合の識別情報を含むフィルタ情報要求を前記他の集合管理装置から受信する要求受信手段、
この第２集合の識別情報に基づいて、前記第２集合の各バイト列の個数を得る個数取得手段、
前記第１及び第２集合のそれぞれの各バイト列の個数に基づいて、前記第１及び第２集合の共通集合を得るときの誤検出確率を満たすように前記フィルタ情報のサイズを決定するサイズ決定手段、
前記サイズをもつフィルタ情報を前記第２集合の各バイト列に基づいて生成するフィルタ情報生成手段、
前記生成されたフィルタ情報を前記他の集合管理装置に返信するフィルタ情報返信手段、
として機能させるためのプログラム。
【請求項１０】
各バイト列を含む複数の演算先集合を個別に管理する複数の演算先集合管理装置にネットワークを介して接続され、各バイト列を含む演算元集合を管理する演算元集合管理装置において、
演算先集合の各バイト列を表すフィルタ情報を要求するための、演算元集合の各バイト列の個数及び演算先集合の識別情報を含むフィルタ情報要求を前記各演算先集合管理装置に並列に送信する並列送信手段と、
前記各演算先集合管理装置から並列にフィルタ情報を受信する並列受信手段と、
前記受信した各フィルタ情報に対して、前記演算元集合の各バイト列に対応するか否かを検査し、前記演算元集合と各演算先集合との個別の共通部分を抽出する第１の共通部分抽出手段と、
前記個別の共通部分の間の更なる共通部分を抽出する第２の共通部分抽出手段と、
を備えたことを特徴とする演算元集合管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、任意の情報が属する複数の集合を管理し、各集合から共通集合を抽出可能な集合管理装置、システム、方法及びプログラムに係り、特に、複数の集合管理装置間のネットワーク通信量を低減し得る集合管理装置、システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の顧客を記述した複数の顧客リスト、各クライアント端末のＩＰアドレスを記述した複数のＩＰアドレスリスト、複数の機器を記述した機器リスト等といった各種のリストが２台以上のサーバ装置に管理される場合がある。この場合、同一の情報を含む各リストを利用する際に、各リストの共通部分を抽出する技術が知られている。
【０００３】
具体的には例えば、あるバイト列がバイト列の集合に含まれるか否かを確率的に検査する方法として、ブルームフィルタを代表とする技術が存在する。ブルームフィルタの場合、バイト列をハッシュ関数にかけた結果を、ある長さのフィルタビット列（以下、単にフィルタともいう）の対応するビットに１を立てる。これをフィルタヘの登録と呼ぶ。このとき、立てられた“１”は、バイト列特有の「痕跡」を表している。ブルームフィルタでは、バイト列の集合に含まれる各バイト列（各要素）をフィルタに登録し、集合の全てのバイト列の痕跡が刻まれたフィルタを生成する。
【０００４】
一方、集合に含まれるか否かが未知のバイト列に関し、同じ方式でフィルタを検査し、「痕跡」に相当する全てのビットが立っているか否かにより、集合に含まれる「可能性が有る」か、「集合には存在しない」かが判別される。
【０００５】
さて、このようなフィルタの特性として、未登録のバイト列であるにも関わらず、そのバイト列に対応する痕跡が存在する場合がある。ブルームフィルタでは、例えば全てのビットが立っている場合に相当する。このように、未登録のバイト列を登録済のバイト列として誤って検出する場合の確率を、誤検出確率と呼ぶ。
【０００６】
この誤検出確率は、フィルタに入力可能なバイト列の個数（要素数）の最大値と、バイト列の長さとにより決定される。逆に、誤検出確率とバイト列の個数の最大値とを定めると、この誤検出確率を満たすフィルタの長さが決定される。
【０００７】
このようなブルームフィルタを利用し、遠隔に配置された複数の装置間で、各装置が管理しているバイト列の集合のうち、両者に共通するバイト列を取得する方法がある。この方法に関し、図９に示すように、演算元サーバ装置ＳＡに管理される演算元集合ＴＡと、演算先サーバ装置ＳＢに管理される演算先集合ＴＢとの共通部分を抽出する例を述べる。
【０００８】
演算元サーバ装置ＳＡは、演算元集合ＴＡに基づいて、演算元集合ＴＡの各バイト列の痕跡を示すフィルタ情報ＦＡを生成し（ＳＴ１）、このフィルタ情報ＦＡを演算先サーバ装置ＳＢに送信する（ＳＴ２）。
【０００９】
演算先サーバ装置ＳＢは、フィルタ情報ＦＡに対して演算先集合ＴＢの各バイト列を検査し、得られた検査結果に基づいて、共通する各バイト列を示すリストＩを生成し（ＳＴ３）、得られたリストＩを演算元サーバ装置ＳＡに送信する（ＳＴ４）。
【００１０】
演算元サーバ装置ＳＡは、このリストＩを検査し（ＳＴ５）、リストＩから演算元集合ＴＡに無いバイト列を排除し、残った各バイト列を共通要素として出力する（ＳＴ６）。これにより、共通要素の抽出が完了する。  
さてここで、フィルタ情報ＦＡの長さは、前述したように、誤検出確率とバイト列の個数の最大値とを定めると、この誤検出確率を満たすように決定される。
【００１１】
一方、演算元サーバ装置ＳＡは、保持する演算元集合ＴＡと、演算先サーバ装置ＳＢの演算先集合ＴＢとの間で共通要素を求める場合、演算先集合ＴＢの要素の数が未知なので、誤検出確率を制御できない。従って、演算元サーバ装置ＳＡは、演算先集合ＴＢのうち、共通する各バイト列を含むリストＩを送信してもらい、誤検出確率を確認する必要がある。
【００１２】
また、以上のような手順において、３つ以上の集合の共通要素を得る際に、通信量を削減する観点から、サーバ装置間の通信を直列化する方式がある（例えば、非特許文献１参照。）。しかしながら、この方式は、受信した要求に含まれる次のサーバ装置の通信終点（ＩＰアドレス等）を盲信した場合、サービス拒否攻撃（Denial of Service Attack）を中継してしまう可能性がある。また、通信の直列化は、高いレイテンシ（遅延時間）に帰結するので、集合の数に比例して望ましくない結果を導く。
【非特許文献１】Ｐ．レイノルズ（P. Reynolds），Ａ．バーダット（A. Vahdat）、“エフィシェント・ピア・トゥー・ピア・キーワード・サーチング（Efficient peer-to-peer keyword searching）”、ミドルウエア２００３（Middleware 2003）又は＜http://issg.cs.duke.edu/search/＞
【非特許文献２】Ｂ．ブルーム（B. Bloom）、“スペース／タイム・トレードオフ・イン・ハッシュ・コーディング・ウィズ・アローワブル・エラーズ（Space / time tradeoff in hash coding with allowable errors）”、コミニュケーションズ・オブ・ザ・エイシーエム（Communications of the ACM）、13(7)、１９７０年、p.422-426
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上説明したように、共通要素抽出方法においては、演算先集合ＴＢの要素の数が未知なので、誤検出確率を制御できない不都合がある。これに伴い、相手側の演算先集合ＴＢ内で共通する各バイト列を送信してもらう必要がある。その結果、相対的にネットワーク上の通信量が増える問題が生じてしまう。
【００１４】
また、３つ以上の集合の共通要素を得る際に、サーバ装置を直列化する必要がある。この直列化は、サービス拒否攻撃を中継する可能性と高いレイテンシとにつながるので、好ましくない。
【００１５】
本発明は上記実情を考慮してなされたもので、ネットワークを介して通信可能な各集合管理装置間で各々管理する集合同士を演算する際に、ネットワーク通信量を抑制し得る集合管理装置、システム、方法及びプログラムを提供することを目的とする。
【００１６】
また、本発明の他の目的は、３台以上の集合管理装置を直列化せずに、３台以上の集合管理装置で各々管理する集合同士の共通集合を抽出し得る演算元集合管理装置を提供することにある。
【課題を解決するための手段】
【００１７】
第１の発明は、各バイト列を含む第１集合を管理する他の集合管理装置にネットワークを介して接続され、各バイト列を含む第２集合を管理する集合管理装置において、前記第２集合の各バイト列を表すフィルタ情報を要求するための、前記第１集合の各バイト列の個数及び前記第２集合の識別情報を含むフィルタ情報要求を前記他の集合管理装置から受信する要求受信手段と、この第２集合の識別情報に基づいて、前記第２集合の各バイト列の個数を得る個数取得手段と、前記第１及び第２集合のそれぞれの各バイト列の個数に基づいて、前記第１及び第２集合の共通集合を得るときの誤検出確率を満たすように前記フィルタ情報のサイズを決定するサイズ決定手段と、前記サイズをもつフィルタ情報を前記第２集合の各バイト列に基づいて生成するフィルタ情報生成手段と、前記生成されたフィルタ情報を前記他の集合管理装置に返信するフィルタ情報返信手段と、を備えた集合管理装置である。
【００１８】
従って、第１の発明によれば、共通集合が抽出される際に、ネットワーク上でフィルタ情報要求やフィルタ情報を送受信するものの、従来とは異なり、共通要素のリストを送受信しない。このため、ネットワークを介して通信可能な各集合管理装置間で各々管理する集合同士を演算する際に、ネットワーク通信量を抑制することができる。また、フィルタ情報生成手段は、各集合の各バイト列の個数が分かっているので、誤検出確率を満たすようにフィルタ情報を生成することができる。
【００１９】
第２の発明は、各バイト列を含む複数の演算先集合を個別に管理する複数の演算先集合管理装置にネットワークを介して接続され、各バイト列を含む演算元集合を管理する演算元集合管理装置において、演算先集合の各バイト列を表すフィルタ情報を要求するための、演算元集合の各バイト列の個数及び演算先集合の識別情報を含むフィルタ情報要求を前記各演算先集合管理装置に並列に送信する並列送信手段と、前記各演算先集合管理装置から並列にフィルタ情報を受信する並列受信手段と、前記受信した各フィルタ情報に対して、前記演算元集合の各バイト列に対応するか否かを検査し、前記演算元集合と各演算先集合との個別の共通部分を抽出する第１の共通部分抽出手段と、前記個別の共通部分の間の更なる共通部分を抽出する第２の共通部分抽出手段と、を備えた演算元集合管理装置である。
【００２０】
従って、第２の発明によれば、３つ以上の集合の共通集合を演算する際に、演算元集合管理装置と他の各集合管理装置との間でフィルタ情報要求やフィルタ情報を並列に送受信するので、３台以上の集合管理装置を直列化せずに、３台以上の集合管理装置で各々管理する集合同士の共通集合を抽出することができる。
【００２１】
なお、以上の各発明は、各装置を個別に「装置」というカテゴリーで表現したが、これに限らず、各装置全体又は各装置個別に「システム」、「方法」、「コンピュータ読取り可能な記憶媒体」又は「プログラム」等といった任意のカテゴリーで表現しても良いことは言うまでもない。
【発明の効果】
【００２２】
以上説明したように本発明によれば、ネットワークを介して通信可能な各集合管理装置間で各々管理する集合同士を演算する際に、ネットワーク通信量を抑制できる。また、３台以上の集合管理装置を直列化せずに、３台以上の集合管理装置で各々管理する集合同士の共通集合を抽出できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の各実施形態について図面を参照しながら説明する。  
（第１の実施形態）
図１は本発明の第１の実施形態に係る集合管理システムの構成を示す模式図である。この集合管理システムは、元集合サーバ（第１の集合管理装置）１０及び先集合サーバ（第２の集合管理装置）２０がネットワークを介して接続されている。なお、元集合サーバ１０及び先集合サーバ２０は、ハードウェア構成とソフトウエア構成との組合せにより実現可能となっている。ソフトウェア構成の部分は、予め各サーバ１０，２０の機能を実現させるためのプログラムがネットワーク又は記憶媒体から各サーバ１０，２０のコンピュータにインストールされて実現される。この各サーバ１０，２０（集合管理装置）がプログラムをインストールしても実現可能なことは以下の各実施形態でも同様である。
【００２４】
元集合サーバ１０は、演算元集合記憶部１１、要求送出部１２、フィルタ受信部１３及び共通集合演算部１４を備えている。  
演算元集合記憶部１１は、要素としての各バイト列を含む演算元集合（第１集合）Ｇｓが当該集合の識別子ＩＤｇｓと関連付けて記憶されるものであり、要求送出部１２及び共通集合演算部１４から読出可能となっている。
【００２５】
要求送出部１２は、何らかの要求入力に従い演算元集合（第１集合）の識別子ＩＤｇｓと演算先集合（第２集合）の識別子ＩＤｇｄとが選択されたとき、演算元集合記憶部１１を参照しながら、演算先集合Ｇｄの各バイト列を表すフィルタ情報を要求するためのフィルタ情報要求を先集合サーバ２０に送信する機能をもっている。
【００２６】
ここで、各識別子ＩＤｇｓ，ＩＤｇｄの選択は、一般的なＧＵＩ等を用いても良いし、別途通信手順を定めても良い。
【００２７】
フィルタ情報要求は、少なくとも演算元集合Ｇｓの各バイト列の個数（以下、要素数ともいう）｜Ｇｓ｜及び演算先集合Ｇｄの識別子ＩＤｇｄを含んでおり、他には例えば、フィルタ情報の生成条件（ハッシュ関数の繰り返し回数ｐ）を含んでもよい。ここでは、フィルタ情報要求はハッシュ関数の繰返し回数ｐを含むものとする。
【００２８】
フィルタ受信部１３は、先集合サーバ２０からフィルタ情報を受信し、このフィルタ情報を共通集合演算部１４に送出する機能をもっている。
【００２９】
共通集合演算部１４は、フィルタ受信部により受信されたフィルタ情報に対して、演算元集合記憶部１１を参照しながら、演算元集合Ｇｓの各バイト列に対応するか否かを検査し、演算元集合Ｇｓと演算先集合Ｇｄとの共通部分（Ｇｓ∩Ｇｄ）を抽出する機能と、得られた共通部分を共通集合として出力する機能とをもっている。
【００３０】
先集合サーバ２０は、演算先集合記憶部２１、要求受信部２２、フィルタ長決定部２３、フィルタ生成部２４、フィルタ送出部２５を備えている。
【００３１】
演算先集合記憶部２１は、要素としての各バイト列を含む演算先集合（第２集合）Ｇｄが当該集合の識別子ＩＤｇｄと関連付けて記憶されるストレージデバイス等であり、フィルタ長決定部２３及びフィルタ生成部２４から読出可能となっている。なお、記憶される集合が１つであり、演算先集合Ｇｄを特定する必要がない場合、演算先集合Ｇｄの識別子ＩＤｇｄを省略しても良い。
【００３２】
要求受信部２２は、フィルタ情報要求を受信するためにネットワーク側からの入力を待ち、先集合サーバ２０宛の入力があり、この入力がフィルタ情報要求であればこれを受信する機能と、受信したフィルタ情報要求から、演算元集合Ｇｓの要素数｜Ｇｓ｜、演算先集合Ｇｄの識別子ＩＤｇｄ及びハッシュ関数の繰返し回数ｐを得る機能と、得られた内容｜Ｇｓ｜，ＩＤｇｄ，ｐをフィルタ長決定部２３に送出する機能とをもっている。
【００３３】
フィルタ長決定部２３は、要求受信部２２から｜Ｇｓ｜，ＩＤｇｄ，ｐを受けると、識別子ＩＤｇｄに基づいて演算先集合記憶部２１から演算先集合Ｇｄの各バイト列の個数（要素数）｜Ｇｄ｜を抽出する機能と、各集合Ｇｓ，Ｇｄの要素数｜Ｇｓ｜，｜Ｇｄ｜に基づいて、誤検出確率ｆ（ＦＲＰ）を満たすようにフィルタ情報のサイズ（以下、フィルタ長Ｌという）を決定する機能とをもっている。
【００３４】
詳しくはフィルタ長決定部２３は、識別子ＩＤｇｄに基づいて得られた｜Ｇｄ｜と｜Ｇｓ｜とを足して各要素数の合計値Ｍ（＝｜Ｇｄ｜＋｜Ｇｓ｜）を得る機能と、この合計値Ｍ及びハッシュ関数繰り返し回数ｐと、予め定められた（フィルタ情報の）ビット比率ｓから得られる誤検出確率ｆとに基づいてフィルタ長Ｌを算出する機能と、得られたフィルタ長Ｌ及びハッシュ関数繰り返し回数ｐをフィルタ生成部２４に送出する機能とをもっている。なお、誤検出確率ｆは、フィルタ情報要求に含められて元集合サーバ１０から指定されてもよい。
【００３５】
ここで、ビット比率ｓは、演算先集合Ｇｄがフィルタ情報に登録された場合における、フィルタ情報の全Ｌビットのうち、値が１となることが期待されるビットの比率である。非特許文献２はｓ＝０．５の時の効率を最大としているので、ここではビット比率ｓ＝０．５に固定した。
【００３６】
フィルタ生成部２４は、フィルタ長決定部２３から受けたフィルタ長Ｌ及びハッシュ関数繰返し回数ｐに基づいて、このフィルタ長Ｌをもつフィルタ情報を、演算先集合記憶部２１内の演算先集合Ｇｄの各バイト列ｅに基づいて生成する機能と、得られたフィルタ情報をフィルタ送出部２５に送出する機能とをもっている。
【００３７】
詳しくはフィルタ情報生成部２４は、図２（ａ）に示すように、初期値０でフィルタ長Ｌをもつフィルタビット列に対し、図２（ｂ）に示すように、各バイト列ｅをハッシュ関数ｈ（ｅ，１）にかけた結果ｉに基づいてｉビット目に１を立てる。これを図２（ｃ）に示すように、各バイト列ｅ毎に最大ｐ個の１を立ててフィルタ情報を生成する。
【００３８】
ここで、フィルタ情報は、演算先集合Ｇｄの各ビット列ｅを表す最大ｐ個のハッシュ値（ｍｏｄ  Ｌ）を多重化した情報である。また、フィルタ情報は、少なくともフィルタ長Ｌを含み、他フィルタの実装により必須となる情報を含む。例えばブルームフィルタの場合、一要素当りに何ビット用いるかを示す、ハッシュ関数繰り返し回数ｐを含む。
【００３９】
ここで、繰り返し回数ｐは、通常、各集合Ｇｓ，Ｇｄの全ての要素数Ｍに従属するパラメータとして定められる。例えば、全ての要素数Ｍ全体を検査した際に一つの誤検出が発生するように誤検出確率ｆ（＝ｓｐ）を定める等の例が考えられる。このような繰り返し回数ｐは、一定の上限と下限（例えば、０．０１＞ｆ＞１．０×１０−６等）を設ける事が望ましい。また、繰り返し回数ｐは、ここではフィルタ情報要求により先集合サーバ１０から与えられたが、これに限らず、フィルタ長決定部２３が保持又は算出してもよい。
【００４０】
フィルタ送出部２５は、フィルタ生成部２４により生成されたフィルタ情報を元集合サーバ１０に返信する機能をもっている。
【００４１】
次に、以上のように構成された集合管理システムによる共通集合抽出方法について図３のシーケンス図を用いて述べる。
【００４２】
元集合サーバ１０においては、要求送出部１２が、何らかの要求入力に従い演算元集合の識別子ＩＤｇｓと演算先集合の識別子ＩＤｇｄとが選択されると、演算元集合記憶部１１から演算元集合Ｇｓの要素数｜Ｇｓ｜を抽出する（ＳＴ１１）。
【００４３】
しかる後、要求送出部１２は、この要素数｜Ｇｓ｜、演算先集合Ｇｄの識別子ＩＤｇｄ及びハッシュ関数繰り返し回数ｐを含むフィルタ情報要求を先集合サーバ２０に送信する（ＳＴ１２）。
【００４４】
先集合サーバ２０においては、要求受信部２２が、フィルタ情報要求を受信するためにネットワーク側からの入力を待ち、先集合サーバ２０宛の入力があり、この入力がフィルタ情報要求であればこれを受信する。また、要求受信部２２は、受信したフィルタ情報要求から、演算元集合Ｇｓの各バイト列の個数｜Ｇｓ｜、演算先集合Ｇｄの識別子ＩＤｇｄ及びハッシュ関数の繰返し回数ｐを得ると、得られた内容｜Ｇｓ｜，ＩＤｇｄ，ｐをフィルタ長決定部２３に送出する。
【００４５】
フィルタ長決定部２３は、要求受信部２２から｜Ｇｓ｜，ＩＤｇｄ，ｐを受けると、識別子ＩＤｇｄに基づいて演算先集合記憶部２１から演算先集合Ｇｄの各バイト列の個数｜Ｇｄ｜を抽出する（ＳＴ１３）。
【００４６】
次に、フィルタ長決定部２３は、各集合Ｇｓ，Ｇｄのそれぞれの要素数｜Ｇｓ｜，｜Ｇｄ｜に基づいて、演算元及び演算先集合Ｇｓ，Ｇｄ間の共通集合を得るときの誤検出確率ｆを制御しつつ、フィルタ長Ｌを決定する（ＳＴ１４）。
【００４７】
具体的にはフィルタ長決定部２３は、フィルタアルゴリズムがブルームフィルタの場合、例えば以下の式（１）〜（４）に従い計算を行う。なお、式（２）は、与えられたｐが所定の誤検出確率ｆを満足するか否かの確認に用いられ、満足しない場合にはビット比率ｓと誤検出確率ｆから新たな繰返し回数ｐを算出可能となっている。また、式（２），式（３）は何れを先に計算しても良い。
【００４８】
ｓ＝０．５    …（１）
ｆ＝ｓｐ      …（２）
Ｍ＝｜Ｇｓ｜＋｜Ｇｄ｜    …（３）
【数１】
2005196480.tif 000003
【００４９】
（４）式の計算後、フィルタ長決定部２３は、得られたフィルタ長Ｌ及びハッシュ関数繰り返し回数ｐをフィルタ生成部２４に送出する。
【００５０】
フィルタ生成部２４は、このフィルタ長Ｌ及びハッシュ関数繰返し回数ｐに基づいて、当該フィルタ長Ｌをもつフィルタ情報を、演算先集合記憶部２１内の演算先集合Ｇｄの各バイト列ｅに基づいて生成する（ＳＴ１５）。
【００５１】
ここで、フィルタ情報は、Ｌビットのフィルタバイト列を０で初期化し、演算先集合Ｇｄの各バイト列を所定の方式に従い、記録する。例えば、ブルームフィルタの場合は以下の通りである。
【００５２】
［１］フィルタ生成部２４は、ハッシュ関数ｈ（ｅ，ｐｉ）＝ｍｄ５（ｅ‖ｐｉ）ｍｏｄ  Ｌを用意する。なお、ｅは演算先集合Ｇｄのバイト列を表し、ｐｉは別途入力される現在の繰返し回数ｐｉを示すバイト列を表す。関数ｍｄ５はＭＤ５アルゴリズムに基づくハッシュ関数を表し、演算子‖はバイト列の結合を表す。ｍｏｄは割り算の剰余を表す。
【００５３】
すなわち、ハッシュ関数ｈ（ｅ，ｐｉ）は、二つの値ｅ，ｐｉを入力とし、０からＬ−１までの値を返す機能をもつ。なお、ハッシュ関数は、ＭＤ５に限らず、統計的に一様に分散するハッシュ関数であれば、任意のハッシュ関数を用いても良い。
【００５４】
［２］長さＬビットのフィルタビット列を用意する。フィルタビット列は初期値を全て０で初期化する。
【００５５】
［３］演算先集合の各要素ｅを取出す。各要素ｅに対し、図２（ｃ）に示したように、順に以下の手順をｐ回実行する。なおｐｉは繰り返される手順の何回目かを示す数値である。
【００５６】
ｉ＝ｈ（ｅ，ｐｉ）を求める。
【００５７】
用意したビット列のｉビット目を１にセットする。
【００５８】
以上のように、フィルタ生成部２４はフィルタ情報を生成し、得られたフィルタ情報をフィルタ送出部２５に送出する。
【００５９】
フィルタ送出部２５は、フィルタ生成部２４により生成されたフィルタ情報を元集合サーバ１０に返信する（ＳＴ１６）。
【００６０】
元集合サーバ１０においては、フィルタ受信部１３がフィルタ情報を受信し、このフィルタ情報を共通集合演算部１４に送出する。
【００６１】
共通集合演算部１４は、このフィルタ情報に対して、演算元集合記憶部１１を参照しながら、演算元集合Ｇｓの各バイト列に対応するか否かを検査し、演算元集合Ｇｓと演算先集合Ｇｄとの共通部分（Ｇｓ∩Ｇｄ）を抽出する（ＳＴ１７）。
【００６２】
しかる後、共通集合演算部１４は、得られた共通部分を共通集合として出力する（ＳＴ１８）。
【００６３】
上述したように本実施形態によれば、共通集合が抽出される際に、ネットワーク上でフィルタ情報要求やフィルタ情報を送受信するものの（ＳＴ１２，ＳＴ１６）、従来とは異なり、共通要素のリストを送受信しない。このため、ネットワークを介して通信可能な元集合サーバ１０と先集合サーバ２０との間で各々管理する集合同士Ｇｓ，Ｇｄを演算する際に、ネットワーク通信量を抑制することができる。また、フィルタ生成部２４は、各集合Ｇｓ，Ｇｄの要素数｜Ｇｓ｜，｜Ｇｄ｜が分かっているので、誤検出確率ｆを満たすようにフィルタ情報を生成することができる。
【００６４】
以上の効果は、通信手順において必要十分な情報を選択し、誤検出確率ｆを制御したことにより得られたものである。これにより、任意の２つの集合に対する共通要素の抽出演算に必要な通信量を、許容可能な誤検出確率ｆの範囲内で劇的に削減することができる。
【００６５】
（第２の実施形態）
図４は本発明の第２の実施形態に係る集合管理システムの構成を示す模式図であり、図１と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した部分の説明を省略する。
【００６６】
すなわち、本実施形態は、第１の実施形態の変形例であり、元集合サーバ１０及び先集合サーバ２０の単体を接続した構成に代えて、元集合サーバ１０及び先集合サーバ２０の両者の機能を併せ持つ集合管理サーバ３０Ａ，３０Ｂが互いに接続された構成となっている。
【００６７】
ここで、集合管理サーバ３０Ａは、前述した元集合サーバ１０に加え、先集合サーバ２０が有する要求受信部２２、フィルタ長決定部２３、フィルタ生成部２４及びフィルタ送出部２４と同等の各部２２〜２５を更に備えている。但し、演算元集合記憶部１１及び演算先集合記憶部２１は個別に備えず、共通化した演算集合記憶部３１Ａとして備えている。
【００６８】
同様に、集合管理サーバ３０Ｂは、前述した先集合サーバ２０に加え、元集合サーバ１０が有する要求送出部１２、フィルタ受信部１３及び共通集合演算部１４と同等の各部１２〜１４を更に備えている。但し、演算先集合記憶部２１及び演算元集合記憶部１１及びは個別に備えず、共通化した演算集合記憶部３１Ｂとして備えている。
【００６９】
以上のような構成によれば、集合管理サーバ３０Ａが元集合サーバ１０として機能し、集合管理サーバ３０Ｂが先集合サーバ２０として機能する場合には第１の実施形態の作用効果を得ることができ、逆に、集合管理サーバ３０Ａが先集合サーバ２０として機能し、集合管理サーバ３０Ｂが元集合サーバ１０として機能することもできる。
【００７０】
従って、各集合管理サーバ３０Ａ，３０Ｂが状況に応じて元集合サーバ１０又は先集合サーバ２０の何れの処理をも実行できるので、利便性を向上させることができる。なお、このように、元集合サーバ１０には先集合サーバ２０の機能を付加し、先集合サーバ２０には元集合サーバ１０の機能を付加することにより、各サーバが元集合サーバ１０及び先集合サーバ２０の何れにもなることができる旨は、以下の各実施形態にも適用することができる。但し、説明を簡単にするため、以下の各実施形態は、元集合サーバ１０と先集合サーバ２０とをそれぞれ単体で設けた場合を代表例に用いて述べる。
【００７１】
（第３の実施形態）
図５は本発明の第３の実施形態に係る集合管理システムの構成を示す模式図である。この集合管理システムは、利用者端末４０がＬＡＮ５０を介して元集合サーバ１０に接続され、元集合サーバ１０がインターネット５１を介して先集合サーバ２０に接続されている。
【００７２】
すなわち、本実施形態は、第１の実施形態の具体例であり、各サーバ１０，２０が映像や音声などのコンテンツを放送するものであり、コンテンツを視聴したユーザのリストを演算元集合や演算先集合として保持する構成となっている。
【００７３】
ユーザのリストは例えばメールアドレスや、システムで一意な番号（ユーザＩＤ）を示すものである。ここでいうユーザＩＤは、システムで一意な番号であればよいので、通常のユーザＩＤに限らず、ＵＲＩ（Uniform Resource Indicator）、ＩＰアドレス、ポート番号、メールアドレス等が適用可能となっている。
【００７４】
また、コンテンツを放送するサーバ１０，２０は世界中に無数に存在するが、ここでは２台を代表例に用いる。すなわち、番組Ｐ１を放送するサーバを元集合サーバ１０、同様に番組Ｐ２を放送するサーバを先集合サーバ２０とする。
【００７５】
各サーバ１０，２０は、番組Ｐ１，Ｐ２を放送する機能に伴い、視聴者に利用者ＩＤを要求又は発行する機能と、各利用者ＩＤを番組ＩＤに対応づけて保存する機能とをもっている。
【００７６】
利用者ＩＤはシステム全体で利用者に固有の値であり、全てのサーバ間で共通する。また、前述した演算元集合Ｇｓをある番組Ｐ１を視聴したユーザ集合Ｕ１とし、演算先集合Ｇｄを異なる番組Ｐ２を視聴したユーザ集合Ｕ２とする。これに伴い、演算元集合Ｇｓの要素数｜Ｇｓ｜をユーザ集合Ｕ１の要素数Ｎ１とし、演算先集合Ｇｄの要素数｜Ｇｄ｜をユーザ集合Ｕ２の要素数Ｎ２とする。
【００７７】
一方、利用者端末４０は、通常のコンピュータ機能を有する端末装置であり、特に、利用者Ｘの操作により、共通集合を抽出する対象となるユーザ集合Ｕ１，Ｕ２の識別子ＩＤU1，ＩＤU2を元集合サーバ１０に入力する機能と、元集合サーバから受けた共通集合｛Ｕ１∩Ｕ２｝を出力する機能をもっている。なお、この例では、ユーザ集合Ｕ１，Ｕ２の識別子ＩＤU1，ＩＤU2は、各番組ＩＤに相当する。
【００７８】
ＬＡＮ５０は、利用者端末４０と元集合サーバ１０との間の構内ネットワークであり、通信量を低減したい対象のネットワークとは異なる。  
インターネット５１は、元集合サーバ１０と先集合サーバ２０との間のネットワークであり、通信量を低減したい対象のネットワークである。
【００７９】
次に、以上のように構成された集合管理システムによる共通集合抽出方法を図６のシーケンス図を用いて説明する。
【００８０】
始めに、ある利用者Ｘが、番組Ｐ１とＰ２を視聴したとする。この時、番組Ｐ１，Ｐ２の両方を視聴した人は、利用者Ｘと興味が近いと言える。興味が近い人の集合を得る事で、利用者Ｘは、以下のような事（ａ）〜（ｃ）が可能になる。
【００８１】
（ａ）番組Ｐ１，Ｐ２を視聴した人々が、他にどのような番組を見ているかを知る。  
（ｂ）番組Ｐ１，Ｐ２を視聴した人々に、類似した番組を教える。  
（ｃ）番組Ｐ１，Ｐ２を視聴した人々と、番組の感想などを交換する。
【００８２】
これら（ａ）〜（ｃ）を実現するには、任意の２つ以上の番組に個別に対応する各ユーザ集合Ｕ１，Ｕ２から、共通に含まれる視聴者のリストを抽出する操作が必要となる。この操作は、世界中のあらゆるコンテンツのユーザ集合Ｕ１，Ｕ２，…から特定の番組のユーザ集合を抽出する場合を考えると、できるだけ安価に行える必要がある。
【００８３】
ここで、複数のユーザ集合Ｕ１，Ｕ２から共通するユーザ集合を抽出することは、例えばマーケティング等に利用される。特定の分野の番組の視聴者を抽出する事は、その分野の市場の興味を知る助けとなる。あるいは、特定の俳優等が出演する複数の番組の視聴者を抽出することは、その俳優等に興味がある視聴者を知ることにつながる。なお、マーケティングに利用する場合、利用者Ｘは、単に統計をとるだけの場合があるので、必ずしも番組Ｐ１，Ｐ２を見ている必要は無い。
【００８４】
次に、利用者Ｘが番組Ｐ１，Ｐ２の共通の視聴者を抽出するまでの過程を図６を用いて述べる。  
利用者端末４０は、利用者Ｘの操作により、番組Ｐ１を放送する元集合サーバ１０にＬＡＮ５０を通じてアクセスする。利用者端末４０は、元集合サーバ１０に、番組Ｐ１，Ｐ２の共通の視聴者を抽出する命令を送信する（ＳＴ２０）。
【００８５】
元集合サーバ１０は、演算元集合記憶部１１内にユーザ集合Ｕ１を有するが、ユーザ集合Ｕ２を持たない。なお、ユーザ集合Ｕ２を保持する先集合サーバ１０のアドレス等の接続情報は、ユーザ集合Ｕ２の識別子ＩＤU2から知る又は調べることができるものとする。
【００８６】
ここで、元集合サーバ１０は、要求送出部１２が演算元集合記憶部１１からユーザ集合Ｕ１の要素数Ｎ１を抽出する（ＳＴ２１）。次に、元集合サーバ１０は、要求送出部１２が、ユーザ集合Ｕ２の要素を表すフィルタ情報を要求するため、要素数Ｎ１と番組Ｐ２の識別子ＩＤU2を含むフィルタ情報要求（のメッセージ）を先集合サーバ２０に送信する（ＳＴ２２）。
【００８７】
先集合サーバ２０は、要求受信部２２がフィルタ情報要求を受信すると、フィルタ長決定部２３が、フィルタ情報要求内の識別子ＩＤU2からユーザ集合Ｕ２を選択し、演算先集合記憶部２１からユーザ集合Ｕ２の要素数Ｎ２を抽出し（ＳＴ２３）、フィルタ情報要求内の要素数Ｎ１、適切に設定された誤検出確率ｆからフィルタ長Ｌを決定する（ＳＴ２４）。
【００８８】
ここで、誤検出確率ｆの設定は、要素数Ｎ１，Ｎ２の集合全てを試験して、平均して１つ程度の誤検出がある、等の条件を元に決定する。具体的には誤検出確率ｆ＝１／（Ｎ１＋Ｎ２）以下となるよう設定することが望ましい。一方、非常にサイズの大きい母集合や小さい母集合に対して、誤検出確率ｆの上限・下限を設定することもできる。
【００８９】
フィルタ長決定部２３は、例えばブルームフィルタの場合、前述同様に（４）式により、フィルタ長を決定する。但し、Ｍ＝Ｎ１＋Ｎ２である。なお、通常、（４）式の下では、誤検出確率ｆは、ハッシュ関数繰り返し回数ｐに依存しており、誤検出確率をｆとおくと、ｆ＝０．５ｐとなる。ここでは、ｆ＝０．５ｐの式と上記誤検出確率ｆ≦１／（Ｎ１＋Ｎ２）とから定まるｐを（４）式に代入することにより、最も効率の良いフィルタ長Ｌを決定できる。
【００９０】
フィルタ長Ｌが定まると、フィルタ生成部２４は、前述同様に、フィルタ情報を生成する（ＳＴ２５）。具体的には、ユーザ集合Ｕ２の内容を一つづつバイト列として取り出し、フィルタ上の対応するビットを１にセットする手続きとなる。
【００９１】
以下同様に、フィルタ送出部２５は、生成されたフィルタ情報を元集合サーバ１０に返信する（ＳＴ２６）。ここで、フィルタ情報はＮ１＋Ｎ２に基づいて生成されており、元集合サーバ１０においてユーザ集合Ｕ１の各要素を検査する際、上記誤検出確率ｆ以下であることが保証される。
【００９２】
従って、元集合サーバ１０の共通集合演算部１４は、フィルタ情報に対し、ユーザ集合Ｕ１の各要素を検査し、検査結果がフィルタ情報に対応する要素を共通集合｛Ｕ１∩Ｕ２｝として抽出する（ＳＴ２７）。この共通集合は、元集合サーバ１０から利用者端末４０に返信される（ＳＴ２８）。なお、元集合サーバ１０は、プライバシ保護を理由に、ユーザ集合Ｕ１，Ｕ２の共通集合を利用者端末４０に返信することを拒否しても良い。
【００９３】
利用者端末４０では、返信された共通集合を出力する（ＳＴ２９）。  
上述したように本実施形態によれば、元集合サーバ１０が利用者端末４０からの命令に応じて先集合サーバ２０との間で共通集合を抽出する構成としても、第１の実施形態と同様の作用効果を得ることができる。
【００９４】
また、ハッシュ関数繰返し回数ｐをフィルタ情報要求に含めず、先集合サーバ２０が共通集合の候補となる全ての要素数Ｎ１，Ｎ２に基づいて算出する構成としても、第１の実施形態と同様の作用効果を得ることができる。
【００９５】
（第４の実施形態）
図７は本発明の第４の実施形態に係る集合管理システムの構成を示す模式図である。
【００９６】
すなわち、本実施形態は、第３の実施形態の変形例であり、３つ以上のｎ個の集合から共通要素を抽出するための通信手順を並列化する観点から、元集合サーバ１０に対してｎ台の先集合サーバ２０１，…，２０ｎを並列に接続した構成となっている。
【００９７】
これに伴い、元集合サーバ１０は、演算先のユーザ集合Ｕ１，…，Ｕｎの各バイト列を表すフィルタ情報を要求するための、演算元のユーザ集合Ｕ０の各バイト列の個数Ｎ０及び演算先のユーザ集合Ｕ１，…，Ｕｎの識別子ＩＤU1，…，ＩＤUnを含むフィルタ情報要求を各先集合サーバ２０１，…，２０ｎに並列に送信する機能と、各先集合サーバ２０１，…，２０ｎから並列にフィルタ情報を受信する機能と、受信した各フィルタ情報に対して、演算元のユーザ集合Ｕ０の各バイト列に対応するか否かを検査し、演算元のユーザ集合Ｕ０と各演算先のユーザ集合Ｕ１，…，Ｕｎとの個別の共通部分（共通要素）｛Ｕ０∩Ｕ１｝，｛Ｕ０∩Ｕ２｝，…，｛Ｕ０∩Ｕn-1｝，｛Ｕ０∩Ｕｎ｝を抽出する第１の共通部分抽出機能と、個別の共通部分の間の更なる共通部分（共通要素）｛Ｕ０∩Ｕ１∩Ｕ２∩，…，∩Ｕn-1∩Ｕｎ｝を抽出する第２の共通部分抽出機能と、最終的に得られた共通部分（共通集合）を利用者端末４０に返信する機能とをもっている。  
なお、各先集合サーバ２０１〜２０ｎは、前述同様のものである。
【００９８】
次に、以上のように構成された集合管理システムによる共通集合抽出方法を図８のシーケンス図を用いて説明する。
【００９９】
いま、利用者端末４０は、前述同様に、利用者の操作により、ユーザ集合Ｕ０〜Ｕｎの識別子ＩＤU0，…，ＩＤUnを含む共通要素の抽出命令を元集合サーバ１０に送信したとする（ＳＴ３０）。
【０１００】
元集合サーバ１０は、この抽出命令に基づいて、演算先のユーザ集合Ｕ１，…，Ｕｎの各バイト列を表すフィルタ情報を要求するための、演算元のユーザ集合Ｕ０の要素数Ｎ０及び演算先のユーザ集合Ｕ１，…，Ｕｎの識別子ＩＤU1，…，ＩＤUnを含むフィルタ情報要求を対応する各先集合サーバ２０１，…，２０ｎに並列に送信する（ＳＴ３１−１〜ＳＴ３１−ｎ）。
【０１０１】
詳しくは、先集合サーバ２０１には、ユーザ集合Ｕ０の要素数Ｎ０及びユーザ集合Ｕ１の識別子ＩＤU1を含むフィルタ情報要求が送信される（ＳＴ３１−１）。先集合サーバ２０２には、ユーザ集合Ｕ０の要素数Ｎ０及びユーザ集合Ｕ２の識別子ＩＤU2を含むフィルタ情報要求が送信される（ＳＴ３１−２）。以下同様に、各々の先集合サーバ２０３，…，２０ｎに応じた内容のフィルタ情報要求が送信される（ＳＴ３１−３，…，ＳＴ３１−ｎ）。
【０１０２】
各先集合サーバ２０１，…，２０ｎは、夫々前述同様にフィルタ情報を生成して元集合サーバ１０に返信する（ＳＴ３１−１，…，ＳＴ３１−ｎ）。
【０１０３】
元集合サーバ１０は、並列に受信した各フィルタ情報に対して、演算元のユーザ集合Ｕ０の各バイト列に対応するか否かを検査し、演算元のユーザ集合Ｕ０と各演算先のユーザ集合Ｕ１，…，Ｕｎとの個別の共通要素｛Ｕ０∩Ｕ１｝，｛Ｕ０∩Ｕ２｝，…，｛Ｕ０∩Ｕn-1｝，｛Ｕ０∩Ｕｎ｝を抽出する（ＳＴ３３）。
【０１０４】
しかる後、元集合サーバ１０は、個別の共通要素の間の更なる共通要素｛Ｕ０∩Ｕ１∩Ｕ２∩，…，∩Ｕn-1∩Ｕｎ｝を抽出し、最終的に得られた共通集合｛Ｕ０∩Ｕ１∩Ｕ２∩，…，∩Ｕn-1∩Ｕｎ｝を利用者端末４０に返信する（ＳＴ３４）。
【０１０５】
利用者端末４０は、返信された共通集合を出力する（ＳＴ３５）。
【０１０６】
上述したように本実施形態によれば、３つ以上の集合の共通集合を演算する際に、元集合サーバ１０と先集合サーバ２０１〜２０ｎとの間でフィルタ情報要求やフィルタ情報を並列に送受信するので、３台以上のサーバ装置１０，２０１〜２０ｎを直列化せずに、３台以上のサーバ装置１０と先集合サーバ２０１〜２０ｎで各々管理する集合同士の共通集合を抽出することができる。また、従来とは異なり、通信を直列化する必要が無くなり、並列通信が可能になったので、低いレイテンシを期待することができる。
【０１０７】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１０８】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１０９】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０１１０】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【０１１１】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１１２】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１１３】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１１４】
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１１５】
【図１】本発明の第１の実施形態に係る集合管理システムの構成を示す模式図である。
【図２】同実施形態におけるフィルタ情報の生成を説明するための模式図である。
【図３】同実施形態における共通集合抽出方法を説明するためのシーケンス図である。
【図４】本発明の第２の実施形態に係る集合管理システムの構成を示す模式図である。
【図５】本発明の第３の実施形態に係る集合管理システムの構成を示す模式図である。
【図６】同実施形態における共通集合抽出方法を説明するためのシーケンス図である。
【図７】本発明の第４の実施形態に係る集合管理システムの構成を示す模式図である。
【図８】同実施形態における共通集合抽出方法を説明するためのシーケンス図である。
【図９】従来の共通集合抽出方法を説明するためのシーケンス図である。
【符号の説明】
【０１１６】
１０…元集合サーバ、１１…演算元集合記憶部、１２…要求送出部、１３…フィルタ受信部、１４…共通集合演算部、２０，２０１〜２０ｎ…先集合サーバ、２１…演算先集合記憶部、２２…要求受信部、２３…フィルタ長決定部、２４…フィルタ生成部、２５…フィルタ送出部、３０Ａ，３０Ｂ…集合管理サーバ、４０…利用者端末、ＩＤｇｓ，ＩＤｇｓ…識別子、｜Ｇｓ｜，｜Ｇｄ｜…要素数、Ｇｓ，Ｇｄ…集合、ｐ…ハッシュ関数繰返し回数、Ｌ…フィルタ長、ｅ…各バイト列。
【図１】
2005196480.tif 000004
【図２】
2005196480.tif 000005
【図３】
2005196480.tif 000006
【図４】
2005196480.tif 000007
【図５】
2005196480.tif 000008
【図６】
2005196480.tif 000009
【図７】
2005196480.tif 000010
【図８】
2005196480.tif 000011
【図９】
2005196480.tif 000012