CN105656952A - 应用级可靠的数据交换平台 - Google Patents

应用级可靠的数据交换平台 Download PDF

Info

Publication number
CN105656952A
CN105656952A CN201410630784.6A CN201410630784A CN105656952A CN 105656952 A CN105656952 A CN 105656952A CN 201410630784 A CN201410630784 A CN 201410630784A CN 105656952 A CN105656952 A CN 105656952A
Authority
CN
China
Prior art keywords
data
module
transmission
service
exchange
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410630784.6A
Other languages
English (en)
Inventor
田鹏
马静
应亦彬
刘百祥
吴庆杰
田凤祥
田骊
毛瑞雪
孙宇
潘孝楠
徐璡晶
孙湛
吴玫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410630784.6A priority Critical patent/CN105656952A/zh
Publication of CN105656952A publication Critical patent/CN105656952A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出应用级可靠的数据交换平台,该系统包括有四部分:交换中心、传输层、交换服务层、交换接口层,交换服务层包含有数据传输模块、接收服务模块、发送服务模块、数据转化服务模块、数据映射模块、转换节点安全控制模块,该系统改进传统的数据交换平台在企业集成项目中的实施效果,本应用级可靠的数据交换平台从数据传输的应用级可靠性角度提出了可靠数据传输协议,可靠数据传输协议保证了数据从发送端到接收端处理完毕的可靠性,做到数据正常情况下100%到且仅到一次,不会出现数据重传现象,异常情况下智能处理和异常状况的可追踪,从而避免了消息无故丢失的现象。

Description

