Информационный раздел для IT-специалистов.
Концепция технологии
Технология ODANT базируется на парадигме первичности данных над функционалом, согласно которой, функционал не может существовать отдельно от данных, и является лишь реализацией поведения информационных сущностей, выраженных в объектных моделях.
Компонентный подход к информационным моделям позволяет наиболее быстро создавать и максимально гибко обслуживать информационные системы любой сложности, используя инкапсулированные решения независимых разработчиков, что ведет к возможности конкурентной разработки частей систем, и как следствие более высокого качества и низкой стоимости создания и обслуживания приложений.
В конечном счете, количество готовых информационных компонентов перешагнет критическую массу (технологическая сингулярность), при которой разработка новых компонентов полностью прекратится, и создание систем сведется лишь к ассемблированию уже имеющихся моделей.
История ODANT
История подходов к проектированию ИС
Особенности понимания (ЦКП ODANT)
Платон и котики (ЦКП ODANT)
Компоненты платформы
Платформа включает в себя следующие компоненты:
- Сервер ODANT. Является одновременно сервером баз данных, сервером приложений, веб-сервером. Написан на C++. Работает под ОС Windows (обычной или серверной редакции), а также под Linux (Debian, RedHat-подобные дистрибутивы не старше 10 лет, AltLinux, AstraLinux).
- 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, может быть представлена в виде трех слоев. Первый — статический. Он же — слой справочников. Реализует централизованную систему управления нормативно-справочной информации (НСИ). Второй слой — операционный, содержит первичные документы. Третий — аналитический: бухгалтерские, бюджетные, управленческие журналы. При проведении транзакций результаты анализа данных в регистрах могут служить источником информации для новых первичных документов. Этот механизм основан на логике, заложенной в событиях.