• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于微信小程序的在線練習(xí)系統(tǒng)

      2021-03-15 07:01:33呂翔羅回彬陳蔓陳國俊丘柏俊宋家豪
      電腦知識(shí)與技術(shù) 2021年3期
      關(guān)鍵詞:分布式系統(tǒng)微信小程序

      呂翔 羅回彬 陳蔓 陳國俊 丘柏俊 宋家豪

      摘要:針對(duì)在校學(xué)生進(jìn)行日常練習(xí)時(shí)只可在PC端的問題,提出了基于微信小程序的在線練習(xí)平臺(tái)——“題客”。與傳統(tǒng)學(xué)習(xí)方式不同,該平臺(tái)結(jié)合數(shù)據(jù)挖掘技術(shù)和微信小程序應(yīng)用,可以較好地滿足學(xué)生靈活做題需求以及方便教師及時(shí)掌控學(xué)生學(xué)習(xí)情況。

      關(guān)鍵詞:分布式系統(tǒng);微信小程序;在線練習(xí)平臺(tái)

      中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2021)03-0122-03

      Abstract: In order to solve the problems that can only be solved on PC during daily practice, an online practice platform based on WeChat was proposed. Different from the traditional way of learning, this platform combines data mining technology and WeChat small program application, which can better meet students' demands for flexible problem solving and facilitate teachers to control students' learning situations in time.

      Key words: distributed system; WeChat Mini Program; online practice platform

      1 背景

      在大數(shù)據(jù)時(shí)代下,教育這個(gè)傳統(tǒng)行業(yè)也開始越來越多地走向智能化,網(wǎng)絡(luò)課堂、線上問答學(xué)習(xí)模式的興起,使得手機(jī)教育系統(tǒng)應(yīng)運(yùn)而生,充分利用好手機(jī)能夠讓學(xué)生們更好地汲取知識(shí)。其中,手機(jī)在線練習(xí)系統(tǒng)在智能教育中扮演著不可或缺的角色,在高校學(xué)習(xí)知識(shí)的過程中,大學(xué)生也需要通過課程習(xí)題來鞏固知識(shí)以及檢驗(yàn)自己的水平,然而傳統(tǒng)的學(xué)習(xí)檢驗(yàn)方法都是通過筆試或是PC的web在線刷題,這種模式受限于時(shí)間和場(chǎng)地,不便于教師及時(shí)管理,不僅教師無法及時(shí)知道學(xué)生學(xué)習(xí)情況,而且也不便于學(xué)生學(xué)習(xí)。

      如今,手機(jī)以它的便攜性與輕巧性成為每個(gè)大學(xué)生隨身攜帶的必需物,據(jù)調(diào)查,比起傳統(tǒng)模式,大學(xué)生更愿意通過手機(jī)刷題做練習(xí),但是,當(dāng)前手機(jī)應(yīng)用中并沒有很實(shí)用且面向?qū)ο鬄楦咝@蠋熀蛯W(xué)生的做題軟件,針對(duì)這些情形,高校可利用面向大學(xué)生且使用手機(jī)就可以操作的在線練習(xí)系統(tǒng)來管理學(xué)生學(xué)習(xí),以便提升管理質(zhì)量、促進(jìn)學(xué)生們的學(xué)習(xí)。

      2 平臺(tái)設(shè)計(jì)方案

      2.1 系統(tǒng)架構(gòu)

      在此練習(xí)平臺(tái)研發(fā)的過程中,技術(shù)上突破了傳統(tǒng)的WEB后臺(tái)的架構(gòu)開發(fā)模式,采用了最新的分布式系統(tǒng)架構(gòu)模式替代,并且在前后端分離開發(fā)的基礎(chǔ)上,采用模塊化的微服務(wù)模式,具體架構(gòu)如圖1所示。學(xué)生將微信小程序作為入口,而老師端通過WEB瀏覽器可以登錄練習(xí)平臺(tái)的后臺(tái)。此外,以Spring Cloud Gateway作為API網(wǎng)關(guān)入口,應(yīng)用服務(wù)器進(jìn)行數(shù)據(jù)處理、存儲(chǔ)以及報(bào)表統(tǒng)計(jì)等等,普通數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫MySQL中,而需要進(jìn)行分析挖掘的數(shù)據(jù)放置Elastic Search非關(guān)系數(shù)據(jù)庫中。為了解決性能瓶頸問題,采用了RabbitMQ消息隊(duì)列以及Redis緩存等中間件,并采用Eureka負(fù)責(zé)服務(wù)的注冊(cè)與發(fā)現(xiàn),同時(shí)采用docker[1]來管理各個(gè)部件,以此保證各個(gè)模塊在自己的工作區(qū)順利完成任務(wù)。

      2.2 平臺(tái)功能模塊

      使用在線練習(xí)平臺(tái)的角色有兩個(gè),分別是學(xué)生和老師,學(xué)生端通過微信小程序進(jìn)入該平臺(tái),該角色功能主要由三個(gè)模塊組成,分別是答題模塊、班級(jí)模塊以及論壇模塊。教師端通過瀏覽器進(jìn)入該平臺(tái),該平臺(tái)由四個(gè)模塊組成,分別為題目導(dǎo)入模塊、班級(jí)初始化模塊、答題分析模塊以及報(bào)表服務(wù)模塊。具體功能點(diǎn)如圖2所示。

      3 主要技術(shù)

      3.1 MySql集群機(jī)制

      為了保證數(shù)據(jù)庫的可靠性和應(yīng)用服務(wù)器的可靠性,作者采用了主從復(fù)制的MySQL集群技術(shù),部署了兩臺(tái)MySQL服務(wù)器,分別作為主服務(wù)器(master)和從服務(wù)器(slave),主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器和從服務(wù)器在日志中讀取最后一次成功更新的位置。從服務(wù)器接收那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。具體如圖3所示。

      3.2 Redis緩存技術(shù)

      考慮到平臺(tái)有許多業(yè)務(wù)邏輯都有高并發(fā)的需求,比如在做題時(shí)需要獲取題目,查看排行榜等等業(yè)務(wù),數(shù)據(jù)庫的讀寫操作將成為平臺(tái)的瓶頸,作者使用Redis緩存技術(shù)并采用主從復(fù)制的Redis集群[2]技術(shù)來保證其可靠性和高效性,具體如圖4所示。這樣當(dāng)要從數(shù)據(jù)庫中讀取數(shù)據(jù)時(shí),首先都要先查詢Redis中是否存在緩存數(shù)據(jù),若有,則直接使用緩存數(shù)據(jù),若沒有,才去訪問數(shù)據(jù)庫,同時(shí)將讀取的數(shù)據(jù)存放到數(shù)據(jù)庫中。

      3.3 RabbitMQ消息隊(duì)列

      考慮到學(xué)生扎堆完成答題任務(wù),需要將數(shù)據(jù)保存到數(shù)據(jù)庫中,在應(yīng)用服務(wù)器邏輯處理過程中,如果是多個(gè)學(xué)生在同一時(shí)間提交,會(huì)出現(xiàn)超出應(yīng)用服務(wù)器的處理能力的問題,會(huì)導(dǎo)致用戶操作得不到反應(yīng),這將極大影響用戶體驗(yàn)。為此,作者采用了RabbitMQ[3]消息隊(duì)列技術(shù)中的異步Topic轉(zhuǎn)發(fā)模式,如圖5所示。學(xué)生只要提交請(qǐng)求,首先會(huì)將提交的做題數(shù)據(jù)保存起來放入消息隊(duì)列中,然后應(yīng)用服務(wù)器即可響應(yīng)用戶,而應(yīng)用服務(wù)器則可以慢慢地從消息隊(duì)列中取出數(shù)據(jù)進(jìn)行處理。

      3.4 Elasticsearch檢索技術(shù)

      在統(tǒng)計(jì)學(xué)生成績(jī)以及報(bào)表服務(wù)的時(shí)候,需要對(duì)答題結(jié)果這一張表進(jìn)行大量檢索,答題結(jié)果這張表的每條記錄作為一個(gè)學(xué)生一道題的做題結(jié)果,這意味著這張表中的記錄的增加速度十分迅速,若放在MySQL關(guān)系型數(shù)據(jù)庫中,一段時(shí)間之后的檢索速度會(huì)有所下降,所以作者采用專門做檢索的Elastic Search[4]來實(shí)現(xiàn)這一部分。同時(shí),在MySQL數(shù)據(jù)庫中的該表用于保存數(shù)據(jù),這樣可以保證學(xué)生答題情況得到保存的可靠性。所有數(shù)據(jù)先插入到MySQL數(shù)據(jù)庫中,在應(yīng)用服務(wù)器中開啟了一個(gè)定時(shí)任務(wù),每隔一分鐘就會(huì)從MySQL數(shù)據(jù)庫中的答題結(jié)果表數(shù)據(jù)傳輸?shù)紼lastic Search中并做好記錄。

      @Scheduled(cron = "0 * * * * MON-SAT")

      @Override

      public void helloScheduled(){

      Object data = getDataFromMySQL(); //將數(shù)據(jù)從數(shù)據(jù)庫中取出

      data = ESService.refreshData(data); //重新編排數(shù)據(jù),以適用es

      ESService.addResult(data); //將數(shù)據(jù)保存到es

      }

      3.5 學(xué)生成績(jī)數(shù)據(jù)分析設(shè)計(jì)

      該功能是根據(jù)學(xué)生平均做題時(shí)間與和老師布置任務(wù)所答題的正確率來進(jìn)行劃分,分為四個(gè)部分。根據(jù)所有答題學(xué)生的做題情況計(jì)算得出平均做題正確率 [accuracy]和 平均做題時(shí)長 [time],同時(shí)通過公式 [i=1n(accuracyi-accuracy)2] 和 [i=1n(timei-time)2] 分別計(jì)算答題正確率標(biāo)準(zhǔn)差 [σ1] 和答題時(shí)長標(biāo)準(zhǔn)差[σ2],由正態(tài)分布[5]曲線的面積概率可知 [μ+2σ] 為95.45%([μ]為平均值,[σ]為標(biāo)準(zhǔn)差),我們認(rèn)為如果某個(gè)學(xué)生的做題正確率或平均答題時(shí)間不在[μ+2σ]的范圍內(nèi),則認(rèn)為該學(xué)生做題異常,有掛科的可能。如圖6所示。

      4 結(jié)束語

      基于微信小程序的在線練習(xí)系統(tǒng),是利用微信的普及程度,制作一個(gè)無須下載,就可方便使用的在線練習(xí)系統(tǒng),具體實(shí)現(xiàn)效果如圖7、圖8所示。與傳統(tǒng)教學(xué)管理相比較,教師可以利用該系統(tǒng)上傳題庫、創(chuàng)建班級(jí),這不僅減少了教師批改作業(yè)的時(shí)間,而且教師通過學(xué)生們做題情況及答題質(zhì)量,利用大數(shù)據(jù)分析,總結(jié)學(xué)生的問題所在,促使老師可及時(shí)了解學(xué)生的學(xué)習(xí)動(dòng)向與問題,并在課堂做出相應(yīng)調(diào)整,以此來達(dá)到高質(zhì)量教學(xué)以及提高學(xué)生學(xué)習(xí)質(zhì)量。而學(xué)生可以隨時(shí)隨地刷題、查看解析以及提問討論,不再受限于時(shí)間和地點(diǎn),此外,排名榜功能也會(huì)有助于學(xué)生學(xué)習(xí)興趣的提高,此系統(tǒng)旨在解決在智能時(shí)代下如何利用好科技實(shí)現(xiàn)課堂、線下一體化。

      參考文獻(xiàn):

      [1] 劉鑫的博客.docker容器技術(shù)[EB/OL].(2019-05-30)[2019-12-17].https://blog.csdn.net/liuxe1990/article/details/90641973.

      [2] Java架構(gòu)技術(shù)分享.Redis.集群管理[EB/OL].(2019-04-19) [2019-12-17].https://blog.csdn.net/weixin_44861409/article/details/89406795.DOI.

      [3] 王磊. RabbitMQ系列[EB/OL].(2018-07-06)[2019-12-16].https://www.cnblogs.com/vipstone/p/9275256.html.

      [4] zkycaesar.ElasticSearch底層原理淺析[EB/OL].(2018-04-18)[2019-12-15].https://blog.csdn.net/zkyfcx/article/details/79998197.

      [5] ClintonZero.正態(tài)分布[EB/OL].(2019-01-26)[2019-12-15].https://blog.csdn.net/Dulpee/article/details/86662035.

      【通聯(lián)編輯:謝媛媛】

      猜你喜歡
      分布式系統(tǒng)微信小程序
      圖書館微信小程序的應(yīng)用現(xiàn)狀及前景分析
      基于CNKI的微信小程序研究文獻(xiàn)計(jì)量分析
      信息技術(shù)與專業(yè)課程融合路徑探索
      決策探索(2017年12期)2017-07-13 11:11:12
      當(dāng)圖書館遇上微信小程序
      基于現(xiàn)場(chǎng)采集與云服務(wù)的流量積算管理系統(tǒng)研究
      典型應(yīng)用領(lǐng)域全球定量遙感產(chǎn)品生產(chǎn)體系
      科技資訊(2016年25期)2016-12-27 16:23:06
      以數(shù)據(jù)為中心的分布式系統(tǒng)自適應(yīng)集成方法
      分布式系統(tǒng)中的辯證對(duì)立統(tǒng)一概念與方法
      一種基于Hadoop的海量圖片檢索策略
      枣庄市| 普格县| 罗源县| 屏东县| 刚察县| 通榆县| 张北县| 和平县| 仲巴县| 天长市| 和硕县| 石棉县| 库车县| 南岸区| 乌兰浩特市| 连江县| 普定县| 鹤壁市| 新干县| 兴海县| 靖州| 临海市| 贺兰县| 蒲城县| 汉源县| 巫溪县| 巢湖市| 梨树县| 罗定市| 永顺县| 东城区| 清水河县| 临湘市| 石阡县| 虹口区| 三门县| 微山县| 仪陇县| 孝昌县| 谷城县| 禹州市|