王華威,李小葉,曹文濤,劉元昕
(國網(wǎng)天津市電力公司培訓(xùn)中心天津300170)
校園網(wǎng)經(jīng)過十幾年的發(fā)展,規(guī)模越來越大,功能也越發(fā)完善,已經(jīng)逐步成為各高等院校管理學(xué)生最有效的手段之一[1-2]。然而,各高校使用的信息化系統(tǒng)存在共享性差,軟硬件資源利用率低,數(shù)據(jù)類型和規(guī)模劇增造成服務(wù)器維護困難等問題[3]。因此,基于云計算技術(shù),本文結(jié)合虛擬化、物聯(lián)網(wǎng)等技術(shù)設(shè)計并開發(fā)了一套智慧校園平臺,力圖調(diào)整并再分配現(xiàn)有的高校資源,提高高校科研計算能力和管理效率,進一步推動高校管理的快速健康可持續(xù)發(fā)展。
云計算實際為一種按需付費的模式,該模式通過將服務(wù)器、網(wǎng)絡(luò)、應(yīng)用軟件和存儲介質(zhì)等計算機資源組件成資源共享池為客戶提供便捷、可用、按需的網(wǎng)絡(luò)訪問。這里的云即代表了網(wǎng)絡(luò)[4]。云計算中根據(jù)安全性和可靠性需求,存在公有、私有和混合云3類基礎(chǔ)軟硬件設(shè)施架構(gòu)[5]。
云計算中存在3種服務(wù)模式,分別為:基礎(chǔ)設(shè)施即服務(wù),即通過互聯(lián)網(wǎng)技術(shù)聯(lián)絡(luò)并使用云計算中分布于各處的各種CPU、網(wǎng)絡(luò)帶寬、存儲介質(zhì)等計算機基礎(chǔ)設(shè)施資源的相關(guān)服務(wù)模式,如Amazon的網(wǎng)盤云存儲服務(wù);軟件即服務(wù),即用戶通過互聯(lián)網(wǎng)以Web形式訪問云計算服務(wù)提供商所提供的云端軟件,并依照實際使用資源量和時長租用應(yīng)用軟件的交付模式,如SalesForce研發(fā)的CRM軟件的使用;平臺即服務(wù),該服務(wù)模式為上述兩種服務(wù)模式的融合,如Windows Azure平臺服務(wù)。
云計算技術(shù)的核心為Hadoop技術(shù),該技術(shù)實質(zhì)為一個計算框架,專門用于處理大規(guī)模的各種數(shù)據(jù),為各種應(yīng)用程序開發(fā)提供可靠且穩(wěn)定的數(shù)據(jù)處理接口。進而為開發(fā)者提供快捷的分布式程序開發(fā),而無需關(guān)注底層架構(gòu)的具體實現(xiàn)細(xì)節(jié),如圖1所示[6]。Hadoop技術(shù)具有可靠、低成本、高效和高擴展等特性,是本文智慧校園平臺中云技術(shù)的實現(xiàn)架構(gòu),其框架結(jié)構(gòu)主要由分布式文件系統(tǒng)HDFS和基于HDFS的計算引擎MapReduce組成。

圖1 Hadoop框架圖
1.2.1 HDFS
如圖2所示,即為HDFS的體系結(jié)構(gòu)示意圖。某個HDFS集群由處于主結(jié)構(gòu)位置的一個NameNode以及幾個從結(jié)構(gòu)位置的DataNode構(gòu)成[7]。主服務(wù)節(jié)點是NameNode,工作狀態(tài)下負(fù)責(zé)對各工作節(jié)點的運行狀態(tài)進行實時檢測和匯總,并將block和所對應(yīng)的DataNode關(guān)系記錄下來。同時,也可用于文件系統(tǒng)中命名空間的管理,諸如打開以及關(guān)閉文件等操作;工作節(jié)點則是DataNode,在NameNode的調(diào)度下對block執(zhí)行諸如存儲、處理或是計算等操作指令。用戶最終只需通過使用客戶端,便可與NameNode進行交互從而獲取所需的文件數(shù)據(jù)。值得注意的是,文件真正的I/O操作是由所在的DataNode負(fù)責(zé)執(zhí)行的。

圖2 HDFS基本結(jié)構(gòu)示意圖
1.2.2 MapReduce
MapReduce本質(zhì)上是一個計算模型,專門用于編程,尤其是能對超過1TB的大規(guī)模數(shù)據(jù)集進行并行計算[8-9]。此外,MapReduce也是調(diào)度模型,用于執(zhí)行作業(yè)時的資源調(diào)配。結(jié)合Hadoop的特點與需求,專門設(shè)計了相應(yīng)的Hadoop MapReduce。
首先數(shù)據(jù)按照設(shè)定參數(shù)被分塊,并在多臺計算機上啟動同一程序的副本。在所有副本中選出一個作為本次作業(yè)的Master,其余副本則為Slaver并運行Reduce或者Map任務(wù)。之后,獲得Map任務(wù)的Slaver利用Map函數(shù)將輸入鍵值對重新處理,產(chǎn)生中間鍵值結(jié)果緩沖在內(nèi)存中,經(jīng)分區(qū)函數(shù)分隔寫入磁盤,相應(yīng)的位置信息會經(jīng)由Master發(fā)送到各Reduce工作節(jié)點。這些Reduce工作節(jié)點利用遠(yuǎn)程過程調(diào)用來獲取并處理數(shù)據(jù),經(jīng)排序?qū)⑾嗤琸ey對應(yīng)的value組建集合。value集合再經(jīng)遍歷排序傳給Reduce函數(shù)進行合并化簡操作,寫入HDFS文件系統(tǒng)中。最后,所有任務(wù)完成,Master喚醒用戶應(yīng)用程序,繼續(xù)處理和執(zhí)行其他作業(yè)。
2.1.1 設(shè)計架構(gòu)
如圖3所示即為本文設(shè)計的智慧校園平臺的框架圖。自下而上分別為基礎(chǔ)設(shè)施層、平臺支撐層、軟件應(yīng)用層,周邊輔助以信息規(guī)范體系和安全保障體系[10-15]。
基礎(chǔ)設(shè)施層,即利用大量硬件資源組建資源池,為上層提供硬件支持,該層包括服務(wù)器、互聯(lián)網(wǎng)、存儲器以及物聯(lián)網(wǎng)傳感器等設(shè)備,并具有較強的后期擴展能力。

圖3 智慧校園平臺框架圖
平臺支撐層是本文設(shè)計的重點,基于基礎(chǔ)設(shè)施層提供相關(guān)服務(wù)。該層包括用于分布式數(shù)據(jù)存儲和計算服務(wù)的虛擬分布式存儲與計算(DSCP)平臺、用于用戶認(rèn)證和登錄的統(tǒng)一身份認(rèn)證(UAP)平臺以及用于Web Service注冊和查找服務(wù)的Web服務(wù)統(tǒng)一訪問平臺。
軟件應(yīng)用層,則是調(diào)用各應(yīng)用系統(tǒng),借助平臺支撐層提供的各種服務(wù),為用戶實現(xiàn)課程管理、科研計算等具體功能。
2.1.2 拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)
平臺支撐層的使用和服務(wù)提供需要相應(yīng)的基礎(chǔ)硬件來實現(xiàn):DSCP平臺用于數(shù)據(jù)存儲和計算,因此需要集群的支持;UAP平臺用于身份識別,需要身份認(rèn)證服務(wù)器的支持;而Web平臺用于Web的相關(guān)服務(wù),加上用戶數(shù)據(jù)存儲均需要數(shù)據(jù)庫的支持。這些基礎(chǔ)設(shè)施安裝在學(xué)校私有云,并經(jīng)虛擬化后向上層提供服務(wù)。因此,最終基于云技術(shù)的智慧校園平臺相關(guān)拓?fù)浣Y(jié)構(gòu)如圖4所示。
基于支撐層提供的服務(wù),本文的智慧校園平臺以Web Service的形式向用戶開放并使用。

