“content”: “
1. 标准概况与适用范围
ISO/IEC 10728:1995(2018年确认),通常称为抽象服务定义约定(Abstract Service Definition Conventions, ASDC),是国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的一项信息技术标准。2018年,加拿大标准委员会(SCC)通过CSA将其采纳为国家标准(CAN/CSA-ISO/IEC 10728-95),确认其技术内容继续有效。该标准由ISO/IEC JTC 1/SC 6(系统间远程通信和信息交换)分技术委员会制定,属于OSI应用层架构的核心基础性约定。
ASDC标准的主要适用范围包括:
- 定义OSI应用层内抽象服务(Abstract Service)的概念模型和规范方法;
- 提供用于描述服务原语、服务参数和服务行为的统一模板;
- 指导应用层协议规范(如ACSE、ROSE、RTSE、CCR等)如何书写服务定义;
- 供需要与OSI服务定义保持一致的分布式应用框架(如CORBA、Web服务)参考使用。
实用提示:尽管OSI协议栈已不再是市场主流,但ASDC定义的抽象服务方法至今仍被许多现代标准化组织(如ITU-T、IETF)用于协议规范中的服务接口描述,是理解”面向连接/无连接服务”规范的基石。
该标准适用于系统设计人员、协议规范作者、测试套件开发人员以及任何需要精确定义通信服务接口的技术人员。
2. 主要技术内容与要求
2.1 抽象服务的核心概念
ASDC围绕以下核心要素构建:
- 服务提供者(Service Provider):位于服务边界之内,负责向服务用户提供通信能力;
- 服务用户(Service User):位于服务边界之外,通过服务原语与服务提供者交互;
- 服务原语(Service Primitive):服务用户与服务提供者之间不可分割的交互单元,可分为四种类型:Request(请求)、Indication(指示)、Response(响应)、Confirm(确认);
- 服务参数(Service Parameter):伴随原语传递的数据元素,其数据结构和编码通常使用ASN.1定义;
- 服务行为(Service Behavior):规定在特定时序下原语的产生顺序和参数约束。
2.2 服务原语类型与时序模型
ASDC定义了四种基本原语类型,以及它们在不同服务类型(确认型、非确认型)中的组合方式,如下表所示:
| 原语类型 | 缩写 | 方向 | 含义 |
|---|
| Request | req | 用户 → 提供者 | 服务用户请求服务提供者执行某个动作 |
| Indication | ind | 提供者 → 用户 | 服务提供者向服务用户通报事件或传递数据 |
| Response | rsp | 用户 → 提供者 | 服务用户响应之前收到的Indication |
| Confirm | cnf | 提供者 → 用户 | 服务提供者确认服务用户之前的Request已完成 |
对于确认型服务(Confirmed Service),时序要求为:Request → Indication → Response → Confirm。对于非确认型服务(Non-confirmed Service),简化为:Request → Indication。标准同时允许”Provider-initiated”原语(即Indication不因Request产生)。
重要注意事项:在编写服务定义时,必须严格区分”服务原语类型”与”协议数据单元(PDU)类型”。ASDC只关心服务边界上的交互,不涉及内部协议机制。常见的错误是在服务定义中混入底层协议细节,导致服务规范失去抽象性和复用性。
2.3 服务定义规范模板
ASDC要求每个服务必须包含以下信息:
- 服务名称和分类(连接建立、数据传输、连接释放等);
- 服务原语列表(每个原语包含其参数);
- 每个参数的使用规则(是否必选、是否条件可选、值域、编码类型);
- 服务时序图或状态表(描述原语合法顺序及服务提供者的内部状态转换);
- 服务约束(如服务质量参数、流量控制等)。
标准还提供了使用ASN.1对服务参数进行抽象定义的具体示例,确保服务定义与实现无关。
2.4 对抽象语法和传输语法的要求
ASDC明确规定服务参数应使用抽象语法记法(ASN.1)进行定义,并建议使用标准的传输语法(如BER、DER或PER)进行编码。标准强调服务定义应独立于传输语法选择,由具体实现或协议实现在一致性声明中确定。
3. 实施与应用要点
3.1 在应用层协议规范中的应用
遵循ASDC的服务定义方法,可以使协议规范具有以下优点:
- 抽象性:服务接口与实现机制解耦;
- 一致性:所有应用层协议采用相同的定义风格,降低学习成本;
- 互操作性:清晰的服务边界有助于多厂商实现之间的互联。
ISO/IEC 10728-95在实际中常被引用作为给定应用层标准(例如ITU-T Rec. X.217 / ISO/IEC 8649 — ACSE服务定义)的规范性引用文件。实施者在编写新的应用层服务定义时,应按ASDC的要求:
- 从OSI高层架构(ISO/IEC 7498-1)中明确服务角色;
- 使用ASN.1模块单独定义所有服务参数;
- 提供时序图和原语表;
- 对每个服务原语标注是否可能产生原语序列的异常(如拒绝、失败等)。
标准实施的益处:采用ASDC后,协议规范更容易被自动机测试工具验证(如基于TTCN的ETSI测试套件),显著降低协议一致性测试的复杂度,尤其适用于电信和航空电子等高可靠性领域。
3.2 与其他标准的一致性要求
尽管标准本身不强制要求所有服务定义必须完全按照其模板书写,但ISO/IEC 10728-95在OSI标准体系中是规范性引用,因此凡是声称符合”OSI应用层服务定义”的规范都必须遵守。在实施过程中需注意:
- 服务原语类型(req/ind/rsp/cnf)不能任意扩充或改变名称;
- 如果服务需要支持多用户,则应遵循ASDC中对”服务连接”和”服务端点”的约定;
- 服务参数必须明确标注其”服务边界可见性”(是仅在本地可见还是需要编码传输)。
安全关键要求:在涉及安全服务的应用协议(如ISO/IEC 10181系列)中,ASDC要求强制使用”确认型原语”来保证安全信息的可靠交付。任何将安全相关服务定义为非确认型的行为,必须提供充分的风险合理性论证,否则将不满足OSI安全架构的基本要求。
4. 与其他标准的关系
ASDC并非孤立的规范,它与以下标准构成了OSI应用层设计的核心支柱:
| 标准编号 | 名称 | 关系说明 |
|---|
| ISO/IEC 7498-1 | OSI基本参考模型 | 提供分层模型,ASDC中”服务层”的概念直接派生于此 |
| ISO/IEC 10731 | OSI服务定义约定 | 提供更抽象的服务定义框架(如原语通用语义),ASDC进一步细化为应用层服务定义 |
| ISO/IEC 8824/8825 | ASN.1 (抽象语法记法) 及其编码规则 | ASDC要求使用ASN.1描述服务参数,两者通常配套使用 |
| ISO/IEC TR 8509 | OSI服务约定 | 与ASDC互补,前者侧重服务约定的一般原则,后者侧重应用层具体约定 |
| ISO/IEC 9545 (已撤) | 应用层结构 | ASDC曾被用于指导应用服务元素(ASE)和ACSE的定义 |
此外,虽然TCP/IP架构不使用OSI服务定义,但IETF在定义RPC、NFS等协议时也吸收了ASDC中原语分离(Primitive Splitting)的思想。因此,了解ASDC有助于更深入地理解现代通信协议设计的演进脉络。
常见问题(FAQ)
问:ISO/IEC 10728-95与ISO/IEC 10731有何区别?
答:ISO/IEC 10731(OSI服务定义约定)是更通用的服务定义框架(包括服务原语的一般概念、服务类别等),适用于所有OSI层次;而ISO/IEC 10728-95专门针对应用层,提供了更具体的服务原语类型、时序模型和参数定义模板,并强调与ASN.1的直接结合。
问:ASDC标准现在还有实际使用价值吗?
答:是的。虽然纯OSI协议栈已较少部署,但ASDC定义的抽象服务方法被多个现代标准继承,例如ITU-T的Q系列信令协议、工业自动化中的OPC UA通信模型,以及部分军用数据链标准(如Link 16的J系列报文定义)仍采用类似原语约定。它也是学习服务化架构(SOA)和微服务接口设计原理的重要思想源泉。
问:使用ASDC定义服务时,必须使用ASN.1吗?
答:标准强烈推荐使用ASN.1,但未绝对禁止其他抽象语法。然而,若协议需要与OSI环境互操作,或需要引用其他OSI服务定义中的参数类型,则ASN.1几乎是唯一选择。对于非OSI环境,可参考其方法但不必完全绑定ASN.1。
问:2018年的确认意味着标准内容发生了变更吗?
答:不,2018年的确认审查(Review)表明标准的技术内容仍符合当前需求,无需修改或撤销。标准文本保持1995年版本不变,确认标签只表明ISO/IEC对其有效性进行了重新确认。加拿大CSA版本同样确认了该标准成为2018年版的国家标准。
本文版权归作者所有,2026年。任何转载或引用应保留此声明。
“