企业消息中间件技术规范

企业消息中间件技术规范
企业消息中间件技术规范

企业消息中间件技术规范

目录

1.消息中间件概述 (3)

1.1 支持的规范和技术 (3)

1.2 消息传输 (4)

1.3 应用管理 (8)

1.4 系统配置 (9)

1.5 安全与可靠性保障 (12)

1.消息中间件概述

消息中间件是一款标准、安全、高效、集成并具备丰富功能的医用级消息中间件,基于医用消息中间件,为省级人口健康信息平台、区域医疗数据中心、医院信息平台的建设提供了坚实的基础支撑。

消息中间件主要用于医疗领域在应用程序之间传递消息,使这些消息可以在不同的网络协议、不同的计算机系统和不同的应用软件之间传递。消息中间件通过内部的可靠队列传输机制,使数据可以快速、可靠地送达接送方,在传输期间能够应对网络故障、主机宕机等各种意外情况,做到断点续传,保证数据“一次传递、可靠达到”。

1.1 支持的规范和技术

?支持国标消息中间件软件产品技术规范(GB/T 28168-2011);

?具备良好的跨平台能力,应用编程接口(API)支持各种运行平台,如HP-UX、IBM AIX、SUN SOLARIS、WINDOWS 、Digital UNIX、

SGI、TRU UNIX、Linux等,支持64位操作系统,并且在各平台上的

API接口一致;

?支持多种通讯链路和网络环境,如以太网、SDH、DDN、X.25、帧中继FR、拨号网络、卫星网络等,能根据网络环境对传输效率提供优化;

?支持树形拓扑结构和网状拓扑结构的网络环境;

?持多种网络协议,如TCP/IP、NETBIOS、SNA等;

?支持C、C++、C#、JAVA开发语言,提供动态库、OCX、JAVA三种API模式;支持PB、VB、VC、Delphi等开发工具。

1.2 消息传输

消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件程序。

1)消息的组成和属性:我们把应用程序交由消息中间件传输的数据定义包装为消息,消息由消息头和消息体组成,消息头中定义了消息的属性信息,包含消息类型、消息唯一标识、消息发送时间、消息目的地、消息优先级、消息有效期、消息大小以及其他用户自定义属性等;消息体中包含消息内容或消息所传输文件的名称。

2)消息类型:支持数据包和文件两种类型消息的类型。并支持对大数据包、大文件的传输,传输数据的长度不小于2G,支持大型消息的自动分组传输和自动重组。

3)消息的传输:提供同步通讯、异步通讯及通知等通讯机制,支持实时响应的程序间通讯,也支持异步的程序间通讯,网络不能连通时仍然可以正常工作,不导致数据丢失和应用程序故障,支持树形拓扑结构和网状拓扑结构的网络环境。

4)提供点对点(P2P)的通讯方式进行消息的传输:点对点方式是最为传统和常见的通讯方式,它支持一对一、一对多两种配置方式。点对点方式允许应用程序通过队列这个虚拟通道来同步和异步接收消息,在这种方式中,消息生产者成为发送者,消息消费者成为接受者。发送者向队列发送一条消息,每个消息都包含具体队列的地址,接受者送队列中提取消息。队列将发送给他们的消息一直保留到消费或过期。这种方式只需按名字发送或接收数据,即可实现应用到应用间的跨越网络、平台的通讯,应用与底层网络相隔离,提高了应用系统的灵活

性。

图1点对点的方式

5)提供发布/订阅的通讯方式进行消息的传输:发布/订阅消息传输方式是指通过发布/订阅代理,为应用提供一种透明的信息发布和信息消费的框架。发布/订阅功能使消息的分发可以突破目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发,用户或应用程序可以根据主题或内容接收到所需要的消息。

消息的发布者只负责发布信息的收集,并通过一个公共“主题”来发布这个消息,消息的订阅者通过公共主题订阅需要的消息,当有订阅“主题”消息发布时,消息自动发送给订阅者。

图2发布/订阅方式

订阅和发布可实现一对多、多对一和多对多的消息传递方式,订阅者可以根据自己的需要订阅某些主题,然后在适当的时间从该主题上接收已经发布的消息。发布/订阅功能使得发送者和接收者之间的耦合关系变得更为松散,发送者不必关心接收者的目的地址,而接收者也不必关心消息的发送地址,而只是根据消息

的主题进行消息的收发。

6)消息队列:消息队列是消息的安全存放地,队列为构造以同步或异步方式实现的分布式应用提供了松耦合方法,消息队列的应用并不要求收和发送应用程序同时执行,消息可驻留在队列中,直到它们被应用程序读走。通过消息队列,应用程序可独立地执行,它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。

消息队列以下述方式工作:

a)程序A形成对消息队列系统的调用,此调用告知消息队列系统,消

息准备好了投向程序B;

b)消息队列系统发送此消息到程序B驻留处的系统,并将它放到程序

B的队列中;

c)适当时间后,程序B从它的队列中读此消息,并处理此信息。

系统支持用户可根据消息的用途的目的地,创建不同类型的队列,如:

a)接收队列或本地队列。物理队列,用于存储从异地节点通过网络传输

到本地,本地节点应用放入的消息。

b)发送队列。物理队列,用于存放网络发送出去的消息的队列。

c)事件队列。物理队列,用于存储系统事件消息,系统事件中包含由配

置中定义的事件触发消息、死信消息。

d)集群队列。逻辑队列,是一个包含多个物理队列的列表。

e)远程队列。逻辑队列,是远端节点的一个接受队列或远程队列在本地

节点的一个逻辑映射。

7)支持消息可靠传输。通过把消息保存在可靠队列(磁盘文件)中来保障

“可靠传输”,只有消息中间件接到接收方系统收到信息的确认之后,它才从传输队列中真正将该信息删除。消息在传输过程中,无论是系统停止、硬件断电、硬件异常、非正常关机还是网络意外中断等情况,消息都保留在消息队列中。

8)支持断点续传。在系统恢复后,消息将从传输失败点继续发送,而不是整个消息重新发送。这可以确保消息传输,并且是一次且仅一次的传递。

9)传输优先级管理。用户可以根据消息的紧急程度设置消息的优先级,高优先级的消息可以获得优先处理,有更多的发送机会。

10)连接通道管理。消息中间件能够根据用户的需要,适时地建立网络连接通道,当网络链路发生故障后,能够自动重建连接。

11)支持路由功能以及路由备份功能。当一条通道由出现故障时,可以通过备份留有达到接收方。

12)常连接和动态连接。支持应用节点间常连接和动态连接方式,常连接是指以预连接的方式建立传输通道,以减少因频繁建立/拆除连接所引起的系统开销和网络开销,并通过定时发送检测包来检测其通断情况。动态连接是在系统间有数据需要传输时,以实时建立连接的方式来建立传输通道,完成传输后自动关闭连接,以此来节约系统占用的网络资源,动态连接在有数据传输请求的情况下建立,没有数据要求传输时断开。

13)支持网络连接的多路复用。多个应用可通过一条连接收发消息数据。

14)支持传输流量控制。根据网络流量调整发送速率防止网络拥塞,网络质量较高的系统,可以调大流量配置,以充分利用网络带宽,网络质量较差的系统,可以相应调小流量控制配置,以减少对网络的传输压力。

15)自适应网络通信链路。支持根据网络状况,对网络链路进行自适应调节

和补充,从而能够更好地适应不同环境下通信的需要,节省系统资源和提高传输效率。

16)支持压缩传输。支持消息传输过程中的自动压缩与解压,以减轻对网络传输的压力。

17)消息生命周期管理。提供消息生命周期管理机制,以便系统及时处置过期消息,释放占用的系统资源,防止失效消息占用资源,保证整个系统的运行效率。

18)支持对消息的事务管理。提供对消息的事务管理,包括发送方事务和接收方事务,多个消息发送和接受可包含在一个事务里,系统保证事务中的所有消息发送和消息接受的操作同时成功或同时失败。失败的消息接收操作会将消息回退到队列中,等待下次的处理。

19)支持事件功能。事件提供了对关心的异常和系统状态的处理,如消息事件、连接事件、应用事件等。事件可由用户通过配置来定义,由事件触发产生的消息,称为事件消息。

20)支持JMS。支持通过JMS,进行消息的发送与接收。

1.3 应用管理

消息中间件支持对应用程序的调度和管理,可以在进程/线程总数、每类应用程序总数和调度策略上进行控制,防止对主机资源的过度使用导致主机处理性能下降。

支持以下几类应用程序定义和管理:客户程序、触发程序、周期程序、定时程序。

a)触发程序:支持事件驱动机制,在触发条件满足时,唤醒应用程序的

执行,即应用程序不必总是在运行中的。当第一个或第几个信息到达

一个指定的队列时,一个应用可以有选择的被触发起来。

b)周期程序:这类程序是按照系统设定的周期进行周期性运行。

c)定时程序:这类程序是按照系统设定的固定时间进行运行。

1.4 系统配置

1)监控与管理

消息中间件提供远程统一监控和管理工具,支持从一个统一入口监控多个远程系统的运行,实现对本地和其它远程节点消息中间件、消息及应用状态进行远程监控和管理。

通过监控画面,系统管理员可以及时地发现网络故障及系统运行的异常情况,通过系统提供的相关工具进行处理。可以在运行过程中,对节点的通讯状态进行控制,可以打开或关闭某些节点,可以改变某些节点的连接关系。

监控管理工具能够灵活地部署在用户选择的计算机系统上。监控管理实现的具体功能包括:

a)实时查看个消息中间件节点的运行状态;

