SCXML 解释器算法 —— 原则与约束
2021-02-06 本文已影响0人
寻找无名的特质
SCXML遵守下面的原则和约束:
- Encapsulation(封装):SCXML处理器是一个纯事件处理器,给SCXML状态机数据的唯一方式是发送外部事件,获取数据的唯一方式是通过接收事件。
- Causality(因果性):事件返回或者不返回需要有确定的因果关系。
- Determinism(确定性):不激活任何外部事件处理器的SCXML状态机针对给定的输入事件必须总是具有相同的行为。特别是<parallel>,不能引入任何导致不确定的并发。注意,对于激活其它事件处理器的状态机并做这种要求。
- Completeness(完整性):SCXML解释器必须将SCXML文档视为状态机行为的完整描述。特别需要指出的是,SCXML设计为根据优先级(根据文档顺序)解决其它状态机框架所允许的定义不足。
- Run to completion(运行到完成):SCXML遵循运行到完成的语义,一个外部事件只能在前面的外部事件处理完成后再进行处理,也就是所有的microstep全部完成。
- Termination(终止):microstep总是会终止,macrostep不一定。当macrostep中包含microstep的循环时,macrostep可能不终止。这在目前是运行的。