Чтение онлайн

на главную - закладки

Жанры

Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil

Востриков С М

Шрифт:

* возможность работы с типом INT64 в массивах;

* устранение проблем с механизмом двухфазной фиксации транзакций.

Эти изменения позволят пользователям линии 1.0 решить их насущные проблемы и чувствовать себя уверенно вплоть до выхода новой версии. Таким образом, релиз 1.0.2 ставит точку на развитии линии 1.0 и позволяет окончательно сконцентрировать внимание на разработке следующих версий.

Версия 1.5 - эволюция или революция?

Так что же собой представляет новая версия Firebird? Чтобы получить ответ на этот вопрос, позволим себе небольшой экскурс в историю. Летом 2001 года администраторами

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

* необходимость инкапсуляции ключевых объектов ядра СУБД для более качественной их защиты и независимых блокировок (что жизненно важно для реализации в сервере полноценной поддержки SMP);

* обеспечение удобства программного расширения подсистем сервера;

* реализация более гибкого и контролируемого управления памятью;

* обеспечение полного контроля над исключительными ситуациями внутри сервера;

* возможность использования в разработке современных библиотек и шаблонов программирования.

Одним из методов достижения этих целей было выбрано использование C++ в качестве языка программирования (в оригинале сервер написан на С) и соответствующее портирование существующего исходного кода. Так как этот процесс является достаточно трудоемким, а ветка версии 1.0 в тот момент времени развивалась очень активно, решили создать отдельную ветку для разработки новой версии сервера (20). что обеспечило участникам проекта бесконфликтную параллельную работу над двумя версиями - текущей и будущей. В соответствии с п ином. вс1к\ нашали hiebnd2 - как олицетворение независимости от истоков и обещание заметных нововведений К моменту выхода версии 1 0 портирование кода было завершено, также уже была реализована новая обработка исключительных ситуаций и перепроектирован менеджер памяти Вскоре после этого был разработан новый универсальный механизм подключения к серверу внешних модулей (plugins), который может быть использован для поддержки неограниченного числа определяемых пользователем языковых кодировок, реализации механизмов безопасности посредством РАМ (pluggable authorization modules), сжатия или шифрования сетевого трафика и т. п.

Так как вся эта работа отняла достаточно много времени, было принято решение о стабилизации кода ветки firebird2, внесении в нее нескольких функциональных улучшений (преимущественно в языке SQL), об исправлении ряда ошибок и выпуске данного кода как версии 1.5.

Таким образом, версия Firebird 1.5 является промежуточной между классической 1.0 и революционной 2.0 и представляет собой первый шаг в направлении разработки радикально улучшенного сервера.

Достигнутые результаты

Большая часть запланированных функциональных возможностей была реализована к сентябрю 2002 года, и в конце сентября были выпущены первые неофициальные сборки новой версии (snapshots) для платформы Win32 Приблизительно через месяц была выпущена первая альфа-версия, которая, будучи нестабильной и предназначенной исключительно для технологического тестирования, тем не менее давала возможность ознакомиться с особенностями новой версии и предоставить производителям стороннего ПО условия для адаптации под нее своих продуктов Помимо платформы Win32, были выпущены сборки новой версии сервера для Linux, MacOS X (Darwin) и SINIX-Z.

На момент выхода данного издания книги в свет код новой версии должен быть заблокирован для инноваций и должны быть выпущены так называемые релиз-кандидаты, т. е. финальные

сборки, дающие возможность оценить готовность версии 1.5 к официальному опубликованию.

Отличительные особенности новой версии

Итак, что же нового приготовили нам разработчики Firebird? Ниже приводится список нововведений с их кратким описанием, сгруппированный по функциональным категориям. Следует заметить, что не все из приводящегося списка в настоящий момент полностью реализовано, поэтому он может несколько отличаться от официального документа Release Notes, включенного в дистрибутив новой версии.

Дистрибутив

Первое, на что стоит обратить внимание, это отличие в именах файлов. Исполняемый файл сервера теперь называется либо fbserver (в случае архитектуры SS). либо fb_inet_server (в случае CS). Следует отметить, что теперь сервер с классической архитектурой доступен и для пользователей платформы Win32. Клиетская библиотека носит имя fbclient. В дистрибутивы для Win32 входит также библиотека gds32.dll. которая теперь является просто "заглушкой", перенаправляющей все вызовы к fbclient.dll, и поставляется исключительно для совместимости с существующими приложениями. Все новые приложения, ориентирующиеся на использование этой и последующих версий Firebird, должны обращаться к новой клиентской библиотеке (т. е. fbclient). Стандартная библиотека языковых кодировок теперь называется fbintl. Также изменились имена некоторых других файлов.

Вариант сервера с классической архитектурой для платформы Win32 несколько отличается от аналогичных дистрибутивов для UNIX-систем. Главная особенность - это единый пакет, включающий в себя SS и CS сборки сервера, причем оба варианта скомпонованы статически. Это позволило избежать реализации кода сервера в библиотеке, разделяемой всеми процессами, и обеспечить четкое разделение клиентской и серверной подсистем. Результатом этого стала независимость стандартных инструментов командной строки (isql, gbak, gfix и т. д.) от дистрибутива сервера, а также возможность смены архитектуры установленного сервера "на лету", т. е. без переустановки дистрибутива.

Далее, версия сервера для платформы Win32 теперь использует другой ключ реестра (HKLM\Software\FirebirdSQL\Firebird). В случае отсутствия данного ключа сервер все равно будет работоспособен, его базовая директория при этом будет определяться физическим расположением файлов сервера. Следовательно, в простейшем случае (при запуске сервера как приложения, т. е. с ключом командной строки "-а") установка вообще не требуется - достаточно просто скопировать файлы сервера в отдельный каталог и запустить его.

Теперь можно иметь возможность запуска сервера Firebird параллельно с сервером IB/FBI на одном компьютере, а также запуска нескольких копий сервера (все это при условии работы на разных портах, что настраивается перед запуском сервера).

Помимо собственно СУБД, проект Firebird включает также драйверы ODBC. JCA-JDBC (Туре 4) и .NET-провайдер, которые распространяются вместе с сервером или отдельно.

Реализация языка SQL

Здесь можно назвать сразу ряд новых возможностей, как-то: новые команды DDL (RECREATE <object>. CREATE OR ALTER <object>, ALTER VIEW), полноценную поддержку больших целых чисел (встроенный тип BIGINT, реализованный как 64-битное целое), универсальные триггеры на набор операций, возможность использования выражений в параметрах процедур, группировка по встроенным функциям (например, EXTRACT) и т. д.

Поделиться:
Популярные книги

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода