基于体域网的医疗服务中间件系统设计*

2015-07-07 15:42陆锐杰曾碧
自动化与信息工程 2015年3期
关键词:中间件队列消息

陆锐杰 曾碧

(广东工业大学计算机学院)

基于体域网的医疗服务中间件系统设计*

陆锐杰 曾碧

(广东工业大学计算机学院)

根据体域网的数据特点,以远程医疗监护为目的,提出医疗服务中间件系统。设计一个透明、高效的消息处理中间件,并将消息中间件与服务器集群技术相结合,为远程医疗监护搭建一个大数据监测和分析处理平台,对促进大数据技术在远程医疗监护中的应用具有重要意义。

无线体域网;远程医疗监护;中间件

0 引言

随着许多国家人口老龄化和医疗保健成本的不断上升,当前的医疗保健服务已经无法满足需求,医疗保健服务的升级刻不容缓[1]。传统的医疗保健系统采用固定的医疗装置和有线连接,不仅影响病人的日常生活,而且需要昂贵的医疗设备成本和维护成本。此外,当前的医疗保健系统还难以实现一些疾病的早期预防和长期观察。为此,一种新型的网络—无线体域网(wireless body area network,WBAN)被提出来[2]。作为无线传感网(wireless sensor network,WSN)的一个重要组成部分,WBAN可给人们日常生活的各个方面提供支持。特别在医疗保健领域,它可在任何时间、任何地点对人体的生理情况进行持续、实时、非接触的监测,为远程医疗监护提供可能,显著提高医疗保健的质量。

目前,已有很多学者提出软件中间件的多种实现方式,但针对体域网数据特点的不多。如Agustinus Borgy Waluyo等针对体域网的终端节点,设计一个多传感器并存、可插拔的中间件[3];Abousharkh Maha等设计一个面向服务的中间件架构[4]等。这些研究侧重于终端节点的功能和服务,较少涉及服务器平台的搭建。

随着人们的需求日益增长,服务器的负载将越来越沉重。因此,本文基于服务器对大规模数据的处理,提出医疗服务中间件系统,给出系统的总体架构、服务器与客户端的通讯架构和逻辑架构,并以远程医疗监护为目的,设计了一个透明、高效的消息处理器。

1 医疗服务中间件系统

一般WBAN的系统架构主要由3部分构成[5]:

1) 传感器节点,分布在人体上或体内,采集人体的各种体征信息,并将采集数据传送到个人终端;

2) 个人终端,接收各个传感器节点传来的数据,进行初步筛选和处理,并将数据转换成指定的格式打包后发送到外部网络;

3) 外部网络,负责接收个人终端发来的数据包,进行解析、存储,对个人数据进行分析,并提供各种远程医疗服务,包括健康评价、紧急通报等。

本文提出的医疗服务中间件系统总体架构如图1所示。与一般医疗服务系统的不同点在于:医疗服务中间件系统在收到个人终端发来的数据包后,对数据包进行解析并对数据进行转换;根据不同的数据内容投递到不同的中心和服务。这样既保证了各中心和服务的功能独立性,又保证了数据传递的灵活性。

客户端与服务器的通信架构如图2所示。客户端即个人终端,根据中间件服务器所提供的API,通过网络(WiFi、3G、4G、GPRS等无线网络及其他有线网络),将数据包传送到中间件服务器;中间件服务器对接收到的数据包进行消息处理、数据转换等,然后根据数据内容的不同需求,投递到不同的处理中心/部门;信息中心根据自身部门的要求,分别处理从中间件服务器接收到的数据。

图1 医疗服务中间件系统总体架构图

图2 客户端与服务器的通信架构

客户端、服务器和信息中心之间的通信是双向的,即信息中心可以对中间件服务器发送指令,以获取其所需的服务或数据;客户端也可以从中间件服务器获取个人信息以及订阅相关服务。

对大规模个人终端不断传来的数据包,单台服务器无法负载,因此医疗服务中间件系统采用多台服务器集群进行部署。为确保少数服务器失效时不影响客户端的正常工作,客户端发现当前连接的服务器长时间没有响应时,需及时连接到另一台正常工作的服务器。同时,每台服务器可以与上层的各种服务、应用进行通信,医疗服务中间件系统逻辑架构如图3所示。为使服务器集群负载均衡,采用服务器负载均衡的各类算法(轮循、联机数量等)作为平衡原则,将负载合理分配到集群中的每台服务器。

