Links

Workflow Technology

Платформа для автоматизированной разработки и внедрения кросс-платформенного ПО для систем управления предприятиями и бизнес-процессами

Приветствие

Добро пожаловать в обучающее пособие по платформе Workflow Technology (WT), в рамках которого рассматриваются основы платформы и особенности создания десктопного приложения с использованием инструментов Workflow Forms.
Материал пособия разбит на шесть блоков. Каждый блок строится на материале предыдущих блоков и дополняет учебный проект новой функциональностью.
Первый блок ("Начало работы") посвящен архитектуре платформы WT и знакомит с редактором Workflow XML Editor. В уроках блока рассматривается, как развернуть новый проект, состав проекта и структура файлов и базы данных.
Второй блок ("Основной") дает представление о наиболее важных элементах платформы WT и XML-редактора, на которых строится любое приложение. Уроки построены так, что они описывают разработку нового проекта с нуля и поэтапно развивают его возможности.
В третьем блоке ("Загрузка данных") рассматриваются режимы загрузки данных и механизмы контроля порядка загрузки данных на формы, а так же разбирается режим блокировки форм при выполнении длительных и критических команд.
В уроках четвертого блока ("Многопользовательский режим") разбираются особенности добавления групп пользователей и настройки прав доступа, а так же уделяется внимание работе с временными зонами и мультиязычности.
Пятый блок ("Кастомизация") охватывает механизмы расширения возможностей платформы WT путем создания кастомных элементов для форм и серверной части.
Уроки шестого блока ("Продвинутый уровень") посвящены инструментам, позволяющим настраивать взаимодействие сторонних сервисов (например, мобильные приложения и сайты) с сервером. Так же рассматриваются дополнительные возможности редактора Workflow XML Editor и платформы WT, которые ускоряют и упрощают процесс создания форм.
По завершении каждого блока у вас будет минимальная рабочая версия приложения для ПК, которую можно использовать в качестве заготовки для реальных проектов. По окончании курса будет полноценное многопользовательское клиент-серверное десктопное приложение с простым модулем кассы, выгрузкой данных в печатные документы и с API для работы сторонних сервисов с сервером приложения.
Прежде чем приступить к урокам, поближе познакомимся с платформой Workflow Technology.

Платформа Workflow Technology

Что это?

Платформа Workflow Technology (WT) - это специальный комплекс программ и систем, с помощью которого разработчики могут быстро создавать корпоративное ПО для автоматизации бизнес-процессов.
Ключевыми элементами платформы WT, с помощью которых создаются программы, являются: редактор Workflow XML Editor и XML-языки программирования для написания исходного кода серверной части и клиентских частей. Для описания десктопных, мобильных и веб-приложений разработаны отдельные XML-языки. Подробнее про компоненты платформы WT рассказывается в разделе Архитектура платформы.
Готовое решение, построенное на платформе WT, состоит из серверной части и клиентской части, в роли которой могут выступать приложения любых типов: десктопное приложение, мобильное приложение и веб-приложение. Например, готовое решение будет содержать серверную часть, а в качестве клиентских будут десктопное приложение для менеджеров и мобильное приложение для клиентов.

Предпосылки создания

