On-line: Haz, гостей 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 
Профиль
Ответов - 316 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


Pasha
Администратор




Пост N: 1562
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.07.10 08:34. Заголовок: Если открывается таб..


Если открывается таблица, уже открытая другим пользователем, то после открытия надо делать go top. Сейчас пользователю передается запись, которая является текущей для другого пользователя, что не хорошо.
Вечером скину изменение на CVS

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




Пост N: 1563
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.07.10 20:39. Заголовок: Второй раз сталкиваю..


Второй раз сталкиваюсь с ситуацией, когда на win98 невозможно соединиться с сервером. leto_connect дает ошибку.
Попробовал использовать другой порт - результат тот же. При этом соседние компьютеры с win98/xp работают нормально
В первом случае переустановил windows, поставил xp, и вопрос был исчерпан.
Но не всегда возможно поставить xp, если win98 лиценционный.
Второй случай совсем непонятный. Компьютер с win98 несколько недель успешно проработал с letodb, и после безобидной операции: удаление планировщика drweb и очистка корзины перестал соединяться с leto.
Переустановка windows 98 поверх не помогла. Полная переустановка думаю поможет, но хотелось бы разобраться, в чем дело.
Где можно копать в 98-й ? Какие средства отвечают за работу с сокетами ? Что можно посмотреть в реестре ? Какую диагностику выдать в клиенте leto ?


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


Пост N: 376
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.07.10 21:09. Заголовок: Хм... Я с таким не с..


Хм... Я с таким не сталкивался, хотя у меня на работе компьютеров с win98 больше десятка.
А сеть на них работает нормально ? Ping проходит ?
Если сервер пингуется, я не вижу ни одной причины, почему может быть проблема с соединением. У меня немало случаев, когда сетевые средства windows отказывают - компьютер перестает быть виден в сети, проходит только ping - но letodb работает при этом нормально.

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




Пост N: 1564
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.07.10 21:29. Заголовок: Да, пинг работает, и..


Да, пинг работает, и раньше соединение с сервером было по айпи адресу, и успешно работало.
Деинсталляция антивируса тоже ничего не дала. Брандмауэра на 98-й нет.

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


Пост N: 377
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.07.10 22:23. Заголовок: Попробуйте в leto_Co..


Попробуйте в leto_ConnectionNew() leto_writelog'и расставить, чтобы установить - это connect не работает или команда intro; не отрабатывает

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




Пост N: 1565
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.07.10 22:29. Заголовок: Уже ставил, в первом..


Уже ставил, в первом случае. Не работает connect. Во втором случае не пробовал.

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




Пост N: 1399
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.07.10 23:32. Заголовок: Pasha пишет: Второ..


Pasha пишет:

 цитата:

Второй раз сталкиваюсь с ситуацией, когда на win98 невозможно соединиться с сервером.



А win98 какой ? Если не SE то надо бы ставить от DELPHI пакет для SOKET'oв.
В свое время намучился с ним.


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




Пост N: 1566
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.07.10 23:37. Заголовок: se конечно. А что за..


se конечно. А что за пакет такой и при чем тут delphi ?

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


Пост N: 378
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.07.10 08:30. Заголовок: Попробуйте приконнек..


Попробуйте приконнектиться к серверу телнетом:
telnet.exe _ip_address_ _port_

С командами только поосторожнее - я тут сейчас попробовал intro; выдать - сервер рухнул ( надо проверить, почему - ошибка в командной строке не должна к такому приводить ).

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



Пост N: 13
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 08.07.10 08:39. Заголовок: alkresin пишет: ци..


alkresin пишет:

 цитата:
цитата:
Как узнать права юзера под которым зашел на сервер (ф-я leto_MgGetUsers() возвращает IP)?


В данный момент - никак. Надо будет добавить функцию.



Александр! большое спасибо, с функцией нормально все проходит.
Но!
Если я забыл проверить права юзера и он редактирует данные, то получаем ошибку
Error LETO/1021 Ощибка в типе данных
Called from DBUNLOCK(0)
Called from HBROWSE:EDIT(3153)
Called from HBROWSE:ONEVENT(551)
Called from HWG_ACTIVATEMAINWINDOW(0)
Called from HMAINWINDOW:ACTIVATE(355)
Called from MAIN(116)

HwGUI 2.17 Harbour 2.1.0beta2 (Rev. 15011)
Date:08.07.2010
Time:08:30:50

Надо серверу либо тихо пропустить попытку юзера что-то изменить, либо выдать сообщение типа "Редактирование запрещено!"

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


Пост N: 379
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.07.10 09:55. Заголовок: Надо серверу либо ти..



 цитата:
Надо серверу либо тихо пропустить попытку юзера что-то изменить, либо выдать сообщение типа "Редактирование запрещено!"


Выдачу сообщения я не очень себе представляю. Как клиент будет обрабатывать такое сообщение ? Будете ставить BEGIN SEQUENCE ... END SEQUENCE на каждый REPLACE ?
А молча не записать - не уверен, что это правильно. Вот аналогия - если мы открываем dbf как readonly, а потом пытаемся туда записывать данные, то Clipper/Harbour выдает как раз ошибку записи.

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




Пост N: 1567
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.07.10 22:00. Заголовок: Telnel тоже не конне..


