Технологии, позволяющие хранить пользовательские данные как на сервере, так и на ПК пользователя? - PullRequest
0 голосов
/ 25 января 2011

Позвольте мне сначала лучше объяснить контекст. Приложение должно иметь следующие характеристики:

  • На сервере базы данных в Интернете обнаружены общие данные только для чтения. (Довольно большой объем общих данных.)
  • Приложение должно распространяться в стиле Java-Web-Start или быть веб-приложением. (Цель состоит в том, чтобы упростить распространение основного пакета и обновлений. Предпочтительными являются решения, снижающие нагрузку на сервер и повышающие скорость отклика конечного пользователя.)
  • Должна быть предусмотрена возможность хранения пользовательских данных только на сервере, только на ПК пользователя или на обоих. (Причина этого заключается в том, что большинство пользователей не захотят рисковать хранением информации на своем ПК, но некоторые из них захотят поделиться ее частью или сделать резервные копии.)

Я не очень разбираюсь в программировании веб-приложений. Единственная технология, которая, как мне известно, позволяет делать все это, - Java Web Start. Он снимает нагрузку с сервера, так как большинство вычислений выполняется на стороне пользователя, позволяет выполнять чтение / запись на ПК пользователя (при наличии доступа), а доступ к централизованной базе данных не является для него проблемой.

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

Большое спасибо,

MJ

1 Ответ

0 голосов
/ 25 января 2011

Это действительно зависит:

  • Объем, размер, сложность модели данных / данных,
  • частота, срочность обновлений,
  • доступное соединение (онлайн 24/7 или время от времени подключено против ночного сеанса синхронизации) и пропускная способность,
  • существующие механизмы хранения данных,
  • количество программного обеспечения, которое вы можете / можете / хотите установить на клиентах,
  • доступный бюджет,
  • допустимое время разработки
  • ресурсы и организация, доступные для работы системы
  • план жизненного цикла (ожидаемый срок службы) системы,
  • значимость миссии (критически важная система, которая может убить жизни против «просто» информационной системы менеджера)

- это все факторы, которые вы должны упомянуть или хотя бы оценить. В зависимости от этих аспектов решение может варьироваться от «дешевого» веб-сервиса и плоских файлов, синхронизируемых посредством тривиального кода Java, до полностью плоской распределенной базы данных.

Несколько лет назад я обнаружил, что Sybase SQL Anywhere является хорошим решением для небольших и средних требований и бюджетов, если требуется «настоящая» СУБД SQL или она уже присутствует на серверной стороне сервера. Он предлагает мощную, но прозрачную (при разумном использовании) методологию публикации и подписки на уровне SQL, которая работает хорошо, если вы не можете быть уверены, что все клиенты в сети 24/7.

Для онлайновых (или почти онлайн) полноценных решений Oracle предлагает варианты репликации базы данных в Интернете, которые, однако, довольно дороги.

Для небольших решений пользовательский код Java, обращающийся к удаленным ссылкам базы данных (функция Oracle), обычно работает, но поиск узких мест в производительности может быть кошмаром. (И вам требуются стабильные сетевые ссылки и «настоящая» база данных Oracle на всех узлах.)

...