1基于WebService的系统集成技术的应用基于WebService的系统集成技术在网络教育平台中的应用王宇才国清王兴伟摘要:WebService是Internet上新兴的应用通信和集成技术,本文先简单介绍了XML和WebService技术,然后着重讨论了基于WebService的系统集成技术的特点和优势,以及通过实际的开发实例介绍了基于WebService的系统集成技术在网络教育平台实现中的应用。关键词:WebService;系统集成;网络教育平台SystemIntegrationTechniqueBasedonWebServiceanditsApplicationinE-educationPlatformRealization【Abstract】WebServiceisanewtechniqueforcommunicationandintegrationofapplicationsonInternet.Inthisarticlethere’saviewofXMLandWebService,andadiscussionaboutthecharactersandadvantagesofsystemintegrationtechniquebasedonWebService.Byactualdevelopingsamples,IshowhowtousesystemintegrationtechniqueinE-educationplatformrealization.【Keywords】WebService;SystemIntegration;E-educationPlatform1引言随着信息技术与网络技术的发展和普及,基于Internet和Intranet的网络教育蓬勃发展;网络教育作为一种崭新的远程教育方式逐渐运用到实际的教学活动中,成为“数字化校园”重要的组成部分。作为网络教育的后台支持系统,网络教育平台也得到相应的发展,出现了很多成型的系统和实际产品,它们基本上实现了网络教育平台需要的三个基本系统——课程及教学资料开发系统,教学支持系统(同步教学和异步教学)和教学管理系统[1]。但是,纵观现有的网络教育系统和产品,一定程度上存在着一些不足:教学和交互方式比较单一,不同的教学和交互子系统很难集成在一起,大多处于相对分离的状态;缺少通用的数据编辑和保存形式,不同操作系统和数据库平台上的子系统很难交互和共享数据;缺少有效的模块集成手段,基于不同平台的模块很难集成,系统的扩展性和伸缩性比较差。现有的网络教育平台的这些缺陷,在很大程度上与现有的系统集成技术的缺陷有关。针对现有网络教育系统和产品的不足之处,我们在实际的网络教育平台的设计和开发过程中,采用基于WebService的系统集成技术,处理系统模块间控制和数据的集成,很大程度上提高了系统数据的通用性,降低了模块间的耦合程度,从而提高了网络教育系统的扩展性、伸缩性和兼容性,便于系统分担负载,提高网络教育系统的服务质量。2XML及WebServiceXML(eXtensibleMarkupLanguage,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO(InternationalOrganizationforStandardization,国际标准化组织)的SGML(StandardforGeneralMarkupLanguage,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML(HypertextMarkupLanguage,超文本链接标示语言)相比,关注于内容的XML具有以下诸多优点[5]:良好的可扩展性,语言简单有效,可自行定义标记;内容与形2式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙;等等。XML的出现和发展对于Internet和Intranet产生了巨大的影响。在XML基础上发展起来的Web服务(WebService)是一种革命性的分布是计算技术。它使用基于XML的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为计算网络的一部分协同运行。开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。由于Web服务是建立在一些通用协议的基础上,如HTTP(HypertextTransferProtocol,服务程序所用的协议),SOAP(SimpleObjectAccessProtocol,简单对象访问协议),XML,WSDL(WebServicesDescriptionLanguage,Web服务描述语言),UDDI(UniversalDescription,Discovery,andIntegration,通用描述发现和集成协议)等,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务将会有很强的生命力。关于Web服务的W3C(WorldWideWebConsortium,万维网联盟)标准逐渐出台;两个应用程序通过Web服务进行远程通信时,所需的标准核心构件[7]如下图所示:各大厂商也逐步推出了相关的WebService开发环境和解决方案;在目前主流的操作系统平台上都有相应的开发环境,如:Windows平台上的MicrosoftVisualStudio.Net;Windows和Linux平台上的SunOneStudio,IBM的WebSphereStudio;以及BEA的WebLogicWorkshop等。3基于WebService的系统集成在软件系统的开发过程中,系统集成主要实现系统的各部分(模块)之间的通讯和整合,将相对分散的子系统组成一个统一的整体,实现子系统间的功能控制和信息交互与共享。基于网络的系统集成技术已有了很多[6],如:DCOM(DistributedComponentObjectModel,分布式组件对象模型)、CORBA(CommonObjectRequestBrokerArchitecture,公用对象请求代理程序体系结构)和JavaRMI(JavaRemoteMethodInvocation,Java远端函数调用)等。但是这些传统的集成技术在很大程度上受到网络环境的限制,大多使用专有协议通过特别的端口进行远程通信,不能很好的支持客户段和服务器通过Internet进行通信。基于WebService的集成技术作为一种新的面向函数和方法的应用集成技术,在很大程度上解决了原有集成技术在Internet远程通信方面的问题。WebService基于XML文档进行服务描述,服务请求和反馈结果,可以在Internet上通过HTTP协议进行传递,很容易的被访问和返回结果。同时,由于WebService的相关标准都是W3C的开放协议,与平台和操作系统无关,不同的平台和操作系统上的WebService的实现在很大程度上可以做到互操作,这就使异构平台上应用的集成变得很容易。此外,过去使用的基于RPC(RPC-RemoteProcedure3Call,远程过程调用)和API(ApplicationProgrammingInterface,程序编程接口)的集成技术都是一种函数级的静态解决方案(即使它们在客户机和服务器通讯时使用XML);WebService则是一种动态的集成方案,所有的服务都可以通过UDDI标准动态地被发现、绑定和使用,容易适应系统的变动,提高系统的灵活性和伸缩性。使用WebService技术进行系统集成和过去使用其它面向函数和方法的技术进行集成类似:在进行初始设计的时候主要考虑不同应用之间,系统不同模块之间消息及数据传递的需求;根据具体需求设置相应的接口,描述接口特性;针对不同应用的平台选择相应的WebService组件,进行相应设置;实现不同应用的接口,进行相应调试;实际运行,应用程序间进行协同调试。使用WebService进行系统集成的基本模式(不同应用之间)[8],如下图:图2Web服务应用架构(应用间集成)4基于WebService的系统集成技术在网络教育平台实现中的应用我们开发的远程教育系统的初始版本,是完全基于Windows平台的。整个系统集中在一个服务器上,采用两层的Web开发架构,各个模块直接对数据库进行操作,通过Form提交数据,直接引用等方式进行消息传递。造成系统模块间的耦合过于紧密,系统的可移植性,扩展性和均衡负载等方面都比较差。在进行新版本系统的设计时,考虑到原有系统的诸多不足,我们在提高系统的可扩展性,降低各个系统模块之间的耦合程度等方面多了许多考虑,在模块集成方面主要使用应用层面上的基于WebService系统集成技术,使用基于不同平台上的WebService技术实现系统模块之间的消息和数据传递。我们的网络教育平台的基本模块结构如下图:4图3远程教育系统模块结构图接下来以教学管理模块和同步教学模块之间的集成,来说明如何在实际的远程教育开发过程中使用WebService集成技术。教学管理模块主要完成远程教学的教学组织和人员管理;同步教学模块是具体教学应用中的一部分,主要提供实时的网络课堂教学功能。同步教学模块中所需要的课程信息,学生和教师等信息都需要从教学管理模块中获得。在原有系统中,两个模块工作在同一个平台上,访问同一个数据库,获取相应的信息,关联比较强。为了减少这两个模块之间的关联,我们在重新设计的时候,考虑将这两个模块独立起来,在学生或教师进入同步教学模块的时候5只传递最必要的信息,如课程号和用户序号;其他大部分的相关用户和系统信息都进行抽象,通过WebService方式在教学管理模块中实现,在实时教学系统中进行访问。这样保证了两个模块之间可以很容易的分离和整合,也可以工作在不同的操作系统平台上(Windows或Linux等)。这两个模块之间集成的具体实现过程(以Microsoft.Net平台的实现为例)。(1)系统需求分析(2)系统设计,划分系统模块确定教学管理和同步教学分别独立成一个模块,教学管理模块主要实现对网络远程教学的教学组织和人员管理。(3)确定模块间的接口描述根据需求分析和系统模块设计,确定模块之间接口的类型,需要传递的参数和数据类型。教学管理模块需要提供的接口:用户信息:用户类型,编号;教师账户:姓名,性别,……;学生账户:姓名,性别,届,班级,……。课程信息:课程名,授课时间,授课地点,……。同步教学模块需要提供的接口:授课情况:学生出勤情况,教师出勤情况,课程实际时间,……。(4)确定实现方法使用基于Microsoft.Net的WebService支持平台,C#开发语言;在MicrosoftVisualStudio.Net集成开发环境中开发。抽象出一下需要实现的接口:教师个人信息(姓名,性别),学生个人信息(姓名,性别,届,班级),课程信息(课程名,授课时间,授课地点),学生出勤情况,教师出勤情况。(5)具体实现,测试以查询教师个人信息(姓名,性别)为例:教学管理模块:定义WebSearchTeacherInfo命名空间;定义结构:包括教师ID,姓名,性别和结构信息有效标志。publicstructteacherInfo{publicstringID;publicstringName;6publicstringSex;’M-male,F-femalepublicbooleanvalid;’ifthisinfoisvalid}接口实现:publicteacherInfoGetTeacherInfo(stringid){teacherInfomyReturn=newteacherInfo();根据参数,查询相应的数据表;如果有对应信息,则将查询值赋给结构myReturn,同时给结构myReturn的valid子项置为tr