李 瑩,鮑衛(wèi)華,李海英
(北京聯合大學,北京 100101)
傳統的成績查詢是基于網站Web 頁面的查詢,系統設計面向計算機應用,在手機上查詢頁面顯示不友好,操作多有不便。近年來微信廣泛使用,2016 年騰訊公司正式推出“微信小程序”,小程序是一種不需要下載安裝就可以使用的應用,用戶“掃一掃”或者“搜一搜”,就可打開應用,不需要下載APP,體現了“用完即走”的理念,大大節(jié)省了手機內存和用戶時間。微信為開發(fā)人員提供了一套開發(fā)工具,開發(fā)門檻低、周期短,用戶體驗接近傳統APP,目前網絡上有種類繁多的微信小程序,應用場景涉及社交、旅游、教育、電商、餐飲、娛樂等生活和工作學習的方方面面。成績查詢微信小程序的開發(fā)和應用,使得考生可以用手機查詢考試成績,界面簡潔易于操作,不僅大大方便了考生,而且獨立的數據庫、傳輸過程的數據加密和身份驗證保證了敏感數據的安全。
本軟件系統的開發(fā)分為客戶端開發(fā)和服務器端開發(fā),客戶端采用“微信開發(fā)者工具”,服務器端采用LAMP的框架結構,即Linux+Apache+MySQL+Php 的組合,由于這些開發(fā)工具都是開源的,這個組合是目前最為流行的開發(fā)工具組。Linux 作為操作系統,Apache 作為Web 服務器,MySQL 作為數據庫服務器,Php 是用來編寫網頁的腳本語言。
圖1 系統示意圖
圖2 系統軟件架構示意圖
在系統實現中,服務器端的操作系統租用“云服務商”提供的Ubuntu 云服務器,它是Linux 操作系統的一種,此平臺需要付費,但是比較便宜,免去了購買服務器、搭建網絡以及軟、硬件維護的高昂成本,而且可以直接在服務商的官網上隨時購買、隨時使用,項目部署方便快捷。由于小程序不支持直接的IP 地址查詢,需要把申請的ICP 備案域名與Ubuntu 服務器的IP 地址進行綁定,為小程序與Web 服務器進行數據交換做準備。除此之外,還需要在Ubuntu 服務器上分別從官網下載和安裝Apache,Php 和MySQL,并進行配置,這三個軟件工具使用免費開源版本,具體使用版本如下:
操作系統:Ubuntu 18.04.4,
Web 服務:Apache2.4.29,
數據庫:MySQL 5.7.32-0ubuntu0.18.04.1
Web 頁面開發(fā)工具:PHP Version 7.2.24-0ubuntu0.1 8.04.7。
HTTP 是明文傳輸協議,客戶端和服務器端傳輸的數據被攻擊者攔截、竊取、篡改比較容易,身份也易被假冒者利用,為保證數據傳輸安全,提高業(yè)務系統的安全性,微信公眾平臺從2017 年起不再支持HTTP 方式調用。
SSL 證書(SSL Certificates)是HTTP 明文協議升級至HTTPS 加密協議必備的數字證書。它在客戶端(瀏覽器)與服務端(網站服務器)之間搭建一條安全的數據加密通道,對兩端之間交換的握手、數據等信息進行加密,確??蛻舳私涍^身份驗證,網絡中傳輸的數據是經過加密的密文。
本項目申請了“云服務商”提供的一年免費使用的TrustAsia TLS RSA CA,將證書文件、鏈文件和密鑰文件上傳到云端服務器上,并在Apache 中進行配置,加載ssl模塊,順利將域名訪問升級到https 訪問。
本系統中,考生通過智能手機打開小程序,輸入姓名和密碼等相關信息后,微信小程序向服務器端發(fā)出查詢數據的申請,網站網頁程序接收到數據申請后,從數據庫查詢數據,并生成格式化數據返還給微信小程序,小程序接收到數據后,將數據渲染到用戶的手機界面上,用戶查詢成績完成。與查詢功能相對應,軟件系統的設計與開發(fā)也分為客戶端微信小程序、服務器端查詢設計、數據庫設計三個部分。
微信小程序的框架包含兩部分:View 視圖層和App Service 邏輯層。View 層用來渲染頁面結構,AppService層具有邏輯處理、數據請求、接口調用等功能。視圖層和邏輯層通過系統層的JSBridage 進行通信,邏輯層把數據變化通知到視圖層,觸發(fā)視圖層頁面更新,視圖層把觸發(fā)的事件通知到邏輯層進行業(yè)務處理。視圖層由WXML與WXSS 編寫,由組件來進行展示。邏輯層將數據處理后發(fā)送給視圖層,同時接受視圖層的事件反饋。邏輯層提供App小程序和各個頁面Page的入口,提供了豐富的API 來進行數據綁定、事件分發(fā)、生命周期管理、路由管理。
服務器端使用PHP 腳本語言編寫數據庫查詢網頁程序,并生成json 結構的數據,傳給客戶端小程序使用。Php 與MySQL 的接口采用Mysqli 驅動的面向過程函數,如圖2。
本系統的功能只用一張成績信息表即可實現,如表1 所示。
在MySQL 中建好表后,可以用工具將成績數據導入到數據庫相應的表中,以備查詢。
表1 成績信息表(Score)
Web 服務器接收微信小程序傳遞過來的查詢參數,將查詢參數作為查詢條件拼接到sql 語句中,進行查詢,查出來的數據用函數處理成json 數據格式,返回給小程序。
小程序接受考生用戶輸入的用戶名、準考證號,并作為參數傳遞給調用的查詢網頁。
本系統設計的成績查詢微信小程序,部署在云端,考生的使用以及系統的開發(fā)、部署和維護簡單易行,為教務管理以及教務系統的擴展提供了新的思路,微信小程序和云服務與傳統的APP 應用相比,具有無可比擬的優(yōu)勢和廣闊的應用前景,值得進一步研究和探索。