`

基于WEBSEVRICE的课件搜索系统(一)

阅读更多
   临到年尾了,手上的工作基本完成,这几天忽然和旧同学聊天,他讲到当初咱们毕业设计时搞到的一个JSP搞的远程教育系统,因为他最近要搞JSP,想进行深化。我想,这也是个好办法呀,1年多前的毕业设计,时间仓促,很多东西都来不及深入和展开,理解不透彻,何不现在拿回来研究呢。于是,今晚我将当初的东西重新翻出来,看了一次。当大致看完一次后,我忽然发现,当初身为组长的我,在很多设计方面考虑的是多么可笑,有的地方现在看来还是相当幼稚(毕竟1年多了,技术也进步了,了解的东西也多了)。想当初,我做组长,和其余6个组员,真正编码才2个月左右,搞出的东西居然还被评为优秀,哈哈,真的不知道是什么回事了。不过,现在总结下当初的设计经验,我觉得还是很有收获的。接下来,打算将原本的一些我们的设计方法拿出来给大家批评指点下,主要介绍的是webservice部分和我有关的,来源来自我的论文部分,如果哪位需要转载的话,麻烦先通知声,注明出处,谢谢。

一 设计概述
    其实整个设计为学校服务,包括


  A 学生的自主个性化学习系统
     将智能理论引入教学系统,模仿教师的教学思想有选择地提供路径供学生学习,并且
实现学生与教师的双向选择。教材和教程的安排是提高教学质量、激发学习兴趣的关键。系统分为以下几个部分:
    1 学生自主学习:系统根据学生的学历,生成不同的学习章节安排,分为强制学习和自由学习两种方式。强制学习是指学生在浏览课程内容的时候,必须按照章节的指定顺序从头开始学习,在学习完一章后通过自我检测后再进入到下一章的学习;而自由学习方式中,学生可以按任意的顺序浏览课程的内容。
    2 事件提醒功能:
该模块可以让学生在日历中设置自己的事件提醒,学习计划定制,还可以随时记录自己感兴趣的内容,做学习笔记;可以做书签,标记所感兴趣的内容,以后再查看。学生可以通过系统提供的webmail电子邮件功能向教师发送邮件,提问问题。
 B 学习答疑系统
    答疑系统分为实时答疑系统和非实时答疑系统。
   非实时答疑系统设计为一个论坛,学生在学习中遇到问题的时候,可以提出问题,可以上传问题的附件。老师可以很方便地解答学生的各种问题,并反馈给学生;学生可以对教师解答的问题予以投票评价,
    实时答疑系统是一个聊天室,教师和学生可以在指定的时间内在聊天室中进行问题交流。
 C  在线自我测试系统 
    学生在学习完一定课程后,将可以进行测试,系统提供自动组卷和手动组卷两种方式供教师进行组卷。学生在进行自我测试后可以立即查看成绩答案,可以知道自己在某个知识领域方面的掌握情况,教师可以对学生的测试成绩进行简单的统计,以图表形式展示。
  D 教案管理系统
     教师可以上传教案,教案可以是纯文本输入的方式,可以是已经做好的ppt,还可以利用系统本身的简单网页编辑器进行教案的编辑,修改,可以上传到服务器指定位置。
  E 课件管理系统
教师可以将自己制作的优秀课件上传到课件资源库,供学生下载,此外,该系统通过XML WebService的方式,将该系统与其他不同平台的系统相连;教师可以在查询教学资源时,可以将请求发送到不同站点的系统中,不同的系统通过xml的方式返回结果,从而缩小了搜索的范围,大大方便了教学资源的网上共享。

 

 


        其实,我们当初为了学习JAVA/JSP,所以多提出了很多要实现的东西。而在毕业设计完成后,也惊奇的发现,我们这个系统里,可谓用到了很多技术点,如jsp,javabean,servlet,asp.net,xml,webservice,第三方组件,mobile开发,而至于什么关于JAVA/JSP的技术应用也汇集了,
比如什么树型结构,文件上传,聊天室,论坛,JSP的图形,日历,JAVAMAIL。。。,唯一实现失败的是利用JAVA搞语音聊天室失败了。


二 基于XML WebSerivce的课件搜索系统
    其实,现在看来,当初搞这个系统,根本只是纯粹应老师要求,加上自己爱好,想研究WEBSERVICE的,实际上至少目前为止,还不会这样使用。下面就详细讲下,摘录原论文的部分。我当初的目的时,通过JAVA和。NET的WEBSERVICE互相调用,了解其实现方法,以体现WEBSERVICE的跨平台特性,可惜现在看回来,当初我的实现方法出现很多错漏和明显的问题,但毕竟还是初步实现了,嘿嘿,所以打算原始呈现给大家。

4.1.1  课件资源库的概况<o:p></o:p>

在远程教育系统中,教师可以在用Powerpoint,Flash,Authorware等软件在制作课件后予以上传到服务器,以供下载使用。传统的远程教育站点课件资源库就是采用简单的“上传――搜索-下载”的模式实现的。但随着Internet技术的不断发展,互联网上的优秀课件资源变得越来越丰富,教师在进行教学备课,学生在学习中,不再单单局限在某一站点上搜索课件教学资源,因为单一站点上的课件资源不能满足要求。教师或者学生往往要通过其他搜索引擎(如google,yahoo等),但往往搜索出来的结果可以说是海量的,要再次在其中逐一查找,浪费了时间,而且现在的搜索引擎搜索出来的结果,很多都不是十分准确的,包含了其他无用的信息。       
   4.1.2  新系统解决方案概述
   
在新系统的解决方案中,本人提出了使用XML WebService技术构建共享课件资源库。就是使用当今最新的XML WebService技术,从而可以使即使是不同平台(unix/liux,Widows nt/server平台),使用不同语言(asp.net,jsp)构建的远程教育网站站点之间,能够互相访问对方的课件资源库的资源。<o:p></o:p>

其中,在本人的设计中,使用C#,asp.net分别模拟构建了另外两个远程教育网站的课件资源库部分,分别为网站A,网站B,它们分别提供了其自身的课件资源库的WebService接口,接收来自其他网站发送的查询请求,而称这次我们毕业设计小组设计的JSP网站为本地网站。系统的整个工作流程概述如下:
(1) 当用户要搜索课件时,首先将查询的请求格式化为SQL语句。之后将请求发送到
WebService课件代理中心(UDDI

(2) UDDI注册中心中,注册了AB两个网站的WebService的有关信息,当收到本地网站的请求后,UDDI中心调用AB两个网站的Webservice,将用户的请求分别发送到它们的WebService
(3)A
B网站的WebService分别收到了用户的请求,并调用自己的搜索方法,再将请求发送到各自的数据库A,B。<o:p></o:p>

(4) A,B网站分别将数据库搜索出来的结果以XML的形式返回到UDDI注册中心的课件WebService课件代理。而UDDI中心的课件代理则将A,B网站返回的XML加以整理,再返回给本地网站。
(5) 本地网站将返回的XML加以解释,提取结点的内容,再以一定的样式显示在用户面前。<o:p></o:p>

   上面的流程用结构图表示如下:



<o:p></o:p>

 <o:p></o:p>

 <o:p></o:p> 由于这次我们小组设计的系统是使用Java技术构造的,通过WebService,可以成功地与其他两个.net架构的远程教育课件库系统相连。这样一来,当学生或教师要搜索课件的时候,搜索到的就不单单是一个网站的课件资源,而是有可能搜索到若干个同类型网站的课件资源,而搜索出来的结果是十分有效的,没有冗余的信息,十分方便并且有效。而且这种模式可以有效地推广到其他网站的经营模式上去。<o:p></o:p>

   <o:p></o:p>

 4.2  .NET和Java 的WebService概述
 
(1) 微软.NET简介
     2000年6月22日,微软正式推出了其.net战略,2002年,VS.NET 2002 正式推出。<o:p></o:p>

.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息、文件和程序。而用户不需要知道这些东西存在什么地方,甚至连如何获得等具体细节都不知道。他们只需发出请求,然后只管接收就是了,而所有后台的复杂性是完全屏蔽起来的。<o:p></o:p>

 (2) .NET 对WEBSERVICE的支持
   
.NET平台内建了对WebService的支持,包括WebService的构建和使用。 与其它开发平台不同,使用.NET平台,不需要其他的工具或者SDK就可以完成WebService的开发。.NET Framework本身就全面支持WebService,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。
 (3) Java 对WebService的支持
     由于这次毕业设计我研究的部分设计到JAVA与.net上平台上的WebService的互连,因此我对JAVA中对WEBSERVICE的支持进行了研究。
 
   然而,在设计中,我发现如IBM,Sun,Bea,OracleApache等公司或组织都纷纷提出了基于WebService的开发标准和工具,而当中有的是很复杂的。有的虽然功能强大,但在和.NET平台上的WebService的互操作性上不强。最后,我选用了apache组织免费的开源项目Axis
  Axis(Apache extensible Interaction System)的前身是著名开源组织Apache开发的Apache Soap的最新一代产品,目前最新的版本是1.1Axis有以下特点:
 1 使用SAX解释器对XML进行解释,速度比用DOM解释快,灵活性高。
  2  
能自动对原有的Java文件生成对应的wsdl文件。
  3  
能方便地对发布的WebService部署。
  4  
具有十分良好的互操作性,能与其他语言编写的WEB服务进行相互操作调用。 
4.3  .NETWebService的设计
    4.3.1 .NET
端的websevice  
   
首先,我先讲下.NET端的WebService设计。在设计中,A网站采用的是ms sql server 2000数据库,而B网站采用access 2000设计。对A,B网站的数据库的设计如下,分别命名为kejiana,kejianb其数字字典见附录的表4。
    建立数
据库后,就可以建立.Net端的Webservice,下面以网站A为例介绍(网站B的构建类似):
主要编程思想:
1) 引入.Net中的有关WebService的类库,如System.Web.Service等;
2)
根据传入的sql语句,查询Kejiana的数据库,返回有关的查询结果。
3)
对查询的结果进行xml格式化,转化为统一的xml
   
其中,在asp.net中,对数据库的操作的结果是以dataset来表示的。DataSet是在ADO.NET中的一个重要组成部分,ADO.NET让程序开发人员可以在下一代的Web上进行数据存取更为简单,并且更有效率。ADO.NET可以达成这些目的的最重要的两个改进为:Disconnected DataSet(离线数据集)和XML支持。简单来说,DataSet对象就是RecordSet的集合,ADO.NET Framework会提供所有的RecordSet数据库特性,例如排序、分页、检视表、关联性、索引,和主键等,它是一种简单的,驻留在内存中的数据存储方式,实际上它是以XML格式存储的,所以无论是哪种平台或者是哪种语言,都可以使用DATASET。在设计中,我充分利用了dataset的这个功能,先将数据库查询结果转化为dataset,然后再整理为XML。主要代码如下:
 [WebMethod]<o:p></o:p>

              public  XmlDataDocument Query(string querystring)<o:p></o:p>

              {<o:p></o:p>

            string str;<o:p></o:p>

                     TextWriter writer = new StringWriter();<o:p></o:p>

                     XmlDataDocument doc=new XmlDataDocument();<o:p></o:p>

                     string sql="select * from kejiana"+" where "+querystring;<o:p></o:p>

                     cnn.Open();<o:p></o:p>

                     SqlDataAdapter da=new SqlDataAdapter(sql,cnn);<o:p></o:p>

                   DataSet ds = new DataSet();<o:p></o:p>

                     da.Fill(ds,"kejian");//以上代码将查询的结果放到dataset中去。<o:p></o:p>

                     if (ds.Tables["kejian"].Rows.Count==0) //如果数据集为空<o:p></o:p>

                     {<o:p></o:p>

                            doc1=new XmlDataDocument(ds);<o:p></o:p>

                            str="<root>"+doc1.InnerXml+"</root>";<o:p></o:p>

                   doc1.LoadXml(str);<o:p></o:p>

                            return doc1;<o:p></o:p>

                     }<o:p></o:p>

                     else  //如果结果不为空<o:p></o:p>

                     {<o:p></o:p>

                      doc=new XmlDataDocument(ds);<o:p></o:p>

                            XmlNode root1=doc.DocumentElement;<o:p></o:p>

                            XmlNodeList roots=root1.SelectNodes("kejian");<o:p></o:p>

                 foreach(XmlNode roota in  roots)  //XML增加结点fromnet<o:p></o:p>

                            {<o:p></o:p>

                                   XmlElement fromnet=doc.CreateElement("fromnet");<o:p></o:p>

                                   XmlElement link=doc.CreateElement("A");<o:p></o:p>

                                   link.SetAttribute("HREF","http://localhost/kejiana/");<o:p></o:p>

                                   fromnet.AppendChild(link);<o:p></o:p>

    roota.AppendChild(fromnet);<o:p></o:p>

                            }<o:p></o:p>

                          return doc;<o:p></o:p>

                     }<o:p></o:p>

              }
   在上面的代码中,在查询出数据库的内容之后,首先要判断数据集的内容是否为空,如果数据集的内容为空,则返回空的XML。如果数据集不为空,则首先将数据集转化为xmldatadocument,xmldatadocument是xmldocument的子类,它的功能是实现XML和DATASET的转化。同时,由于最后要告诉用户,课件是来自于哪一个网站的,所以要在生成的xml中加入一个结点fromnet,表示搜索出来的结点来自于哪一个网站。
   编译该WebService,可以看到如下界面: 
  <v:shapetype id="_x0000_t75"><v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>


  
上面的界面中,就是WebService的初始界面,其中querystring就是要输入的参数,该参数实际上是来自外部系统的。比如,在这里,输入sql语句的一部分kname like %vb%,表示要查询的是课件名中包含VB字样的所有记录,在提交请求后,WebService便会调用数据库查询,将查询的结果以XML的形式返回。<o:p></o:p>

 <o:p></o:p>

 

 

 

 

 

分享到:
评论

相关推荐

    WSDL2Objc下载工具

    只用来下载WSDL2Objc第三方开发代码包的,用于iOS的websevrice

    Webservice

    java webservice 的ppt,适合于初学websevrice。

    WSDL2ObjC rev110

    WSDL2Objc第三方开发代码包,用于iOS的websevrice

    通过webservice 服务将上海市城建左边做换成经纬度坐标

    通过webservice 服务将上海市城建左边做换成经纬度坐标

    通信原理期末考试试题及答案2份.doc

    通信原理期末考试试题及答案2份.doc

    Skeleton-Low Poly 低多边形骨架模型Unity插件美术资源包unitypackage

    Skeleton-Low Poly 低多边形骨架模型Unity插件美术资源包unitypackage 支持Unity版本2019.4.29或更高 直接的低多边形骨架。 特点: - 低多边形(9k tris,8.5) - 适用于 Unity 5 及更高 版本 - 完全装配 - 包括一个 fbx 格式的模型 - PBR 纹理 - 高清纹理

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    工作汇报 年终总结45.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    2024年带式输送机市场分析报告.pptx

    行业分析报告

    JSP-SSM健身俱乐部客户关系管理系统可升级SpringBoot源码.7z

    前台框架基于Bootstrap这一HTML5响应式框架,能够自适应不同终端设备的屏幕大小,为用户提供良好的浏览体验。开发环境兼容myEclipse、Eclipse、Idea等多种工具,配合mysql数据库,实现数据的存储与管理。后台则采用SSM(SpringMVC + Spring + Mybatis)框架,保证系统的稳定与高效运行。 系统主要包括会员信息管理、员工信息管理、设备信息管理以及退出模块。会员信息管理模块详细记录了会员的基本信息、健身目标、消费记录以及健身习惯等,同时设有会员投诉管理模块,用于收集和处理会员的意见与建议。员工信息管理模块则涵盖了员工的基本信息、工资发放情况等,帮助俱乐部进行人事管理。设备信息管理模块则负责建立器械档案,跟踪维修情况,并合理安排器械摆放位置,以延长器械使用寿命。 数据库设计方面,会员表记录了会员的各项基本信息,包括姓名、性别、职业等;部门表与员工表则分别用于记录俱乐部的组织机构和员工信息;会员消费表记录了会员的消费详情;员工工资表则用于记录员工的工资发放情况;留言表用于收集会员的留言及回复;设备类别表与设备表则详细记录了会所内器械的分类与具

    工作汇报 年终总结5.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    2024年实木指接板行业分析报告.pptx

    行业分析报告

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

    单片机设计文档DOC智能循迹避障小车-论文设计

    单片机设计文档DOC智能循迹避障小车_论文设计提取方式是百度网盘分享地址

    羊了个羊玩法(Unity2020.3.48f1)

    Unity游戏工程源码。使用Unity2020.3.48f1版本打开。 羊了个羊玩法。 游戏视频截图及更多游戏工程源码请访问我的主页博客“Unity3D休闲益智游戏工程源码大合集”,该工程仅供学习使用。

    java-springboot会员制医疗预约服务管理信息系统源码(源代码+说明文档资料)

    springboot会员制医疗预约服务管理信息系统 系统有首页,医院信息,坐诊信息,核酸检测,疾控通知,健康资讯,就诊引导,个人中心,后台管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    PHP MySQL 图书馆管理系统前后台全部代码(附带数据库脚本).zip

    PHP MySQL 图书馆管理系统前后台全部代码(附带数据库脚本).zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于Vue和Ant Design的电影院前端设计源码

    本项目是基于Vue和Ant Design的电影院前端设计源码,包含47个文件,其中主要包含16个vue前端文件,11个js脚本文件,6个jpg图片文件等。系统采用了Vue、JavaScript和HTML技术,实现了基于vue2和ant_design搭建的电影院前端项目。项目结构清晰,代码可读性强,易于理解和维护。

    实验4 交换机的安全功能配置.docx

    实验4 交换机的安全功能配置.docx

Global site tag (gtag.js) - Google Analytics