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-адрес компьютера, с установленным веб-сервером.

Особенности работы

  1. Сервер всегда запрашивает логин и пароль к базе данных. Если в базе нет пользователей, просто нажмите кнопку «Вход».
  2. Сервер позволяет заходить пользователям под одним и тем же логином, несмотря на запрет в настройках доступа.
  3. Монитор пользователей можно назначить на кнопку, а можно ввести адрес вручную. Например: 192.168.0.10/demodb/?usermon. Монитор пользователей показывает подключенных пользователей как веб, так и десктопных.
  4. Данные формы отображаются в представлении «только таблица».
  5. Вывод данных формы осуществляется постранично: по 20 записей.
  6. Записи редактируются на отдельной странице. Вы можете редактировать одновременно несколько записей, каждая в отдельной вкладке.
  7. Сервер игнорирует блокировку записей от редактирования. Вы всегда можете отредактировать запись, даже если кто-то другой в этот момент ее редактирует или просматривает. При этом если пользователи редактировали разные поля, будут сохранены изменения обоих пользователей.
  8. Нельзя загрузить изображение/файл, если указан способ хранения «Ссылка».
  9. Сервер запоминает 10 последних редактируемых записей (для каждой формы).
  10. Возможность создавать закладки на формы, отчеты, записи (средствами браузера).
  11. Некоторые элементы интерфейса имеет имеют фиксированное оформление и не зависят от свойств компонентов, например шрифт и фон таблицы на странице просмотра списка записей формы (табличная часть формы) задается в файле form.css.
  12. В списках, как и в объектах, можно фильтровать по фрагментам текста. Содержимое списков подгружается частями, по 100 элементов.
  13. Старайтесь минимизировать количество записей, выводимых в запросах на формах, т. к. сервер может потреблять много оперативной памяти при формировании ответа клиенту.