聶 微,周 靜*
(黃岡師范學院 計算機學院,湖北 黃岡 438000)
互聯移動端投票系統的設計與實現
聶 微,周 靜*
(黃岡師范學院 計算機學院,湖北 黃岡 438000)
基于移動互聯網終端系統,針對各種投票選舉活動,文章運用MVC架構模式實現基于Android和iOS兩種操作系統平臺的投票系統,探討和研究了兩種操作系統框架和MVC模式以及通信工作原理,闡述了系統總體設計的原理和系統程序設計分析,構建出投票系統的服務器端和移動終端的詳細設計。
MVC架構;Android;iOS;投票
在這個日漸民主的時代,投票已經成為越來越重要的社會活動。就目前高校來說,有各種激烈競爭的活動。例如:校花選美大賽,歌唱大賽等各種競賽,還有各種企業和國家資助的投票選擇活動,每每都離不開民主選票這一環節,以保證盡量公平公正。
基于以上背景,本研究結合移動互聯網技術設計了“移動智能投票系統”,主要是基于And roid和iOS的移動客戶端,使用戶可以自主發起討論問題,設定投票類型模板,給出投票權限及設置投票有效時間,然后進行電子投票,進而統計結果。
1.1 Android系統架構
它使用的軟件堆層A nd roid系統架構[1]自下而上分別是:
(1)應用程序。在這一層中,Android平臺主要給開發者提供系統原生的應用程序,也可以使用Java語言設計符合自己需求的程序來替換原生的,并且兩者沒有區別。
(2)應用程序框架。這層是開發And roid應用程序的基礎,開發者可以通過訪問應用程序的函數接口來構造程序,同樣,根據重用機制,也可以對已有的功能模塊進行二次開發。
(3)系統運行庫。系統庫處于整個框架的第三層,包含了可以直接使用的C++類庫,它主要為整個系統提供支持服務。
(4)Android運行時。該層主要為其提供相應的運行場所,分為核心庫和Dalvik虛擬機,核心庫提供了主要的Java API和一些Android APΙ;Dalvik虛擬機類似于Java虛擬機,主要是為應用程序提供了一個運行環境。
(5)Linux內核。Linux內核是作為操作系統軟硬件間的抽象層,也是為此系統提供服務。
1.2 iOS系統架構
iOS系統[1]分為4層,由上而下分別是:
(1)核心操作的系統層(Core OS Layer,COL):該層的作用類似于Android系統的Linux內核,它位于iOS系統框架的最底層,是整個iOS系統的核心操作系統層,在系統軟件層和硬件層之間架起了一座橋梁。
(2)核心服務層(Core Services Layer,CSL):該層是整個iOS的核心服務層,通過Core Services層,開發者可以訪問iOS提供的一些服務。
(3)媒體層(Media Layer,M L):在該層中,iOS為開發者提供了包括圖像。視頻和音頻的技術支持,以此來滿足移動設備上的體驗需求。
(4)可輕觸層(Cocoa Touch Layer,CTL):該層是整個iOS程序的基礎。在這一層中提供了iOS程序的基本結構以及高層的系統服務。開發人員在設計程序之初,需要首先考慮到Cocoa Touch層是否有符合需求的技術。
1.3 MVC設計模型
模型-視圖-控制器(M odel-View-Controller,MVC)架構模式[2]包括Model,View和Controller 3部分,如圖1中MVC架構部分[3]。其中,Model包含完成任務所需的所有行為、數據以及對象的狀態等;View負責用戶界面的生成顯示從M odel中提取的數據;Controller處理請求,控制用戶界面數據的顯示及更新Model中數據內容。通過這3部分之間交互協作來實現其各種功能。
使用這樣的設計模式目的很明確,就是盡量使M,V,C這3個組件分散,相互之間不存在依賴,故不受影響,這樣就可以很好地達到平臺遷徙的目的。采用M VC模型為了將應用程序劃分為不同模塊,可以有益于系統管理與維護,還減少了控制的復雜度,有利于程序的解讀。
2.1 系統工作原理
為了達到有利于管理和維護簡單的標準,本系統在設計上直接用PC機作為服務器,發起者(即管理員)可以在服務器端創建選票、發起選票等操作以及與數據庫之間交互。管理員對投票人設置好就可以點擊開始投票,會將投票信息發送給對應IP的移動終端,用戶登錄到客戶端參與投票,如圖2所示。

