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

多年来,大多高校相继建设了众多业务应用平台,涵盖教学、行政、服务三大方面,主要有教务、学生、网课、办公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月刊)

(0)

相关推荐

  • 宙斯开发者中心JOS、EDI、API

    JOS -宙斯开发者中心,前身为宙斯开放平台(Jingdong Open Service  简称JOS) 是京东开放服务的载体,于2012年5月正式上线,旨在通过开放接口的形式将京东各系统能力对外开放 ...

  • 从SOA架构思想到中台和微服务,太多的基础概念需要澄清

    作者:人月神话,新浪博客同名 简介:多年SOA规划建设,私有云PaaS平台架构设计经验,长期从事一线项目实践 今天这篇文章作为对SOA,中台和微服务等大量基础概念的一次统一说明.我始终认为,当你在学习 ...

  • 工业互联网时代的软件发展趋势

    解耦与赋能 曾经有一位CIO与我讨论过如下问题:该企业的财务管理软件使用SAP的财务软件,随着公司随着业务快速发展,很多业务需要与财务模块融合,需要将财务功能嵌入到业务流程中.但该公司先使用的SAP的 ...

  • Headless Commerce(无头电商)与中台随想

    Headless Commerce是一个有趣的名字,它是近一年国外电商行业的时髦术语.国内还不怎么流行这种叫法,但与其对应类似的概念实际上在中国也是漫天飞舞,这就是"API化"和& ...

  • C#基于接口设计三层架构Unity篇

    一.引言 面向接口(抽象)编程,是为了降低程序的耦合度,符合依赖倒置原则.因此典型的三层架构UI.BLL.DAL基于接口设计后,会拓展成UI.IBLL.BLL.IDAL.DAL.在上一篇<C# ...

  • 蚂蚁自研数据库OceanBase基于木兰公共协议正式开源

    凌云时刻 6月1日,在数据库OceanBase3.0峰会上,蚂蚁集团自主研发的分布式数据库OceanBase宣布采用木兰公共协议 MulanPubL-2.0正式开源. CEO杨冰表示,OceanBas ...

  • GSM移动通信技术---接口与协议

    接口----两个相邻实体之间的连接点 ØUm接口:空中无线接口,用于移动台和GSM系统的固定部分的互通,传递的信息包括天线资 源管理,移动管理和接续管理. ØAbis接口:BSC和BTS之间的接口,支 ...

  • 超级快充时代 PD快充协议何时统一?

    来源:连接器世界网 [哔哥哔特导读]当下,手机充电技术已进入超级快充时代.对于各异的PD快充协议,未来的趋势到底会是怎样呢? 随着科技的发展,智能手机已在全球范围内普及,手机用户已占据着全世界总人口的 ...

  • 瑞萨电子推出业界首款基于清晰源代码格式的IEEE1588同步软件

    NEWS 全球半导体解决方案供应商瑞萨电子集团(TSE:6723)宣布,推出PTP(Precision Timing Protocol,精密时钟协议)Clock Manager软件.作为业界首款基于L ...

  • rs485总线接口通讯协议定义标准以及管脚引脚介绍

    RS485总线标准是工业中(考勤,监控,数据采集系统)使用非常广泛的双向.平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络:最大传输距离1200m,支持1200 m时为100kb/s的高速 ...

  • 基于PROFIBUS的PLC分布式液压同步系统设计开发(4)

    2  多点同步控制原理及软件 一般多顶升点液压同步控制方式有"同等方式"和"主从方式"两种.所谓"同等方式"是指预先设定某一理想输出,使多个 ...

  • 基于PROFIBUS的PLC分布式液压同步系统设计开发(5)

    2)前馈+模糊自整定控制器 由于液压同步升降设备一般应用于地形.结构和气候等比较复杂的场合,很难建立一个统一的模型,使得经典PID控制的固定参数设置很难适应各种工况.程序设计的简单性和有效性,该系统设 ...

  • 基于PROFIBUS的PLC分布式液压同步系统设计开发(6)

    3  实验与分析 KingView是一种功能强大的开发监控系统软件.它以标准的工业计算机软.硬件平台构成的集成系统取代传统的封闭式系统,具有适应性强.开放性好.易于扩展.经济.开发周期短等优点.系统采 ...