Как я могу научить, что мыло не является надежным транспортом?


Мне нужно научить, что вызов HTTP SOAP может быть получен, но вызывающий абонент может не получить ответ из-за сбоя сети (среди других проблем). (Эта проблема заставила WS-ReliableMessaging быть разработанным)

Как бы вы, ребята, показали эту проблему разработчику веб-сервиса, чтобы он мог разработать ее с учетом того, что могут быть получены дубликаты сообщений?

Проблема в том, что они не понимают, что HTTP-вызов может быть отлично принят сервером и действовать по нему. сервер, но ответ на вызов может быть потерян.

4 3

4 ответа:

Как насчет диаграммы вариантов использования или временной шкалы, демонстрирующей событие сбоя во время передачи?

Почему бы не показать диаграмму сообщений, идущих назад и вперед между клиентом и сервером SOAP runtime в течение долгого времени? На этой диаграмме могут быть показаны сообщения, потерянные в какой-то момент, или дубликаты, поступающие или сообщения, поступающие не по порядку.

Все очень просто. У вас есть две вертикальные линии, представляющие клиент и сервер параллельно друг другу. Затем вы помечаете линии (диагонали) между ними, чтобы указать сообщения. Сообщение, потерянное в транспорте, как и X в строке диагностики перед ним. касается клиента или сервера. Надеюсь, это поможет.

Лучший ответ, который я нашел, таков:

HTTP-запросы должны быть идемпотентными, так как они могут выполняться несколько раз из-за проблем с сетью

Http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Idempotent_methods_and_web_applications

У SAP есть очень хорошая страница об этой проблеме: http://help.sap.com/saphelp_nw73/helpdata/en/c8/35883707e94534b2bda403237ee523/content.htm

Я видел, как этот тип вещей описывается с помощью диаграммы последовательности UML. Я думал, что это работает хорошо, и, конечно, диаграммы последовательности будут знакомы большинству разработчиков.

Здесь вы можете получить несколько хороших идей: http://www.eventhelix.com/Realtimemantra/Networking/#HTTP_Sequence_Diagrams

Ура,