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

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

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

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "TFSX" #LightGreen {
    (файл) as file
}
as1->file:"Отправка"
file->as2:"Получение"
@enduml

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

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "\t\t\tTFSX\t\t\t" #LightGreen {
    (файл) as file
    (сообщение-уведомление) as put_notify_mq
    (сообщение-квитанция) as put_receipt_mq #LightGoldenRodYellow
}

file-[hidden]-put_notify_mq
put_notify_mq-[hidden]-put_receipt_mq

as1->file:"Отправка"
file->as2:"Получение"
as1->put_notify_mq:"Отправка"
put_notify_mq->as2:"Получение"
as1<-put_receipt_mq:"Получение"
put_receipt_mq<-as2:"Отправка"
@enduml

3. Передача файлов с использованием done-файла#

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "\t\t\tTFSX\t\t\t" #LightGreen {
    (файл) as file
    (сообщение-уведомление) as put_notify_mq
    (сообщение-квитанция) as put_receipt_mq #LightGoldenRodYellow
    (done-файл) as done
    (файл-квитанция) as receipt_file #LightGoldenRodYellow
}

file-[hidden]-put_notify_mq
put_notify_mq-->done:"Формирование"
done-[hidden]-receipt_file
receipt_file-->put_receipt_mq:"Формирование"


as1->file:"Отправка"
file-->as2:"Получение"
as1->put_notify_mq:"Отправка"
as1<-put_receipt_mq:"Получение"
done->as2:"Получение"
receipt_file<-as2:"Отправка"

@enduml

4. Передача файлов с нотификацией виде файловой квитанции от TFSX для Отправителя#

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "TFSX" #LightGreen {
    (файл) as file
    (файл-квитанция) as receipt_file
}
file-[hidden]-receipt_file

as1->file:"Отправка"
file->as2:"Получение"
as1<-receipt_file
@enduml

5. Передача файлов между отдельными локациями с контролем целостности и возможностью повторной отправки#

@startuml
'skinparam linetype ortho
:as1: as "АС Отправитель"
rectangle tfsx1 as "TFSX1" #LightGreen {
    (файл) as file1
}
rectangle trans1 as "Внешний канал \nпередачи файлов" {
    folder "внешняя папка TFSX1_OUT" as fir1
    folder "внешняя папка TFSX1_IN" as fir2
    fir1 ..> fir2:" Передача"
}
rectangle tfsx2 as "TFSX2" #LightGreen {
    (файл) as file2
}
:as2: as "АС Получатель" #LightGoldenRodYellow
(Запрос повторной отправки) as zap
as1->file1:"Отправка\t"
file1->fir1
fir2->file2:"Контроль целостности\n"
file2->as2:"\tПолучение"
fir2-d[hidden]-zap
tfsx1<-d-zap
zap<-u-tfsx2

@enduml

6. Передача файлов с проверкой на вирусы#

@startuml
(Сервис\nпроверки\nна вирусы) as avp
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "TFSX" #LightGreen {
    (файл) as file
}
avp<-->file:"Проверка на вирусы"
as1->file:"Отправка"
file->as2:"Получение"
@enduml

7. Передача файлов в FTRF в режиме «ftrfv1» с custom-заголовком#

@startuml
'skinparam linetype ortho
:as1: as "АС Отправитель"
rectangle tfsx1 as "TFSX1" #LightGreen {
    (файл) as file1
}
rectangle ftrf1 as "FTRF1\n(ftrfv1)" #LightBlue {
    (файл) as file2
}
rectangle tfsx2 as "FTRF2\n(ftrfv1)" #LightBlue {
    (файл) as file3
}
:as2: as "АС Получатель" #LightGoldenRodYellow
as1->file1:"Отправка\t"
file1->file2
file2->file3:"Маршрутизация входящих уведомлений\n на соответствующий sidecar."
file3->as2:"\tПолучение"
@enduml

