摘要:Web Service是Internet上新兴的应用通信和集成技术,本文先简单介绍了XML和Web Service技术,然后着重讨论了基于Web Service的系统集成技术的特点和优势,以及通过实际的开发实例介绍了基于Web Service的系统集成技术在网络教育平台实现中的应用。 关键词:Web Service;系统集成;网络教育平台
System Integration Technique Based on Web Service and its Application in E-education Platform Realization
【Abstract】Web Service is a new technique for communication and integration of applications on Internet. In this article there’s a view of XML and Web Service, and a discussion about the characters and advantages of system integration technique based on Web Service. By actual developing samples, I show how to use system integration technique in E-education platform realization.
【Key words】Web Service;System Integration;E-education Platform
1 引言
随着信息技术与网络技术的发展和普及,基于Internet和Intranet的网络教育蓬勃发展;网络教育作为一种崭新的远程教育方式逐渐运用到实际的教学活动中,成为“数字化校园”重要的组成部分。
作为网络教育的后台支持系统,网络教育平台也得到相应的发展,出现了很多成型的系统和实际产品,它们基本上实现了网络教育平台需要的三个基本系统——课程及教学资料开发系统,教学支持系统(同步教学和异步教学)和教学管理系统[1]。但是,纵观现有的网络教育系统和产品,一定程度上存在着一些不足:教学和交互方式比较单一,不同的教学和交互子系统很难集成在一起,大多处于相对分离的状态;缺少通用的数据编辑和保存形式,不同操作系统和数据库平台上的子系统很难交互和共享数据;缺少有效的模块集成手段,基于不同平台的模块很难集成,系统的扩展性和伸缩性比较差。
现有的网络教育平台的这些缺陷,在很大程度上与现有的系统集成技术的缺陷有关。针对现有网络教育系统和产品的不足之处,我们在实际的网络教育平台的设计和开发过程中,采用基于Web Service的系统集成技术,处理系统模块间控制和数据的集成,很大程度上提高了系统数据的通用性,降低了模块间的耦合程度,从而提高了网络教育系统的扩展性、伸缩性和兼容性,便于系统分担负载,提高网络教育系统的服务质量。
2 XML及Web Service
XML(eXtensible Markup Language,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO(International Organization for Standardization,国际标准化组织)的SGML(Standard for General Markup Language,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML(Hypertext Markup Language, 超文本链接标示语言)相比,关注于内容的XML具有以下诸多优点[5]:良好的可扩展性,语言简单有效,可自行定义标记;内容与形式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙;等等。XML的出现和发展对于Internet和Intranet产生了巨大的影响。 在XML基础上发展起来的Web服务(Web Service)是一种革命性的分布是计算技术。它使用基于XML的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为计算网络的一部分协同运行。开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。由于Web服务是建立在一些通用协议的基础上,如HTTP(Hypertext Transfer Protocol, WWW服务程序所用的协议),SOAP(Simple Object Access Protocol,简单对象访问协议),XML,WSDL(Web Services Description Language,Web服务描述语言),UDDI(Universal Description,Discovery,and Integration,通用描述发现和集成协议)等,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务将会有很强的生命力。关于Web服务的W3C(World Wide Web Consortium,万维网联盟)标准逐渐出台;两个应用程序通过Web服务进行远程通信时,所需的标准核心构件[7]如下图所示:
图1 Web Service的核心构件块
各大厂商也逐步推出了相关的Web Service开发环境和解决方案;在目前主流的操作系统平台上都有相应的开发环境,如:Windows平台上的Microsoft Visual Studio.Net;Windows和Linux平台上的Sun One Studio,IBM的WebSphere Studio;以及BEA 的WebLogic Workshop等。
3 基于Web Service的系统集成
在软件系统的开发过程中,系统集成主要实现系统的各部分(模块)之间的通讯和整合,将相对分散的子系统组成一个统一的整体,实现子系统间的功能控制和信息交互与共享。基于网络的系统集成技术已有了很多[6],如:DCOM(Distributed Component Object Model,分布式组件对象模型)、CORBA(Common Object Request Broker Architecture,公用对象请求代理程序体系结构)和Java RMI(Java Remote Method Invocation,Java远端函数调用)等。但是这些传统的集成技术在很大程度上受到网络环境的限制,大多使用专有协议通过特别的端口进行远程通信,不能很好的支持客户段和服务器通过Internet进行通信。
基于Web Service的集成技术作为一种新的面向函数和方法的应用集成技术,在很大程度上解决了原有集成技术在Internet远程通信方面的问题。Web Service基于XML文档进行服务描述,服务请求和反馈结果,可以在Internet上通过HTTP协议进行传递,很容易的被访问和返回结果。同时,由于Web Service的相关标准都是W3C的开放协议,与平台和操作系统无关,不同的平台和操作系统上的Web Service的实现在很大程度上可以做到互操作,这就使异构平台上应用的集成变得很容易。此外,过去使用的基于RPC(RPC - Remote Procedure Call,远程过程调用)和API(Application Programming Interface,程序编程接口)的集成技术都是一种函数级的静态解决方案(即使它们在客户机和服务器通讯时使用XML);Web Service则是一种动态的集成方案,所有的服务都可以通过UDDI标准动态地被发现、绑定和使用,容易适应系统的变动,提高系统的灵活性和伸缩性。
使用Web Service技术进行系统集成和过去使用其它面向函数和方法的技术进行集成类似:在进行初始设计的时候主要考虑不同应用之间,系统不同模块之间消息及数据传递的需求;根据具体需求设置相应的接口,描述接口特性;针对不同应用的平台选择相应的Web Service组件,进行相应设置;实现不同应用的接口,进行相应调试;实际运行,应用程序间进行协同调试。
使用Web Service进行系统集成的基本模式(不同应用之间)[8],如下图:
图2 Web服务应用架构(应用间集成)
4 基于Web Service的系统集成技术在网络教育平台实现中的应用
我们开发的远程教育系统的初始版本,是完全基于Windows平台的。整个系统集中在一个服务器上,采用两层的Web开发架构,各个模块直接对数据库进行操作,通过Form提交数据,直接引用等方式进行消息传递。造成系统模块间的耦合过于紧密,系统的可移植性,扩展性和均衡负载等方面都比较差。
在进行新版本系统的设计时,考虑到原有系统的诸多不足,我们在提高系统的可扩展性,降低各个系统模块之间的耦合程度等方面多了许多考虑,在模块集成方面主要使用应用层面上的基于Web Service系统集成技术,使用基于不同平台上的Web Service技术实现系统模块之间的消息和数据传递。 我们的网络教育平台的基本模块结构如下图:
图3 远程教育系统模块结构图
接下来以教学管理模块和同步教学模块之间的集成,来说明如何在实际的远程教育开发过程中使用Web Service集成技术。
教学管理模块主要完成远程教学的教学组织和人员管理;同步教学模块是具体教学应用中的一部分,主要提供实时的网络课堂教学功能。同步教学模块中所需要的课程信息,学生和教师等信息都需要从教学管理模块中获得。在原有系统中,两个模块工作在同一个平台上,访问同一个数据库,获取相应的信息,关联比较强。为了减少这两个模块之间的关联,我们在重新设计的时候,考虑将这两个模块独立起来,在学生或教师进入同步教学模块的时候只传递最必要的信息,如课程号和用户序号;其他大部分的相关用户和系统信息都进行抽象,通过Web Service方式在教学管理模块中实现,在实时教学系统中进行访问。这样保证了两个模块之间可以很容易的分离和整合,也可以工作在不同的操作系统平台上(Windows或Linux等)。
这两个模块之间集成的具体实现过程(以Microsoft.Net平台的实现为例)。
(1) 系统需求分析
(2) 系统设计,划分系统模块 确定教学管理和同步教学分别独立成一个模块,教学管理模块主要实现对网络远程教学的教学组织和人员管理。
(3) 确定模块间的接口描述
根据需求分析和系统模块设计,确定模块之间接口的类型,需要传递的参数和数据类型。 教学管理模块需要提供的接口:
用户信息:用户类型,编号; 教师账户:姓名,性别,……; 学生账户:姓名,性别,届,班级,……。
课程信息:课程名,授课时间,授课地点,……。 同步教学模块需要提供的接口: 授课情况:学生出勤情况,教师出勤情况,课程实际时间,……。
(4) 确定实现方法
使用基于Microsoft.Net的Web Service支持平台,C#开发语言;在Microsoft Visual Studio.Net集成开发环境中开发。抽象出一下需要实现的接口:
教师个人信息(姓名,性别),学生个人信息(姓名,性别,届,班级),课程信息(课程名,授课时间,授课地点),学生出勤情况,教师出勤情况。
(5) 具体实现,测试
以查询教师个人信息(姓名,性别)为例: 教学管理模块: 定义WebSearchTeacherInfo命名空间; 定义结构: 包括教师ID,姓名,性别和结构信息有效标志。
public struct teacherInfo {
public string ID; public string Name; public string Sex;’M-male,F-female public boolean valid;’if this info is valid } 接口实现:
public teacherInfo GetTeacherInfo(string id) { teacherInfo myReturn = new teacherInfo();
根据参数,查询相应的数据表;如果有对应信息,则将查询值赋给结构myReturn,同时给结构myReturn的valid子项置为true;如果参数不合法或是查询不到对应信息,将结构myReturn的valid子项置为false;将结构myReturn作为返回值返回。
}
同步教学模块: 代码中引入Web服务相应的命名空间;在其他代码中可以通过调用GetTeacherInfo方法,调用远端的Web服务程序,查询相应的教师个人信息。
Visual Studio.Net集成开发中,Web Service中使用SOAP等协议传输会话的机制大部分都已经被封装,对于一般开发者是透明的,在很大程度上提高了开发效率;但同时也造成开发人员对于系统的可控程度下降。使用J2EE平台实现的时候,需要定义SOAP消息头等XML脚本,以能够实现基本的Web服务功能。在不同平台开发的时候,需要注意采用W3C的Web Service标准和模式,尽量不使用具体实现平台的扩展功能,以免影响系统的兼容性。
(6) 发布Web服务,进行安全等方面的工作,完成系统集成
使用WSDL实用程序生成代理代码,发布Web服务程序;在统一的服务发布服务器上,通过UDDI服务实现发现Web服务功能,便于查询系统各模块提供的Web Service服务。同时使用Web服务的身份验证和授权技术,提高系统的安全性。由于Web Service在安全性方面的标准刚刚出台,还没有实际应用,所以系统在身份认证和授权技术方面的实现还比较简单,只提供简单的密码和授权认证。
通过使用基于Web Service的系统集成技术,我们比较容易的把基于不同操作系统平台和数据库平台的子应用集成在一起。比如:基于Windows2000操作系统和Microsoft SQL Server数据库的异步教学系统,基于Linux操作系统和Postgres数据库的教学论坛系统,等。
5 结束语
使用Web Service技术进行系统集成,提高了系统的可扩展性和兼容性,增强了网络教育平台的适应能力,提高了系统的服务质量。因为Web Service的标准还在发展过程中,逐渐会有新的特性加入进来,特别是在安全性方面。此外,基于Web Service的应用在开发中还有许多地方需要改进,如实现API化,组件化,类似转发器的集成方式,等等。作为新兴的Web应用的实现方式,Web Service会有个很好的发展前景,在网络教育平台的设计和开发中也将发挥更多更重要的作用。
参考文献
[1] ANIDO-RIFON L, FERNANDEZ-IGLESIAS M J, LLAMAS-NISTAL M.A Component Model for Standardized Web-Based Education .ACM Journal of Educational Resources in Computing Vol.1,No.2, 2001.
[2] IBM.Web Services for J2EE, Version 1.0.www.ibm.com,2002-08.
[3] SUN.Sun One 白皮书.http://www.sun.com.cn,2002.1.
[4] W3C.Web Service 相关标准.http://www.w3c.org,2003-06.
[5] Morrison M.XML 揭秘——入门应用精通.陆新年,陆新宇,等.北京:清华大学出版社, 2001.
[6] Pritchard J.COM与CORBA本质和互用.徐金梧,张晓彤,屈蓉,王海峰.北京:清华大学出版社,2002.
[7] Short S.构建XML Web服务——基于Microsoft.Net平台.戴荣,马方平,吴健,等.北京: 清华大学出版社,2002.
[8] ZDNet China.http://www.cn-java.com/target/news.php news_id=1648,2002-05. |