外部数据共享应用监控管理平台投标方案 II_第1页
外部数据共享应用监控管理平台投标方案 II_第2页
外部数据共享应用监控管理平台投标方案 II_第3页
外部数据共享应用监控管理平台投标方案 II_第4页
外部数据共享应用监控管理平台投标方案 II_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 引言1.1 术语与缩写解释缩写、术语解 释ETLExtract,transform and load. 数据处理的三个环节:抽取、转换与装载。MVCModel,view and controller. 一种系统设计的常用模式:模型、视图、控制器。IOCInversion of control. 控制反转,面向对象设计的一种模式。AOPAspect Oriented Programming. 面向切面编程,软件设计的一种方法。RPCRemote procedure call. 远程过程调用,一种协议和程序调用方式,使得远程程序的调用跟本地程序调用在调用者角度没有差异。2 概要设计2.1 2.

2、1 平台设计与定位2.1.1 概述从核心数据处理功能来讲,北海市地方税务局外部数据共享应用监控管理平台设计实现为一个数据ETL(Extract Transform Load)平台,该平台首先从定义好的第三方数据源抽取(Extract)数据,然后经过转换(Transform)处理进入平台系统,最后通过一定的技术手段装载(Load)为可以直接应用的数据,如下图所示。数据ETL过程图北海市地方税务局外部数据共享应用监控管理平台是一个专注于数据处理的技术平台,它将提供丰富的数据导入、处理和应用方式,充分考虑多种应用场合,实现方便的定制功能,使得操作人员在数据处理层面上有多种多样的选择方式,可以根据不同

3、数据来源和去向定制各异的数据导入、加工与应用规则。北海市地方税务局外部数据共享应用监控管理平台也是一个相对独立的系统,它与其它系统之间没有业务上的直接耦合关系,对外它只提供数据的输入接口和输出接口,仅仅是数据的采集和提供者。所有的数据业务关系,是通过平台的使用人员通过不同的数据处理规则去定制实现的。在这种机制下,业务规则不是固化在平台实现里,从而提供了极大的灵活性,增强了系统的可使用性。下面的北海市地方税务局外部数据共享应用监控管理平台示意图比较直观的显示了上述内容。北海市地方税务局外部数据共享应用监控管理平台示意图通俗来讲,北海市地方税务局外部数据共享应用监控管理平台可以视作一个数据加工厂和

4、数据流桥梁。原始的三方数据相当于原料,原料进工厂(数据导入)以后,经过加工过程(数据加工),成为可以发售的产品(可以应用的数据)。除了数据工厂作用以外,它还是数据流环节中的一个桥梁,通过这个桥梁,数据可以在不同的应用系统之间进行流动。2.1.2 与现有信息系统的关系北海市地方税务局外部数据共享应用监控管理平台建设的初衷不是一个孤立的系统,它是为了加工处理数据,进而为其他系统服务的。在现阶段,可以预见的跟它有数据关系的系统包括政府公共信息网、省地等级别的相关数据系统(国税、工商、供电、供水、社保、国土等等)以及地税内部现存的信息系统,包括大集中系统、风险管理平台等。北海市地方税务局外部数据共享应

5、用监控管理平台系统在这样一种关系网络中,处于中间地位,通过该平台的建设,打通数据在现有的这些系统之间的流动路径,使得原本孤立的这些信息孤岛能够连成一片,实现信息数据的共享和应用。它是各个系统之间的纽带,为建设综合治税这样的大概念平台打下了坚实的基础。北海市地方税务局外部数据共享应用监控管理平台关系示意图因为现存的系统各种各样,对外的接口也不尽然相同,所以为了尽可能多的适应当前系统,在对当前系统对外接口不做过多的改变的前提下(事实上,要对现有系统接口做修改在很多情况下没有太大的可行性),北海市地方税务局外部数据共享应用监控管理平台将会提供多种形式的数据输入接口和输出接口,这在后续将会详细讲述。因

6、为当前需要接入的系统就很多,业务规则也千差万别,未来也可能有更多的系统接入,所以北海市地方税务局外部数据共享应用监控管理平台不可能一开始就设计好与其它系统之间的业务关系,否则接入一个新的系统,平台就要做相应修改,这个工作量是不可想象的。所以,北海市地方税务局外部数据共享应用监控管理平台设计为和其它系统之间并没有直接的业务耦合关系,它只是提供了多种多样的数据处理规则和方式,让平台系统的操作人员去动态的定制,这样间接的实现了业务规则的转换,从而为多种不同业务系统的接入,提供了可能性。站在其它系统的角度来看,北海市地方税务局外部数据共享应用监控管理平台仅仅提供了数据的输入和输出接口。从北海市地方税务

7、局外部数据共享应用监控管理平台内部来看,它提供了多种多样的数据处理规则,通过这些规则的灵活定制,实现了数据的业务处理。 2.2 2.2 硬件与网络2.2.1 2.2.1 核心硬件和网络核心硬件与网络是指本系统在税务系统内部的硬件与网络部分。从宏观来讲,该平台是一个分布式系统,由地理位置上分离的各个数据交换平台软硬件系统节点组成。从单个数据交换平台软硬件系统节点来看,它又是一个自成体系的系统。所以,网络和硬件的设计也必须按照数据交换业务的实际需求来设计,实现互联和安全访问。对于部署在不同地理位置的数据交换平台软硬件系统,称之为节点。从上下级关系来看,系统的部署可以分为多个级次,每一级次都是由一个

