2013-03-09 2 views
1

Я хочу реализовать шаблон наблюдателя в распределенном приложении. То есть что-то происходит с базой данных в экземпляре приложения, и уведомление должно быть отправлено другому экземпляру через сокет, так что второй будет перезагружать данные из db. Должен ли я использовать:Java - Наблюдатель/Наблюдается в распределенном приложении?

а) наблюдатель/Наблюдаемые классы от Явы

б) подход на основе событий, что-то подобное, добавление прослушивателя событий при нажатии на кнопку, а затем отправить уведомление через сокет

) любые другие идеи/варианты

Я хотел бы знать, что является наиболее оптимальным подходом

PS Я работаю над swing-приложением, которое подключается к MySQL db. Все находится на localhost (не для производственных целей).

+1

Какая у вас платформа? Используете ли вы сервер приложений? Можете ли вы использовать JMS-сервер ...? –

+1

Если наблюдатель и наблюдаемый находятся в двух разных JVM и общаются через сокеты, как вы планируете добавить наблюдателя к наблюдаемому? Оптимальным подходом было бы использовать что-то вроде темы JMS. –

+0

@AmirPashazadeh просто добавил дополнительную информацию (пункт P.S.) – NiCU

ответ

2

Если вы привязаны к маршруту Socket, я бы рекомендовал создать другое приложение Java для работы в качестве сервера и брокера для управления трафиком соединения. В основном, это приложение создает ServerSocket и привязывается к порту. Затем все ваши существующие экземпляры JVM могут подключиться к нему клиентом. В основном архитектура мини-клиент-сервер. Когда сервер получает уведомления о событиях от любого клиента, он может повторно транслировать сообщение каждому другому клиенту.

Смежные вопросы