Я создаю клиент/серверное приложение, которое будет иметь довольно сложную (но не большую - 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