




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档1引言1.1术语与缩写解释缩写、术语解释ETLExtract,tra nsformand load.数据处理的二个环节:抽取、转换与装载。MVCModel,view and controller.一种系统设计的常用模式:模型、视图、控制器。IOCIn version of con trol.控制反转,面向对象设计的一种模式。Aspect Orie nted Programmi ng.面向切面编程,软件设计的一种方法。AOPRemote procedure call.远程过程调用,一种协议和程序调用方式,使得JRPC远程程序的调用跟本地程序调用在调用者角度没有差异。2概要设计2.1 2.
2、1平台设计与定位2.1.1概述从核心数据处理功能来讲,北海市地方税务局外部数据共享应用监控管理平台设计实现为一个数据 ETL( Extract Tran sform Load )平台,该平台首先从定义好的第三方数据源抽取(Extract )数据,然后经过转换(Transform )处理进入平台系统,最后通过一定的技术手段装载(Load)为可以直接应用的数据,如 下图所示。Any Source Plat1of(n(s|ETL SourceETL TargetETL Ji* SctiedulerEx就Any Target Platform数据ETL过程图北海市地方税务局外部数据共享应用监控管理平台
3、是一个专注于数据处理 的技术平台,它将提供丰富的数据导入、处理和应用方式,充分考虑多种应用场 合,实现方便的定制功能,使得操作人员在数据处理层面上有多种多样的选择方 式,可以根据不同数据来源和去向定制各异的数据导入、加工与应用规则。北海市地方税务局外部数据共享应用监控管理平台也是一个相对独立的系 统,它与其它系统之间没有业务上的直接耦合关系, 对外它只提供数据的输入接 口和输出接口,仅仅是数据的采集和提供者。所有的数据业务关系,是通过平台 的使用人员通过不同的数据处理规则去定制实现的。在这种机制下,业务规则不是固化在平台实现里,从而提供了极大的灵活性,增强了系统的可使用性。下面的北海市地方税务
4、局外部数据共享应用监控管理平台示意图比较直观的显示了上述内容。其它业务信息系统三方数据交换平台用户I!定制数据处理规则实现数据到具体业务的转换数据输入输岀数据导入数据输入输岀三方数据交换平台数据加工数据应用数据流控制流 4北海市地方税务局外部数据共享应用监控管理平台示意图通俗来讲,北海市地方税务局外部数据共享应用监控管理平台可以视作一个 数据加工厂和数据流桥梁。原始的三方数据相当于原料,原料进工厂(数据导入) 以后,经过加工过程(数据加工),成为可以发售的产品(可以应用的数据)。除 了数据工厂作用以外,它还是数据流环节中的一个桥梁, 通过这个桥梁,数据可 以在不同的应用系统之间进行流动。2.1
5、.2与现有信息系统的关系北海市地方税务局外部数据共享应用监控管理平台建设的初衷不是一个孤 立的系统,它是为了加工处理数据,进而为其他系统服务的。在现阶段,可以预 见的跟它有数据关系的系统包括政府公共信息网、省地等级别的相关数据系统(国税、工商、供电、供水、社保、国土等等)以及地税内部现存的信息系统, 包括大集中系统、风险管理平台等。北海市地方税务局外部数据共享应用监控管 理平台系统在这样一种关系网络中, 处于中间地位,通过该平台的建设,打通数据在现有的这些系统之间的流动路径,使得原本孤立的这些信息孤岛能够连成一 片,实现信息数据的共享和应用。它是各个系统之间的纽带,为建设综合治税这 样的大概念
6、平台打下了坚实的基础。地税现有信息系统(大集中、风险平台等)省市等其它部门信息系统丨三方数据交换平台综合治税平台(国税、工商等)i /r北海市地方税务局外部数据共享应用监控管理平台关系示意图因为现存的系统各种各样,对外的接口也不尽然相同,所以为了尽可能多的 适应当前系统,在对当前系统对外接口不做过多的改变的前提下 (事实上,要对 现有系统接口做修改在很多情况下没有太大的可行性),北海市地方税务局外部 数据共享应用监控管理平台将会提供多种形式的数据输入接口和输出接口,这在后续将会详细讲述。因为当前需要接入的系统就很多,业务规则也千差万别,未来也可能有更多 的系统接入,所以北海市地方税务局外部数据
7、共享应用监控管理平台不可能一开 始就设计好与其它系统之间的业务关系, 否则接入一个新的系统,平台就要做相 应修改,这个工作量是不可想象的。所以,北海市地方税务局外部数据共享应用 监控管理平台设计为和其它系统之间并没有直接的业务耦合关系,它只是提供了多种多样的数据处理规则和方式,让平台系统的操作人员去动态的定制, 这样间 接的实现了业务规则的转换,从而为多种不同业务系统的接入,提供了可能性。 站在其它系统的角度来看,北海市地方税务局外部数据共享应用监控管理平台仅 仅提供了数据的输入和输出接口。从北海市地方税务局外部数据共享应用监控管 理平台内部来看,它提供了多种多样的数据处理规则,通过这些规则的
8、灵活定制, 实现了数据的业务处理。2.2 2.2硬件与网络2.2.1 2.2.1 核心硬件和网络核心硬件与网络是指本系统在税务系统内部的硬件与网络部分。从宏观来 讲,该平台是一个分布式系统,由地理位置上分离的各个数据交换平台软硬件系 统节点组成。从单个数据交换平台软硬件系统节点来看,它又是一个自成体系的系统。所以,网络和硬件的设计也必须按照数据交换业务的实际需求来设计,实现互联和安全访问。对于部署在不同地理位置的数据交换平台软硬件系统,称之为节点。从上下 级关系来看,系统的部署可以分为多个级次,每一级次都是由一个到多个节点组 成。例如,在省、市两级进行部署,省、市分别为部署在本地的数据交换平台
9、软 件系统准备合适的硬件平台和网络环境。另外,在网络结构上,具有上下级关系的节点之间的能实现相互访问,而同级节点之间,则不一定需要直接进行相互访 问这样的功能。在这一级别上,可以采用专网、防火墙等技术实现该平台所需的 分布式网络。2.2.2 2.2.2夕卜围硬件与网络外围硬件与网络是指和第三方数据源直接有干系的硬件和网络。因为第三方数据源的情况现在并不明朗,只有到具体接入实施的时候,才会知道具体的情况。 所以,为了考虑兼容和接入不同的三方数据源, 网络接口的设计也需要具有比较 大的灵活性。关于外围硬件与网络,需要在几个不同的方面加以说明。首先,在通信的发起上,分为主动和被动方式。主动方式是指核
10、心网络主动去访问第三方数据源,这一形式只能在第三方数据源提供了网络连接支持,并开放了访问权限的前提下,才能实现,那么这需要第三方数据源提供接口主机并保 证数据安全传输的前提下,以专网或公网为传输媒介进行通信。被动方式是指在 核心网络的外围,提供可以访问的接口主机,提供多种可以访问的手段,让第三 方数据源主动发起数据通信。其次,在网络的接口和互联上可能有多种形式,包括直接互联走专网的方式 以及在公网上间接提供接口主机的形式。 那么接口主机可能位于核心网络,也可 能位于第三方数据源,这要看通信由谁发起来决定。223 223 网络互联的安全因为数据交互牵涉到大量的保密数据的交换,所以在硬件互联层面上
11、,安全 性也是非常核心的一环。在本系统设计和部署的时候,将严格按照地税和相关其 它部门的安全规范和规定,确保万无一失。另外一点就是,本系统只部署在安全 网络环境内,不考虑直接通过In ternet和第三方数据源进行交互,系统可以提 供间接的方式,例如对外的 Web上传界面,Ftp等,实现数据的采集,采集的数 据通过异步方式转移到核心系统内。2.2.4 2.2.4节点部署说明大全如下图所示,该数据交换平台系统在宏观上由部署在不同地理位置的多个节 点组成,这些节点位于不同的层级,一个层级对应有一个到多个节点。 所谓节点 也就是在一定的地理位置实际部署的软硬件系统。层级分为市级和地区县级,所 有在地
12、域行政级别相同的节点属于同一个层级, 例如南京市与闵行区市的区县级 部署节点它都属于市一级的北海市地方税务局外部数据共享应用监控管理平台 系统。节点部署只是一个宏观的概念,在实际部署中,对于要部署几层、多少节 点,这个根据市局的安排和当地实际业务情况来进行。比如说一个区(县)可以 选择部署和不部署这样的数据交换平台系基于节点的网络部署图二级节点3统。在不部署平台系统的情况下,它可以直接访问上级机构部署的节点, 实现数 据的交换和数据利用。当然这需要有一些前提条件:首先网络要互联;另外还需 在上级机构的系统里进行用户设置和访问权限的设置。225 222 软件系统软件系统的主要包括操作系统平台、数
13、据库管理系统、Web及应用服务器软 件,以及需要接下来设计和开发完成数据导入、处理、应用的核心软件系统。这 些软件系统根据需求,依据硬件和网络设置进行分布式部署。操作系统可以为Windows的服务器版本或者Linux的服务器版本,但是本着 效率、稳定性等方面的考虑,推荐以 Linux相关操作系统版本为主。数据库软件以Oracle系列数据库管理系统来进行构建。Web服务器推荐使用Nginx高性能服务器,另外包括 Tomcat等Java应用服 务器以及所需要的Ftp服务器。以上的软件只需部署安装,按照系统实际运行所需进行相应的配置即可。真正完成数据交换的核心软件需要接下来开发完成。从宏观角度来看,
14、它主要由后台数据自动化处理组件和Web操作控制系统及数据展现应用系统组成。后台数据自动化处理组件将会被设计成后台自动运行的模式,通过提前定义好的标准接口以及标准业务处理规则, 完成数据交换、处理以及生成可应用数据 接口。在编程实现上,将会充分利用 Java企业编程所提供的基础技术框架结合 相关的数据库开发技术以及充分考虑各种因素,实现最大程度上的数据自动化交换。Web操作控制系统和数据展现系统包含两部分内容,一部分是对数据交换过 程进行操作和控制,它主要完成数据交换的过程管理。另一部分是数据展现应用 系统,主要是把获取和处理好的数据,以各种形式展现出来,提供不同方式的展 现形式,支持固定和可定
15、制的信息查询。另外还提供可编程或非编程方式的数据 访问接口。2.3 2.3核心软件系统结构上级数据交換系统数据接层传输控制层数据处理层交换数据库数据应用接口数据展现界面下级数据交换系统核心软件系统结构图如上图所示,以模块化分层的方式表述了数据交换系统的软件架构,从大的方面来讲,主要包含第三方数据源、数据接口层、传输控制层、数据处理层、交 换数据库、数据应用接口和数据展现界面等分层模块。从2.2所述可以知道,软件系统由位于不同层级的节点组成。但是从软件架构上来讲,部署在不同层级的 软件系统,除了在上下级系统之间,具有不同的数据流的处理(数据的上传和下 发),除此之外,各个节点的数据交换软件系统在
16、软件架构上是一致的。231 232 第三方数据源第三方数据源是整个系统所要交换数据的原始采集地,由于各个数据源的情况差别很大,存在很大的不确定性,所以就要求系统要支持多种类别的数据源。 在综合分析以后,确定系统支持以下一些方式的数据源: 数据库直连、FTP方式, 手工文本。数据库直连是信任度最高的一种数据源提供方式。假定第三方机构以某种方式,对其数据库访问,提供了一定权限的访问接口。在这样一种方式下,系统以 事先约定好的访问规则,去对数据源进行自动访问,实现数据的采集。FTP方式可能包括两种类型,一种是在数据接口层提供FTP服务器,以供第三方数据源的相关操作人员或自动运行的程序将所需交换的数据
17、按事先约定好 的文本格式,以一定的频率进行进行文件上传。另外一种方式是第三方数据源在 其网络接口层提供可以访问的FTP服务器,本系统根据事先的约定,来完成 FTP 服务器的定时访问,获取到固定格式的文本数据。手工文本方式是指通过其它渠道,以人工方式获取到的固定格式的第三方数 据,它文本方式存储。在这一层面,需要确定通信和数据采集的一些基本协议。例如,所要采集数 据的格式、频率等。232 232 数据接口层数据接口层和第三方数据源示意图数据接口层数据访问橡块枚据上传界面-方数据源扌吐制谎> 数据流本层主要负责对外接口,提供数据库访问程序、FTP数据访问程序,FTP服务器、WE操作界面等具体
18、功能来实现和第三方数据源的连接,实现数据的采集。数据库访问程序直接连接第三方数据源提供的数据库访问接口,按照接口协议,实现数据的直接读取。FTP服务器提供给第三方机构,使其可以按照访问协议,上传本系统所需数据。FTP数据访问程序连接第三方数据源提供的 FTP服务器或者本系统FTP服务器,按照访问协议,获取数据并将其解析成可以利用的原始数据。WEB操乍界面提供数据导入功能,可以实现格式化数据的导入。除了这些对外的功能性接口以外,本层还负责数据安全传输、数据有效性检 测等。233 233 传输控制层传输控制层示意图传输控制层是实现自动化数据采集的关键,它根据事先定义好的协议,去自 动处理用户定制的
19、数据采集任务,同时处理数据采集中产生的异常情况, 并进行 反馈和预警。自动数据采集采用监听任务脚本的方式去进行处理。首先,用户通过WEB界数据接口层本的描述。其次,传输控制层得监听模块如果获取到了新增或修改过的任务描述 脚本,则对脚本进行解析,按照脚本描述的规则,去驱动相应的程序模块进行通 信,完成数据的自动化米集。另外,传输控制层还会反馈一些预警信息,比如定制的数据采集任务没有完成或者采集过程中发生了异常,传输控制层都会对此过程进行记录,通过WEB界面把预警信息反馈给用户234 234 数据处理层定制SSSK弟览PI生廉比HrtREfiUtt斯幷屈可 j数据处理层示意图数据处理层实现了原始采
20、集数据的存储以及数据的预处理等环节原始数据以数据的原始结构进行保存,并记录操作时间,操作人员等信息。数据的处理包括宏观数据和微观数据的处理, 宏观数据直接处理存储,微观数据 则要和纳税户信息进行有效的关联, 使其和地税户管建立对照表,进行自动匹配 以及手工匹配。自动匹配建立在关联字段信息一致性上,根据一定规则进行匹配,通过程序遍历,来自动生成匹配数据自动装载到对照表中, 包含的字段有税务管理码、纳税人名称、第三方唯一标识码、企业名称、主关联字段、次关联字段等。如果部分关联信息一致或没有一致的关联信息, 则需要提供界面去进行手工匹配,手工 操作后,该部分数据也自动进入对照表。数据处理层除了需要制
21、定完备的数据匹配规则以外,还需进行多重逻辑校 验,实现一定的容错性,以最大可能来反映数据的准确性。235 235 交换数据库交换数据库是交换系统所有数据的存储地,包括系统初始化数据、系统管理 数据、原始采集数据、预处理后的正式交换数据等。根据需求,数据库进行良好 的设计。236 236 数据展现界面本层主要实现数据的展现,包括各种查询分析功能。主要有固定查询、自主 定制组合查询、信息交换统计查询、单户明细信息查询、适用税种查询分析、交 换数据质量跟踪监控情况查询、可利用数据信息查询等内容。237 237 数据应用接口本层提供编程与非编程数据接口,使得交换系统的最终数据,可以为其它系 统和部门所
22、用。根据实际的需求情况,可考虑提供各种访问途径,例如:数据库 直接访问方式、FTP文本数据共享、可编程远程接口、人工导出文本等。238 238上下级系统数据共享本系统除了第三方数据交换功能以外,在级别上有省、市、县(区)三个级 别,所以数据除了从本层第三方数据源进入本层交换系统以外,还可能存在数据的跨级别访问。比如,上级部门的交换数据可提供给下级部门进行展现和应用, 而下级部门的数据交换情况,也可以提供给上级部门查看,比如提供数据交换总 览图这样的功能,使得上级部门可以直接获知数据交换系统各个地方的部署实施 情况等。上下级数据的共享可以考虑两种方式,一种是直接操作上级或下级的交换平 台系统,另
23、外一种是提供数据的上传或下发, 根据用户的实际需要,会同时提供 两种方式。239 239数据交换标准因为本系统可能会涉及到众多的第三方数据源,可能包含海量数据的交换处 理与存储,而且数据的交换和处理环节也很多,所以为了更好的对数据进行交换 和处理,使得数据最终能得到有效的利用,我们就需要制定各个环节的标准、规 范和协议。而标准、规范、协议也是自动化数据处理的一个前提,否则很多环节 必须通过人工干预才能进行。首先关于数据源的标准化,也就是本系统都支持哪些类型的数据源,某种特 定的数据源都必须要提供哪些参数。 比如,如果支持数据库直连方式,那么就需 要确定IP地址、端口、数据库、表(视图,存储过程
24、等)、字段等参数,在用户 进行数据采集任务定制的时候,如果选定了这种方式,那么上述所列的参数就必 须提供。其次是数据格式的标准化。只有采集到标准格式的数据,才能被后续环节所 自动化处理。在进行数据采集之前,必须要确定数据以什么样的载体存在, 在载 体中以什么样一种格式存在。比如以数据库直连方式,那么数据应该就是以数据 库表的方式存在。如果是以文本方式,那么就必须确定是什么样的文本格式:自定义文本格式、csv、excel等。这个还可以继续延伸下去,比如自定义格式是 怎样的自定义规则,数据字段间以什么样方式分隔,数据字段的名字采用什么样 的存储方式等等。最后,是数据源和数据存储的标准化。因为采集的
25、原始数据可能是多样性的, 而这样的原始数据是不能为后续的系统例如风险评估系统来应用的,所以在数据的预处理阶段必须遵循数据源和数据存储的标准化,使得处理过的正式数据可以 被其它第三方系统所识别,从而成为真正可以利用的数据。系统将根据税务系统 制定的数据源或数据存储标准,去建立数据源,包括表的命名、字段的命名、字 段的类型、字段的含义。因为当前阶段标准化工作还在进行中, 所以系统的设计 上要考虑多种方式的标准化接入。现阶段可以预见到的有:标准以文档的方式提 供;标准以可编程接口提供。在数据源建立或数据存储建立的时候, 根据一定的 关键字去查询该标准,如果有匹配的标准定义,则遵循标准执行。如果没有标
26、准, 则可以自定义构建。另外,还需要制定详尽的数据比对规则,只有这样,才能最大程度的进行数 据的自动化匹配,进行有效数据的筛选与存储。当然,还有很多的处理环节需要标准化,这将会在后续的详细设计中一一实 现。2.4 2.4核心软件系统设计原则2.4.1 2.4.1自动化数据交换在数据交换平台的软件体系内,处于最核心的部件是数据交换控制组件,该 组件自动运行在后台,依据既定的标准交换协议对数据交换的各个环节进行监 听,一旦监听到有需要处理的任务,则在后台自动化的完成数据的处理过程, 这 一过程不需要人工干预。如果某一过程的处理中,存在问题,则会自动预警。例 如,原本定义好每天需要有新的交换文本上传
27、到FTP进行交换,但是自动化处理过程在自动处理过程中,没有发现当天需要交换的新文本,则会向系统发一条预 警通知,该通知会以某种方式,在 WEB操作界面展现出来。2.4.2 2.4.2 可定制数据交换软件系统将实现数据交换的可定制化。在 Web操作控制界面上,具有一定权 限的操作人员,可以根据数据交换的需要,在既定的标准交换协议框架之内,实 现灵活的的可定制数据交换操作。 可以定制数据源、数据采集方式、采集频率等 等。当操作人员按照规则进行了数据交换的可定制操作以后,系统会生成一定的流程描述脚本提供给数据交换控制组件来自动运行。2.4.3 2.4.3多重方式数据的展现与利用数据交换的最终目的是为
28、了对数据进行管理和应用。那么,经过数据的采集 与预处理,得到了可以利用的数据,我们最终需要以某种方式将数据加以展现和 利用。本系统中,我们将会以两种方式来进行数据的展现与利用。对于本系统的最终用户,系统将会提供基于 Web的操作界面,来进行数据的 查询与展现。根据业务需求,将会提供固定条件的数据查询与展现,以及在一定 的业务范畴之内的可定制的数据查询与展现。当然除了提供Web操作界面提供给最终用户来进行数据的查询与展现,还需提供基于不同方式的数据查询与展现接口以供第三方系统或用户来对数据进行 查询和应用。那么根据需求,我们可以提供可编程数据访问接口、数据库直连、 FTP自动交换以及文本导出等不
29、同方式的接口。这个要在保证数据存储、传输的 安全条件下,根据具体的需求来确定最终采用哪些方式。244 244 数据全生命周期管理本系统的核心着眼点是数据的交换处理和利用, 所以对于数据的管理是最核 心的一环。基于这一问题,需要设计完备的数据生命周期管理,从数据抽取到系 统的第一步起,到数据最终的展现和应用。每个环节,都会提供相应的管理功能 和操作界面,供具有权限的操作人员去对数据进行控制和处理。另外,对于数据每个环节的操作和管理,系统都会提供详尽日志,以供后期 分析查询使用,提供数据交换成果的统计与分析功能。2.4.5 2.4.5 数据字段业务标准本系统自动化成分很高,自动建表,索引,存储过程
30、等工作都是由系统脚本 自动生成。例如在创建数据交换项的时候,数据进入系统采用的数据字段都是要 满足数据标准平台的标准的,新字段要通过数据标准平台审核。2.5 2.5数据存储设计在本系统中,数据存储的设计包括两方面的内容,首先是数据库的部署设计, 其次是数据库表的设计。因为本系统跨地域、跨部门、跨业务,跨上下级关系,所以要实现数据的采 集处理和共享,决定了本系统是一个分布式系统。数据库的部署也必须分地区, 分层次,各个地方部署各自的数据库进行交换数据的存储。市级的交换数据存储在市级的数据库服务器中,区县级的交换数据存储在区县级的数据库服务器中, 县(区)级的交换数据存储在县(区)级的数据库服务中
31、。另外,因为要经过数据的 ETL才能得到可以利用的数据,所以在数据库的 设计上,要考虑到包括原始数据数据表和经过数据转换和清洗后的正式数据表。关于数据表的设计,要包括系统初始化所需的支撑表、权限控制表以及处于 核心的业务数据表等不同类型的数据表。 另外,因为系统中存在各地各个级别的 数据,所以要设计合理的数据关联关系, 设定一定的访问控制标志,以保证数据 的安全共享与访问。因为本系统涉及到海量数据的处理,所以要充分发挥分布式存储和运算技 术,利用Oracle数据库管理技术为中心的各项技术手段,来实现数据的安全存 储,高效处理。2.6 2.6数据流管理设计从宏观方面讲,数据的流向大体有两个方向。
32、一个是横向的数据流动,也就是数据从第三方数据源获取,经过处理后进入 本系统数据库中进行存储和利用。这是本系统所需处理的核心问题,也就是数据 从第三方数据源怎样进入本系统,并成为有效可利用的数据,并且可以提供给其 它系统进行扩展应用。这在前边基本上已经过阐述。另一个方向是数据的纵向流动,也就是处于行政关系的上下级单位间数据存 储之间的数据流动。主要是上级部门的交换数据,可以共享给下级部门。下级部 门的数据交换部署实施情况、数据利用成果等可以共享给上级部门。 这里有两种 方案可以选择:一种是上级(下级)部门的交换数据存储在上级(下级)部门的 数据库中,给下级(上级)部门开发访问权限,根据访问规则,
33、下级(上级)部 门可以访问具有权限的数据。另外一种是上级(下级)部门交换数据下发(上传) 到下级(上级)部门。第一种方式的好处是数据没有冗余,集中存储。但是由于要开放下级(上级) 访问接口,这就涉及到这些接口怎么去设计、数据怎样控制、Web系统通过怎么样方式的去访问、怎么样去部署都提出了一些技术挑战。另外由于增加了下级(上 级)访问,那么一方面数据库访问压力会增大,另外一方面远程数据访问的效率 如何,也不得而知。第二种方式的好处是数据本地存储,这对数据的访问效率以及减轻上级(下 级)部门数据库的压力是有很大好处的。但是,这一方式就带来了海量数据的远 程传输控制问题,怎样保证数据能够高效安全的传
34、输到下级(上级)部门,这是 需要首要解决的技术问题。在实际系统的设计和部署中,根据上下级所要交互的数据的类型、规模等因素,同时提供这两种方式的数据共享和交换方式,用户可针对不同情况,酌情选择使用。3技术架构设计3.1 3.1概述任务调度引擎规则处理引擎Java bea nJava事务脚本HTMLCSSJquery&JavaScriptAjaxvelocitySrping FrameworkSwim FrameworkPist on FrameworkJEE平台系统架构示意图系统以Java和数据库技术为依托,采用JEE相关技术,以MVC莫式为核心, 采用分层思想,构建健壮、灵活的 Web
35、应用程序。在数据库访问层,使用高效的 SwimSql映射框架,实现数据的获取和持久化。在领域逻辑层,使用Spring框架,通过IOC和AOP实现业务模块的可配置和灵活增加、删减,另外也可以在 面的基础上,对业务实现代码进行功能增强。在表现层,综合使用各种Web2.0技术,以Jquery框架为核心,构建具有良好用户体验的 GUI。3.2基础组件3.2.1 Spring Framework【框架描述】Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声 明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久 化到数据库。Spring框架包含许多特性,并
36、被很好地组织在下图所示的六个模 块中。ORMDAOSpnng JDBC TransctonHiiMmatBJPATopLirikJ DOOJBiBalisAOPSpring AOPAspectJ integrationWebJMXJMSJCARmoUngIEJB& EmailSpring Web MVCFramework InlegolionStrutsWebWorkTapeslryJSFRicli View SupportSPsVelocityFreeMarkerPDFJaxp&r ReportsE 翼 celSpring Portlet MVCSpring框架架构图【框架引
37、用目的】1. Spring的Core圭寸装包Spring的Core圭寸装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来 消除对程序性单例模式的需要,并真正地允许我们从程序逻辑中分离出依赖 关系和配置。2. Spring的AOP封装包Spring的AOP圭寸装包提供了符合AOP Allianee 规范的面向方面的编 程(aspect-oriented programming )实现,让你可以定义,例如方法拦截 器(method-interceptors )和切点(pointcuts ),从逻辑上讲,从而减弱 代码的功
38、能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。我们主要用于对Java数据库操作的事务配置、任务异常监控。3. Spring中的MVC封装包Spring 中的 MVC 圭寸装包提供了 Web应用的 Model-View-Controller(MVC实现。Spring的MVC匡架并不是仅仅提供一种传统的实现,它提供 了一种清晰的分离模型,在领域模型代码和 web form之间。322 Swim Framework【框架描述】Swim框架是北海吉海网络科技有限公司为了 JAVA的数据库快速编程而 开发的一个0/R和sql映射编程框架,它
39、对JDBC进行了非常轻量级的操作 封装,使得JAVA程序员可以方便地使用SQL来操纵数据库,可以应用在任 何可以使用JDBC勺场合,既可以在JAVA的客户端使用,也可以在 Servlet/JSP 的 Web应用中使用。对象访问接口吕QL数据访问接口II0/R Mapper5QL MapperSwim Abstract LayerSpring JDBC TemplateJDBC wrapperJAVA Database ConnectionSWIM框架技术架构图基于Spring和Swim的应用架构图【框架引用目的】系统与数据库的交互多而杂,有第北海市地方税务局外部数据共享应用 监控管理平台自身的
40、数据库,有第三方数据源的数据库。Swim框架对于JDBC 操作是做过许多优化的,兼容主流的数据库类型,具有非常高的数据操作效 率。对于动态数据源的处理也是 Swim框架的强项,用于应对连接不同的第 三方数据源。Swim提供的0/R映射能满足系统领域逻辑模式的设计。323 Haney远程数据交换中间件【框架描述】Hancy远程数据交换中间件,为北海吉海网络科技有限公司研发的此类 中间件的Java版本,在不同的应用系统之间,经常会有数据交换的现象出 现,为了让异构信息系统集成技术平台实现数据的共享和交换,并且实现高 效的通信、安全的数据传输和编程的透明性,Haney远程数据交换中间件是必不可少的高
41、性能中间件。该中间件包含了数据交换的服务器端组件和客户端组件,它在底层实现 了数据加密、压缩、传输等系统级的功能,对外提供了一系列的数据远程交 换接口,开发人员只需要根据数据交换的需求,调用相应的编程接口,并把 组件和开发的程序正确的部署在需要交换数据的系统中,就可以方便的实现不同地理位置的信息系统之间的数据交互和共享。【框架引用原因】1) Haney采用自定义通信协议,在二进制流上做了高效的数据压缩。2) Hancy采用基于HTTP协议之上的应用协议,为远程数据的交换提供了方 便的通道。3) Haney采用MD5 RSA Blowfish等多种加密手段,确保数据交换的安全。4) Haney采
42、用类似于数字证书的客户端验证机制,保证数据交换的客户端身份不被伪造。5) Haney支持多客户端,服务器端使用java编程语言实现,客户端可以 是任何语言实现的组件,只要遵循协议就可。6) Hancy提供了 web控制台,可以对服务器端中间件的一些参数进行管理, web控制台的登录采用了用户名、密码、验证码和数字口令码结合的方式, 采用ssl进行通信,确保web控制台的安全。3.3 3.3领域模型和逻辑设计3.3.1 3.3.1 概述此部分文档用于说明该平台相关领域逻辑在技术上的设计,为了方便描述后续的实现机理,首先介绍领域逻辑层核心的两个组件: 任务调度引擎;规则处理 引擎。然后讲述核心功能
43、(数据导入、数据加工、数据应用)相关主要领域逻辑 设计、权限设计、数据上传和下发设计等。数据交换、数据加工都涉及到了一个任务的概念。为了更好地控制、管理这 些任务,我们设计了一套 任务调度引擎,负责任务的定时调度、修改、删除、宕 机后任务状态恢复等。数据加工部分引入了一个规则的概念,我们对规则的第一印象就是量多、相互独立。应对不同业务需求肯定就需要很多种规则去控制数据匹配的过程,所以系统预定的顶级规则肯定数量不少; 每种规则都有自己特有的处理方式, 否则也 不需要使用多种规则了,所以系统对每一种规则都必须有对应的独立的处理过 程。面对这种复杂的处理要求,我们设计了一套规则处理引擎,负责对用户定
44、制 的规则作出解析,映射出相应的处理程序,再配合任务调度引擎,就能灵活的在 平台中执行复杂的匹配任务。332 332任务调度引擎3.3 概述任务调度引筆开启任脣05任务管理器任务适配器任务模型|矽实例| |昭瞬矽模型2|時翊任务脚本硒魁3|任务实例| |任务脚本昭模型n|任务实洌|任务脚本任务调度引擎工作原理图本系统为实现自动化的数据采集、 匹配,则必然涉及到这个任务可能每天或 每周星期二晚上11: 30,或许仅仅每个月的最后一天执行。一个自动执行而无 须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并 尝试重新执行。为了解决这些难题,本系统特引入了任务调
45、度引擎工具的设计, 底层开发语 言为JAVA与整个应用无缝连接。整体的工作原理如上图所示,为了便于理解, 图中主要展现了几个重要的模块。整个引擎引入以下几个概念:1.任务适配器2. 任务管理器3.任务驱动核心4.任务线程池。下面我们就分别讨论他们的作用。 任务适配器任务适配器是整个任务调度引擎的耳朵,是任务调度引擎的入口。在设计上 采用了策略模式。一旦有任务模型请求连接,立即抽取、校验任务的执行配置信 息,获取到任务实例,需要执行的任务脚本方法名。通过一系列预处理,通知任 务管理器做下一步的处理。 任务管理器任务管理器是整个任务调度引
46、擎的大脑,由他来初始化未完成的任务、装载 任务脚本、监控任务线程池、发出异常警告。初始化未完成的任务:在服务器宕机或者服务器重启的情况下,JAVA进程关 闭,服务器内存中所有的任务线程肯定都会丢失。当下一次平台启动后为了继续之前的任务,任务管理器就提供了一个初始化的功能, 从数据库读取出未完成的 任务信息,自动化地启动所有任务。装载任务脚本:由任务适配器传递过来的任务模型提供了相应的需要执行的任务脚本,这些脚本定义了具体的任务内容,任务管理器就负责把脚本装备进 任务驱动核心,由任务驱动核心去驱动一个新的任务线程。监控任务线程池:任务线程一旦开启就必须有一个良好的管理机制,以便于 平台更好的控制
47、任务。这个控制的过程对于用户是不可见的,由系统去处理。但是会暴露响应的控制接口给用户,主要功能设定在交换项目的监控功能中, 后文 会具体介绍。发出异常警告:当任务的执行遇到问题,比如第三方数据源的意外关闭,网 闸的重启等意外情况导致的不能执行数据采集等情况,任务管理器马上会给平台一个警告信息,通知平台做出相应的处理,比如生成异常日志文件,Web操作界面的通知,Email的通知等等机制。3.324 3.324 任务驱动核心任务驱动核心接收到任务管理器的指令后,会根据要求生成一条线程或使一 条空闲的线程,去执行任务脚本。它拥有多个任务开启端口,以满足各种执行方 式的任务执行,并且是可扩展的,比如这
48、个任务是周期执行还是延迟执行,是任 务管理器识别用户任务定制信息后,向任务驱动核心命令需要从哪个端口开启任 务线程。3.325 3.325 任务线程池任务线程池是整个任务调度引擎的任务清单,上面记载了任务的来源、执行 信息等等,并且为每一个任务提供了一个开展作业的场地。 每一个任务都将会开 启一个线程去执行,所有的线程组就是我们这里所指的任务线程池, 任务线程池 在概念上分为内存线程池和外存线程池。内存线程池指的是在服务器内存中的一组队列数据结构,包含了任务线程的先关信息,便于平台程序监控;外存线程池指的是持久化到数据库的任务执行信息,只有形态上与内存线程池有差别,在逻辑上他们是保持一致的。外
49、存线程池可以用来保证在断电或 JAVA 进程杀死的情况下保存任务内存信息,以便于系统重启时任务执行状态的恢复。3.3.3 3.3.3规则处理引擎 概述数据规则处理引擎是整个数据匹配加工的核心架构。主要由三个部分组成: 规则解析器、规则分发器、规则处理器。规则解析器:负责把操作员在界面配置的信息,转化成程序可识别的数据描 述语言格式;负责把规则描述数据格式(xml或json格式)转化成操作员可视 别的规则参数配置界面。规则分发器:检查交换项目规则列表的处理器类型,识别出该规则组应该由 哪个规则处理器执行,动态加载对应规则处理器,调用并执行。规则处理器:是负责数据匹配
50、加工的实际数据操作程序。解析规则描述数据,针对规则描述的不同,程序自动识别匹配加工条件,完成数据匹配加工处理。333.2 333.1处理流程图<A规则设置界 面噪作员)r规则解析器匚规则组1规则组2L j1)1 丿字段翻译解析补充字段解析器计算字段解析器规则处理流程图333.3 333.2设计原则从系统平台的稳定、效率、安全、可靠、可维护性的角度出发,设计了一套规则设置和规则处理在功能上完全独立、在业务逻辑上相联系的机制一一“数据规则处理引擎”。这套机制的主要特点主要体现在:1. 系统平台对操作员开放的只有规则设置功能和任务时间的设置。所有的 加工匹配规则都有程序自动识别规则处理,减少由
51、于人为操作造成的错 误。2. 操作员对交换项目的设置完成后,只需填写任务引擎的开启时间和周期, 由“任务调度引擎”(详细说明见任务调度引擎说明部分)去调用规则处 理引擎,无需等待,不耽误操作员进行平台其他功能的操作。3. 采用松耦合的设计原则,在以后的项目维护过程中,规则处理器的实现修改不会影响到前台操作员的操作,同样有新规则需求扩充时,规则解析 器和规则处理器都采用策略匹配设计原则,新增规则时,只需针对新规 则添加新的解析器和处理器,不需要对原有代码结构做任何调整。333.4 规则解析器为了能让程序去识别规则,系统必须对每个规则有个预定义的数据描述格式。规则解析器由两个解析部
52、分组成:正向解析:是程序把操作员填写输入的各种参数,根据当前设置的规则类型, 按照预定义的数据描述格式,把参数插入到数据格式中,形成规则处理器能识别 的规则数据描述。反向解析:是程序根据规则数据描述和预定义的数据描述格式,扫描出规则 的各种参数,并把这些参数重新填写到用户界面中,让操作员可以直观的看懂规 则内容。操作员在页面上设置的规则有各种各样的参数包括表名、字段、字段值等, 这些参数只有单独的含义,程序是无法通过这些参数自动识别并转化成数据加工 的数据库条件的,所以我们需要把这些参数先转换成程序可识别的一种描述语 言。针对规则定义一个规则描述格式,参数值预留。在程序获取用户输入参数后, 把
53、参数自动填写进预留位置,形成程序可识别的规则描述。现在比较流行有的有 XML和JSON两种数据描述格式。333.5 333.4规则分发器规则分发器示意图此功能主要提供根据规则或规则组的处理器类型,分别动态去调用相符合的规则处理器去处理这条规则或规则组。每个交换项目的规则或规则组数量和类型都不会相同,为了灵活适应这种变化,规则分发器提供了一个统一的入口。 可以接受任意数量和任意类型的规则或 规则组。在规则分发器内部去遍历传入的规则组列表,根据规则组的处理类型,动态 创建规则处理器的实例,来处理这条规则组。333.6 333.5规则处理器此功能主要负责去识别规则的描述语言格式动态生成sql并完成数
54、据处理部分的功能。规则处理器都是由规则分发器负责实例化,不同类型的规则或规则组都有自己专属的规则处理器。所有的规则处理器都继承自同一个父类,每个规则处理器都有自己特定的实现功能。例如新建最终数据表结构规则处理器, 根据新建最终 数据表规则描述去动态建立最终数据表;数据匹配处理器,根据匹配规则组动态生成sql select 、update、insert语句,然后再根据这些sql语句去查询数据 进行匹配。3.3.4 3.3.4系统核心功能设计概述系统最核心的功能主要分为三个部分:数据导入,数据加工,数据应用。具 体流程如下图所示:系统核心功能图系统通过这三个部分,可以达到数据进的来,能加工,出的去
55、的过程。下面针对每个环节作出更加详细的描述。3.3.5 3.3.5数据导入设计 概述【导入方式分类】导入方式分类图导入方式根据数据来源的不同可以分为三种:数据库直连; FTP自动导入; 界面手工导入。其中数据库直连和FTP自动导入属于自动导入,只需人为设置一 次,之后的周期性任务都可由系统自动完成。【导入流程】所有类型的导入流程如下图所示:Vg作人员定义导入参薮二A数据导入流程图首先操作人员选择是何种类型的导入方式,定义导入参数,不同的导入方式 需要以不同的参数设置,后续内容会详细描述。所有的参数都定制完成后系统会 生成一条数据导入任务。任务调度引擎的任务适配器会监测到此条任务,此时任务管理器发出指令利用任务驱动核心驱动此条任务,并且推入任务线程池。系统 会对任务进行管理和监控。在任务执行的过程中若出现异常(比如第三方数据源 突然连接不上,交换平台本身服务器环境异常等)操作人员在监控中心会得到相 应的反馈信息,给出后续操作的建议。关于任务调度引擎以及其内部组件的概念 在332节中已经给出详细的解释。执行的任务:根据导入参数的设置,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司级安全培训课件
- 心理健康与体育运动
- 影视后期制作与文化产业深度融合
- 投资理财实战案例分析
- 教师培训项目的规划与执行研究
- 提升企业内部员工自我保健意识的研究与实践
- 投资机构眼中的企业价值评估与投资决策
- 教育与文化产业融合的实践与展望
- 提升中药饮片质量意识的方法和途径
- 护理质控小组培训课件
- 中国啤酒篮行业市场发展前景及发展趋势与投资战略研究报告2025-2028版
- 2025年中国直接结合镁铬砖数据监测研究报告
- 会议流程规划能力试题及答案
- 中药硬膏热贴敷操作流程
- 西安历年美术中考题及答案
- 国家开放大学《管理学基础》形考任务1-4答案
- 眩晕中医临床路径解读
- 2025年山东省威海市市属事业单位招聘(综合类)考试笔试高频重点模拟试卷提升(共500题附带答案详解)
- 2020年预防艾滋病、梅毒和乙肝(三病)母婴传播培训
- 中国音乐学院《药学分子生物学》2023-2024学年第二学期期末试卷
- 化工厂安全隐患排查培训
评论
0/150
提交评论