互联移动端投票系统的设计与实现
2017-06-19聂微,周静*
聂 微,周 静*
(黄冈师范学院 计算机学院,湖北 黄冈 438000)
互联移动端投票系统的设计与实现
聂 微,周 静*
(黄冈师范学院 计算机学院,湖北 黄冈 438000)
基于移动互联网终端系统,针对各种投票选举活动,文章运用MVC架构模式实现基于Android和iOS两种操作系统平台的投票系统,探讨和研究了两种操作系统框架和MVC模式以及通信工作原理,阐述了系统总体设计的原理和系统程序设计分析,构建出投票系统的服务器端和移动终端的详细设计。
MVC架构;Android;iOS;投票
在这个日渐民主的时代,投票已经成为越来越重要的社会活动。就目前高校来说,有各种激烈竞争的活动。例如:校花选美大赛,歌唱大赛等各种竞赛,还有各种企业和国家资助的投票选择活动,每每都离不开民主选票这一环节,以保证尽量公平公正。
基于以上背景,本研究结合移动互联网技术设计了“移动智能投票系统”,主要是基于And roid和iOS的移动客户端,使用户可以自主发起讨论问题,设定投票类型模板,给出投票权限及设置投票有效时间,然后进行电子投票,进而统计结果。
1 移动互联网应用开发相关技术与介绍
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 系统总体设计
2.1 系统工作原理
为了达到有利于管理和维护简单的标准,本系统在设计上直接用PC机作为服务器,发起者(即管理员)可以在服务器端创建选票、发起选票等操作以及与数据库之间交互。管理员对投票人设置好就可以点击开始投票,会将投票信息发送给对应IP的移动终端,用户登录到客户端参与投票,如图2所示。
图1 MVC模型示意
图2 系统总体理论
2.2 系统的程序流程分析
因为整个系统简单明了,只有发起人(即服务器端的管理员)和投票人(即移动端的用户)之间信息交互,因此系统就分为服务器端和移动端两个部分来进行阐述:服务器端流程如图3所示;选票人的移动终端部分,如图4所示。
管理员:管理员登陆成功之后,选择投票类型创建选票,然后设置好投票人检查投票是否符合条件,若符合点击开始投票,用户完成投票后统计显示结果。
用户:用户登录到客户端后,填写选票,然后选票和照片(照片信息还包括时间,地点)发送回服务器端,服务器接收后完成投票,若没有成功接收则重新发送。
3 投票系统的详细设计
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)投票模块:管理员点击开始投票后,服务器就把创建好的选票信息分发给各个客户端(对设置的投票人)。投票人登录接收,认证信息和填写选票,完成以后,将投票结果及自身认证信息加密并打包给服务器处理。
4 结语
本文研究在移动互联的大环境下,实现智能投票系统。该系统的特点就是即发即投,发布者可在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— ),男,湖北黄冈,硕士,副教授;研究方向:计算机教育技术,网络应用。