Как я могу научить, что мыло не является надежным транспортом?
Мне нужно научить, что вызов HTTP SOAP может быть получен, но вызывающий абонент может не получить ответ из-за сбоя сети (среди других проблем). (Эта проблема заставила WS-ReliableMessaging быть разработанным)
Как бы вы, ребята, показали эту проблему разработчику веб-сервиса, чтобы он мог разработать ее с учетом того, что могут быть получены дубликаты сообщений?
Проблема в том, что они не понимают, что HTTP-вызов может быть отлично принят сервером и действовать по нему. сервер, но ответ на вызов может быть потерян.
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
Ура,