|
Эта
статья позволит ознакомится как просто перенести программу на Harboure в архитектуру клиент-сервер. Если вам нужно чтобы старые программы (Клипер или
Foxpro)
работали по архитектуре клиент-сервер,
то сначала нужно перенести программы на Harbour (такой перевод не особо сложен), а уже затем подключать базы (dbf-файлы) к Серверу Баз – LetoDb. Cервер баз LetoDb является свободным программным обеспечением. |
Для
начала ознакомтесь со статьёй разработчика - http://www.kresin.ru/letodb.html
Скачать дистрибутивы и ознакомиться с инструкциями установки, работы и
настройкой можно там же, на странице автора.
Для
помощи по работе с сервером – LetoDb
обращайтесь на форум - http://clipper.borda.ru/?0-7
Порядок
перехода не сложен. Примерно несколько шагов:
1)
Скачать нужный
дистрибутив под нужную платформу (Windows/Linux)
2)
Собрать сервер LetoDb+библиотеки,
запустить сервер и настроить каталоги к вашим базам
3)
Внести
минимальные правки в вашу программу:
А) прилинковать
библиотеку rddleto к своему
приложению
Б) добавить в начале
своей программы две строки:
REQUEST
LETO
RDDSETDEFAULT( "LETO" )
С) открытие баз в программе.
Например, если необходимо открыть файл
test.dbf, который расположен на сервере 192.168.5.22 в каталоге
/data/mydir и значение параметра
'DataPath' ( в файле конфигурации
сервере letodb.ini ) '/data', синтаксис
должен быть таким:
cAddress :=
"//192.168.5.22:2812/mydir/"
If leto_Connect( cAddress
) = = -1
Alert( "Can't
connect to server ..." )
Else
USE (cAddress +
"test.dbf") NEW
Endif
И ВСЁ !!! Ваши программы получают все плюсы архитектуры клиент-сервер ! |
Для тестирования работы с
сервером LetoDb были сделаны тестовые программы на MiniGui:
Алгоритм простой - выборка из
базы по SEEK и суммирование по 7 полям и запись этих 7 полей в локальную базу
на компе пользователя. Итого 13 раз нужно просчитать по базе.
База 1 000 000 записей с
мемо-полями, примерно 1,2 Гб
Расчет по простому индексу 13
позиций:
Тип доступа к базе |
Время (чч:мм:сс) |
|
1) локальная DBFCDX |
00:00:06 |
|
2) локальная LetoDB |
00:00:09 |
|
3) интернет LetoDB |
00:11:32 |
в зависимости от скорости интернета |
Посчитать таблицу в своей
программе - миллион записей из базы DBF, которая находиться неизвестно где (на
просторах интернета) за 11 мин. (без переделки алгоритма, т.е. используя старый
код программы) - это просто отлично !
ВНИМАНИЕ ! На сервере LetoDb можно делать выполнение
своего кода программы, тогда скорость выполнения запросов/расчётов ускоряется
в разы ! |
Сделал отдельный тест (см.пример LetoDB_2a.7z). Расчет такой же,
но выполняется уже
на сервере Leto DB Server
v.2.15b3m1 (модификация b3m1):
Тип доступа к базе |
Время (чч:мм:сс) |
|
4) интернет LetoDB |
00:00:08 |
в зависимости от скорости интернета |
Т.е. за 8 сек сервер Leto DB обрабатывает 1 млн.
записей по заданному алгоритму.
Вывод: связка Harbour +
LetoDB + MiniGui - отличная платформа для переделки старых программ или
написания новых программ.
Для сравнения работы сервера LetoDb
и PostgreSql были сделаны простые
тестовые программы на MiniGui, отправка dbf-файла на сервера LetoDb и PostgreSql расположенные
в интернете.
|
LetoDb - отправка по 1000 записей за 1 транзакцию, |
|
PostgreSql - отправка всех записей за 1 транзакцию, |
Система CentOS, 1Gb ОЗУ, 2Gb HDD
Файл: 16 Мб,
20 полей, 10 000 записей |
||
LetoDb ver 2.15 |
15 транзакции |
время копирования на сервер
00:04 (сек.) |
PostgreSql ver 9.4.7 |
1 транзакция |
время копирования на сервер
00:08 (сек.) |
Файл: 158 Мб,
20 полей, 100 000 записей |
||
LetoDb ver 2.15 |
143 транзакции |
время копирования на сервер
00:25 (сек.) |
PostgreSql ver 9.4.7 |
1 транзакция |
Вылет по ошибке, не хватка
памяти на сервере. |
Система Windows 2008 R2, 8Gb ОЗУ, 500Gb HDD
Файл: 16 Мб,
20 полей, 10 000 записей |
||
LetoDb ver 2.15 |
15 транзакции |
время копирования на сервер
00:04 (сек.) |
PostgreSql ver 9.4.7 |
1 транзакция |
время копирования на сервер
00:08 (сек.) |
Файл: 158 Мб,
20 полей, 100 000 записей |
||
LetoDb ver 2.15 |
143 транзакции |
время копирования на сервер
00:34 (сек.) |
PostgreSql ver 9.4.7 |
1 транзакция |
время копирования на сервер
01:22 (сек.) |
Конечно простые тесты не дают полной картины сравнения, но эти тесты показывают, что сервер LetoDb – это современный, простой свободный программный продукт, который нужно использовать.