基于JMS的数据交换既数据互操作平台的解决方案

基于JMS的数据交换既数据互操作平台的方案

1. 引言

1.1. 系统目标

为解决应用系统间数据和信息的互通、互用,建立一个通用的、分布式的数据集成平台,用以解决异构数据平台数据交流和沟通的问题。

数据交换平台,为跨地域、跨部门、跨平台不同应用系统不同数据库之间的互联互通提供包含提取、转换、传输加载等操作的数据整合服务,实现扩展性良好的“松耦合”结构的应用和数据集成;利用数据交换平台,通过分布式部署和集中式管理架构,可以有效解决各节点之间数据的及时、高效地上传下达,在安全、方便、快捷、顺畅的进行信息交换的同时,精准的保证数据的一致性和准确性,实现数据的一次采集、多系统共享;基于数据交换节点服务器适配器的可视化配置功能,可以有效解决数据交换平台相关问题,快速实现不同机构、不同应用系统、不同数据库之间基于不同传输协议的数据交换与信息共享,为各种应用和决策支持提供良好的数据环境。

1.2. 使用人群

专业的系统集成工程师、管理员。

1.3. 技术规范

主要开发语言为java,基于JMS消息进行数据交换,JMS服务器在开发阶段的ActiveMQ,要求系统能够兼容市场上符合JMS标准的其他MQ商业服务器。消息持久化数据库采用Oracle并支持其他数据库如:MySQL。辅助的开发语言为数据库触发器,支持主流数据库,包括:Oracle,MySQL以及SQL SERVER。管理和配置程序部署在TOMCAT服务上。

2. 系统结构

系统分为前端接口代理、消息服务以及消息封转服务三个层次,分别完成数据采集与发布、数据传输与持久化以及数据分拣转换和封装。

前端接口和代理:提供Socket Service和Web Service两类接口完成数据的接受和查询。数据交换代理提供数据库中间表和交换文件两种数据交换方式。

消息服务:消息服务主要负责基于JMS消息的传输和持久化。后台采用两台MQ服务器分别处理数据的接收和发布。并对数据进行持久化操作,防止消息数据的丢失。

消息封转服务:负责根据JMS消息主题队消息进行分拣,交由专门的封转服务处理。封转服务根据配置文件对消息的数据进行转换,增补以及修改后进行封装,发送到订阅者系统。

3. 功能需求

3.1. 设计原则

数据交换平台应遵循以下几个基本设计原则:

l 不影响现有或其它相关信息系统的使用和信息安全。 

l 采用先进成熟、稳定的技术和软硬件平台。 

l 坚持开放性,易于技术更新。 

l 采用国际通用标准,便于和国际接轨,易于系统扩展及升级。 

建立一个坚实的系统应用平台,便于系统的管理和维护,技术易于更新,网络及业务规模可以逐步扩展。统一规划,分步实施。

3.2. 总体要求

通过“数据交换平台”,方便管理,使各个应用系统业务逻辑清晰。通过交换系统,实现内外网应用系统之间和内网内部应用系统的数据交换,使得系统维护的工作量降低。 

安全性:要求数据在传输过程中安全完整。

可授权:对消息主题进行授权,敏感消息的发布和订阅需要授权。 

可配置:具体实现应抽象成动作和对象,对象及其属性是可定义的。 

可管理:功能的实现是可调度的。 

可监控:可实时查看各种功能实现的过程信息和最终结果。 

可扩展:通过配置支持更多业务部门与交换系统的数据共享。

高性能:对服务器的压力始终保持在一个可接受的负荷状态,日常的应用不会造成平台的崩溃或处理延迟。

3.3. 功能要求

l 及时交换:一旦有数据发送请求,应及时发送到指定目的地。 

l 接口简单:支撑交换平台的消息传输中间件系统要具有简单的接口,业务系统能够以较方便的使用接口接入到交换平台,便于系统的实施、维护和扩充。 

l 安全可靠的传输:保证接收者能正确收到数据,保证数据不被窃取和篡改。 

l 高可靠性和高性能:系统具有高性能和高可靠性,能够满足大规模数据传输要求。 

l 支持可定义的数据交换和转换:支持图形化的数据交换和转换逻辑配置。

l 支持消息的查询统计以及修改重发功能。 

l 支持新的“参与方”加入到交换平台。新的“参与方”的加入,对交换平台的结构不需要调整,原来接入到交换平台的系统能够正常运行。

3.4. 交换方法

