中央缓冲节点

CentralBufferNode(中央缓冲节点)充当流入对象流和流出对象流之间的一个缓冲区。它接受所有流入流提交给它的所有对象tokens,这些tokens被该节点所持有。被持有的对象tokens按照对象节点的一般性排序规则被提交给流出流。当一个token被下游的对象节点所接受时,该token从中央缓冲节点移除(流到接受的对象节点)。

数据存储节点

DataStoreNode(数据存储节点)是一种中央缓冲节点,它在活动执行中永久的持有它的对象tokens。

当数据存储节点所持有的一个对象token被下游的一个对象节点所接受时,按照通常中央缓冲节点的语义,该token从数据存储节点移除。然而,该token的要给拷贝被立即放回该数据存储节点。因此,由数据存储节点所持有的值看起来在活动执行过程中是持久化的。

当数据存储节点接受一个对象token时,如果该token所包含的对象与该节点中早已持有的某个token所包含的对象具有相同的标识,那么重复的对象token不会被放入该数据促成节点。与一个普通的中央缓冲节点不同,数据存储节点包含的对象都是唯一的。

流出对象流上的选择和转换行为可以用于从数据存储节点中获取信息,就如同执行了一次查询一样。举个例子,选择行为可以识别要检索的对象,转换行为可以从该对象中获取值。而且,由于tokens总是在流出流上呗提交,它们只有在被下游的对象节点所接受后才能流动。这可以用于建模数据流中的拉(pull)语义(例如,参见图15.59中的例子)。

results matching ""

    No results matching ""