Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Основные понятия и концепции: различия между версиями

Материал из Платформа Эра. Документации
Нет описания правки
Нет описания правки
Строка 44: Строка 44:




'''Перечисление''' (enumeration) позволяет описать возможные значения свойства, указав для каждого из них заголовок и цвет (для отображения в таблицах и диаграммах).


'''Редакторы''' (editors) предназначены для отображения и редактирования значений свойств в соответствии с типами данных (строки, числа, дата-время, выпадающие списки, ссылки на другие объекты и т.д.).  
'''Перечисление''' (Enumeration) позволяет описать возможные значения свойства, указав для каждого из них заголовок и цвет (для отображения в таблицах и диаграммах).
 
'''Редакторы''' (Editors) предназначены для отображения и редактирования значений свойств в соответствии с типами данных (строки, числа, дата-время, выпадающие списки, ссылки на другие объекты и т.д.).  
[[Файл:Приложение. Layout.png|мини|Зеленым выделен toolbox, перечисление доступных контролов для работы с объектами. Желтым выделен текущий активный control]]
[[Файл:Приложение. Layout.png|мини|Зеленым выделен toolbox, перечисление доступных контролов для работы с объектами. Желтым выделен текущий активный control]]
'''Приложение''' (application) предназначено для работы пользователей с информационной системой. Приложение состоит из меню (toolbox) и текущего элемента управления (control). Переключение между элементами управления осуществляется через меню либо переходами по гиперссылкам. Пользователю доступен набор приложений в соответствии с назначенными ролями (roles).  
'''Приложение''' (Application) предназначено для работы пользователей с информационной системой. Приложение состоит из меню (toolbox) и текущего элемента управления (control). Переключение между элементами управления осуществляется через меню либо переходами по гиперссылкам. Пользователю доступен набор приложений в соответствии с назначенными ролями (roles).
 
'''Элемент управления''' (Control) – это основной компонент приложения. Работа пользователя с приложением заключается в переключении между элементами управления и выполнением с их помощью операций над объектами (просмотр, добавление, изменение, удаление, действия). Элементы управления создаются автоматически (для каждого класса – таблица и карточка) и вручную (диаграммы, комбинированные элементы, нестандартные карточки и т.д.).
 
'''Роли''' (Roles) - иерархический справочник ролей, которые могут быть использованя для ограничения доступа к приложениям и данным объектов.
 
'''Публичная ссылка''' (Public link) позволяет предоставить доступ к приложению с автоматической авторизацией в системе при помощи указанных логина и пароля (т.е. с заданным набором ролей). Используется для предоставления доступа к некоторым данных для пользователей вне платформы Эра.
 
'''Сервисы''' (Services) – это программные модули, предназначенные для выполнения операций над объектами в автоматическом режиме (без участия пользователей). Сервисы могут выполняться на сервере либо в пользовательских приложениях. Как правило, сервисы выполняют операции при получении событий добавления, изменения и удаления объектов либо по таймеру.
 
'''Обработчики событий''' (Handlers) - это программные модыли, предназначенные для обработки событий вызываемых операциями над объектами (создание, изменение, удаление). Результаты исполнения обработчиков могут влиять на исполнение операции. <blockquote>'''Сервисы''' (services), '''обработчики событий''' (handlers) и '''действия''' (action) служат для реализации сложной логики работы приложений, а также для интеграции с внутренними и внешними сервисами. </blockquote>'''Подмены''' (Shifts) - настройки, позволяющие подменять один объект, другим. Таким образом, можно вносить изменения в интерфейс, логику или структуру данных, заданных в других пакетах. Для замещения доступны '''классы''' (classes), '''рекдаторы''' (editors) и '''элементы управления''' (controls).
 
'''Фиксчи''' (Fixtures) - константные данные, хранящиеся в пакете, которые могут быть автоматически добавлены, обновлены или удалены при активации и деактивации пакета. В рамках таких данных может быть реализована установка некоторых настроек по-умолчанию, демо-данные для объектов, статические данные для анализа и т.д.


'''Элемент управления''' (control) – это основной компонент приложения. Работа пользователя с приложением заключается в переключении между элементами управления и выполнением с их помощью операций над объектами (просмотр, добавление, изменение, удаление, действия). Элементы управления создаются автоматически (для каждого класса – таблица и карточка) и вручную (диаграммы, комбинированные элементы, нестандартные карточки и т.д.).  
'''Константы''' (Consts) - опциональный набор констант, предназначенный для локализации приложений на различные языки.


