刘小溪+++李彦明
摘 要:在实际环境中,无记名投票制被用在愈来愈多的场合,介绍的会议用无记名投票系统,借助PC、手机等通用终端和以太网络融入并控制无记名投票过程。系统适用于会议时的无记名投票、表决活动,较传统的纸质选投票方式有计票时间快、计票结果准确、计票过程秘密、节约资源等优点;较基于非通用硬件的电子投票系统等具有搭建成本低,部署改动便捷,硬件可通用易推广等优点。
关键词:无记名投票;投票系统;B/S;控制管理
引言
无记名投票(Vote by ballot) 又称不记名投票、匿名投票、秘密投票,是一种用于选举的投票制度。一般是指,投票人在投票时,选票不用写下自己的名字和身份识别,避免非自愿让人知道自己的投票意向。由于无记名投票制在投选过程中不公开身份的保密性质有利于选举人、表决人消除顾虑,完全按照自己的意志行使选举权或表决权,比公开投票(Vote)更容易表现出客观、公平,在我国党、政府、军队的选举投票中被广泛采用。随着时代的发展,无记名投票制的实施过程也衍生了很多的形式,基本可以分为两大类:一是,借助电子技术控制投票过程。a.基于非通用电子设备的投票管理系统,如由嵌入式设备构成的专门为某事件特殊设计的投票控制系统;b.基于通用电子设备的投票管理系统,如基于普通服务器、PC、智能手机、平板电脑、以太网络等通用电子设备之上的投票控制系统。二是,人力直接控制投票过程。如:由人力来控制投票过程的,黑白小球投选方式和纸质选票投选方式等。
在中国信息化、电子政务、电子政府建设蓬勃发展的背景下,借助电子技术控制投票过程的系统越来越流行。而目前对于基于非通用硬件的投票系统的研究力量比较多,发展也很快。对于通用硬件的会议环境下适用的投票系统相对较少。本文试图对一种高效的基于B/S架构的投票管理系统进行描述。
1 B/S会议用无记名投票系统功能简介
1.1 投票选举活动的管理员实时全程控制整个投票过程。
1.2 管理员在建立投票时指定本次投票活动的候选项,是否可弃权,单票的最少、最多选数和其他一些细节。
1.3 选举人每人一台联网投票用通用终端。
1.4 管理员提前确定选举人范围及做好访问控制设置。会场外不具备选举资格的人,无法访问投票系统。
1.5 选举人终端的屏幕由管理员对投票过程的实时控制而随时有相应地变化。
1.6 选举人可以实时看到选举人的投选数据。选举结束后,可以很快(如在1秒钟以内)给出可打印的选举结果。
2 硬件环境
2.1 服务器:对于候选人在1000以内的选举活动可选择一台中等性能的PC当服务器,如配置CPU主频≥1.7GHZ、CPU核数≥2,内存≥2G,千兆网卡。如果候选人在10000时,根据具体情况还可以采用反向代理,采用多网卡做TEAM,具备条件的话亦可采使专门的服务器或虚拟机,具体型号可根据情况选择。
2.2 投票用终端:每一个选举人配备一台投票终端。投票终端可以是PC或带浏览器的触屏手机或平板电脑等。终端须能通过以太网连接到服务器的http服务开放的端口。
在选举人终端所连接路由器或交换机设备中配置选举终端的IP地址与MAC地址绑定。如网络环境采用DHCP动态分配IP地址,则需要为每个选举终端配置一个静态地址分配条目。如选举终端采用手机或平板电脑,则建议适当地在会场附近设置热点,使无线信号尽量分布均匀。
3 服务器软件环境选择
3.1 操作系统可选择linux或windows。
3.2 数据库方面可在诸多关系型数据库管理系统,如流行的Postgresql、Mssql、Mysql、Oracle中选择一个。
3.3 http服务可根据情况在Apache httpd,Ngix,Tomcat,IIS等中选择一款,原则是须能很好的支持所选择的动态网页语言,本例中使用的Apache httpd。
3.4 动态网页语言可根据环境在asp,.net系列,php,jsp等或CGI支持的各种语言中选择一种,本例中使用了PHP。
4 浏览器端设计
在B/S架构的程序中,浏览器端是使用者与系统互动的主要接口,浏览器端的设计在一定程度上决定了系统整体是否成功。
主要内容有:
(1) 使用自我刷新或ajax实现每间隔一段时间,从实时从服务器获取投票状态,展示适当页面内容。如:使用javascript语句setTimeout('location.href=location.pathname',4000);
实现每间隔4秒钟,自动刷新页面。刷新后根据读取到的最新的投票状态,如投票未开始、投票已启动、投票已结束等展示适当的页面给用户。
(2) 实时监视投票人的输入,对界面做出智能调整。
例如为了防止投票人多填候选项可以对投票页面中的每一个标签设置设置
onClick='stat(this)'动作映射
javascript函数stat用于统计已经点选的候选项数目。当已点选的候选项数目等于建立投票活动时设置的最大投选数时,无效其他所有未选取的候选项。
即对未选中的复选框in0:
用javascript做如下操作:
obj=document.getElementsByName("in0");
obj.disabled=true;
已确保投票人不能多选。
当已点选的候选项数少于本次投票的最大投选数时,有效所有未选取的候选项。使投票人可以自由选择。endprint
5 服务器控制实现
服务器是投票活动的数据中心和控制中心。对控制投票活动中的状态信息和投票数据信息应实现准确的控制和调度。
主要内容有:
(1) 通过对操作系统、http服务和数据库管理系统的配置,应对多用户并发投票时服务器各项资源负荷的合理分配。
(2) 在http服务中配置可访问和不可访问的IP信息。使在某个时间范围内,可以访问系统进行投票的人员得到控制。
假设http服务软件使用的是Apache httpd,可通过修改httpd.conf文件,在文件夹权限说明标签中配置描述项
Order allow,deny
Deny from all
Allow from 192.168.1
Allow from 192.168.3.1
这样就使IP属于192.168.1.1~192.168.1.255范围内或IP等于192.168.3.1的投票端才能访问系统,确保了投票过程的安全性。
(3) 管理员的登录用session变量进行安全控制,登录的有效期建议设置在600秒~2400秒之间。
6 基于B/S的会议用无记名投票系统的特点及推广价值
系统具有以下特点:(1) 硬件环境容易构建,可以利用单位已有的资源,软件选取自由,部署相对便捷。(2) 控制灵活,操作方便,过程安全。(3) 系统对投票的统计结果准确率高,工作稳定可靠,经某军级部队单位连续3年用于多项会议的无记名投票,整套系统运行稳定,各项环节衔接流畅、准确无故障。
参考文献
[1]庄和诚.ballot[J].中国翻译,1985.
[2]王培明.“无记名投票”的由来[J].秘书,2008.
[3][美]弗兰纳根.JavaScript权威指南(第六版)[M].淘宝前端团队译.北京:机械工业出版社,2012.
[4]屈展,李婵.JSON在Ajax数据交换中的应用研究[J].西安石油大学学报(自然科学版),2011.
[5]潘凯华,刘中华等.PHP从入门到精通(第二版)[M].北京:清华大学出版社.2012.endprint