Варианты и сценарии использования FTRF#
Варианты использования#
Варианты использования немного отличаются в зависимости от режимов работы FTRF. Подробнее о режимах изложено в разделе Интерфейсы.
FTRFv1#
BC/MC#
Данная диаграмма использования подходит для двух режимов работы: BC - BusinessCritical, и MC - MissionCritical.
Сценарии использования#
FTRFv1#
При выключенной интеграции с OTTS#
«Send files» - передача файла#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет уведомление о передаче файлов в FTRF;
«Notify» - получение уведомления о приеме файлов#
FTRF получает уведомление (TransferDescriptor) от внешнего отправителя;
FTRF формирует сообщение FileNotification для уведомления Application о возможности получения файлов;
FTRF получает подтверждение от Application о принятии сообщения FileNotification;
FTRF возвращает подтверждение внешнему отправителю;
Сценарий взаимодействия, при котором недоступно S3 хранилище (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает публикацию файлов в зашифрованном виде в SDS, но SDS не доступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступен FTRF получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов, но FTRF получателя недоступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступна АС получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов;
FTRF получателя формирует notify сообщение.
FTRF получателя отправляет notify сообщение получателю, получатель недоступен.
Application возвращается ошибка в ответ на сформированный запрос:
Описанные сценарии использования «Notify» и «Get files» связаны: без получения уведомления от внешнего отправителя по сценарию Notify, невозможно получить файлы в сценарии Get files
«Get files» - получение файла#
Application вызывает метод FTRF getFiles(), используя полученное ранее сообщение FileNotification;
FTRF извлекает файлы из SDS;
FTRF передает полученный файлы в дешифрованном виде Application.
При включенной интеграции с OTTS#
«Send files» - передача файла#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет уведомление о передаче файлов в FTRF;
«Notify» - получение уведомления о приеме файлов#
FTRF получает уведомление (TransferDescriptor) от внешнего отправителя;
FTRF валидирует полученное уведомление и токен OTT из него;
FTRF формирует сообщение FileNotification для уведомления Application о возможности получения файлов;
FTRF получает подтверждение от Application о принятии сообщения FileNotification;
FTRF возвращает подтверждение внешнему отправителю;
Сценарий взаимодействия, при котором недоступно S3 хранилище (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS, но SDS не доступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступен FTRF получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов, но FTRF получателя недоступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступна АС получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов;
FTRF получателя принимает запрос, валидирует ОТТ токен, извлекает ключ шифрования данных при помощи ОТТ токена, формирует notify сообщение.
FTRF получателя отправляет notify сообщение получателю, получатель недоступен.
Application возвращается ошибка в ответ на сформированный запрос:
Описанные сценарии использования «Notify» и «Get files» связаны: без получения уведомления от внешнего отправителя по сценарию Notify, невозможно получить файлы в сценарии Get files
«Get files» - получение файла#
Application вызывает метод FTRF getFiles(), используя полученное ранее сообщение FileNotification;
FTRF извлекает файлы из SDS;
FTRF передает полученный файлы в дешифрованном виде Application.
BC/MC#
«Send files» - передача файла#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет уведомление о передаче файлов в FTRF;
В зависимости от режима, BC или MC, передача будет выполнена соответственно через gRPC, или Kafka.
«Notify» - получение уведомления о приеме файлов#
FTRF получает уведомление (TransferDescriptor) от внешнего отправителя;
FTRF валидирует полученное уведомление и токен OTT из него;
FTRF формирует сообщение FileNotification для уведомления Application о возможности получения файлов;
FTRF получает подтверждение от Application о принятии сообщения FileNotification;
FTRF возвращает подтверждение внешнему отправителю;
«Get files» - получение файла#
Application вызывает метод FTRF getFiles(), используя полученное ранее сообщение FileNotification;
FTRF извлекает файлы из SDS;
FTRF передает полученный файлы в дешифрованном виде Application.
Сценарий взаимодействия, при котором недоступно S3 хранилище (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS, но SDS не доступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступен FTRF получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов, но FTRF получателя недоступен;
Application возвращается ошибка в ответ на сформированный запрос;
Сценарий взаимодействия, при котором недоступна АС получателя (исключительный сценарий)#
Application формирует запрос на передачу файла, вместе с самим файлом и передает FTRF в виде потока, вызвав метод sendFiles();
FTRF совершает обращение к OTTS для получения токена авторизации передачи, опираясь на информацию предоставленную в запросе;
FTRF совершает публикацию файлов в зашифрованном виде в SDS;
FTRF формирует уведомление (TransferDescriptor);
FTRF отправляет запрос в FTRF получателя с нотификацией о готовности файлов;
FTRF получателя принимает запрос, валидирует ОТТ токен, извлекает ключ шифрования данных при помощи ОТТ токена, формирует notify сообщение.
FTRF получателя отправляет notify сообщение получателю, получатель недоступен.
Application возвращается ошибка в ответ на сформированный запрос:
Сценарий взаимодействия «Confirm delivery» - подтверждение получения файла#
Опциональный use-case для передаче уведомления отправителю подтверждения о получении и обработки файла
Application вызывает метод FTRF confirmDelivery(), используя полученное ранее сообщение FileNotification;
FTRF отправляет сообщение FTRF отправителя;
FTRF отправителя сообщает АС отправителя о подтверждении получения со стороны получателя:
Application получает успех на вызов confirmDelivery();
Сценарий взаимодействия «Confirm delivery» - подтверждение получения файла, недоступен FTRF отправителя (Исключительный сценарий)#
Application вызывает метод FTRF confirmDelivery(), используя полученное ранее сообщение FileNotification;
FTRF отправляет сообщение FTRF отправителя, но он не доступен.
Application получает ошибку на вызов confirmDelivery();
Сценарий взаимодействия «Delete received files» - удаление полученных файлов#
Application вызывает deleteFiles();
FTRF вызывает deleteObject() по каждому объекту в SDS;
Application получает успех в ответ на deleteFiles();
Сценарий взаимодействия «Delete received files» - удаление полученных файлов, недоступен SDS (исключительный сценарий)#
Application вызывает deleteFiles();
FTRF вызывает deleteObject() по каждому объекту в SDS, но SDS недоступен;
Application получает ошибку в ответ на deleteFiles();