Архитектура продуктового слоя
Продуктовый слой позволяет разрабатывать (конфигурировать) информационные системы и обеспечивает их жизненный цикл – создание, исполнение, модификацию, экспорт-импорт.
Продуктовый слой находится над слоями инфраструктуры, данных и коммуникаций.
Благодаря продуктовому слою коммуникационная платформа становится информационно-коммуникационной.
Базовая идея - в основе информационной системы лежит объектная модель. Объектная модель состоит из классов, каждый из которых обладает набором свойств. Как только мы описали объектную модель, платформа создает типовую информационную систему для работы с этой моделью. Информационная система включает в себя таблицы в базах данных, обеспечение обработки этих данных (включая реалтайм подписки), HTTP/WS API для доступа к данным, пользовательские приложения, сервисы для автоматической обработки данных и т.д.
Объектная модель состоит из классов (classes). Каждый класс обладает набором свойств (properties) и действий (actions). Классы могут наследоваться друг от друга. Каждое свойство имеет тип данных. Существует три вида типов данных: базовый (строка, число, время и т.д), перечисление (enumeration – заданный набор вариантов) и класс (любой класс объектной модели для построения связей между объектами).
Перечисление (enumeration) позволяет описать возможные значения свойства, указав для каждого из них заголовок и цвет (для отображения в таблицах и диаграммах).
Приложение (application) предназначено для работы пользователей с информационной системой. Приложение состоит из меню (toolbox) и текущего элемента управления (control).
Переключение между элементами управления осуществляется через меню либо переходами по гиперссылкам. Пользователю доступен набор приложений в соответствии с назначенными ролями (roles).
Элемент управления (control) – это основной компонент приложения. Работа пользователя с приложением заключается в переключении между элементами управления и выполнением с их помощью операций над объектами (просмотр, добавление, изменение, удаление, действия). Элементы управления создаются автоматически (для каждого класса – таблица и карточка, если заданы параметры name и fullName) и вручную (диаграммы, комбинированные элементы, нестандартные карточки и т.д.).
Редакторы (editors) предназначены для отображения и редактирования значений свойств в соответствии с типами данных (строки, числа, дата-время, выпадающие списки, ссылки на другие объекты и т.д.).
Сервисы (services) – это программные модули, предназначенные для выполнения операций над объектами в автоматическом режиме (без участия пользователей). Сервисы могут выполняться на сервере либо в пользовательских приложениях. Как правило, сервисы выполняют операции при получении событий добавления, изменения и удаления объектов либо по таймеру. Написание сервисом происходит с помощью языка JavaScript.
Публичная ссылка (public link) позволяет предоставить доступ к приложению с автоматической авторизацией в системе при помощи указанных логина и пароля. Т.е. доступ, например, к отчету напрямую, минуя этап авторизации самим человеком.
Пакеты (packages) позволяют объединять все перечисленные выше сущности продуктового слоя в группы по области применения. Пакеты можно экспортировать и импортировать для быстрого переноса информационных систем между экземплярами платформы.
Таким образом, пакет (package) включает в себя классы (classes), перечисления (enumerations), приложения (applications), элементы управления (controls), редакторы (editors), роли (roles) и сервисы (services).