应用级可靠的数据交换平台
技术领域
本发明涉及应用级可靠的数据交换平台。
背景技术
数据交换平台在企业/政府在信息化的建设上已投入多年,这么多年的信息化建设造就了各企业/政府均拥有了多套提供不同功能的系统,在系统应用的初期,企业/政府的效率借助电脑化的运转得到了明显的提升,但随着系统应用的深入,各套系统产生的数据越来越多,此时出现了如下现象:
1、同样的数据在各套系统中出现、维护:
在多套系统中不断出现重复的数据,例如人员的基本信息出现在各套系统中,系统应用人员不得不在各套系统中重复的录入和维护这些基本信息。
2、系统应用人员要在各套系统中切换来获取数据:
当系统应用人员需要获取其他系统中的数据时,不得不登录到其他系统中,查询到相关数据,人工提取其中的部分数据录入到需要用这些数据的系统中。
3、只能手工来综合各套系统中的数据进行分析和统计:
当需要获取几套系统的数据进行统计分析时,只能在各套系统中先查找出相关的数据,最后手工的来进行统计和分析。
在这样的现象下,在企业和政府的日常运转时出现了不少重复性的工作,大量的数据分散在各套系统中,形成了“信息孤岛”。
在数据越来越多的情况下,信息整合的需求显得越来越为迫切,企业/政府希望多套系统的数据能够联系在一起,并可以共享,以提升企业的/政府的运转效率,业界各家厂商对于这种现象开始提供各种各样的企业应用集成的产品。
在进行信息整合的实现过程中,通常的实现步骤是:
实现数据的整合,打通各套系统之间的数据通道;
实现业务的整合,打通各套系统之间的业务处理;
实现系统的整合,实现统一的门户;
在这样一个漫长的三步过程中,数据交换平台产品承担了第一步的重任,毕竟只有在第一步完成的情况下才能继续后续的步骤,而这也正是数据交换平台产品所需承担的重责,为了实现数据的整合,数据交换平台产品需提供如下功能:
数据的可靠传输:
数据需可靠的从系统A传输到系统B或多个其他系统中,不论传输过程中出现应用处理的异常还是网络异常、断电异常等状况,应做到尽可能的完成数据的传输,对于极端出现的异常则应准确无误、清晰的告诉使用者数据传输在哪一步出现了异常,是什么异常,以及应如何进行处理。
数据传输作为一个频繁进行的过程,需要做到高效的完成。
各种应用在进行数据传输时会需要在传输的过程中进行一些业务的处理,这就要求了数据传输的过程需要支持可定制化。
数据的灵活转换:
当数据从系统A传输到系统B或多个其他系统后,通常需要将数据进行转换才能进入系统B或多个其他系统中,这个转换过程中包括各种各样的需求,有直接插入系统B的数据库的需求、有调用系统B提供的接口的需求等,这些在数据交换平台上都需要给予支持。
基于数据整合的服务:
在实现了数据的整合后,需要基于这些整合的数据生成新的报表、提供决策支持、提供数据查询服务、开发新的应用的服务等,使得数据的整合发挥出极大的效用。
所以要满足以下需求:
1、数据上报的高效和稳定:
于二代证的制作信息有出现阶段性高峰的现象,系统必须能保证在高峰期仍然完成数据的及时上报,在数据上报的过程中,对于有异常状况导致上传未成功的数据都要給予明确的提醒,以便人工进行修复。
2、数据的实时交换:
数据的实时交换要求提供高效的数据传输和处理的支撑。
3、客户可自行维护数据上报和交换的规则:
数据的上报和交换规则随着系统的运行会出现改变,因此客户要求后续可自行的进行上报和交换规则的维护。
对这些需求进行抽象,可以归纳为需要提供数据移植、数据定时交换以及实时交换的支持,并且要求做到可视化的简易维护。
4、数据移植:
需提供可视化的工具来配置将数据从一个或多个数据源提取,进行自定义规则的数据转换,最终写入一个或多个目标数据源中。
移植的数据量通常都会比较的大,因此要求工具能自动的进行数据的分块读取、并行转换和分块写入,保证数据移植的高效。
同时为了保证数据移植过程中数据的一致性,要求工具能够对移植失败的数据进行提醒,以人工进行规则的调整或手工修复。
5、数据定时交换:
需提供可视化的工具来配置定时将数据从一个或多个数据源提取,进行自定义规则的数据转换,并将形成的标准格式的数据文件传到远程的一个或多个目的地,目的地在接收到数据文件后根据配置的转换规则进行转换,并持久到一个或多个数据源中。
定时交换的数据量会比较的大,因此要求在传输过程中能做到自动的分块传输。
对于数据的传输而言,最高的要求在于数据传输的可靠性,要保证数据在正常情况下100%的到且仅到一次,在异常情况下能有自动重试、通知等策略,对于重试失败的数据传输应有明确的错误信息的说明。
数据实时交换和定时交换不同的地方在于需要支持触发时的执行数据的转换和传输。
根据这样的分析,在此项目中,需要提供一套这样的数据交换平台来实现需求。
可视化的数据转换工具,支持多种数据转换的规则以及自定义规则,高效、稳定的完成数据的转换。
数据传输平台,支持多种触发策略,与数据转换工具无缝集成,并保证数据传输的高度可靠性以及高效,同时提供对于传输中节点管理和监控的支持。
根据这样的分析,本发明所阐述的应用级可靠的数据交换平台需要提供如下功能的支撑。
提供可视化的工具来配置将数据从一个或多个数据源提取,进行自定义规则的数据转换,最终写入一个或多个目标数据源中。
工具根据移植的数据量的大小自动进行数据的分段提取、并行转换和分段持久,以保证数据移植高效完成。
提供可视化的工具来配置交换执行的策略,包括触发策略和定时策略,在策略触发后将数据从一个或多个数据源提取,进行自定义规则的数据转换,并将形成的标准格式的数据文件传到远程的一个或多个目的地,目的地在接收到数据文件后根据配置的转换规则进行转换,并持久到一个或多个数据源中。
传输的过程中需根据数据量的大小自动的进行分段和压缩传输,同时接收时需检查数据的完整性,以保证数据传输的高效性和稳定性。
最为重要的是在数据的传输过程中必须保证数据传输应用级的可靠,含义是:
正常情况下数据100%的到达并且应用处理完毕;
异常情况下,如断电、网络断开等情况下,具备自动恢复、重试等策略,以保证数据在一定的时间范围内碰到异常仍然是可成功发送和处理的;
对于超出时间范围还是没有发送成功的数据,需要提供准确的数据发送失败原因的描述。
综上所述,特别需要应用级可靠的数据交换平台,以解决现有技术的不足。
发明内容
本发明的目的是提供应用级可靠的数据交换平台,是承担了从一个或多个数据源中提取数据,转换为标准格式的数据文件,并将数据可靠的传输到一个或多个目的地,目的地再将数据进行转换以及相应的业务处理的过程。
本发明为解决其技术问题所采用的技术方案是:
应用级可靠的数据交换平台,该系统包括有四部分:交换中心、传输层、交换服务层、交换接口层,交换服务层包含有数据传输模块、接收服务模块、发送服务模块、数据转化服务模块、数据映射模块、转换节点安全控制模块;
交换中心是负责数据的路由、存储以及对交换节点的管理;
传输层是负责数据的传输,支持多种传输方式,包含通过MOM产品、基于SOAP协议、HTTP协议等来实现数据的传输;
交换服务层为数据交换平台提供的所有功能的服务,外部的功能都基于这些服务来实现,例如数据压缩并不是所有数据都需要的,可以根据一定的规则配置,从而在运行时根据规则选择相应的服务进行数据的发送和接收;
接口层是提供给应用进行使用,包括有数据服务框架、数据映射工具和接口状态服务;
数据服务框架提供给应用基于整合的数据进行其他应用的开发,包含报表应用、决策支持应用等;
数据映射工具提供给应用通过可视化的工具来配置数据的转换规则,从而实现数据从数据源转换到标准格式的数据文件以及将标准格式的数据文件写入数据源;
接口状态服务提供给应用来监控目前交换平台对外提供的接口的运行状况,以便判断数据交换平台的运行状况。
进一步,所述的数据传输模块基于MQ的数据传输模块的实现,数据传输模块承担的职责是数据的发送和接收,数据的发送负责调用MQ将数据流发送给指定的一个或多个目的地,点对点数据传输的可靠性交由MQ来保证,这块交换平台不做可靠性的保证的策略,数据的接收负责接收MQ收到的数据,并转为调用接收服务模块来完成接收的处理。
进一步,所述的接收服务模块负责处理接收到的数据,并要求做到整个数据的接收流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在接收流程步骤方面,数据交换平台需提供保存接收到的数据文件到指定目录、执行数据转换、数据解密以及数据解压四种步骤的支持。
进一步,所述发送服务模块负责发送数据,并要求做到整个数据的发送流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在发送流程步骤方面,数据交换平台需提供定时执行、触发执行、数据发送、压缩、加密、路由、执行数据转换以及扫描目录八种步骤的支持;
发送服务模块对外提供发送流程服务,需要进行发送数据的应用只需配置相应的流程步骤即可。
进一步,所述的数据转换服务模块承担了数据转换的实现,数据转换上要求做到提供多种规则的数据转换的实现,并允许应用根据需求自行编写相应的转换规则;
在数据转换规则上,要求交换平台提供数据合并、数据拆分、数据类型转换的规则的实现。
进一步,所述的数据映射模块为提供给客户使用的可视化的工具,在工具中客户可完成数据提取、转换和写入的配置;
数据提取要求支持多种数据源,其中包括分隔符类型的文件、数据库、Excel三种数据源方式,客户通过配置所需使用的数据源,在数据转换中就可相应的选择配置的数据源,并提取其中的数据;
数据转换要求支持多种数据转换规则的配置,并支持自定义数据转换规则的编写;
数据写入要求支持多种数据源,包括分隔符类型的文件、数据库、FTP、Excel等,客户通过配置需写入的数据源,在数据转换中就可相应的配置将数据写入对应的数据源中。
进一步,所述的转换节点安全控制模块是基于RBAC实现交换节点安全控制,交换节点的安全控制模块要求交换中心增加对交换节点权限的配置模块,同时要求交换节点具备动态加载模块的能力,以及每个模块需要根据权限的配置进行相应的权限控制的能力;
在交换节点动态加载模块的设计上,采用微内核的方式,由微内核加载所接收到的交换节点模块,并同时管理这些模块的生命周期;
在模块的权限控制上,采用RBAC模型进行实现,以让各个模块能够根据角色、权限模型来判断当前用户是否具备操作模块的权限。
本发明的优点在于,该系统改进传统的数据交换平台在企业集成项目中的实施效果,本应用级可靠的数据交换平台从数据传输的应用级可靠性角度提出了可靠数据传输协议,可靠数据传输协议保证了数据从发送端到接收端处理完毕的可靠性,做到数据正常情况下100%到且仅到一次,不会出现数据重传现象,异常情况下智能处理和异常状况的可追踪,从而避免了消息无故丢失的现象,在本发明中,从平台级角度宏观的考虑了数据交换平台的功能,结合需求以及失败的数据交换和整合项目的案例提出了需改善的部分,并针对这些部分自主设计和实现了解决方案,在技术上选择了JavaEE开发平台、ActiveMQ、OSGi和RCP来进行实现,选择JavaEE开发平台使得系统具备了跨平台运行的能力,并且基于JavaEE开发平台完善的企业应用级的支持更好的为企业应用需求提供支持;选择ActiveMQ保障了数据可靠的完成点对点的传输,同时降低了系统的经济成本;选择OSGi使得此款数据交换平台在模块化、动态化上较之传统的产品更为优秀,同时提升了对于数据交换节点的可管理和可控制的能力;选择RCP使得此款数据交换平台在数据转换上提供了可视化的使用能力,同时它的跨平台能力也让可视化的数据转换工具得以在各种平台上运行,方便用户的使用。同时本发明还提出了基于微内核的节点实现,使得节点的管理、监控都可在中心进行,增强了交换中心的管理能力,操作性能上更加优化,设计新颖,是一项很好的设计方案,利于在大学校园中使用,而且感观性能优。
附图说明
下面结合附图和具体实施方式来详细说明本发明:
图1是本发明的总体设计框图;
图2是本发明的基于MQ实现的数据传输模块时序图;
图3是本发明的基于MQ实现的数据传输模块类图;
图4是本发明的接收服务模块时序图;
图5是本发明的接收服务模块类图;
图6是本发明的发送服务模块时序图;
图7是本发明的发送服务模块类图;
图8是本发明的数据转换服务模块时序图;
图9是本发明的数据转换服务模块类图;
图10是本发明的数据映射工具时序图;
图11是本发明分的数据映射类图;
图12是本发明交换中心配置节点的模块以及安全控制的流程图;
图13是本发明交换节点加载中心所分配的模块过程图;
图14是本发明节点控制用户操作模块的权限图;
图15是本发明的节点安全控制类图;
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明。
总体设计分析:
将数据移植和交换进行再次抽象,其过程可归纳为同样的过程,即:按照某种策略触发数据的交换,这样数据移植和交换的需求就可以在数据交换平台上统一来实现了。
数据交换平台简单来说,就是承担了从一个或多个数据源中提取数据,转换为标准格式的数据文件,并将数据可靠的传输到一个或多个目的地,目的地再将数据进行转换以及相应的业务处理的过程。
根据这样的描述,可以看出其中最重要的是三个部分。
数据的转换:
数据的转换依赖数据映射工具或ETL来完成,承担的职责是从多种不同的数据源中读取数据,支持多种转换规则以及自定义规则,从而将数据转换为标准格式的数据文件或写入多个数据源中。
在数据转换中最重要的一点就是保证转换的可靠,即在出错的情况下允许定义各种处理策略,出错后允许手工的纠错并继续执行,在转入完毕后如发现严重的错误允许对上次的操作进行回滚。
因此在本发明中所阐述的数据交换平台对此提出了容错、纠错和回滚的支持。
容错
允许对可能出现的各种错误定义不同的处理策略,例如在出错后记录到日志、出错后终止执行、出错后智能纠错、出错后等待手工纠错等策略。
具备了这样的机制可以把运行期的错误降低到最小。
纠错
提供智能纠错和手工纠错两种策略,智能纠错策略为对于例如字段过长这样的错误进行智能化的处理;手工纠错策略则将在运行出错后返回至控制台,并提供详细的错误数据的信息,允许直接进行修改,修改完毕后可继续运行。
回滚
支持将前一次运行的转换过程的结果进行回滚,避免由于数据转换造成数据的错乱。
在性能上要求快速的完成不同数据源、不同数据量的快速读取、转换和写入,针对这个要求,本发明中所阐述的数据交换平台采取了语句自动优化、分表、中间表、内存表、并行运行转换规则和分段写入策略来提升数据转换的效率。
根据这样的分析,要实现数据的转换,数据交换平台应提供数据转换工具、数据转换容错机制以及数据转换性能优化机制。
数据的传输
数据的传输是数据交换平台中最为重要、最为复杂和要求最高的部分,数据的传输需要做到可靠、高效和安全,可靠意味着数据需要100%的到达目的地,并做到到且仅到一次,在数据发送超时的情况下应能准确的判断数据超时的原因;高效意味着在高并发、大数据量的情况仍然要保证数据高效的传输;安全意味着数据的整个传输过程需要是安全的,避免数据被拦截后出现泄露的事故。
要做到数据传输的可靠,需要依赖之前在解决方案中提出的应用级可靠的数据传输过程。
要做到数据传输的高效,需要具备根据网络环境智能的判断数据是否需要分片和压缩,同时需要依赖高效的MQ工具。
要做到数据传输的安全,需要对传输的数据进行一系列的安全保护措施,包括数据的加密、签名和数据传输节点的安全控制。
根据这样的分析,要实现数据的传输,数据交换平台应提供可靠数据传输协议的实现、数据的分片、数据的压缩、数据的加密、签名、节点的监控以及节点的安全控制机制。
传输和转换的集成
传输和转换集成后可以让产品变成一个平台级的产品,具备完整的数据交换和整合的解决能力。
在传输和转换的集成中,最重要的是执行转换的策略,对于数据发送者而言就是指定时、闲时还是外部程序触发的方法来执行数据的转换;对于数据接收者而言就是指如何调用数据转换,并保证数据转换可靠的完成。
根据这样的分析,要实现传输和转换的集成,数据交换平台应提供转换策略的配置、常用的执行策略的实现。
在实现数据交换平台产品时,还需从可维护性以及扩展性上进行考虑,可维护性意味着应对产品进行分层,将不同职责的模块进行分层,以便能够保证模块的职责单一和清晰;可扩展性意味着需要给产品留好各种各样的扩展点,以便项目或应用能够根据需求进行定制性的扩展。
参见图1,该系统包括有四部分:交换中心、传输层、交换服务层、交换接口层,交换服务层包含有数据传输模块、接收服务模块、发送服务模块、数据转化服务模块、数据映射模块、转换节点安全控制模块;
交换中心是负责数据的路由、存储以及对交换节点的管理;
传输层是负责数据的传输,支持多种传输方式,包含通过MOM产品、基于SOAP协议、HTTP协议等来实现数据的传输;
交换服务层为数据交换平台提供的所有功能的服务,外部的功能都基于这些服务来实现,例如数据压缩并不是所有数据都需要的,可以根据一定的规则配置,从而在运行时根据规则选择相应的服务进行数据的发送和接收;
接口层是提供给应用进行使用,包括有数据服务框架、数据映射工具和接口状态服务;
数据服务框架提供给应用基于整合的数据进行其他应用的开发,包含报表应用、决策支持应用等;
数据映射工具提供给应用通过可视化的工具来配置数据的转换规则,从而实现数据从数据源转换到标准格式的数据文件以及将标准格式的数据文件写入数据源;
接口状态服务提供给应用来监控目前交换平台对外提供的接口的运行状况,以便判断数据交换平台的运行状况。
进一步,所述的数据传输模块基于MQ的数据传输模块的实现,数据传输模块承担的职责是数据的发送和接收,数据的发送负责调用MQ将数据流发送给指定的一个或多个目的地,点对点数据传输的可靠性交由MQ来保证,这块交换平台不做可靠性的保证的策略,数据的接收负责接收MQ收到的数据,并转为调用接收服务模块来完成接收的处理。
基于MQ的设计分析
根据模块的描述,可以看出此模块只是对发送数据和接收数据接口进行封装,以便后期可实现基于其他的方式来发送数据,如FTP等。
在发送动作和接收动作的实现上通过调用MQ的接口进行实现,在调用时基于标准的JMS接口进行调用,以便交换平台可支持MQ的切换。
数据传输模块详细设计
模块实现的时序图如图2:
数据传输对外提供发送数据流接口,在发送数据流时数据传输模块调用MQ接口完成。
同时自行注册Listener到MQAPI,当MQ接收到数据后通知此Listener。类图如图3所示。
进一步,所述的接收服务模块负责处理接收到的数据,并要求做到整个数据的接收流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在接收流程步骤方面,数据交换平台需提供保存接收到的数据文件到指定目录、执行数据转换、数据解密以及数据解压四种步骤的支持。
基于pipeline的设计分析:
整个接收流程是串行化的数据处理的过程,非常适合采用Pipeline模式进行实现。
Pipeline模式在分布式框架中经常可以看到,应用该模式可以使框架具有良好的灵活性。当我们需要构建一个系统用于处理并转换一串输入数据时,如果通过一个大的组件按部就班的来实现此功能,那么一旦需求发生变化,比如其中的两个处理步骤需要调换次序,或者需要加入或减去某些处理,系统将很难适应,甚至需要重写。而Pipeline模式则将一个个的处理模块相互分离,各自独立,然后按照需要将它们串联起来即可,此时前者的输出就会作为后者的输入。此时,每个处理模块都可以获得最大限度的复用。当需求发生变化时,我们只需重新组织各个处理模块的链接顺序,或者删除或加入新的处理模块即可。
数据接收流程的所有步骤都实现DataReceiveStep接口,并在配置文件中组装这些DataReceiveStep的实现类,数据发送流程负责加载相应的配置文件,进行解析并按照配置中的步骤基于Pipeline方式进行数据的发送。
接收服务模块详细设计:
模块实现的时序图如图4所示:
当MQ接收到数据时,通知数据传输模块,数据传输模块调用数据接收流程管理类对数据进行处理,数据接收流程管理类首先寻找此数据对应的接收流程,调用数据接收流程配置文件解析类解析流程并形成pipeline,最后调用pipeline进行执行。类图如图5所示。
数据接收流程管理类对外提供接收服务模块的唯一接口,此类负责调度数据的整个接收处理的过程,其依赖于数据接收流程配置文件解析类和数据接收流程步骤来完成。
数据接收流程配置文件解析类负责解析流程配置文件,并生成数据接收流程对象集合,配置文件采用XML格式进行编写,解析时采用dom4j完成。
数据接收流程对象为实体对象类,负责存储数据接收流程步骤对象,以便流程管理类进行调度。
数据接收流程步骤接口定义了数据接收流程步骤的处理方式,接口定义如下:
接口数据接收流程步骤{
返回对象执行(传入对象)抛出异常;
}
保存数据文件步骤负责将接收到的数据保存到指定的目录中,实现方法为将传入的对象直接序列化后进行存储。
数据解密步骤负责将数据进行解密,解密时首先将文件进行base64反编码,然后做DES解密。
数据解压步骤负责将数据进行解压,基于标准的zip解压实现。
执行数据转换步骤负责调用数据转换工具执行相应的数据转换过程。
在使用时,用户只需将配置文件放入数据交换平台指定的目录,或上传到数据交换平台,就完成了数据接收的配置,配置文件示意如下:
进一步,所述发送服务模块负责发送数据,并要求做到整个数据的发送流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在发送流程步骤方面,数据交换平台需提供定时执行、触发执行、数据发送、压缩、加密、路由、执行数据转换以及扫描目录八种步骤的支持;
发送服务模块对外提供发送流程服务,需要进行发送数据的应用只需配置相应的流程步骤即可。
基于pipeline的设计分析
发送流程和接收流程的需求是一样的,只是在步骤上有不同支持的需求,因此实现的方式也采用Pipeline模式,通过DataSendStep接口来定义数据发送的步骤,步骤的组装上采取和接收流程相同的配置文件的方式。
发送服务模块详细设计:
数据发送流程的时序图如图6所示:
数据发送流程管理类在系统启动时就跟随启动,启动后它首先扫描目录下的所有发送流程的配置文件,并调用数据发送流程配置文件解析类进行解析,形成发送流程的pipeline,随后就调用pipeline启动整个流程。数据发送流程的类图如图7所示。
数据发送流程管理类负责对外提供管理接口,以控制数据发送流程的运行和停止,数据发送流程管理类调度整个发送过程,依赖流程配置文件解析类和数据发送流程步骤完成整个数据发送流程。
数据发送流程配置文件解析类负责解析流程配置文件,并生成数据发送流程对象集合,配置文件采用XML格式进行编写,解析时采用dom4j完成。
数据发送流程对象为实体对象类,负责存储数据发送流程步骤对象,以便流程管理类进行调度。
数据发送流程步骤的接口定义如下:
接口数据发送流程步骤{
返回对象执行(传入对象)抛出异常;
}
发送步骤将数据发送至指定的目的地,此步骤通过调用数据传输模块来实现。
定时执行步骤负责定时执行发送流程,此步骤通过SchedulerThreadPoolExecutor实现。
触发执行步骤负责对外提供提供触发接口,例如webservice方式、jndi方式,应用程序通过访问相应的webservice或jndi来触发执行。
扫描目录步骤负责扫描指定的目录,在发现有新文件时进行发送,实现上通过定时扫描目录,并根据文件的最后修改时间来判断是否有未发送的文件,如有则返回这些文件的数据流。
数据加密步骤负责对数据进行加密,加密过程首先对数据进行base64编码,然后进行DES加密。
数据压缩步骤负责对数据进行压缩,压缩方法采用标准的zip压缩。
路由步骤负责决定数据发送的目的地,例如在节点端数据发送的目的地始终都是交换中心,交换中心则根据数据文件头信息中的目的地发送给实际的目的地。
调用转换工具步骤负责调用数据转换工具执行相应的数据转换过程。
在使用时,用户只需将配置文件放入数据交换平台指定的目录,或上传到数据交换平台,就完成了数据发送的配置,配置文件示意如下:
进一步,所述的数据转换服务模块承担了数据转换的实现,数据转换上要求做到提供多种规则的数据转换的实现,并允许应用根据需求自行编写相应的转换规则;
在数据转换规则上,要求交换平台提供数据合并、数据拆分、数据类型转换的规则的实现。
基于模板和程序语言的设计分析:
数据转换的过程是一个将数据传入,然后进行一定逻辑处理的过程,为了能够更灵活的支持外部的扩展,在执行数据转换时采用模板语言+程序语言的方式来实现,模板负责定义数据处理的过程,程序语言负责实现复杂的数据逻辑处理,模板语言上选择FreeMarker进行实现,程序语言选择Java进行实现。
采用这样的方式实现后,对于复杂的数据逻辑处理,客户可通过编写Java来提供相应的处理类,在FreeMarker中调用相应的java类对数据进行处理即可,例如:$Loader.loadClass(“包名.处理类名”).process($人.名字,$人.身份证号)。
数据转换服务模块详细设计:
模块实现的时序图如图8所示:
FreeMarker模板类在解析到$Loader标签时,调用转换规则加载类加载相应的转换规则类,进行执行,最终将处理完毕后的数据返回,类图如图9所示。
转换规则加载类根据传入的参数加载相应的类,并转换成转换规则类对象实例,调用进行处理。
转换规则类定义了转换数据的接口,该接口定义如下:
接口转换规则{
返回对象转换(参数…)抛出异常;
}
数据合并规则负责将传入的数据进行合并,合并的方式有两种,一是字符串合并,另一种是数据相加,基于java直接将传入的参数相加即可,由java完成自动的类型转换。
数据类型转换规则负责将传入的数据转换为指定的类型。
数据拆分规则负责将传入的数据以正则表达式的规则进行拆分,并将拆分完毕后的数据以数组的方式返回,基于Java的正则表达式机制进行实现。
进一步,所述的数据映射模块为提供给客户使用的可视化的工具,在工具中客户可完成数据提取、转换和写入的配置;
数据提取要求支持多种数据源,其中包括分隔符类型的文件、数据库、Excel三种数据源方式,客户通过配置所需使用的数据源,在数据转换中就可相应的选择配置的数据源,并提取其中的数据;
数据转换要求支持多种数据转换规则的配置,并支持自定义数据转换规则的编写;
数据写入要求支持多种数据源,包括分隔符类型的文件、数据库、FTP、Excel等,客户通过配置需写入的数据源,在数据转换中就可相应的配置将数据写入对应的数据源中。
基于EclipseRCP的设计分析
EclipseRCP提供了丰富的界面控件,这使得基于Java开发桌面应用也变得容易了很多,EclipseRCP为应用程序开发人员提供了:
应用程序和特性的一致且本地的外观。
公共应用程序服务,例如窗口管理、更新管理、帮助和选择管理。
本地的外观,利用Windows、MacOSX、Linux、Solaris、HP-UX、AIX和嵌入式设备上的实际平台窗口部件。
标准化的组件模型;
普及的可扩展性;
整合的更新机制;
顶级开发工具(Eclipse软件开发包(SDK)是世界级的软件开发环境)。
EclipseRCP项目用SWT图形库和工具包取代了Java标准中的AWT和Swing。SWT直接调用了操作系统的图形库,从而使得Java应用程序的LOOK&Feel与操作系统的习惯完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了基于SWT的Java应用程序的运行速度。
EclipseRCP分为五个部分:
(1)Wrokbench工作台;
为Eclipse提供用户界面。它是使用SWT(StandardWidgetToolkit)和一个更高级的API(JFace)来构建的;SWT是Java的Swing/AWTGUIAPI的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。
(2)Workspace工作区;
工作区是负责管理用户资源的插件。它包括用户创建的项目、项目中的文件,以及文件变更和其它资源。工作区还负责通知其它插件关于资源变更的信息,比如文件创建、删除或者变更。
(3)Help帮助系统;
帮助组建具有与Eclipse平台本身相当的可扩展能力。与插件向Eclipse添加功能相同,帮助提供一个附加的导航结构,允许工具以HTML文件的形式添加文档。
(4)Team团队支持系统;
团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所有使用的任何版本控制系统交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。
(5)PlatformRuntime运行平台;
平台运行库是整个Eclipse的内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要某个插件的时候才加载该插件。除了内核外,其它每样东西都是作为插件来实现的。
数据映射工具为可视化工具,基于EclipseRCP进行实现,数据提取上要支持多种数据源,因此需要提供一个统一的数据源接口,各种数据源提取分别实现此接口来提供功能。
数据转换上则调用数据转换服务进行实现。
数据写入方式和提取数据的方式采用一样的方式,即提供统一接口,由各数据源提供统一的写入接口。
数据映射工具详细设计:
模块实现的时序图如图10所示:
据映射工具的界面基于EclipseRCP搭建,在进行数据提取的配置时,RCP接口通过访问数据源接口来提取相应的数据。
数据转换的配置通过调用转换规则加载类来实现数据的转换,数据的写入通过调用数据源接口的写入来实现数据的写入通过调用数据源接口的写入来实现,类图如图11所示。
进一步,所述的转换节点安全控制模块是基于RBAC实现交换节点安全控制,交换节点的安全控制模块要求交换中心增加对交换节点权限的配置模块,同时要求交换节点具备动态加载模块的能力,以及每个模块需要根据权限的配置进行相应的权限控制的能力;如图12所示。
在交换节点动态加载模块的设计上,采用微内核的方式,由微内核加载所接收到的交换节点模块,并同时管理这些模块的生命周期;交换节点加载中心所分配的模块过程如图13所示.
在模块的权限控制上,采用RBAC模型进行实现,以让各个模块能够根据角色、权限模型来判断当前用户是否具备操作模块的权限。
RBAC模型成功的经典应用案例当属Unix系统了,在此对其进行简单的介绍,NIST(TheNationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(CoreRBAC)、角色分级模型RBAC1(HierarchalRBAC)、角色限制模型RBAC2(ConstraintRBAC)和统一模型RBAC3(CombinesRBAC)。
RBAC0定义了能构成一个RBAC控制系统的最小的元素集合,在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。
RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。
RBAC2模型中添加了责任分离关系,RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。
RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系,如图14所示。
交换节点安全控制详细设计
根据这样的设计形成节点安全控制实现的类,如图15所示。
交换中心节点配置类通过交换节点配置类、交换节点用户类以及用户角色类对外提供节点中可用的模块以及用户的信息。
交换节点配置类维护了节点可用模块的列表。
交换节点用户类维护了节点中用户的信息,同时与用户角色对象关联,关系为多对多,即一个用户可以属于多个角色,一个角色中可以有多个用户。
交换节点权限校验类负责对外提供检查用户是否具备操作某模块的权限,实现机制为通过用户对象获取到用户所属的角色,通过角色获取到权限,从而判断用户是否具备对模块的操作权限。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

Claims (7)

1.应用级可靠的数据交换平台,其特征在于,该系统包括有四部分:交换中心、传输层、交换服务层、交换接口层,交换服务层包含有数据传输模块、接收服务模块、发送服务模块、数据转化服务模块、数据映射模块、转换节点安全控制模块;
交换中心是负责数据的路由、存储以及对交换节点的管理;
传输层是负责数据的传输,支持多种传输方式,包含通过MOM产品、基于SOAP协议、HTTP协议等来实现数据的传输;
交换服务层为数据交换平台提供的所有功能的服务,外部的功能都基于这些服务来实现,例如数据压缩并不是所有数据都需要的,可以根据一定的规则配置,从而在运行时根据规则选择相应的服务进行数据的发送和接收;
接口层是提供给应用进行使用,包括有数据服务框架、数据映射工具和接口状态服务;
数据服务框架提供给应用基于整合的数据进行其他应用的开发,包含报表应用、决策支持应用等;
数据映射工具提供给应用通过可视化的工具来配置数据的转换规则,从而实现数据从数据源转换到标准格式的数据文件以及将标准格式的数据文件写入数据源;
接口状态服务提供给应用来监控目前交换平台对外提供的接口的运行状况,以便判断数据交换平台的运行状况。
2.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述的数据传输模块基于MQ的数据传输模块的实现,数据传输模块承担的职责是数据的发送和接收,数据的发送负责调用MQ将数据流发送给指定的一个或多个目的地,点对点数据传输的可靠性交由MQ来保证,这块交换平台不做可靠性的保证的策略,数据的接收负责接收MQ收到的数据,并转为调用接收服务模块来完成接收的处理。
3.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述的接收服务模块负责处理接收到的数据,并要求做到整个数据的接收流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在接收流程步骤方面,数据交换平台需提供保存接收到的数据文件到指定目录、执行数据转换、数据解密以及数据解压四种步骤的支持。
4.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述发送服务模块负责发送数据,并要求做到整个数据的发送流程是可定制的,流程中的步骤是可扩展的,应用可根据需求对流程的步骤进行扩展;
在发送流程步骤方面,数据交换平台需提供定时执行、触发执行、数据发送、压缩、加密、路由、执行数据转换以及扫描目录八种步骤的支持;
发送服务模块对外提供发送流程服务,需要进行发送数据的应用只需配置相应的流程步骤即可。
5.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述的数据转换服务模块承担了数据转换的实现,数据转换上要求做到提供多种规则的数据转换的实现,并允许应用根据需求自行编写相应的转换规则;
在数据转换规则上,要求交换平台提供数据合并、数据拆分、数据类型转换的规则的实现。
6.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述的数据映射模块为提供给客户使用的可视化的工具,在工具中客户可完成数据提取、转换和写入的配置;
数据提取要求支持多种数据源,其中包括分隔符类型的文件、数据库、Excel三种数据源方式,客户通过配置所需使用的数据源,在数据转换中就可相应的选择配置的数据源,并提取其中的数据;
数据转换要求支持多种数据转换规则的配置,并支持自定义数据转换规则的编写;
数据写入要求支持多种数据源,包括分隔符类型的文件、数据库、FTP、Excel等,客户通过配置需写入的数据源,在数据转换中就可相应的配置将数据写入对应的数据源中。
7.根据权利要求1所述的应用级可靠的数据交换平台,其特征在于,所述的转换节点安全控制模块是基于RBAC实现交换节点安全控制,交换节点的安全控制模块要求交换中心增加对交换节点权限的配置模块,同时要求交换节点具备动态加载模块的能力,以及每个模块需要根据权限的配置进行相应的权限控制的能力;
在交换节点动态加载模块的设计上,采用微内核的方式,由微内核加载所接收到的交换节点模块,并同时管理这些模块的生命周期;
在模块的权限控制上,采用RBAC模型进行实现,以让各个模块能够根据角色、权限模型来判断当前用户是否具备操作模块的权限。
CN201410630784.6A 2014-11-11 2014-11-11 应用级可靠的数据交换平台 Pending CN105656952A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410630784.6A CN105656952A (zh) 2014-11-11 2014-11-11 应用级可靠的数据交换平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410630784.6A CN105656952A (zh) 2014-11-11 2014-11-11 应用级可靠的数据交换平台

Publications (1)

Publication Number Publication Date
CN105656952A true CN105656952A (zh) 2016-06-08

Family

ID=56482979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410630784.6A Pending CN105656952A (zh) 2014-11-11 2014-11-11 应用级可靠的数据交换平台

Country Status (1)

Country Link
CN (1) CN105656952A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416568A (zh) * 2018-02-09 2018-08-17 深圳太极云软技术股份有限公司 政务业务数据处理方法、装置及终端设备
CN109344123A (zh) * 2018-10-23 2019-02-15 山东浪潮云信息技术有限公司 一种基于目录文件的数据交互方法
CN109656988A (zh) * 2018-10-16 2019-04-19 平安科技(深圳)有限公司 基于云计算的业务运维方法、装置、设备及可读存储介质
CN110378778A (zh) * 2019-07-10 2019-10-25 中信百信银行股份有限公司 多数据源对账方法、系统、电子设备及存储介质
CN111277425A (zh) * 2018-12-05 2020-06-12 中国移动通信集团湖南有限公司 集中化数据传输管理的装置
CN112241243A (zh) * 2020-10-19 2021-01-19 北京计算机技术及应用研究所 一种主动对象存储系统的实现方法
CN113076360A (zh) * 2020-12-09 2021-07-06 福建省凯特科技有限公司 一种基于安全服务中间件技术的数据交换平台
CN115086288A (zh) * 2022-04-21 2022-09-20 广西大都混凝土集团有限公司 一种云集成服务平台
CN117270818A (zh) * 2023-10-11 2023-12-22 北京航空航天大学 Mom标准中软件需求类图信息识别与模型生成方法和系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416568A (zh) * 2018-02-09 2018-08-17 深圳太极云软技术股份有限公司 政务业务数据处理方法、装置及终端设备
CN109656988A (zh) * 2018-10-16 2019-04-19 平安科技(深圳)有限公司 基于云计算的业务运维方法、装置、设备及可读存储介质
CN109656988B (zh) * 2018-10-16 2024-05-03 平安科技(深圳)有限公司 基于云计算的业务运维方法、装置、设备及可读存储介质
CN109344123A (zh) * 2018-10-23 2019-02-15 山东浪潮云信息技术有限公司 一种基于目录文件的数据交互方法
CN111277425A (zh) * 2018-12-05 2020-06-12 中国移动通信集团湖南有限公司 集中化数据传输管理的装置
CN111277425B (zh) * 2018-12-05 2023-04-07 中国移动通信集团湖南有限公司 集中化数据传输管理的装置
CN110378778A (zh) * 2019-07-10 2019-10-25 中信百信银行股份有限公司 多数据源对账方法、系统、电子设备及存储介质
CN112241243B (zh) * 2020-10-19 2024-01-26 北京计算机技术及应用研究所 一种主动对象存储系统的实现方法
CN112241243A (zh) * 2020-10-19 2021-01-19 北京计算机技术及应用研究所 一种主动对象存储系统的实现方法
CN113076360A (zh) * 2020-12-09 2021-07-06 福建省凯特科技有限公司 一种基于安全服务中间件技术的数据交换平台
CN115086288A (zh) * 2022-04-21 2022-09-20 广西大都混凝土集团有限公司 一种云集成服务平台
CN117270818A (zh) * 2023-10-11 2023-12-22 北京航空航天大学 Mom标准中软件需求类图信息识别与模型生成方法和系统
CN117270818B (zh) * 2023-10-11 2024-04-09 北京航空航天大学 Mom标准中软件需求类图信息识别与模型生成方法和系统

Similar Documents

Publication Publication Date Title
CN105656952A (zh) 应用级可靠的数据交换平台
US20220171606A1 (en) Microprocessor Including a Model of an Enterprise
CN103874992B (zh) 用于数据中心管理的集成资产跟踪、任务管理器和虚拟容器
TW469405B (en) Workflow synchronization
CN109308582A (zh) 一种基于组件化与服务化的制造执行系统架构
WO2018053413A1 (en) Methods and systems for endpoint device operating system in an asset intelligence platform
US11226614B2 (en) Use of a smart node in a universal, smart system for monitoring industrial processes
CN103139251A (zh) 一种城市级数据共享交换平台技术的方法
CN106777227A (zh) 基于云平台的多维数据融合分析系统及方法
CN106357724A (zh) 一种统一信息管理平台整体系统
CN105843182A (zh) 一种基于oms的电力调度事故预案系统及方法
CN109241054A (zh) 一种多模型数据库系统、实现方法以及服务器
CN105094961A (zh) 一种基于quartz框架的任务调度管理系统及其方法
US20100228587A1 (en) Service oriented architecture lifecycle organization change management
CN101398857B (zh) 嵌入式分布式系统中数据同步的方法及嵌入式分布式系统
Oliveira et al. Industry focused in data collection: How industry 4.0 is handled by big data
CN103488697A (zh) 能自动收集和交换碎片化商业信息的系统及移动终端
CN110532313A (zh) 数据交换装置
CN104680429B (zh) 智能电网互操作概念模型系统
CN115860759A (zh) 一种基于区块链的农产品可信溯源系统及方法
CN102109993A (zh) 基于soa的专利代理协同管理系统开发方法及系统
Zolotova et al. Architecture for a universal mobile communication module
CN113886061A (zh) 一种工业物联网运维平台
CN110569026A (zh) 一种基于j2ee框架面向服务的系统架构方法
CN103679432A (zh) 一种支持动态构建应用平台的vnms系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160608

WD01 Invention patent application deemed withdrawn after publication