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