crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> SQLite и Сеть, Выполнение запросов и приём строк таблиц по сети...
512es
  опции профиля:
сообщение 1.12.2010, 3:22
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Всем привет!

Есть задача синхронизации 2-х баз через интернет.
В основном атомарные селекты, построчно. Через ооочень плохой интернет.
Список строк, которые нужно обновить, получаю сравнением таблиц хешей в базах.
Собираюсь писать клиент и сервер.


Как лучше пересылать строки таблиц?

Знаю несколько вариантов:
1) QTcpServer + QDataStream (свой протокол)
2) QTcpServer + QtXml
3) RPC (QxtXmlRpc или qxmlrpc)
4) QHttp (get. post)

В целом, последовательность действий будет такова:
1) Запрос, 1 строка переменной длинны (удастся ли обойтись без QSqlQuery::prepare() ??)
2) Ответ, 1 строка таблицы переменной длинны и количества столбов или result

Кроме того, в пакеты собираюсь встраивать хеш, чтобы исключить 99.9% ошибок. А так же, сжимать их посильнее (zlib или арифметическим кодированием). Ну и ssl тоже не помешал бы..)

Вообще, в QDataStream можно легко построить нужный пакет и залить в него строку.
Но придумывать протокол лениво немного))
С другой стороны, в чужом коде копаться тоже не охота..
А с хмлом, честно сказать, как следует знаком не был.

В целом, задумка попахивает попыткой написания сервера склайта. Отправлять запросы, принимать строки таблиц. Упор на проверку ошибок пакетов.

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

Посоветуйте что нибудь.)
Если можно, с простенькими примерами, дабы сравнить способы.

Сообщение отредактировал 512es - 1.12.2010, 3:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 24.4.2011, 6:45
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Использую "1) QTcpServer + QDataStream (свой протокол)". Немного не устраивает скорость передачи. На получение таблицы из 100 записей уходит приличное ко-во времени (порядка 5 секунд).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.5.2011, 13:07
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2752
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 189 раз(а)




Репутация:   34  


silver47, а объём памяти, занятой теми записями, какой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.5.2011, 16:01
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2752
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 189 раз(а)




Репутация:   34  


вариант QTcpServer + QtXml тоже хорош в плане гибкости. А сам XML перед пересылкой можно хорошо пожать зипом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2017, 15:39