Существует задача перехода от иностранного программного обеспечения к отечественным аналогам, особенно остро эта проблема поднимается в последнее время [1]. Одним из вариантов решения является технология ODANT [2]. ODANT – технологическая платформа для создания распределённых информационных систем, нацеленная на их максимально эффективную разработку, поддержку и эксплуатацию.
Архитектура ядра ODANT. Программный комплекс ODANT PLATFORM включает в себя:
- объектно-файловую СУБД ODANT;
- средства разработки ODANT FRAMEWORK и ODANET – операционная сеть, поверх сети интернет [3].
Ядро ODANT состоит из пяти слоёв (рис. 1). Первый из них – хранилище. Здесь данные хранятся в объектах классов в бинарном XML-подобном формате. Второй слой – вычислительный, состоит из двух частей: In-memory tree engine обеспечивает загрузку и выгрузку данных и работу с ними, секция Node.js предназначена для исполнения серверных методов. Слой безопасности отвечает за работу политик и управление учётными записями. Маршрутизатор обеспечивает работу иерархической сети серверов, позволяет любой сущности при наличии соответствующих прав работать с любой другой вне зависимости от её физического расположения. Блокчейн хранит учётные записи пользователей, серверов, баз данных и методов. Внешние интерфейсы используются в общении систем на платформе ODANT и при интеграции со сторонними решениями.
Рис. 1. Архитектура ядра ODANT
Интерфейс среды ODANТ. Разработчиками ODANT подразумевалось, что среда может использоваться не только профессиональными программистами, но и бизнес-аналитиками, бухгалтерами и другими людьми с более низким уровнем подготовки, а администратору необходимо всего лишь ограничить права доступа для каждого из работников. Поэтому все манипуляции с данными можно совершать при помощи интерфейса среды (рис. 2), который достаточно прост и интуитивно понятен. Благодаря этому, задача обучения новых кадров для работы с данной средой значительно упрощается.
Рис. 2. Часть интерфейса среды ODANТ для манипуляции с экземплярами класса
Реализация модели предметной области. В качестве примера на СУБД ODANT реализуется модель «Биллинг коммунальных ресурсов и жилищных услуг». Физическая модель реляционной базы данных (РБД) показана на рис. 3 [4].
Рис. 3. Физическая модель РБД «Биллинг коммунальных ресурсов и жилищных услуг»
Так как СУБД ODANT является объектно-ориентированной, то все 8 таблиц реляционной модели реализованы в виде независимых классов с соответствующими полями. Каждый класс наполнен некоторым количеством экземпляров (рис. 4). Ссылочная целостность соблюдена средствами ODANT по настройке типов данных. В качестве типа данных можно указать ссылку на уже существующее поле другого класса.
Рис. 4. Реализованная модель базы данных средствами ODANT
Запросы в СУБД ODANT. Запросы к базам данных в ODANT реализуются с помощью языка XQuery. XQuery — язык запросов и функциональный язык программирования, разработанный для обработки данных в формате XML, простого текста, JSON или других предметно-специфичных форматах [5]. В общем виде синтаксис XQuery запроса на выборку можно представить следующим образом [6]:
for $x in doc("file.xml")/objects/object (: секция выбора :)
where $x/filedNum>30 (: секция условия :)
order by $x/filedString (: секция сортировки :)
return $x/fieldString (: секция возврата :)
Например, запрос на выборку номеров лицевых счетов (AccountCD) всех экземпляров класса Abonent может выглядеть так:
for $a in //PACK/OBJECT
let $nm := $a/(if (@key != '') then @key else (@AccountCD))
order by $nm
return element V {
attribute AccountCD {$nm },
$a/parent
}
Полученные данные в результате выполнения запроса на выборку ODANT позволяет возвращать в различных форматах. На рис. 5, а представлен пример результата запроса в виде XML-файла, а на рис. 5, б – в виде таблицы. Переключение между способами представления данных осуществляется с помощью интерфейса среды, вносить изменения в сам запрос не требуется.
а
б
Рис. 5. Результаты запроса в различных форматах
Внедрение ODANT в системы крупных организаций. Структура крупной организации представляется большим количеством разнородных систем, что создаёт большое количество проблем при попытке взаимодействия их друг с другом. На первом этапе интеграции создаётся сеть серверов ODANT с чёткой иерархией, дублирующей структуру организации, и настраиваются коннекторы для обмена данными (рис. 6). После синхронизации обмен данными между системами осуществляется через коннекторы и шину ODANT. На этом этапе бизнес-логика ещё не импортирована в систему ODANT, но уже имеется возможность получать отчёты через новую сеть. Далее, по мере работы, всё большее количество задач решается через ODANT, пока необходимость в старой системе полностью не исчезнет.
Рис. 6. Внедрение технологии ODANT в информационную систему крупной организации
СУБД ODANT является объектно-ориентированной, а это значит, что ODANT представляет сущности в виде классов. Это даёт ряд преимуществ. Во-первых, из-за того, что на серверной части системы данные и так реализованы в объектно-ориентированном формате (такими объектно-ориентированными языками программирования как C++, C#, Java и др.), то необходимость в неуклюжих ORM-преобразованиях исчезает, что увеличивает потенциальную производительность, снижая pecypcoзaтpaтность системы. Во-вторых, не требуется выделения отдельного хранилища баз данных т.к. хранилище ODANT является частью ядра. В-третьих, объектно-ориентированное хранение данных позволяет более гибко представлять данные пользователю, не только в виде таблиц, но и в виде XML-файла, массива, иерархического дерева и др.
ODANT в разработке и эксплуатации. ODANT – полноценная система, нацеленная на получение оперативной информации. Преимуществом при эксплуатации и разработке системы с ODANT является тот факт, что для работы с СУБД не нужно создавать или использовать сторонние клиентские приложения. Среда ODANT позволяет полностью работать с данными как со стороны клиента, так и со стороны сервера. В рамках производственной организации разработчики имеют более широкий доступ к среде и данным. Работникам, чьей задачей не является разработка, имеется возможность ограничить права доступа. Для этой цели в ODANT предусмотрена полноценная система безопасности пользователей, ролей и логов (рис. 7).
Рис. 7. Политика безопасности
ODANT выглядит перспективной отечественной разработкой, которая обладает большим потенциалом реализации в различных сферах, особенно в рамках задачи импортозамещения. На данный момент платформа ODANT активно развивается и внедряется в различные области. Технология ODANТ – большой шаг вперёд отечественной разработки программного обеспечения.