葉 蕾,黃慶藏,于明遠,俞棟輝
(浙江工業(yè)大學 杭州 310023)
以往的醫(yī)學信息集成和管理系統(tǒng)的研制都是面向局部單位或特定領域,限制了信息的共享和交流的范圍。把整個網(wǎng)絡看成一個虛擬的數(shù)據(jù)來源,在網(wǎng)絡上獲取更高質(zhì)量的醫(yī)學信息已成為人們的渴望。基于云計算技術的醫(yī)學信息集成和管理方法為解決這些問題提供了新的思想。云計算[1]是網(wǎng)格計算、分布式計算、網(wǎng)絡存儲、虛擬化、負載均衡等傳統(tǒng)計算機技術和網(wǎng)絡技術發(fā)展融合的產(chǎn)物,旨在通過網(wǎng)絡把多個成本相對較低的計算實體整合成一個具有強大計算能力的系統(tǒng),并借助軟件即服務、平臺即服務、基礎設施即服務等先進的商業(yè)模式把這強大的計算能力分布到終端用戶手中。
本文提出一種基于云計算技術的醫(yī)學信息集成方法,基于這種方法構(gòu)建了一個醫(yī)學信息集成原型(medical information integration based on cloud computing,CCMedII),并對該集成方法的有效性進行了驗證。CCMedII用以實現(xiàn)離散的醫(yī)學信息系統(tǒng)中各類異構(gòu)醫(yī)學數(shù)據(jù)信息的集成、共享、有效整合及應用;采用服務數(shù)據(jù)對象(SDO)的形式將各類異構(gòu)醫(yī)學數(shù)據(jù)封裝為與平臺無關的醫(yī)學數(shù)據(jù)服務,有效屏蔽各類醫(yī)學數(shù)據(jù)信息的異構(gòu)性;利用云計算強大的分布式存儲與運算能力,實現(xiàn)醫(yī)學數(shù)據(jù)服務資源的有效整合及應用。
隨著網(wǎng)絡技術的發(fā)展,大量應用數(shù)據(jù)并不屬于傳統(tǒng)的數(shù)據(jù)庫系統(tǒng),對這些差異較大的資源進行集成成為亟待解決的新課題。目前這方面的研究集中在對Web數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)的處理[2]上。東南大學研制的Versatile[3]是一個基于CORBA的分布式異構(gòu)數(shù)據(jù)源集成系統(tǒng)原型,旨在以“即插即用”方式集成來自不同數(shù)據(jù)源的數(shù)據(jù)。由于醫(yī)學信息具有數(shù)據(jù)量大、復雜性高、資源多樣等特點,使得醫(yī)學信息集成與重用變得更加困難。云計算技術為醫(yī)學信息的集成和管理帶來新的技術支持。Hadoop[4]是Apache開源組織的一個分布式計算框架,可以在大量的硬件設備組成的集群上運行應用程序,旨在構(gòu)建一個具有高可靠性和良好擴展性的分布式系統(tǒng)。VMware[5]能創(chuàng)建自我優(yōu)化的IT基礎構(gòu)架,可以將離散的硬件資源統(tǒng)一起來以創(chuàng)建共享動態(tài)平臺,同時實現(xiàn)內(nèi)置可用性、安全性和可擴展性。Jerome Boulon等[6]設計了Chukwa,它是建立在Hadoop上的數(shù)據(jù)收集系統(tǒng),用以監(jiān)測和分析大規(guī)模分布式系統(tǒng),還包括一個可擴展的功能強大的工具集,用于顯示監(jiān)測和分析結(jié)果。Andrew Konwinski[7]分析了如何在復雜環(huán)境下提升MapReduce的性能。
使用云計算技術將各種資源進行有效的整合并實現(xiàn)多層次的虛擬化和抽象,從而將用戶從復雜的底層邏輯、網(wǎng)絡協(xié)議、軟件架構(gòu)中解放出來。采用數(shù)據(jù)服務的方式整合不同的醫(yī)學信息數(shù)據(jù),解決數(shù)據(jù)信息的一致性問題,對用戶提供透明的服務,實現(xiàn)醫(yī)學信息資源的共享以及信息資源配置的最優(yōu)化。
此模型構(gòu)架采用的數(shù)據(jù)主要來源于醫(yī)療機構(gòu)的影像歸檔和通信系統(tǒng)(PACS)。 通過PACS的網(wǎng)絡接口,數(shù)據(jù)層根據(jù)醫(yī)學數(shù)據(jù)服務功能,實現(xiàn)對醫(yī)學數(shù)據(jù)信息的集成,使不同的應用程序能夠?qū)蚕頂?shù)據(jù)以統(tǒng)一的形式進行透明訪問。業(yè)務邏輯集成將更加關注于功能和數(shù)據(jù)內(nèi)容的共享。服務層采用云計算技術構(gòu)建分布式存儲和計算平臺,采用Hadoop平臺,以MapReduce作為并行計算的框架,并作出適當?shù)恼{(diào)整和優(yōu)化以滿足醫(yī)學領域的應用需求。計算資源也將以應用服務的方式提供給用戶,處理和分析醫(yī)學數(shù)據(jù)。醫(yī)療數(shù)據(jù)類別眾多,同時每天產(chǎn)生大量數(shù)據(jù),本文的數(shù)據(jù)服務集成方法主要解決的問題就是如何對這些數(shù)據(jù)進行有效整合,用以實現(xiàn)深入的集成分析,滿足用戶的應用需求。圖1為詳細的系統(tǒng)原型構(gòu)架。
數(shù)據(jù)服務層通過使用SDO模型,采用數(shù)據(jù)服務的方式,利用PACS的網(wǎng)絡接口讀取醫(yī)學數(shù)據(jù)。為了完成松散耦合的環(huán)境中對對象的訪問,需要有一系列的協(xié)議。醫(yī)學數(shù)據(jù)服務在傳輸層采用了HTTP協(xié)議。由于醫(yī)學數(shù)據(jù)的特殊性,將采用可擴展標注語言 (XML)提供數(shù)據(jù)的描述。SOAP是一個基于XML的簡單的消息協(xié)議,數(shù)據(jù)服務依靠該協(xié)議進行相互間的信息交換。開發(fā)醫(yī)學數(shù)據(jù)服務描述語言(M-WSDL),用來描述數(shù)據(jù)服務的功能特性。M-WSDL定義了XML語法,將服務描述為能夠交換消息的通信端的集合。使用統(tǒng)一描述、發(fā)現(xiàn)和集成(UDDI)向數(shù)據(jù)服務注冊中心注冊并發(fā)布數(shù)據(jù)服務。
采用Hadoop平臺構(gòu)建分布式存儲和計算平臺。集群的基礎設施主要建立在虛擬的資源池上,這個資源池主要包括計算資源池、存儲資源池、網(wǎng)絡資源池等。采用Hadoop分布式文件系統(tǒng)對云計算的資源進行管理,包括負載的均衡、故障的監(jiān)測、故障的恢復、監(jiān)視統(tǒng)計等,并對眾多的應用任務進行調(diào)度,使資源能夠高安全地為應用提供服務。云計算能力被封裝成標準的服務提供給應用程序,需要對這些服務進行管理和調(diào)度。圖2為云計算環(huán)境提供的資源池的抽象化示意。
本文采用MapReduce作為并行計算的框架模型。MapReduce引擎由作業(yè)服務器和任務服務器組成。作業(yè)服務器負責管理調(diào)度所有作業(yè),它是整個系統(tǒng)分配任務的核心;任務服務器具體負責執(zhí)行用戶定義的操作,每個作業(yè)被分割為多個任務,包括Map任務和Reduce任務。任務是具體執(zhí)行的基本單元,任務服務器執(zhí)行過程中需要向作業(yè)服務器發(fā)送心跳信息,匯報每個任務的執(zhí)行狀態(tài),幫助作業(yè)服務器收集作業(yè)執(zhí)行的整體情況,為下次任務分配提供依據(jù)。
應用層的主要功能是為用戶提供服務,將根據(jù)用戶的需求開發(fā)具體的應用,并為用戶提供一個相對統(tǒng)一的人機界面接口。用戶可以通過已注冊和發(fā)布的服務,查詢其需要的醫(yī)學信息,使用CCMedII進行高性能的分布式處理和分析。
當用戶通過用戶界面查詢已經(jīng)發(fā)布的應用服務并發(fā)出服務請求時,比如發(fā)出的請求是查看所有的大腦圖像信息,這個請求將通過數(shù)據(jù)服務層,從數(shù)據(jù)服務層已經(jīng)發(fā)布的所有醫(yī)學數(shù)據(jù)服務中查詢大腦圖像的服務描述,并返回結(jié)果。用戶可以在列出的表中選擇查看部分服務或全部服務。圖3描述了系統(tǒng)中讀操作請求控制流和數(shù)據(jù)流的處理流程。
(1)為用戶發(fā)送讀操作服務的應用請求,讀取存儲在PACS中的醫(yī)學數(shù)據(jù);
圖3 數(shù)據(jù)流和控制流處理流程
(2)為應用服務訪問主節(jié)點,發(fā)出需要存儲數(shù)據(jù)的請求,獲得需要存儲塊的位置和存儲副本的位置;
(3)名稱節(jié)點返回第一數(shù)據(jù)塊和其他副本的存儲位置給應用服務;
(4)應用服務傳送應用服務信息給數(shù)據(jù)層,并請求讀取數(shù)據(jù);
(5)數(shù)據(jù)層通過已經(jīng)注冊和發(fā)布的數(shù)據(jù)服務,查詢應用服務,獲得從PACS中讀取的相關信息;
(6)和(7)數(shù)據(jù)節(jié)點通過由名稱節(jié)點傳送過來的控制信息,讀取數(shù)據(jù)并存儲在指定的位置;
(8)和(9)將結(jié)果返回給應用程序并顯示到用戶的界面上。
如果用戶需要進一步處理和分析獲得的結(jié)果,將再次發(fā)出應用服務請求,應用服務將通過主節(jié)點向數(shù)據(jù)節(jié)點傳遞命令,處理程序直接在數(shù)據(jù)節(jié)點運行并向用戶返回運行結(jié)果。
為了驗證云計算強大的計算和處理能力,通過系統(tǒng)中已經(jīng)開發(fā)的計算和分析模塊運行醫(yī)學圖像處理實驗,將存儲在數(shù)據(jù)節(jié)點上的瀏覽器不能顯示的DCM格式的醫(yī)學圖像轉(zhuǎn)換為瀏覽器可顯示的JPEG格式的圖片,并獲取DCM圖像中的文字信息并存入數(shù)據(jù)庫中。圖4為不同數(shù)量數(shù)據(jù)節(jié)點的計算時間。
本實驗采用Hadoop平臺,使用MapReduce分布式計算框架,數(shù)據(jù)塊副本個數(shù)為2,數(shù)據(jù)塊大小為64 MB??倲?shù)據(jù)大小為19.8 GB,包含44 933張醫(yī)學圖像。當只有一個數(shù)據(jù)節(jié)點運行任務的時候,運行時間為1 786.79 s;當8個節(jié)點同時運行時,僅用了207.88 s??梢钥闯?,使用云計算環(huán)境可以有效地提高系統(tǒng)的吞吐量和快速處理大規(guī)模數(shù)據(jù)量的醫(yī)學圖像信息的能力。
本文提出了一種基于云計算技術的醫(yī)學信息集成方法,基于這種方法構(gòu)建了一個醫(yī)學信息集成中心原型,并對其有效性進行了驗證。采用Hadoop分布式文件系統(tǒng)構(gòu)建分布式存儲和計算平臺,使用MapReduce作為并行計算的框架,部署DCM4CHEE作為數(shù)據(jù)源系統(tǒng)。并對云計算配置環(huán)境作出適當?shù)恼{(diào)整和優(yōu)化,以滿足醫(yī)學領域的應用需求。采用服務數(shù)據(jù)對象的形式將各類異構(gòu)醫(yī)學數(shù)據(jù)封裝,實現(xiàn)醫(yī)學信息資源的共享以及信息資源配置最優(yōu)化、拓寬信息資源應用領域和挖掘信息價值,更加有效地集成、管理和分析大規(guī)模的醫(yī)學信息數(shù)據(jù),從而推動計算機科學、醫(yī)學和生物學的發(fā)展。
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 王寧,王能斌.異構(gòu)數(shù)據(jù)源集成系統(tǒng)查詢分解和優(yōu)化的實現(xiàn).軟件學報,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