8、到多个节点组成。例如,在省、市两级进行部署,省、市分别为部署在本地的数据交换平台软件系统准备合适的硬件平台和网络环境。另外,在网络结构上,具有上下级关系的节点之间的能实现相互访问,而同级节点之间,则不一定需要直接进行相互访问这样的功能。在这一级别上,可以采用专网、防火墙等技术实现该平台所需的分布式网络。2.2.2 2.2.2 外围硬件与网络外围硬件与网络是指和第三方数据源直接有干系的硬件和网络。因为第三方数据源的情况现在并不明朗,只有到具体接入实施的时候,才会知道具体的情况。所以,为了考虑兼容和接入不同的三方数据源,网络接口的设计也需要具有比较大的灵活性。关于外围硬件与网络,需要在几个不同的方

9、面加以说明。首先,在通信的发起上,分为主动和被动方式。主动方式是指核心网络主动去访问第三方数据源,这一形式只能在第三方数据源提供了网络连接支持,并开放了访问权限的前提下,才能实现,那么这需要第三方数据源提供接口主机并保证数据安全传输的前提下,以专网或公网为传输媒介进行通信。被动方式是指在核心网络的外围,提供可以访问的接口主机,提供多种可以访问的手段,让第三方数据源主动发起数据通信。其次,在网络的接口和互联上可能有多种形式,包括直接互联走专网的方式以及在公网上间接提供接口主机的形式。那么接口主机可能位于核心网络,也可能位于第三方数据源,这要看通信由谁发起来决定。2.2.3 2.2.3 网络互联的

10、安全因为数据交互牵涉到大量的保密数据的交换,所以在硬件互联层面上,安全性也是非常核心的一环。在本系统设计和部署的时候,将严格按照地税和相关其它部门的安全规范和规定,确保万无一失。另外一点就是,本系统只部署在安全网络环境内,不考虑直接通过Internet和第三方数据源进行交互,系统可以提供间接的方式,例如对外的Web上传界面,Ftp等,实现数据的采集,采集的数据通过异步方式转移到核心系统内。2.2.4 2.2.4 节点部署说明如下图所示,该数据交换平台系统在宏观上由部署在不同地理位置的多个节点组成,这些节点位于不同的层级,一个层级对应有一个到多个节点。所谓节点也就是在一定的地理位置实际部署的软硬

11、件系统。层级分为市级和地区县级,所有在地域行政级别相同的节点属于同一个层级,例如南京市与闵行区市的区县级部署节点它都属于市一级的北海市地方税务局外部数据共享应用监控管理平台系统。节点部署只是一个宏观的概念,在实际部署中,对于要部署几层、多少节点,这个根据市局的安排和当地实际业务情况来进行。比如说一个区(县)可以选择部署和不部署这样的数据交换平台系基于节点的网络部署图统。在不部署平台系统的情况下,它可以直接访问上级机构部署的节点,实现数据的交换和数据利用。当然这需要有一些前提条件:首先网络要互联;另外还需在上级机构的系统里进行用户设置和访问权限的设置。2.2.5 2.2.2 软件系统软件系统的主

12、要包括操作系统平台、数据库管理系统、Web及应用服务器软件,以及需要接下来设计和开发完成数据导入、处理、应用的核心软件系统。这些软件系统根据需求,依据硬件和网络设置进行分布式部署。操作系统可以为Windows的服务器版本或者Linux的服务器版本,但是本着效率、稳定性等方面的考虑,推荐以Linux相关操作系统版本为主。数据库软件以Oracle系列数据库管理系统来进行构建。Web服务器推荐使用Nginx高性能服务器,另外包括Tomcat等Java应用服务器以及所需要的Ftp服务器。以上的软件只需部署安装,按照系统实际运行所需进行相应的配置即可。真正完成数据交换的核心软件需要接下来开发完成。从宏观

13、角度来看,它主要由后台数据自动化处理组件和Web操作控制系统及数据展现应用系统组成。 后台数据自动化处理组件将会被设计成后台自动运行的模式,通过提前定义好的标准接口以及标准业务处理规则,完成数据交换、处理以及生成可应用数据接口。在编程实现上,将会充分利用Java企业编程所提供的基础技术框架结合相关的数据库开发技术以及充分考虑各种因素,实现最大程度上的数据自动化交换。Web操作控制系统和数据展现系统包含两部分内容,一部分是对数据交换过程进行操作和控制,它主要完成数据交换的过程管理。另一部分是数据展现应用系统,主要是把获取和处理好的数据,以各种形式展现出来,提供不同方式的展现形式,支持固定和可定制

14、的信息查询。另外还提供可编程或非编程方式的数据访问接口。2.3 2.3 核心软件系统结构核心软件系统结构图如上图所示,以模块化分层的方式表述了数据交换系统的软件架构,从大的方面来讲,主要包含第三方数据源、数据接口层、传输控制层、数据处理层、交换数据库、数据应用接口和数据展现界面等分层模块。从2.2所述可以知道,软件系统由位于不同层级的节点组成。但是从软件架构上来讲,部署在不同层级的软件系统,除了在上下级系统之间,具有不同的数据流的处理(数据的上传和下发),除此之外,各个节点的数据交换软件系统在软件架构上是一致的。2.3.1 2.3.2 第三方数据源第三方数据源是整个系统所要交换数据的原始采集地

