`

基于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下载工具

    在IT行业中,Web服务是应用程序之间进行通信的一种方式,它允许不同系统间的数据交换。WSDL(Web Services Description Language)是一种XML格式,用于定义网络服务的接口,描述了服务的位置、消息格式以及如何调用...

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

    在IT行业中,Web Service是一种基于网络的、松散耦合的软件模块,它提供了一种标准的方法来使得不同的系统之间可以互相通信。本主题聚焦于如何利用Web Service服务将上海市的城建地址转换为经纬度坐标,这在地理信息...

    tables-3.6.1-cp39-cp39-win_amd64.whl

    tables-3.6.1-cp39-cp39-win_amd64.whl

    基于springboot大学生心理咨询平台源码数据库文档.zip

    基于springboot大学生心理咨询平台源码数据库文档.zip

    Javaweb仓库管理系统项目源码.zip

    基于Java web 实现的仓库管理系统源码,适用于初学者了解Java web的开发过程以及仓库管理系统的实现。

    基于springboot智能推荐旅游平台源码数据库文档.zip

    基于springboot智能推荐旅游平台源码数据库文档.zip

    Ruby语言教程:从基础知识到高级特性的全面指南

    内容概要:本文是一份详尽的Ruby语言教程,首先介绍了Ruby语言的基本信息和发展背景。接着详细讲解了Ruby的基础语法,如变量、数据类型、运算符、控制流等,并深入探讨了面向对象编程的关键概念,包括类、对象、继承、封装和多态。随后介绍了Ruby的一些高级特性,如模块、异常处理、迭代器和文件I/O操作。最后,讨论了Ruby在Web开发中的应用,尤其是与Rails框架的结合。每个部分都配有相应的代码示例,帮助读者更好地理解和实践。 适合人群:适用于初学者和有一定基础的程序员,特别是对Ruby语言感兴趣的人。 使用场景及目标:学习和掌握Ruby语言的各项基础知识和高级特性,为进一步进行Web开发或其他相关编程打下坚实的基础。 其他说明:教程中的每一部分内容都有详细的解释和代码示例,非常适合自学和教学使用。

    L7_NDVI_sd.txt

    GEE训练教程——Landsat5、8和Sentinel-2、DEM和各2哦想指数下载

    基于springboot在线问诊系统源码数据库文档.zip

    基于springboot在线问诊系统源码数据库文档.zip

    基于springboot的流浪猫狗救助系统源码数据库文档.zip

    基于springboot的流浪猫狗救助系统源码数据库文档.zip

    value_at_a_point.ipynb

    GEE训练教程

    毕业设计&课设_利用 WiFi 实现室内定位,含定位 APP 与数据采集 APP.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    SQLite参考手册中文CHM版最新版本

    本教程帮助您了解什么是 SQLite,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式。需要的朋友们可以参考看看! SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。 什么是 SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 SQLite? 不需要一个单独的服务器进程或操作的系统(无服务器的)。 SQLite 不需要配置,这意味着不需要安装或管理。 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250K

    基于springboot学生选课系统源码数据库文档.zip

    基于springboot学生选课系统源码数据库文档.zip

    【Android UI】SurfaceView中使用 Canvas 绘制可缩放大图

    【Android UI】SurfaceView中使用 Canvas 绘制可缩放大图 ( 拖动和缩放相关的变量 | Canvas 绘图函数 | 手势识别 多点触控流程 | 拖动图片 | 缩放图片 ) 博客链接:https://blog.csdn.net/shulianghan/article/details/143950948 一、需求分析 和 核心要点 说明 1、需求说明 2、核心要点 - 拖动和缩放相关的变量 3、核心要点 - Canvas 绘图函数 4、核心要点 - 手势识别 多点触控流程 5、核心要点 - 拖动图片 6、核心要点 - 缩放图片 二、完整代码示例 1、环境说明 2、SurfaceView 完整代码 3、运行结果

    基于springboot+web的二手闲置交易系统源码数据库文档.zip

    基于springboot+web的二手闲置交易系统源码数据库文档.zip

    band_computations.ipynb

    GEE训练教程

    毕业设计&课设_众筹平台系统,基于基础语言开发,含功能流程与运行步骤,适合新手学习借鉴.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于SpringBoot的宠物寄领养网站源码数据库文档.zip

    基于SpringBoot的宠物寄领养网站源码数据库文档.zip

    基于springboot的电影院售票管理系统源码数据库文档.zip

    基于springboot的电影院售票管理系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics