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

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

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

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

圖4 智慧校園平臺拓撲結構示意圖
在平臺設計時,由于需要滿足技術的先進性和開發成本等要求,因此在底層使用Hadoop云計算框架,并對基礎設施進行了封裝,用戶只需將精力放在分布式存儲和計算的開發及使用上即可。DSCP分布式存儲和計算平臺設計主要包括數據的存儲、計算和共享、用戶管理和資源調度的設計,這里重點介紹數據存儲和相應的計算服務功能實現的設計。
數據存儲服務所用的底層文件系統為HDFS,使用的是Linux或Unix操作系統。因此,設計了父用戶DFSProxy代理對象,用于訪問讀寫底層文件系統,避免了操作權限的問題。所設計的主要類,如圖5所示。

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

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

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

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


數據計算服務主要是針對用戶提供相應的虛擬計算環境,對定制作業提供runJobFromJar()方法以調用Jar包形式的MapReduce源代碼,實現可見下列代碼。

身份認證功能的實現包括服務器端和客戶代理端的實現,服務器端身份認證用戶驗證配置實現如圖8所示。

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

圖9 智慧校園登錄界面圖

圖10 DSCP平臺首頁圖
文中基于云技術,再結合虛擬化、物聯網等技術設計并開發了一套智慧校園平臺。其中,包括了DSCP分布式存儲和計算、UAP統一身份認證以及Web服務統一訪問等服務支撐平臺。經過測試,該智慧校園平臺運行良好,達到了預期的設計目標,具有調整現有高校資源、提高高校科研計算能力以及提升管理效率的優勢,也為其他基于云技術的智慧校園平臺開發和實現方案提供了技術參考。