如何解决Enterprise Architect 中建模网络交互的正确方法
我有一个类 Actor
,它的实例发送/接收网络消息。 (例如,该类的每个实例都是在不同物理机器上运行的不同进程的一部分。)网络消息是类 MessageA
和 MessageB
的序列化实例,其属性通过网络发送。传入消息由我的 Actor
类的回调方法处理。通过调用我的 Actor
类的方法触发输出消息。
因此,我开始在这样的类图中对这种情况进行建模:
现在,我想为一个典型的交互建模并开始绘制以下序列图:
这些消息不是方法调用,而是异步的并且具有允许我为它们分配正确消息类型的“信号”。
但是,我想知道我是如何建模的
-
具有负载
MessageA
的消息由onMessageAReceived
处理的事实 -
该方法
sendMessageA
发出带有负载MessageA
的消息(注意:就我的实现而言,
sendMessageA
返回 void 是正确的,因为发送网络消息是异步的,会卸载到底层操作系统,并且该方法在发送消息后返回其被调用方。 )
在序列图中。
也许,我的整个方法是完全错误的,我正在尝试建模无法像那样建模的东西。在这种情况下,非常欢迎提供正确方法的一些提示。
解决方法
当然,对此建模的方法不止一种(并且不依赖于工具 EA)。因此,您应该询问您正在与哪些受众交谈,分别是他们的域基本上是哪个。
技术
SD 非常适合显示物理传输。在这种情况下,您将专注于消息的发送方式。在这种情况下,物理操作将显示为消息。例如。使用套接字,它会是一些(a-)同步 send(message)
,它确保内容 message
从 A 传输到 B。这可以在从粗略到单个 CRC 发送的任何技术实现级别(或如何在内部构建操作以确保包不会丢失)。
逻辑
为了显示更合乎逻辑的方面,最好让组件(部署在多个硬件上)具有端口(实现某些接口),沿着这些端口有信息流(这是您将在 EA 中找到的连接器)可以传输某些东西(即您的消息类)。
概述
您可能希望在模型中描述这两个方面。但您可能会根据您的整体域将重点放在一个或其他部分。
没有单一的方法可以对某事物进行建模。模型总是抽象的,这就是我们创建模型的原因。它们将显示真实,但重量更轻。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。