更新:あなたの編集に基づいて、私はデニMf氏のリンクがピアツーピアを機能させるための良い指針であると信じています。しかし、テクノロジーはまだ一般的に利用可能ではなく、おそらくサーバー、おそらくサードパーティ(Amazon S3および/または同様のサービス)と同期する方が良いと思います。Chromeにはすでにいくつかの同期サービスが組み込まれています-異なるコンピューターでChrome拡張機能データを同期するにはどうすればよいですか?-ただし、これは少量のデータにしか使用できないため、現実的には、他の場所でホストされている実際のデータへのポインターにしかなり得ません。
以下の元の答え:
あなたが理解する必要があるいくつかの側面があります。まず、「複数のコンピューター」とは、複数のコンピューターが同じサーバーのセットと通信していることを意味しますか、それともピアツーピアの意味で複数のコンピューターを意味しますか(各コンピューターはクライアントとサーバーの両方です) 。
次に、同期メカニズムとプロトコルが必要です。すべてが素晴らしく、誰もが本当の秘密や実行をせずに信頼されている場合、少なくとも2つの課題があります。ある種のプライベートネットワークでは、CouchDBなどのようなものを使用すると、すぐに使用できます(ただし、データに認証と承認を追加しようとするとすぐに困難になります)。そうでない場合は、自分でロールする必要があります。
クライアントが特定のサーバーセットと通信していると仮定し(HTTPなどを使用)、CouchDBまたは同様のものを使用できないと仮定すると(前の段落で述べた理由により)、独自のサーバーをローリングすることはそれほど難しくありません。データベース行(または同様のもの)は任意のクライアントまたはサーバーで作成できるため、従来のシリアル整数主キーを使用する価値はほとんどなく、一意のキーにはUUIDなどを使用する必要があります(各マシンが独自のキーを作成できるようにするため) -一意と見なされます-任意のオブジェクトのキー)。「更新された」タイムスタンプ(オブジェクトが作成または更新されたとき)を含む行ごとに少なくとも1つの列を追加し、最後の同期タイムスタンプを含む別のデータベースを追加します。クライアントが接続するときはいつでも、最後に接続してからの更新をサーバーに要求します。最後に接続してからローカルで作成した更新をサーバーに送信します。削除された行には「更新された」タイムスタンプがないため、行の削除などは少し注意が必要です。したがって、単純な「削除済み」フラグを各行に追加することを検討してください。
これは、少なくともあなたを動かすのに十分なはずです。