On-line: Pasha, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
alkresin
moderator


Пост N: 31
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 31.01.08 11:36. Заголовок: Leto DB Server


Только что открыл на Sourceforge новый проект - Leto DB Server - https://sourceforge.net/projects/letodb

Это мультиплатформенный ( Windows, Unix/Linux ) сервер баз данных, предоставляющий клиентским программам доступ к dbf/cdx файлам, находящимся на удаленном сервере ( можно и на локальном компьютере запускать - в отладочных целях ). В общем, как ADS :).

Проект - на стадии разработки, не все даже базовые функции еще реализованы, до оптимизации дело еще не дошло. Но работает :).
Крутится у меня на сервере несколько дней, подключал до 15 клиентов, пока не падает. Мои программы работают с ним нормально.

Преимущества по сравнению с обычным файл-сервером:
1) Безопасность - базы могут быть в каталоге, недоступном для клиентских компьютеров - никто их случайно не удалит и не повредит.
2) Поскольку базы открываются серверной программой, а не клиентской, ее целостности ничего не грозит при случайном отключении клиентского компьютера.
3) значительное уменьшение сетевого траффика.
4) Должен быть, по идее, выигрыш в скорости.
5) Возможность контроля за пользователями с помощью утилиты manage ( можно придумать и другие формы контроля ).
6) Можно будет сделать транзакции, stored procedures на Харборе, ... и вообще все в наших руках :).

Кто хочет участвовать в разработке, тестировании - пишите.



Спасибо: 0 
Профиль
Ответов - 325 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 All [только новые]


alkresin
moderator


Пост N: 67
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 15:20. Заголовок: Отдельные rdd выделя..



 цитата:
Отдельные rdd выделять не будем ? Сделать что-то вроде LetoConnection(...), и в качестве параметра - используемый rdd ?


Название rdd, думаю, должно передаваться при открытии файла. Может ведь программа работать и с ntx и с cdx, находящимися на одном сервере ( одном соединении ).

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 68
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 15:21. Заголовок: Это для текущих сырц..



 цитата:
Это для текущих сырцов, как я понимаю ?



Да.

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 69
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 15:34. Заголовок: К разговору о перспе..


К разговору о перспективах:

очень заманчиво выглядит возможность использовать это дело для доступа к данным на сервере с мобильного устройства ( КПК, смартфона ).
У ADS нет ведь клиентских библиотек для доступа с их серверу, а у нас теперь есть.
Лежишь на пляже и проверяешь, сколько тебе зарплаты начислили :), или добавляшь запись в специальную таблицу, а stored proc ее обрабатывает и предпринимает соответствующие действия, например, сообщения рассылает.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 786
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 15:43. Заголовок: Сделать харбор для s..


Сделать харбор для symbian, что ли ? :)

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 390
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.02.08 15:53. Заголовок: Выглядит очень заман..


Выглядит очень заманчиво, но, наверное, путь не близкий. Поскольку, к примеру, stored proc - фактически полноценное приложение, я себе смутно представляю, как обеспечить безопасность данных на сервере. Поэтому и о авторизации с привилегиями спрашивал..

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 70
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 16:04. Заголовок: Сделать харбор для s..



 цитата:
Сделать харбор для symbian, что ли ?



Харбор уже работает на мобильных устройствах под Windows Mobile. Просто прилинковать Leto RDD и - вперед. Хотя, конечно, надо еще проверить, как оно будет работать с Интернет - соединением.

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 71
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 16:06. Заголовок: Поскольку, к примеру..



 цитата:
Поскольку, к примеру, stored proc - фактически полноценное приложение, я себе смутно представляю, как обеспечить безопасность данных на сервере.



Вопрос, конечно, серьезный. Но, с другой стороны, stored proc ведь не любой пользователь помещает, а администратор, он должен знать, что делает.

Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 391
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.02.08 16:59. Заголовок: alkresin пишет: о, ..


alkresin пишет:

 цитата:
о, с другой стороны, stored proc ведь не любой пользователь помещает, а администратор, он должен знать, что делает



Да, но сервер должен знать, что он именно с администратором общается

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 72
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 18:23. Заголовок: Это если помещать че..


Это если помещать через клиентскую программу и RDD. А если их может разместить только администратор руками на сервере, а клиент может только запустить на исполнение по имени - это уже другая ситуация.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 792
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 19:30. Заголовок: alkresin пишет: Pas..


alkresin пишет:

 цитата:
Pasha, я скинул на CVS изменения, чтоб работало со свежим xHarbour, не мог бы проверить ?



Все заработало

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 73
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 20:30. Заголовок: Отлично! Значит, мож..


Отлично! Значит, можно build2 делать.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 793
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 20:37. Заголовок: Какая-то проблема с ..


Какая-то проблема с блокировками

select order
dbAppend()
Field->Type:='01'
dbcommit()
dbunlock()

rlock()
Field->Stock:='01'
dbcommit()
dbunlock()

вываливается на 2-м коммите

Ошибка LETO/1021 Data type error: -015
Алиас ORDER
Вызов из DBCOMMIT(0)


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 794
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 21:08. Заголовок: Разобрался я с мисти..


Разобрался я с мистическим 5-м файлом :)

