私は、中心にかなり複雑な (ただし、10,00 個のオブジェクトという大規模ではない) オブジェクト モデルを持つクライアント/サーバー アプリケーションを構築しています。複数のクライアントが (Eclipse RCP GUI を介して) モデルを表示する必要がありますが、サーバーはモデルを直接編集できる唯一のノードになります。モデルの編集内容をクライアントに公開したいと考えています。新しいクライアントは、モデルをリクエストし、更新を登録できます。
これはかなり標準的な Model-View-Controller パターンです。
オブジェクト モデルの配布と、モデルへの変更の配布を処理する、優れたオープン ソースのレプリケート キャッシュ ソリューションを提案できる人はいますか? 1 つのフィールドが変更されるたびに完全なモデルを送信するのではなく、「デルタ」をクライアントに送信する必要があります。
また、オブジェクト グラフを複製し、一貫性を維持できるようにする必要があります。たとえば、'Person' オブジェクトがある場合:
public class Person implements Serializable {
private Person manager;
private String name;
public Person (Person manager, String name) {
キャッシュに 3 人を追加:
Person boss = new Person(null,"TheBoss");
Person employee1 = new Person(boss,"employee 1");
Person employee2 = new Person(boss,"employee 2");
cache.put(new Element("boss",boss)
cache.put(new Element("employee1",employee1)
cache.put(new Element("employee2",employee2)
そして、「上司の名前:
boss.setName("TheBossXX");
cache.put(new Element("boss",boss)
次のコードは、すべてのノードで「TheBossXX」を返すと予想されます。
Person e1 = (Person) cache.get("employee1").getValue()
Person b1 = e1.getManager()
LOG.info(b1.getName());
言い換えれば、どのオブジェクトが相互に参照しているかを認識し、すべてのノードでそれらの関係を維持するソリューションが必要です。
あなたの提案を聞くことに興味があります。
ニック