DbfWebServer
Способ эффективной работы с таблицами DBFв среде Интернет
А. Шевелёв
© А. Шевелёв, 2017
Всё о сервере http://ixbase.info
Благодарности
Предлагаемый подход появился благодаря неустанным разработкам по совершенствованию и поддержке стиля xBASE со стороны xHarbour (http://xharbour.com) разработчика программного обеспечения (ПО), ставшего достойным преемником великого наследия CLIPPER.
Особая благодарность владельцам авторского права (Массачусеттский технологический институт, Национальный институт исследований в области информатики и автоматизации, Университет Keio) за прекрасную документацию HTML
Девиз:
сервер, который всегда с тобой и с каждым днем лучше
Статические страницы могут быть превращены в динамические с помощью нового сервера, который поддерживает работу с базой данных. Под базой данных здесь подразумевается набор таблиц типа *.dbf.
Такой способ построения динамических страниц открывает новые возможности для формирования информационных ресурсов, настольных приложений и передачи данных.
Данная книга предназначена для всех, кто трепетно относится к накопленным данным и хочет их сохранить и приумножить. Предлагается достаточно простой способ создания информационных систем различного назначения
Введение
Работа с таблицами типа *.dbf пока не представлена должным образом в среде Интернет. Это связано, наверное, с повальным увлечением технологией SQL. Считается, что таблицы DBF это устаревший подход и будущее только за технологиями типа сервер-клиент. Тем не менее, были попытки (и они не прекращаются) сблизить технологии Интернет и системы управления базами данных СУБД (1,2). Эта разработка является также инструментом, способствующим насыщению Интернет массивом данных, хранящихся в базах данных. Теперь статические страницы становятся динамическими с легкостью, присущей системам управления данных типа CLIPPER. Работа с таблицами DBF проста и интуитивно понятна.
Таблица представляет собой набор колонок (полей) по вертикали и строк (записей) по горизонтали. Таким достаточно простым и наглядным образом формируются и собираются однотипные записи в списки, которые могут быть очень большими. Допустимый размер таблиц типа *.dbf намного превышает размер таблиц типа *.exl, используемых в программе Excel, и может достигать 3 млн записей, а СУБД DBF намного проще и легче системы SQL. На сегодняшний день именно в этих таблицах хранится достаточно много данных, которые не должны лежать мёртвым грузом или быть утерянны. Свободно обратиться к данным, хранящимся в таблицах *.dbf, организовать передачу данных между информационными узлами или приложениями позволяет новый сервер dbfWebServer (рис. В.1).
Рис. В.1. Экранная форма программы dbfWebServer
Список сокращений
HTTP HyperText Markup Language
VM виртуальная машина
WWW World Wide Web
ДОС дисковая операционная система
ИТ ixBASE информационные технологии ixBASE
ОС операционная система
ПО программное обеспечение
ПО ixBASE программное обеспечение ixBASE
СУБД система управления базами данных
Глава 1. Эффективный сервер для таблиц DBF
Сервер, который всегда с тобой
DbfWebServer это сервер, который всегда с тобой: простой, мобильный и компактный. Каждый день он пополняется новыми данными и сервисами и улучшается. Сервер очень удобен тем, что его можно запускать и на локальном компьютере. Для этого предусмотрены специальные режимы настройки сервера. Эти настройки находятся на стартовой странице сервера. С их помощью запуск сервера можно настроить автоматически при включении компьютера и/или из эксплорера с помощью специальной кнопки, что является весьма полезным и удобным и повышает эффективность работы.
Отличительной особенностью данного сервера является то, что для полноценной работы с базами данных достаточно одной программы, в отличие от комплекса SQL, например APACHE + MySQL + PHP. Для такого комплекса необходимо запустить как минимум два сервера APACHE и SQL или другую родственную пару серверов.
Скорость работы сервера dbfWebServer, по наблюдению и мнению автора, превосходит другие комбинации, что позволяет создавать быстрый пользовательский интерфейс для конечного пользователя, используя при этом браузер, использовать разнообразный спектр баз данных, что становится особенно актуальным, когда бизнес-приложения перемещаются в сторону платформы Интернет.
Размер программы составляет порядка 1400 Кб. В программу включены все основные функции CLIPPER, которые необходимы для работы с базой данных, строками, математическими операциями.
Запустить сервер можно с любого носителя, даже флэш-памяти, что также может стать весьма удобным методом работы, если необходимо часто переносить данные. Относительно небольшой объём базы данных, можно сказать мобильный, позволит носить с собой все данные, запускать сервер с любого компьютера и пользоваться этими данными. Такой подход, в свою очередь, позволит помочь при распределённой или удалённой работе, когда необходимо обслуживать или развивать несколько информационных ресурсов или проектов, использующих данные и базы данных.
Устойчивость сервера
Устойчивость работы сервера как программы и не разрушающий индексы таблиц режим работы сервера с базой данных является важным моментом. Для таблиц типа *.dbf всегда было достаточно трудно подобрать устойчивый сервер. В данном случае речь идёт об операционной системе (ОС). в этом отношении лучше всего показал себя сервер NOVELL. В других операционных системах при многопользовательском режиме работы достаточно часто наблюдается разрушение индексных файлов. Этот фактор в значительной мере тормозит использование таблиц в других конфигурациях не NOVELL и мешает широкому распространению приложений на основе баз данных DBF.
По отношению к операционной системе программа dbfWebServer является однопользовательской, а потребление информации имеет, наоборот, многопользовательский характер. Для такого случая следует отметить, что семейство операционных систем WIN32 работает более устойчиво.
Сервер dbfWebServer в своей работе для организации многопользовательского режима использует систему сокетов, а с сокетами ОС WIN32 работают надёжнее, нежели с системой разделения файлов между приложениями.
Программа dbfWebServer может работать параллельно с другими программами, обеспечивая одновременный разделённый доступ к таблицам и индексам.
Сервер обрабатывает ошибки, возникающие при интерпретации блоков кода, и возвращает соответствующие сообщения, поэтому пользователю или разработчику легко отлаживать скрипты, которые запускаются на сервере. Это, правда, не относится к бесконечным циклам. Здесь может возникнуть проблема.
Сервер построен в каскадном стиле, без использования потоков, поэтому прервать бесконечный цикл без перезагрузки сервера нет возможности.
С точки зрения безопасности и устойчивости работы сервера отладку скриптов лучше всего осуществлять в локальном режиме, на локальном сервере, а потом переносить на удалённый сервер.
Сама по себе работа СУБД CLIPPER с базами данных проверена временем и является самой надежной на сегодняшний день.
Состав сервера
Состав сервера определяет следующий основной перечень файлов и директорий, входящих в состав поставки (дистрибутив) сервера dbfWebServer:
\www\ рабочая директория сервера
\www\dbf\ поддиректория с таблицами *.DBF
\www\\html\ поддиректория, в которой находятся
исходные скрипты HTML
\www\\HTML4\ поддиректория c документацией HTML
\www\\xHarbour\ поддиректория, в которой находится
документация xHarbour
dbfWebServer. exe программа
dbfWebServer.ini файл инициализации
dbfWebServer. txt первичный список таблиц
В директории с таблицами представлены только основные таблицы, необходимые для начала работы и понимания сути работы сервера. Пользователь или разработчик может самостоятельно расширять этот список таблиц исходя из задач, которые ему предстоит решать. Способ формирования списка таблиц или проекта будет обсуждён далее.
\dbf директория с таблицами
DBFHTM00.CDX
DBFHTM00.DBF блоки кода для HRB. exe
DBFRUN00.CDX
DBFRUN00.DBF блоки кода общего назначения
DIRECT00.CDX
DIRECT00.FTP
DIRECT00.DBF для списков директорий
SPIDBF00.CDX
SPIDBF00.DBF проект базы данных: список таблиц
SPIDBF10.CDX
SPIDBF10.DBF проект базы данных: список полей
SPIDBF20.CDX
SPIDBF20.DBF проект базы данных: список индексов
Директория \www\ добавлена с точки зрения совместимости с другими серверами, например Apache.
Примечание. От версии к версии состав сервера может меняться.
Установка сервера
Загрузить из Интернета архивный файл dbfWebServer. zip
Распаковать архивный файл или скопировать содержимое с инсталляционного диска на свой локальный жёсткий диск.
Программа не требует процедуры установки.
Установка сервера
Загрузить из Интернета архивный файл dbfWebServer. zip
Распаковать архивный файл или скопировать содержимое с инсталляционного диска на свой локальный жёсткий диск.
Программа не требует процедуры установки.
Если установка сервера производится с инсталляционного диска, то следует просто скопировать содержимое СД-диска на локальный жёсткий диск.
Рекомендуется скопировать всё в корневой каталог.
Запуск сервера
Сервер запускается из командной строки набором имени файла
dbfWebServer. exe
или кликом мыши по этому имени в проводнике.
После запуска появится окно с программой, как показано на рис. В.1.
После того как программа запустится, в адресной строке браузера введите и активизируйте следующий адрес:
http://localhost:4180
по умолчанию будет загружена страница index.html:
http://localhost:4180/html/index.html
Примечание. Загрузку стартовой страницы необходимо обеспечить как минимум для двух случаев:
когда сервер устанавливается параллельно существующему другому серверу. это будет рассмотрено ниже (привязка сервера);
когда сервер устанавливается самостоятельно.
Если сервер устанавливается параллельно, то используется файл dbf.html, чтобы не пересекаться с существующим сервером.
В любом случае по умолчанию загружается файл index.html из директории /html/.
После загрузки страницы index.html в браузере должна появиться картинка следующего содержания (рис. 1.2):
Рис. 1.2. Вид загруженной страницы index.html из сервера dbfWebServer