Russian Qt Forum

Программирование => Алгоритмы => Тема начата: Karl-Philipp от Август 31, 2009, 10:49



Название: создание алгоритма взаимодействия клиент-сервер
Отправлено: Karl-Philipp от Август 31, 2009, 10:49
Есть база данных, формирующаяся на клиенте.
Есть сервер, который примерно каждые 2 минуты обрабатывает эту базу.

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

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

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

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


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: lit-uriy от Август 31, 2009, 11:23
система "Клиент-сервер" - централизованная, в ней одна БД.

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


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: Karl-Philipp от Август 31, 2009, 11:34
система "Клиент-сервер" - централизованная, в ней одна БД.

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

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


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: MoPDoBoPoT от Август 31, 2009, 14:28
Почитай про "Распределенные Базы Данных (РБД)"


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: spectre71 от Сентябрь 03, 2009, 17:21
Есть база данных, формирующаяся на клиенте.
Есть сервер, который примерно каждые 2 минуты обрабатывает эту базу.

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

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

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

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

Это не задача! это уже твое представление как ее решать! Причем "похоже", далеко не оптимальное, в результате и проблемы!
Опиши Задачу!


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: Karl-Philipp от Сентябрь 03, 2009, 17:52
задача следующая: создать автоматизированный мониторинг данных на удалённом компьютере:

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

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

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

Почитал тут про распределенные базы данных и возникла идея создать подобное:
Скопировать базы на удалённый компьютер и отсылать туда же только запросы, которые изменяли бы содержание баз на филиалах. Что скажете?


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



Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: Karl-Philipp от Сентябрь 03, 2009, 19:47
неправильно понял! :)
удалённый компьютер создаётся только для выполнения анализа изменений, которые происходят в маганинах. Под анализом подразумевается обработка данных (например, привоз-продажа товара в разные филиалы в разное время и сравнение с данными, поступающими с других баз других филиалов магазинов).
Анализировать часто надо все таблицы базы каждого из филиалов периодически (каждые 2-10 минут). Напомню, что базы данных находятся на филиалах, там ведется учёт товара :)


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


Название: Re: создание алгоритма взаимодействия клие
Отправлено: Karl-Philipp от Сентябрь 03, 2009, 20:54
Ну, собственно да, спасибо, Spectre.

upd:
>> - Получайте от клиентов только новые данные(способ не важен).
Таки важен! В продолжение вопроса создаю тему (http://www.prog.org.ru/topic_10509_0.html)/


Название: Re: создание алгоритма взаимодействия клие
Отправлено: spectre71 от Сентябрь 05, 2009, 08:41
Ну, собственно да, спасибо, Spectre.

upd:
>> - Получайте от клиентов только новые данные(способ не важен).
Таки важен! В продолжение вопроса создаю тему (http://www.prog.org.ru/topic_10509_0.html)/
Под "способ не важен", подразумевалось любой удобный для вас(и ваших клиентов) способ.


Название: Re: создание алгоритма взаимодействия клиент-сервер
Отправлено: Wawan от Октябрь 12, 2009, 20:09
мне разработали crm систему (http://clientbase.ru) с учетом моих пожеланий и особенностей бизнеса.