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