СУБД Empress Ultra Embedded Database
Empress Ultra Embedded Database версии 10.20 используется разработчиками АС на основе ОСРВ QNX Neutrino 6.4.x в широком диапазоне применений: от портативных устройств до сложных интеллектуальных систем.
Особенности
Ключевыми особенностями СУБД Empress являются:
- Встраиваемость. СУБД Empress имеет модульную структуру, обеспечивающую широкие возможности по её масштабированию в зависимости от используемого функционала. Кроме того движок СУБД Empress может быть скомпонован с клиентским приложением в один программный модуль для работы в общем адресном пространстве.
- Детерминированное время выполнения операций. Эта особенность является ключевой для использования СУБД Empress в системах реального времени.
- Несколько уровней интерфейсов. СУБД Empress предоставляет разработчикам АС возможность использовать для доступа к сервисам движка интерфейсы Embedded SQL (статический и динамический), MSCALL, ODBC, JDBC и MR.
- Возможность использование любой из файловых систем, поддерживаемых ОСРВ QNX Neutrino, включая ОЗУ-резидентную, UFS (используется на носителях DVD), Power-Safe Filesystem и Embedded Transaction Filesystem.
Состав
СУБД Empress поставляется в виде комплекта разработчика, включающего несколько типов программных компонент: сервера, утилиты, интерфейсы программирования и инструменты разработки. Поставляемые утилиты позволяют решать различные задачи, например:
- Резервное копирование и восстановление БД
- Экспорт/импорт данных
- «Горячий» старт СУБД с распознаванием незавершённых транзакций
Наиболее важными программными компонентами, конечно, являются сервера Empress.
Сервера Empress
В качестве первого варианта сервера Empress следует указать широко распространённую конфигурацию, которая получила название Empress Standalone Mode. Она представляет собой движок, предоставляющий приложению доступ к локальным или доступным в сети Qnet данным через интерфейс Embedded SQL, MSCALL или MR. Физически движок и его интерфейсы реализованы как несколько статических библиотек, компонуемых с приложением.
Второй вариант сервера Empress – Empress Connectivity Server реализован в виде отдельного серверного приложения на базе движка Empress. Он предназначен для предоставления удалённым или локальным прикладным программам интерфейсов ODBC и JDBC, используя клиент-серверную архитектуру. На клиентской стороне применяются Empress-драйверы ODBC или JDBC, которые с помощью специального коммуникационного протокола Empress обеспечивают доступ прикладных программ к БД (рис. 1).

Рис.1. Схема использования Empress Connectivity Server
И наконец, третий тип сервера – Empress Replication Server. Он позволяет распределять данные из одного источника между одной или более целевых систем и обеспечивать перманентную синхронизацию таблиц-реплик с мастер-таблицами. Репликация может использоваться для решения следующих задач:
- Сокращение сетевого трафика путём создания на ЭВМ пользователя локальных копий часто используемых данных
- Обмен данными между приложениями
- Распределение вычислительной нагрузки
- Восстановление БД при системных сбоях
- Автоматическое тиражирование данных (и даже программ) в сети
Интерфейсы программирования
СУБД Empress предоставляет разработчикам несколько уровней программных интерфейсов для доступа к данным:
- MR – низкоуровневый интерфейс (API) для непосредственного доступа к БД из программы, написанной на языке С. Обеспечивается детерминированность времени выполнения MR-функций, что позволяет осуществлять WCET-анализ поведения реального времени. Интерфейс MR – это наиболее быстрый механизм работы с БД.
- Встроенный SQL – позволяет "встраивать" SQL-операторы прямо в тексты программ-приложений на языках C или C++. Впоследствии такие приложения подвергаются обработке специальным препроцессором, который заменяет SQL-операторы на вызовы соответствующих функций и процедур. После этого преобразованные тексты приложений представляют собой тексты программ на языке программирования C или C++
- MSCALL – очень простой в использовании и эффективный механизм вызова SQL-операторов из кода на языке Реализован как функция "mscall", которая имеет два аргумента – имя БД и заданный в виде сроки SQL-оператор.
- ODBC – Стандартный API для доступа из кода клиентской программы, написанной на языке С, к данным. Этот интерфейс может использоваться в разных операционных системах (включая QNX Neutrino), но наибольшее распространение получил среди разработчиков Windows-приложений
- JDBC – позволяет выполнять SQL-запросы программам, написанным на языке Java
Среди дополнительных возможностей СУБД Empress следует указать высокий уровень безопасности данных за счёт возможности низкоуровневой интеграции с внешними модулями (программными или аппаратными) шифрования.




