Зависимости пакетов. Основные пакеты системы
Glossary Item Box
Общие сведения
Разработка приложения bpm'online базируется на основных принципах проектирования программного обеспечения, в частности, принципа отсутствия повторений (DRY). В архитектуре bpm'online этот принцип был применен к механизму пакетов и реализован с помощью зависимостей пакетов друг от друга. Каждый пакет содержит определенную функциональность приложения, которая не должна повторяться в других пакетах. Для того чтобы такую функциональность можно было использовать в любом другом пакете, необходимо пакет, содержащий эту функциональность, добавить в зависимости пакета, в котором она будет использована.
Зависимости и иерархия пакетов
Пакет может иметь несколько зависимостей. Например, в пакете С (Рис. 1) установлены зависимости от пакетов А и D. Таким образом, вся функциональность пакетов А и D доступна в пакете С.
Рис. 1. — Зависимости и иерархия пакетов
Зависимости пакетов формируют иерархические цепочки. Это означает, что в пакете доступна не только функциональность пакета, добавленного в зависимости текущего, но и функциональность всех пакетов, от которых зависит пакет, добавленный в зависимости текущего. Ближайшей аналогией иерархии пакетов является иерархия наследования классов в объектно-ориентированном программировании. Так, например, в пакете Е (Рис. 1) доступна функциональность не только пакета C, от которого он зависит, но и функциональность пакетов А, В и D. А в пакете F доступна функциональность пакетов B и D.
Добавление зависимостей пакета
Зависимости можно добавить только в пользовательский пакет и только после его создания. Для этого необходимо в карточке пакета на детали [Зависит от пакетов] (Рис. 2) нажать на кнопку [Добавить] (1). В появившемся диалоге справочника пакетов необходимо выбрать нужный пакет (2) и нажать на кнопку [OK] (3).
Рис. 2. — Добавление зависимости в пользовательский пакет
После этого выбранный пакет будет отображен в списке зависимостей текущего пакета, а при добавлении новой зависимости он будет скрыт из справочника пакетов (Рис. 3).
Рис. 3. — Добавленный пакет-зависимость
ВАЖНО После создания пакета его необходимо добавить в зависимости предустановленного пакета [Custom]. |
Список зависимостей в метаданных
Список зависимостей пакета хранится в его метаданных в свойстве DependsOn объекта, определенного в файле descriptor.json. Свойство DependsOn является массивом объектов, в которых указывается имя пакета, его версия и уникальный идентификатор, по которому можно определить пакет в базе данных приложения. Файл descriptor.json создается приложением для каждой версии пакета. Пример файла descriptor.json:
{ "Descriptor": { "UId": "974305e3-b01c-4020-b511-6fe9ac644d95", "PackageVersion": "7.8.0", "Name": "UsrDependentPackage", "ModifiedOnUtc": "\/Date(1478766323000)\/", "Maintainer": "Customer", "Description": "Пример пакета, зависящего от других пакетов", "DependsOn": [ { "UId": "8bc92579-92ee-4ff2-8d44-1ca61542aa1b", "PackageVersion": "7.8.0", "Name": "UsrCustomPackage" }, { "UId": "0ece3a34-413f-415b-919b-7b29bb31701f", "PackageVersion": "7.8.0", "Name": "SalesEnterpriseSoftkey_RUS" } ] } }
Иерархия пакетов приложения
Иерархию и зависимости пакетов приложения удобно исследовать, используя диаграмму зависимостей пакетов. Эта диаграмма расположена на вкладке [Зависимости пакетов] раздела [Конфигурация] (Рис. 4).
Рис. 4. — Фрагмент диаграммы иерархии зависимостей пакетов
Если кликнуть по узловому элементу диаграммы с именем пакета, то с помощью анимированных стрелок отобразятся связи с пакетами, которые зависят от выбранного, и от которых зависит выбранный пакет. Например, для русской версии продукта SalesEnterpise, пакет [SalesEnterpiseSoftkey_RUS] зависит только от пакета [SalesEnterpise] и всех его зависимостей (Рис. 4). Также от него зависят пакеты [Custom] и пользовательский пакет [UsrDependentPackage].
В иерархии пакетов корневым всегда должен быть пакет [Custom], для которого установлены прямые зависимости от всех пакетов системы. Подробно этот пакет рассмотрен в статье "Пакет [Custom]".
Основные пакеты приложения
К основным пакетам приложения можно отнести пакеты, которые обязательно присутствуют во всех продуктах. Краткий перечень таких пакетов приведен в таблице 1.
Табл. 1. — Основные пакеты приложения
Название пакета | Содержимое |
---|---|
Base | Базовые схемы основных объектов, разделов системы и связанных с ними схем объектов, страниц, процессов и др. |
Platform | Модули и страницы мастера разделов, дизайнеров реестра и итогов и т. п. |
Managers | Клиентские модули менеджеров схем. |
NUI | Функциональность, связанная с пользовательским интерфейсом системы. |
UIv2 | Функциональность, связанная с пользовательским интерфейсом системы. |
DesignerTools | Схемы дизайнеров и их элементов. |
ProcessDesigner | Схемы дизайнера процессов. |