邵冬華,王 剛
(1.南通航運職業(yè)技術學院,江蘇 南通 226010;2.江蘇金智教育信息技術有限公司,南京 211100)
隨著高校信息化建設的發(fā)展,各高校大部分都已經(jīng)建立了校內(nèi)的數(shù)據(jù)中心,通過與業(yè)務系統(tǒng)的數(shù)據(jù)集成和共享,累計了大量的各類教務、科研、管理方面的數(shù)據(jù)。同時,主管部門對所屬高校的數(shù)據(jù)采集由于受到各高校內(nèi)部數(shù)據(jù)的異構(gòu)性、數(shù)據(jù)一致性等問題,一直不能實時地進行數(shù)據(jù)收集,大部分依靠手工的數(shù)據(jù)整理工作,耗時耗力。
近年來,云計算技術迅猛發(fā)展,以資源聚合和虛擬化為基本特征,支持應用服務化、專業(yè)化,具有彈性服務、資源池化、按需服務、服務可計費等特點[1]。近年,包括 Google,Amazon,IBM 與Microsoft在內(nèi)的幾乎所有的IT行業(yè)巨頭都將云計算作為未來發(fā)展的主要戰(zhàn)略之一[2-4]。
各高校所建立的內(nèi)部數(shù)據(jù)中心,對于主管部門而言,是一個很大的 “云”,而多個高校的數(shù)據(jù)的動態(tài)采集和使用,則是這個 “云”上的服務。本文引入云計算的思路,通過使數(shù)據(jù)對象虛擬化和服務的構(gòu)建,為建立跨校的信息平臺提供新的思路。
云計算 (Cloud Computing)是一種新型的資源和服務交付方式,在目前還沒有普遍一致的定義,是分布式計算的延伸,通過整合、管理、調(diào)配分布自網(wǎng)絡各處的計算資源,以按需分配、按用計費、通過互聯(lián)網(wǎng)分發(fā)統(tǒng)一的交互接口的同時向多用戶提供服務的一種服務模式[5]。也是一種由規(guī)模經(jīng)濟驅(qū)動的大規(guī)模分布式計算模式,通過這種計算模式,實現(xiàn)抽象的、虛擬的、可動態(tài)擴展、可管理的計算、存儲、平臺和服務等資源池,由互聯(lián)網(wǎng)按需提供給外部用戶[6]。云計算技術研究尚處于起步階段,目前主要應用于互聯(lián)網(wǎng)、商業(yè)和科學計算等領域[7-8]。
云計算有如下幾個主要特點:
(1)大規(guī)模:只有大規(guī)模的分布式計算才能體現(xiàn)出云計算的高效。才能體現(xiàn)資源整合和服務提供的優(yōu)勢。
(2)可擴展性:由于云計算使用的是通過互聯(lián)網(wǎng)提供服務交互方式,服務可隨著使用人數(shù)的增長動態(tài)的擴展。
(3)動態(tài)配置:服務是按需定制和供應的。
(4)虛擬化:終端用戶從云中獲取應用服務,而不需要關心服務的具體實現(xiàn)和具體位置。這就要求服務的提供者必須是抽象的實體,是虛擬化的,否則無法滿足服務的動態(tài)、按需等需求。
(5)安全性:云端的用戶信息可分布在地理上相互隔離的數(shù)據(jù)庫主機中,用戶自己也無法判斷信息的備份地點,從而大大提高系統(tǒng)的安全性容災能力。
通常情況下,上級部門會采用新增信息管理系統(tǒng)、各個高校將需要采集的數(shù)據(jù)通過頁面錄入、導入的方式提交數(shù)據(jù),費時費力,數(shù)據(jù)的及時性也很難得到保障。而目前,大部分的高校校內(nèi)已經(jīng)或者逐步開始建設校內(nèi)的數(shù)據(jù)中心庫。這兩層數(shù)據(jù)的及時有效的對接已經(jīng)成為研究高校數(shù)據(jù)使用的研究熱點。
云計算的出現(xiàn)及其特點,給跨校信息平臺的研究帶來了新的思路。各個高校之間的數(shù)據(jù)中心是存放在各個學校的,分布比較廣,數(shù)量也較多。而上級部門采集的信息也會隨著政策、業(yè)務等發(fā)生多樣性的變化。要求跨校信息平臺的服務能夠?qū)崿F(xiàn)動態(tài)配置、具有較好的可擴展性。
參照云計算的體系結(jié)構(gòu),跨校信息平臺的體系結(jié)構(gòu)如圖1所示。
在跨校信息平臺的體系結(jié)構(gòu)中,主要分為四層,分別是資源層、虛擬化層、服務層和應用層。
資源層主要有分布在各高校內(nèi)部的數(shù)據(jù)中心組成,主要包含硬件服務器、操作系統(tǒng)軟件、數(shù)據(jù)庫、應用軟件等。這些資源隨著高校數(shù)量的增加會越來越龐大。由于資源的歸屬等原因,分布式的協(xié)同計算等在跨校數(shù)據(jù)平臺中應用較少,本文不作過多描述。
圖1 跨校信息平臺體系結(jié)構(gòu)
虛擬化層是實現(xiàn)跨校信息平臺的基礎層,只有將各高校的數(shù)據(jù)對象虛擬化后,才能夠構(gòu)建服務和應用。虛擬化層主要是將各高校數(shù)據(jù)中心中的數(shù)據(jù)實體轉(zhuǎn)換成虛擬數(shù)據(jù)對象,即將物理上的表、視圖等轉(zhuǎn)換成邏輯上的數(shù)據(jù)對象,以便屏蔽來自不同高校的多數(shù)據(jù)源、多訪問方式等問題。同時,將各個高校也進行虛擬化描述。
服務層是在數(shù)據(jù)對象虛擬化之后,對數(shù)據(jù)的進一步服務封裝。服務的封裝依據(jù)于業(yè)務的不同,服務的分類顆粒度也不同。以跨校學生基本信息為列,在平臺中需要查詢多個高校的學生人數(shù)、單個學校的學生明細。這個應用中,服務就分為學生人數(shù)統(tǒng)計服務和學生明細查詢服務。而學生明細查詢服務,則可以分為學生自然信息查詢服務和學生在校系想你查詢服務。
應用層主要是在服務層的基礎上,構(gòu)建針對具體業(yè)務的應用。包含用戶認證、服務的權(quán)限管理、服務的配置 (由細顆粒的服務組建粗顆粒的服務)、服務訂閱等。
使用以上的體系結(jié)構(gòu),解決了在構(gòu)建跨校信息平臺時的幾個基本要求:
(1)擴展性。當增加一所新的高校時,不會帶來體系結(jié)構(gòu)的復雜度的增加。只需要按照其他高校的方法進行數(shù)據(jù)對象虛擬化,并在服務層中注冊新的虛擬對象。
(2)分布計算性。分布式計算的范圍大小取決于服務的粗細度。比如:對學生信息的統(tǒng)計和查詢。如果服務中只有基本信息查詢服務,當構(gòu)建應用的時候,統(tǒng)計的數(shù)據(jù)就需要由跨校信息平臺統(tǒng)一來完成,無法分布計算。而如果服務細分為統(tǒng)計和查詢,則統(tǒng)計工作則分布在各個高校的數(shù)據(jù)中心,服務則直接從虛擬的學生數(shù)據(jù)統(tǒng)計對象中獲取統(tǒng)計信息。
(3)數(shù)據(jù)實時性??缧P畔⑵脚_本身并不存儲數(shù)據(jù),數(shù)據(jù)存儲在各高校的數(shù)據(jù)中心,并由相應的業(yè)務系統(tǒng)支撐進行數(shù)據(jù)的維護工作。當平臺接受用戶請求的時候,會通過構(gòu)建的服務到對應的數(shù)據(jù)中心中獲取實時數(shù)據(jù)。
(4)穩(wěn)定性。平臺中包含了多個高校的數(shù)據(jù),當一個高校的數(shù)據(jù)物理訪問出現(xiàn)故障時,并不妨礙其他高校的數(shù)據(jù)實時范圍和系統(tǒng)功能使用。
(5)節(jié)省投入。有效利用了現(xiàn)有的高校數(shù)據(jù)中心資源,減少了在構(gòu)建平臺過程中可能會涉及的數(shù)據(jù)中心建設和維護??s短了項目見效的時間。
數(shù)據(jù)對象虛擬化是構(gòu)建跨校信息平臺的基礎和核心。由于各高校的基礎數(shù)據(jù)源基本上都是關系型數(shù)據(jù)庫,且大部分使用了Oracle數(shù)據(jù)庫,所以本文使用了目前較為流行的Oracle的ODI(Oracle Data Integrator)組件,作為數(shù)據(jù)對象虛擬化工具。
目前,ODI組件可以支持絕大部分的關系型數(shù)據(jù)庫的數(shù)據(jù)反向操作。比如通過驅(qū)動連接MS SqlServer數(shù)據(jù)庫,通過建立ODBC數(shù)據(jù)源,連接Excel文件等。
數(shù)據(jù)對象虛擬化主要使用ODI組件中的數(shù)據(jù)反向操作,將數(shù)據(jù)庫中的實體對象轉(zhuǎn)換成XML的對象描述。當物理上可連接到對方的數(shù)據(jù)庫時,ODI可以將有權(quán)限訪問的數(shù)據(jù)對象反向成邏輯數(shù)據(jù)對象,即轉(zhuǎn)換成XML文件。在此過程中,主要生成連接信息描述,庫信息描述,數(shù)據(jù)對象描述。連接信息描述主要包含連接名稱、ID、連接驅(qū)動類型、連接關聯(lián)的學校ID、連接的賬號和密碼等;庫信息描述主要包含庫名稱、ID、使用的連接信息、庫類型等;數(shù)據(jù)對象描述主要包含數(shù)據(jù)對象的描述、包含的列描述、主鍵描述等信息,如圖2所示。
對于高校對象的虛擬化描述,主要包含高校名稱、ID等信息。高校對象的虛擬化描述是作為索引,在多個高校數(shù)據(jù)對象虛擬化描述統(tǒng)一命名規(guī)則的前提下,提供快速的檢索。這樣,既提高了索引的效率,又能在新增高校的時候,使得服務層只需要遍歷高校對象即可,這樣就不需要改變服務層的設計和實現(xiàn)。
圖2 一個虛擬化數(shù)據(jù)對象的XML描述
本文以跨校信息平臺中的學生信息查詢的應用為例,描述數(shù)據(jù)服務的構(gòu)建過程。
對于學生信息查詢的應用而言,平臺需要提供學生總數(shù)的查詢、學生男女生人數(shù)的查詢、學生專業(yè)信息的查詢,以及對應的學生明細的查詢等。這樣學生信息的數(shù)據(jù)服務就分兩個層次,提供兩個調(diào)用接口。一個是統(tǒng)計 (TJ_BZKS),一個是明細(MX_BZKS)。
對于統(tǒng)計的數(shù)據(jù)服務,就統(tǒng)計而言,接口中包含<學校ID,統(tǒng)計對象ID,字段名>,其中學校ID表示具體指的哪個高校,輸入的值是高校編碼,空表示所有注冊的高校;統(tǒng)計對象指的是統(tǒng)計是在哪個類別里面,對于學生信息查詢而言,輸入的是BZKS;字段名表示以學生信息中的哪個字段為統(tǒng)計維度進行統(tǒng)計,為空表示統(tǒng)計的是學生信息的總數(shù)。接口的返回是一個ResultSet的XML描述。包含學校ID、統(tǒng)計對象、字段名、統(tǒng)計值。
對于明細的數(shù)據(jù)服務,接口中包含<學校ID,統(tǒng)計對象ID,字段名列表>,其中學校ID和統(tǒng)計對象ID同統(tǒng)計接口的定義一致,字段名表示明細顯示的列,是一個字段名列表。接口返回的ResultSet是依據(jù)接口中指定的字段名列表為列,數(shù)據(jù)明細為行的XML描述。
在服務對虛擬化對象的調(diào)用和執(zhí)行過程中,如果學校ID為空,則依據(jù)學校ID的虛擬化對象為索引,遍歷各學校的虛擬化的統(tǒng)計對象。在執(zhí)行過程中分為兩層實現(xiàn),分別為邏輯層實現(xiàn)和物理層實現(xiàn)。邏輯層時間主要是依據(jù)接口的調(diào)用,形成對各高校虛擬化數(shù)據(jù)對象的操作,物理層則依據(jù)各高校的連接信息、庫信息和對象信息進行物理連接和查詢,并返回結(jié)果。如圖3所示,使用SQL語句對上述過程進行了描述。
圖3 服務對虛擬化對象的調(diào)研和執(zhí)行
自從各高校開始建設數(shù)據(jù)中心庫以來,數(shù)據(jù)的安全性就受到了高度的重視。本文討論的跨校信息平臺的建設,需要自上而下的從各個所屬高校的數(shù)據(jù)中心庫直接讀取數(shù)據(jù),這對各個高校的數(shù)據(jù)安全帶來了影響。
針對安全問題,采用兩層數(shù)據(jù)安全防護,即從網(wǎng)絡層和應用層。
在網(wǎng)絡層,在各高校內(nèi)部,對可訪問數(shù)據(jù)中心庫的IP地址進行限制,只有上級部門的有限的幾個IP地址才可訪問本校的數(shù)據(jù)中心庫。
在應用層,在連接數(shù)據(jù)中心庫之前,進行連接的安全驗證。數(shù)據(jù)是通過二次加密后的密文傳遞的。加密是利用MD5算法依靠雙方約定的密鑰和服務器時間進行第一次加密,接著對密文進行固定位數(shù)的向左移位,即第二次加密。
加密協(xié)議如下:
MD5(密鑰+時間戳)+位移數(shù);
此驗證方法中,密鑰是雙方約定的、可定期變化的;時間戳在經(jīng)過取舍處理后,可允許在10分鐘內(nèi)都有效,即允許此請求在雙方服務器時間一致情況下10分鐘內(nèi)有效,或者服務器時間誤差10分鐘內(nèi),請求有效。位移的數(shù)量是通過傳遞的密文的最后一位標記的,可定期變化的;MD5的加密方法采用32位小寫。
在驗證過程中,首先依據(jù)約定好的密鑰和時間戳進行MD5加密;其次對密文進行二次加密,即根據(jù)獲取傳遞過來的位移數(shù)進行密文的位移;最后將二次加密后的密文同傳遞過來的前32位密文進行比對 (區(qū)分大小寫),如果一致則驗證通過,如果不一致則拒絕連接。
通過在構(gòu)建跨校信息平臺的研究過程中,結(jié)合平臺的實際需求,引入了云計算的思路,著重介紹了在引入云計算后,跨校信息平臺的體系結(jié)構(gòu),以及對數(shù)據(jù)對象的虛擬化和數(shù)據(jù)服務的構(gòu)建過程。本文的研究同時也為進一步利用已用的各高校數(shù)據(jù)中心資源提供了一種新的思路。后續(xù),將逐步完善跨校信息平臺的研究,對平臺實現(xiàn)過程中會涉及得到的統(tǒng)一數(shù)據(jù)標準、跨校虛擬網(wǎng)絡、非關系型數(shù)據(jù)等方面進行進一步的研究和實現(xiàn)。
[1]羅軍舟,金嘉暉,宋愛波,等.云計算:體系架構(gòu)與關鍵技術[J].通信學報,2011,32(7):3-21.
[2]Luis M.vaquero,Luis Rodero-Merino,Juan Caceres,et al.A break in the clouds:towards a cloud definition[J].ACM SIGCOMM Computer Communication Revie,2009,39 (1):50-55.
[3]陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學報,2009,20(5):1337-1348.
[4]A di Costanzo,M.D.de Assuncao,R.Buyya.Harnessing cloud technologies for a virtualized distributed computing in frastructure [J].IEEE Internet Computing,2009,13 (5):24-33.
[5]虛擬化與云計算小組.虛擬化與云計算[M].北京:電子工業(yè)出版社,2009.
[6]Ian Foster,Yong Zhao,Ioan Raicu,et al.Cloud Computing and Grid Computing 360-Degree Compared[M].Austin,TX:Grid Computing Environments Workshop,2008.
[7]Dikaiakos M D,Katsaros D,Mehra P.Cloud computing:distributed internet computing for IT and scientificres earch[J].IEEE Internet Computing,2009,13 (5):10-13.
[8]李伯虎,柴旭東,侯寶存,等.一種基于云計算理念的網(wǎng)絡化建模與仿真平臺—— “云仿真平臺”[J].系統(tǒng)仿真學報,2009,21 (17):5292-5299.