1、道昌ICS 35.060 L 74 共和国国家标准中华人民GB/T 28168-2011 消息中间件技术规范中间件信息技术Information technology-Specification for message-oriented middleware 2012-06-01实施2011-12-30发布发布中华人民共和国国家质量监督检验检菇总局中国国家标准化管理委员会起制制嚣份叫Ehu内V-J-ibif 响wm川叩归。ldw川WF肌cf插GB/T 28168-2011 目次前言.皿1 范围-2 规范性引用文件3 术语和定义、缩略语3. 1 术语和定义-3.2 缩略语4 消息中间件的架构和组
2、成4. 1 消息中间件架构4.2 服务子系统-4. 3 监控管理子系统4.4 应用开发子系统5 功能要求.5. 1 综述.5.2 服务子系统属性.5.3 监控与管理.10 5.4 应用开发子系统6 消息中间件的部署模式及拓扑结构6. 1 部署模式.6.2 拓扑结构.12 7 质量特性属性.12 7.1 易用性.12 7.2 可靠性.7.3 效率.13 7.4 可维护性.7.5 可移植性.14 8 支持的运行环境.14 8.1 硬件体系结构.14 8.2 操作系统.14 8.3 网络通信协议.14 8.4 Java运行环境 u 附录A(资料性附录)消息中间件产品示例I GB/T 28168-20
3、11 剧吕本标准按照GB/T1. 1-2009给出的规则起草。请注意本文件的某些内容可能涉及专利,本文件的发布机构不承担识别这些专利的责任。本标准由全国信息技术标准化技术委员会(SAC/TC28)提出并归口。本标准起草单位:东方通科技发展有限责任公司、中国电子技术标准化研究所、北京航空航天大学、中国科学院软件研究所、金蝶中间件有限公司、中创软件商用中间件股份有限公司、北京中和威软件有限公司、北京赛迪时代信息产业股份有限公司。本标准主要起草人:马新群、任宇、李海波、陈志峰、朱律琦、宁凯、张红艳。皿GB/T 28168-2011 信息技术中间件消息中间件技术规范1 范围本标准规定了消息中间件的架构
4、及组成、功能要求、质量特性要求及支持的运行环境等。本标准适用于消息中间件软件的开发和应用。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 11457-2006 信息技术软件工程术语Java消息服务规范v1. 1 (J ava Message Service Specification, v 1. 1) 3 术语和定义、缩暗语3. 1 术语和定义GB/T 11457-2006中界定的以及下列术语和定义适用于本文件。3. 1. 1 应用application 应用
5、程序通过调用开发接口,在运行过程中使用中间件系统提供功能和服务的各种程序。3.1.2 消息message 不同的应用程序(进程或线程)之间传递或交换的信息。注=消息的格式及内容,由该消息的提供者及接收者协商而定。3. 1. 3 消息的发送者message sender 产生消息的应用程序。3. 1.4 消息的接收者m四sagereceiver 接收消息的应用程序。3. 1.5 队列queue 存储消息的缓冲区实体。注:队列由消息索引区和数据存储区组成。3.1.6 消息中间件系统message-oriented middleware system 存在于物理机器上的一套消息中间件软件运行系统,包
6、含一组程序和应用开发接口CAPD。1 G/T 28168-2011 3. 1. 7 消息优先级message priority 根据消息的紧急程度,为消息设置的等级。消息可以有不同的优先级。在消息的发送中,高优先级的消息可以得到优先处理。3. 1.8 单消息single message 消息中间件中传输的一条单一消息。3. 1. 9 组消息group message 消息中间件中传输的一系列带有先后顺序的消息的组合。注:组消息由多个单消息组合而成,在处理时相当于一个消息。组消息中的单个消息,称为子消息。3. 1. 10 Java消息服务Java Message Ser叫ce;JMS使用基于点到
7、点或者发布f订阅的交互方式,遵从J2EE技术规范并实现异步消息传输的消息服务系统。3. 1. 11 消息有效期ex:piry of message 产生消息时,应用设定的消息属性,表示消息可在队列中存放的最长时间。3. 1. 12 消息生存期Iifecycle of m臼皿ge消息从进入队列到该消息被接收者取出或被删除的时间段。3. 1. 13 死信dead letter 进入队列但不能完成传递过程的消息。注:如目的队列不存在的消息或有效期时间到的消息等a3. 1. 14 事件event 消息中间件系统在消息的传递过程中产生的动作。注:事件可由用户通过配置来定义。由事件触发产生的消息,称为事件
8、消息。3. 1. 15 集群cluster 若干消息中间件系统组建为一个群组,对外提供消息的发送、接收和处理功能,宜具备负载均衡和防止单点失效的功能。3. 1. 16 主题topic 一种向多个消息订阅者分发消息的机制。发布者根据指定的主题名发布消息,订阅者通过主题订阅消息。注:主题使得订阅者和发布者保持互相独立,不需要接触即可保证消息的传送。3.2 缩略语2 API TCPjIP HTTP 应用编程接口(ApplicationProgramming Interface) 传输控制协议/因特网协议(TransferControl Protocol/lnternet Protocol) 超文本传
9、输协议(HypertextTransfer Protocol) JDK Java EE J2EE SSL Java开发工具包(Java Development Kit) Java 企业版(JavaEnterprise Edition) Java 2企业版(Java2 Enterprise Edition) 安全套接层(SecureSockets Layer) 4 消息中间件的架构和组成4. 1 消息中间件架构G/T 28168-2011 消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。消息中间件一般由服务子系统、监控管理子系统、应用开发
10、子系统三部分组成(参见附录A)。其架构如图l所示:服务子系统图1消息中间件架构消息中间件的组成功能如下za) 服务子系统是消息中间件的核心运行实体,提供消息传输、存储等功能;b) 监控管理子系统是消息中间件的用户操作人口,提供对服务子系统监控、管理的功能;c) 应用开发子系统是消息中间件提供给用户进行应用程序开发的接口库。4.2 服务子系统服务子系统由图2所示各功能模块组成z核心进程管理应用消息事件事务队列日志安全程序管理管理管理管理管理管理管理网络传输圄2消息中间件的服务子系统4.2. 1 核心进程管理负责对整个系统的运行情况进行监控,报告、诊断和排除各种错误。它能够及时掌握各核心进程的运行
11、情况,当某个进程出现问题时,可以及时监测到并进行修复或报警。3 GB/T 28168-2011 4.2.2 网络传输消息中间件应提供在异构计算机系统间的数据传输,且这种传输是实时和可靠的。参与消息传递的消息中间件节点,可以是位于同一计算机系统中的节点,也可以是位于不同计算机系统中的节点。消息中间件应能屏蔽计算机硬件和物理网络的差别,使得节点间逻辑关系的建立与硬件和网络元关。4.2.3 应用程序管理消息中间件应提供对应用程序的灵活管理,包括启动、停止、监控和管理,并提供如下应用程序的启动方式:a) 随系统启动而触发;b) 应根据用户设定的规则,如当队列中的消息积存到一定阔值时,启动应用程序去接收
12、消息,以避免和减少在队列中没有消息时,应用进行消息获取的元效操作,保证应用及时准确地获得消息,提高应用处理的能力;c) 定时启动。4.2.4 消息管理消息中间件的服务子系统应对队列中的消息进行管理,在消息进入队列、网络发送、网络接收、从队列中接收的过程中,能够对消息的有效期进行检测,自动丢弃有效期到期的消息。消息进入队列后,出现故障造成无法传递时,该消息将被丢弃或处置,消息将结束其生存期。4.2.5 事件管理消息中间件应能根据用户定义的事件,适时产生事件消息,并允许用户通过调用应用接口进行查看和接收,及时了解系统运行中消息发送、接收的情况。4.2.6 事务管理消息中间件应提供消息的事务管理。多
13、个消息发送和接收可包含在一个事务里,系统保证一个事务中的所有消息发送和消息接收的操作同时成功,或同时失败。失败的消息接收操作会将消息回退到队列中,等待下次的处理。4.2.7 队到管理队列是消息的载体,消息中间件应提供对队列的静态和动态的配置、创建、更新和删除F允许用户根据需要,在应用运行过程中,调用应用开发接口来创建临时队列,使用完毕后,清除该队列。4.2.8 日志管理为便于用户对系统运行状态的了解和问题的定位,应提供完整的日志功能,通过日志可以查看系统的运行情况,并可以排除系统中出现的错误。日志记录级别及日志文件的大小都可以根据用户需求灵活配置,用户进行系统调试时,日志级别可以设置得较高,以
14、详细记录系统传输的信息,当系统稳定运行后,日志级别可以相应调低,以减少日志记录对资源的占用。4.2.9 安全管理消息中间件宜提供安全管理功能。安全管理包括消息中间件的节点间身份认证、传递消息的网络4 GB/T 28168-2011 连接认证、消息传输的加密等。消息中间件可提供可定制的安全功能实现,来满足应用特定的安全要求。可提供消息层、传输层、网络层的安全实现。4.3 监控管理子系统监控管理子系统是实现对消息中间件及相关应用进行配置、监控、启动、停止及管理的模块。管理工具应对系统对象进行动态管理和控制,以达到对系统运行规模进行调控、节省系统资源、提高效率的目的。宜提供集中监控和管理功能,通过一
15、个统一入口,对所有消息中间件节点进行监控和管理。4.4 应用开发子系统应用开发子系统是供开发人员进行基于消息中间件开发应用系统的编程接口。开发人员利用应用开发子系统,能够完成消息的传递和系统的维护管理。应用开发子系统应提供对多种计算机语言、开发工具和开发环境的支持,以方便应用的开发和部署。a) 提供C、C#、c+和Java语言的应用开发接口;b) 提供符合Java消息传输规范(JMS)的Java语言开发接口;c) 提供可供可视化开发工具使用的Win32应用开发接口。5 功能要求5. 1 综述本章从服务子系统、监控与管理、应用开发子系统3个方面,对消息中间件的功能要求进行了规定。5.2 服务子系
16、统属性5.2. 1 消息组成及属性5. 2. 1. 1 消息组成消息应由消息头和消息体组成。消息头中定义了消息的属性信息,包含消息类型、消息唯一标识、消息目的地、消息优先级、消息有效期、消息大小、用户自定义属性等信息;消息体中包含消息内容或消息所传输文件的名称。通过消息属性,可以获得消息的相关信息,也可以来控制消息。5.2. 1. 2 消息类型按照消息体的存储方式,应分为缓冲区消息和文件消息,缓冲区消息中存储缓冲区的内容,文件消息中存储文件的名称。5.2. 1. 3 消息唯一标识消息标识,可由应用设定,如果应用没有设定,应由消息中间件自动产生。消息的标识应保证消息在全网内的唯一性。5.2. 1
17、. 4 消息目的地发送消息时,应可以指定该消息的目的地。目的地可以是当前中间件系统节点,也可以是当前中间件系统相邻的节点,还可以是和当前节点不相邻的节点。5 GB/T 28168-2011 5.2. 1. 5 消息目标队到发送消息时需要指定的目标队列。5.2. 1. 6 消息优先级应提供根据消息的紧急程度,为所发送的消息设置优先级的功能。一般情况下,高优先级的消息具有更多的发送机会。5.2.1.7 消息有效期应提供消息有效期控制的机制,丢弃或处置过期消息,释放占用的系统资源,保证整个系统的运行效率。有效期控制机制应不受发送方、接收方时钟不一致的影响。5.2. 1. 8 消息大小消息中间件通过该
18、属性,获知消息的大小或设定发送消息的尺寸。5.2. 1.9 消息的自定义属性消息中间件应提供消息自定义属性的功能,允许用户根据业务的需要和属性规则设定自定义属性信息。接收消息时,自定义属性可用于过滤消息,来接收和应用指定的自定义属性及属性值相匹配的消息。5.2.2 消息分组消息中间件应提供消息分组功能。组消息在消息中间件中,是作为一个整体来处理的。消息组中的消息是按照先后顺序进行发送和接收的。5.2.3 消息的持久性按照消息的持久性,消息中间件系统应提供对持久性消息和非持久性消息的支持。当系统发生故障时,非持久性消息被丢弃;持久性消息进行保存,并在系统重新启动后恢复。系统正常运行时,在消息的有
19、效期内,系统保证持久性和非持久性消息不会丢失。5.2.4 消息的传输控制5.2.4. 1 消息传输的唯一性消息进入队列后,消息中间件负责传输。在目标节点可达的情况下,应保证消息能送达目的地,且该消息的传输是不重复的。5.2.4.2 多种消息的传输方式消息中间件系统应提供点到点、路由转发和发布/订阅等多种消息传输方式。5.2.4.2. 1 点到点消息传输点到点消息传输是指需要进行消息传输的两方直接建立传输通道,进行消息传输的方式,如图36 GB/T 28168-2011 所示:图3点到点消息传输5.2.4.2.2 路由转发消息传输路由转发消息传输是指消息中间件支持在不相邻的系统间传输消息的方式,
20、如图4所示:图4路由转发消息传输两个不相邻的消息中间件间宜支持多条路由互为备份。当正在使用的路由发生故障时,可以自动切换到备份路由上,保证消息的正常连续传输。5.2.4.2.3 发布/订阅消息传输发布/订阅消息传输方式是指通过发布/订阅代理,为应用提供了一种透明的信息发布和信息消费的框架,如图5所示:消息的发布者只负责发布信息的收集,并通过一个公共主题来表示这个消息,消息的订阅者通过公共主题来订阅需要的消息,当有订阅主题的消息发布时,消息自动发送给订阅者。a) 订阅和发布可以实现一对多、多对一和多对多的消息传递方式;b) 订阅者可以根据自己的需要订阅某些主题,然后在适当的时间从该主题上接收已经
21、发布的消息。订阅者和发布者可以分布在一个消息中间件系统上,也可以分别分布在不同的系统上,分布在不同系统上的发布者和订阅者通过发布订阅代理间的网络进行消息传输。图5发布/订阅消息传输5.2.4.3 断点结传功能消息中间件系统应提供断点续传功能。消息在传输过程中,不论是系统停止、硬件断电、硬件异常、非正常关机还是网络意外中断等情况,消息都应仍保留在消息队列中,要保证消息没有丢失、内容完整,保证顺序,系统恢复后,消息将从传输失败点继续发送,而不是整个消息重新发送。7 GB/T 28168-2011 5.2.5 连接管理消息中间件应提供根据用户的需要,适时地建立网络连接通路的功能。当网络链路发生故障后
22、,能够自动重建连接。5.2.5. 1 常连接在消息中间件间以预连接的方式建立传输通道,以减少因频繁建立/拆除连接所引起的系统开销和网络开销,并通过定时发送检测包来检测其通断情况。5.2.5.2 按需连接在系统间有数据需要传输时,以实时建立连接的方式来建立传输通道,完成传输后自动关闭连接,以此来节约系统占用的网络资源。按需连接在有数据传输请求的情况下建立,没有数据要求传输时断开。5.2.5.3 多连接两个消息中间件系统间宜实现多条连接。用户可以通过配置来变更连接的数量,每条连接是同等的。5.2.6 事件管理系统应提供事件管理功能,使得用户能够通过配置来定义事件以便跟踪消息的传输情况,如消息是否已
23、经传输完成等。当用户定义的事件发生时,系统应自动产生事件消息,并按事件的配置对事件消息进行处理。事件功能也可以用来了解系统运行中出现的各种故障,以便进行及时处理。系统宜支持对消息人队列、消息网络发送飞消息网络接收飞消息出队列等活动中的事件定义,如,在消息网络发送活动中,可定义开始网络发送、结束网络发送等事件,来实现对消息传输的精确管理。5.2.7 性能管理5.2.7. 1 网络流量控制消息中间件宜提供流量控制功能。网络质量较高的系统,可以调大流量控制配置,以充分的利用网络带宽;网络质量较差的系统,可以相应调小流量控制配置,以减少对网络的传输压力。5.2.7.2 自适应网络通信链路消息中间件宜实
24、现网络通信链路的自适应机制。根据网络状况,对网络链路进行调节和补充,以适应不同的网络环境、硬件环境(内存、CPU)等,能够更好的适应不同环境下通信的需要,节省系统资源和提高传输效率。5.2.8 队到管理8 服务系统应支持用户根据消息的用途和目的地,创建如下不同类型的队列。如:a) 接收队列或本地队列。物理队列,用于存储从异地节点通过网络传输到本地、本地节点应用放人的消息。b) 事件队列。物理队列,用于存储系统事件消息。系统事件中包含由配置中定义的事件触发的消息、死信消息。GB/T 28168-2011 c) 发送队列。物理队列,用于存放网络发送出的消息的队列。d) 集群队列。逻辑队列,是一个包
25、含多个物理队列的列表。e) 远程队列。逻辑队列,是远端节点的一个接收队列或远程队列在本地节点的一个逻辑映射。5.2.9 集群集群(如图6所示),应提供消息的接收和处理分布到若干个消息中间件系统上的机制,应支持防止单点失效和负载均衡两类使用方式:a) 防止单点失效:当消息中间件集群中的某个子系统出现故障时,集群系统可以自动选择其他子系统来完成消息的传输;b) 负载均衡:当消息中间件系统希望在多个系统或多个队列上分摊消息处理的压力时,可以选择负载均衡功能,消息发送到集群队列后,会根据系统设置的权重按照比例将消息分发到不同的队列中。集群内消息中间件系统的数量应可以根据需要动态调整。图6集群5.2.
26、10 安全服务5.2. 10. 1 综述| 接峭| | 接收者| | 接收者| 消息中间件应提供安全服务功能,如中间件节点间的身份鉴别、中间件节点间的SSL安全连接、数据包在传输过程中的加密和压缩、应用程序连接到消息中间件的身份鉴别等。5.2.10.2 多层次的安全服务宜在网络层、通道层和应用层多层面提供安全服务。网络层安全服务提供消息中间件节点之间的身份鉴别;通道层提供数据包在传输层的加解密;应用层提供在应用层对整个消息进行加解密。5.2. 10.3 安全服务的实现消息中间件系统应提供默认的安全服务的功能实现,如提供跨网络层和通道层的SSL协议的安全管理。消息中间件可提供可定制的安全功能实现
27、,宜支持消息层、网络层、传输层的安全接口的定制za) 消息层接口,如消息的加密、压缩接口;b) 网络层接口,如建立网络连接的预处理接口、链路通道接口、后处理接口;9 GB/T 28168-2011 c) 传输层接口,如网络数据包的安全传输接口。5.2. 11 日志管理消息中间件系统应提供日志管理功能,运行过程中自动生成日志文件系统,登记系统的日常运行信息、传输的数据包和文件信息、系统出错提示等,日志级别应分多级,级别越高,记录的数据越详细。日志应可用于对系统的运行状态进行监控,亦可用于对系统的运行情况进行审计、故障处理、系统开发调试跟踪。用户可以通过调整系统配置参数,抑制日志中部分或全部信息的
28、输出。消息中间件系统的告警信息应能够及时显示在管理台、日志文件中,便于用户的查看和问题定位。应提供如下的日志管理措施:a) 提供调试开关的功能,使用户可以根据需要及时调节系统的核心,提高效率和可靠性Fb) 提供日志定时清理和磁盘空间管理功能;c) 提供日志的查询和管理功能;d) 动态修改日志的等级,便于用户的排错。5.2. 12 网络协议支持消息中间件应支持TCPjIP网络传输协议。宜支持HTTP超文本传输通信协议,以满足用户在Internet网络上传输的需求。5.2. 13 系统动态配置为了支持关键业务对7X24h不间断运行的要求,消息中间件应在系统不重新启动的情况下,可以实现:a) 动态修
29、改节点的运行参数;b) 动态修改队列的个数;c) 动态修改客户端连接的个数限制zd) 动态扩充系统中应用的数量。消息中间件系统应能根据应用规模或数据规模的增长,通过不断地调整系统的各项参数或不断增加新的服务器去满足这种需求,应在运行系统不停机的情况下进行。5.3 监控与管理5.3. 1 消息中间件系统宜提供本地、远程和集中监控和管理功能a) 本地监控。实现对本地消息中间件系统的监控和管理;b) 远程监控。实现对异地消息中间件系统的监控和管理;c) 集中监控。通过同一个统一人口,实现对全网内的所有消息中间件系统(含本地、远程系统)的监控和管理。可以从一个统一人口监控和管理多个远程系统的运行。5.
30、3.2 监控管理应能实现的功能a) 实时查看各消息中间件系统的运行状态zb) 动态地修改系统配置及相关运行参数;c) 查看各队列中消息的传输情况;d) 对所监控的对象进行启动、停止或删除等管理操作。消息中间件的监控和管理界面设计应直观、易懂。集中监控管理宜提供基于浏览器的操作方式,应10 能灵活地部署在用户选择的计算机系统上。5.4 应用开发子系统5.4. 1 综述GB/T 28168-2011 消息中间件应提供一组供用户用于开发的API包。消息中间件应提供C、C#、C十+和Java等接口,使用户可以使用多种计算机语言进行应用的开发。宜提供Win32应用开发接口库的实现。应用系统可以通过调用这
31、些接口实现消息的发送和接收、事件的获取、系统管理等功能,应用系统只需要关心业务处理逻辑,而不必关心复杂的底层网络传输。5.4.2 接口类型接口分为本地接口和远程接口两种类型。本地接口是用于和本地消息中间件系统运行在同一台机器上的应用系统,而远程接口是用于远端没有安装消息中间件的应用系统。应用系统可运行于安装有消息中间件的机器上,也可运行于没有消息中间件节点上。5.4.3 接口要求消息中间件系统在所有应用平台上提供一致的应用开发接口,以实现应用程序在不同平台上的迁移。消息中间件提供的应用开发接口宜包括C接口、C+十接口、C#接口、Win32 API、Java接口,Java接口中宜支持JMSvl.
32、 1规范和JNDI,以满足应用开发的标准化要求,并能与其他任何遵循JMSvl. 1 规范的应用系统或中间件产品进行无缝集成。5.4.3. 1 C、C+、C#语言接口要求提供消息的发送、接收、浏览、删除、状态查询、消息组、事务、发布/订阅接口。5.4.3.2 Java接口要求提供支持JDKl.4以上版本的消息的发送、接收、浏览、删除、状态查询、消息组、事务、发布/订阅接口。Java接口可参考JMS规范实现,支持JMSvl. 1以上版本:可在JMSvl. 1的基础上,进行必要的扩充,如文件消息、消息组等接口。5. 4. 3. 3 Win 32应用开发接口要求宜提供消息的发送、接收、浏览、删除、状态
33、查询、消息组、事务、发布/订阅的Win32应用开发接口,使得符合Win32 DLL调用标准的可视化开发工具能够通过该接口和消息中间件进行交互。6 消息中间件的部署模式及拓扑结构6. 1 部署模式6. 1. 1 单机单系统方式所有的应用程序均部署在同一台机器内,它们之间共用一个消息中间件运行系统进行消息的传递。GB/T 28168-2011 6. 1.2 单机多系统方式所有的应用程序均部署在同一台机器内,它们之间分别通过不同的消息中间件运行系统进行消息的传递。6. 1.3 多机多系统方式应用程序部署在网络的多台机器内,它们之间分别使用不同的消息中间件运行系统进行消息的传递。6. 1. 4 混合方
34、式应提供单机单系统方式、单机多系统方式及多机多系统方式的混合使用方式。6.2 拓扑结构消息中间件系统应能根据用户的业务和应用,支持任意构建拓扑结构,如既支持树型逻辑结构,又支持网状结构。消息中间件之间的部署关系,对业务和应用是透明的。7 质量特性属性7. 1 易用性7. 1. 1 产品手册消息中间件应提供完整的产品手册,保证产品手册与系统实际功能保持一致。产品手册应准确、清楚、易于学习和掌握。应包含以下内容za) 产品系统概述Fb) 产品安装说明;c) 产品配置及管理说明;d) 管理工具使用说明;e) 产品故障排除方法;f) 编程参考手册zg) 联机帮助。7. 1. 2 产晶可配置消息中间件的
35、子系统规模、队列数及每个队列中存放消息数据的空间大小应可以通过系统配置来定义。7.1.3 应用示例消息中间件应针对支持的开发语言,提供可供操作的应用示例包ta) C、C+、C:j:j:、Win32 API应用示例;b) Java应用示例;c) JMS应用示例。7. 1. 4 安装和卸载消息中间件的安装和卸载应提供简单明了的操作:12 GB/T 28168-2011 a) 消息中间件应提供Windows平台上的图形界面形式的安装和卸载程序,引导用户安装和卸载的全过程Fb) 消息中间件的安装和卸载,若需要Java运行环境,应支持操作系统所提供的Java运行环境或自带JDK等辅助工具;c) 简单易用
36、,提供默认的配置策略。7. 1. 5 启动和停止消息中间件应提供命令行方式启动和停止。7.2 可靠性7.2. 1 核心进程的自动恢复消息中间件系统提供核心进程自检功能。当有守护程序异常终止时,系统可以检测并自行重新启动该进程。7.2.2 消息的自动恢复消息中间件系统,不论是由于系统停止、硬件断电、硬件异常、非正常关机还是网络意外中断等情况,都应保证持久性消息不可丢失、内容完整,保证顺序,待故障排除后,消息将从传输失败点继续发送,而不是整个消息重新发送。7.2.3 防止单系统失效应实现集群功能,防止单个消息中间件系统失效后,消息不能传输。7.2.4 路由的备份宜实现备份路由功能。当一条路由出现故
37、障时,可以通过备份路由到达接收方。7.3 效率中间件系统应能充分利用计算机系统的处理能力、网络带宽等资源条件,以获得应用需要的高效率指标。消息中间件的效率指标可包括:a) 消息吞吐能力,指单位时间内,消息中间件能够处理的消息数量。可用在单位时间内发送、接收的消息数来衡量。b) 并发处理效率,可分为:1) 应用并发量,指系统能够支持的最大应用并发量;2) 资源利用率,指应用并发情况下,对CPU资源的最大占用量。c) 网络传输效率,可分为:1) 消息的网络传输效率,指单位时间内网络发送完成的消息数;2) 网络传输带宽利用率,是指中间件占用的网络带宽与网络可提供最大带宽的比率。在同等环境下,消息中间
38、件与FTP网络带宽利用率的对比可作为衡量消息中间件网络传输效率的指标。7.4 可维护性系统的可维护性,体现在:a) 提供动态或静态配置功能,使得在系统运行中或重新启动后,使用者能够改变系统的运行负载:GB/T 28168-2011 b) 提供详尽的日志记录系统;c) 提供用于故障排查、系统监控及管理的工具。7.5 可移植性消息中间件在不同的系统平台上提供的应用开发接口应保持一致性,保证应用程序在源码级的可迁移性。8 支持的运行环境8. 1 硬件体系结构应支持32位、64位的计算环境。8.2 操作系统应支持Windows、Unix和Linux等操作系统。8.3 网络通信协议应支持TCP/IP网络
39、通信协议,宜支持HTTP等通信协议。8.4 Java运行环境应支持JDKv 1. 4以上版本。14 GB/T 28168-2011 附录A(资料性附录)消息中间件产晶示例消息中间件的组成A.1 消息中间件由运行节点、监控管理中心、应用开发子系统三部分组成。组成结构如图A.l所示:监控管理中心代理进程应用开发子系统代理进程服务子系统节点A应用开发子系统消息中间件系统组成节点是在一台物理机器上的一套运行环境,主要由相关的配置文件、核心进程、队列、代理进程组成,提供基于队列的消息传输服务。监控管理中心是用来对节点进行配置和监控管理的平台,可提供集中式的远程管理,对所有节点的监控和管理可以通过一个操作
40、人口来完成。应用开发子系统是提供的一组API,应用开发人员使用它能够完成消息的传递和系统的维护管理。图A.1节点A.2 综述节点是由一个或一组服务子系统、配置文件、监控代理进程、系统运行监控进程组成,提供消息存储、传输、管理和控制服务。节点的组成结构如图A.2所示:15 A. 2.1 |-!il-Ill-4-网络lIll-llGB/T 28168-2011 发布订阅代理接收进程客户代理发送进程节点| 配置文件|节点的组成图A.2服务子系统服务子系统负责对一组队列进行管理和监控,消息发送、接收、通道维护等工作都由队列控制单元负责。一个节点可以根据系统的规模建立一个或多个服务子系统,以提高系统的管
41、理灵活度和消息的处理能力。服务子系统由配置文件、数据交换区、一组核心进程(发送进程、接收进程、监控进程)和一组代理进程(客户代理进程、发布/订阅代理进程)等组成。数据交换区用来进行应用系统及中间件核心之间的数据交换;监控管理进程负责消息在数据交换区中与队列之间进行传递,并负责监控队列中消息状态,根据情况向队列管理进程发出信号,以便队列管理进程对某些消息进行特殊操作F发送进程负责将消息从队列中取出发送到网络上;接收进程负责从网络上接收消息并放入队列;客户代理进程负责响应远程API的操作请求;发布/订阅代理负责提供发布/订阅代理服务;队列是消息的安全存放地,队列存储消息直到它被应用程序处理。A.2
42、.2 系统运行监控模块负责对整个系统的运行情况进行监控,并诊断、排除和报告各种错误。主要提供以下功能zu 监控各核心进程的运行状况,如当某个进程出现故障时,运行监控模块可以第一时间监测到,并进行修复;根据用户的配置对应用程序进行启动和管理,如当有消息到达时,能够及时触发和通知应用进行接收和处理。系统运行监控A.2.3 b) 远程监控代理监控代理作为节点与监控管理中心之间的桥梁,负责为监控管理中心收集和提供节点的各类配置信息、监控信息等,同时负责执行监控管理中心上的相关远程控制操作(如配置变更、消息清理),真正实现监控管理中心对节点的实时动态管理。A.2.4 监控管理中心监控管理中心是一套基于W
43、eb浏览器的、B/S架构的中间件系统及相关应用的集中监控管理平A.3 GB/T 28168-2011 台。它独立于节点运行环境,可以灵活地安装部署在专门的监控管理设备上。通过监控管理中心,可以实现的主要功能有:a) 对网络中所有节点的集中配置、监控、管理和维护等,能够大大提高系统的维护管理效率,降低系统维护成本;b) 实时查看节点的运行状态、队列中消息的传输情况;c) 可以动态地修改中间件系统配置及相关运行参数,并使其立即生效而无需重新启动系统;d) 提供对所监控的对象进行启动、停止、删除、清空等管理功能。A.4 应用开发子系统A. 4.1 综述提供对多种开发工具和开发环境的支持,提供C、C#
44、、c+、Java方式的接口,并支持JMSv1. 1 标准,方便了应用程序的开发。中间件的API接口分为本地接口和远程接口两种类型,本地接口是用于和节点运行在同一台机器上的应用系统,而远程接口是用于远端没有安装节点的应用系统。A.4.2 组成接口提供连接操作、队列控制单元操作、消息操作、组操作和事务控制等应用开发接口。主要接口包括:a) 连接操作接口。包括建立连接、拆除连接。建立连接是指连接到消息中间件的系统资源;拆除连接是指关闭到消息中间件系统资源的连接。b) 队列控制单元操作接口。包括打开队列控制单元、关闭队列控制单元。打开队列控制单元是指连接到队列控制单元的资源,并进行应用程序的控制;关闭
45、队列控制单元是指注销应用程序,并关闭到队列控制单元资源的连接。c) 消息操作接口。包括发送消息、删除消息、接收消息和确认消息。发送消息是指将消息存储进目标队列;删除消息是指从指定队列中删除符合条件的消息;接收消息是指从指定队列取得符合条件的消息,包含消息头及消息体;确认消息是指对接收过的消息进行确认(分提交和回滚两种),只有在接收消息指定为手工确认方式时有效。d) 组操作接口。包括组初始化、组提交、组回滚。组初始化是指开始一个组处理,登记组标识;组提交是指对具有当前组标识的消息进行提交,这其中包含缓冲区消息或文件消息;组回滚是指对具有当前组标识的消息进行回滚。e) 事务控制接口。包括事务初始化
46、、事务提交、事务回滚。事务初始化是指开始一个事务处理,登记事务标识;事务提交是指对当前事务中的所有消息进行提交,这其中包含缓冲区消息或文件消息;事务回滚是指对当前事务中的所有消息进行回滚。FFON|FNH阁。华人民共和国家标准中间件消息中间件技术规范GB/T 28168-2011 国中信息技术* 中国标准出版社出版发行北京市朝阳区和平里西街甲2号(100013)北京市西城区三里河北街16号(100045)网址总编室:(010)64275323发行中心:(010)51780235读者服务部:(010)68523946中国标准出版社秦皇岛印刷厂印刷各地新华书店经销* 开本880X 1230 1/16 印张1.5字数37千字2012年6月第一版2012年6月第一次印刷* 24.00元如有印装差错由本社发行中心调换版权专有侵权必究举报电话:(010)68510107定价书号:155066. 1-45083 GB/T 28168-2011 打印日期:2012年7月24日F002
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1