Какие есть варианты синхронизации обновлений базы данных между объектами, кэшированными в клиентских приложениях? - PullRequest
0 голосов
/ 17 апреля 2020

Я разрабатываю многопользовательское настольное приложение java (толстый клиент) в java с использованием JPA / Hibernate, чтобы упростить мой уровень сохраняемости данных. Источник всех обновлений, которые должны быть переданы другим клиентам, инициируется любым из клиентов. Клиенты получают доступ к различным глубоко иерархическим POJO через дерево SWING. Эти объекты нужно лениво загружать и «кэшировать» для работы с ними (маршалировать в POJO) и манипулировать ими в клиентском приложении. Затем изменения должны быть сохранены в БД и переданы другим клиентам в случае, если у них загружены те же объекты. Я пытаюсь избежать разработки системы блокировки с прямым управлением.

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

В моем новом приложении я стараюсь больше полагаться на существующие библиотеки с открытым исходным кодом (используя hibernate). Мне нужно решение, которое не зависит от базы данных (не зависит от пользовательских обработок БД) и разработано для удовлетворения потребностей, которые я описал.

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

Кажется, что описанные мной потребности не были бы новыми, но мне трудно найти четкое направление. Я ищу широко используемые, стандартные решения. Какие существующие технологии с открытым исходным кодом / бесплатные, на которые я должен обратить внимание, чтобы удовлетворить свои потребности (в идеале то, что уже работает с hibernate / JPA)?

Кроме того, ссылки на примеры также были бы хорошими (если доступны)!

Спасибо!

...