6. Транзакция общего процесса по шаблону "Запрос/ответ"

127. Транзакция общего процесса по шаблону "Запрос/ответ" выполняется путем представления запроса информации, которая должна быть динамически сформирована (собрана) на стороне респондента и поэтому не может быть предоставлена немедленно.

Инициирование транзакции осуществляется инициатором путем отправления сообщения-запроса респонденту.

Респондент должен отправить сообщение-ответ до истечения времени, определенного как время для ответа.

Если время для ответа истекло, инициатор должен заново инициировать транзакцию столько раз, сколько определено параметром "Количество повторов", или сигнализировать об ошибке, если исчерпано количество повторов.

128. Транзакции "Запрос/ответ" выполняются с обеспечением или без обеспечения гарантированности доставки.

129. Последовательность выполнения транзакции общего процесса по шаблону "Запрос/ответ" без обеспечения гарантированности доставки аналогична последовательности выполнения транзакции по шаблону "Вопрос/ответ".

130. В процессе выполнения транзакции общего процесса по шаблону "Запрос/ответ" с обеспечением гарантированности доставки реализуется следующая последовательность обмена сообщениями:

инициатор отправляет в адрес респондента сообщение-запрос и ждет подтверждения получения запроса до истечения времени, определенного как время для подтверждения получения;

респондент принимает сообщение-запрос и как получатель информации (если параметрами транзакции установлена необходимость подтверждения получения) отправляет инициатору сигнал-подтверждение "Получено";

инициатор после обработки принятого им от респондента сигнала-подтверждения "Получено" (если параметрами транзакции установлена необходимость подтверждения получения) ждет подтверждения принятия в обработку информации, содержащейся в сообщении-запросе, до истечения времени, определенного как время для подтверждения обработки;

респондент проводит контроль данных, содержащихся в сообщении-запросе, в соответствии с регламентом информационного взаимодействия и подтверждает принятие в обработку полученной им информации, посылая инициатору сигнал-подтверждение "Принято в обработку";

инициатор после обработки полученного им от респондента сигнала-подтверждения "Принято в обработку" ждет получения ответа до истечения времени, определенного как время для получения ответа;

респондент обеспечивает обработку принятого сообщения-запроса и отправляет инициатору сообщение-ответ;

инициатор принимает сообщение-ответ, при этом транзакция считается завершенной;

если инициатор не получил сигнал-подтверждение или сообщение-ответ до истечения времени, отведенного для их получения, он повторно инициирует транзакцию, если не исчерпано количество повторов.

Последовательность выполнения транзакции общего процесса по шаблону "Запрос/ответ" с обеспечением гарантированности доставки представлена на рисунке 4.

┌───────────┐ ┌───────────┐

│:инициатор │ │:респондент│

└─────┬─────┘ └─────┬─────┘

Сообщение-запрос

├────────────────────────────────────────────────────────────>│

│ Сигнал-подтверждение "Получено" │

│<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┬── ─ ─ ─ ─ ─ ─ │

│ │ │

│ │ │

│ ┌────────────────────────────────────\─┘ │

│ │Необходимость формирования сигнала │ │

│ │определяется параметрами транзакции │ │

│ └────────────────────────────────────┘ │

│ │

│ Сигнал-подтверждение "Принято в обработку" │

│< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│

│ │

│ Сообщение-ответ │

│<────────────────────────────────────────────────────────────┤

│ │

Рис. 4. Последовательность выполнения транзакции

общего процесса по шаблону "Запрос/ответ" с обеспечением

гарантированности доставки