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