1. ПТС ОРИ должны обеспечивать подключение ПУ и обработку поступающих запросов по каналу кпд2 в соответствии с приведенными диаграммами состояний переходов.
2. Диаграмма состояний переходов ПТС ОРИ по кпд2 приведена на схеме 1:
1) ПТС ОРИ по TCP-порту кпд2 должны ожидать входящих соединений. После установления соединения должна выполняться взаимная SSL/TLS-аутентификация;
2) если на ПТС ОРИ был передан запрос ПУ "Запрос загрузки данных" (DataLoadRequest), ПТС ОРИ должны послать "ответ на запрос загрузки данных" (DataLoadResponse) по каналу кпд1 и начать передачу данных блоков отчетов по кпд2 при их наличии. ПУ должен получать блоки отчетов по кпд2 до получения "ответа на запрос загрузки данных" (DataLoadResponse) по кпд1;
3) если количество переданных без получения "подтверждения" о принятии серии блоков "отчетов" по всем задачам, по которым выполняется загрузка на ПУ данных, меньше "окна канала передачи данных" (параметр data-packet-window-size в запросе ПУ "Запрос на открытие сессии" ConnectRequest), то ПТС ОРИ должны выполнить подготовку новых блоков отчетов по загружаемым задачам и послать их на ПУ. Количество подготовленных и переданных без получения "подтверждения" блоков не должно превышать "размер окна канала передачи данных";
5) если при ожидании поступления в ПУ блоков отчетов ПТС ОРИ не посылали "сигнал" HeartBeat в течение трех интервалов "максимального времени неактивности" (session-timeout, задается в ConnectRequest), ПУ должен разорвать соединения к ПТС ОРИ по кпд1 и кпд2 и перевести их в начальное состояние согласно подпункту 1 пункта 1 приложения N 5 к настоящим требованиям и подпункту 1 пункта 2 настоящего приложения.
4) максимальная задержка подтверждения приема блока данных со стороны ПУ не должна превышать параметр "таймаут подтверждения приема блока данных отчета" (data-packet-response-timeout), указываемый при создании сессии. Если задержка подтверждения превысила заданное значение, то оставшиеся для передачи блоки данных не должны отправляться, а по каналу управления должен передаваться "сигнал" "Незначительная ошибка ПО, данные не потеряны, дальнейшая работа возможна" с соответствующим описанием проблемы. При этом в поле "reference-message" сообщения "сигнал" должен указываться идентификатор сообщения блока отчета, по которому не поступило подтверждение приема;
5) при получении "подтверждения" блока "отчета" ПТС ОРИ должны записать информацию об ошибочно принятом ПУ блоке и ошибочных записях в блоке в журнал, при этом передача последующих блоков по задаче на ПУ не должна прерываться. ПТС ОРИ должны предоставить техническому персоналу ОРИ доступ к журналу с записями об ошибочно принятых на ПУ блоках отчетов и средства исправления ошибочных данных в отчетах. Подтвержденные блоки должны исключаться из "окна канала передачи данных" (в "окне канала передачи данных" должны остаться только неподтвержденные блоки);
6) в случае разрыва TCP/IP соединения кпд2 при существующем соединении кпд1, по кпд1 должно быть передано сообщение "Незначительная ошибка ПО, данные не потеряны, дальнейшая работа возможна" с соответствующим описанием проблемы. В данном случае должно продолжаться выполнение установления соединения по кпд2 согласно пункту 10 приложения N 2 к настоящим требованиям;
7) передача блоков данных должна прерываться в случае получения ПТС ОРИ запроса ПУ "Запрос прерывания загрузки данных".
8) если по кпд2 не производится передача блоков отчетов в течение "максимального времени неактивности" (session-timeout при создании сессии ConnectRequest), ПТС ОРИ должна направить на ПУ "сигнал" (HeartBeat) и ожидать его подтверждения согласно подпункту 9 пункта 1 приложения N 5 к настоящим требованиям.
3. Диаграмма состояний переходов ПУ по кпд2 приведена на схеме 2:
1) ПУ с задаваемым интервалом должен выполнять попытки установления TCP-соединения к ПТС ОРИ по заданному порту кпд2. После установления соединения должна выполняться взаимная SSL/TLS-аутентификация;
2) при поступлении запроса ПУ "Запрос загрузки данных" (DataLoadRequest) ПУ должен ожидать начала передачи данных в течение времени "таймаут начала передачи блоков отчетов" (data-load-timeout в ConnectRequest). Если данные не поступают в течение вышеописанного периода, то ПУ должен разорвать соединения по каналам кпд1 и кпд2 и перевести соединения в начальное состояние согласно подпункту 1 пункта 1 приложения N 5 к настоящим требованиям и подпункту 1 настоящего пункта;
3) при поступлении блока отчета ПУ должен произвести декодирование полученного блока и сохранение декодированных данных;
4) в ответ на переданный блок данных ПУ должен послать сообщение "подтверждение" получения блока отчета. Количество последовательно переданных ПТС ОРИ блоков данных без подтверждения со стороны ПУ определяется параметром "размер окна канала передачи данных", который согласовывается при создании сессии. При подтверждении блока отчета ПУ должен сигнализировать об ошибке декодирования блока. В этом случае в сообщении "подтверждение" приема для ошибочно декодированного блока ПУ, в случае возможности, следует указать номер записи в блоке, начиная с которой декодирование не удалось;