常香玉 王麗紅 黃俊平
摘要:從教育部《教育信息化2.0行動計劃》要求出發,依托大數據、云計算和物聯網等先進技術,針對校內資源短缺、資源利用率低下等問題,設計開發了校園信息交流和資源共享平臺,并在云服務器上進行部署,提供校園內實時信息的發布、校園動態了解和資源共享,從而為師生提供方便。
關鍵詞:信息交流;資源共享;Hadoop
中圖分類號:TP311.1 文獻標識碼:A
文章編號:1009-3044(2019)29-0233-02
1背景
教育部在2018年4月印發《教育信息化2.0行動計劃》,行動指出要以云計算、人工智能、大數據、物聯網等新興技術為基礎,依托各類智能設備及網絡進行信息資源建設,向師生提供全方位和個性化的信息化服務。
但是在當今高校內還存在著信息資源分配不均,資源利用率低等諸多問題。本文意在通過建立一個校園內的信息交流和資源共享的平臺,實現校園內各院系師生交流討論、學校組織發布公告、校外商家發布招聘等的平臺,提高校內凝聚力,加快公告發布速度。進而豐富校內師生的校園生活,加快校園事務的散布執行速度,提高校園政策的發布質量。最大限度地調動校內師生的學習積極性和工作積極性,拉近師生之間的關系,共同打造一個完美的校園平臺。
2平臺建設的主要技術載體
2.1大數據
Hadoop是大數據開發的重要框架,核心是HDFS(分布式文件系統)和MapReduce(并行計算模型),分布式文件系統高效地完成大規模數據集的存儲,MapReduce為海量數據提供計算。大數據分析的統計任務有Hive組件完成,應用HBase分布式數據庫實現文件的高速寫入和讀取。HDFS與MapReduce的結合使得Hadoop變得更加強大。
2.2云計算
“云”實質上就是一個網絡,狹義上講,云計算就是提供一種資源的網絡,使用者可以隨時獲取“云”上的資源;廣義上講,云計算是信息技術、軟件、互聯網相關的一種服務,這種計算資源共享池叫作“云”。云計算的基礎是一個龐大的數據信息資源池,其最為突出的特點就是能夠在非常短的時間內,完成海量數據的處理。云計算作為一種全新的網絡概念,其核心是可以將很多的計算機資源協調在一起,使用戶通過網絡就可以獲取到無限的資源,同時獲取的資源不受時間和空間的限制。
2.3物聯網
物聯網是一種將虛擬世界與物理世界連接在一起的低功耗廣域網,是在互聯網基礎上延伸和擴展的將各種信息傳感設備與互聯網結合起來而形成的一個巨大網絡。其基本特征可概括為整體感知、可靠傳輸和智能處理。物聯網是新一代信息技術的重要組成部分,其核心和基礎仍然是互聯網,是在互聯網基礎上延伸和擴展到了物品與物品之間,進行信息交換和通信,實現對物品的智能化識別、定位、跟蹤、監控和管理。
3基于Hadoop的校園信息交流和資源共享平臺設計
3.1總體架構
基于Ha(100p的校園信息交流和資源共享平臺按照邏輯分層的方法劃分為以下4層分別是“數據層”、“系統層”、“網絡層”和“應用層”。
數據層:利用HDFS根據數據特點和具體業務需求將數據分類存儲,并進行分布式處理,完成大型數據的各種需求分析,業務功能被識別后被分解成相應的任務。中間件通過相應參數對應用層具體需求做出判斷,并根據判決結果決定把任務如何處理。
系統層:校園信息交流和資源共享平臺包括操作系統及各類子系統,硬件平臺包括中心服務器及終端分布式設備。它連通和支撐其他各層,是整個信息交流和資源共享平臺的軟硬件載體。
網絡層:該層為校園各類信息及資源的傳輸和覆蓋提供支撐。它包括用戶與平臺聯系的有線和無線網絡;為人、物定位的位置網絡;支撐各類傳感器數據傳輸的物聯網絡等等。
應用層:將數據處理層得到的數據用相關圖或表進行表示,通過業務規則和管理流程向用戶提供交互服務,同時也可提供開放的應用系統開發環境。
3.2平臺開發實現
平臺包括登錄功能,提問模塊、回答模塊、私信模塊等。
登錄模塊功能首先在DAO層設定UserDAO接口,用來存放與數據庫用戶表交互的SQL語句,及其對應的方法。然后在Service層設置調用UserDAO方法及書寫控制邏輯,如注冊時生成salt、密碼加密、生成隨機頭像路徑,登錄時設置登錄狀態,生成身份標識等。最后在Controller層的LoginContmller設置登錄、注冊響應路徑,設置攔截器,設置注冊登錄的異步隊列處理方法。
提問模塊功能首先在DAO層設定QuestionDAO接口,用來存放與數據庫問題表交互的SQL語句,及其對應的方法。然后在Service層設置調用QuestionDAO方法及書寫控制邏輯,如在提問時對問題標題及內容做敏感詞過濾,對問題答案進行排序,生成問題的用戶關注列表,問題回答的贊踩統計等功能。最后在Controller層的QuestionController設置提問,問題詳情頁等的響應路徑及贊踩、關注等功能的調用。
實現回答模塊功能首先在DAO層設定CommentDAO接口,用來存放與數據庫評論表(由于回答可以看作對問題的評論,和對回答的評論類似,所以這里把回答模塊和評論模塊作為一個模塊)交互的SQL語句,及其對應的方法。然后在Ser-vice層設置調用CommentDAO方法及書寫控制邏輯,如顯示回答數,設置、顯示贊踩數等。最后在Controller層的Comment-Controller設置回答的響應路徑及對回答內容進行敏感詞過濾等功能的調用。
實現私信模塊功能首先在DAO層設定MessageDAO接口,用來存放與數據庫私信表交互的SQL語句,及其對應的方法。然后在Service層設置調用MessageDAO方法及書寫控制邏輯,如發送私信,獲取對話列表,獲取未讀私信數,對閱讀完的私信進行清零等。最后在Controller層的MessageController設置私信的列表展示頁面、對話列表頁面、發送私信頁的路徑設置,及對MessageService的方法的調用處理。
3.3平臺細節設計
1)敏感詞過濾
為了打造一個“干凈”“和諧”的校園網站,過濾掉那些不堪人目的詞匯是一項很有必要的工作,所以在該項目中,每一個有文字發表的過程都會有一次敏感詞過濾。本人采用的敏感詞過濾算法是使用“前綴樹”實現的。
2)Redis的使用
Redis的高速、強有效性在本人的項目中起到一個很重要的作用。例如為了及時響應用戶的關注列表,Reds能夠快速地完成操作。并且在使用Set這個數據結構之后,十分方便快捷地響應用戶的“贊”“踩”操作,在私信模塊中也發揮重大作用。而在做異步隊列的操作時,Reds的參與也加強了程序的有效性,保證了程序運行時的流暢性。
3)異步處理
由于服務器的處理能力有限,在某一時刻可能會有大量的用戶請求發生,此時若無有效的處理算法,則會發生嚴重的接口堵塞,甚至宕機。為了防止此類事件的發生,在平臺設計中書寫了一個異步架構。所有的請求會發送到優先隊列中存儲,然后處理程序會不斷地從請求隊列中取出請求處理。
4)消息發送模式
因為不同用戶在線狀態不同,不同用戶的粉絲數不同,不同問題的被關注數不同,所以對于不同的主體,消息的發送模式應該有所區分,以充分發揮服務器的性能,提高用戶體驗。本項目采用的消息發送模式是:對于活躍的、在線的用戶采用推送消息的模式,這樣新產生的事件能夠及時被這類用戶看到;對于其他用戶則采用拉取消息的模式,在這類用戶不上線的時候,與他們相關的事件會晚些觸發,這樣節省下來的性能可以用來提高在線用戶、活躍用戶的用戶體驗。
5)全文搜索
作為一個信息集成的網站,搜索功能是必不可少的,這里使用的是Solr來作為平臺的搜索引擎。但是Solr只有英文的分詞,所以這里需要自定義中文的分詞。首先要創建中文分詞器,這里創建了索引時候的分詞器和查詢時候的分詞器,并將Solr自帶的分詞分析程序導入到配置中。然后在配置中加入mysql的配置、數據配置、導數據庫數據的iar包,重啟并導人索引,最后設置一些細節配置如關鍵詞高亮等就可以使用了。
4結束語
基于Hadoop的校園信息交流和資源共享平臺,借助于現今比較成熟的云計算虛擬服務器,構建了一個供校內各院系師生交流討論、學校組織發布公告、校外商家發布招聘等的平臺,提高校內凝聚力,加快公告發布速度。進而豐富校內師生的校園生活,加快校園事務的散布執行速度,提高校園政策的發布質量。打造了一個信息多元化、管理高效化、可快速搭建起來的實時信息交流和資源共享的平臺。