楊晨
摘要:“微信”作為騰訊公司開發(fā)的一款即時通訊軟件,憑借其跨平臺的應(yīng)用、方便的用戶添加、良好的用戶體驗以及提供有效的第三方開發(fā)的接口,通過和后臺管理平臺以及后臺數(shù)據(jù)庫系統(tǒng)進行有效的銜接,使移動客戶端成為獲取信息的終端設(shè)備,用低廉的開發(fā)成本,開發(fā)出比傳統(tǒng)的教學(xué)支持服務(wù)系統(tǒng)實用性更強系統(tǒng)。該文詳細介紹了利用SpringMVC三層框架,在移動端基于微信公眾號的教學(xué)支持服務(wù)系統(tǒng)開發(fā)設(shè)計過程。
關(guān)鍵詞:移動開發(fā);微信;教學(xué)支持服務(wù)系統(tǒng)
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)08-0103-02
當(dāng)前,在全球信息化的大背景下,很多學(xué)校和教育單位根據(jù)學(xué)歷教育的特點結(jié)合自身的要求開發(fā)出了不少教育管理系統(tǒng)、支持服務(wù)系統(tǒng)等;通過系統(tǒng)管理的方式來提升工作效率、避免出現(xiàn)管理疏漏。但是,目前大部分的管理系統(tǒng)和支持服務(wù)系統(tǒng)都是基于PC終端的B/S結(jié)構(gòu)系統(tǒng),系統(tǒng)為學(xué)生提供支持服務(wù)的條件還是建立在學(xué)生能夠主動使用系統(tǒng)的基礎(chǔ)之上,而且對于使用系統(tǒng)的外部軟硬件環(huán)境還有一定的要求。隨著我國智能移動終端設(shè)備的逐步普及,通過建立面向移動終端設(shè)備的支持服務(wù)系統(tǒng),把手持移動設(shè)備變成信息獲取的直接渠道,使系統(tǒng)被動的被學(xué)生使用變成系統(tǒng)主動服務(wù)學(xué)生,通過這樣的轉(zhuǎn)變使我們的支持服務(wù)系統(tǒng)更加方便、靈活,能夠更好地滿足學(xué)生的需求。
1面向移動終端的系統(tǒng)開發(fā)模式和開發(fā)框架
1.1兩種目前面向移動終端的系統(tǒng)主流開發(fā)模式
1)APP客戶端模式:APP即智能手機上可以安裝的第三方應(yīng)用程序。這種模式可以根據(jù)用戶的需要,提供功能完善的軟件服務(wù),并且用戶使用更加的方便快捷;但是開發(fā)周期很長,開發(fā)難度很大,不同的平臺要開發(fā)不同版本的APP應(yīng)用,開發(fā)的成本非常高。
2)微信輕應(yīng)用模式:即把支持服務(wù)系統(tǒng)的相關(guān)功能和微信公眾號進行整合,通過對微信公眾號進行二次開發(fā),在微信提供的用戶交互的基礎(chǔ)功能之上增加新的個性化功能,來完成系統(tǒng)所提供的服務(wù)。
1.2基于微信的輕應(yīng)用相對于傳統(tǒng)APP的優(yōu)勢
1)開發(fā)成本低
把微信作為系統(tǒng)開發(fā)的平臺,可以有效降低開發(fā)成本,利用微信免費提供的API接口可以很容易的實現(xiàn)系統(tǒng)的個性化功能;同時利用微信現(xiàn)有的顯示界面可以減少UI開發(fā)的工作強度;同時微信支持目前所有主流操作系統(tǒng),使基于微信的系統(tǒng)可以通過一次開發(fā)支持跨平臺工作,從而極大的降低開發(fā)成本。
2)系統(tǒng)升級方便,功能豐富
基于微信平臺進行二次開發(fā)的系統(tǒng),與微信直接是松耦合關(guān)系,對于系統(tǒng)功能的更新,不需要對微信客戶端進行任何改變,這為系統(tǒng)的功能升級增加新的功能和服務(wù)提供了極大的便利。
3)提升移動數(shù)據(jù)的傳輸效率
為了提高在移動互聯(lián)網(wǎng)中的傳輸速度和質(zhì)量,微信通過對數(shù)據(jù)傳輸機制的優(yōu)化,使移動數(shù)據(jù)的傳輸速度更快,同時移動流量更低。
1.3開發(fā)框架的主要技術(shù)
根據(jù)微信的特點,結(jié)合教學(xué)支持系統(tǒng)的功能開發(fā)要求,本系統(tǒng)采用微信輕應(yīng)用的模式作為移動端系統(tǒng)開發(fā)模式;移動端微信系統(tǒng)的開發(fā)利用現(xiàn)在流行的移動開發(fā)模式——springM-VC三層框架模式,系統(tǒng)開發(fā)主要采用了以下的技術(shù)架構(gòu)來實現(xiàn):
1)Spring框架:系統(tǒng)選擇Spring框架這個目前主流移動開發(fā)框架進行系統(tǒng)開發(fā),利用框架提供的各種基礎(chǔ)組件,分層進行系統(tǒng)開發(fā),提升開發(fā)效率。
2)mybatis持久化層:主要提供數(shù)據(jù)庫和系統(tǒng)連接的功能,Mybatis的功能架構(gòu)分為三層:1)API接口層;2)數(shù)據(jù)處理層;3)基礎(chǔ)支撐層。
3)JQuery Mobile:主要用來進行¨層面的開發(fā)工作。
4)XML技術(shù):移動開發(fā)的系統(tǒng)間數(shù)據(jù)傳輸和存儲主要方式。
5)數(shù)據(jù)庫:本系統(tǒng)選擇開源數(shù)據(jù)庫MySQL進行系統(tǒng)數(shù)據(jù)庫的開發(fā)。
2移動端微信系統(tǒng)的主要功能
基于微信平臺的教學(xué)支持服務(wù)系統(tǒng)分為后臺管理平臺和移動端微信系統(tǒng)兩個子系統(tǒng),后臺管理平臺類似于一般基于B/S模式的MIS(Management Information System,管理信息系統(tǒng)j的應(yīng)用,網(wǎng)上類似的研究也有很多,本文對實現(xiàn)技術(shù)不做詳細的說明;本文主要介紹移動端微信系統(tǒng)的技術(shù)實現(xiàn),微信系統(tǒng)的主要功能是為在校學(xué)生,提供獲取各類有關(guān)學(xué)習(xí)方面信息的支持服務(wù)。
2.1系統(tǒng)主要功能菜單
根據(jù)學(xué)生對微信公眾號系統(tǒng)提供服務(wù)的實際需求,以及微信公眾號主菜單只能設(shè)計三欄的要求,系統(tǒng)主要包括三大塊功能:“信息咨詢”、“個人中心”和“在線申請”。
2.2信息咨詢功能
信息咨詢功能主要為學(xué)生提供入學(xué)后在校學(xué)習(xí)的指導(dǎo)和承擔(dān)部分招生信息的發(fā)布功能,所以分為兩個子菜單:1)常見問題;2)招生信息。
2.3個人中心功能
個人中心是微信端子系統(tǒng)的核心,該功能為學(xué)生提供:1、學(xué)籍查詢,2、課程查詢,3、班級公告,4、在線課程,四項子功能;通過點擊功能菜單可以進入相應(yīng)的功能頁面,學(xué)生在初次進入平臺后需要在學(xué)籍查詢頁面中用姓名和身份證號完成微信綁定操作,在完成綁定后,學(xué)生可以查看到自己的學(xué)籍情況、收取自己專業(yè)和班級的相關(guān)公告、查看本班級的課程安排以及瀏覽本專業(yè)的在線課件。
2.4在線申請功能
學(xué)生通過在線申請可以完成兩項功能:1)補考申請;2)異動申請;學(xué)生通過補考申請功能可以發(fā)送自己的信息和請求到后臺管理平臺,后臺匯總后可以合理地進行補考的考務(wù)安排,通過異動申請學(xué)生可以申請對自己在校的狀態(tài)、專業(yè)、學(xué)習(xí)形式等進行變更,使學(xué)籍異動的操作更加的簡單準(zhǔn)確。
3微信平臺交互過程及系統(tǒng)功能具體實現(xiàn)
3.1微信平臺整體工作流程
1)用戶通過關(guān)注微信號取得使用微信公眾平臺的操作權(quán)限,微信平臺記錄用戶相關(guān)的基本信息;
2)開發(fā)者填寫用來接收微信服務(wù)器數(shù)據(jù)的接口URL以及Token,填寫完成驗證通過后成為開發(fā)者,將能獲得開發(fā)者憑據(jù)(AppId和AppSecret),取得第三方服務(wù)器和微信服務(wù)器的交互的權(quán)限;
3)當(dāng)?shù)谌椒?wù)器取的和微信交互的權(quán)限時,第三方服務(wù)器通過調(diào)用微信授權(quán)的各個功能接口,完成業(yè)務(wù)功能的要求:包括讀取微信用戶的數(shù)據(jù)信息,響應(yīng)用戶的各類操作等服務(wù)。
微信平臺的工作流程如圖1所示:
3.2本系統(tǒng)服務(wù)器與微信平臺交互具體過程
1)獲取接口調(diào)用憑據(jù):
系統(tǒng)服務(wù)器和微信平臺通信之前必須獲取全局唯一令牌occeess token,系統(tǒng)服務(wù)器和微信端的每一次通信都需使用ac-cess token進行鏈接的驗證。在系統(tǒng)調(diào)用微信接口之前,系統(tǒng)服務(wù)器通過發(fā)送開發(fā)者憑據(jù)(Appld和AppSecret)給微信平臺進行驗證來獲取access token,(1cces$token的有效期為2個小時,需定時刷新,重復(fù)獲取將導(dǎo)致上次獲取的access token失效,開發(fā)者需要進行妥善保存access token的存儲至少要保留512個字符空間。
2)創(chuàng)建自定義菜單
系統(tǒng)服務(wù)器通過自定義菜單創(chuàng)建接口創(chuàng)建自定義菜單,系統(tǒng)服務(wù)器直接通過主程序加載自定義菜單,本系統(tǒng)自定義菜單的類型為click類型,微信服務(wù)器在用戶點擊click類型的菜單后,會通過消息接口推一個event的結(jié)構(gòu)的消息類型給開發(fā)者,此消息中被賦予了由開發(fā)者所填寫的Key值,開發(fā)者編寫的程序功能可以通過這個Key值和用戶進行互動。
3)自定義菜單事件
用戶在點擊自定義菜單后產(chǎn)生對應(yīng)事件,系統(tǒng)服務(wù)器接收微信端傳送的消息后根據(jù)菜單事件的key值進行對應(yīng)處理,在本系統(tǒng)中會構(gòu)造一個返回的單篇或多篇文章和點擊此文章所指向的URL,在用戶與微信產(chǎn)生交互后,微信可獲得用戶的OpenID(加密后的微信號,每個用戶對每個微信公眾號的Ope-nID是唯一的。對于不同微信公眾號,同一用戶的OpenID不同),此用戶的OpenID也被作為參數(shù)拼接到系統(tǒng)返回的URL中。
請注意,點擊菜單彈出子菜單,不會產(chǎn)生上報。點擊菜單拉取消息時的事件推送,推送的數(shù)據(jù)為XML數(shù)據(jù)格式。
4)獲取消息。
3.3相關(guān)功能組件的設(shè)計
本文就微信端系統(tǒng)的詳細設(shè)計方案以及實現(xiàn)關(guān)鍵功能的相關(guān)技術(shù)進行詳細的說明。微信端系統(tǒng)按照MVC的設(shè)計框架進行設(shè)計,包括兩大組件:處理微信端相關(guān)操作的wechat組件和處理后臺具體業(yè)務(wù)與數(shù)據(jù)反饋的main組件;WeChat組件包括微信實體集(bean)、http請求過濾器(filter)、微信認證服務(wù)組件(oauth)以及微信開發(fā)工具集(util);main組件包括業(yè)務(wù)實體集(bean)、控制器組件(action)、服務(wù)組件(sevice)和數(shù)據(jù)鏈接組件(dao)。
Weehat組件包括:
1)微信實體集(bean):主要實現(xiàn)微信用戶類、微信消息類、微信菜單類、微信文章類等和微信有關(guān)實體的封裝;
2)請求過濾器(filter):對微信端的請求進行驗證封裝后提交給后臺業(yè)務(wù)層處理,并對處理后的響應(yīng)的消息進行返回;
3)微信認證服務(wù)組件(oauth):用來完成對微信用戶接口的認證以及設(shè)置微信系統(tǒng)的自定義菜單等功能。
4)微信開發(fā)工具集(util):與微信開發(fā)相關(guān)功能組件的集合,包括:第三方認證功能(獲取網(wǎng)頁憑證、刷新網(wǎng)頁憑證、獲取用戶信息等),http請求處理功能(通過POST/GET等方式向微信服務(wù)器指定URL進行HTTP通信。)
main組件包括:
1)業(yè)務(wù)實體集(bean):主要包括在微信系統(tǒng)中的頁面實體(ArticleResponse.java)、學(xué)生信息實體(StudentResponse.java)、成績信息實體(ScoreResponse.java)、反饋信息實體(Feedback-Response.java);
2)控制器組件(action):(ArticleController.java、ScoreCon-troller.java、ExamController.java、StudentController.java)處理用戶交互的部分,負責(zé)控制用戶輸入,并向業(yè)務(wù)實體發(fā)送數(shù)據(jù);(We—ChatAction.java)負責(zé)控制微信和后臺服務(wù)器的鏈接、驗證信息來源、獲取IP地址等功能;
3)服務(wù)接口組件(service):(ArticleService.java、Exam Ser-vice.java、ScoreService.java、StudentService.java)負責(zé)具體業(yè)務(wù)數(shù)據(jù)的查詢和修改等操作;(WeChatServicelmpl.java)負責(zé)微信端各業(yè)務(wù)數(shù)據(jù)和微信操作的響應(yīng)服務(wù)。
4)數(shù)據(jù)鏈接接口(doo):(ArticleDoo.java、ExamDao.java、StudentDao.java、ScoreDao.java)負責(zé)和后臺數(shù)據(jù)庫的具體鏈接,數(shù)據(jù)的CRUD操作。
5)公用類組件(COlItlTiOn):包含分頁、返回碼、日志等系統(tǒng)公用類。
4結(jié)束語
本文介紹了基于微信平臺的教學(xué)支持服務(wù)系統(tǒng)在微信端實現(xiàn)的功能以及開發(fā)使用的技術(shù),詳細說明了微信端系統(tǒng)功能組件的設(shè)計過程以及微信平臺和系統(tǒng)互動的模式,并實現(xiàn)了教學(xué)支持服務(wù)系統(tǒng)相應(yīng)的功能;未來隨著微信端提供的功能越來越豐富,開放的接口數(shù)量越來越多,本系統(tǒng)還可以整合更多的功能為學(xué)生提供更好的服務(wù),比如開發(fā)基于微信支付功能的網(wǎng)上繳費功能、基于微信定位功能的教室查詢功能、基于微信搖一搖功能的面授課搖一搖簽到功能等。