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