Варианты и сценарии использования MFEX#

Варианты использования#

@startuml
left to right direction

actor "Интегратор" as Integrator
actor "Администратор" as Admin
actor "Внешняя система (АС1)" as ExternalSystem1
actor "Внешняя система (АС2)" as ExternalSystem2
actor "Брокер сообщений (Kafka)" as Kafka

rectangle "MFEX Система" {
  usecase "1. Передача файлов" as UC1
  usecase "2. Передача файлов с нотификациями" as UC2
  
  usecase "3. Проектирование интеграции" as UC3
  usecase "4. Управление секретами" as UC4
  usecase "5. Публикация проекта" as UC5
  
  usecase "6. Развертывание проекта" as UC6
  usecase "7. Мониторинг развертываний" as UC7
  usecase "8. Обновление конфигурации" as UC8
}

' Основные связи акторов
Integrator --> UC3
Integrator --> UC4
Integrator --> UC5
Integrator --> UC8

Admin --> UC7
Admin --> UC8

ExternalSystem1 --> UC1
ExternalSystem1 --> UC2

ExternalSystem2 --> UC1
ExternalSystem2 --> UC2

Kafka --> UC2
Kafka --> UC7
Kafka --> UC8

' Взаимосвязи между вариантами использования
UC1 .> UC2 : <<extend>>

UC5 .> UC6 : <<include>>
UC6 .> UC7 : <<include>>
UC8 .> UC6 : <<extend>>
UC8 .> UC7 : <<extend>>

@enduml

Сценарии использования#

1. Передача файлов без нотификаций и проверок#

1.1 Основной сценарий: В сценариях предусмотрено несколько режимов работы с исходным файлом: оставить файл, перенос в архивную директорию, удалить.

  1. Актор Внешняя Система (АС1 / АС Отправитель) размещает файл в исходной директории на СХД отправителя.

  2. Программный Компонент Executor (MFEX) выполняет сканирование каталога СХД отправителя и обнаруживает новый файл.

  3. Executor получает файл из СХД отправителя.

  4. Executor доставляет файл в целевую директорию на СХД получателя.

  5. Executor регистрирует факт успешной передачи в Журнале событий.

  6. Executor выполняет постобработку исходного файла (функция «Постобработка оригинального файла»), удаляя его из исходной директории на СХД отправителя.

  7. Актор Внешняя Система (АС2 / АС Получатель) получает файл от СХД получателя.

1.2 Альтернативный сценарий не предусмотрен. 1.3 Исключительный сценарий:

  1. Актор Внешняя Система(АС1) размещает файл в исходной директории на СХД отправителя.

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

  3. Executor выполняет политику повторных попыток. (Логика политики зависит от реализации).

  4. Примечание: В зависимости от критичности ошибки, процесс может быть прерван, файл может остаться в исходной директории для последующей обработки, а событие об ошибке зафиксировано в Журнале событий.

2. Передача файлов с нотификациями (Kafka)#

2.1 Основной сценарий: В сценариях предусмотрено несколько режимов работы с исходным файлом: оставить файл, перенос в архивную директорию, удалить.

  1. Актор Внешняя Система (АС1 / АС Отправитель) размещает файл в исходной директории на СХД отправителя.

  2. Актор Внешняя Система (АС1 / АС Отправитель) отправляет Kafka-уведомление (триггерный XML-файл) в брокер сообщений (Kafka источник).

  3. Программный Компонент Executor (MFEX) получает сообщение из брокера (Kafka источник) и обрабатывает его (функция «Обработка триггерного XML-файла»).

  4. Executor выполняет валидацию полученного уведомления.

  5. При успешной валидации: Executor обогащает данные из сообщения статической конфигурацией (функция «Обогащение данных») и использует их для поиска и обработки файла.

  6. Executor запрашивает и получает целевой файл от СХД отправителя.

  7. Executor доставляет файл в целевую директорию на СХД получателя.

  8. Executor формирует и отправляет Kafka-уведомление для АС Получателя (функция «Формирование XML-уведомления для брокера») в брокер сообщений (Kafka цель).

  9. Executor регистрирует факт успешной передачи в Журнале событий.

  10. Актор Внешняя Система (АС2 / АС Получатель) получает уведомление от MFEX через Kafka цель.

  11. Актор Внешняя Система (АС2 / АС Получатель) получает файл от СХД получателя.

2.2 Альтернативный сценарий не предусмотрен. 2.3 Исключительный сценарий 1: Ошибка валидации уведомления

  1. Актор Внешняя Система(АС1) размещает файл в исходной директории и отправляет Kafka-уведомление.

  2. Executor получает и обрабатывает уведомление.

  3. Сообщение от Актора Внешняя Система(АС1) не прошло валидацию в Executor.

  4. Executor не продолжает обработку файла, а публикует сообщение об ошибке в специальный топик ошибок брокера (Kafka источник).

  5. Executor регистрирует факт ошибки валидации в Журнале событий.

2.4 Исключительный сценарий 2: Ошибка передачи файла

  1. Актор Внешняя Система(АС1) размещает файл в исходной директории и отправляет Kafka-уведомление.

  2. Executor обрабатывает уведомление (валидация пройдена), находит файл на СХД отправителя и пытается передать его на СХД получателя.

  3. При передаче файла возникает ошибка (сетевая, доступа, и т.д.).

  4. Executor публикует сообщение об ошибке в брокер (Kafka источник).

  5. Executor агрегирует статус обработки (функция «Агрегация статусов транспортных задач») и выполняет политику повторных попыток.

  6. Executor регистрирует факт ошибки передачи в Журнале событий.

Если выбран режим с удалением файла из исходной директории, то файл будет удален, только при успешной отправки.