□ 贺志强
基于SOA的教育资源共享框架及支撑系统的开发研究
□ 贺志强
教育资源库的建设面临着资源难以大范围共享和重用的问题。本文参考国内现有研究成果,在对北京市属高校特色教育资源库建设项目现状进行充分调研的基础上,提出了一个基于SOA的资源共享框架并搭建了支撑系统,论述了系统的主要架构和关键技术实现。希望在对现有各资源站点改动最小的基础上解决资源的共享问题,提高工作效率并在此基础上创新现有资源应用和管理方式,以提高优质资源的利用率。
SOA;Web Services;资源共享;优化架构;系统开发
教育资源库的建设是近年来教育信息化建设的核心内容,它为教育教学工作提供了丰富的教学资源来源,极大地促进了教学质量的提高。分布式资源库设计模式的应用,从很大程度上整合了各学校分散的资源,有效地避免了资源的重复建设,有利于实现资源的更大范围共享。当前较多采用的方式是手动上传资源目录(或同时上传资源实体)至中心服务节点以供查询和下载[1]。这种方式技术上实现比较容易,但在操作层面上却欠缺科学性和合理性:一方面因为信息交换量大,通过手工方式进行数据交换和管理,不但工作量大、效率低下,也极易出错,而且各系统之间的数据不能及时更新[2];另一方面如果中心节点存放资源实体,容易因为大数据量的读取和存储产生错误,延长访问时间甚至造成网络堵塞[3]。
以北京市高等学校特色教育资源建设项目为例。从2005年开始,在北京市教委的领导下围绕“整合资源、共建共享、服务教学”的原则,依托各市属高校进行了民族音乐、影视、服装艺术等具有北京市地方特色的主题资源的开发建设。经过几年的建设,搭建了北京市特色教育资源网和各特色资源建设高校的校内资源平台。[4]当前采用的资源共享方式是通过手动上传资源目录和资源实体至中心节点实现的。随着建设的深入,我们发现有必要改善这种资源建设的架构:在对现有各资源站点改动最小的基础上,减少大工作量的手动操作方式,提高工作效率和准确度,在此基础上解决因资源量不断丰富和访问量逐渐增大而导致网络拥堵的可能性。并在此基础上改进资源应用和管理模式,为后续资源建设提供更易于集成和扩展的分布式资源应用建设方式。研究表明,基于SOA(面向服务架构)搭建的分布式应用系统是一种很好的解决方案[5]。
SOA(Service-Oriented Architecture)是当前信息技术领域研究的热点问题。它是一个可以将应用程序的不同功能单元通过服务间定义良好的接口联系起来的组件模型。SOA通过服务接口的标准化描述,包含了与服务交互需要的全部细节。该接口通过隐藏实现服务的细节,允许独立于实现服务所依赖的硬件、软件平台和编程语言而服务。SOA包括服务使用者、服务提供者和服务注册中心三种角色,每个服务是这三种角色中的某一种或多种,角色间的操作包括发布、查找、绑定和调用。具体流程是:首先服务提供者发布服务描述到服务注册中心以供调用,然后服务请求者通过服务注册中心查找到所需的服务描述后定位至对应服务地址,来绑定和调用服务提供者提供的服务。以此为基础实现的服务架构能够根据需求通过网络对松散的粗粒度应用组件进行分布式部署、组合和使用,将应用程序的不同功能单元(即服务)通过相互之间定义的接口和标准联系起来。[6][7]因此通过各类服务接口的制定,可以在现有资源管理系统改动最小的前提下实现资源的无缝共享。
近年来兴起的Web Service技术是实现SOA的主流方式,Web Service是用标准Internet技术建立的提供应用程序功能的一个网络访问接口。它由XML+HTTP+SOAP+WSDL+UDDI这一系列协议组成,其中通过XML进行数据的描述和交换,使用SOAP协议在服务提供者与服务请求者之间进行通信,借助HTTP传送WWW方式的数据,通过WSDL协议定义服务接口,使用UDDI协议进行Web Services注册和查找。即由服务提供者将服务接口用WSDL描述出来,然后使用UDDI在服务代理处(中心注册中心)将这些服务接口进行注册。注册成功后服务请求者使用UDDI在服务代理处查询所需的服务接口的描述文件,然后绑定这些服务并调用,这些通信操作都由SOAP来完成。[8][9]
本系统的开发基于Microsoft.NET平台,它提供了对 Web service的支持(由.NET Framework提供),包括了对Web service的构建和使用,使得不需要任何其它工具就可以完成对Web service的开发[10]。本研究中,基于SOA的教育资源共享框架的工作流程分为以下两步:第一步是资源站点将提供的资源服务接口用WSDL描述后,将本资源站点Web服务注册到UDDI注册中心。注册中心管理员审核并发布审核通过的资源站点Web服务。第二步是由目录中心调用UDDI注册中心发布的Web服务,以获取各资源站点的Web服务注册信息并通过程序将各资源站点中的资源信息同步更新至目录中心数据库中,然后数据绑定至公共服务平台供用户查阅、下载和管理资源。整个系统的架构如图2所示。
有必要指出,本系统采用设置目录中心数据库保存各资源站点数据信息再通过公共服务平台查看,而非一般的直接从各资源站点调用服务的方式,即服务中心直接调用各站点服务来检索数据的方式。因为后者虽然不需要在中心平台设置数据库存储资源数据,可实时从各站点调用数据,但相比而言,前者可以:①复用原有集中服务平台的检索功能,不必重新开发,同时对于涉及众多参数条件的资源检索来说后者技术实现上要更困难;②保证网速正常,不会因调用服务太多或网络问题而影响速度;③可方便实现对各站点资源进行统一管理和相关应用推荐,以凸显优秀资源,进一步了解各站点资源建设数量等情况。所以系统由以下四部分组成:注册中心站点和资源站点的Web服务实现、资源站点注册与管理中心、目录中心同步主控程序和教育资源公共服务应用平台。对于整个系统来说,重点和难点是如何设计和实现Web服务、进行Web服务安全设置以及如何同时更新多站点资源的问题。
Microsoft ASP.NET实现Web服务的一种高效的方法是使用Web Method框架。Web Method框架使用户只需专注于Web方法的开发,.NET可以根据Web方法自动生成相关标准文档和接口,只需修改接口描述文档即可。服务添加完成后,客户端即可通过Web服务代理 (Web Service Proxy) 调用Web服务。[11]由上述关于系统的架构描述,我们知道本系统主要涉及注册中心站点和资源站点两类Web服务的实现。同步程序服务器需从资源站点注册中心获取各资源站点Web服务信息,因此注册中心需要提供Web服务供目录程序调用,以获取资源站点Web服务注册信息。同样,同步程序服务器还需通过请求资源站点Web服务将资源站点中的资源信息更新到中心数据库中。各资源站点只需提供统一的Web服务接口即可实现资源的更新,同时本系统提供了一个资源站点Web服务的参考实现以便于更好地被各资源站点应用。各资源站点虽然资源参数存储种类和数目不同,可参照已定义好的统一接口标准将资源属性对应于标准属性用XML格式字符串描述出来以供调用。部分资源如果缺少某些必备属性,在描述时可保持为空,资源更新后由站点管理员在中心服务平台手动添加该属性即可。
资源站点注册与管理中心完成对资源服务站点的Web服务接口的注册和审核工作,资源站点需要提供站点信息、Web服务接口信息、信任账号等信息,这些信息将用于主控程序的读取并实现资源同步。为了便于单独管理、排除其它程序影响及与目录中心同步主控程序进行绑定,本平台是独立于教育资源公共应用服务平台而开发的。
该中心的用户有两类:站点管理员与中心管理员。各资源库的站点管理员可进行站点Web服务注册、更新和删除等操作,并查看同步日志和修改个人信息。中心管理员负责对注册的站点Web服务进行审核,审核通过的Web服务才能被调用到目录中心的数据库上。同时中心管理员可以查看同步日志,针对同步过程出现的错误和信息进行相应的调整。
一旦所有的资源站点都提供了统一的WEB服务接口,就可以通过目录中心同步主控程序实现资源信息(目录)的同步。该程序除了完成底层的数据同步外,还需要提供配置程序和完成同步站点的管理。主要功能如下:
(1)调用资源站点注册与管理中心Web服务,将各资源站点信息同步到目录中心。用户可以查看站点的类型,站点类型有三种:新站点、需要更新的站点、不需要更新的站点(不需要接收)。管理员选择接收要更新的站点,即可将选择的站点信息更新到目录中心中。
(2) 对接收的站点执行资源描述信息的同步。选中资源站点后,先选择同步类别(自动同步或手动同步)。选择自动同步后,只需填入自动同步的间隔天数和开始时间便会按设定时间自动执行同步。获取资源描述信息时又有两种方法:资源初始化与资源同步。资源初始化是指目录中心将所有的资源描述信息全部获取过来。资源同步是指目录中心保持原有数据不变,只需获取更新的部分(由站点更新时间判断)。资源站点资源描述信息的同步状态有五种:初始化,继续初始化,同步,继续同步,停止。管理员可以在进度栏中查看资源同步进度,并手动停止、暂停或继续某进程。如果程序意外关闭,会自动记录资源的同步进程,程序重启后先开始未完进程,再执行别的进程。在服务调用过程中我们考虑了以下三个问题:
·大数据量由于网络原因造成数据丢失的问题。Web服务调用时一次调用大的数据量很容易由于网络的原因造成数据的丢失和中断。该系统设计采用的解决方法是:先使用Web服务获取某个资源站点所有需要同步的有效资源数目,然后由目录中心根据资源数目将所有资源分成若干段,再通过Web服务将资源标识GUID分段同步到目录中心数据库,最后根据每个资源的GUID同步资源(基于每个资源都有唯一的标识GUID)。这样就能保证每次传送的数据量较小,防止传送的资源数据量过大而出现数据丢失的情况,过程如图3。
·数据传输过程中的安全性问题。本系统采用WS-Security来保证Web服务的数据安全。它定义了允许传递安全令牌的SOAP扩展。采用WS-Security构建的框架可以在异类Web服务环境中交换安全消息,因此非常适用于异构的分布式资源库系统。运用WS-Security类可以通过X.509证书或用户名/密码来验证Web service用户,可以数字式签署或加密SOAP消息。考虑到前者会增加维护开销,我们采用用户名/密码的方式对客户机进行验证。具体过程是:客户端通过SOAP扩展,在SOAP消息中加入用户名和口令(明文或加密),发送给Web Service端;服务端接到消息后,同样通过扩展从消息上下文中得到用户名和口令,通过程序验证正确后再进行其它操作。[12]
·多站点资源如何同时更新问题。调用资源站点Web服务来更新资源站点信息时,如果一个站点Web服务调用完成后才进行下一个站点Web服务调用,会造成大量的Web服务一直在等待中,相应的资源信息不能及时更新。为了解决这一问题,本系统在同步设计时采用了多线程的方法。多线程是并发地执行两个或多个任务的机制,能够实现多个站点资源同时更新的过程。同时使用多线程能够使用户界面对后台任务改变做出响应,用户可以通过用户界面查看更新过程的各种实时状态。[13]
该平台负责提供前台显示程序,显示并且供用户检索同步过来的资源信息。通过后台管理,管理员对资源进行统一管理,同时实现资源的推优去劣,优化了资源管理模式。主要功能有:
用户管理模块:进行用户注册、用户管理和权限分配管理。
目录检索模块:供用户检索资源,分为关键字检索和高级检索两类。
资源管理模块:提供了资源列表、资源编辑和资源删除功能。平台会自动记录用户的访问、下载、共享、评价、推荐和共享等操作并做汇总处理,并按相关规则进行资源应用排序处理,对优秀资源自动或由管理员推荐在相关专栏的形式呈现,供用户选择使用,以提高优秀资源利用率。对排名垫底的无效或过期资源进行删除处理,既优化了资源管理结构,又能排除大量无效资源,提高优秀资源的发现率。同时对于部分同步后缺少某些必备属性的资源来说,各学校管理员可以在平台中补充这些属性,以兼容各资源库站点资源呈现形式,统一资源格式,方便用户的检索和查看。
资源应用专栏:按资源访问量、资源下载量、资源评价、资源推荐量、资源共享量和资源最近更新等为筛选参数,呈现各项指标的资源排序列表,方便用户的选择,以提高资源利用率。
学校管理模块:对参与资源建设的各学校的管理。
以上述设计的系统模型为基础搭建的基于SOA的北京市高校特色资源共享系统,经过初步试用,证明了该体系结构的可行性,也实现了在各资源库系统改动最小的情况下实现资源的最大共享和组织管理的优化配置。当然系统的现有功能还需根据实际需求进行添加和完善,如进一步细化访问权限(如公开、登录访问、设定学校或角色访问等),以保护资源的版权问题;用数字证书身份验证方法完善Web服务的安全[14]。相信随着研究的不断深入和系统功能的不断完善,该研究将凸显其重要的实践意义。
[1]贺志强,韩政涛,贺龙祥.教育资源建设平台的发展与展望[J].现代教育技术,2009,(4):67-72.
[2]杜娟,徐鲁强.一种基于Web Services的数字化校园中信息整合的实现方案[J].微计算机信息,2006,(27):236-238.
[3]余胜泉,朱凌云,曹晓明.教育资源管理的新发展[J].中国电化教育,2003,(9):96-99.
[4]赵清,张豫,张京彬.特色资源整合助北京高校信息化发展[J].中国教育信息化,2009,(5):49-51.
[5][6]高哲.基于SOA软件架构的研究与应用[D].武汉理工大学,2007.
[7]SOA 知识简介[J].金融电子化,2007,(9):62.
[8]阳红,梁京章,黄金贵.Web Service技术在远程教育系统中的应用[J].计算机与现代化,2008,(1):107-111.
[9]王钱永.数字化校园中基于SOA的高校教育资源整合系统研究[J].中国教育信息化,2008,(11):60-63.
[10][13]Jeff Prosise,王铁等.Microsoft.NET程序设计技术内幕[M].北京:清华大学出版社,2003.
[11]邵良杉,刘好增,马海军.ASP.NET(C#)实践教程[M].北京:清华大学出版社,2007.
[12][14]Web服务安全性[DB/OL].http://msdn2.microsoft.com/zh-cn/library/aa302390.aspx,2004-10-08.
2009-10-25
贺志强,北京师范大学教育技术学院(100875)。
责任编辑 郑 重
Educational Resources Sharing and Support System Based on SOA:Research and Development
He Zhiqiang
Sharing and repetitive use has always been an outstanding issue foreducational resource banks(ERB).This paper aims to improve the situation by the idea of a SOA-based framework for sharing ERB based on detailed analysis of ERB projects in higher educational institutions in Beijing.This framework takes a two-phase workflow.First,the websites provide service for registration,auditing and releasing of educational resources;secondly,a directory center accesses the web service registered in the registration center so that information about all educational resources can be synchronized into the directory center,and be accessible to users for browsing,downloading and management.In addition,the author also discusses the main framework and key technology of the system.
G40-057
B
1009—458x(2010)02—0065—04
SOA;web services;resource sharing;optimum framework;systemic development