VisualData

About project

 

 

 

Мы хотим предложить мировому сообществу разработчиков прикладных программ принципиально новую парадигму программирования, новый язык программирования, и соответствующую среду разработки — платформу Visual Data, полностью укомплектованную всем необходимым для быстрого создания, развертывания и надежной эксплуатации приложений.

 

Аналоги

Многочисленные средства Rapid Application Development (RAD) подразделяются на две большие категории: Low-Code платформы, и No-Code платформы. В категории No-Code прикладные программы создаются исключительно методами визуального конструирования, без написания программных кодов. В приведеном по ссылке обзоре подробно рассмотрено более 100 таких платформ, и список продолжает непрерывно пополнятся.

Не прибегая к подробному анализу обзора, мы лишь хотим подчеркнуть фундаментальные отличия предлагаемого нами решения от всех конкурирующих No-Code продуктов, перечисленных в нем. 

 

Мы принципиально отличаемся:

  — язык и парадигма

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

Если для описания сколь угодно обширной предметной области достаточно экземпляров всего четырех элементов: сущности-класса, ее отдельной характеристики-атрибута, отношения классов и связи атрибутов; то следует признать, что эти элементы и являются единицами языка, а ER-модель данных, образованная их экземплярами — программой. И этому есть простое объяснение: логическая модель приложения, которая описывает внутреннее устройство целевой предметной области и взаимодействие всех ее частей, в соответствующей вычислительной среде способна обеспечить получение такого же результата, которого мы добиваемся обычными технологиями с использованием различных языков программирования, их сред исполнения и фреймворков. А название парадигмы — "Программирование в терминах предметной области" наилучшим образом отражает ее суть: мы создаем обладающую всеми свойствами программы модель приложения, используя для этого смысловые понятия сущностей и связей предметной области в их первозданном виде.

  — математический аппарат

Математическую основу всех современных СУБД, как подраздел теории множеств, заложил Э.Ф.Кодд еще в 70-х годах прошлого века. На обиходном языке краткий итог его реляционной теории можно изложить так: "Любую предметную область можно описать системой связанных таблиц". Связь двух таблиц обеспечивается совпадением значений в специальных колонках в каждой из таблиц. При этом одна из колонок содержит значения, которые используются в качестве первичного ключа, позволяющего идентифицировать конкретную запись в таблице.

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

  — встроенная база данных

В попытке удовлетворить всех желающих, современные реляционные и NoSQL СУБД создавались независимо, как "вещь в себе", предоставляя для доступа к своему содержимому некоторый функционально-декларативный API. Соответственно, несть числа вариантам реализации ORM (Object-relational mapping), которые пытаются "подружить" с той или иной СУБД ту или иную платформу. И каждая такая реализация характеризуется собственным уникальным набором проблем и ограничений.

В вычислительной среде Visual Data все действующие субъекты — мета-данные (модель данных + формы сценария), а также собственно данные, имеют универсальную форму объекта данных. Что закономерно приводит к мысли использовать для их хранения и управления ими простые и производительные средства объектной СУБД. Именно поэтому, в отличие от всех прочих, Visual Data изначально проектировалась как платформа на основе собственной встроенной СУБД.

  — бесконечная гибкость

Всего одна, но непреодолимая проблема, сильно ограничивающая их применимость, характерна для всех без исключения существующих No-Code (да и Low-Code) платформ. Это их ограниченная функциональность.

Между тем, бесконечная гибкость и неограниченная функциональная сложность прикладной программы достижимы, если следовать одному фундаментальному принципу природы. Всё наблюдаемое нами бесконечное разнообразие окружающего нас мира в самых различных его проявлениях получено одним единственным способом: бесконечным комбинированием экземпляров базисных сущностей, набор которых минимален с точки зрения их количества и способов взаимодействия. Платформа Visual Data следует этому принципу достаточно строго:

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

  — всеядность

Платформа делает прикладную программу равнодоступной с любого устройства, настольного или мобильного, независимо от используемой устройством операционной системы, а также размеров (разрешения) экрана устройства. Одновременно при этом, прикладная программа доступна через любой веб-браузер, что позволяет использовать ее как обычное веб-приложение. Кроме этого, клиентская и серверная части платформы, скомпилированные как под Windows, так и под Linux, могут одновременно исполняться даже под разными операционными системами. Подробнее …

  — скорость разработки

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

  — независимость и надежность

Одним из базовых принципов, лежащих в основе проектирования и разработки платформы Visual Data, был принцип независимости. Независимости от операционной системы. Независимости модели и сценария приложения от программной реализации самой платформы. Независимость от сторонней СУБД. И полная независимость от чьих-либо сторонних библиотек и фреймворков — не только во имя чистоты лицензирования, но и для достижения высокого уровня надежности собственно платформы. Высокий уровень надежности прикладной программы в среде платформы Visual Data, определяется тремя факторами: алгоритмической надежностью, надежностью исполнения, и способностью к авто-восстановлению. Подробнее ...

  — наглядность и открытость

Одним их преимуществ No-Code платформ по праву считается наглядность восприятия бизнес-логики приложения. И это преимущество надо использовать в полной мере не только при командной разработке функционально сложного продукта. Не меньшее значение приобретает возможность открыть для всех желающих модель приложения Бухгалтерии или ERP, например, с тем, чтобы развивать ее силами сообщества независимых разработчиков и внедренцев. И на эту цель работает не только полная независимость модели и сценария приложения от кода платформы, но и встроенные инструменты и механизмы многоуровневого конфигурирования модели и сценария приложения в привязке к авторизации пользователя.

 

Технологический стек

