999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

快速構建在線課程資源平臺研究

2020-12-23 05:47:19羅尹奇湯偉
軟件 2020年10期

羅尹奇 湯偉

摘? 要: 突發公共衛生事件導致高校無法正常開展線下教學活動,在線課程資源平臺成為解決該問題的有效途徑。為了在短時間內實現構建在線課程資源平臺,本文提出采用EXCEL作為數據存儲對象,并將其中的數據加載進內存,同時提供數據訪問接口,從而實現平臺輕量級研發與部署。本文一方面解決了高頻率訪問EXCEL性能低下的問題,另一方面保證了平臺部署、維護和升級的靈活性。

關鍵詞: EXCEL;哈希表;數據緩存;輕量級研發

中圖分類號: TP311.5? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.10.053

本文著錄格式:羅尹奇,湯偉. 快速構建在線課程資源平臺研究——以電子科技大學圖書館在線課程資源為例[J]. 軟件,2020,41(10):204207

【Abstract】: Public health emergencies lead to the failure of normal offline teaching activities in colleges and universities. Online course resource platform has become an effective way to solve the problem. In order to realize the construction of online course resource platform in a short time, this paper proposes to use excel as the data storage object, load the data into the memory, and provide the data access interface, so as to realize the lightweight development and deployment of the platform. On the one hand, this paper solves the problem of low performance of high frequency access to excel, on the other hand, it ensures the flexibility of platform deployment, maintenance and upgradation.

【Key words】: Excel; Hash table; Data cache; Lightweight development

0? 引言

2020年年初的“新冠疫情”對各行各業應對重大突發公共衛生事件的能力和管理機制提出了前所未有的挑戰[1]。高校作為人群聚集和流量密集的公共場所,在疫情的影響下無法正常開展線下教學活動。為響應教育部提出的“停課不停教、不停學”的號召[5],各地高校陸續加強了數字資源和網絡資源服務的能力,特別是以在線課程、微信公眾號、微博、電子圖書等多種形式為載體[2],有力保證了高校的科研教學活動有序開展。

作為保障科研教學的重要手段之一,在線課程資源平臺將數字資源按學院和課程的實際需要進行篩選和整合,以資源門戶的形式提供給用戶使用。一方面課程所用的教材教參資源是高校數字資源的一個子集,通過篩選和整合排除了大部分無關資源,實現課程相關資源的精準投放;另一方面資源訪問權限可控,平臺僅提供資源入口,不改變資源的實際訪問權限規則,盡可能保證校外遠程訪問安全可靠。

為了快速構建在線課程資源平臺,需解決以下三個問題:

(1)課程關聯問題。傳統的在線資源平臺是圍繞資源建設的,資源本身與學院和所開設課程沒有關聯性,這就導致用戶必須通過搜索才能找到課程所需的教材教參。因此構建在線課程資源平臺時需要考慮將學院-課程-教材教參三者進行合理關聯。

(2)分類導航問題。部分高校的在線課程平臺僅對教材教參資源進行了簡單羅列,一次性顯示所有課程的資源鏈接,缺少必要的分類和導航[3],用戶面對上千條鏈接的時候仍需進行搜索。因此構建的在線課程資源平臺需要按學歷、學院和課程分類組織資源鏈接。

(3)部署升級問題。構建在線課程資源平臺是一個逐步迭代和完善的過程,數據隨時可能進行更新。這就要求在線課程資源平臺的數據管理必須具備輕量級特性,平臺的資源數據能夠隨時可編輯,且編輯時不會影響系統的正常訪問。

1? 關鍵技術

1.1? EXCEL與內存對象

在一般的網站平臺中數據庫通常處于存儲的核心,數據的組織具備一定的結構特征(如紅黑樹、B+樹[6,7]等),因此在檢索時能夠充分保證訪問性能。然而數據庫的設計、管理和開發部署過程是重量級的:

(1)在設計上,對象-關系建模過程要求充分分解出業務場景所需的各種對象實體,以及對象實體之間的關聯約束,分解是否合理決定了系統研發的難易程度。

(2)在管理上,數據的增刪改查必須符合一致性約束要求,簡單的管理可以通過可視化界面實現,但復雜操作仍需通過SQL腳本實現,對管理員專業程度要求較高。

(3)在開發上,平臺代碼需構建到數據庫的連接,并通過執行SQL語句或ORM映射才能實現;部署時則目標服務器必須安裝數據庫軟件,同時還需建庫建表。

