Программы для D3 разрабатываются на встроенном Бейсик-подобном языке (FlashBASIC). Программа может быть откомпилирована в объектный код виртуальной машины или в машинный код реального процессора базовой системы (такая процедура называется flashing). В первом случае откомпилированный код легко переносить между разными реализациями D3, Flashing же позволяет обеспечить максимальную производительность.
Для доступа к данным можно использовать SQL, – правда, его реализация в D3 находится на невысоком уровне (например, нет совместимости со стандартом SQL92). Кроме SQL существует развитый собственный язык запросов AQL (Access Query Language), который хорошо учитывает многомерную структуру и позволяет эффективно ее использовать.
Интересно реализован HotBackUP – механизм «горячего» резервирования данных. На «мастер»-сервере разворачивается журнал транзакций, в который записываются все запросы клиентов. Транзакции выполняются одновременно на master– и slave-серверах. Такая технология обеспечивает высокую надежность и защиту данных от потерь.
D3 может поставляться со средствами интеграции. FlashCONNECT служит для эффективной работы с Web, посредством этой подсистемы программы на FlashBASIC могут формировать вывод в виде HTML с использованием шаблонов. CGI-сценарий обеспечивает обмен данными между посетителями сайта и базой данных.
OSFI (Open Standard FileSystem Interface) – еще одно средство интеграции, входящее в состав D3 и позволяющее получать прозрачный доступ к удаленной системе D3. Кроме того, с помощью OSFI прямо из D3 можно прочитать файл из файловой системы ОС или данные из удаленной базы любого типа через Microsoft ODBC. Естественно, через ODBC можно получить данные и из самой D3.

Среда разработки FlashGUI также полезный инструмент, представляющий собой API для управления графическим терминалом Briz непосредственно из D3 с помощью программ на языке FlashBASIC. Терминал Briz, получая ESC-последовательности, преобразует их в элементы оконного интерфейса: окна, кнопки, полосы прокрутки, меню и пр. На базе D3 строится несколько коммерческих отечественных разработок. Наиболее известны системы автоматизации автовокзалов «ДЮК» (www.dyc.ru), библиотек LiberMedia (www.libermedia.ru), внешнеторговых организаций ГРАНШОП (www.gran-service.ru). Они функционируют на нескольких платформах: AIX, Solaris, Linux, Windows.
Документацию для пакета D3 на русском языке можно найти на www.infoved.ru/resources/documentation, а D3FlashGUI и Briz – на www.amvm.ru.
jBase
jBase International, www.jbase.com
Оценка: хорошо
Эта БД представляет собой новое поколение многомерных СУБД. В отличие от D3, в jBase не используется собственная виртуальная машина, она лишь обрабатывает и выполняет пользовательские запросы. Точнее, пользовательские процессы сами делают выборку, а СУБД играет роль «регулировщика», контролирующего системные и пользовательские блокировки. Несмотря на то что с применением такой архитектуры несколько снизилась производительность (по сравнению с D3), разработчики этой СУБД смогли добиться хорошей масштабируемости как в многопроцессорных, так и в кластерных системах.
Однако главная особенность jBase – средства интеграции. В первую очередь это, конечно, продукт JEDI – интеграция различных СУБД. Он позволяет jBase работать с ORACLE, MS SQL, DB2, uniVerse напрямую. Кроме того, существует совместимость различных типов ФС (J1-J5, JRFS) для доступа к данным, хранящимся непосредственно в файлах ОС.
При использовании технологий интеграции прикладная система на базе jBase даже «не знает», с какой БД в данный момент она работает. Переход с одной СУБД на другую прозрачен и не требует внесения изменений в исходные тексты. Так, при переходе с архитектуры MVDB в реляционную с помощью подсистемы JEDI устанавливаются необходимые реляционные ссылки, ограничения целостности, создаются индексы, необходимые для эмуляции многозначной структуры, учитывая особенности конкретной реляционной СУБД, на которую происходит переход. По словам представителей компании jBASE International, скорость выборки данных при переходе на реляционную модель с применением технологии JEDI падает незначительно. Например, при использовании ORACLE выборки работают в среднем всего в 1,5 раза медленнее, чем с jBASE.
В качестве языков доступа к данным, помимо «родного» языка jQL, jBase на очень высоком уровне работает с SQL (в том числе SQL92), что делает эту базу легко осваиваемой. Для SQL в jBase созданы специальные расширения, позволяющие более эффективно работать с многомерной структурой данных.
Реализация доступа посредством ODBC, JDBC, ADO, OLE-DB к jBase была выполнена независимой компанией Attunity Data Connect. Она же разработала XML-интерфейс к более чем 35 типам источников данных, в том числе текстовым и XML-файлам, реляционным и прочим СУБД, а также менеджерам транзакций.
В качестве средств разработки, помимо традиционного для MVDB Бейсика, jBase предлагает использовать также Cи и Java. В реализации Бейсика разработчики jBASE применили нестандартный подход: вместо транслятора был создан препроцессор, переводивший код Бейсика в код Cи или Java, который впоследствии компилировался стандартными компиляторами базовой ОС.
Для интеграции с Web jBase предлагает продукт jWB (jBase Web Builder), основанный на Java script и DHTML с расширениями для включения в себя объектов jBASE. Отметим, что jWB может быть также дополнен пользовательскими классами.
jBase работает на нескольких платформах, в том числе Linux и Windows.
IBM U2
IBM Corp., www.ibm.com/software/data/u2
Оценка: очень хорошо
Это даже не одна, а сразу две СУБД – UniData и UniVerse. По сути, очень похожие продукты, однако UniData построена по классической схеме виртуальной машины, а UniVerse – как БД нового поколения, работающая со средствами базовой ОС. Кроме того, в отличие от UniData, UniVerse использует репликацию. Особенность UniData – средства интеграции, предоставляющие возможность обращаться к другим БД, как к своим таблицам.
Для доступа к данным обе БД могут использовать как SQL, так и собственный язык запросов RetrieVe, который предоставляет расширенный доступ к многомерной структуре.
В качестве средств разработки используется классический для этого типа БД язык Бейсик, однако существуют средства, позволяющие вызывать внешние процедуры, написанные на языке Cи. Для интеграции в среду Microsoft Windows у IBM существует технология wIntegrate, аналогичная FlashGUI у D3. С помощью wIntegrate приложения, созданные на Бейсике и выполняющиеся внутри БД, могут управлять графическими объектами интерфейса Windows (кнопки, меню, выпадающие списки и пр.) с помощью своеобразного терминала.
Командный язык TCL позволяет как использовать встроенные системные команды, так и создавать свои на базе программ на языке Бейсик, команд и программ ОС, а также запросов RetrieVe.
На основе СУБД UniVerse IBM предлагает продукт MITS (www.mits.com) – систему принятия решений, содержащую набор инструментов для построения хранилища данных, его администрирования и управления им, а также набор средств Business Intelligence и интерфейсов для других OLAP-средств.
Другое интересное решение на базе UniVerse – продукт IBM Informational server (www.ibm.com/software/data/integration), позволяющий создавать обобщенное хранилище данных из различных внешних источников.