1、中山大学数据共享交换平台接入规范中山大学数据共享交换平台接入规范(试行)中山大学信息化管理办公室2018年5月目 录1. 概述 11.1. 读者 11.2. 目的 11.3. 相关术语 11.4. 信息资源目录 21.5. 数据交换方式 51.6. 数据交换模式 51.7. 数据日期概念 61.8. 增量条件 62. 交换体系设计 72.1. 总体设计 72.2. 架构设计 82.2.1. SFTP服务架构 82.2.2. 数据库物理架构 92.3. 数据交换方式 102.3.1. 文件方式交换 102.3.1.1. 轮询交换(固定周期)、通报交换(不固定周期)提供的文件 102.3.1.2.
2、 实时交换方式提供的文件 112.3.1.3. 文件路径说明 112.3.2. 数据库方式交换 122.3.3. WEB服务方式交换 132.4. 系统接入方式 133. 数据交换模式 143.1. 实时交换 152.1.1. 数据报文请求 152.1.2. 数据文件请求 172.1.3. 数据报文推送 212.1.4. 数据文件推送 223.2. 轮询交换(固定周期) 233.2.1. 采集过程 243.2.2. 供数过程 263.3. 通报交换(不定周期) 274. 接口设计 294.1. 接口总体说明 294.1.1. 通信模式 294.1.2. 安全控制 294.1.3. 错误处理 2
3、94.2. 消息定义 304.2.1. 消息体 304.2.2. 系统ID(系统编码) 314.2.3. 接口编码 314.3. 接口详细设计 334.3.1. 资源目录管理 334.3.2. 数据文件请求模式接口 374.3.3. 数据报文请求模式接口 414.3.4. 数据采集服务接口 434.3.5. 供数服务 444.3.6. 点对点供数 454.3.7. 数据文件推送 464.3.8. 数据报文推送 484.3.9. 消息通知模式 494.3.10. 通报交换(不固定周期) 505. 数据权限 515.1. 资源权限 515.2. 字段级权限 516. 附录1错误码 527. 附录2
4、web服务使用说明 537.1. 使用交换平台的接口 537.2. 接入方实现的服务 557.3. 报文样例 571. 概述中山大学数据共享交换平台(下称“交换平台”)是负责传输校内不同信息系统间数据的平台,各业务系统通过与数据交换平台对接,实现业务数据在不同业务系统之间顺畅、实时、批量传输。1.1. 读者 与交换平台对接的信息系统建设方 与交换平台对接的信息系统开发方 交换平台开发方 交换平台运维管理方1.2. 目的本文档是中山大学数据共享交换平台接口需求及设计方案相关文档,可用于指导对接接口开发、联调、测试工作。1.3. 相关术语术语说明数据共享交换平台下文如无特殊说明,简称交换平台。业务
5、系统需要实施数据共享交换的业务信息系统,如人事信息管理系统、教务信息管理系统等。ok文件标志文件,在数据文件生成完成后产生的空文件,供数据需求方判断文件是否可读取资源代码资源如果是数据库表,则资源代码为:数据提供方表名。资源如果是文件,则资源代码为:文件名去掉系统ID和后缀。资源如果是报文,则资源代码为:返回报文中result中的tablename。dcroot交换平台sftp根目,实际为登录后的files目录syroot交换平台为每个业务系统配置的专属sftp根目录。不同的业务系统的根目录不同,实际为登录后的files目录单一资源资源目录中一个资源ID定义为一个资源,当资源为一个文件或一个表
6、时,为单一资源复合资源资源目录中一个资源ID定义为一个资源,当资源为一类资源,即对应多个文件或多个消息时,为复合资源。例如一份完整档案,包含多个不同类型文件集合,此集合属于一个复合资源。1.4. 信息资源目录信息资源目录为数据共享交换的依据,目录所含内容既是对共享信息资源的描述,也是数据交换关系的描述。在数据共享交换中的一张数据库表、一个文件或一类文件都是属于信息资源,注册于信息资源目录中。中山大学信息资源目录由数据模型管理平台管理,数据共享交换实施前需要数据提供方注册,并由数据管理员审核通过后对全校发布。下表详细介绍资源的属性字段名称字段类型是否必填说明resourceIDString是资源
7、ID,一个资源的唯一IDmultiFlagchar是是否包含多个文件标识:S:单一资源(对应一个文件,一个表);M:复合资源(可多个文件,多个消息定义为一个资源ID,对应一类资源,一类消息)。resourceAliasString是资源代码:(1)当multiFlag=S时:数据库表为:数据提供方表名,文件类型为:文件名去掉系统ID和后缀,报文类型为:返回报文中result中的tablename;(2)当multiFlag=M时:自定义的这一类资源的类别名称,如果是文件类型,建议使用这一类文件的名称统一前缀。提交资源是确保本系统唯一。注:受限于oracle对表名的限制,时分频率供数时表名为 p
8、roviderSysID_ resourceAlias_ reqSysID,资源代码最长只能为22位;remarkString是资源描述resourceTypeChar是是否结构化数据:(1)结构化数据:S。类似数据库格式化的数据,有字段说明的数据;(2)非结构化数据:N。非结构化数据,如图片文件。providerSysIDString是数据提供方ID。见3.2.2系统ID章节isStorechar是数据是否在中心交换节点留存:Y-代表数据在交换过程中会在中心节点留存,即数据交换过程中数据会在交换平台“落地”;N-代表数据在交换过程中不在中心节点留存,即数据交换过程中数据只交换,但不会在交换平
9、台“落地”。frequencyString否:非定时数据交换方式可为空数据交换任务定时启动的频率定义:minute:30 含义是交换任务从每日0点起每30分钟运行一次;minute:60 含义是交换任务从每日0点起每60分钟运行一次;day 含义每日运行一次;week:n 含义周几运行,如周一,则n=1;month:两位日期 含义每月运行一次,如month:02为每月2日运行;year:四位日期 含义一年运行一次,如year:0321为每年3月21日运行;putTimeString否: 数据提供方完成供数的时间点,格式为HH:mm,此字段与frequency结合使用,用于表述某天某日定时数据交
10、换的时间。例如:getModechar是数据提供方资源承载方式:F:文件方式D:数据库方式I:报文方式M:普通通知类消息(双方直接通讯方式的资源定义)isIncreasechar否是否增量:Y-增量、N-全量。如是增量,中心库需追加;如是全量,中心库需覆盖。注:如数据提供方有物理删除数据,需要写入交换节点机并打D标识。增量的数据必须包括当期新增、修改、删除的数据(业务上逻辑删除的数据为修改)。新建业务系统必须提供增量供数模式,不再接受全量供数模式increaseParamString否:数据库增量抽取的时候必填增量抽取sql中where条件后面的内容。如条件中有数据日期,请使用格式化参数代替,
11、前后加上#1、日期使用#yyyyMMdd#或#yyyy-MM-dd#2、日期时间使用#yyyyMMddHHmmss# 或 #yyyy-MM-dd HH: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,与实际运行日期不
12、同isLogTablechar是是否流水表,流水表只能为增量抽取。Y-是;N-否注:流水表不处理增改删标志,默认只有新增。catalogchar是资源类别:B-基础数据S-业务数据C-决策数据具体定义见附录:资源类别定义themestring是所属主题教职工域教学域财务域学生业务域科研域1.5. 数据交换方式1. 数据库方式:数据供需双方可通过读写交换节点上数据库的表或视图实现数据交换。2. 文件方式:数据供需双方可通过读写交换节点上的文件实现数据交换,如是结构化数据,需要按照接口文档中描述的文件格式提供文件,以便于交换平台对文件解析。3. web服务方式:数据供需双方可通过提供webserv
13、ice对提供和获取数据,webservice需按照接口文档中的描述方式实现,为http post方式的RESTful方式,参数为Json格式,即需按C001接口实现。详见4.3.3章节。1.6. 数据交换模式1. 实时交换: 通过B001 ,C001,H001,I001等接口请求的数据,会实时返回或生成数据。2. 轮询交换(固定周期):此方式下,数据提供方或者数据需求方在资源目录中约定数据交换频率(如30分钟一次、1日一次等),并按照该频率,数据提供方提供数据到交换平台,数据需求方定期从交换平台轮询获取数据。此方式下,交换平台不会主动告知各方是否有更新数据,需要数据需求方定期轮询。3. 通报交
14、换(不定周期):此方式下,业务数据数据发生变更后,数据提供方即时主动通报数据交换平台,由数据交换平台把数据推送给数据需求方,同时通报数据需求方从交换平台获取数据。此种交换方式频率不固定。1.7. 数据日期概念,提供方生成文件需要加上数据日期,文件命名和要加上数据日期,即下文中 yyyyMMdd和 yyyyMMddHHmm,数据日期与实际运行日期是有区别的,实际处理数据是上一期(配合增量条件)的数据,所以数据日期=实际日期-周期。采用数据库交换方式时,交换平台会在交换表中建时间戳内建字段。下面给出具体的例子周期运行日期/时间数据日期/时间说明minute:30201803291130201803291100半点和整点运行minute:60201803291100201803291000整点运行day2018032920180328每天运行week:52018040620180326(上周周一)每周五运行month:012018040220140301(上月1日)每月1日运行year:03012018030120170101(上年元旦)每年3月1日运行1.8. 增量条件数据提供方提供数据可以是增量也可以是全量,原则要求初次提供全量数据,日常提供提供增量数据。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1