Архитектура платформы
Last updated
Last updated
Упрощенно концепция работы основной части платформы WT представлена на рисунке:
Подробная архитектура платформы WT представлена на рисунке:
Любая WT-программа состоит из двух частей – серверной и клиентской. Каждая часть программируется с помощью описания на XML-языке. Программные компоненты и механизмы их взаимодействия, используемые для описания серверной и клиентской частей, отличаются, поэтому XML-язык также разделен на серверный XML-язык и клиентский XML-язык.
Серверный XML-язык описывает алгоритмы работы с данными (SQL-запросы), специальные команды передачи и обработки данных, права доступа.
Клиентский XML-язык описывает вид форм внешнего интерфейса программы, логику работы форм и конструкции получения данных с сервера и отправки данных на сервер. При этом для описания клиентских частей десктопных приложений, мобильных приложений и веб-приложений клиентский XML-язык расширяется соответствующими специфическими терминами.
Представляет собой удобный и производительный инструмент для быстрого написания XML-кода на WTML, состоящий из следующих элементов:
Текстовый XML-редактор
Набор паттернов
Конструктор форм
XML-редактор построен в виде плагина для среды разработки Eclipse и реализует:
Подсказки при написании XML-кода
Синтаксическую проверку XML-кода
Подсветку ошибок
Результатом работы основной части инфраструктурного блока платформы WT является исходный XML-код WT-программ. Сам по себе XML-код не является программой, это лишь набор инструкций и правил, определяющий, как должна работать WT-программа.
Для того чтобы XML-код работал как полноценная программа, используются трансляторы, которые считывают модель ПО, детально построенную в XML-файлах, и реализуют ее в виде исполняемых приложений с помощью набора библиотек (фреймворка WT), который переводит XML-описание в C#-код.
Транслятор Workflow Forms выполняет роль клиентской части десктопного приложения. Транслятор работает по принципу браузера: считывает описание и отображает внешние формы программы. Трансляторы Workflow MobileForms и Workflow WebForms используются для запуска мобильных и веб-приложений соответственно.
Транслятор Workflow Engine – это серверная часть, – реализован в виде веб-службы, работающей по протоколу REST Web API в формате JSON. Основная задача этого транслятора заключается в обеспечении приема и отправки данных с клиентских частей WT-программы в БД и обратно. Проще говоря, Workflow Engine – это прослойка между интерфейсом и БД, осуществляющая следующие функции:
Аутентификацию и авторизацию
Хранение и использование механизмов для чтения и записи данных в БД (SQL-запросы)
Взаимодействие с внешними сервисами
Запуск задач по расписанию
Утилита, с помощью которой разработчик осуществляет сборку WT-программы, формируя установочный пакет в виде одного ZIP-файла со специальной структурой, передаваемый впоследствии заказчику вместе с утилитой Workflow Installer. В установочный пакет входят: XML-файлы для серверной и клиентской частей, соответствующие трансляторы, СУБД PostgreSQL, бэкап базы данных.
Утилита для установки WT-программ, передаваемая конечному потребителю для автоматической установки «в один клик», использующая установочный пакет в виде ZIP-файла, сформированный утилитой Workflow Builder.
Утилита для создания резервных копий, передаваемая конечному потребителю для автоматического резервирования установленных WT-программ, формирующая установочный пакет в виде ZIP-файла с такой структурой, какую формирует утилита Workflow Builder и какую ожидает на входе утилита Workflow Installer.
В формируемый установочный пакет входят в том числе все данные заказчика, введенные его пользователями, – словом, все, что хранится в базе, а также все файлы, приложенные пользователями. Такой пакет можно использовать как для восстановления WT-программы, так и для последующего переноса (миграции) WT-программы на другой сервер.
Клиент-серверная система лицензирования программ, созданных на платформе WT.
Клиентская часть системы встроена во все трансляторы – Workflow Engine, Workflow Forms, Workflow MobileForms и Workflow WebForms – и запрещает использовать WT-программы при следующих нарушениях:
Превышение лимита на количество пользователей.
Превышение лимит по сроку использования.
Отдельная специальная клиентская часть, расположенная на стороне разработчика, обеспечивает как общие настройки по ограничениям, так и настройки по ограничениям для конкретных заказчиков – другими словами, отвечает за выдачу лицензионных разрешений для определенной WT-программы на определенном оборудовании заказчика.
Клиент-серверная система, предназначенная для автоматизации обработки запросов пользователей заказчика.
Клиентская часть системы встроена в трансляторы Workflow Forms, Workflow MobileForms и Workflow WebForms.
Отдельная специальная клиентская часть, расположенная на стороне разработчика, обеспечивает возможность давать обратную связь на обращения пользователей.
Клиент-серверная система для автоматического обновления установленных WT-программ.
Клиентская часть системы встроена во все трансляторы – Workflow Engine, Workflow Forms, Workflow MobileForms и Workflow WebForms – и позволяет скачивать со специального сервера последние обновления WT-программ и затем устанавливать скачанные обновления в автоматическом режиме.
Отдельная специальная клиентская часть, расположенная на стороне разработчика, обеспечивает возможность заливать обновления на сервер обновлений – как для типовых решений, так и в индивидуальном порядке для каждого заказчика.