以消息组织局部行为

Actor模型把行为的接收者作为组织计算的基本对象,通过向它发送消息表达请求。Hewitt、Bishop与Steiger在1973年论文中提出统一的ACTOR形式体系,将控制流与数据流放在同一交互观点下讨论。

这种观点把组件能接受什么请求,与它怎样实现请求分开。原论文还讨论接口、意图与调度的作用;这些是研究方案及其推理结构,不能直接当成任意现实Actor系统都已经提供的性能或正确性保证。

参考:[1]

实现需要寻址与执行机制

Erlang提供一种便于理解消息式活动的实例:spawn创建进程并返回标识,发送方可以用进程标识等方式寻址,接收方再从消息队列取得合适的消息。这些Erlang进程也不等于操作系统进程的一对一映射。

发送请求之后,接收者何时取得执行机会、如何更新本地状态、是否回复,仍由运行时和应用协议共同确定。使用消息接口并不会自动把一次交互变为同步函数返回。

参考:[2] [3]

局部封装之外仍要设计协议

消息顺序必须按具体系统解释。Erlang为同一发送实体到同一目的实体规定信号顺序,却不因此建立所有发送者共同的全局顺序;选择性接收还可以跳过暂时不匹配的消息。

超时、进程终止及分布式连接故障,都需要请求标识、回复和失败处理等约定。Actor式组织有助于划清交互边界,但不能仅因使用了消息,就推断外部操作只会发生一次或消息一定获得处理。

参考:[2] [3]