8. Получение файлов от FTRF в режиме «ftrfv1»#

@startuml
'skinparam linetype ortho
:as1: as "АС Отправитель"
rectangle tfsx1 as "TFSX1" #LightGreen {
    (файл) as file1
}
rectangle ftrf1 as "FTRF1\n(ftrfv1)" #LightBlue {
    (файл) as file2
}
rectangle tfsx2 as "FTRF2\n(ftrfv1)" #LightBlue {
    (файл) as file3
}
:as2: as "АС Получатель" #LightGoldenRodYellow

as1->file3:"Отправка\t"
file3->file2
file2->file1
file1->as2:"\tПолучение"
@enduml

9. TFSX отправляет уведомление DeliveryConfirm о доставке файлов в FTRF#

@startuml
'skinparam linetype ortho
:as1: as "АС Отправитель"
rectangle tfsx1 as "TFSX1" #LightGreen {
    (DeliveryConfirm) as file1
}
rectangle ftrf1 as "FTRF1\n(BC)" #LightBlue {
    (DeliveryConfirm) as file2
}

rectangle tfsx2 as "FTRF2\n(BC)" #LightBlue {
    (DeliveryConfirm) as file3
}
:as2: as "АС Получатель" #LightGoldenRodYellow
as1->file1:"Отправка\t"
file1->file2
file2->file3
file3->as2:"\tПолучение"
@enduml

10. TFSX получает уведомление DeliveryConfirm о доставке файлов от FTRF#

@startuml
'skinparam linetype ortho
:as1: as "АС Отправитель"
rectangle tfsx1 as "TFSX1" #LightGreen {
    (DeliveryConfirm) as file1
}
rectangle ftrf1 as "FTRF1\n(BC)" #LightBlue {
    (DeliveryConfirm) as file2
}
rectangle tfsx2 as "FTRF2\n(BC)" #LightBlue {
    (DeliveryConfirm) as file3
}
:as2: as "АС Получатель" #LightGoldenRodYellow

as1->file3:"Отправка\t"
file3->file2
file2->file1
file1->as2:"\tПолучение"
@enduml

11. Использование механизма Rate Limit для защиты от превышения нагрузки#

@startuml

actor :АС Отправитель: as automation_system_1
actor :АС Получатель: as automation_system_2

rectangle TFSX #LightGreen {
  usecase "Доставка файла" as UC1
  usecase "Применение ограничений RateLimit на доставку" as UC2
}

automation_system_1 -> UC1
UC2 -left-> UC1
UC1 -> automation_system_2

@enduml

12. Передача файлов с проверкой подписи и отправкой обратных квитанций#

@startuml
as1 as "АС Отправитель"
as2 as "АС Получатель"
rectangle TFSX #LightGreen {
    (f1) as "Проверка подписи"
    (f2) as "Обратная квитанция"
}
as1 -> f1:"Получение файла"
f1 ->as2:"Передача файла"
as1 <- f2:"Отправка"
f1 -up[hidden]- f2
@enduml

13. Передача файлов без нотификаций в S3 хранилище, используя FSGW#

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "TFSX" #LightGreen {
    (файл) as file1
}
rectangle fsgw as "FSGW" #LightBlue {
    (файл) as file2
}
as1->file1:"Отправка"
file1->file2:"Отправка"
file2->as2:"Получение"
@enduml

14. Передача файлов с нотификациями из S3 хранилища, используя FSGW#

@startuml
:as1: as "АС Отправитель"
:as2: as "АС Получатель" #LightGoldenRodYellow
rectangle tfsx as "\t\t\tTFSX\t\t\t" #LightGreen {
    (файл) as file1
    (сообщение-уведомление) as put_notify_mq
    (сообщение-квитанция) as put_receipt_mq #LightGoldenRodYellow
}
rectangle fsgw as "FSGW" #LightBlue {
    (файл) as file2
}

