Одна база данных и много пользователей настольного приложения - PullRequest
4 голосов
/ 02 июля 2011

Я новичок в этой концепции, поэтому мне нужно руководство, что будет лучше использовать в следующем сценарии.

Я должен сделать настольное приложение, которое содержит множество функций, таких как parts Stock, Employees Data, Company Cars Data и т. Д. И т. Д.

Теперь проблема в том, что многие пользователи будут использовать приложение, а офисы находятся в разных городах, в которых установлено это приложение.

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

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

Любая помощь приветствуется

Ответы [ 2 ]

3 голосов
/ 02 июля 2011

Вы не будете постоянно перезагружать все свои данные; Здесь есть несколько общих подходов:

  • вести список изменений ; если вы добавляете новые данные, вы добавляете первичную запись данных и , вы записываете факт, что изменение произошло (по сути, список «событий»). Затем вы можете периодически запрашивать журнал изменений для получения и добавления / обновления / удаления, просто запрашивая все события после (x)
  • если позволяет инфраструктура, какая-то платформа pub / sub - тот же подход на самом деле, но обычно для изменений используется промежуточное программное обеспечение, а не основная БД

как вы получаете данные; опрос простой и эффективный; Активное нажатие сложнее в настройке, но может уменьшить задержку - не уверен, что оно того стоит

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

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

Попробуйте Cloud Computing и сохраните свои данные в облаке

ОК, пытаясь восстановить мои очки здесь после понижения.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...