В индексном выражении было обращение к StrZero. А к серверу эта функция не подлинкована. Добавил Request

С этим надо что-то делать. Нужен какой-то джентльменский набор функций. Можно хотя бы взять из описания Ads список поддерживаемых функций, да и еще добавить своих, харборовских :)

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 795
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 21:48. Заголовок: Такой набор функций ..


Такой набор функций

Request ;
ABS,;
ALLTRIM,;
AT,;
CHR,;
CTOD,;
DATE,;
DAY,;
DELETED,;
DESCEND,;
DTOC,;
DTOS,;
EMPTY,;
I2BIN,;
L2BIN,;
LEFT,;
LEN,;
LOWER,;
LTRIM,;
MAX,;
MIN,;
MONTH,;
PAD,;
PADC,;
PADL,;
PADR,;
RAT,;
RECNO,;
RIGHT,;
ROUND,;
RTRIM,;
SPACE,;
STOD,;
STR,;
STRZERO,;
SUBSTR,;
TIME,;
TRANSFORM,;
TRIM,;
UPPER,;
VAL,;
YEAR

И специфика Ads

/*
Ads-specific functions
Request ;
CONTAINS,;
COLLATE,;
CTOT,;
CTOTS,;
LOWERW,;
NOW,;
REVERSE,;
STOTS,;
TODAY,;
TSTOD,;
UPPERW
*/

Добавляем ?


Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 74
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.02.08 22:14. Заголовок: Какая-то проблема с ..



 цитата:
Какая-то проблема с блокировками


Исправил.

 цитата:
Добавляем ?


Добавляем.

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 796
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 22:40. Заголовок: Seek ведет себя по-д..


Seek ведет себя по-другому
Если тип ключа не совпадает с типом индекса, то dbfcdx просто возвращает .f., а letodb поднимает ошибку


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 797
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 22:53. Заголовок: теперь с блокировкам..


теперь с блокировками порядок


Спасибо: 1 
Профиль
Pasha
Администратор




Пост N: 798
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.02.08 23:20. Заголовок: На сегодня я иссяк :..


На сегодня я иссяк :) Список багов исчерпан

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 468
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.02.08 00:30. Заголовок: alkresin пишет: что..


alkresin пишет:

 цитата:
чтоб работало со свежим xHarbour, не мог бы проверить ?


Я хочу проверить, но так и не собрал ничего на хХарборе !
Сам ехе-ник letodb.exe собрался, а из папки "manager" не собирается, требует библиотеку 'HBCT.LIB'
и сборка сама для HARBOUR'a ...

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 75
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.02.08 10:22. Заголовок: Небольшая инструкция..


Небольшая инструкция по использованию ( по просьбе Андрея ).

1) Сервер предназначен для работы c dbf/cdx файлами ( ntx тоже добавим ), расположенными на севере в локальной сети или Интернете. На своем локальном компьютере его имеет смысл использовать только для проверки и отладки.

2) Чтобы запустить сервер, просто запустите letodb.exe ( letodb - в Linux ) из того каталога, который вы для него выберите. После запуска сервер не создает окна, а просто размещается в памяти, при этом создается запись в letodb.log, расположенном по умолчанию в каталоге, откуда сервер запущен. В этот же лог пишутся сообщения об остановке сервера, о проблемах при открытии/создании dbf, и аварийные сообщения, если сервер вдруг слетит ( не должен :) ).
Останавливается сервер командой letodb.exe stop.

3) При необходимости можно создать файл letodb.ini в каталоге запуска сервера ( под Linux - можно еще в /etc ). В настоящее время поддерживаются следующие опции (указаны значения по умолчанию):
Port = 2812 - номер порта
DataPath = - каталог с базами
Log = letodb.ini - путь и имя журнала
Lower_Path = 0 - для Linux, 1 - если надо переводить пути и имена файлов в нижний регистр.

Если указан DataPath, то он будет добавляться к пути при открытии файла. Например,

DataPath = d:\data

a открываете файл вы командой

USE "192.168.3.5:2812/dbsklad/test"

В этом случае сервер будет открывать файл d:\data\dbsklad\test.dbf

4) Чтобы скомпилировать вашу программу для работы с Leto db, надо:
a) добавить в список библиотек rddleto.lib
b) добавить в программу 2 строчки:
REQUEST LETO
RDDSETDEFAULT( "LETO" )
в) откорректировать пути к базам с учетом имени/ip сервера и порта. Если у вас в программах пути задаются где-то в одном месте, лучше - в ini файле или в параметрах, передаваемых программе, это сделать легко и просто.
В идеальном случае после этого ваша программа должна заработать с Leto db сервером ( у меня почти сразу так и получилось ), в реальном - возможны проблемы, т.к. не все функции еще реализованы.

5) Если вы запустили сервер на локальном компьютере, то путь должен быть: //127.0.0.1:2812/...

6) По утилитам в каталоге utils/manage:

bld.bat предназначен для компиляции manage.prg - GUI утилита, для сборки нужен HwGUI.
Консольная утилита console.prg собирается вашими стандартными средствами, которыми вы собираете свои одно-файловые программы, надо только добавить rddleto.lib в список библиотек.



Спасибо: 0 
Профиль
Ответов - 325 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 637
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет