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