Подсистема STP (Subsystem Templates Protected) обеспечивает формирование форм информационной системы на основании шаблонов логической и интерфейсной части форм. Также она обеспечивает работу пользователей с базой данных информационного узла посредством выполнения алгоритмов на добавление, изменение, удаление, перемещение и копирование записей, а также пользовательских алгоритмов, которые создаются пользователями-программистами системы. Формы информационной системы могут быть трёх типов: основная форма раздела, формы редактирования записи и форма-браузер для выбора записи. Шаблоны интерфейсной части форм – это HTML-формы с контейнерами, в которые динамически вставляются элементы ввода-вывода при генерации интерфейса в веб-браузере. Шаблоны логической части форм – это информация о структуре форм: секции данных (дерево, таблица, запись), связи между секциями, перечень полей и фильтров наборов данных, функциональные кнопки и др. Подсистема STP позволяет организовать структуру связей между секциями данных в виде направленных ациклических графов. Количество секций данных неограниченно. HTML-формы с контейнерами для элементов ввода-вывода информации могут содержать Java-скрипты для создания динамического интерфейса формы раздела, например, в зависимости от выбранного значения в одном поле блокировать на редактирование и изменять цвет фона другие поля, а также изменять значения.
Подсистему STP можно разделить на следующие субсистемы:
– Генератор кеш-данных для каждой формы (STP.GCD);
– Интерфейсная часть тонкого клиента (STP.ITC);
– Субсистема обработки запросов тонкого клиента (STP.QTC).
Генератор кеш-данных формирует файлы (так называемые stp-описания) в формате JSON в соответствующих папках. Для каждого информационного узла на сервере автоматически генерируется папка с stp-описаниями, сгруппированными по модулям и разделам (подпапки). К этим stp-описаниям при первичной загрузке формы раздела обращается субсистема обработки запросов тонкого клиента. Генерация stp-описаний происходит только при изменении структуры описания формы раздела, например, после добавления нового столбца в таблицу или удаления системного фильтра для набора данных. Редактирование структуры формы раздела выполняется посредством интерфейса информационной системы (модуль «Система» => раздел «Формы информационной системы»). Настройка модулей (список разделов и форм в каждом разделе) выполняется в разделе «Структура информационной системы».
Интерфейсная часть тонкого клиента – это Java-скриптовый движок, генерирующий в веб-браузере пользователя на основании шаблона формы визуальный интерфейс пользователя: таблицы с данными, деревья папок, окна настройки полей и фильтрации, диалоги загрузки файлов и настройки прав доступа, окна редактирования записей и др. Также в интерфейсной части находится клиентская часть используемой технологии AJAX. Движок также использует фреймворк jQuery, который значительно облегчает разработку и объединение разных компонентов большого программного проекта. Поддерживается работа во всех основных веб-браузерах: Internet Explorer, Mozilla Firefox, Safari, Google Chrome и Opera.
Субсистема обработки запросов тонкого клиента – это серверная часть используемой технологии AJAX. Субсистема обрабатывает AJAX-запросы от веб-браузера. Взаимодействует с подсистемами SAR (права доступа), SAS (аудит и статистика), STO (генерация страниц веб-сайта с применением компонентно-шаблонного подхода), SEA (машина алгоритмов и диалоги) и другими подсистемами веб-платформы dbRus.