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

基于學生評教小程序的Web服務端研究與設計*

2023-10-23 02:58:42楊亞仿林政藝
計算機時代 2023年10期
關鍵詞:程序用戶設計

楊亞仿,林政藝

(廣西中醫藥大學,廣西 南寧 530200)

0 引言

無論是哪一種小程序,基本的用戶驗證、業務加載、流程提交等數據請求,都需要Web 服務端的安全驗證與快速響應,因此,Web 服務端的數據安全和快速響應是小程序業務的運行基礎。傳統的互聯網服務器可以使用內網方式進行數據通信,但小程序和Web 服務端之間必須使用公共域名進行數據通信或數據交換,因此小程序對Web 服務端的數據安全和響應速度有更高的要求。

本文基于實際的高校學生評教小程序項目,對小程序的Web服務端特點進行研究與分析,對Web服務端如何保持安全、高效的運行進行了討論,結合具體評教業務流程,設計了一套符合該項目需求的Web 服務端程序,該服務端程序具備一定的通用能力,包括自定義JSON 序列化、自定義Token 驗證,也包括適合該項目特點的課表數據緩存與同步更新機制。

1 小程序Web服務端的研究綜述

互聯網的各種應用均離不開Web 服務端的支持,傳統Web 服務端的基本功能應包括用戶身份認證、數據交互、數據安全、數據緩存等,小程序的Web 服務端不僅要包含以上功能,還應在這些功能上追求更高的性能和效率,才能應對和滿足小程序的輕量、便捷、高效等特點與要求。很多學者對此展開了研究與討論,并取得了一定的研究成果。

周虎通過對比傳統Cookie/Session 身份驗證機制的不足,提出了一種基于JWT 認證過程中動態刷新Token的方法,并在Web開發中進行了實踐應用[1]。李毓麗等自定義了一套Token校驗機制并利用Swoole下的WebSocket 接口實現了消息通知功能[2]。鄒軍國在輕量級微服務架構思想指導下按照Token身份認證原理提出了高校實訓互動平臺的身份認證解決方案[3]。徐冉通過研究微服務架構,使用消息中間件與高性能緩存,研究實現了秒殺系統的Web 服務端設計[4]。張欣將知識圖譜引入小程序,面向學生個性化學習設計了認知診斷、個人知識圖譜和課程推薦等功能,實現了基于微信小程序的教育知識圖譜個性化學習平臺[5]。饒煜等分析了在線學習系統的需求,在Web 服務端設計了文件上傳、題庫和考試管理、統計分析等功能,完成了基于微信平臺的在線學習系統的設計與實現[6]。

賈歐等通過使用緩存技術,對用戶需要查閱的數據進行預讀取,提前在數據庫中查詢出符合條件的數據存入緩存中,減少數據庫的訪問次數,優化了電能質量智能信息系統,提高了Web 應用系統的性能[7]。翁美珍等在多媒體會議系統的研究中,設計實現了基于LRU 替換策略的緩存系統,有效提高了緩存系統的字節命中率,同時將Memcached 技術應用于Hibernate框架中實現了數據庫數據緩存,提高了訪問吞吐量和服務響應速度[8]。

綜上所述,基于Web 服務端的信息系統在各行各業中發揮著舉足輕重的作用,Web 服務端通過Token機制能有效標識用戶身份,通過緩存技術能有效提高信息系統的響應速度。

2 學生評教小程序Web服務端功能分析

本文中的學生評教小程序來自于實際的教育教學改革與研究課題,基本的功能要求是每個學生正常登錄后可以針對教師已講授的所有課程做出實時的教學評價,具體需求有:①身份驗證,學生須用學號登錄;②學生以移動端方式(如手機、平板)評教為主,以課表為單位進行評教,課表數據來自于教務系統;③數據傳輸過程中應采用有效的安全檢測方法,防止數據惡意請求及數據泄漏;④Web 服務端須高效穩定運行,能實時響應學校近數千名學生的評教數據請求;⑤評教界面應操作簡單。

針對以上需求,本文的Web 服務端采取如下方式進行設計:

⑴系統結構方面采取經典的三層模式架構應對評教業務功能,即業務邏輯層、數據訪問層和實體層。該架構最大的優勢是各層之間的結構清晰、易于擴展和邏輯復用,如未來可在同一系統架構下較為方便的增加同行評教、督導評教等功能。

⑵采取自定義JSON 序列化方式傳輸數據。小程序與Web 服務端之間的數據傳輸須使用標準JSON格式,本文提出了一種自定義JSON 序列化的方式,能實現定制化輸出,在一定程度上提高了對象序列化為JSON字符串的效率,提升了系統性能。

