诉
Ciancia
等人理论计算机科学电子笔记
260
(
2010
)
73
本文的主要结果是SC在NCP中的嵌入。这个结果可以用来弥合编排模型和实际设
计之间的差距:通过检查它们之间
的弱
双相似性,可以正式证明SC设计与NCP规范
的一致性。
2
英文名:
The Signal Calculus
在本节中,我们将回顾Signal Calculus(SC)的语法和操作语义。我们假设一个
可数的
主题
名称集合(范围为
τ
)和一个可数的组件名称集合
A
,范围为
a
,
b
,
c
,
.
。
.我们采用符号a来表示一组组件名称。
微积分的核心是
组件
的概念。组件是服务的容器。组件由名称a(服务的公共地
址)唯一标识,并具有内部行为。组件交换消息,称为
信号
。信号是成对的主题
τ
c
τ
J
,其中第一个元素是信号类型(标识事件类型的唯一名称),第二个元素是
是会话标识符。会话标识符和事件类型可以自由交换,并且可以动态生成。当组件
(
发布者
)引发事件时,它会通知有兴趣处理它的组件(
订阅者
)。请注意,通知
不是匿名的,即订阅与事件主题和发布者都相关。 因此,组件的行为就像反应性代
理,它声明了它们感兴趣的事件类型集 要对其进行处理的相关任务(
反应
),以
及用于通知传递的目标组件集(
流程
)。微积分提供了两种不同的反应:λ
反应
和
检
查反应
。 Lambda反应独立于信号会话被激活,而检查反应处理属于定义明确的会
话的信号。Lambda反应一旦被安装,就在组件接口中保持持久性,而检查反应一旦
被执行,就从组件接口中移除
现在我们介绍微积分的语法。 我们从解释反应的语法开始。
R
::= 0 | ⟨
ρ
⟩ →
B
|
R
|
R
其中
,
输入的
p_r_f
_p_
f
是
l
_a_
b_da
反应
(
τ
_
c_
λτ
J
)
或
c
_e_
k
反应
(
τ
_
c_
τ
J
)。
λ
反应
τ
c
λτ
J
B
由具有与其会话无关的主题
τ
的
相反,
检查反应
τ
c
τ
J
B
仅对针对会话
τ
J
发出的具有主题
τ
的
信号作出反应。一旦对某个信号的反应发生,行为
B
就开始
与已经活动的行为并行执行注意,对于λ反应,名字
τ
J
在行为
B
中是受约束的,而
对于检查反应,它是自由的。
反应组合物
允许组分以不同的方式对不同种类的
信号作出反应
现在,我们介绍
行为
的语法,即构造组件执行以处理协调问题。行为由以下语法
描述: