説明

情報処理装置、方法、及びプログラム

【課題】 簡単かつ低コストで文書等を再利用することができると共に利便性を向上させることができる情報処理装置、方法、及びプログラムを提供する。
【解決手段】 PC12A〜12D、プリンタ12EでP2Pネットワークが構成されている場合において、PC12Aが自ピアの共有フォルダにファイルをストアすると、これが他のピアに通知される。他ピア、例えばPC12Dは、そのファイルをPC12Aから取得し、必要に応じてファイルを所定のフォーマット、例えばパスワード付きのファイルに変換して記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、方法、及びプログラムに係り、より詳しくは、ネットワークを介して互いに接続された複数の装置の少なくとも一部が、専用のサーバを介することなく直接通信するピアツーピアシステムに接続可能な情報処理装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来、コンピュータ等の装置をネットワークを介して互いに接続するネットワークシステムの形態として、クライアント・サーバシステムと、ピアツーピア(以下、P2Pという)システムとがある。
【0003】
クライアント・サーバシステムは、サーバが各種情報資源を管理したり各種アプリケーションを提供するサービスを実行し、これをクライアントが利用するシステムであり、主従関係が固定的なシステムある。
【0004】
これに対し、P2Pシステムでは、基本的には専用のサーバを設けず、ネットワークに接続されたピア(例えばパーソナルコンピュータ等)の各々が、あるときは他のピアに対して所定のサービスを提供してサーバのように動作し、あるときは他のピアが提供するサービスを利用してクライアントのように動作するシステムであり、各ピアが対等なシステムである。このようなP2Pシステムに関して、従来から様々な技術が提案されている(例えば特許文献1及び特許文献2参照)。このようなP2Pシステムでは、各ピアでファイルを共有したりすることができる。
【0005】
ところで、一般的に、オフィス等において文書等を印刷するシチュエーションとしては、ユーザーが自分自身で作成した文書を印刷したり、受信メールに添付された文書を印刷したり、受信メールに表示されたURL(Uniform Resource Locator)や口頭等で指定されたファイルサーバーに存在する文書を印刷したりする場合等が考えられる。
【0006】
上記のようなP2Pシステムにおいて、ユーザーが自分自身で作成した文書を印刷する場合は、大抵の場合はその文書を共有する必要性は低いが、例えば、ユーザーが覚書として印刷しておきたい「組織図」、「レイアウト図」、「電話番号一覧」、「提案書」等は共有する必要性が高い場合がある。これらの文書は自分自身が印刷しようとすると、既に他の人も印刷しているようなケースが多々あるが、従来では、自分自身が必要とする文書等は、他人が既に同じ文書を印刷しているか否かに拘らず、各自が自分の責任で印刷していたためり、各ピアにおいて無駄な処理が行われている場合があった。
【0007】
この問題を解決するため、既に他人が印刷した文書等を再印刷するために、ジョブを保持しておくシステムが提案されている。
【特許文献1】特開2002−335269号公報
【特許文献2】特開2003−256363号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、一般的にはプリントサービスのような設備投資と運用投資としてコストを掛ける必要があるだけでなく、ユーザーは自分が印刷したい文書等を自分以外のユーザーが既に印刷していることを明示的に認識し、そのジョブを実行して印刷する操作を行わなければならず煩雑である、という問題があった。
【0009】
また、P2Pシステムにおいてファイルを共有する場合、ユーザーやピアの機能等に応じて共有されるファイルの種類や属性等を異ならせたい場合があるが、従来では元のファイルの種類や属性を変更することは考慮されておらず、利便性がよいとはいえなかった。
【0010】
本発明は、上記問題を解決すべく成されたものであり、簡単かつ低コストで文書等のデータを再利用することができると共に利便性を向上させることができる情報処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、請求項1記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、前記他の情報処理装置が公開した共有データを取得する取得手段と、前記共有データを、所定条件を設定した設定情報に基づいて変換する変換手段と、変換後のデータを記憶する記憶手段と、を備えたことを特徴とする。
【0012】
この発明によれば、情報処理装置はネットワークに接続される。例えば請求項6に記載したように、前記ネットワークは、複数の情報処理装置の少なくとも一部が特定のサーバを介さずに通信するピアツーピアネットワークとすることができる。
【0013】
取得手段は、他の情報処理装置が公開した共有データを取得し、変換手段は、取得した共有データを、所定条件を設定した設定情報に基づいて変換する。そして、変換後のデータは記憶手段に記憶される。
【0014】
例えば請求項2に記載したように、前記設定情報は、パスワード付きのデータに変換する条件を含むことができる。これにより、パスワードを入力しなければ共有データを参照できないので、安全性を高めることができる。
【0015】
また、請求項3に記載したように、前記設定情報は、アクセス権限を変更する条件を含むことができる。例えば、共有データへのアクセス権限を読み込みのみ可に変更する。これにより、共有データが改ざんされるのを防ぐことができる。
【0016】
また、請求項4に記載したように、前記変換条件は、前記共有データのバージョンを所定のバージョンに変換する条件を含むことができる。例えば、共有データのバージョンよりも古いバージョンで共有データを利用する場合には、取得した共有データを古いバージョンに変換して記憶する。これにより、取得した共有データのバージョン等を特に意識することなく共有データを利用することができる。
【0017】
また、請求項5に記載したように、前記情報処理装置はプリンタであり、前記変換手段は、前記共有データを前記プリンタで解釈可能なフォーマットに変換することができる。
【0018】
請求項7記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、前記他の情報処理装置が公開した共有データを取得し、前記共有データを、変換条件を設定した設定情報に基づいて変換し、変換後のデータを記憶手段に記憶させる、ことを特徴とする。
【0019】
請求項8記載の発明は、複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、前記他の情報処理装置が公開した共有データを取得するステップと、前記共有データを、変換条件を設定した設定情報に基づいて変換するステップと、変換後のデータを記憶手段に記憶させるステップと、を含むことを特徴とする。
【発明の効果】
【0020】
以上説明したように、本発明によれば、簡単かつ低コストで文書等を再利用することができると共に利便性を向上させることができる、という効果を有する。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施形態について説明する。
【0022】
図1には、P2Pネットワーク10のネットワーク構成について概念的に示した。図1に示すように、P2Pネットワーク10は、仮想的には各ピア12A〜12Gが相互に接続された構成であり、実際には、例えばピア12A〜12Cはファイアウォール14によるアクセス制限下にあるピアであったり、ピア12C〜12Eはインターネットに接続されたピアであったり、ピア12E〜12GはNAT(Network Address Translation)によってアドレス変換されるピアであったりする。
【0023】
また、各ピア同士の接続方法は様々であり、IPv4(Internet Protocol version 4)やIPv6(Internet Protocol version 6)の機能を用いるTCP(Transmission Control Protocol)接続を用いたり、HTTP(Hyper Text Transfer Protocol)を用いたり、SMTP(Simple Mail Transfer Protocol)を用いたりすることができる。
【0024】
ここで、ピアとは、例えばパーソナルコンピュータ等のコンピュータの他、PDA(Personal Digital Assistance)、携帯電話、プリンタ、コピー機、これらの機能を複数備えた複合機等のハードウェア又はこれらの機能を実現するソフトウェアをいう。また、各ピアは、同じ種類のものであるか異なる種類のものであるかにかかわらずP2Pネットワークに参加することができる。
【0025】
P2Pネットワークの形態としては、図2に示すように、各ピア14A〜14Kの全てが対等な関係にあるピュアP2Pと、図3に示すように、サーバ14Sを設け、一部のサービスの提供をサーバ14Sに委ね、その他のサービスについては各ピア14A〜14Hが対等な関係において実現されるハイブリッドP2Pの形態があり、何れの形態でも本発明を適用可能である。
【0026】
また、P2Pネットワークに参加する各ピアにログオンするユーザー又はピアは、図4に示すように、目的に応じたグループを構成することができる。図4では、ピア12A〜12G全てがグループ1に属し、さらに、ピア12A、12C、12E、12Fはグループ2に属しており、ピア12B、12E、12F、12Gはグループ3に属している。なお、各ユーザー又はピアは、単一のグループに属してもよいし、複数のグループに属していてもよい。また、ユーザー又はピアは必ずしもグループに属する必要はない。
【0027】
図5には、P2Pネットワーク10に参加する各ピアの基本構成を示した。図5に示すように、ピア12は、P2P基盤構成部16、P2P基盤管理データ記憶部18、アプリケーション実行部20、及びアプリケーションメモリ22を含んで構成される。
【0028】
P2P基盤構成部16は、メッセージ制御部24、データ管理部26、送信部28、及び受信部30を含んで構成される。
【0029】
送信部28は、メッセージ制御部24から受け取ったメッセージをネットワーク32へ向けて送信する。
【0030】
受信部30は、P2Pネットワーク10内で送受信されるデータのうち、自ピアにとって必要なデータを受信する。常に受信待機状態となっており、P2Pネットワーク10の他ピアからの各種要求やデータを受信し、メッセージ制御部24に受け渡す。なお、送信部28とは独立かつ並列に動作する。
【0031】
図6には、メッセージ制御部24の概略構成を示した。メッセージ制御部24は、図6に示すように、サービス実行部34及びメッセージディスパッチ部36を含んで構成されている。
【0032】
サービス実行部34は、ピア探索サービス部38、告知情報公開サービス部40、告知情報取得サービス部42、グループ管理サービス部44、ユーザー管理サービス部46、及びピア管理サービス部48を含んで構成されており、各サービス部は相互に情報を授受しながら各サービスを実行する。
【0033】
ピア探索サービス部38は、P2Pネットワークに参加しているピアを探索する機能及び自ピアが必要とするサービス(機能)を提供可能なピアを探索する機能を有する。なお、探索の範囲は、必要とするサービスの名称や属性、ホップ数の閾値等を指定することにより制御することができる。ここで、ホップ数とは、メッセージを送信する際に経由するピアの数である。
【0034】
告知情報公開サービス部40は、自ピアが提供可能なサービス等の情報を告知情報としてP2Pネットワーク上に公開する機能を有する。ここで、提供可能なサービスには、例えばアプリケーション実行部20により実行されるアプリケーションの他、後述するグループ管理サービスやユーザー管理サービス等も含まれる。なお、告知情報の公開は、例えば他ピアから問い合わせがあった場合や自ピアの起動時に実行してもよいし、定期的に実行するようにしてもよい。
【0035】
このように各ピアの告知情報公開サービス部40によって告知情報がP2Pネットワーク上に公開されることにより、P2Pネットワークに参加している各ピアは、P2Pネットワーク上でどのようなサービスを利用できるかを把握することができる。
【0036】
告知情報取得サービス部42は、ピア探索サービス部38によって探索されたピアから送信された告知情報又は他ピアから自発的に送信された告知情報を取得し、データ管理部26へ受け渡す。データ管理部26では、取得した告知情報をピア情報としてP2P基盤管理データ記憶部18に記憶させる。これにより、ピアは、P2Pネットワークに参加している他ピアがどのようなサービスを提供しているのかを把握することができる。
【0037】
グループ管理サービス部44は、同じ目的を有するピア同士で構成されたグループへの参加や脱退、新たなグループの作成等をグループ情報に基づいて管理する機能を有する。グループ情報は、例えば少なくともグループIDとユーザーIDとの対応関係を表す情報であり、P2P基盤管理データ記憶部18に記憶される。このグループ情報を参照することにより、どのグループにどのユーザーが属しているかを把握することができる。
【0038】
ユーザー管理サービス部46は、ユーザー情報を管理する機能を有する。ユーザー情報は、例えばピアIDとそのピアにログオンしているユーザーIDとの対応関係を表すログオン情報や、ユーザーの名前、メールアドレス等のユーザー自身に関する情報、そのユーザーが属するグループのグループID等の情報を含み、P2P基盤管理データ記憶部18に記憶される。
【0039】
ピア管理サービス部48は、P2Pネットワークに参加しているピアのピア情報を管理する機能を有する。
【0040】
メッセージディスパッチ部36は、アプリケーション実行部20からのメッセージや他ピアとの間で送受信されるメッセージを解析し、サービス実行部34のうち解析したメッセージに関する処理を行うべきサービス部へ制御を渡す。
【0041】
P2P基盤管理データ記憶部18は、経路情報18A、グループ情報18B、隣接情報18C、ピア情報18D、及びユーザー情報18Eを記憶する。
【0042】
経路情報18Aは、P2Pネットワークにおける経路の情報、例えば後述するスパニングツリーに関する情報を含む。
【0043】
グループ情報18Bは、前述したように例えば少なくともグループIDとユーザーIDとの対応関係を表す情報である。
【0044】
隣接情報18Cは、自ピアに隣接するピアに関する情報、例えばピアID等の情報を含む。ここで、隣接するピアとは、例えば自ピアから送信したパケットに対する応答時間が予め定めた所定時間内のピアとすることができる。隣接情報は、例えば他ピアと通信する課程において得られる応答時間に基づいて生成することができるが、オペレータの操作等により手動的に設定するようにしてもよい。
【0045】
ピア情報18Dは、ピア探索サービス部38によって探索されたピアに関する情報、例えばピアID等の情報や、告知情報取得サービス部42によって取得したP2Pネットワーク上の各ピアが提供しているサービスに関する情報等を含む。ここで、ピアIDには、例えばIPアドレスやURI(Uniform Resource Identifier)等を用いることができる。
【0046】
ユーザー情報18Eは、前述したようにユーザーのログオン情報やユーザー自身に関する情報等を含む。
【0047】
アプリケーション実行部20は、各種アプリケーションを実行するものであり、メッセージ制御部24を介して他ピアとメッセージの送受信を行う。また、アプリケーションメモリ22は、アプリケーション実行部20の実行に関連する各種の情報を記憶するためのメモリである。
【0048】
次に、P2Pネットワークにおいて、目的のサービスを検索し実行する場合の具体例について説明する。
【0049】
まず、他ピアへメッセージを転送する機能を有する転送機能付きピアと、転送機能を備えず、転送機能付きピアを介して他ピアとメッセージの送受信を行うエンドピアと、からなるP2Pネットワークにおいて、転送機能付きピア及びエンドピアのP2P基盤構成部16で実行される処理について説明する。なお、転送機能付きピアは、図示しない転送機能サービス部をサービス実行部34に備えた構成である。
【0050】
図7にはエンドピアで実行される処理のフローチャートを、図8には転送機能付きピアで実行される処理のフローチャートを示した。
【0051】
図7に示すように、エンドピアは、ステップ100において、転送機能付きピアの探索要求を、例えば自ピアに予め記憶された設定情報に設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストにより他の転送機能付きピアに対してP2Pネットワークに送信する。これは、ピア探索サービス部38により実行される。
【0052】
そして、ステップ102において、転送機能付きピアが存在するか否かを判断し、転送付きピアが存在する場合には、ステップ104へ移行し、転送機能付きピアが存在しない場合には、ステップ102へ戻り、例えば所定時間経過後に再度転送機能付きピアを探索する。
【0053】
ステップ104では、自ピアにログオンしているユーザー又は自ピアが属するグループに属している他ユーザーがログオンしている他ピアの告知情報を取得するよう転送機能付きピアに要求する。これは、告知情報取得サービス部42により実行される。
【0054】
ステップ106では、転送機能付きピアから告知情報を受信したか否かを判断し、受信していない場合には、ステップ110へ移行し、受信した場合には、ステップ108において、受信した告知情報をP2P基盤管理データ記憶部18にピア情報18Dとして記憶させる。
【0055】
ステップ110では、サービス要求が発生したか否かを判断する。例えば自ピアにログオンしているユーザーの操作等によってアプリケーション実行部20によりアプリケーションが実行され、サービス要求が発生した場合には、アプリケーション実行部20からメッセージ制御部24へサービス要求が通知される。この場合、ステップ112へ移行し、サービス要求が発生していない場合には、ステップ116へ移行する。
【0056】
ステップ112では、発生したサービス要求に対応したメッセージを作成して転送機能付きピアに送信する。例えば、アプリケーション実行部20からのサービス要求が、所望のファイルを取得する要求だった場合には、アプリケーション実行部20から通知されたファイル名等の所望のファイルを特定するための情報を含むファイル探索要求メッセージを転送機能付きピアに送信する。
【0057】
ステップ114では、送信したメッセージに対する応答処理を行う。すなわち、送信したメッセージに対する応答メッセージを受信し、受信した応答メッセージの内容に応じた処理を行う。例えば、サービス要求が所定のファイルを取得する要求であった場合には、そのファイルを所有しているピアがあれば、そのピア情報が応答メッセージとして受信されるので、これをアプリケーション実行部20に通知する。この場合、アプリケーション実行部20では、受信したピア情報に基づいて、所望のファイルを所有しているピアにファイル送信要求を送信するようメッセージ制御部24に依頼する。これにより、所望のファイルを取得することができる。
【0058】
そして、ステップ116では、転送機能付きピアから、他ピアから何らかのサービス提供又は情報提供を要求する要求メッセージを受信したか否かを判断し、要求メッセージを受信していた場合には、ステップ118へ移行し、要求メッセージを受信していない場合には、ステップ106へ戻って上記と同様の処理を繰り返す。
【0059】
ステップ118では、要求に対する処理を実行する。そして、ステップ120において、処理結果に対応したメッセージを転送機能付きピアに送信する。例えば、他ピアからファイル探索の要求メッセージを受信した場合には、その要求メッセージをファイル検索を実行するアプリケーション実行部20へ渡す。これによりアプリケーション実行部20においてファイル検索が実行され、検索結果がメッセージ制御部24に通知される。メッセージ制御部24では、アプリケーション実行部20から通知された検索結果に基づいて応答メッセージを作成し、ファイル探索要求メッセージの送信元のピアに送信する。例えばファイルが検索できた場合には、自ピアのピアID等の情報を含めた応答メッセージを作成して、ファイル探索要求メッセージの送信元のピアに送信する。これにより、送信元のピアでは、所望のファイルが検索できたか否かを確認することができる。
【0060】
次に、転送機能付きピアで実行される処理について説明する。
【0061】
転送機能付きピアは、まず図8に示すステップ200において、例えば自ピアに予め記憶された設定情報に設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストにより他の転送機能付きピアに対して、グループ情報やユーザー情報等の各種情報を送信するよう要求し、これらの情報を取得する。取得した情報は、P2P基盤管理データ記憶部18に記憶される。これにより、P2Pネットワークを構成しているピアの情報やログオンしているユーザーの情報を得ることができる。
【0062】
ステップ202では、P2P基盤管理データ記憶部18に記憶された隣接情報18Cを、自ピアの隣の転送機能付きピア全てに告知する。隣接情報18Cには、自ピアの隣の転送機能付きピアの情報が少なくとも含まれ、さらに、他のピアが有している隣接情報を既に取得している場合には、その隣接情報も含まれる。
【0063】
ステップ204では、隣の転送機能付きピアに隣接情報を送信するよう要求し、取得する。このように、自ピアの隣の転送機能付きピアと隣接情報を交換する。
【0064】
そして、ステップ206では、交換した隣接情報に基づき、スパニングツリーの構成情報を生成し、P2P基盤管理データ記憶部18に経路情報として記憶する。ここで、スパニングツリーとは、メッセージの転送経路が、ループのない木構造となるような経路を表す。例えばP2Pネットワークが、図9(A)に示すように、グループ1にのみ属する転送機能付きピア501、グループ2にのみ属する転送機能付きピア502、グループ1、2の何れにも属する転送機能付きピア5012、何れのグループにも属さない転送機能付きピア50n、これらの各転送機能付きピアの背後に存在するエンドピア(図9では図示省略)で構成されていたとする。この場合、スパニングツリーは、図9(B)に示すようなループのない木構造の経路となる。
【0065】
次のステップ208では、エンドピアからのメッセージ送信要求を受信したか否かを判断し、受信している場合にはステップ210へ移行し、受信していない場合には、ステップ212へ移行する。
【0066】
ステップ210では、スパニングツリーの構成情報としての経路情報に基づいて、メッセージを転送する。例えば、図9(A)に示すようなネットワークが構築されている場合において、エンドピアが例えばグループ1に属しており、グループ1向けの要求メッセージを転送機能付きピアに送信した場合について説明する。この場合、転送機能付きピアは、グループ1に属しているエンドピアに対してのメッセージ転送を担う転送機能付きピアを全て含み、この転送機能付きピア全てにメッセージが転送されるようなスパニングツリー、例えば図9(C)に示すようなスパニングツリーを経路情報に基づいて計算する。そして、転送機能付きピアは、計算されたスパニングツリーに基づいて、隣の転送機能付きピア全てにエンドピアからの要求メッセージを転送する。これにより、図9(C)に示すスパニングツリー上の転送機能付きピアにメッセージが転送され、グループ1のエンドピア全てにメッセージが転送される。なお、グループ2向けのメッセージ送信要求を転送機能付きピアに送信した場合は、図9(D)に示すようなスパニングツリーが計算される。
【0067】
次のステップ212では、隣の転送機能付きピアからメッセージを受信したか否かを判断し、受信した場合にはステップ214へ移行し、受信していない場合には、ステップ208へ戻って上記と同様の処理を繰り返す。なお、定期的にステップ200へ戻ってスパニングツリーを定期的に計算するようにしてもよい。
【0068】
ステップ214では、計算したスパニングツリーに基づき、メッセージを転送する必要がある場合、すなわちスパニングツリー上における隣の転送機能付きピアのうちメッセージを転送していない転送機能付きピアが存在する場合には、その転送機能付きピアにメッセージを転送する。また、受信したメッセージが、自ピアがメッセージの転送を担うエンドピアと同一のグループ宛であった場合には、そのメッセージをエンドピアへ転送する。
【0069】
このように、スパニングツリーを各転送機能付きピアが計算し、このスパニングツリー計算に従ってメッセージを転送することにより、同じグループ内のエンドピア間においてメッセージの送受信が可能となる。
【0070】
上記のような転送機能付きピアによってメッセージを転送する構成は、主にLAN(Local Area Network)等の比較的小規模のネットワークでP2Pネットワークを構築する場合に適しているが、大規模のネットワークでP2Pネットワークを構成する場合には、ファイアウォールやゲートウェイ等を介して、異なるネットワークに接続されたピア間でメッセージの送受信が行われる。以下では、このような比較的大規模なネットワークでP2Pネットワークを構築する場合に適した形態について説明する。
【0071】
図10に示すP2Pネットワーク11は、複数のネットワーク52〜58を含み、ネットワーク52は、ルータ60、62を介してネットワーク54と接続されると共に、ルータ64を介してネットワーク58と接続される。また、ネットワーク56は、ルータ66を介してネットワーク58と接続される。
【0072】
ネットワーク52は、エンドピア52A、52B、及び待ち合わせ機能付きピア52Cを含んで構成され、ネットワーク54はエンドピア54Aを含んで構成され、ネットワーク56はエンドピア56Aを含んで構成され、ネットワーク58は中継機能付きピア58Aを含んで構成されている。なお、待ち合わせ機能付きピアは、図示しない待ち合わせ機能サービス部をサービス実行部34に備えた構成であり、中継機能付きピア58Aは、図示しない中継機能サービス部をサービス実行部34に備えた構成である。
【0073】
このように構成されたP2Pネットワーク11において、エンドピアは、図7のフローチャートの示す処理とほぼ同様の処理を実行する。すなわち、P2Pネットワーク11におけるエンドピアで実行される処理は、図7のフローチャートの説明において、転送機能付きピアを待ち合わせ機能付きピアに言い換えた処理を実行すると考えることができる。
【0074】
また、中継機能付きピアは、基本的には所謂ゲートウェイとしての動作をするピアである。中継機能付きピアは、まず、例えば自ピアに記憶された設定情報に予め設定された他のピアに対して、又はマルチキャストやブロードキャストにより他のピアに対して、グループ情報やユーザー情報等の各種情報を送信するよう要求し、これらの情報を取得しておく。そして、他ピアからメッセージを受信した場合には、送信先として指定されたピアにメッセージを転送する。
【0075】
次に、待ち合わせ機能付きピアで実行される処理について、図11に示すフローチャートを参照して説明する。
【0076】
まず、ステップ300において、例えば自ピアに記憶された設定情報に予め設定された他の転送機能付きピアに対して、又はマルチキャストやブロードキャストによって、他のピアに対してグループ情報やユーザー情報等の各種情報を送信するよう要求する。
【0077】
ステップ302では、他ピアから何らかの情報、例えばステップ300で要求したグループやユーザー情報等の情報や、他ピアからの告知情報等を受信したか否かを判断し、受信した場合には、ステップ304へ移行し、受信していない場合には、ステップ306へ移行する。
【0078】
ステップ304では、他ピアから受信した情報をP2P基盤管理データ記憶部18に記憶させる。例えば受信した情報がグループ情報であればグループ情報18BとしてP2P基盤管理データ記憶部18に記憶させ、受信した情報がユーザー情報であればユーザー情報18EとしてP2P基盤管理データ記憶部18に記憶させる。
【0079】
ステップ306では、エンドピアから何らかのサービス提供又は情報提供を要求する要求メッセージを受信したか否かを判断し、受信している場合には、ステップ308へ移行し、受信していない場合には、ステップ302へ戻って上記と同様の処理を繰り返す。
【0080】
ステップ308では、要求メッセージに対応した情報が自ピアのP2P基盤管理データ記憶部18に記憶されているか否かを判断し、記憶されている場合には、ステップ310へ移行し、記憶されていない場合には、ステップ312へ移行する。
【0081】
ステップ310では、要求メッセージに対応した情報をP2P基盤管理データ記憶部18から読み出して要求元のピアに送信する。
【0082】
一方、ステップ312では、要求メッセージを隣接のピアに転送する。これにより、要求メッセージが他ピアに伝搬される。これにより、要求メッセージに対応した処理を実行可能なピアから応答メッセージが送信される。
【0083】
ステップ314では、要求メッセージに対応した処理を実行可能なピアから送信された応答メッセージを受信し、これを要求元のエンドピアに送信する。
【0084】
ここで、ネットワーク54のピア54Aが告知情報の探索要求を行う場合について説明する。この場合、ピア54Aは、待ち合わせ機能付きピアを検索し、検索された待ち合わせ機能付きピア52Cに告知情報の探索要求メッセージを送信する。これにより待ち合わせ機能付きピア52Cは、自ピアに他ピアの告知情報が蓄積されていれば、これをピア54Aに送信し、蓄積されていない場合には、例えば隣のピア52A、52B等に告知情報を送信するよう要求する。このとき、ピア52Aは、自ピアの告知情報と、自ピアに記憶されている他ピアの告知情報、例えばピア56Aの告知情報がすでに記憶されている場合には、その告知情報とを待ち合わせ機能付きピア52Cに送信する。ピア52Cについても同様である。待ち合わせ機能付きピア54Cは、他ピアから送信された告知情報を蓄積すると共に、ピア54Aに送信する。
【0085】
以上のように、待ち合わせ機能付きピアは、他ピアから送信された告知情報等の各種情報を自ピアに蓄積しておき、エンドピアからの要求に対応した情報が自ピアに記憶されている場合には、その情報をエンドピアに送信する。従って、P2Pネットワーク11のように大規模なネットワークにおけるメッセージの送受信の効率を向上させることができる。
【0086】
次に、アプリケーション実行の具体例として、アプリケーションがファイル共有サービスの場合におけるアプリケーション実行部20の処理について説明する。
【0087】
この場合、アプリケーション実行部20は、ファイル名等の所望のファイルを特定するための情報を少なくとも含んだファイル探索要求をメッセージ制御部24のメッセージディスパッチ部36に通知する。メッセージディスパッチ部36では、このファイルを所有するピアを探索するようピア探索サービス部38に対して要求する。これにより、ピア探索サービス部38によって所望のファイルを所有するピアが探索され、アプリケーション実行部20に通知される。そして、アプリケーション実行部20では、探索されたピアに対してファイルを送信するよう要求し、取得する。なお、所望のファイルを所有しているピアの情報を既に取得しており、自ピアに記憶されていた場合には、ピア探索を実行せずに、直接そのピアにファイル送信要求を送信してファイルを取得すればよい。
【0088】
このように、アプリケーション実行部20は、メッセージ制御部24を介して他ピアとメッセージの送受信を行い、サービスを提供する。
【0089】
なお、P2Pネットワークの構築について上記は一例であり、例えば上記特許文献1に記載されたプロトコルや、JXTAプロトコルのPDP(Peer Discovery Protocol:ピア発見プロトコル)、PRP(Peer Resolver Protocol:ピア解決プロトコル)、PIP(Peer Information Protocol:ピア情報プロトコル)、PMP(Peer Membership Protocol:ピアメンバーシッププロトコル)、PBP(Peer Binding Protocol:ピアバインディングプロトコル)、PEP(Peer Endpoint Protocol:ピアエンドポイントプロトコル)等の公知のプロトコルを用いてP2Pネットワークを構築してもよい。
【0090】
次に、本実施形態に係るP2Pネットワークの具体的な形態として、図12に示すように、ピアとしてのパーソナルコンピュータ(以下、PC)12A〜12D、プリンタ12Eを含むP2Pネットワークが構築されている場合を例に説明する。
【0091】
PC12A〜12Dは、基本的に上記で説明した図5、6に示したピア12の機能を有しており、その他は、汎用的なパーソナルコンピュータと同様の構成である。また、プリンタ12Eも基本的に上記で説明した図5、6に示したピア12の機能を有しており、その他は、汎用的なプリンタと同様の構成である。
【0092】
また、PC12A〜12D、プリンタ12Eは、それぞれのアプリケーション実行部20においてファイル共有アプリケーションを実行可能であり、各PC、プリンタで作成されたファイルはアプリケーションメモリ22に記憶される。
【0093】
ファイル共有アプリケーションは、共有モードとしてダウンロードモードとコピーモードとを有し、これらの各モードは例えばユーザーの設定により選択することができる。ここで、ダウンロードモードとは、ファイル名、ファイルの作成日時(更新日時)、ファイルサイズ等、ファイルの特徴を表すデータであるインデックスデータのみをP2Pネットワーク上で共有し、必要になった時点でそのファイルの実体データを保存しているピアに要求して取得するモードである。
【0094】
一方、コピーモードとは、ファイルの実体データをP2Pネットワーク上で共有するモード、すなわちP2Pネットワーク上の全てのピア又は特定のグループに属するピア全てでファイルのインデックスデータだけでなく実体データも共有するモードである。
【0095】
次に、PC12Aが作成した共有ファイルを、他のPC12B〜12D、プリンタ12Eがそのピアの設定に従って変換して保存する場合における各PCで実行される処理を、図13及び図14に示すフローチャートを参照して説明する。
【0096】
なお、P2Pネットワーク上の各PCは、実際には図13及び図14に示す処理を両方行うが、ここでは説明を簡単にするため、ファイルを共有ファイルとして提供するPCと、そのファイルを取得するPCやプリンタとを分けて説明する。
【0097】
まず、PC12Aのアプリケーション実行部20で実行されるファイル共有アプリケーションの処理について、図13に示すフローチャートを参照して説明する。この処理は、例えばPC12Aの立ち上げ時に実行される。
【0098】
まず、ステップ400において、アプリケーションメモリ22に設定された共有フォルダにファイルがストアされたか否かを判断し、ストアされた場合にはステップ402へ移行し、ストアされていない場合には、ステップ404へ移行する。
【0099】
ステップ402では、自ピアが属するピアグループの他ピア、すなわちPC12B〜12D、プリンタ12Eに対してファイルがストアされたことを通知する。
【0100】
ステップ404では、他ピアからファイルのインデックスデータや実体データの取得を要求されたか否かを判断し、取得を要求された場合には、ステップ406へ移行し、要求されていない場合には、ステップ400へ戻って上記と同様の処理を繰り返す。
【0101】
ステップ406では、要求されたデータを共有フォルダから読み出して要求元の他のPCに送信する。これにより、PC12Aの共有フォルダにストアされたファイルがPC12A〜12D、プリンタ12Eにおいて共有される。
【0102】
次に、PC12B〜12D、プリンタ12Eのアプリケーション実行部20で実行されるファイル共有アプリケーションの処理について、図14に示すフローチャートを参照して説明する。
【0103】
なお、PC12B〜12D、プリンタ12Eでは、他ピアから取得したファイルを予め定めたフォーマットに変換したり、そのファイルの属性(例えばアクセス権限等)を変更したりすることをファイル取得時に自動的に行うための設定を、例えばユーザーの操作等により行うことができ、この設定情報は、アプリケーションメモリ22に記憶される。
【0104】
まず、ステップ500では、他のピア(ここでは、PC12A)から、そのピアにファイルがストアされたことを通知するメッセージを受信したか否かを判断し、メッセージを受信した場合にはステップ502へ移行し、メッセージを受信していない場合には、ファイルがストアされたことを通知されるまで待機する。
【0105】
ステップ502では、自ピアに設定されている共有モードがダウンロードモードであるか否かを判断し、ダウンロードモードが設定されている場合にはステップ504へ移行し、コピーモードが設定されている場合にはステップ506へ移行する。
【0106】
ステップ504では、共有ファイルの作成元のピアの共有フォルダにストアされたファイルのインデックスデータを送信するようにそのピアに要求し、インデックスデータを取得する。
【0107】
一方、ステップ506では、共有ファイルの作成元のピアの共有フォルダにストアされたファイルのインデックスデータだけでなく実体データも含めて送信するようにそのピアに要求し、取得する。
【0108】
ステップ508では、取得したファイルを変換する必要があるか否かを判断する。具体的には、アプリケーションメモリ22に設定情報が存在し、その設定情報に変換すべフォーマットが指定されているか否かを判断する。
【0109】
そして、取得したファイルを変換する必要がある場合には、ステップ510へ移行し、取得したファイルを変換する必要がない場合には、ステップ500へ戻り、上記と同様の処理を繰り返す。
【0110】
ステップ510では、取得したファイルを設定情報で指定されたフォーマットに変換する。
【0111】
ここで、変換処理の具体例について説明する。例えばPC12A〜12C、プリンタ12Eが社内ネットワークに接続されたピアであり、PC12Dが社外のネットワークに接続されたピアである場合、PC12Dにログオンしているユーザーに対しては、安全性を考慮して、PC12Aから送信された共有対象のファイルをそのまま参照したり、ファイルに書き込んだりするのを禁止したい場合がある。
【0112】
この場合、PC12Dでは、設定情報を、パスワード付きのフォーマット、すなわちパスワードを入力しなければファイルを参照できないファイルフォーマットに変換するように設定したり、アクセス権限を読み込みのみ可に変更するよう設定しておく。
【0113】
これにより、PC12Dでは、PC12Aから送信された共有対象のファイルは、設定情報に従ってパスワード付きのファイルフォーマットに変換されたり、アクセス権限が読み込みのみ可に変更されて記憶される。そして、PC12Dにログオンしたユーザーは、そのファイルを参照するにはパスワードを入力しなければ参照できなかったり、書き込みができなかったりする。これにより、安全にファイルを共有することができる。
【0114】
また、インデックスデータのみを取得した場合、実体データが文書データや画像データのような場合、そのデータの内容を確認できるサムネイル画像を生成して記憶しておくようにしてもよい。これにより、ファイルの内容を視覚的に容易に確認することが可能となる。
【0115】
また、例えばPC12Aで使用しているアプリケーションのバージョンよりもPC12Bが使用しているアプリケーションのバージョンが古い場合、PC12Bにおいて、バーションを古いバーションに変換して記憶するようにしてもよい。この場合、PC12Bにファイルのバージョンを変換するアプリケーションが必要となる。これにより、PC12Bのユーザーはバージョンを意識することなく、古いバージョンのファイルを使用することができる。逆に、PC12Aで使用しているアプリケーションのバージョンよりもPC12Bが使用しているアプリケーションのバージョンが新しい場合、PC12Bにおいて、バーションを新しいバーションに変換して記憶するようにしてもよい。
【0116】
また、例えばプリンタ12Eがページ記述言語(PDL:Page Description Language)を解釈可能なプリンタ、例えばポストスクリプト対応のプリンタである場合、PC12Aが作成した文書ファイルを共有する場合、この文書ファイルをプリンタ12Eがポストスクリプトデータに変換して記憶しておく。または、PC12Aで文書ファイルをポストスクリプトデータに変換して、これを共有する場合に、プリンタ12EでRIP(Raster Image Processor)処理によりラスタイメージデータに変換し、これを記憶しておく。なお、ページ毎に別ファイルにして記憶するようにしてもよい。
【0117】
この場合、PC12Aが文書ファイルの印刷を印刷属性(両面印刷、印刷部数、用紙サイズ等)と共にプリンタ12Eに指示すると、すでにプリンタ12Eにはその文書ファイルのポストスクリプトデータ又はラスタイメージデータで記憶されているので、速やかに印刷属性に従って印刷が開始される。その他のPC12B等が再印刷する場合も同様である。
【0118】
このように、プリンタ12Eでは、PC12Aの共有フォルダに文書ファイルがストアされた時点で文書ファイルを取得して変換して記憶しておくので、PC12A等から印刷指示された場合に速やかに印刷を実行することができる。また、他のPC12Bから再印刷する場合でも、誰が同じファイルを印刷したのか等を確認する必要がなく、利便性を大幅に向上させることができる。
【0119】
なお、ファイルを共有する場合には、そのファイルが使用されるか否かは不明であるので、メモリの無駄な使用を避けるべく共有モードをダウンロードモードとし、ファイルを変換して共有する場合には、印刷指示後の処理を速やかにするためにコピーモードとするようにしてもよい。
【0120】
また、図14の処理の開始時に、自ピアでは取得したファイルを変換して共有することを他ピアに通知するようにしてもよい。また、取得したファイルを変換してアプリケーションメモリ22に記憶した後に、そのファイルを共有する処理が終了したことを他ピアに通知するようにしてもよい。
【0121】
また、本実施形態では、ピアがPC及びプリンタの場合について説明したが、これに限らず、記憶装置を備えた装置であればファクシミリ、スキャナ等の他の装置にも本発明を適用可能であることはいうまでもない。
【図面の簡単な説明】
【0122】
【図1】P2Pネットワークのネットワーク構成図である。
【図2】ピュアP2Pのネットワーク構成図である。
【図3】ハイブリッドP2Pのネットワーク構成図である。
【図4】P2Pネットワークのグループについて説明するための概念図である。
【図5】ピアの基本的構成のブロック図である。
【図6】メッセージ制御部のブロック図である。
【図7】エンドピアで実行される処理のフローチャートである。
【図8】転送機能付きピアで実行される処理のフローチャートである。
【図9】スパニングツリーのイメージ図である。
【図10】P2Pネットワークの他の形態のネットワーク構成図である。
【図11】待ち合わせ機能付きピアで実行される処理のフローチャートである。
【図12】P2Pネットワークの具体例を示すネットワーク構成図である。
【図13】ピアで実行されるファイル共有処理のフローチャートである。
【図14】ピアで実行されるファイル共有処理のフローチャートである。
【符号の説明】
【0123】
10、11 P2Pネットワーク
12 ピア
16 P2P基盤構成部
18 P2P基盤管理データ記憶部
20 アプリケーション実行部
22 アプリケーションメモリ
24 メッセージ制御部
26 データ管理部
28 送信部
30 受信部
32 ネットワーク
34 サービス実行部
36 メッセージディスパッチ部
38 ピア探索サービス部
40 告知情報公開サービス部
42 告知情報取得サービス部
44 グループ管理サービス部
46 ユーザー管理サービス部
48 ピア管理サービス部

【特許請求の範囲】
【請求項1】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置であって、
前記他の情報処理装置が公開した共有データを取得する取得手段と、
前記共有データを、所定条件を設定した設定情報に基づいて変換する変換手段と、
変換後のデータを記憶する記憶手段と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記設定情報は、パスワード付きのデータに変換する条件を含むことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記設定情報は、アクセス権限を変更する条件を含むことを特徴とする請求項1又は請求項2記載の情報処理装置。
【請求項4】
前記変換条件は、前記共有データを処理するアプリケーションのバージョンを他のバージョンに変換する条件であることを特徴とする請求項1乃至請求項3の何れか1項に記載の情報処理装置。
【請求項5】
前記情報処理装置はプリンタであり、前記変換手段は、前記共有データを前記プリンタで解釈可能なフォーマットに変換することを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記ネットワークは、複数の情報処理装置の少なくとも一部が特定のサーバを介さずに通信するピアツーピアネットワークであることを特徴とする請求項1乃至請求項5の何れか1項に記載の情報処理装置。
【請求項7】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理方法であって、
前記他の情報処理装置が公開した共有データを取得し、
前記共有データを、変換条件を設定した設定情報に基づいて変換し、
変換後のデータを記憶手段に記憶させる、
ことを特徴とする情報処理方法。
【請求項8】
複数の情報処理装置が接続されたネットワークに接続される情報処理装置により実行される情報処理プログラムであって、
前記他の情報処理装置が公開した共有データを取得するステップと、
前記共有データを、変換条件を設定した設定情報に基づいて変換するステップと、
変換後のデータを記憶手段に記憶させるステップと、
を含むことを特徴とする情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate