摘 要:结合自身实际建设,详细介绍了基于共享数据中心(Sharing Data Center)、应用SOA(Service-Oriented Architecture)核心组件ESB(Enterprise Service Bus)实现的数字化校园应用系统整合,真正意义上达到了数字化校园数据的同步和有效共享,从根本上消除了“信息孤岛”。
关键词:企业服务总线;共享数据中心;组件;数字化校园;应用整合
互联网的快速发展为高校数字化校园的发展提供了极好的机遇。但高校在数字化校园建设过程中,由于诸多原因,应用系统数据的使用、集成和共享出现了瓶颈,随着应用的增多,“信息孤岛”也日渐突现,一定程度上制约着高校信息化建设的发展。因此,实现各应用系统之间的数据有机整合成为高校数字化校园建设急待解决的关键问题。
根据需求调研,采用共享数据中心模式来解决应用系统数据整合。共享数据中心存储全局共享的数据, 通过数据交换工具,把业务系统需共享的数据抽取到共享数据中心进行保存,通过数据订阅和抽取的方式实现数据共享。这种模式既体现了数据中心的“共享”地位,又实现了共享数据的存储和转发,能有效地实现数据的整合[1]。
对于应用系统与共享数据中心的集成,根据数据标准,使用数据集成客户端工具(ESB客户端工具),在共享数据中心库中建立系统需要的数据结构。共享数据中心根据应用系统的业务需要,生成相应的主题库,应用系统在进行数据操作时,直接调用中间件服务,对共享数据中心主题数据库进行操作。
本文以我院数字化校园数据集成和整合项目(下简称“本项目”)为例,阐述基于SOA下,如何基于共享数据中心应用ESB中间件实现数字化校园应用系统的数据整合。
1 SOA和ESB中间件技术
SOA(Service-Oriented Architecture)是面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过服务之间定义良好的接口和契约联系起来[2]。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
采用SOA架构,可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,有利于项目的建设。在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并具有统一接口定义方式的组件(Web Service)组合构建起来。
在本项目中,各个业务组件均以服务的方式提供给用户使用,例如表输入组件、表输出组件、增量表组件、字段映射组件等。
组件被提交到ESB平台中,通过服务的编排实现具体的业务,达到重复利用组件的效果,这些组件最终以Web Service的方式部署在ESB平台中。
企业服务总线ESB(Enterprise Service Bus)是基于SOA思想的企业应用集成的基础软件架构。IDC将ESB定义为基于开放的标准消息总线,通过标准的适配器和接口提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并具有适当的服务级别和可管理性。
作为SOA架构的信息传输龙骨,ESB为SOA提供了一种连通性的基础架构,用以连接SOA中的服务。第三方的程序组件能够以标准的方式“插入”到该平台上运行,组件之间能够以标准的消息通信方式进行交互。
在本项目中,所有的数据交换流程都是由多个SOA组件编排组成,SOA组件表现为设计器中的服务组件,例如“表输入”、“字段映射”等。以“表输入”组件为例,主要完成从应用系统数据库抽取数据到ESB平台中,并转换成ESB内部传输格式的功能;而“字段映射”组件,则是完成两个表之间不同字段之间的映射关系的功能等;这些服务组件在配置后提交到ESB平台,注册形成特定的服务,供流程引擎调用,最终串联成一条完整的服务流程,完成特定业务功能。这些服务和流程本身都被提交到ESB平台中进行管理,通过统一的接口注册在平台中,ESB管理这些组件和流程,实现流程调用和数据的传输[3]。
ESB平台分为服务端和客户端两个部分,分别部署在数据中心服务器和各个应用系统数据库服务器端,服务端与客户端之间使用消息中间件实现数据的传输以保证数据传输的可靠性。服务端与客户端只需要运行在相应的Java环境下,安装部署非常方便。
2 应用系统整合思路
通过对学院各部门业务的充分调研,主要应用系统数据流向关系描述为:
(1)人事管理系统需要将共享数据上传到共享数据中心,上传的数据包括教职工的基本信息、所属部门系统、工资信息、津贴信息等。
(2)教务管理系统需要将学生的基本信息、在校信息、通讯信息、家庭信息、院系信息、专业信息、课程信息、教学计划信息、选课信息、教室使用信息、实验室使用信息等上传到共享数据中心,为其他应用系统提供最基础的应用数据。同时,由于教务管理系统涉及老生的注册功能,因此需要将老生的报到信息同步到共享数据中心,并将一卡通的学生报到数据、收费系统的收费数据、学工的贷款审批信息的状况下载到教务系统中,根据这些信息,在教务系统中实现自动注册。
(3)学工系统根据本身的需求,将学生的基本信息下载到系统中(包括从高考招生的学生基本信息[临时学号]、学生基本信息(教务上传的学生基本信息[正式学号])、院系统、班级、专业信息、财务借、贷发放情况、教学的学籍处分信息下载到本地;对于从临时学号变为正式学号,系统需要将学号进行更新。同时,学工系统需要将奖学金、勤工助学、补助、贷款、宿舍分配信息提供给共享数据中心。
(4)招生办提供的学生招生信息,通过手工导入方式导入到共享数据中心,共享数据中心根据学校提供的学号编码规则编制临时学号,再导入到高考招生基本信息集中。
(5)迎新管理系统根据目前招生导入的高考招生基本信息集,同步到迎新系统的学生基本信息中,一开始时使用学生的临时学号。同时,也需要将收费系统、学工系统上载的学生缴费信息、学生贷款信息等下载到迎新系统中,进行新生注册校验;学生的报到、注册信息自动同步到共享数据中心。在迎新完成之后,在共享数据中心提供手工的方式,为新生产生正式学号;同时将正式学号的学生基本信息、院系信息、专业信息等上传到共享数据中心。
(6)收费系统将共享数据中心导入的学生招生信息(临时学号)下载到收费系统中,并根据学生所在的院系、专业、班级情况,制订收费标准。并将收费情况提供给共享数据中心。迎新结束之后,学生的学号信息变为正式学号,由教务系统上传后,再下载学生的正式学号,修改临时学号为正式学号。
(7)图书馆管理系统将学生信息、教职工信息下载到读者信息库中。同时,将读者借阅信息、罚款信息、逾期信息、图书信息提供给共享数据中心,方便学校查询。
(8)精品课程系统只处理教师的帐号信息以及教师制作的精品课程信息。只需要将教师的基本信息下载到用户信息库中。同时,将教师制作的精品课程基本信息同步到共享数据中心的精品课程库中,为统计分析提供基础数据。
(9)机房管理系统主要是对学生上机情况进行管理,需要共享数据中心提供院系、班级、学生、专业、课程、排课等信息。
(10)多媒体教室中控监控系统需要共享数据中心的教师基本信息、一卡通的卡号信息。
(11)网络教学平台为教师与学生的互动提供基础平台,因此需要共享数据中心提供院系、班级、学生、专业、课程、排课、教师等信息。
(12)人事管理系统为共享数据中心提供教师的基本信息、工资信息等。
(13)财务管理系统为共享数据中心提供科研经费信息,教职工的工资、津贴、补助等信息,学生的奖、贷、助、罚等信息。
(14)资产管理系统需要共享数据中心提供教师信息、学生信息等。同时,需要将房屋、土地、仪器、设备等相关资料提供给共享数据中心,作为决策分析的数据来源。
3 应用ESB实现数据整合
基于ETL(Extract-Transform-Load)的核心思想和SOA的开放架构,通过共享数据中心和ESB中间件形成异构的数据交换处理系统,可以使上述数字化校园诸多应用系统之间复杂的数据提取、处理、映射、装载等过程变得简单而高效。通过金蝶Apusic ESB(下简称“AESB”)基本可视化的配置工具完成各个应用系统之间的数据采集、交换、同步、共享工作,从而实现数字化校园诸多应用系统的整合。
本项目中应用的AESB主要分为数据源管理、表输入、字段映射、值映射、分支节点、合并节点、表输出等组成。根据这些组件,可以根据需要,定制不同的数据交换流程、数据处理方式,最终将处理后的数据输出到目标数据库中(共享数据中心主题数据库)。
下面以教务系统的学生基本信息变化为例,说明它与学工系统进行整合所实现的数据同步流程,如图1所示。
在本项目中,共享数据中心后台管理人员使用设计器进行服务组件的编排,完成数据的抽取与推送。
3.1 数据抽取过程
数据抽取过程如下:
(1)教务系统根据学生基本信息的变化情况(如姓名、联系电话、班级、学号变化等),由ESB客户端监测到收费系统的学生基本信息变化情况,启动数据交换流程。
(2)表输入:ESB客户端启动交换流程之后,从表输入中读取变化后的学生基本信息,装载到ESB客户端的内存中暂存,应用ESB界面如图2所示。
(3)字段映射:ESB客户端根据共享数据中心的主题数据库的字段情况、教务系统数据库的字段情况,进行一对一映射,即从教务系统的字段传递到共享数据中心主题数据库的相应主题对象、相应字段,如图3所示。
(4)值映射:对于教务系统的学生性别,在共享数据中心主题库中以男对应1、女对应0存放,因此必须使用值的变化体现。在值映射中,定义性别字段的值从男变为1,女变为0,实现代码集的映射。
(5)表输出:在表输出中,配置主题数据库对应的主题库及主题对象。数据交换流程根据字段映射、值映射、以及表输出中定义的主题对象,生成数据输出对象流。
(6)消息中间件:消息中间件根据ESB客户端提交的数据输出请求,将数据进行加密、分组,以包的方式进行数据传输。
(7)消息中间件在服务器中接收ESB客户端传递的信息包,并进行合并解密后,再传递到ESB服务器中。
(8)ESB服务器:ESB服务器接收到消息中间件传递的数据包,根据数据包中包含的原始数据、输出的主题对象,输出到主题对象库中。同时,记录更新的时间、数据内容、客户端名称等信息,方便管理人员查看数据交换日志。
3.2 数据同步过程
数据同步过程与数据采集过程类似,只是在数据处理方向上,是从共享数据中心的主题对象中抽取变化的学生数据,再传递到收费系统的ESB客户端中,由收费系统的ESB客户端输出到收费系统的学生基本信息中。
提交该流程到数据中心,就可以将这条流程以服务的形式注册到ESB平台中以供调用。将流程调度为自动周期性运行,就可以实现实时同步学生数据的功能。
以教务系统与收费系统数据同步为例:
在教务系统中执行【教务系统】→【学生管理】→【学生信息维护】新增三条学生信息,分别是“彭金”“张作海”“莫秋晨”,教务系统中原始学生数据如图4所示。
应用ESB中间件实现抽取后,从教务系统抽取到共享数据中心的学生数据如图5所示。
应用中间件实施数据同步。从共享数据中心的主题对象中抽取变化的学生数据,传递到收费系统的ESB客户端中,由收费系统的ESB客户端输出到收费系统的学生基本信息中。
进入收费系统,选择【收费系统】→【变动处理】→【学生信息变动】,可以看到新增学生信息已经同步到收费系统中。
在数字化校园建设进程中,要更大程度地推进数字化建设,必须在深入调研和了解高校业务的基础上,应用先进的系统设计架构和中间件技术,将各业务系统进行更底层的数据关联整合,实现数据的交换共享,才能消除信息孤岛,保障数字化校园的数据资源真正贯通。数字化校园数据整合是一项事关数字化校园成败与否的关键性工作,随着本项目不断建设,将在数字化校园建设实践上进行更深入的探索。
参考文献
[1] 许鑫,苏新宁,吴乃冈.高校共享数据中心平台的设计与实现[J].现代图书情报技术,2005,21(6):48-53.
[2] 梅立军,付小龙,刘启新,等.基于SOA的数据交换平台研究与实现[J].计算机工程与设计,2006,27(19):3601-3603:
[3] 金蝶Apusic企业服务总线V6用户手册.http://infocenter.apusic.com/help/basic/tocView.jsp?toc=/aesb/toc.xml.