Стратегия сетевого приложения., Помогите определиться, какой путь надежней. |
Здравствуйте, гость ( Вход | Регистрация )
Стратегия сетевого приложения., Помогите определиться, какой путь надежней. |
dzyk |
14.9.2008, 17:57
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 13.4.2008 Пользователь №: 148 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имеется приложение. Ядро - база данных SQLite(информация в таблицах изменяется 20-30 раз в день). Сейчас необходимо реализовать одновременное использование БД на нескольких компьюетрах "сети"(постоянных соединений нет, кто-то подключается, кто-то отключатеся, IP динамические, всего 5-6 машин).
Вот мои варианты. 1. Связать приложения по UDP и отсылать каждые х-минут контрольную сумму файла БД SQLite. Если не совпадает то коннект по TCP и клонирование самого свежего файла БД SQLite. 2. Поставить сервер MySQL|PostgreSQL|other (нереально, нет выделенного сервера) 3. Ваше предложение |
|
|
dzyk |
16.9.2008, 21:40
Сообщение
#2
|
Студент Группа: Участник Сообщений: 21 Регистрация: 13.4.2008 Пользователь №: 148 Спасибо сказали: 0 раз(а) Репутация: 0 |
разве есть такая возможность в БД, в частности в SQLite? Ну в файл то точно НЕТ. Вот пример триггера SQLite ( при каждом инсерте в таблицу people поля id,fio сохраняются в таблицу Log_table)
Осталось только включить фанатазию и написать алгоритм синхронизации между программами. Покритикуйте такой вариант: Запускается 1П, обращается в сеть. Если не находит другой П2 или Пх. То открывает свою БД и работает с ней как с "верной" БД. После этого запускается П2. видит П1 и запрашивает у нее "данные для синхронизации БД". Приводит свою БД2 в соответсвии с БД1. И спокойно работает. При этом все изменения в своей БД2 отсылаются в БД1. А изменения в БД1 (1П соотв) копируются в БД2. С инсертами проблем не будет, а вот апдейты строк нужно обрабатывать с учетом системного времени, которое на всех машинах(приложениях) сети должно быть синхронизировано. Это конечно самый ненадежный способ. А если кто-то работал в оффлайне и изменял свою БД? Алгоритм намного усложняется. |
|
|
Текстовая версия | Сейчас: 27.11.2024, 3:17 |