馮永勝 +許楠
摘 要: 針對移動學習的空間跨度大,實時性不好的問題,利用微信平臺的信息廣交互性,提出一種基于微信的移動學習平臺開發設計方案。設計移動學習的資源調度模型,然后在嵌入式Linux內核下將移動學習資源調度模型移植到微信平臺中,進行基于微信的移動學習平臺嵌入式軟件開發設計。仿真實驗結果表明,采用該平臺進行移動學習的效率得到明顯提升。
關鍵詞: 微信; 移動學習; 嵌入式軟件; 資源調度
中圖分類號: TN926?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2017)07?0008?04
Design and development of mobile learning platform based on WeChat
FENG Yongsheng, XU Nan
(School of Information Technology, Heilongjiang Bayi Agricultural University, Daqing 163319, China)
Abstract: Since the mobile learning has long space span and poor real?time performance, a design and development scheme of the mobile learning platform based on WeChat is proposed according to the information interaction of the WeChat platform. The resource scheduling model of the mobile learning was designed, and transplanted into the WeChat platform with the embedded Linux kernel to design and develop the embedded software of the mobile learning platform based on WeChat. The simulation experiment results show that the efficiency of the mobile learning has been improved significantly with the platform.
Keywords: WeChat; mobile learning; embedded software; resource scheduling
0 引 言
移動學習需要強大的網絡資源作為支撐,通過通用的移動學習終端APP實現在線視頻、音頻和學習資源的傳輸,以移動學習方式進行在線教育有效提高了學習效率,節省了時間開銷和資源開銷,在未來的學習方式改進中具有重要意義。微信作為當前很流行的移動APP終端,基于微信進行移動學習平臺開發具有普遍性意義[1]。
研究基于微信的移動學習平臺開發與設計方法,首先需要構建學習資源的調度模型,并在嵌入式系統中進行軟件設計,構建移動學習的學習控件、數據庫結構、學習框架和工具[2?3]。移動學習的空間跨度大,采用常規的學習平臺開發方法需要占用大規模的網絡空間,時間開銷較大,移動學習的實時性不好。對此,文獻[4]采用一種基于Co?training訓練模式的移動學習平臺構建方法,通過對移動學習資源的屬性歸類和特征降維,降低了資源開銷,提高了學習平臺的運行效率,但隨著在線移動學習規模的增大,無法實現交叉性移動學習[5]。
針對上述問題,本文以微信平臺為基礎構建一種改進的移動學習平臺,進行平臺的軟件開發設計,最后進行系統仿真分析,展示了本文設計的微信移動學習平臺的可靠性,在提高學習效率方面具有較好的意義。
1 學習資源調度模型的設計
1.1 移動學習資源的信息檢索及特征分析
為了實現對移動學習平臺的開發,需要首先進行資源調度,在大數據環境下基于M?Learning學習網絡進行資源調度[6],假設在移動學習平臺中資源數據庫的狀態空間為:
[S=k,n,0≤k≤K,0≤n≤N] (1)
當[n=N]時,M?Learning學習網絡通過輸出數據庫資源信息的特征集合進行數據包處理,當[n=1,2,…,N-1]時,移動學習資源數據庫資源信息的特征集合為:
[P={p1,p2,…,pm}, m∈N] (2)
采用語義特征匹配方法進行信息檢索,假設[S={s1,s2,…,sm}]為移動網絡用戶對學習資源的興趣偏好,計算移動網絡用戶行為的非空有限論域:
[w′i=t′si-tsΔw, w″i=t′ei-tsΔw] (3)
在進行信息資源檢索中,微信平臺處于空閑狀態[(k,N)]表示CPU正在進行數據包處理,設定M?Learning嵌入式任務調度的時間序列集合,用[V=v1,v2,…,vn]表示微信平臺進行學習任務調度的特征子向量,對多個微信平臺級聯的移動用戶APP終端采用數據信息融合方法對資源流進行數據融合[7],得到信息融合后的資源流為:
[flowk={n1,n2,…,nq}, q∈N] (4)
式中:[q]表示語義特征配準閾值;[nq]表示傳輸數據序列;[N]表示學習資源的聚類屬性總數。
1.2 學習資源調度
在M?Learning學習平臺中,采用[pi]表示[x(t)]出現在移動用戶進行語義檢索區域的資源分配概率,采用優先級列表分配方法進行資源負載均衡控制,每當進程[k]就緒時,首先估計語義特征信息配準的Burst time(BTk),得到移動學習資源檢索的時間片TQ(Time Quantum),由于時間片TQ是動態分布的,在進行移動學習的微信平臺構建中,通過設計進程管理模型得到移動資源信息流時間序列模型為:
[Xpu=sc(t)ej2πf0t=1TrecttTej2π(f0t+Kt2)2] (5)
式中:[sc(t)]表示移動學習的云資源在訓練集中屬于[bi]類的信息融合矢量;[ej2πf0t]表示用M?Learning學習的自相關變量。
基于自相關匹配濾波,得到移動學習資源調度均衡的標準值[SCMh]分別表示為:
[CMh=j=1NMh×qjrη(u)+μ(u)N] (6)
[SCMh=i=1M(Mh-CMh)2+σjkwjk] (7)
式中:[qj]為等待隊列中請求學習資源分配的本體匹配度;[μ(u)]為所有資源分配節點間的實例屬性集。
在結構匹配階段,對移動學習資源信息流進行相似度衡量,得到輸出的特征空間匹配向量為:
[x=i=1NsiΨi=Ψs,Ψ=[Ψ1,Ψ2,…,ΨN]] (8)
式中:[si]為相同位置節點相似值;[Ψs]為初始概率分布,[Ψs={πi,i=1,2,…,N}]表示本體結構特征。由此得到M?Learning學習的優先級調度的約束條件:
[?LELM?β=0→β=i=1NαihT(xi)=HTα] (9)
[d∞p,q=i=1mpi-qiz1z, z>0] (10)
[dp,q=N-sN] (11)
本體結構特征與第[i]個訓練樣本存在對應的約束條件,其貼合度定義為:
[MMCM(c1,c2)=k=1n(x1k∧x2k)k=1n(x1k∨x2k)∈[0,1]] (12)
式中符號[∧,∨]分別表示圖結構的匹配算子。
計算每個移動學習資源調度的適應度值,采用相似父/子概念確定學習資源調度的上下限,得到節點集到節點標記集的特征映射為:
[r.dom=cici∈C∧ci?r] (13)
[r.dom=cjcj∈C∧?c?rcj] (14)
M?Learnin學習資源本體的估計結果為:
[minQ 12QΩ-PΩ2F+μQ*] (15)
基于整體語義對應的自相關匹配原理,計算學習資源本體匹配(Ontology Matching)的自相關特征函數[8],得到資源分配的聚類累積量:
[cum(λ1x1,λ2x2,…,λkxk)=i=1kλicum(x1,x2,…,xk)] (16)
通過子圖抽取信息流的[k]階累積量為[ckx(τ1,τ2,…,τk-1)],在本體層次結構中得到輸出的數據融合向量為:
[X=x(n),x(n+τ1),…,x(n+τk-1)] (17)
對于待匹配本體[A,B,]其有向圖表示為[G(A),][G(B),]求得綜合相似度,得到學習資源調度的傳遞函數為:
[h(A,B)=1NAi∈Axai-xb?(i),yai-yb?(i)] (18)
式中[NA]為移動學習用戶[A]的屬性相似度。
2 系統的實現
2.1 嵌入式設計
進行移動學習平臺的開發設計,需要采用交叉編譯方法構建移動學習網絡結構模型,對移動學習資源調度算法進行編程設計,程序加載,采用嵌入式內核設計方法進行移動學習平臺應用程序開發,采用數據加載模塊動態驅動微信平臺進行人機交互,基于微信平臺的嵌入式Linux移動學習系統分為4個層次[9?10],分別如下:
(1) 通過戶主目錄C5409 Device Simulator引導加載程序進行移動學習和集成控制,在微信平臺中識別用戶行為特征,同時給用戶提供一個簡單、統一的系統調用接口,采用VME總線傳輸進行時鐘初始化操作,移動學習平臺設計包括程序驅動模塊、自動配置模塊。建立Linux的根文件系統執行移動學習的總線控制和D/A轉換。
(2) Linux內核把移動網絡用戶行為加入到系統環境變量中,進行在線學習和數據記錄。執行Linux內核的init進程,進行移動學習資源的優化配置。
(3) 文件管理系統(File System)。文件管理系統是實現對移動學習資源的優先控制和學習隊列的自動排序,構建TinyOS的通信機制,運行如下代碼執行信息傳輸:
Export Active Message//
PATH=$PATH:/Kernel_interface Mount /compilation/LoUNIX class 920t?eabi/bi
TinyOS用匯編和C語言編寫,由此生成根文件系統,在嵌入式微信平臺中執行交叉編譯。
(4) 用戶應用程序(Application)。用戶應用程序模塊實現微信平臺和移動學習用戶之間的交叉訪問,通過多個組件(component)連接內核執行程序配置、編譯,檢測用戶的等級,對塊設備進行讀/寫操作。
2.2 開發流程
基于Qt/Embedded的應用軟件在Linux內核中開發微信移動學習平臺,在宿主機平臺上使用make menuconfig命令進行交叉編譯,配置qt?embedded?arm執行微信平臺的嵌入式學習算法寫入,在配置選項中,安裝qt?x11用于生成qvfb,建立x86開發環境配置qt?embedded?x86,使用惟一的ID0來識別移動學習網絡用戶,Qt/Embedded for x86開發環境建立內容如下:
Generates Settings ???>
Qt/Embedded source install?qt?x11.sh???>
[/mnt/nfs] downloaded //模式選擇及參數設置
Applets links(Qt Virtual Fram Buffer) ???>
(/home/ SDICmdSta /nfs) qt?embedded?SDIDatSta prefix
//SDICON寄存
Root file Data loading module Tuning ???>
//設置SDICmdSta寄存器的特殊標志
[/mnt/nfs] WeChat platform. /Provide Boot loader environment
//微信Qtopia應用環境
[root@hjembed qt_bin] Generate bin, SBIN folder commands
[root@hjembed qt_bin] deprecated:aliased
//設置SDICON寄存器
[root@hjembed qt_bin] SDIPRE Embedded access
//設置SDIPRE寄存器
[root@hjembed qt_bin] Script sSDICmdArg file
Shells ???>
??? Ash SDIBSize register //設置塊模式、總線寬度
[root@hjembed qt_bin]Check DatFinTag File System
//DatFin標志已設置
[root@hjembed qt_bin]Lash(arm?angstrom?linux)
//lib清除SDICmdSta寄存器中的相應標志位
在進行了ZLG7290初始化操作之后,ZLG7290就會響應鍵盤操作,通過I2C從ZLG7290讀取按下的鍵值執行移動學習:
for(i=0;i {*s=RcvByte(); Ack_I2C(0); S++;} 配置完成后,地址01H,復位值00H,新建目錄filesystem,DIDTimer寄存器,實現寄存器的位操作,設置timeout周期,保存ZLG7290系統狀態并在SDIDatCon寄存器中設置塊模式進行微信識別,啟動信號(Start Condition)接收數據的器件在接收到8位數據后,會向發送數據的器件發出一個低電平脈沖,進行ZLG7290控制的編譯和安裝,實現基于微信移動學習平臺的開發和設計。 綜上分析,基于微信平臺進行移動學習平臺的開發的操作通過以下3個函數實現: static int s3c2440_adc_open(struct s3c2440_pwm_close *filp) static int s3c24xx_pwm_ioctl_adc_release(define DEVICE_NAME, struct file *filp) static ssize_t MISC_DYNAMIC_MINOR (struct file *filp, char * operations dev_fops* size_t count, loff_t *ppos) 其中:s3c2440_adc_open()和s3c2440_adc_release()負責設置GPIO為輸出方式并且設置PWM相關寄存器,控制S3C2440內部A/D轉換的打開和關閉。 基于微信的移動學習平臺的軟件實現流程如圖1所示。 3 仿真測試 移動學習用戶分布服從均值為1 000的均勻分布,在微信終端學習請求過程服從(0.02 10)的指數分布,隨機生成270個移動用戶學習樣本點,以學習效率為測試指標,圖2為不同方法進行移動學習的效率對比結果,圖3給出了不同方法的誤差收斂值對比結果。從圖2得知,隨著微信用戶節點數的增多,本文方法學習效率增大,當用戶節點數達到80時,學習效率達到100%,即最大學習效率,在線移動學習的效率優于傳統方法。由圖3的仿真結果得知,本文方法進行學習的誤差較低,收斂性較好,說明系統的魯棒性較高。 4 結 語 為了提高移動學習的效率和可靠性,利用微信平臺的信息廣交互性進行移動學習平臺構建,提出基于微信的移動學習平臺開發設計方案,首先進行移動學習的資源調度模型設計,基于Qt/Embedded的應用軟件在Linux內核中開發微信移動學習平臺,實現平臺的軟件開發設計,測試結果表明,采用該平臺進行移動學習的效率得到明顯提升,系統的魯棒性較好。 注:本文通訊作者為許楠。 參考文獻 [1] KARAMI E, DOBRE O A. Identification of SM?OFDM and AL?OFDM signals based on their second?order cyclostationarity [J]. IEEE transactions on vehicular technology, 2015, 64(3): 942?953. [2] MOHAMMADKARIMI M, DOBRE O A. Blind identification of spatial multiplexing and Alamouti space?time block code via Kolmogorov?Smirnov(K?S) test [J]. IEEE communications letters, 2014, 18(10): 1711?1714. [3] ELDEMERDASH Y A, DOBRE O A, MAREY M, et al. An efficient algorithm for space?time block code classification [C]// Proceedings of 2013 IEEE Global Communications Conference. Atlanta, USA: IEEE, 2013: 3329?3334. [4] 郭帥,馬書根,李斌,等.VorSLAM算法中基于多規則的數據關聯方法[J].自動化學報,2012,38(1):1?12. [5] COHEN W W, RAVIKUMAR P, FIENBERG S E. A comparison of string distance metrics for name?matching tasks [C]// Proceedings of 2003 International Joint Conference on Artificial Intelligence. Pittsburgh: s. n., 2003: 73?78. [6] 張普寧,劉元安,吳帆,等.物聯網中適用于內容搜索的實體狀態匹配預測方法[J].電子與信息學報,2015,37(12):2815?2820. [7] 王躍飛,于炯,魯亮.面向內存云的數據塊索引方法[J].計算機應用,2016,36(5):1222?1227. [8] 崔永君,張永花.基于特征尺度均衡的Linux系統雙閾值任務調度算法[J].計算機科學,2015,42(6):181?184. [9] 譚鵬許,陳越,蘭巨龍,等.用于云存儲的安全容錯編碼[J].通信學報,2014,35(3):109?114. [10] 魏理豪,王甜,陳飛,等.基于層次分析法的信息系統實用化評價研究[J].科技通報,2014,30(2):142?148.