Лучшие практики конфигурации. Производительность

В данном разделе приведены аспекты функционирования приложения, на которые стоит обратить внимание для сохранения приемлемого уровня производительности приложения SMP.

Объекты

Классы и вложенные типы

При типизации объектов и построении иерархии вложенных типов, стоит исходить из положения, что максимальный уровень вложенности должен быть не более 5 относительно "Основного класса". Необходимо помнить, что объекты всех типов одного класса объектов размещаются в одной и той же таблице в базе данных.

Такой подход позволит сэкономить ресурсы на определение уникальных свойств объектов, особенно при разрыве наследования настроек.

Не рекомендуется добавлять отдельные типы для создания форм с разным наполнением полей. Вместо этого рекомендуется разместить на форме отдельные контенты и для каждого из них настроить условия отображения в зависимости от значения атрибута.

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

Чтобы определить условия отображения контентов в зависимости от других объектов, в качестве атрибута можно использовать атрибут типа "Элемент справочника".

Создание большого количества типов увеличивает нагрузку на приложение и потребление памяти. Разрыв наследования настроек при большом количестве типов усложняет поддержку приложения, поскольку новую настройку, необходимую для всех типов, потребуется добавлять в каждый тип отдельно.

Атрибуты класса/типа

Количество атрибутов в классе объектов и вложенных в него типах рекомендуется ограничивать суммарно до 700 штук.

Объявление большого количества атрибутов приводит к увеличению соответствующих таблиц в базе данных, что, в свою очередь, ведет к росту занимаемого дискового пространства и "утяжелению" самих объектов при их обработке в приложении.

Вычислимые атрибуты в списках

С осторожностью стоит подходить к добавлению вычислимых атрибутов, а также атрибутов типа "Обратная ссылка" в группы атрибутов для использования в сложных списках.

Рекомендуется добавлять не более 1-2 таких атрибутов в группы для списков, а количество объектов списка, отображаемое для вида списка по умолчанию, устанавливать не выше 20.

Списки объектов

Если предполагается, что список связанных объектов, построенный через связь по атрибуту типа "Обратная ссылка" будет содержать слишком много связанных объектов (сотни тысяч и более), то рекомендуется использовать контент "Список объектов" с заданными условиями фильтрации.

Архитектура приложения

При разворачивании приложения SMP на сервере рекомендуется выделять отдельную JVM под нужды приложения SMP.

Сторонние сервисы стоит развернуть на других виртуальных машинах во избежание конкуренции за ресурсы.

Примером стороннего сервиса, обеспечивающего работу самого приложения SMP, может являться внешний брокер очередей сообщений Artemis или IBM MQ.

Нагрузка на приложение

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

Отображение интерфейса

Условия отображения контентов на формах и карточках приложения проверяются на рабочих станциях, поэтому их чрезмерная сложность и большое количество могут замедлять отображение страниц на рабочих станциях с низкопроизводительной аппаратной конфигурацией.