多年来,大多高校相继建设了众多业务应用平台,涵盖教学、行政、服务三大方面,主要有教务、学生、网课、办公OA、人事、财务、资产、科研、图书、一卡通等管理平台,各平台逻辑功能具有专门性,技术架构各异,聚纳的业务数据各具特点,且拥有独立的查询统计功能。事实上,除非综合性大数据关联分析,业务平台大部分数据无需同步共享。然而,对于学校公共基础数据,如若应用平台各自录入维护,则会引发不少问题:增加了工作量;难以保证一致性和完整性;用户ID不统一,难以实现统一认证;从业务抽取平台的数据缺乏关联性,难以进行全校性统计分析。总之,没有公共数据的互联互通,就没有校园的智慧化。
经过多年集成实践,发现各业务平台需要统一同步的公共数据并不太多,一般有教师基本信息、学生基本信息、部门机构信息、班级信息、专业信息、课程信息、房屋信息等,不同业务平台的需求未必尽然,而教工和部门信息几乎是所有平台的必需。
图1 数据同步中心原理框
数据同步一般方法及问题
对于数据同步,目前,主要有以下几种方法。
表格导入法:从标准数据源系统(如人事系统)导出EXCEL表格(如人员信息),再使用相关业务系统自带的导入功能,实现最简单的数据共享。这需要人工操作,也有业务系统不支持导入导出,现在逐步被淘汰。
代码直读直写法:由软件集成商编写程序代码,连接源系统数据库,读取数据记录,再连接目标业务系统数据库,向相关表直接写入数据。一方面,需要各系统平台厂商技术支持,提供表结构和字段说明及数据库连接账号,协商过程繁琐;另一方面,对于新建系统,仍需专门开发接口,需持续依赖集成商。
中间库共享法:学校分析整理公共数据特征,建立校本中间库和表视图,手工或定
时从相关标准源操作平台读取数据,更新中间库。同时,编写表及字段说明文档,提供给业务平台厂商。业务平台厂商二次开发,连接中间库,手动操作或定时从校本中间库读取数据,同步更新到各自系统中。此方法强化了业务平台同步自主性,克服了对集成商的依赖,但是,难以适应某些异构平台和互联网云平台,也不能实现数据实时更新。
本文提出,开发搭建校本API数据接口及同步中心平台,并配套制定同步协议,同步执行操作从厂商平台交由校本数据同步中心调用触发,可以克服以上方法的不足,比较完整地回答数据同步面临的问题。
数据同步中心的实现
1.公共数据源的选择
公共数据源是一类标准信息,是向各业务平台进行分发的来源,通常由专门业务系统建立,相关职能部门维护。比如职工和部门信息取源人事系统,学生信息取源学工系统,房屋信息取源后勤系统,课程信息取源教务系统。数据API作为只读接口,且加设了授权认证,
并不需要将这类标准信息取出,汇聚成为中间库,而是可以直连读取数据源,减少了时滞,也是实现实时同步的重要一环。
2.公共数据接口的实现
Web应用的HTTP虽是传统协议,但一直广为应用,具有很好的跨平台访问特性。基于HTTP协议,开发校本公共数据接口API的基本方法是以get或post向对应接口URL提交请求,并携带必要的输入参数,接口收到请求后,可以直接连接源平台数据库,查询记录并转换格式,输出为JSON结果。
如GET方法批量获取员工信息,接口URL为:http://xxx.xxx.xx/api/EmplorerSyn/EmplorerListauthkey={authkey}&bzdm={bzdm}&gwztdm={gwztdm}。输入参数有三个:authkey表示授权码,bzdm表示员工编制代码,gwztdm表示岗位状态代码;输出为多行JSON数据,输出字段个数,由各校根据自身情况定义,尽可能丰富,以满足各类业务平台的取舍。如下为员工信息的一部分字段:
[
{
"sysid":"05555",
"bzlb":"10",
"xm":"张三",
"xbdm":"1",
"sfzh":"420202*********","mobile":"135*******","bmdm":"022",
"xldm":"012",
....
},
....
]
在数据安全性方面,接口平台部署了公网IP,暴露于公网,有被非法获取校本数据的风险。为此,定义每个接口输入参数须包含授权码,后台认证通过后,生成数据输出。业务平台的授权码互不相同,由校方发给软件厂商,也可动态生成。
3.接口描述及测试帮助
数据接口API本身以服务形式提供,没有可视化界面。然而,同步中心平台提供帮助界面,展示接口索引和说明文档,具有接口测试功能,帮助业务平台厂商技术人员掌握各接口参数,正确进行同步数据开发。用.NET开发API,其IDE提供一个非常便捷的功能,可以将程序代码对象的注释编译成为参数说明,并按对象分类索引public方法,自动生接口查询和测试界面。如图2和图3所示。
图2 接口方法索引和说明导航
图3 接口描述及测试
4.同步触发协议
厂商业务平台利用校本API接口,不必主动运行同步模块定时获取全量数据,进行自我更新,以避免消耗大量计算和网络资源。同步触发协议约定:厂商业务平台提供一个同步触发接口;数据中心调用厂商接口,并按协议生成接口参数;业务平台被动响应,取出参数,按协议辨析接口,运行相关数据同步模块,对应调用校本API接口,下拉数据进行同步。
厂商业务平台提供同步触发接口,如http://xxx.xxx.xxx.xxx/CallSyn,数据同步中心以http请求方式调用该接口,并添加get参数,形成如下URL串:
http://xxx.xxx.xxx.xxx/CallSyn?authkey={authkey}&datatype={datatype}&syndma={syndma}&syndmb={syndmb}
参数名称及其设值约定:
authkey:由数据中心动态生成,业务平台取出,作为从API获取数据的认证授权码。
datatype:数据标识字,以约定选择校本API数据同步接口。
syndma、syndmb:同步接口所需的参数值。
不同的数据同步类别,datatype、syndma、syndmb的取值对应见表1。
表1 不同的数据同步类别情况
5.同步配置和集中批量操作
业务平台厂商按协议完成接口开发后,在校本数据中心,登记触发同步接口URL,配置其申明的同步标识字,是实现集中手动批量同步和自动实时触发同步的基础,如图4所示。
新系统部署和新生入学后,常常需要批量向业务平台导入数据。所以,在数据中心,有必要开发集中式批量同步操作功能,不同数据类型对应不同批量操作模块。在操作界面,按配置的同步标识字,自动列出目标业务平台;手工点选源数据和目标平台,确定同步时,后台逐个调用唤醒业务平台接口,进行数据导入更新,如图5所示。
图5 手工批量操作同步
6.单记录实时轻量同步
在日常应用中,公共数据的变更常常发生为单条记录。相关源平台系统操作变更后,能即时将变更的记录分发到各业务平台,则为一种实时轻量的同步方式。为此,同步协议对各类数据定义了单记录接口和同步标识字,各业务厂商提供相应调用接口,并在数据中心进行登记,如图6所示。
图6 登记单记录业务平台接口
数据中心提供实时同步服务接口,进行数据分发。同时,对有限的几个数据源平台,需要进行必要改进,嵌入数据中心的服务接口。当源平台(如学工系统)操作变更信息(如增加一名学生)后,随即调用数据中心接口,数据中心查询对应同步标识字,逐个唤醒业务平台接口,进行单记录数据同步,从而实现更新数据的实时分发,如图7所示。
图7 实时同步时序
本文提出的思考和探索,在湖北工程职业学院16个业务平台进行了成功的应用。实践表明,虽然前期需要进行API和数据中心的必要开发,但建成后,面对新业务平台不断引入,在公共基础数据同步方面,将为学校后续信息化工作带来很大益处。
来源:《中国教育网络》杂志(10月刊)
作者:鲁学(湖北工程职业学院信息中心)
投稿、转载或合作,请联系:media@cutech.edu.cn
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。