file1-[hidden]-put_notify_mq
put_notify_mq-[hidden]-put_receipt_mq

as1->file1:"Отправка"
file1->file2:"Отправка"
file2->as2:"Получение"
as1->put_notify_mq:"Отправка"
put_notify_mq->as2:"Получение"
as1<-put_receipt_mq:"Получение"
put_receipt_mq<-as2:"Отправка"
@enduml

15. Передача файлов FTRF -> TFSX в зависимости от применения сервиса ОТТ#

@startuml
autonumber
title Процесс обработки зашифрованного файла от FTRF

' === Участники ===
Participant "АС Отправитель" as sender #4DA6FF
Participant "S3 Хранилище" as s3 #lightgray
box "TFSX" #LightBlue
  Participant "Ядро TFSX" as tfs #lightgreen
  Participant "Система ОТТ" as ott #pink
end box
Participant "СХД Получателя" as sds_receiver #ff788a
Participant "АС Получатель" as receiver #ff788a

' === Этап 1: Загрузка зашифрованного файла ===
sender -> s3: Загрузка зашифрованного файла в S3
note right
Файл зашифрован симметричным ключом.
Доставлен с помощью FTRF
end note

' === Этап 2: Отправка gRPC-сообщения ===
sender -> tfs: gRPC-сообщение: encMessage, [tokenResult]
note right
Сообщение содержит:
- поле encMessage (может быть зашифровано или открыто)
- опционально: tokenResult
end note

opt "Нет настроек ОТТ"
tfs -> tfs: Извлечение симметричного ключа из encMessage
note left
Ключ лежит в открытом виде
end note
end opt

' === Этап 3: Проверка режима работы TFSX ===

    alt "Поле tokenResult заполнено"
        tfs --> ott: Авторизаци в ОТТ
        note right
        TFSX заранее авторизуется в ОТТ и получает токен
        end note
        tfs -> tfs: Верификация tokenResult

        tfs -> tfs: Расшифровка encMessage с помощью tokenResult → получение симметричного ключа
    else "Поле tokenResult пустое"
        tfs -> tfs: Извлечение симметричного ключа из encMessage
        note left
        Ключ лежит в открытом виде
        end note
    end

' === Общая логика для обоих режимов (после получения ключа) ===
tfs -> s3: Скачивание файла из S3 по ссылке

tfs -> tfs: Расшифровка файла симметричным ключом
note right
Ключ получен из encMessage
end note

tfs -> sds_receiver: Передача расшифрованного файла в СХД получателя

opt "Уведомление о файле"
tfs -> sds_receiver: Отправка уведомления о доставке файла
end opt

opt "Уведомление о статусе доставки файла"
tfs -> sender: Отправка уведомления о статусе доставке файла
end opt

' === Финальный шаг: получатель забирает файл ===
receiver -> sds_receiver: Чтение файла из СХД

@enduml

16. Передача файлов TFSX -> FTRF в зависимости от применения сервиса ОТТ#

@startuml
autonumber
title Процесс шифрования файла и отправки gRPC с/без ОТТ в сторону FTRF

' === Участники ===
Participant "АС Отправитель" as sender #4DA6FF
Participant "СХД Отправителя" as sds_sender #4DA6FF
Participant "Kafka" as kafka #yellow
box "TFSX" #LightBlue
  Participant "Ядро TFSX" as tfs #lightgreen
  Participant "Система ОТТ" as ott #pink
end box
Participant "S3 Хранилище" as s3 #lightgray
Participant "АС Получатель" as receiver #ff788a

' === Этап 1: Размещение файла ===
sender -> sds_sender: Размещение файла в СХД

' === Этап 2: Сообщение в Kafka ===
sender -> kafka: Отправка сообщения в топик Kafka
note right
Сообщение содержит:
- имя файла
- идентификатор сценария
end note

' === Этап 3: TFSX берет сообщение ===
kafka --> tfs: Чтение сообщения из топика
tfs -> sds_sender: Получение файла из СХД отправителя

