信息推送在基于智能设备的家校通系统中的应用
谢鹏, 顾和明
(长江师范学院 数学与计算机学院,重庆涪陵 408100)
摘 要:随着移动网络技术的不断发展,智能设备消息推送机制不断完善。信息推送被运用到了很多领域,本文给出了信息推送在智能设备家校通系统中的运用,解决了基于台式机家校通系统的家校互动能力不足的问题。本文设计的系统采用B/S和C/S模式,服务器使用MySQL数据库,搭载Androidpn信息推送开源框架,完美的将信息推送技术运用到了家校通系统中,使家校通系统更加灵活,更有实用性。
关键字:家校通;消息推送;Android
中图分类号: G434 文献标识码:A
0 引言
中国电教馆将“家校直通车研究和应用”正式立项为“十五”教育技术研究课题之后,我国的家校通系统研究和建设取得了一定的发展,从基于Web网站到如今各种电信的增值业务已经开发出很多类型。然而据调查,家校通在全国的使用率并不高,特别是在乡镇地区生活水平较低,工作忙碌的人群,不愿意花钱订购增值业务也没有时间上网查看孩子在校的动态。因此既能避免增值业务所产生的费用,又能即时准确的将学生在校动态通知到家长成为了家校通发展的难点。
随着移动网络技术和智能设备的不断发展,智能平台上的推送通知(Push)已经被我们所熟知。推送作为现今非常流行的消息实时发送机制,因为低成本和相对快速的到达率被许多企业使用。也是现在家校通系统发展的一个机遇。现在智能手机普及,将智能设备的推送机制和家校通系统结合,能即时准确的将学生的情况推送到家长的手机客户端。这样只需要在手机上安装一个客户端就能免去电信增值业务的费用即时的收到学生,学校的动态。为家长和学校提供一个良好的互动平台。
1 推送机制
目前有数种常见的推送机制,原理简介如下。
(1)轮询(Pull)方式:应用程序每隔一段时间与服务器连接并查询有无消息更新,这种方式需要自己实现与服务器之间的通信,如消息排队等。而且还要考虑轮询的间隔时间,如果太长会导致一些消息的延迟,如果短,则会消耗大量的移动网络流量和电量。
(2)SMS(Push)方式:在Android平台上,可以通过拦截并解析SMS消息内容来获取服务器推送的信息,并将得到的信息进行处理。这个方案的好处在于,可以实现实时操作。但是这个方案的成本较高,需要向提供SMS服务的公司缴纳相应的费用。当前前很难找到免费的短消息发送网关来实现这种方案。
(3)持久连接(Push)方式:这个方案能够解决由轮询带来的性能问题,但是还是会消耗手机的电量。
Android操作系统允许在低内存情况下杀死系统服务,所以推送通知服务很有可能就被操作系统杀掉了。 轮询(Pull)方式和SMS(Push)方式这两个方案也存在明显的不足。至于持久连接(Push)方案虽然也有不足,不过可以通过良好的设计来弥补,以便于让该方案可以有效的工作。
本系统使用Androidpn消息推送开源框架。Androidpn全称:android pushnotification(中文名称:Android消息推送)。Smack是基于XMPP协议的java开发有一个开源框架,它主要封装了一些XMPP的实现。Androidpn是引用smack的基础上实现和服务器端的持久连接,以实现服务器对客户端的推送的开源项目。
Androidpn使用好处:1.采用完全开放的XMPP协议进行数据传输(QQ,MSN,GTalk等都是采用的这种协议)。2.良好的框架支持(专门为android而产生的推送框架smack,以及很好的管理socket的框架MINA,都是很成熟的产品);3.完全开放的源代码(我们可以在Androidpn的基础上进行修改,来满足我们的任何需求变更);大大的减少了客户端的代码,降低了android的开发难度。
2 信息推送在基于智能设备的家校通系统中的应用需求
信息推送机制在家校通系统中占据着重要的地位,它是将消息推送到家长智能设备的核心技术。
2.1学生签到推送
随着社会的不断发展,家长处于忙碌的工作之中没有时间送孩子上学,并且由于近十年来初等教育大量学校合并,减少的学校超过一半,导致大部分学生离学校较远,因此对孩子的到校情况越发关注。然而传统的电信业务是收费服务,很多家长不愿意使用。而电脑上的家校通,由于很多家庭电脑还没普及,并且电脑也无法随时带在身边,无法让家长即时掌握孩子到校情况。而基于Android的家校通系统能够通过互联网即时的将孩子到校信息通过推送机制推送到家长的手机,只需花费少量的流量使系统与服务器保持连接和更新数据。
2.2学校或班级通知(群发推送)
在以前学校或班级给家长的通知通常通过短信发给学生家长或者让学生给家长带信的形式。然而成千上万个学生如果靠发短信通知成本太高,让学生带信有的学生有的消息因为害怕,或者学生忘记,很难准确、即时的通知到家长。基于Android的家校通系统构建了学校、班级群发机制。学校领导,班主任,任课老师可以通过该机制通知家长相关信息,布置作业,发布通告处分等,并且能够即时的通知到每个家长的客户端。
2.3针对单个学生的信息推送
现在学生家长对学生在学校的情况越来越关注,经常通过电话,短信等询问学生在校情况,而有的家长却不知道学生老师的联系方式。而且通过打电话发短信的方式会有不菲的通讯费。而家校通系统构建有家长,老师互动平台。家长可以单独和某个老师聊天,了解学生的情况。而且老师也可以通过该平台和家长联系,了解学生在家的情况。
3 推送功能设计
该模块介绍推送功能在家校系统各个模块间的运用,把推送功能和家校通紧密的结合在一起。
3.1学生签到模块
学生签到是家校通系统的主要模块,该模块用于学校将学生的到校情况实时的推送到家长的客户端。让家长实时掌控孩子的到校情况。
学生签到功能详细描述:首先班主任或早课教师登录家校通系统,打开签到客户端或签到web页面,当学生到教室后直接签到,系统根据到校时间自动判定是按时到校,还是迟到,没有签到的同学,系统会自动判定是旷课,班主任或值日学生干部可以设定为请假等。系统会将该生的到校数据记入数据库同时将数据提交给推送系统,推送系统根据家长的id将数据推送到对应的家长客户端。如果家长客户端没有连接系统,将数据标记为未发送存入数据库中。当家长客户端连接系统后,系统将在数据库中检索未推送的数据,并将未推送的数据立即推送到客户端。对于旷课的同学在上课半小时(时间可由班主任或其他管理人员设定)后将未到校消息发送给家长,家长如果没有及时回复,则每隔半小时再次发送未到校信息,如果家长回复知道未上课原因,则停止发送。通过这种机制,家长能及时掌握孩子上学情况。
学生出勤情况可以定期进行统计,这样便于班主任等老师进行有效管理。
3.2 学校、年级、班级或群体通知模块
该通知模块用于将学校、年级、班级或与若干个同学相关的信息(比如会议、成绩、收费、活动等)通知到若干个家长客户端。此模块是单向推送,学校服务器可以向家长客户端推送,但家长客户端不向学校服务器推送。
该通知模块详细描述:首先学校领导或教师登录家校通系统,打开消息通知页面编辑消息,消息编辑完后根据各自的权限可选择相应的班级或班级中若干个同学,点击发送系统会将通知信息记入数据库用于查询同时会将消息提交给推送系统,推送系统会根据班级将消息发送到该班级每个学生的家长客户端,如果家长客户端未连接,系统会将该家长id标记为该条通知未推送完成,存入相应的数据表中。当家长客户端连接后,系统将会在数据库中检索未推送的通知,并即时推送到家长客户端。消息推送也设定一定的时间限制,超过一定的时限之后,系统不再进行信息推送,这种情况下,家长可以登录查询通知。
3.3 一对一双向信息推送模块
信息推送模块用于家长和学校领导、任课老师之间的交流。就像QQ、微信等能够即时的将发送的消息推送到对方的客户端中。让学校和家长之间的距离更近。
信息推送模块详细描述:家长打开客户端登录家校通选择家校互动后,可在列表栏中看到学生的班主任和所有任课老师的头像和职务,家长点击老师头像后会进入消息编辑页面,消息编辑好后点击发送,消息将发送到服务器,服务器会将该消息存入数据库同时将消息提交给推送系统,推送系统再将消息推送给对应的老师。老师发送消息给家长流程一样。
4 编码
该模块给出推送系统中重要的代码模块。
4.1服务器端消息推送代码
public void sendNotifcationToUser(
String apiKey,String us-ername,String title,String message,String uri) {
log.debug("sendNotifcationToUser()...");
IQ notificationIQ = createNotificationIQ(apiKey, title, message, uri);
ClientSession session=sessionManager.getS-ession(us-ername);
if(session != null){
if(session.getPresence().isAvailable()) {
notificationIQ.setTo(session.getAdd-ress());
session.deliver(notificationIQ);
}
}
}
4.2客户端连接与重新连接服务器代码
private void addTask(Runnable runnable) {
taskTracker.increase();
synchronized (taskList) {
if (taskList.isEmpty() && !running) {
running = true;
futureTask = taskSubmitter.submit(runnable);
if (futureTask == null) {
taskTracker.decrease();
}
} else {
runTask();//服务器重启后客户端重新连接
taskList.add(runnable);
}
}
}
5 结束语
“家校通”平台是有效建立学校与家庭同步教育孩子成长的基础,对科学发展教育、提高教育质量、培养合格人才具有重大的意义。本系统将智能平台的推送机制和家校通系统相结合,即避免了电信增值业务所带来的通信费用,又能即时准确的将学校信息,学生动态等信息通知到家长客户端。使家校通系统能够得到普及。大大的提高了家校之间的交互效率。
参考文献
[1] 甘俊,彭宣戈,朱兵.基于网络平台的家校即时通讯系统的设计与实现[J].微计算机信息化,2006,23(34):3
[2]陈国华.家校通短信系统的研究与设计[J].计算机系统应用,2006(6):58-64