15、,由于各个数据源的情况差别很大,存在很大的不确定性,所以就要求系统要支持多种类别的数据源。在综合分析以后,确定系统支持以下一些方式的数据源:数据库直连、FTP方式,手工文本。数据库直连是信任度最高的一种数据源提供方式。假定第三方机构以某种方式,对其数据库访问,提供了一定权限的访问接口。在这样一种方式下,系统以事先约定好的访问规则,去对数据源进行自动访问,实现数据的采集。FTP方式可能包括两种类型,一种是在数据接口层提供FTP服务器,以供第三方数据源的相关操作人员或自动运行的程序将所需交换的数据按事先约定好的文本格式,以一定的频率进行进行文件上传。另外一种方式是第三方数据源在其网络接口层提供可以

16、访问的FTP服务器,本系统根据事先的约定,来完成FTP服务器的定时访问,获取到固定格式的文本数据。手工文本方式是指通过其它渠道,以人工方式获取到的固定格式的第三方数据,它文本方式存储。在这一层面,需要确定通信和数据采集的一些基本协议。例如,所要采集数据的格式、频率等。2.3.2 2.3.2 数据接口层数据接口层和第三方数据源示意图本层主要负责对外接口,提供数据库访问程序、FTP数据访问程序,FTP服务器、WEB操作界面等具体功能来实现和第三方数据源的连接,实现数据的采集。数据库访问程序直接连接第三方数据源提供的数据库访问接口,按照接口协议,实现数据的直接读取。FTP服务器提供给第三方机构,使其

17、可以按照访问协议,上传本系统所需数据。FTP数据访问程序连接第三方数据源提供的FTP服务器或者本系统FTP服务器,按照访问协议,获取数据并将其解析成可以利用的原始数据。WEB操作界面提供数据导入功能,可以实现格式化数据的导入。除了这些对外的功能性接口以外,本层还负责数据安全传输、数据有效性检测等。2.3.3 2.3.3 传输控制层传输控制层示意图传输控制层是实现自动化数据采集的关键,它根据事先定义好的协议,去自动处理用户定制的数据采集任务,同时处理数据采集中产生的异常情况,并进行反馈和预警。自动数据采集采用监听任务脚本的方式去进行处理。首先,用户通过WEB界面去进行数据采集任务的定制,定制完成

18、以后,会在后台形成一定格式的任务脚本的描述。其次,传输控制层得监听模块如果获取到了新增或修改过的任务描述脚本,则对脚本进行解析,按照脚本描述的规则,去驱动相应的程序模块进行通信,完成数据的自动化采集。另外,传输控制层还会反馈一些预警信息,比如定制的数据采集任务没有完成或者采集过程中发生了异常,传输控制层都会对此过程进行记录,通过WEB界面把预警信息反馈给用户。2.3.4 2.3.4 数据处理层数据处理层示意图数据处理层实现了原始采集数据的存储以及数据的预处理等环节。原始数据以数据的原始结构进行保存,并记录操作时间,操作人员等信息。数据的处理包括宏观数据和微观数据的处理,宏观数据直接处理存储,微

19、观数据则要和纳税户信息进行有效的关联,使其和地税户管建立对照表,进行自动匹配以及手工匹配。自动匹配建立在关联字段信息一致性上,根据一定规则进行匹配,通过程序遍历,来自动生成匹配数据自动装载到对照表中,包含的字段有税务管理码、纳税人名称、第三方唯一标识码、企业名称、主关联字段、次关联字段等。如果部分关联信息一致或没有一致的关联信息,则需要提供界面去进行手工匹配,手工操作后,该部分数据也自动进入对照表。数据处理层除了需要制定完备的数据匹配规则以外,还需进行多重逻辑校验,实现一定的容错性,以最大可能来反映数据的准确性。2.3.5 2.3.5 交换数据库交换数据库是交换系统所有数据的存储地,包括系统初

20、始化数据、系统管理数据、原始采集数据、预处理后的正式交换数据等。根据需求,数据库进行良好的设计。2.3.6 2.3.6 数据展现界面本层主要实现数据的展现,包括各种查询分析功能。主要有固定查询、自主定制组合查询、信息交换统计查询、单户明细信息查询、适用税种查询分析、交换数据质量跟踪监控情况查询、可利用数据信息查询等内容。2.3.7 2.3.7 数据应用接口本层提供编程与非编程数据接口,使得交换系统的最终数据,可以为其它系统和部门所用。根据实际的需求情况,可考虑提供各种访问途径,例如:数据库直接访问方式、FTP文本数据共享、可编程远程接口、人工导出文本等。2.3.8 2.3.8 上下级系统数据共

21、享本系统除了第三方数据交换功能以外,在级别上有省、市、县(区)三个级别,所以数据除了从本层第三方数据源进入本层交换系统以外,还可能存在数据的跨级别访问。比如,上级部门的交换数据可提供给下级部门进行展现和应用,而下级部门的数据交换情况,也可以提供给上级部门查看,比如提供数据交换总览图这样的功能,使得上级部门可以直接获知数据交换系统各个地方的部署实施情况等。上下级数据的共享可以考虑两种方式,一种是直接操作上级或下级的交换平台系统,另外一种是提供数据的上传或下发,根据用户的实际需要,会同时提供两种方式。2.3.9 2.3.9 数据交换标准因为本系统可能会涉及到众多的第三方数据源,可能包含海量数据的交

22、换处理与存储,而且数据的交换和处理环节也很多,所以为了更好的对数据进行交换和处理,使得数据最终能得到有效的利用,我们就需要制定各个环节的标准、规范和协议。而标准、规范、协议也是自动化数据处理的一个前提,否则很多环节必须通过人工干预才能进行。首先关于数据源的标准化,也就是本系统都支持哪些类型的数据源,某种特定的数据源都必须要提供哪些参数。比如,如果支持数据库直连方式,那么就需要确定IP地址、端口、数据库、表(视图,存储过程等)、字段等参数,在用户进行数据采集任务定制的时候,如果选定了这种方式,那么上述所列的参数就必须提供。其次是数据格式的标准化。只有采集到标准格式的数据,才能被后续环节所自动化处

23、理。在进行数据采集之前,必须要确定数据以什么样的载体存在,在载体中以什么样一种格式存在。比如以数据库直连方式,那么数据应该就是以数据库表的方式存在。如果是以文本方式,那么就必须确定是什么样的文本格式:自定义文本格式、csv、excel等。这个还可以继续延伸下去,比如自定义格式是怎样的自定义规则,数据字段间以什么样方式分隔,数据字段的名字采用什么样的存储方式等等。最后,是数据源和数据存储的标准化。因为采集的原始数据可能是多样性的,而这样的原始数据是不能为后续的系统例如风险评估系统来应用的,所以在数据的预处理阶段必须遵循数据源和数据存储的标准化,使得处理过的正式数据可以被其它第三方系统所识别,从而

24、成为真正可以利用的数据。系统将根据税务系统制定的数据源或数据存储标准,去建立数据源,包括表的命名、字段的命名、字段的类型、字段的含义。因为当前阶段标准化工作还在进行中,所以系统的设计上要考虑多种方式的标准化接入。现阶段可以预见到的有:标准以文档的方式提供;标准以可编程接口提供。在数据源建立或数据存储建立的时候,根据一定的关键字去查询该标准,如果有匹配的标准定义,则遵循标准执行。如果没有标准,则可以自定义构建。另外,还需要制定详尽的数据比对规则,只有这样,才能最大程度的进行数据的自动化匹配,进行有效数据的筛选与存储。当然,还有很多的处理环节需要标准化,这将会在后续的详细设计中一一实现。2.4 2

25、.4 核心软件系统设计原则2.4.1 2.4.1 自动化数据交换在数据交换平台的软件体系内,处于最核心的部件是数据交换控制组件,该组件自动运行在后台,依据既定的标准交换协议对数据交换的各个环节进行监听,一旦监听到有需要处理的任务,则在后台自动化的完成数据的处理过程,这一过程不需要人工干预。如果某一过程的处理中,存在问题,则会自动预警。例如,原本定义好每天需要有新的交换文本上传到FTP进行交换,但是自动化处理过程在自动处理过程中,没有发现当天需要交换的新文本,则会向系统发一条预警通知,该通知会以某种方式,在WEB操作界面展现出来。2.4.2 2.4.2 可定制数据交换软件系统将实现数据交换的可定

26、制化。在Web操作控制界面上,具有一定权限的操作人员,可以根据数据交换的需要,在既定的标准交换协议框架之内,实现灵活的的可定制数据交换操作。可以定制数据源、数据采集方式、采集频率等等。当操作人员按照规则进行了数据交换的可定制操作以后,系统会生成一定的流程描述脚本提供给数据交换控制组件来自动运行。2.4.3 2.4.3 多重方式数据的展现与利用数据交换的最终目的是为了对数据进行管理和应用。那么,经过数据的采集与预处理,得到了可以利用的数据,我们最终需要以某种方式将数据加以展现和利用。本系统中,我们将会以两种方式来进行数据的展现与利用。对于本系统的最终用户,系统将会提供基于Web的操作界面,来进行

27、数据的查询与展现。根据业务需求,将会提供固定条件的数据查询与展现,以及在一定的业务范畴之内的可定制的数据查询与展现。当然除了提供Web操作界面提供给最终用户来进行数据的查询与展现,还需提供基于不同方式的数据查询与展现接口以供第三方系统或用户来对数据进行查询和应用。那么根据需求,我们可以提供可编程数据访问接口、数据库直连、FTP自动交换以及文本导出等不同方式的接口。这个要在保证数据存储、传输的安全条件下,根据具体的需求来确定最终采用哪些方式。2.4.4 2.4.4 数据全生命周期管理本系统的核心着眼点是数据的交换处理和利用,所以对于数据的管理是最核心的一环。基于这一问题,需要设计完备的数据生命周

28、期管理,从数据抽取到系统的第一步起,到数据最终的展现和应用。每个环节,都会提供相应的管理功能和操作界面,供具有权限的操作人员去对数据进行控制和处理。另外,对于数据每个环节的操作和管理,系统都会提供详尽日志,以供后期分析查询使用,提供数据交换成果的统计与分析功能。2.4.5 2.4.5 数据字段业务标准本系统自动化成分很高,自动建表,索引,存储过程等工作都是由系统脚本自动生成。例如在创建数据交换项的时候,数据进入系统采用的数据字段都是要满足数据标准平台的标准的,新字段要通过数据标准平台审核。2.5 2.5 数据存储设计在本系统中,数据存储的设计包括两方面的内容,首先是数据库的部署设计,其次是数据

29、库表的设计。因为本系统跨地域、跨部门、跨业务,跨上下级关系,所以要实现数据的采集处理和共享,决定了本系统是一个分布式系统。数据库的部署也必须分地区,分层次,各个地方部署各自的数据库进行交换数据的存储。市级的交换数据存储在市级的数据库服务器中,区县级的交换数据存储在区县级的数据库服务器中,县(区)级的交换数据存储在县(区)级的数据库服务中。另外,因为要经过数据的ETL,才能得到可以利用的数据,所以在数据库的设计上,要考虑到包括原始数据数据表和经过数据转换和清洗后的正式数据表。关于数据表的设计,要包括系统初始化所需的支撑表、权限控制表以及处于核心的业务数据表等不同类型的数据表。另外,因为系统中存在

30、各地各个级别的数据,所以要设计合理的数据关联关系,设定一定的访问控制标志,以保证数据的安全共享与访问。因为本系统涉及到海量数据的处理,所以要充分发挥分布式存储和运算技术,利用Oracle数据库管理技术为中心的各项技术手段,来实现数据的安全存储,高效处理。2.6 2.6 数据流管理设计从宏观方面讲,数据的流向大体有两个方向。一个是横向的数据流动,也就是数据从第三方数据源获取,经过处理后进入本系统数据库中进行存储和利用。这是本系统所需处理的核心问题,也就是数据从第三方数据源怎样进入本系统,并成为有效可利用的数据,并且可以提供给其它系统进行扩展应用。这在前边基本上已经过阐述。另一个方向是数据的纵向流

31、动,也就是处于行政关系的上下级单位间数据存储之间的数据流动。主要是上级部门的交换数据,可以共享给下级部门。下级部门的数据交换部署实施情况、数据利用成果等可以共享给上级部门。这里有两种方案可以选择:一种是上级(下级)部门的交换数据存储在上级(下级)部门的数据库中,给下级(上级)部门开发访问权限,根据访问规则,下级(上级)部门可以访问具有权限的数据。另外一种是上级(下级)部门交换数据下发(上传)到下级(上级)部门。第一种方式的好处是数据没有冗余,集中存储。但是由于要开放下级(上级)访问接口,这就涉及到这些接口怎么去设计、数据怎样控制、Web系统通过怎么样方式的去访问、怎么样去部署都提出了一些技术挑

32、战。另外由于增加了下级(上级)访问,那么一方面数据库访问压力会增大,另外一方面远程数据访问的效率如何,也不得而知。第二种方式的好处是数据本地存储,这对数据的访问效率以及减轻上级(下级)部门数据库的压力是有很大好处的。但是,这一方式就带来了海量数据的远程传输控制问题,怎样保证数据能够高效安全的传输到下级(上级)部门,这是需要首要解决的技术问题。在实际系统的设计和部署中,根据上下级所要交互的数据的类型、规模等因素,同时提供这两种方式的数据共享和交换方式,用户可针对不同情况,酌情选择使用。3 技术架构设计3.1 3.1 概述系统架构示意图系统以Java和数据库技术为依托,采用JEE相关技术,以MVC

33、模式为核心,采用分层思想,构建健壮、灵活的Web应用程序。在数据库访问层,使用高效的Swim Sql映射框架,实现数据的获取和持久化。在领域逻辑层,使用Spring框架,通过IOC和AOP,实现业务模块的可配置和灵活增加、删减,另外也可以在面的基础上,对业务实现代码进行功能增强。在表现层,综合使用各种Web2.0技术,以Jquery框架为核心,构建具有良好用户体验的GUI。3.2 基础组件3.2.1 Spring Framework【框架描述】Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久

34、化到数据库。Spring框架包含许多特性,并被很好地组织在下图所示的六个模块中。Spring框架架构图【框架引用目的】1. Spring 的 Core 封装包Spring 的 Core 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许我们从程序逻辑中分离出依赖关系和配置。2. Spring的 AOP 封装包Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方

35、法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。我们主要用于对Java数据库操作的事务配置、任务异常监控。3. Spring中的 MVC 封装包Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和web form之间。3.2.2 Swim Framework【框架描述】Swi

36、m 框架是北海吉海网络科技有限公司为了JAVA的数据库快速编程而开发的一个O/R和sql映射编程框架,它对JDBC进行了非常轻量级的操作封装,使得JAVA程序员可以方便地使用SQL来操纵数据库,可以应用在任何可以使用JDBC的场合,既可以在JAVA的客户端使用,也可以在Servlet/JSP的Web应用中使用。SWIM框架技术架构图基于Spring和Swim的应用架构图【框架引用目的】系统与数据库的交互多而杂,有第北海市地方税务局外部数据共享应用监控管理平台自身的数据库,有第三方数据源的数据库。Swim框架对于JDBC操作是做过许多优化的,兼容主流的数据库类型,具有非常高的数据操作效率。对于动

37、态数据源的处理也是Swim框架的强项,用于应对连接不同的第三方数据源。Swim提供的O/R映射能满足系统领域逻辑模式的设计。3.2.3 Hancy远程数据交换中间件【框架描述】Hancy 远程数据交换中间件 ,为北海吉海网络科技有限公司研发的此类中间件的Java版本,在不同的应用系统之间,经常会有数据交换的现象出现,为了让异构信息系统集成技术平台实现数据的共享和交换,并且实现高效的通信、安全的数据传输和编程的透明性,Hancy远程数据交换中间件是必不可少的高性能中间件。该中间件包含了数据交换的服务器端组件和客户端组件,它在底层实现了数据加密、压缩、传输等系统级的功能,对外提供了一系列的数据远程

38、交换接口,开发人员只需要根据数据交换的需求,调用相应的编程接口,并把组件和开发的程序正确的部署在需要交换数据的系统中,就可以方便的实现不同地理位置的信息系统之间的数据交互和共享。【框架引用原因】1)Hancy采用自定义通信协议,在二进制流上做了高效的数据压缩。2)Hancy采用基于HTTP协议之上的应用协议,为远程数据的交换提供了方便的通道。3)Hancy采用MD5、RSA、Blowfish等多种加密手段,确保数据交换的安全。4)Hancy采用类似于数字证书的客户端验证机制,保证数据交换的客户端身份不被伪造。5) Hancy支持多客户端,服务器端使用java编程语言实现,客户端可以是任何语言实

39、现的组件,只要遵循协议就可。6)Hancy提供了web控制台,可以对服务器端中间件的一些参数进行管理,web控制台的登录采用了用户名、密码、验证码和数字口令码结合的方式,采用ssl进行通信,确保web控制台的安全。3.3 3.3 领域模型和逻辑设计3.3.1 3.3.1 概述此部分文档用于说明该平台相关领域逻辑在技术上的设计,为了方便描述后续的实现机理,首先介绍领域逻辑层核心的两个组件:任务调度引擎;规则处理引擎。然后讲述核心功能(数据导入、数据加工、数据应用)相关主要领域逻辑设计、权限设计、数据上传和下发设计等。数据交换、数据加工都涉及到了一个任务的概念。为了更好地控制、管理这些任务,我们设

40、计了一套任务调度引擎,负责任务的定时调度、修改、删除、宕机后任务状态恢复等。数据加工部分引入了一个规则的概念,我们对规则的第一印象就是量多、相互独立。应对不同业务需求肯定就需要很多种规则去控制数据匹配的过程,所以系统预定的顶级规则肯定数量不少;每种规则都有自己特有的处理方式,否则也不需要使用多种规则了,所以系统对每一种规则都必须有对应的独立的处理过程。面对这种复杂的处理要求,我们设计了一套规则处理引擎,负责对用户定制的规则作出解析,映射出相应的处理程序,再配合任务调度引擎,就能灵活的在平台中执行复杂的匹配任务。3.3.2 3.3.2 任务调度引擎 概述任务调度引擎

41、工作原理图本系统为实现自动化的数据采集、匹配,则必然涉及到这个任务可能每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行。为了解决这些难题,本系统特引入了任务调度引擎工具的设计,底层开发语言为JAVA,与整个应用无缝连接。整体的工作原理如上图所示,为了便于理解,图中主要展现了几个重要的模块。整个引擎引入以下几个概念:1.任务适配器 2.任务管理器 3.任务驱动核心 4.任务线程池。下面我们就分别讨论他们的作用。 任务适配器任务适配器是整个任务调度引擎的耳朵

42、,是任务调度引擎的入口。在设计上采用了策略模式。一旦有任务模型请求连接,立即抽取、校验任务的执行配置信息,获取到任务实例,需要执行的任务脚本方法名。通过一系列预处理,通知任务管理器做下一步的处理。 任务管理器任务管理器是整个任务调度引擎的大脑,由他来初始化未完成的任务、装载任务脚本、监控任务线程池、发出异常警告。初始化未完成的任务:在服务器宕机或者服务器重启的情况下,JAVA进程关闭,服务器内存中所有的任务线程肯定都会丢失。当下一次平台启动后为了继续之前的任务,任务管理器就提供了一个初始化的功能,从数据库读取出未完成的任务信息,自动化地启动所有任务。装载任务脚本:

43、 由任务适配器传递过来的任务模型提供了相应的需要执行的任务脚本,这些脚本定义了具体的任务内容,任务管理器就负责把脚本装备进任务驱动核心,由任务驱动核心去驱动一个新的任务线程。监控任务线程池:任务线程一旦开启就必须有一个良好的管理机制,以便于平台更好的控制任务。这个控制的过程对于用户是不可见的,由系统去处理。但是会暴露响应的控制接口给用户,主要功能设定在交换项目的监控功能中,后文会具体介绍。发出异常警告:当任务的执行遇到问题,比如第三方数据源的意外关闭,网闸的重启等意外情况导致的不能执行数据采集等情况,任务管理器马上会给平台一个警告信息,通知平台做出相应的处理,比如生成异常日志文件,Web操作界