' === Этап 4: Генерация ключа и шифрование ===
tfs -> tfs: Генерация симметричного ключа шифрования (на основе параметров маршрута)
tfs -> tfs: Шифрование файла симметричным ключом
tfs -> s3: Сохранение зашифрованного файла в S3 (для получателя)

' === Этап 5: Определение invoker (moduleID) ===
tfs -> tfs: Определение invoker (moduleID)
alt "Есть настройки ОТТ"
    tfs -> tfs: moduleID = значение из настроек ОТТ
else "Нет настроек ОТТ"
    tfs -> tfs: moduleID = tfsName из params
end

' === Этап 6: Формирование данных для gRPC ===
tfs -> tfs: Подготовка данных для gRPC-сообщения

alt "Настройки ОТТ отсутствуют"
    tfs -> tfs: moduleID = tfsName из params
    tfs -> tfs: tokenResult = пустое значение
    tfs -> tfs: EncryptMsg = симметричный ключ в открытом виде
    note right
    Ключ передается в открытом виде
    end note
else "Настройки ОТТ есть"
    alt "Режим OttStrictMode = true (дефолтное значение)"
        tfs -> ott: Запрос tokenResult у системы ОТТ
        ott --> tfs: Возврат tokenResult
        tfs -> tfs: Шифрование симметричного ключа с помощью tokenResult
        tfs -> tfs: EncryptMsg = зашифрованный ключ
        tfs -> tfs: tokenResult = заполнено
        tfs -> tfs: moduleID = значение из настроек ОТТ
    else "Режим OttStrictMode = false"
        tfs -> tfs: moduleID = значение из настроек ОТТ
        tfs -> tfs: tokenResult = пустое значение
        tfs -> tfs: EncryptMsg = симметричный ключ в открытом виде
        note left
        Даже при наличии ОТТ — в режиме OttStrictMode = false
        tokenResult не используется, ключ в открытом виде
        end note
    end
end

' === Этап 7: Отправка gRPC получателю ===
tfs -> receiver: Отправка gRPC-сообщения
note right
Сообщение содержит:
- поле EncryptMsg (ключ)
- поле tokenResult (если заполнено)
- invoker = moduleID
end note

' === Этап 8: Получатель обрабатывает файл ===
receiver -> s3: Скачивание зашифрованного файла из S3
receiver -> receiver: Расшифровка файла
@enduml

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

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

1.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

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

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

2.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2).

  3. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

  4. Компонент TFSX отправляет JMS-уведомление о передаче файла в АС Получатель.

  5. АС Получатель принимает файл в обработку, затем удаляет его из общей папки TFSX и АС Получатель.

  6. После передачи файла АС Получатель уведомляет компонент TFSX о получении файла, для этого отправляет JMS-квитанцию со статусом доставки файла.

  7. TFSX пересылает JMS-квитанцию в АС Отправитель.

  8. АС Отправитель обрабатывает JMS-квитанцию.

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

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Сообщение о передача файла не прошло валидацию.

  3. Публикация сообщения об ошибке.

2.4 Исключительный сценарий 2:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Ошибка передачи файла.

  4. Публикация сообщения об ошибке.

3. Передача файлов с использованием done-файла#

3.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

  4. После того как файл полностью выложен, TFSX публикует done-файл. После обнаружения done-файла АС Получатель уведомляет о приеме файла, для этого отправляет файл-квитанцию со статусом приема файла.

  5. Компонент TFSX получает файл квитанцию и отправляет JMS-уведомление о передаче файл-квитанции.

  6. АС Отправитель обрабатывает JMS-квитанцию.

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

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Сообщение о передача файла не прошло валидацию.

  3. Публикация сообщения об ошибке.

3.4 Исключительный сценарий 2:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Ошибка передачи файла.

  4. Публикация сообщения об ошибке.