為實現輕量級開發和部署在線課程資源平臺,以數據庫為存儲核心的架構是不適宜的,因此平臺采用了EXCEL作為數據存儲核心。一方面EXCEL電子表格界面直觀、操作簡單、功能豐富,數據的增刪改查極為方便;另一方面平臺代碼訪問EXCEL的過程為一般的文件訪問,無需建立連接;部署時僅需拷貝文件即可,無需安裝特定軟件。

與數據庫相比,EXCEL的數據存儲是線性的,這就導致了數據訪問的性能不及數據庫,所有的查詢均需要從第一行數據遍歷。同時EXCEL電子表格存儲在磁盤上,磁盤讀寫性能也相比內存低下,并且在面向全校師生大規模訪問時,由于磁盤讀寫性能限制會出現網站長時間無響應的問題。因此需要將EXCEL數據加載進內存緩存區,平臺對內存對象進行訪問,從而確保平臺能夠及時響應。

1.2? 哈希表

EXCEL數據加載進內存緩存區雖然能夠解決磁盤訪問性能低下的問題,但EXCEL數據本身的線性組織形式也會導致內存訪問性能低效。因此內存對象的數據結構不能采用線性的組織形式,而應該采用哈希表實現。

哈希表通過關鍵字與存儲對象之間建立映射關系,經關鍵字能夠快速定位存儲對象[8]。這樣在訪問特定學院的特定課程時,可以在時間復雜度為O(1)的情況下及時獲取數據,避免了線性循環比對,進一步實現了高性能訪問。

雖然哈希表保證了基于Key/Value模式的查詢效率,但在存儲效率上,哈希表由于新數據加入會發生擴容,空間復雜度遠高于線性存儲,因此在加載EXCEL時需要保證系統具有足夠的內存空間防止數據溢出。

1.3? 技術框架

為實現快速構建在線課程資源平臺,系統基于Java Web開發,并且實現了MVC三層架構模型,整合了多種當前較為流行的框架,從而降低了開發難度,提升了開發效率[9,10]。所用框架信息如表1。

2? 體系架構與實現

2.1? 整體架構設計

為了實現資源分類導航,課程信息不采用列表的形式一次性顯示,而是采用樹形結構分層逐步顯示。平臺組織架構如圖1。

其中首頁作為平臺門戶入口,提供了頂層聚合視圖,包含了各個學院的分類鏈接;用戶根據自身專業、所在學院和學歷,選擇對應的鏈接進入該學院開設的課程列表頁面,該頁面也包含了各個課程的分類鏈接;用戶選擇對應課程后進入課程詳情頁面,此時該頁面包含了關于該課程的所有詳細信息,包括課程名、教材列表、教參列表;最后用戶選擇某一教材教參后實現訪問該數字資源。整個過程采用了樹狀分支結構逐步展開,避免了將全部資源列表直接顯示給用戶,保證了用戶可以聚焦自身關注的課程信息。

為實現上述組織架構,并方便后續系統持續更新,平臺采用了典型的MVC三層架構,其中與基于數據庫的系統不同的是,平臺的數據存儲采用了EXCEL,同時在Controller與Model兩層之間,加入了緩存機制,從而確保大規模網站訪問時的性能。平臺整體架構設計如圖2。

(1)EXCEL:資源鏈接的存儲實體,用于存放教參/教材數據。其中教參/教材數據必須遵循自義定的數據協議規范,以便網站解析使用。

(3)Model:完成對EXCEL的解析,產生內存對象,該對象受Ehcache緩存池托管,根據失效時間策略定期重復加載EXCEL。

(3)Controller:提供一系列Action邏輯實體,根據客戶端傳遞的參數返回相應的視圖。

(4)View:采用JSP作為視圖,執行頁面邏輯,生成對應的網頁,并將網頁返回給客戶端,產生最終瀏覽器可見的結果。

2.2? 數據設計

(1)EXCEL字段設計

為了實現平臺分類導航,EXCEL中不僅存儲關鍵數據,同時還需對每一條數據附加標簽字段,用于指示該條數據的性質。由于平臺的核心功能是將教材教參資源展示給用戶,因此EXCEL中的每一條數據是圍繞教材教參URL構建的。EXCEL字段說明如表2。

表2中學生類型標志、開課學院ID、課程ID為分類標志,其作用是提供查詢參數發送到服務器,服務器根據參數值實現逐級訪問。由于EXCEL與數據庫不一樣,不存在多表關聯約束,因此在圍繞教材教參URL構建一條記錄時,會存在大量的學歷、學院和課程等冗余信息。資源URL組則記錄了該資源的訪問路徑,考慮到高校多種數字資源中可能擁有相同信息的資源,因此資源同時具有多個URL使用|(豎線)進行分割。