图3 医疗服务中间件系统逻辑架构

2 中间件系统设计要点

医疗服务中间件系统的设计目标是实时进行大规模的消息通信、数据交换,并具备较高的系统性能。体域网的个人终端节点只需通过医疗服务中间件系统开放的API就能直接、透明地进行消息通信;其余互联网设备(手机、计算机等)也可以通过医疗服务中间件系统开放的API进行消息通信和数据交换,以获得所需的内容。这不仅实现了体域网中设备间的透明通信,同时大大简化了体域网应用系统的开发环节,降低开发成本。

医疗服务中间件系统的关键点:

1) 高性能,远程医疗监护的特点决定了WBAN的个人终端,需不断地采集人体的体征信息,虽然个人终端会对数据进行初步的过滤筛选,但是数据量还是很大。假设1个个人终端平均每秒采集并处理的数据量是1 kB,那么1天产生的数据量就达86400 kB。大量个人终端产生的数据量对服务器的性能提出更高的要求。因此,单台服务器能多线程处理多个个人终端的请求;整个服务器集群能提供良好的自动负载均衡功能。

2) 透明性,个人终端以及信息中心只需根据自身的需求,调用医疗服务中间件系统提供的API,便可直接、透明地进行消息通信、数据交换,无需了解整个信息传递的过程。

3) 可靠性,个人终端与服务器主要通过无线网络通信,而无线网络由于自身的原因,无法保证高可靠的通信,对于远程医疗监护系统,这是致命的。因此,医疗服务中间件系统必须同时支持同步与异步2种方式的消息传送,并在特定的情况下能够消息重发。

3 消息处理器设计

3.1 消息处理器功能及架构

一般来说,应用程序之间的通信是通过进程间的通信完成,在不同进程间传递交换的信息,统称为消息,它是进程间通信、数据交换的最基本单位。消息通常由消息描述符和消息体2部分组成:

1) 消息描述符用来描述消息的特征属性,如消息的源地址、目的地址、消息类型、生命周期、优先级等;

2) 消息体是应用程序提供的数据,如终端采集到的人体体征信息数据、会诊中心生成的人体健康评估报告等。在某些特殊情况下,消息体可以为空。

对医疗服务中间件系统而言,消息处理器是最重要的核心。消息处理器设计的好坏,直接影响整个系统的性能。消息处理器的总体架构图如图4所示。

图4 消息处理器的总体架构图

由图4可知,终端应用程序和服务器应用程序间的通信,通过消息中间件完成。当终端应用程序将需要发送的消息交付给消息中间件后,消息中间件把消息缓存到发送队列中,由专门负责发送消息的线程,根据消息描述符,将消息发送到服务器端。在服务器端的消息中间件中,当专门负责接收消息的线程接收到新消息时,会将消息缓存到接收队列中,并等待服务器的应用程序提取消息,以进行进一步处理。同样,终端的应用程序可以使用消息中间件接收来自服务器应用程序的消息。

由于计算机与网络不是绝对可靠,计算机的硬件、软件故障和网络丢包等,都会影响消息处理器的正常工作。因此,需对消息处理器的功能进一步设计。

3.2 消息处理器的详细设计

消息队列实际上是一个缓存区,发送队列中可以缓存多条待发送消息,而接收队列中可以缓存多条待处理消息。为使消息处理器能够正常工作,保证整个医疗服务中间件系统的可靠性,在队列的基础上,对消息进行更为深入的设计。

1) 请求/应答消息的应用,以目前的计算机技术,消息不一定能完全准确无误地送达目的地。因此,请求/应答消息的使用非常必要。如消息发送方发送一条消息给消息接收方,接收方在收到该消息后,给发送方返回一条应答消息,表示已经收到,发送方收到应答消息后,可将该消息从发送队列中移除;如果发送方一直等不到应答消息,则重发该消息,这样可保证消息成功投递。