圖4 智慧校園平臺拓?fù)浣Y(jié)構(gòu)示意圖
在平臺設(shè)計時,由于需要滿足技術(shù)的先進性和開發(fā)成本等要求,因此在底層使用Hadoop云計算框架,并對基礎(chǔ)設(shè)施進行了封裝,用戶只需將精力放在分布式存儲和計算的開發(fā)及使用上即可。DSCP分布式存儲和計算平臺設(shè)計主要包括數(shù)據(jù)的存儲、計算和共享、用戶管理和資源調(diào)度的設(shè)計,這里重點介紹數(shù)據(jù)存儲和相應(yīng)的計算服務(wù)功能實現(xiàn)的設(shè)計。
數(shù)據(jù)存儲服務(wù)所用的底層文件系統(tǒng)為HDFS,使用的是Linux或Unix操作系統(tǒng)。因此,設(shè)計了父用戶DFSProxy代理對象,用于訪問讀寫底層文件系統(tǒng),避免了操作權(quán)限的問題。所設(shè)計的主要類,如圖5所示。

圖5 數(shù)據(jù)存儲服務(wù)中主要的UML類示意圖
數(shù)據(jù)的計算服務(wù)主要安裝并提供分布式計算所需的軟件操作運行環(huán)境,并重點考慮設(shè)計作業(yè)運行任務(wù)的相關(guān)調(diào)用方法以供學(xué)校用戶使用。本文基于的是Hadoop框架,相應(yīng)的也應(yīng)在MapReduce分布式計算框架的基礎(chǔ)上進行設(shè)計。因此,學(xué)校用戶向平臺提交的計算作業(yè)需滿足該計算框架的運行標(biāo)準(zhǔn)。
UAP統(tǒng)一身份認(rèn)證平臺設(shè)計過程中,考慮到用戶認(rèn)證所使用的數(shù)據(jù)源具有異構(gòu)性,因此本設(shè)計采用了Spring IOC技術(shù)。最終,本身份認(rèn)證平臺設(shè)計主要包括用戶和身份認(rèn)證、單點登錄和客戶端代理幾個模塊,此處重點介紹用戶和身份認(rèn)證模塊服務(wù)功能實現(xiàn)的相關(guān)設(shè)計。
用戶認(rèn)證部分的功能是用于認(rèn)證用戶上傳提交的表單及憑證信息。為了避免中間過程被他人盜取,用戶認(rèn)證無誤且通過后會將相關(guān)憑證信息重新封裝成為一個不涉及用戶敏感隱私信息字段的全新對象。
過濾器將用戶登錄時輸入的用戶名、密碼等表單憑證信息傳給Web應(yīng)用,經(jīng)Web Service或其他的API方式調(diào)用相關(guān)身份認(rèn)證方法完成認(rèn)證。本文在此設(shè)計了底層數(shù)據(jù)庫和解耦的相關(guān)交互代碼,只將身份認(rèn)證接口提供給開發(fā)者,解決了異構(gòu)性的問題。
身份認(rèn)證服務(wù)針對Web層暴露,對HTTP提供服務(wù)。相關(guān)接口負(fù)責(zé)認(rèn)證管理器、應(yīng)用管理器和票據(jù)管理器的調(diào)用,以實現(xiàn)用戶認(rèn)證和單點登錄的相關(guān)驗證。該接口可根據(jù)應(yīng)用需要選擇用戶認(rèn)證亦或是單點登錄服務(wù)的Web service方法。相應(yīng)的身份認(rèn)證相關(guān)接口UML類可見圖6所示。

圖6 身份認(rèn)證相關(guān)接口UML類示意圖
上述兩個平臺暴露的相關(guān)接口方法,組成Web服務(wù)供用戶訪問和使用;平臺支撐層中各子系統(tǒng)之間也會上傳發(fā)布自身的Web Service進行內(nèi)部數(shù)據(jù)共享。最終,用戶看到的是一個Web形式的WSAP服務(wù)統(tǒng)一訪問入口,諸如教務(wù)系統(tǒng)、課程管理、天氣等物聯(lián)網(wǎng)信息服務(wù)經(jīng)注冊與添加后,用戶可通過此入口進入并訪問。相應(yīng)的WSAP整體框架設(shè)計示意圖,可見圖7。

圖7 WSAP框架設(shè)計示意圖
文中用6臺通用計算機搭建Hadoop集群,安裝Ubuntu Linux系統(tǒng),所設(shè)計的智慧校園平臺建立在此基礎(chǔ)設(shè)施上的云計算環(huán)境中,使用的開發(fā)語言是Java。
6臺計算機設(shè)置的主機和IP地址對應(yīng)關(guān)系依次為:192.168.1.113—SmartCampus-01(NameNode),…192.168.1.118—SmartCampus-06(剩余 5臺為 Date?Node)。
數(shù)據(jù)存儲訪問實質(zhì)是對HDFS系統(tǒng)文件執(zhí)行讀寫操作,因此必然涉及文件的上傳和下載。上傳可由copyFileFromLocal(File srcFile,String dst)(屬于代理類DfsProxy)方法實現(xiàn),相關(guān)代碼如下所示。

數(shù)據(jù)下載操作,則由代理類下getFileStream(String uri)來實現(xiàn),具體代碼實現(xiàn)可由下述代碼所示。


數(shù)據(jù)計算服務(wù)主要是針對用戶提供相應(yīng)的虛擬計算環(huán)境,對定制作業(yè)提供runJobFromJar()方法以調(diào)用Jar包形式的MapReduce源代碼,實現(xiàn)可見下列代碼。

身份認(rèn)證功能的實現(xiàn)包括服務(wù)器端和客戶代理端的實現(xiàn),服務(wù)器端身份認(rèn)證用戶驗證配置實現(xiàn)如圖8所示。

圖8 身份認(rèn)證服務(wù)器端用戶驗證配置圖
當(dāng)學(xué)校用戶登錄訪問智慧校園平臺的信息門戶時,平臺系統(tǒng)會跳轉(zhuǎn)到UAP上,相應(yīng)的Web登錄界面如圖9所示。
登錄成功后,則跳轉(zhuǎn)到WSAP首頁。由于并未添加諸如教務(wù)系統(tǒng)等服務(wù),此處界面仍是空的。若是選擇訪問DSCP平臺進行存儲和計算,則鏈接地址會發(fā)生跳轉(zhuǎn),如圖10所示。用戶可以在此界面提交作業(yè)并計算。總體上看,本文的智慧校園平臺運行良好,達(dá)到了預(yù)期的目標(biāo)。

圖9 智慧校園登錄界面圖

圖10 DSCP平臺首頁圖
文中基于云技術(shù),再結(jié)合虛擬化、物聯(lián)網(wǎng)等技術(shù)設(shè)計并開發(fā)了一套智慧校園平臺。其中,包括了DSCP分布式存儲和計算、UAP統(tǒng)一身份認(rèn)證以及Web服務(wù)統(tǒng)一訪問等服務(wù)支撐平臺。經(jīng)過測試,該智慧校園平臺運行良好,達(dá)到了預(yù)期的設(shè)計目標(biāo),具有調(diào)整現(xiàn)有高校資源、提高高校科研計算能力以及提升管理效率的優(yōu)勢,也為其他基于云技術(shù)的智慧校園平臺開發(fā)和實現(xiàn)方案提供了技術(shù)參考。