'''Сервисы''' (services) – это программные модули, предназначенные для выполнения операций над объектами в автоматическом режиме (без участия пользователей). Сервисы могут выполняться на сервере либо в пользовательских приложениях. Как правило, сервисы выполняют операции при получении событий добавления, изменения и удаления объектов либо по таймеру.  
'''Пакеты''' (packages) позволяют объединять все перечисленные выше сущности продуктового слоя в группы по области применения. Пакеты можно экспортировать и импортировать для быстрого переноса информационных систем между экземплярами платформы. Импортированные пакеты можно активировать для их использования, или деактивировать, если реализуемая ими функциональность не трубуется.


'''Публичная ссылка''' (public link) позволяет предоставить доступ к приложению с автоматической авторизацией в системе при помощи указанных логина и пароля.
Таким образом, пакет (package) включает в себя следующие сущности:


'''Пакеты''' (packages) позволяют объединять все перечисленные выше сущности продуктового слоя в группы по области применения. Пакеты можно экспортировать и импортировать для быстрого переноса информационных систем между экземплярами платформы.
* Enums
* Classes
* Editors
* Controls
* Roles
* Applications
* PublicLinks
* Services
* Handlers
* Shifts
* Fixtures
* Consts


Таким образом, пакет (package) включает в себя классы (classes), перечисления (enumerations), приложения (applications), элементы управления (controls), редакторы (editors), роли (roles) и сервисы (services). Все сущности продуктового слоя имеют имена (name) и полные имена (fullName). Полные имена генерируются автоматически и содержат имя пакета, имя сущности и в некоторых случаях имя папки.  
Все сущности продуктового слоя имеют имена (name) и полные имена (fullName). Полные имена генерируются автоматически и содержат имя пакета, имя сущности и в некоторых случаях имя папки.


Например, класс ArchiveConnection, расположенный в папке connections пакета callcenter имеет полное имя callcenter/connections/ArchiveConnection. Ссылки сущностей продуктового слоя друг на друга содержат полные имена, а не идентификаторы. Идентификаторы (id) сущностей являются хеш-функцией от полных имен.  
Например, класс ArchiveConnection, расположенный в папке connections пакета callcenter имеет полное имя callcenter/connections/ArchiveConnection. Ссылки сущностей продуктового слоя друг на друга содержат полные имена, а не идентификаторы. Идентификаторы (id) сущностей являются хеш-функцией от полных имен.  

Версия от 20:01, 12 января 2025

Разработка и исполнение приложений в рамках платформы Эра ведется в рамках подсистемы, которая называется Продуктовый слой.

Назначение продуктового слоя

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

Продуктовый слой находится над слоями инфраструктуры, данных и коммуникаций. Благодаря продуктовому слою коммуникационная платформа становится информационнокоммуникационной. При этом предусмотрен и обратный доступ «снизу вверх» – например, из сценариев IVR можно обращаться (получать, добавлять, изменять, удалять) к любым объектам информационной системы (продуктового слоя). Спектр применений продуктового слоя достаточно широк: карточки звонка, системы обработки заявок, справочники клиентов, CRM, ERP, PM, отраслевые решения и т.д.

Подробнее про архитектуру системы можно прочитать в соответствующей статье

Концепция продуктового слоя

Базовая идея: в основе информационной системы лежит объектная модель. Объектная модель состоит из классов, каждый из которых обладает набором свойств. Как только мы описали объектную модель, платформа создает типовую информационную систему для работы с этой моделью. Информационная система включает в себя таблицы в базах данных, обеспечение обработки этих данных (включая реалтайм подписки), HTTP/WS API для доступа к данным, пользовательские приложения, сервисы для автоматической обработки данных и т.д.

Пример объектной модели ветеринарной клиники:

  • Клиент (Фамилия, Имя, Отчество, Телефон)
  • Животное (Тип, Кличка, Хозяин)
  • Доктор (Фамилия, Специальность)
  • Посещение (Время, Животное, Доктор, Статус)

После того, как эта объектная модель вводится в платформу, можно создать приложение «Администратор ветклиники», состоящее из четырех табличных инструментов «Клиенты», «Животные», «Доктора», «Посещения».

Вокруг объектной модели также строится дальнейшая инфраструктура, отвечающая за взаимодействие с объектами:

  • Редакторы и контролы для работы пользовательского интерфейса
  • Сервисы и обработчики для операций над данными
  • Роли для ограничения доступа
  • Константы для перевода
  • Другие вспомогательные объекты

