(57)【要約】【課題】異なる種類のノードが混在するＰ２Ｐ型データ交換ネットワークにおいて、自ノードに最適のデータ形式を持つデータを発見できる可能性を高くし、検索時間を短縮する。【解決手段】各ノード１００は、データベース１３０に、実データ、メタデータ（属性情報、形式情報）、元データ所在情報を記憶する。検索条件取得部１１２は検索要求メッセージを取得する。形式相違データ検索部１２２は、検索条件に合致するデータ（合致データ）が見つからない場合、検索条件のうちデータ形式の条件（形式条件）を除く条件（属性条件）を満たすデータ（形式相違データ）を検索する。形式相違データが見つかった場合、元データ所在情報により、データ形式を変換する前のデータ（元データ）の所在（元データ記憶装置）を判別し、判別した元データ記憶装置に対して、検索条件通知部１１１が検索要求メッセージを通知する。【選択図】        図３
2007102459.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を用いて、データを記憶するデータ記憶部と、
上記データ記憶部が記憶したデータが、元データのデータ形式を変換することにより生成したデータである場合に、記憶装置を用いて、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として記憶する元データ所在記憶部と、
データ形式についての条件である形式条件と、データ形式以外についての条件である属性条件とを含む条件を、検索条件として、他の情報処理装置が通知した場合に、上記他の情報処理装置が通知した検索条件を取得する検索条件取得部と、
上記他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する合致データ検索部と、
上記検索条件に合致するデータを、上記データ記憶部が記憶していないと、上記合致データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する形式相違データ検索部と、
上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶していると、上記形式相違データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータに対応して、上記元データ所在記憶部が記憶した元データ所在情報に基づいて、上記データの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する検索条件通知部と、
を有することを特徴とする情報処理装置。
【請求項２】
記憶装置を用いて、データを記憶するデータ記憶部と、
データ形式についての条件である形式条件と、データ形式以外についての条件である属性条件とを含む条件を、検索条件として、他の情報処理装置が通知した場合に、上記他の情報処理装置が通知した検索条件を取得する検索条件取得部と、
上記他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する合致データ検索部と、
上記検索条件に合致するデータを、上記データ記憶部が記憶していないと、上記合致データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する形式相違データ検索部と、
上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶していると、上記形式相違データ検索部が判断した場合に、
上記検索条件のうち属性条件に合致するデータが、元データのデータ形式を変換することにより生成したデータである場合に、上記元データを記憶している元データ記憶装置を示す情報を記憶している所在記憶装置に対して、
上記元データを記憶している元データ記憶装置を問い合わせる元データ所在問い合わせ部と、
上記元データ所在問い合わせ部の問い合わせに対して、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として、上記所在記憶装置が回答した場合に、
上記所在記憶装置が回答した元データ所在情報に基づいて、上記データの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する検索条件通知部と、
を有することを特徴とする情報処理装置。
【請求項３】
記憶装置を用いて、データを記憶するデータ記憶部と、
上記データ記憶部が記憶したデータが、元データのデータ形式を変換することにより生成したデータである場合に、記憶装置を用いて、上記元データを記憶している元データ記憶装置を示す情報を記憶している所在記憶装置を示す情報を、所在記憶装置情報として記憶する所在記憶装置記憶部と、
データ形式についての条件である形式条件と、データ形式以外についての条件である属性条件とを含む条件を、検索条件として、他の情報処理装置が通知した場合に、上記他の情報処理装置が通知した検索条件を取得する検索条件取得部と、
上記他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する合致データ検索部と、
上記検索条件に合致するデータを、上記データ記憶部が記憶していないと、上記合致データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する形式相違データ検索部と、
上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶していると、上記形式相違データ検索部が判断した場合に、
上記検索条件のうち属性条件に合致するデータに対応して、上記所在記憶装置記憶部が記憶した所在記憶装置情報に基づいて、上記データの元データを記憶している元データ記憶装置を示す情報を記憶している所在記憶装置を判別し、判別した所在記憶装置に対して、
上記元データを記憶している元データ記憶装置を示す情報を問い合わせる元データ所在問い合わせ部と、
上記元データ所在問い合わせ部の問い合わせに対して、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として、上記所在記憶装置が回答した場合に、
上記所在記憶装置が回答した元データ所在情報に基づいて、上記データの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する検索条件通知部と、
を有することを特徴とする情報処理装置。
【請求項４】
上記情報処理装置は、更に、
上記他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件を通知した他の情報処理装置と異なる他の情報処理装置に対して、上記検索条件を通知する検索条件転送部と、
上記検索条件転送部が検索条件を通知した他の情報処理装置が、上記検索条件のうち、少なくとも属性条件に合致するデータを発見したことを示す検索結果を通知した場合に、上記他の情報処理装置が通知した検索結果を取得する検索結果取得部と、
上記検索結果取得部が検索結果を取得した場合に、上記他の情報処理装置が通知した検索結果に基づいて、上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致するか否かを判断する形式合致判断部と、
を有し、
上記検索条件通知部は、更に、
上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致しないと上記形式合致判断部が判断した場合に、
上記検索結果取得部が取得した検索結果に基づいて、上記他の情報処理装置が発見したデータの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
上記情報処理装置は、更に、
他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件を通知した他の情報処理装置と異なる他の情報処理装置に対して、上記検索条件を通知する検索条件転送部と、
上記検索条件転送部が検索条件を通知した他の情報処理装置が、上記検索条件のうち、少なくとも属性条件に合致するデータを発見したことを示す検索結果を通知した場合に、上記他の情報処理装置が通知した検索結果を取得する検索結果取得部と、
上記検索結果取得部が検索結果を取得した場合に、上記他の情報処理装置が通知した検索結果に基づいて、上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致するか否かを判断する形式合致判断部と、
上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致しないと上記形式合致判断部が判断した場合に、
上記他の情報処理装置が発見したデータが、元データのデータ形式を変換することにより生成したデータである場合に、上記元データを記憶している元データ記憶装置を示す情報を記憶している所在記憶装置に対して、
上記元データを記憶している元データ記憶装置を問い合わせる元データ所在問い合わせ部と、
を有し、
上記検索条件通知部は、更に、
上記元データ所在問い合わせ部の問い合わせに対して、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として、上記所在記憶装置が回答した場合に、
上記所在記憶装置が回答した元データ所在情報に基づいて、上記他の情報処理装置が発見したデータの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項６】
上記情報処理装置は、更に、
他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件を通知した他の情報処理装置と異なる他の情報処理装置に対して、上記検索条件を通知する検索条件転送部と、
上記検索条件転送部が検索条件を通知した他の情報処理装置が、上記検索条件のうち、少なくとも属性条件に合致するデータを、発見したことを示す検索結果を通知した場合に、上記他の情報処理装置が通知した検索結果を取得する検索結果取得部と、
上記検索結果取得部が検索結果を取得した場合に、上記他の情報処理装置が通知した検索結果に基づいて、上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致するか否かを判断する形式合致判断部と、
上記他の情報処理装置が発見したデータが、上記検索条件のうち形式条件に合致しないと上記形式合致判断部が判断した場合に、
上記検索結果取得部が取得した検索結果に基づいて、上記他の情報処理装置が発見したデータが、元データのデータ形式を変換することにより生成したデータである場合に、上記元データを記憶している元データ記憶装置を示す情報を記憶している所在記憶装置を判別し、
判別した所在記憶装置に対して、上記元データを記憶している元データ記憶装置を問い合わせる元データ所在問い合わせ部と、
を有し、
上記検索条件通知部は、更に、
上記元データ所在問い合わせ部の問い合わせに対して、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として、上記所在記憶装置が回答した場合に、
上記所在記憶装置が回答した元データ所在情報に基づいて、上記他の情報処理装置が発見したデータの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項７】
情報処理装置が通知するデータ変換要求に基づいて、元データ記憶装置から元データを取得し、取得した元データのデータ形式を変換することにより、変換データを生成するデータ変換装置において、
上記変換データと、上記元データを取得した元データ記憶装置を示す情報とを、上記データ変換要求を通知した情報処理装置に対して通知する変換データ通知部
を有することを特徴とするデータ変換装置。
【請求項８】
情報処理装置が通知するデータ変換要求に基づいて、元データ記憶装置から元データを取得し、取得した元データのデータ形式を変換することにより、変換データを生成するデータ変換装置において、
記憶装置を用いて、上記変換データを示す情報と、上記元データを取得した元データ記憶装置を示す情報とを記憶する元データ所在記憶部と、
元データの所在について他の情報処理装置が問い合わせた場合に、上記他の情報処理装置の問い合わせに係る変換データを示す情報を、上記元データ所在記憶部が記憶しているか否かを判断し、上記他の情報処理装置の問い合わせに係る変換データを示す情報を、上記元データ所在記憶部が記憶していると判断した場合に、上記他の情報処理装置の問い合わせに係る変換データを示す情報に対応して、上記元データ所在記憶部が記憶している元データ記憶装置を示す情報を、上記元データの所在を問い合わせた他の情報処理装置に対して通知する元データ所在回答部と、
を有することを特徴とするデータ変換装置。
【請求項９】
上記データ変換装置は、更に、
上記変換データと、上記データ変換装置を示す情報とを、上記データ変換要求を通知した情報処理装置に対して通知する変換データ通知部
を有することを特徴とする請求項８に記載のデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でデータを共有するシステムを構成する装置に関する。
【背景技術】
【０００２】
従来、コンピュータのネットワークシステムの構築では、これまでクライアントサーバ型のネットワークを構築するのが普通である。
クライアントサーバシステムの場合、コンピュータはクライアントとサーバの役割分担を行う。
クライアントは、グラフィックユーザインタフェースを通してユーザの操作入力に従って、様々な要求や作業の依頼を行う。
サーバは、ネットワークに接続された多くのクライアントの要求に対して処理を行うため、大容量記憶装置や高性能ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を持つ高性能サーバ専用のコンピュータが用意される。
これに対し、クライアントは、安価に購入可能なＰＣ（パソコン）が用いられる。
【０００３】
近年、ネットワークに接続されたコンピュータをクライアントとサーバの役割に分けないピアツーピア（Ｐ２Ｐ）型ネットワークのネットワークシステムが構築されている。
Ｐ２Ｐ型ネットワークでは、全てのコンピュータがクライアントとサーバの両方の役割を担っており、インターネット上でユーザ間のデータを交換する技術を利用するＮａｐｓｔｅｒやＧｎｕｔｅｌｌａのようなシステムが提供されている。ＮａｐｓｔｅｒやＧｎｕｔｅｌｌａを用いることでユーザは、所望のファイルを保有する相手を見つけ、このファイルを参照、複製することができる。
【０００４】
また、Ｎａｐｓｔｅｒ、Ｇｎｕｔｅｌｌａは、所望のファイルの要求、検索を、ファイル名に対して行っている。これを改善する技術として、たとえば、特許文献１に記載の技術等がある。
【０００５】
また、近年、クライアントサーバ型のネットワークが広がりを見せている。携帯電話を代表とする携帯機器が、インターネットなどの通信ネットワークに接続されて、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サーバ上の画像を参照するシステムが構築されている。
例えば、特許文献２に記載の技術は、ＰＣに加えて携帯電話に対しても画像を提供する画像サーバのシステムである。これにより、ＰＣと携帯電話の扱うデータに差異がある場合でも、両者間でデータの交換ができる。ＰＣの携帯電話の扱うデータの具体的な差異には、たとえば、ＨＤＭＬ（Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＣｏｍｐａｃｔＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の文書整形データや、表示色数や階調数が異なることがある。そのため、特許文献２では、データを変換する手段、変換したデータを保持する手段、変換された複数のデータを同一の画像ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）を対応付ける手段を設けている。
【特許文献１】特開２００４−１５７８２６号公報
【特許文献２】特開２００１−３１３７４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図３５に示すように、様々な種類の情報処理装置（以下、「ノード」という）が混在するネットワークシステムでは、それぞれのノードが自己に最適な形式のデータを保有している。
これら様々なノードが接続したＰ２Ｐ型データ交換ネットワークシステムには、以下のような課題がある。
例えば、携帯電話８０１がデータＡを検索する場合、所定の検索経路にしたがって、検索を行うと、まず、ＰＣ８０４が保有するデータＡ’（データＡのデータ形式を変換して生成したデータ。データＡと内容は同じであるが、データ形式が異なる）が発見される。その後、携帯電話８０９が保有するデータＡが発見される。
しかし、図３６に示すように、検索経路の設定の違いにより、携帯電話８０９が検索されない場合には、変換後データＡ’は発見されるが、データＡは発見されない。
【０００７】
従来の方式では、例えば、図３７に示すように、携帯電話８０１は、ＰＣ８０４から変換後データＡ’を取得し、その後、変換用サーバにデータ変換処理（逆変換）を依頼することにより、所望のデータＡを入手する。
しかし、この処理は、データＡが発見されていれば不要な処理であり、変換用サーバの負担が増えるという課題がある。
また、変換後データＡ’が、例えば、解像度を低く変換した画像である場合などもとのデータＡに含まれる情報をすべて保有していないデータである場合、そのデータをもとにデータ形式を変換しても、解像度の高いデータＡを復元することができず、データの品質が低下するという課題がある。
【０００８】
図３８において、ＰＣ８１３がデータＢを検索している。
ノートＰＣ８１１は、データＢ’（データＢと内容は同じであるが、データ形式が異なる）を検索し、ノートＰＣ８１５が発見したので、その転送を依頼する。
転送データが、ノートＰＣ８１５から、ノートＰＣ８１１へ転送される途中で、ＰＣ８１３は、転送中のデータが、探しているデータと内容は同じだが、データ形式が異なることに気づく。
そこでＰＣ８１３は、転送中のデータを保持し、図３９に示すように、変換用サーバ８５１にデータ変換処理を依頼することにより、所望のデータＢを入手する。
【０００９】
この場合も、やはり、携帯電話８１６が所有するデータＢが発見されていれば不要な処理を変換用サーバ８５１に課すことになり、負担が増えるという課題がある。また、完全にデータＢを復元できるとは限らない点も課題となる。
【００１０】
本発明は、例えば、上記のような課題を解決するためになされたもので、所望のデータを発見できる可能性を高くし、また、検索処理にかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【００１１】
本発明にかかる情報処理装置は、
記憶装置を用いて、データを記憶するデータ記憶部と、
上記データ記憶部が記憶したデータが、元データのデータ形式を変換することにより生成したデータである場合に、記憶装置を用いて、上記元データを記憶している元データ記憶装置を示す情報を、元データ所在情報として記憶する元データ所在記憶部と、
データ形式についての条件である形式条件と、データ形式以外についての条件である属性条件とを含む条件を、検索条件として、他の情報処理装置が通知した場合に、上記他の情報処理装置が通知した検索条件を取得する検索条件取得部と、
上記他の情報処理装置が通知した検索条件を、上記検索条件取得部が取得した場合に、上記検索条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する合致データ検索部と、
上記検索条件に合致するデータを、上記データ記憶部が記憶していないと、上記合致データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶しているか否かを判断する形式相違データ検索部と、
上記検索条件のうち属性条件に合致するデータを、上記データ記憶部が記憶していると、上記形式相違データ検索部が判断した場合に、上記検索条件のうち属性条件に合致するデータに対応して、上記元データ所在記憶部が記憶した元データ所在情報に基づいて、上記データの元データを記憶している元データ記憶装置を判別し、判別した元データ記憶装置に対して、上記検索条件取得部が取得した検索条件を通知する検索条件通知部と、
を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、例えば、検索条件のうち属性条件が合致するが、形式条件が合致しないデータを発見した場合に、そのデータと対応づけて記憶した元データ所在情報に基づいて、そのデータを生成するもととなった元データを記憶する元データ記憶装置に対して、検索を要求するので、形式条件も合致するデータを発見できる可能性が高くなり、検索にかかる時間を短縮することができるという効果を奏する。
また、これにより、不要なデータ変換処理をすることが少なくなるので、データ変換装置の負担が軽減できるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
実施の形態１を、図１〜図１７を用いて説明する。
図１は、この実施の形態におけるＰ２Ｐ（Ｐｅａｒ  ｔｏ  Ｐｅａｒ）型データ交換ネットワークシステム８００のシステム構成の一例、及び、Ｐ２Ｐ型データ交換ネットワークシステムを構成するノード１００（情報処理装置、元データ記憶装置の一例）の機能ブロックの構成の一例を示すシステム構成図である。
図２は、この実施の形態におけるノード１００のハードウェア構成の一例を示すハードウェア構成図である。
図３は、この実施の形態におけるノード１００の各機能ブロックの構成の一例を示す詳細ブロック構成図である。
【００１４】
図２において、ノード１００は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、記憶装置９０２（例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの内部メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）・ＣＤＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）・ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの外部記憶ドライブ装置、ＳＤ（Ｓｅｃｕｒｅｄ  Ｄｉｇｉｔａｌ）メモリカード・ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）メモリなどの外部メモリなど）、入力装置９０３（例えば、キーボード、マウス、マイクなど）、表示装置９０４（例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｉｓｔａｌ  Ｄｉｓｐｌａｙ）、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）など）、ネットワークインターフェース装置９０５を有する。
【００１５】
図１におけるノード１００の機能ブロックは、例えば、記憶装置９０２が記憶したプログラム等をＣＰＵ９０１が実行することにより、実現するものである。
【００１６】
図１において、ノード１００は、Ｐ２Ｐ型データ交換ネットワークシステム８００を介して、相互に接続している。
Ｐ２Ｐ型データ交換ネットワークシステム８００は、例えば、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークに接続されたコンピュータ、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯電話、携帯情報端末（ＰＤＡ）、ＤＶＤ（Ｄｅｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）デッキ、デジタルカメラなどの各種情報端末のうち、Ｐ２Ｐデータ交換機能を有する装置（情報処理装置）が、相互に接続した仮想的なネットワークである。
【００１７】
図１において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０を有する。
【００１８】
ネットワークエンジン１１０は、ネットワークインターフェース装置９０５を用いて、Ｐ２Ｐ型データ交換ネットワークシステム８００を介して、他のノード１００と接続する。すなわち、ネットワークエンジン１１０は、Ｐ２Ｐ型データ交換ネットワークシステム８００を構成する他のノード１００のうち、存在を知っている他のノード１００（例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、メールアドレスなどの相手を特定する情報を記憶装置９０２などに記憶しており、特定した相手と、Ｐ２Ｐのネットワークプロトコル（アプリケーション層のプロトコル）にしたがって通信することが可能なノード１００をいう）との通信を行う。
ネットワークエンジン１１０は、接続した他のノード１００に対して情報を通知し、また、接続した他のノードが通知した情報を取得する。
この実施の形態において、ネットワークエンジン１１０は、他のノード１００が通知したデータ検索要求メッセージ（検索条件の一例）、データ転送要求メッセージなどを取得する。また、他のノード１００に対して、データ検索要求メッセージや、検索応答メッセージなどを通知する。
これらの情報のやりとりは、例えば、パケット通信や、電子メールなどを用いて行ってもよい。
【００１９】
図３において、ネットワークエンジン１１０は、検索条件通知部１１１、検索条件取得部１１２、検索結果通知部１１３、検索結果取得部１１４、転送要求通知部１１５、転送要求取得部１１６、データ転送部１１７、転送データ取得部１１８、変換要求通知部１１９などを有する。
ネットワークエンジン１１０の各サブブロックは、それぞれの情報を、Ｐ２Ｐ型データ交換ネットワークシステム８００を介して、他のノード１００に通知し、または、他のノード１００から取得する。
【００２０】
検索エンジン１２０は、データベース１３０が記憶したデータのなかから、指定された条件に合致するデータを検索する。
また、検索エンジン１２０は、検索条件入力や、共有データ取得のため、メタデータに応じて用意されたＧＵＩ（グラフィカルユーザーインターフェース）を表示装置９０４に表示し、利用者に、入力装置９０３を用いて、検索要求、検索条件、データ取得の指示等を入力させる。また、検索結果を表示装置９０４に表示する。
また、検索エンジン１２０は、ネットワークエンジン１１０を介して、他のノード１００の検索エンジン１２０とＰ２Ｐプロトコルによる通信を行い、Ｐ２Ｐの検索処理を実現する。
すなわち、ネットワークエンジン１１０に、他のノード１００に対する検索要求を通知させるなどして、他のノード１００の検索エンジン１２０と協力して、指定された条件に合致するデータを探す。
【００２１】
検索エンジン１２０は、検索条件入力部１２３、検索要求生成部１２４（検索条件転送部）、合致データ検索部１２１、形式相違データ検索部１２２、検索結果生成部１２５（形式合致判断部）、検索結果表示部１２６、転送要求入力部１２７、転送要求生成部１２８、転送データ生成部１４１、転送データ判別部１４２、変換要求生成部１４３などを有する。
各サブブロックの詳細については、後述する。
【００２２】
データベース１３０は、Ｐ２Ｐ型データ交換ネットワークシステム８００において共有されるデータ（共有データ）を蓄積し、管理する。
データベース１３０は、記憶装置９０２を用いて、共有データをデータセット２１０として保持（記憶）する。
【００２３】
図４は、この実施の形態におけるデータセット２１０の内容の一例を示す図である。
データセット２１０は、この実施の形態において、情報を管理する単位となるものである。
データセット２１０は、実データ２１１（データの一例）、メタデータ２１２（属性情報、形式情報の一例）、変換元パス情報２１３（元データ所在情報の一例）を有する。
実データ２１１（実ファイルデータともいう）は、例えば、テキストデータ、音声データ、画像データ、動画データなどの情報を記録したデータであり、共有データの本体である。
メタデータ２１２は、実データの意味（内容）についての情報（実データに何が記載されているか、あるいは、実データのデータとしての性質等）を記述したものである。メタデータ２１２は、項目名とその値の組として、項目ごとに記述されている。例えば、項目名が「種別」で、値が「映画」。項目名が「題名」で、値が「風とともに去りぬ」。項目名が「登場人物」で、値が「レット・バトラー」。項目名が「フォーマット形式」で、値が「ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）４」。項目名が「画面サイズ」で、値が「ＱＶＧＡ（Ｑｕａｒｔｅｒ  Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）」などがある。これらの項目は、実データの種別に応じて定められており、例えば、上記の例は、実データ２１１が「映画」である場合の例である。
メタデータ２１２は、実データ２１１の検索の便宜のために設けられるものである。メタデータ２１２に含むべき項目を適当に設定することにより、実データ２１１を読み込まず、メタデータ２１２を参照するだけで、共有データの内容の要旨や何らかの属性を知ることができる。これにより、実データ２１１の検索の効率が高くなる。しかし、メタデータ２１２はなくてもよい。
【００２４】
変換元パス情報２１３は、実データ２１１が、何らかの元になるデータ（元データ）のデータ形式を変換して得たデータである場合に、変換元のデータのパス情報（変換元のデータを記憶している他のノード１００を示す情報の一例）を格納する。
【００２５】
ここで、データ形式の変換とは、例えば、画像のフォーマット形式を変換することである。
例えば、ノード１００が携帯電話やＰＤＡで画面サイズがＱＶＧＡである場合、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）サイズの画像は表示できないので、画面サイズがＶＧＡである元データを、ＱＶＧＡサイズの画像に変換する。
あるいは、例えば、ノード１００に「ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔｓ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）」形式を再生できるプレイヤーがインストールされていない場合、「ＭＩＤＩ」形式の元データを、「ＷＡＶＥ（ウェーブ）」形式に変換する。
あるいは、上記したような同じ種類のデータ間（動画→動画、音声→音声）だけでなく、異なる種類のデータに変換してもよい。
例えば、動画データの一場面をキャプチャーして静止画データに変換する場合や、音声データを音声認識してテキストデータに変換してもよい。
変換は、そのノード１００の処理能力が許せば、そのノード１００の内部で行ってもよい。あるいは、他のノード１００や、サーバに依頼して、変換してもらってもよい。
【００２６】
実データ２１１がデータ形式を変換して作成（生成）したものでない場合、変換元パス情報２１３は空である。
実データ２１１がデータ形式を変換して作成したものである場合、変換元パス情報２１３は、例えば、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）記法（ｈｔｔｐ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）：／／サーバ（ノード）名／ディレクトリ／ファイル名、ｆｔｐ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）：／／サーバ（ノード）名／ディレクトリ／ファイル名など）に基づく元データの配置箇所（所在）を示す情報である。しかし、元データを記憶しているノード１００を示す情報があれば、ディレクトリ、ファイル名を示す情報はなくてもよい。
【００２７】
図３において、データベース１３０は、データ記憶部１３１、属性情報記憶部１３２、形式情報記憶部１３３、元データ所在記憶部１３４などを有する。
データ記憶部１３１は、データセット２１０のうち実データ２１１を記憶する。
属性情報記憶部１３２及び形式情報記憶部１３３は、データセット２１０のうちメタデータ２１２（属性情報、形式情報）を記憶する。
元データ所在記憶部１３４は、データセット２１０のうち変換元パス情報２１３（元データ所在情報）を記憶する。
各記憶部が記憶した情報は、データセット２１０として関連づけられ、対応する情報として記憶される。
【００２８】
以下、Ｐ２Ｐ通信によるデータ検索処理の流れを説明する。
図５は、この実施の形態において、ネットワークプロトコルを用いた通信によるデータ検索処理、及び、検索の結果、発見された所望のデータを入手するまでの処理の流れの一例を示す図である。
【００２９】
まず、検索要求メッセージ及びそれに対する応答メッセージの流れについて、ノード１００ａが検索要求を発した場合を例に説明する。
ノード１００ａでは、利用者が入力装置９０３を用いて検索条件を入力する。
検索条件は、データセット２１０に含まれるメタデータ２１２の項目名とその値を指定する。検索条件の指定は、完全一致のほか、例えば、前方一致、後方一致、範囲指定などによってもよいし、正規表現を用いて指定することとしてもよい。
検索条件のうち、データ形式に関する条件は、そのノード１００の表示装置９０４の表示能力等により定まる場合が多いので、利用者に入力させるのではなく、ノード１００ａの性能に基づいてあらかじめ所定の条件を記憶しておき、検索エンジン１２０が自動的に設定することとしてもよい。
ここでは、データ形式に関する検索条件を形式条件、その他の条件を属性条件と呼ぶこととする。
【００３０】
ノード１００ａの検索エンジン１２０は、入力された検索条件を含む検索要求メッセージの送信（通知）を、ネットワークエンジン１１０に依頼する。
【００３１】
図５（ａ）において、ノード１００ａのネットワークエンジン１１０では、ノード１００ｂに対し、検索条件通知部１１１が、検索要求メッセージ５１１（検索条件）を伝える（通知する）。
ここで、ノード１００ａがＰ２Ｐ型データ交換ネットワークシステム８００を介して接続しているノード１００は、ノード１００ｂ以外にも存在する場合もある。その場合、検索条件通知部１１１は、あらかじめ定められた所定の検索順路にしたがって、検索要求メッセージを通知する。例えば、ノード１００ａが接続しているすべてのノード１００に対して、検索要求メッセージを通知することとしてもよい。あるいは、ノード１００ａが接続しているノード１００のなかから、あらかじめ定められたノード１００だけに、検索要求メッセージを通知することとしてもよい。あるいは、あらかじめ定められたノード１００に対して検索要求メッセージを通知し、その検索が失敗した場合に、他のノード１００に対して検索要求メッセージを通知することとしてもよい。
【００３２】
ノード１００ｂのネットワークエンジン１１０では、ノード１００ａが通知した検索要求メッセージ５１１を検索条件取得部１１２が受け取る（取得する）。
ノード１００ｂの検索エンジン１２０では、合致データ検索部１２１及び形式相違データ検索部１２２が、ノード１００ｂのデータベース１３０を検索し、検索要求メッセージ５１１に含まれる検索条件に合致するデータを記憶しているか否かを判断する。
検索エンジン１２０は、データの検索において、まず属性条件が一致するデータがあるか否かを判断する。属性条件が一致するデータがある場合には、更に、形式条件も一致するデータがあるか否かを判断する。属性条件も形式条件も一致するデータがあれば、検索条件に合致するデータ（合致データ）を発見したことになる。一方、属性条件は一致するが、形式条件が一致しない場合には、形式のみ異なるデータ（形式相違データ）を発見したことになる。
この例では、ノード１００ｂのデータベース１３０は、属性条件の一致するデータを記憶していないものとする。ノード１００ｂの検索エンジン１２０は、合致データも、形式相違データもないと判断する。
【００３３】
ノード１００ｂの検索エンジン１２０は、該当するデータがないので、ネットワークエンジン１１０に対して、次のノードに対する検索要求メッセージの送付（通知）を依頼する。
なお、検索エンジン１２０は、データベース１３０を検索する前に、次のノードに対する検索要求メッセージの通知をしてもよい。それにより、遠いノード１００にデータがある場合には、検索要求メッセージが速く伝わることとなるので、発見が早くなり、好ましい。しかし、近いノード１００にデータがある場合には、無駄な検索要求メッセージが送信され、ネットワークのトラフィックが増えることとなるので、好ましくない。
【００３４】
図５（ｂ）において、ノード１００ｂのネットワークエンジン１１０では、ノード１００ｃに対し、検索条件通知部１１１が検索要求メッセージ５１２（内容は、ライフタイム（後述）を除き検索要求メッセージ５１１と同じ）を伝える（通知する）。
検索要求メッセージ５１２を通知するノードの選択は、ノード１００ａの場合と同様である。ただし、ノード１００ｂが検索要求メッセージ５１１の通知を受けた相手であるノード１００ａに対しては、検索要求メッセージ５１２を通知しない。無限ループになることを防ぐためである。
【００３５】
ノード１００ｃのネットワークエンジン１１０では、ノード１００ｂが通知した検索要求メッセージ５１２を、検索条件取得部１１２が受信（取得）する。
ノード１００ｃの検索エンジン１２０では、合致データ検索部１２１及び形式相違データ検索部１２２が、ノード１００ｃのデータベース１３０（データ記憶部１３１）を検索し、検索要求メッセージ５１２に含まれる検索条件に合致するデータを記憶しているか否かを判断する。
この例では、ノード１００ｃのデータベース１３０は、属性条件も形式条件も一致するデータを記憶しているものとする。ノード１００ｃの検索エンジン１２０（合致データ検索部１２１）は、合致データがあると判断する。
【００３６】
ノード１００ｃの検索エンジン１２０は、データベース１３０が該当するデータを保持していたので、ネットワークエンジン１１０に対して、検索応答メッセージの送付（通知）を依頼する。
【００３７】
図５（ｃ）において、ノード１００ｃのネットワークエンジン１１０では、検索要求メッセージ５１２の通知を受けた相手であるノード１００ｂに対し、検索結果通知部１１３が、検索応答メッセージ５２１（検索結果）を送付（通知）する。
検索応答メッセージ５２１の内容は、ノード１００ａからの検索要求に対する合致データを発見した旨、および、そのデータを記憶しているノード１００は、ノード１００ｃである旨を示す情報である。
【００３８】
ノード１００ｂのネットワークエンジン１１０では、ノード１００ｃが通知した検索応答メッセージ５２１を、検索結果取得部１１４が取得する。
ノード１００ｂの検索エンジン１２０では、この検索応答メッセージ５２１がノード１００ａからの検索要求に対するものであること、ノード１００ｂのデータベース１３０には、該当するデータがないが、ノード１００ｃのデータベース１３０に該当するデータがあることを、検索結果生成部１２５が判別し、ネットワークエンジン１１０に対して、検索応答メッセージの送付を依頼する。
【００３９】
図５（ｄ）において、ノード１００ｂのネットワークエンジン１１０では、検索要求メッセージ５１１の通知を受けた相手であるノード１００ａに対し、検索結果通知部１１３が、検索応答メッセージ５２２を返す（通知する）。
検索応答メッセージ５２２の内容は、ノード１００ａからの検索要求に対する合致データを発見した旨、および、そのデータを記憶しているノード１００は、ノード１００ｃである旨を示す情報である。
【００４０】
ノード１００ａのネットワークエンジン１１０では、ノード１００ｂが通知した検索応答メッセージ５２２を、検索結果取得部１１４が取得する。
ノード１００ａの検索エンジン１２０は、この検索応答メッセージ５２２が、自己（ノード１００ａ）からの検索要求に対するものであることを判別する。
【００４１】
ノード１００ａの検索エンジン１２０は、他にも検索要求メッセージを通知したノードがある場合には、すべての検索要求メッセージに対する検索応答メッセージが返ってきたかを判断し、すべての検索応答メッセージが返ってきた場合に、検索が完了したと判断する。
【００４２】
ノード１００ａの検索エンジン１２０では、検索が完了したと判断した場合、検索結果表示部１２６が、表示装置９０４を用いて、検索結果を表示する。あるいは、検索が完了するのを待たず、データを発見した旨の検索応答メッセージを取得するごとに随時、検索結果を表示することとしてもよい。
【００４３】
ノード１００ａの検索エンジン１２０では、転送要求入力部１２７が、例えば、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）機能により、表示した検索結果のなかから、利用者が入手したいデータを選択させる。
すなわち、ユーザ（利用者）は、表示装置９０４に表示された検索結果を確認し、そのなかに、入手したいデータがある場合には、そのデータの転送を要求する操作（例えば、データをボタン形式で表示し、そのボタンを利用者がクリックするなど）を行う。
この例では、利用者が、ノード１００ｃにあるデータの転送を要求する操作を行ったものとする。
【００４４】
ノード１００ａの検索エンジン１２０では、転送要求入力部１２７が、利用者の操作を認識し、ネットワークエンジン１１０に対して、ノード１００ｃにあるデータの転送要求メッセージの送付（通知）を依頼する。
【００４５】
図５（ｅ）において、ノード１００ａのネットワークエンジン１１０では、ノード１００ｃがデータを記憶している旨の検索応答メッセージ５２２の通知を受けた相手であるノード１００ｂに対し、転送要求通知部１１５が、データ転送要求メッセージ５３１を送付（通知）する。
なお、ノード１００ｃに対して直接、データ転送要求メッセージを通知してもよい。そのため、検索応答メッセージにおいて、ノード１００ｃのＩＰアドレスやメールアドレスなど、ノード１００ｃに対してデータ転送要求メッセージを送付するのに必要な情報を含むこととしてもよい。
【００４６】
あるいは、選択したデータが、ノード１００の表示装置９０４で表示できないデータであるなど、形式条件を満たさないデータである場合には、データ変換サーバ（データ変換装置の一例）に対し、データを変換して転送するよう要求する変換要求メッセージを送付することとしてもよい。
しかし、変換前のデータを取得したのち、ノード１００の内部でデータ変換を行ってもよいし、取得したデータをデータ変換サーバに送付して、データ変換を要求してもよい。
また、特定のデータ変換サーバに負荷が集中するのを避けるため、転送要求メッセージのなかに、データ変換要求も含めて送付し、データ転送途中のノード１００の中で余力のあるノード１００が、データ変換を行うこととしてもよい。
【００４７】
ノード１００ｂのネットワークエンジン１１０では、ノード１００ａが通知したデータ転送要求メッセージ５３１を、転送要求取得部１１６が受け取る（取得する）。
ノード１００ｂの検索エンジン１２０は、データ転送要求メッセージ５３１が、ノード１００ｃに対するものである（自己に対するものではない）ことを判別し、ネットワークエンジン１１０に対して、ノード１００ｃにあるデータ転送要求メッセージの送付を依頼する。
【００４８】
図５（ｆ）において、ノード１００ｂのネットワークエンジン１１０では、ノード１００ｃに対し、転送要求通知部１１５が、データ転送要求メッセージ５３２を送付（通知）する。
【００４９】
ノード１００ｃのネットワークエンジン１１０では、ノード１００ｂが通知したデータ転送要求メッセージ５３２を、転送要求取得部１１６が受け取る（取得する）。
ノード１００ｃの検索エンジン１２０は、データ転送要求メッセージ５３２が、自己（ノード１００ｃ）に対するものであることを判別する。
【００５０】
ノード１００ｃの検索エンジン１２０は、転送データ生成部１４１が、データ転送要求メッセージ５３２において指定されたデータをデータベース１３０から読み出し、ネットワークエンジン１１０に送付を依頼する。
【００５１】
図５（ｇ）において、ノード１００ｃのネットワークエンジン１１０では、該当するデータ（転送データ５４１）を、データ転送要求メッセージ５３２の通知を受けた相手であるノード１００ｂに対し、データ転送部１１７が転送する。
なお、ノード１００ａに対して直接、データを転送してもよい。そのため、データ転送要求メッセージあるいは検索要求メッセージにおいて、ノード１００ａのＩＰアドレスやメールアドレスなど、ノード１００ａに対してデータを転送するのに必要な情報を含むこととしてもよい。
【００５２】
ノード１００ｂのネットワークエンジン１１０では、ノード１００ｃが転送した転送データ５４１を、転送データ取得部１１８が受け取る（取得する）。
ノード１００ｂの検索エンジン１２０では、転送データ判別部１４２が、このデータの転送を要求したのが、ノード１００ａである（自己ではない）ことを判別し、ネットワークエンジン１１０に対して、データの転送を依頼する。
【００５３】
図５（ｈ）において、ノード１００ｂのネットワークエンジン１１０では、ノード１００ａに対し、データ転送部１１７が受け取ったデータを転送する（転送データ５４２）。
【００５４】
ノード１００ａのネットワークエンジン１１０では、ノード１００ｂが転送した転送データ５４２を、転送データ取得部１１８が受け取る（取得する）。
ノード１００ａの検索エンジン１２０では、転送データ判別部１４２が、このデータの転送を要求したのが、自己（ノード１００ａ）であることを判別し、転送を完了する。
【００５５】
以上のように、検索要求メッセージと、それに対する応答を、伝言ゲームのようにやり取りすることにより、サーバ／クライアントの区別なく、ネットワークにおいて情報の検索・調達が行われる。
【００５６】
また、データが見つからない場合に、無限に検索要求メッセージが伝達されて、発散する（検索が終了しない）ことを防ぐため、検索要求メッセージには、ライフタイム（寿命）を設ける。
ライフタイムは所定の自然数を、最初に検索要求メッセージを発生するノード１００において、検索エンジン１２０が設定する。
検索要求メッセージを受け取ったノード１００では、検索要求メッセージを他のノード１００に通知する際、検索エンジン１２０がライフタイムを１つ減らして通知する。また、ライフタイムが０になった場合は、他のノード１００に対して、検索要求メッセージを転送（通知）しない。その結果、データが発見できなかった場合には、検索エンジン１２０は、前のノードに対し、検索失敗を内容とする検索応答メッセージを通知する。
【００５７】
図５の例を使って説明する。
図５（ａ）において、ノード１００ａの検索エンジン１２０は、例えば、ライフタイム５を設定した検索要求メッセージ５１１を生成し、ネットワークエンジン１１０がノード１００ｂに通知する。
図５（ｂ）において、ノード１００ｂの検索エンジン１２０は、ライフタイムを１減らし、ライフタイムを４とした検索要求メッセージ５１２を、ネットワークエンジン１１０がノード１００ｃに通知する。
この例では、ライフタイムが０になる前にデータが発見されたので、検索に成功する。
【００５８】
しかし、仮に、ノード１００ｃでもデータが発見されなかったとすると、ノード１００ｃはライフタイムを更に１減らして３とした検索要求メッセージを次のノードに通知する。
そして、ライフタイムが０となった検索要求メッセージを受け取ったノード１００は、データベース１３０内の検索は行うが、更にその次のノードに対して検索要求メッセージを送信することはしない。
したがって、検索エンジン１２０（合致データ検索部１２１、形式相違データ検索部１２２）が、データベース１３０のなかに、条件に合うデータが発見できなかった場合、ネットワークエンジン１１０が、条件に合うデータを発見できなかった旨を内容とする検索応答メッセージを、前のノード（検索要求メッセージの通知を受けた相手であるノード）に対して通知する。
このように、ノードを通過するたびにライフタイムを消費していき、０になるとその検索要求メッセージは次のノードに転送されないので、検索要求が発散することはない。
【００５９】
なお、検索応答メッセージやデータ転送要求メッセージには、ライフタイムは存在しない。これらのメッセージは、宛先が明示されているものであり、発散する心配がないからである。
【００６０】
次に、検索エンジン１２０の動作について、詳しく説明する。
【００６１】
検索条件入力部１２３は、表示装置９０４を用いて、ＧＵＩ等のインターフェースを表示し、利用者に、検索条件を入力させる。
【００６２】
検索要求生成部１２４は、検索条件入力部１２３が入力した検索条件に基づいて、検索要求メッセージを生成する。また、ネットワークエンジン１１０の検索条件取得部１１２が他のノード１００から検索要求メッセージを取得した場合も、検索要求メッセージを生成する。
検索要求メッセージには、検索条件のほか、検索要求メッセージのＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）番号、検索要求を出したノード１００を示す情報（例えば、ノード固有のＩＤ番号、ＩＰアドレス、メールアドレスなど）、ライフタイムなどが含まれる。
【００６３】
合致データ検索部１２１は、ネットワークエンジン１１０（検索条件取得部１１２）が他のノード１００から検索要求メッセージを取得した場合に、取得した検索要求メッセージに基づく検索条件に合致するデータを、データベース１３０から検索する。
また、形式相違データ検索部１２２は、取得した検索要求メッセージに基づく検索条件のうち、属性条件にのみ合致するデータを、データベース１３０から検索する。
【００６４】
検索結果生成部１２５は、合致データ検索部１２１及び形式相違データ検索部１２２がデータベース１３０を検索した結果、および、検索要求メッセージを通知した他のノード１００から通知される検索応答メッセージに基づいて、検索応答メッセージ（検索結果）を生成する。
検索応答メッセージには、検索条件に合致するデータを発見したか否か、発見した場合にそのデータを記憶しているノード１００を示す情報、どの（あるいは、誰の）検索要求メッセージに対する応答であるかを示す情報（例えば、検索要求メッセージのＩＤ番号、検索要求メッセージを生成したノードのＩＤ番号など）などが含まれる。
また、検索応答メッセージには、発見したデータのメタデータ２１２が含まれている。なお、メタデータ２１２のすべてを含む必要はなく、検索条件として指定された項目についてのメタデータ２１２だけでもよい。
【００６５】
検索結果表示部１２６は、検索要求生成部１２４が生成した検索要求メッセージに対する応答として、ネットワークエンジン１１０の検索結果取得部１１４が検索応答メッセージを取得した場合に、取得した検索応答メッセージに基づいて、表示装置９０４を用いて、検索結果を表示する。
【００６６】
転送要求入力部１２７は、表示した検索結果のなかから、利用者が入手を望むデータを選択させ、入力装置９０３を用いて入力させる。
【００６７】
転送要求生成部１２８は、転送要求入力部１２７が入力した、利用者が入手を望むデータの選択に基づいて、転送要求メッセージを生成する。また、ネットワークエンジン１１０の転送要求取得部１１６が他のノードからの転送要求メッセージを取得し、その転送要求メッセージが自己（ノード１００）に対するものでない場合も、取得した転送要求メッセージと同一の内容の転送要求メッセージを生成する。
転送要求メッセージには、転送を要求したノード１００を示す情報、転送を要求したデータを記憶しているノード１００を示す情報などが含まれる。
【００６８】
転送データ生成部１４１は、ネットワークエンジン１１０の転送要求取得部１１６が他のノードからの転送要求メッセージを取得し、その転送要求メッセージが自己（ノード１００）に対するものである場合に、データベース１３０から該当するデータを読み出し、転送データを生成する。
また、ネットワークエンジン１１０の転送データ取得部１１８が転送データを取得し、取得した転送データが自己（ノード１００）に対するものでない場合にも、転送データを生成する。このとき生成される転送データは、取得した転送データと同じものである。しかし、転送要求メッセージにおいて、データの変換も求められている場合には、データ変換を行った結果のデータを転送データとしてもよい。
転送データ生成部１４１が生成した転送データは、ネットワークエンジン１１０の転送要求取得部１１６が転送要求メッセージを取得した相手のノードに対し、データ転送部１１７が転送する。
【００６９】
転送データ判別部１４２は、ネットワークエンジン１１０の転送データ取得部１１８が転送データを取得した場合に、取得した転送データが自己の要求したものかを判別する。取得した転送データが自己の要求したものである場合には、そのデータをデータベース１３０に登録（記憶）するなどの必要な処理を行う。また、取得した転送データが自己の要求したものでない場合には、取得した転送データを前のノードに転送する。
【００７０】
変換要求生成部１４３は、データ変換サーバに対して、データ形式の変換を要求する変換要求メッセージを生成する。変換要求生成部１４３が生成した変換要求メッセージは、ネットワークエンジン１１０の変換要求通知部１１９が、データ変換サーバに対して、通知する。
なお、データ変換サーバは、専用の装置であってもよいし、ノードの１つであってもよい。
【００７１】
図６は、この実施の形態における検索エンジン１２０の処理の流れの一例を示すフローチャート図である。
【００７２】
Ｓ１１において、検索エンジン１２０は、初期設定処理を行う。
初期設定処理は、ノード１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やシステムの実装方式に依存するが、ネットワークエンジン１１０を用いて、他のノード１００とのＰ２Ｐプロトコルによる通信が可能な状態とし、検索処理の実行に使用する記憶領域を記憶装置９０２に確保し、各種状態フラグを初期状態にする処理を行う。
例えば、Ｐ２Ｐ型データ交換ネットワークシステム８００に接続している他のノード１００の状態を調査して、メッセージのやり取りができるノード１００のリストを作成する。あるいは、ノード１００の表示装置９０４の表示能力を調査して、検索条件として、表示可能な画面サイズを設定する。
【００７３】
Ｓ１２において、検索条件入力部１２３は、検索条件入力画面をディスプレイ（表示装置９０４）上に表示する。
図７は、この実施の形態において、検索条件入力部１２３が表示する検索条件入力画面の一例である。この例は、形式を指定して映画を検索するための検索条件入力を行う際のＧＵＩの画面例である。
【００７４】
Ｓ１３において、検索エンジン１２０は、イベントの発生を待って、待機状態となる。
イベントが発生した場合には、Ｓ１４に進み、それぞれのイベントに対応した処理を行う。イベント対応処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
検索エンジン１２０が対応するイベントには、例えば、次のようなものがある。
【００７５】
図８は、この実施の形態における検索エンジン１２０の処理のうち、検索要求イベントに対する処理の流れの一例を示すフローチャート図である。
検索要求イベントは、利用者が検索条件入力画面に検索条件を入力し、検索ボタンをクリックすることにより発生する。
【００７６】
利用者は、検索エンジン１２０の検索条件入力部１２３が表示した検索条件入力画面に対して、検索条件を入力する。
利用者が検索条件を入力し、検索ボタンを押すと、検索要求イベントが発生する。
Ｓ１３において、検索エンジン１２０は、検索要求イベントの発生を検出し、Ｓ２１に処理を移す。
【００７７】
Ｓ２１において、検索エンジン１２０の検索要求生成部１２４は、利用者が入力した検索条件に基づいて、検索要求メッセージを生成する。
検索要求生成部１２４が生成した検索要求メッセージは、ネットワークエンジン１１０の検索条件通知部１１１が、経路上の次のノードに送信（通知）する。
【００７８】
Ｓ２２において、検索エンジン１２０は、検索中であることを示すフラグを立てる。また、検索中であることが利用者にもわかるよう、例えば、検索ボタンを操作できないようにし、代わりに検索中止ボタンを表示する。あるいは、マウスポインタを砂時計の形にする。
【００７９】
Ｓ２２の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【００８０】
図９は、この実施の形態における検索エンジン１２０の処理のうち、検索応答受信イベントに対する処理の流れの一例を示すフローチャート図である。
検索応答受信イベントは、ノード１００が他のノードに対して検索要求メッセージを通知した場合に、それに対する応答として、ネットワークエンジン１１０の検索結果取得部１１４が検索応答メッセージ（検索結果）を取得することにより発生する。
【００８１】
Ｓ２１において生成した検索要求メッセージに対する応答として、他のノードが検索応答メッセージを返す。ネットワークエンジン１１０の検索結果取得部１１４は、他のノードが通知した検索応答メッセージを取得する。ネットワークエンジン１１０の検索結果取得部１１４が検索応答メッセージを取得すると、検索応答受信イベントが発生する。
Ｓ１３において、検索エンジン１２０は、検索応答受信イベントの発生を検出し、Ｓ４１に処理を移す。
【００８２】
Ｓ４１において、検索エンジン１２０の検索結果表示部１２６は、検索結果一覧画面を表示装置９０４に表示する。検索結果一覧画面には、検索の結果発見されたデータの一覧が表示され、一覧に表示されたデータを選択することにより、そのデータのメタデータ２１２の内容を見ることができる。これにより、利用者は、どのデータが所望のデータであるかを判断できる。また、一覧に表示されたデータを選択し、データ転送要求ボタンをクリックすることにより、そのデータの転送要求を入力することができる。
【００８３】
Ｓ４２において、検索エンジン１２０は、検索が完了したか否かを判断し、検索が完了した場合に、検索中であることを示すフラグをオフにする。また、利用者に検索が完了したことがわかるよう、画面に表示する。
【００８４】
Ｓ４２の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【００８５】
図１０は、この実施の形態における検索エンジン１２０の処理のうち、データ転送要求イベントに対する処理の流れの一例を示すフローチャート図である。
データ転送要求イベントは、取得した検索応答メッセージに基づいて、検索結果画面を表示した場合に、利用者が入手したいデータを選択することにより発生する。
【００８６】
利用者は、検索結果一覧画面を見て、その中に入手したいデータがあるか判断する。入手したいデータがある場合には、そのデータを選択し、データ転送要求ボタンを押す。利用者がデータ転送要求ボタンを押すと、データ転送要求イベントが発生する。
Ｓ１３において、検索エンジン１２０は、データ転送要求イベントの発生を検出し、Ｓ３１に処理を移す。
【００８７】
Ｓ３１において、検索エンジン１２０の転送要求生成部１２８は、利用者が選択したデータに基づいて、該当するデータを保持（記憶）するノードに対し、データ転送を行うよう要求するデータ転送要求メッセージを生成する。転送要求生成部１２８が生成したデータ転送要求メッセージは、ネットワークエンジン１１０の転送要求通知部１１５が、経路上の次のノードに送信（通知）する。
【００８８】
Ｓ３１の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【００８９】
図１１は、この実施の形態における検索エンジン１２０の処理のうち、データ転送応答イベントに対する処理の流れの一例を示すフローチャート図である。
データ転送応答イベントは、ノード１００が他のノードに対してデータ転送要求メッセージを通知した場合に、それに対する応答として、ネットワークエンジン１１０の転送データ取得部１１８が転送データを取得することにより発生する。
【００９０】
Ｓ３１において生成したデータ転送要求メッセージに対する応答として、他のノードがデータ転送を行い、ネットワークエンジン１１０の転送データ取得部１１８は、他のノードが転送した転送データを取得する。ネットワークエンジン１１０が転送データを取得すると、データ転送応答イベントが発生する。
Ｓ１３において、検索エンジン１２０は、データ転送応答イベントの発生を検出し、Ｓ５１に処理を移す。
【００９１】
Ｓ５１において、検索エンジン１２０は、取得したデータを取り込み、データベース１３０に記憶させる。また、取得したデータに応じた処理を行う。
【００９２】
以上の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【００９３】
上記以外に、検索エンジン１２０は、取得したデータの表示、表示を行うソフトウェアの呼出し、データの変換、共有データの登録等の機能を有し、それに応じたイベントも発生するが、ここでは説明を省略する。
【００９４】
以上説明したイベントは、ノード１００が検索要求を発生させるおおもとのノードである場合のイベントである。次に、ノード１００が検索を要求される側のノードである場合に発生するイベントについて説明する。
【００９５】
図１２は、この実施の形態における検索エンジン１２０の処理のうち、検索要求受信イベント及び検索応答受信イベントに対する処理の流れの一例を示すフローチャート図である。
検索要求受信イベントは、他のノードが通知した検索要求メッセージを、ネットワークエンジン１１０の検索条件取得部１１２が取得した場合に発生する。
Ｓ１３において、検索エンジン１２０は、検索要求受信イベントの発生を検出し、Ｓ６１に処理を移す。
【００９６】
Ｓ６１において、検索エンジン１２０の検索要求生成部１２４（検索条件転送部）は、ネットワークエンジン１１０が取得した検索要求メッセージに含まれるライフタイムを参照し、ライフタイムが１以上である場合には、ライフタイムを１減らした検索要求メッセージを生成する。検索要求生成部１２４が生成した検索要求メッセージは、ネットワークエンジン１１０が経路上の次のノードに送付（通知）する。
なお、この例では、データベース１３０を検索する前に、検索要求メッセージの生成、通知を行っているが、前述した通り、データベース１３０の検索をしたあとで、合致データを発見しなかった場合に、行うこととしてもよい。
【００９７】
Ｓ６２において、検索エンジン１２０の合致データ検索部１２１及び形式相違データ検索部１２２は、データベース１３０を検索し、要求された（検索条件を満たす）データがあるか否かを判断する。
合致データ検索部１２１は、データベース１３０が記憶したデータセット２１０の中に、属性条件も形式条件も満たすデータ（合致データ）があるか否かを判断する。
形式相違データ検索部１２２は、データベース１３０が記憶したデータセット２１０の中に合致データはないが、属性条件を満たすデータ（形式相違データ。例えば、要求されたデータとフォーマット形式が異なるデータ。メタデータ２１２の中で、フォーマット形式のみが異なるデータ）があるか否かを判断する。
また、形式相違データ検索部１２２は、形式相違データがある場合に、データベース１３０（元データ所在記憶部１３４）が、そのデータについての変換元パス情報２１３（元データ所在情報）を保持（記憶）しているか否かを判断する。
【００９８】
Ｓ６３において、検索エンジン１２０は、合致データがなく、形式相違データがあり、変換元パス情報２１３がある場合に、Ｓ６４に進む。それ以外の場合は、Ｓ６５に進む。
【００９９】
Ｓ６４において、検索エンジン１２０の検索要求生成部１２４は、形式相違データ検索部１２２が発見した形式相違データについての変換元パス情報を、データベース１３０（元データ所在記憶部１３４）から読出し、形式相違データの元データを記憶しているノード（元データ記憶装置）を判別する。
検索要求生成部１２４は、元データを記憶していると判別したノードに対する検索要求メッセージを生成する。
検索要求生成部１２４が生成した検索要求メッセージは、ネットワークエンジン１１０の検索条件通知部１１１が、検索経路にかかわらず、元データを記憶していると判別したノードに対して送付（通知）する。
なお、検索要求メッセージの送付に際して、ライフタイムは減らさなくてもよい。送付する相手が特定されているため、検索要求が発散する心配がないからである。しかし、通常の場合と同様、ライフタイムを減らし、０の場合は送付しないこととしてもよい。
【０１００】
Ｓ６４の処理が終了したら、元データを記憶していると判別したノードからの検索結果を待つ必要があるので、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１０１】
Ｓ６５において、検索エンジン１２０の検索結果生成部１２５は、検索が終了したか否かを判断し、終了した場合に、ネットワークエンジン１１０の検索条件取得部１１２が検索要求メッセージを取得した相手のノード１００に返す検索応答メッセージを生成する。終了していない場合には、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１０２】
検索が終了する場合には、合致データを発見した場合と、合致データを発見しなかった場合とがある。
合致データ検索部１２１がＳ６２においてデータベース１３０内に合致データを発見した場合には、他のノードからの回答を待たず、検索が終了したと判断する。
合致データ検索部１２１がＳ６２においてデータベース１３０内に合致データを発見しなかった場合には、他のノードからの回答を待つ必要がある。そこで、ネットワークエンジン１１０の検索条件通知部１１１が検索要求メッセージを通知した相手のノード１００が通知する検索応答メッセージを、ネットワークエンジン１１０の検索結果取得部１１４が取得する。取得した検索応答メッセージが、合致データを発見した旨を示す内容である場合には、それ以外のノードからの回答を待たず、検索が終了したと判断する。
【０１０３】
取得した検索応答メッセージが、合致データを発見していない旨を示す内容である場合には、ネットワークエンジン１１０の検索条件通知部１１１が検索要求メッセージを通知した相手のノード１００のすべてから、検索応答メッセージを取得したか否かを判断する。すべての検索応答メッセージを取得済である場合には、検索が終了したと判断する。
なお、なんらかの障害により、メッセージが途中で消失する可能性もあるので、制限時間（タイムアウト）を設け、制限時間が経過した場合には、検索応答メッセージをすべて取得していなくとも、検索が終了したと判断することとしてもよい。
【０１０４】
合致データを発見した場合に、検索結果生成部１２５が生成する検索応答メッセージには、合致データを発見した旨を示す情報、合致データを記憶しているノード１００を示す情報（例えば、ノードのＩＤ番号、ＩＰアドレス、メールアドレスなど）などが含まれる。
合致データを発見しなかったが、形式相違データを発見した場合に、検索結果生成部１２５が生成する検索応答メッセージには、形式相違データを発見した旨を示す情報、形式相違データを記憶しているノード１００を示す情報などが含まれる。
また、合致データも形式相違データも発見しなかった場合に、検索結果生成部１２５が生成する検索応答メッセージには、検索失敗を示す情報などが含まれる。
【０１０５】
検索結果生成部１２５が生成した検索応答メッセージは、そのノード１００が検索動作を始めるきっかけとなった検索要求メッセージを、ネットワークエンジン１１０の検索条件取得部１１２が取得した相手であるノード１００（前ノード）に対して、ネットワークエンジン１１０の検索結果通知部１１３が送付（通知）する。
【０１０６】
Ｓ６５の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１０７】
検索応答受信イベントは、検索要求生成部１２４がＳ６１またはＳ６４において生成した検索要求メッセージを、ネットワークエンジン１１０の検索条件通知部１１１が通知した他のノードからの検索応答メッセージを、ネットワークエンジン１１０の検索結果取得部１１４が受信（取得）した場合に発生する。
Ｓ１３において、検索エンジン１２０は、検索応答受信イベントの発生を検出し、Ｓ６５に処理を移す。
【０１０８】
なお、検索応答受信イベントは、自己（ノード１００）が検索要求を発生したおおもとのノードである場合にも発生する。検索応答メッセージには、どの（あるいは誰の）検索要求メッセージに対する応答であるかを示す情報が含まれているので、検索エンジン１２０は、その情報に基づいて、ノード１００が検索要求を発生したおおもとのノードであるのか、それとも他のノードからの検索要求に基づいて検索要求を出したのかを判別し、ノード１００がおおもとのノードである場合には、Ｓ４１に処理を移す。
【０１０９】
Ｓ６５の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１１０】
次に、検索エンジン１２０の合致データ検索部１２１、形式相違データ検索部１２２が、データベース１３０を検索する処理（Ｓ６２）について、詳しく説明する。
【０１１１】
図１３は、この実施の形態におけるデータベース検索処理の流れの一例を示すフローチャート図である。
【０１１２】
Ｓ６２１において、合致データ検索部１２１及び形式相違データ検索部１２２は、検索に用いるフラグを初期化して、リセットする。例えば、内容が同一なデータが存在しない（まだ発見していない）ことを一時記憶する。
【０１１３】
Ｓ６２２において、検索エンジン１２０は、データベース１３０が記憶しているデータセット２１０のなかから、データセット２１０を１つずつ取り出し、それぞれのデータセット２１０について、以下の処理を行う。
【０１１４】
Ｓ６２３において、合致データ検索部１２１は、取り出したデータセット２１０のメタデータ２１２が、検索条件のうち属性条件を満たすか否か（例えば、内容を示すメタデータ２１２の項目が同一か）を判断する。
例えば、検索条件が「種別＝映画、題名＝風とともに去りぬ、画面サイズ＝ＶＧＡ」であれば、取り出したデータセット２１０のメタデータ２１２のうち、項目「種別」の値が「映画」で、かつ、項目「題名」の値が「風とともに去りぬ」であるか否かを判定する。
属性条件を満たす場合には、Ｓ６２４に進む。また、属性条件を満たさない場合には、次のデータセット２１０について、Ｓ６２２以下の処理を繰り返す。
【０１１５】
Ｓ６２４において、合致データ検索部１２１は、属性条件を満たすデータセット２１０について、更に、形式条件も満たすか否か（例えば、フォーマット形式が一致するか）を判断する。
上記の例でいえば、取り出したデータセット２１０のメタデータ２１２のうち、項目「画面サイズ」の値が「ＶＧＡ」であるかを判定する。
形式条件を満たす場合には、Ｓ６２５に進む。また、形式条件を満たさない場合には、Ｓ６２６に進む。
【０１１６】
Ｓ６２５において、合致データ検索部１２１は、検索条件をすべて満たすデータ（合致データ。例えば、内容もフォーマット形式の同一なデータ）を発見したことを示すフラグをセットし、データベース１３０の検索を終了する。
【０１１７】
Ｓ６２６において、形式相違データ検索部１２２は、属性条件のみを満たすデータ（形式相違データ）を発見したことを示すフラグをセットする。
Ｓ６２７において、形式相違データ検索部１２２は、取り出したデータセット２１０に、変換元パス情報２１３（元データ所在情報）が含まれている場合に、変換元パス情報が存在することを示すフラグをセットする。
Ｓ６２７の処理が終了したら、次のデータセット２１０について、Ｓ６２２以下の処理を繰り返す。未探索のデータセット２１０のなかに、合致データがあるかもしれないからである。
【０１１８】
以上の処理が終了したのち、合致データ検索部１２１及び形式相違データ検索部１２２は、検索に用いたフラグの内容を見て、検索結果を判定する。
【０１１９】
なお、データベース１３０内の検索がすべて終わるのを待つのではなく、変換元パス情報２１３（元データ所在情報）を有する形式相違データを発見した時点で、変換元パス情報に基づいて、元データを記憶しているノード（元データ記憶装置）を判別し、判別したノードに、検索要求メッセージを通知してもよい。
【０１２０】
このように、データ形式を変換して生成したデータについて、その元となった元データを記憶しているノード（元データ記憶装置）を示す情報（元データ所在情報）を、そのデータとともにデータベース１３０に保持（記憶）しておくことにより、検索要求に基づいて、データベース１３０を検索する際の発見した形式相違データから、元データの所在を判別することができる。
そのノード（元データ記憶装置）が、検索要求の時点でまだ元データをしているとは限らない。また、元データが形式条件（例えば、フォーマット形式）を満たすデータである保証もない。しかし、他のノードと比べて、そのノード（元データ記憶装置）が形式条件を満たすデータを保持している可能性は高い。
また、元データが形式条件を満たさないデータであったとしても、その変換元を更に辿ることにより、形式条件を満たすデータを発見できる可能性もある。
更にいえば、元データが形式条件を満たさないデータであったとしても、形式相違データよりも情報量の多いデータ（例えば、解像度の高い画像など）であれば、形式相違データを変換して所望のデータ形式にするよりも、元データを変換して所望のデータ形式とするほうが、品質のよいデータを得ることができる。
【０１２１】
以上のように、変換元パス情報を保持し、検索要求時の自ノードの検索処理において、フォーマット形式のみが異なるデータを保持する可能性が高いノードに対して、検索要求メッセージを送付することができる。これにより、要求元ノードの利用者が所望のデータ検出の可能性が高くなり、データ検索の時間も短縮できるという効果を奏する。
【０１２２】
図１４は、この実施の形態における検索エンジン１２０の処理のうち、転送要求受信イベントに対する処理の流れの一例を示すフローチャート図である。
転送要求受信イベントは、他のノードが通知したデータ転送要求メッセージを、ネットワークエンジン１１０の転送要求取得部１１６が取得した場合に、発生する。
Ｓ１３において、検索エンジン１２０は、転送要求受信イベントの発生を検出し、Ｓ７１に処理を移す。
【０１２３】
Ｓ７１において、検索エンジン１２０は、転送要求取得部１１６が取得したデータ転送要求メッセージが、自己（ノード１００）に宛てたものであるか、他のノードに宛てたものであるかを判断する。
この判断は、データ転送要求メッセージに含まれる転送要求相手のノードを示す情報（ＩＤ番号など）により行う。
検索エンジン１２０は、データ転送要求メッセージが自己に宛てたものである場合には、Ｓ７２に進む。また、他のノードに宛てたものである場合には、Ｓ７３に進む。
【０１２４】
Ｓ７２において、検索エンジン１２０の転送データ生成部１４１は、データ転送要求メッセージにおいて、転送を要求されたデータ（データセット２１０）を、データベース１３０から読み出し、転送データを生成する。
転送データ（データ転送応答メッセージ）には、転送を要求されたデータセット２１０（実データ２１１、メタデータ２１２、変換元パス情報２１３）のほか、転送先のノードを示す情報（ＩＤ番号など）、どのデータ転送要求メッセージに対する応答であるかを示す情報（メッセージＩＤなど）が含まれる。
転送データ生成部１４１が生成した転送データは、ネットワークエンジン１１０の転送要求取得部１１６がデータ転送要求メッセージを取得した相手であるノードに対し、ネットワークエンジン１１０のデータ転送部１１７が転送（通知）する。
【０１２５】
Ｓ７２の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１２６】
Ｓ７３において、検索エンジン１２０の転送要求生成部１２８は、データ転送要求メッセージ（転送要求取得部１１６が取得したデータ転送要求メッセージと同じもの）を生成する。転送要求生成部１２８が生成したデータ転送要求メッセージは、ネットワークエンジン１１０の転送要求通知部１１５が、次のノードに通知する。
【０１２７】
Ｓ７３の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１２８】
図１５は、この実施の形態における検索エンジン１２０の処理のうち、データ転送応答イベントに対する処理の流れの一例を示すフローチャート図である。
データ転送応答イベントは、他のノードが転送した転送データ（データ転送応答メッセージ）を、ネットワークエンジン１１０の転送データ取得部１１８が取得した場合に、発生する。
Ｓ１３において、検索エンジン１２０は、データ転送応答イベントの発生を検出し、Ｓ８１に処理を移す。
【０１２９】
なお、データ転送応答イベントは、自己（ノード１００）が転送要求を発生したおおもとのノードである場合にも発生する。転送データには、どの（あるいは誰の）データ転送要求メッセージに対する応答であるかを示す情報が含まれているので、検索エンジン１２０の転送データ判別部１４２は、その情報に基づいて、ノード１００が転送要求を発生したおおもとのノードであるのか、それとも他のノードからの転送要求に基づいて転送要求を出したのかを判別し、ノード１００がおおもとのノードである場合には、Ｓ５１に処理を移す。
【０１３０】
Ｓ８１において、検索エンジン１２０の転送データ生成部１４１は、転送データを生成する。転送データ生成部１４１が生成する転送データは、転送データ取得部１１８が取得した転送データと同じものである。
【０１３１】
Ｓ８２において、検索エンジン１２０の転送データ判別部１４２は、自己（ノード１００）がデータ検索中であるか否かを示すフラグ（図８のＳ２２でセットしたもの）により、データ検索中であるか否かを理解（判断）する。
データ検索中である場合、転送データ判別部１４２は、転送データに含まれるメタデータ２１２により、転送データが、検索中の検索条件に合致するか否かを判断する。
すなわち、メタデータ２１２が検索条件に一致するかを判断する。メタデータ２１２には、実データ２１１のフォーマットの形式等を示す形式情報も含まれているので、フォーマットの一致等、形式条件を満たすかも確認できる。
【０１３２】
データ検索中でない場合、あるいは、転送データが、検索条件のうち属性条件を満たさない場合は、Ｓ１３に戻り、次のイベントの発生を待つ。
転送データが、検索条件（属性条件、形式条件）をすべて満たす（合致データである）場合は、Ｓ８４に進む。
転送データが、検索情報のうち属性条件は満たすが、形式条件は満たさない（形式相違データである）場合は、更に、転送データのデータセット２１０に、変換元パス情報２１３（元データ所在情報）が含まれているか否かを判断する。
変換元パス情報２１３（元データ所在情報）が含まれている場合には、Ｓ８３へ進む。含まれていない場合には、Ｓ８４へ進む。
【０１３３】
Ｓ８３において、検索エンジン１２０の検索要求生成部１２４は、変換元パス情報２１３によって元データを記憶しているノード（元データ記憶装置）を判別し、判別したノードに対する検索要求メッセージを生成する。
検索要求生成部１２４が生成した検索要求メッセージは、元データ記憶装置に対し、ネットワークエンジン１１０の検索条件通知部１１１が通知する。
【０１３４】
Ｓ８４において、転送データ判別部１４２は、転送データを、自己の要求に対する応答であるとみなし、データ取り込み処理を行う。
すなわち、図１１のＳ５１と同様に、取得したデータを、データベース１３０に登録（記憶）し、また、取得したデータに応じた処理を行う。
【０１３５】
Ｓ８５において、探していたデータが予定よりも早く見つかったので、検索エンジン１２０は、各種フラグ等を矛盾のないようセットする。
例えば、ネットワークエンジン１１０の検索結果取得部１１４に対して、検索応答メッセージを受信したように見せかけ、探していたデータが自己のデータベース１３０内で発見されたことにする。
【０１３６】
Ｓ８５の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１３７】
次に、検索エンジンの転送データ判別部１４２が他のノードに転送するデータが、自己の検索条件を満たすかを判別する処理（Ｓ８２）について、詳しく説明する。
図１６は、この実施の形態における転送データ判別処理の流れの一例を示すフローチャート図である。
【０１３８】
Ｓ８２１において、転送データ判別部１４２は、転送データのメタデータ２１２のうちの属性情報が、自己が検索中の検索条件のうちの属性条件を満たすか否かを判断する。
属性条件を満たす場合には、Ｓ８２２へ進む。満たさない場合には、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１３９】
Ｓ８２２において、転送データ判別部１４２は、転送データのメタデータ２１２のうちの形式情報が、自己が検索中の検索条件のうちの形式条件を満たすか否かを判断する。
形式条件を満たす場合には、Ｓ８４へ進む。満たさない場合には、Ｓ８２３へ進む。
【０１４０】
Ｓ８２３において、転送データ判別部１４２は、転送データのデータセット２１０に、変換元パス情報２１３が含まれているか否かを判断する。
含まれている場合には、Ｓ８３へ進む。含まれていない場合には、Ｓ８４へ進む。
【０１４１】
図１７は、この実施の形態において、Ｓ８１〜Ｓ８５の処理の流れを説明するための説明図である。
【０１４２】
図１７（ａ）において、ノード１００ａが、ノード１００ｃに対するデータ転送要求メッセージ５３１を、ノード１００ｂに通知する。ノード１００ｂは、データ転送要求メッセージ５３２を、ノード１００ｃに通知する。
【０１４３】
図１７（ｂ）において、ノード１００ｃは、データ転送要求メッセージ５３２において転送を要求された転送データ５４１を、ノード１００ｂに転送する。ノード１００ｂは、転送データ５４２を、ノード１００ａに転送する（Ｓ８１）。
【０１４４】
転送データ５４１には、実データ２１１だけでなく、データセット２１０（実データ２１１、メタデータ２１２、変換元パス情報２１３）が含まれている。
そこで、ノード１００ｂは、転送データ５４１のデータセット２１０に含まれるメタデータ２１２を調査し、自己が検索中の検索条件を満たすデータ（合致データまたは形式相違データ）であるかを確認する（Ｓ８２）。
【０１４５】
転送データ５４１が所望の合致データ（属性条件も形式条件も満たすデータ）であると判断した場合には、転送中のデータをそのままデータベース１３０に登録する（Ｓ８４）。
その後、ノード１００ｂの検索エンジン１２０は、必要な処理を行う。例えば、ＧＵＩ機能を用いて、表示装置９０４に、所望のデータの検索と取得が完了したことを表示する。
【０１４６】
転送データ５４１が、内容は一致する（属性条件を満たす場合。例えば、種別や題名等の項目が同じ場合など）が、データ形式が異なる（形式条件を満たさない場合。例えば、符号化方式が異なる場合など）値を持つメタデータ２１２を有すると判断した場合には、変換元パス情報２１３（元データ所在情報）により、転送データ５４１の元データを記憶しているノード（元データ記憶装置）を判別する（Ｓ８３）。
ノード１００ｂの検索要求生成部１２４は、判別したノード１００ｚに対する検索要求メッセージを生成する。
【０１４７】
図１７（ｃ）において、ノード１００ｂの検索条件通知部１１１は、元データを記憶していると判別したノード１００ｚに対し、検索要求生成部１２４が生成した検索要求メッセージを送付する。
【０１４８】
ノード１００ｚの検索条件取得部１１２は、ノード１００ｂが通知した検索要求メッセージ５１３を取得する。
ノード１００ｚの検索エンジン１２０は、通常の検索要求メッセージを取得した場合と同様に、データベース１３０を検索する。要求されたデータを発見した場合には、検索結果生成部１２５が、その旨を知らせる検索応答メッセージ５２３を生成する。
【０１４９】
図１７（ｄ）において、ノード１００ｚの検索結果通知部１１３は、検索要求メッセージ５１３を通知してきた相手であるノード１００ｂに対して、検索結果生成部１２５が生成した検索応答メッセージ５２３を送付する。
【０１５０】
ノード１００ｂの検索結果取得部１１４は、ノード１００ｚが通知した検索応答メッセージ５２３を取得する。ノード１００ｂの検索エンジン１２０は、取得した検索応答メッセージ５２３の内容に応じた処理をする。例えば、ノード１００ｚに該当するデータがあるという内容の検索応答メッセージであれば、ＧＵＩ機能を用いて、表示装置９０４に、データの検索が完了したことを表示し、利用者に知らせる。
【０１５１】
このように、他のノードが要求したデータを転送する処理において、転送するデータが、自己の検索している検索条件を満たすか否かを確認し、満たす場合には、そのデータを取り込むことにより、データ検索時間を短縮することができるという効果を奏する。
【０１５２】
また、転送するデータが、形式相違データである場合には、変換元パス情報（元データ所在情報）に基づいて、元データを記憶しているノード（元データ記憶装置）を判別し、判別したノードに対して検索要求を行なうので、所望のデータを発見できる可能性が高くなり、データ検索の時間も短縮できるという効果を奏する。
【０１５３】
実施の形態２．
実施の形態２を、図１８〜図１９を用いて説明する。
図１８は、この実施の形態におけるノード１００（データ変換装置の一例）の機能ブロックの構成の一例を示すブロック構成図である。
この実施の形態におけるノード１００のハードウェア構成は、実施の形態１において図２を用いて説明したものと同様なので、ここでは説明を省略する。
また、この実施の形態におけるノード１００は、実施の形態１において図１を用いて説明したＰ２Ｐ型データ交換ネットワークシステム８００に接続しているものとする。
【０１５４】
図１８において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０、データ変換部１５０を有する。
このうち、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０は、実施の形態１において図３を用いて説明したものとほぼ同様なので、ここでは相違点のみを説明する。
【０１５５】
ネットワークエンジン１１０は、実施の形態１で説明したサブブロックのほか、変換要求取得部１６１、変換データ転送部１６２を有する。
【０１５６】
変換要求取得部１６１は、他のノード（情報処理装置）が通知した変換要求メッセージを取得する。
変換要求取得部１６１が取得する変換要求メッセージには、変換要求メッセージのＩＤ番号、変換要求を発生させたノードを示す情報（ＩＤ番号など）、変換元となるデータ（元データ）を記憶しているノード（元データ記憶装置）を示す情報（ＩＤ番号など）、変換すべきデータの形式を示す情報などが含まれている。
【０１５７】
変換データ転送部１６２は、変換要求取得部１６１が変換要求メッセージを取得した相手のノードに対し、データ変換部１５０が変換したデータ（変換データ）及び元データ記憶装置を示す情報を転送（通知）する。
【０１５８】
データ変換部１５０は、変換要求取得部１６１が取得した変換要求メッセージに基づいて、元データ記憶装置から元データを取得し、データ形式を変換する。
【０１５９】
次に動作について説明する。
図１９は、この実施の形態におけるノード１００（データ変換装置）のデータ変換処理の流れの一例を示すフローチャート図である。
【０１６０】
Ｓ９１において、ネットワークエンジン１１０の変換要求取得部１６１が、他のノードから変換要求メッセージを取得する。
データ変換部１５０は、変換要求メッセージに基づいて、変換元となるデータ（元データ）を記憶しているノード（元データ記憶装置）を判別する。
【０１６１】
Ｓ９２において、転送要求生成部１２８は、データ変換部１５０が判別した元データ記憶装置に対して元データの転送を要求する転送要求メッセージを生成する。
転送要求生成部１２８が生成した転送要求メッセージは、元データ記憶装置に対して、ネットワークエンジン１１０の転送要求通知部１１５が通知する。なお、元データ記憶装置に対して直接通知するのではなく、伝言方式で通知することとしてもよい。
【０１６２】
転送要求メッセージを受け取った元データ記憶装置は、転送要求メッセージによって指定されたデータ（元データ）を転送する。
【０１６３】
Ｓ９３において、ネットワークエンジン１１０の転送データ取得部１１８は、元データ記憶装置が転送した元データを取得する。
【０１６４】
Ｓ９４において、データ変換部１５０は、転送データ取得部１１８が取得した元データを、変換要求メッセージにおいて指定されたデータ形式に変換して、変換データを生成する。
【０１６５】
Ｓ９５において、変換データ転送部１６２は、データ変換部１５０が変換した変換データと、元データ記憶装置を示す情報（元データ所在情報。例えば、変換元パス情報２１３）とを、データセットとして、変換要求取得部１６１が変換要求メッセージを取得した相手のノードに対して通知する。
【０１６６】
変換要求メッセージを通知したノードは、変換データ転送部１６２が通知した変換データと、元データ所在情報を取得し、例えば、データベース１３０のデータ記憶部１３１及び元データ所在記憶部１３４が、データセット２１０として記憶する。
【０１６７】
以後、このデータセット２１０がＰ２Ｐ型データ交換ネットワークシステム８００を通じて流通する場合には、必ず、元データ所在情報が伴うこととなるので、例えば、実施の形態１で説明したノードが、データ検索処理を行うに際して、元データの所在を見つけやすくなり、したがって、利用者が所望のデータを入手できる可能性が高くなり、また、検索の効率がよくなる。
【０１６８】
この実施の形態におけるノード１００が、実施の形態１で説明したＰ２Ｐ型データ交換ネットワークシステム８００の一部として動作する場合に、上記の効果が特に顕著であるが、Ｐ２Ｐ型データ交換ネットワークシステム８００に限らず、変換後のデータから変換元のデータを辿りたい場合に、その手段を提供できるという効果を奏する。
【０１６９】
また、この実施の形態で説明したノード１００は、Ｐ２Ｐ型データ交換ネットワークシステム８００を構成するノードとして、他のノードと同様なノードであるものとしているが、データ変換処理は負荷が大きいため、データ変換専用のサーバ（データ変換サーバ）として構成してもよい。その場合には、データベース１３０等、実施の形態１で説明した機能を実現するための機能ブロックはなくてもよい。
【０１７０】
なお、変換データと元データ所在情報は、変換要求メッセージを取得した相手のノードに対して通知するのではなく、変換要求メッセージにおいて指定されたノードに対して通知することとしてもよい。その場合、変換データを通知されるノードは、元データがどこあるか知らない場合もあるので、元データ所在情報をセットにして通知することによる効果が顕著となる。
【０１７１】
あるいは、元データ記憶装置が変換要求メッセージを通知してもよい。その場合、元データ記憶装置は、変換要求メッセージとともに、元データを、ノード１００に対して送付してもよい。そうすれば、元データを取得するための転送要求メッセージを通知する手順が必要ないので、その分、データ変換にかかる全体の時間を短縮できるという効果を奏する。
【０１７２】
実施の形態３．
実施の形態３を、図２０を用いて説明する。
この実施の形態におけるＰ２Ｐ型データ交換ネットワークシステム８００のシステム構成、ノード１００のハードウェア構成及びブロック構成は、実施の形態１において図１〜図３を用いて説明したものと同様なので、ここでは説明を省略する。
【０１７３】
図２０は、この実施の形態における検索エンジン１２０の処理の流れの一例を示すフローチャート図である。
【０１７４】
Ｓ１３において、検索エンジン１２０が、検索応答受信イベントの発生を検出した場合について説明する。
検索エンジン１２０は、Ｓ６３に処理を移す。
【０１７５】
Ｓ６３において、検索エンジン１２０の検索要求生成部１２４（形式合致判断部）は、検索結果取得部１１４が取得した検索結果メッセージの内容を判断する。
検索結果メッセージが、合致データを発見したことを示す内容、あるいは、検索失敗を示す内容である場合には、Ｓ６５に進む。
検索結果メッセージが、形式相違データを発見したことを示す内容である場合、検索エンジン１２０は、更に、その検索結果メッセージに変換元パス情報２１３が含まれるかを判断する。
そして、検索結果メッセージに変換元パス情報２１３が含まれている場合には、Ｓ６４に進み、含まれていない場合には、Ｓ６５に進む。
【０１７６】
Ｓ６４において、検索エンジン１２０の検索要求生成部１２４は、形式相違データ検索部１２２が発見した形式相違データについての変換元パス情報２１３を、検索結果メッセージから取り出し、形式相違データの元データを記憶しているノード（元データ記憶装置）を判別する。
検索要求生成部１２４は、元データを記憶していると判別したノードに対する検索要求メッセージを生成する。
ネットワークエンジン１１０の検索条件通知部１１１は、検索要求生成部１２４が生成した検索要求メッセージを、検索経路にかかわらず、元データを記憶していると判別したノードに対して通知しようとする。
【０１７７】
Ｓ６５の処理は、実施の形態１で図１２を用いて説明したものと同様なので、ここでは説明を省略する。
【０１７８】
Ｓ６６において、検索エンジン１２０は、検索要求メッセージを通知できたかを判断する。何らかの原因で検索要求メッセージを通知できなかった場合には、前ノードに対する検索応答メッセージを、検索結果生成部１２５が生成する。
検索要求メッセージを通知できない場合には、例えば、元データを記憶していると判別したノードを、ノード１００が知らない場合などがある。
【０１７９】
Ｓ６６で検索結果生成部１２５が生成する検索応答メッセージは、Ｓ６５で生成する検索応答メッセージとほぼ同様であるが、異なる点が一つある。
すなわち、形式相違データを発見した旨を示す情報、形式相違データを記憶しているノードを示す情報などのほかに、変換元パス情報２１３（元データ所在情報）を含む点である。
また、元データ記憶装置に対して検索要求メッセージを通知していない旨を示す情報を含むこととしてもよい。
【０１８０】
Ｓ６６の処理が終了したら、Ｓ１３に戻り、次のイベントの発生を待つ。
【０１８１】
これにより、形式相違データを記憶しているノードが、何らかの理由によって、元データ記憶装置に対して、検索要求をすることができなかった場合でも、検索応答メッセージを中継する途中のノードがそれを判別し、できる場合には、元データ記憶装置に対して検索要求メッセージを通知する。したがって、変換元パス情報２１３（元データ所在情報）がある場合には、確実に、元データ記憶装置に対する検索要求を出すことができるという効果を奏する。
【０１８２】
また、ノードによっては、処理を単純化するため、変換元パス情報２１３がある場合でも、元データ記憶装置に対する検索要求を出さない場合があってもよい。例えば、ノードの処理能力が極めて低い場合など、他のノードからの検索要求は受けるが、それを中継して他のノードに伝えることはしないノードがあってもよい。
【０１８３】
ここで説明した実施の形態によれば、そのようなノードがある場合でも、そのノードからの検索応答メッセージを受けたノードが、代わりに元データ記憶装置に対する検索要求を出すことになるので、元データを発見することができる。これにより、利用者が所望のデータを発見できる可能性が高くなり、データ検索の時間も短縮できるという効果を奏する。
【０１８４】
実施の形態４．
実施の形態４を、図２１〜図２２を用いて説明する。
この実施の形態におけるＰ２Ｐ型データ交換ネットワークシステム８００のシステム構成およびノード１００（情報処理装置、元データ記憶装置）のハードウェア構成は、実施の形態１において図１、図２を用いて説明したものと同様なので、ここでは説明を省略する。
【０１８５】
図２１は、この実施の形態におけるノード１００の機能ブロックの構成の一例を示すブロック構成図である。
図２１において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０、変換元パス情報データベース１７０を有する。
このうち、ネットワークエンジン１１０、検索エンジン１２０は、実施の形態１において説明したもの同様であるので、ここでは説明を省略する。
【０１８６】
変換元パス情報は、データセットの一部として保持（記憶）する必要はない。この実施の形態は、変換元パス情報を、メタデータとともに、自ノードの別のデータベースとして構築した場合の例である。
【０１８７】
図２１において、データベース１３０が記憶するデータセット２１０は、実データ２１１及びメタデータ２１２を含むが、変換元パス情報２１３（元データ所在情報）を含まない。その代わり、変換元パス情報データベース１７０が、メタデータ２１２と変換元パス情報２１３とを対応づけて記憶する。
【０１８８】
図２２は、この実施の形態におけるノード１００の機能ブロックの詳細の一例を示す詳細ブロック構成図である。
図２２において、データベース１３０は、データ記憶部１３１、属性情報記憶部１３２、形式情報記憶部１３３を有する。
データ記憶部１３１は、記憶装置９０２を用いて、データセット２１０のうち実データ２１１を記憶する。
属性情報記憶部１３２は、記憶装置９０２を用いて、データセット２１０のメタデータ２１２のうち、属性情報を記憶する。
形式情報記憶部１３３は、記憶装置９０２を用いて、データセット２１０のメタデータ２１２のうち、形式情報を記憶する。
【０１８９】
前述したとおり、この実施の形態におけるデータセット２１０には変換元パス情報２１３（元データ所在情報）を含まないので、データベース１３０には元データ所在記憶部がない。
【０１９０】
変換元パス情報データベース１７０は、属性情報記憶部１７２、形式情報記憶部１７３、元データ所在記憶部１７４を有する。
属性情報記憶部１７２、形式情報記憶部１７３は、それぞれデータベース１３０の属性情報記憶部１３２、形式情報記憶部１３３と同様である。
元データ所在記憶部１７４は、記憶装置９０２を用いて、そのデータの元データを記憶しているノード（元データ記憶装置）を示す情報（例えば、変換元パス情報）を記憶する。
【０１９１】
この実施の形態における各部の動作は、データベースの構造が異なることにより相違を除き、実施の形態１で説明したものと同様なので、ここでは説明を省略する。
【０１９２】
すなわち、形式相違データ検索部１２２がデータベース１３０を検索して、形式相違データを発見した場合、検索要求生成部１２４は、メタデータ２１２の内容をキーとして、そのデータセットと同じメタデータ２１２を、変換元パス情報データベースの格納データを対象として調査し、それに対応づけられた変換元パス情報２１３に基づいて、元データを記憶しているノード（元データ記憶装置）を判別する。
【０１９３】
これにより、既存のデータベース１３０を変更することなく、変換元パス情報とデータセットとを対応づけることができ、容易に、実施の形態１で説明したのと同じ機能を有するノード１００とすることができるという効果を奏する。
【０１９４】
実施の形態５．
実施の形態５を、図２３〜図２６を用いて説明する。
この実施の形態におけるＰ２Ｐ型データ交換ネットワークシステム８００のシステム構成およびノード１００（情報処理装置、元データ記憶装置の一例）のハードウェア構成は、実施の形態１において図１、図２を用いて説明したものと同様なので、ここでは説明を省略する。
また、この実施の形態におけるデータ変換装置３００（所在記憶装置の一例）のハードウェア構成も、実施の形態１において図２を用いて説明したノード１００と同様なので、ここでは説明を省略する。
この実施の形態におけるデータ変換装置３００は、他のノード１００と同様、Ｐ２Ｐ型データ交換ネットワークシステム８００に接続している。
【０１９５】
図２３は、この実施の形態におけるノード１００及びデータ変換装置３００の機能ブロックの構成の一例を示すブロック構成図である。
図２３において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０を有する。
なお、ネットワークエンジン１１０、検索エンジン１２０は、実施の形態１において図３を用いて説明したものとほとんど同様なので、共通する部分については記載を省略してある。
【０１９６】
ネットワークエンジン１１０は、図３で説明したもののほか、所在問い合わせ通知部１６３、所在回答取得部１６４を有する。
所在問い合わせ通知部１６３は、データ変換装置３００に対し、元データ所在問い合わせ部１４４が生成した所在問い合わせメッセージ（変換元パス取得メッセージ）を通知する。
所在回答取得部１６４は、所在問い合わせ通知部１６３が通知した所在問い合わせメッセージに対する回答として、データ変換装置３００が通知した所在回答メッセージ（応答メッセージ）を受け取る（取得する）。
【０１９７】
検索エンジン１２０は、図３で説明したもののほか、元データ所在問い合わせ部１４４を有する。
元データ所在問い合わせ部１４４は、形式相違データ検索部１２２がデータベース１３０内で形式相違データを発見した場合に、そのデータの元データを記憶しているノード（元データ記憶装置）について問い合わせる所在問い合わせメッセージを生成する。
また、元データ所在問い合わせ部１４４は、所在回答取得部１６４が所在回答メッセージを取得した場合に、所在回答メッセージから変換元パス情報２１３（元データ所在情報）を取り出す。検索要求生成部１２４は、元データ所在問い合わせ部１４４が取り出した変換元パス情報２１３から、元データを記憶しているノード（元データ記憶装置）を判別し、判別したノードに対する検索要求メッセージを生成する。
【０１９８】
データベース１３０は、データ記憶部１３１、属性情報記憶部１３２、形式情報記憶部１３３を有する。
データベース１３０が記憶しているデータセット２１０は、実施の形態４で説明したものと同様、変換元パス情報２１３を含まない。それ以外の点については、実施の形態１で説明したものと同様なので、ここでは説明を省略する。
【０１９９】
図２３において、データ変換装置３００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０、データ変換部１５０、変換元パス情報データベース１７０を有する。
このうち、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０、データ変換部１５０は、実施の形態２において図１８を用いて説明したノード１００のものとほぼ同様なので、共通する部分については記載を省略してある。
【０２００】
ネットワークエンジン１１０は、図１８で説明したもののほか、所在問い合わせ取得部１６５、所在回答通知部１６６を有する。
所在問い合わせ取得部１６５は、ノード１００が通知した所在問い合わせメッセージを取得する。
所在回答通知部１６６は、所在問い合わせ取得部１６５が取得した所在問い合わせメッセージに対する回答として、元データ所在回答部１４５が生成した所在回答メッセージを、所在問い合わせメッセージを取得した相手のノードに対して、通知する。
【０２０１】
検索エンジン１２０は、図１８で説明したもののほか、元データ所在回答部１４５を有する。
元データ所在回答部１４５は、所在問い合わせ取得部１６５が所在問い合わせメッセージを取得した場合に、変換元パス情報データベース１７０を検索する。問い合わせのあったデータについての変換元パス情報２１３（元データ所在情報）を発見した場合、その変換元パス情報２１３を含む所在回答メッセージを生成する。また、変換元パス情報２１３を発見しなかった場合には、その旨の情報を含む所在回答メッセージを生成する。
【０２０２】
変換元パス情報データベース１７０は、属性情報記憶部１７２、形式情報記憶部１７３、元データ所在記憶部１７４を有する。
変換元パス情報データベース１７０は、実施の形態４において説明したノード１００が有する変換元パス情報データベース１７０と同様なので、ここでは説明を省略する。
【０２０３】
変換元パス情報２１３（元データ所在情報）は、ノード１００が有している必要はなく、他のノード、または、他のプログラム実行装置が保持（記憶）してもよい。
この実施の形態では、変換元パス情報２１３を記憶する変換元パス情報データベースを、データ変換装置３００が有している場合の例について、説明する。
【０２０４】
次に動作について、説明する。
【０２０５】
図２４は、この実施の形態におけるデータ変換装置３００（所在記憶装置）のデータ変換処理の流れの一例を示すフローチャート図である。
【０２０６】
Ｓ９１〜Ｓ９４の処理は、実施の形態２において図１９を用いて説明したものと同様なので、ここでは説明を省略する。
【０２０７】
Ｓ９６において、変換データ転送部１６２は、変換要求取得部１６１が変換要求メッセージを取得した相手であるノードに対し、変換データを転送する。
【０２０８】
Ｓ９７において、変換元パス情報データベース１７０は、変換データのメタデータ２１２（属性情報、形式情報）と、元データを記憶しているノードを示す情報である変換元パス情報２１３（元データ所在情報）とを記憶する。
【０２０９】
図２５は、この実施の形態におけるノード１００（情報処理装置、元データ記憶装置）のデータベース検索処理の流れの一例を示すフローチャート図である。
【０２１０】
このうち、Ｓ６２１〜Ｓ６２６は、実施の形態１で図１３を用いて説明したものと同様なので、ここでは説明を省略する。
【０２１１】
Ｓ６２８において、元データ所在問い合わせ部１４４は、データ変換装置３００に対する所在問い合わせメッセージを生成する。
元データ所在問い合わせ部１４４が生成する所在問い合わせメッセージには、問い合わせにかかるデータのメタデータ２１２が含まれている。
元データ所在問い合わせ部１４４が生成した所在問い合わせメッセージは、データ変換装置３００に対し、所在問い合わせ通知部１６３が通知する。
所在問い合わせメッセージを取得したデータ変換装置３００は、変換元パス情報データベース１７０を検索し、その結果に応じた所在回答メッセージを返す。
ノード１００の所在回答取得部１６４が、データ変換装置３００が通知した所在回答メッセージを取得する。
【０２１２】
これにより、ノード１００は、変換元パス情報２１３を取得することができる。
【０２１３】
Ｓ６２７において、形式相違データ検索部１２２は、取得した所在回答メッセージに、変換元パス情報２１３（元データ所在情報）が含まれている場合に、変換元パス情報が存在することを示すフラグをセットする。
【０２１４】
このように、データ変換装置３００が変換元パス情報２１３（元データ所在情報）を記憶しておき、必要に応じてノード１００が問い合わせて、データ変換装置３００が回答することとすれば、ノード１００ごとに変換元パス情報２１３（元データ所在情報）を記憶する必要がなくなる。ノード１００ごとに変換元パス情報２１３を記憶すると、同じデータを複数のノードが記憶している場合、それぞれのノードが変換元パス情報２１３を持つことになる。この実施の形態によれば、変換元パス情報２１３は、データ変換装置３００が持ち、ノード１００ごとには保持しないので、一つのデータセット２１０についての変換元パス情報は一つだけとなり、全体として、記憶領域を節約できるという効果を奏する。
【０２１５】
なお、データ変換装置３００が複数ある場合には、ノード１００が複数のデータ変換装置３００に対して、元データ所在問い合わせを行えばよい。そのデータを変換したデータ変換装置３００以外のデータ変換装置３００からは、変換元パス情報２１３を発見できなかった旨の所在回答メッセージが通知されるが、そのデータを変換したデータ変換装置３００からは、変換元パス情報２１３を含む所在回答メッセージが通知されるので、他の所在回答メッセージは無視し、変換元パス情報２１３を得ることができる。
【０２１６】
この実施の形態では、変換元パス情報２１３をデータ変換装置３００が記憶しているが、変換元パス情報２１３を記憶するのは、データ変換装置３００でなくてもよい。
例えば、データ変換装置３００が複数存在する場合には、各データ変換装置３００が生成した変換元パス情報２１３を、一つのサーバ装置に集めることにより、そのサーバ装置に問い合わせることにより、すべてのデータについての変換元パス情報２１３を得ることができるようにすることができる。
【０２１７】
データ変換装置３００は、多数のノードからのデータ変換要求を受けるので、データ変換装置３００には、元データを記憶しているノード（元データ記憶装置）の情報が多数集まることとなる。そこで、データ変換装置３００が収集した変換元パス情報２１３をそのまま記憶することとすれば、変換元パス情報２１３を他のノードやサーバ装置に転送する必要がないので、好ましい。
【０２１８】
次に、検索エンジンの転送データ判別部１４２が他のノードに転送するデータが、自己の検索条件を満たすかを判別する処理（図１５のＳ８２）について、詳しく説明する。
図２６は、この実施の形態における転送データ判別処理の流れの一例を示すフローチャート図である。
【０２１９】
Ｓ８２１〜Ｓ８２２の処理は、実施の形態１において図１６を用いて説明したものと同様であるので、ここでは説明を省略する。
【０２２０】
Ｓ８２４において、検索エンジン１２０は、転送データの変換元パス情報２１３について、データ変換装置３００に対して問い合わせを行なう。
Ｓ８２４の処理は、上記説明したＳ６２８の処理と同様なので、ここでは説明を省略する。
【０２２１】
Ｓ８２３において、転送データ判別部１４２は、データ変換装置３００から取得した所在回答メッセージに、変換元パス情報２１３が含まれているか否かを判断する。
含まれている場合には、図１５のＳ８３へ進む。含まれていない場合には、図１５のＳ８４へ進む。
【０２２２】
この実施の形態では、ノード１００が変換元パス情報２１３を記憶していないので、転送データにおいても、変換元パス情報２１３は含まれていない。しかし、データ変換装置３００に対する問い合わせを行なうことで、変換元パス情報２１３を取得することができるので、それに基づいて、元データ記憶装置に対し、検索要求をすることができる。
これにより、所望のデータを発見できる可能性が高くなり、データ検索にかかる時間も短縮できるという効果を奏する。
【０２２３】
実施の形態６．
実施の形態６を、図２７〜図３２を用いて説明する。
この実施の形態におけるＰ２Ｐ型データ交換ネットワークシステム８００のシステム構成およびノード１００（情報処理装置、元データ記憶装置）のハードウェア構成は、実施の形態１において図１、図２を用いて説明したものと同様なので、ここでは説明を省略する。
【０２２４】
図２７は、この実施の形態におけるノード１００の機能ブロックの構成の一例を示すブロック構成図である。
図２７において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０を有する。
このうち、ネットワークエンジン１１０、検索エンジン１２０は、実施の形態１において説明したもの同様であるので、ここでは説明を省略する。
【０２２５】
図２８は、この実施の形態におけるデータベース１３０が記憶するデータセット２１０の内容の一例を示す図である。
データセット２１０は、実データ２１１（データの一例）、メタデータ２１２（属性情報、形式情報の一例）、変換サーバパス情報２１４（所在記憶装置情報）を有する。
実データ２１１、メタデータ２１２は、実施の形態１で図４を用いて説明したものと動揺であるので、ここでは説明を省略する。
【０２２６】
変換サーバパス情報２１４は、実データ２１１が、何らかの元になるデータ（元データ）のデータ形式を変換して得たデータである場合に、データ変換をしたデータ変換装置のパス情報（変換元のデータを記憶している他のノード１００を示す情報を記憶している所在記憶装置を示す情報の一例）を格納する。
【０２２７】
図２９は、この実施の形態におけるノード１００及びデータ変換装置３００の機能ブロックの構成の一例を示すブロック構成図である。
図２９において、ノード１００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０を有する。
なお、ネットワークエンジン１１０、検索エンジン１２０は、実施の形態１において図３を用いて説明したものとほとんど同様なので、共通する部分については記載を省略してある。
【０２２８】
ネットワークエンジン１１０は、図３で説明したもののほか、所在問い合わせ通知部１６３、所在回答取得部１６４を有する。
所在問い合わせ通知部１６３及び所在回答取得部１６４は、実施の形態５において図２３を用いて説明したものと同様なので、ここでは説明を省略する。
【０２２９】
検索エンジン１２０は、図３で説明したもののほか、元データ所在問い合わせ部１４４を有する。
元データ所在問い合わせ部１４４は、実施の形態５で説明したものと同様、所在問い合わせメッセージを生成する。
この実施の形態では、データベース１３０が変換サーバパス情報２１４を記憶しているので、変換サーバパス情報２１４に基づいて、そのデータを変換したデータ変換装置３００（所在記憶装置）を判別し、判別したデータ変換装置３００に対する所在問い合わせメッセージを生成する。
【０２３０】
データベース１３０は、データ記憶部１３１、属性情報記憶部１３２、形式情報記憶部１３３、所在記憶装置記憶部１３５を有する。
このうち、データ記憶部１３１、属性情報記憶部１３２、形式情報記憶部１３３は、実施の形態１で説明したものと同様なので、ここでは説明を省略する。
【０２３１】
所在記憶装置記憶部１３５は、記憶装置９０２を用いて、データセット２１０の変換サーバパス情報２１４（所在記憶装置情報）を記憶する。
【０２３２】
データ変換装置３００は、ネットワークエンジン１１０、検索エンジン１２０、データベース１３０、データ変換部１５０、変換元パス情報データベース１７０を有する。
データ変換装置３００の各ブロックは、実施の形態５で図２３を用いて説明したものと同様なので、ここでは説明を省略する。
【０２３３】
次に、動作について説明する。
図３０は、この実施の形態におけるデータ変換装置３００のデータ変換処理の流れの一例を示すフローチャート図である。
【０２３４】
Ｓ９１〜Ｓ９４の処理は、実施の形態２において図１９を用いて説明したものと同様なので、ここでは説明を省略する。
【０２３５】
Ｓ９８において、変換データ転送部１６２は、変換要求取得部１６１が変換要求メッセージを取得した相手であるノードに対し、変換データと、データ変換装置３００自身を示す情報（例えば、ＩＤ番号、パス情報、ＩＰアドレス、メールアドレスなど）とを転送（通知）する。
【０２３６】
変換要求メッセージを通知したノードは、変換データ転送部１６２が通知した変換データと、データ変換装置３００を示す情報とを取得し、例えば、データベース１３０のデータ記憶部１３１及び所在記憶装置記憶部１３５が、データセット２１０として記憶する。
【０２３７】
Ｓ９７の処理は、実施の形態５において図２３を用いて説明したものと同様なので、ここでは説明を省略する。
【０２３８】
図３１は、この実施の形態におけるノード１００（情報処理装置、元データ記憶装置）のデータベース検索処理の流れの一例を示すフローチャート図である。
【０２３９】
このうち、Ｓ６２１〜Ｓ６２６は、実施の形態１で図１３を用いて説明したものと同様なので、ここでは説明を省略する。
【０２４０】
Ｓ６２９において、元データ所在問い合わせ部１４４は、データベース１３０の所在記憶装置記憶部１３５が記憶した変換サーバパス情報２１４に基づいて、そのデータのデータ変換をしたデータ変換装置３００を判別する。
データベース１３０が変換サーバパス情報２１４を記憶していない場合には、次のデータセット２１０の処理に移る。変換サーバパス情報２１４を記憶している場合には、Ｓ６２８へ進む。
【０２４１】
Ｓ６２８において、元データ所在問い合わせ部１４４は、Ｓ６２９で判別したデータ変換装置３００に対する所在問い合わせメッセージを生成する。
【０２４２】
以下の処理は、実施の形態５において図２５を用いて説明したものと同様なので、ここでは説明を省略する。
【０２４３】
このように、データ変換装置３００がデータを変換した際に、変換したデータとともに、データ変換装置３００自身を示す情報を送付し、これを受け取ったノード１００は、これを変換サーバパス情報２１４（所在記憶装置情報）としてデータとともに記憶しておく。また、データ変換装置３００（所在記憶装置）は元データを記憶しているノード（元データ記憶装置）を示す情報（元データ所在情報）を記憶しておく。
これにより、元データを記憶しているノード（元データ記憶装置）を探すため、データ変換装置３００（所在記憶装置）に対する問い合わせをする必要が生じた場合に、データ変換装置３００（所在記憶装置）が複数あったとしても、どのデータ変換装置３００（所在記憶装置）に問い合わせをすればよいかを判別することができる。
したがって、元データ記憶装置を探す処理が効率よくできるようになるので、所望のデータを発見できる可能性が高くなり、検索にかかる時間も短縮できるという効果を奏する。
【０２４４】
図３２は、この実施の形態における転送データ判別処理（図１５のＳ８２）の流れの一例を示すフローチャート図である。
【０２４５】
Ｓ８２１〜Ｓ８２２の処理は、実施の形態１において図１６を用いて説明したものと同様であるので、ここでは説明を省略する。
【０２４６】
Ｓ８２５において、元データ所在問い合わせ部１４４は、転送データ取得部１１８が取得した転送データのデータセット２１０に、変換サーバパス情報２１４が含まれているか否かを判断する。
含まれている場合は、Ｓ８２４へ進む。含まれていない場合は、図１５のＳ８４へ進む。
【０２４７】
Ｓ８２４以下の処理は、実施の形態５において図２６を用いて説明したものと同様なので、ここでは説明を省略する。
【０２４８】
このように、変換元パス情報２１４（元データ所在情報）を保持（記憶）するプログラム実行装置（所在記憶装置）が複数ある場合、データセット２１０として、例えば、変換元パス情報２１４を保持するプログラム実行装置のパスを示す情報を含ませる。
これにより、ノード１００は、転送中のデータに基づいて、元データ記憶装置を探す処理が効率よくできるようになるので、データを発見できる可能性が高くなり、検索にかかる時間も短縮できるという効果を奏する。
【０２４９】
なお、変換元パス情報（元データ所在情報）を記憶する装置は、データ変換装置である必要はない。例えば、変換元パス情報を記憶する専用の変換元パス情報記憶装置（所在情報記憶装置）を設けてもよい。あるいは、ノード１００のなかに、実施の形態１で説明したように、変換元パス情報を保持するノードがあってもよい。
しかし、上記説明したデータ変換装置３００は、元データを記憶している装置から元データを取得するので、元データ記憶装置がどれであるかの情報を知っている。したがって、その情報を保持しておけば、その後、自己が変換したデータについての問い合わせに対して、元データ記憶装置を示す情報を回答できる。
【０２５０】
このように、データ変換装置３００が元データ所在情報を記憶し、問い合わせに対して元データ所在情報を回答する。データ変換装置３００は、ノード１００が複数のデータ変換装置３００のうち、どのデータ変換装置３００に対して問い合わせればよいかわかるよう、変換したデータと、自己を示す情報とをデータセット２１０として、通知する。これにより、ノード１００は、変換されたデータから元データを得ることができるという効果を奏する。
【０２５１】
また、この実施の形態で説明したデータセット２１０は、実施の形態１で説明したデータセット２１０と比較して、変換元パス情報２１３の代わりに、変換サーバパス情報２１４を含む。一般的に、すべてのノード１００が変換元データを記憶している可能性があるのに対し、データ変換装置３００は限られている。したがって、データ変換装置３００のほうが、ノード１００よりも数が少ない。変換元パス情報２１３、変換サーバパス情報２１４として、例えば、装置のＩＤ番号を用いる場合、変換サーバパス情報２１４のほうが変換元パス情報２１３よりも、少ないビット数のＩＤ番号を用いることができるので、ノード１００が同じ数のデータセット２１０を記憶する場合、必要な記憶装置９０２の記憶容量が少なくて済むという効果を奏する。
【０２５２】
以上説明したＰ２Ｐ型データ共有システム（Ｐ２Ｐ型データ交換ネットワークシステム）は、以下の特徴を持つ。
【０２５３】
以上説明したＰ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）とを組み合わせたデータセットを保持する各ノードの記憶装置部と、
他のノードとピアツーピア（Ｐ２Ｐ）の通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、自ノードに保持するデータセットに含まれる関連データ保持ノードのパス情報を用いて検索を要求することを特徴とする。
【０２５４】
上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２５５】
また、上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータとを組み合わせたデータセットを保持する各ノードの記憶装置部と、
各ノードは、メタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）とを組み合わせた第二のデータセットを保持する各ノードの第二の記憶装置部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、自ノードに保持する第二のデータセットに含まれる関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２５６】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２５７】
上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータとを組み合わせたデータセットを保持する各ノードの記憶装置部と、
メタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）とを組み合わせたデータセットを保持する記憶装置部をもつ他のプログラム実行装置（所在記憶装置）に対して、メタデータを送付し、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を取得する元データ所在問い合わせ部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、上記他のプログラム実行装置から取得した関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２５８】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２５９】
更に、上記Ｐ２Ｐ型データ共有システムは、
上記他のプログラム実行装置がデータ変換用サーバ（データ変換装置）であることを特徴とする。
【０２６０】
上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）を取得することを要求する他のプログラム実行装置（所在記憶装置）のパス情報（所在記憶装置情報）とを組み合わせたデータセットを保持する各ノードの記憶装置部と、
前記プログラム実行装置（所在記憶装置）は、メタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）とを組み合わせたデータセットを保持する記憶装置部を持ち、
データセットに含まれる他のプログラム実行装置（所在記憶装置）のパス情報（所在記憶装置情報）を用いて、メタデータを送付し、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を取得する元データ所在問い合わせ部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、データセットに含まれるパス情報（所在記憶装置情報）に指定された他のプログラム実行装置（所在記憶装置）から取得した関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２６１】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２６２】
更に、上記Ｐ２Ｐ型データ共有システムは、
上記他のプログラム実行装置がデータ変換用サーバ（データ変換装置）であることを特徴とする。
【０２６３】
上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータと、実データに関連するデータを保持しているノード（所在記憶装置）のパス情報（所在記憶装置情報）とを組み合わせたデータセットを保持する各ノードの記憶装置部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、他ノードに転送中のデータセット（転送データ）に含まれる関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２６４】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２６５】
上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータとを組み合わせたデータセットを保持する各ノードの記憶装置部と、
メタデータと、実データに関連するデータを保持しているノードのパス情報（元データ所在情報）を組み合わせたデータセットとを保持する記憶装置部をもつ他のプログラム実行装置（所在記憶装置）に対して、メタデータを送付し、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を取得する元データ所在問い合わせ部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、他ノードに転送中のデータセット（転送データ）に含まれるメタデータを用いて上記他のプログラム実行装置（所在記憶装置）から取得した関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２６６】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２６７】
更に、上記Ｐ２Ｐ型データ共有システムは、
上記他のプログラム実行装置がデータ変換用サーバ（データ変換装置）であることを特徴とする。
【０２６８】
上記Ｐ２Ｐ型データ共有システムは、
複数のプログラムを実行するプログラム実行装置のノードが対等な関係で協調動作するデータ交換ネットワークシステムであって、
各ノードは、実データと、実データに付属するメタデータと、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を取得することを要求する他のプログラム実行装置（所在記憶装置）のパス情報（所在記憶装置情報）とを組み合わせたデータセットを保持する各ノードの記憶装置部と、
前記プログラム実行装置は、メタデータと、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を組み合わせたデータセットを保持する記憶装置部を持ち、
データセットに含まれる他のプログラム実行装置（所在記憶装置）のパス情報（所在記憶装置情報）を用いて、メタデータを送付し、実データに関連するデータを保持しているノード（元データ記憶装置）のパス情報（元データ所在情報）を取得する元データ所在問い合わせ部と、
他のノードとピアツーピアの通信を行う通信部と、
データセットの検索、転送を実行する検索取得部とを有し、
前記検索取得部は、他ノードに転送中のデータセット（転送データ）に含まれるメタデータを用いてデータセットに含まれるパス情報（所在記憶装置情報）に指定された他のプログラム実行装置（所在記憶装置）から取得した関連データ保持ノード（元データ記憶装置）のパス情報（元データ所在情報）を用いて検索を要求することを特徴とする。
【０２６９】
更に、上記Ｐ２Ｐ型データ共有システムは、
保持しているノードのパス情報と実データとの関係が変換処理による関係であることを特徴とする。
【０２７０】
更に、上記Ｐ２Ｐ型データ共有システムは、
上記他のプログラム実行装置がデータ変換用サーバ（データ変換装置）であることを特徴とする。
【０２７１】
このように、ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００は、データ変換を実施した場合に、変換元のパス情報を保持しておく。検索要求メッセージを受信した際に、データフォーマット形式が異なる所望のデータを保持している場合、変換元のパス情報を用いて変換元データの有無を確認し、検索要求メッセージに対応する。
【０２７２】
また、ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００では、変換したデータに変換元パス情報を付属してデータ転送処理を行うことで、データ転送処理を実施した際に、データフォーマット形式が異なる所望のデータである場合、転送を行っているデータに付属する変換元のパス情報を用いて変換元データの有無を確認し、所望のデータを取得する。
【０２７３】
図３３は、ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００の一例を示す図である。
図３３において、携帯電話８０１，８０９、ノートＰＣ８０２，８０８、ＰＣ８０４，８０６、デジタルカメラ８０３，８０７、ＤＶＤデッキ８０５、変換用サーバ８５１は、インターネットに接続されており、Ｐ２Ｐ型のネットワークを構成している。
それぞれの装置は、上記説明したノード１００であり、画像や音声等のデータを交換する。
【０２７４】
この例において、携帯電話８０１がデータＡを検索している。携帯電話８０１が検索しているデータＡは、携帯電話８０９が保持しているが、携帯電話８０９は、検索経路上、携帯電話８０１から遠くにある。
【０２７５】
検索経路上、携帯電話Ａから携帯電話Ｚまでの間の一つのノードであるＰＣ８０４は、データＡをフォーマット形式変換したデータＡ’を保持している。また、データＡをデータＡ’に変換した際に、変換元のパス情報をデータＡ’と対応させて変換元パス情報２１３を保持する。
【０２７６】
携帯電話８０１が発行した検索要求メッセージは、ノートＰＣ８０２からＰＣ８０４に伝えられる。ＰＣ８０４の検索エンジン１２０は、各データに対応するメタデータ２１２を調査し、自端末のデータベース１３０に検索要求メッセージに指定したデータがあるかを判断する。検索エンジン１２０は、データＡとフォーマットの形式が異なる変換後データＡ’を見つける。さらに、ＰＣ８０４の検索エンジン１２０は変換後データＡ’に対応付けられた変換元パス情報２１３を用いて、変換元データの取得先である携帯電話８０９に対して、検索要求メッセージを送付する。
【０２７７】
検索要求メッセージを受信した携帯電話８０９の検索エンジン１２０は、各データに対応するメタデータ２１２を調査し、自端末のデータベース１３０に検索要求メッセージに指定されたデータがあると判断する。携帯電話８０９は、検索要求メッセージに対してデータを保持していることを回答する。
【０２７８】
以上のように、変換データに対応した変換元パス情報を保持し、変換元のデータを保持していたノードに対して検索要求メッセージを送付することで、従来よりも、短い検索経路で所望のデータを検出、取得することができる。したがって、検索要求メッセージにおけるライフタイムが小さくてよいので、検索要求メッセージの伝達にかかるネットワークへの負担も減らすことができる。
【０２７９】
図３４は、ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００の一例を示す図である。
図３４において、ノートＰＣ８１１はデータＢ’を検索した結果、ノートＰＣ８１５が保有しているデータＢ’を発見し、データの転送を依頼する。
一方、ノートＰＣ８１１からノートＰＣ８１５までの間の一つのノードであるＰＣ８１３は、それとは別に、データＢを検索中である。データＢは、携帯電話８１６が保有しているが、いまだ発見していない。
ノートＰＣ８１１から発信された転送要求メッセージの結果として、ノートＰＣ８１５からデータＢ’がデータ転送され、ＰＣ８１３は、データＢ’をＰＣ８１４から受け取る。ＰＣ８１３に搭載された検索エンジン１２０は、ＰＣ８１４からノートＰＣ８１１が所望するデータを受け取り、検索要求メッセージを受け取ったノートＰＣ８１２にデータを引き渡す。その際、検索エンジン１２０は、引き渡すデータに対応するメタデータを調査し、自端末が検索要求メッセージに指定したデータであるかを判断する。
【０２８０】
ＰＣ８１３の検索エンジン１２０は、引き渡す中のデータがＰＣ８１３の所望するデータＢとは内容が同じであるが、フォーマット形式が異なることを検出する。その際、検索エンジン１２０は、データＢ’に付属する変換元パス情報２１３を用いて、データＢを保持する携帯電話８１６に対して、新たに、検索要求メッセージを送付する。
【０２８１】
検索要求メッセージを受信した携帯電話８１６は、各データに対応するメタデータを調査し、自端末に検索要求メッセージに指定されたデータがあると判断する。携帯電話８１６は、検索要求メッセージに対してデータを保持していることを回答する。
【０２８２】
以上のように、変換データに付属する変換元パス情報２１３を調査し、変換元のデータを保持していたノードに対して検索要求メッセージを送付することで、従来では検出できなかったデータＢを取得することができる。また、変換処理が不要となる。
【図面の簡単な説明】
【０２８３】
【図１】実施の形態１におけるＰ２Ｐ型データ交換ネットワークシステム８００のシステム構成の一例、及び、Ｐ２Ｐ型データ交換ネットワークシステムを構成するノード１００（情報処理装置、元データ記憶装置の一例）の機能ブロックの構成の一例を示すシステム構成図。
【図２】実施の形態１におけるノード１００のハードウェア構成の一例を示すハードウェア構成図。
【図３】実施の形態１におけるノード１００の各機能ブロックの構成の一例を示す詳細ブロック構成図。
【図４】実施の形態１におけるデータセット２１０の内容の一例を示す図。
【図５】実施の形態１において、ネットワークプロトコルを用いた通信によるデータ検索処理、及び、検索の結果、発見された所望のデータを入手するまでの処理の流れの一例を示す図。
【図６】実施の形態１における検索エンジン１２０の処理の流れの一例を示すフローチャート図。
【図７】実施の形態１において、検索条件入力部１２３が表示する検索条件入力画面の一例である。この例は、形式を指定して映画を検索するための検索条件入力を行う際のＧＵＩの画面例である。
【図８】実施の形態１における検索エンジン１２０の処理のうち、検索要求イベントに対する処理の流れの一例を示すフローチャート図。
【図９】実施の形態１における検索エンジン１２０の処理のうち、検索応答受信イベントに対する処理の流れの一例を示すフローチャート図。
【図１０】実施の形態１における検索エンジン１２０の処理のうち、データ転送要求イベントに対する処理の流れの一例を示すフローチャート図。
【図１１】実施の形態１における検索エンジン１２０の処理のうち、データ転送応答イベントに対する処理の流れの一例を示すフローチャート図。
【図１２】実施の形態１における検索エンジン１２０の処理のうち、検索要求受信イベント及び検索応答受信イベントに対する処理の流れの一例を示すフローチャート図。
【図１３】実施の形態１におけるデータベース検索処理の流れの一例を示すフローチャート図。
【図１４】実施の形態１における検索エンジン１２０の処理のうち、転送要求受信イベントに対する処理の流れの一例を示すフローチャート図。
【図１５】実施の形態１における検索エンジン１２０の処理のうち、データ転送応答イベントに対する処理の流れの一例を示すフローチャート図。
【図１６】実施の形態１における転送データ判別処理の流れの一例を示すフローチャート図。
【図１７】実施の形態１において、Ｓ８１〜Ｓ８５の処理の流れを説明するための説明図。
【図１８】実施の形態２におけるノード１００（データ変換装置の一例）の機能ブロックの構成の一例を示すブロック構成図。
【図１９】実施の形態２におけるノード１００（データ変換装置）のデータ変換処理の流れの一例を示すフローチャート図。
【図２０】実施の形態３における検索エンジン１２０の処理の流れの一例を示すフローチャート図。
【図２１】実施の形態４におけるノード１００の機能ブロックの構成の一例を示すブロック構成図。
【図２２】実施の形態４におけるノード１００の機能ブロックの詳細の一例を示す詳細ブロック構成図。
【図２３】実施の形態５におけるノード１００及びデータ変換装置３００の機能ブロックの構成の一例を示すブロック構成図。
【図２４】実施の形態５におけるデータ変換装置３００（所在記憶装置）のデータ変換処理の流れの一例を示すフローチャート図。
【図２５】実施の形態５におけるノード１００（情報処理装置、元データ記憶装置）のデータベース検索処理の流れの一例を示すフローチャート図。
【図２６】実施の形態５における転送データ判別処理の流れの一例を示すフローチャート図。
【図２７】実施の形態６におけるノード１００の機能ブロックの構成の一例を示すブロック構成図。
【図２８】実施の形態６におけるデータベース１３０が記憶するデータセット２１０の内容の一例を示す図。
【図２９】実施の形態６におけるノード１００及びデータ変換装置３００の機能ブロックの構成の一例を示すブロック構成図。
【図３０】実施の形態６におけるデータ変換装置３００のデータ変換処理の流れの一例を示すフローチャート図。
【図３１】実施の形態６におけるノード１００（情報処理装置、元データ記憶装置）のデータベース検索処理の流れの一例を示すフローチャート図。
【図３２】実施の形態６における転送データ判別処理（図１５のＳ８２）の流れの一例を示すフローチャート図。
【図３３】ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００の一例を示す図。
【図３４】ここで説明したＰ２Ｐ型データ交換ネットワークシステム８００の一例を示す図。
【図３５】従来のＰ２Ｐ型データ交換ネットワークシステムの動作の一例を示す図。
【図３６】従来のＰ２Ｐ型データ交換ネットワークシステムの動作の一例を示す図。
【図３７】従来のＰ２Ｐ型データ交換ネットワークシステムの動作の一例を示す図。
【図３８】従来のＰ２Ｐ型データ交換ネットワークシステムの動作の一例を示す図。
【図３９】従来のＰ２Ｐ型データ交換ネットワークシステムの動作の一例を示す図。
【符号の説明】
【０２８４】
１００  ノード、１１０  ネットワークエンジン、１１１  検索条件通知部、１１２  検索条件取得部、１１３  検索結果通知部、１１４  検索結果取得部、１１５  転送要求通知部、１１６  転送要求取得部、１１７  データ転送部、１１８  転送データ取得部、１１９  変換要求通知部、１２０  検索エンジン、１２１  合致データ検索部、１２２  形式相違データ検索部、１２３  検索条件入力部、１２４  検索要求生成部、１２５  検索結果生成部、１２６  検索結果表示部、１２７  転送要求入力部、１２８  転送要求生成部、１３０  データベース、１３１  データ記憶部、１３２，１７２  属性情報記憶部、１３３，１７３  形式情報記憶部、１３４，１７４  元データ所在記憶部、１４１  転送データ生成部、１４２  転送データ判別部、１４３  変換要求生成部、１４４  元データ所在問い合わせ部、１４５  元データ所在回答部、１５０  データ変換部、１６１  変換要求取得部、１６２  変換データ転送部、１６３  所在問い合わせ通知部、１６４  所在回答取得部、１６５  所在問い合わせ取得部、１６６  所在回答通知部、１７０  変換元パス情報データベース、２１０  データセット、２１１  実データ、２１２  メタデータ、２１３  変換元パス情報、５１１〜５１３  検索要求メッセージ、５２１〜５２３  検索応答メッセージ、５３１〜５３２  データ転送要求メッセージ、５４１〜５４２  転送データ、８００  Ｐ２Ｐ型データ交換ネットワークシステム、９０１  ＣＰＵ、９０２  記憶装置、９０３  入力装置、９０４  表示装置、９０５  ネットワークインターフェース装置。
【図１】
2007102459.tif 000003
【図２】
2007102459.tif 000004
【図３】
2007102459.tif 000005
【図４】
2007102459.tif 000006
【図５】
2007102459.tif 000007
【図６】
2007102459.tif 000008
【図７】
2007102459.tif 000009
【図８】
2007102459.tif 000010
【図９】
2007102459.tif 000011
【図１０】
2007102459.tif 000012
【図１１】
2007102459.tif 000013
【図１２】
2007102459.tif 000014
【図１３】
2007102459.tif 000015
【図１４】
2007102459.tif 000016
【図１５】
2007102459.tif 000017
【図１６】
2007102459.tif 000018
【図１７】
2007102459.tif 000019
【図１８】
2007102459.tif 000020
【図１９】
2007102459.tif 000021
【図２０】
2007102459.tif 000022
【図２１】
2007102459.tif 000023
【図２２】
2007102459.tif 000024
【図２３】
2007102459.tif 000025
【図２４】
2007102459.tif 000026
【図２５】
2007102459.tif 000027
【図２６】
2007102459.tif 000028
【図２７】
2007102459.tif 000029
【図２８】
2007102459.tif 000030
【図２９】
2007102459.tif 000031
【図３０】
2007102459.tif 000032
【図３１】
2007102459.tif 000033
【図３２】
2007102459.tif 000034
【図３３】
2007102459.tif 000035
【図３４】
2007102459.tif 000036
【図３５】
2007102459.tif 000037
【図３６】
2007102459.tif 000038
【図３７】
2007102459.tif 000039
【図３８】
2007102459.tif 000040
【図３９】
2007102459.tif 000041