(2)內存對象設計

EXCEL中數據會周期加載進內存,在緩存池中構建出內存對象。根據1.1、1.2節分析,內存對象會采用哈希表結構進行存放,其類圖設計如圖3。

其中ExcelObject為EXCEL被加載進內存后的實體對象;學院與課程均采用Map(HashMap)結構存儲,使用編號作為鍵值;資源對象采用Set(HashSet)進行存儲,用于區分不同的資源對象,而一個資源對象可能存在多個URL鏈接,故采用List列表存儲資源的具體路徑。

2.3? 關鍵實現

(1)加載EXCEL

盡管EXCEL表在邏輯上和ExcelObject內存對象對等,但兩者的結構卻存在明顯的不同:EXCEL表中數據是按線性順序存放,而ExcelObject則應用到了哈希表,兩者之間需要有數據轉化。為了實現將EXCEL表中數據加載進內存,其關鍵代碼如表3。

其中@Cacheable使用的是Spring緩存注解,其具體實現由Ehcache提供,并且其失效時間配置為1小時。一方面通過緩存的方式避免了頻繁加載EXCEL,提高了訪問性能;另一方面訪問內存對象時對EXCEL文件無影響,管理員可以對文件進行編輯修改,系統無需重啟即可實現自動加載。

(2)教材教參列表獲取

在獲取教材教參列表數據時,瀏覽器通過發送學歷、學院和課程參數對ExcelObject進行查詢,從而實現課程資源定位,其關鍵代碼如表4。

上述過程對于查詢學院和課程同樣適用。其中每一次的訪問均需要獲取一次內存對象,由于采用了緩存,在未失效的情況下緩存池中的ExcelObject對象會被立即返回,性能遠高于直接訪問磁盤。而通過學歷類型、學院ID和課程ID參數對ExcelObject對象中的哈希表進行Key/Value查詢,能夠快速定位到教材教參集合,性能也優于線性訪問。

2.4? 實例分析

在“新冠疫情”的影響下,為落實“停課不停教、不停學”的指示精神,電子科技大學圖書館聯合教務處、研究生院、信息中心,在五日時間內緊急構建2019-2020年第二學期在線課程資源平臺[4]。

該平臺的初步數據來源于教務處和研究生院,主要包含了學歷、學院、課程和教材教參信息,以EXCEL的形式提供給圖書館。圖書館通過本校數字資源平臺,對該數據做附加資源URL處理,生成平臺所需的EXCEL并提交給開發人員。該項目以Maven Web App模板構建,EXCEL文件存放于WEB-INF保護目錄中,并通過路徑搜索的方式讀取該文件,加載進內存緩存池。Controller以Struts2的Action實現,業務邏輯集中在對緩存池中的內存對象進行讀取和查詢。最后項目提交到信息中心做漏洞掃描和安全處理,并最終面向公網發布。

從上述過程可知,EXCEL能友好地編輯修改,操作簡潔,故成為多部門協作和數據流轉的媒介。圖書館在線課程資源平臺直接基于EXCEL而不是數據庫,有效地避免了數據庫安裝、建庫建表、數據導入等操作,極大簡化了系統部署難度。而在開發上由于是直接讀取EXCEL文件并查詢哈希表,沒有數據庫連接配置、DAO/Service層開發、事務管理等操作,代碼復雜程度降低,更容易維護和升級。

3? 結束語

綜上所述,采用EXCEL存儲數據,有效地解決了多部門協作的問題,數據的編輯修改方便快捷。同時數據的訪問過程為文件讀取過程,讀取對象為EXCEL的單元格,代碼實現上簡單直觀。最后在項目部署時,僅需將項目工程連同EXCEL文件一同拷貝部署即可,無需額外安裝其他軟件,系統維護也相對容易。整個平臺的數據存儲、數據訪問、系統部署維護均為輕量級的,這也確保了平臺能夠在短時間內構建出來并實現上線。

然而上述平臺也存在一定的缺陷,一是加載EXCEL過程有大量的異常處理代碼,解析過程與EXCEL字段先后順序嚴格對應,缺少必要的靈活性;二是當EXCEL數據量較大時,加載進內存過程中對內存容量要求較大;三是緩存失效再次加載EXCEL數據時,若數據量較大,則有一定的延遲反映。這些問題在后續的工作中還需進一步深入分析研究。