44、面的通知,Email的通知等等机制。 任务驱动核心任务驱动核心接收到任务管理器的指令后,会根据要求生成一条线程或使一条空闲的线程,去执行任务脚本。它拥有多个任务开启端口,以满足各种执行方式的任务执行,并且是可扩展的,比如这个任务是周期执行还是延迟执行,是任务管理器识别用户任务定制信息后,向任务驱动核心命令需要从哪个端口开启任务线程。 任务线程池任务线程池是整个任务调度引擎的任务清单,上面记载了任务的来源、执行信息等等,并且为每一个任务提供了一个开展作业的场地。每一个任务都将会开启一个线程去执行,所有的线程组就是我们这里所指的任务线程池

45、,任务线程池在概念上分为内存线程池和外存线程池。内存线程池指的是在服务器内存中的一组队列数据结构,包含了任务线程的先关信息,便于平台程序监控;外存线程池指的是持久化到数据库的任务执行信息,只有形态上与内存线程池有差别,在逻辑上他们是保持一致的。外存线程池可以用来保证在断电或JAVA进程杀死的情况下保存任务内存信息,以便于系统重启时任务执行状态的恢复。3.3.3 3.3.3 规则处理引擎 概述数据规则处理引擎是整个数据匹配加工的核心架构。主要由三个部分组成:规则解析器、规则分发器、规则处理器。规则解析器:负责把操作员在界面配置的信息,转化成程序可识别的数据描述语言格

46、式;负责把规则描述数据格式(xml或json格式)转化成操作员可视别的规则参数配置界面。规则分发器:检查交换项目规则列表的处理器类型,识别出该规则组应该由哪个规则处理器执行,动态加载对应规则处理器,调用并执行。规则处理器:是负责数据匹配加工的实际数据操作程序。解析规则描述数据,针对规则描述的不同,程序自动识别匹配加工条件,完成数据匹配加工处理。 处理流程图规则分发器规则处理流程图 设计原则从系统平台的稳定、效率、安全、可靠、可维护性的角度出发,设计了一套规则设置和规则处理在功能上完全独立、在业务逻辑上相联系的机制 “数据规则处理引擎”

47、。这套机制的主要特点主要体现在:1. 系统平台对操作员开放的只有规则设置功能和任务时间的设置。所有的加工匹配规则都有程序自动识别规则处理,减少由于人为操作造成的错误。2. 操作员对交换项目的设置完成后,只需填写任务引擎的开启时间和周期,由“任务调度引擎”(详细说明见任务调度引擎说明部分)去调用规则处理引擎,无需等待,不耽误操作员进行平台其他功能的操作。3. 采用松耦合的设计原则,在以后的项目维护过程中,规则处理器的实现修改不会影响到前台操作员的操作,同样有新规则需求扩充时,规则解析器和规则处理器都采用策略匹配设计原则,新增规则时,只需针对新规则添加新的解析器和处理器,不需要对原有代码结构做任何

48、调整。 规则解析器规则解析器示意图 为了能让程序去识别规则,系统必须对每个规则有个预定义的数据描述格式。规则解析器由两个解析部分组成:正向解析:是程序把操作员填写输入的各种参数,根据当前设置的规则类型,按照预定义的数据描述格式,把参数插入到数据格式中,形成规则处理器能识别的规则数据描述。反向解析:是程序根据规则数据描述和预定义的数据描述格式,扫描出规则的各种参数,并把这些参数重新填写到用户界面中,让操作员可以直观的看懂规则内容。操作员在页面上设置的规则有各种各样的参数包括表名、字段、字段值等,这些参数只有单独的含义,程序是无法通过这些参数自动识别并转化成数据加工的

49、数据库条件的,所以我们需要把这些参数先转换成程序可识别的一种描述语言。针对规则定义一个规则描述格式,参数值预留。在程序获取用户输入参数后,把参数自动填写进预留位置,形成程序可识别的规则描述。现在比较流行有的有XML和JSON两种数据描述格式。 规则分发器规则分发器示意图此功能主要提供根据规则或规则组的处理器类型,分别动态去调用相符合的规则处理器去处理这条规则或规则组。每个交换项目的规则或规则组数量和类型都不会相同,为了灵活适应这种变化,规则分发器提供了一个统一的入口。可以接受任意数量和任意类型的规则或规则组。在规则分发器内部去遍历传入的规则组列表,根据规则组的处理

50、类型,动态创建规则处理器的实例,来处理这条规则组。 规则处理器此功能主要负责去识别规则的描述语言格式动态生成sql并完成数据处理部分的功能。规则处理器都是由规则分发器负责实例化,不同类型的规则或规则组都有自己专属的规则处理器。所有的规则处理器都继承自同一个父类,每个规则处理器都有自己特定的实现功能。例如新建最终数据表结构规则处理器,根据新建最终数据表规则描述去动态建立最终数据表;数据匹配处理器,根据匹配规则组动态生成sql select、update、insert语句,然后再根据这些sql语句去查询数据进行匹配。3.3.4 3.3.4 系统核心功能设计概述系统最核

51、心的功能主要分为三个部分:数据导入,数据加工,数据应用。具体流程如下图所示:系统核心功能图系统通过这三个部分,可以达到数据进的来,能加工,出的去的过程。下面针对每个环节作出更加详细的描述。3.3.5 3.3.5 数据导入设计 概述【导入方式分类】导入方式分类图导入方式根据数据来源的不同可以分为三种:数据库直连;FTP自动导入;界面手工导入。其中数据库直连和FTP自动导入属于自动导入,只需人为设置一次,之后的周期性任务都可由系统自动完成。【导入流程】所有类型的导入流程如下图所示:数据导入流程图首先操作人员选择是何种类型的导入方式,定义导入参数,不同的导入方式需要以不