4. Передача файлов с нотификацией виде файловой квитанции от TFSX для Отправителя#

4.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

  4. Если в процессе передачи файла произошла ошибка, то TFSX выкладывает файловую квитанцию об ошибке в отдельную общую папку TFSX и Отправителя.

  5. После завершения транзакции по передачи файла TFSX выкладывает файловую человекочитаемую квитанцию о результате передачи в отдельную общую папку TFSX и Отправителя.

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

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Сообщение о передача файла не прошло валидацию.

  3. Публикация сообщения об ошибке.

4.4 Исключительный сценарий 2:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  3. Ошибка передачи файла.

  4. Публикация сообщения об ошибке.

5. Передача файлов между двумя локациями с контролем целостности и механизмом повторной отправки#

5.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX1 в Локации1 в общую папку TFSX1 и АС1.

  2. Компонент TFSX1 сохраняет копию исходного файла в под-папке .camel и перекладывает файл во внешнюю папку TFSX1_OUT, после чего отправляет JMS-уведомление о передаче файла с указанием контрольной суммы.

  3. Компонент TFSX2 в Локации2 читает JMS-уведомление о передаче файла и ожидает файл в промежуточной папке TFSX2_IN, через публикацию в этой папке done-файла.

  4. Файл передается между Локациями 1 и 2 - из TFSX1_OUT в TFSX2_IN любым допустимым способом.

  5. Компонент TFSX2 при появлении во внешней папке TFSX2_IN файла соответствующего ожидаемому, проверяет его контрольную сумму.

  6. Если контрольная сумма не совпадает, компонент TFSX2 отправляет JMS-запрос о повторной отправке файла.

  7. Компонент TFSX1 получает запрос о повторной отправке, переносит исходный файл из под-папки .camel в общую папку TFSX1 и АС1 и переходит к п.2.

  8. Если превышено предельное количество попыток повторной передачи, компонент TFSX1 публикует JMS-уведомление об ошибке передачи файла.

  9. Если контрольная сумма совпадает, компонент TFSX2 перекладывает файл из TFSX2_IN в общую папку TFSX2 и АС Получатель (АС2)

  10. Компонент TFSX2 отправляет JMS-квитанцию об успешном приеме файла.

  11. Компонент TFSX2 отправляет JMS-запрос об удалении исходного файла в Локации1.

  12. Компонент TFSX1 получает JMS-запрос и удаляет файл из общей папки TFSX1 и АС1 и из под-папки .camel

  13. Компонент TFSX1 отправляет JMS-уведомление об успешном завершении операции.

  14. АС Отправитель обрабатывает JMS-квитанцию.

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

6. Передача файлов с проверкой на вирусы#

6.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Компонент TFSX обращается во внешний сервис для проверки файла на вирусы.

  3. Если файл заражен, компонент TFSX удаляет файл.

  4. Компонент TFSX перекладывает файл в общую папку TFSX и АС Получатель (АС2)

  5. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

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

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Ошибка передачи файла.

  3. Публикация сообщения об ошибке.

7. Передача файлов в FTRF в режиме «ftrfv1» с custom-заголовком#

7.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Компонент TFSX добавляет custom-заголовок «scenario-id» содержащий информацию о маршруте.

  3. Компонент TFSX отправляет grpc нотификации в FTRF1.

  4. FTRF1 получает уведомление от TFSX, выгружает файлы в облачное хранилище и отправляет grpc нотификации в FTRF2.

  5. FTRF2 получает уведомление и отправляет в АС Получатель (АС2), о том что есть файлы готовые для выгрузки

  6. АС Получатель (АС2) отправляет нотификацию в FTRF2 для получения файлов.

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

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Ошибка передачи файла.

  3. Публикация сообщения об ошибке.

8. Получение файлов от FTRF в режиме «ftrfv1»#

