




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据交换平台设计说明书文件编号TH-DEP-TD-01文件状态 草稿 正式发布 正在修改当前版本1.1修订历史记录 A - 增加 M - 修订 D - 删除变更版本号日期变更类型(A*M*D)修改人摘 要目录1. 引言71.1 编写目的71.2背景71.3 术语与缩写解释81.4 参考资料82. 概要设计82.1 平台设计与定位82.1.1 概述82.1.2 与现有系统的关系102.2 硬件与网络122.2.1 核心硬件和网络122.2.2 外围硬件与网络132.2.3 网络互联的安全132.2.4 节点部署说明142.2.2 软件系统152.3 核心软件系统结构162.3.2 第三方数据源1
2、72.3.2 数据接口层182.3.3 传输控制层192.3.4 数据处理层202.3.5 交换数据库212.3.6 数据展现界面212.3.7 数据应用接口222.3.8 上下级系统数据共享222.3.9 数据交换标准222.4 核心软件系统设计原则242.4.1 自动化数据交换242.4.2 可定制数据交换242.4.3 多重方式数据的展现与利用252.4.4 数据全生命周期管理252.4.5 数据字段业务标准262.5 数据存储设计262.6 数据流管理设计273. 技术架构设计283.1 概述283.2 基础组件293.2.1 Spring Framework293.2.2 Swim
3、Framework303.2.3 Piston远程数据交换中间件323.3 领域模型和逻辑设计343.3.1 概述343.3.2 任务调度引擎343.3.3 规则处理引擎373.3.4 系统核心功能设计概述433.3.5 数据导入设计433.3.6 数据加工设计513.3.7 数据应用设计583.3.8 数据上传和下发设计643.3.9 任务监控管理中心设计713.3.10 系统权限设计723.3.11 数据权限设计753.3.12 数据标准设计763.3.13 现有系统集成设计783.3.14 数据使用反馈设计794. 系统功能设计814.1 概述814.2 数据交换部分824.2.1 数据
4、交换流程834.2.2 交换项目设置834.2.3 交换项目调度894.2.4 交换项目的监控894.2.5 数据交换的一些原则914.3 数据加工部分914.3.1 数据加工流程924.3.2自动匹配934.3.3 手工匹配984.3.4手工撤销匹配994.3.5 数据匹配综合管理1004.4 数据应用部分1014.4.1 数据字典查询1024.4.2 交换项目情况查询1034.4.3 按交换项目的简单数据查询1034.4.4 单户明细信息查询1044.4.5 数据输出接口1044.4.6 对于异地数据交换的说明1054.4.7 成果展示1054.4.8数据利用反馈展现1064.5 数据上传
5、下发1074.5.1 数据上传1074.5.2 数据下发1084.5.3系统全景图查询1084.6 系统设置和管理部分1094.6.1 层级管理1094.6.2 岗位设置1104.6.3 权限管理1114.6.4 代码表设置1114.6.5 交换项目设置备份和恢复1111. 引言1.1 编写目的根据江苏地税第三方数据交换平台系统需求思路以及多次需求和技术讨论会,特别是3月份和7月份演示讨论会后,依据省局领导的意见,形成该三方数据交换平台的技术设计说明书。该文档把三方数据交互平台的技术和功能方面的设计,通过文字和图表明确的表述出来,以供领导审阅。同时,也依据该设计文档,进行下一步的设计和开发工作
6、。1.2 背景根据省局关于委托常州地方税务局开发“第三方数据交换平台项目”的通知的要求,立足于全省地税系统应用和管理的实际情况,开发建设具有通用性、适应性强的数据交换平台。 该平台是支撑税源专业改革新模式的重要数据平台,为风险管理平台和日常税源监控及税收分析提供了强大的第三方信息库。该平台的开发立足于第三方信息进得来、管得住、整合得好,为风险平台的后期数据应用及其它业务需求提供可靠的信息源,为税源专业化改革的深化推进提供重要的支撑平台。1.3 术语与缩写解释缩写、术语解 释ETLExtract,transform and load. 数据处理的三个环节:抽取、转换与装载。MVCModel,vi
7、ew and controller. 一种系统设计的常用模式:模型、视图、控制器。IOCInversion of control. 控制反转,面向对象设计的一种模式。AOPAspect Oriented Programming. 面向切面编程,软件设计的一种方法。RPCRemote procedure call. 远程过程调用,一种协议和程序调用方式,使得远程程序的调用跟本地程序调用在调用者角度没有差异。1.4 参考资料江苏地税第三方数据交换平台系统需求思路2. 概要设计2.1 平台设计与定位2.1.1 概述从核心数据处理功能来讲,三方数据交换平台设计实现为一个数据ETL(Extract Tr
8、ansform Load)平台,该平台首先从定义好的第三方数据源抽取(Extract)数据,然后经过转换(Transform)处理进入平台系统,最后通过一定的技术手段装载(Load)为可以直接应用的数据,如下图所示。数据ETL过程图三方数据交换平台是一个专注于数据处理的技术平台,它将提供丰富的数据导入、处理和应用方式,充分考虑多种应用场合,实现方便的定制功能,使得操作人员在数据处理层面上有多种多样的选择方式,可以根据不同数据来源和去向定制各异的数据导入、加工与应用规则。三方数据交换平台也是一个相对独立的系统,它与其它系统之间没有业务上的直接耦合关系,对外它只提供数据的输入接口和输出接口,仅仅是
9、数据的采集和提供者。所有的数据业务关系,是通过平台的使用人员通过不同的数据处理规则去定制实现的。在这种机制下,业务规则不是固化在平台实现里,从而提供了极大的灵活性,增强了系统的可使用性。下面的三方数据交换平台示意图比较直观的显示了上述内容。三方数据交换平台示意图通俗来讲,三方数据交换平台可以视作一个数据加工厂和数据流桥梁。原始的三方数据相当于原料,原料进工厂(数据导入)以后,经过加工过程(数据加工),成为可以发售的产品(可以应用的数据)。除了数据工厂作用以外,它还是数据流环节中的一个桥梁,通过这个桥梁,数据可以在不同的应用系统之间进行流动。2.1.2 与现有信息系统的关系三方数据交换平台建设的
10、初衷不是一个孤立的系统,它是为了加工处理数据,进而为其他系统服务的。在现阶段,可以预见的跟它有数据关系的系统包括政府公共信息网、省地等级别的相关数据系统(国税、工商、供电、供水、社保、国土等等)以及地税内部现存的信息系统,包括大集中系统、风险管理平台等。三方数据交换平台系统在这样一种关系网络中,处于中间地位,通过该平台的建设,打通数据在现有的这些系统之间的流动路径,使得原本孤立的这些信息孤岛能够连成一片,实现信息数据的共享和应用。它是各个系统之间的纽带,为建设综合治税这样的大概念平台打下了坚实的基础。三方数据交换平台关系示意图因为现存的系统各种各样,对外的接口也不尽然相同,所以为了尽可能多的适
11、应当前系统,在对当前系统对外接口不做过多的改变的前提下(事实上,要对现有系统接口做修改在很多情况下没有太大的可行性),三方数据交换平台将会提供多种形式的数据输入接口和输出接口,这在后续将会详细讲述。因为当前需要接入的系统就很多,业务规则也千差万别,未来也可能有更多的系统接入,所以三方数据交换平台不可能一开始就设计好与其它系统之间的业务关系,否则接入一个新的系统,平台就要做相应修改,这个工作量是不可想象的。所以,三方数据交换平台设计为和其它系统之间并没有直接的业务耦合关系,它只是提供了多种多样的数据处理规则和方式,让平台系统的操作人员去动态的定制,这样间接的实现了业务规则的转换,从而为多种不同业
12、务系统的接入,提供了可能性。站在其它系统的角度来看,三方数据交换平台仅仅提供了数据的输入和输出接口。从三方数据交换平台内部来看,它提供了多种多样的数据处理规则,通过这些规则的灵活定制,实现了数据的业务处理。 2.2 硬件与网络2.2.1 核心硬件和网络核心硬件与网络是指本系统在税务系统内部的硬件与网络部分。从宏观来讲,该平台是一个分布式系统,由地理位置上分离的各个数据交换平台软硬件系统节点组成。从单个数据交换平台软硬件系统节点来看,它又是一个自成体系的系统。所以,网络和硬件的设计也必须按照数据交换业务的实际需求来设计,实现互联和安全访问。对于部署在不同地理位置的数据交换平台软硬件系统,称之为节
13、点。从上下级关系来看,系统的部署可以分为多个级次,每一级次都是由一个到多个节点组成。例如,在省、市两级进行部署,省、市分别为部署在本地的数据交换平台软件系统准备合适的硬件平台和网络环境。另外,在网络结构上,具有上下级关系的节点之间的能实现相互访问,而同级节点之间,则不一定需要直接进行相互访问这样的功能。在这一级别上,可以采用专网、防火墙等技术实现该平台所需的分布式网络。2.2.2 外围硬件与网络外围硬件与网络是指和第三方数据源直接有干系的硬件和网络。因为第三方数据源的情况现在并不明朗,只有到具体接入实施的时候,才会知道具体的情况。所以,为了考虑兼容和接入不同的三方数据源,网络接口的设计也需要具
14、有比较大的灵活性。关于外围硬件与网络,需要在几个不同的方面加以说明。首先,在通信的发起上,分为主动和被动方式。主动方式是指核心网络主动去访问第三方数据源,这一形式只能在第三方数据源提供了网络连接支持,并开放了访问权限的前提下,才能实现,那么这需要第三方数据源提供接口主机并保证数据安全传输的前提下,以专网或公网为传输媒介进行通信。被动方式是指在核心网络的外围,提供可以访问的接口主机,提供多种可以访问的手段,让第三方数据源主动发起数据通信。其次,在网络的接口和互联上可能有多种形式,包括直接互联走专网的方式以及在公网上间接提供接口主机的形式。那么接口主机可能位于核心网络,也可能位于第三方数据源,这要
15、看通信由谁发起来决定。2.2.3 网络互联的安全因为数据交互牵涉到大量的保密数据的交换,所以在硬件互联层面上,安全性也是非常核心的一环。在本系统设计和部署的时候,将严格按照地税和相关其它部门的安全规范和规定,确保万无一失。另外一点就是,本系统只部署在安全网络环境内,不考虑直接通过Internet和第三方数据源进行交互,系统可以提供间接的方式,例如对外的Web上传界面,Ftp等,实现数据的采集,采集的数据通过异步方式转移到核心系统内。2.2.4 节点部署说明如下图所示,该数据交换平台系统在宏观上由部署在不同地理位置的多个节点组成,这些节点位于不同的层级,一个层级对应有一个到多个节点。所谓节点也就
16、是在一定的地理位置实际部署的软硬件系统。层级分为省级和地市级,所有在地域行政级别相同的节点属于同一个层级,例如南京市与常州市的市级部署节点它都属于市一级的三方数据交换平台系统。节点部署只是一个宏观的概念,在实际部署中,对于要部署几层、多少节点,这个根据省局的安排和当地实际业务情况来进行。比如说一个区(县)可以选择部署和不部署这样的数据交换平台系基于节点的网络部署图统。在不部署平台系统的情况下,它可以直接访问上级机构部署的节点,实现数据的交换和数据利用。当然这需要有一些前提条件:首先网络要互联;另外还需在上级机构的系统里进行用户设置和访问权限的设置。2.2.2 软件系统软件系统的主要包括操作系统
17、平台、数据库管理系统、Web及应用服务器软件,以及需要接下来设计和开发完成数据导入、处理、应用的核心软件系统。这些软件系统根据需求,依据硬件和网络设置进行分布式部署。操作系统可以为Windows的服务器版本或者Linux的服务器版本,但是本着效率、稳定性等方面的考虑,推荐以Linux相关操作系统版本为主。数据库软件以Oracle系列数据库管理系统来进行构建。Web服务器推荐使用Nginx高性能服务器,另外包括Tomcat等Java应用服务器以及所需要的Ftp服务器。以上的软件只需部署安装,按照系统实际运行所需进行相应的配置即可。真正完成数据交换的核心软件需要接下来开发完成。从宏观角度来看,它主
18、要由后台数据自动化处理组件和Web操作控制系统及数据展现应用系统组成。 后台数据自动化处理组件将会被设计成后台自动运行的模式,通过提前定义好的标准接口以及标准业务处理规则,完成数据交换、处理以及生成可应用数据接口。在编程实现上,将会充分利用Java企业编程所提供的基础技术框架结合相关的数据库开发技术以及充分考虑各种因素,实现最大程度上的数据自动化交换。Web操作控制系统和数据展现系统包含两部分内容,一部分是对数据交换过程进行操作和控制,它主要完成数据交换的过程管理。另一部分是数据展现应用系统,主要是把获取和处理好的数据,以各种形式展现出来,提供不同方式的展现形式,支持固定和可定制的信息查询。另
19、外还提供可编程或非编程方式的数据访问接口。2.3 核心软件系统结构核心软件系统结构图如上图所示,以模块化分层的方式表述了数据交换系统的软件架构,从大的方面来讲,主要包含第三方数据源、数据接口层、传输控制层、数据处理层、交换数据库、数据应用接口和数据展现界面等分层模块。从2.2所述可以知道,软件系统由位于不同层级的节点组成。但是从软件架构上来讲,部署在不同层级的软件系统,除了在上下级系统之间,具有不同的数据流的处理(数据的上传和下发),除此之外,各个节点的数据交换软件系统在软件架构上是一致的。2.3.2 第三方数据源第三方数据源是整个系统所要交换数据的原始采集地,由于各个数据源的情况差别很大,存
20、在很大的不确定性,所以就要求系统要支持多种类别的数据源。在综合分析以后,确定系统支持以下一些方式的数据源:数据库直连、FTP方式,手工文本。数据库直连是信任度最高的一种数据源提供方式。假定第三方机构以某种方式,对其数据库访问,提供了一定权限的访问接口。在这样一种方式下,系统以事先约定好的访问规则,去对数据源进行自动访问,实现数据的采集。FTP方式可能包括两种类型,一种是在数据接口层提供FTP服务器,以供第三方数据源的相关操作人员或自动运行的程序将所需交换的数据按事先约定好的文本格式,以一定的频率进行进行文件上传。另外一种方式是第三方数据源在其网络接口层提供可以访问的FTP服务器,本系统根据事先
21、的约定,来完成FTP服务器的定时访问,获取到固定格式的文本数据。手工文本方式是指通过其它渠道,以人工方式获取到的固定格式的第三方数据,它文本方式存储。在这一层面,需要确定通信和数据采集的一些基本协议。例如,所要采集数据的格式、频率等。2.3.2 数据接口层数据接口层和第三方数据源示意图本层主要负责对外接口,提供数据库访问程序、FTP数据访问程序,FTP服务器、WEB操作界面等具体功能来实现和第三方数据源的连接,实现数据的采集。数据库访问程序直接连接第三方数据源提供的数据库访问接口,按照接口协议,实现数据的直接读取。FTP服务器提供给第三方机构,使其可以按照访问协议,上传本系统所需数据。FTP数
22、据访问程序连接第三方数据源提供的FTP服务器或者本系统FTP服务器,按照访问协议,获取数据并将其解析成可以利用的原始数据。WEB操作界面提供数据导入功能,可以实现格式化数据的导入。除了这些对外的功能性接口以外,本层还负责数据安全传输、数据有效性检测等。2.3.3 传输控制层传输控制层示意图传输控制层是实现自动化数据采集的关键,它根据事先定义好的协议,去自动处理用户定制的数据采集任务,同时处理数据采集中产生的异常情况,并进行反馈和预警。自动数据采集采用监听任务脚本的方式去进行处理。首先,用户通过WEB界面去进行数据采集任务的定制,定制完成以后,会在后台形成一定格式的任务脚本的描述。其次,传输控制
23、层得监听模块如果获取到了新增或修改过的任务描述脚本,则对脚本进行解析,按照脚本描述的规则,去驱动相应的程序模块进行通信,完成数据的自动化采集。另外,传输控制层还会反馈一些预警信息,比如定制的数据采集任务没有完成或者采集过程中发生了异常,传输控制层都会对此过程进行记录,通过WEB界面把预警信息反馈给用户。2.3.4 数据处理层数据处理层示意图数据处理层实现了原始采集数据的存储以及数据的预处理等环节。原始数据以数据的原始结构进行保存,并记录操作时间,操作人员等信息。数据的处理包括宏观数据和微观数据的处理,宏观数据直接处理存储,微观数据则要和纳税户信息进行有效的关联,使其和地税户管建立对照表,进行自
24、动匹配以及手工匹配。自动匹配建立在关联字段信息一致性上,根据一定规则进行匹配,通过程序遍历,来自动生成匹配数据自动装载到对照表中,包含的字段有税务管理码、纳税人名称、第三方唯一标识码、企业名称、主关联字段、次关联字段等。如果部分关联信息一致或没有一致的关联信息,则需要提供界面去进行手工匹配,手工操作后,该部分数据也自动进入对照表。数据处理层除了需要制定完备的数据匹配规则以外,还需进行多重逻辑校验,实现一定的容错性,以最大可能来反映数据的准确性。2.3.5 交换数据库交换数据库是交换系统所有数据的存储地,包括系统初始化数据、系统管理数据、原始采集数据、预处理后的正式交换数据等。根据需求,数据库进
25、行良好的设计。2.3.6 数据展现界面本层主要实现数据的展现,包括各种查询分析功能。主要有固定查询、自主定制组合查询、信息交换统计查询、单户明细信息查询、适用税种查询分析、交换数据质量跟踪监控情况查询、可利用数据信息查询等内容。2.3.7 数据应用接口本层提供编程与非编程数据接口,使得交换系统的最终数据,可以为其它系统和部门所用。根据实际的需求情况,可考虑提供各种访问途径,例如:数据库直接访问方式、FTP文本数据共享、可编程远程接口、人工导出文本等。2.3.8 上下级系统数据共享本系统除了第三方数据交换功能以外,在级别上有省、市、县(区)三个级别,所以数据除了从本层第三方数据源进入本层交换系统
26、以外,还可能存在数据的跨级别访问。比如,上级部门的交换数据可提供给下级部门进行展现和应用,而下级部门的数据交换情况,也可以提供给上级部门查看,比如提供数据交换总览图这样的功能,使得上级部门可以直接获知数据交换系统各个地方的部署实施情况等。上下级数据的共享可以考虑两种方式,一种是直接操作上级或下级的交换平台系统,另外一种是提供数据的上传或下发,根据用户的实际需要,会同时提供两种方式。2.3.9 数据交换标准因为本系统可能会涉及到众多的第三方数据源,可能包含海量数据的交换处理与存储,而且数据的交换和处理环节也很多,所以为了更好的对数据进行交换和处理,使得数据最终能得到有效的利用,我们就需要制定各个
27、环节的标准、规范和协议。而标准、规范、协议也是自动化数据处理的一个前提,否则很多环节必须通过人工干预才能进行。首先关于数据源的标准化,也就是本系统都支持哪些类型的数据源,某种特定的数据源都必须要提供哪些参数。比如,如果支持数据库直连方式,那么就需要确定IP地址、端口、数据库、表(视图,存储过程等)、字段等参数,在用户进行数据采集任务定制的时候,如果选定了这种方式,那么上述所列的参数就必须提供。其次是数据格式的标准化。只有采集到标准格式的数据,才能被后续环节所自动化处理。在进行数据采集之前,必须要确定数据以什么样的载体存在,在载体中以什么样一种格式存在。比如以数据库直连方式,那么数据应该就是以数
28、据库表的方式存在。如果是以文本方式,那么就必须确定是什么样的文本格式:自定义文本格式、csv、excel等。这个还可以继续延伸下去,比如自定义格式是怎样的自定义规则,数据字段间以什么样方式分隔,数据字段的名字采用什么样的存储方式等等。最后,是数据源和数据存储的标准化。因为采集的原始数据可能是多样性的,而这样的原始数据是不能为后续的系统例如风险评估系统来应用的,所以在数据的预处理阶段必须遵循数据源和数据存储的标准化,使得处理过的正式数据可以被其它第三方系统所识别,从而成为真正可以利用的数据。系统将根据税务系统制定的数据源或数据存储标准,去建立数据源,包括表的命名、字段的命名、字段的类型、字段的含
29、义。因为当前阶段标准化工作还在进行中,所以系统的设计上要考虑多种方式的标准化接入。现阶段可以预见到的有:标准以文档的方式提供;标准以可编程接口提供。在数据源建立或数据存储建立的时候,根据一定的关键字去查询该标准,如果有匹配的标准定义,则遵循标准执行。如果没有标准,则可以自定义构建。另外,还需要制定详尽的数据比对规则,只有这样,才能最大程度的进行数据的自动化匹配,进行有效数据的筛选与存储。当然,还有很多的处理环节需要标准化,这将会在后续的详细设计中一一实现。2.4 核心软件系统设计原则2.4.1 自动化数据交换在数据交换平台的软件体系内,处于最核心的部件是数据交换控制组件,该组件自动运行在后台,
30、依据既定的标准交换协议对数据交换的各个环节进行监听,一旦监听到有需要处理的任务,则在后台自动化的完成数据的处理过程,这一过程不需要人工干预。如果某一过程的处理中,存在问题,则会自动预警。例如,原本定义好每天需要有新的交换文本上传到FTP进行交换,但是自动化处理过程在自动处理过程中,没有发现当天需要交换的新文本,则会向系统发一条预警通知,该通知会以某种方式,在WEB操作界面展现出来。2.4.2 可定制数据交换软件系统将实现数据交换的可定制化。在Web操作控制界面上,具有一定权限的操作人员,可以根据数据交换的需要,在既定的标准交换协议框架之内,实现灵活的的可定制数据交换操作。可以定制数据源、数据采
31、集方式、采集频率等等。当操作人员按照规则进行了数据交换的可定制操作以后,系统会生成一定的流程描述脚本提供给数据交换控制组件来自动运行。2.4.3 多重方式数据的展现与利用数据交换的最终目的是为了对数据进行管理和应用。那么,经过数据的采集与预处理,得到了可以利用的数据,我们最终需要以某种方式将数据加以展现和利用。本系统中,我们将会以两种方式来进行数据的展现与利用。对于本系统的最终用户,系统将会提供基于Web的操作界面,来进行数据的查询与展现。根据业务需求,将会提供固定条件的数据查询与展现,以及在一定的业务范畴之内的可定制的数据查询与展现。当然除了提供Web操作界面提供给最终用户来进行数据的查询与
32、展现,还需提供基于不同方式的数据查询与展现接口以供第三方系统或用户来对数据进行查询和应用。那么根据需求,我们可以提供可编程数据访问接口、数据库直连、FTP自动交换以及文本导出等不同方式的接口。这个要在保证数据存储、传输的安全条件下,根据具体的需求来确定最终采用哪些方式。2.4.4 数据全生命周期管理本系统的核心着眼点是数据的交换处理和利用,所以对于数据的管理是最核心的一环。基于这一问题,需要设计完备的数据生命周期管理,从数据抽取到系统的第一步起,到数据最终的展现和应用。每个环节,都会提供相应的管理功能和操作界面,供具有权限的操作人员去对数据进行控制和处理。另外,对于数据每个环节的操作和管理,系
33、统都会提供详尽日志,以供后期分析查询使用,提供数据交换成果的统计与分析功能。2.4.5 数据字段业务标准本系统自动化成分很高,自动建表,索引,存储过程等工作都是由系统脚本自动生成。例如在创建数据交换项的时候,数据进入系统采用的数据字段都是要满足数据标准平台的标准的,新字段要通过数据标准平台审核。2.5 数据存储设计在本系统中,数据存储的设计包括两方面的内容,首先是数据库的部署设计,其次是数据库表的设计。因为本系统跨地域、跨部门、跨业务,跨上下级关系,所以要实现数据的采集处理和共享,决定了本系统是一个分布式系统。数据库的部署也必须分地区,分层次,各个地方部署各自的数据库进行交换数据的存储。省级的
34、交换数据存储在省级的数据库服务器中,市级的交换数据存储在市级的数据库服务器中,县(区)级的交换数据存储在县(区)级的数据库服务中。另外,因为要经过数据的ETL,才能得到可以利用的数据,所以在数据库的设计上,要考虑到包括原始数据数据表和经过数据转换和清洗后的正式数据表。关于数据表的设计,要包括系统初始化所需的支撑表、权限控制表以及处于核心的业务数据表等不同类型的数据表。另外,因为系统中存在各地各个级别的数据,所以要设计合理的数据关联关系,设定一定的访问控制标志,以保证数据的安全共享与访问。因为本系统涉及到海量数据的处理,所以要充分发挥分布式存储和运算技术,利用Oracle数据库管理技术为中心的各
35、项技术手段,来实现数据的安全存储,高效处理。2.6 数据流管理设计从宏观方面讲,数据的流向大体有两个方向。一个是横向的数据流动,也就是数据从第三方数据源获取,经过处理后进入本系统数据库中进行存储和利用。这是本系统所需处理的核心问题,也就是数据从第三方数据源怎样进入本系统,并成为有效可利用的数据,并且可以提供给其它系统进行扩展应用。这在前边基本上已经过阐述。另一个方向是数据的纵向流动,也就是处于行政关系的上下级单位间数据存储之间的数据流动。主要是上级部门的交换数据,可以共享给下级部门。下级部门的数据交换部署实施情况、数据利用成果等可以共享给上级部门。这里有两种方案可以选择:一种是上级(下级)部门
36、的交换数据存储在上级(下级)部门的数据库中,给下级(上级)部门开发访问权限,根据访问规则,下级(上级)部门可以访问具有权限的数据。另外一种是上级(下级)部门交换数据下发(上传)到下级(上级)部门。第一种方式的好处是数据没有冗余,集中存储。但是由于要开放下级(上级)访问接口,这就涉及到这些接口怎么去设计、数据怎样控制、Web系统通过怎么样方式的去访问、怎么样去部署都提出了一些技术挑战。另外由于增加了下级(上级)访问,那么一方面数据库访问压力会增大,另外一方面远程数据访问的效率如何,也不得而知。第二种方式的好处是数据本地存储,这对数据的访问效率以及减轻上级(下级)部门数据库的压力是有很大好处的。但
37、是,这一方式就带来了海量数据的远程传输控制问题,怎样保证数据能够高效安全的传输到下级(上级)部门,这是需要首要解决的技术问题。在实际系统的设计和部署中,根据上下级所要交互的数据的类型、规模等因素,同时提供这两种方式的数据共享和交换方式,用户可针对不同情况,酌情选择使用。3. 技术架构设计3.1 概述系统架构示意图系统以Java和数据库技术为依托,采用JEE相关技术,以MVC模式为核心,采用分层思想,构建健壮、灵活的Web应用程序。在数据库访问层,使用高效的Swim Sql映射框架,实现数据的获取和持久化。在领域逻辑层,使用Spring框架,通过IOC和AOP,实现业务模块的可配置和灵活增加、删
38、减,另外也可以在面的基础上,对业务实现代码进行功能增强。在表现层,综合使用各种Web2.0技术,以Jquery框架为核心,构建具有良好用户体验的GUI。3.2 基础组件3.2.1 Spring Framework【框架描述】Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。Spring框架包含许多特性,并被很好地组织在下图所示的六个模块中。Spring框架架构图【框架引用目的】1. Spring 的 Core 封装包Spring 的 Core 封装包是框架的最基础部分,提供IoC和
39、依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许我们从程序逻辑中分离出依赖关系和配置。2. Spring的 AOP 封装包Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。我们主
40、要用于对Java数据库操作的事务配置、任务异常监控。3. Spring中的 MVC 封装包Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和web form之间。3.2.2 Swim Framework【框架描述】Swim 框架是江苏同和软件技术有限公司为了JAVA的数据库快速编程而开发的一个O/R和sql映射编程框架,它对JDBC进行了非常轻量级的操作封装,使得JAVA程序员可以方便地使用SQL来操纵数据库,可以应用在任何可以使用JDBC
41、的场合,既可以在JAVA的客户端使用,也可以在Servlet/JSP的Web应用中使用。SWIM框架技术架构图基于Spring和Swim的应用架构图【框架引用目的】系统与数据库的交互多而杂,有第三方数据交换平台自身的数据库,有第三方数据源的数据库。Swim框架对于JDBC操作是做过许多优化的,兼容主流的数据库类型,具有非常高的数据操作效率。对于动态数据源的处理也是Swim框架的强项,用于应对连接不同的第三方数据源。Swim提供的O/R映射能满足系统领域逻辑模式的设计。3.2.3 Piston远程数据交换中间件【框架描述】Piston 远程数据交换中间件 ,为江苏同和软件技术有限公司研发的此类中
42、间件的Java版本,在不同的应用系统之间,经常会有数据交换的现象出现,为了让异构信息系统集成技术平台实现数据的共享和交换,并且实现高效的通信、安全的数据传输和编程的透明性,Piston远程数据交换中间件是必不可少的高性能中间件。Piston工作原理示意图该中间件包含了数据交换的服务器端组件和客户端组件,它在底层实现了数据加密、压缩、传输等系统级的功能,对外提供了一系列的数据远程交换接口,开发人员只需要根据数据交换的需求,调用相应的编程接口,并把组件和开发的程序正确的部署在需要交换数据的系统中,就可以方便的实现不同地理位置的信息系统之间的数据交互和共享。【框架引用原因】1)Piston采用自定义
43、通信协议,在二进制流上做了高效的数据压缩。2)Piston采用基于HTTP协议之上的应用协议,为远程数据的交换提供了方便的通道。3)Piston采用MD5、RSA、Blowfish等多种加密手段,确保数据交换的安全。4)Piston采用类似于数字证书的客户端验证机制,保证数据交换的客户端身份不被伪造。5) Piston支持多客户端,服务器端使用java编程语言实现,客户端可以是任何语言实现的组件,只要遵循协议就可。6)Piston提供了web控制台,可以对服务器端中间件的一些参数进行管理,web控制台的登录采用了用户名、密码、验证码和数字口令码结合的方式,采用ssl进行通信,确保web控制台的
44、安全。3.3 领域模型和逻辑设计3.3.1 概述此部分文档用于说明该平台相关领域逻辑在技术上的设计,为了方便描述后续的实现机理,首先介绍领域逻辑层核心的两个组件:任务调度引擎;规则处理引擎。然后讲述核心功能(数据导入、数据加工、数据应用)相关主要领域逻辑设计、权限设计、数据上传和下发设计等。数据交换、数据加工都涉及到了一个任务的概念。为了更好地控制、管理这些任务,我们设计了一套任务调度引擎,负责任务的定时调度、修改、删除、宕机后任务状态恢复等。数据加工部分引入了一个规则的概念,我们对规则的第一印象就是量多、相互独立。应对不同业务需求肯定就需要很多种规则去控制数据匹配的过程,所以系统预定的顶级规
45、则肯定数量不少;每种规则都有自己特有的处理方式,否则也不需要使用多种规则了,所以系统对每一种规则都必须有对应的独立的处理过程。面对这种复杂的处理要求,我们设计了一套规则处理引擎,负责对用户定制的规则作出解析,映射出相应的处理程序,再配合任务调度引擎,就能灵活的在平台中执行复杂的匹配任务。3.3.2 任务调度引擎 概述任务调度引擎工作原理图本系统为实现自动化的数据采集、匹配,则必然涉及到这个任务可能每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行。为了解决这些难题,本系统
46、特引入了任务调度引擎工具的设计,底层开发语言为JAVA,与整个应用无缝连接。整体的工作原理如上图所示,为了便于理解,图中主要展现了几个重要的模块。整个引擎引入以下几个概念:1.任务适配器 2.任务管理器 3.任务驱动核心 4.任务线程池。下面我们就分别讨论他们的作用。 任务适配器任务适配器是整个任务调度引擎的耳朵,是任务调度引擎的入口。在设计上采用了策略模式。一旦有任务模型请求连接,立即抽取、校验任务的执行配置信息,获取到任务实例,需要执行的任务脚本方法名。通过一系列预处理,通知任务管理器做下一步的处理。 任务管理器任务管理器是整个任务调度引擎的大脑,由他来初始化未
47、完成的任务、装载任务脚本、监控任务线程池、发出异常警告。初始化未完成的任务:在服务器宕机或者服务器重启的情况下,JAVA进程关闭,服务器内存中所有的任务线程肯定都会丢失。当下一次平台启动后为了继续之前的任务,任务管理器就提供了一个初始化的功能,从数据库读取出未完成的任务信息,自动化地启动所有任务。装载任务脚本: 由任务适配器传递过来的任务模型提供了相应的需要执行的任务脚本,这些脚本定义了具体的任务内容,任务管理器就负责把脚本装备进任务驱动核心,由任务驱动核心去驱动一个新的任务线程。监控任务线程池:任务线程一旦开启就必须有一个良好的管理机制,以便于平台更好的控制任务。这个控制的过程对于用户是不可
48、见的,由系统去处理。但是会暴露响应的控制接口给用户,主要功能设定在交换项目的监控功能中,后文会具体介绍。发出异常警告:当任务的执行遇到问题,比如第三方数据源的意外关闭,网闸的重启等意外情况导致的不能执行数据采集等情况,任务管理器马上会给平台一个警告信息,通知平台做出相应的处理,比如生成异常日志文件,Web操作界面的通知,Email的通知等等机制。 任务驱动核心任务驱动核心接收到任务管理器的指令后,会根据要求生成一条线程或使一条空闲的线程,去执行任务脚本。它拥有多个任务开启端口,以满足各种执行方式的任务执行,并且是可扩展的,比如这个任务是周期执行还是延迟执行,是任务管理器识别用户任
49、务定制信息后,向任务驱动核心命令需要从哪个端口开启任务线程。 任务线程池任务线程池是整个任务调度引擎的任务清单,上面记载了任务的来源、执行信息等等,并且为每一个任务提供了一个开展作业的场地。每一个任务都将会开启一个线程去执行,所有的线程组就是我们这里所指的任务线程池,任务线程池在概念上分为内存线程池和外存线程池。内存线程池指的是在服务器内存中的一组队列数据结构,包含了任务线程的先关信息,便于平台程序监控;外存线程池指的是持久化到数据库的任务执行信息,只有形态上与内存线程池有差别,在逻辑上他们是保持一致的。外存线程池可以用来保证在断电或JAVA进程杀死的情况下保存任务内存信息,以便
50、于系统重启时任务执行状态的恢复。3.3.3 规则处理引擎 概述数据规则处理引擎是整个数据匹配加工的核心架构。主要由三个部分组成:规则解析器、规则分发器、规则处理器。规则解析器:负责把操作员在界面配置的信息,转化成程序可识别的数据描述语言格式;负责把规则描述数据格式(xml或json格式)转化成操作员可视别的规则参数配置界面。规则分发器:检查交换项目规则列表的处理器类型,识别出该规则组应该由哪个规则处理器执行,动态加载对应规则处理器,调用并执行。规则处理器:是负责数据匹配加工的实际数据操作程序。解析规则描述数据,针对规则描述的不同,程序自动识别匹配加工条件,完成数据匹配加工处理。3
51、.3.3.1 处理流程图规则分发器规则处理流程图 设计原则从系统平台的稳定、效率、安全、可靠、可维护性的角度出发,设计了一套规则设置和规则处理在功能上完全独立、在业务逻辑上相联系的机制 “数据规则处理引擎”。这套机制的主要特点主要体现在:1. 系统平台对操作员开放的只有规则设置功能和任务时间的设置。所有的加工匹配规则都有程序自动识别规则处理,减少由于人为操作造成的错误。2. 操作员对交换项目的设置完成后,只需填写任务引擎的开启时间和周期,由“任务调度引擎”(详细说明见任务调度引擎说明部分)去调用规则处理引擎,无需等待,不耽误操作员进行平台其他功能的操作。3. 采用松耦合的设计原则
52、,在以后的项目维护过程中,规则处理器的实现修改不会影响到前台操作员的操作,同样有新规则需求扩充时,规则解析器和规则处理器都采用策略匹配设计原则,新增规则时,只需针对新规则添加新的解析器和处理器,不需要对原有代码结构做任何调整。 规则解析器规则解析器示意图 为了能让程序去识别规则,系统必须对每个规则有个预定义的数据描述格式。规则解析器由两个解析部分组成:正向解析:是程序把操作员填写输入的各种参数,根据当前设置的规则类型,按照预定义的数据描述格式,把参数插入到数据格式中,形成规则处理器能识别的规则数据描述。反向解析:是程序根据规则数据描述和预定义的数据描述格式,扫描出规则的各种参数,
53、并把这些参数重新填写到用户界面中,让操作员可以直观的看懂规则内容。操作员在页面上设置的规则有各种各样的参数包括表名、字段、字段值等,这些参数只有单独的含义,程序是无法通过这些参数自动识别并转化成数据加工的数据库条件的,所以我们需要把这些参数先转换成程序可识别的一种描述语言。针对规则定义一个规则描述格式,参数值预留。在程序获取用户输入参数后,把参数自动填写进预留位置,形成程序可识别的规则描述。现在比较流行有的有XML和JSON两种数据描述格式。 规则分发器规则分发器示意图此功能主要提供根据规则或规则组的处理器类型,分别动态去调用相符合的规则处理器去处理这条规则或规则组。每个交换项目
54、的规则或规则组数量和类型都不会相同,为了灵活适应这种变化,规则分发器提供了一个统一的入口。可以接受任意数量和任意类型的规则或规则组。在规则分发器内部去遍历传入的规则组列表,根据规则组的处理类型,动态创建规则处理器的实例,来处理这条规则组。 规则处理器此功能主要负责去识别规则的描述语言格式动态生成sql并完成数据处理部分的功能。规则处理器都是由规则分发器负责实例化,不同类型的规则或规则组都有自己专属的规则处理器。所有的规则处理器都继承自同一个父类,每个规则处理器都有自己特定的实现功能。例如新建最终数据表结构规则处理器,根据新建最终数据表规则描述去动态建立最终数据表;数据匹配处理器,
55、根据匹配规则组动态生成sql select、update、insert语句,然后再根据这些sql语句去查询数据进行匹配。3.3.4 系统核心功能设计概述系统最核心的功能主要分为三个部分:数据导入,数据加工,数据应用。具体流程如下图所示:系统核心功能图系统通过这三个部分,可以达到数据进的来,能加工,出的去的过程。下面针对每个环节作出更加详细的描述。3.3.5 数据导入设计 概述【导入方式分类】导入方式分类图导入方式根据数据来源的不同可以分为三种:数据库直连;FTP自动导入;界面手工导入。其中数据库直连和FTP自动导入属于自动导入,只需人为设置一次,之后的周期性任务都可由系统自动完成
56、。【导入流程】所有类型的导入流程如下图所示:数据导入流程图首先操作人员选择是何种类型的导入方式,定义导入参数,不同的导入方式需要以不同的参数设置,后续内容会详细描述。所有的参数都定制完成后系统会生成一条数据导入任务。任务调度引擎的任务适配器会监测到此条任务,此时任务管理器发出指令利用任务驱动核心驱动此条任务,并且推入任务线程池。系统会对任务进行管理和监控。在任务执行的过程中若出现异常(比如第三方数据源突然连接不上,交换平台本身服务器环境异常等)操作人员在监控中心会得到相应的反馈信息,给出后续操作的建议。关于任务调度引擎以及其内部组件的概念在3.3.2节中已经给出详细的解释。执行的任务:根据导入参数的设置,后台自动建表,该表称作原始数据表。执行数据导入,将导入的数据存储在原始数据表中。对于一个定制的导入,只对应一张原始数据表,如果三方数据源涉及多张表达的情况,则需定制多个导入,或者将多张表在导入环节处理成一张表。导入界
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 正规铺面租房合同协议
- 欧派橱柜衣柜合同协议
- 正规物流运输合同协议模板
- 品牌代购合同协议
- 2025担保合同(供租赁保证用)租赁担保合同
- 2025啤酒销售代理合同范本
- 陕西省汉中市2025届高三下学期二模试题 生物 含解析
- 商店长期租赁合同协议
- 2025兰州市合同范本 兰州市合同书版本
- 2025餐厅装修承包合同
- 组织供应,运输,售后服务方案
- (完整版)各档口单品菜品毛利率核算表
- 信息隐藏技术全套教学课件
- 2023年云南省昆明市中考作文真题解析及欣赏:坚持的力量
- SMC电磁阀的选型手册
- 2023年江苏泰州市第四人民医院招考聘用高层次人才11人模拟备考试卷(共1000题含答案解析)
- 工会换届选举请示样式
- 七年级音乐上册 《青少年管弦乐队指南》教学课件
- 新中国史智慧树知到答案章节测试2023年
- 员工面试登记表通用模板
- 部编版2022-2023学年六年级下册期末语文升学分班常考易错题模拟试卷(二)含解析
评论
0/150
提交评论