База в облаке. Часть 3. Что предлагается.

1. Отказаться от RationalRose. Либо свой UML-редактор, либо существующий, но с доработками — возможностью редактирования поведения объектов. Например — WhiteStarUML (если есть исходные коды). Выигрыш во времени с доработкой существующего очевиден.


2. Хранение модели и БД перенести в облако. Для этого необходим собственный веб-сервер (написан уже на 80%).

Это позволит позиционировать платформу как «более продвинутую» CMS, но для создания не сайтов,  а информационных систем. Вот такой продукт, IMHO, будет продаваться :).

База в облаке. Часть 2. Что получилось.

   В период с 2004 по 2009 г. я очень плотно занимался этим проектом (рабочее название FastBase).

   Был написан деск-топный вариант. Использовались компоненты компании BoldSoft (компания была куплена корпорацией Borland), к сожалению, даже не нашел ссылки на ее сайт.

   Для разработки UML-модели применялся редактор RationalRose, для которого BoldSoft и разработала плагин. Основной особенностью компонента было то, что он позволял, во-первых, генерировать структуру БД, во-вторых, внести объекты UML-модели в объектное пространство приложения, и оперировать с ними как с классами Дельфи.

   Сначала немного о терминах:
 

База в облаке. Часть 1. Что хочется.

                  Новая парадигма проектирования приложений

   Большинство предлагаемых сред разработки приложений ориентировано на парадигму «форма приложения -> элемент управления -> свойства элемента управления –> объект модели». При этом элемент управления (окно ввода, сетка и т.п.) может быть привязан к объектам модели. Разработчик настраивает свойства элемента управления для достижения необходимой функциональности (представление объекта, события при его изменении, проверки введенной информации …). Как правило, бизнес-логика (свойства и поведение объектов модели) реализуется на сервере БД в виде триггеров и хранимых процедур, или в кодеприложения. При этом приложение часто состоит из множества форм с однотипными элементами управления, на которых приходится повторять рутинную процедуру их настройки. При изменении свойств объекта модели необходимо менять свойства всех элементов управления, связанных с объектом.
В результате «классический» способ разработки приложений и информационных систем имеет множество ограничений. При изменении бизнес-логикиили набора атрибутов объекта необходимо менять структуру БД (не потеряв при этом введенные данные) и кодпрограммы, свойства элементов управления (полей ввода/редактирования и т.д.), что приводит к необходимости многократно переписывать и отлаживать приложение. Такой подход затрудняет модификацию и развитие информационной системы.

Предлагается новая парадигма – «объект модели -> свойства объекта-> свойства элемента управления». Она является дальнейшим развитием технологии Model Driven Architecture (MDA) — (архитектура, управляемая моделью). От «классического» способа разработки данная парадигма отличается более высоким уровнем «абстракции» — во главу угла ставятся свойства объекта модели, а не элементов управления, связанных с объектом. Основное положение — модель приложения (описание структуры БД на языке UML) и поведениеобъектов (то есть бизнес-логика) отделеныот кода приложения.
На базе этой парадигмы планируется создать платформу разработки информационных систем
Что хочется получить:
  • Для разработки информационной системы достаточно спроектировать структуру БД на языке UML. 
  • Настройка свойств объектов, не входящих в спецификацию языка UML, производится в визуальном редакторе модели. 
  • Большинство стандартных операций должно быть уже встроено в платформу, для более детального описания — «мастера» (визарды), облегчающие работу с платформой. 
  • После описания свойств объектов модели приложение должно быть готово к работе.
Должен получится продукт не для программиста, а для конечного пользователя (конечно, достаточно продвинутого).

Все формы ввода/отображения объектов строятся динамическисогласно информации о свойствах и поведении объектов в модели — исполняющий модуль приложения не зависит от структуры БД и бизнес-логики (подобно тому, как Internet Explorer не зависит от html-страниц — и отображает ее независимо от содержащихся в ней данных).
Преимущества такой технологии: