2016-12-27 2 views
0

Я пытаюсь написать приложение Java EE, в котором несколько клиентов совместно используют состояние экземпляра приложения, экземпляр может быть чем-то вроде документа. Подумайте, что такое Google Docs, где несколько пользователей редактируют один и тот же документ.Возможно создать многопользовательский/общий сеанс/экземпляр в Java EE?

Подход, который я делаю до сих пор, заключается в том, чтобы сохранить состояние в базе данных, используя Entity, с каждым изменением клиентом. При таком изменении я отправляю новое состояние другим клиентам, подключенным (подписываясь) к экземпляру.

Мое беспокойство с этим подходом заключается в том, что происходит, когда/если приложение масштабируется? На данный момент любое изменение регистрируется в БД, даже если оно выполняется на короткое время, например, быстрое изменение, которое переопределяется другим пользователем. Кроме того, информация, в которой пользователи подключены к экземпляру и истории изменений, хранится в БД. Для меня это кажется неэффективным, чтобы идти туда и обратно между БД.

С этим мои вопросы:

  • Могу ли я создать несколько экземпляров, который отдельные состояния, хранящиеся в EJB, или что-то другое?
  • Могу ли я иметь отдельные экземпляры в реальном времени до тех пор, пока есть пользователи, подключенные к этому экземпляру?
  • Могу ли я поделиться состоянием отдельного экземпляра между несколькими подключенными клиентами?
  • Могу ли я обнаружить, когда последний пользователь отключается от экземпляра, чтобы сохранить его окончательное состояние?

Вопросы могут быть большими, но меня интересуют, в каких концепциях в Java EE я должен смотреть?

+0

Я не могу ответить полностью, но может ли область применения использовать здесь? http://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html – DaveH

ответ

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