4 协议形式描述语言

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012-5-6
3
第四章 协议形式描述语言
3、协议描述语言特点 特点 使用形式化协议描述语言有许多优点。所谓“形式化”即 所谓“ 所谓 形式化” 模型化” 抽象化” “模型化”和“抽象化”。一种形式描述语言必然基于一种或 几种数学模型(如第三章介绍的FSM,Petri网 ,TL和CCS), 这就为充分地表述协议的各种特性(并发性,不确定性,时序 性,递归性等)为协议验证、协议实现、协议测试和协议转换 过程的系统化和自动化提供了良好的基础。 由于形式描述语言 形式描述语言有很好的数学基础,用它描述的协议在 形式描述语言 语义上无二义性,同时由于它抽象于具体的协议实现环境,因 此它可作为协议标准的描述语言。形式描述语言简称FDL (Formal Description Languages)
第四章 协议形式描述语言
4.1引言 4.1引言 协议可以用自然语言,程序设计语言,形式描述语言或 专用语言描述。 用自然语言描述协议特点: 1、用自然语言描述协议特点: 用自然语言描述的协议可读性好(正因为如此,ISO仍然 用自然语言描述并颁布协议标准),但描述不准确,有二义 性。 更重要的问题是,从自然语言描述的协议到协议的实现 从自然语言描述的协议到协议的实现 是一个复杂的、效率低的、一致性很差的, 是一个复杂的、效率低的、一致性很差的,必须手工完成的 过程。所谓一致性差是指:对同一个协议,不同的人得出不 过程 同的实现版本。对自然语言描述的协议进行正确性验证,以 及从中导出测试序列的工作,存在同样的问题。
2012-5-6 17
第四章 协议形式描述语言
3.模块类别( classes) 3.模块类别(module classes) 模块类别 按模块内容是否包含状态转换部分来说,模块分为: (1) 非活跃模块(inactive modules) 模块体内无状态转换的部分的模块叫做非活跃模块,初始化非 活跃模块所产生的模块实例也是非活跃的。 (2) 活跃模块(active modules) 模块体包括状态转换部分的模块叫做活跃模块。 (3) 特征模块(attributed modules) 当一个模块头定义有多个模块体定义与之关联时,如果至少有 一个模块体内包含状态转换部分,此种模块叫做特征模块。
2012-5-6
4
第四章 协议形式描述语言
FDL的基础是协议模型技术,从这个意义上说,本章是第 三章的继续。然而,从协议模型技术到FDL还有许多工作要做。 首先,作为一种语言,一种FDL在语法上和语义上必须是一个 完整的体系。另外,一种FDL往往要对一种模型技术进行扩充, 或将几种模型技术拟合在一起,取长补短,使之具有很强的表 达能力和应用能力。 八十年代以来,计算机科学家已提出许多种FDL,有些是 专为协议工程而研制的,有的是为分布(并行)计算以及软件 工程而提出的。对协议工程来说,由国际标准化组织(ISO) 对协议工程来说, 对协议工程来说 由国际标准化组织(ISO) 颁布的ESTELLE LOTOS, ESTELLE和 颁布的ESTELLE和LOTOS,以及国际电报电话咨询委员会 CCITT)颁布的SDL是应用最广的FDL SDL是应用最广的FDL。 (CCITT)颁布的SDL是应用最广的FDL。本章重点介绍 ESTELLE和LOTOS。
2012-5-6
12
第四章 协议形式描述语言
(2)模块体定义(module-body-definition)。 模块体定义包括三个主要部分: ①说明部分(declaration -part) ②初始化部分(initialization-part) ③转换部分(transition-part)。 说明部分对模块所使用的通道(channels)、内部交互 点(internal interaction points)、数据类型和变量、模 块状态、调用的过程和函数进行说明。 初始化部分说明模块初起时各变量和模块状态的初始值。 转换部分是模块的关键部分,它按照EFSM定义模块状态 转换过程。模块描述的非形式结构示意如下:
2012-5-6 15
第四章 协议形式描述语言
在一个自动回叫系统例子中,共定义三个模块头,每个模块 头对应一个模块体,其中模块MA的描述如下: Module MA systemprocess ip P:CA(PartyA) End Body BA for MA . . . END
2012-5-6 16
2012-5-6 13
第四章 协议形式描述语言
Module 模块头——A 模块类别 外部交互点说明 输出变量说明 Body 模块体-2 for 模块头-A . . .
End; Body 模块体-1 for 模块头-A 通道说明; 内部交互点说明; 数据类型和变量说明; 模块状态定义; 过程和函数定义; 模块初始化部分; 状态转换部分; End;
2012-5-6 5
第四章 协议形式描述语言
ESTELLE概述 4.2 ESTELLE概述 ESTELLE是1989年ISO公布的基于扩展的有限状态机 ESTELLE是1989年ISO公布的基于扩展的有限状态机 EFSM),是一种形式化、数学化、 (EFSM),是一种形式化、数学化、并且与具体实现相独立的 协议形式化描述语言。 协议形式化描述语言。 ESTELLE是PASCAL语言的扩充 ESTELLE是PASCAL语言的扩充
2012-5-6 1
第四章 协议形式描述语言
2、程序设计语言描述协议特点 (1) 用经典的程序设计语言(例如Fortran,C,Pascal) 描述协议便于协议的实现。 (2)可读性差。 (3)程序设计语言表述协议并发性、不确定性,以及其他协 议性质和协议元素性质的能力较差。 (4)由于程序设计语言描述的协议过多的描述了协议实现细 节(有些和实现环境相关),因此它只能作为协议实现规范 在小范围内使用,而不能作为协议标准在世界上颁布。 (5)用程序设计语言描述的协议对协议验证和测试来说,协 议的处理仍然是不方便的。。
2012-5-6
9
第四章 协议形式描述语言
用ESTEILE来描述一个协议,最重要的工作就是 构造协议的模块结构和通信机制,主要包括:系统中 模块的层次构成,模块的类别、通道和交互点的定义、 交互点队列的属性,以及模块和通道的连接问题。
2012-5-6
10
第四章 协议形式描述语言
4.2.1模块概念 4.2.1模块概念 1.模块 modules) 模块( 1.模块(modules) ESTELLE将一个系统看作是由许多相互通讯的模块 分层嵌套而构成的系统。每个父模块控制对其子模块 的创建和销毁,系统的每一级可有许多个模块,每个 模块可通过通道以异步方式和其他的模块通讯。
2012-5-6
8
第四章 协议形式描述语言
1. 2. 3. 4. 5. 6. 形式描述语言ESTELLE有以下基本特点: 形式描述语言ESTELLE有以下基本特点: ESTELLE有以下基本特点 基于扩展的有限状态机(EFSM),专为描述协议而设计 专为描述协议而设计。 基于扩展的有限状态机(EFSM),专为描述协议而设计。 ESTELLE是Pascal语言的扩充 用他描述的协议很容易转换成Pascal 语言的扩充。 ESTELLE是Pascal语言的扩充。用他描述的协议很容易转换成Pascal 代码,因此它是一种面向协议实现的形式描述语言。 或C代码,因此它是一种面向协议实现的形式描述语言。 模块实例可通过初始化语句动态产生。 模块实例可通过初始化语句动态产生。如果协议实现后模块实例对应 一个进程或任务,那么网络进程或任务也是动态产生的。 一个进程或任务,那么网络进程或任务也是动态产生的。 模块之间的通信方式为异步方式。 模块之间的通信方式为异步方式。 ESTEILE对并发 不确定性、超时、异步通信状态有较强的表到能力, 对并发、 ESTEILE对并发、不确定性、超时、异步通信状态有较强的表到能力, 但对递归、共享通道、同步通信、协议性质的表现尚缺乏有力的手段。 但对递归、共享通道、同步通信、协议性质的表现尚缺乏有力的手段。 ESTEILE描述中易于提取协议的FSM模型或Petri网模型 描述中易于提取协议的FSM模型或Petri网模型, 从ESTEILE描述中易于提取协议的FSM模型或Petri网模型,但是不容 易提取TL CCS模型 TL和 模型。 易提取TL和CCS模型。
2012-5-6 7
第四章 协议形式描述语言
用ESTELLE来描述协议规格时,其整体结构大致如下: ESTELLE来描述协议规格时,其整体结构大致如下: ESTELLE来描述协议规格时 Specification 规格名 全局参数( parameter) 全局参数(Global parameter) 通道(channels) 通道(channels) 模块头( headers) 模块头(Module headers) 模块体( bodies) 模块体(module bodies) 规格主体( bodies) 规格主体(Main bodies) End 其中,模块体中最重要的是状态转换(迁移) 其中,模块体中最重要的是状态转换(迁移)
2012-5-6
6
第四章 协议形式描述语言
在ESTELLE中, ESTELLE中 (1)一个系统被理解成是由许多相互通信的模块分层嵌套而 构成的 模块之间通过通道进行通信, (2)模块之间通过通道进行通信,即通道将一个模块的输出 与另一个模块的输入队列连接起来。 与另一个模块的输入队列连接起来。 通道和模块之间的连接点称为交互点。 (3)通道和模块之间的连接点称为交互点。 模块间的信息传递称为交互。 (4)模块间的信息传递称为交互。每个模块相当于一个有限 状态自动机, 状态自动机 ,有限状态集的每个状态迁移或转换都是由于某 些输入所触发,状态迁移过程中可能会产生输出。 些输入所触发, 状态迁移过程中可能会产生输出。 这里的输 入对应于模块所收到的消息, 入对应于模块所收到的消息, 而输出则对应与模块向其他模 块所发送的消息。 块所发送的消息。
第四章 协议形式描述语言
ESTEILE所定义的一个模块体,在协议运行过程中可同时生成一个或多个实 例,模块实例可动态产生和撤销。不同模块实例用模块变量来标识 (module variables),在ESTEILE中模块实例的生成部分包括在规格主体部 分(main bodyes)中。例如在自动回叫系统的例子最后。 Modvar partyA:MA partyB:MB 这里,首先说明了三个模块变量partyA, Agent:MG partyB, Agent,它们分别对应模块MA, MB, MG,然后初始化部分生成实例。 Initilize begin init partyA with MA; init partyB with MB; init Agent with MG; …… end
2012-5-6 2
第四章 协议形式描述语言
为了克服自然语言和程序设计语言的缺点,一些 大计算机公司使用了专用协议描述语言。例如IBM公 司的FAPL(Form and Protocol Language)就是一种 专为提高IBM公司网络软件(SNA,system Network Architecture)的开发效率而设置的专用语言
2012-5-6
11
百度文库
第四章 协议形式描述语言
模块的定义由两部分组成:模块头和模块体组成。 (1)模块头定义(module-head-definition) 每个模块头可对应一个或多个模块体。 模块头定义包括两个重要部分: ①外部交互点(external interaction points) ②输出变量(exported variables)。
2012-5-6
End;
14
第四章 协议形式描述语言
模块实例( instances) 2.模块实例(module instances) 协议运行时,用ESTELLE定义的一个模块体可同时生成一个或多 个模块实例,模块实体并可动态产生和消失。同一个模块体的不同模块 实例用模块变量(module variables)来标识。父模块实例初始化时负 责子模块实例的生成。例如, Mod var Mv-1: 模块头-A; Mv-2: 模块头-A; Initialize Begin Init mv-1 with 模块体-1; Init mv-2 with 模块体-2; ………… End; 这里用变量mv-1表示模块体-1的实例,mv-2标识模块体-2的实例。
相关文档
最新文档