基于Android的学生成绩推送系统设计与实现

2015-05-30 10:48付娟娟
智能计算机与应用 2015年4期
关键词:学生成绩

付娟娟

摘 要:采用基于Android的推送系统将成绩推送至为学生的手机客户端,不但可以实现信息的实时性,还可以通过订阅将所需内容推送给指定用户。本文根据成绩传送需求及移动智能终端的特性,利用应用服务器、代理服务器和客户端组成的三层B/S结构,引用Push技术,结合 MQTT技术充当代理服务器,实现Android手机客户端与服务器之间相互推送消息。

关键词:学生成绩 ; push技术 ; 移动智能终端 ; Android

中国分类号:TP311 文献标识号:A 文章编号:2095-2163(2015)04-

Design and Implementation of Student Achievement push System based on Android

FU Juanjuan

(Computer College, Zhoukou Normal University, Zhoukou Henan 466001,China)

Abstract:The push system based on Android could push student achievement to student's mobile phone client, which not only can realize the real time information, but also by subscribing push the required content delivery to the specified user. According to the result transport demand and characteristic of mobile intelligent terminal, the paper uses the application server, proxy server and the client of three-tier B/S structure, refer to Push technology, and combined with the MQTT technology ACTS as a proxy server, furtherly realize the Android mobile phone messages between the client and the server Push.

Keywords:Student Achievement; Push Technology; Displacement Intelligent Terminal; Android

0引 言

时下的很多高校都在应用基于Web服务的信息管理系统,但却只能实现有线网络的主动查询,无法将最新成绩即时通知学生,缺乏实时性与便捷性。针对这一现状,采用基于Android的推送系统将成绩推送至为学生的手机客户端,将减少信息搜索时间,还可根据学生的订阅将所需内容推送给指定用户。该平台具有简易框架,同时借助其开源性,即能发挥便利的硬件资源优势,并节省软件开发的费用,成为现在手机市场上移植性最好的操作系统。为顺应信息时代校园信息化建设的需求,且推动其加速发展步伐,本文设计研发了一个针对学校智能移动终端使用的综合管理系统。

在应用程序需要与服务器利用交互随时获取更新的数据时,客户端可以通过Pull与Push两种方式来获得。具体地,Pull方式需每间隔一段时间就要在服务器上查询有无更新的信息出现,这种方式对于客户端来说不但浪费网络流量和电量,还要时刻不停地监测服务端的变化;而Push方式则是服务端将更新的信息推送到客户端上,客户端就能自动地接收到消息,用户只需通过手机的通知栏处向下一拉,即可看到手机接收的各种通知信息。

1 系统的设计思想

结合当前学校对移动智能终端在使用时遇到的实际问题,本系统为现有移动终端搭建一个基于Android的成绩推送平台,选用发布-订阅机制与智能终端保持网络通讯协议的长连接来真正实现实时信息推送[1]。系统的总体架构如图1所示。

图1 系统构架图

Fig.1 System structure diagram

由图1可见,整个系统主要包括应用服务器、移动手机客户端和代理服务器。应用服务器不但可以当作Web服务器,还能当作手机客户端回复信息的订阅方。作为Web服务器时,管理者可以通过Web网页利用服务器对手机客户端发布通知、新闻、成绩信息,以及下发管理指令来远程管理手机终端和获取手机内的信息;当作为主题订阅者时,主要是将移动手机终端回复的消息存储至数据库。而系统中代理服务器的功能是实现信息的实时推送,接收来源于应用服务器发布的信息并将其完整储存,而后再推送给手机客户端[2]。为保证手机客户端能够实时接收应用服务器推送过来的消息并对此做出响应,就必须针对手机与代理服务器之间建立持续连接。如果用户想获取更为详细的文件与资料,也能通过客户端直接来访问应用服务器。

2 系统设计

2.1 系统实现的功能

结合当前学校对移动智能终端在使用时遇到的实际问题,本系统为现有移动终端搭建一个基于Android的成绩推送平台,该系统平台需要满足的功能,即系统需求可表述如下:

应用服务器是利用B/S结构来实现,这种结构可分为三层,分别是客户端浏览器、Web服务器以及数据库服务器。

系统的前台显示作为信息资源的呈现,目的是将成绩信息公布在浏览器页面上,利于全体学生或管理员的查阅。在前台所显示的页面中,需提供登陆与搜索功能。在系统登陆成功之后,可以单击“查看详情”按钮对详细信息进行浏览[3]。在对推送记录进行查阅时,可按发布时间或关键字进行查找,节省依次查询时间。

系统后台管理包括了学生成绩信息的推送,而且还包含有对系统的管理,例如管理员、移动终端、推送命令等等。应用程序通过PHP来调用预先定义的API函数来实现各模块的功能,而无需访问源码。

手机客户端的实现要具备两个功能:一是便于管理员对辅助功能进行添加操作;二是能够实时接收管理员推送的消息和命令,并对其做出相应反馈。

2.2 应用服务器设计

本系统采用浏览器和服务器模式的B/S结构,因为系统的开发、维护或升级等工作大部分都集中在服务器端,只需要针对服务器进行操作或更改即可方便直观地管理系统,而且B/S操作模式便于不同部门的使用管理,不论在任何时间、地点、操作系统,只要浏览器可以上网,就可以使用B/S系统的终端。院系管理员对应用服务器进行登录操作,则需利用Web浏览器才有权限进行操作。

从构建系统的逻辑完整性上分析,用户在通过应用服务器进行信息发布时,需要有一个前台显示模块。在页面中,用户可对管理员发布的信息列表进行浏览,可通过查询功能实现信息搜索。若对移动终端进行远程控制,还需要建立一个后台管理模块,该模块是整个推送平台的核心,重点实现用户的登录验证、移动终端管理、信息的上传下载及推送管理等功能。各功能模块如图2所示。

图2 应用服务器实现的各功能

Fig.2 Application server to achieve the various functions

设计中,如前所述,系统的前台显示作为信息资源的呈现,目的是为了把成绩信息公布在浏览器页面里,全体学生或管理员的查阅。在前台所显示的页面中,需提供登陆与搜索功能。在系统登陆成功之后,可以单击“查看详情”按钮对详细信息进行浏览。在对推送记录进行查阅时,可按发布时间或关键字进行查找,节省依次查询时间。其处理数据流程如图3所示。

图3 推送内容分布显示

Fig.3 Shows the distribution of the push

在后台模块中,推送管理模块实现了学生成绩信息管理和终端命令发送功能,是系统中最为重要的功能模块。登录系统界面后,找到功能菜单里的成绩发布,进入到发布页面,填写需要发布的课程名称与成绩,点击提交按钮,所有的记录将自动存储到scores数据表里,并返回唯一标识的ID号。

推送即时信息将根据学生客户端订阅的内容发布到代理服务器Broker里,此过程需借助SAM,这是一个针对MQTT写的PHP库,能够实现该协议的订阅与发布功能,构造SAMConnection类,利用connect方法将PHP脚本传递到消息服务器,subscribe方法是创建一种能订阅一个或多个主题的方法,send方法是把消息传送到队列或主题中,receive方法是从队列接收消息或订阅,而disconnect方法要断开PHP脚本借助消息服务器来实现。通过封装在这个类中的方法并在相应的PHP脚本中包含require(‘SAM/php_sam.php)就可以实现所有的信息订阅与发布[4]。

2.3 代理服务器功能设计

代理服务器根据用户订阅的主题采用消息的模式通过应用程序实现数据信息的推送,这也是整个系统推送过程的焦点。其流程是:客户端首先向代理服务器订阅自己需要的主题,管理员通过学号查询到订阅相同主题的学生并向该终端推送订阅信息。在此过程中,代理服务器要具备接收主题的订阅及信息的存储与转发。图4所示即为订阅与发布信息的过程。

图4 发布/订阅机制

Fig.4 Publish / subscribe mechanism

Android系统可采用MQTT协议来实现成绩的推送功能,利用一个MQTT服务器充当系统的代理服务器,当作MQTT客户端去完成应用服务端与手机客户端的信息发布与订阅机制[5],实现系统中全部的信息推送。

Mosquitto是一个轻量级,具有良好开源性的软件,能为MQTT 3.1协议实现信息的推送提供代理,可采用发布/订阅的模式推送信息。具体地,使用mosquitto_pub程序可以通过命令行实现消息在客户端的发布,而mosquitto_sub 可用命令行实现消息在客户端的订阅,sub_client是客户端订阅一个或多个主题的消息。

2.4 手机移动客户端的设计分析

手机客户端除了具有订阅功能外,还需要对推送命令具有运行、反馈的能力。根据需求分析并结合实际情况,手机客户端要为用户提供一个登录版块,能够对登录名及密码进行验证,并具有密码设置修改功能,在登录成功后,用户可从信息通知、系统设置查看消息以决定对个人SIM卡及服务启动关闭。

为使客户端能够浏览成绩信息,客户端能连接到应用服务器。手机客户端在运行过程中的实现流程如图5所示。用户第一次使用客户端程序时,系统会提示用户修改初始密码,进入系统后要求用户对系统功能进行初始化设置,开启系统服务,建立客户端与代理服务器之间的TCP/IP协议长连接,等待接收来自服务器实时推送过来的信息和命令,并及时做出应对和处理。对于系统中的辅助功能也要在登陆之后才能使用。

图5 客户端效果实现详细设计

Fig.5 Client effect to achieve detailed design

3 功能测试

学生成绩推送系统在功能测试与性能测试中的运行状况。从系统完整性与可实现性来看,采用长连接方式

图6 客户端整体工作的流程

Fig.6 Client whole work process

对功能模块进行测试,针对系统登陆界面和系统功能进行测试。利用三星Galaxy Mega手机作为测试环境,把其他与测试无关的应用全部删除,排除外界因素的干扰,使系统性能达到最佳状态。客户端整体工作的流程如图6所示。

4 结束语

结合Android系统的分层体系结构,采用持久连接的方式通过应用服务、代理服务及Android客户端实现了成绩的信息推送。 系统数据库在设计上仍需要进一步优化升级,进而提高其网络安全、数据传输及数据存储的安全性。

参考文献:

[1]贺鹏,刘永. 基于Android移动数字校园系统的设计和实现[J]. 电子技术与软件工程,2014(5):42-43.

[2]张宗利. 基于信息推送技术的公选平台消息子系统的设计与实现[D].上海:东华大学,2014.

[3]万梅,顾和明. 基于智能设备的家校通系统的设计与实现[J]. 电脑知识与技术,2014(18):4163-4165+4183.

[4]邹春刚. 基于移动互联网应用的可靠数据推送方法[J]. 网络安全技术与应用,2014(6):49-50.

[5]任亨. 基于MQTT协议的消息推送集群系统的设计与实现[D].沈阳:沈阳计算技术研究所,2014.

猜你喜欢
学生成绩
巧用EXCEL2010管理学生成绩
浅析数据挖掘技术在学生管理系统中的应用
高职数学分层教学学生成绩评价的数学模型
Excel+VBA开发之《学生成绩管理系统》的设计与实现
基于MATLAB转置矩阵的学生学习成绩预警快速算法