Представление нескольких асинхронных потоков на диаграмме взаимодействия UML

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

  1. Множественные потоки подписчиков подписываются на очередь
  2. Всякий раз, когда в очереди есть сообщение, его получает один поток-подписчик.
  3. Выполняется вызов таблицы базы данных C.
  4. Сообщение преобразуется с использованием значения, возвращенного из таблицы C, и записывается в таблицу базы данных A
  5. В очередь отправляется подтверждение для удаления сообщения из очереди.
  6. Фоновый поток продолжает опрашивать таблицу базы данных A с заданным интервалом
  7. Фоновый поток читает сообщения из таблицы A.
  8. Сообщения преобразуются путем вызова метода transform().
  9. Преобразованные сообщения записываются в таблицу B.
  10. Исходное сообщение удаляется из таблицы A.

Я попытался представить вышеуказанный поток с помощью следующей диаграммы последовательности UML: -

введите описание изображения здесь

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

  1. Как я могу представить несколько потоков подписчиков, асинхронно прослушивающих очередь?
  2. Как представить вызовы базы данных и другую таблицу?
  3. Как представить фоновый опрос, который происходит с заданным интервалом (скажем, один раз в 10 секунд)?

Есть ли альтернатива диаграмме последовательности UML для четкой передачи потока?


person tuk    schedule 21.10.2016    source источник
comment
Не могли бы вы нарисовать схему для одного абонента? Тогда мы могли бы помочь вам смоделировать случай с несколькими подписчиками. Также, пожалуйста, напишите свой сценарий полными предложениями на английском языке, потому что я его не совсем понимаю.   -  person www.admiraalit.nl    schedule 21.10.2016
comment
Я обновил вопрос. У меня есть сомнения в том, как представить следующее на диаграмме последовательности UML: 1) несколько подписчиков, 2) асинхронное чтение сообщений из очереди и 3) фоновый опрос через определенные интервалы.   -  person tuk    schedule 22.10.2016
comment
Пожалуйста, сделайте попытку и поместите одного абонента в очередь. Как только вы это сделаете, мы сможем дать вам правильное направление для нескольких подписчиков.   -  person qwerty_so    schedule 22.10.2016


Ответы (1)


  1. Вы не можете представить прослушивание нескольких потоков подписчиков, потому что во время прослушивания сообщения не обмениваются. Что вы можете сделать, так это показать несколько экземпляров подписчика, каждый из которых оформляет подписку.

  2. У вас есть два варианта: показать каждую таблицу как отдельную линию жизни (как вы это делали) или показать базу данных как единую линию жизни и позволить сообщению указать, к какой таблице осуществляется доступ (я думаю, что так поступило бы большинство дизайнеров).

  3. Вы можете показать пару дополнительных сообщений getMessages, ничего не получив взамен.

person www.admiraalit.nl    schedule 22.10.2016
comment
Есть ли способ показать, что опрос происходит каждые 10 секунд. - person tuk; 23.10.2016