Направление развития реляционных СУБД в последние годы заметно меняется. Если предыдущее десятилетие они развивались, чтобы обеспечить быстрый доступ к алфавитно-цифровым данным, то теперь часто нужно хранить еще изображение и звук. Существенно изменилась аппаратная среда - она стала сетевой. С развитием WWW появилась необходимость поддерживать HTML-страницы, 2- и 3-мерные картографические данные и т. д. Можно сказать, что в каждой сфере применения возникают свои уникальные сложные типы данных, предусмотреть работу с которыми даже в самом универсальном механизме баз данных невозможно. Постоянная адаптация РСУБД под новые типы данных требует значительных усилий разработчиков. Тем не менее, заказчику необходимо расширение РСУБД в любом направлении. Решение этой проблемы предложено фирмой Informix Software в технологии DataBlade.
Есть одна интересная параллель между разработкой программных и аппаратных средств. Программирование, как более молодая дисциплина, активно заимствует решения, используемые в конструировании: модульность, библиотеки, общие шины (т. е. программные интерфейсы), plug and play и др. Часто программисты со стажем утверждают, что в программировании ничего особенно нового не произошло. Смею утверждать, что это не так: дело, наверное, в том, что в реальной жизни параллельно существует множество технологий программирования и возникают всё новые и новые. Мой приятель в Томске до сих пор пишет бухгалтерские системы на Клиппере под DOS и не переходит под Windows, потому что ещё достаточно высок спрос на его продукцию.
Технология DataBlade находится сейчас как бы на острие развития программных технологий. Она базируется на двух очень мощных методах:
- программном аналоге технологий plug and play;
- и открытом для третьих фирм интерфейсе разработки подключаемых модулей.
Пользуясь этим интерфейсом и соответствующим ПО любая фирма может подготовить стандартный модуль, подключаемый к механизму БД Informix Universal Server и Illustra Server, и расширить возможности этих СУБД по работе с любыми данными.
Заказчик может комбинировать DataBlade-модули от любых разработчиков либо разрабатывать их сам. В качестве интерфейса модули используют DataBlade API. Кроме поддержки новых типов данных в DataBlade-модулях реализуются новые функции, интерфейсы, методы доступа и индексации. Именно через такой модуль была поддержана работа со смарт-картами во время Пятой всемирной конференции пользователей Informix (см. PC Week/RE, № 31/96, c. 1).
Главный компонент большинства DataBlade-модулей - набор новых абстрактных типов данных, которые определяются исходя из требований конкретного класса приложений. Абстрактные типы данных рассматриваются аналогично встроенным типам данных (целые, строковые, даты и т. д.), поэтому они могут запоминаться, храниться, быть найденными по запросу, передаваться в качестве аргумента функции, индексироваться и т. д., как и встроенные типы данных. Есть несколько путей определения новых типов данных (ТД):
1) наследование, т. е. определение через уже существующие типы. Новые ТД наследуют все методы, которые оперируют над порождающим их классом;
2) создание композитных ТД из существующих ТД. Композитный тип инкапсулирует существующие ТД в определение нового ТД;
3) наконец новый ТД можно определить, написав на Си процедуры для выделения памяти для значений и конвертирования из текстового представления во внутреннее.
Преимущество последнего метода в том, что он более компактен, чем композитный ТД, и код выполняется быстрее. Функции для новых ТД могут быть написаны на SQL или на Си, затем сохранены в виде DLL-библиотек.
Для создания рынка DataBlade-модулей третьими поставщиками предназначена программа Informix DataBlade Developers Program. Одно из правил любой бизнес-игры "не играть против себя" здесь честно выполняется. Фирма не претендует на создание приложений, чем привлекает на свою сторону многих партнёров-разработчиков.
В качестве одного из средств Informix предлагает пакет DBDK, служащий для быстрой разработки DataBlade-модулей.
В настоящее время в этой программе участвует 24 фирмы и многие из разработанных ими модулей уже готовы.
Дополнительную информацию можно получить по адресам: http://www.informix.com и http://www.illustra.com.
Эдуард Пройдаков