(57)【特許請求の範囲】
【請求項１】
通信手段を介して接続された複数のコンピュータデバイスを具えるシステムにおいて、
前記複数のコンピュータデバイスの各コンピュータデバイスは、
ピアツーピアネットワークプログラムを実行するプロセッサと、
メンバーリストを格納するストレージと、
前記通信手段を介して、その他のコンピュータデバイスと通信するトランシーバと、
を具えており、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、ファイルを暗号化及び復号化する暗号化アプリケーションプログラミングインターフェイスを使用して、前記プロセッサを具えるコンピュータデバイスに係る公開鍵及び秘密鍵の対を作成し、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記プロセッサを具えるコンピュータデバイスのＩＰアドレスを含むファインドミーファイルを作成し、前記暗号化アプリケーションプログラミングインターフェイスを使用して、前記秘密鍵を用いて前記ファインドミーファイルを暗号化し、前記ファインドミーファイルの名前及び前記公開鍵を、前記トランシーバを用いて前記その他のコンピュータデバイスに送信し、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記プロセッサを具えるコンピュータデバイスが前記その他のコンピュータデバイスの各々のファインドミーファイルの名前及び公開鍵を前記トランシーバを用いて受信すると、受信した名前を有するファインドミーファイルのサーチリクエストを前記その他のコンピュータデバイスに前記トランシーバを用いて送信し、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記プロセッサを具えるコンピュータデバイスが前記その他のコンピュータデバイスの各々のファインドミーファイルを前記トランシーバを用いて受信すると、受信した公開鍵を用いて、受信したファインドミーファイルを復号化して、前記ストレージの所定の第１フォルダ内に保存し、前記その他のコンピュータデバイスの各々のＩＰアドレスを前記メンバーリストに記載し、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記プロセッサを具えるコンピュータデバイスが、前記その他のコンピュータデバイスの各々から前記プロセッサを具えるコンピュータデバイスのファインドミーファイルのサーチリクエストを、前記トランシーバを用いて受信すると、前記プロセッサを具えるコンピュータデバイスのファインドミーファイルを前記その他のコンピュータデバイスの各々に前記トランシーバを用いて送信し、
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記メンバーリストにＩＰアドレスが記載されたコンピュータデバイスと前記プロセッサを具えるコンピュータデバイスとの間で、チャットセッションを確立し、又は、ファイルの共有若しくはサーチを行うシステム。
【請求項２】
前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記プロセッサを具えるコンピュータデバイスのユーザによって手入力された情報と、前記プロセッサを具えるコンピュータデバイスのオペレーションシステムを利用して自動的に収集した情報とを用いて、前記プロセッサを具えるコンピュータデバイスに固有の情報を含むユーザ情報ファイルを作成し、
前記ストレージの所定の第２フォルダは、前記メンバーリストにＩＰアドレスが記載されたコンピュータデバイスと前記プロセッサを具えるコンピュータデバイスとの間で、共有又はサーチされるファイルを格納し、前記ピアツーピアネットワークプログラムを実行する前記プロセッサは、前記ユーザ情報ファイルからの情報を含む情報データであるファイル情報ストリームを作成し、前記共有又はサーチされるファイルには、前記ファイル情報ストリームが付加されている、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼性のある分散型ピアツーピアネットワークの方法及びシステムに関する。
【背景技術】
【０００２】
インターネットを介して電子的に映画を売るビジネスに重要なことは、効果的な電子的配布及び／又はファイル共有することである。通信手段を介してコンピュータファイル(デジタル化映画を含む)を共有する方法は、電子的配布及びファイル転送についてのインターネットの急増に伴って、重要性が増している。ファイル共有及び／又はピアツーピアネットワーク(例えば、グヌーテラ)を作成することにより、従来型のサービスソフトウエアを持たないコンピュータワークステーションのユーザが、コンピュータファイルを配付することが可能となる。
従来から、サービスコンピュータ(例えば、マイクロソフト(登録商標)ウインドウズ２０００サーバーを実行するコンピュータ)により、集中型ネットワークアーキテクチャを用いてクライアント側のワークステーションにコンピュータファイルを配布するタスクを実行した。ファイル共有及び／又はピアツーピアネットワークの出現により、冗長な貯蔵庫として働く多数のコンピュータワークステーション(例えば、ホストノード)からなり、各々が同じコンピュータファイルを転送できる分散型ネットワークアーキテクチャへの道が与えられた。現在のファイル共有及び／又はピアツーピアネットワークのいくつかは、開放的で信頼性のない方法で通信している。更に、信頼性があるピアツーピアネットワークは、メンバー及び彼らに関するＩＰアドレスの識別を集中化処理することにより、信頼性があるピアツーピアネットワークを確立していた。
【発明の概要】
【０００３】
本発明は、新規で改良された方法及びシステムを提供し、信頼性がある分散型ピアツーピアネットワークを確立する。それはコンピュータデバイス間でのコンピュータファイルの共有、信頼性のあるチャットセッション、及び信頼性があるピアツーピアネットワークの他の適用についてのものである。更に、本発明はまた、新規で改良された方法及びシステムを提供し、信頼性がある分散型ピアツーピアネットワークを用いて、ファイルの実際のダウンロードの前に、ファイル共有を介して、ファイル特性又は特質を識別することができる。本発明は、コンピュータデバイスに存在し、ファイル共有処理中に信頼性があるピアツーピア方法によりユーザが自動的に対話(interact)できるソフトウエアプログラムであることができる。
【図面の簡単な説明】
【０００４】
添付の図面に於いて、本発明の好ましい実施例、及び本発明を実施する好ましい方法が示されている。
【図１】信頼性がある分散型ピアツーピアネットワークを確立する目的に対して、本発明の開示内容を実行する為に用いられる説明図であり、コンピューティングが、信頼性がある分散型ピアツーピアネットワークの確立に関連して、接続され得る構成が記載されている。
【図２】コンピュータプログラミングフローチャートである。
【図３】コンピュータプログラミングフローチャートである。
【図４】コンピュータプログラミングフローチャートである。
【図５】コンピュータプログラミングフローチャートである。
【図６】コンピュータプログラミングフローチャートである。
【図７】コンピュータプログラミングフローチャートである。
【図８】コンピュータプログラミングフローチャートである。
【図９】コンピュータプログラミングフローチャートである。
【発明を実施するための形態】
【０００５】
図面に於いて、同じ参照番号は、数図を通じて同等又は同じ部分を表している。特に図１を参照すると、信頼性がある分散型ピアツーピアネットワークを確立するためのシステムが示されている。システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々は通信手段(20)への接続を有し、通信プロトコル(例えば、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151)、チャットプロトコル(152)、ファイル共有プロトコル(153))を用いる手段、通信プログラム(例えば、電子メールプログラム(130))を用いる手段、コンピュータファイルを転送又はダウンロードする手段を有している。システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々はユーザインターフェイス(20)を有し、各コンピュータデバイスのユーザは該ユーザインターフェイス(20)を介してインターフェイスする。システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々は演算命令を処理するプロセッサ(21)を具えている。システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々は夫々のコンピュータデバイスに対して記憶手段を与えるＲＡＭ(22)を具えている。
システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々は夫々のコンピュータデバイスに対して不揮発性の記憶手段又はストレージ手段を付与するストレージ(23)を具えている。システムは、多数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11))から構成され、各々は各コンピュータデバイスを通信手段(30)に接続するトランシーバ(24)を具え、通信は、該トランシーバ(24)を介してコンピュータデバイス間を伝送される。デバイス”Ａ”(10)は、デバイス”Ｂ”(11)から別れ、離れ、区別される。
【０００６】
ピアツーピアネットワークプログラム(40)は、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザインターフェイス(20)に接続され、デバイス”Ａ”(10)のユーザがピアツーピアネットワークプログラム(40)に情報を入力することを可能にするのが好ましい。コンピュータデバイス(例えば、デバイス”Ａ”(10))のピアツーピアネットワークプログラム(40)は、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11))のピアツーピアネットワークプログラム(40)と対話できる。
【０００７】
本発明は、信頼性がある分散型ピアツーピアネットワークを確立する方法に関する。該方法は、最初にピアツーピアネットワークプログラム(40)をインストールするステップを含む。次に、オペレーティングシステム(25)の暗号API(70)手段を介して、暗号化及び復号化鍵を作成するステップがあるのが好ましい。次に、本発明により実施される各コンピュータデバイスの識別可能なネットワーク情報を含むサーチ可能な暗号文ファイルを作成するステップがあるのが好ましく、暗号文ファイルは、他のそのようなコンピュータデバイスの各々と共有され得る。次に、データ及び／又は他の情報を、特定のコンピュータファイルに添付し、又はデータ及び／又は他の情報を、特定のコンピュータファイルに関連づけ、本発明により作られる信頼性がある分散型ピアツーピアネットワークのファイル共有機能に含めるステップがあるのが好ましい。
次に、公開鍵(電子メール、ＣＤ−ＲＯＭ、その他のようなものであるが、これらに限定されない)を、或るコンピュータデバイスから、所定の信頼性のあるネットワークに属する他のメンバーのコンピュータデバイスに配布し、信頼性のあるピアツーピアネットワークのメンバー間で、暗号化されたファイルを復号する際に用いる為に、そのような公開鍵を用意するステップがあるのが好ましい。
次に、それによって、信頼性のあるピアツーピアネットワークのメンバーが、分散手段を介して、信頼性のあるピアツーピアネットワークの他のメンバーを見つけるステップがあるのが好ましい。次に、これらに限定されないが、例えば、信頼性のあるチャットセッション、信頼性のあるファイル共有、その他のような種々の通信目的に、信頼性のあるピアツーピアネットワークを用いるステップがあるのが好ましい。
【０００８】
図面に於いて、同じ参照番号は、数図を通じて同等又は同じ部分を表している。図面、特に図１から図９を参照すると、コンピュータデバイスであるデバイス”Ａ”(10)、デバイス”Ｂ”(11)のオペレーティングシステム(25)の機能を引き出す装置(40)が開示されている。装置(40)は、コンピュータデバイスであるデバイス”Ａ”(10)、デバイス”Ｂ”(11)のオペレーティングシステム(25)に接続されている。装置(40)は、コンピュータデバイスであるデバイス”Ａ”(10)のオペレーティングシステム(25)の機能を引き出して、他のコンピュータデバイスであるデバイス”Ｂ”(11)の装置(40)に合わせる手段を具え、復号化鍵(例えば、ユーザＡの公開鍵(80)、ユーザＢの公開鍵(81))を電子的又は手動手段を介して共有し、暗号化された”ファインドミー”ファイル(例えば、ユーザＡのファインドミーファイル(100)、ユーザＢのファインドミーファイル(101))を公開型で信頼性のないファイル共有ネットワークを介して共有し、コンピュータデバイスであるデバイス”Ａ”(10)、デバイス”Ｂ”(11)間に、信頼性のあるピアツーピアネットワーク、信頼性のあるピアツーピアネットワークのメンバーの実時間の位置と、信頼性のあるピアツーピアネットワークを構成するコンピュータデバイス間の通信と、信頼性のあるピアツーピアネットワークを構成するコンピュータデバイス間のファイル共有とを確立する。
【０００９】
図１は、信頼性のある分散型ピアツーピアネットワークを確立する目的で、本発明を開示内容を実行するのに用いられる説明図であり、信頼性のある分散型ピアツーピアネットワークを確立することに関連して、コンピュータデバイスが接続され得る構成を示している。
【００１０】
図２は、本発明の開示内容の全て又は一部を実施することができるソフトウエア(例えば、ピアツーピアネットワークプログラム(40))をインストールする目的で、本発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートである。
【００１１】
図３は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、オペレーティングシステム(例えば、オペレーティングシステム(25))の機能を自動的に引き出して、暗号化鍵及び復号化鍵を作成するのに、ピアツーピアネットワークプログラム(40)が如何に設計され得るかを示している。
【００１２】
図４は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、信頼性のあるピアツーピアネットワークを作成する分散型制御手続きを作成する為に必要な情報を含むサーチ可能な暗号文ファイルを自動的に作成し、コンピュータデバイスのユーザがユーザ情報を手動で入力することを自動的に許し、オペレーティングシステム(例えば、オペレーティングシステム(25))から引き出されたピアツーピアネットワーク情報をサーチ可能なファイルに自動的に挿入し及びユーザ情報を自動的に挿入し、暗号化鍵(図３参照)を用いるサーチ可能なファイルを自動的に暗号化し、ストレージデバイス(例えば、ストレージデバイス(23))上のサーチ可能なファイルフォルダに、暗号化されサーチ可能な暗号文ファイルを自動的に保存する為に、ピアツーピアネットワークプログラム(40)が如何に設計され得るかを示している。
【００１３】
図５は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、データ及び／又は情報(例えば、ファイル属性、ファイル特性、その他)をコンピュータファイルに自動的に添付する為に、ピアツーピアネットワークプログラム(40)が如何に設計され得るかを示している。
【００１４】
図６は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、復号化鍵(例えば、公開鍵)をユーザの特定の受信者(例えば、信頼性のあるピアツーピアネットワークのメンバー)に自動的に配布する為に、ピアツーピアネットワークプログラム(40)が如何にコンピュータデバイスのユーザをアシストできるかを示している。
【００１５】
図７は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、ピアツーピアネットワークプログラム(40)が、特定の且つ以前から認識しているユーザ(例えば、信頼性のあるピアツーピアネットワークのメンバー)によって制御され、又は操作されるコンピュータデバイスに関するネットワーク情報(例えば、ＩＰアドレス)を含むコンピュータファイル(例えば、ユーザＡファインドミーファイル(100))に対してネットワークを共有する開放型(信頼性のない)ファイルを如何に自動的にサーチし、１又は２以上のコンピュータファイル(例えば、ユーザＡファインドミーファイル(100))を如何に自動的にダウンロードし、コンピュータファイル(例えば、ユーザＡファインドミーファイル(100))を如何に自動的に復号し、ネットワーク情報(例えば、ＩＰアドレス)を如何に自動的に抽出し、ネットワーク情報(例えば、ＩＰアドレス)を信頼性のあるメンバーのリスト(例えば、信頼性のあるメンバーのリスト(140))の特定の且つ以前から認識しているユーザ(例えば、信頼性のあるピアツーピアネットワークのメンバー)に夫々如何に自動的に関連づけることができるかを示している。
【００１６】
図８は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、ピアツーピアネットワークプログラム(40)が如何に通信プロトコル(例えば、チャットプロトコル(152))の機能を引き出して、特定の且つ以前から認識しているユーザ(例えば、信頼性のあるピアツーピアネットワークのメンバー)とチャットセッションを確立するかを示している。
【００１７】
図９は、この発明の開示内容を実施するのに用いられるコンピュータプログラミングフローチャートであり、ピアツーピアネットワークプログラム(40)が、信頼性のあるメンバーのリスト(140)のＩＰアドレスを用いて信頼性のあるピアツーピアネットワークを如何に自動的に確立し、通信プロトコル(例えば、ファイル共有プロトコル(153))の機能を如何に自動的に引き出して、信頼性のあるメンバーのリスト(140)のユーザによって制御され又は操作されるコンピュータデバイス上で、コンピュータファイルのサーチ及び検索を実行するのかを示している。
【００１８】
図１から図９を参照して、本発明の好ましい実施例は、以下にて構成される。
(10)  デバイス”Ａ”
(11)  デバイス”Ｂ”
(12)  デバイス”Ｃ”
(13)  デバイス”Ｄ”
(20)  ユーザインターフェイス
(21)  プロセッサ
(22)  ＲＡＭ
(23)  ストレージ
(24)  トランシーバ
(25)  オペレーティングシステム
(30)  通信手段
(41)  セットアップ実行ファイル
(40)  ピアツーピアネットワークプログラム
(50)  ユーザ情報ファイル
(60)  ファインドミーフォルダ
(61)  サーチされたファインドミー結果のフォルダ
(62)  信頼性のあるサーチフォルダ
(70)  暗号API
(71)  暗号化サービスプロバイダ
(72)  アプリケーションプログラミングインターフェイス
(80)  ユーザＡ公開鍵
(81)  ユーザＢ公開鍵
(82)  ユーザＣ公開鍵
(83)  ユーザＤ公開鍵
(90)  ユーザＡ秘密鍵
(91)  ユーザＢ秘密鍵
(92)  ユーザＣ秘密鍵
(93)  ユーザＤ秘密鍵
(100) ユーザＡファインドミーファイル
(101) ユーザＢファインドミーファイル
(102) ユーザＣファインドミーファイル
(103) ユーザＤファインドミーファイル
(110) ユーザＡ公開鍵BLOB
(111) ユーザＢ公開鍵BLOB
(112) ユーザＣ公開鍵BLOB
(113) ユーザＤ公開鍵BLOB
(120) ファイル情報ストリーム
(130) 電子メールプログラム
(140) 信頼性のあるメンバーのリスト
(150) ＦＴＰプロトコル
(151) ＨＴＴＰプロトコル
(152) チャットプロトコル
(153) ファイル共有プロトコル
【００１９】
図１から図９に於いて、以下の構成要素は、既に市販されている。デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)、ユーザインターフェイス(20)、プロセッサ(21)、ＲＡＭ(22)、ストレージ(23)、トランシーバ(24)、オペレーティングシステム(25)、通信手段(30)、暗号API(70)、暗号化サービスプロバイダ(71)、アプリケーションプログラミングインターフェイス(72)、ユーザＡ公開鍵(80)、ユーザＢ公開鍵(81)、ユーザＣ公開鍵(82)、ユーザＤ公開鍵(83)、ユーザＡ秘密鍵(90)、ユーザＢ秘密鍵(91)、ユーザＣ秘密鍵(92)、ユーザＤ秘密鍵(93)、ユーザＡ公開鍵BLOB(110)、ユーザＢ公開鍵BLOB(111)、ユーザＣ公開鍵BLOB(112)、ユーザＤ公開鍵BLOB(113)、電子メールプログラム(130)、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151)、チャットプロトコル(152)、及びファイル共有プロトコル(153)である。ピアツーピアネットワークプログラム(40)、セットアップ実行ファイル(41)、ユーザ情報ファイル(50)、ファインドミーフォルダ(60)、サーチされたファインドミー結果のフォルダ(61)、信頼性のあるサーチフォルダ(62)、ユーザＡファインドミーファイル(100)、ユーザＢファインドミーファイル(101)、ユーザＣファインドミーファイル(102)、ユーザＤファインドミーファイル(103)、ファイル情報ストリーム(120)、及び信頼性のあるメンバーのリスト(140)は、本発明に於ける新たなる開示である。
【００２０】
デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)は、演算機能を実行できる手段である(ウェブサーバー、ＰＣ、Ｍａｃ、ＰａｌｍＰＣ、ラップトップの様なものであるが、これらに限定されない)。デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)はまた、他のデバイスと電子的に通信できる手段である。デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)はまた、他のコンピュータデバイスにコンピュータファイル(例えば、ユーザＡファインドミーファイル(100))を送信する手段である。デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)はまた、情報及び／又はリクエストを他のコンピュータデバイスに送信する手段である。デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)は、ビデオディスプレイ、オーディオスピーカ、及び他の演算周辺デバイスを含む。本発明は、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)のみには限られない。
【００２１】
ユーザインターフェイス(20)(マイクロソフト(登録商標)社インターネットエクスプローラのようなウェブブラウザソフトウエア、キーボード、マウス、ビデオモニタ、スピーカのようなものであるが、これらに限定されない)は、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザがコンピュータデバイスにインターフェイスできる手段である。ユーザインターフェイス(20)は、コンピュータデバイスのユーザが他のコンピュータデバイスのリクエストを伝送するのに用いられることができ、ユーザインターフェイス(20)の内容をコンピュータデバイスのユーザに示すことができる手段である。ユーザインターフェイス(20)は、他のコンピュータデバイスから伝送されるリクエストを受信し、実行することができる手段である。ユーザインターフェイス(20)はまた、ハイパーテキスト伝送プロトコル(”ＨＴＴＰ”)を用いてデバイスの中の他の何れかのデバイス(例えば、デバイス”Ｃ”(12))のユーザの代わりに、インターネットを介して、複数のデバイス(例えば、デバイス”Ａ”(10))のリクエストを作ることができるクライアントプログラムである手段である。
【００２２】
プロセッサ(21)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の手段であって、オペレーティングシステム(25)、該オペレーティングシステム(25)又はコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の他の演算周辺デバイス上を動作する他のコンピュータプログラムの命令を電子的に処理する。
プロセッサ(21)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の手段であって、他の周辺デバイスソフトウエア及び／又はコンピュータデバイスのファームウエアデバイスの命令を電子的に処理する。
【００２３】
ＲＡＭ(22)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のオペレーティングシステム(25)により用いられる手段であって、コンピュータファイル、オペレーティングシステム(25)によって用いられるコンピュータプログラム又は他のコンピュータ情報(ユーザＡファインドミーファイル(100)のようなものであるが、これに限定されない)、オペレーティングシステム(25)又はコンピュータデバイスの他のコンピュータ周辺デバイス上を動作するコンピュータプログラムを一時的に格納する。
【００２４】
ストレージ(23)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))内の手段、又はコンピュータデバイスに接続される手段であって、コンピュータデバイスのＲＡＭ(22)からのコンピュータプログラム又はコンピュータファイル(ユーザＡファインドミーファイル(100)のようなものであるが、これに限定されない)のデジタル符号の電子的コピーを電子的に格納する。
【００２５】
トランシーバ(24)(電話モデム、ケーブルモデム、ネットワークインターフェイスカード、その他のようなものであるが、これに限定されない)は、通信手段(30)を介して通信信号を電子的に送受信する手段である。トランシーバ(24)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))及び／又はそのオペレーティングシステム(25)のソフトウエア及び／又はファームウエアにより用いられ、又は接続された手段であって、通信手段(30)を介して電子的に通信する。トランシーバ(24)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に接続され、通信手段(30)に接続されている。
【００２６】
オペレーティングシステム(25)(マイクロソフト(登録商標)社ウインドウズ２０００のようなものであるが、これに限定されない)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の演算機能を可能にする手段である。
【００２７】
通信手段(30)(電話線、ケーブルＴＶ線、同軸ケーブル、光ファイバ、ラジオ、携帯電話、衛星通信、シリアルケーブル、パラレルケーブル、赤外線通信、レーザー通信、ユニバーサルシリアルバス(ＵＳＢ)ケーブル、インターネット、ＬＡＮ、イーサネット(登録商標)、一般的なネットワークのようなものであるが、これに限定されない)は、接続されたコンピュータデバイスが、それによって電子的に通信できる手段である。
通信手段(30)はまた、接続されたコンピュータデバイスが、それによって標準的な通信プロトコル(ハイパーテキスト伝送プロトコル(”ＨＴＴＰ”)；ファイル伝送プロトコル(ＦＴＰ)その他のようなものであるが、これらに限定されない)を呼び出し、信号及び／又はコンピュータプログラム又はコンピュータファイル(ユーザＡファインドミーファイル(100)のようなものであるが、これらに限定されない)を送受信できる手段である。
通信手段(30)はまた、それに接続されたコンピュータデバイスが、暗号化された通信プロトコル(安全ソケット層(ＳＳＬ)、伝送層安全(ＴＬＳ)、仮想プライベートネットワーク(ＶＰＮ)その他のようなものであるが、これに限定されない)を呼び出して、暗号化された信号を送受信できる手段である。
通信手段(30)はまた、コンピュータネットワークの世界的広域システム、又は”インターネット”として知られるネットワークのネットワークを含み得る手段であり、該手段にて何れか１つのコンピュータデバイスに於けるユーザは、他のコンピュータ装置から情報を入手できる。通信手段(30)は、トランシーバ(70)、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に接続される。
【００２８】
ピアツーピアネットワークプログラム(40)は、複数のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))上にて作動できる手段である。ピアツーピアネットワークプログラム(40)はまた、オペレーティングシステム(25)又はその通信プログラムに命令して、通信手段(30)を介して他のコンピュータデバイス(例えば、デバイス”Ｃ”(12))と通信する手段である。コンピュータデバイス(例えば、デバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10))のピアツーピアネットワークプログラム(40)に命令して、デバイス”Ａ”(10)及びデバイス”Ｄ”(13)のピアツーピアネットワークプログラム(40)の機能が実行されている間中、デバイス”Ａ”(10)のオペレーティングシステム(25)に問い掛け又は命令を伝送する手段である。
コンピュータデバイス(例えば、デバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)はまた、通信手段(30)を介してコンピュータデバイス(例えば、デバイス”Ａ”(10))のピアツーピアネットワークプログラム(40)から命令を受信する手段である。
コンピュータデバイス(例えば、デバイス”Ａ”(10))のピアツーピアネットワークプログラム(40)はまた、通信手段(30)を介して他のコンピュータデバイス(例えば、デバイス”Ｃ”(12))から伝送されたコンピュータファイル(例えば、ユーザＣファインドミーファイル(102))から伝達を自動的に受信し、その電子的コピーを第１のコンピュータデバイス(例えば、デバイス”Ａ”(10))のＲＡＭ(22)内に自動的に格納する手段である。ピアツーピアネットワークプログラム(40)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10))のオペレーティングシステム(25)に自動的に命令して、ＲＡＭ(22)からコンピュータファイル(例えば、ユーザＣファインドミーファイル(102))を呼び出し、その電子的コピーをストレージ(23)に格納する手段である。
ピアツーピアネットワークプログラム(40)は、ピアツーピアネットワークプログラム(40)の機能実行が完成すると、コンピュータデバイス(例えば、デバイス”Ａｖ(10))のユーザインターフェイス(20)にメッセージを伝送する手段である。
ピアツーピアネットワークプログラム(40)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のユーザが信頼性のある通信ネットワークを確立することを可能にする手段である。ピアツーピアネットワークプログラム(40)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のユーザが信頼性のある通信ネットワークを利用して通信セッション(例えば、チャットセッション)を確立することを可能にする手段である。ピアツーピアネットワークプログラム(40)はまた、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のユーザが信頼性のある通信ネットワークを利用して、コンピュータデバイス間のファイルを共有することを可能にする手段である。
ピアツーピアネットワークプログラム(40)はまた、通信プロトコル(例えば、ＦＴＰプロトコル(150))を利用して、コンピュータファイル(例えば、ユーザＡファインドミーファイル(100))を、通信手段(30)を介して、ピアツーピアネットワークプログラム(40)にて作動する他のコンピュータデバイスに自動的に送信する手段である。ピアツーピアネットワークプログラム(40)は、コンピュータコーディングソフトウエア(コンピュータ言語Ｃ＋＋、Ｃ♯、アクティブサーバページ、ＸＭＬ、ビジュアルベーシック、アクティブＸコントロール、ジャバスクリプトその他にて記載されたプログラムのようなものであるが、これに限定されない)にて具体化され、上記の機能を実行する。
【００２９】
セットアップ実行ファイル(41)は、種々の手段(例えば、ダウンロード経由、ＣＤ−ＲＯＭその他)を介してコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送され得る手段である。セットアップ実行ファイル(41)は、ファイル自身を通常の処理である”ダブルクリック”することにより、機能がコンピュータデバイスのユーザにより呼び出されることができる手段である。セットアップ実行ファイル(41)は、ピアツーピアネットワークプログラム(40)のコピーを含む手段である。
セットアップ実行ファイル(41)は、ピアツーピアネットワークプログラム(40)をコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に自動的にインストールし、コンピュータデバイスのオペレーティングシステム(25)に対し、ピアツーピアネットワークプログラム(40)が適切に機能するのに必要な修正をする手段である。
【００３０】
ユーザ情報ファイル(50)は、ピアツーピアネットワークプログラム(40)のコピーを実行するコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のユーザによって手入力された情報からピアツーピアネットワークプログラム(40)によって作成されるコンピュータファイル(テキストドキュメントのようなものであるが、これに限定されない)である。
ユーザ情報ファイル(50)はまた、ホストコンピュータデバイスに固有の情報を含み、ピアツーピアネットワークプログラム(40)がホストオペレーティングシステム(25)のアプリケーションプログラミングインターフェイス(72)を利用することにより、該情報が自動的に収集されるコンピュータファイルである。
【００３１】
ファインドミーフォルダ(60)は、ホストコンピュータデバイス(例えば、デバイス”Ｂ”(11))のストレージ(23)内のフォルダ位置であり、コンピュータデバイスに関する信頼性のあるネットワーク情報を含むサーチ可能なファイル(例えば、ユーザＢファインドミーファイル(101))及びそのユーザが格納される。
ファインドミーフォルダ(60)は、ピアツーピアネットワークプログラム(40)が最初にインストールされると、セットアップ実行ファイル(41)によって作成される。ファインドミーフォルダ(60)はまた、ピアツーピアネットワークプログラム(40)が最初にインストールされた後に、自動的又は夫々のユーザのリクエストの何れかにより、ピアツーピアネットワークプログラム(40)によって作成される。多数のファインドミーフォルダ(60)は、本発明の実施例を含む各コンピュータデバイスに存在している。
【００３２】
サーチされたファインドミー結果のフォルダ(61)は、ホストコンピュータデバイス(例えば、デバイス”Ｂ”(11))のストレージ(23)内のフォルダ位置であり、ピアツーピアネットワークプログラム(40)によって実行される特定のサーチクエリーの結果であるコンピュータファイル(例えば、ユーザＡファインドミーファイル(100)、ユーザＣファインドミーファイル(102)、ユーザＤファインドミーファイル(103))が、ピアツーピアネットワークプログラム(40)によって格納される。
サーチされたファインドミー結果のフォルダ(61)は、ピアツーピアネットワークプログラム(40)が最初にインストールされると、セットアップ実行ファイル(41)によって作成され得る。サーチされたファインドミー結果のフォルダ(61)はまた、ピアツーピアネットワークプログラム(40)が最初にインストールされた後に、自動的又は夫々のユーザのリクエストの何れかにより、ピアツーピアネットワークプログラム(40)によって作成される。多数のサーチされたファインドミー結果のフォルダ(61)は、本発明の実施例を含む各コンピュータデバイスに存在している。
【００３３】
信頼性のあるサーチフォルダ(62)は、ホストコンピュータデバイス(例えば、デバイス”Ｂ”(11))のストレージ(23)内のフォルダ位置であって、ピアツーピアネットワークプログラム(40)によって実行される特定のサーチ問い合わせの結果であるコンピュータファイル(例えば、ドキュメント、表計算、オーディオファイル(例えば、ASF、WMA、MP3、WAV、AUI)、ビデオファイル(例えば、ASF、WMV、AVI、MPEG)、実行可能なプログラム(例えば、EXE)その他)が、ピアツーピアネットワークプログラム(40)によって格納される。
信頼性のあるサーチフォルダ(62)は、ピアツーピアネットワークプログラム(40)のコピーを実行する他のコンピュータデバイスによってサーチされる。信頼性のあるサーチフォルダ(62)は、他のコンピュータデバイスがファイル共有プロトコル(153)を用いて、ピアツーピアネットワークプログラム(40)のコピーを実行することによってサーチされる。信頼性のあるサーチフォルダ(62)は、ピアツーピアネットワークプログラム(40)が最初にインストールされると、セットアップ実行ファイル(41)によって作成される。信頼性のあるサーチフォルダ(62)はまた、ピアツーピアネットワークプログラム(40)が最初にインストールされた後に、自動的又は夫々のユーザのリクエストの何れかにより、ピアツーピアネットワークプログラム(40)によって作成され得る。多数の信頼性のあるサーチフォルダ(62)は、本発明の実施例を含む各コンピュータデバイスに存在している。
【００３４】
暗号API(70)は、オペレーティングシステム(例えば、オペレーティングシステム(25))の手段であり、コンピュータプログラム及び／又はアプリケーションがオペレーティングシステム(例えば、マイクロソフト(登録商標)暗号API、アプリケーションプログラミングインターフェイス)の暗号化機能を実行することを可能にする。
暗号API(70)はまた、オペレーティングシステム(25)の手段であり、暗号化機能を含み、ピアツーピアネットワークプログラム(40)が暗号化及び復号化機能を実行するのに用いることができる。暗号API(70)はまた、オペレーティングシステム(25)の手段であり、データを暗号化又は復号化し、デジタル証明を用いた認証機能を有する。
暗号API(70)はまた、オペレーティングシステム(25)の手段であり、証明ストア(例えば、暗号化サービスプロバイダ(71))内の証明の不揮発性記憶域、公開鍵、秘密鍵を維持し管理する証明管理機能を供給する。
暗号API(70)はまた、オペレーティングシステム(25)の手段であり、証明を出力中の伝送及び／又はメッセージに組み入れ、及び受信された伝送及び／又はメッセージ内の受信されたデジタル証明を確認する。
【００３５】
暗号化サービスプロバイダ(71)は、暗号API(70)の手段であり、公開鍵／秘密鍵のペアを不揮発性メモリ(例えば、マイクロソフト(登録商標)ＣＳＰ)内のセッションからセッションに格納する。暗号化サービスプロバイダ(71)はまた、暗号API(70)の手段であり、暗号化形式の公開鍵／秘密鍵のペアをオペレーティングシステム(例えば、オペレーティングシステム(25))のシステムレジストリに格納する。
【００３６】
アプリケーションプログラミングインターフェイス(72)は、オペレーティングシステム(例えば、オペレーティングシステム(25))の手段であり、ピアツーピアネットワークプログラム(40)がホストコンピュータ(例えば、マイクロソフト(登録商標)Ｗｉｎ３２ＡＰＩ)に関する特定の情報をプログラム的に取り出すことを可能にする。
アプリケーションプログラミングインターフェイス(72)はまた、オペレーティングシステム(例えば、オペレーティングシステム(25))の手段であり、ホストコンピュータのネットワーク構成についての特定のＩＰアドレス情報をプログラム的に取り出すことを可能にする。アプリケーションプログラミングインターフェイス(72)は、暗号API(70)、暗号化サービスプロバイダ(71)、及び他の同様のアプリケーションプログラミングインターフェイスの機能を有する。
【００３７】
ユーザＡ公開鍵(80)は、或る秘密鍵(例えば、ユーザＡ秘密鍵(90))を用いて暗号化されたファイルを復号するのに用いられる手段であり、該秘密鍵はユーザＡ公開鍵(80)とともに、公開／秘密鍵のペアを作成する。ユーザＡ公開鍵(80)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＡ公開鍵(80)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ａ”(10))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
ユーザＡ公開鍵(80)はまた、種々の手段を介して(例えば、通信手段(30)、フロッピィディスク、電子メールプログラム(130)その他を介して)、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送され得る手段である。ユーザＡ公開鍵(80)はまた、暗号化サービスプロバイダ(71)によって、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。ユーザＡ公開鍵(80)はまた、或る秘密鍵(例えば、ユーザＡ秘密鍵(90))にて暗号化された他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))上のファイルを復号できる手段である。
【００３８】
ユーザＢ公開鍵(81)は、或る秘密鍵(例えば、ユーザＢ秘密鍵(91))を用いて暗号化されたファイルを復号するのに用いられる手段であり、該秘密鍵はユーザＢ公開鍵(81)とともに、公開／秘密鍵のペアを作成する。ユーザＢ公開鍵(81)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＢ公開鍵(81)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｂ”(11))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
ユーザＢ公開鍵(81)はまた、種々の手段を介して(例えば、通信手段(30)、フロッピィディスク、電子メールプログラム(130)その他を介して)、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送され得る手段である。ユーザＢ公開鍵(81)はまた、暗号化サービスプロバイダ(71)によって、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。ユーザＢ公開鍵(81)はまた、或る秘密鍵(例えば、ユーザＢ秘密鍵(91))にて暗号化された他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))上のファイルを復号できる手段である。
【００３９】
ユーザＣ公開鍵(82)は、或る秘密鍵(例えば、ユーザＣ秘密鍵(92))を用いて暗号化されたファイルを復号するのに用いられる手段であり、該秘密鍵はユーザＣ公開鍵(82)とともに、公開／秘密鍵のペアを作成する。ユーザＣ公開鍵(82)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＣ公開鍵(82)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｃ”(12))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
ユーザＣ公開鍵(82)はまた、種々の手段を介して(例えば、通信手段(30)、フロッピィディスク、電子メールプログラム(130)その他を介して)、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))に伝送され得る手段である。ユーザＣ公開鍵(82)はまた、暗号化サービスプロバイダ(71)によって、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。ユーザＣ公開鍵(82)はまた、或る秘密鍵(例えば、ユーザＣ秘密鍵(92))にて暗号化された他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))上のファイルを復号できる手段である。
【００４０】
ユーザＤ公開鍵(83)は、或る秘密鍵(例えば、ユーザＤ秘密鍵(93))を用いて暗号化されたファイルを復号するのに用いられる手段であり、該秘密鍵はユーザＤ公開鍵(83)とともに、公開／秘密鍵のペアを作成する。ユーザＤ公開鍵(83)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＤ公開鍵(83)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｄ”(13))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
ユーザＤ公開鍵(83)はまた、種々の手段を介して(例えば、通信手段(30)、フロッピィディスク、電子メールプログラム(130)その他を介して)、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))に伝送され得る手段である。ユーザＤ公開鍵(83)はまた、暗号化サービスプロバイダ(71)によって、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。ユーザＤ公開鍵(83)はまた、或る秘密鍵(例えば、ユーザＤ秘密鍵(93))にて暗号化された他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))上のファイルを復号できる手段である。
【００４１】
ユーザＡ秘密鍵(90)は、或る公開鍵(例えば、ユーザＡ公開鍵(80))を用いて復号化されたファイルを暗号化するのに用いられ、該公開鍵はユーザＡ秘密鍵(90)とともに、公開／秘密鍵のペアを作成する。ユーザＡ公開鍵(90)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＡ秘密鍵(90)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ａ”(10))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
【００４２】
ユーザＢ秘密鍵(91)は、或る公開鍵(例えば、ユーザＢ公開鍵(81))を用いて復号化されたファイルを暗号化するのに用いられ、該公開鍵はユーザＢ秘密鍵(91)とともに、公開／秘密鍵のペアを作成する。ユーザＢ公開鍵(91)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＢ秘密鍵(91)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｂ”(11))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
【００４３】
ユーザＣ秘密鍵(92)は、或る公開鍵(例えば、ユーザＣ公開鍵(82))を用いて復号化されたファイルを暗号化するのに用いられ、該公開鍵はユーザＣ秘密鍵(92)とともに、公開／秘密鍵のペアを作成する。ユーザＣ公開鍵(92)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＣ秘密鍵(92)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｃ”(12))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
【００４４】
ユーザＤ秘密鍵(93)は、或る公開鍵(例えば、ユーザＤ公開鍵(83))を用いて復号化されたファイルを暗号化するのに用いられ、該公開鍵はユーザＤ秘密鍵(93)とともに、公開／秘密鍵のペアを作成する。ユーザＤ公開鍵(93)はまた、暗号API(70)を用いるピアツーピアネットワークプログラム(40)によって作成される手段である。ユーザＤ秘密鍵(93)はまた、暗号化サービスプロバイダ(71)によってホストコンピュータデバイス(例えば、デバイス”Ｄ”(13))のストレージ(23)上の不揮発性メモリ内に格納され得る手段である。
【００４５】
ユーザＡファインドミーファイル(100)は、ピアツーピアネットワークプログラム(40)によって作成されるコンピュータファイル(例えば、テキストファイル)である。ユーザＡファインドミーファイル(100)は、デバイス”Ａ”(10)及びそのユーザに関する情報を含む。ユーザＡファインドミーファイル(100)は、以下のような情報を含むことができる。デバイス”Ａ”(10)のシステム名；デバイス”Ａ”(10)のユーザ名；デバイス”Ａ”(10)のＩＰアドレスその他である。ユーザＡファインドミーファイル(100)は、ピアツーピアネットワークプログラム(40)によって作成され、ユーザ情報ファイル(50)からの情報を含むことができる。ユーザＡファインドミーファイル(100)は、ピアツーピアネットワークプログラム(40)によって作成され、アプリケーションプログラミングインターフェイス(72)を用いて、ピアツーピアネットワークプログラム(40)によって得られる情報を含むことができる。ユーザＡファインドミーファイル(100)は、ピアツーピアネットワークプログラム(40)が開始する度に、ピアツーピアネットワークプログラム(40)によって作成されることができ、何れの古いバージョンのユーザＡファインドミーファイル(100)も、新たなバージョンに上書きされることができ、デバイス”Ａ”(10)及び／又はそのユーザに関する情報を変更する要因となる。ユーザＡファインドミーファイル(100)は、平文形式及び／又は暗号文形式で存在する。
ユーザＡファインドミーファイル(100)は、デバイス”Ａ”(10)の暗号API(70)を使用し、ユーザＡ秘密鍵(90)を用いて、ピアツーピアネットワークプログラム(40)によって暗号化され得る。ユーザＡファインドミーファイル(100)は、デバイス”Ａ”(10)の暗号API(70)を使用し、ユーザＡ公開鍵(80)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＡファインドミーファイル(100)は、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の暗号API(70)を使用し、ユーザＡ公開鍵(80)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＡファインドミーファイル(100)は、通信手段(30)を介して、デバイス”Ａ”(10)から他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送され得る。
【００４６】
ユーザＢファインドミーファイル(101)は、ピアツーピアネットワークプログラム(40)によって作成されるコンピュータファイル(例えば、テキストファイル)である。ユーザＢファインドミーファイル(101)は、デバイス”Ｂ”(11)及びそのユーザに関する情報を含む。ユーザＢファインドミーファイル(101)は、以下のような情報を含むことができる。デバイス”Ｂ”(11)のシステム名；デバイス”Ｂ”(11)のユーザ名；デバイス”Ｂ”(11)のＩＰアドレスその他である。ユーザＢファインドミーファイル(101)は、ピアツーピアネットワークプログラム(40)によって作成され、ユーザ情報ファイル(50)からの情報を含むことができる。ユーザＢファインドミーファイル(101)は、ピアツーピアネットワークプログラム(40)によって作成され、アプリケーションプログラミングインターフェイス(72)を用いて、ピアツーピアネットワークプログラム(40)によって得られる情報を含むことができる。
ユーザＢファインドミーファイル(101)は、ピアツーピアネットワークプログラム(40)が開始する度に、ピアツーピアネットワークプログラム(40)によって作成されることができ、何れの古いバージョンのユーザＢファインドミーファイル(101)も、新たなバージョンに上書きされることができ、デバイス”Ｂ”(11)及び／又はそのユーザに関する情報を変更する要因となる。ユーザＢファインドミーファイル(101)は、平文形式及び／又は暗号文形式で存在する。
ユーザＢファインドミーファイル(101)は、デバイス”Ｂ”(11)の暗号API(70)を使用し、ユーザＢ秘密鍵(91)を用いて、ピアツーピアネットワークプログラム(40)によって暗号化され得る。ユーザＢファインドミーファイル(101)は、デバイス”Ｂ”(11)の暗号API(70)を使用し、ユーザＢ公開鍵(81)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＢファインドミーファイル(101)は、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の暗号API(70)を使用し、ユーザＢ公開鍵(81)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＢファインドミーファイル(101)は、通信手段(30)を介して、デバイス”Ｂ”(11)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送され得る。
【００４７】
ユーザＣファインドミーファイル(102)は、ピアツーピアネットワークプログラム(40)によって作成されるコンピュータファイル(例えば、テキストファイル)である。ユーザＣファインドミーファイル(102)は、デバイス”Ｃ”(12)及びそのユーザに関する情報を含む。ユーザＣファインドミーファイル(102)は、以下のような情報を含むことができる。デバイス”Ｃ”(12)のシステム名；デバイス”Ｃ”(12)のユーザ名；デバイス”Ｃ”(12)のＩＰアドレスその他である。ユーザＣファインドミーファイル(102)は、ピアツーピアネットワークプログラム(40)によって作成され、ユーザ情報ファイル(50)からの情報を含むことができる。ユーザＣファインドミーファイル(102)は、ピアツーピアネットワークプログラム(40)によって作成され、アプリケーションプログラミングインターフェイス(72)を用いて、ピアツーピアネットワークプログラム(40)によって得られる情報を含むことができる。
ユーザＣファインドミーファイル(102)は、ピアツーピアネットワークプログラム(40)が開始する度に、ピアツーピアネットワークプログラム(40)によって作成されることができ、何れの古いバージョンのユーザＣファインドミーファイル(102)も、新たなバージョンに上書きされることができ、デバイス”Ｃ”(12)及び／又はそのユーザに関する情報を変更する要因となる。ユーザＣファインドミーファイル(102)は、平文形式及び／又は暗号文形式で存在する。
ユーザＣファインドミーファイル(102)は、デバイス”Ｃ”(12)の暗号API(70)を使用し、ユーザＣ秘密鍵(92)を用いて、ピアツーピアネットワークプログラム(40)によって暗号化され得る。ユーザＣファインドミーファイル(102)は、デバイス”Ｃ”(12)の暗号API(70)を使用し、ユーザＣ公開鍵(82)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＣファインドミーファイル(102)は、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))の暗号API(70)を使用し、ユーザＣ公開鍵(82)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＣファインドミーファイル(102)は、通信手段(30)を介して、デバイス”Ｃ”(12)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))に伝送され得る。
【００４８】
ユーザＤファインドミーファイル(103)は  ピアツーピアネットワークプログラム(40)によって作成されるコンピュータファイル(例えば、テキストファイル)である。ユーザＤファインドミーファイル(103)は、デバイス”Ｄ”(13)及びそのユーザに関する情報を含む。ユーザＤファインドミーファイル(103)は、以下のような情報を含むことができる。デバイス”Ｄ”(13)のシステム名；デバイス”Ｄ”(13)のユーザ名；デバイス”Ｄ”(13)のＩＰアドレスその他である。ユーザＤファインドミーファイル(103)は、ピアツーピアネットワークプログラム(40)によって作成され、ユーザ情報ファイル(50)からの情報を含むことができる。ユーザＤファインドミーファイル(103)は、ピアツーピアネットワークプログラム(40)によって作成され、アプリケーションプログラミングインターフェイス(72)を用いて、ピアツーピアネットワークプログラム(40)によって得られる情報を含むことができる。
ユーザＤファインドミーファイル(103)は、ピアツーピアネットワークプログラム(40)が開始する度に、ピアツーピアネットワークプログラム(40)によって作成されることができ、何れの古いバージョンのユーザＤファインドミーファイル(102)も、新たなバージョンに上書きされることができ、デバイス”Ｄ”(13)及び／又はそのユーザに関する情報を変更する要因となる。ユーザＤファインドミーファイル(103)は、平文形式及び／又は暗号文形式で存在する。
ユーザＤファインドミーファイル(103)は、デバイス”Ｄ”(13)の暗号API(70)を使用し、ユーザＣ秘密鍵(93)を用いて、ピアツーピアネットワークプログラム(40)によって暗号化され得る。ユーザＤファインドミーファイル(103)は、デバイス”Ｄ”(13)の暗号API(70)を使用し、ユーザＣ公開鍵(83)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＤファインドミーファイル(103)は、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))の暗号API(70)を使用し、ユーザＤ公開鍵(83)を用いて、ピアツーピアネットワークプログラム(40)によって復号化され得る。ユーザＤファインドミーファイル(103)は、通信手段(30)を介して、デバイス”Ｄ”(13)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))に伝送され得る。
【００４９】
ユーザＡ公開鍵BLOB(110)は、暗号化サービスプロバイダ(71)の外で公開鍵(例えば、復号鍵)を格納する手段である。また、ユーザＡ公開鍵BLOB(110)は、暗号API(70)を用いてピアツーピアネットワークプログラム(40)により作成される手段である。また、ユーザＡ公開鍵BLOB(110)は、ユーザＡ公開鍵(80)を格納及び転送するために使用される手段である。また、ユーザＡ公開鍵BLOB(110)は、通信手段(30)を介してデバイス”Ａ”(10)から他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送される手段である。他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)は、暗号API(70)を使用し、ユーザＡ公開鍵BLOB(110)からユーザＡ公開鍵(80)を取り出し、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の暗号化サービスプロバイダに、夫々ユーザＡ公開鍵(80)を保存する。
【００５０】
ユーザＢ公開鍵BLOB(111)は、暗号化サービスプロバイダ(71)の外で公開鍵(例えば、復号鍵)を格納する手段である。また、ユーザＢ公開鍵BLOB(111)は、暗号API(70)を用いてピアツーピアネットワークプログラム(40)により作成される手段である。また、ユーザＢ公開鍵BLOB(111)は、ユーザＢ公開鍵(81)を格納及び転送するために使用される手段である。また、ユーザＢ公開鍵BLOB(111)は、通信手段(30)を介してデバイス”Ｂ”(11)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))に伝送される手段である。他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)は、暗号API(70)を使用し、ユーザＢ公開鍵BLOB(111)からユーザＢ公開鍵(81)を取り出し、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の暗号化サービスプロバイダに、夫々ユーザＢ公開鍵(81)を保存する。
【００５１】
ユーザＣ公開鍵BLOB(112)は、暗号化サービスプロバイダ(71)の外で公開鍵(例えば、復号鍵)を格納する手段である。また、ユーザＣ公開鍵BLOB(112)は、暗号API(70)を用いてピアツーピアネットワークプログラム(40)により作成される手段である。また、ユーザＣ公開鍵BLOB(112)は、ユーザＣ公開鍵(82)を格納及び転送するために使用される手段である。また、ユーザＣ公開鍵BLOB(112)は、通信手段(30)を介してデバイス”Ｃ”(12)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))に伝送される手段である。他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)は、暗号API(70)を使用し、ユーザＣ公開鍵BLOB(112)からユーザＣ公開鍵(82)を取り出し、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｄ”(13))の暗号化サービスプロバイダに、夫々ユーザＣ公開鍵(82)を保存する。
【００５２】
ユーザＤ公開鍵BLOB(113)は、暗号化サービスプロバイダ(71)の外で公開鍵(例えば、復号鍵)を格納する手段である。また、ユーザＤ公開鍵BLOB(113)は、暗号API(70)を用いてピアツーピアネットワークプログラム(40)により作成される手段である。また、ユーザＤ公開鍵BLOB(113)は、ユーザＤ公開鍵(83)を格納及び転送するために使用される手段である。また、ユーザＤ公開鍵BLOB(113)は、通信手段(30)を介してデバイス”Ｄ”(13)から他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))に伝送される手段である。他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))のピアツーピアネットワークプログラム(40)は、暗号API(70)を使用し、ユーザＤ公開鍵BLOB(113)からユーザＤ公開鍵(83)を取り出し、他のコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、及びデバイス”Ｃ”(12))の暗号化サービスプロバイダに、夫々ユーザＤ公開鍵(83)を保存する。
【００５３】
ファイル情報ストリーム(120)は、情報データのストリームであり、コンピュータファイルの全ファイル構造を構成する複数のストリームの一つに組み込まれている。複数のストリームは、ファイル情報ストリーム(120)が結び付けられると共に、ストレージ(23)(例えば、マイクロソフトＮＴＦＳストレージデバイス)に格納されたコンピュータファイルの全ファイル構造を構成する。また、ファイル情報ストリーム(120)は、データのストリームであり、コンピュータファイルに付加され、結び付けられ、又は関連付けされている。ファイル情報ストリーム(120)は、コンピュータファイル名、作成日、作成者、コンピュータファイルが作成されたシステム、コンピュータファイルの説明等の情報が含められ得る。ファイル情報ストリーム(120)は、アプリケーションプログラミングインターフェイス(72)を用いて、ピアツーピアネットワークプログラム(40)によって作成される。ファイル情報ストリーム(120)は、アプリケーションプログラミングインターフェイス(72)と、ユーザインターフェイス(20)を介してユーザに表示される関連情報とを用いて、ピアツーピアネットワークプログラム(40)によってアクセスされ得る。データは、如何なるタイプのデータのデジタル信号であってよい。例えば、ビテオデジタル信号、オーディオデジタル信号である。しかし、これらに限定されることはない。
【００５４】
電子メールプログラム(130)は、あるコンピュータデバイスから他のコンピュータデバイスへコンピュータメッセージを転送又は交換可能とする手段であり、あるトランスポートコントロールプロトコル/インターネットプロトコル通信規約(例えば、シンプルメールトランスファプログラム、ポストオフィスプログラム３、インターネットメッセージアクセスプロトコル等)を用いている。電子メールプログラム(130)は、テキスト情報、添付コンピュータファイル等を含み得る。
電子メールプログラム(130)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)及びデバイス”Ｄ”(13))のユーザに、公開鍵BLOB( 例えば、ユーザＡ公開鍵BLOB(110)、ユーザＢ公開鍵BLOB(111) 、ユーザＣ公開鍵BLOB(112)、及びユーザＤ公開鍵BLOB(113))を、送信元のコンピュータデバイスから他のコンピュータデバイスに、手動で又は電子的に転送することを可能にする手段である。
また、電子メールプログラム(130)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)及びデバイス”Ｄ”(13))のユーザに、ユーザファインドミーファイル( 例えば、ユーザＡファインドミーファイル(100)、ユーザＢファインドミーファイル(101) 、ユーザＣファインドミーファイル(102)、及びユーザＤファインドミーファイル(103))の名前を、送信元のコンピュータデバイスから他のコンピュータデバイスに、手動で又は電子的に転送することを可能にする手段である。
また、電子メールプログラム(130)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)に、公開鍵BLOB( 例えば、ユーザＡ公開鍵BLOB(110)、ユーザＢ公開鍵BLOB(111) 、ユーザＣ公開鍵BLOB(112)、及びユーザＤ公開鍵BLOB(113))を、送信元のコンピュータデバイスから他のコンピュータデバイスに、自動的に又は電子的に転送することを可能にする手段である。
また、電子メールプログラム(130)は、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のピアツーピアネットワークプログラム(40)に、ユーザファインドミーファイル( 例えば、ユーザＡファインドミーファイル(100)、ユーザＢファインドミーファイル(101) 、ユーザＣファインドミーファイル(102)、及びユーザＤファインドミーファイル(103))の名前を、送信元のコンピュータデバイスから他のコンピュータデバイスに、自動的に又は電子的に転送することを可能にする手段である。
【００５５】
信頼性のあるメンバーのリスト(140)は、ピアツーピアネットワークプログラム(40)内の名簿であり、ユーザファインドミーファイル(例えば、ユーザＡファインドミーファイル(100)、ユーザＢファインドミーファイル(101) 、ユーザＣファインドミーファイル(102)、及びユーザＤファインドミーファイル(103))とコンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のＩＰアドレスとを、夫々関連づける。信頼性のあるメンバーのリスト(140)は、ピアツーピアネットワークプログラム(40)が開始される度に更新され得る。信頼性のあるメンバーのリスト(140)は、ピアツーピアネットワークプログラム(40)のユーザの要求によって、更新又はリフレッシュされ得る。信頼性のあるメンバーのリスト(140)に載ったＩＰアドレスは、ピアツーピアネットワークプログラム(40)によって用いられ、信頼性のある分散型ピアツーピアネットワークが確立される。
【００５６】
ＦＴＰプロトコル(150)は、典型的なインターネットプロトコルであり、ファイルトランスファプロトコルとして知られている。ＦＴＰプロトコル(150)は、インターネット上のコンピュータデバイス間でコンピュータファイルを転送及び／又は交換する最も簡単な方法として一般に知られている。ピアツーピアネットワークプログラム(40)は、ＦＴＰプロトコル(150)を使用することにより、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))間で、通信手段(30)を介してコンピュータファイルを転送及び／又は交換できる。ピアツーピアネットワークプログラム(40)は、ＦＴＰプロトコル(150)を使用することにより、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))間で、通信手段(30)を介して通信させる。
【００５７】
ＨＴＴＰプロトコル(151)は、典型的なインターネットプロトコルであり、ハイパーテキストトランスファプロトコルとして知られている。ＨＴＴＰプロトコル(151)は、インターネット上のコンピュータデバイス間でコンピュータファイルを転送及び／又は交換する普通の方法として一般に知られている。ピアツーピアネットワークプログラム(40)は、ＨＴＴＰプロトコル(151)を使用することにより、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))間で、通信手段(30)を介してコンピュータファイルを転送及び／又は交換できる。ピアツーピアネットワークプログラム(40)は、ＨＴＴＰプロトコル(151)を使用することにより、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))との間で、通信手段(30)を介して通信させる。
【００５８】
チャットプロトコル(152)は、コンピュータデバイス間で電子通信するためのシステムである。チャットプロトコル(152)は、一連の規則及び約束事を含んでおり、インターネットリレーチャット(ＩＲＣ)として知られており、典型的なインターネットプロトコルである。チャットプロトコル(152)は、一般的に、通信手段(例えば、通信手段(30))を使用して、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーサーと他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の他のユーザ間で、打ち込まれた(typed-in)メッセージのリアルタイム変換に用いられる。チャットプログラム(152)は、ピアツーピアネットワークプログラム(40)を使用することにより、ピアツーピアネットワークプログラム(40)が確立できる、信頼性のある分散型ピアツーピアネットワークと共同して、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーサーと他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))の他のユーザとの間で、プライベートチャットセッションを確立する。
【００５９】
ファイル共有プロトコル(152)は、他のインターネットプロトコル(例えば、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151)等)を活用するために使用される
規則及び約束事の組であり、これによって、コンピュータデバイスのユーザにより入力されたクエリーに合うコンピュータファイルを求めて、コンピュータデバイス(例えば、デバイス”Ａ”(10)、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のストレージデバイス(例えば、ストレージ(23))の指定されたファイルフォルダをサーチできる。ファイル共有プロトコル(152)は、ピアツーピアネットワークプログラム(40)により使用されて、ピアツーピアネットワークプログラム(40)が確立できる、信頼性のある分散型ピアツーピアネットワークと共同して、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザにより手動で入力されたリクエストに基づいて、他のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))のストレージデバイス(23)にある指定されたファイルフォルダ(例えば、信頼性のあるサーチフォルダ(62))のコンピュータファイルのサーチ及び検索を実行できる。
【００６０】
ユーザインターフェイス(20)によって、セットアップ実行ファイル(41)(例えば、ＣＤ−ＲＯＭ、ストレージ(23)等にあるセットアップ実行ファイル(41))に接続しているコンピュータデバイスのユーザは、セットアップ実行ファイル(41)をダブルクリックして、インストールプロセスを開始する。
次に、セットアップ実行ファイル(41)は、ピアツーピアネットワークプログラム(40)をストレージ(23)にコピーすることを始める。次に、セットアップ実行ファイル(41)は、ユーザからの情報をリクエストし、ユーザは、ユーザインターフェイス(20)を介してその情報を入力する。次に、セットアップ実行ファイル(41)は、そのユーザ情報をユーザ情報ファイル(50)としてストレージ(23)に保存する。
次に、セットアップ実行ファイル(41)は、必要なあらゆる変更をオペレーティングシステム(25)のシステムレジストリに行う。
次に、セットアップ実行ファイル(41)は、ファインドミーフォルダ(60)、サーチされたファインドミー結果のフォルダ(61)、及び信頼性のあるサーチフォルダ(62)をストレージ(23)に作成する。これらのステップは、ピアツーピアネットワークプログラム(40)を実行する予定である各コンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、及びデバイス”Ｄ”(13))について行われる。
【００６１】
次に、ピアツーピアネットワークプログラム(40)の最初の使用の後、ピアツーピアネットワークプログラム(40)は、ホストコンピュータデバイスのユーザにそのユーザ(例えばユーザＡ)を識別する名前を入力するように促す。
次に、ピアツーピアネットワークプログラム(40)は、公開／秘密鍵のペアを作成するために、オペレーションシステム(25)の暗号API(70)の暗号機能を呼び出す(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズの暗号APIの”CryptAcquireContext”機能を呼び出す)。
次に、暗号API(70)は、暗号化サービスプロバイダ(71)に処理を戻す(例えば、ウインドウズの暗号化APIは、ピアツーピアネットワークプログラム(40)に対するマイクロソフトRSA／Ｓチャンネル暗号化サービスプロバイダに処理を戻す)。
次に、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)の暗号化API(70)の暗号化機能を呼び出し、暗号化サービスプロバイダ(71)に指示して、公開／秘密鍵のペアの作成を実行させる(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズの”CryptGenKey”関数を呼び出す)。
次に、暗号化API(70)は、暗号化サービスプロバイダ(71)に指示する(例えば、ウインドウズの暗号化APIは、マイクロソフトRSA／Ｓチャンネル暗号化サービスプロバイダに公開／秘密鍵(例えば、ユーザＡ公開鍵(80)及びユーザＡ秘密鍵(81))のペアを作成するように指示する)。
【００６２】
次に、ピアツーピアネットワークプログラム(40)は、ユーザＡファインドミーファイル(100)のプレインテキストバージョン(例えば、テキストファイル)を作成する。現段階では、ユーザＡファインドミーファイル(100)はブランクファイルである。
次に、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)のアプリケーションプログラミングインターフェイス(72)の機能を呼び出し、ホストコンピュータデバイス(例えば、デバイス”Ａ”(10))の識別可能なネットワーク情報を得る(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズAPIの”CurrentIpAddress”関数を呼び出す)。
次に、アプリケーションプログラミングインターフェイス(72)は、オペレーティングシステム(25)に問い合わせを行い、ホストコンピュータデバイス(例えば、デバイス”Ａ”(10))の識別可能なネットワーク情報を得る。そして、アプリケーションプログラミングインターフェイス(72)は、その識別可能なネットワーク情報をピアツーピアネットワークプログラム(40)に送る。
次に、ピアツーピアネットワークプログラム(40)は、識別可能なネットワーク情報を、ユーザＡファインドミーファイル(100)のプレインテキストバージョンに書き込む。
次に、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)の暗号化API(７0)の暗号化機能を呼び出し(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズ暗号化APIの”CPEncrypt”関数を呼び出す)、秘密鍵(例えば、ユーザＡ秘密鍵(90))でユーザＡファインドミーファイル(100)を暗号化する。この時点で、ピアツーピアネットワークプログラム(40)は、本発明の他の実施例を実行するように構成される。
【００６３】
次に、ユーザインターフェイス(20)を用いて、ユーザがピアツーピアネットワークプログラム(40)を開始する度に、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)のアプリケーションプログラミングインターフェイス(72)の機能を用いて、ファイル情報ストリーム(120)を欠くコンピュータファイルを探して、信頼性のあるサーチフォルダ(62)を自動的にサーチする(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズのAPIの”FileSystemObject”オブジェクトモデルを呼び出して、コンピュータファイルを開け、書き込み、作成し、及びテストする)。
次に、ファイル情報ストリーム(120)を欠く信頼性のあるサーチフォルダ(62)の各々の各コンピュータファイルについて、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)のアプリケーションプログラミングインターフェイス(72)の機能を呼び出し、ユーザ情報ファイル(50)を開け、ユーザ情報ファイル(50)からの情報をファイル情報ストリーム(120)に書き込む(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズのAPIの”FileSystemObject”オブジェクトモデルを呼び出して、コンピュータファイルを開け、書き込み、作成し、及びテストする)。
また、ピアツーピアネットワークプログラム(40)によって、ホストコンピュータデバイスのユーザは、関係する各コンピュータファイルのファイル情報ストリーム(120)に他の情報を手動で入力でき、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)のアプリケーションプログラミングインターフェイス(72)の機能を呼び出して、このタスクを完了する。そして、ピアツーピアネットワークプログラム(40)は、ユーザが手動で入力した情報をファイル情報ストリーム(120)に書き込む(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズのAPIの”FileSystemObject”オブジェクトモデルを呼び出して、コンピュータファイルを開け、書き込み、作成し、及びテストする)。
【００６４】
次に、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザ(例えば、ユーザＡ)は、ユーザインターフェイス(20)を介してピアツーピアネットワークプログラム(40)にコマンドを入力し、彼らの関係する公開鍵(例えば、ユーザＡ公開鍵(80))を、別のコンピュータデバイスの別のユーザである受信者、又は他のコンピュータデバイスの他のユーザである複数の受信者にエクスポートする。ユーザＡは、受信者又は複数の受信者の電子メールアドレスを入力する。
次に、ピアツーピアネットワークプログラム(40)は、オペレーティングシステム(25)の暗号化API(70)の機能を呼び出して、ユーザＡ公開鍵(80)を転送可能なコンピュータファイルを作成する(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズの暗号化APIの”CryptExportKey”関数を呼び出して、ユーザＡ公開鍵の公開鍵BLOB(110)を生成する)。
次に、ピアツーピアネットワークプログラム(40)は、デバイス”Ａ”(10)の電子メールプログラム(130)に指示し、ユーザＡファインドミーファイル(110)の名前及びユーザＡ公開鍵BLOB(110)のコピーが、受信者又は複数の受信者に送信される。
次に、受信者のコンピュータデバイス(例えば、デバイス”Ｂ”(11))の電子メールプログラム(130)に、ユーザＡからの送信から、ユーザＡファインドミーファイル(110)の名前と、ユーザＡ公開鍵BLOB(110)のコピーとを受け取る。
【００６５】
次に、デバイス”Ｂ”(11)のユーザは(ユーザＡからの送信から、ユーザＡファインドミーファイル(110)の名前と、ユーザＡ公開鍵BLOB(110)のコピーとを受け取った後)、ユーザインターフェイス(20)を介して、ユーザＡ公開鍵(80)をインポートするように、ピアツーピアネットワークプログラム(40)に指示する。
次に、ピアツーピアネットワークプログラム(40)は、デバイス”Ｂ”(11)のオペレーティングシステム(25)の暗号化API(70)に指示し、ユーザＡ公開鍵(80)は、ユーザＡ公開鍵BLOB(110)から暗号化サービスプロバイダ(71)にインポートされる(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズの暗号化APIの”CryptImportKey”関数を呼び出し、ウインドウズの暗号化APIは、ユーザＡ公開鍵BLOB(110)からユーザＡ公開鍵(80)を取り出し、そして、ウインドウズの暗号化APIは、マイクロソフトRSA／Ｓチャンネル暗号化サービスプロバイダにユーザＡ公開鍵(80)をインポートする)。
次に、ピアツーピアネットワークプログラム(40)は、(電子メール送信から受け取った)ユーザＡファインドミーファイル(100)の名前及びユーザＡ公開鍵(80)間の関係を確立する(又はマッピングする)信頼性のあるメンバーリスト(140)に、エントリーを書き込む。
【００６６】
次に、デバイス”Ａ”(10)のユーザ(例えば、ユーザＡ)は、デバイス”Ａ”(10)のユーザインターフェイス(20)を介してピアツーピアネットワークプログラム(40)に指示し、通信手段(30)への接続を介して、信頼性のあるメンバーリスト(140)に載った(通信手段(30)に接続された)メンバー(ピアツーピアネットワークプログラム(40)が確立できる、信頼性のあるピアツーピアネットワークのメンバーである)を、(通信手段(30)を介して)サーチする。
次に、ピアツーピアネットワークプログラム(40)は、信頼性のあるメンバーリスト(140)のコンピュータファイル名のリストにアクセスし、ファイル共有プロトコル(153)を用いて、信頼性のないピアツーピアネットワークのサーチリクエストを実行し、信頼性のあるメンバーリスト(140)に載ったコンピュータファイル名に合致するコンピュータファイル名を探す。
次に、別のコンピュータデバイス(例えば、デバイス”Ｂ”(11))のピアツーピアネットワークプログラム(40)は、種々のコンピュータファイル(例えば、ユーザ”ファインドミー”ファイル)のサーチリクエストを受信し、送信プロトコル(例えば、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151))を用いて、サーチリクエストと合致するコンピュータファイル(例えば、ユーザＢファインドミーファイル(101))を、デバイス”Ａ”(10)に送信する。
【００６７】
次に、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、送信からユーザＢファインドミーファイル(101)を受け取り、デバイス”Ａ”(10)のストレージ(23)のファインドミー結果のフォルダ(61)内にユーザＢファインドミーファイル(101)を保存する。
次に、ピアツーピアネットワークプログラム(40)は、デバイス”Ａ”(10)のオペレーティングシステム(25)の暗号化ＡＰＩ(70)に指示し、暗号化サービスプロバイダ(71)を利用して、信頼性のあるメンバーリスト(140)内のユーザＡファインドミーファイル(101)に関する公開鍵を用いてユーザＡファインドミーファイル(101)を復号化する(例えば、ピアツーピアネットワークプログラム(40)は、ウインドウズの暗号化APIの”CPDecrypt”関数を呼び出し、ウインドウズの暗号化APIは、マイクロソフトRSA／Ｓチャンネル暗号化サービスプロバイダからユーザＢ公開鍵(81)を呼び出し、そして、ウインドウズの暗号化APIは、ユーザＢファインドミーファイル(101)を復号化し、ユーザＢファインドミーファイル(101)のプレインテキストバージョンを作成する)。
次に、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、ユーザＢファインドミーファイル(101)のプレインテキストバージョンを開けて、識別可能なネットワーク情報(例えば、デバイス”Ｂ”(11)のＩＰアドレス)を読み出す。そして、信頼性のあるメンバーリスト(140)にエントリーを書き込む。該メンバーリスト(140)は、デバイス”Ｂ”(11)の識別可能なネットワーク情報、ユーザＢファインドミーファイル(101)の名前、及びユーザＢの名前を含む。この時点で、デバイス”Ａ”(10)のユーザは、信頼性のあるメンバーリスト(140)内のメンバー毎に載ったＩＰアドレスを利用して、ピアツーピアネットワークプログラム(40)を用いて、信頼性のある分散型ピアツーピアネットワークを確立できる。
【００６８】
ピアツーピアネットワークプログラム(40)のユーザは、信頼性のある分散型ピアツーピアネットワークを利用して、信頼性のあるチャットセッションを確立できる。これは、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザが、ユーザインターフェイス(20)を介して、ピアツーピアネットワークプログラム(40)に指示する場合に達成されて、信頼性のあるメンバーリスト(140)に載ったユーザが決めたメンバーとチャットセッションを確立できる。
次に、ピアツーピアネットワークプログラム(40)は、メンバーの信頼性のあるメンバーリスト(140)内の識別可能なネットワーク情報(例えば、メンバーのＩＰアドレス)を読み出し、そして、ピアツーピアネットワークプログラム(40)は、チャットプロトコル(152)を用いて、チャットセッションリクエストをメンバー(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)に送信する。
そして、各コンピュータデバイスは、デバイス”Ａ”(10)の信頼性のあるメンバーリスト(140)内にメンバー毎に載った識別可能なネットワーク情報に合致する、識別可能なネットワーク情報(例えば、ＩＰアドレス)を利用して、通信手段(30)に接続される。各コンピュータデバイスは、チャットプロトコル(152)を利用して、デバイス”Ａ”(10)から送信されたチャットセッションリクエストを受信する。そして、各コンピュータデバイスは、コンピュータデバイス各々のユーザインターフェイス(20)を介して、個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のユーザ(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)に通知する。これにて、信頼性のあるネットワークのメンバーによってチャットセッションが開始される。
次に、個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のユーザ(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)は、コンピュータデバイス各々のユーザインターフェイス(20)を介して、チャットセッションを受け入れる又は拒否するように、ピアツーピアネットワークプログラム(40)に指示する。
個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のユーザ(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)が、コンピュータデバイス各々のユーザインターフェイス(20)を介して、チャットセッションを拒否するようにピアツーピアネットワークプログラム(40)に指示する場合、ピアツーピアネットワークプログラム(40)は、チャットプロトコル(152)を利用して、チャットセッションを拒否し、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)に拒否通知を送信する。そして、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、デバイス”Ａ”(10)のユーザ(例えば、ユーザＡ)に、チャットセッションが拒否された旨を通知する。そして、デバイス”Ｂ”(11)のピアツーピアネットワークプログラム(40)は、チャットプロトコル(152)を利用して、チャットセッションを終了する。
個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のユーザ(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)が、コンピュータデバイス各々のユーザインターフェイス(20)を介して、チャットセッションを受け入れるようにピアツーピアネットワークプログラム(40)に指示する場合、ピアツーピアネットワークプログラム(40)は、チャットプロトコル(152)を利用してチャットセッションを受け入れ、そして、ピアツーピアネットワークプログラム(40)は、チャットプロトコル(152)を利用してチャットセッションを維持する。
【００６９】
ピアツーピアネットワークプログラム(40)のユーザは、信頼性のある分散型ピアツーピアネットワークを利用して、信頼性のあるファイル共有又はサーチを行える。これは、コンピュータデバイス(例えば、デバイス”Ａ”(10))のユーザが、ユーザインターフェイス(20)を介してピアツーピアネットワークプログラム(40)に指示する場合に達成され、ユーザインターフェイス(20)を介して所望のコンピュータファイル名を入力することによって、信頼性のあるメンバーリスト(140)に載ったメンバーにコントロール又は動作されるコンピュータデバイスのファイルサーチが確立される。
次に、ピアツーピアネットワークプログラム(40)は、メンバーの信頼性のあるメンバーリスト(140)内の識別可能なネットワーク情報(例えば、メンバーのＩＰアドレス)を読み出し、そして、ピアツーピアネットワークプログラム(40)は、ファイル共有プロトコル(153)を用いて、ユーザＡによりリクエストされたコンピュータファイルのサーチリクエストを、メンバー(例えば、ユーザＢ、ユーザＣ、ユーザＤ等)の信頼性のあるメンバーリスト(140)内に載ったコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)に送信する。
各コンピュータデバイスは、デバイス”Ａ”(10)の信頼性のあるメンバーリスト(140)内にメンバー毎に載った識別可能なネットワーク情報に合致する、識別可能なネットワーク情報(例えば、ＩＰアドレス)を利用して、通信手段(30)に接続される。ピアツーピアネットワークプログラム(40)は実行されており、各コンピュータデバイスは、ファイル共有プロトコル(153)を利用して、デバイス”Ａ”(10)から送信されるファイルサーチリクエストを受信する。そして、個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のピアツーピアネットワークプログラム(40)は、信頼性のあるサーチフォルダ(62)内でリクエストされたファイルをサーチする。
【００７０】
個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のピアツーピアネットワークプログラム(40)によって、リクエストされたコンピュータファイルが、各々の信頼性のあるサーチフォルダ(62)内に配置されていない場合、ピアツーピアネットワークプログラム(40)は応答しない。
個々のコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)のピアツーピアネットワークプログラム(40)によって、リクエストされたコンピュータファイルが、各々の信頼性のあるサーチフォルダ(62)内に配置されている場合、ピアツーピアネットワークプログラム(40)は、適合するコンピュータファイルに関係するファイルストリーム(120)内で見つけられるあらゆる情報と共に、適合するコンピュータファイル名を、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)に送信する。
次に、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、サーチリクエストに応答した任意の及び／又は全てのコンピュータデバイス(例えば、デバイス”Ｂ”(11)、デバイス”Ｃ”(12)、デバイス”Ｄ”(13)等)から受信した、コンピュータファイル名と、適合するコンピュータファイルに関係するファイル情報ストリーム(120)で見つけられるあらゆる情報とを、ユーザインターフェイス(20)を介して表示する。
次に、デバイス”Ａ”(10)のユーザは、ユーザインターフェイス(20)を介して、ピアツーピアネットワークプログラム(40)が信頼性のあるピアツーピアネットワークを介してダウンロードすべき１つのコンピューターファイル又は複数のコンピューターファイルを選択する。
次に、信頼性のあるメンバーリスト(140)内にあり、ユーザＡに選択された特定の１つのコンピューターファイル又は複数のコンピューターファイルに関係する識別可能なネットワーク情報(例えば、１つのコンピュータデバイス及び／又は複数のコンピュータデバイスのＩＰアドレス)を利用し、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、通信プロトコル(例えば、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151))を用いて、１つのコンピュータデバイス及び／又は複数のコンピュータデバイスにダウンロードリクエストを送信する。
次に、ユーザＡに選択された１つのコンピューターファイル又は複数のコンピューターファイルを含む１つのコンピュータデバイス及び／又は複数のコンピュータデバイスの各々におけるピアツーピアネットワークプログラム(40)は、通信プロトコル(例えば、ＦＴＰプロトコル(150)、ＨＴＴＰプロトコル(151))を用いて、１つのコンピューターファイル又は複数のコンピューターファイルのダウンロードを開始する。
次に、デバイス”Ａ”(10)のピアツーピアネットワークプログラム(40)は、ダウンロードされた１つのコンピューターファイル又は複数のコンピューターファイルを信頼性のあるサーチフォルダ(62)に受け取って保存する。
【００７１】
説明目的で示した前述の実施例において発明を詳細に説明したが、このような詳細な説明は単にその目的のためであり、特許請求の範囲に記載されている場合を除き、当該分野の専門家であれば、発明の精神及び範囲から逸脱することなく変形を成し得ることは理解されるべきである。
【図１】
0004705990.tif 000002
【図２】
0004705990.tif 000003
【図３】
0004705990.tif 000004
【図４】
0004705990.tif 000005
【図５】
0004705990.tif 000006
【図６】
0004705990.tif 000007
【図７】
0004705990.tif 000008
【図８】
0004705990.tif 000009
【図９】
0004705990.tif 000010