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

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

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

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

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

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

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

респондент принимает запрос;

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

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

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

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

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

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

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

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

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

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

<────────────────────────────────────────────────────────────

│ │

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

процесса по шаблону "Вопрос/ответ"