Платформа Visual Data представляет собой вычислительную среду, реализующую систему логически связаных технологий:

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

  • Технология сущность-представление (не не имеет ничего общего с технологией control-view) вводит в мета-модель системы управления данными такое понятие как интерфейсное представление сущности. Любой субъект мета-модели: элементарная сущность (класс, атрибут или отношение), а также событие сущности, обладает по меньшей мере одним представлением для каждого типа интерфейса — как визуального, так и не визуального. Абстрактное представление унифицированно связывает субъект мета-модели с компонентами интерфейса, экземпляры которых в декларативной форме входят в состав представления, и своими внутренними методами обеспечивает взаимное взаимодействие субъекта с этими экземплярами. На уровне модели данных предметной области, представление пользовательского класса создается навигационным комбинированием декларативных экземпляров представлений атрибутов и событий в составе экземпляра представления собственно класса. Совокупность представлений классов модели данных образует многооконный сценарий приложения, который может быть получен простым визуальным конструированием.

  • Технология объектного управления данными предоставляет простые, и как следствие - производительные методы организации долговременного хранения, модификации и извлечения логически связанных данных в формате изолированного объекта, с соблюдением всех требований ACID. Совокупность всех объектов образует объектную базу данных, в которой каждый объект обладает уникальным идентификатором. Идентификатор объекта представляет собой простое число, которое в один шаг конвертируется в указатель на размещение объекта на диске или в памяти, и используется в том числе для организации логической связи объектов. Сочетание универсального способа идентификации с представлением внутреннего содержимого объекта данных как кортежа контейнеров, позволяет унифицированно хранить в объектной базе данных как собственно данные, так и управляющие приложением субъекты модели данных, в равной степени обеспечивая для них соблюдение транзакционной и "состоятельной" целостности. При этом, в пределах одной физической базы данных может существовать произвольное множество полностью изолированных логических баз данных.

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

  • Технология визуальных примитивов позволяет, не прибегая к программированию, простым созданием декларативных экземпляров, производных от всего четырех простых визуальных компонент, реализовать сценарные формы произвольного уровня сложности, включая интерактивные графики и диаграммы. При этом сильно упрощается процесс администрирования содержимого форм: управление координатными свойствами унифицировано, а для управления всеми остальными свойствами своего экземпляра каждый примитив предоставляет простой и наглядный пиктографический диалог.

  • Технология прямого web-отображения позволяет "на лету" конвертировать любую сценарную форму визуального интерфейса, созданную по технологии сущность-представление, в интерактивный html-образ с точным сохранением ее внешнего вида и компоновки при отображении в любом существующем WEB-браузере на персональном компьютере или любом мобильном устройстве.

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

 

Состав и архитектура

Платформа реализована в традиционной архитектуре сервер-клиент, и характеризуется функциональным единством, компактностью, минимальными требованиями к аппаратной части, и независимостью от особенностей реализации операционной системы, самостоятельно используя в "первозданном" виде ее основные ресурсы: диск, память, TCP-сокеты и графическую подсистему.

В функциональный состав версии 3.0 входят:

  • Файловое хранилище с функцией автоматического восстановления базы данных после аппаратного сбоя;
  • Система управления объектной базой данных с интерпретатором модели данных;
  • Подсистема управления интерфейсными (сценарными) ресурсами;
  • Трехмерный визуальный конструктор модели приложения;
  • Визуальный конструктор экранных, печатных, и произвольных файловых ( в том числе XML) форм;
  • Библиотека визуальных компонент-примитивов и подсистема экранной визуализации данных;
  • Масштабируемый WEB-сервер с конвертером экранных форм в html-образ;
  • Менеджер управления печатными формами;
  • Отдельная клиент-серверная утилита удаленного администрирования.

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

Дополнительные функциональные и эксплуатационные возможности:

  • Полная независимость от аппаратной архитектуры и операционной системы, от способа использования (локально, в корпоративной сети или в «облаке»), от способа доступа (через web-браузер или тонкий клиент);
  • Поддержка неограниченного количество изолированных логических баз данных внутри одной физической, с полным контролем прав доступа авторизованного пользователя;
  • Гибкое, определяемое правами пользователя, управление визуальными формами сценария приложения и их содержимым;
  • Прямое использование методов естественной навигации в логически связанных данных;
  • Наглядная пространственная (3D) визуализация большого количества сущностей и связей целевой бизнес-задачи, с анимацией внутренних процессов и зависимостей;
  • Возможность конструировать (не прибегая к программированию) экранные формы произвольного уровня внутренней сложности, включая графики и диаграммы;

Специфичной особенностью версии 3.0 является интеграция веб-серверных функций в клиентскую часть платформы. Модуль клиента можно использовать не только как средство удаленного дизайна прикладной программы или десктопный браузер сценария, но и как масштабируемый веб-сервер, обслуживающий клиентские подключения. При этом подсистема экранной визуализации динамически конвертирует экранные формы сценария в html-образы, которые в браузере выглядят абсолютно идентично десктопным.

 

История

Технология Visual Data разрабатывается с 2004 года для удовлетворения собственных потребностей в простом, эффективном и независимом техническом средстве, позволяющем быстро создавать функционально сложное программное обеспечение.

С 2008 года функционирует стабильная версия 2.0 платформы. На раннем сайте компании размещена подборка прикладных программ, созданных в ее вычислительной среде для подтверждения правильности и качества выбранных технологических решений и характеристик платформы. Что примечательно, сама платформа Visual Data + все прикладные программы, созданы командой, состоящей всего из одного постановщика и двух программистов.

Для вывода на рынок создана версия 3.0, в настоящий момент работоспособная, но требующая доводки до уровня промышленного изделия. Живой пример создания и эксплуатации примитивного приложения в версии 3.0 демонстрируется ниже: