宋偉奇 伍軼明


[摘 要]文章闡述了基于社區教育的學習云平臺系統的設計,是實踐開展社區教育的有效嘗試。首先通過分析社區教育對學習云平臺的應用需求,結合云計算 Hadoop 平臺技術,采用 B/S 架構,融合 HDFS 和 MySQL 數據庫,設計出分布式的基于云計算的學習、教育平臺。
[關鍵詞]Hadoop ;云計算;分布式;學習平臺
[中圖分類號]G434 [文獻標識碼]A [文章編號]1008-7656(2017)06-0041-04
一、Hadoop及相關技術介紹
(一)云計算及其特點
云計算是基于 Internet 技術通過服務的方式提供虛擬化資源的計算模式,能夠整合網絡中多種類型的資源共同提供數據存儲和訪問功能。云計算主要分為軟件即服務(SaaS),平臺即服務(PaaS),基礎架構即服務(IaaS)三種服務模式。
云計算的主要特點為:設備利用率高,云計算整合計算資源對用戶開放,提高了主機的運行和使用效率;可靠性高,云計算用戶的數據存儲在云端,數據由集群的節點保存,數據冗余通過集群來處理,以此來保證數據讀取的穩定性;運行成本低,擴展性強[1]。
(二)Hadoop簡介
Hadoop 是由 Apache 開發的一個開源的分布式云計算平臺, Hadoop 的核心是分布式文件系統 HDFS、分布式平行計算框架MapReduce 和分布式數據 HBase, Hadoop平臺為用戶提供大量透明的服務,使得用戶可以輕松利用 Hadoop 整個計算資源來搭建起自己的云計算平臺。 Hadoop 具有的優勢為:高性能, Hadoop 的處理對象可以使數量級在 PB 以上的非結構化數據,得到的結構能夠以通用的形式提供給用戶;可拓展性, Hadoop 的會隨著集群規模的增加,計算能力也會不斷增強, Hadoop 可以拓展到上萬臺服務器節點來完成數據的存儲和計算,有利于系統的后續完善。
二、基于Hadoop的分布式學習云平臺需求分析 Hadoop 平臺的設計基于兼容共享原則和開放原則,設計的主要內容包括系統的整體結構設計和依據系統的結構設計。通過對文獻調研,師生訪問,確定云教學和自主學習平臺需求分析。
通過云計算技術對柳州市社區數字化學習資源進行開發和應用推廣,實現社區分布式的網絡化學習,使用者能夠無縫訪問云服務學習資源的各種應用,并保證系統安全、穩定運行。需求分析如下。
(1)依托柳州市城市職業學院,實現柳州市社區數字化學習資源云平臺的建設,建立面向社區終身學習的“私有云”服務中心,整合電大、職校、培訓機構的學習資源實現提供服務的后臺數據云。
(2)開發SOA架構模式的學習資源管理信息系統,實現系統管理、知識管理、動態學習跟蹤處理等功能。
(3)面向柳州市城市職業學院地理布局上分散的特點,設計分布式的平臺技術架構,滿足學生的分布式學習需求,借助平臺學生能夠異地查看和使用學習資源,實現學生和教師的互動,從平臺上獲取學習資源。滿足教師使用需求,教師能夠通過學習平臺查看和修改教師的信息,實現師生交流互動,借助平臺發布信息和學習資料,獲取和分發學習資源。
(4)實現整個系統的硬件安全、數據安全、網絡安全、系統安全。
(5)課題研究與將與中國移動、電信等運營商合作,邀請他們參與建設社區數字化教育云服務資源中心的建設,由他們投入網絡的線路的租用、移動通信設備建設的費用,計劃二年內投入試運行。
三、基于Hadoop的分布式學習云平臺的設計
云平臺的設計按照系統的職責劃分主要可以分為文件系統,數據訪問系統和 Web 控制系統三部分。
基于基于Hadoop的分布式學習云平臺體系架構模型,系統體系架構模型分為三級: 第一級是服務請求及操作(serviceclent); 第二級是基礎架構和服務應用容器(Web service)提供; 第三級是數據創建、數據訪問及存儲。其中核心部分是第二級。通常云計算劃分為IaaS、PaaS及SaaS三層。其中底層(IaaS)的物理資源主要包括服務提供者所提供的網絡資源、服務器資源、數據庫資源及軟件資源等。而虛擬資源池則是通過不同的技術將相同類型的資源構成同構或接近同構的虛擬資源池。例如, 使用虛擬化軟件VMWARE分別在兩臺基于Power架構的高端服務器上虛擬出20臺虛擬機, 動態分配相應的虛擬CPU、內存、硬盤、I /O 設備及網絡資源,分別在這些虛擬機上部署一套虛擬的硬件環境、不同的操作系統、數據庫及其他相應的應用程序, 進而在這兩臺服務器上虛擬出來的40臺服務器組建成一個虛擬資源池,從而在這個小型的數據中心中設計實施虛擬化和構建云計算環境[2]。
基于Hadoop的分布式學習云平臺屬于中間層,也就是PaaS層,則主要負責對云計算的學習資源進行管理, 并對眾多的訪問管理進行負載均衡優化、調度, 從而為上一層(SaaS)的應用提供可靠安全的服務。通過分布式的基于多租戶技術的管理服務主要是通過將相應的業務封裝成標準的Web Service服務, 使得任何一個用戶能夠按照自己的需求對服務進行定制,多層結構的軟件架構設計使得系統具有很大靈活性,不同的種類的SaaS接入以及對SaaS 軟件進行個性化配置不影響其他用戶的使用, 其基本特征有兩點: 一是能夠服務于大量的用戶并針對每個用戶的使用需求,具備很強的可伸縮性;二是能夠按照要求提供附加的業務邏輯,使得用戶能夠對SaaS應用本身進行擴展, 從而滿足用戶對硬件資源、軟件資源的更大需求。
(一)功能模塊及其說明
項目由7個模塊構成(見表1),其中:
(1)AppworksCommon模塊提供了一些基礎的公共設施,如日志記錄器、配置文件、加密工具、JSON工具等,以及在云存儲業務中所需的一些基礎實體類。
(2)AppworksFramework模塊是基于Java語言的Web+ORM開發框架(Object Relational Mapping框架采用元數據來描述對象一關系映射細節,元數據一般采用XML格式,并且存放在專門的對象一映射文件中),其核心設計目標是提高開發效率、學習簡單、功能強大、輕量級,城職院相關課程建設中的課程Web項目均可使用該框架進行開發。
(3)AppworksCloudExpress模塊是對云存儲業務的底層實現,如HADOOP HDFS的存儲封裝、基于用戶組的存儲業務管理、訪問權限控制、身份認證機制等。
(4)AppworksWebSevice模塊提供了基于Axis2開源技術的Web服務,對外發布AppworksCloudExpress所提供的業務服務。
(5)AppworksServiceClient模塊是二次開發過程中與Web服務對接的類庫,屏蔽了復雜的通信過程,向上層提供面向業務的基礎實體類及對象集合。
(6)AppworksInfrastructure模塊提供數據庫訪問插件、數據庫連接池插件、數據緩存插件,以及各類基礎工具,并構建了基礎的運行時環境;是默認后臺加載的系統運行基礎設施。
(7)VOD模塊是基于Red5框架的流媒體服務端程序集,可以擴展至red5多負載集群。
(二)系統組件部署設計
基于項目中角色任務的不同,應用所需搭配與部署的模塊存在差異性。其中,Web Service服務器的職責是提供存取HADOOP文件系統及維護權限數據的Web服務,因此在該服務器上部署了AppworksCloudService模塊,其他部署的模塊是因為遞歸依賴導致的,其依賴路徑為:
AppworksCloudService
==> AppworksCloudExpress
==> AppworksCloudCommon + AppworksFramework
==> AppworksInfrastructure
流媒體服務器的職責是提供流式媒體播放,其主體業務由Red5開源組件和VOD模塊共同完成,為提供流暢的服務并簡化集成,在HADOOP集群中構建了FUSE掛載機制,將HDFS文件系統掛載到流媒體服務器上,使復雜的存取細節完全透明化[3]。
課程服務器是用戶二次開發應用的部署點,可以完成的任務非常多,但與本項目的關聯點主要是兩個:Web服務與流媒體播放,在課程服務器上需要提供Web服務訪問和結果解析能力,以及對流媒體的解析/中繼能力。因此,AppworksCloudClient是部署在課程服務器上的主體模塊。僅從Web Service角度而言,Web Service Server與課程服務器相當于主從關系,兩者在通信與業務處理過程中存在若干同樣需要的數據結構,這些數據結構以及伴隨的工具被封裝在AppworksCloudCommon中,因此,在課程服務器上也需要部署AppworksCloudCommon模塊。AppworksCloudClient依賴于AppworksInfrastructure,所以在課程服務器上也部署了AppworksInfrastructure模塊。此外,AppworksFramework可以提供簡介的MVC Web應用構建能力,用戶可以通過部署該模塊來獲得/應用這種能力。當然,用戶亦可以選用Struts、Spring MVC等其它第三方MVC框架,此時AppworksFramework模塊可以不引入。
在課程服務器所面向的最終用戶——學員僅需要準備安裝了瀏覽器的桌面計算機,當前項目不對學員所使用的設備有其它多余的限制。
(三)網絡拓撲結構設計
為保障服務質量,尤其是流媒體服務器的服務質量,Red5流媒體服務器應盡量靠近于HADOOP集群。課程服務器可以存在于Web Service服務器與流媒體服務器所在的局域(LAN)網絡,亦可以是存放于異地網絡并通過Internet與Web Service服務器、流媒體服務器網絡通信。
四、結束語
本社區教育學習云平臺給出一種面向城市社區提供繼續教育資源的云收集核心機制,作為面向“學習云”的PaaS平臺的核心部件(AppworksFramework),平臺的緩存應用調度機制主要基于hadoop分布式存儲平臺設計了針對性的文件緩存機制(采用最近最久未使用算法作為緩存替換策略);項目基于Hadoop分布式存儲平臺提供的基于Java的API原生庫實現了對這些API的封裝,屏蔽訪問的復雜細節以及涉及到敏感信息的配置參數,并加入了安全機制,為大規模的上層應用開發(SaaS)屏蔽了底層復雜性[6][7];提供了調用Hadoop分布式存儲平臺的webservice封裝接口,使得應用者能夠跨平臺的調用本地的云存儲服務,同時,也能夠為后期大量的數據進行MapReduce計算提供了基礎設施保障[8]。
[參考文獻]
[1]王妤姝.基于Hadoop的云教學與自主學習平臺設計[J].軟件開發,2016(11).
[2]郭松.基于Hadoop的海量學習資源云存儲模型設計研究[J].計算機應用與軟件,2016(5).
[3]夏曉峰.基于Hadoop的MOOC學習分析系統的構建[J].計算機時代,2016(1).
[4]朱建生,汪健雄,張軍鋒.基于NoSQL數據庫的大數據查詢技術的研究與應用[J].中國鐵道科學,2014(4).
[5]林清瀅.基于Hadoop的云計算模型[J].現代計算機,2010(7).
[6]張文峰.MapReduce模型的分布式計算平臺的原理與設計[J].華中科技大學,2012(5).
[作者簡介]宋偉奇,柳州城市職業學院副教授,碩士,研究方向:計算機網絡應用、網絡工程;伍軼明,廣西科技大學副教授,碩士,研究方向:計算機應用、計算機教育研究。
[責任編輯 李 兵]