本节书摘来自华章出版社《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》一书中的第1章,第1.2节,作者:[美]爱德华·阿什福德·李(Edward Ashford Lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1.2 域和计算模型
Ptolemy II中的语义域(semantic domain),通常称为域(domain),它定义了设计中两个组件交互的“物理定律”。它为组件之间的并发执行以及两个组件之间的通信(如前文所述)提供了管理规则。这种规则的集合称为计算模型(Model of Computation,MoC)。在本书中,从技术上看尽管域是计算模型的实现,但术语“计算模型”和“域”是可替换的。计算模型是一个抽象模型,然而域是模型在软件上的具体实现。
模型规则分为三类。第一类规则指定了组件的构成要素,在本书中,一个组件一般是一个角色(actor),在下文中将给予更精确地定义。第二类规则指定执行和并发机制:角色调用是按序的?同时的?还是非确定性的?第三类规则指定通信机制:角色之间怎样交换数据?
本书中讨论的每一个计算模型都有很多可能的变体,这些变体中很多已经在其他的建模工具中实现了。本书把重点放在Ptolemy II中实现的计算模型,以及那些具有易读且书写良好的语义模型上。为了进一步阐述,我们也提供了其他一些有用的、还未在Ptolemy II中实现但已在其他工具中实现的计算模型的简要说明和索引。
为了支持异构系统的设计,Ptolemy II域之间可以交互操作。这要求语义域之间有一定程度的协议。但是,当不同的工具被分别独立设计再组合到一起时,这种协议几乎是不存在的。Ptolemy II中域之间交互的法则在多篇论文中有所描述(Eker et al.,2003;Lee et al.,2003;Goderis et al.,2009;Lee,2010b;Tripakis et al.,2013)。本书重点在于域的互操作性的实践环节,而不是理论。
使用统一的、一致的软件系统使我们可以专注于域的交互操作,而不必过多担心不同工具集成过程带来的不兼容性问题。比如说,Ptolemy II的类型系统(type system)(它定义了可以被各种计算组件所使用的数据类型)被所有的域、状态机符号以及表达式语言(expression language)所共享。域有能力推测和验证数据类型是否恰当;这个功能可以在异构模型中的多个域之间无缝地工作。同样,语义中包含时间概念的域共享一个通用的时间表达方式以及一个(多样)时间模型。Ptolemy II中的域均可使用相同的图形编辑器,且均使用XML(可扩展标记语言架构)文件是存储设计。该协议消除了异构模型组合中存在的很多实际障碍。这允许我们集中精力关注异构集成带来的好处——最重要的是,即便设计是异构的,我们也能够选择与问题最匹配的域。