叶 蕾,黄庆藏,于明远,俞栋辉
(浙江工业大学 杭州 310023)
以往的医学信息集成和管理系统的研制都是面向局部单位或特定领域,限制了信息的共享和交流的范围。把整个网络看成一个虚拟的数据来源,在网络上获取更高质量的医学信息已成为人们的渴望。基于云计算技术的医学信息集成和管理方法为解决这些问题提供了新的思想。云计算[1]是网格计算、分布式计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物,旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统,并借助软件即服务、平台即服务、基础设施即服务等先进的商业模式把这强大的计算能力分布到终端用户手中。
本文提出一种基于云计算技术的医学信息集成方法,基于这种方法构建了一个医学信息集成原型(medical information integration based on cloud computing,CCMedII),并对该集成方法的有效性进行了验证。CCMedII用以实现离散的医学信息系统中各类异构医学数据信息的集成、共享、有效整合及应用;采用服务数据对象(SDO)的形式将各类异构医学数据封装为与平台无关的医学数据服务,有效屏蔽各类医学数据信息的异构性;利用云计算强大的分布式存储与运算能力,实现医学数据服务资源的有效整合及应用。
随着网络技术的发展,大量应用数据并不属于传统的数据库系统,对这些差异较大的资源进行集成成为亟待解决的新课题。目前这方面的研究集中在对Web数据和半结构化数据的处理[2]上。东南大学研制的Versatile[3]是一个基于CORBA的分布式异构数据源集成系统原型,旨在以“即插即用”方式集成来自不同数据源的数据。由于医学信息具有数据量大、复杂性高、资源多样等特点,使得医学信息集成与重用变得更加困难。云计算技术为医学信息的集成和管理带来新的技术支持。Hadoop[4]是Apache开源组织的一个分布式计算框架,可以在大量的硬件设备组成的集群上运行应用程序,旨在构建一个具有高可靠性和良好扩展性的分布式系统。VMware[5]能创建自我优化的IT基础构架,可以将离散的硬件资源统一起来以创建共享动态平台,同时实现内置可用性、安全性和可扩展性。Jerome Boulon等[6]设计了Chukwa,它是建立在Hadoop上的数据收集系统,用以监测和分析大规模分布式系统,还包括一个可扩展的功能强大的工具集,用于显示监测和分析结果。Andrew Konwinski[7]分析了如何在复杂环境下提升MapReduce的性能。
使用云计算技术将各种资源进行有效的整合并实现多层次的虚拟化和抽象,从而将用户从复杂的底层逻辑、网络协议、软件架构中解放出来。采用数据服务的方式整合不同的医学信息数据,解决数据信息的一致性问题,对用户提供透明的服务,实现医学信息资源的共享以及信息资源配置的最优化。
此模型构架采用的数据主要来源于医疗机构的影像归档和通信系统(PACS)。 通过PACS的网络接口,数据层根据医学数据服务功能,实现对医学数据信息的集成,使不同的应用程序能够对共享数据以统一的形式进行透明访问。业务逻辑集成将更加关注于功能和数据内容的共享。服务层采用云计算技术构建分布式存储和计算平台,采用Hadoop平台,以MapReduce作为并行计算的框架,并作出适当的调整和优化以满足医学领域的应用需求。计算资源也将以应用服务的方式提供给用户,处理和分析医学数据。医疗数据类别众多,同时每天产生大量数据,本文的数据服务集成方法主要解决的问题就是如何对这些数据进行有效整合,用以实现深入的集成分析,满足用户的应用需求。图1为详细的系统原型构架。
数据服务层通过使用SDO模型,采用数据服务的方式,利用PACS的网络接口读取医学数据。为了完成松散耦合的环境中对对象的访问,需要有一系列的协议。医学数据服务在传输层采用了HTTP协议。由于医学数据的特殊性,将采用可扩展标注语言 (XML)提供数据的描述。SOAP是一个基于XML的简单的消息协议,数据服务依靠该协议进行相互间的信息交换。开发医学数据服务描述语言(M-WSDL),用来描述数据服务的功能特性。M-WSDL定义了XML语法,将服务描述为能够交换消息的通信端的集合。使用统一描述、发现和集成(UDDI)向数据服务注册中心注册并发布数据服务。
采用Hadoop平台构建分布式存储和计算平台。集群的基础设施主要建立在虚拟的资源池上,这个资源池主要包括计算资源池、存储资源池、网络资源池等。采用Hadoop分布式文件系统对云计算的资源进行管理,包括负载的均衡、故障的监测、故障的恢复、监视统计等,并对众多的应用任务进行调度,使资源能够高安全地为应用提供服务。云计算能力被封装成标准的服务提供给应用程序,需要对这些服务进行管理和调度。图2为云计算环境提供的资源池的抽象化示意。
本文采用MapReduce作为并行计算的框架模型。MapReduce引擎由作业服务器和任务服务器组成。作业服务器负责管理调度所有作业,它是整个系统分配任务的核心;任务服务器具体负责执行用户定义的操作,每个作业被分割为多个任务,包括Map任务和Reduce任务。任务是具体执行的基本单元,任务服务器执行过程中需要向作业服务器发送心跳信息,汇报每个任务的执行状态,帮助作业服务器收集作业执行的整体情况,为下次任务分配提供依据。
应用层的主要功能是为用户提供服务,将根据用户的需求开发具体的应用,并为用户提供一个相对统一的人机界面接口。用户可以通过已注册和发布的服务,查询其需要的医学信息,使用CCMedII进行高性能的分布式处理和分析。
当用户通过用户界面查询已经发布的应用服务并发出服务请求时,比如发出的请求是查看所有的大脑图像信息,这个请求将通过数据服务层,从数据服务层已经发布的所有医学数据服务中查询大脑图像的服务描述,并返回结果。用户可以在列出的表中选择查看部分服务或全部服务。图3描述了系统中读操作请求控制流和数据流的处理流程。
(1)为用户发送读操作服务的应用请求,读取存储在PACS中的医学数据;
图3 数据流和控制流处理流程
(2)为应用服务访问主节点,发出需要存储数据的请求,获得需要存储块的位置和存储副本的位置;
(3)名称节点返回第一数据块和其他副本的存储位置给应用服务;
(4)应用服务传送应用服务信息给数据层,并请求读取数据;
(5)数据层通过已经注册和发布的数据服务,查询应用服务,获得从PACS中读取的相关信息;
(6)和(7)数据节点通过由名称节点传送过来的控制信息,读取数据并存储在指定的位置;
(8)和(9)将结果返回给应用程序并显示到用户的界面上。
如果用户需要进一步处理和分析获得的结果,将再次发出应用服务请求,应用服务将通过主节点向数据节点传递命令,处理程序直接在数据节点运行并向用户返回运行结果。
为了验证云计算强大的计算和处理能力,通过系统中已经开发的计算和分析模块运行医学图像处理实验,将存储在数据节点上的浏览器不能显示的DCM格式的医学图像转换为浏览器可显示的JPEG格式的图片,并获取DCM图像中的文字信息并存入数据库中。图4为不同数量数据节点的计算时间。
本实验采用Hadoop平台,使用MapReduce分布式计算框架,数据块副本个数为2,数据块大小为64 MB。总数据大小为19.8 GB,包含44 933张医学图像。当只有一个数据节点运行任务的时候,运行时间为1 786.79 s;当8个节点同时运行时,仅用了207.88 s。可以看出,使用云计算环境可以有效地提高系统的吞吐量和快速处理大规模数据量的医学图像信息的能力。
本文提出了一种基于云计算技术的医学信息集成方法,基于这种方法构建了一个医学信息集成中心原型,并对其有效性进行了验证。采用Hadoop分布式文件系统构建分布式存储和计算平台,使用MapReduce作为并行计算的框架,部署DCM4CHEE作为数据源系统。并对云计算配置环境作出适当的调整和优化,以满足医学领域的应用需求。采用服务数据对象的形式将各类异构医学数据封装,实现医学信息资源的共享以及信息资源配置最优化、拓宽信息资源应用领域和挖掘信息价值,更加有效地集成、管理和分析大规模的医学信息数据,从而推动计算机科学、医学和生物学的发展。
1 Luis M Vaquero,Luis Rodero-Merino,Juan Caceres.A break in the clouds:towards a cloud definition.In:ACM SIGCOMM Computer Communication Review,January 2009
2 Lenzerini M.Data integration:a theoretical perspective.In:Proceedings ofthe 21stACM SIGMOD/SIGACT/SIGART Symposium on Principles of Database Systems(PODS 2002),2002
3 王宁,王能斌.异构数据源集成系统查询分解和优化的实现.软件学报,2000,11(2):222~228
4 Hadoop.http://hadoop.apache.org/
5 VMware Infrastructure.http://www.vmware.com.cn/products/vi/
6 Boulon J,Konwinski A,Qi R,et al.Chukwa:a large-scale monitoring system.In:Proc CCA,2008
7 Andrew Konwinski.Improving mapreduce performance in heterogeneous environments.Berkeley Technical Report No.UCB/EECS-2009-183,Dec 2009