webservice在基于android的移动教务系统中的应用


F 福 建 电 脑 UJIANCOMPUTER 福 建 电 脑2015 年第 11 期 0 引言 基于 Web 的教务系统需要有互联网和计算机的支持,对于 信息量较少的查询工作,例如课程表信息的查询,就显得比较 繁琐。尤其是在远离电脑的某种紧急情况下,需实时查询教务 信息更是困难。要随时随地的获取信息,通过智能手机连上互 联网是一种非常可行的方案。 Android 系统已经成为全球应用广泛的手机操作系统[1]。教 师和学生如果可以利用手机查询课程信息、成绩信息等将会使 学校生活变得非常方便。 1 系统分析 登录基于 Android 的移动教务系统,首先要进行身份确认, 用户角色分为教师与学生两类。从稳定性与安全性考虑,系统 将数据库保存在学校服务器上,用户可以随时下载,下载成功 即可使用本地数据。 1.1 功能分析 基于 Android 的移动教务系统要实现以下基本功能: (1)用户登录。根据提供的用户名、密码进入系统,角色分 为教师和学生两种,不同的角色进入系统后将展示不同的内 容。支持多用户记住密码以及自动登录功能。 (2)系统设置。系统设置可以使得软件具有较好的灵活性、 通用性,该部分功能至少应该能设定当前学年、学期,以及学期 教学周数和开学日期。 (3)下载课表。考虑到网络查询可能存在耗时而导致查询 效率低,以及手机移动网络由于某种原因不能连入网络的局限 性,所以为了课表查询的快捷、便捷和节省移动网络流量,用户 可从服务器上下载指定学期自己的课表信息到本地嵌入式数 据库 SQLite 中保存。 (4)显示课表。经过比较权衡,本系统采用比较传统的课程 表格的形式来显示课表信息,每个课程信息采用不同的背景颜 色呈现。 (5)课表课程管理。该模块包括本地课表信息的增加、删除 以及修改,当从服务器下载的课表跟实际课表有出入或者用户 出于其他考虑的时候,用户可以自行管理本地课表信息。 (6)成绩查询。用户可以查询指定条件的课程成绩信息。当用 户为学生时,可以查询指定学期所有课程的成绩;当用户为教师 时,可以查询指定学期和班级的所有学生的某课程的成绩信息。 (7)作业管理。用户可以方便地记录某一堂课的作业信息, 并能对其管理。 (8)时间提醒。可以调用 Android 系统的闹钟功能,管理对 某课程的提醒。 (9)清除登录。用户登录时可以选择记住密码和自动登录, 该功能就是要清除某用户的登录信息。 1.2 技术分析 (1)Web Service 技术 Web Service 是一个平台独立的,低耦合的,自包含的、基于 可编程的 Web 的应用程序[6]。通过使用 Web Service,我们能够 像调用本地方法一样去调用远程服务器上的方法。我们并不需 要关心远程的那个方法是用什么语言编写,也不需要关心远程 的方法是基于什么平台。 在 Android SDK 中并没有提供调用 Web Service 的库,我 们使用比较常用的 Ksoap2 第三方的 SDK 来调用 Web Service。 (2)JSON 技术 JSON 是一种轻量级的数据交换格式。JSON 采用完全独立 于语言的文本格式。这些特性使 JSON 成为理想的数据交换语 言,易于阅读和编写,同时也易于机器解析和生成(网络传输速 度)[7]。 与 XML 比较,JSON 具有较好的可扩展性。JSON 和 XML 有一个很大的区别在于有效数据率。JSON 作为数据包格式传 输的时候具有更高的效率,这是因为 JSON 不像 XML 那样需要 有严格的闭合标签,这就让有效数据量与总数据包比大大提 升,从而减少同等数据流量的情况下,网络的传输压力。 2 系统设计 2.1 SQL Server 数据库设计 服务器 SQL Server 数据库保存学生、教师、教室、班级、课 程以及课表相关信息,其中学生、教师、教室、班级、课程信息这 几张表,就是常用的一些常规信息,篇幅所限,此处不再描述, 课表相关信息如表 2-1 所示。 表 2-1 scheduleInfo(课表信息表) Web Service 在基于 Android 的移动教务系统中的应用 郭忠南 (无锡机电高等职业技术学校 江苏 无锡 214028) 【摘 要】教务信息管理作为学校管理的重要手段,在学校的发展中起到举足轻重的作用。同时,在基于 Android 系 统的终端上通过软件随时随地地获取教务信息是切实可行的。文章分析了系统功能,介绍了相关技术,探讨了如何进行 Web Service 的开发以及如何在基于 Android 的系统中使用 Web Service 的细节。整套系统在实验室环境下运行良好,对 实际应用有着较好的指导意义。 【关键词】Web Service;Android;移动教务;Ksoap2;JSON 字段名称 字段类型 说明 Id bigint 自动编号(关键字) nowXuenian nvarchar(50) 学年 nowXueqi nvarchar(50) 学期 classId nvarchar(50) 班级编号 teacherId nvarchar(50) 教工编号 courseId nvarchar(50) 课程编号 weekday nvarchar(10) 标记课程是周几上课 fromNum int 课程起始节次 toNum int 课程结束节次 courseLength [toNum]-[fromNum]+1 课程上课节数,自动计算列 courseClassRoom nvarchar(50) 上课地点 whichWeek nvarchar(500) 课程上课周次 DOI:10.16707/j.cnki.fjpc.2015.11.071 133·· F 福 建 电 脑 UJIANCOMPUTER 福 建 电 脑 2015 年第 11 期 2.2 Web Service 功能设计 服务器 Web Service 提供以下函数,功能说明如下: (1)GetStuCourseInfo:获取指定学年、学期和班级的课表信 息,并返回 JSON 格式的字符串。 (2)GetTeachClassId:获取指定学年、学期某教师所教班级 编号,并返回 JSON 格式的字符串。 (3)GetTeachClassSubjec:获取指定学年、学期某教师所教 某班级的所有课程编号号与课程名,并返回 JSON 格式的字符 串。 (4)GetTeachSubject:获取指定学年、学期某教师所教课程 编号与课程名信息,并返回 JSON 格式的字符串。 (5)GetTeacherCourseInfo:获取指定学年、学期某教师的课 表信息,并返回 JSON 格式的字符串。 (6)StudentGetScoreInfo:获取指定学年、学期某学生的成绩 信息,并返回 JSON 格式的字符串。 (7)TeacherGetScoreInfo:获取指定学年、学期某班级指定课 程的学期成绩,并返回 JSON 格式的字符串。 (8)selectADPwd:按指定的用户名、密码进行登录验证,并 返回 JSON 格式的字符串。 2.3 客户端功能模块划分 根据功能需求分析,对系统客户端进行如图 2-1 所示的模 块划分: 3 系统实现 3.1 Web Service 服务器功能实现 .NET 平台内建了对 Web Service 的支持,包括 Web Service 的构建和使用。新建 Web Service 后,添加系统所需要的方法, 以 GetTeacherCourseInfo 方法的实现为例,其他方法类似。在 WebService.cs 中添加如下代码: MySqlDB DB = new MySqlDB(); [WebMethod(Description = "下载教师课表")] public string GetTeacherCourseInfo (string nowXuenian, string nowXueqi, string teacherId) { return DB. GetTeacherCourseInfo (nowXuenian, nowXueqi, teacherId); } 其中 MySqlDB 为自定义类,部分代码如下: public class MySqlDB : IDisposable {//获取教师指定学期的课表信息 public string GetTeacherCourseInfo (string nowXuenian, string nowX- ueqi, string TeacherId) { DataTable dt = new DataTable(); try{ String sql = "select classInfo.classId,classTeacher,subject, weekday,fromNum,toNum,courseLength,courseClassRoom,whichweek from dbo.scheduleInfo,dbo. classInfo,courseInfo where courseInfo.courseId = scheduleInfo.courseId and dbo.scheduleInfo.classId =dbo.classInfo.classid and nowXuenian='" + nowXuenian + "' and nowXueqi='" + nowXueqi + " ' and teacherId='" + TeacherId + "'"; SqlCommand command = new SqlCommand(sql, sqlCon); SqlDataAdapter sda = new SqlDataAdapter(command); sda.Fill(dt);} catch (Exception e) { } return JsonConvert.SerializeObject(dt, newDataTableConverter()); //将数据表形式的数据序列化成 JSON 字符串 }} 3.2 客户端功能实现 限于篇幅,下面以“成绩查询”模块的实现来说明 Web Ser- vice 的使用。成绩查询界面中,用户可以通过指定条件查询。当 用户为学生时,可以查询某一学期所有课程的成绩;当用户为 教师时,可以查询某一学期所带班级所有学、生的某课程的成 绩信息。效果如图 3-1 和图 3-2 所示: 客户端的用户为学生或教师时,虽然呈现的效果不同,但 两者开发思路相似,在此只给出当用户为学生时的部分核心代 码: //调用 Web Service 中的相关方法 Object soapObjectGetStuCourse = webServiceUtils.getWebService( methodNameGetStuCourse, propertyGetStu- Course, valueGetStuCourse); if (soapObjectGetStuCourse ! = null) { Message mes- sage = handlerGetStuScoreInfo.obtainMessage(); message.obj = soapObjectGetStuCourse; handlerGetStuScoreIn- fo.sendMessage(message); } //使用 Handler 处理多线程 JSONArray jsonArray = new JSONArray(msg.obj.toString()); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String subject = jsonObject.getString("subject"); String score = jsonObject.getString("score"); 4 系统测试 在安装了 IIS 的 Windows 操作系统、Microsoft SQL Server 2005 数据库以及 Visual Studio2010 集成开发环(下转第 58 页) 图 2- 1 移动教务管理系统 Android 客户端功能模块 图 3- 1 查询结果(学生) 图 3- 2 查询结果(教师) 134·· F 福 建 电 脑 UJIANCOMPUTER 福 建 电 脑 2015 年第 11 期 4 中控机损坏后的应急处理方案。 当中控机出现类似上述死机现象,经重启中控机而未能解 除、按动控制面板无相应反应便可确定中控内部元器件出现故 障,需要联系公司返厂进行修理。为满足多媒体课堂教学持续 进行的要求,需要进行必要的应急处理。处理方案:把计算机的 显示器和投影机通过 VGA 分配器连接,使用遥控器手动打开 投影机进行临时上课。课后如果有备用中控机,可以连接线路, 重新设置中控 IP 地址,绑定备用中控和该教室设备,然后重启 控制室的服务器,即可正常使用中控设备。 5 银幕升降失控导致的银幕拉坏故障。 电动银幕主要由电机、限位、幕布、幕布中心管以及外壳几 部分组成,其工作原理是电机带动幕布卷轴转动从而达到收放 的效果,电机接有 3 根线,一根零线,一根上行线和一根下行 线,限位控制幕布的停止。银幕升降失控是由限位部分出现故 障引起的。通常在幕布上升到顶部时,限位控制失控不能正常 停止,导致幕布冲击电机,从而卡在卷轴里边。下次上课的时 候,系统开启,幕布不能正常下降,这时如果硬拉幕布使其下 降,就会导致幕布拉坏。因此当幕布卡住不能自动下降时,应首 先按幕布下降键,使幕布的上升过程改为下降过程,这时稍微 拉一下幕布,把卡住的部分拉出来,幕布即可自动下降。课后联 系维修人员检修限位部分。 6 网络中控机与受控设备连接(系统集成)质量对系统可靠 性的影响。 网络教学系统所能实现的诸多功能决定了多媒体讲台内 部布线的复杂性。在实际课堂教学过程中,由系统集成质量不 良而引发的故障较为突出,没有严格执行施工行业规范以及施 工质量监管是其故障多发的主要因素。由讲台内部布线质量以 及中控机与各受控部件连接质量所导致故障占系统总故障的 50%以上。 * 如网线输入、输出水晶端子接触不良导致的网络控制中 断、VGA 接头松动造成的显示或投影信号消失、摄像头供电及 视频传输问题导致的无监控图像或图像质量不良等等故障发 生频繁。 * 布线不规范,强弱电不分离,接线端子无标识。 * 220 交流未设专门供电。 上述诸多问题都是由于中控机与受控设备之间连接不牢 固造成,各种故障频出,重新插拔一下连接线即可解决问题,但 是过不多久又会重复出现相同的问题。因此必须从产品招标质 量和施工质量严格把关,规范施工,避免这些人为因素导致的 设备故障。对于众多布线实行强弱电分离,在每根线上贴上标 签,避免后期工作人员维护时接错线。对于多个受控设备,我们 在每个教室安装了时序电源控制器,对中控系统、受控的音响、 计算机、投影机、电动幕布逐个顺序供电,既能避免人为的失误 操作,又可降低多个用电设备在开关瞬间对供电电网的冲击, 也避免感生电流对设备的冲击,保证整个用电系统的稳定和设 备使用的稳定。 多媒体教学网络控制系统为多媒体设备的管理带来极大 的方便,前提是系统的运行比较稳定可靠。既要保证产品硬件 质量和安装质量,维护人员又要熟练掌握软件的使用方法和经 常遇到的故障的处理方法,同时厂家应该定期升级软件,改善 使用过程中发现的不足之处。多方配合,才能使网控系统发挥 出优良的管理功效。 参考文献: [1]朱兴华.论网络教育时代多媒体电教设备的集中管理[J],宁波广播 电视大学学报,2009,7(1):85. [2]刘伟.基于中控系统的多媒体设备远程控制应用[J],济南大学教育 技术中心,中国现代教育装备,2006,34(5):34. 作者简介: 第一作者:肖文雅,河南邓州人(1980-),新乡医学院现代教育技 术中心,实验师,硕士,研究方向,现代教育技术。 通讯作者:姚红星,河南太康人(1978-),新乡医学院现代教育技 术中心,实验师,硕士,研究方向,现代教育技术。 境的机器上发布 Web Service,利用实验室的无线路由器以及不 同屏幕大小的 Android 智能手机多台对系统进行了反复多次测 试。 最开始遇到一个问题,本机能够访问 Web Service,但是别 的电脑和手机访问不到,经过分析是 Windows 防火墙的缘故, 解决方法就是关闭 Windows 防火墙或者设置 Windows 防火墙 中允许的程序,将 WWW 服务器(HTTP)打勾即可访问。经过大 量测试,系统在功能和性能方面都能良好运行。 5 结束语 基于 Android 的移动教务系统通实现了对课表信息的查 询、增加、修改以及删除,系统可以管理课程的课堂作业信息, 可以查询学生成绩,并可以通过基本设置以提高系统的灵活 性。在实验室环境下对系统功能进行了测试,运行良好。 参考文献: [1]吴衡.基于 Android 平台的课表查询软件设计[J].天水师范学院学 报,2012 年 02 期. [2]黄舜.基于 Android 平台的校园通软件[D].浙江师范大学,2012. [3]杨丰盛.Android 应用开发揭秘[M].北京:机械工业出版社,2010. [4]罗震.Android 平台环境下应用程序架构的设计与实现[D].华中科 技大学,2009. [5]艾伦,欧文斯著.杨谦,刘义宣,谢志强译.SQLite 权威指南(第二版).电 子工业出版社,2012. [6]张金伟.基于 Web Service 的校园信息门户研究[J].科技创新导报, 2012 年第 25 期. [7]百度百科:JSON. http:/ / baike.baidu.com/ link?url=009LjYhKJ3rwGzrDQyONk- tAN1XR90aD1W1kPa96fRR5cg3DiFaC5PZuowxvHM6Ph7kFsuClfp- mV9i- 9eKVA6t_. 2015.5. 作者简介: 郭忠南(1980-),男,山东烟台人,硕士,讲师,研究方向为软件技 术、无线通信技术。 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (上接第 134 页) 58··
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf