InterBase как встроенная СУБД

Дмитрий Кузьменко (Epsylon Technologies)

OpenSource?

Как известно, компания Borland выпустила версию 6.0 в OpenSource июле 2000 года. В этот момент код Interbase был скопирован, и помещен там же, на sourceforge.net, но под названием Firebird. (более подробно события тех дней изложены на сайте http://www.ibase.ru)

Собственно, Borland как владелец исходных текстов, не публикует собственных изменений, тем более для платных версий. Выпуск платных (сертифицированных) версий Interbase был возобновлен в марте 2001 года, и схема оплаты лицензий, а также контроль лицензий на сервере, остались теми же, что и в Interbase 5.x.

Развитие Interbase и Firebird пошло разными путями. В основном в Firebird в течение почти года занимались исправлением ошибок, только после этого начав вводить новую функциональность.

Примерно в октябре 2001 года группа разработчиков из Санкт-Петербурга выпустила собственную версию под кодовым названием Yaffil, базирующуюся на исходном коде Firebird. Эта версия первоначально задумывалась как "исследовательская", с большим количеством параметров настройки и частями кода, оптимизированными и переведенными на ассемблер. В настоящее время Yaffil является полигоном для тестирования сервера, оптимизированного для работы на многопроцессорных компьютерах под Windows.

В настоящее время функциональность Interbase 6.5 и Firebird практически одинакова, за исключением двух новшеств, введенных в Interbase 6.5 - специальной безопасности метаданных и возможности прерывать долго выполняющиеся запросы. Кроме того, платные версии Interbase являются сертифицированными, т.е. прошедшими тестирование.

Платформы

Начиная с момента своего выхода, т.е. 1985 года, Interbase был Unix-ориентированным сервером баз данных. К моменту выхода 5.0 (1997 год) множество ранее поддерживаемых операционных систем (около 15) или прекратили свое существование, или стали экзотическими, поэтому основных портов осталось 6. К 2000 году их число уменьшилось до 3 - Windows, Solaris (SPARC), и Linux. Порты под NetWare, SCO и HP-UX были прекращены как неперспективные.

Кроме уменьшения количества поддерживаемых вариантов ОС при выпуске Interbase 6.5 было решено отказаться от старой архитектуры Classic (пользователь-процесс) в пользу более современной - SuperServer (пользователь-thread).

Firebird, как OpenSource СУБД, преследовала иные цели, а именно обеспечить работу на максимально различных платформах. Поэтому архитектура Classic была сохранена (как единственная, способная обеспечить масштабирование на многопроцессорных компьютерах под Unix), и в дополнение к основным платформам были выпущены дистрибутивы (готовые комплекты для установки) для FreeBSD, HP-UX, AIX, Solaris (Intel), и даже для Darwin (MacOS X). В настоящее время ведутся работы по портированию Firebird на WinCE (пока существует только клиентская часть Firebird для WinCE).

Yaffil, как уже упоминалось выше, выпускается только для Windows, и сейчас находится в завершающей стадии тестирование Yaffil for Windows с архитектурой Classic (для работы на SMP-машинах).

Объемы данных

Перед тем, как описывать типичные для Interbase сферы применения, стоит упомянуть средние объемы данных, с которыми работают существующие приложения. Их существует 4 группы - небольшие, от 30 до 500 мегабайт; средние 1 - от 500 мегабайт до 2 гигабайт, средние 2 - от 2 гигабайт до 8 гигабайт; и большие, или даже экзотические - от 8 гигабайт до 980 гигабайт, встречающиеся в единичных случаях (на самом деле в России нашей компании известно около 3-4 фирм, у которых размер баз составляет 10-12 гигабайт).

В процентном отношении по количеству приложений такие объемы соответственно составляют 47%, 35%, 7% и 3%.

Количественные и процентные данные выведены на основе общения с клиентами и мониторинга конференций разработчиков, а также информации по системам на Interbase в Internet.

Типы приложений

Конечно, самые разнообразные. Interbase давно уже распространен в нашей стране, и завоевал популярность в первую очередь у разработчиков, использующих инструментальные среды разработки Borland - Delphi, C++Builder, Jbuilder. В последнее время все больше разработчиков, использующих Visual C, MS Access и другие средства, также приходят к использованию Interbase. Это в первую очередь обусловлено появлением начиная с 2000 года ряда качественных ODBC-драйверов, а также OLE-DB-провайдеров (в настоящее время их общее число около 12-ти), позволяющих тесно интегрировать работу Interbase и офисных систем.

Благодаря тому, что Interbase требует наличия минимума файлов для установки (6 файлов, и 2 ключа в Registry), а также весьма нетребователен к ресурсам, максимальное количество приложений, его использующих - офисные системы общего назначения. Это складской учет, бухгалтерия, зарплата, автоматизация отделов продаж, и многое другое.

Такие системы как правило по объему хранимых данных не превышают 300-500 мегабайт, а также работают либо в однопользовательском, либо в многопользовательском режиме с количеством пользователей от 2 до 15-ти, и легко переносятся с компьютера на компьютер. Операционная система в данном случае чаще всего Windows 95 или 98. К сожалению, о надежности в этом случае серьезно говорить нельзя, однако такие требования обычно обусловлены финансовыми причинами, по которым пользователи приложений не могут установить Windows NT/2K из-за старых процессоров или небольшого количества оперативной памяти - 32 мегабайт RAM для подобных систем вполне достаточно даже при работе с невыделенным сервером до 15-20-ти пользователей.

Более серьезные приложения, как то внутрикорпоративные системы, системы управления предприятием, биллинговые и т.п., разумеется работают с большими объемами данных (от 500 мегабайт до 8 гигабайт) и как правило используют Unix в качестве серверной ОС, и никогда не работают в однопользовательском режиме. При количестве пользователей до 50 на сервер обычно используют Windows, а в случаях до 300-400 пользователей - обязательно Unix (RedHat Linux или FreeBSD) и как правило на двух-, реже четырех-процессорных системах. В процентном отношении для данных систем в качестве операционной системы сервера Windows используется в 30% случаев, Unix - 70%.

Экзотические объемы баз данных, упомянутые в предыдущем разделе, могут достигаться как при неординарных, так и классических применениях СУБД. Например, канадская телефонная компания Distributel перешла рубеж базы данных в 20 гигабайт около двух лет назад. Известна также база данных размером 180 гигабайт, хранящая финансовые транзакции компании за несколько лет. И самой большой по объему является база данных в 980 гигабайт, хранящая хэши паролей MD5. Последний случай, разумеется, является однозначно однопользовательским, если только эта база не используется хакерами через web для подбора паролей.

Несомненно, объем данных в системе накладывает свои особенности. Для упоминавшихся в начале торговых систем, при небольших объемах данных, в большинстве случаев не требуется вообще никакого администрирования. Такие системы работают годами абсолютно без сопровождения, даже в случае сбоев компьютеров (выключение питания, крах операционной системы и т.п.). Чаще всего при сбоях по питанию база данных совсем не портится, и для продолжения работы не требуется выполнение специальных действий.

Автор статьи сам столкнулся с подобным случаем, когда Interbase 5.6 проработал более года на одном web-сайте, где информация не только активно считывалась, но и изменялась при различных действиях пользователей. Система остановилась только потому, что по ошибке разработчик создал базу данных с недостаточными опциями, а также использовал приложение, которое за 2 недели стартовало около сотни миллионов транзакций. Ситуация была исправлена установкой Interbase 6.0 (можно было и вернуться обратно на 5.6).

Чем больше база данных, тем больше внимания ей следует уделять. Как правило, "приходящий" администратор БД требуется при объемах базы данных начиная с 300-500 мегабайт, и количества одновременных пользователей от 30-ти. При этом на начальном этапе от разработчиков системы или администратора требуется планирование сервисных работ, которые затем могут выполняться автоматически, без необходимости ручного вмешательства.

Большинство средств, при помощи которых можно автоматизировать сервисные работы, а также документы, которые описывают различные способы автоматизации администрирования Interbase в разных применениях, можно найти на сайте http://www.ibase.ru .

В качестве примера применений Interbase приводится небольшой список ссылок на интернет-ресурсы, содержащие описания систем и их демонстрационные варианты:

"Торговый Офис", Ижевск
http://www.direct.pisem.net/to.htm
http://users.mark-itt.ru/barmin/

Учет основных фондов, меню и заказы для общественного питания, оптимизация маршрутов транспорта:
http://www.gsbelarus.com/
а также автоматизация мясоперерабатывающего завода, выполненная этой же фирмой - http://www.meat.by

Про-Инвест. Система организации и управления продажами.
http://www.pro-invest.ru

Волга - Натур Продукт. Автоматизация оптовой и розничной продажей медикаментов.
http://www.natur.ru

DelSoft. Систему автоматизированного учета рабочего времени и выполненных работ для фирм, предоставляющих обслуживающий персонал для отелей и частных заказчиков.
www.delsoft.com.ua , www.delsoft.cc

INSO. Web content management.
http://www.inso.ru

Статьи по опыту применения на http://www.borland.ru/interbase/:
AAM Systems, Системы технической безопасности.
ИнтелГрупп, Система управления предприятием (Тектон)
ИНЭК, аналитика экономической и финансовой деятельности.
Геликон Про, Управление финансово-хозяйственной деятельностью.