打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于接口和协议,如何统一同步高校公共数据?

多年来,大多高校相继建设了众多业务应用平台,涵盖教学、行政、服务三大方面,主要有教务、学生、网课、办公OA、人事、财务、资产、科研、图书、一卡通等管理平台,各平台逻辑功能具有专门性,技术架构各异,聚纳的业务数据各具特点,且拥有独立的查询统计功能。事实上,除非综合性大数据关联分析,业务平台大部分数据无需同步共享。

然而,对于学校公共基础数据,如若应用平台各自录入维护,则会引发不少问题:

增加了工作量;

难以保证一致性和完整性;

用户ID不统一,难以实现统一认证;

从业务抽取平台的数据缺乏关联性,难以进行全校性统计分析。

总之,没有公共数据的互联互通,就没有校园的智慧化。

经过多年集成实践,发现各业务平台需要统一同步的公共数据并不太多,一般有教师基本信息、学生基本信息、部门机构信息、班级信息、专业信息、课程信息、房屋信息等,不同业务平台的需求未必尽然,而教工和部门信息几乎是所有平台的必需。

数据同步一般方法及问题

对于数据同步,目前,主要有以下几种方法。

表格导入法:

从标准数据源系统(如人事系统)导出EXCEL表格(如人员信息),再使用相关业务系统自带的导入功能,实现最简单的数据共享。这需要人工操作,也有业务系统不支持导入导出,现在逐步被淘汰。

代码直读直写法:

由软件集成商编写程序代码,连接源系统数据库,读取数据记录,再连接目标业务系统数据库,向相关表直接写入数据。一方面,需要各系统平台厂商技术支持,提供表结构和字段说明及数据库连接账号,协商过程繁琐;另一方面,对于新建系统,仍需专门开发接口,需持续依赖集成商。

中间库共享法:

学校分析整理公共数据特征,建立校本中间库和表视图,手工或定时从相关标准源操作平台读取数据,更新中间库。同时,编写表及字段说明文档,提供给业务平台厂商。业务平台厂商二次开发,连接中间库,手动操作或定时从校本中间库读取数据,同步更新到各自系统中。

此方法强化了业务平台同步自主性,克服了对集成商的依赖,但是,难以适应某些异构平台和互联网云平台,也不能实现数据实时更新。

本文提出,开发搭建校本API数据接口及同步中心平台,并配套制定同步协议,同步执行操作从厂商平台交由校本数据同步中心调用触发,可以克服以上方法的不足,比较完整地回答数据同步面临的问题。

图1 数据同步中心原理框

数据同步中心的实现

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所示。

图4 业务平台同步关键字的配置

新系统部署和新生入学后,常常需要批量向业务平台导入数据。所以,在数据中心,有必要开发集中式批量同步操作功能,不同数据类型对应不同批量操作模块。在操作界面,按配置的同步标识字,自动列出目标业务平台;手工点选源数据和目标平台,确定同步时,后台逐个调用唤醒业务平台接口,进行数据导入更新,如图5所示。

图5 手工批量操作同步

6. 单记录实时轻量同步

在日常应用中,公共数据的变更常常发生为单条记录。相关源平台系统操作变更后,能即时将变更的记录分发到各业务平台,则为一种实时轻量的同步方式。为此,同步协议对各类数据定义了单记录接口和同步标识字,各业务厂商提供相应调用接口,并在数据中心进行登记,如图6所示。

图6 登记单记录业务平台接口

数据中心提供实时同步服务接口,进行数据分发。同时,对有限的几个数据源平台,需要进行必要改进,嵌入数据中心的服务接口。当源平台(如学工系统)操作变更信息(如增加一名学生)后,随即调用数据中心接口,数据中心查询对应同步标识字,逐个唤醒业务平台接口,进行单记录数据同步,从而实现更新数据的实时分发,如图7所示。

图7 实时同步时序

本文提出的思考和探索,在湖北工程职业学院16个业务平台进行了成功的应用。实践表明,虽然前期需要进行API和数据中心的必要开发,但建成后,面对新业务平台不断引入,在公共基础数据同步方面,将为学校后续信息化工作带来很大益处。

作者:鲁学

 湖北工程职业学院信息中心主任

来源:《中国教育网络》杂志(10月刊)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
此文详解,数据仓库管理建设的经验
API 接口设计规范
SOA--ESB
Gartner报告启示:科学规划架构,加速推进企业数字化转型
九卦丨2020年开放银行的未来和“另一面”
快手数据中台建设 - 大数据服务化之路
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服