⑶采取自定義Token 方式對用戶身份和數據請求進行安全驗證,防范數據惡意請求及數據泄漏。

⑷采取數據緩存的方式將課表數據加載到內存中,提高數據查找效率,根據不同數據的特點分別采取特定時間間隔進行同步更新,保持數據一致。

⑸評教界面以課表為單位,最近七天需要評教的課表采取列表方式,讓學生一次選擇后即可打開評教頁面進行內容填寫,其他需評教的課表采取列表和表格兩種方式進行選擇。

3 學生評教小程序Web服務端設計

3.1 自定義JSON序列化

Newtonsoft.Json、JavaScriptSerializer 等現有組件提供了較為通用的JSON 序列化方法,使用起來也比較簡單,但還不夠靈活,較難實現定制化輸出,如根據實體中的多個屬性值進行邏輯判斷后輸出不同的JSON 字符串、組合多個實體的屬性值輸出JSON 字符串等,現有組件面對此種特殊需求較難實現。

根據面向對象編程的基本思想,哪里出現變化就封裝哪里,即封裝變化點,軟件設計的關鍵是能將變化點抽象提煉出來。通過對本文的Web 服務端功能進行分析,學生、課表等各實體對象在進行JSON 序列化過程中可能出現較大變化,因此將該JSON 序列化過程封裝在特定接口中,具體如下:

其他實體類須繼承實現該接口的ToJson 方法來實JSON 序列化的定制輸出,如學生用戶User 類繼承了IJson 接口,并實現了ToJson 方法,實現了level 屬性的格式化定制輸出,具體如下:

其他實體類實現IJson 接口的過程與上類似,如圖1所示。

圖1 Web服務端的實體類設計

3.2 自定義Token

Token 的使用在一定程度上提高了數據的安全性,在Token 認證體系下,小程序通過用戶身份驗證后,接下來與Web 服務端的數據交互內容均由正常的業務數據+Token 內容兩部分組成,其中Token 內容用于驗證數據請求的有效性。標準Token 內容包括Header,Payload,Signature,其中Payload存儲著主要的數據內容,包括用戶Id,TokenId,頒發時時間和過期時間等,在實際業務中也可根據需要包括其他自定義內容,此舉固然安全,但標準Token 的內容較多,增加了開銷,此外,Token 過期后,用戶需要重新進行用戶名密碼驗證,降低了用戶體驗。

為了減少小程序與Web 服務端的數據傳輸開銷,本文基于標準Token,自定義了Token 內容,使用Guid(128 位,用32 個十六進制數表示)作為TokenId,小程序與Web 服務端之間的數據傳輸僅加上該TokenId(32 位字符串)用于標識驗證用戶,TokenId 的頒發時間和有效期驗證轉移到Web服務端處理。標準Token和本文自定義Token 兩種情況下的數據傳輸對比如圖2所示。

圖2 標準Token與自定義Token數據傳輸對比

Web 服務端對Token 的處理主要由Token 類和TokenBll類完成,具體設計如圖3所示。

圖3 Token類和TokenBll類設計

Token類的成員以數據屬性為主,如表1所示。

表1 Token類

Token類在構造函數中實現了TokenId的自動生成,具體代碼如下:

TokenBll 類包括屬性成員和方法成員兩種,最重要的屬性是Toekens字典集合,其存儲了所有的Token集合,其他屬性和方法均圍繞該字典集合展開相應的增加與更新操作,主要說明如表2所示。

表2 TokenBll類

私有方法TokenAdd 和TokenUpdate 在實際使用過程中需同時處理多個客戶端的并發請求,即需實現多線程環境下對共享數據Tokens 字典集合的同步與互斥操作,本文結合Lock 鎖和LockObj 對象,實現了對該共享資源的控制,具體實現過程如下:

3.3 數據緩存

傳統模式下,小程序的數據交互由小程序端向Web 服務端發出數據請求,Web 服務端向數據庫提交SQL命令取得返回結果,再向小程序端發出數據響應,該模式經過Web 服務端與數據庫兩次數據響應,當用戶并發數較多時,對整個程序的性能會有一定影響。

本文采用了數據緩存模式下的數據交互方式,Web 服務端將數據庫中的數據提前讀取到數據緩存中,當收到小程序端的數據請求時,從數據緩存中查詢數據進行數據響應,因內存查詢的速度遠高于數據庫的查詢速度,從而提高了數據響應能力。傳統模式和數據緩存模式下的數據交互對比如圖4所示。

