Мониторинг изменений бина для построения дельт? - PullRequest
2 голосов
/ 05 октября 2009

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

Есть ли уже решение этой проблемы? И если нет, то как я могу легко контролировать эти изменения состояния в обобщенном виде? АОП?

Редактировать: Эта проблема не связана с кэшированием, даже если это может показаться на первый взгляд. Данные должны быть реплицированы с центрального сервера на нескольких клиентов (примерно от 4 до 10) через Интернет. Клиент является автономным настольным приложением.

Ответы [ 2 ]

1 голос
/ 05 октября 2009

Звучит очень похоже на JBossCache , работающий в режиме POJO .

Это распределенный кэш на основе дельты, который разбивает java-объекты на древовидную структуру и передает только изменения в битах изменяющегося дерева.

Идеально подходит для вас.

0 голосов
/ 05 октября 2009

Мне нравится ваша идея создания дельт и отправки их.

Простая Карта может обрабатывать дельту для одного объекта. Сериализация может просто дать вам эффективную отправку сообщения.

Чтобы уменьшить количество сообщений , которые могут снизить производительность, вы должны сгруппировать дельты для всех объектов и отправить их целиком Таким образом, у вас могут быть другие коллекции или карты, содержащие это.

Для отслеживания всех изменений многих bean-компонентов AOP кажется хорошим решением .


РЕДАКТИРОВАТЬ: см. Ответ Скаффмана.

Использование существующей технологии кэширования может быть лучше. Многие проблемы уже могут иметь реализованные решения ...

...