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

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

Материал из Платформа Эра. Документации
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Ввод базовых терминов разработки приложений, описание стека и т.д.
Разработка и исполнение приложений в рамках платформы Эра ведется в рамках подсистемы, которая называется <u>Продуктовый слой</u>.
 
=== Назначение продуктового слоя ===
Продуктовый слой позволяет разрабатывать (конфигурировать) информационные системы и обеспечивает их жизненный цикл – создание, исполнение, модификацию, экспорт-импорт.
 
Продуктовый слой находится над слоями инфраструктуры, данных и коммуникаций. Благодаря продуктовому слою коммуникационная платформа становится информационнокоммуникационной. При этом предусмотрен и обратный доступ «снизу вверх» – например, из сценариев IVR можно обращаться (получать, добавлять, изменять, удалять) к любым объектам информационной системы (продуктового слоя). Спектр применений продуктового слоя достаточно широк: карточки звонка, системы обработки заявок, справочники клиентов, CRM, ERP, PM, отраслевые решения и т.д.<blockquote>Подробнее про архитектуру системы можно прочитать в [[Архитектура платформы|соответствующей статье]]
 
</blockquote>
 
=== Концепция продуктового слоя ===
Базовая идея: в основе информационной системы лежит объектная модель. Объектная модель состоит из классов, каждый из которых обладает набором свойств. Как только мы описали объектную модель, платформа создает типовую информационную систему для работы с этой моделью. Информационная система включает в себя таблицы в базах данных, обеспечение обработки этих данных (включая реалтайм подписки), HTTP/WS API для доступа к данным, пользовательские приложения, сервисы для автоматической обработки данных и т.д.  
 
Пример объектной модели ветеринарной клиники:
 
* Клиент (Фамилия, Имя, Отчество, Телефон)
* Животное (Тип, Кличка, Хозяин)
* Доктор (Фамилия, Специальность)
* Посещение (Время, Животное, Доктор, Статус)
 
После того, как эта объектная модель вводится в платформу, можно создать приложение «Администратор ветклиники», состоящее из четырех табличных инструментов «Клиенты», «Животные», «Доктора», «Посещения».
 
Вокруг объектной модели также строится дальнейшая инфраструктура, отвечающая за взаимодействие с объектами:
 
* Редакторы и контролы для работы пользовательского интерфейса
* Сервисы и обработчики для операций над данными
* Роли для ограничения доступа
* Константы для перевода
* Другие вспомогательные объекты
 
В рамках платформы Эра все вышеперечисленные объекты хранятся, разрабатываются и исполняются в рамках '''пакетов''' (package)
 
=== Основные понятия ===
Объектная модель состоит из '''классов''' (classes). Каждый класс обладает набором '''свойств''' (properties) и '''действий''' (actions). Классы могут наследоваться друг от друга. Каждое свойство имеет '''тип данных'''.
 
Существует три вида типов данных: '''базовый''' (строка, число, время и т.д), '''перечисление''' (enumeration – заданный набор вариантов) и '''класс''' (любой класс объектной модели для построения связей между объектами).
 
Перечисление (enumeration) позволяет описать возможные значения свойства, указав для каждого из них заголовок и цвет (для отображения в таблицах и диаграммах).
 
Приложение (application) предназначено для работы пользователей с информационной системой. Приложение состоит из меню (toolbox) и текущего элемента управления (control). Переключение между элементами управления осуществляется через меню либо переходами по гиперссылкам. Пользователю доступен набор приложений в соответствии с назначенными ролями (roles).
 
Элемент управления (control) – это основной компонент приложения. Работа пользователя с приложением заключается в переключении между элементами управления и выполнением с их помощью операций над объектами (просмотр, добавление, изменение, удаление, действия). Элементы управления создаются автоматически (для каждого класса – таблица и карточка) и вручную (диаграммы, комбинированные элементы, нестандартные карточки и т.д.).
 
Редакторы (editors) предназначены для отображения и редактирования значений свойств в соответствии с типами данных (строки, числа, дата-время, выпадающие списки, ссылки на другие объекты и т.д.).
 
Сервисы (services) – это программные модули, предназначенные для выполнения операций над объектами в автоматическом режиме (без участия пользователей). Сервисы могут выполняться на сервере либо в пользовательских приложениях. Как правило, сервисы выполняют операции при получении событий добавления, изменения и удаления объектов либо по таймеру.
 
Публичная ссылка (public link) позволяет предоставить доступ к приложению с автоматической авторизацией в системе при помощи указанных логина и пароля.
 
Пакеты (packages) позволяют объединять все перечисленные выше сущности продуктового слоя в группы по области применения. Пакеты можно экспортировать и импортировать для быстрого переноса информационных систем между экземплярами платформы.
 
Таким образом, пакет (package) включает в себя классы (classes), перечисления (enumerations), приложения (applications), элементы управления (controls), редакторы (editors), роли (roles) и сервисы (services). Все сущности продуктового слоя имеют имена (name) и полные имена (fullName). Полные имена генерируются автоматически и содержат имя пакета, имя сущности и в некоторых случаях имя папки.
 
Например, класс ArchiveConnection, расположенный в папке connections пакета callcenter имеет полное имя callcenter/connections/ArchiveConnection. Ссылки сущностей продуктового слоя друг на друга содержат полные имена, а не идентификаторы. Идентификаторы (id) сущностей являются хеш-функцией от полных имен.
 
Следовательно, одноименные классы, созданные на разных экземплярах платформы, будут иметь идентичные идентификаторы. В процессе активации пакета происходит его проверка на отсутствие ошибок (например, битых ссылок) и автоматическая генерация следующих сущностей:
 
* controls: таблица и карточка для каждого класса
* editors: статический выпадающий список (select) для каждого перечисления и динамический выпадающий список (lookup) для каждого класса
* классы сервиса dms слоя обработки данных (а следовательно, таблицы в базах данных и разделы API)
* код классов и интерфейсов на языке TypeScript для исполнения на клиенте (в приложениях) и сервере (сервисах)
* откомпилированный (преобразованный и упакованный из TypeScript в JavaScript) код классов, интерфейсов и сервисов
* веб-приложения
 
[[Категория:Курс "Разработка приложений"]]
[[Категория:Курс "Разработка приложений"]]

Версия от 19:24, 12 января 2025

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

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

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

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

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

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

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

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

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

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

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

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

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

Основные понятия

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

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

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

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

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

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

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

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

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

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

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

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

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