圖1 MVC模型示意

圖2 系統總體理論
2.2 系統的程序流程分析
因為整個系統簡單明了,只有發起人(即服務器端的管理員)和投票人(即移動端的用戶)之間信息交互,因此系統就分為服務器端和移動端兩個部分來進行闡述:服務器端流程如圖3所示;選票人的移動終端部分,如圖4所示。
管理員:管理員登陸成功之后,選擇投票類型創建選票,然后設置好投票人檢查投票是否符合條件,若符合點擊開始投票,用戶完成投票后統計顯示結果。
用戶:用戶登錄到客戶端后,填寫選票,然后選票和照片(照片信息還包括時間,地點)發送回服務器端,服務器接收后完成投票,若沒有成功接收則重新發送。
3.1 服務器端詳細設計
整個系統分將大部分功能模塊放在服務器端。普通用戶和管理員都有登錄注冊等功能,其中管理員在服務器端要對選票進行設置與發起并且可以修改投票人信息和查詢歷史紀錄以及核對認證信息等等。本文服務器端的功能模塊如圖5所示。

圖3 服務器端流程

圖4 客戶端流程
(1)登錄模塊:管理員登錄是系統與用戶的第一個交互頁面,為了系統的安全考慮,管理員需輸入相應的用戶名和密碼,且用戶名和密碼必須與數據庫投票人信息表中的數據信息匹配方可進入投票系統進行下一個操作,否則提示錯誤。
(2)個人資料修改:管理員登錄后可以對密碼和聯系電話等個人設置進行修改,但對實名內容不允許修改,這是出于安全和實用考慮。把修改的信息提交后,就會與鏈接的數據庫進行對照,如果符合要求則覆蓋原信息,否則提示操作不成功,如圖6所示。
(3)投票人管理:投票人模塊種除了投票人資料的修改之外,還包括再創建投票后對此次參與投票人的批量設置。并且每一項操作的數據改動都會即時與數據庫進行匹配,匹配成功就更換原數據,否則將會提示錯誤。
(4)創建投票:在創建投票時,可依據投票活動的需求選擇相應選票模板。本系統設置為實名和匿名兩種投票模式,確定投票模式后,再從5種類型的投票方法中選擇符合自己的一種,點擊創建,即創建完成。其中實名制與匿名制的區別不但包括是否顯示投票人的投票內容,還包括投票結果是否寫入歷史紀錄中。

圖5 服務器端功能
(5)開始投票:一般情況下,在確定投票人之后,就可以點擊開始投票,然后服務器就將選票內容進行加密后打包發送給設置為參與投票的客戶端,若沒有接收成功,服務器重新發送。
(6)統計投票:客戶端確定選票并將選票內容發送給服務器,統計本次投票。若在兩分鐘倒計時還未完成投票,服務器給提示未完成用戶的客戶端盡快投票,投票完成則統計結果并顯示(匿名模式顯示統計結果,實名顯示統計結果及各個投票選擇包括驗證圖片),根據創建選票時選擇的投票模板判斷是否寫入數據庫(匿名不寫入數據庫,實名寫入數據庫)。
(7)歷史記錄:歷史紀錄是包括所有投票的內容,結果和時間等信息。并且只有管理員在服務端登陸之后才能查看。
(8)退出:當選票結果顯示之后,點擊退出即可關閉該系統。
3.2 移動終端的詳細設計
客戶端只負責與服務器之間接收和傳送信息,至于數據的處理依靠服務器來完成,再與數據庫進行數據交互[4]。普通用戶在客戶端登陸之后,就可以接收服務器發送的選票信息(即管理員在創建選票的選擇設置和選票內容),將選票填寫完成,再將投票結果和認證信息發回服務器,確認服務器成功接收,點擊退出。客戶端功能的示意如圖7所示。

