中山大学数据共享交换平台接入规范.docx
《中山大学数据共享交换平台接入规范.docx》由会员分享,可在线阅读,更多相关《中山大学数据共享交换平台接入规范.docx(82页珍藏版)》请在冰豆网上搜索。
中山大学数据共享交换平台接入规范
中山大学数据共享交换平台接入规范
(试行)
中山大学信息化管理办公室
2018年5月
目录
1.概述1
1.1.读者1
1.2.目的1
1.3.相关术语1
1.4.信息资源目录2
1.5.数据交换方式5
1.6.数据交换模式5
1.7.数据日期概念6
1.8.增量条件6
2.交换体系设计7
2.1.总体设计7
2.2.架构设计8
2.2.1.SFTP服务架构8
2.2.2.数据库物理架构9
2.3.数据交换方式10
2.3.1.文件方式交换10
2.3.1.1.轮询交换(固定周期)、通报交换(不固定周期)提供的文件10
2.3.1.2.实时交换方式提供的文件11
2.3.1.3.文件路径说明11
2.3.2.数据库方式交换12
2.3.3.WEB服务方式交换13
2.4.系统接入方式13
3.数据交换模式14
3.1.实时交换15
2.1.1.数据报文请求15
2.1.2.数据文件请求17
2.1.3.数据报文推送21
2.1.4.数据文件推送22
3.2.轮询交换(固定周期)23
3.2.1.采集过程24
3.2.2.供数过程26
3.3.通报交换(不定周期)27
4.接口设计29
4.1.接口总体说明29
4.1.1.通信模式29
4.1.2.安全控制29
4.1.3.错误处理29
4.2.消息定义30
4.2.1.消息体30
4.2.2.系统ID(系统编码)31
4.2.3.接口编码31
4.3.接口详细设计33
4.3.1.资源目录管理33
4.3.2.数据文件请求模式接口37
4.3.3.数据报文请求模式接口41
4.3.4.数据采集服务接口43
4.3.5.供数服务44
4.3.6.点对点供数45
4.3.7.数据文件推送46
4.3.8.数据报文推送48
4.3.9.消息通知模式49
4.3.10.通报交换(不固定周期)50
5.数据权限51
5.1.资源权限51
5.2.字段级权限51
6.附录1—错误码52
7.附录2—web服务使用说明53
7.1.使用交换平台的接口53
7.2.接入方实现的服务55
7.3.报文样例57
1.概述
中山大学数据共享交换平台(下称“交换平台”)是负责传输校内不同信息系统间数据的平台,各业务系统通过与数据交换平台对接,实现业务数据在不同业务系统之间顺畅、实时、批量传输。
1.1.读者
Ø与交换平台对接的信息系统建设方
Ø与交换平台对接的信息系统开发方
Ø交换平台开发方
Ø交换平台运维管理方
1.2.目的
本文档是中山大学数据共享交换平台接口需求及设计方案相关文档,可用于指导对接接口开发、联调、测试工作。
1.3.相关术语
术语
说明
数据共享交换平台
下文如无特殊说明,简称交换平台。
业务系统
需要实施数据共享交换的业务信息系统,如人事信息管理系统、教务信息管理系统等。
ok文件
标志文件,在数据文件生成完成后产生的空文件,供数据需求方判断文件是否可读取
资源代码
资源如果是数据库表,则资源代码为:
数据提供方表名。
资源如果是文件,则资源代码为:
文件名去掉系统ID和后缀。
资源如果是报文,则资源代码为:
返回报文中result中的tablename。
dcroot
交换平台sftp根目,实际为登录后的files目录
syroot
交换平台为每个业务系统配置的专属sftp根目录。
不同的业务系统的根目录不同,实际为登录后的files目录
单一资源
资源目录中一个资源ID定义为一个资源,当资源为一个文件或一个表时,为单一资源
复合资源
资源目录中一个资源ID定义为一个资源,当资源为一类资源,即对应多个文件或多个消息时,为复合资源。
例如一份完整档案,包含多个不同类型文件集合,此集合属于一个复合资源。
1.4.信息资源目录
信息资源目录为数据共享交换的依据,目录所含内容既是对共享信息资源的描述,也是数据交换关系的描述。
在数据共享交换中的一张数据库表、一个文件或一类文件都是属于信息资源,注册于信息资源目录中。
中山大学信息资源目录由数据模型管理平台管理,数据共享交换实施前需要数据提供方注册,并由数据管理员审核通过后对全校发布。
下表详细介绍资源的属性
字段名称
字段类型
是否必填
说明
resourceID
String
是
资源ID,一个资源的唯一ID
multiFlag
char
是
是否包含多个文件标识:
S:
单一资源(对应一个文件,一个表);
M:
复合资源(可多个文件,多个消息定义为一个资源ID,对应一类资源,一类消息)。
resourceAlias
String
是
资源代码:
(1)当multiFlag=S时:
数据库表为:
数据提供方表名,
文件类型为:
文件名去掉系统ID和后缀,
报文类型为:
返回报文中result中的tablename;
(2)当multiFlag=M时:
自定义的这一类资源的类别名称,如果是文件类型,建议使用这一类文件的名称统一前缀。
提交资源是确保本系统唯一。
注:
受限于oracle对表名的限制,时分频率供数时表名为{providerSysID}_{resourceAlias}_{reqSysID},资源代码最长只能为22位;
remark
String
是
资源描述
resourceType
Char
是
是否结构化数据:
(1)结构化数据:
S。
类似数据库格式化的数据,有字段说明的数据;
(2)非结构化数据:
N。
非结构化数据,如图片文件。
providerSysID
String
是
数据提供方ID。
见3.2.2系统ID章节
isStore
char
是
数据是否在中心交换节点留存:
Y-代表数据在交换过程中会在中心节点留存,即数据交换过程中数据会在交换平台“落地”;
N-代表数据在交换过程中不在中心节点留存,即数据交换过程中数据只交换,但不会在交换平台“落地”。
frequency
String
否:
非定时数据交换方式可为空
数据交换任务定时启动的频率定义:
minute:
30含义是交换任务从每日0点起每30分钟运行一次;
minute:
60含义是交换任务从每日0点起每60分钟运行一次;
day含义每日运行一次;
week:
n含义周几运行,如周一,则n=1;
month:
两位日期含义每月运行一次,如month:
02为每月2日运行;
year:
四位日期含义一年运行一次,如year:
0321为每年3月21日运行;
putTime
String
否:
数据提供方完成供数的时间点,格式为HH:
mm,此字段与frequency结合使用,用于表述某天某日定时数据交换的时间。
例如:
……
getMode
char
是
数据提供方资源承载方式:
F:
文件方式
D:
数据库方式
I:
报文方式
M:
普通通知类消息(双方直接通讯方式的资源定义)
isIncrease
char
否
是否增量:
Y-增量、N-全量。
如是增量,中心库需追加;如是全量,中心库需覆盖。
注:
如数据提供方有物理删除数据,需要写入交换节点机并打D标识。
增量的数据必须包括当期新增、修改、删除的数据(业务上逻辑删除的数据为修改)。
新建业务系统必须提供增量供数模式,不再接受全量供数模式
increaseParam
String
否:
数据库增量抽取的时候必填
增量抽取sql中where条件后面的内容。
如条件中有数据日期,请使用格式化参数代替,前后加上‘#’
1、日期使用#yyyyMMdd#或#yyyy-MM-dd#
2、日期时间使用#yyyyMMddHHmmss#或#yyyy-MM-ddHH:
mm:
ss#
注:
实际执行时日期参数使用具体日期替代,需能够抽取到当期新增和修改的数据(业务上逻辑删除的数据为修改)
比如资源定义:
lastTime>=to_date('#yyyy-MM-dd#','yyyy-mm-dd')
实际使用时:
C001需传入:
lastTime>=to_date('2017-10-31','yyyy-mm-dd')
平台采集时:
lastTime>=to_date('2017-10-31','yyyy-mm-dd')
注:
数据日期说明见1.7,与实际运行日期不同
isLogTable
char
是
是否流水表,流水表只能为增量抽取。
Y-是;N-否
注:
流水表不处理增改删标志,默认只有新增。
catalog
char
是
资源类别:
B-基础数据
S-业务数据
C-决策数据
具体定义见附录:
资源类别定义
theme
string
是
所属主题
教职工域
教学域
财务域
学生业务域
科研域
1.5.数据交换方式
1.数据库方式:
数据供需双方可通过读写交换节点上数据库的表或视图实现数据交换。
2.文件方式:
数据供需双方可通过读写交换节点上的文件实现数据交换,如是结构化数据,需要按照接口文档中描述的文件格式提供文件,以便于交换平台对文件解析。
3.web服务方式:
数据供需双方可通过提供webservice对提供和获取数据,webservice需按照接口文档中的描述方式实现,为httppost方式的RESTful方式,参数为Json格式,即需按C001接口实现。
详见4.3.3章节。
1.6.数据交换模式
1.实时交换:
通过B001,C001,H001,I001等接口请求的数据,会实时返回或生成数据。
2.轮询交换(固定周期):
此方式下,数据提供方或者数据需求方在资源目录中约定数据交换频率(如30分钟一次、1日一次等),并按照该频率,数据提供方提供数据到交换平台,数据需求方定期从交换平台轮询获取数据。
此方式下,交换平台不会主动告知各方是否有更新数据,需要数据需求方定期轮询。
3.通报交换(不定周期):
此方式下,业务数据数据发生变更后,数据提供方即时主动通报数据交换平台,由数据交换平台把数据推送给数据需求方,同时通报数据需求方从交换平台获取数据。
此种交换方式频率不固定。
1.7.数据日期概念
,提供方生成文件需要加上数据日期,文件命名和要加上数据日期,即下文中yyyyMMdd和yyyyMMddHHmm,数据日期与实际运行日期是有区别的,实际处理数据是上一期(配合增量条件)的数据,所以数据日期=实际日期-周期。
采用数据库交换方式时,交换平台会在交换表中建时间戳内建字段。
下面给出具体的例子
周期
运行日期/时间
数据日期/时间
说明
minute:
30
201803291130
201803291100
半点和整点运行
minute:
60
201803291100
201803291000
整点运行
day
20180329
20180328
每天运行
week:
5
20180406
20180326
(上周周一)
每周五运行
month:
01
20180402
20140301
(上月1日)
每月1日运行
year:
0301
20180301
20170101
(上年元旦)
每年3月1日运行
1.8.增量条件
数据提供方提供数据可以是增量也可以是全量,原则要求初次提供全量数据,日常提供提供增量数据。