我想知道Kahn Process Network和Actor Model之间的实际区别是什么.实际上,如果我查看定义,它们都是模型,其中计算实体(在两种情况下称为Actors ......)通过无界缓冲区交换消息.此外,在这两种情况下,这些消息都是异步发送的,因为过程总是可以发送消息.它不需要等待收件人准备好接收.
因此,我的问题是,有任何实际的区别吗?
非常感谢 !
卡恩过程网络保证是确定性的。进程之间的所有 FIFO 连接都是事先知道的,并且它们在执行过程中不会动态更改。相比之下,在 Actor 模型的情况下(引用维基百科):
为了响应收到的消息,参与者可以做出本地决策、创建更多参与者、发送更多消息并确定如何响应收到的下一条消息。
Actor 模型,因此不能保证是确定性的。引用维基百科:
Actor 模型具有无限的不确定性,Will Clinger 使用领域理论在数学模型中捕获了这一点。
另一个重要的区别是通信是如何发生的
在 KPN 的情况下 - 为了保持确定性,所有通信都通过 FIFO 通道。但是在Actor模型的情况下没有这样的要求。引用维基百科:
[在 KPN 中有] 对消息到达顺序没有要求 [....] 如果需要输出消息排序,那么它可以由提供此功能的队列 Actor 建模。这样的队列 Actor 会将到达的消息排队,以便可以按 FIFO 顺序检索它们。因此,如果Actor X 向Actor Y 发送了一条消息M1,然后X 向Y 发送了另一条消息M2,则不需要M1 在M2 之前到达Y。
在这方面,Actor 模型反映了不保证必须按照发送顺序接收数据包的数据包交换系统。不提供传送顺序保证允许数据包交换缓冲数据包、使用多条路径发送数据包、重新发送损坏的数据包以及提供其他优化。
从上面的讨论中可以很清楚地看出,KPN 是一个更受约束的场景,可以通过添加额外的限制使用 actor 模型进行建模。
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |