首页 理论教育 基于服务的教育资源共享平台的构建

基于服务的教育资源共享平台的构建

时间:2022-03-09 理论教育 版权反馈
【摘要】:教育资源共享为解决教育资源不足提供了解决方案,文中分析了教育资源共享平台应该具备的基本功能,然后给出了教育资源共享平台的基本构架,最后使用.NET Framework提供的Web Services集成方案建立了一个教育资源共享平台的实例。教育资源共享平台是一个分布式的资源管理系统,包括对各种资源的有效管理、对资源的快速检索、对大量数据进行存储和恢复等功能。在教育资源平台中将资源实体和其描述信息分离,并采用XML格式来表示描述信息。

基于Web服务的教育资源共享平台的构建(1)

徐宏云 欧阳泉

(江汉大学数学与计算机科学学院,湖北武汉430056)

摘 要:Web Services技术是独立于平台、组件模型和编程语言的应用程序通信标准,它能够简化跨平台应用的开发。教育资源共享为解决教育资源不足提供了解决方案,文中分析了教育资源共享平台应该具备的基本功能,然后给出了教育资源共享平台的基本构架,最后使用.NET Framework提供的Web Services集成方案建立了一个教育资源共享平台的实例。

关键词:Web Services 共享 教育资源

引 言

教育资源共享是解决教育资源不足的有效方法,各级教育机构都在尝试如何更好地实现教育资源共享。不同的教育机构内部大多数已经开发并应用了资源共享系统,但随着共享要求的提高和共享范围的扩大,多数系统无法适应日益增长的需求,并凸现出技术陈旧和设计功能不足等问题。因此需要对这些系统进行技术升级和改造。对于已有系统的改造,主要有三种方法:摒弃已有的系统、重新开发新的系统;分析理解已有系统的代码,再进行功能完善和改进;对已有系统的功能进行封装并与新的功能进行集成。第一种方法需要摒弃原来所有的系统再重新开发,这对于目前教育部门来说不太现实,因为目前的应用系统仍然在起着非常重要的作用,直接摒弃这些系统必定对目前的工作造成重大影响,同时也造成重大的资源浪费。第二种方法需要提供目前系统的源代码,由于目前大多数业务系统代码不完整或不存在,该方法也不可行。因此有必要研究如何实现对目前系统功能的有效封装,将各个系统主要功能改造成Web服务,然后再统一实现这些Web服务的集成。

1 教育资源共享平台的基本功能

由于教育机构之间对资源进行描述和封装缺乏统一的标准,系统之间无法进行资源交换,资源只能在系统内使用,同样的资源系统各教育机构都要各自开发一次;由于资源库之间缺乏相互访问的通道,这样给用户访问和使用资源带来不便。教育资源共享平台负责整合各类教育资源,建立统一的标准对资源进行描述和封装,同时对各类教育资源进行归类管理,实现用户对教育资源的透明访问。

教育资源共享平台应该具有以下几种基本功能。

(1)教育资源的描述:定义一种可行的、标准化的描述方式对资源进行统一描述和封装,这是实现资源有效共享的基础。

(2)教育资源的管理:教育资源管理系统的核心就是如何对海量的教育资源进行有效的管理,它是构建教育资源共享平台的重要工作。

(3)教育资源的注册与发现:提供一个访问平台,使用户方便、准确地检索到自己所需要的资源。

教育资源共享平台是一个分布式的资源管理系统,包括对各种资源的有效管理、对资源的快速检索、对大量数据进行存储和恢复等功能。在教育资源平台中将资源实体和其描述信息分离,并采用XML格式来表示描述信息。这样,不同的管理系统可以适用于各种格式的资源对象以及不同的平台,确保了资源的共享和系统间的互操作。

2 教育资源共享平台的总体结构

教育资源共享平台是建立在对网络教育技术标准研究和网络建设高度发展基础上的,通过对现有的一些教育资源共享系统的研究,设计出一个解决系统之间资源交换和教育资源重用的应用系统,其结构如图1所示。数据层包含了各类教育资源库(媒体素材、题库、试卷素材、课件、案例、文献资料、常见问题解答、资源目录索引、网络课程等);服务层对各种资源进行描述、注册、发现、访问、存储;应用层执行用户提交的请求调用服务层功能;客户端可以是基于Web的页面也可是客户端程序,主要用来与平台进行交互。

img260

图1 共享平台的总体结构

3 Web服务技术

Web Services是面向服务的构架,它包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册中心(Service Registry)。角色间有三种操作:发布(Publish)、发现(Find)和绑定(Bind),如图2所示。Web Service是基于XML文档进行服务描述、服务请求、反馈结果的,可以在Internet上通过HTTP协议进行传递,所有的服务都可以通过UDDI标准动态地被发现、绑定和使用,内容易适应系统的变动,系统的灵活性和伸缩性很好。Web Services吸收了分布式计算、Grid计算和XML等各种技术的优点,解决了异构分布式计算以及代码与数据重用等问题,具有高度的可集成性和互操作行、跨平台性和松耦合等特点,为教育资源共享系统的开发带来了新的解决方案。

img261

图2 Web service体系构架图

4 系统实现实例

Visual Studio.NET是一种高效的开发工具,它具有简化开发基于因特网的分布式系统难度的特点,是基于互联网标准和协议之上,实现异构语言和跨平台交互地开发以及通信平台。对开发Web service应用它可提供基础框架。

4.1 Web Service的创建与发布

创建服务分为以下三个步骤。

(1)新建Web Service的入口点文件Edu_Sources_Server.asmx,并将其放在有执行脚本权限的虚拟目录中。

(2)继承System.Web.Services名字空间中的WebService类,其派生类可以访问所有基类中向外发布的对象。

(3)用WebMethod属性标记公开方法以创建Web方法,通过UDDI提供的途径向外发布给网上的用户。

用C#语言创建Web服务代码如下:

<%@WebService Language="C#"CodeBehind="~/App_Code/Service.cs"Class="Edu_Resources_Server"%>

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

public classEdu_Resources_Server:System.Web.Services.WebService

  [WebMethod]

   public string GetSources_1(string symbol){

     string ret;

     //一个提供学习服务功能的URL

     string path=@"http://192.167.1.211/index.asp?action=course&todo=harvestinfo&key="+symbol;

     //创建一个HttpWebRequest对象

     HttpWebRequest webreq=(HttpWebRequest)WebRequest.Create(fullpath);

     //从URL处返回一个HttpWebResponse对象

     HttpWebResponse webresp=(HttpWebResponse)webreq.GetResponse();

     //创建一个流对象从服务器上获得服务流数据

     StreamReader strm=new StreamReader(webresp.GetResponseStream(),Encoding.ASCII);

     //从服务流中读取一行数据,

     ret=strm.ReadLine(); strm.Close();return ret;

[WebMethod]public string GetSources_2(string symbol){……}

[WebMethod]public string GetSources_3(string symbol){……}

[WebMethod]public string GetSources_n(string symbol){……}

图3显示了一个Web Service发布的界面。

4.2 生成服务代理类

img262

图3 Web service的发布

客户端应用程序要使用Web Service必须先创建一个代理,代理是要调用的真正代码的替身,它负责引导调用,代理在客户端应用程序中注册后,客户端应用程序调用Web Service的方法就如调用本地对象一样,代理接受该调用,并以适当格式封装调用,然后以SOAP请求发送调用到服务器。当服务器返回SOAP包给客户端后,代理会对包进行解密,并且如同从本地对象的方法返回数据一样将其返回给客户端应用程序。

代理类不包含任何应用程序逻辑,它只包含关于如何传递参数和检索结果的传输逻辑,还包含Web服务中的方法及原型列表。在Visual Studio 2005中服务代理是根据Web Service的WSDL文件产生的本地类,它包括类和方法声明,它可以像使用其他类一样使用代理类,在执行过程中,客户代理类中的信息访问Web服务,实现实际的方法调用。

4.3 客户端的建立

客户端可以是Web页面也可以是一个独立的应用程序,由于Web Service是基于SOAP(Simple Object Access Protocol)和HTTP这样的开放协议标准的,所以在客户端程序中使用Web Service提供的服务,就像调用本地的函数一样方便。用C#语言创建Web Service客户端代码如下:

using System;

using System.Collections.Generic;using System.ComponentModel;using System.Data;

using System.Windows.Forms;

namespace DataAccess

  public partial classMainForm:Form

  {

   publicMainForm_Load()

  {

   AccessStruct();

  }

  privatevoid AccessStruct()

  {

    localhost.Edu_Resources_Server Database=new localhost.Edu_Sources_Server();

    DataSet ds=Database.GetSources_2("select*from资源库where课程名=数据结构课程设计");

    dataGrid1.DataSource=ds.Tables[0];

   }

 }

4.4 特点

教育资源提供者使用Web Service技术将教育资源封装成服务,并将其调用发布到互联网上,公布其调用接口,教育资源需求者可以使用标准的Web Service调用方式来使用和再次封装这些资源。随着越来越多的资源提供者和需求者的加入,教育资源平台的规模会不断的扩大,资源的数量会不断的增多,同时由于公布了资源的调用接口,程序员可以利用这些接口开发出更多使用这些资源的客户端工具,使得整个系统规模不断地扩大、功能不断自我完善。Web Service的相关标准都是W3C的开放协议,与平台和操作系统无关,不同的平台和操作系统上的Web Service的实现在很大程度上可以做到互操作,这就使异构平台上应用的集成变得很容易。

5 结束语

随着网络技术的发展,软件产业的发展正从传统的提供软件产品的方式向提供软件服务的方向转变,而Web服务的出现正切合了这一理念的发展。把Web服务技术应用到教育资源共享平台的构建中,将系统中的各种资源和功能以Web服务的形式发布到互联网上,既有利于资源的共享,又能够使更多的用户参与到系统的不断完善中来。基于Web Service的教育资源平台的建立提高了系统的可扩展性和兼容性,增强了教育资源平台的适应能力,提高了系统的服务质量。

参考文献

Web Services Description Language(WSDL)Version 2.0.httP://www.w3.org/TR/wsdl20/,2007.

SOAP Version 1.2.http://www.w3.org/TR/soap12-part1/,2003.

World Wide Web Consortium.http://www.w3.org/2002/ws/.

www.microsoft.com/china/MSDN/li2brary/archives/library/dnppcgen/html/devtoolsMobileapps.asp,2003-081.

Newcomer E,Lomow G.Understanding SOA with Web Services[M].Han Xu,translated.Beijing:Electronic.

Luo Min,et al.Patterns:Service-Oriented Architecture and Web Services.http://www.redbooks.ibm.com/redbooks/pdfs/sg246303.pdf,2004.4.

董自涛,孙月洪.Web Services技术概述[J].连云港师范高等专科学校学报,2009(1):96~99.

【注释】

(1)本文由湖北省教育厅科学技术研究项目(项目编号:B20114508)资助。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