博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual Paradigm 教程[UML]:如何在SoaML中建模多方服务?(下)
阅读量:5740 次
发布时间:2019-06-18

本文共 1663 字,大约阅读时间需要 5 分钟。

>>

第三部分 - 用UML序列图指定多方编排

    在多服务合同中,可以在交互图中显示各方之间的通信和编排。像UML序列图这样的交互图显示了谁调用谁以及何时进行调用。让我们绘制一个序列图来指定纳税服务的编排。

  1. 单击服务合同纳税服务。
  2. 单击形状右下角的微小资源图标,然后从弹出菜单中选择New Diagram ....

  3. 将打开“ 新建图”窗口。在New Diagram窗口中,在搜索字段中输入序列图,单击Next。然后,填写图表名称和描述(如果有),单击确定以确认图表创建。

  4. 在图表中创建三条生命线。将它们命名为付款人,支付网关和接收者。

  5. 设置生命线的分类器。右键单击付款人生命线,然后从弹出菜单中选择选择班级>选择班级.... 在“ 选择类”窗口中,选择“ 付款人”,然后单击“ 确定”。

  6. 将银行和税务接收器设置为支付网关和接收器生命线的分类器。

  7. 是时候模拟生命线之间的相互作用了。交互始于付款人在银行帐户上发出的付款请求。因此,在付款人和支付网关之间创建消息纳税。

  8. 为了使“纳税”成为银行界面中的操作,我们必须从序列消息创建操作。右键单击该消息,然后从弹出菜单中选择选择操作>创建操作“纳税”。

  9. 收到付款申请后,银行将要求税务人员处理付款。创建从支付网关到接收方的消息流程纳税。再次,从消息中创建一个操作。

    1. 如果付款正确,税务人员将向银行和纳税人发送确认消息。否则,税务人员将向银行发送拒绝消息,银行会将消息转发给纳税人。要表示条件流,请绘制一个涵盖生命线的替代组合片段。

  10. 右键单击组合片段左上角的alt标签。从弹出菜单中选择操作数>管理操作数....
  11. 在“ 管理约束”窗口中输入两个操作数的约束。对于第一个操作数,输入accept payment作为约束。对于第二个操作数,输入拒绝付款作为约束。单击“ 确定”以确认更改。

  12. 在生命线之间创建消息。请记住为您创建的所有序列消息创建操作。完成后,您的序列图应如下所示:

  13. 绘制UML序列图时,您已为三条生命线创建了操作。如果现在检查服务接口图,可以看到接口列出了操作。

第四部分 - 绘图服务参与者图

    在多方服务中,每个参与者提供他们自己的接口并使用其他方的接口。该信息可以用服务参与者图表示。让我们绘制一个服务参与者图。

  1. 要创建服务参与者图,请从工具栏中选择“ 图表”>“新建 ”。在New Diagram窗口中,在搜索字段中输入Service Participant Diagram,然后单击Next。然后,填写图表名称和描述(如果有),单击“ 确定”进行确认。

  2. 纳税服务有三个参与者,银行账户所有者,网上银行和税务部门。在图中绘制它们。

  3. 银行账户所有者是纳税服务的消费者。在后退帐户所有者参与者中创建<< Request >>端口。

  4. 我们输入端口。右键单击端口,然后从弹出菜单中选择Select Type ....
  5. 在“ 选择类型”窗口中,选择“ 纳税人”,然后单击“ 确定”。

  6. 银行账户所有者提供其接口,即Tax Payer接口,并根据UML序列图中建模的交互,我们知道它使用Bank接口。首先从<< Request >>端口绘制提供的接口。将界面命名为Tax Payer。

  7. 从<< Request >>端口绘制所需的接口。将其命名为Bank。

  8. 参与者在线银行是纳税服务的提供者。在其中创建一个<< Service >>端口。然后,选择Bank作为端口类型。

  9. 在线银行提供银行界面,并使用纳税人和税务接收者界面。绘制提供的和必需的接口。对于这种特殊情况,您必须为Tax Payer和Tax Receiver接口绘制两个必需的接口。

  10. 参与者税务部门也是纳税服务的提供者。在其中创建一个<< Service >>端口。然后,选择Tax Receiver作为端口类型。

  11. 税务部门提供税务接收者界面,并使用银行和纳税人界面。绘制提供的和必需的接口。

    完成后,您的图表应如下所示:

转载于:https://juejin.im/post/5ce76c6bf265da1b7152cf49

你可能感兴趣的文章
ISO8583接口的详细资料
查看>>
tmux不自动加载配置文件.tmux.conf
查看>>
经验分享:JavaScript小技巧
查看>>
[MOSEK] Stupid things when using mosek
查看>>
程序实例---栈的顺序实现和链式实现
查看>>
服务的使用
查看>>
Oracle 用户与模式
查看>>
MairDB 初始数据库与表 (二)
查看>>
拥在怀里
查看>>
chm文件打开,有目录无内容
查看>>
whereis、find、which、locate的区别
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
nagios监控windows 改了NSclient++默认端口 注意事项
查看>>
干货 | JAVA代码引起的NATIVE野指针问题(上)
查看>>
POI getDataFormat() 格式对照
查看>>
Python 中的进程、线程、协程、同步、异步、回调
查看>>
好的产品原型具有哪些特点?
查看>>
实现java导出文件弹出下载框让用户选择路径
查看>>
刨根问底--技术--jsoup登陆网站
查看>>