Page 258 - 《软件学报》2021年第6期
P. 258
1832 Journal of Software 软件学报 Vol.32, No.6, June 2021
Ptolemy 模型支持异构的特点.A 0 ~A 6 是 Ptolemy 模型中的组件(actor),其中,A 0 和 A 2 是复合组件(composite
actor):A 0 表示当前的 Ptolemy 模型;A 2 是模型内嵌的一个复合组件,体现了 Ptolemy 模型层次化的特点.P 0 ~P 11
分别表示组件的输入和输出接口(port).
Fig.1 Visual rendition of a Ptolemy hierarchy model
图 1 Ptolemy 层次化模型示意图
Ptolemy 模型中的组件是一个四元组 A(E,P,Para,R),其中,
• E:有限的组件集合;
• P:有限的接口集合,P=P in ∪P out ,其中,P in 是输入接口集合,P out 是输出接口集合;
• Para:=(name,attribute),有限的属性参数集合;
• R:有限的关系(relation)集合,包含两种情况.
(1) 两个内部组件的端口之间的关系;
(2) 一个组件的端口与一个组件的内部组件的端口之间的关系:
R:={(p i ,Para ij ,p j )|p i ∈P x ,p j ∈P y ,A x ={E x ,P x ,Para x ,R x }∈E,A y ={E y ,P y ,Para y ,R y }∈E}∪
{(p i ,Para ij ,p j )|p j ∈P x ,p i ∈P,A x ={E x ,P x ,Para x ,R x }∈E}∪
{(p i ,Para ij ,p j )|p i ∈P x ,p j ∈P,A x ={E x ,P x ,Para x ,R x }∈E},
其中,Para ij ={(name,attribute)}是关系的参数集.
Director 控制组件的执行顺序,协调组件之间的交互.Director 本质上也是一个组件 A dir =(∅,∅,Para dir ,∅),
Para dir 包含一个元素(director,semantics),semantics 是集合{DE,FSM,SR,CT,PTIDES}中的一个元素.异构模型由
不同层次的不同 director 组成,组件的语义依赖于控制它们的 director.一个系统就是一个层次化的组件,它的层
次结构是由其内部组件集合递归定义的.如图 1 所示的系统可以表示为 A 0 (E 0 ,P 0 ,Para 0 ,R 0 ),E 0 ={A 1 ,A 2 ,A 3 ,D 1 },P 0 =
∅,R 0 ={(P 0 ,P 1 ),(P 8 ,P 9 )},A 1 是原子组件,A 2 是层次化的复合组件,Ptolemy 中的原子组件还可以通过参数 Para pri =
{(priority,value)}定义组件的优先级.
1.2 Ptolemy离散事件语义
Ptolemy 中的语义域定义了组件交互的“物理定律”,它为组件之间的并发执行以及两个组件之间的通信提
[4]
供了管理规则 .在离散事件(discrete-event,简称 DE)域,组件通过位于同一时间轴的事件进行通信.每个事件都
有一个值和时间戳,并且组件对事件的处理是按照时间顺序的.由组件产生的输出事件在时间上不得早于被消
耗的输入事件.该模型按照一个全局的事件队列进行执行.当一个组件产生输出事件时,该事件根据其时间插入
队列.在 DE 域模型的每次迭代中,最小时间戳的事件从全局事件队列中删除,触发它的目标组件执行.
DE 域用于并发组件之间定时、离散的交互建模.一次交互即为一个事件,事件在概念上可以理解为从一个
组件发送给另一个组件的瞬时消息.定义 DE 模型中组件执行顺序的原则是:向组件 B 发送事件的组件 A 会更
早的触发执行.
算法 1 是 Ptolemy DE 模型语义描述.第 1 行定义一个空的事件队列;第 2 行~第 4 行初始化模型中的每个组
件,若组件产生事件,则插入到事件队列中;第 5 行~第 12 行表示当事件队列不为空时,不断地取出队列中的头事
件,然后根据该事件获取目标组件,触发目标组件执行.目标组件执行过程中会产生新的事件,插入事件队列中.