8.1 Основной сценарий:

  1. АС Отправитель (АС1) отправляет grpc нотификацию в FTRF2.

  2. FTRF2 получает уведомление от АС1, выгружает файлы в облачное хранилище и отправляет grpc нотификации в FTRF1.

  3. FTRF1 получает уведомление и отправляет в TFSX, о том что есть файлы готовые для выгрузки

  4. TFSX отправляет нотификацию в FTRF1 для получения файлов.

  5. Компонент TFSX получает файлы и выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС2.

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

  1. АС Отправитель (АС1) отправляет grpc нотификацию в FTRF2.

  2. FTRF2 получает уведомление от АС1, выгружает файлы в облачное хранилище и отправляет grpc нотификации в FTRF1.

  3. FTRF1 получает уведомление и отправляет в TFSX, о том что есть файлы готовые для выгрузки

  4. TFSX отправляет нотификацию в FTRF1 для получения файлов.

  5. Ошибка передачи файла.

  6. Публикация сообщения об ошибке.

9. TFSX отправляет уведомление DeliveryConfirm о доставке файлов в FTRF#

9.1 Основной сценарий:

  1. АС Отправитель (АС1) после получения файлов уведомляет TFSX о доставке файлов.

  2. Компонент TFSX отправляет grpc нотификацию DeliveryConfirm о доставке файлов в FTRF1.

  3. FTRF1 получает уведомление от TFSX и отправляет нотификацию в FTRF2.

  4. FTRF2 получает уведомление о доставке файлов и отправляет в АС Получатель (АС2).

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

  1. АС Отправитель (АС1) после получения файлов уведомляет TFSX о доставке файлов.

  2. Ошибка передачи файла.

  3. Публикация сообщения об ошибке.

10. TFSX получает уведомление DeliveryConfirm о доставке файлов от FTRF#

10.1 Основной сценарий:

  1. АС Отправитель (АС1) после получения файлов уведомляет FTRF2 о доставке файлов.

  2. FTRF2 получает уведомление от АС1 и отправляет нотификацию в FTRF1.

  3. FTRF1 получает уведомление от FTRF2 и отправляет нотификацию в компонент TFSX.

  4. TFSX получает уведомление о доставке файлов и уведомляет АС Получатель (АС2).

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

  1. АС Отправитель (АС1) после получения файлов уведомляет FTRF2 о доставке файлов.

  2. FTRF2 получает уведомление от АС1 и отправляет нотификацию в FTRF1.

  3. FTRF1 получает уведомление от FTRF2 и отправляет нотификацию в компонент TFSX.

  4. TFSX получает уведомление о доставке файлов и уведомляет АС Получатель (АС2).

  5. Ошибка передачи файла.

  6. Публикация сообщения об ошибке.

11. Использование механизма Rate Limit для защиты от превышения нагрузки#

11.1 Основной сценарий:

  1. Автоматизированная система (АС Отправитель) отправляет файл на доставку в TFSX.

  2. TFSX при доставке файла применяет ограничения на этот процесс в соответствиями с соответствующими политиками RateLimit

  3. В случае попадания в пределы RateLimit файл доставляется АС Получателю.

  4. В случае превышения RateLimit файл не доставляется. Файл остается лежать в папке Отправителя.

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

  1. Автоматизированная система (АС Отправитель) отправляет файл на доставку в TFSX.

  2. Ошибка передачи файла.

  3. Публикация сообщения об ошибке.

  4. Передача файлов с проверкой подписи и отправкой обратных квитанций

12. Передача файлов с проверкой подписи и отправкой обратных квитанций#