圖4 傳統模式與數據緩存模式下的數據交互對比

數據緩存的關鍵在于選擇哪些數據進行緩存,緩存的數據何時更新同步。緩存的數據應該較少變化,或者是呈現有規律的變化,如果數據經常變化,數據同步的代價太高,那就失去了緩存的意義。通過對學生評教小程序的業務進行分析,需要交互的評教數據及其特點如下:

⑴學生登錄數據,包括學號、密碼等,因為用戶會隨時修改密碼,所以一般不做緩存處理。

⑵ 課表數據,包括學號、課程名、教師、上課的教室、上課的時間等。課表數據屬于數據交互最集中的數據,學期課表正式公布后,一般不會調整,如果需要調整,也要提前一到二天,屬于有周期變化規律的數據,可做緩存,每天定時進行數據同步。

⑶教師列表總數據,可能會單獨請求該數據,教師列表總數據在學期中途較少有變化,可做緩存,可從最新的課表數據中同步更新。

⑷教室列表總數據,可能會單獨請求該數據,教室列表數據是本系統中最少變化的數據,可做緩存,可從最新的課表數據中同步更新。

以上評教數據中,數據交互最頻繁的是課表數據,下面以課表數據為例簡述其數據緩存和數據同步的實現過程,關鍵代碼如下:

4 結束語

本文基于實際的高校學生評教小程序項目,研究了小程序Web 服務端的實現要點,通過自定義JSON序列化,實現了小程序端與Web 服務端的數據傳輸,通過自定義Token 完成了數據請求的安全驗證,通過數據緩存提高了Web 服務端的響應能力,在實際應用中有效提高了小程序Web 服務端的處理能力,具有一定的參考價值。

猜你喜歡
程序用戶設計
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产精品欧美激情| 欧美日韩国产在线观看一区二区三区| 国产高清无码麻豆精品| 久久99久久无码毛片一区二区| 中文字幕色站| 99热线精品大全在线观看| 日韩黄色在线| 亚洲VA中文字幕| 久久窝窝国产精品午夜看片| 91国内在线视频| 黄色网址免费在线| 国产高清不卡| 毛片在线播放网址| 亚洲欧美日韩另类在线一| 精品乱码久久久久久久| 色欲色欲久久综合网| 亚洲熟女偷拍| 亚洲精品视频免费| 亚洲无码高清免费视频亚洲| 国产毛片高清一级国语 | 青青青国产视频手机| 女人18毛片久久| 亚洲中久无码永久在线观看软件 | 亚洲综合在线最大成人| 久久久久青草大香线综合精品| 日韩精品无码免费专网站| 欧美一级片在线| 国产成在线观看免费视频| 国产香蕉国产精品偷在线观看| 波多野结衣AV无码久久一区| 久久精品嫩草研究院| 高清无码不卡视频| 99热6这里只有精品| 国产一区三区二区中文在线| 亚洲成人福利网站| 亚洲色图欧美视频| 国产精品99r8在线观看| 蜜芽一区二区国产精品| 国产综合亚洲欧洲区精品无码| 91小视频在线观看| 伊人色婷婷| 国产小视频在线高清播放| 四虎永久免费地址在线网站| 1769国产精品免费视频| 狠狠色丁香婷婷综合| 国产精品自在自线免费观看| 日韩成人高清无码| 婷婷中文在线| 欧美日韩专区| 国产成人av一区二区三区| 51国产偷自视频区视频手机观看 | 在线观看无码a∨| 国产麻豆另类AV| 视频一本大道香蕉久在线播放 | 亚洲精品视频网| 免费人成视频在线观看网站| 台湾AV国片精品女同性| 亚洲精品另类| 88av在线| 亚洲乱伦视频| 久久综合干| 国产精品欧美在线观看| 国产男人天堂| 亚洲乱强伦| a欧美在线| 中文字幕免费视频| 狠狠做深爱婷婷久久一区| 国产一区二区三区免费| 国产啪在线91| 67194亚洲无码| Aⅴ无码专区在线观看| 一本久道久综合久久鬼色| 狠狠综合久久| 天堂网亚洲综合在线| 性欧美久久| 亚洲午夜福利精品无码不卡 | 亚洲中文精品人人永久免费| 久久天天躁狠狠躁夜夜2020一| 91精品国产91久无码网站| 亚洲第一综合天堂另类专| 无码粉嫩虎白一线天在线观看| 日韩av无码DVD|