В рамках платформы Эра все вышеперечисленные объекты хранятся, разрабатываются и исполняются в рамках пакетов (package).

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

Примеры базовых пакетов:

  • callcenter - пакет, реализующий функциональность контакт-центра
  • wfm - пакет, реализующий процессы управления персоналом контакт-центра
  • helpdesk - пакет, реализующий функциональность портала поддержки

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

Структура пакета и основные понятия

Объектная модель состоит из классов (classes). Каждый класс обладает набором свойств (properties) и действий (actions). Классы могут наследоваться друг от друга. Каждое свойство имеет тип данных.

Существует три вида типов данных: базовый (строка, число, время и т.д), перечисление (enumeration – заданный набор вариантов) и класс (ссылка на любой класс объектной модели для построения связей между объектами).


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

Редакторы (Editors) предназначены для отображения и редактирования значений свойств в соответствии с типами данных (строки, числа, дата-время, выпадающие списки, ссылки на другие объекты и т.д.).

Зеленым выделен toolbox, перечисление доступных контролов для работы с объектами. Желтым выделен текущий активный control

Приложение (Application) предназначено для работы пользователей с информационной системой. Приложение состоит из меню (toolbox) и текущего элемента управления (control). Переключение между элементами управления осуществляется через меню либо переходами по гиперссылкам. Пользователю доступен набор приложений в соответствии с назначенными ролями (roles).

Элемент управления (Control) – это основной компонент приложения. Работа пользователя с приложением заключается в переключении между элементами управления и выполнением с их помощью операций над объектами (просмотр, добавление, изменение, удаление, действия). Элементы управления создаются автоматически (для каждого класса – таблица и карточка) и вручную (диаграммы, комбинированные элементы, нестандартные карточки и т.д.).

Роли (Roles) - иерархический справочник ролей, которые могут быть использованя для ограничения доступа к приложениям и данным объектов.

Публичная ссылка (Public link) позволяет предоставить доступ к приложению с автоматической авторизацией в системе при помощи указанных логина и пароля (т.е. с заданным набором ролей). Используется для предоставления доступа к некоторым данных для пользователей вне платформы Эра.

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

Обработчики событий (Handlers) - это программные модыли, предназначенные для обработки событий вызываемых операциями над объектами (создание, изменение, удаление). Результаты исполнения обработчиков могут влиять на исполнение операции.

Сервисы (services), обработчики событий (handlers) и действия (action) служат для реализации сложной логики работы приложений, а также для интеграции с внутренними и внешними сервисами.

Подмены (Shifts) - настройки, позволяющие подменять один объект, другим. Таким образом, можно вносить изменения в интерфейс, логику или структуру данных, заданных в других пакетах. Для замещения доступны классы (classes), рекдаторы (editors) и элементы управления (controls).

Фиксчи (Fixtures) - константные данные, хранящиеся в пакете, которые могут быть автоматически добавлены, обновлены или удалены при активации и деактивации пакета. В рамках таких данных может быть реализована установка некоторых настроек по-умолчанию, демо-данные для объектов, статические данные для анализа и т.д.

Константы (Consts) - опциональный набор констант, предназначенный для локализации приложений на различные языки.

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

Таким образом, пакет (package) включает в себя следующие сущности:

  • Enums
  • Classes
  • Editors
  • Controls
  • Roles
  • Applications
  • PublicLinks
  • Services
  • Handlers
  • Shifts
  • Fixtures
  • Consts

Все сущности продуктового слоя имеют имена (name) и полные имена (fullName). Полные имена генерируются автоматически и содержат имя пакета, имя сущности и в некоторых случаях имя папки.

Например, класс ArchiveConnection, расположенный в папке connections пакета callcenter имеет полное имя callcenter/connections/ArchiveConnection. Ссылки сущностей продуктового слоя друг на друга содержат полные имена, а не идентификаторы. Идентификаторы (id) сущностей являются хеш-функцией от полных имен.

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

  • controls: таблица и карточка для каждого класса
  • editors: статический выпадающий список (select) для каждого перечисления и динамический выпадающий список (lookup) для каждого класса
  • классы сервиса dms слоя обработки данных (а следовательно, таблицы в базах данных и разделы API)
  • код классов и интерфейсов на языке TypeScript для исполнения на клиенте (в приложениях) и сервере (сервисах)
  • откомпилированный (преобразованный и упакованный из TypeScript в JavaScript) код классов, интерфейсов и сервисов
  • веб-приложения