Был определен набор наиболее часто встречающихся технических задач, с которыми сталкивается программист при разработке корпоративного ПО. Для каждой задачи был написан небольшой модуль (подпрограмма на языке C#), позволяющий унифицировать решение задачи за счет входящих и исходящих параметров.
В итоге, получилось около 50 часто используемых основных модулей и около 200 - реже используемых. Все разработанные модули разделены на 6 категорий:
  • Графические объекты - например, текстовое поле, числовое поле, таблица и т.д.
  • Условия - например, проверка на «равно», на «больше», на «меньше» и т.д.
  • Команды - например, «загрузить данные из базы», «отправить данные в базу», «распечатать» и прочие.
  • Действия - автоматическое выполнение команд при наступлении определенных условий.
  • Запросы к базе данных - для записи и для чтения.
  • Права доступа – разрешения, роли и группы пользователей.
Модули были объединены в библиотеки, которые сформировали фреймворк. Для каждого модуля было создано XML-описание (XML-интерфейс), которое отражает его параметры взаимодействия с другими модулями - по входящим и исходящим параметрам.
Таким образом, разработка ПО на базе фреймворка сводится к описанию работы программы с помощью XML-файлов, которые теперь выполняют роль исходного кода. Правила написания этих файлов составляют синтаксис и семантику XML-языков программирования.
Разработанная система программирования из блоков (конструктор) обладает гибкостью и модульностью, что достигается за счет набора небольших деталей, из которых составляется программное решение для автоматизации любой сложности за приемлемый срок.
В отличие от императивных языков (таких как C#, C++, Java) декларативные языки (в частности, XML) имеют жесткие синтаксические конструкции, а также ограниченный набор лексем (в языке программирования - "слово"). Такой подход дал возможность разработать специальный XML-редактор, который позволяет писать XML-код с помощью фиксированных подсказок, что существенно ускоряет написание исходного кода программ, значительно упрощает обучение и понижает квалификационный порог для программистов.
Готовые XML-файлы не требуют компиляции и передаются на вход специальным программам-трансляторам, которые, используя полученные XML-инструкции, динамически строят программное решение с указанной логикой работы и внешним видом.

Классификация платформ

Платформы для разработки программного обеспечения для автоматизации бизнес-процессов можно поделить на классы:
  • Платформы общего назначения (интегрированные среды разработки, IDE - integrated development environment) - например, Microsoft Visual Studio, Eclipse - используются для создания ПО различного применения и отличается наибольшей управляемостью и гибкостью. Они хороши тем, что используют языки программирования общего назначения, однако в сфере автоматизации бизнес-процессов эти платформы применяются достаточно редко по причине длительности разработки и дороговизны. Основное их преимущество заключается в создании узкоспециализированных фреймворков, которые повысят скорость разработки.
  • Специализированные среды разработки предоставляют набор готовых решений и возможность их конфигурирования, что позволяет создавать корпоративные системы быстрее, чем на платформах общего назначения. Такие платформы лучше всего подходят для разработки ERP-систем (система планирования ресурсов предприятия), бизнес-приложений или другого пользовательского ПО для корпоративного сегмента. Но такой способ не обходится дешевле из-за высокой стоимости самих платформ и стоимости узких специалистов, квалифицирующихся на работе с этими платформами.
  • Low Code фреймворки предоставляют самый быстрый способ создания приложений для типовых задач или для проверки теорий, которые в случае подтверждения их ценности будут реализовываться с помощью других платформ. Но такие фреймворки не подходят для реализации сложных масштабируемых решений.
Платформа WT сочетает быструю и гибкую разработку заказного ПО широкого профиля, не привязанного к какой-либо предметной области, что позволяет разработать программу/приложение/портал для компаний различных сфер бизнеса - от производства до услуг. Гибкость разработки обеспечивается возможностью создавать кастомные библиотеки, расширяющие базовые возможности платформы.
На платформе WT можно достаточно быстро создать готовое решение любой сложности вплоть до полноценной ERP-системы. Есть возможности создать минимальную рабочую версию приложения для проверки идеи в реальных условиях бизнеса и в случае успеха легко ее поддерживать и развивать без смены инструментов разработки.

Преимущества

Ключевые достоинства платформы WT:
  1. 1.
    Высокая скорость разработки ПО обеспечивается за счет следующих факторов: a. Функциональные алгоритмы (например, загрузка данных из базы) и элементы интерфейса "упакованы" в блоки. Каждый блок - маленькая программа, у которой есть входы и выходы. Программирование происходит в декларативном (описательном) виде в XML-файлах путем компановки этих блоков; b. В XML-редакторе реализован механизм подсказок и автоподстановки синтаксический конструкций, что позволяет быстро состыковывать блоки; c. XML-редактор имеет возможность вставлять код не только по «подсказкам», но и целые куски программы (готовые комбинации готовых блоков), оформленные в виде паттернов (создание целой формы или нескольких форм) и сниппетов (вставка связанных блоков кода в один файл), а также содержит удобный конструктор для проектирования типовых форм.
  2. 2.
    Низкий квалификационный порог входа для разработчиков достигается за счет отсутствия необходимости писать код на "сложном" императивном языке (например, C#). Процесс программирования на WT - это написание кода в XML-файлах, декларативное программирование. В отличие от императивного программирования, которое применяется в обычных средах разработки, декларативное – по определению более прозрачно и читаемо для разработчика, что значительно упрощает смысловое понимание исходного кода и простоту его освоения.
  3. 3.
    Быстрое обучение новых разработчиков является следствием небольшого количества категорий в XML-языке. Несмотря на то, что блоков в WT около 250, чаще всего используются только 50. Все блоки сгруппированы в 6 классов (6 типов синтаксических конструкций). Достаточно понять, как работает каждый класс - внутри класса блоки очень похожи, и освоить основную функциональность платформы можно достаточно быстро. Кроме того, "терминология" разработки на платформе WT соответствует "классическим" терминам программирования ("объекты", "команды", "условия" и прочее), общепринятым в отрасли, что облегчает восприятие нового материала.
  4. 4.
    Гибкость при разработке реализуется за счет:
    a. "Небольшого размера" модулей платформы - деталей "конструктора" для построения готового решения;
    b. Независимости модулей от предметной области разрабатываемого ПО; c. Расширяемости платформы WT - возможности создания собственного модуля на языке C#, который будет легко встроен в платформу WT.

Преимущества Workflow MobileForms

Отдельно стоит рассмотреть преимущества версии платформы WT для разработки мобильных приложений.
Сейчас одна из проблем у разработчиков мобильных приложений - это многочисленные проверки и модерации при публикации и обновлении приложений в магазинах (особенно придирчивая модерация в AppStore). На платформе WT эта проблема решена: теперь любое обновление можно проводить без прохождения этапов модерации со стороны магазина. Это возможно за счет того, что в магазинах приложений размещается программа-транслятор, а исполняемый код скачивается с сервера при запуске приложения на устройстве.
Как следствие, появляется еще одно важное преимущество мобильной платформы - это возможность обновлять мобильное приложение для каждого клиента индивидуально: каждый клиент скачивает одно и то же приложение в магазине, но вид и функциональность можно настраивать отдельно для каждого.

Для кого?

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

Поехали!

Готовы пройти учебный курс? Тогда давайте начнем более глубокое погружение в платформу Workflow Technology.