12.1 Основной сценарий:

  1. Автоматизированная система (АС Отправитель) размещает файл на общий с TFSX файловый ресурс.

  2. Компонент TFSX получает файл.

  3. Компонент TFSX проверяет файл по маске.

  4. Компонент TFSX проверяет наличие подписей у файла.

  5. Компонент TFSX определяет количество подписей у файла.

  6. Компонент TFSX проверяет подписи у файла.

  7. Компонент TFSX публикует файл на общий с автоматизированной системой, АС Получатель, файловый ресурс.

  8. АС Получатель отправляет в компонент TFSX квитанцию о получении файла.

  9. Компонент TFSX отправляет обратную квитанцию о доставке фала АС Отправителю.

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

  1. Компонент TFSX проверяет файл по маске.

  2. Файл не соответствует маске.

  3. Отправка квитанции об ошибке.

12.4 Исключительный сценарий 2:

  1. Компонент TFSX проверяет файл по маске.

  2. Файл не подписан.

  3. Отправка квитанции об ошибке.

12.5 Исключительный сценарий 3:

  1. Компонент TFSX проверяет файл по маске.

  2. Число подписей в файле менее 2.

  3. Отправка квитанции об ошибке.

12.6 Исключительный сценарий 4:

  1. Компонент TFSX проверяет файл по маске.

  2. Подпись не зарегистрирована.

  3. Отправка квитанции об ошибке.

Дополнительная информация#

В случае если логируется ошибка с кодом 104 - ошибка смежной системы, через 24 часа файл удаляется.

13. Передача файлов без нотификаций в S3 хранилище, используя FSGW#

13.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1.

  2. Компонент TFSX перекладывает файл в S3 хранилище, используя FSGW в качестве прозрачного шлюза, в бакет АС Получателя (АС2)

  3. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

13.2 Альтернативный сценарий не предусмотрен
13.3 Исключительный сценарий не предусмотрен

14. Передача файлов с нотификациями из S3 хранилища, используя FSGW#

14.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл в бакет S3 хранилища АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX перекладывает файл из S3 хранилища, используя FSGW в качестве прозрачного шлюза, в общую папку TFSX и АС Получатель (АС2).

  3. Компонент TFSX удаляет файл из бакета АС Отправителя.

  4. Компонент TFSX отправляет JMS-уведомление о передаче файла в АС Получатель.

  5. АС Получатель принимает файл в обработку, затем удаляет его из общей папки TFSX и АС Получатель.

  6. После передачи файла АС Получатель уведомляет компонент TFSX о получении файла, для этого отправляет JMS-квитанцию со статусом доставки файла.

  7. TFSX пересылает JMS-квитанцию в АС Отправитель.

  8. АС Отправитель обрабатывает JMS-квитанцию.

14.2 Альтернативный сценарий не предусмотрен
14.3 Исключительный сценарий

  1. АС Отправитель (АС1) выкладывает файл в бакет S3 хранилища АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Сообщение о передача файла не прошло валидацию.

  3. Публикация сообщения об ошибке.

15. Передача файлов FTRF -> TFSX в зависимости от применения сервиса ОТТ#

15.1 Основной сценарий:

  1. АС Отправитель (АС1), с помощью FTRF, выкладывает зашифрованный файл в бакет S3 хранилища АС1.

  2. АС1, с помощью FTRF, отправляет grpc нотификацию в TFSX.

  3. Компонент TFSX анализирует наличие настроек ОТТ и наличие tokenResult в grpc нотификации.

  4. Компонент TFSX, при наличии ОТТ и tokenResult, извлекает симметричный ключ из encMessage.

  5. Компонент TFSX скачивает файл из s3-хранилища и расшифровывает его симметричным ключем.

  6. Компонент TFSX перекладывает расшифрованный файл в общую папку TFSX и АС Получатель (АС2).

  7. TFSX отправляет JMS-квитанцию в АС1 со статусом доставки (если необходимо).

  8. АС1 обрабатывает JMS-квитанцию.

  9. Компонент TFSX отправляет JMS-уведомление о передаче файла в АС2.

  10. АС2 принимает файл в обработку, затем удаляет его из общей папки TFSX и АС2.

15.2 Альтернативный сценарий:

  1. АС Отправитель (АС1), с помощью FTRF, выкладывает зашифрованный файл в бакет S3 хранилища АС1.

  2. АС1, с помощью FTRF, отправляет grpc нотификацию в TFSX.

  3. Компонент TFSX анализирует наличие настроек ОТТ и наличие tokenResult в grpc нотификации.

  4. Компонент TFSX, при отсутствии ОТТ или tokenResult, извлекает симметричный ключ в открытом виде из encMessage.

  5. Компонент TFSX скачивает файл из s3-хранилища и расшифровывает его симметричным ключем.

  6. Компонент TFSX перекладывает расшифрованный файл в общую папку TFSX и АС Получатель (АС2).

  7. TFSX отправляет JMS-квитанцию в АС1 со статусом доставки (если необходимо).

  8. АС1 обрабатывает JMS-квитанцию.

  9. Компонент TFSX отправляет JMS-уведомление о передаче файла в АС2.

  10. АС2 принимает файл в обработку, затем удаляет его из общей папки TFSX и АС2.

15.3 Исключительный сценарий:

  1. АС Отправитель (АС1), с помощью FTRF, выкладывает зашифрованный файл в бакет S3 хранилища АС1.

  2. АС1, с помощью FTRF, отправляет grpc нотификацию в TFSX.

  3. Симметричный ключ не валидный.

  4. Публикация сообщения об ошибке расшифровки файла.

16. Передача файлов TFSX -> FTRF в зависимости от применения сервиса ОТТ#

16.1 Основной сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX читает уведомление и берет в работу файл от АС1.

  3. Компонент TFSX генерирует симметричный ключ шифрования и шифрует им исходный файл.

  4. Компонент TFSX перекладывает зашифрованный файл в s3-хранилище для АС Получателя (АС2).

  5. Компонент TFSX анализирует наличие настроек ОТТ и параметра OttStrictMode в настройках сценария.

  6. Компонент TFSX, при наличии ОТТ и OttStrictMode=true, шифрует симметричный ключ с помощью сервиса ОТТ из записывает результат в encMessage.

  7. Компонент TFSX отправляет grpc нотификацию в FTRF, принадлежащий АС2.

  8. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

  9. АС2, с помощью FTRF, получает grpc уведомление от TFSX, выгружает и расшифровывает файлы из s3 хранилища.

  10. TFSX отправляет JMS-квитанцию в АС1 со статусом доставки (если необходимо).

16.2 Альтернативный сценарий:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX читает уведомление и берет в работу файл от АС1.

  3. Компонент TFSX генерирует симметричный ключ шифрования и шифрует им исходный файл.

  4. Компонент TFSX перекладывает зашифрованный файл в s3-хранилище для АС Получателя (АС2).

  5. Компонент TFSX анализирует наличие настроек ОТТ и параметра OttStrictMode в настройках сценария.

  6. Компонент TFSX, при отсутствии ОТТ или OttStrictMode=false, записывает симметричный ключ в открытом виде в encMessage.

  7. Компонент TFSX отправляет grpc нотификацию в FTRF, принадлежащий АС2.

  8. Компонент TFSX удаляет файл из общей папки TFSX и АС Отправитель.

  9. АС2, с помощью FTRF, получает grpc уведомление от TFSX, выгружает и расшифровывает файлы из s3 хранилища.

  10. TFSX отправляет JMS-квитанцию в АС1 со статусом доставки (если необходимо).

16.3 Исключительный сценарий 1:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Сообщение о передача файла не прошло валидацию.

  3. Публикация сообщения об ошибке.

16.4 Исключительный сценарий 2:

  1. АС Отправитель (АС1) выкладывает файл на файловый ресурс TFSX в общую папку TFSX и АС1, после чего отправляет JMS-уведомление о передаче файла.

  2. Компонент TFSX шифрует и перекладывает файл в s3 хранилище для АС Получатель (АС2).

  3. Ошибка передачи файла.

  4. Публикация сообщения об ошибке.