中华人民共和国国家标准信息技术文本通信面向信报的文本交换系统第部分抽象服务定义约定发布实施国家技术监督局发布前言本标准等同采用国际标准信息技术文本通信面向信报的文本交换系统第部分抽象服务定义约定及其技术修改本标准正文和附录中引用其他标准时用我国的标准编号代替相应的国际标准编号其对应关系是代替代替根据编写国家标准的实际情况不采用的附录为本国家标准的一部分在信息技术文本通信面向信报的文本交换系统总标题下目前包括以下个部分第部分即系统和服务概论第部分即总体结构第部分即抽象服务定义约定第部分即信报传送系统抽象服务定义和规程第部分即信报存储器抽象服务定义第部分即协议规范第部分即人际信报系统本标准的附录附录是标准的附录附录和附录都是提示的附录本标准由中华人民共和国电子工业部提出本标准由电子工业部标准化研究所归口本标准起草单位清华大学计算机系本标准主要起草人邱建史美林李韵琴徐明伟张志豪前言国际标准化组织是由各个国家标准化机构的成员体联合组成的一个世界性组织该组织通过其各个技术委员会进行国际标准的制定工作凡是对于已设有技术委员会的某一专业感兴趣的每一个成员体都有权参加该技术委员会与有联系的官方和非官方国际组织也可参与国际标准的制定工作与国际电工委员会在电子技术标准化的所有方面都进行密切合作各个技术委员会提出的国际标准草案须先分发给各成员体表决通过后再由理事会批准为国际标准根据工作导则国际标准至少需要投票成员体的赞成国际标准是由信息技术第一联合技术委员会制定的目前在信息技术文本通信面向信报的文本交换系统总标题下包括以下个部分第部分系统和服务概论第部分总体结构第部分抽象服务定义约定第部分信报传送系统抽象服务定义和规程第部分信报存储器抽象服务定义第部分协议规范第部分人际信报系统本标准的附录和附录是标准的组成部分附录和附录仅提供参考信息引言本标准是一组面向信报的文本交换系统国家标准之一这组标准对包含任意多个协同操作开放系统的信报处理提供了综合说明本标准使信报处理系统作为一种复合的分布式信息处理任务得以成为可能它们的组合成分具有这些特性本标准规定了信报处理中分布式信息任务的定义约定也可用于其他应用本标准由和合作完成与的技术上是一致的中华人民共和国国家标准信息技术文本通信面向信报的文本交换系统第部分抽象服务定义约定国家技术监督局批准实施第一篇引言范围本标准说明了用来描述在信报处理中出现的分布式信息处理任务的约定本标准结构如下第一篇是引言第二篇说明了为抽象定义一个分布式信息处理任务而采用的约定第三篇给出了具体实现这些任务的通信方面的原则例如根据开放系统互连协议实现的原则附录提供了重要的补充信息本标准没有一致性的要求引用标准下列标准所包含的条文通过在本标准中引用而构成为本标准的条文本标准出版时所示版本均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性信息处理系统开放系统互连基本参考模型信息处理系统开放系统互连抽象语法记法一规范信息处理系统开放系统互连抽象语法记法一基本编码规则规范信息处理系统开放系统互连联系控制服务元素的服务定义信息处理系统文本通信远程操作第部分模型记法与服务定义定义下述定义适用于本标准本标准以提出的概念为基础并使用其中定义的下列术语抽象语法应用层应用协议数据单元应用协议应用服务元素具体传送语法分布式信息处理任务层服务层开放系统开放系统互连实开放系统本标准使用定义的下列术语抽象语法记法一数据类型数据值输入整数宏模块客体标识符标记本标准使用定义的下列术语基本编码规则本标准使用定义的下列术语应用上下文本标准使用定义的下列术语结合操作差错已链接的操作远程操作服务远程操作离合操作缩略语本章无条文约定本标准使用下列描述性约定本标准使用下列基于表的描述性约定使用的宏记法来定义宏和使用的宏定义和来定义宏和使用本身来说明在附录的例子中出现的信息客体的抽象语法使用第章的宏和来说明在附录例子中的各种抽象模型使用第章的宏和来说明在附录例子中的各种抽象服务出现在两个地方在本标准的正文中用来作为说明此外为用户参考也大量重复地在附录中出现假如在这两处发现差异则指示一个规范差错注整个附录中的模块的标记是隐式的就这方面而言这些模块是确定的术语在标准中术语在定义时用黑体字表示在其他情况下无特殊表示第二篇抽象服务定义约定概述面对描述与说明一个复杂分布式信息处理任务的工作聪明的方法是先抽象地说明任务而不是用具体术语来说明这种方法能保证在独立于任务的具体实现情况下列出任务的功能需求这种分离法很重要因为在不同前提下任务的每一个方面都容许有几个具体实现例如在一个包含三个信报传送代理的信报传送系统中第一个与第二个代理可能采用通信来相互作用而第二个与第三个可能靠专用的方式来交换本篇从宏观与微观两方面说明了抽象地描述一个分布式信息处理任务而采用的约定宏观描述称为抽象模型微观描述称为抽象服务在本篇定义了说明抽象模型与服务的各种形式工具在附录中给出了一个综合运用的例子阅读本篇时读者可能希望参考一下该附录的实例本篇包括下列题目抽象模型抽象服务注上面提到的形式工具既不是一个形式描述语言也不是一个置换它们只是支持本篇定义的非正式描述约定的简单记法抽象模型一个分布式信息处理任务的宏观描述称为此任务与其实现环境的抽象模型模型它是以抽象客体端口服务和细分等概念为基础的抽象服务的概念在第章中有更完整的说明抽象客体一个抽象客体客体是一个功能实体是可能的几个两两之间存在交互作用的实体中的一个客体有不同的类型这些类型决定了它们的功能与行为例如某种类型的一个客体可能表示一个系统而另一种类型的多个客体表示它的用户客体之间通过抽象端口交互作用客体类型是通过宏来说明的此说明列出了对这个客体提供访问的抽象端口的类型对于非对称的端口类型规范指示出这种类型端口是消费者端口还是提供者端口类型的数据值是一个唯一且无歧义地标识被说明客体的客体类型标识符注关键字是的保留字在当前上下文中合适替换者的选择留待进一步研究抽象端口一个抽象端口端口是一个点在这点上一个抽象客体与另一个抽象客体交互作用端口有不同类型这些类型决定了它们能够允许的相互作用种类例如某种类型的端口可能表示访问一个目录系统的方式而另一类端口则表示管理此系统的方法端口类型有以下两种对称的对称端口类型的所有实例全是同一的非对称的非对称端口类型的每个实例必是供应者与消费者两种之一注术语提供者和消费者的特定分配常常是凭直觉进行的例如在一个文件系统中很自然地会考虑将提供者端口分配给系统用户和管理者但严格地讲这两个术语的分配是任意的只要两个客体的两端口相接触或已结合则客体间可通过其端口相互作用对于一个或多个端口对能使其状态为启动的动作称为结合能使其状态为关闭的动作称为离合只有当两个端口匹配时才能结合任意两个相同的对称类型的端口可以相匹配两个相同的非对称类型的端口相匹配当且仅当一个是供应者另一个是消费者端口类型是用宏来说明的此规范标识了抽象操作该操作表示当两个端口已结合时可能进行的交互作用假如未列出抽象操作则认为是未说明数据值标识抽象操作数据类型标识抽象操作如果端口类型是对称的则两个客体可提供所有列出的抽象操作若端口类型是非对称的则具有消费者端口的客体与拥有供应者端口的客体提供的抽象操作是有区别的类型的数据值是一个客体标识符它唯一且无歧义地标识了说明的端口类型抽象服务抽象服务是一个客体通过的一个或多个端口向另一个客体提供的一个功能集合前一个客体称为抽象服务提供者提供者后一个客体称为抽象服务用户用户上述的每一个端口都是对称的或非对称的若为后者则必为消费者与供应者二者之一一个抽象服务可有任意多个用户和提供者每当提供者的抽象服务端口与用户的匹配端口相结合时则认为在这两上客体之间存在一个抽象联系或联系抽象服务在第章中给予说明注应用层抽象服务的服务目的与低层服务的服务目的很多是相同的抽象细分在不同时间可以用不同方式来考察客体在某些情况下适宜将客体视为原子例如当描述一个客体如何与其外部客体交互作用即当说明客体的抽象服务时应将此客体视为原子在另外一些情况下又适宜将客体视为合成的即由其他若干个客体构成例如当描述如何实现一个客体时就是这种情况成分客体同样具有端口一些端口是在结构的客体表面可见的另一些则使成分客体之间交互作用因此在成分客体中支持提供与使用较少的抽象服务而成分客体协作的结果提供了结构客体的全部抽象服务把一个客体功能分成几个较小的客体的功能称为这个客体的抽象细分细分可以递归地使用细分技术可以通过提练成分客体本身来展示其内部结构一直这样进行下去直到可以将分解得到的新的成分客体认为是原子的为止细分是用宏来说明的它标识了内部结构正被展示的客体与构成它的成分的客体每一个成分客体的特征是唯一的或递归的宏定义还指出了哪些成分客体的端口与其他成分客体的端口相结合以及哪些端口在合成客体的表面是可见的类型的数据值是一个客体标识符注象客体一样原则上在不同时间也可以用不同方式来考察端口在某些情况下适宜将一个端口对视为原子但是另一些情况下可以想象用提练端口自身的方法来检测提供此类通信的机制由此观点可以认为一个端口对是由一个客体集支持的这种看法将加强说明通信性能的能力在本标准版本中不再进一步探讨端口提炼的概念抽象服务一个分布式信息处理任务的微观描述是抽象服务的规范它定义了如何启动控制和中止一个任务不明确提出微观描述是以抽象的结合操作离合操作操作和差错以及抽象规程的使能概念为基础的注下面定义的宏定义隐含使用来说明自变量结果和参数例如在说明过程中赋值的任何具体上下文标记虽然在上下文中无意义但在一个抽象服务的实现过程中却起着重要作用抽象规程一个抽象规程规程是一个客体应另一个客体的请求而执行的任务发出请求与执行任务分别称为规程的调用和执行发出请求的客体与按请求动作的客体分别称为调用者与执行者规程可以但不必须要求调用者在调用的基础上向执行者提供一个单一的已规定类型的信息客体该信息客体称为规程的自变量每一个规程的每次执行都有一个成功或失败的结果一个规程如果完全执行则认为是成功的如过早终止则为失败一个规程可以但不必须要求执行者将成功通知调用者它还可以但不必须进一步要求当报告失败时提供某种信息注以下各条中规定明确指出作为说明规程的自变量与结果的抽象语法对抽象错误的参数也一样的这些使用并不暗示在开放系统之间必须传送这些信息客体特别是信息客体由于用进行描述以及的基本编码规则使得信息客体具有具体的传送语法这个事实在当前上下文中并不重要只是一个形式描述信息客体抽象语法的方便工具抽象结合操作一个抽象结合操作是一个规程它的成功执行将一对或多对抽象端口结合在一起调用抽象结合操作的客体叫做发起者执行这个操作的客体叫响应抽象结合操作适于将发起者的一个特别集与响应者的一个匹配相结合对集合中一个或多个端口是非对称的情况抽象结合操作可能只适于结合到消费者一边或只适于到供应者一边或二者任选其一除了在失败时传给调用者的信息只限于一个称作差错信息的单一信息客体这种情况之外抽象结合操作完全是一个一般的规程一个抽象结合操作是靠宏来说明的定义如下必须是类型由关键字引导的条列出了此抽象结合操作要结合的响应者的端口假如在该列有一个非对称端口并未标或这表示此抽象结合操作适用于在任一方向结合这样一个端口注意自变量结果与或差错信息的说明是靠中定义的远程操作的宏嵌入的来完成的而且它是宏返回的这种类型的一个值若未提供返回值则返回默认值注与之间的联系可有助于具体化抽象服务的实现见条一个抽象服务对于它提供的每种类型端口全典型地包含一个抽象结合操作当存在几种端口类型时它们的抽象结合操作可能但并不一定有区别抽象离合操作一个抽象离合操作是一个规程它的执行无论成功与否都将使两端口分离它由调用相应的抽象结合的客体即发起者调用由响应者执行一个抽象离合操作适用于将发起者的端口特定集与响应者的匹配集处分离当在集合中一个或多个端口是非对称时抽象离合操作只适用于从消费者方面分离或只适于从供应者方面分离或两者任选其一除了在失败时传送给调用者的信息只限于称为差错信息的单一信息客体这种情况外抽象离合操作是一个完全一般的规程一个抽象离合操作是靠宏来说明的定义如下必须是类型由关