Telnel тоже не коннектился. Попытки найти повреждения в dll, относящихся к winsock, в соответвующих ветках реестра ничего не дали. Socket не соединяется - и хоть ты тресни
Но людям то работать надо, поэтому изыскания пришлось прекратить, переустановить win98, и вопрос был исчерпан

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




Пост N: 1568
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.07.10 22:07. Заголовок: Возникает потребност..


Возникает потребность кроме доступа к БД иметь еще доступ к метаданным, находящимся на сервере: у настройкам, скриптам, файлам hrb, тем же отчетам fastreport. В связи с этим возникает соблазн сделать аналог файлового доступа через leto: fopen - fread - fclose. Мне было бы достаточно доступа только на чтение, но неизбежно возникнет соблазн сделать и аналог fwrite. В связи с этим вопрос: а стоит ли ? Сделать то это легко, но надо ли ?

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



Пост N: 14
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 09.07.10 08:33. Заголовок: Pasha пишет: Возник..


Pasha пишет:

 цитата:
Возникает потребность кроме доступа к БД иметь еще доступ к метаданным, находящимся на сервере



Тоже есть необходимость доступа к текстовым файлам (нужно передавать их от клиента к клиенту, сейчас просто расшарил папку на сервере с текст. файлами), но мне кажется, что это задача не для leto. Сейчас по немногу экспериментирую с библиотекой hbtip и ftp-сервером для этих целей.

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




Пост N: 1569
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.10 09:51. Заголовок: Впечатления от letod..


Впечатления от letodb у меня самые благоприятные. Работает надежно. Если установлен на постоянно включенном компьютере - не свалился ни разу. Было выявлено несколько ошибок и несовместимостей с dbfcdx, практически обо всех я здесь писал, и все они были моментально устранены. Конечно, функциональная совместимость с dbfcdx не 100%, но близко от того. Да и 100%-й совместимости не будет.
Впечатления у пользователей: там, где обьемы БД значительные и критична производительность: "Стало намного быстрее". Конечно, я кое-что специально оптимизировал

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



Пост N: 36
Зарегистрирован: 14.03.10
ссылка на сообщение  Отправлено: 09.07.10 11:31. Заголовок: alkresin пишет: Мож..


alkresin пишет:

 цитата:
Может, проблема, действительно, в недрах реализации ip в SP1


Раньше у меня был SP2.
Сначала я грешил, на глюки официального ICQ, когда он проработав 2-3 дня съедал всю память моего компьютера, но когда обнаружил, что MailAgent ведёт себя идентично, то пришёл к выводу, что это всё-таки винда виновата.
Pasha пишет:

 цитата:
В связи с этим возникает соблазн сделать аналог файлового доступа через leto: fopen - fread - fclose. В связи с этим вопрос: а стоит ли ?


Если бы leto был поделкой ради забавы, тогда, может, и стоило бы.
А серьёзный продукт должен обеспечивать безопасность. А это значит настройка прав доступа на стороне сервера средствами Leto. Хотя ftp не является оптимальным по требованиям безопасности, но он лучше всего подходит для подобной задачи. Даже лучше, чем расшаривание папок, хотя расшаривание самое удобное. Конечно, возможна прямая передача данных через сокеты, но решение о том, какие данные должны передаваться, должен решать только сервер.

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




Пост N: 1570
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.10 12:11. Заголовок: Наиль пишет: Если б..


Наиль пишет:

 цитата:
Если бы leto был поделкой ради забавы, тогда, может, и стоило бы.
А серьёзный продукт должен обеспечивать безопасность. А это значит настройка прав доступа на стороне сервера средствами Leto. Хотя ftp не является оптимальным по требованиям безопасности, но он лучше всего подходит для подобной задачи. Даже лучше, чем расшаривание папок, хотя расшаривание самое удобное. Конечно, возможна прямая передача данных через сокеты, но решение о том, какие данные должны передаваться, должен решать только сервер.



Вопрос не в безопасности. Права доступа можно обеспечить теми же средствами, какие уже имеются в leto. Вопрос в другом.
Сейчас доступ к таким данным можно обеспечить, скажем, через hbnetio. Но тогда возникает вопрос: зачем иметь 2 соединения, 2 сервера, отдельно настраивать для каждого права, когда лучше иметь все это в одном флаконе

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




Пост N: 1571
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.10 13:00. Заголовок: Кстати, насколько ре..


Кстати, насколько реальна идея скрестить ужа с ежом, т.е использовать netio в качестве транспортного протокола для letodb ?

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




Пост N: 1572
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.10 13:27. Заголовок: Подзабыл C. Какой пр..


Подзабыл C. Какой предел у malloc для выделения памяти в 32-х битных системах ? 64K ?
Не будет ли переполнения SkipBuf, если значение достаточно большое ?
Захотелось вот получать всю выборку одним пакетом:

LETO_SETSKIPBUFFER(1000)
dbEval(...)
LETO_SETSKIPBUFFER(10)

и возникли сомнения... Может заменить на hb_xgrab ?
В связи с этим возникла мысль паковать большие пакеты при передаче

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




Пост N: 1573
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.10 13:32. Заголовок: Смотрю: #define HB_S..


Смотрю:
#define HB_SENDRECV_BUFFER_SIZE 16384

т.е. сейчас пакет не может быть больше 16К ?

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