52、同的参数设置,后续内容会详细描述。所有的参数都定制完成后系统会生成一条数据导入任务。任务调度引擎的任务适配器会监测到此条任务,此时任务管理器发出指令利用任务驱动核心驱动此条任务,并且推入任务线程池。系统会对任务进行管理和监控。在任务执行的过程中若出现异常(比如第三方数据源突然连接不上,交换平台本身服务器环境异常等)操作人员在监控中心会得到相应的反馈信息,给出后续操作的建议。关于任务调度引擎以及其内部组件的概念在3.3.2节中已经给出详细的解释。执行的任务:根据导入参数的设置,后台自动建表,该表称作原始数据表。执行数据导入,将导入的数据存储在原始数据表中。对于一个定制的导入,只对应一张原始数据表

53、,如果三方数据源涉及多张表达的情况,则需定制多个导入,或者将多张表在导入环节处理成一张表。导入界面的设计采用向导方式,稍有数据库知识的操作人员即可准确地定制数据交换项,完成导入工作。 数据库直接导入数据库直连方式支持oracle,sybase,sqlserver,mysql等常见数据库,如选择oracle,系统将提供ip,端口,sid,user,password等相关项目的设置,设置完成后提供连接测试功能,保证数据库能顺利连通。数据库连通后指定数据库直连导入类型,导入类型又可分为三种类型:表方式、视图方式、存储过程方式。数据库直连导入类型分类图操作人员需要录入如下

54、信息作为数据交换项的属性:l IP,端口号,数据库类型,表名(视图名,存储过程名)l 导入频率(天、周、月等)l 导入数据的字段名和类型(默认显示源的字段名称和类型,如果有数据交换定义标准则自动根据字段含义进行比对按标准进行名称和类型的设置,操作人员可以修改)数据库直连导入工作原理图 FTP导入FTP导入的方式在外部表现上有两种:1.FTP服务器为外部服务器;2.FTP服务器为三方数据交换内部FTP服务器。在系统内部实现上是一样的,都是通过连接FTP服务器,下载相关数据。这边主要要说的是支持的文件类型,系统预设是如下三种,后续可以扩展,EXCEL、CSV、TXT。

55、FTP方式支持的文件类型图操作人员需要录入如下信息作为数据交换项的属性:l IP,端口号,目录l 导入频率(天、周、月、年等)l 文本格式(表头、数据字段名称和类型、分隔符等)FTP导入工作原理图 界面人工上传创建界面人工上传方式的数据交换项后,操作人员可以通过系统提供的web界面上传数据。支持的文件类型和FTP方式的一致,系统预设是如下三种,后续可以扩展,EXCEL、CSV、TXT。界面人工上传方式支持的文件类型图操作人员需要录入如下信息作为数据交换项的属性:l 文本格式(表头、数据字段名称和类型、分隔符等)以下为界面分工上传方式的工作原理图:界面人工上传导入工

56、作原理图3.3.6 3.3.6 数据加工设计 自动匹配设计.1 .1 概述数据加工流程示意图一个完整的自动匹配流程由两部分组合完成:前台配置、后台数据处理。 前台配置:有操作员负责完成,针对交换项目逐步按步骤完成匹配数据源设置最终表结构定义匹配加工规则定义任务时间保存 。 输入匹配数据源表名 加载匹配数据源和原始数据表结构信息 表结构信息临时保存以便设置规则时调用 对照表是指经过加工以后,数据的最终存储表。 勾选匹配数据表和原始数据表需要导入进最终数据表的有效字段。 对勾选的字段进行统一规范化重定义。 配置界面由规则类型规定。 规则参数

57、:匹配表字段名、匹配表字段值、原始表字段名、原始表字段值、字段关系、截取下标 设置匹配执行时间和周期后台数据处理:由任务引擎自动完成,检测并触发任务执行,创建规则处理引擎,传入规则组列表,规则处理引擎自动识别解析器类型,依次执行规则组,并记录相关日志信息。 .2 .2 设计原则数据加工设计原则示意图灵活性:三方原始数据的不确定,数据结构未知,匹配条件交换平台无法预知,自动匹配设计要能够处理各种各样的数据进行比对。通用性:提取整个匹配流程中所有交换项目数据处理过程共同的地方:数据源设置、最终表结构定义、规则定义、任务时间设置,变成操作员可配置。安全可靠性:操作员只需要配置参数就可完成整个自动匹配流程,核心的数据匹配处理由系统分析配置去执行。核心的数据处理对于操作员来说是一个“黑盒”。如果配置参数有误,这个“黑盒”程序会自动阻止后续任务执行,并返回错误信息给操作员。系统可扩展性:规则解析变化,数据存放位置变化等等对操作员来说,没有任何的影响,操作员只需关心配置参数的设置是否正确。其他调整都在程序内部调整。时效性:匹配数据是一个大量数据操作的过程,数据量越大,所需要的时间越长,操作员不可能一直等待数据匹配的完成。操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论