參考文獻

[1]梁益銘, 謝小燕. 高校圖書館公共衛生治理與服務體系研究——以新冠肺炎疫情防控為例[J]. 高校圖書館工作, 2020, 40(3): 29-36.

[2]惠涓澈, 楊妮, 杜桂平. 機遇與創新: 新冠肺炎疫情下的圖書館閱讀推廣[J]. 當代圖書館, 2020(2): 27-30.

[3]李蔚蔚. 新冠肺炎疫情期間公共圖書館的網絡服務研究[J]. 科教文匯(上旬刊), 2020(6): 163-164.

[4]王惠森, 彭莉紅, 周倩. 新冠肺炎疫情下的高校圖書館服務工作——以電子科技大學圖書館為例[J]. 高校圖書館工作, 2020, 40(3): 84-86.

[5]教育部.疫情就是命令——全國教育系統打響疫情防控狙擊戰[EB/OL].[2020-02-26]. http://www.moe.gov.cn/jyb_xwfb/ xw_zt/moe_357/jyzt_2020n/2020_zt03/yw/202002/t20200203_ 417480.html.

[6]馬博韜, 孫鵬, 朱小勇. 紅黑樹算法研究綜述[J]. 網絡新媒體技術, 2018, 7(4): 56-62.

[7]時亞南. B+樹算法的Java實現方法研究[J]. 計算機技術與發展, 2015, 25(1): 111-114.

[8]葉軍偉. 哈希表沖突處理方法淺析[J]. 科技視界, 2014(06): 230.

[9]林躍, 楊倩, 蓋志靜, 張志坤. Java Web開發中的SSH框架[J]. 湖北農機化, 2020(8): 177.

[10]潘蕊. SSH框架的Web網站設計與實現研究[J]. 成才之路, 2019(36): 58-59.

主站蜘蛛池模板: 中文字幕免费在线视频| jizz亚洲高清在线观看| 91福利免费| 91久久青青草原精品国产| 亚洲av无码专区久久蜜芽| 啪啪免费视频一区二区| 超碰91免费人妻| 久久国语对白| 精品视频免费在线| 在线精品自拍| www.91在线播放| 女人18毛片一级毛片在线 | 国产成人综合久久| 波多野结衣在线se| 欧美亚洲欧美区| 99在线国产| 成年人福利视频| 国产中文一区a级毛片视频| 丁香婷婷久久| 成人亚洲天堂| 国产一级妓女av网站| 1024你懂的国产精品| 成人精品在线观看| 国产成人啪视频一区二区三区| 999精品视频在线| 午夜福利视频一区| 成人综合在线观看| 国产精品人人做人人爽人人添| 欧美中文字幕在线播放| 日本在线免费网站| 丰满的少妇人妻无码区| 国产菊爆视频在线观看| 久久精品人人做人人爽| 亚洲国产成人无码AV在线影院L| 婷婷色丁香综合激情| 亚洲成人精品久久| 日韩精品一区二区三区中文无码| 四虎永久在线| a级毛片在线免费| 一本一本大道香蕉久在线播放| 日韩欧美一区在线观看| 草草影院国产第一页| 91探花国产综合在线精品| 亚洲成肉网| 久久精品免费国产大片| 国产嫩草在线观看| 国产97公开成人免费视频| 国产在线视频福利资源站| 9啪在线视频| 成人字幕网视频在线观看| 欧美a级完整在线观看| 国产自产视频一区二区三区| 日韩AV无码一区| 国产女人18水真多毛片18精品| 国产69精品久久| 国产精品不卡永久免费| 67194成是人免费无码| 国产大全韩国亚洲一区二区三区| 国产激情第一页| 一本一道波多野结衣av黑人在线| 伊人成人在线视频| 精品伊人久久久香线蕉 | 亚洲男人在线天堂| www亚洲天堂| 国产极品美女在线播放| 精品中文字幕一区在线| 免费国产不卡午夜福在线观看| 欧美午夜在线观看| 小说区 亚洲 自拍 另类| 日韩黄色大片免费看| 国产黄在线免费观看| 久久精品丝袜高跟鞋| 国产午夜不卡| 精品国产电影久久九九| 一本大道香蕉久中文在线播放| 中文字幕在线不卡视频| 成人毛片免费在线观看| 日韩精品成人在线| 久久精品电影| 亚洲a级在线观看| 亚洲 欧美 中文 AⅤ在线视频| 99久久国产综合精品女同|