dams数据交换框架的设计与应用实践

pro_lv

贡献于2017-02-23

字数:0 关键词:

中国农业银行软件开发中心 技 术 内 参 编号: 编号: 编号: 编号: 2013002013002013002013004444 适用范 围: 适用范 围: 适用范 围: 适用范 围: ☆ 2013 2013 2013 2013 年年年年2222月月月月4444日日日日 DAMS DAMS DAMS DAMS 数据交换框架的设计与应用实践 应用开发四部 滕宇欣 李耀池 唐峰 李玉杰 栏目:【可借鉴的技术应用实践】 摘要: 为了解决不同信息系统之间的异构数据共享问题,资金交易管理系统 V2.1 项目(DAMS2.1)设计实现了一套数据交换框架。本文根据 DAMS 数据交换框 架的设计与应用实践,详细介绍了 DAMS 数据交换框架的设计思想并对项目中 实际业务数据接收流程进行了分析实现。 DAMS 数据交换框架提高了数据交换 效率、缩短了项目开发周期、提高了资源的利用率,具有良好的扩展性,为业务 系统提供了可靠稳定的数据交换支持,获得了较好的应用效果。 关键字:数据交换、数据交换框架、数据集成 1.1.1.1.引言 随着我行信息化建设的不断发展,各部门上线的应用系统的数量越来越多, 各系统之间的数据交换也越发频繁,对数据交换的需求也越发迫切;但是各个系 统之间的异构数据以及通讯协议的不同造成各个信息系统间进行数据交换和共 享的障碍,如何解决这些问题成为 DMAS 系统接口开发中的关键。为此,我们 提出了一种适应于多通讯协议间异构数据交换和共享的一种标准化、可定制化的 解决方案。从而在最大程度上提高数据交换效率、提高资源的利用率、缩短系统 对接的开发周期、易于扩展及变更。 2.2.2.2.数据交换的概念和常规处理方式 数据交换就是将一个系统的一种或者多种数据格式通过某种通讯协议被另 一个或者多个系统获取,并且经过一系列的数据处理转化,最终为另一个或者多 个系统可以使用的数据的过程。 目前常规的处理方式为针对第三方或者子系统的接口性质进行具有针对性 的编码,包括数据格式,通讯方式,处理方式等以达到数据交换的目的。 这种模式存在诸多的问题,主要表现在: 没有统一、标准的解决方案,开发的效率较低,代码的复用率较低,无法快 速响业务需求的变化; 当交互的系统数量较多时,大量有针对性的编码直接导致了系统扩展受到限 制,同时提高了后续建设和维护成本; 3.DAMS 3.DAMS 3.DAMS 3.DAMS 数据交换框架的设计 资金交易管理系统从 DAMSV2.0 项目阶段就开始了探索 DAMS 数据交换框 架,包括一系列核心开发组件、统一的标准数据格式、灵活的可定制的数据处理 流程、全自动的流程监控,异常数据修复等等,在 DAMSV2.1 项目阶段就对接 的18个行内外系统均在平台基础上使用平台组件进行开发,通过该平台使得数 据交换开发工作变得敏捷有效,切实的针对需求变化做到了快速响应,把 DAMSV2.1 系统与其他系统有效地联系起来,最大限度的发挥 DAMS2.1 系统在 金融市场业务中的重要作用。 3.1 3.1 3.1 3.1 数据交换框架的设计原则 数据交换框架要对异构操作系统、异构数据库、异构数据结构、异构通信协 议环境下进行数据交互的所有信息系统实现数据交换和管理,从而适应许多相互 隔离的信息服务和管理系统对异构数据整合的迫切需要。其主要解决内容及达到 的目标是: 1)实现资源共享和组件级别的功能抽取, 2)DAMS 业务系统调用访问不同外系统数据的方式一样, 3)采用同一个模型对所有交互数据进行操作, 4)保持现有数据库和系统结构不变; 5)具有良好的可扩展性。 基于上述目标,我们本着以下 4条原则进行设计和规划: 易用性:利用该框架中的各种功能组件可以快速开发数据交换程序,能够快 速相应需求的变更。 稳定性:利用开框架开发的数据交换程序必须具有很高的稳定性,为系统稳 定持续的提供正确的数据。 可扩展性:该框架可以根据业务需求的变更而进行方便的扩展,增加新的功 能组件并集成到已有的应用中。 易维护性:利用该框架开发的数据交换程序应具有统一的程序结构,并具有 良好的可维护性,降低维护成本。 3.3.3.3.2222数据交换框架的架构设计 从层次结构来看, 可以将 DAMS 数据交换框架的主体功能分为四个层:业 务层、服务层、组件层和数据层。 数据交换框架的应用架构如图 1所示。 (一)组件层 组件层是整个数据交换框架的核心和基础。其中流程控制组件是整个组件层 的核心,其他组件都是为该组件进行服务的,主要包括格式转换组件,通讯协议 组件,配置文件组件,日至监控组件,文件组件,数据库组件,系统调度组件等。 是整个服务层的核心支持。 (二)服务层 该层是系统中最重要的一层,数据交换框架的所有核心服务都集中在这一 层,该层利用组件层的功能组件来构建数据交换框架所需要 数 据 层 债 券 基 本 信 息 柜 台 国 债 数 据 授 信 用 信 数 据 交 易 相 关 数 据 黄 金 数 据 理 财 销 售 数 据 服 务 层 上 海 外 汇 交 易 中 心 上 海 黄 金 交 易 所 清 算 结 算 子 系 统 行 情 数 据 系 统 基 础 信 息 组 件 层 流 程 控 制 组 件 标 准 格 式 转 换 组 件 日 志 监 控 组 件 数 据 缓 存 组 件 安 全 控 制 组 件 多 协 议 通 讯 组 件 系 统 监 控 组 件 数 据 库 组 件 文 件 操 作 组 件 同 步 服 务 组 件 配 置 组 件 签 名 验 签 组 件 数 据 配 送 服 务 数 据 接 收 服 务 订 阅 发 布 服 务 监 控 服 务 安 全 服 务 格 式 转 换 服 务 调 度 服 务 日 志 服 务 业 务 层 清 算 中 心 C O S 数 据 交 换 托 管 前 置 数 据 交 换 集中版理财数据交换 C M S 3 数 据 交 换 路 透 数 据 交 换 外汇交易中心数据交换 SUMMIT 数 据 交 换 德意志银行数据交换 上海金交所数据交换 德意志银行交易系统 C M SC M SC M SC M S 3333 数 据 交 换 框 架 其 他 业 务 系 统 理 财 子 系 统 风 险 子 系 统 基 本 信 息 子 系 统 D A M S 2 . 1 子 系 统 图1数据交换框架的应用架构 的不同功能服务。所谓服务,指的是具有基于统一规范的服务接口、服务调 度模式、完成特定功能的一个功能实现。交换框架服务层主要包括标准的数据接 收服务、数据配送服务、日志监控服务、格式转换服务、通讯服务、调度服务等。 同时系统还提供对服务的定制,可以在标准服务的基础上根据具体的需要进行定 制和扩展而形成定制化的服务。 (三)业务层 业务层针对不同的外系统数据交换需求,针对特定业务封装不同业务逻辑调 用,利用已经封装好的各种数据交换服务来构建不同系统之间进行数据交换的业 务流程。 (四)数据层 数据层直接面向生产库,向下面向不同业务交换数据所对应的原始库表,向 上通过数据库组件提供高效的数据服务。同时数据层还提供了以交换框架标准格 式为基础的数据文件库,可随时向数据需求者提供数据。 3.3.3.3.3333数据交换框架的关键组件 (一)流程控制组件 该组件是核心组件,为框架提供了数据交换的完整处理过程;框架中定义的 标准流程基本能够满足大部分数据交换业务的要求,如果有某些接口有特殊的要 求,需要不同于标准流程的,流程控制组件允许开发者自定义自己的数据交换流 程。 如需定制自己的数据交换流程,开发者只需要继承 AbstractReceiveProcessor 类,并按照规定实现其需要的方法即可完成数据交换流程的定义。 以数据接收为例,一次典型的处理过程为: 1) 数据交换框架应用收到业务模块请求或者 Quartz 触发,连接登录其他业务系 统。 2) 根据双方约定的协议发送数据请求获得数据。 3) 将接收到的原始数据文件保存至磁盘留痕。 4) 将原始文件转换成 DAMS 数据交换平台标准数据模型。 5) 操作 DAMS 数据交换平台标准数据模型直接保存成标准文件格式至磁盘。 6) 操作 DAMS 数据交换平台标准数据模型直接根据模型属性入库。 7) 数据接收流程的其他后续操作, 如JMS 通知业务模块数据已就绪。 1111 , , , , 登 录 2222 , , , , 获 取 数 据 3333 , , , , 保 存 原 始 数 据 4444 ,,,, 数 据 格 式 转 换 5555 ,,,, 保 存 标 准 文 件 6666 ,,,, 数 据 入 库 处 理 7777 , , , , 后 续 处 理 流 程 控 制 组 件流 程 定 义 标 准 格 式 转 换 组 件 X M L ,OBJECT, T X T ,EXCEL, DAMS MODEL . . . 日 志 监 控 组 件 多 协 议 通 讯 组 件 F T P 、 H T T P 、 Socket 、 F I X . . . 文 件 组 件 数 据 库 组 件 配 置 组 件 其 他 组 件 图2数据接收 模型图 (二)标准格式转换组件 提供各应用系统的异构报文格式转换功能,支持 TXT、二进制文件(xls 等)、 XML 以及可序列化对象等多种格式的数据和标准数据格式之间的转换。该组件 借鉴了现有的 O/R Mapping 框架的设计思想,实现了标准格式数据与标准对象模 型、数据库之间的转换及操作,为开发者提供一系列的 API,方便开发者进行程 序开发。数据标准对象模型相关类中提供了 modelToStanderFile 方法和 getSQLFromModel 方法,分别用于转换成标准文件以及获得数据标准对象入库 的SQL。 标 准 格 式 转 换 组 件 标 准 数 据 格 式 标 准 对 象 模 型 数 据 库 图3标准格式 转换示意图 标准数据格式需要满足以下几方面要求: � 能够满足多种异构数据格式要求。 � 具有良好的可扩展性。 � 数据格式简洁、易懂,同时能够方便程序处理。 � 为满足数据转换需求,需要该格式能够较容易的映射成对象实 体。 � 满足数据间外键引用问题,及复杂数据关系。 标准文件格式的设计,采用XML形式作为数据存储格式,同时对 XMLXMLXMLXML元 素做如下规范: � 按照规定,将整个 XML 文件划分成三个区域:文件信息区域、 数据区域、引用区域。 � 按照区域类型定义每个区域内的节点元素,以展示每个区域内的 数据。 � 以OR形式进行不同区域的对象映射规则(可参照第三方 OR框 架)。 � 通过配置实现数据间的引用。 标准数据文件节点定义描述如下: � file 文件信息节点: 该节点用来表示该数据文件的相关详细信息,如:文件名称、接口 类型、文件序列号、文件生成日期、文件生成时间、数据类型、数据状 态等等。每个文档中只包含一个 file 节点。 � data 数据内容节点: 该节点用来表示数据区域,同时可指定一些注入标识符、可映射的 对象等;该节点中包含如下节点: � row:表示数据记录,每个 row 节点代表一条交易数据,同时有 唯一标识符。 � col:表示数据记录的属性,同时可以附加属性名称,对应对象 的属性字段,属性类型,应用关系等以满足数据和对象间的转换和数据 引用。 � ref 引用节点 该节点用来表示数据区域需要引用的其他数据,如数据字典等;文 档中可以有多个 ref 节点,每个节点有唯一的标识符。 标准文件样例: 如图所示,该标准文件展示了实际接口开发中的一个较复杂的数据结构,该 标准文件同时描述了三类数据的关系,并描述了各类数据与数据库表的映射关 系。 图4标准文件格式样例 (三)日志及监控组件 该模块采用 AOP技术,定义需要记录日志的数据交换流程环节,并结合日 志模版定义来完成日志的监控工作,为系统监控模块提供了必不可缺的日志数 据。 框架中定义了标准日志模板(log_msg_config.xml),模板定义片段如下: 消息名称:{0},数据接收失败{1},程序提前终止 info true true …… 其中id 用来在客户自定义流程中进行日志种类的匹配;step 与流程中的方 法名匹配,AOP 拦截的也是该名称;msg 为日志打印模板字符序列;Level 对应 log4j 的级别;db 对应日志是否入库;流程则根据 rtn 信息判断是否终止。 图5形象的表示了日志组件的工作原理,首先在拦截配置中配置想要拦截的 流程节点,也就是指定某一类要织入通知的方法;然后当指定方法在 Spring 容 器执行时,该方法会通过 AOP织入器织入程序交换框架所需的日志方法,日志 方法通过上述日志标准模板进行配置;在运行监控节点的前后运行日志方法,从 而记录需要的业务日志。 业 务 流 程 AA A A 业 务 流 程 BB B B 业 务 流 程 CC C C 监 控 节 点 拦 截 节 点 日 志 方 法 LogU tilsLogU tilsLogU tilsLogU tils 日 志 切 面 AOP AOP AOP AOP 织 入 器 拦 截 配 置 日 志 模 板 图5日志监控 模块示意图 (四)通信组件 提供对各种常用协议的支持,如 HTTP/HTTPS,Web Service,Socket,JMS, FTP/SFTP, CICS 调用,IMIX,FIX,报表服务器 GFTS 调用等,适合各种系统以 不同的通信方式、 不同的数据格式接入数据交换框架。同时,框架通信组件提 供良好的扩展能力, 为未来新增的通信协议提供良好的支持。 (五)其他常用组件 除了以上组件外,数据交换框架还提供了一些常用的组件,如数据库处理组 件,用来处理数据库的常用操作以及标准格式数据与数据库之间的映射操作;文 件处理组件,用来处理文件的常用操作等等。 4.4.4.4.数据交换框架在 DAMS2.1 DAMS2.1 DAMS2.1 DAMS2.1 系统中的实际应用 DAMS 数据交换框架项目作为 DAMS2.1 系统的重要组成部分已成功投入运 营,当前接入 DAMS 系统的行内外业务系统共有 18个,数据交换框架满足了 DAMS2.1 系统与外围系统之间的数据交换需要,取得了良好的实践效果。 集 中 版 理 财 系 统 D A M SD A M SD A M SD A M S D A M SD A M SD A M SD A M S 应 用 拆借中心本币交易系统 SUM M ITSUM M ITSUM M ITSUM M IT 系 统 记 账 式 国 债 系 统C O SC O SC O SC O S 系 统 CCCC 3333 信 货 管 理 系 统 黄 金 交 易 管 理 系 统 金 手 指 系 统 个 人 实 物 黄 金 系 统 报 价 引 擎 系 统 托管业务清算管理系统 北方之星数据服务系统 万 德 资 讯 系 统 汤 森 路 透 Dealing Dealing Dealing Dealing 3 0 0 03 0 0 03 0 0 03 0 0 0 系 统 德意志银行交易系统 纸 黄 金 系 统 证 券 交 易 所 系 统 农 行 消 息 服 务 平 台 图 6 基于 DAMS 数据交换框架的系统交互示意 在项目研发过程中,使用 DAMS 数据交换框架提高了开发效率、缩短了系 统建设周期,下面以集中版理财接口的接收流程为例简要介绍一下使用数据交换 框架的开发过程。 集中版理财接口主要采用标准的 TXT 格式报文进行业务数据交换,基于数 据交换的接口应用程序每日从集中版理财系统定时或 JMS 触发下载 9种报文, 存入近 20张不同的库表中。 其中报文结构如下图所示: 图7集中版理财系统报文 第一步,使用 DAMS 数据交换框架进行开发,需要根据需求定制流程,编 写JzblcReceiveAdapter 类继承 GftsReceiveAdapter(流程控制组件提供的基于报 表服务器的适配器)类,如图-8所示定制了标准流程中的 5个step,在各个 step 中都有完善的组件方法提供支持,其他 step 继承标准流程中的默认实现。 第二步,因为该系统数据与 DAMS 标准模型无法进行自动匹配,需要根据 具体业务数据需求进行数据映射的编码。将不同种类的 TXT 报文,与标准格式 数据对应起来。如图-8,dataanalyze 源文件夹下的所有工具类针对报文与标准模 型提供了数据映射的功能,它们是格式转换组件中被代理的实际数据映射对象。 第三步,编写集中版理财接口对外提供接收流程的启动类 (JzblcInterface.java)该类继承 IInterface 类(流程控制组建中提供的默认启动 类),该类调用配置组件进行配置加载,调用流程控制组件更新定制的流程定义, 以及流程控制组件中的 process 方法启动流程。 第四步,完善 JMS 调用、Quartz 调用、异常处理等方法,该数据交换应用 基本开发完成。 数 据 映 射 方 法 流 程 定 制 流 程 配 置 及 入 口 图8集中版理 财接口代码 结构 以上就基于 DAMS 数据交换框架进行实际的业务系统开发做了一些简单的 介绍,可见基于数据交换框架可进行敏捷、高效的开发,同时框架的组件又保证 了业务系统运行时的可靠性与稳定性。 5.5.5.5.结束语 DAMS 数据交换框架的设计与在 DAMS2.1 中的应用实践,为行内其他大型 应用系统的数据交换提供了参考,同时也为进一步研究提出了新的课题。例如特 殊数据协议的处理:银行间市场信息交换协议 IMIX 协议、德意志银行使用的 FIX 协议等,这些协议都需要使用其提供的 API 进行数据处理,如何将这些协议以 更加简洁的形式集成到数据交换框架中是一个研究方向。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档