Russian Qt Forum
Ноябрь 14, 2024, 09:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: создание алгоритма взаимодействия клиент-сервер  (Прочитано 10938 раз)
Karl-Philipp
Гость
« : Август 31, 2009, 10:49 »

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

Необходимо создать алгоритм взаимодействия клиент-сервер для данной ситуации.

Как я себе это представляю.

С самого начала работы системы база данных копируется на сервер. Когда на клиенской БД происходят изменения, они должны быть отправлены на сервер для синхронизации с серверной БД и последующей обработки.

Попутно возник дополнительный вопрос:
Как лучше синхронизировать данные с сервером? Отсылать запросы?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Август 31, 2009, 11:23 »

система "Клиент-сервер" - централизованная, в ней одна БД.

Ты уверен, что тебе децентрализованная система нужна?
Записан

Юра.
Karl-Philipp
Гость
« Ответ #2 : Август 31, 2009, 11:34 »

система "Клиент-сервер" - централизованная, в ней одна БД.

Ты уверен, что тебе децентрализованная система нужна?
да, попутал на счёт системы клиент-сервер  В замешательстве

На счет децентрализированной системы: возможна ситуация, когда не будет соединения с Интернетом, а изменения в базе (на клиенте) должны происходить. Поэтому и была выбрана предложенная мною схема работы.
Записан
MoPDoBoPoT
Гость
« Ответ #3 : Август 31, 2009, 14:28 »

Почитай про "Распределенные Базы Данных (РБД)"
Записан
spectre71
Гость
« Ответ #4 : Сентябрь 03, 2009, 17:21 »

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

Необходимо создать алгоритм взаимодействия клиент-сервер для данной ситуации.

Как я себе это представляю.

С самого начала работы системы база данных копируется на сервер. Когда на клиенской БД происходят изменения, они должны быть отправлены на сервер для синхронизации с серверной БД и последующей обработки.

Попутно возник дополнительный вопрос:
Как лучше синхронизировать данные с сервером? Отсылать запросы?

Это не задача! это уже твое представление как ее решать! Причем "похоже", далеко не оптимальное, в результате и проблемы!
Опиши Задачу!
Записан
Karl-Philipp
Гость
« Ответ #5 : Сентябрь 03, 2009, 17:52 »

задача следующая: создать автоматизированный мониторинг данных на удалённом компьютере:

На филиалах магазина есть базы данных. Эти базы должны периодически отправляться на удалённый компьютер с помощью Интернета. В базе данных 5 таблиц. Все таблицы будут содержать поля типа INTEGER. В каждой таблице примерно пять полей. 4 из 5 таблиц будут содержать до сотни записей, а в одной может быть до 100.000 записей. выходит, что 5 полей х 100.000 записей х 4 (байта размер integer) ~ 2 млн байт ~ 2 Мб.

Расстояние до удалённого компьютера будет различное - от нескольких километров до двух тысяч.

на удалённый компьютер будут передаваться около 10 баз данных из 10 мест каждые 2-10 минут (так как в основной таблице может меняется до тысячи записей). Имеется двухмегабитный канал.

Почитал тут про распределенные базы данных и возникла идея создать подобное:
Скопировать базы на удалённый компьютер и отсылать туда же только запросы, которые изменяли бы содержание баз на филиалах. Что скажете?
Записан
spectre71
Гость
« Ответ #6 : Сентябрь 03, 2009, 18:50 »

...
Скопировать базы на удалённый компьютер и отсылать туда же только запросы, которые изменяли бы содержание баз на филиалах. Что скажете?
Если правильно понял. Улыбающийся
1) База должна быть одна! - на серваке.
2) Клиенты(магазины) посылают запросы для каждой операции непосредственно к серваку(канал это позволяет).
3) В экстримальной ситуации(обрыв связи), клиенты создают временную базу транзакций, которую отправляют сразу, как только связь восстановлена. Если требуется поддержка базы на клиентах(содержать информацию о работе магизина непосредственно в нем) то, необходима "темпоральная" поддержка, в данном случае таблица(ы) с ID тех таблиц/записей(транзакций), которые еще не отправлены на сервер.

Записан
Karl-Philipp
Гость
« Ответ #7 : Сентябрь 03, 2009, 19:47 »

неправильно понял! Улыбающийся
удалённый компьютер создаётся только для выполнения анализа изменений, которые происходят в маганинах. Под анализом подразумевается обработка данных (например, привоз-продажа товара в разные филиалы в разное время и сравнение с данными, поступающими с других баз других филиалов магазинов).
Анализировать часто надо все таблицы базы каждого из филиалов периодически (каждые 2-10 минут). Напомню, что базы данных находятся на филиалах, там ведется учёт товара Улыбающийся
Записан
spectre71
Гость
« Ответ #8 : Сентябрь 03, 2009, 20:39 »

неправильно понял! Улыбающийся
удалённый компьютер создаётся только для выполнения анализа изменений, которые происходят в маганинах. Под анализом подразумевается обработка данных (например, привоз-продажа товара в разные филиалы в разное время и сравнение с данными, поступающими с других баз других филиалов магазинов).
Анализировать часто надо все таблицы базы каждого из филиалов периодически (каждые 2-10 минут). Напомню, что базы данных находятся на филиалах, там ведется учёт товара Улыбающийся
Ну и что это меняет?
- Держите общую базу на сервере.
- Выполняете необходимые запросы к ней(на сервере) и обрабатывайте результаты. Устаревшие данные с сервера можно удалять(если требуется)
- Получайте от клиентов только новые данные(способ не важен). Клиенты отпраляют только обновление.
- Про экстримальную ситуацию для клиентов я писал.
Записан
Karl-Philipp
Гость
« Ответ #9 : Сентябрь 03, 2009, 20:54 »

Ну, собственно да, спасибо, Spectre.

upd:
>> - Получайте от клиентов только новые данные(способ не важен).
Таки важен! В продолжение вопроса создаю тему/
« Последнее редактирование: Сентябрь 03, 2009, 22:33 от terlan » Записан
spectre71
Гость
« Ответ #10 : Сентябрь 05, 2009, 08:41 »

Ну, собственно да, спасибо, Spectre.

upd:
>> - Получайте от клиентов только новые данные(способ не важен).
Таки важен! В продолжение вопроса создаю тему/
Под "способ не важен", подразумевалось любой удобный для вас(и ваших клиентов) способ.
Записан
Wawan
Гость
« Ответ #11 : Октябрь 12, 2009, 20:09 »

мне разработали crm систему с учетом моих пожеланий и особенностей бизнеса.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.112 секунд. Запросов: 23.