2011-02-09 2 views
0

Я создаю клиент/серверное приложение, которое будет иметь довольно сложную (но не большую - 10 000 объектов) объектную модель в ее основе. Многим клиентам необходимо будет просмотреть модель (через Eclipse RCP GUI), но сервер будет единственным узлом, который может напрямую редактировать модель. Я хочу, чтобы изменения были опубликованы для клиентов. Новые клиенты смогут запросить модель и зарегистрироваться для получения обновлений.Глядя на решения распределенного кэша для реализации распределенного шаблона MVC

Его довольно стандартная модель Model-View-Controller действительно.

Может ли кто-нибудь предложить хорошие реплицированные решения с открытым исходным кодом, которые будут обрабатывать распределение моей объектной модели, а также распространять изменения в модели. Я хочу, чтобы «дельта» отправлялась клиентам, а не отправляла полную модель при каждом изменении одного поля.

Кроме того, мне нужно, чтобы иметь возможность копировать объектный граф и поддерживать согласованность, например, если у меня есть «лицо» объект:

public class Person implements Serializable { 
private Person manager; 
private String name; 

    public Person (Person manager, String name) { 

добавить три человека в мой кэш:

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()); 

Другими словами, я хочу, чтобы мое решение, чтобы узнать, какие объекты ссылаются друг на друга и поддерживают эти replationships на всех узлах.

Заинтересованы в том, чтобы услышать ваши предложения.

Nick

ответ