(57)【要約】１以上のフォルダの階層間でフォルダを同期化するシステムと方法は、互いにリンクすべき階層を選択し、選択された階層のフォルダを不変の識別子で比較すし、選択された階層の各々のフォルダをフィールドに解析し、解析されたフォルダのフィールドを比較し、解析されたフォルダのフィールドの比較に応じて発生された１以上の競合ルールに基づき選択された階層のフォルダを同期化するかどうか判定する。また、ネットワーク内の２以上のフォルダを１つのフォルダにマージするシステムと方法は、重複エントリーを特定するためにフォルダ間のエントリーを比較し、各フォルダの特定された重複エントリーをグループ化し、重複のグループからマトリクスを生成して各マトリクスエントリーに値を割り当て、特定された重複エントリーをマージするための範囲を決定するために割り当てられた値に基づきマトリクスエントリーをマッチングする。【特許請求の範囲】
【請求項１】
１以上のフォルダの階層間でフォルダを同期化する方法であって、前記方法は、
互いにリンクすべき１以上の階層を選択するステップと、
前記選択された１以上の階層のフォルダを不変の識別子を用いて比較するステップと、
前記選択された１以上の階層の各々のフォルダをフィールドに解析するステップと、
前記選択された１以上の階層の前記解析されたフォルダのフィールドを比較するステップと、
前記解析されたフォルダのフィールドの比較に応じて発生された１以上の競合ルールに基づき前記選択された１以上の階層の前記フォルダを同期化するかどうか判定するステップと
を含むものである。
【請求項２】
前記請求項１の方法であって、更に、前記選択された１以上の階層のうちの１つにおける解析されたフォルダ内に１つのエントリー有するフィールドと、前記選択された１以上の階層の別のものにおける解析されたフォルダ内にエントリーを持たないフィールドとを特定する競合ルールに応じて前記選択された１以上の階層のフォルダをマージするステップを含むものである。
【請求項３】
前記請求項２の方法であって、前記フォルダをマージするステップは、更に、マージされたフォルダを持つ前記選択された１以上の階層のための１つの論理的フォルダを生成するステップを含むものである。
【請求項４】
前記請求項２の方法であって、前記フォルダをマージするステップは、更に、フォルダをマージされた前記選択された１以上の階層のための重複フォルダを生成するステップを含むものである。
【請求項５】
前記請求項１の方法であって、更に、前記選択された１以上の階層のうちの１つにおける解析されたフォルダ内に１つの異なるエントリーを有するフィールドを、前記選択された１以上の階層の別のものにおける解析されたフォルダ内のフィールドから特定する競合ルールに応じて重複フォルダを作成するステップを含むものである。
【請求項６】
前記請求項１の方法であって、フォルダは個人情報マネジャーからの連絡先情報に対応する複数のエントリーを含むものである。
【請求項７】
前記請求項１の方法であって、フォルダは複数のインスタントメッセンジャーアドレスを含むものである。
【請求項８】
前記請求項１の方法であって、フォルダはサブフォルダを含むものである。
【請求項９】
ネットワーク内の複数のフォルダを１つのフォルダにマージする方法であって、前記方法は、
第１のフォルダのエントリーと第２のフォルダの間の重複エントリーを特定するために、前記第１のフォルダのエントリーと前記第２のフォルダのエントリーを比較するステップであって、前記第１のフォルダのエントリーの識別子と前記第２のフォルダのエントリーの識別子とのマッチに応じて重複されるべき１つのエントリが判定されるものと、
前記第１のフォルダの前記特定された重複エントリーをグループ化するステップと、
前記第２のフォルダの前記特定された重複エントリーをグループ化するステップと、
エントリーのペアリングを生成するステップであって、前記ペアリングは、１つのグループの特定された重複エントリーと別のグループの各特定された重複エントリーをマージすることに連携された値を含むものと、
特定された重複エントリーをマージするための範囲を決定するために割り当てられた値に基づきエントリーをマッチングするステップと
を含むものである。
【請求項１０】
前記請求項９の方法であって、前記生成するステップは、更に、複数のマトリックスエントリーを含むマトリックスを生成するステップを含んでおり、各マトリックスエントリーは１つのグループの特定された重複エントリーと別のグループの各特定された重複エントリーをマージすることに連携された値を含むものである。
【請求項１１】
前記請求項１０の方法であって、前記マージするステップは、更に、マッチされたマトリクスエントリーから基礎となるエントリーを特定して、前記重複エントリーからの前記基礎となるエントリーの情報にマージするステップとを含むものである。
【請求項１２】
前記請求項１０の方法であって、前記特定するステップは、更に、第２のフォルダの前記特定された重複エントリー内にのみ存在する前記基礎となる情報にマージするステップを含むものである。
【請求項１３】
前記前記請求項９の方法であって、前記比較するステップは、更に、重複エントリーを特定する識別子として、電子メールアドレス、個人名、会社名及び電話番号からなるグループから１つをマッチングするステップを含むものである。
【請求項１４】
前記請求項１０の方法であって、値のマトリクスを生成するステップは、更に、各マトリクスエントリーのために、第１のフォルダのグループからの特定された重複エントリーと第２のフォルダのグループからの特定された重複エントリーとをマージすることに連携された要素を特定するステップと、
前記要素と数値スコアを連携するステップと
を含むものである。
【請求項１５】
前記請求項１４の方法であって、乗数により数値スコアを重み付けするステップを更に含むものである。
【請求項１６】
前記請求項１４の方法において、前記マトリクスエントリー中の最も高い数値スコアと最も低い数値スコアが除去される。
【請求項１７】
ネットワーク内の複数のフォルダを１つのフォルダにマージするシステムであって、前記システムは、
第１のフォルダのエントリーと第２のフォルダの間の重複エントリーを特定するために、前記第１のフォルダのエントリーと前記第２のフォルダのエントリーを比較するための手段であって、前記第１のフォルダのエントリーの識別子と前記第２のフォルダのエントリーの識別子とのマッチに応じて重複されるべき１つのエントリが判定させるものと、
前記第１のフォルダの前記特定された重複エントリーをグループ化するための手段と、
前記第２のフォルダの前記特定された重複エントリーをグループ化するための手段と、
エントリーのペアリングを生成するための手段であって、前記ペアリングは、１つのグループの特定された重複エントリーと別のグループの各特定された重複エントリーをマージすることに連携された値を含むものと、
特定された重複エントリーをマージするための範囲を決定するために割り当てられた値に基づきエントリーをマッチングするための手段と
を含むものである。
【請求項１８】
前記請求項１７のシステムであって、前記マージするための手段は、更に、マッチされたマトリクスエントリーから基礎となるエントリーを特定して、前記重複エントリーからの前記基礎となるエントリーの情報にマージするための手段とを含むものである。
【請求項１９】
前記請求項１８のシステムであって、前記特定するための手段は、更に、第２のフォルダの前記特定された重複エントリー内にのみ存在する前記基礎となる情報にマージするための手段を含むものである。
【請求項２０】
前記請求項１７のシステムであって、値のマトリクスを生成するための手段は、更に、各マトリクスエントリーのために、第１のフォルダのグループからの特定された重複エントリーと第２のフォルダのグループからの特定された重複エントリーとをマージすることに連携された要素を特定するための手段と、
前記要素と数値スコアを連携するための手段と
を含むものである。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の参照
この出願は、発明者ジョン・T・マソニス、シーン・パーカー、キャメロン・T・リング、リチャード・J・キャリーらによる、「ネットワーク拡張のためのバイラルエンジン」と題され、２００３年１１月7日に公開された、米国特許出願番号＿／＿，＿，に関連し、前記出願は共通の譲受人を持ち、その内容が参照によって組み込まれる。
【０００２】
この発明は、概ねのところ個人情報管理の分野に関し、より詳しくは、例えば、連絡先（contact）ならびにアドレス情報のような個人情報を、例えばインターネットのようなネットワークに接続された複数のユーザ及びインターフェースの間において、同期化すること及び公開することに関する。
【背景技術】
【０００３】
友人、家族、ビジネス提携者、顧客或いは消費者との間において、連絡先情報をアップトゥディトならしめるメンテナンスは、常々の課題であり且つ困難な仕事であった。予期していたよりも頻繁に、人々は、彼らの何らかの連絡先情報、すなわち電話番号、FAX番号、携帯電話の番号、電子メールアドレス、物理的アドレス（居所・住所）などの如きを、変更するのである。一例として、インターネットユーザの約３５％は年毎に電子メールアドレスを変更し、約３３％の携帯電話番号は年毎に変更せられ、また、約四千万の物理的アドレス（居所・住所）が毎年変わるのである。
【０００４】
古くなった連絡先情報は、友人関係等の如き個人的損失や、利益や収入を増やすことができた機会を逸することの如きビジネス上の損失を招く。例えば、不正確で低質な顧客データは、不適切なメーリングと、アメリカ合衆国のビジネスに１年あたり六億ドル以上の経費負担をかけるという結果を招く。
【０００５】
この沢山の量の連絡先に関するデータの管理に役立てるべく、例えばパーソナルコンピュータ（"PC"）、携帯情報端末（"PDA"）或いは携帯電話など多くの装置のために、例えば、Microsoft Outlook（登録商標）、Eudora Pro（登録商標）など数々の個人情報マネージャ（personal information manager："PIM"）用のアプリケーションプログラムが発展してきた。それにもかかわらず、ユーザは、かかる情報が存在するところの装置やインターフェースの数が増えるにつれて、情報の一貫性を維持すること、又は、情報の分離について試行錯誤を止まれぬのである。
【０００６】
しばしば、ユーザはこれら装置の間で情報を同期することを望む。例えば、ユーザは、家庭のパーソナルコンピュータ、職場のパーソナルコンピュータ、及び可搬性のPDAにおいて記憶され、且つ、それらからアクセス可能な、個人情報を同期するであろう。
このような異なる装置間においてPIMを同期するのにユーザが利用するところの従来の同期化ソフトウェア製品には、カリフォルニア州サンホセ在Puma technology.IncによるIntllisync（登録商標）があった。
【０００７】
従来の同期化ソフトウェア製品の欠点は、PIMをホスティングするコンピュータシステムとPDAの間で物理的な接続を要求することである。従来の同期化ソフトウェア製品別の欠点としては、同期化ソフトウェア製品は、個々の製品又はPIMの同期化に限定せられて使用され、他のユーザとの関連において使用されるのではないことである。更に、従来の同期化ソフトウェア製品別の欠点は、異なる装置における実質的に同一なエントリーのデータ間の相違の解消である。ユーザは、何らかの同期化処理が完遂する前に、実質的に類似であるが、同一ではないエントリーをセーブすることを強いられるか、又は、上書きすべきデータを選択しなければならない。このことは、ユーザにとって効率性と柔軟さとを減少せしめるのである。
【０００８】
装置上のPIM情報に加えて、PIM情報を保持するオンライン資源もまた拡張している。Webポータル（例えば、カリフォルニア州サニーヴェイル在Yahoo！ Inc.によるYahoo！、ニューヨーク州イルヴィントン在Excite Inc.によるExcite等）の如き従来のオンラインサービスは、ユーザに対するそれらポータルサービスの呼び物としてアドレス帳やカレンダーを含んでいた。例えば、Yahoo！ Inc.は、「Yahoo！Address Book」、「Yahoo！Calendar」及び「Yahoo！ To Do List」サービスを提供しており、そこにおいてユーザはアドレスやカレンダーやすべきことの情報をYahoo！ Inc.が操業するリモートサーバ上に記憶させることができる。これら従来のWebポータルは、しばしば、オンライン上に記憶された個人情報のコピーを他の装置と同期化するための同期化ソフトウェア（例えばカリフォルニア州スコットヴァレイ在Starfish Software Inc.によって開発された同期化ソフトウェア「TrueSync（登録商標）」等）を助成している。しかしながら、これらのサービス並びにそれに関連する従来の同期化ソフトウェアは、先に述べたものと同様な多くの欠点があった。
【０００９】
前述したタイプの従来の同期化ソフトウェアにおいてそれらの問題を解決すべく、例えばPlanetAll.com（現時点ではAmazon.comによって所有されている）のようなインターネット上のオンラインサービスプロバイダーは、インターネット経由でアクセス可能なサーバ上の個人情報の記憶及びメンテナンスのための従来のオンラインサービスを開発した。一般的に、これらサービスは、サービスに加入することとリモートサーバに個人情報を保管することをユーザに任せ、当該ユーザの個人情報が自動的に当該オンラインサービスに申し込んでいる他のユーザのオンラインアドレス帳に含まれるようになっていた。
【００１０】
これら従来のオンラインサービスにおいて、前記加入している個人情報のオーナーは、彼らの情報のメンテナンスに責任を負っていた。前記オーナーが前記情報を変更するたびに、オンラインサーバがアップデートされていた。その後、当該システムに加入している他のユーザたちが、彼らのオンラインアドレス帳の範囲内で前記アップデートせられた情報にアクセスしていた。更に、これらのオンラインサービスはまた、オンラインサービスサーバを通じて多数の物理的装置間で同期化できる能力を勧めていた。例えば、ダウンロード可能な従来の同期化ソフトウェア製品、例えばカリフォルニア州サンホセ在Puma technology.Incによって開発されたPlanetAll.com用のIntellisync（登録商標）のごときものにより、PIMの範囲内に保持された個人情報とオンラインサービスサーバ上に記憶された個人情報とを同期化する能力を、これら従来のオンラインサービスは提供していた。
【００１１】
これら従来のオンラインサービスの１つの問題は、これらサービスが対称的でなければならぬことである。対称的サービスは、当該サービスにより簡易化された情報交換の両者側において、当該サービスのメンバーシップに加入していることを要求する。すなわち、従来のオンラインサービスの加入者達のみが、互いに個人情報をアップデートできただけなのである。従って、前記アップデートされた情報を提供するユーザ並びにアップデート情報を探しているユーザの双方が当該サービスに加入している場合に限り、当該サービスが機能していたのである。非加入者は、彼らの個人情報を加入者たちと同期化することができず、また、その逆も不可能であった。それゆえ、当該サービスの加入者たちを非加入者たちと同期化させたデータを保持することができなかった。この対称性の要求は、多数のタイプの連絡先にわたるデータの一貫性を保つことの柔軟性をユーザに対して制限していた。
【００１２】
これら従来のサービス（PlanetAll.comを含む）は、プライベートネットワークへの加入が多くのサービスつまり集中化されたアドレス帳を提供するという前提に基づいた加入者のプライベートネットワークのインターネット上の実現を促したものだった。しかしながら、このようなプライベートネットワークを実現する試みは原則的に遅々とした実現ペースのために失敗に終っていた。これらプライベートネットワークは、それらのメンバーシップを育むことに失敗した。というのも、プライベートネットワークの対称的性質はユーザたちの初期設定における価値を制限するからである。当該サービスの真価は、多数の情報ユーザが当該プライベートネットワークの加入者となるまでは実現せられないであろう。従って、当該プライベートネットワークの加入者が少数に留まっている限り、新規のユーザをして加入せしめることはないのである。結果として、新規加入ユーザなしには、プライベートネットワークサービスは、その価値提起を支持するのに必要なサイズを大きくすることができない。そして、プライベートネットワークサービスは、結局崩壊し失敗し、もはや同期化されていない情報を持つという問題に再び至るのである。
【００１３】
これら従来のオンラインサービスの更に別の問題は、当該加入者において最適な方法による同期化のための情報を構成することの柔軟性が加入者にとって制限されることである。例えば、加入ユーザは、装置毎及び／又は加入者毎の当該サービスの他の装置達及び／又は加入者達をアップデートするために、個別のデータフィールド又はデータフィールドのセットの何れかを選択することについて柔軟性に欠けていた。従って、装置間及び／又は加入者間における情報のアップデートするにあたって、加入者たちは「全てか皆無か」という命題によって制限されていたのである。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上記のことから、情報を非対称的に管理するためのシステム及び方法に対するニーズがあるのであり、該システム及び方法には、（１）ユーザにおいて１以上の階層におけるデータを名目的存在と同期化すること、或いは、このユーザの介入無しに同期化すること、（２）名目的に或いはユーザ介入の必要なく、且つ実質的に重複されたエントリーを発生する又は書き込む事無しに、２以上のエントリーに関するデータを１つのエントリーにマージすることが含まれる。
【課題を解決するための手段】
【００１５】
この発明は、１つの装置内の情報を含むフォルダと、１以上の他の装置内の情報を含む１以上のフォルダとを、同期化するためのシステム及び方法を含む。この発明は、また、同期化すべきフォルダ間のデータをマージするためのシステム及び方法を含む。フォルダは、収納物の一種であり、コンテンツのグループ化のために構成されている。コンテンツは他のフォルダ及び／又はデータを含むものであるところの情報を含む。情報の例としては、電子メール（“e-mail”）、連絡先情報、メッセージ、及び／又は個人情報を含む。フォルダを含む装置は、物理的装置上のアプリケーション、例えば、例えばパーソナルコンピュータ（"PC"）、携帯電話或いは携帯情報端末（"PDA"）上の個人情報マネージャ（"PIM"）など、或いは、論理的装置上のもの、例えば、Yahoo！やAmerica Onlineなどのオンラインポータルサービスを介した個人情報マネージャなどである。
【００１６】
この発明の一例によれば、同期化システム（又はエンジン）は、階層選択モジュール、解析モジュール、比較モジュール、マップ（又はリンク）モジュール、同期化出力モジュール及び同期化ルールモジュールを含む。これらモジュールは、ソフトウェア、ハードウェア、あるいは、それらの組み合わせにより実施されてよい。これらモジュールは、互いに通信可能に接続されている。
【００１７】
階層選択モジュールは同期化のために１以上の情報の階層の間で選択する。解析モジュールは前記階層のデータを解析するもので、比較モジュールは重複するデータを特定するためにデータを比較する。マップモジュールは、どの特定の階層、情報及び／又は情報が、特定の関係において互いにリンクされているのかを判断する。マップモジュールは、また、リンク関係のための独特の識別子を提供するために構成される。同期化モジュールは、同期化ルールリンク関係に基づき前記階層のデータを同期化する。
【００１８】
この発明の一例において、同期化処理は、１以上のフォルダの階層間でフォルダを同期化する処理を含む。前記処理は、互いにリンクすべき１以上の階層を選択するステップと、前記選択された階層のフォルダを不変の識別子を用いて比較するステップを含む。前記処理は、また、前記選択された階層の各々のフォルダをフィールドに解析するステップと、前記解析されたフォルダのフィールドを比較するステップを含む。そして、前記処理は、前記解析されたフォルダのフィールドの比較に応じて発生された１以上の競合ルールに基づき前記選択された階層の前記フォルダを同期化するかどうか判定する。
【００１９】
この発明に係る同期化システム及び処理の優れた点には、例えば連絡先情報のフォルダのような階層化されたフォルダのセットの認識ということがあり、該階層化されたフォルダのセットは独立して或いは他の階層のサブセットとしてアップデートされうるものである。これゆえ、ユーザは、多様な階層又はレベルの同期化について制御と柔軟性を増すという優れた効果を奏する。
【００２０】
この発明は、また、種々のレベルで種々の階層の情報をマージするためのマージシステム（又はエンジン）を含む。この発明の一実施例によれば、マージエンジンは、マップ（またはリンク）モジュール、重複評価モジュール、マトリクステーブル、マトリクススコアモジュール、マージルールモジュール及びマージ出力モジュールを含む。これらモジュールは、ソフトウェア、ハードウェア、又は、それらの組み合わせによって実現され、互いに通信可能に接続される。マージシステム（及び処理）は独立して機能するか、或いは、同期化システム（及び処理）と連絡して機能してもよい。
【００２１】
マップモジュールは同期化エンジンのマップモジュールと機能的に同様である。マップモジュールは双方のシステムで使用される同じモジュールであってよく、或いは、そのサブセットでもよい。重複評価モジュールは、マージされるエントリー間の潜在的重複を判定する。マトリクステーブルとマトリクススコアモジュールは、マージされる重複エントリーのマトリクスを生成し、１以上の要素に基づく各マトリクスエントリーに値（例えばスコア）を割り当てる。マージルールモジュールは、マトリクスエントリーを考慮に入れるルールに基づく特定のエントリーをマージするかどうか判定する。マージ出力モジュールはマージされるエントリーとしてマージされるべきと判定されたエントリーを出力する。
【００２２】
この発明の一実施例に係るマージ処理は、ネットワーク内の２以上のフォルダを１つのフォルダにマージすることを含む。前記方法は、第１のフォルダのエントリーと第２のフォルダの間の重複エントリーを特定するために、前記第１のフォルダのエントリーと前記第２のフォルダのエントリーを比較するステップを含む。前記第１のフォルダのエントリーの識別子と前記第２のフォルダのエントリーの識別子との間でマッチがあれば、１つのエントリーが重複されるべきものと判定される。前記処理は、前記第１のフォルダの前記特定された重複エントリーをグループ化し、また、前記第２のフォルダの前記特定された重複エントリーをグループ化する。前記処理は、また、マトリクスを生成し、そこにおいて、２以上のマトリクスエントリーがある。各マトリクスエントリーは、グループ間で特定された重複エントリーをマージすることに連携された値を含む。また、マトリクスエントリーは、特定された重複エントリーをマージするための範囲を決定するために割り当てられた値に基づきマッチングされる。
【００２３】
この発明に係るマージシステム及び方法の優れた点は、互いにマージされるべき情報の階層又はレベルの間のエントリーを比較できるようにしたこと、及び、ユーザの介入なしに情報をマージできるようにしたことにある。更に、この発明は、情報のフォルダをマージすることで、ユーザが目的を持って重複エントリーを保持及び同期化することを可能とする。
【００２４】
本明細書において述べられた特徴及び利点は、全てを含んでいるのではなく、とりわけ、図面、明細書及び請求項を考慮して、多くの追加的特徴や利点が通常の当業者にとって明白であろう。更に、本明細書において使用される言語は原則的に読み易さと説明的目的とから選択されており、発明の主題的な内容を描写又は限定するためには選択されていない。
【００２５】
この発明は他の特徴及び利点を持っており、それらは、図面を参照して以下に述べるこの発明の詳細な説明、添付した請求範囲から、容易に明白になるであろう。
【００２６】
【００２７】
【００２８】
【００２９】
【００３０】
【００３１】
【００３２】
【００３３】
【００３４】
【００３５】
【００３６】
【００３７】
【００３８】
【００３９】
【００４０】
【００４１】
【００４２】
【発明を実施するための最良の形態】
【００４３】
図面と以下に述べる説明は、図示せられたこの発明の好ましい実施形態に係る。下記の説明から、ここに掲出された構成及び方法の別の実施形態は、この発明の請求項の原則から出立しなくとも適用できるところの実行可能な別の例として容易に理解されるのである。
【００４４】
この発明は、多種の階層及びレベルで情報を同期化し、また、最小限のユーザの介入にて前記同期化された階層及びレベルにて情報を統合するための同期化エンジン（又はシステム）とマージエンジン（又はシステム）を含む、前記階層又は前記レベルは、物理的なもの（例えば装置）であってもよいし、論理的なもの（例えば多くの装置やサービスなどの多くのロケーションにおける情報のロケーション）であってもよい。
【００４５】
図１において、これは本発明に係るネットワーク環境の一実施例形態を描いている。ネットワーク環境は、プライベートネットワークシステム（又は、サービス（又はプライベートネットワーク））１００、パブリックネットワーク１０２及び、パブリックネットワークのユーザの集合１０３とを含む。パブリックネットワーク１０２は、プライベートネットワーク１００をパブリックネットワークのユーザの集合１０３に通信可能に連結している。
【００４６】
この発明において、前記ネットワークは、物理的ネットワークすなわち物理的通信チャンネル（有線又は無線）によって互いに接続された装置に限定されない。むしろ、ネットワークは、ユーザ間でメッセージを送達を行なうタイプを基礎とする機能的（論理的）ネットワークであって良く、それは多くの通信チャンネルによって物理的にもたらされるものであるかもしれぬ。例えば、ネットワークは、それぞれに固有の電話番号に基づいてコミュニケーションを行なう無線電話ユーザのグループを含んでいても良いし、或いは、それぞれに固有の電子メールアドレスに基づいてコミュニケーションを行なうコンピュータユーザのグループを含んでいても良い。加えて、１つ以上の機能的ネットワークが、１つの物理的ネットワーク上で実施せられてもよい。その一例として、コンピュータネットワークが、電子メールによる機能的ネットワークと、簡易メッセージ通知による機能的ネットワーク（例えば、"AIM""ICQ"など）によって実現される。
【００４７】
従って、一実施態様において、パブリックネットワーク１０２は、物理的要素と機能的要素を含む。パブリックネットワーク１０２の物理的要素としては、例えばコンピュータネットワーク（例えばローカルエリアネットワーク"LAN"、ワイドエリアネットワーク"WAN"、無線データネットワーク"WDN"、インターネット等）、無線プロトコルによる通信ネットワーク（例えば、個人通信システム"PCS"、グローバルシステムモバイル"GSM"などによるネットワーク）、などが適用される。
【００４８】
パブリックネットワーク１０２の機能的要素としては、ネットワークユーザ１０３らの間の通信モードが適用される。通信モードの例は、簡易メッセージ通知や、電子メール、電話、無線メッセージ通知などである。各通信モードは、パブリックネットワーク１０２上において、ユーザ１０３間における通信アドレスとして使用されるであろう固有の識別子を含んでいる。この発明において、パブリックネットワーク１０２の機能的要素は、パブリックなプロトコル又はパブリックな通信モードに関連付けられる。例えば、ネットワークユーザ１０３は、パブリックな電子メールプロトコル（例えばPostOfficeProtocol"POP"、InternetMessagAccessProtocol"IMAP"、SimpleMailTransferProtocol"SMTP"、MultipurposeInternetMailExtension"MIME"など)を経由して通信するだろう。
【００４９】
図１に戻ると、ネットワークユーザ１０３は、当該プライベートネットワーク１００の１以上のメンバー１０４並びに１以上の非メンバー（又は、非ユーザ）を含んでいる。メンバー１０４たちは、プライベート又は専有プロトコル１０８を用いてパブリックネットワーク１０２を介してプライベートネットワークシステム１００上で通信する。非メンバー１０６たちは、パブリックネットワーク１０２の一部を成す共有又はパブリックな通信方法又はプロトコル１１０を介して、プライベートネットワークシステム１００上でメンバー１０４たちと通信する。
【００５０】
プライベートネットワークシステム１００は、中央サーバ１１２とデータベースシステム１１４を含み、これらは互いに通信可能に連結されている。一実施形態において、プライベートネットワークシステム１００は、ハイブリッドなＰ２Ｐ（ Peer to Peer）且つクライアント−サーバネットワーク構成に基づく。ネットワークのクライアント−サーバという側面のため、中央サーバ１１２はネットワーク管理の集中化機能を提供している。中央サーバ１１２は、１以上の演算システム（又は装置）を含んでいる、すなわち、サーバファームのようなものである。中央サーバ１０２はネットワーク１０２に接続されており、ネットワークユーザ１０３と通信するために、プライベート及びパブリックのプロトコル１０８，１１０を実行することができる。同様に、データベースユニット１１４は、単一のデータ記憶装置又は、例えばストレージエリアネットワーク（"SAN"）、分散データベースなどのような相互接続されたデータ記憶装置のセットであってよい。
【００５１】
次に、図２ａを参照すると、図２ａは、この発明に係る論理的ネットワーク環境の一実施例を示している。論理的ネットワーク環境は、プライベートネットワーク１００、１以上のメンバー１０４及び１以上の非メンバー１０６を含んでいる。また、後述するメンバーシステム１０４ａが描かれている。前記１以上のメンバー１０４（１０４ａを含む）及び１以上の非メンバーは、プライベートネットワーク１００を介して通信可能に接続されている。
【００５２】
前記図示されたメンバーシステム１０４ａはクライアントシステム（または装置）１１６とデータベース１２８を含む。前記クライアントシステム１１６は、従来から知られるコンピュータシステム（例えば、パーソナルコンピュータ、携帯情報端末（"PDA"）、携帯電話、タブレットなど）であって、従来から知られるオペレーティングシステム（ウィンドウ表示、画像及び／又は文字表示によるオペレーティングシステム）と１以上のアプリケーションプログラムを含むものである。前記クライアントシステム１１６は、コンピュータネットワーク１０２を介して、プライベートネットワーク１００のサーバシステムと通信する。各クライアントシステム１１６は、プライベートプロトコル１０８とサービス１００の機能を管理するためのクライアントアプリケーションを提供してよい。前記データベース１２８は、データ及び後述する他の情報を記憶する。
【００５３】
図２ｂは、この発明に係るネットワーク環境の構成の一実施例を示している。このネットワーク環境の構成は、１以上のクライアントシステム１１６、パブリックネットワーク１０２、及び、プライベートネットワーク１００における１以上のサーバ１１２を含んでいる。クライアントシステム１１６は、直接又はネットワーク経由の接続を介して、他のクライアントシステム乃至他の装置（例えば、ＰＤＡや携帯電話）と通信可能に接続されてよい。
【００５４】
各クライアントシステム１１６は、クライアントアプリケーション１１８、インターネット（又はＷｅｂ）ブラウザ１２０、個人情報マネージャ（"PIM"）１２２及びクライアントサービスモジュール１２６を含む。クライアントアプリケーション、インターネットブラウザ１２０、PIM１２２及びクライアントサービスモジュール１２６は、オペレーティングシステムを介して通信可能に接続されている。インターネットブラウザ１２０は、従来から知られる有線又は無線システムのためのブラウザであり、例えば、ワシントン州レッドモンド在、Microsoft株式会社のInternetExplorer（登録商標）、カリフォルニア州マウンテンヴュー在、Netscape Communication株式会社のNetscape Navigator（登録商標）、カリフォルニア州フレモント在、Access Systems America.IncのNetFront Web browser、又は、カリフォルニア州レッドウッド在、Openwave Systems.IncのOpenwave（登録商標）Mobile Browserなどである。
【００５５】
PIM１２２は従来から知られるPIMである。例としては、Microsoft株式会社のMicrosoft Outlookやマサチューセッツ州ケンブリッジ在International Business Machines（IBM）のLotus Softwareなどが含まれる。なお、インターネットブラザ１２０はクライアントアプリケーション１１８と統合されてよい。
【００５６】
クライアントアプリケーション１１８は、例えば此処に開示された本発明のシステムなどのシステムの機能性にアクセスするためにユーザが相互に作用するところのアプリケーションである。クライアントアプリケーション１１８は、テキスト乃至グラフィカルユーザインターフェース（"GUI"）フロントエンドを含んでよい。クライアントアプリケーション１１８は、情報の閲覧、アクセス、公開並びに同期化を容易ならしめる。なお、クライアントアプリケーション１１８の別の実施形態として、PIM１２２と全的に統合及び実装、あるいは、それ自体にPIM１２２の全機能を備え、更には、その他のいかなる独立した又はスタンドアローンタイプのPIM１２２の必要をなくしてもよい。
【００５７】
一具体例において、クライアントアプリケーション１１８は、並びにメンバー１０４の個人情報の、簡易化／管理された記憶、公開、並びに同期化によるPIM機能を提供する。なお、この明細書において、メンバー１０４の個人情報は、メンバー１０４自身に関する情報及びメンバー１０４が保有する他のユーザ１０３（メンバー１０４及び非メンバー１０６の双方）に関する情報を含む。また、非メンバー１０６のユーザがプライベートネットワーク１００に相互作用するための機能は、非メンバー１０６からの情報の収集と記憶に関してメンバー１０４にとって価値を有益に加える。
【００５８】
クライアントサービスモジュール１２６は、クライアントアプリケーション１１８とローカルデータベース１２８の双方にデータサービスを提供する。クライアントサービスモジュール１２６は、更に、ローカルデータベース１２８へのアクセスを実行することに責任を負うており、該ローカルデータベース１２８にはクライアントシステム１１６にて使用されるメンバー１０４の個人情報が保持されている。具体的には、クライアントサービスモジュール１２６は、適切な時間にローカルデータベース１２８を統合すること並びにロックすることに責任を負う。ローカルデータベース１２８に含まれる又はクライアントサービスモジュール１２６に通信可能に接続されたコンポーネントは、該ローカルデータベース１２８に保持された情報と、後述するリモートデータベース１１４に保持された情報とを同期化するために構成されるものであってよい。
【００５９】
メンバー１０４において、クライアントサービスモジュール１２６は、Secure Socket Layer（"SSL"）スタックを含むプライベートプロトコル１０８を経由してパブリックネットワーク１０２において通信する。一具体例として、プライベートプロトコル１０８は、従来から知られる、クライアントシステム１１６のクライアントアプリケーション１１８とサーバ１１２の間で通信されるメッセージオブジェクトを定義する優先的バイナリプロトコルである。他のカスタマイズ可能な通信プロトコルがプライベートプロトコル１０８の実現に適用可能である。例えば、Extensible Markup Language("XML")に基づくプロトコル、又は、Remote Procedures Call("RPC")に基づくプロトコルなどが適用できる。メッセージオブジェクトは、データを伝達するための他の種類のオブジェクトを含んでよい。例えば、プライベートプロトコル１０８は、タイムスタンプに基づくアップデートを調べるアップデートメッセージを定義したり、あるいは、例えば"OUT OF DATE","RECORD INSERTED","O.K."などのような基礎的な返答を定義してもよい。更に加えて、クライアントサービスモジュール１２６は、クライアント装置１１６にホストされた又は接続されたサードパーティーコンポーネントと同期化することが可能であってもよい。例えば、クライアントサービスモジュール１２６は、同期化エンジンを経由して、PIM１２２あるいはPDA１２３あるいは他のPIM機能が可能な装置と同期化してよい。
【００６０】
図２ｂにおいて、次に１以上のプライベートネットワーク１００について参照すると、サーバシステム１１２の一例が描かれている。サーバシステム１１２は、ファイヤーウォール１３６、レゾネイトディスパッチ（負荷分散ソフト）１３８、SSLゲートウェイ１３９、アプリケーションサーバ１４０、Ｗｅｂサーバ１４２、データベース管理システム（"DBMS")／データマイニングサーバ１４４、管理モジュール１４６及びデータベース１１４を含む。これらのコンポーネントは、サーバシステム１１２において互いに通信可能に接続されている。
【００６１】
一具体例において、レゾネイトディスパッチ１３８は任意であり、アプリケーションサーバ１４０及びＷｅｂサーバ１４２がホストされた複数のサーバ間でロードバランシング作用を果たす。具体例としては、アプリケーションサーバ１４０及びＷｅｂサーバ１４２の双方は、物理的又は論理的に単一のサーバにホストされてよい。
【００６２】
アプリケーションサーバ１４０は、JAVA技術を用いて開発されてよく、クライアントサービスモジュール１２６とＷｅｂサーバ１４２の双方を提供する。アプリケーションサーバ１４０は、メンバー１０４が許容を与えられた情報にのみアクセスすることを、アプリケーションサーバ１４０にアクセスするメンバー１０４に許すロジックを含む。アプリケーションサーバ１４０は、また、特定メンバー１０４のサーバデータベース１１４に保持された情報のスペシフィックサブセットとローカルデータベース１２８を同期化するために、個人情報のアップデートをクライアントサービスモジュール１２６に送ることに責任がある。
【００６３】
アプリケーションサーバ１４０の別の機能は、メンバー１０４からリクエストされたサービスの処理及び配置と、ユーザ１０３からの返答の通信である。これらの機能は、プライベートネットワーク内のメンバーシップ、パブリックならびにプライベートプロトコルの通信、および、データベース１１４の管理の定義を含む。アプリケーションサーバ１４０は、メンバーのサービスリクエスト中に定義されたユーザ１０３のいずれがプライベートネットワーク１００のメンバー１０４でもあるのかを、データベース１１４に問い合わせる。反対に、非メンバー１０６と定義されたユーザ１０３は、パブリックプロトコル１１０経由でアプリケーションサーバ１４０からリクエスト情報を受け取る。この目的のために、アプリケーションサーバ１４０は、非メンバー通信を提供するために、パブリックプロトコル通信モジュールを含んでよい。
【００６４】
Ｗｅｂサーバ１４２はオプショナルなＳＳＬゲートウェイ１３９を経由してレゾネイトディスパッチ１３８と通信する。前記ＳＳＬゲートウェイ１３９はＷｅｂサーバ１４２から発信され且つサーバにて受信されるべきHyperTextTransportProtocol（ＨＴＴＰ）のごときプトコルを暗号化及び複号化するものである。たとえば、プライベートプロトコル１０８のメッセージは、安全なＨＴＴＴＰＳに包まれており、これが、ＳＳＬ暗号により暗号化されたＨＴＴＰコードである。Ｗｅｂサーバ１４２は、また、JAVA、J2EE、.NET、VisualBaisicなどの技術を用いて実現されてよい。この発明の一具体例によれば、アプリケーション及びＷｅｂサーバ１４０，１４２は、そのクライアントシステム１１６を通じて、データベース１１４における許容されたデータに対する完全なアクセスを、メンバー１０４に提供する。Ｗｅｂサーバ１４２は、クライアントアプリケーション１１８とアプリケーションサーバ１４０の間における、HTTPまたはHTTPS通信を通じて送信されるプライベートプロトコル１０８メッセージの経路として機能してもよい。
【００６５】
アプリケーションサーバ１４０は、データベース１１４における許容されたデータにたいする、いかなるプラットフォームからのアクセスをも可能とする。さらに、この発明に係る非対称的側面によれば、アプリケーションサーバ１４０は、プライベートネットワーク１００を用いて、非メンバー１０６に接続することをも可能とする。従って、メンバー１０４は、この発明に従えば、ユーザ１０３（他のメンバー１０４及び非メンバー１０６）と通信することの利益を得る。管理モジュール１４６は、この発明にかかる同期化及びマージ動作の機能及び作業を管理すべく、アプリケーションサーバ１４０と統合される又は協働するよう構成される。
【００６６】
DBMS（又はデータマイニングモジュール）１４４はシステム１００に含まれる。DBMS１４４は、データベース１１４への複雑な問い合わせ（queries)を、促されたとき、或いは、スケジュールに基づき、実行する。この発明のバイラル（viral）エンジン機能を実行するアルゴリズムは、これらの問い合わせを供給してよい。DBMS１４４は、また、他のアルゴリズムを実行してよく、該他のアルゴリズムには、非メンバー１０６パブリックプロトコル１１０に基づく通信から、メンバーが要求した情報を抽出するための、自然言語処理或いはヒューリスティックスアルゴリズムが含まれる。例えば、DBMS１４４は、メンバー１０４連絡先アップデートリクエストに応答する受信電子メールを処理し、非メンバー１０６連絡先情報を抽出する。DBMS１４４はサーバシステム上にホストされ、一方で、サーバデータベース１１４はRAID記憶装置ないし同種のシステムによって実行されてよい。
【００６７】
サーバデータベース１１４は同期化されたローカル（クライアント）データベース１２８のコピーを保持しており、ローカル（クライアント）データベース１２８は、サーバシステム１１２に通信可能に接続された多数のクライアントシステム１１６によって実行されてよい。サーバデータベース１１４は、個人情報に関する多くの許容を記録しており、それによって、後述する通り、特定のユーザにとっての該個人情報が多数の他のユーザ１０３によってアクセス可能であり、また、該多くの他のユーザ１０３に頒布されうる。なお、他の実施形態において、サーバデータベース１１４はローカルデータベース１２８のコピーを記憶しなくてもよい。また、別の例としては。サーバデータベース１１４は、ローカルデータベース１２８に必要に応じてアクセスするためのリンクを記憶してもよい。
【００６８】
この発明によれば、サーバデータベース１１４は、システムを、そのシステムにおいては特定メンバー１０４のアドレス帳（すなわち、特定のメンバー１０４が見ることができるアドレス情報）がメンバー１０４及び非メンバー１０６の双方であるところの多くの他のユーザによって供給及び／又は頒布された情報により非対称的に埋められているのであるが、そのシステムを簡易化するのである。それゆえ、特定のメンバー１０４に関する個人情報のただ１つのコピーがサーバデータベース１０４上に存在するのであるが、この特定のコピーは、１人のオーナーメンバー１０４がアクセス許容を認めたと者どもであるところの多くの他のメンバー１０４にとってアクセス可能である。なお、特定メンバー１０４に関する１つのコピーは、システム操業中の効率を高めるために、キャッシュコピーとして複製されてもよい。
【００６９】
一方、非メンバー１０６に関する個人情報の種々の実例は、サーバデータベース１１４上に存在し、とりわけ、ローカルクライアントデータベース１２８から複製された個人メンバー１０４記録上に存在する。すなわち、２乃至それ以上のメンバー１０４は、互いに、同じ非メンバー１０６について１つの記録を持つ。更に、この発明は、１つのオーナーメンバー１０４に対する１つの個人情報コピーが各クライアントシステム１１６上に保持された多様なローカルデータベース１２８を占めるために使用されることを含んでよい。従って、リモートクライアントシステム１１６上の或る１つのローカルデータベースは、様々なサーバデータベース１１４から取り寄せた情報によって大きく占められるであろう。そして、前記情報は、掛かる情報が関係するものであるところの情報の発生源に保持される。
【００７０】
この発明の一実施形態において、プライベートネットワークサービス１００は、無線電話ユーザ１０３間の無線ネットワーク経由で処理されるサービスがアップデートする個人連絡先情報を含む。他の実施例において、プライベートネットワークサービス１００は、電子メールユーザ１０３間のインターネット経由で処理されるユニバーサルアドレス帳を含む。
【００７１】
図２a及び２ｂに関する一例として、記憶装置（ローカルデータベース１２８）内にローカルアドレス帳を持つメンバー１０４ａは、パーソナルコンピュータ（クライアントシステム１１６）を用いて、プライベート及びパブリックネットワークにアクセスする。前記メンバー１０４ａは、アップデートされた連絡先情報を要求するために電子メールユーザ１０３の一群を選択する。前記メンバーのパーソナルコンピュータ（例えばクライアントシステム１１６）は、電子メールアドレスによって前記電子メールユーザ１０３の一群を特定するアップデート要求を、サーバシステム１１２に対して、優先的なメッセージ発信手段（プライベートプロトコル１０８）を用いて、送信する。
【００７２】
供給された電子メールアドレスに基づき、サーバシステム１１２は、プライベートネットワークサービス１００におけるメンバーかどうかを判定するために、サービスデータベース１１４におけるメンバー１０４ａのためのユニバーサルアドレス帳中から該電子メールユーザの一群を調べる。電子メールユーザの一群がメンバー１０４（つまり他のメンバー）と非メンバー１０６とに特定されたら、サーバシステム１１２は、優先的なメッセージ発信手段を用いてアップデート要求を他のメンバー１０４に送信すると共に、非メンバー１０６に対して、アップデートされた連絡先情報を要求する電子メールメッセージ（パブリックプロトコル１１０）を送る。
【００７３】
この発明の有利点は、非対称処理を含み、それはプライベートネットワーク１００を拡張させるレバレッジドであろう。次に、この発明の一実施例に係るプライベートネットワーク１００を拡張させるための処理のフローチャートについて図３ａを参照して述べる。例えば、或るユーザ１０３がプライベートワークへの参加招待を受け入れたときに、プロセス１５０でサービスは初期化される。例えば、ユーザ１０３は、アプリケーションクライアント−ソフトウェアをダウンロードし、それを当該ユーザのクライアントシステム１１６にインストールする。初期化プロセス１５０の役割により、ユーザ１０３はメンバー１０４になる。サービス初期化プロセス１５０は、競合のないプロセスとなるよう構成され、それは「ネットワーク拡張のためのバイラルエンジン」と題された、発明者ジョン・T・マソニス、シーン・パーカー、キャメロン・T・リング、リチャード・J・キャリーらにより、且つ、本願と共通の譲受人により譲受され、その内容が参照によって組み込まれるたものであるところの、米国特許出願番号＿／＿，＿，に記載されたものである。
【００７４】
サービス初期化プロセス１５０の後、新規メンバー１０４は、サービス要求を提示することにより、サービス１００が提供する特徴を使用することを開始できる。メンバー１０４がサービス１００の使用を開始するとき、プロセス１５２により、サービス要求が受信される。例えば、或るメンバー１０４のクライアントソフトウェアは、アップデートされた情報が要求されるべきメンバーの連絡先リスト中の連絡先の一群を指定する。サービス要求は、プロセス１５４において、他のメンバー１０４と非メンバー１０６に送信される。一例として、システムデータベース１１４に記録されたメンバー自身の個人連絡先情報を確かめるための通知が、プライベートプロトコル１０８経由で、前記サービス要求で指定されたいずれのメンバー１０４に対しても送信されてよい。
【００７５】
加えて、電子メールメッセージを非メンバー１０６に送信して、その返信として彼らの現在の連絡先情報を提供するよう問うてもよい。メンバー１０４たちは、もし、例えば、システムサービス１１４に記録された彼ら自身の情報がアップデートされる必要があるならば、前記サービス要求に対してプライベートプロトコル１０８経由で返答するであろう。非メンバー１０６は、パブリックプロトコル１１０又はその他別の一般的アクセス方法経由で返答するであろう。一例として、非メンバー１０６は、アップデート要求に対して、電子メール又はインターネット経由のＷｅｂに基づくフォームを用いて、返答することができる。
【００７６】
前記サービス返答はプロセス１５６で受け取られる。そして、プロセス１５８でオリジナルメンバーへのサービスがサーバ１１２において行われる。例えば、非メンバー１０６から提供された現在の連絡先情報は、ヒューリスティックスアルゴリズムを用いて、電子メールメッセージの返答から抽出され、そして、その情報は非メンバー１０６に関するメンバーデータベース記録をアップデートするために使用されるであろう。
【００７７】
同様に、システムサービス１１４に記録された彼ら自身の情報が現在のものであると確認された、或いは、アップデートされた情報を提供しているメンバー１０４からの返答メッセージは、プライベートプロトコル１０８経由で受け取られて、前記要求している又は提供しているメンバー１０４のメンバープロファイルがシステムデータベース１１４にリンクされる。そして、要求しているメンバーのクライアントシステム１１６のクライアントアプリケーションソフトフェアと通信するためにプライベートプロトコル１０８を用いることで、ローカルデータベース１２８はプロセス１６０でサービス返答の情報を含めてアップデートされる。そして、サービスは、例えば、新たな連絡先の一群のための要求がプロセス１６２で行われるか、或いは、プロセス１６４で終了するであろう。
【００７８】
次に、図３ｂにおいては、この発明の一実施例に係る非対称的オペレーションを説明する方法の一例のイベントダイアグラムが示されている。システムサーバ１１２は、イベント１６８において、ユーザ１０３をメンバー１０４にするための伝達をユーザ１０３に送信する。前記伝達は、プライベートネットワークへの参加招待、クライアントソフトウェアのダウンロードなどに関するアップデートリクエストであってよい。メンバー１０４ａは、イベント１７０において、情報が要求されるべきユーザ群１０３に対するサービスリクエストを送信する。サーバ１１２は、イベント１７２において、中央データベース１１４にアクセスし、前記指定されたユーザ群１０３のうちのいずれがメンバー１０４であり、いずれが非メンバー１０６であるかを判定する。データベース１１４は、イベント１７４において、前記指定されたユーザ群１０３に関するメンバーシップ情報をサーバ１１２に供給する。サーバ１１２は、イベント１７６において、プライベートネットワーク１０８経由でメンバー１０４に情報要求を送信し、また、イベント１７８において、パブリックネットワーク１１０経由で非メンバー１０６に情報要求を送信する。
【００７９】
メンバー１０４及び非メンバー１０６からの返答は、所定期間毎に、特定の順序なしに発生してよい。図３ｂにおいては、各タイプ毎の返答のためのアクション群を再現している。例えば、メンバー１０４は、イベント１８０において、プライベートネットワーク１０８経由でサービス要求に返答する。或る特定のメンバー１０４の返答は、例えば、当該メンバー自身の情報のアップデート、要求を行ったメンバー１０４ａに情報にアクセスすることを許す許容などであってよい。サーバ１１２は、イベント１８２において、他のメンバー１０４からの返答を処理するために、データベース１１４にアクセスしてよい。前記処理には、他のメンバー１０４からの返答に基づく情報のアップデート、或いは、要求したメンバー１０４ａと返答したメンバー１０４のシステム記録の間のリンクを可能にすることを含む。サーバデータベース１１４が何れかのメンバーの返答情報でアップデートされると、サーバ１１２は、イベント１８４において、要求したメンバー１０４と通信する。この通信には、作成された新しいリンクの通知、システム（例えばユニバーサルアドレス帳）の同期化、及び、ローカル（例えばＰＩＭ１２２）情報などが含まれる。
【００８０】
一方、非メンバー１０６は、イベント１８６において、パブリックネットワーク１１０経由で１以上の異なる経路で返答する。例えば、非メンバーは、返信電子メール、音声メール、インスタントメッセージ、Ｗｅｂアクセスなどを通じて返答しうる。サーバ１１２は、非メンバー１０６が使用する返答メカニズムに基づき非メンバー１０６を抽出することにより、非メンバー１０６に関連する情報を判別することで、非メンバー１０６の返答を処理する。いくつか又はすべての前記関連する情報が入手できれば、サーバ１１２は、イベント１８８において、非メンバー１０６の情報に関してメンバー１０４ａのシステム記録をアップデートする。サーバ１１２はまた、イベント１９０において、非メンバー１０６に関してメンバー１０４ａと通信する。この通信は、各非メンバー１０６から受け取った情報（例えば、返信電子メールに含まれる非関連情報サービス）についてメンバー１０４ａをアップデートすることや、アップデートされた非メンバー情報にローカルデータベース１０８を同期化することであってよい。
【００８１】
バイラルネットワーク概観
この発明は、連絡先情報の拡張管理のための付加的ツールを提供する。この拡張のソースは、例えばバイラルネットワークであり、それは、例えば、「ネットワーク拡張のためのバイラルエンジン」と題された、発明者ジョン・T・マソニス、シーン・パーカー、キャメロン・T・リング、リチャード・J・キャリーらにより、且つ、本願と共通の譲受人により譲受され、その内容が参照によって組み込まれるたものであるところの、米国特許出願番号＿／＿，＿，に記載されたものである。
【００８２】
端的にいえば、図４ａ〜４ｄは、この発明に係るバイラルネットワーク拡張のロジカルを描いている。これら図において、数字符号が続く文字“Ｕ”は非メンバー１０６を表しており、数字符号が続く文字“Ｍ”はメンバー１０４を表している。更に、プライベートネットワーク接続は、メンバーＭから非メンバーＵを指し、非対象ネットワークリンクを描いている一方向の矢印、或いは、２つのメンバーＭ間を指し、そこにおいて高められたサービスが可能であるところのプライベートネットワークの対照的ポーションを描いている双方向の矢印の双方によって示されている。なお、これらプライベートネットワーク接続は物理的接続である必要はない。むしろ、それらは、プライベートネットワークに提供されるサービス及びこれらサービスの接続において交換される情報を表象するユーザ１０３（メンバーＭと非メンバーＵ）の間のヴァーチャルなリンクを含む。
【００８３】
図４ａは、非メンバーＵ１，Ｕ３，Ｕ７，Ｕ１１，Ｕ２，Ｕ４及びＵ５のサブセットを含むプライベートネットワークサービス１００を使用する最初のメンバーＭ０を示している。Ｍ０からの矢印は、非メンバーＵをプライベートネットワーク上に掲出するための通信、例えば、参加招待を含むサービス要求、電子メール、或いは、プライベートネットワークに関する他のメッセージなど、を示している。
【００８４】
非メンバーＵ１及びＵ２は、例えば、プライベートネットワークサービス要求に含まれるプライベートネットワークへの参加招待に返信することにより、プライベートネットワーク１００に参加することを決断し、そして、メンバーＭ１とＭ２になる。他の非メンバーＵ３、Ｕ７、Ｕ１１、Ｕ４及びＵ５は、プライベートネットワーク上に初めて掲出されており、プライベートネットワークに参加しないことを決断する。これは例えば、Ｍ０からの通信に気がついていないか、サービスを見る時間がないか、或いは、他の理由により今回は参加を見合わせることなどである。
【００８５】
図４ｂに示すように、Ｍ１とＭ２は、他の非メンバーＵのサブセットを含むプライベートネットワークサービス１００を使用する。Ｍ１は、Ｕ６、Ｕ３、Ｕ５およびＭ０のプライベートネットワークサービス１００を使用する。Ｍ２は、Ｕ１１、Ｕ１２、Ｕ１０、Ｕ４およびＭ０のプライベートネットワークサービス１００を使用する。Ｍ０は既にメンバーなので、Ｍ０とＭ１とＭ２間のリンクは、双方向矢印で示すとおり、対照的であり、高められたサービスがこれらメンバーＭの間で可能である。
【００８６】
なお、Ｍ０がメンバーＭ１とＭ２に連絡先を持つので、Ｍ１とＭ２はＭ０との連絡先をシェアすることができ、そして、例えば、Ｕ３、Ｕ５、Ｕ４およびＵ１１のようにＭ０と共通するユーザの１０３のサブセットのプライベートネットワークサービス１００を使用できる。そして、いくらかの非メンバーＵは、異なるメンバーＭからプライベートネットワークサービス１００への多数の掲出を得る。したがって、これら非メンバーは、プライベートネットワークに参加するのに多数の好機を提供されるのである。そして、多数の掲出は、非メンバーＵにプライベートネットワークに参加することを促す。一例として、非メンバーたちは下記の如く考えるであろう、すなわち、もし、二人の友人またはビジネス連絡相手が当該サービスを使用しているなら、それを調べる価値があるかもしれない、あるいは、彼らには、第２番目のメンバーとの、より近い、あるいは、より信頼できる関係があるかもしれない、などと。
【００８７】
図４ｃはバイラル拡張展開について上記に続く動作の繰り返しを示している。ここにおいて、非メンバーユーザーＵ３は、Ｍ０とＭ１の双方から連絡され、プライベートネットワークに参加する決断をし、そして、いくらかの重複非メンバー、例えばＵ６と、いくらかのまだプライベートネットワークに掲出されていない非メンバー、例えばＵ９、を含むサービスを使用する。同様な状況は、メンバーＭ４になる非メンバーＵ４に関して示されている。いくらかの上記動作の繰り返しの後、メンバーＭの数は指数関数的に増大し、プライベートネットワークに連絡して来る非メンバーＵの要員はどんどん大きくなる。結局は、図４ｄに示すように、すべてのユーザ１０３がメンバーＭになるだろう。
【００８８】
同期化エンジン
プライベートネットワーク１００のメンバー１０４の優位点は、非対称的情報交換であって、それは、メンバー１０４に、非メンバー１０６にも同様に、プライベートネットワーク１００のメンバー１０４に直接に情報を供給することを可能とする。情報量が増えれば、種々の装置情報のアプリケーション、例えば、ＰＩＭ１２２の間の同期化がますます困難になる。
【００８９】
この発明は、同期化エンジン（またはシステム）とマージエンジン（またはシステム）を含んでおり、それは、メンバー１０４に、種々の装置からの情報を同期化およびマージすることを可能とする。理解を簡易にするために、同期化及びマージエンジンの原則は、個人情報マネージャ（PIM）アプリケーション、さらにいえば、連絡先情報に関連して描かれている。しかしながら、同期化及びマージエンジンが作業及び処理することができる情報は、PIM及び又は連絡先情報に限定されない。また、同期化及びマージエンジンの原則は、データとして記憶されたいかなる情報の使用及び操作にも適用可能であり、該データには、カレンダーのエントリー、面会、リマインダー、ノート書き、タスク、などを示すデータや、求人広告、雇用リスト、競売リストなどが含まれる。
【００９０】
次に図５を参照すると、これは、２以上の装置における同期化（"sync"）処理を開始及び管理することができる同期化エンジンを描いている。装置は、同期化すべき情報を持ったアプリケーションを含む物理的な装置であって、例えば、PIM１１２を持つクライアントシステム１１６、PIMを持つPDA１３２、あるいは、PIMを持つ携帯電話１５０である。
【００９１】
別の例としては、装置は、同期化すべき情報を持った論理的装置であって、例えば、Yahoo!やAmerica Onlineのようなオンラインからの、Ｗｅｂに基づくPIM（例えば、アドレス帳）５１５である。さらに別の実施例において、装置は、何らかの物理的及び／又は論理的装置であり、プライベートネットワーク１００において同期化するためのアプリケーションを持つもの５２０である。
【００９２】
この発明にかかる同期化エンジンは、有益にも、フォルダレベルでの情報の同期化を許容している。図６は、この発明に従うフォルダ６１０の一例を描いている。一般的に、フォルダ６１０はコンテンツを含み、それは情報（例えばデータ）の倉庫として役立つ。フォルダ６１０は、１以上のエントリー６２０及び／又は１以上のサブフォルダ６３０を含む。フォルダ６１０は、多様なバリエーションでコンテンツをグループ化するために構成されており、例えば、階層的又は多層的に構成されたエントリー６２０及び／又はサブフォルダ６３０又は、フラットな構成のエントリー６２０及び／又はサブフォルダ６３から成る。
【００９３】
端的にいって、エントリー６２０の例としては、電子メール、連絡先（contacts）、IMメッセージ、タスクリスト、ノートを含む。フォルダ６１０とサブフォルダ６３０の例は、エントリーのグループ化、例えば、仕事に関する電子メールのグループ化、自宅用の電子メールのグループ化、仕事に関する連絡先のグループ化、自宅用の連絡先のグループ化、仕事に関するタスクのグループ化、自宅用のタスクのグループ化、あるいは、それらの組み合わせなどである。
【００９４】
次に図７を参照すると、これは、この発明の一実施例に係る同期化エンジンの論理的見取り図を描いている。同期化エンジン（システムとみなしてもよい）は、階層選択モジュール７１０と、解析モジュール７２０、比較モジュール７３０、マップ（又はリンク）モジュール７４０、同期化（又はsync）出力モジュール７５０、及び、同期化（又はsync）ルールモジュール７６０を含む。これらモジュール７１０，７２０，７３０，７４０，７５０，７６０は、ソフトウェア、ハードウェア、あるいは、それらの組み合わせにより実施されてよく、互いに通信可能に接続されている。
【００９５】
階層選択モジュール７１０は、同期化のために１以上の情報の階層の間で選択する。１つの階層は情報のカテゴリーである。例えば、図８aは、この発明において、連絡先情報に関して同期化するための論理的階層組成を示している。この例において、階層には、オーナー階層８１０、返答階層８２０及びサービス階層８３０（例えばプライベートネットワークサービス又はPNS)が含まれる。
【００９６】
オーナー階層８１０は、当該情報の扱いに権限を持つメンバー１０４によって所有及び制御される情報（データ）に相当する。メンバー１０４は、手動又は例えばソフトウェアなど自動化されたプロセスにより、オーナー階層８１０を同期化する。返答階層８２０は、メンバー１０４からのアップデート要求において、特定の非メンバー１０６によって交換可能な情報に相当する。ここにおいて、非メンバー１０６は、オーナー階層８１０及び／又はサービス階層８３０と同期化される情報を提供する。サービス階層８３０は、メンバー１０４による同期化の開始によってアップデータされた情報に相当する。この場合、サービス階層８３０の情報は、オーナー階層８１０と同期化され、また、返答階層８２０の情報に応じて同期化されるだろう。なお、異なる情報の階層、例えば、８１０、８２０、９３０は、わずかに異なる情報を含み、そして、それらを保持することは、アドレス帳エントリーのオーナーをして、ディスプレイ表示された情報の制御を有することを可能とする。例えば、オーナー階層８１０に分類された情報に対する返答階層８２０から受け取った情報に対するサービス階層８３０から供給された情報、例えば、プライベートネットワーク１６０経由で受け取ったもの、などである。更に、各階層の情報は、ユーザインターフェースを介して操作でき、これは特定の階層にとって、特定の階層にアクセスすることを可能とするものである。
【００９７】
図７に戻ると、解析モジュール７２０は前記階層のデータを解析するもので、比較モジュール７３０は重複するデータを判断（又は同定）するためにデータを比較する。マップモジュール７４０は、どの特定の階層及び／又は情報が、特定の関係において互いにリンクされているのかを判断するモジュールである。図８ｂは、後述する通り、２つの装置８４０，８４５間の情報のお互いと、プライベートネットワーク１００のサーバシステム１１２のデータベース１１４に記憶されたユニバーサル（又はサーバ）アドレス帳とを如何にして同期化するかについての論理的見取り図の一例を描いている。
【００９８】
図７に戻ると、マップモジュール７４０は、リンク関係のために独特の識別子を提供するよう構成されることに留意されたい。一例において、独特の識別子は、電子メールアドレス、インスタントメッセンジャーアドレス、電話番号あるいはその他の不変の識別子（例えばソーシャルセキュリティ番号）などのような、不変の識別子である。図８ｃは、この発明の一実施例に係る連絡先カードの論理的見取り図の一例を描いており、そこにおいて、独特の識別子８７５は、情報をプライベートネットワーク１００のメンバー１０４に連携させるために使用されている。再び図７に戻ると、同期化出力モジュール７５０は、（同期化ルールモジュール７６０からの）同期化ルールとリンクされた関係に基づき前記階層のデータを同期化する。
【００９９】
如何にして同期化エンジンが作用するかの理解を促すために、一つの例が、２つの装置８４０，８４５間の情報のお互いと、プライベートネットワーク１００のサーバシステム１１２のデータベース１１４に記憶されたユニバーサル（又はサーバ）アドレス帳とを如何にして同期化するかについての、図８ｂの論理的見取り図によって提供されている。また、一例として用いられるのは、図８ｃの連絡先カードの論理的見取り図であり、そこにおいて、独特の識別子８７５は、情報をプライベートネットワーク１００のメンバー１０４に連携させるために使用されている。
【０１００】
まず、図８ｂを参照すると、論理的見取り図は、第１の装置（DEV Aと示す）、第２の装置（DEV Bと示す）及び、プライベートネットワーク１００（PNSと示す）のサーバシステム１１２のデータベース１１４における２つのセット（又はフォルダ）を有するユニバーサルアドレス帳８５０を描いている。なお、装置８４０、８４５は、PIMアプリケーションを実装した物理的装置（例えばパーソナルコンピュータ又はPDA）、あるいは、PIMアプリケーションを実装した論理的装置（例えばポータルＷｅｂサイト）であってよいことに再び留意されたい。
２つの装置（DEV AとDEV B）８４０、８４５は、PIMアドレス帳（PIM AB)８４２，８４７のようなアプリケーション（又はAPP）と、ミラー８４４，８４９を含む。例えば、装置A８４０及び／又は装置B８４５の双方又は一方のPIMアドレス帳（PIM AB)８４２，８４７は、クライアントシステム１１６（装置A８４０及び装置B８４５は機能的にこれと同様であってよい）に関して前述したPIMアドレス帳１２２と機能的に同様であってよい。
【０１０１】
この例において、同期化エンジンは、２つの装置８４０、８４５上のPIMアドレス帳とプライベートネットワーク１００のユニバーサルアドレス帳との間の情報を、ミラー８４４，８４９を介して同期化する。ミラー８４４，８４９は、PIMアドレス帳８４２，８４７と物理的に同じ装置上にある必要はないが、各々対応するPIMアドレス帳８４２，８４７と通信可能に接続される。ミラー８４４，８４９は、PIMアドレス帳８４２，８４７とプライベートネットワークのサーバデータベース１１４上のユニバーサルアドレス帳８５０のフォルダ（又はフォルダのサブセット）例えば８５２，８５４、との間の情報を同期化するために用いる。ミラー８４４，８４９は、典型的には不変である独特のユーザ識別子８６０を用いて、ユニバーサルアドレス帳８５０と同期化する。
【０１０２】
データベース１１４におけるPIMアドレス帳８４２，８４７、ミラー８４４，８４９及びユニバーサルアドレス帳フォルダ８５２，８５４は、この実施例では連絡先情報に関するエントリーを含む。各アドレス帳とミラーは、１以上のエントリーを含み、各エントリーが１以上のフォルダを持っている。その一例は、１つのエントリーを含む情報８７０と、エントリーを有する１以上のデータフィールド８７５とによって図８ｃに描かれている。更に、エントリーはセット内でグループ化されてもよい。各セットは、そのセット内にセットを含む。セット内の１又は複数のセットは、図６において示した原則として詳しく説明したとおり、フォルダ、サブフォルダなどなどとして示されている。
【０１０３】
一例として、PIMアドレス帳８４２，８４７は、ユニバーサルアドレス帳又は分散アドレス帳の一部であってよい。ユニバーサルアドレスは、１つのアドレス帳中の全てのアドレス情報を提供する。ユニバーサルアドレス帳は各装置と同期化され、ユーザは各装置上で同じアドレス帳を見ることができる。
【０１０４】
分散アドレス帳は、２以上のアドレス帳を含み、それは、互いに正確なレプリカである必要はない。分散アドレス帳は、他の装置上の他のアドレス帳の間で同期化されたアドレス帳全体のサブセットのみを持つものであってよい。分散アドレス帳は、エントリー毎を基準又はよりマクロな基準、例えば、フォルダ、フォルダのセット、あるいは、サブフォルダのレベルなど、で、同期化されてよい。
【０１０５】
図１３は、装置A及び装置Bに関する分散PIMアドレス帳８４２，８４７の一例を描いている。この例では、各装置は、３つのフォルダを持っており、各フォルダはエントリー又はエントリーのセットを持つ。また、３つのフォルダ（又はセット）を持つユニバーサルアドレス帳８５０が描かれている。この例は、アドレス帳のフォルダAが、装置A、装置B及びプライベートネットワーク１００上のデータベース１１４のユニバーサルアドレス帳８５０が完全に同期化されている例を示している。この例はまた、装置Aのアドレス帳８４２のフォルダBが、他の装置８４７，８５０のフォルダと同期化されていない例を示しており、装置A８４２のフォルダCが、装置B８４７のフォルダC及びユニバーサルアドレス帳のフォルダと部分的に同期化される例を示している。この図は、同期化及びマージエンジンの例の説明にて後述されるであろう。
【０１０６】
プライベートネットワークのメンバー１０４は種々のレベルの同期化を開始することにもまた留意されたい。一例として、図８ｃは、２以上の異なるカード、例えば８８０ａ，８８０ｂ，８８０ｎ（一般的に８８０）を創るメンバー１０４が描かれており、それは情報データフィールド８７５の異なるグループ化によって構成されている。各カード８８０は、許可タグ（例えばフラグやフィールド）８８５ａ，８８５ｂ，８８５ｎ（一般的に８８５）を含み、それは、カード８８０の情報がカードレベルで同期化されるものか、個別のデータフィールドレベルで同期化されるものかを特定するために使用される。許可タグ８８５は、特定のカードがパブリックかプライベートかを特定するためのデータを含む。パブリックカードはパブリックネットワーク１０２又はプライベートネットワーク１００の情報の全般的同期化のために構成されているのに対して、プライベートカードは限定される又はパブリックネットワーク１０２又はプライベートネットワーク１００の情報と同期化しない。
【０１０７】
次に、図９ａと図９ｂにおいては、この発明の一実施例に係るフォルダ同期化のための手順を示すフローチャートが描かれている。図９ａはこの発明に係る同期化の一般的な手順の一例を示すフローチャートである。この実施例では、プロセス９１０において処理を開始し、プロセス９１５にて同期化がフォルダベースで行われるかどうか判断する。そうでない場合、プロセスはスタートに戻り、後に同期化されるフォルダをセットする。同期化がフォルダベースで行われる場合、プロセス９２０にて同期化すべき１又は複数のフォルダを選択する。例えば、同期化のためのフォルダは、ユニバーサルアドレス帳８５０とともに装置Ａ及び装置Ｂ上のＰＩＭアドレス帳８４４，８４７からのフォルダとである。
【０１０８】
次にプロセスは、同期化のためのルール（又はポリシー）（例えば同期化ルールモジュール７６０からのもの）を特定する。プロセス９３０において、何らかのマージルール（又はポリシー）が適用されているかどうか判断する。そうでなければ、プロセスが終了する前に、プロセス９４０において選択されたフォルダが同期化される。マージルールが適用されている場合、プロセス９３５において該ルールが特定され、プロセスが終了する前のプロセス９４０における選択されたフォルダの同期化中に適用される。マージルールについてはマージエンジンの説明で後述する。
【０１０９】
図９ｂはこの発明に係る同期化の一般的な手順の第２の例を示すフローチャートである。この例では、プロセス９５０において処理を開始し、プロセス９５５にて異なる装置（例えば装置Ａ８４２のＰＩＭアドレス帳とユニバーサルアドレス帳８５０）間をリンクするために階層が選択される。これらの階層はマッピングにより互いにリンクされる（例えば、マップモジュール７４０によって）。なお、別の形態として、階層中のフォルダがリンクされてもよい。プロセス９６０において、リンクされた階層のフォルダを比較し、相互間の重複を特定する。
【０１１０】
プロセス９６５においてフォルダの解析による比較が実行され、プロセス９７０においてデータフィールドの比較により、所定のデータが同一であるかどうか調べる。なお、これは例えば、独特のユーザ識別子８６０ないし１以上の所定のデータフィールドの比較を通じてなされるものである。重複が見つかった場合、同期化ルールモジュールのポリシーによって詳しく後述するとおりの競合解決ルールを用いて、それを解消し、プロセス終了前に、プロセス９８０において同期化を実行する。
【０１１１】
同期化における競合解決のためのポリシーに関して、この発明は、好ましくは、指定された実体、例えば、プライベートネットワーク１００のサーバシステム１１２上の管理モジュール１４６、又は、ユーザ選択によって強制されたポリシーを通じて、同期化ルールを実行するよう構成されている。同期化エンジンにおいて、競合解決と同期化のポリシーとは、同期化ルールモジュール７６０に記憶される。該ポリシーの例としては、タイミング権限（例えば最新の情報が他の情報上に同期化される）、オーナーアドレス帳権限（例えば、オーナーアドレス帳に入っている情報が他の情報上に同期化される）、情報に基づく権限（例えば、プライベートネットワーク１００のデータベース１１４の情報が他の情報上に同期化される）、あるいは、オーバーライド権限（例えば、パブリック１０３又はプライベートネットワーク１００からの情報はユーザによってオーバーライドされていない限り他の情報上に同期化される）などを含む同期化ルールを定義することを含む。
【０１１２】
次に、この発明の別の実施例について説明すると、同期化すべき情報は最初に登録される。これを行うために、ユーザは、新しいアカウント情報を入力し、サーバシステム１１２は当該アカウントがメンバーとして存在するかどうか判定する。ついで、最初のマッピングが開始し、フォルダのマッピング情報が収集される。前記情報を用いて、解決すべき競合がリスト化される。とりわけ、二つの異なるリストが存在する：（１）「最良の」エントリーが選択されるべき重複エントリーのリストと（最初のステップがよりいっそうの競合を生じさせるので）、（２）ユーザが最善の値を選択する必要がある競合フィールドのリストと、である。リンク及び同期化された情報は、データベース１１４に記録され、変更はリモートシステム、例えばＰＩＭアプリケーション１２２，８４２を実行するクライアントシステム１１６に送信される。このため、クライアントシステム１１６はサーバシステム１１２に情報を送信し、サーバシステム１１２は他のクライアントシステムに情報を送出する。
【０１１３】
この発明は、また、同期化エンジンならびにフォルダ間での同期化のプロセスの構成のために提供されており、ユーザに同期化可能な重複を意図的に保持させることを可能とする。同期化可能な重複を保持させるために、メンバー１０４は、どのフォルダが同期化可能か決定する。同一フォルダ内の重複フォルダは不変の識別子を用いて同期化される。この不変の識別子は、サーバシステム１１２によって割り当てされる。更に、メンバー１０４は、異なるシステム間（例えば、ＰＩＭアドレス帳８４２とユニバーサルアドレス帳８５０）のマッピングを同定又は確立する必要がある。
【０１１４】
同期化処理が開始したら、エントリーは、異なるシステム上のフォルダ間の不変な識別子がそれらのいずれかが対応するデータフィールド（例えば８７５）にマッチするならば、重複せられるべきものとみなされる。この一例は、同一の電子メールアドレス（他の例としては同一なインスタントメッセンジャー識別子や携帯電話番号が含まれる）である。電子メールアドレスのないエントリーは、他の適宜のデータフィールド、例えば、姓名など、を用いて比較せられる。
【０１１５】
識別子間で最初のマッチがあれば、情報はいくつかの異なる方法で同期化されうる。例えば、リモート装置同期化があり、それにおいては、１つのエントリーには満たされたフィールドがあり、他のものにはないならば、情報は、まだ満たされたフィールドを持たないエントリーに移される。この処理はまた後述のマージエンジンを介して実行されてもよい。もし、エントリーが同一のフィールドに異なる情報を持っていれば、メンバー１０４又はサーバシステム１１２は上記競合解決策を講じなければならぬ。なお、システムはサーバシステム１１２及びクライアントシステム１１６上の独特の識別子を保つことに留意されよ。別の例として、多数の装置に関連するリモート装置同期化のシナリオでは、メンバー１０４は１つのエントリーを「同期化可能な」エントリーとして選ぶ。このエントリーは、したがって、その独特の識別子、例えば電子メールアドレスについて、能動的に同期化される。なお、重複エントリーは同期化できない重複として記憶される。
【０１１６】
マッピングと最初の同期化が完了すると、システムは優先的に次の同期化のために構成される。特に、最初のマッピングが確立した後には、一方のシステム、例えばクライアントシステム１１６のＰＩＭアドレス帳１２２，８４２又はサーバシステム１１２のユニバーサルアドレス帳８５０において、変更が実行されて、同期化を受けるべき他方に反映される。これらの変更には、追加、削除、アップデートが含まれる。更に、システム１１２，１１６の一方には、エントリーについて５つの状態があり、それは、例えば、存在しない（“Ｎ”）、追加（“Ａ”）、変更（“Ｃ”）、変更なし（“ＵＣ”）及び削除（“Ｄ”）である。これに従うと、可能な同期化状態及びアクションは、下記の通りとなる（なお、（“ＸＸ”）は「起こりえない」を意味する）。
Ｎ−Ｎ：ＸＸ
Ｎ−Ａ：新しいエントリーが、それの存在しない側に追加
Ｎ−Ｃ：ＸＸ
Ｎ−Ｕ：ＸＸ
Ｎ−Ｄ：無視（システムが認識する前に追加及び変更された）
Ａ−Ａ：互いのマップエントリー、新しい情報の競合があるなら、メンバー１０４又はシステムは競合解決を適用する。加えて、リモート側が複数の重複追加をもつならメンバー１０３またはシステムの一方は最善のマッチエントリーを判定するために介入又はマージエンジンの使用を強制する。
Ａ−Ｃ：ＸＸ
Ａ−Ｕ：ＸＸ
Ａ−Ｄ：既に加えられたエントリーの削除
Ｃ−Ｃ：リモートエントリーが変更されていないフィールドに何らかの変更が伝わる。同一フィールドが、双方のエントリーで異なる値に変更されたら、メンバー１０４又はシステムは競合解決を実行する。
Ｃ−Ｕ：変更が伝わる
Ｃ−Ｄ：変更されたエントリーの削除
Ｕ−Ｕ：無視
Ｕ−Ｄ：対応するエントリーの削除
Ｄ−Ｄ：無視
【０１１７】
上記状態がいかに機能するかの一例として、後続する同期化の例について考察しよう。ここにおいて、状態表記はＣ−Ｃであり、データは最先の同期化完了時点に等しいものと理解される。同期化からの新しい値と、データベース１１４の新しい値があるデータベース１１４の元の値としての古い値（もしそれが存在するなら）に基づいて比較が実行される。エントリーの連絡先情報が変更されたらいつでも、各同期化された装置ごとに古いデータ（もし知れが既にそんざいしていないか、クライアントシステム１１６に記憶されていないならば）をサーバシステム１１２は記憶する。リモートシステム（例えばＰＩＭアプリケーション／アドレス帳１２２，８４２があるクライアントシステム１１６）が同期化されたら、古い情報は取り除くか又はディスカードされる。なお、データのコピーは、クライアントシステム１１６、サーバシステム１１２又はその双方に保持されてよい。また、リモートシステムは、同期化要求に応じてデータを要求するものであってよい（また、その例では「受動的」として言及される）。
【０１１８】
新たな競合解決の場合、サーバシステム１１２の管理モジュール１４６は競合解決すべく構成される（例えば、システムの初期設定又はンバー１０４によって予め定められた設定に基づいて）。あるいは、メンバー１０４はシステム（例えば管理モジュール１４６）によってそれを通知するために電子メールされてよい。この点において、サーバシステム１１２のプライベートネットワークサービスは、電子メールに返信する又はサービス（ＰＮＳ）のＷｅｂサイトにログインして正しいアクションを選択しているメンバー１０４にそれを固定するためのオプションを提供する。
【０１１９】
同期化処理は、この発明のクライアントシステムにおいて連続的に起動するよう構成される。処理が起動すると、各パスに対して、所定の時間間隔で実行されなかった同期化のリストをつかむ。各パスにとって、処理は、リモートシステム（例えばサーバシステム１１２）にログインし、最先のデータを得る。アクションは上述の状態に基づくデータについて実行され、適切なコマンドがサーバシステム１１２とクライアントシステム１１６の間で発せられる。一例として、システムは定期的調査を実行する。調査は一つの、暗号化されていない、証明されていないメッセージの形で行われ、特定のユーザがペンディングされた変更をもっていないかどうかサーブに尋ねる。あるいは、それは、完全に暗号化され証明され、全ての同期化可能な対象物を調べてもよい。
【０１２０】
別の実施例において、競合しているフィールド情報は、１つのタグ（例えばフラグ又はフィールドコード）がある古いフィールドとしてデータベース１１４に記憶され、新しい同期化できないエントリーは別のタグ（例えばフラグ又はフィールドコード）でデータベースにマークされる。また、エントリーが同期化されていないものならば、このエントリーはデータベース１１４において同期化可能なものとしてマーク（またはタグ付与）され、それは他の全ての装置にとって「新たな」エントリーとなる。
【０１２１】
また、フィールドは、比較実行時にいくらかのフィールド値が同等とみなしうるような方法で同期化されてもよい。例えば、電話番号“（ａｂｃ）ｄｅｆ−ｇｈｉ”は“ａｂｃ−ｇｈｉ−ｄｅｆ”と同じである、ここで、アルファベット文字は何らかの整数乃至ダイヤルパッド上の文字に相当する。同様に、“最後、最初”を持つエントリーは、“最初最後。”に同等とみなせる。なお、同等なフィールドは、競合解決のための潜在的な介入を限定するために、ユーザまたはプライベートネットワーク１００の中央サーバの管理モジュールによって、予め定められてよい。
【０１２２】
更に、この発明の一実施例において、フォルダやデータエントリーなどを含む情報及び連携されたデータは、サーバシステム１１２のデータベース１４においてデータベースオブジェクトとして記憶される。記憶されたデータには、同期化可能なエントリーノステート、フォルダーマッピングデータ（如何にしてフォルダがリモートサイト（例えば、ＰＩＭアプリケーション／アドレス帳１２２，８４２を起動しているクライアントシステム１１６とユニバーサルアドレス帳８５０のサーバシステム１１４）間でマップされるかを含む）、外来（又は非ローカル）のエントリー識別子とローカルエントリー識別子の間のマッピング、何らかのエントリーの古い状態、及び、全ての同期化アカウント情報のリストが含まれる。
【０１２３】
この発明に係る同期化システム及び処理は、階層化されたフォルダのセット、例えば、独立して、あるいは、他の階層のサブセットにおいてアップデートできる連絡先情報フォルダなど、の認識を含む有利点を提供する。この発明は、また、好ましくは、衝いろいろな装置間のいろいろな階層での同期化処理の最中に、競合解決に基づくポリシーをセットし強要することを可能とする。したがって、ユーザは、多様な階層又はレベルの同期化について制御と柔軟性を増すのである。
【０１２４】
マージエンジン
上述の通り、同期化処理は装置間の情報のマージ（統合）も含みうる。マージ処理では、２以上の情報が１つのマージエントリーにマージされる。マージされたエントリーは、少なくとも各エントリーからの情報のサブセットを含みうる。一例において、情報のマージは、この発明に従うマージエンジン及び処理によって処理される。なお、マージエンジン及び処理は、同期化エンジン及び処理と合同（又は組み合わせて）もよいし、あるいは、別々に構成され同期化エンジン及び処理に通信可能に接続されてもよい。
【０１２５】
図１０は、この発明の一実施例に係るマージエンジンを描いている。マージエンジン（システムとも言及される）は、重複評価モジュール１０１０、マトリクススコアモジュール１０２０、１以上のマトリクステーブル１０３０、マップ（またはリンク）モジュール１０４０、マージルールモジュール１０５０及びマージ出力モジュール１０６０を含む。モジュール１０１０，１０２０，１０３０，１０４０，１０５０，１０６０は、ソフトウェア、ハードウェア、又は、それらの組み合わせによって実現され、互いに通信可能に接続される。
【０１２６】
重複評価モジュール１０１０は、セット間の重複（duplicate）を同定及びグループ化するべく、異なるセットにおける情報を処理するために構成される。例えば、ＰＩＭアドレス帳８４２においては、重複評価モジュール１０１０は、２つのフォルダのアドレス帳エントリーを処理し、これらフォルダの重複を同定及びグループ化する。
【０１２７】
マトリクススコアモジュール１０２０は、重複情報の各グループのために、各セット内の重複エントリー間のマッチスコアのマトリクスを構築するために構成される。このマトリクスは、マトリクステーブル１０３０に記憶される。例えば、ＰＩＭアドレス帳８４２においては、マトリクススコアモジュール１０２０は、重複エントリーの各グループのために、これらエントリー間のマッチスコアのマトリクスを構築する。マッチスコアは、例えば、片方の側の第１のフォルダからの重複エントリー及び別の側の第２のフォルダからの重複エントリーをもつマトリクステーブル１０３０に記憶される。
【０１２８】
マッチスコアは、マトリックスの両側からの２つのエントリーの潜在的マージの結果であるスコアを含むことに留意されたい。マトリックステーブルの一例は下記の如くである。
フォルダ１＝重複エントリーＡ，Ｂ，Ｃ
フォルダ２＝重複エントリーＤ，Ｅ，Ｆ
各エントリーはマッチする独特の識別子を含む。例えば、電子メールアドレス
【表１】
2007524927.tif 000002
スコアはアカウント要素に加えるアルゴリズムにより評価されるもので、アカウント要素には、例えば、正確な（例えば、同一ロケーションの同一データ）マッチデータフィールド数、安全に（例えば以前のデータを上書きすることなく）満たされうるフィールド数、完全に失われた（例えば上書きされた場合に）データの総量、及び、不適切なデータフィールド（例えば見つけ難いデータフィールド）に移されるデータの総量が含まれる。更に、使用される各要素は、スコア付けに関して異なる量で重み付けされ、また、スコアは、評価に使用される値を供給するマトリクススコアモジュール１０２０によって何らかの手法（例えば、加算、乗算、加算・減算の組み合わせなど）で結合されてよい。別の例では、ペアリングが他のメカニズムを介して構成されてよい。例えば、ドメインエキスパートが構成（又はアルゴリズム）が作成され、これら構成を介して達成するマッチスコアに基づくエントリーの理想的なペアリングを見つけるようにしてもよい。これらの構成において、重複エントリーのペアリングは、重複間で情報の損失の最小量になるような方法で行われる。
【０１２９】
マップモジュール１０４０は２以上の情報のセットをリンクするために構成されている。例えば、ＰＩＭアドレス帳８４２においては、２以上の連絡先情報のフォルダが、これらフォルダ内の現在及び未来の連絡先エントリーのマージのために、マップモジュール１０４０によってリンクされる。マップモジュール１０４０は、同期化エンジンのマップモジュール７４０と機能的に同様に構成及び／又は結合されうることに留意されたい。
【０１３０】
マージルールモジュール１０５０は、マージにおける競合解決のイベントにおいてデータがいかに扱われるかについてのポリシー（又はルール）を提供している。例えば、前記ポリシーは、最先入力されたデータを最も適切なものとして用いること、或るアドレス帳の或るオーナーによって入力されたデータのみを最も適切なものとして用いること、あるいは、マージされている各エントリーにおいて最先には入力されていなかった情報で埋めることを含む。マージルールモジュール１０５０は、同期化エンジンの同期化ルールモジュール１０５０と機能的に同様に構成及び／又は結合されうる。マージ出力モジュールは、マージからの１つのエントリー又は情報の２以上のエントリーを出力するために構成される。
【０１３１】
次に図１１ａ〜１１ｃを見ると、この発明の一実施例に係る情報マージのための処理が描かれている。図１１ａはマージ処理の概観であり、図１１ｂや図１１ｃを参照しながら説明されるだろう。マージ処理は、例えば、１以上のＰＩＭアドレス帳８４２，８４７（それぞれＰＩＭ１２２があるクライアントシステム１１６のもの）とサーバシステム１１２のデータベース１１４のユニバーサルアドレス帳８５０の同期化処理の最中に実行されるものである。一例として、理解を容易にするために、マージ処理は、２つのフォルダのマージ処理、例えば装置ＡのＰＩＭアドレス帳８４２のフォルダＡと装置ＢのＰＩＭアドレス帳８４７のフォルダＢとをユニバーサルアドレス帳８５０の１つのアドレス帳へマージ処理として説明する。
【０１３２】
図１１ａ〜１１ｃに戻ると、図１１ａにおいて、プロセス１１１０においてＰＩＭアドレス帳エントリーを処理することで処理が開始する。処理には、プロセス１１１５での重複を特定し、該重複をグループ化する処理が含まれる。図１１ｂは重複を特定する処理が描かれている。処理が開始し、マッチングのために独特の識別子例えば８６０を特定する。例えば、このＰＩＭアドレス帳の例では、独特の識別子は電子メールアドレスである。それから、処理はプロセス１１６０においてその電子メールアドレスに関係するマッチングがあるか判断する。１つのエントリー内のいずれかの電子メールアドレスが１以上の他のエントリー内のいずれかの電子メールアドレスにマッチしていれば、これらエントリーは重複されるべきものとみなされる。どちらのエントリーにも当該電子メールアドレスが含まれないならば、個人名、会社名、電話番号などを含む他のデータフィールドの識別子が比較のために使用される。マッチが特定されたら、これら重複エントリーは、結局、プロセス１１６５においてマトリクススコアリングのために処理され、そしてプロセス１１７０にて処理は終了する。
【０１３３】
図１１ａに戻ると、プロセス１１２０において重複エントリーの各グループのためのマッチスコアのマトリクスを構築する処理が行われる。マトリクスにおいて、一方の側には、フォルダＡのエントリーが含まれており、他方の側にはフォルダＢのエントリーが含まれる。各マトリクスのエントリーはこれら２つのエントリー両方のマージングのスコアを表している。スコアはエントリーをマッチすること更にはマージすることに使用すべく用意されている。
【０１３４】
マッチスコアは、例えば、他の文字記号乃至数字で表わしたスコアを引き継ぐ一定の文字記号のごとき値に基づいている。図１１ｃは、マトリクスを用いたマッチスコアの判定／計算のための処理を描いている。プロセス１１７５において処理が開始し、ステップ１１８０においてマトリックス内でスコアリングパラメータ（又は要素）を特定する。前述の通り、要素の例としては例えば、正確な（例えば、同一ロケーションの同一データ）マッチデータフィールド数、安全に満たされうるフィールド数、完全に失われたデータの総量、及び、不適切なデータフィールドに移されるデータの総量が含まれる。更に加えて、各要素は、最終的なスコアを決定する際に異なる重み付けが割り当てられる。
【０１３５】
プロセス１１８５においてマトリクスエントリーを含むスコアを計算することで処理が行われる。スコアは、マトリクスエントリーの重み付けされたスコアの合計であってよい。別の例としては、スコアは、各マトリクスエントリーのための数値を抽出することを用いた数学的組み合わせの結果であってもよい。
【０１３６】
図１１ａに戻ると、プロセス１１２５において、マッチのスコアの合計を最小化するためにエントリーがマッチされる。一例として、エントリーは、全てのマッチが形成されるまで最も値が高い（最低の）スコアを排除することによりマッチされる。マッチが形成されたら、プロセス１１４０で処理が終わる前に、プロセス１１３０においてエントリーが互いにマージされる。
【０１３７】
一例として、マージすることは、マージルールモジュール１０５０のポリシーを使用することを含む。図１２はこの発明に係るマージに関連する情報競合の解決のための一例を描いている。例えば、マージを要する重複エントリーが持つ１つのコピーをゴールデン（マスター）コピー、そしてその他をプロバイディング（又はスレーブ）コピーとみなす。ここにおいて、情報は、認定マスター１２０５、タイミング１２１５（例えば最先使用された）、認定オーナー１２２０（例えばアドレス帳のオーナーが決定する）に基づきマージされ、認定サーバ１２２５（例えばサーバのエントリーが使用された）或いはオーバーライド１２３０（例えばメンバーはいずれかの競合解決のセットアップをオーバーライドすることができる）。
【０１３８】
マージにおける解決のための同様な別のルールには初期設定ポリシーが含まれており、それは、２つのエントリーのうち１つが受け入れられた情報を持っており、そして、取り除かれる他のエントリーの情報は同じタイプの他のデータフィールドに動かされる（例えば、家庭電話から家庭電話２へ）、というものである。別のポリシーとしては、競合を処理し、いずれを受け入れ或いはディスカードするかを決定するメンバー１０４を持つことを含む。
【０１３９】
この発明は、好ましくは、たとえ２以上のフォルダ及び／又はエントリー間の情報が異なっていても、互いにマージされるべき２以上のフォルダ及び／又はエントリーからフォルダ又はエントリーの１つのセットを作るような方法でデータをマージする。この発明は、また、マージのためのフォルダマッピングによるメンバー１０４の介入を最小限にして、そのときにフォルダ内の情報をマージするために予め定められたマージポリシーを使用するような方法でのマージ処理の自動化を好ましく可能とするであろう。更に、この発明は、好ましくは、競合の数を最小かするようマージされるべきエントリーのインテリジェントなマッチングによって実行される必要があるマージすることの総量を最小化する。
【０１４０】
実例による同期化とマージ
図１３は、この発明に係る同期化及びマージ処理の最中及び後における装置間のアドレス情報のセットの別の例を示している。この例において、装置ＡのＰＩＭアドレス帳８４２、装置ＢのＰＩＭアドレス帳８４７、及び、ユニバーサルアドレス帳８５０（プライベートネットワーク１００のプライベートネットワークサービスの一部）の各々は、３つのフォルダを含む。この例では、装置ＡのＰＩＭアドレス帳８４２はフォルダＡ，フォルダＢ及びフォルダＣを持つ。フォルダＡは装置ＢのＰＩＭアドレス帳８４７及びユニバーサルアドレス帳８５０と完全に同期化されている。フォルダＢは装置ＢのＰＩＭアドレス帳８４７及びユニバーサルアドレス帳８５０と部分的に同期化されている。フォルダＣは装置ＢのＰＩＭアドレス帳８４７及びユニバーサルアドレス帳８５０と同期化されていない。更に、装置ＢのＰＩＭアドレス帳８４７のフォルダＤはユニバーサルアドレス帳８５０とのみ同期化されている。
【０１４１】
アドレス帳８４２，８４７，８５０が処理への準備ができているならば、同期化エンジンは同期化し、アドレス帳の組み合わせ又はフォルダの組み合わせは同期化のためにマップ又はリンクされる。同期化エンジンは、また、細かなレベル例えば、エントリー毎及び／又はサブフォルダ（フォルダ内のセット）で、エントリーを互いにマッピング又はリンクすることにより、フォルダを同期化するよう構成されている。これゆえ、フォルダＡは全ての３つのアドレス帳で同期化されているのに対して、フォルダＢは３つのアドレス帳で部分的にしか同期化されていない。更に、フォルダＤは、装置ＢのＰＩＭアドレス帳８４７とユニバーサルアドレス帳８５０でリンク及び同期化されるのみである。マッピングに関して、フォルダ（又はそれらのサブセット）は、典型的には不変であるところの独特の識別子を通じて互いにリンクされていることを再び注記したい。
【０１４２】
マージエンジンはリンクされたフォルダの重複及び各アドレス帳のエントリーを１つのエントリー内にマージする。これゆえ、与えられた例では、フォルダＡは、エントリーとサブフォルダを持っており、それらはわずかに異なっているもので（例えば、データフィールド８７５は１つのエントリーで空いているけれども、別のエントリーでは埋まっていたり、或いは、データフィールドはただわずかに異なっているだけのものであるが、両方のデータフィールド（又はそこにおける要素）を含むようマージされたエントリーに空間を持つ）、それらは１つのエントリーを形成すべく互いにマージされる。したがって、置ＡのＰＩＭアドレス帳８４２内のフォルダＡは、エントリーのマージ後には、装置ＢのＰＩＭアドレス帳８４７及びユニバーサルアドレス帳８５０にわたって、同じ情報を含むのである。
【０１４３】
この発明は、好ましくは、ネットワーク上の装置間の情報を同期化するための同期化及びマージエンジンのために提供される。前記情報は、種々の階層においてれ、予め選択された或いは選択された競合解決メカニズムのうちの何らかの一つを用いて同期化される。この発明は、好ましくは、たとえ２以上のフォルダ及び／又はエントリー間の情報が異なっていても、互いにマージされるべき２以上のフォルダ及び／又はエントリーからフォルダ又はエントリーの１つのセットを作るような方法でデータをマージする。この発明は、また、ユーザ又はメンバー１０４からの介入を最小限にするような方法での同期化及びマージ処理の自動化を好ましく可能とする。
【０１４４】
本明細書を読むことに関して、当業者は、この発明の明らかにされた原則に係るプライベートネットワークシステムにおけるシンクロナス又はアシンクロナスな情報を同期化及びマージするためのシステム及び処理のための、更に付加的な別の構造的及び機能的な構成を認めうる。したがって、この発明の個々の実施形態及びアプリケーションが描かれ又詳述されてはいるが、ここに示されたものと寸分たがわない構成及び内容にのみ限定されるものではないこと、また、当業者にとって明白なものであるところの種々の変形、変更、及び、バリエーションは、添付の請求項に定義された本発明の思想及び範囲から外れない限り、ここに示された本発明の配置、作用、及び、方法及び装置の細部によって作られているものであろうことは理解されたい。
【図面の簡単な説明】
【０１４５】
【図１】この発明に係るネットワークシステムの一実施形態の一例を示す図。
【図２ａ】この発明に係る論理的ネットワーク環境の一実施例を示す図。
【図２ｂ】この発明に係る構成的ネットワーク環境の一実施例を示す図。
【図３ａ】この発明の一実施例に係るプライベートネットワーク拡張処理のフローチャート。
【図３ｂ】この発明の一実施例に係る非対称動作を描くための方法の一例のイベントダイアグラム。
【図４】この発明の一実施例に係るネットワークのバイラルな拡張のステージを示す図。
【図５】この発明に係る同期化エンジン（又はシステム）を介した同期化のための物理的及び論理的装置の一例を示す図。
【図６】この発明に係る同期化及び／又はマージのためのフォルダの一例を示す図。
【図７】この発明の一実施例に係る同期化エンジンの一例を示す図。
【図８ａ】この発明に係る同期化のための階層組成の論理的見取り図。
【図８ｂ】この発明に係る同期化の論理的見取り図。
【図８ｃ】この発明に係る連絡先カードの論理的見取り図。
【図９ａ】この発明の一実施例に係る同期化処理例を示すフロー図。
【図９ｂ】この発明の一実施例に係る同期化処理例を示すフロー図。
【図１０】この発明の一実施例に係るマージエンジン。
【図１１ａ】この発明の一実施例に係る情報のマージ処理例を示すフロー図。
【図１１ｂ】この発明の一実施例に係る情報のマージ処理例を示すフロー図。
【図１１ｃ】この発明の一実施例に係る情報のマージ処理例を示すフロー図。
【図１２】この発明に係る情報の競合解決の一例を示す図。
【図１３】この発明に係る装置間のアドレス情報の同期化とマージの一例の一例を示す図。
【図１】
2007524927.tif 000003
【図２ａ】
2007524927.tif 000004
【図２ｂ】
2007524927.tif 000005
【図３ａ】
2007524927.tif 000006
【図３ｂ】
2007524927.tif 000007
【図４】
2007524927.tif 000008
【図５】
2007524927.tif 000009
【図６】
2007524927.tif 000010
【図７】
2007524927.tif 000011
【図８ａ】
2007524927.tif 000012
【図８ｂ】
2007524927.tif 000013
【図８ｃ】
2007524927.tif 000014
【図９ａ】
2007524927.tif 000015
【図９ｂ】
2007524927.tif 000016
【図１０】
2007524927.tif 000017
【図１１ａ】
2007524927.tif 000018
【図１１ｂ】
2007524927.tif 000019
【図１１ｃ】
2007524927.tif 000020
【図１２】
2007524927.tif 000021
【図１３】
2007524927.tif 000022