协议描述技术通信软件开发ppt课件.ppt
MSC概述,4.1,MSC(Message Sequence Chart ):一种形式语言,用来描述多个实体之间和实体与环境之间消息交互的顺序。 在Z.120建议中,MSC的定义用两种具体文法给出,即文本文法(Textual grammar)和图形文法(Graphical grammar)。,MSC 的 特 点,4.1.1,是一种消息跟踪语言:可以描述通信及其它事件发生的顺序,同时也可以表示对数值传递和事件定时的限定。是一种“场景”语言:每张MSC图只描述系统在某种情况下的通信行为。支持完整的和不完整的规范说明。 是一种图形化语言。用二维图形来概括通信实例的行为。是一种形式语言。语言的定义采用自然语言和形式化记法。是一种实用语言:可用于软件开发的全过程。应用广泛:可用于所有具有信息交互的应用领域。 支持结构化设计。经常被用来与其它方法和语言联合使用。可以描述系统不允许出现或不可能出现的通信行为。,MSC的实体类型,4.1.2,a) MSC 文档;b) MSC图;c) 实例(instance);d) 状态(condition);e) 定时器(timer);f) 消息(message);g) 通道(gate);h) 变量(variable);,MSC的实体类型,4.1.2,MSC 文档和MSC图也称为视见域(scope)。在一个系统中,每个实体都用一个名称来标识。在同一个视见域内,属于同一种实体类型的两个实体不能使用相同的名称。在同一个视见域内,可以多次出现的实体有:状态、定时器和消息等,多次出现的实体代表同一个实体。实体的名称只在同一个视见域内是可见的,在该视见域之外不能被引用。,定义图形文法的符号说明,4.1.3,在用图形文法定义MSC语法(及后续章节定义SDL语法)时,将采用类似于巴科斯范式(BNF)的符号: :表示括号内的符号为非终结符,即还需进一步定义; :表示括号内的内容有关联性;* :表示括号内的内容是可选的,可以为零或重复任意次;+ :表示括号内的内容是必选的,可以出现一次或重复任意次;= :定义符,定义符左部是非终结符,右部是由非终结符和/或终结符组成的符号串;| :“或”符,该符号两边的内容为并列关系。非终结符最终都要用终结符来定义。终结符包括MSC中的关键字、各种标识符、名称、各种图形符号等。,定义图形文法的符号说明,4.1.3,一组说明句法结构的词组:contains(包含)is followed by(下接)is associated with(关联)is attached to(相接)above(在上方)set(集合),定义图形文法的符号说明,4.1.3,说明“contains”的例子,定义图形文法的符号说明,4.1.3,:= is followed by ,:= is followed by ,说明“is followed by”的例子,定义图形文法的符号说明,4.1.3,说明“is associated with”的例子,:= is associated with is attached to ,msg,I,J,消息顺序图,4.2.1,MSC图有两种形式(简单MSC图和高级MSC图): := | ,消息顺序图,4.2.1,简单MSC图可以进一步定义如下: := contains ,MSC符号定义如下: := is attached to * set :=,MSC头部由关键字“msc”和MSC图名(msc name)组成,其定义如下: :=msc ,消息顺序图,4.2.1,MSC主体域包括5个层面:实例层(instance layer) 文本层(text layer) 通道定义层(gate definition layer) 事件层(event layer) 连接器层(connector layer) 每张MSC图的主体域由这5个层面的任意组合构成,其定义如下: := set,消息顺序图,4.2.1,实例层:用来说明MSC图中包含的实例的情况,包括实例类型、实例名及实例体等,这些由实例域给出。实例层包括零个到多个实例域,说明个别MSC图可以不包含实例。实例层的定义如下: := * set,消息顺序图,4.2.1,文本层: MSC图中的文本说明,是一个独立层,与其它层在逻辑上和图形符号上均无联系。文本层包括零个到多个文本域。文本层的定义如下: := * set,消息顺序图,4.2.1,事件层 :由一个到多个事件域组成事件域按顺序上下排列事件层的定义如下: := | above MSC中共有三种事件域:实例事件域(instance event area)共享事件域(shared event area)创建域(create area)。,消息顺序图,4.2.1, := /* 消息事件域 */| /* 方法调用事件域 */ | /* 回复事件域 */| /* 定时器域 */| /* 并发域 */| /* 方法域 */| /* 挂起域 */| /* 动作域 */, :=| /* 条件域 */| /* MSC引用域 */| /* 内部表达式域 */,消息顺序图,4.2.1,连接器层:描述连接两个实例的事件,包括消息域(message area)、未完成消息域(incomplete message area)、方法调用域(method call area)、回复域(reply area)等。 := * | * |* | * | * set,消息顺序图,4.2.1,简单MSC图的一般形式 :,msc ,消息顺序图,4.2.1,建立连接的简单MSC图,MSC diagram,Message to the environment,MSC heading,Instance,Condition,Output event,Input event,Instance end,Message,消息顺序图,4.2.1,实 例,4.2.2,实例代表某种实体,具有该实体的所有属性。在SDL系统中,实体可以是系统、功能块或进程。在通信领域,实体可以是一个系统,也可以是某层协议实体。实例由实例头部、实例轴、实例结束符或实例终止符组成。,实 例,4.2.2,实例图形的三种表示形式,Instance head symbol,instance axis symbol,instance stop symbol,(a),(b),(c),实 例,4.2.2,实例轴符有两种形式。同一张MSC图,同一个实例只能采用其中一种 。实例结束符(instance end symbol)仅代表该实例需在本MSC图中要描述的部分的结束,而不表示该实例的结束。实例头部符号只表示该实例需在本MSC图中要描述的部分的开始,而不表示该实例的创建。终止符(stop symbol)表示该实例真正的结束,终止符只适用于进程类型的实例。,实 例,4.2.2,实例标题的三种表示形式,inst,inst:process digit,inst,process digit,instance heading,MSC支持的实例类型有:进程(process)类型、功能块(block)类型和系统(system)类型。,实 例,4.2.2,实例分为简单实例和可分解实例(decomposed),关键字decomposed表示该实例还需用另一个MSC图作进一步说明。如果分解后的MSC图采用别的图名,则需在实例标题中给出该图名。,inst,decomposed,process,digit,decomposed,inst,decomposed,as,new,msc,name,inst,实 例,4.2.2,msc UserAccess,User,ACSystemdecomposed asAC_UserAccess,when Idle,EstablishAccess(“Illegal PIN”),CardOut,when PINOK,“Please Enter”,OpenDoor,Idle,opt,MSC Reference,Inline expression,包含分解实例的MSC图,实 例,4.2.2,Decomposed instance,实例展开后的MSC图,消 息,4.2.3,在MSC图中,消息用来在两个实体之间或实例与环境之间交换信息。在两个实例之间交换一条消息可以看成两个事件:消息出(message out)和消息入(message in) 。两个事件共享一个消息名。消息用消息名来标识,可以带参数,参数列表中不用给出参数类型。两种与消息有关的异常: 输出消息丢失; 实例消耗“来历不明”的消息,即输入异常消息。,消 息,4.2.3,timeout,消息丢失的例子,条 件,4.2.4,MSC图中条件(condition)可以描述: 全局状态(global condition,涉及MSC图中所有实例) 局部状态(non-global condition,涉及MSC图中部分实例)当局部状态只涉及MSC图中的一个实例时,称为本地状态(local condition)。条件的图形符号,表示此条件不包括该实例,定 时 器,4.2.5,在MSC图中,定时器可以用来监视某一事件(一般为等待接收消息)的到达。定时器包括两个操作(动作)和一个事件,即:启动定时器、复位定时器和定时器超时。启动定时器就是在系统中创建一个定时器实例,该实例有个实例名(定时器名),可以带参数,也可以给出定时间隔(duration)。,定 时 器,4.2.5,set timer,reset timer,设置定时器和复位定时器的例子,定 时 器,4.2.5,set timer,timeout,定时器超时的例子,表示启动定时器的两种图形符号,表示再启动定时器的图形符号,表示复位定时器的两种图形符号,表示定时器超时的几种图形符号,定 时 器,4.2.5,动 作,4.2.6,动作指通信实体在通信过程中完成的某些操作动作符定义: :=is attached to contains 动作符描述的动作仅限于实例内部,进 程 创 建,4.2.7,两种进程创建: 静态创建:系统初始化时创建的实例 动态创建:系统运行过程中创建的实例动态创建实例用进程创建符来描述进程创建符有箭头一端与被创建实例的实例头部相连。进程创建符: 或,进 程 终止,4.2.8,进程终止是指终止本进程实例,即执行了进程终止的进程实例在系统中就不存在了。 进程终止仅适用于进程类型的实例。一般来说,进程终止只适用于动态创建的进程实例。,进 程 终止,4.2.8,进程创建和进程终止的例子,Instance created with parameter,Instance stop,方法调用与回复,4.2.9,MSC图中实例间交互信息的一种形式。MSC中的方法是实例中的一个行为单元,具有独立的名称。一个实例中的方法可以由另一个实例来调用,方法的运行(计算)结果以回复的形式回送给调用者。调用和回复使用同一方法名。方法调用与回复均可带参数,使用同一个方法名。,方法调用与回复,4.2.9,实例TC调用实例SUT中的方法“Method1”,method area,reply,method call,suspension area,环境与通道,4.2.10,MSC图的主体是实例,MSC图的边框是MSC系统的环境。实例可以从环境输入消息,也可以向环境输出消息,实例与环境交互的消息通过通道来完成。每个通道都有一个通道名,通道名可以显式给出,即在图中直接给出通道名。也可以以隐式方式给出。隐式通道名由消息的方向和消息名来确定。,环境与通道,4.2.10,msc gates,i,j,k,MyMSC,g,h,s1,s2,s3,s4,通道定义,并 发,4.3.1,应用背景:某通信实体在某状态下需要接收到两条或多条消息后才能往下进行,而这些消息到达的时间顺序是任意的,即实例消耗这些消息的顺序是任意的。作用:描述在实例轴上发生时间无序的事件并发只与单实例相关,并发的不同表示形式,并发符1,并发符2,并 发,4.3.1,concurrent area,Instance created with parameter,并 发,4.3.1,并发的例子,MSC引用,4.3.2,MSC引用是指在MSC图中引用别的MSC图被引用的MSC图用一个引用符来表示,引用符上有实际通道,被引用的MSC通过这些实际通道与新的MSC图中的实例和环境交互信息。MSC引用符可以与多个实例轴相连。与本引用符无关的实例的实例轴可以穿过引用符。MSC引用不能递归进行。引用符:,MSC引用,4.3.2,引用别的MSC图的例子,MSC引用,4.3.2,被引用的MSC图的例子,线内表达式,4.3.3,线内表达式(inline expression)作用:在MSC图中构造分支结构、并行结构、循环结构。线内表达式运算符:“alt”(交替)、“opt”(可选项)、“exc”(异常)、“loop”(循环)和“par”(并行)。 线内表达式的符号:,线内表达式符,异常线内表达式符,分隔符,线内表达式,4.3.3,分支结构alt:两个区域内的内容是二选一的关系,非此即彼,不会同时出现。,分支结构(alt)的MSC图,两个区中间用虚线隔开,线内表达式,4.3.3,线内表达式,4.3.3,分支结构opt:“alt”的一个特例,此时“alt”线内表达式中第二个区域为空。,线内表达式,4.3.3,分支结构exc:“alt”的一个特例,其以下的部分被当成第二个区域的内容,须包含该MSC图中的所有实例。,exceptional case,描述循环的MSC图,线内表达式,4.3.3,循环结构“loop”:描述一些重复发生的事件 。 线内表达式的内容将循环若干次 循环次数格式为:loop,表示至少循环n次,最多循环m次。 缺省值loop=loop,线内表达式,并行事件的例子,4.3.3,并行结构“par”:用来描述并行发生的事件,高级MSC概念,4.4,作用:把一组MSC图组合成更复杂的MSC图高级MSC(HMSC)是一个有向图。有向图由节点和连接节点的线构成连接节点的线:节点: 开始符: 结束符: MSC引用符: 条件框: 连接点: 并行框:,高级MSC举例1:顺序结构,HMSC Start,HMSC end,MSC Reference,高级MSC概念,4.4,高级MSC举例2:分支结构,Alternative,Loop,高级MSC概念,4.4,高级MSC举例3:并行结构,高级MSC概念,4.4,MSC文档,要把一个系统的所有“场景”描述出来,需要若干张MSC图。把这些图集中起来,就形成了MSC文档的主要内容。MSC文档定义本MSC系统用到的实例名、简单MSC图名、高级MSC图名、消息名及其参数、定时器和变量等。MSC文档内容包括:文档头、定义部分、 应用部分,4.5,defining part area,utility part area,document head,MSC文档,4.5,MSC文档,4.5,MSC文档的例子,微型电话交换机硬件结构示意图,音信号,交换网络,主控CPU,收号器,用户电路,收号器,用户电路,0,127,最多连接128个用户,每个用户电路配有一个双音多频收号器,不考虑出入局呼叫,用户电路直接接入交换网,硬件结构与工作原理,4.6.1,硬件结构与工作原理,4.6.1,微型电话交换机软件系统特点:提供基本的呼叫处理功能和部分补充业务用户电话号码采用四位编码,0到127号用户分别对应电话号码3000到3127微型电话交换机的工作原理可以通过一次完整的呼叫过程来描述。呼叫过程分成三个阶段: 连接建立阶段 通话阶段 连接释放阶段,硬件结构与工作原理,4.6.1,交换机完成的主要工作: 用户摘挂机检测,交换机周期性地监测用户线状态; DTMF收号,及时接收用户所拨号码; 交换网络控制,通过交换网络向用户送各种音信号,连接话路等; 振铃控制,按一秒振,四秒停的节奏向用户送铃流; 号码分析,确定所拨用户号码的呼叫类型 ; 地址翻译,确定被叫用户逻辑号; 用户状态管理,用户状态:“忙”、“空闲”、“挂起”。 呼叫处理,对整个呼叫过程进行控制。,需求分析,4.6.2,需求分析主要考虑交换机用户的要求用户在话机没有振铃的情况下拿起话机手柄,应能及时听到拨号音(300毫秒内);用户在话机振铃的情况下拿起话机手柄,应能与对方通话,同时停止振铃;用户摘机后,应能通过话机按键输入被叫号码,输入第一位号码后交换机应及时停送拨号音;用户拨完四位号码后,如果对方空闲(用户未使用话机),应能听到回铃音;如果对方忙(用户正在使用话机或话机正在振铃),应能听到忙音;如果用户拨错号码,应能听到空号音;用户通过输入不同的号码,可以与其他127个用户中的任意一个通话;用户可以通过拨号设置或撤销呼叫转移;用户可以在接续过程中随时挂机,结束呼叫;话机振铃时间不超过60秒,听拨号音时间不超过10秒,听回铃音时间不超过60秒,听忙音时间不超过40秒,听空号音时间不超过40秒;用户输入号码时,两位号码之间的间隔不超过20秒;,软件结构设计,4.6.3,本交换机的软件采用分层结构:应用层和接口层接口层负责与硬件有关部分的工作,完成以下功能:用户摘挂机检测,上报用户状态(摘机或挂机);DTMF收号,上报收到的号码;音信号连接和断开;振铃控制和停振铃;话路连接和释放。 应用层负责与硬件无关部分的工作,完成以下功能:号码分析,对用户所拨号码进行分析,确定本次呼叫类型,包括内部呼叫、设置呼叫转移、撤销呼叫转移;地址翻译,根据主叫所拨号码确定被叫用户;用户状态管理,建立一张用户状态表,记录用户状态。呼叫处理,负责呼叫接续过程连接建立阶段和连接释放阶段的工作。,消息定义,4.6.4,接口层发到应用层的消息只有三条,定义如下:摘机消息off_hook(integer),参数:用户线逻辑号;其中:“off_hook”是消息名,“integer”是参数类型,下同。挂机消息on_hook(integer),参数:用户线逻辑号;号码消息digit(integer,integer),参数:用户线逻辑号,一位拨号号码 。,消息定义,4.6.4,应用层发到接口层的消息有:连接拨号音dial_tone(integer),参数:用户线逻辑号;连接回铃音ringback_tone(integer),参数:用户线逻辑号;连接空号音null_tone(integer),参数:用户线逻辑号;连接忙音busy_tone(integer),参数:用户线逻辑号;停音信号stop_tone(integer),参数:用户线逻辑号;振铃 ringing_on(integer),参数:用户线逻辑号;停振铃 ringing_off(integer),参数:用户线逻辑号;连接话路 path_connect(integer,integer),参数:主叫用户线逻辑号,被叫用户线逻辑号;断开话路 path_disconnect(integer,integer),参数:主叫用户线逻辑号,被叫用户线逻辑号。,消息交互图,4.6.5,用MSC图给出接口层与应用层之间消息交互的情况:用户空闲、建立通话的情况被叫忙的情况空号的情况久叫不应(振铃超时)的情况振铃早释(主叫在听回铃音期间挂机)的情况用户早释(用户在拨号期间挂机)的情况久不拨号(主叫在拨号期间长时间未拨号)的情况,消息交互图,4.6.5,被叫空闲的情况用户摘机、听拨号音用户拨第一位号码、停拨号音用户拨后三位号码、听回铃音被叫忙的情况用户摘机、听拨号音用户拨第一位号码、停拨号音用户拨后三位号码、听忙音空号的情况用户摘机、听拨号音用户拨第一位号码、停拨号音用户拨后三位号码、听空号音,消息交互图,4.6.5,上述三种情况的拨号过程完全相同,故可把拨号过程提取出来,画成单独的MSC图。三种情况都可以引用下面这张图。,消息交互图,4.6.5,msc seizure,app_sys,when idle,seizure,用户空闲的情况,interface,ringing_on(user_b),ringback_tone_on(user_a),dialing,T(60s),MSC Reference,消息交互图,4.6.5,消息交互图,4.6.5,消息交互图,4.6.5,在占用状态下,可能出现三种情况:被叫应答,进入通话状态被叫没有应答,振铃超时(久叫不应)被叫没有应答,主叫挂机(振铃早释),消息交互图,4.6.5,消息交互图,4.6.5,alternativeinline expression,消息交互图,4.6.5,消息交互图,4.6.5,消息交互图,4.6.5,空号音状态,消息交互图,4.6.5,微型交换机的高级MSC图,