通信协议与数据流建模解析
1. 通信有限状态机(CFSMs)中的SDL语言
SDL能够用于描述计算机网络中的协议栈,如图展示了三个处理器通过路由器相连的小型计算机网络。处理器与路由器之间基于FIFOs进行通信,并且它们都实现了分层协议,每一层在更抽象的层面描述通信。每层的行为通常被建模为有限状态机,其详细描述依赖于网络协议,可能非常复杂,一般包括错误条件的检查和处理,以及信息包的排序和转发。
SDL可用的工具包括与UML和SCs的接口,其论坛提供了全面的工具列表。还有一种用于描述通信协议的语言Estelle,它与SDL类似,都假设通过通道和FIFO缓冲区进行通信,但统一两者的尝试失败了。
对SDL的评价如下:
- 优势 :它非常适合分布式应用,作为异步消息传递的参考模型很有用。
- 劣势 :不一定具有确定性,可靠实现需要知道FIFO长度的上限,而这可能难以计算;定时器概念适用于软期限,不适用于硬期限;不支持像StateCharts那样的层次结构;没有完整的编程支持(不过标准修订有所改变),也没有对非功能属性的描述。SDL曾用于指定ISDN,目前讨论有从SDL特例向通用系统描述技术转变的趋势。
2. 数据流建模概述
数据流是描述现实应用的“自然”方式,数据流模型反映了数据在组件间的流动方式,每个组件以某种方式转换数据。数据流建模是识别、建模和记录数据在信息系统中移动方式的过程,涉及过程、数据存储、外部实体和数据流。
数据流程序由有向图指定,节点(称为参与者)代表计算,弧代表通信通道。每个参与者的计算是基于输入值的函数,数据流