DataExpress Web Server
DataExpress Web Server (далее веб-сервер) позволяет работать с базой данных через браузер на любом устройстве. Веб-сервер может работать с несколькими базами данных одновременно, обрабатывая запросы множества удаленных пользователей.
В настоящее время доступны версии для Windows 32-bit и Linux 64-bit, которые можно использовать в том числе в коммерческих целях. Проект находится в стадии активного развития и некоторые вещи еще не реализованы, например диаграммы и деревья.
Для корректной работы на устройствах требуется современный браузер на основе Chromium (Google Chrome, Yandex, Microsoft Edge и т. д.). Веб-интерфейс адаптируется под экран устройства, что обеспечивает удобную работу как на компьютере, так и на смартфоне.
Веб-сервер поддерживает два режима запуска: консольное приложение и сервис (поддерживается только Linux). В первом случае достаточно просто запустить файл dxwebsrv. Но для постоянной работы лучше запускать программу, как сервис (будет рассказано ниже).
Для более быстрой работы рекомендуется устанавливать веб-сервер на тот же компьютер (виртуальный сервер), где и база данных. В системе Windows даже необязательно устанавливать СУБД Firebird 2.5, если планируется работать исключительно с веб-сервером. В Linux установка Firebird обязательна (статьи по теме: База данных в облаке. Установка Firebird на VDS., Установка Firebird 2.5 в линукс).
Установка в Windows
Программа будет работать во всех версиях Windows, начиная с Windows XP. Распакуйте архив с программой в любую папку. Для запуска веб-сервера просто запустите файл dxwebsrv.exe из проводника.
На локальной машине вы можете проверить работу сервера следующим образом. Запустите браузер и введите в адресной строке: http://127.0.0.1/demodb/.
Установка в Linux
Настройка веб-сервера
Для настройки веб-сервера нужно отредактировать файл dxwebserv.cfg. Файл имеет формат ini-файла и состоит из секции «Server» и секций с произвольными именами, описывающих параметры подключения к базам данных. В секции Server могут быть следующие параметры:
- Language - язык интерфейса, может принимать значения en, ru. Возможны и другие значения, например by, ua, если есть соответствующий файл языка languages\dxwebserv.XX.po.
- Port - порт сервера. По умолчанию - 80. Если порт отличается от 80, то его всегда нужно указывать в адресной строке браузера, например
http://192.168.1.10:8080
. - Firebird - определяет версию клиента Firebird, используемого для работы с базами данных. Допустимые значения: 2.5 и 5.
- UseSSL - определяет использовать ли защищенный протокол https, 1 - да, 0 - нет (используется http).
- PrivateKey - путь к файлу закрытого ключа. Указывается, когда UseSSL = 1.
- Certificate - пукть к файлу сертификата. Указывается, когда UseSSL = 1.
Пример 1 (стандартный порт http):
[Server] Language=ru Port=80 Firebird=2.5
Пример 2 (использование протокола https):
[Server] Language=ru Port=443 Firebird=5 UseSSL=1 PrivateKey=c:\openssl\ssl\rootca.key Certificate=c:\openssl\ssl\rootca.pem
В этом же файле хранятся параметры подключения к базам данных. Для каждой базы данных создается своя секция. В названии секции можно использовать только символы латинского алфавита, цифры и символ _, регистр не имеет значения. Для примера пропишем параметры подключения к базе данных MyDB:
[MyDB] Database=127.0.0.1:/home/user/bases/MyDB.FDB Templates=templates SessionTime=30 DBPwd=anypassword
В параметре Database пропишите путь к файлу базы данных, в формате IP-адрес сервера БД:полный путь к файлу базы данных
. Так как обычно веб-сервер будет устанавливаться вместе с СУБД Firebird, IP-адресом обычно будет петлевой IP-адрес компьютера 127.0.0.1, как в примере выше. Обратите внимание, что в Linux регистр имеет значение. В параметре Templates пропишите путь к папке шаблонов. Путь может быть задан относительно папки программы. Параметр SessionTime задает время простоя сессии. Если пользователь указанное время был неактивен, то ему нужно будет повторно подключаться к базе данных. Параметр DBPwd задает пароль пользователя SYSDBA. Если вы не меняли пароль SYSDBA для СУБД Firebird, то параметр можно не задавать.
В примере выше для подключения к базе данных используется порт Firebird по умолчанию 3050. Если порт отличается, то его можно задать следующим образом:
Database=127.0.0.1/3055:/home/user/bases/MyDB.FDB
Чтобы изменения в cfg-файле вступили в силу, надо перезапустить веб-сервер. В линукс это делается следующей командой:
sudo systemctl restart dxwebsrv
Теперь, чтобы подключится к базе MyDB, введите в адресной строке браузера: http://192.168.0.10/mydb/
, где 192.168.0.10 - IP-адрес компьютера, с установленным веб-сервером.
Особенности работы
- Сервер всегда запрашивает логин и пароль к базе данных. Если в базе нет пользователей, просто нажмите кнопку «Вход».
- Сервер позволяет заходить пользователям под одним и тем же логином, несмотря на запрет в настройках доступа.
- Монитор пользователей можно назначить на кнопку, а можно ввести адрес вручную. Например:
192.168.0.10/demodb/?usermon
. Монитор пользователей показывает подключенных пользователей как веб, так и десктопных. - Данные формы отображаются в представлении «только таблица».
- Вывод данных формы осуществляется постранично: по 20 записей.
- Записи редактируются на отдельной странице. Вы можете редактировать одновременно несколько записей, каждая в отдельной вкладке.
- Сервер игнорирует блокировку записей от редактирования. Вы всегда можете отредактировать запись, даже если кто-то другой в этот момент ее редактирует или просматривает. При этом если пользователи редактировали разные поля, будут сохранены изменения обоих пользователей.
- Нельзя загрузить изображение/файл, если указан способ хранения «Ссылка».
- Сервер запоминает 10 последних редактируемых записей (для каждой формы).
- Возможность создавать закладки на формы, отчеты, записи (средствами браузера).
- Некоторые элементы интерфейса имеет имеют фиксированное оформление и не зависят от свойств компонентов, например шрифт и фон таблицы на странице просмотра списка записей формы (табличная часть формы) задается в файле form.css.
- В списках, как и в объектах, можно фильтровать по фрагментам текста. Содержимое списков подгружается частями, по 100 элементов.
- Старайтесь минимизировать количество записей, выводимых в запросах на формах, т. к. сервер может потреблять много оперативной памяти при формировании ответа клиенту.