企业消息中间件技术规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
企业消息中间件技术规范
目录
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)自适应网络通信链路。支持根据网络状况,对网络链路进行自适应调节