SCI论文(www.lunwensci.com):
摘要:针对线上教学师生之间互动不足,缺乏教学反馈,设计开发了基于Android平台的教学即时通信系统。该系统以开源框架为基础进行二次开发,主要由即时通信服务器、智能作业辅助批改、中间件和Android客户端等模块组成,既能拥有系统自主控制权,确保数据安全,又能为师生定制功能。其中Openfire二次开发实现信息中心功能,IAHC将学生作业进行分词存储标注,为教师提供清晰的批改思路,Smack将操作封装成XMPP底层协议,Android客户端为师生提供可视化界面。目前系统已经开始测试运行,为师生提供了便利的沟通平台。
关键词:即时通信;Openfire;Android;XMPP;布隆过滤
Teaching Instant Messaging System Based on Android Platform
LIU Fang,LI Junji
(Taiyuan University of Science and Technology School of Information Science and Technology,Jincheng Shanxi 048011)
【Abstract】:Aimed at the lack of interaction and teaching feedback between students and teachers,a teaching instant messaging system based on the Android platform is designed and developed.The system uses an open source framework as a solution for development,it is mainly composed of instant messaging server,intelligent auxiliary homework correction,middleware and Android client,it guarantees full control of the system and ensures data security,customizes the required functions for teachers and students.Openfire secondary development realizes information center,IAHC segments word and marks homework,providing teachers with clear correction ideas,Smack encapsulates the operation into XMPP underlying protocol,Android client provides visual functional interface.At present,the system has been tested and operated,which provides a convenient resource communication platform for teachers and students.
【Key words】:instant messaging;Openfire;Android;XMPP;bloomfilter
0引言
即时通信应用发展迅速,应用于个人及企业即时通信服务等,在教育领域目前没有得到很好的应用,教师开展线上教学时,虽然线上教学资源丰富、学习方式灵活多样,但师生之间缺乏互动,资源也无法按照类型分享,随堂测试主要以客观题为主,主观题批改繁琐,因此本文将即时通信技术应用到教学平台,设计了基于Android平台的教学即时通信系统,可按需开发定制师生需求模块,也无像QQ、微信等通信软件过多冗余功能的干扰,更好地为师生服务。
1系统设计
1.1整体框架
本系统由客户端(AndroidApp)、服务器端(Openfire)以及智能辅助作业批改(Intelligent Auxiliary Homework Correction,IAHC)三部分组成。App用于实时感知师生操作,并将这些事件涉及的输入参数传递给接口发送到Openfire服务器,还需要实时可视化来自Openfire服务器的监听消息;Openfire服务器解析收到的消息,做出相应处理并将处理结果返回给消息发送方;IAHC在接收到学生提交的作业之后,对作业进行分词、创建索引文件、映射位向量,教师批改作业时,经过输入关键词、查找关键词、作业得分排序、标注关键词等步骤辅助教师批改作业。
1.2服务器设计
服务器在Openfire源码上进行插件二次开发[1],大致分为3个插件:永久群插件、资源共享插件、话题讨论插件。(1)群聊插件分为及时群聊和永久群聊两类。及时群在用户退出之后,群聊自动解散,群文件中的图片、文件、视频等资料将被自动上传到资源共享插件;永久群聊可永久保留,不受用户登录状态影响,其群内相关文件同样上传至资源共享插件,同时在群内保留资源映射。(2)资源共享插件按照资源类型进行存储文件,方便师生依据类别查找下载所需文件,此外可同步存储及时群和永久群的文件内容,师生均可共享下载,教师默认为资源共享插件的管理者,管理者权限也可进行转让,方便人员变更和资源管理。(3)话题讨论插件用于师生发布求助内容、学习心得、疑难解惑等信息,通过话题浏览量、回答量、回答认同度等角度通过分类排序算法自动将质量较高的话题置顶。
1.3智能辅助作业批改设计
智能辅助作业批改模块主要由应用层、Lucene[2]层、BF(Bloom Filter,布隆过滤)[3]层构成。应用层针对学生和教师提供不同的接口,学生提交作业,教师输入关键词;Lucene层完成作业分词、索引存储、检索作业功能;BF层提高检索效率,对关键词进行预处理,如果关键词不存在BF的位向量中,则说明作业中不存在关键词,不需要对作业进行检索。
1.4 Android客户端设计
基于Android平台的教学即时通信客户端大致分为4个模块[4]:用户管理模块、即时通信模块、消息订阅、话题讨论模块、文件共享。用户管理模块包括登录、好友操作、客户端设置等子模块;即时通信模块包括好友聊天和群组聊天两个子模块,发送的消息可以包含:文字(表情)、多媒体(图片、语音、视频)、文件等;消息订阅模块包括订阅消息和管理已订阅消息模块两个子模块;话题讨论包括个人话题管理以及他人话题评论两个子模块;资源共享包括资源上传和资源下载两个子模块。
2系统实现
2.1服务器实现
本即时通信服务器的运行需要对Openfire源码进行二次开发,实现永久群聊、资源共享以及话题讨论插件。具体实现过程如下:
(1)Openfire源码部署运行:下载Openfire源码并导入到Eclipse中,修改相关参数配置,编译项目,完成二次开发前的基础部署;(2)开发功能插件:对于每个插件需要实现Plugin和IQHandler两个类,在Plugin实现类里主要负责插件初始化工作(例如初始化连接、注册IQ包处理类)和销毁操作,IQHandler实现类里实现对自定义IQ包解析,处理解析后的指令将结果返回给客户端;创建数据库文件,该文件中存放和插件相关的数据库表信息,同时在plugin.xml文件中设置databaseKey、databaseVersion等字段;(3)设置插件:在plugin.xml文件中设置插件具体的启动类、名字、描述等信息;将插件配置到build.properties文件中;(4)打包插件:在Eclipse IDE中通过Ant将项目源代码编译生成JAR包,位于Target目录下,启动Openfire,插件自动启动执行。
2.2智能辅助作业批改
智能辅助作业批改模块以全文检索Lucene为基础框架,对学生提交的作业使用IKAnalyzer算法进行分词,利用Lucene中索引类对作业的分词结果创建关键词,并为学生作业生成关联索引文件,同时使用BF将分词结果的关键词映射到位向量中;教师在批改作业时,输入答案关键词,首先利用BF预判段关键词是否存在学生作业中,然后对学生包含的关键词情况排序呈现给教师,供教师进行参考。具体实现过程如下:
(1)首先模块会进行初始化操作,定义索引目录类Directory(标明索引存储的硬盘位置)、分词器Analyzer、索引写出器配置对象IndexWriterConfig、索引工具写出工具类IndexWriter、布隆过滤类BloomFileter;(2)读取作业内容,把作业内容转换成文档对象(Document)并添加到文档集合中,并将作业内容的分词结果添加到BloomFileter的位向量中,IndexWriter处理文档集合,然后进行提交,关闭;(3)教师在批改作业时,首先输入关键词,将关键词在BloomFilter的位向量中进行查找,如果所有关键词不存在,则不需要对学生的作业进行特别标注;反之,创建索引工具写入类IndexReader、索引搜索工具IndexSearcher、查询解析类QueryParser;(4)调用search方法进行搜索,按照得分的高低依次排序,并将作业中的关键字标注进行显示。
2.3 Android客户端实现
2.3.1好友聊天
好友之间聊天信息通过ListView列表来显示,在用户登录成功后需要注册消息变化的监听,随着消息的到来实时刷新界面。师生可以发送如下消息:文字、表情、图片、语音、视频、常用语消息等。对于纯文字消息直接调用SmackAPI中的sendMessage方法来实现,将文字和表情图片以键值对存放到LinkedHashMap中,在发送表情时将表情转换成文字进行发送,在显示或者接收到表情时再将文字信息转换成表情小图片,如果在文本框中进行显示还需要依据缩放因子对图片进行缩放;发送图片时调用手机自带的相机或图库得到Bitmap类型图片,接着将Bitmap类型转换成Base64字节码,然后在字节流的开始和结束位置加上图片类型标志进行发送;发送语音时需要调用手机麦克风进行录制存储文件,将音频文件转换成String类型,并对其进行Base64编码,并标注音频类型进行发送;视频和文件的发送调用Smack API中OutgoingFileTransfer类中的SendFile方法进行发送;师生可以设置常用消息(常用语的增删改查),在发送时点击直接发送即可。客户端需要注册接收消息和文件的监听,在接收到消息时,解析消息前后缀,处理不同的消息类型,例如将Base64字节流转换成图片或者音频消息,并呈现给客户端,在接收到文件时调用IncomingFileTransfer中的recieveFile来实现。
2.3.2群组聊天
利用SmackAPI中提供的MultiUserChat类中的方法来完成群聊的基本功能,例如创建群聊、设置群的相关属性(名称、描述、密码等)、邀请好友进入群聊、将某人踢出群聊、发送消息(文字、表情、图片、常用语消息)等;在创建群组时,可以选择创建即时群组和永久群组两种类型,即时群组在所有的用户状态变为离线之后,该群自动解散,永久群组始终存在,该群组在使用一段时间之后,不需要的情况下管理员可以对永久群组予以删除;师生向加入到某个群组中不知道群组名称时,可以通过搜索已经存在的群组加入;在群组中增加了文件共享功能,师生通过群组文件模块实现文件的上传、下载、删除等功能。
2.3.3消息订阅
客户端呈现所有的消息,师生点击所感兴趣的消息,然后请求服务器提交自己的订阅消息;服务器端实时更新所有订阅消息的状态,当监听到有订阅消息发生改变时,将更新后的消息进行推送,只有注册相关消息监听的师生可以查看最新消息。
2.3.4话题讨论
师生可以增加、修改、删除自己发布的话题,也可以参与到其他话题的讨论中去(即评论)。首先自定义一个显示话题的控件MsgListView,该控件继承ListView并实现OnScrollListener接口,主要实现用户上滑和下拉操作;由于需要从网络上获取数据,继承AsyncTask实现了多线程类请求服务类,在服务器成功返回数据,调用回调函数显示在屏幕上。在获取话题数据时,为了减少数据的传输,每次请求固定条数的话题,保证适合屏幕的尺寸大小,随着用户手势的变化进行实时显示屏幕数据。
2.3.5资源共享
师生具有上传文件和下载文件的功能[5],将要分享的资源按照类别上传到服务器,也可以获取服务器上的资源,在获取资源时可以选择自己所需要的类型,如果不选资源类型则返回所有的资源列表。下载文件时师生提交获取资源请求,同时标注所需获取资源的类型;资源共享插件根据web.xml中配置的Servlet找到后端查询文件类ListFileServlet,然后将文件相关的信息返回给客户端;客户端在看到文件后可以将选中的文件发送下载请求交给DownLoadServlet处理,客户端收到文件之后存储到本地。上传具体执行步骤:用户选中文件和资源类型点击上传按钮,服务器的UpLoadServlet类将用户上传的文件存储到对应的目录,并将上传信息返回给用户。
3总结
本文主要介绍了基于开源框架Openfire+Smack+Android的教学即时通信的设计与实现,相比其他通信软件,本系统能为师生提供简洁便利的沟通交流方式,资源共享保证师生之间可以将资源进行实时传递,话题评论为师生带来思想的碰撞,IASHC为教师批改作业提升效率。系统运行测试上线,得到了师生的广泛好评。
参考文献
[1]王兰.EAST即时通信系统研究与实现[D].合肥:中国科学技术大学,2018.
[2]熊安萍,李传根,曹春江.Lucene索引段合并优化策略[J].重庆邮电大学学报(自然科学版),2020,32(1):105-112.
[3]王莱,周腾达,王正飞,等.基于布隆过滤器和B+树构建倒排索引的电子病历密文搜索[J].计算机应用与软件,2021,38(4):276-280+333.
[4]李俊峰.基于Android的燃气壁挂炉远程监控系统设计[J].计算机应用与软件,2019,36(10):6-9+38.
[5]赵金幸,肖炳甲,袁旗平.基于Android平台的EAST即时通信系统[J].计算机应用与软件,2020,37(8):11-15+97.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/45590.html