Информационный раздел для IT-специалистов.

Концепция технологии

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

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

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

История ODANT
История подходов к проектированию ИС
Особенности понимания (ЦКП ODANT)
Платон и котики (ЦКП ODANT)

Компоненты платформы

Платформа включает в себя следующие компоненты:

  • Сервер ODANT. Является одновременно сервером баз данных, сервером приложений, веб-сервером. Написан на C++. Работает под ОС Windows (обычной или серверной редакции), а также под Linux (все Debian-подобные дистрибутивы не старше 10 лет). Также реализовано развертывание сервера на MIPS и ARM-устройствах (Raspberry Pi).
  • Windows Framework («толстый» клиент), реализован на C#.
  • Web Framework («тонкий» клиент). Основан на PWA, работает под браузерами: Google Chrome, Mozilla Firefox, Opera, Safari).
  • Набор базовых классов, реализующих системную функциональность (типы полей, печать, подшивка, импорт, журнал и другие).

Объектная СУБД

Понятие класса в СУБД ODANT аналогично термину в ООП. Класс описывает свойства сущностей, может обладать методами для работы с данными, визуальными представлениями — то есть, соответствует модели MVC. Данные хранятся в объектах класса. Так, класс является функционально законченным и самодостаточным компонентом. Прикладное решение, информационная система — это набор связанных между собой классов.

Для хранения метаданных (описания класса) и данных используются форматы, основанные на XML, оптимизация производительности в итоге привела к разработке собственного парсера XML.

Внутренние форматы данных
Подробнее о СУБД ODANT
Хранение данных в объектах ODANT
Сравнение ORM-систем и ODANT (ЦКП ODANT)
Сравнение MS SQL и СУБД ODANT (ЦКП ODANT)
Возможна ли прямая замена SQL СУБД (ЦКП ODANT)

Архитектура ядра

Архитектура ODANT представляется в виде 5 слоев:

 

  • Хранилище.  Данные хранятся в объектах классов в бинарном XML-подобном формате OBX (Object Binary XML). Помимо структурированных данных в файловой структуре хранилища находятся исполняемый программный код (ECMAScript) и представления информационных сущностей (Progressive Web Apps, Polymer).
 
  • Вычислитель.  Состоит из двух частей. Первая — In Memory Data Tree. Представляет данные из хранилища в виде структур, соответствующих объектной парадигме, управляет временем жизни структур в памяти и синхронизацией с хранилищем. Манипулирование данными возможно как методами API, так и с помощью языка XQuery. Вторая часть — модифицированное ядро Node.js, исполняющее серверный программный код и обрабатывающее события.
 
  • Система безопасности. Обеспечивает разграничение доступа к информационным сущностям и их частям на основании политик безопасности. В настоящее время используются клиентские сертификаты, в разработке находится собственная блокчейн-система для хранения учетных записей пользователей, серверов, баз, методов и другой критичной информации.
 
  • Маршрутизатор.  Организует работу сети ODANT. Сеть имеет логическую иерархию серверов (например, «головной офис — территориальные управления — филиалы»), обеспечивающую механизмы наследования и потоки данных в рамках бизнес-логики. На более низком уровне, с точки зрения передачи данных, сеть является одноранговой.  Каждая сущность ODANT имеет уникальный многоступенчатый адрес (FullId), однозначно указывающий на место хранения каждой сущности в рамках сети ODANT, и к ней можно обратиться из любой точки сети при наличии соответствующих прав.
 
  • Внешние интерфейсы. Реализован собственный TCP-интерфейс, поддерживаются стандартные протоколы  (HTTP, HTTP/2, MQTT) через REST API. Набор интерфейсов легко расширяется.

Внутренние форматы данных

ODANT нативно работает с XML-подобными форматам. Если рассматривать файловую структуру класса, то в корневом каталоге находится class.ocl — это непосредственно описание класса в виде метаданных. Они соответствуют формату ODBML.

В каталоге data хранятся объекты класса — непосредственно данные. Здесь уже используется OBX (Object Binary XML), основанный на XML бинарный формат.

Адресация

Каждая сущность в ODANT имеет полный идентификатор, показывающий точку, в которой она находится как в рамках БД, так и в глобальной сети.

Первая буква названия каждой ветки иерархии является префиксом: Host, Partition, Base, Module, Class, Object (H:, P:, B:, C: и т.д.). 

Идентификаторы элементов в пределах одного уровня уникальны, однако они могут повторяться в разных ветвях иерархии. При перемещении любой сущности внутри системы, длина ее идентификатора (H:/P:/B:/M:/C:/O:) в любом случае останется прежней, составляя не более 6 шагов. В приведенном примере базы 345, 567, 789 находятся внутри родительской базы 234. В адресе это не отображено, однозначность адресации определяется уникальностью идентификаторов баз 123…789. Несмотря на то, что в приведенной структуре существуют два класса с идентификаторами 555, они находятся в разных модулях и их полные адреса будут выглядеть как:
H:12345/P:WORK/B:789/M:111/C:555  и
H:12345/P:WORK/B:789/M:222/C:555.

Архитектура ИС на платформе

Архитектура информационной системы, построенной на платформе ODANT, может быть представлена в виде трех слоев. Первый — статический. Он же — слой справочников. Реализует централизованную систему управления нормативно-справочной информации (НСИ). Второй слой — операционный, содержит первичные документы. Третий — аналитический: бухгалтерские, бюджетные, управленческие журналы. При проведении транзакций результаты анализа данных в регистрах могут служить источником информации для новых первичных документов. Этот механизм основан на логике, заложенной в событиях.