Системный администратор - Алексей Костарев, Игорь Братчиков. Платформа Flexberry с открытым кодом для профессиональной разработки ПО. (Материал по докладу на 15-й конференции разработчиков СПО)

В статье рассматривается разрабатываемая на принципах свободного программного обеспечения платформа Flexberry – платформа для проектирования, разработки и поддержки сложных информационных систем

 

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

 

Введение

 

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

 

Программная платформа Flexberry вобрала в себя богатый опыт создания информационных систем на протяжении многих лет развития. Платформа предоставляет методику работы проектной команды и технические инструменты для ее реализации.

 

Основная часть

 

Типы информационных систем

 

Информационные системы классифицируются по различным параметрам [1]. Обобщение опыта компаний-партнеров позволило выделить виды информационных систем, которые чаще других создаются компаниями на заказ, именно этивиды информационных систем поддерживаются платформой Flexberry:

 

комплексные учетные системы;

автоматизация бизнес-процессов и документооборота;

веб-приложения;

мобильные приложения;

интеграционные информационные системы;

аналитические системы;

геоинформационные системы.

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

 

Задачи платформы

 

На основе анализа выполненных проектов был составлен список задач, направленных на оптимизацию процесса проектирования, разработки и сопровождения информационных систем:

 

быстрое создание прототипов программного решения;

повышение эффективности взаимодействия с заказчиками за счет применения визуальных моделей систем и процессов;

снижение общей трудоемкости процесса разработки и сопровождения информационных систем;

возможность применения готовых программных компонент и готовой архитектуры;

быстрое разворачивание в гетерогенных сетях, включая облачные платформы.

Основа методики проектирования и разработки

 

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

 

исходный код программы (подход Code First [2]);

структура данных приложения (подход Database First [3]);

пользовательский интерфейс (подход UI-First [4]);

формализованная каким-либо образом модель приложения (подход Model First [5]).

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

 

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

 

Подход Database First позволяет наиболее оптимальным образом приготовить структуру данных под бизнес-процессы. Также в этом случае бизнес-аналитикам, способным понимать SQL или пользоваться инструментами работы с СУБД, становится доступной информация о проектируемой информационной системе.

 

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

 

Подход UI First является самым наглядным, поскольку основным источником информации будут пользовательские интерфейсы, в большинстве своем ориентированы на удобное визуальное восприятие информации конечными пользователями. При таком подходе довольно удобно выстроить общение с заказчиками и экспертами в предметной области.

 

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

 

В основе технологии создания систем на платформе Flexberry лежат подход Model First и архитектура, управляемая моделью

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

 

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

 

В основе технологии создания систем на платформе Flexberry лежат подход Model First и архитектура, управляемая моделью (Model Driven Architecture) [6]. В рамках этой архитектуры сначала с помощью редактора в формате UML или визуального конструктора форм создается модель предметной области проектируемого приложения. По модели создается прототип работающего приложения методом кодогенерации. Данный прототип дорабатывается программистами. Затем эта модель уточняется в ходе развития и поддержки проекта, эти изменения прозрачным образом автоматически переносятся в реализованное приложение.

 

Процесс разработки с использованием Flexberry включает в себя следующие этапы (см. рис. 1):

 

Анализ и проектирование с построением различных UML-моделей.

Генерация на основе созданных моделей базы данных и кода.

Подключение готовых функциональных подсистем.

Ручная доработка кода.

Демонстрация Заказчику прототипа приложения.

Детализация требований, постановок.

Модификация UML-моделей, перегенерация кода.

Выпуск версии продукта, переход к поддержке и сопровождению.

 

Архитектура платформы

 

Архитектура системы включает в себя (см. рис. 2):

 

инструментарий по проектированию и программированию системы (этап проектирования – Design-Time);

набор компонентов для создания информационной системы (этап исполнения программы – Run-Time).

 

Генераторы кода (см. рис. 3) позволяют на основе модели приложения получать исходный код приложения. Сгенерированное приложение является работоспособным приложением и может быть запущено без необходимых доработок [7].

 

 

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

 

Flexberry Designer – CASE-инструмент, реализующий стандартную нотацию UML и визуальный (WYSIWYG) конструктор форм приложения;

Flexberry Ember – фреймворк для создания веб- и гибридных мобильных приложений;

Flexberry GIS – функциональная подсистема хранения, создания, редактирования, анализа и отображения географической информации;

Flexberry Service Bus – сервисная шина – средство интеграции систем посредством обмена сообщениями (docker-образ);

Flexberry Analytics – функциональная подсистема отчётности и бизнес-аналитики (docker-образ);

Flexberry BPM – технология для быстрой автоматизации рабочих процессов в компании (набор docker-образов)

и другие компоненты.

Разработка и координация распределенной группы разработчиков платформы производится в git-репозитории github.com/Flexberry. Платформа открыта для подключения новых участников к процессу ее разработки.

 

Поддержка процесса разворачивания и сопровождения

 

Разработанный продукт разворачивается в виде стека docker-сервисов, включающего в себя следующие сервисы:

 

Ember-приложение с Odata backend;

сервис базы данных Postgres.

EmberJS обеспечивает возможность быстро и качественно создавать универсальный мобильный и веб-интерфейс.

 

REST-интерфейс OData позволяет построить микросервисную архитектуру вокруг единой точки предоставления данных.

 

База данных Postgres является «стандартом de-facto» при создании систем на основе открытого программного обеспечения.

 

Docker-технология позволяет нам интегрировать данные сервисы в конечное кластерное решение нашей платформы [8, 9].

 

При необходимости в стек, функционирующий в составе кластера, могут быть включены дополнительные функциональные подсистемы платформы Flexberry в виде docker-сервисов:

 

Flexberry GIS,

Flexberry Service Bus,

Flexberry Analytics,

Flexberry BPM,

и другие.

Заключение

 

Оптимизация процесса проектирования, разработки и сопровождения информационных систем реализуется при помощи программной платформы Flexberry за счет следующих возможностей:

 

подхода Model First и архитектуры управляемой моделью;

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

инструментария быстрого создания прототипов необходимого программного решения за счет кодогенерации;

реализованных готовых программных компонент и готовой архитектуры;

поддержка Docker для быстрого разворачивания информационных систем.

Информационная система: [Электронный ресурс] // Википедия. URL: docs.microsoft.com/ru-ru/ef/ef6/modeling/code-first/workflows/new-database (дата обращения: 01.09.2018).

Database-First Approach: [Электронный ресурс] URL: www.devart.com/entitydeveloper/database-first.html (дата обращения: 01.09.2018).

UI-First Software Development: [Электронный ресурс] URL: blog.codinghorror.com/ui-first-software-development/ (дата обращения: 01.09.2018).

Bennedsen, Jens & Caspersen, Michael. (2018). A Model-First Approach to Teaching Object-Orientation.

Архитектура, управляемая моделью: [Электронный ресурс] // Википедия. URL: www.docker.com (дата обращения: 01.09.2018).

Технологическая программная платформа Flexberry – flexberry.ru, github.com/Flexberry.

Источник - http://samag.ru/archive/article/3739