b)动态地修改系统配置及相关运行参数;

c)查看各队列中消息的传输情况;

d)对所监控的对象进行启动、停止或删除等管理操作。

2)日志管理

消息中间件系统提供完善的日志管理功能。运行过程中自动生成日志文件系

统,登记系统的日常运行信息、传输的数据包和文件信息、系统出错提示等。

日志级别可以配置,级别越高,记录的数据越详细,可以产生多种日志,如系统日志、数据包日志等。

日志可用于对系统的运行状态进行监控,也可用于对系统的运行情况进行审计、故障处理、系统开发调试跟踪。消息中间件系统的警告功能可以及时显示在管理台、日志文件中,便于用户的查看的和问题定位。系统提供如下的日志管理功能:

a)提供调试开关的功能,使用户能够根据需要及时调节系统的核心,提

高效率和可靠性;

b)提供日志定时清理和磁盘空间管理功能;

c)提供日志的查询和管理功能;

d)动态修改日志的等级,便于用户的排错。

3)动态修改节点

为了支持关键业务对7*24小时不间断运行的需求,消息中间件支持在系统不停机重启的情况下动态增加应用节点和修改节点配置,能够根据应用规模或数据规模的增长,通过不断地调整系统的各项参数或不断增加新的服务器去满足这种需求。具体包括:

a)动态增加应用节点;

b)动态修改节点的运行参数;

c)动态修改队列的个数;

d)动态修改客户端连接的个数限制;

e)动态扩充系统中应用的数量。

4)支持服务节点的集群,支持集群的负载均衡。

当服务中心业务量增加时,可以通过多台机器形成集群共同承担服务处理工作。集群中的每个节点都是一个单独的服务器,运行自己的服务。节点之间可以相互通信,而在客户看来,它好像只是在与一个单独的系统交互。

集群提供消息的接收和处理分布到若干个节点上的机制,支持防止单点失效和负载均衡两类使用方式:

a)防止单点失效:当消息中间件集群中的某个节点出现故障时,集群系

统可以自动选择其他子系统来完成消息的传输;

b)负载均衡:当消息中间件系统希望在多个节点或多个队列上分摊消

息处理的压力时,可以选择负载均衡功能,消息发送到集群队列后,

会根据系统设置的权重按照比例将消息分发到不同的队列中。

集群内节点的数量可以根据需要动态调整。集群提供了单个服务器无法提供的优点:(1) 缩短系统由于单个服务器失效而导致的停工时间;(2) 保证消息服务器的可用性;(3) 庞大的客户数量;(4) 通过负载平衡提高系统的效率。

集群的实现:集群由配置管理来创建,在集群里,有一个以上的服务器实例在运行,并这些实例可以运行在相同的主机,或是分布在网络上。集群的实现方式采用主/从方式。这种集群方式易于理解。"主"和"从"都是相对消息而言的。所谓"主"是指某个服务器是某几类消息发布用的服务器;"从"是指该服务器对某几类消息起着路由转发的作用,服务器本身也作为这些消息的消费者。我们通过发布/订阅方式解决集群的一个重要问题:发现和查询,即如何查找集群的其它节点并从它们访问更深的节点信息,以及如何保持这些信息是最新的。服务器节点在消息中存储它们的集群信息,该信息用XML来描述,其他节点可以订阅这个

数据。如果需要的话,一个服务器可以作为"命名服务"运行,维护所有可用服务器实例的信息。

1.5 安全与可靠性保障

安全性保障。消息中间件提供多层次安全服务功能,以保障信息安全。具体包括:

a)提供中间件节点间的身份鉴别;

b)提供数据包在传输层的加解密;

c)提供对整个消息进行加解密;

d)支持中间件节点间的SSL安全连接,支持SSL3.0安全传输协议;

e)支持第三方安全接口,可以外挂加密算法,支持与PKI产品结合使

用,完成数据的加密、电子签名等。

可靠性保障。消息中间件通过以下手段保障系统可靠性:

a)核心进程的自动恢复:消息中间件系统提供核心进程自检功能,当有

程序异常终止时,系统可以检测并自行重新启动该进程;

b)消息的自动恢复:消息中间件系统通过把消息保存在可靠队列(磁盘

文件)中来保障“可靠传输”,只有消息中间件接到接收方系统收到

信息的确认之后,它才从传输队列中真正将该信息删除。消息在传输

过程中,无论是系统停止、硬件断电、硬件异常、非正常关机还是网

络意外中断等情况,消息都保留在消息队列中以保障消息不丢失。

c)防止单系统失效:通过集群功能,防止单系统失效后消息不能传输;

d)路由备份:提供路由备份功能,当一条路出现问题时,通过备份路由

到达接收方。

e)效率保障:通过传输流量控制和自适应网络通信链路来节约系统资

源,保障消息高效传输。

相关主题
相关文档
最新文档