Механизм обслуживания при потере интернет-соединения с сервером приложений - PullRequest
0 голосов
/ 21 июля 2011

В настоящее время у нас есть централизованное веб-приложение и база данных (работающая на Glassfish и Oracle), доступ к которым осуществляется с нескольких станций, распределенных по стране.

На станциях есть данные, которые вводятся и считываются из системы (через браузер).

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

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

Ответы [ 3 ]

2 голосов
/ 21 июля 2011

Устанавливайте серверы в отдельных местах, реплицируйте то, что вы хотите разделить между ними, «регулярно» и оставляйте все другие централизованные, но не жизненно важные задачи (например, отчеты) в центральной системе.

Не существует готового решения.Ваша система централизована по любой причине.Вы просите, чтобы это было децентрализовано.Сделав это, вы должны пересмотреть, почему он в первую очередь централизован, и какие существуют зависимости из-за этой централизации (например, каждый сайт имеет мгновенный доступ к данным на всех других сайтах).

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

1 голос
/ 21 июля 2011

Если вы готовы идти в ногу со временем, посмотрите на HTML 5 с Local Storage . Обратите внимание, что спецификация локального хранилища в HTML 5 все еще находится на переходном этапе. Вторая ссылка, которую я включил, имеет хороший запасной вариант, когда локальное хранилище HTML 5 недоступно. С резервной опцией Store.js вам даже не нужно будет требовать, чтобы ваши клиенты использовали современный браузер, хотя это определенно помогает.

Другой вариант, если вы готовы двигаться в этом направлении, - это использовать Adobe Flex 3 для вашего пользовательского интерфейса, используя LiveCycle для вашего приложения, размещенного на Glassfish. Тем не менее, будет больше движущихся частей и более крутая кривая обучения.

1 голос
/ 21 июля 2011

Если вы можете терпеть потерю текущих сеансов, я бы указал вам на поиск распределенной базы данных (репликация). Oracle, вероятно, поддерживает это. В каждом офисе у вас есть сервер Glassfish

Но это будет стоить дорого:

  • Лицензия
  • Оборудование (серверы)
  • Правильная защита сервера
  • (много) настройка / переписывание, чтобы избежать новых узких мест

Возможно, было бы проще / дешевле, если бы вы решили использовать избыточный доступ в Интернет для всех ваших офисов.

...