数据交换平台的数据采集和发布支持三种方式:系统接口对接,数据库中间表,交换文件。

系统接口对接:要求参与数据交换的子系统根据数据交换平台提供的开发接口进行程序编写。适用于新建系统或者有能力对系统进行改造的情况。

数据库中间表:在参与数据交换的子系统数据库中建立中间表,通过触发器将数据变化反映在中间表中,数据交换平台的交换代理程序对中间表进行监控,将数据变化提交到数据交换平台接口。适用于老系统或者不能修改程序代码的情况。

交换文件:参与数据交换的子系统将交换信息写入到本地文件中,数据交换平台的交换代理程序对文件进行监控,将数据比那话提交到数据交换平台接口。适用于无法提供数据库中间表的情况。

3.5. 数据交换代理

3.5.1.1. 概述

数据交换平台的主要交换方法是业务子系统按照数据交换平台的对外服务接口进行程序开发来,数据交换代理的主要作用是

3.5.1.2. 数据库型代理

数据库型代理直接操作业务系统数据库,建立数据异动表,通过触发器将变动数据插入到数据移动表中。然后由代理程序进行论扫处理。

3.5.1.3. 文件型代理

3.6. 数据交换服务

3.6.1.1. 概述

3.6.1.2. 消息分拣

3.6.1.3. 消息转换

3.6.1.4. 消息封装

3.7. 对外服务接口

3.7.1.1. 概述

业务系统无论是提交信息还是需要从数据交换平台获取数据,都需要通过服务接口来实现。使用Scoket Service接口可以发送和接收数据,使用Web Service可以发送数据和查询有没有自己订阅的数据。

3.7.1.2. Socket Service

3.7.1.3. Web Service

4. 性能需求

数据交换平台数据处理能力不小于200条/秒。

WEB管理页面操作常网络情况下最大时间不大于6秒,平均时间不大于3秒

5.  应用场景描述

收费系统将应收、实收数据发送至数据交换平台,数据交换平台对此数据消息进行权限确认后转换处理。转换完成后根据消息主题加载此消息订阅列表,将消息发送到订阅此消息的宿管系统和教务系统。其中教务系统采用数据交换代理程序直接将数据放到数据库中。宿管系统通过接口接受数据。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hotqin888的专栏

MeritMS与Bentley Project Wise对比校审流程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

21810
来自专栏Netkiller

消息队列在使用中的注意事项

消息队列在使用中的注意事项 异步不是万能的,实现异步重要的手段,消息队列在使用中也是有很多注意事项的。 消息队列的瓶颈 消息队列至少有三处容易出现瓶颈,我们一经...

35950
来自专栏搜云库

保证分布式系统数据一致性的6种方案

在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要...

2.3K80
来自专栏架构师之路

小小的IP,大大的耦合,你痛过吗?

什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,...

47660
来自专栏Spark学习技巧

HBase高可用集群运维实践

随着越来越多的业务选择HBase作为存储引擎,对HBase的可用性要求也越来越高,对于HBase的运维也提出了新的挑战。目前运维集群超过30+,而且接入的业务类...

48650

API-First,Kubernetes上微服务的一种方法

对那些曾经使用更传统方式构建应用的开发者来说,转向容器化微服务不是一个容易的转变。当开发者设计分布式应用时,微服务应用也正是分布式的,其中有许多新的概念和细节需...

45640
来自专栏Python研发

用pycharm提交代码,冲突之后文件丢失找回方法

1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pycharm有一个文件历史记忆...

9440
来自专栏CSDN技术头条

携程开源Redis多数据中心解决方案XPipe

Redis在携程内部得到了广泛的使用,根据客户端数据统计,整个携程全部Redis的读写请求在每秒200W,其中写请求约每秒10W,很多业务甚至会将Redis当成...

47790
来自专栏匠心独运的博客

过来人的经验,谈谈一致性处理方案—分布式事务(DTS)

传统事务是使用数据库自身的事务属性(ACID),而数据库自身的事务属性是局限于当前实例,不能实现跨库。而对于大型分布式/微服务集群系统中,不仅存在着跨库的事务,...

47540
来自专栏架构师之路

58怎么玩数据库架构(upyun架构与运维大会速记)

大家好,我是58沈剑,今天我分享的主题是《58怎么玩数据库架构》,我的PPT页数非常少,讨论的问题非常的聚焦。 一、数据库的基本概念 基本概念就一页PPT,让大...

43690

扫码关注云+社区

领取腾讯云代金券