圖7 移動終端功能模塊
(1)注冊模塊:在用戶注冊前要先輸入服務器的IP地址,用戶注冊內容包括用戶的真實姓名、性別、電話號碼、證件號碼、地址已經設置登錄密碼。其中證件號碼不僅局限于身份證、護照等,根據不同的投票活動注冊用戶使用的證件號碼也可以是活動證件的證件號碼,以便對投票人的管理和投票結果與投票人身份的核實。注冊界面中全部的信息都必須要按照格式填好之后,才能成功注冊,把信息傳送給服務器,由服務器來處置數據信息,檢驗IP地址,再與客戶端進行通信,如符合要求策反會注冊成功,否則返回個人信息核實不通過。
(2)登錄模塊:客戶端的登錄方式一種是賬號密碼登錄,另一種是用手機號碼快速登錄,但是無論哪一種登錄方式都要添加驗證碼這一環節,為系統安全考慮。然后,把登錄信息加密之后,發送給服務器,服務器再與數據庫進行信息比對,信息正確,返回客戶端登錄完成。
(3)投票模塊:管理員點擊開始投票后,服務器就把創建好的選票信息分發給各個客戶端(對設置的投票人)。投票人登錄接收,認證信息和填寫選票,完成以后,將投票結果及自身認證信息加密并打包給服務器處理。
本文研究在移動互聯的大環境下,實現智能投票系統。該系統的特點就是即發即投,發布者可在PC機上直接發起討論,投票者則在手機上進行投票,投票結束,然后統計和顯示結果,簡單、快捷;并且有多種投票模塊和設置類型,也是非常實用的,更好地滿足了人們的需求。
本系統還有許多方面需要完善,如提高系統性能。目前,本系統的用戶規模不大,只適合中小型的投票活動使用。當用戶的數量過大,數據過多,會遇到一些性能的瓶頸。關鍵是在于本系統是將PC機作為的服務端,這樣更加方便操作和管理,而個人機的配置都較低,所以還不適用于大型的投票活動。
[1]程亮. 基于Android和iOS的智能家居手機客戶端軟件的設計與實現[D].南京:東南大學,2015.
[2]王哲.基于MVC的系統架構設計探究[J].數字技術與應用,2012(1):125-126.
[3]于湛麟,李仲秋,任永昌.SSH框架實現MVC架構的電子商務軟件平臺[J].計算機技術與發展,2012(10):169-172.
[4]歐軍,吳清秀,裴云,等.基于socket的網絡通信技術研究[J].網絡安全技術與應用,2011(7):19-21.
Design and implementation of mobile terminal voting system
Nie Wei, Zhou Jing *
(Computer Science School of Huanggang Normal University, Huanggang 438000, China)
On the basis of mobile Ιnternet terminal system and for a variety of voting activities, the article uses MVC structure mode to realize the voting system based on Android and iOS two operating system platform, explores and studies the two kinds of operating systems framework and MVC communication mode and working principle, and expounds principle of system overall design and analyzes the design of system program, constructs a detailed design of server term inal and mobile term inal of voting system.
MVC architecture; Android; iOS; voting
2015年國家級大學生創新創業訓練計劃項目;項目名稱:基于移動互聯的多點即時通信平臺的研究;項目編號:教高司函〔2015〕41號201510514002。2016年省級實驗教學示范中心;項目名稱:轉型背景下計算機網絡實驗教學改革與實踐;項目編號:zj201670。大學生創新活動項目;項目名稱:移動智能投票APP;項目編號:zx201652。
聶微(1995— ),女,湖北潛江;研究方向:軟件工程。
*通信作者:周靜(1978— ),男,湖北黃岡,碩士,副教授;研究方向:計算機教育技術,網絡應用。