2) 消息的优先级,队列里的消息一般按先进先出的机制处理,消息之间没有优先级差别。但在远程医疗监护系统中,会有紧急情况。为使紧急消息能够优先发送,必须对消息进行分级,以确保高优先级的消息被优先处理。

3) 消息的持久性和队列的深度,假设当前队列中有些重要消息必须送达,程序刚好出现故障,这些重要消息可能永久丢失。为避免出现这种情况,对于重要消息,消息处理器需备份保存。队列的深度是允许缓存的最多消息条数。程序运行过程中可能出现满队列的情况,因此需要监视队列的使用率,在使用率较高时,减少消息的接收。

消息处理器的工作流程图如图5所示。

图5 消息处理器的工作流程图

1) 本地应用程序对需要传送的消息属性进行设置(目的地、优先级等),并发送给消息中间件;

2) 消息中间件接收到消息,根据消息的消息头,对该消息的属性进行设置,并将该消息缓存到对应的发送队列中,如果该消息需要备份,则为该消息保存一份副本;

3) 本地消息中间件的通道代理根据消息的优先级和先进先出的原则,从发送队列中选取出最适合的消息,根据消息的目的地进行消息投递;

4) 远程消息中间件的通道代理在接收到消息后,返回终端一个投递成功的应答消息。同时根据消息头,设置该消息属性,并将消息缓存到相对应的接收队列中,如果该消息需要备份,则为该消息保存一份副本;本地消息中间件的通道代理在收到应答消息后,将该消息从发送队列中移除,如果有备份,也一并删除;

5) 远程消息中间件从接收队列里提取消息,通过中间件接口将消息投递给远程应用程序,如果有备份,则一并删除。

6) 远程的应用程序从中间件接口处获取消息,进行后续的处理。

4 结语

如何对大规模的人体体征数据进行存储、监测、分析是大数据时代的一个重要研究内容。本文提出的医疗服务中间件系统,将消息中间件与服务器集群技术相结合,给出了系统的总体架构、服务器与客户端的通讯架构和逻辑架构,并根据体域网的特点,设计一个透明、高性能、高可靠性的消息处理器,为远程医疗监护提供了一个更可靠的平台。随着社会的不断发展,技术的不断更新,远程医疗监护将在未来变得越来越重要。

[1] 邓世洲,高伟东,胡炜,等.无线体域网技术研究现状与展望[J].传感器与微系统,2014,33(11):1-4,8.

[2] Wang Changhong, Wang Qiang, Shi Shunzhong. A distributed wireless body area network for medical supervision[C]// Instrumentation and Measurement Technology Conference (I2MTC), 2012 IEEE International. IEEE, 2012: 2612-2616.

[3] Waluyo A B, Ying S, Pek I, et al. Middleware for wireless medical body area network[C]//Biomedical Circuits and Systems Conference, 2007. BIOCAS 2007. IEEE, 2007: 183-186.

[4] Abousharkh Maha, Mouftah Hussein. A SOA-based middleware for WBAN[C]//Medical Measurements and Applications Proceedings (MeMeA), 2011 IEEE International Workshop on. IEEE, 2011: 257-260.

[5] 刘璐,薛秀芹,罗先露,等.无线体域网的体系结构及面临的挑战[J].电脑知识与技术,2012,8(29):6918-6920.

Design of the Medical Services Middleware System Based on BSNs

Lu Ruijie Zeng Bi
(School of Computer, Guangdong University of Technology)

This paper proposes a medical service middleware system. According to the data characteristics of the wireless body area network, for the purpose of remote medical monitoring, a transparent and efficient message processing middleware is designed in this system. This system, combined the message middleware technology and the server cluster technology, also builds a big data monitoring and analysis platform for remote medical monitoring.

WBAN; Remote Patient Monitoring; Middleware

陆锐杰,男,1989年生,硕士研究生,主要研究方向:嵌入式物联网技术。E-mail: luruijie@qq.com

国家自然科学基金项目(项目编号61300107)

曾碧,女,1963年生,教授,主要研究方向:嵌入式物联网技术,移动计算。

猜你喜欢
中间件队列消息
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
一张图看5G消息
在队列里
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
消息
消息
消息