基于SOA的高校信息管理系统设计与开发摘要:信息资源的有效整合是高校数字化校园中面临的难题和挑战。SOA面向服务架构,作为新一代的体系结构,是当前解决异构系统整合、应用系统集成最理想的方案之一。本文提出一种基于SOA的高校教育资源整合的系统框架,并对如何利用该框架开展数字化校园教育资源整合给出了可行方案。关键词:数字化校园;SOA;教育资源;整合1引言高校信息化建设将会经历系统集成、应用集成、信息集成、社会集成等四个阶段[1]。在实施过程中,集成环境的建设是重中之重,特别是在当前大多数高校还处在应用集成、信息集成时期,作为整个信息化系统重要组成部分的教育信息资源的有效共享和开发利用正成为一个关键问题,它必将在提高教育科研质量,挖掘高校的发展潜力等方面发挥重要作用。目前,开发平台、工具的异构性和紧耦合性导致了大量的教育资源系统之间不能互联互通、资源共享与软件复用[2],“信息孤岛”现象在高校普遍存在。随着高校信息技术的发展,教育信息资源类别形式复杂多样、杂乱无序,数量猛增,质量参差不齐,事实上这些资源都还停留在低层次、低效率的重复建设上。如果采用传统方式来整合现有的教育资源系统会造成周期长、投入大等问题,同时又缺乏统一标准,难以充分保证资源整合服务的有序化、精约化、最优化。因此,如何有效地整序[3]、共享、整合、开发教育资源,确保教育信息化建设理性、有序、健康地向深入发展,已成为高校信息化建设的一个重要研究课题。2高校教育资源系统现状及SOA工作原理2.1高校教育信息资源系统现状教育资源是高校实现教学、科研及科技转化和社会服务三大功能的战略资源,教育资源系统的开发和利用是高校信息化建设的核心任务,也是提升高校综合竞争力的关键因素。从目前大多数高校共有的管理架构和运行机制来分析,现有高校内部教育信息资源管理系统大概有以下一些组成:人力资源管理系统、财务管理系统、教学管理系统、学生管理系统、设备管理系统、科研管理系统、图书自动化管理系统、网络课程平台等,还有以宣传为主的学校门户,各学院、职能部门及科学研究所网站等等。经过上世纪九十年代中后期的不断建设和完善,这些信息系统已经成为保障高校各项工作开展的必不可少的信息服务设施。但这些信息系统也普遍存在着以下不足:(1)资源信息及系统的规划性不强。高校信息系统是一个有机的整体,部门信息系统是整个高校信息系统的局部。但各系统之间缺乏总体规划,往往是学校部门根据自身业务需要来设计实施信息管理系统。对学校整体资源信息的开发挖掘,综合利用认识和规划设计不到位。(2)资源信息数据的共享性差。每个部门的系统都有相应的数据环境,而由于自身需求量身定制的数据库系统的数据结构、标准不一致。数据转换复杂,增加了数据共享的难度,冗余数据无法同步更新。(3)软件复用困难。各系统主要是以紧密耦合的方式把模块化的业务逻辑组合而成,这些业务逻辑在其它信息系统中无法被重用,从而导致了重复设计和IT资源的浪费。(4)异构平台环境。操作系统有基于Unix的,也有基于Windows的,系统架构和开发平台有C/S结构基于Delphi、VB等开发的,也有B/S结构基于.NET、JAVA开发。因此,这样的异构环境增加了集成的难度和成本。2.2SOA工作原理SOA(Service-OrientedArchitecture)是一种面向服务的体系结构,是一个蓝图,其目的是最大限度地重用应用程序中的服务以提高IT适应性和效率[4]。SOA作为一个组件模型,将应用程序中的不同功能单元(称为服务)通过对这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,也就是说它独立于实现服务的硬件平台、操作系统和编程语言[5]。这使得构建在各种此类系统中的服务可以用统一和通用的方式进行交互。SOA的组件包括:①服务提供者。服务提供者即服务的拥有者,负责将服务信息发布到服务注册者,同时要控制对服务的访问以及服务的维护和升级。②服务消费者。实现服务的查找与调用,首先到服务注册者去查找满足特定条件的、可获得的服务,一旦找到,服务请求者将绑定到服务提供者并进行实际的服务调用。③服务注册者。集中存储服务信息,以便于服务请求者的查找。同时服务提供者可以把它们所要提供的服务在服务注册者这里进行注册。这三种组件之间的关系如图1所示。主要的操作有:①发布:为了被访问,服务的描述信息必须被发布以便服务消费者发现和调用。②查找:服务消费者通过查询注册中心去定位符合其需求标准的服务。③绑定和调用:在获得服务描述信息之后,服务消费者据此去调用服务。检索发布WSDL,UDDIWSDL,UDDI服务注册者服务消费者服务提供者服务服务描述服务描述图1SOA组件间的协作示意图SOA具体的实现有很多,包括WebServices、SessionBean、JINI等。但随着WebServices技术越来越被重视,其已经成为实现SOA的主要构架技术。它是建立在开放标准和独立于平台协议基础之上的分布计算单元。WebServices用XML进行数据的描述和交换,使用SOAP协议在服务提供者与服务消费者之间进行通信,通过WSDL协议定义服务接口,使用UDDI协议进行WebServices注册和查找。这些特性使得WebServices成为目前实现SOA的最好方式。而WebServices以分散的形式存在于不同的系统中。所以,SOA最大特点就是有一个灵活而功能强大的服务层,这些服务可以用不同的技术、方法在不同平台上实现,利用服务层中粗粒度的、可被动态发现和绑定的服务,我们可以快速地构建松散耦合的、具有跨平台处理信息能力的应用系统。SOA构建方法位于高校教学资源系统整合业务需求和底层技术之间的抽象层次中,独立地对每一个服务功能模块进行定义,而每一个独立部署的教育资源服务模块不依赖具体的开发平台和系统,各个系统的功能需求通过服务的流程化组织得到实现,从而实现各种异构系统及资源的集成和软件复用。3基于SOA的高校教育资源系统集成基于SOA的面向服务软件集成构架,即采用WebServices技术实现教育资源系统的集成,使教育资源系统通过Web服务进行互连、集成和协同,实现集成和软件复用。WebServices为实现高校集成提供了一种全新的机制,它为本地和远程服务的定义、发布和访问提供了一整套解决办法。3.1传统集成模式传统的业务系统集成方案,是通过业务功能的专用接口调用,实现资源信息共享。业务方法级集成通过开发业务组件加以实现,实现业务功能的业务组件通常具有一些标准格式的结构和接口,具有较好的集成性能,业务组件的实现常采用CORBA、EJB、DCOM等技术。但专用调用接口方案存在着一些不足。专用调用接口方案是一种紧密耦合的集成方法,这种集成的结果不利于业务流程、资源信息的调整和重组,缺乏可扩展性、灵活性和适应性。其次是实现技术缺乏标准,不同的软件厂商提供了不同的实现技术,当前组件技术存在着多个标准,不同组件技术之间的互操作给集成增加了一定的成本和难度。SOA是实现高校信息系统之间数据和业务无缝衔接的理想方案,它在服务层中将各业务功能点以服务的形式暴露于系统之外,其它信息系统可以通过服务协约对服务进行访问。这种技术简化了系统集成,可以快捷、容易地对业务需求的变化做出反应。另外,面向服务架构是平台和语言无关的,因此不必考虑实施环境是何种平台系统和设备,与其它的系统集成技术相比,面向服务的集成构架是解决高校信息系统集成的理想选择。SOA之所以被用于信息资源整合,是因为其具备了标准化、可组装的特性[6]。因此基于SOA资源整合的关键技术,是把原有的信息资源封装为服务;然后将开发的新服务和原有系统包装的服务进行有效组合,共同实现对信息资源的整合。与传统的模式相比,SOA具有如下重要特点:①具有精确定义的标准化接口。②粗粒度3.2基于SOA的资源集成系统构架SOA提供了标准化的架构,信息资源整合的技术途径:在现有系统不做修改的前提下,将各个教育资源及业务功能转换或封装为服务,这些服务彼此相对独立并且可以进行组合,从而能有效地实现教育资源整合系统架构。为此,高校教育资源集成系统框架如图2所示。、松耦合的服务构架。③完好的封装性和高度集成能力。WebServices教学资源管理系统学生资源管理系统人力资源管理系统WebServicesWebServicesWebServicesWed服务器UDDI注册中心wsdlwsdlwsdlwsdl用户认证管理系统WebServicesinterner服务消费者用户访问系统调用图2基于SOA架构的高校教育资源集成系统框架从图2中可以看出,不论原有学校教育资源系统的语言、平台、技术、数据结构的异构性多大,只要在对外接口上都用统一的对象模型WebServices进行封装或转换,通过工具或手动定义各自资源系统的WebServices接口描述WSDL文档,并把WSDL文档描述的内容映射到学校UDDI数据库中去进行分类管理,即在UDDI注册中心对各类WebServices进行注册。当校内外用户通过学校门户网站对资源系统进行统一访问时,无需考虑其内部实现机制。用户登录门户认证系统时,先要在UDDI用户注册中心查找系统提供的用户接口对应WSDL文档,然后根据WSDL文件调用系统的用户管理模块进行用户认证,认证通过后才能访问系统。请求数据共享和业务调用时,首先要到UDDI注册中心访问所需服务的WebServices注册信息,通过注册信息访问相应的Web服务接口描述WSDL文档,并在本地生成代理对象。以后所需各业务就通过此代理对象与WebServices进行信息资源交互和业务功能调用。如果WebServices内部结构和实现发生了改变,只要修改WSDL描述,接口保持不变,整个系统就不需要作任何变化。其实现过程大致包括:(1)服务描述:用WSDL文档描述WebServices功能,包括接口调用方法、参数和返回值。它用types(类型)、message(消息)、portType(端口类型)、binding(绑定)、port(端口)和service(服务)元素来描述WebServices。(2)服务注册:为UDDI提供发布和查找服务描述的WSDL文档。它主要定义了4种数据类型:businessEntity、businessService、bindingTemplate和Model。businessEntity提供关于服务提供者的信息,可以包含一个或多个businessService。WebServices的技术和业务描述,在businessService和其bindingTemplate中被定义。每个bindingTemplate包含一对一或对多个Model的引用,Model被用于定义服务的技术规范。UDDI通过Model和businessService描绘抽象和实现之间的区别。因此,可以通过把WSDL内容映射到UDDI的数据库中去,从而在UDDI中注册服务。(3)服务发现:一个具体的实现(Service)来自于相同的portType所对应的Model。这样,客户端的程序就可以用ModelKey在UDDI中查找实现了抽象接口的bussinessService,从而查找到所对应的WSDL文件。(4)实现代理:根据查询的WSDL文件,服务消费者就可以动态地完成代理对象的生成,对相应的WebServices进行调用[7]。4基于SOA的资源集成系统的实现对于上述基于SOA的教育资源系统的集成方案,Web服务架构包括了三个组件、三种服务操作(服务发布、服务发现、服务绑定)以及两种服务构件(服务、服务描述),本节通过组件示例此构架的主要实现机制。1)服务提供者高校已有的一些信息系统,如教务资源管理系统、人力资源管理系统、学生资源管理系统等,都有一些数据或功能需要被共享。通过系统集成,那些需要共享的业务功能和数据在应用集成框架中将以服务的形式被暴露。如需要将“学生资源管理系统”的查询学生信息功能、“人力资源管理系统”的查询教职工信息功能、“教务资源管理系统”的成绩查询功能等设计为Web服务并