王華威,李小葉,曹文濤,劉元昕
(國(guó)網(wǎng)天津市電力公司培訓(xùn)中心天津300170)
校園網(wǎng)經(jīng)過(guò)十幾年的發(fā)展,規(guī)模越來(lái)越大,功能也越發(fā)完善,已經(jīng)逐步成為各高等院校管理學(xué)生最有效的手段之一[1-2]。然而,各高校使用的信息化系統(tǒng)存在共享性差,軟硬件資源利用率低,數(shù)據(jù)類型和規(guī)模劇增造成服務(wù)器維護(hù)困難等問(wèn)題[3]。因此,基于云計(jì)算技術(shù),本文結(jié)合虛擬化、物聯(lián)網(wǎng)等技術(shù)設(shè)計(jì)并開發(fā)了一套智慧校園平臺(tái),力圖調(diào)整并再分配現(xiàn)有的高校資源,提高高校科研計(jì)算能力和管理效率,進(jìn)一步推動(dòng)高校管理的快速健康可持續(xù)發(fā)展。
云計(jì)算實(shí)際為一種按需付費(fèi)的模式,該模式通過(guò)將服務(wù)器、網(wǎng)絡(luò)、應(yīng)用軟件和存儲(chǔ)介質(zhì)等計(jì)算機(jī)資源組件成資源共享池為客戶提供便捷、可用、按需的網(wǎng)絡(luò)訪問(wèn)。這里的云即代表了網(wǎng)絡(luò)[4]。云計(jì)算中根據(jù)安全性和可靠性需求,存在公有、私有和混合云3類基礎(chǔ)軟硬件設(shè)施架構(gòu)[5]。
云計(jì)算中存在3種服務(wù)模式,分別為:基礎(chǔ)設(shè)施即服務(wù),即通過(guò)互聯(lián)網(wǎng)技術(shù)聯(lián)絡(luò)并使用云計(jì)算中分布于各處的各種CPU、網(wǎng)絡(luò)帶寬、存儲(chǔ)介質(zhì)等計(jì)算機(jī)基礎(chǔ)設(shè)施資源的相關(guān)服務(wù)模式,如Amazon的網(wǎng)盤云存儲(chǔ)服務(wù);軟件即服務(wù),即用戶通過(guò)互聯(lián)網(wǎng)以Web形式訪問(wèn)云計(jì)算服務(wù)提供商所提供的云端軟件,并依照實(shí)際使用資源量和時(shí)長(zhǎng)租用應(yīng)用軟件的交付模式,如SalesForce研發(fā)的CRM軟件的使用;平臺(tái)即服務(wù),該服務(wù)模式為上述兩種服務(wù)模式的融合,如Windows Azure平臺(tái)服務(wù)。
云計(jì)算技術(shù)的核心為Hadoop技術(shù),該技術(shù)實(shí)質(zhì)為一個(gè)計(jì)算框架,專門用于處理大規(guī)模的各種數(shù)據(jù),為各種應(yīng)用程序開發(fā)提供可靠且穩(wěn)定的數(shù)據(jù)處理接口。進(jìn)而為開發(fā)者提供快捷的分布式程序開發(fā),而無(wú)需關(guān)注底層架構(gòu)的具體實(shí)現(xiàn)細(xì)節(jié),如圖1所示[6]。Hadoop技術(shù)具有可靠、低成本、高效和高擴(kuò)展等特性,是本文智慧校園平臺(tái)中云技術(shù)的實(shí)現(xiàn)架構(gòu),其框架結(jié)構(gòu)主要由分布式文件系統(tǒng)HDFS和基于HDFS的計(jì)算引擎MapReduce組成。
圖1 Hadoop框架圖
1.2.1 HDFS
如圖2所示,即為HDFS的體系結(jié)構(gòu)示意圖。某個(gè)HDFS集群由處于主結(jié)構(gòu)位置的一個(gè)NameNode以及幾個(gè)從結(jié)構(gòu)位置的DataNode構(gòu)成[7]。主服務(wù)節(jié)點(diǎn)是NameNode,工作狀態(tài)下負(fù)責(zé)對(duì)各工作節(jié)點(diǎn)的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)檢測(cè)和匯總,并將block和所對(duì)應(yīng)的DataNode關(guān)系記錄下來(lái)。同時(shí),也可用于文件系統(tǒng)中命名空間的管理,諸如打開以及關(guān)閉文件等操作;工作節(jié)點(diǎn)則是DataNode,在NameNode的調(diào)度下對(duì)block執(zhí)行諸如存儲(chǔ)、處理或是計(jì)算等操作指令。用戶最終只需通過(guò)使用客戶端,便可與NameNode進(jìn)行交互從而獲取所需的文件數(shù)據(jù)。值得注意的是,文件真正的I/O操作是由所在的DataNode負(fù)責(zé)執(zhí)行的。
圖2 HDFS基本結(jié)構(gòu)示意圖
1.2.2 MapReduce
MapReduce本質(zhì)上是一個(gè)計(jì)算模型,專門用于編程,尤其是能對(duì)超過(guò)1TB的大規(guī)模數(shù)據(jù)集進(jìn)行并行計(jì)算[8-9]。此外,MapReduce也是調(diào)度模型,用于執(zhí)行作業(yè)時(shí)的資源調(diào)配。結(jié)合Hadoop的特點(diǎn)與需求,專門設(shè)計(jì)了相應(yīng)的Hadoop MapReduce。
首先數(shù)據(jù)按照設(shè)定參數(shù)被分塊,并在多臺(tái)計(jì)算機(jī)上啟動(dòng)同一程序的副本。在所有副本中選出一個(gè)作為本次作業(yè)的Master,其余副本則為Slaver并運(yùn)行Reduce或者M(jìn)ap任務(wù)。之后,獲得Map任務(wù)的Slaver利用Map函數(shù)將輸入鍵值對(duì)重新處理,產(chǎn)生中間鍵值結(jié)果緩沖在內(nèi)存中,經(jīng)分區(qū)函數(shù)分隔寫入磁盤,相應(yīng)的位置信息會(huì)經(jīng)由Master發(fā)送到各Reduce工作節(jié)點(diǎn)。這些Reduce工作節(jié)點(diǎn)利用遠(yuǎn)程過(guò)程調(diào)用來(lái)獲取并處理數(shù)據(jù),經(jīng)排序?qū)⑾嗤琸ey對(duì)應(yīng)的value組建集合。value集合再經(jīng)遍歷排序傳給Reduce函數(shù)進(jìn)行合并化簡(jiǎn)操作,寫入HDFS文件系統(tǒng)中。最后,所有任務(wù)完成,Master喚醒用戶應(yīng)用程序,繼續(xù)處理和執(zhí)行其他作業(yè)。
2.1.1 設(shè)計(jì)架構(gòu)
如圖3所示即為本文設(shè)計(jì)的智慧校園平臺(tái)的框架圖。自下而上分別為基礎(chǔ)設(shè)施層、平臺(tái)支撐層、軟件應(yīng)用層,周邊輔助以信息規(guī)范體系和安全保障體系[10-15]。
基礎(chǔ)設(shè)施層,即利用大量硬件資源組建資源池,為上層提供硬件支持,該層包括服務(wù)器、互聯(lián)網(wǎng)、存儲(chǔ)器以及物聯(lián)網(wǎng)傳感器等設(shè)備,并具有較強(qiáng)的后期擴(kuò)展能力。
圖3 智慧校園平臺(tái)框架圖
平臺(tái)支撐層是本文設(shè)計(jì)的重點(diǎn),基于基礎(chǔ)設(shè)施層提供相關(guān)服務(wù)。該層包括用于分布式數(shù)據(jù)存儲(chǔ)和計(jì)算服務(wù)的虛擬分布式存儲(chǔ)與計(jì)算(DSCP)平臺(tái)、用于用戶認(rèn)證和登錄的統(tǒng)一身份認(rèn)證(UAP)平臺(tái)以及用于Web Service注冊(cè)和查找服務(wù)的Web服務(wù)統(tǒng)一訪問(wèn)平臺(tái)。
軟件應(yīng)用層,則是調(diào)用各應(yīng)用系統(tǒng),借助平臺(tái)支撐層提供的各種服務(wù),為用戶實(shí)現(xiàn)課程管理、科研計(jì)算等具體功能。
2.1.2 拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)
平臺(tái)支撐層的使用和服務(wù)提供需要相應(yīng)的基礎(chǔ)硬件來(lái)實(shí)現(xiàn):DSCP平臺(tái)用于數(shù)據(jù)存儲(chǔ)和計(jì)算,因此需要集群的支持;UAP平臺(tái)用于身份識(shí)別,需要身份認(rèn)證服務(wù)器的支持;而Web平臺(tái)用于Web的相關(guān)服務(wù),加上用戶數(shù)據(jù)存儲(chǔ)均需要數(shù)據(jù)庫(kù)的支持。這些基礎(chǔ)設(shè)施安裝在學(xué)校私有云,并經(jīng)虛擬化后向上層提供服務(wù)。因此,最終基于云技術(shù)的智慧校園平臺(tái)相關(guān)拓?fù)浣Y(jié)構(gòu)如圖4所示。
基于支撐層提供的服務(wù),本文的智慧校園平臺(tái)以Web Service的形式向用戶開放并使用。
圖4 智慧校園平臺(tái)拓?fù)浣Y(jié)構(gòu)示意圖
在平臺(tái)設(shè)計(jì)時(shí),由于需要滿足技術(shù)的先進(jìn)性和開發(fā)成本等要求,因此在底層使用Hadoop云計(jì)算框架,并對(duì)基礎(chǔ)設(shè)施進(jìn)行了封裝,用戶只需將精力放在分布式存儲(chǔ)和計(jì)算的開發(fā)及使用上即可。DSCP分布式存儲(chǔ)和計(jì)算平臺(tái)設(shè)計(jì)主要包括數(shù)據(jù)的存儲(chǔ)、計(jì)算和共享、用戶管理和資源調(diào)度的設(shè)計(jì),這里重點(diǎn)介紹數(shù)據(jù)存儲(chǔ)和相應(yīng)的計(jì)算服務(wù)功能實(shí)現(xiàn)的設(shè)計(jì)。
數(shù)據(jù)存儲(chǔ)服務(wù)所用的底層文件系統(tǒng)為HDFS,使用的是Linux或Unix操作系統(tǒng)。因此,設(shè)計(jì)了父用戶DFSProxy代理對(duì)象,用于訪問(wèn)讀寫底層文件系統(tǒng),避免了操作權(quán)限的問(wèn)題。所設(shè)計(jì)的主要類,如圖5所示。
圖5 數(shù)據(jù)存儲(chǔ)服務(wù)中主要的UML類示意圖
數(shù)據(jù)的計(jì)算服務(wù)主要安裝并提供分布式計(jì)算所需的軟件操作運(yùn)行環(huán)境,并重點(diǎn)考慮設(shè)計(jì)作業(yè)運(yùn)行任務(wù)的相關(guān)調(diào)用方法以供學(xué)校用戶使用。本文基于的是Hadoop框架,相應(yīng)的也應(yīng)在MapReduce分布式計(jì)算框架的基礎(chǔ)上進(jìn)行設(shè)計(jì)。因此,學(xué)校用戶向平臺(tái)提交的計(jì)算作業(yè)需滿足該計(jì)算框架的運(yùn)行標(biāo)準(zhǔn)。
UAP統(tǒng)一身份認(rèn)證平臺(tái)設(shè)計(jì)過(guò)程中,考慮到用戶認(rèn)證所使用的數(shù)據(jù)源具有異構(gòu)性,因此本設(shè)計(jì)采用了Spring IOC技術(shù)。最終,本身份認(rèn)證平臺(tái)設(shè)計(jì)主要包括用戶和身份認(rèn)證、單點(diǎn)登錄和客戶端代理幾個(gè)模塊,此處重點(diǎn)介紹用戶和身份認(rèn)證模塊服務(wù)功能實(shí)現(xiàn)的相關(guān)設(shè)計(jì)。
用戶認(rèn)證部分的功能是用于認(rèn)證用戶上傳提交的表單及憑證信息。為了避免中間過(guò)程被他人盜取,用戶認(rèn)證無(wú)誤且通過(guò)后會(huì)將相關(guān)憑證信息重新封裝成為一個(gè)不涉及用戶敏感隱私信息字段的全新對(duì)象。
過(guò)濾器將用戶登錄時(shí)輸入的用戶名、密碼等表單憑證信息傳給Web應(yīng)用,經(jīng)Web Service或其他的API方式調(diào)用相關(guān)身份認(rèn)證方法完成認(rèn)證。本文在此設(shè)計(jì)了底層數(shù)據(jù)庫(kù)和解耦的相關(guān)交互代碼,只將身份認(rèn)證接口提供給開發(fā)者,解決了異構(gòu)性的問(wèn)題。
身份認(rèn)證服務(wù)針對(duì)Web層暴露,對(duì)HTTP提供服務(wù)。相關(guān)接口負(fù)責(zé)認(rèn)證管理器、應(yīng)用管理器和票據(jù)管理器的調(diào)用,以實(shí)現(xiàn)用戶認(rèn)證和單點(diǎn)登錄的相關(guān)驗(yàn)證。該接口可根據(jù)應(yīng)用需要選擇用戶認(rèn)證亦或是單點(diǎn)登錄服務(wù)的Web service方法。相應(yīng)的身份認(rèn)證相關(guān)接口UML類可見圖6所示。
圖6 身份認(rèn)證相關(guān)接口UML類示意圖
上述兩個(gè)平臺(tái)暴露的相關(guān)接口方法,組成Web服務(wù)供用戶訪問(wèn)和使用;平臺(tái)支撐層中各子系統(tǒng)之間也會(huì)上傳發(fā)布自身的Web Service進(jìn)行內(nèi)部數(shù)據(jù)共享。最終,用戶看到的是一個(gè)Web形式的WSAP服務(wù)統(tǒng)一訪問(wèn)入口,諸如教務(wù)系統(tǒng)、課程管理、天氣等物聯(lián)網(wǎng)信息服務(wù)經(jīng)注冊(cè)與添加后,用戶可通過(guò)此入口進(jìn)入并訪問(wèn)。相應(yīng)的WSAP整體框架設(shè)計(jì)示意圖,可見圖7。
圖7 WSAP框架設(shè)計(jì)示意圖
文中用6臺(tái)通用計(jì)算機(jī)搭建Hadoop集群,安裝Ubuntu Linux系統(tǒng),所設(shè)計(jì)的智慧校園平臺(tái)建立在此基礎(chǔ)設(shè)施上的云計(jì)算環(huán)境中,使用的開發(fā)語(yǔ)言是Java。
6臺(tái)計(jì)算機(jī)設(shè)置的主機(jī)和IP地址對(duì)應(yīng)關(guān)系依次為:192.168.1.113—SmartCampus-01(NameNode),…192.168.1.118—SmartCampus-06(剩余 5臺(tái)為 Date?Node)。
數(shù)據(jù)存儲(chǔ)訪問(wèn)實(shí)質(zhì)是對(duì)HDFS系統(tǒng)文件執(zhí)行讀寫操作,因此必然涉及文件的上傳和下載。上傳可由copyFileFromLocal(File srcFile,String dst)(屬于代理類DfsProxy)方法實(shí)現(xiàn),相關(guān)代碼如下所示。
數(shù)據(jù)下載操作,則由代理類下getFileStream(String uri)來(lái)實(shí)現(xiàn),具體代碼實(shí)現(xiàn)可由下述代碼所示。
數(shù)據(jù)計(jì)算服務(wù)主要是針對(duì)用戶提供相應(yīng)的虛擬計(jì)算環(huán)境,對(duì)定制作業(yè)提供runJobFromJar()方法以調(diào)用Jar包形式的MapReduce源代碼,實(shí)現(xiàn)可見下列代碼。
身份認(rèn)證功能的實(shí)現(xiàn)包括服務(wù)器端和客戶代理端的實(shí)現(xiàn),服務(wù)器端身份認(rèn)證用戶驗(yàn)證配置實(shí)現(xiàn)如圖8所示。
圖8 身份認(rèn)證服務(wù)器端用戶驗(yàn)證配置圖
當(dāng)學(xué)校用戶登錄訪問(wèn)智慧校園平臺(tái)的信息門戶時(shí),平臺(tái)系統(tǒng)會(huì)跳轉(zhuǎn)到UAP上,相應(yīng)的Web登錄界面如圖9所示。
登錄成功后,則跳轉(zhuǎn)到WSAP首頁(yè)。由于并未添加諸如教務(wù)系統(tǒng)等服務(wù),此處界面仍是空的。若是選擇訪問(wèn)DSCP平臺(tái)進(jìn)行存儲(chǔ)和計(jì)算,則鏈接地址會(huì)發(fā)生跳轉(zhuǎn),如圖10所示。用戶可以在此界面提交作業(yè)并計(jì)算。總體上看,本文的智慧校園平臺(tái)運(yùn)行良好,達(dá)到了預(yù)期的目標(biāo)。
圖9 智慧校園登錄界面圖
圖10 DSCP平臺(tái)首頁(yè)圖
文中基于云技術(shù),再結(jié)合虛擬化、物聯(lián)網(wǎng)等技術(shù)設(shè)計(jì)并開發(fā)了一套智慧校園平臺(tái)。其中,包括了DSCP分布式存儲(chǔ)和計(jì)算、UAP統(tǒng)一身份認(rèn)證以及Web服務(wù)統(tǒng)一訪問(wèn)等服務(wù)支撐平臺(tái)。經(jīng)過(guò)測(cè)試,該智慧校園平臺(tái)運(yùn)行良好,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),具有調(diào)整現(xiàn)有高校資源、提高高??蒲杏?jì)算能力以及提升管理效率的優(yōu)勢(shì),也為其他基于云技術(shù)的智慧校園平臺(tái)開發(fā)和實(shí)現(xiàn)方案提供了技術(shù)參考。