2016-10-21 24 views
0

我具有以非常高的水平看起来像下面的流程: -代表在UML交互图的多个异步线程

  1. 多个订户线程订阅的队列
  2. 每当有在消息队列中的一个用户线程收到它
  3. 调用数据库表C
  4. 该消息由使用A
  5. 的确认被发送到队列从表C返回并写入到数据库表中的值,以从队列中删除该消息变换
  6. 甲后台线程保持轮询数据库表A在指定的时间间隔
  7. 后台线程读取消息,它们出现在表中A
  8. 消息通过调用方法transform()进行转换。
  9. 转换的消息写入表B
  10. 将原始邮件从表A中删除。

我曾尝试通过以下UML序列图来表示上述流程: -

enter image description here

有人可以让我知道我怎么可以更新上面的图中添加以下信息: -

  1. 如何表示多个用户线程异步侦听队列?
  2. 如何表示数据库调用和不同的表?
  3. 如何表示在指定时间间隔内发生的背景轮询(比如说,在10秒内)?

是否有任何替代UML序列图来清晰地表达流程?

+0

请您为单个用户绘制图表吗?然后我们可以帮助您对多个用户案例进行建模。另外,请用完整的英文句子写下你的情景,因为我不太明白。 –

+0

我已经更新了这个问题。我遇到的疑问是如何在UML序列图中表示以下内容 - 1)多个订阅者,2)异步地从队列中读取消息和3)以指定间隔后台轮询 – tuk

+0

请尝试并绘制单个订阅者到队列。一旦你有了,我们可以给你多个订户的正确方向。 –

回答

0
  1. 您不能表示多个用户线程正在侦听,因为在侦听期间没有消息交换。你可以做什么,是显示订阅者的几个实例,每个订阅。

  2. 您有两种选择:将每个表格显示为一条单独的生命线(如您所做的那样),或者将数据库显示为一条生命线,并让消息指定访问哪张表格(我认为这是大多数设计人员会做的它)。

  3. 你可以看到一些额外的getMessages消息没有得到任何回报。

+0

有没有一种方法可以显示每10秒发生一次轮询? – tuk