




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1 引言1.1 術(shù)語與縮寫解釋縮寫、術(shù)語解 釋ETLExtract,transform and load. 數(shù)據(jù)處理的三個環(huán)節(jié):抽取、轉(zhuǎn)換與裝載。MVCModel,view and controller. 一種系統(tǒng)設(shè)計的常用模式:模型、視圖、控制器。IOCInversion of control. 控制反轉(zhuǎn),面向?qū)ο笤O(shè)計的一種模式。AOPAspect Oriented Programming. 面向切面編程,軟件設(shè)計的一種方法。RPCRemote procedure call. 遠程過程調(diào)用,一種協(xié)議和程序調(diào)用方式,使得遠程程序的調(diào)用跟本地程序調(diào)用在調(diào)用者角度沒有差異。2 概要設(shè)計2.1 2.
2、1 平臺設(shè)計與定位2.1.1 概述從核心數(shù)據(jù)處理功能來講,北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺設(shè)計實現(xiàn)為一個數(shù)據(jù)ETL(Extract Transform Load)平臺,該平臺首先從定義好的第三方數(shù)據(jù)源抽取(Extract)數(shù)據(jù),然后經(jīng)過轉(zhuǎn)換(Transform)處理進入平臺系統(tǒng),最后通過一定的技術(shù)手段裝載(Load)為可以直接應用的數(shù)據(jù),如下圖所示。數(shù)據(jù)ETL過程圖北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺是一個專注于數(shù)據(jù)處理的技術(shù)平臺,它將提供豐富的數(shù)據(jù)導入、處理和應用方式,充分考慮多種應用場合,實現(xiàn)方便的定制功能,使得操作人員在數(shù)據(jù)處理層面上有多種多樣的選擇方式,可以根據(jù)不同
3、數(shù)據(jù)來源和去向定制各異的數(shù)據(jù)導入、加工與應用規(guī)則。北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺也是一個相對獨立的系統(tǒng),它與其它系統(tǒng)之間沒有業(yè)務(wù)上的直接耦合關(guān)系,對外它只提供數(shù)據(jù)的輸入接口和輸出接口,僅僅是數(shù)據(jù)的采集和提供者。所有的數(shù)據(jù)業(yè)務(wù)關(guān)系,是通過平臺的使用人員通過不同的數(shù)據(jù)處理規(guī)則去定制實現(xiàn)的。在這種機制下,業(yè)務(wù)規(guī)則不是固化在平臺實現(xiàn)里,從而提供了極大的靈活性,增強了系統(tǒng)的可使用性。下面的北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺示意圖比較直觀的顯示了上述內(nèi)容。北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺示意圖通俗來講,北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺可以視作一個數(shù)據(jù)加工廠和
4、數(shù)據(jù)流橋梁。原始的三方數(shù)據(jù)相當于原料,原料進工廠(數(shù)據(jù)導入)以后,經(jīng)過加工過程(數(shù)據(jù)加工),成為可以發(fā)售的產(chǎn)品(可以應用的數(shù)據(jù))。除了數(shù)據(jù)工廠作用以外,它還是數(shù)據(jù)流環(huán)節(jié)中的一個橋梁,通過這個橋梁,數(shù)據(jù)可以在不同的應用系統(tǒng)之間進行流動。2.1.2 與現(xiàn)有信息系統(tǒng)的關(guān)系北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺建設(shè)的初衷不是一個孤立的系統(tǒng),它是為了加工處理數(shù)據(jù),進而為其他系統(tǒng)服務(wù)的。在現(xiàn)階段,可以預見的跟它有數(shù)據(jù)關(guān)系的系統(tǒng)包括政府公共信息網(wǎng)、省地等級別的相關(guān)數(shù)據(jù)系統(tǒng)(國稅、工商、供電、供水、社保、國土等等)以及地稅內(nèi)部現(xiàn)存的信息系統(tǒng),包括大集中系統(tǒng)、風險管理平臺等。北海市地方稅務(wù)局外部數(shù)據(jù)共享應
5、用監(jiān)控管理平臺系統(tǒng)在這樣一種關(guān)系網(wǎng)絡(luò)中,處于中間地位,通過該平臺的建設(shè),打通數(shù)據(jù)在現(xiàn)有的這些系統(tǒng)之間的流動路徑,使得原本孤立的這些信息孤島能夠連成一片,實現(xiàn)信息數(shù)據(jù)的共享和應用。它是各個系統(tǒng)之間的紐帶,為建設(shè)綜合治稅這樣的大概念平臺打下了堅實的基礎(chǔ)。北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺關(guān)系示意圖因為現(xiàn)存的系統(tǒng)各種各樣,對外的接口也不盡然相同,所以為了盡可能多的適應當前系統(tǒng),在對當前系統(tǒng)對外接口不做過多的改變的前提下(事實上,要對現(xiàn)有系統(tǒng)接口做修改在很多情況下沒有太大的可行性),北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺將會提供多種形式的數(shù)據(jù)輸入接口和輸出接口,這在后續(xù)將會詳細講述。因
6、為當前需要接入的系統(tǒng)就很多,業(yè)務(wù)規(guī)則也千差萬別,未來也可能有更多的系統(tǒng)接入,所以北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺不可能一開始就設(shè)計好與其它系統(tǒng)之間的業(yè)務(wù)關(guān)系,否則接入一個新的系統(tǒng),平臺就要做相應修改,這個工作量是不可想象的。所以,北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺設(shè)計為和其它系統(tǒng)之間并沒有直接的業(yè)務(wù)耦合關(guān)系,它只是提供了多種多樣的數(shù)據(jù)處理規(guī)則和方式,讓平臺系統(tǒng)的操作人員去動態(tài)的定制,這樣間接的實現(xiàn)了業(yè)務(wù)規(guī)則的轉(zhuǎn)換,從而為多種不同業(yè)務(wù)系統(tǒng)的接入,提供了可能性。站在其它系統(tǒng)的角度來看,北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺僅僅提供了數(shù)據(jù)的輸入和輸出接口。從北海市地方稅務(wù)
7、局外部數(shù)據(jù)共享應用監(jiān)控管理平臺內(nèi)部來看,它提供了多種多樣的數(shù)據(jù)處理規(guī)則,通過這些規(guī)則的靈活定制,實現(xiàn)了數(shù)據(jù)的業(yè)務(wù)處理。 2.2 2.2 硬件與網(wǎng)絡(luò)2.2.1 2.2.1 核心硬件和網(wǎng)絡(luò)核心硬件與網(wǎng)絡(luò)是指本系統(tǒng)在稅務(wù)系統(tǒng)內(nèi)部的硬件與網(wǎng)絡(luò)部分。從宏觀來講,該平臺是一個分布式系統(tǒng),由地理位置上分離的各個數(shù)據(jù)交換平臺軟硬件系統(tǒng)節(jié)點組成。從單個數(shù)據(jù)交換平臺軟硬件系統(tǒng)節(jié)點來看,它又是一個自成體系的系統(tǒng)。所以,網(wǎng)絡(luò)和硬件的設(shè)計也必須按照數(shù)據(jù)交換業(yè)務(wù)的實際需求來設(shè)計,實現(xiàn)互聯(lián)和安全訪問。對于部署在不同地理位置的數(shù)據(jù)交換平臺軟硬件系統(tǒng),稱之為節(jié)點。從上下級關(guān)系來看,系統(tǒng)的部署可以分為多個級次,每一級次都是由一個
8、到多個節(jié)點組成。例如,在省、市兩級進行部署,省、市分別為部署在本地的數(shù)據(jù)交換平臺軟件系統(tǒng)準備合適的硬件平臺和網(wǎng)絡(luò)環(huán)境。另外,在網(wǎng)絡(luò)結(jié)構(gòu)上,具有上下級關(guān)系的節(jié)點之間的能實現(xiàn)相互訪問,而同級節(jié)點之間,則不一定需要直接進行相互訪問這樣的功能。在這一級別上,可以采用專網(wǎng)、防火墻等技術(shù)實現(xiàn)該平臺所需的分布式網(wǎng)絡(luò)。2.2.2 2.2.2 外圍硬件與網(wǎng)絡(luò)外圍硬件與網(wǎng)絡(luò)是指和第三方數(shù)據(jù)源直接有干系的硬件和網(wǎng)絡(luò)。因為第三方數(shù)據(jù)源的情況現(xiàn)在并不明朗,只有到具體接入實施的時候,才會知道具體的情況。所以,為了考慮兼容和接入不同的三方數(shù)據(jù)源,網(wǎng)絡(luò)接口的設(shè)計也需要具有比較大的靈活性。關(guān)于外圍硬件與網(wǎng)絡(luò),需要在幾個不同的方
9、面加以說明。首先,在通信的發(fā)起上,分為主動和被動方式。主動方式是指核心網(wǎng)絡(luò)主動去訪問第三方數(shù)據(jù)源,這一形式只能在第三方數(shù)據(jù)源提供了網(wǎng)絡(luò)連接支持,并開放了訪問權(quán)限的前提下,才能實現(xiàn),那么這需要第三方數(shù)據(jù)源提供接口主機并保證數(shù)據(jù)安全傳輸?shù)那疤嵯?,以專網(wǎng)或公網(wǎng)為傳輸媒介進行通信。被動方式是指在核心網(wǎng)絡(luò)的外圍,提供可以訪問的接口主機,提供多種可以訪問的手段,讓第三方數(shù)據(jù)源主動發(fā)起數(shù)據(jù)通信。其次,在網(wǎng)絡(luò)的接口和互聯(lián)上可能有多種形式,包括直接互聯(lián)走專網(wǎng)的方式以及在公網(wǎng)上間接提供接口主機的形式。那么接口主機可能位于核心網(wǎng)絡(luò),也可能位于第三方數(shù)據(jù)源,這要看通信由誰發(fā)起來決定。2.2.3 2.2.3 網(wǎng)絡(luò)互聯(lián)的
10、安全因為數(shù)據(jù)交互牽涉到大量的保密數(shù)據(jù)的交換,所以在硬件互聯(lián)層面上,安全性也是非常核心的一環(huán)。在本系統(tǒng)設(shè)計和部署的時候,將嚴格按照地稅和相關(guān)其它部門的安全規(guī)范和規(guī)定,確保萬無一失。另外一點就是,本系統(tǒng)只部署在安全網(wǎng)絡(luò)環(huán)境內(nèi),不考慮直接通過Internet和第三方數(shù)據(jù)源進行交互,系統(tǒng)可以提供間接的方式,例如對外的Web上傳界面,F(xiàn)tp等,實現(xiàn)數(shù)據(jù)的采集,采集的數(shù)據(jù)通過異步方式轉(zhuǎn)移到核心系統(tǒng)內(nèi)。2.2.4 2.2.4 節(jié)點部署說明如下圖所示,該數(shù)據(jù)交換平臺系統(tǒng)在宏觀上由部署在不同地理位置的多個節(jié)點組成,這些節(jié)點位于不同的層級,一個層級對應有一個到多個節(jié)點。所謂節(jié)點也就是在一定的地理位置實際部署的軟硬
11、件系統(tǒng)。層級分為市級和地區(qū)縣級,所有在地域行政級別相同的節(jié)點屬于同一個層級,例如南京市與閔行區(qū)市的區(qū)縣級部署節(jié)點它都屬于市一級的北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺系統(tǒng)。節(jié)點部署只是一個宏觀的概念,在實際部署中,對于要部署幾層、多少節(jié)點,這個根據(jù)市局的安排和當?shù)貙嶋H業(yè)務(wù)情況來進行。比如說一個區(qū)(縣)可以選擇部署和不部署這樣的數(shù)據(jù)交換平臺系基于節(jié)點的網(wǎng)絡(luò)部署圖統(tǒng)。在不部署平臺系統(tǒng)的情況下,它可以直接訪問上級機構(gòu)部署的節(jié)點,實現(xiàn)數(shù)據(jù)的交換和數(shù)據(jù)利用。當然這需要有一些前提條件:首先網(wǎng)絡(luò)要互聯(lián);另外還需在上級機構(gòu)的系統(tǒng)里進行用戶設(shè)置和訪問權(quán)限的設(shè)置。2.2.5 2.2.2 軟件系統(tǒng)軟件系統(tǒng)的主
12、要包括操作系統(tǒng)平臺、數(shù)據(jù)庫管理系統(tǒng)、Web及應用服務(wù)器軟件,以及需要接下來設(shè)計和開發(fā)完成數(shù)據(jù)導入、處理、應用的核心軟件系統(tǒng)。這些軟件系統(tǒng)根據(jù)需求,依據(jù)硬件和網(wǎng)絡(luò)設(shè)置進行分布式部署。操作系統(tǒng)可以為Windows的服務(wù)器版本或者Linux的服務(wù)器版本,但是本著效率、穩(wěn)定性等方面的考慮,推薦以Linux相關(guān)操作系統(tǒng)版本為主。數(shù)據(jù)庫軟件以O(shè)racle系列數(shù)據(jù)庫管理系統(tǒng)來進行構(gòu)建。Web服務(wù)器推薦使用Nginx高性能服務(wù)器,另外包括Tomcat等Java應用服務(wù)器以及所需要的Ftp服務(wù)器。以上的軟件只需部署安裝,按照系統(tǒng)實際運行所需進行相應的配置即可。真正完成數(shù)據(jù)交換的核心軟件需要接下來開發(fā)完成。從宏觀
13、角度來看,它主要由后臺數(shù)據(jù)自動化處理組件和Web操作控制系統(tǒng)及數(shù)據(jù)展現(xiàn)應用系統(tǒng)組成。 后臺數(shù)據(jù)自動化處理組件將會被設(shè)計成后臺自動運行的模式,通過提前定義好的標準接口以及標準業(yè)務(wù)處理規(guī)則,完成數(shù)據(jù)交換、處理以及生成可應用數(shù)據(jù)接口。在編程實現(xiàn)上,將會充分利用Java企業(yè)編程所提供的基礎(chǔ)技術(shù)框架結(jié)合相關(guān)的數(shù)據(jù)庫開發(fā)技術(shù)以及充分考慮各種因素,實現(xiàn)最大程度上的數(shù)據(jù)自動化交換。Web操作控制系統(tǒng)和數(shù)據(jù)展現(xiàn)系統(tǒng)包含兩部分內(nèi)容,一部分是對數(shù)據(jù)交換過程進行操作和控制,它主要完成數(shù)據(jù)交換的過程管理。另一部分是數(shù)據(jù)展現(xiàn)應用系統(tǒng),主要是把獲取和處理好的數(shù)據(jù),以各種形式展現(xiàn)出來,提供不同方式的展現(xiàn)形式,支持固定和可定制
14、的信息查詢。另外還提供可編程或非編程方式的數(shù)據(jù)訪問接口。2.3 2.3 核心軟件系統(tǒng)結(jié)構(gòu)核心軟件系統(tǒng)結(jié)構(gòu)圖如上圖所示,以模塊化分層的方式表述了數(shù)據(jù)交換系統(tǒng)的軟件架構(gòu),從大的方面來講,主要包含第三方數(shù)據(jù)源、數(shù)據(jù)接口層、傳輸控制層、數(shù)據(jù)處理層、交換數(shù)據(jù)庫、數(shù)據(jù)應用接口和數(shù)據(jù)展現(xiàn)界面等分層模塊。從2.2所述可以知道,軟件系統(tǒng)由位于不同層級的節(jié)點組成。但是從軟件架構(gòu)上來講,部署在不同層級的軟件系統(tǒng),除了在上下級系統(tǒng)之間,具有不同的數(shù)據(jù)流的處理(數(shù)據(jù)的上傳和下發(fā)),除此之外,各個節(jié)點的數(shù)據(jù)交換軟件系統(tǒng)在軟件架構(gòu)上是一致的。2.3.1 2.3.2 第三方數(shù)據(jù)源第三方數(shù)據(jù)源是整個系統(tǒng)所要交換數(shù)據(jù)的原始采集地
15、,由于各個數(shù)據(jù)源的情況差別很大,存在很大的不確定性,所以就要求系統(tǒng)要支持多種類別的數(shù)據(jù)源。在綜合分析以后,確定系統(tǒng)支持以下一些方式的數(shù)據(jù)源:數(shù)據(jù)庫直連、FTP方式,手工文本。數(shù)據(jù)庫直連是信任度最高的一種數(shù)據(jù)源提供方式。假定第三方機構(gòu)以某種方式,對其數(shù)據(jù)庫訪問,提供了一定權(quán)限的訪問接口。在這樣一種方式下,系統(tǒng)以事先約定好的訪問規(guī)則,去對數(shù)據(jù)源進行自動訪問,實現(xiàn)數(shù)據(jù)的采集。FTP方式可能包括兩種類型,一種是在數(shù)據(jù)接口層提供FTP服務(wù)器,以供第三方數(shù)據(jù)源的相關(guān)操作人員或自動運行的程序?qū)⑺杞粨Q的數(shù)據(jù)按事先約定好的文本格式,以一定的頻率進行進行文件上傳。另外一種方式是第三方數(shù)據(jù)源在其網(wǎng)絡(luò)接口層提供可以
16、訪問的FTP服務(wù)器,本系統(tǒng)根據(jù)事先的約定,來完成FTP服務(wù)器的定時訪問,獲取到固定格式的文本數(shù)據(jù)。手工文本方式是指通過其它渠道,以人工方式獲取到的固定格式的第三方數(shù)據(jù),它文本方式存儲。在這一層面,需要確定通信和數(shù)據(jù)采集的一些基本協(xié)議。例如,所要采集數(shù)據(jù)的格式、頻率等。2.3.2 2.3.2 數(shù)據(jù)接口層數(shù)據(jù)接口層和第三方數(shù)據(jù)源示意圖本層主要負責對外接口,提供數(shù)據(jù)庫訪問程序、FTP數(shù)據(jù)訪問程序,F(xiàn)TP服務(wù)器、WEB操作界面等具體功能來實現(xiàn)和第三方數(shù)據(jù)源的連接,實現(xiàn)數(shù)據(jù)的采集。數(shù)據(jù)庫訪問程序直接連接第三方數(shù)據(jù)源提供的數(shù)據(jù)庫訪問接口,按照接口協(xié)議,實現(xiàn)數(shù)據(jù)的直接讀取。FTP服務(wù)器提供給第三方機構(gòu),使其
17、可以按照訪問協(xié)議,上傳本系統(tǒng)所需數(shù)據(jù)。FTP數(shù)據(jù)訪問程序連接第三方數(shù)據(jù)源提供的FTP服務(wù)器或者本系統(tǒng)FTP服務(wù)器,按照訪問協(xié)議,獲取數(shù)據(jù)并將其解析成可以利用的原始數(shù)據(jù)。WEB操作界面提供數(shù)據(jù)導入功能,可以實現(xiàn)格式化數(shù)據(jù)的導入。除了這些對外的功能性接口以外,本層還負責數(shù)據(jù)安全傳輸、數(shù)據(jù)有效性檢測等。2.3.3 2.3.3 傳輸控制層傳輸控制層示意圖傳輸控制層是實現(xiàn)自動化數(shù)據(jù)采集的關(guān)鍵,它根據(jù)事先定義好的協(xié)議,去自動處理用戶定制的數(shù)據(jù)采集任務(wù),同時處理數(shù)據(jù)采集中產(chǎn)生的異常情況,并進行反饋和預警。自動數(shù)據(jù)采集采用監(jiān)聽任務(wù)腳本的方式去進行處理。首先,用戶通過WEB界面去進行數(shù)據(jù)采集任務(wù)的定制,定制完成
18、以后,會在后臺形成一定格式的任務(wù)腳本的描述。其次,傳輸控制層得監(jiān)聽模塊如果獲取到了新增或修改過的任務(wù)描述腳本,則對腳本進行解析,按照腳本描述的規(guī)則,去驅(qū)動相應的程序模塊進行通信,完成數(shù)據(jù)的自動化采集。另外,傳輸控制層還會反饋一些預警信息,比如定制的數(shù)據(jù)采集任務(wù)沒有完成或者采集過程中發(fā)生了異常,傳輸控制層都會對此過程進行記錄,通過WEB界面把預警信息反饋給用戶。2.3.4 2.3.4 數(shù)據(jù)處理層數(shù)據(jù)處理層示意圖數(shù)據(jù)處理層實現(xiàn)了原始采集數(shù)據(jù)的存儲以及數(shù)據(jù)的預處理等環(huán)節(jié)。原始數(shù)據(jù)以數(shù)據(jù)的原始結(jié)構(gòu)進行保存,并記錄操作時間,操作人員等信息。數(shù)據(jù)的處理包括宏觀數(shù)據(jù)和微觀數(shù)據(jù)的處理,宏觀數(shù)據(jù)直接處理存儲,微
19、觀數(shù)據(jù)則要和納稅戶信息進行有效的關(guān)聯(lián),使其和地稅戶管建立對照表,進行自動匹配以及手工匹配。自動匹配建立在關(guān)聯(lián)字段信息一致性上,根據(jù)一定規(guī)則進行匹配,通過程序遍歷,來自動生成匹配數(shù)據(jù)自動裝載到對照表中,包含的字段有稅務(wù)管理碼、納稅人名稱、第三方唯一標識碼、企業(yè)名稱、主關(guān)聯(lián)字段、次關(guān)聯(lián)字段等。如果部分關(guān)聯(lián)信息一致或沒有一致的關(guān)聯(lián)信息,則需要提供界面去進行手工匹配,手工操作后,該部分數(shù)據(jù)也自動進入對照表。數(shù)據(jù)處理層除了需要制定完備的數(shù)據(jù)匹配規(guī)則以外,還需進行多重邏輯校驗,實現(xiàn)一定的容錯性,以最大可能來反映數(shù)據(jù)的準確性。2.3.5 2.3.5 交換數(shù)據(jù)庫交換數(shù)據(jù)庫是交換系統(tǒng)所有數(shù)據(jù)的存儲地,包括系統(tǒng)初
20、始化數(shù)據(jù)、系統(tǒng)管理數(shù)據(jù)、原始采集數(shù)據(jù)、預處理后的正式交換數(shù)據(jù)等。根據(jù)需求,數(shù)據(jù)庫進行良好的設(shè)計。2.3.6 2.3.6 數(shù)據(jù)展現(xiàn)界面本層主要實現(xiàn)數(shù)據(jù)的展現(xiàn),包括各種查詢分析功能。主要有固定查詢、自主定制組合查詢、信息交換統(tǒng)計查詢、單戶明細信息查詢、適用稅種查詢分析、交換數(shù)據(jù)質(zhì)量跟蹤監(jiān)控情況查詢、可利用數(shù)據(jù)信息查詢等內(nèi)容。2.3.7 2.3.7 數(shù)據(jù)應用接口本層提供編程與非編程數(shù)據(jù)接口,使得交換系統(tǒng)的最終數(shù)據(jù),可以為其它系統(tǒng)和部門所用。根據(jù)實際的需求情況,可考慮提供各種訪問途徑,例如:數(shù)據(jù)庫直接訪問方式、FTP文本數(shù)據(jù)共享、可編程遠程接口、人工導出文本等。2.3.8 2.3.8 上下級系統(tǒng)數(shù)據(jù)共
21、享本系統(tǒng)除了第三方數(shù)據(jù)交換功能以外,在級別上有省、市、縣(區(qū))三個級別,所以數(shù)據(jù)除了從本層第三方數(shù)據(jù)源進入本層交換系統(tǒng)以外,還可能存在數(shù)據(jù)的跨級別訪問。比如,上級部門的交換數(shù)據(jù)可提供給下級部門進行展現(xiàn)和應用,而下級部門的數(shù)據(jù)交換情況,也可以提供給上級部門查看,比如提供數(shù)據(jù)交換總覽圖這樣的功能,使得上級部門可以直接獲知數(shù)據(jù)交換系統(tǒng)各個地方的部署實施情況等。上下級數(shù)據(jù)的共享可以考慮兩種方式,一種是直接操作上級或下級的交換平臺系統(tǒng),另外一種是提供數(shù)據(jù)的上傳或下發(fā),根據(jù)用戶的實際需要,會同時提供兩種方式。2.3.9 2.3.9 數(shù)據(jù)交換標準因為本系統(tǒng)可能會涉及到眾多的第三方數(shù)據(jù)源,可能包含海量數(shù)據(jù)的交
22、換處理與存儲,而且數(shù)據(jù)的交換和處理環(huán)節(jié)也很多,所以為了更好的對數(shù)據(jù)進行交換和處理,使得數(shù)據(jù)最終能得到有效的利用,我們就需要制定各個環(huán)節(jié)的標準、規(guī)范和協(xié)議。而標準、規(guī)范、協(xié)議也是自動化數(shù)據(jù)處理的一個前提,否則很多環(huán)節(jié)必須通過人工干預才能進行。首先關(guān)于數(shù)據(jù)源的標準化,也就是本系統(tǒng)都支持哪些類型的數(shù)據(jù)源,某種特定的數(shù)據(jù)源都必須要提供哪些參數(shù)。比如,如果支持數(shù)據(jù)庫直連方式,那么就需要確定IP地址、端口、數(shù)據(jù)庫、表(視圖,存儲過程等)、字段等參數(shù),在用戶進行數(shù)據(jù)采集任務(wù)定制的時候,如果選定了這種方式,那么上述所列的參數(shù)就必須提供。其次是數(shù)據(jù)格式的標準化。只有采集到標準格式的數(shù)據(jù),才能被后續(xù)環(huán)節(jié)所自動化處
23、理。在進行數(shù)據(jù)采集之前,必須要確定數(shù)據(jù)以什么樣的載體存在,在載體中以什么樣一種格式存在。比如以數(shù)據(jù)庫直連方式,那么數(shù)據(jù)應該就是以數(shù)據(jù)庫表的方式存在。如果是以文本方式,那么就必須確定是什么樣的文本格式:自定義文本格式、csv、excel等。這個還可以繼續(xù)延伸下去,比如自定義格式是怎樣的自定義規(guī)則,數(shù)據(jù)字段間以什么樣方式分隔,數(shù)據(jù)字段的名字采用什么樣的存儲方式等等。最后,是數(shù)據(jù)源和數(shù)據(jù)存儲的標準化。因為采集的原始數(shù)據(jù)可能是多樣性的,而這樣的原始數(shù)據(jù)是不能為后續(xù)的系統(tǒng)例如風險評估系統(tǒng)來應用的,所以在數(shù)據(jù)的預處理階段必須遵循數(shù)據(jù)源和數(shù)據(jù)存儲的標準化,使得處理過的正式數(shù)據(jù)可以被其它第三方系統(tǒng)所識別,從而
24、成為真正可以利用的數(shù)據(jù)。系統(tǒng)將根據(jù)稅務(wù)系統(tǒng)制定的數(shù)據(jù)源或數(shù)據(jù)存儲標準,去建立數(shù)據(jù)源,包括表的命名、字段的命名、字段的類型、字段的含義。因為當前階段標準化工作還在進行中,所以系統(tǒng)的設(shè)計上要考慮多種方式的標準化接入?,F(xiàn)階段可以預見到的有:標準以文檔的方式提供;標準以可編程接口提供。在數(shù)據(jù)源建立或數(shù)據(jù)存儲建立的時候,根據(jù)一定的關(guān)鍵字去查詢該標準,如果有匹配的標準定義,則遵循標準執(zhí)行。如果沒有標準,則可以自定義構(gòu)建。另外,還需要制定詳盡的數(shù)據(jù)比對規(guī)則,只有這樣,才能最大程度的進行數(shù)據(jù)的自動化匹配,進行有效數(shù)據(jù)的篩選與存儲。當然,還有很多的處理環(huán)節(jié)需要標準化,這將會在后續(xù)的詳細設(shè)計中一一實現(xiàn)。2.4 2
25、.4 核心軟件系統(tǒng)設(shè)計原則2.4.1 2.4.1 自動化數(shù)據(jù)交換在數(shù)據(jù)交換平臺的軟件體系內(nèi),處于最核心的部件是數(shù)據(jù)交換控制組件,該組件自動運行在后臺,依據(jù)既定的標準交換協(xié)議對數(shù)據(jù)交換的各個環(huán)節(jié)進行監(jiān)聽,一旦監(jiān)聽到有需要處理的任務(wù),則在后臺自動化的完成數(shù)據(jù)的處理過程,這一過程不需要人工干預。如果某一過程的處理中,存在問題,則會自動預警。例如,原本定義好每天需要有新的交換文本上傳到FTP進行交換,但是自動化處理過程在自動處理過程中,沒有發(fā)現(xiàn)當天需要交換的新文本,則會向系統(tǒng)發(fā)一條預警通知,該通知會以某種方式,在WEB操作界面展現(xiàn)出來。2.4.2 2.4.2 可定制數(shù)據(jù)交換軟件系統(tǒng)將實現(xiàn)數(shù)據(jù)交換的可定
26、制化。在Web操作控制界面上,具有一定權(quán)限的操作人員,可以根據(jù)數(shù)據(jù)交換的需要,在既定的標準交換協(xié)議框架之內(nèi),實現(xiàn)靈活的的可定制數(shù)據(jù)交換操作??梢远ㄖ茢?shù)據(jù)源、數(shù)據(jù)采集方式、采集頻率等等。當操作人員按照規(guī)則進行了數(shù)據(jù)交換的可定制操作以后,系統(tǒng)會生成一定的流程描述腳本提供給數(shù)據(jù)交換控制組件來自動運行。2.4.3 2.4.3 多重方式數(shù)據(jù)的展現(xiàn)與利用數(shù)據(jù)交換的最終目的是為了對數(shù)據(jù)進行管理和應用。那么,經(jīng)過數(shù)據(jù)的采集與預處理,得到了可以利用的數(shù)據(jù),我們最終需要以某種方式將數(shù)據(jù)加以展現(xiàn)和利用。本系統(tǒng)中,我們將會以兩種方式來進行數(shù)據(jù)的展現(xiàn)與利用。對于本系統(tǒng)的最終用戶,系統(tǒng)將會提供基于Web的操作界面,來進行
27、數(shù)據(jù)的查詢與展現(xiàn)。根據(jù)業(yè)務(wù)需求,將會提供固定條件的數(shù)據(jù)查詢與展現(xiàn),以及在一定的業(yè)務(wù)范疇之內(nèi)的可定制的數(shù)據(jù)查詢與展現(xiàn)。當然除了提供Web操作界面提供給最終用戶來進行數(shù)據(jù)的查詢與展現(xiàn),還需提供基于不同方式的數(shù)據(jù)查詢與展現(xiàn)接口以供第三方系統(tǒng)或用戶來對數(shù)據(jù)進行查詢和應用。那么根據(jù)需求,我們可以提供可編程數(shù)據(jù)訪問接口、數(shù)據(jù)庫直連、FTP自動交換以及文本導出等不同方式的接口。這個要在保證數(shù)據(jù)存儲、傳輸?shù)陌踩珬l件下,根據(jù)具體的需求來確定最終采用哪些方式。2.4.4 2.4.4 數(shù)據(jù)全生命周期管理本系統(tǒng)的核心著眼點是數(shù)據(jù)的交換處理和利用,所以對于數(shù)據(jù)的管理是最核心的一環(huán)?;谶@一問題,需要設(shè)計完備的數(shù)據(jù)生命周
28、期管理,從數(shù)據(jù)抽取到系統(tǒng)的第一步起,到數(shù)據(jù)最終的展現(xiàn)和應用。每個環(huán)節(jié),都會提供相應的管理功能和操作界面,供具有權(quán)限的操作人員去對數(shù)據(jù)進行控制和處理。另外,對于數(shù)據(jù)每個環(huán)節(jié)的操作和管理,系統(tǒng)都會提供詳盡日志,以供后期分析查詢使用,提供數(shù)據(jù)交換成果的統(tǒng)計與分析功能。2.4.5 2.4.5 數(shù)據(jù)字段業(yè)務(wù)標準本系統(tǒng)自動化成分很高,自動建表,索引,存儲過程等工作都是由系統(tǒng)腳本自動生成。例如在創(chuàng)建數(shù)據(jù)交換項的時候,數(shù)據(jù)進入系統(tǒng)采用的數(shù)據(jù)字段都是要滿足數(shù)據(jù)標準平臺的標準的,新字段要通過數(shù)據(jù)標準平臺審核。2.5 2.5 數(shù)據(jù)存儲設(shè)計在本系統(tǒng)中,數(shù)據(jù)存儲的設(shè)計包括兩方面的內(nèi)容,首先是數(shù)據(jù)庫的部署設(shè)計,其次是數(shù)據(jù)
29、庫表的設(shè)計。因為本系統(tǒng)跨地域、跨部門、跨業(yè)務(wù),跨上下級關(guān)系,所以要實現(xiàn)數(shù)據(jù)的采集處理和共享,決定了本系統(tǒng)是一個分布式系統(tǒng)。數(shù)據(jù)庫的部署也必須分地區(qū),分層次,各個地方部署各自的數(shù)據(jù)庫進行交換數(shù)據(jù)的存儲。市級的交換數(shù)據(jù)存儲在市級的數(shù)據(jù)庫服務(wù)器中,區(qū)縣級的交換數(shù)據(jù)存儲在區(qū)縣級的數(shù)據(jù)庫服務(wù)器中,縣(區(qū))級的交換數(shù)據(jù)存儲在縣(區(qū))級的數(shù)據(jù)庫服務(wù)中。另外,因為要經(jīng)過數(shù)據(jù)的ETL,才能得到可以利用的數(shù)據(jù),所以在數(shù)據(jù)庫的設(shè)計上,要考慮到包括原始數(shù)據(jù)數(shù)據(jù)表和經(jīng)過數(shù)據(jù)轉(zhuǎn)換和清洗后的正式數(shù)據(jù)表。關(guān)于數(shù)據(jù)表的設(shè)計,要包括系統(tǒng)初始化所需的支撐表、權(quán)限控制表以及處于核心的業(yè)務(wù)數(shù)據(jù)表等不同類型的數(shù)據(jù)表。另外,因為系統(tǒng)中存在
30、各地各個級別的數(shù)據(jù),所以要設(shè)計合理的數(shù)據(jù)關(guān)聯(lián)關(guān)系,設(shè)定一定的訪問控制標志,以保證數(shù)據(jù)的安全共享與訪問。因為本系統(tǒng)涉及到海量數(shù)據(jù)的處理,所以要充分發(fā)揮分布式存儲和運算技術(shù),利用Oracle數(shù)據(jù)庫管理技術(shù)為中心的各項技術(shù)手段,來實現(xiàn)數(shù)據(jù)的安全存儲,高效處理。2.6 2.6 數(shù)據(jù)流管理設(shè)計從宏觀方面講,數(shù)據(jù)的流向大體有兩個方向。一個是橫向的數(shù)據(jù)流動,也就是數(shù)據(jù)從第三方數(shù)據(jù)源獲取,經(jīng)過處理后進入本系統(tǒng)數(shù)據(jù)庫中進行存儲和利用。這是本系統(tǒng)所需處理的核心問題,也就是數(shù)據(jù)從第三方數(shù)據(jù)源怎樣進入本系統(tǒng),并成為有效可利用的數(shù)據(jù),并且可以提供給其它系統(tǒng)進行擴展應用。這在前邊基本上已經(jīng)過闡述。另一個方向是數(shù)據(jù)的縱向流
31、動,也就是處于行政關(guān)系的上下級單位間數(shù)據(jù)存儲之間的數(shù)據(jù)流動。主要是上級部門的交換數(shù)據(jù),可以共享給下級部門。下級部門的數(shù)據(jù)交換部署實施情況、數(shù)據(jù)利用成果等可以共享給上級部門。這里有兩種方案可以選擇:一種是上級(下級)部門的交換數(shù)據(jù)存儲在上級(下級)部門的數(shù)據(jù)庫中,給下級(上級)部門開發(fā)訪問權(quán)限,根據(jù)訪問規(guī)則,下級(上級)部門可以訪問具有權(quán)限的數(shù)據(jù)。另外一種是上級(下級)部門交換數(shù)據(jù)下發(fā)(上傳)到下級(上級)部門。第一種方式的好處是數(shù)據(jù)沒有冗余,集中存儲。但是由于要開放下級(上級)訪問接口,這就涉及到這些接口怎么去設(shè)計、數(shù)據(jù)怎樣控制、Web系統(tǒng)通過怎么樣方式的去訪問、怎么樣去部署都提出了一些技術(shù)挑
32、戰(zhàn)。另外由于增加了下級(上級)訪問,那么一方面數(shù)據(jù)庫訪問壓力會增大,另外一方面遠程數(shù)據(jù)訪問的效率如何,也不得而知。第二種方式的好處是數(shù)據(jù)本地存儲,這對數(shù)據(jù)的訪問效率以及減輕上級(下級)部門數(shù)據(jù)庫的壓力是有很大好處的。但是,這一方式就帶來了海量數(shù)據(jù)的遠程傳輸控制問題,怎樣保證數(shù)據(jù)能夠高效安全的傳輸?shù)较录墸ㄉ霞墸┎块T,這是需要首要解決的技術(shù)問題。在實際系統(tǒng)的設(shè)計和部署中,根據(jù)上下級所要交互的數(shù)據(jù)的類型、規(guī)模等因素,同時提供這兩種方式的數(shù)據(jù)共享和交換方式,用戶可針對不同情況,酌情選擇使用。3 技術(shù)架構(gòu)設(shè)計3.1 3.1 概述系統(tǒng)架構(gòu)示意圖系統(tǒng)以Java和數(shù)據(jù)庫技術(shù)為依托,采用JEE相關(guān)技術(shù),以MVC
33、模式為核心,采用分層思想,構(gòu)建健壯、靈活的Web應用程序。在數(shù)據(jù)庫訪問層,使用高效的Swim Sql映射框架,實現(xiàn)數(shù)據(jù)的獲取和持久化。在領(lǐng)域邏輯層,使用Spring框架,通過IOC和AOP,實現(xiàn)業(yè)務(wù)模塊的可配置和靈活增加、刪減,另外也可以在面的基礎(chǔ)上,對業(yè)務(wù)實現(xiàn)代碼進行功能增強。在表現(xiàn)層,綜合使用各種Web2.0技術(shù),以Jquery框架為核心,構(gòu)建具有良好用戶體驗的GUI。3.2 基礎(chǔ)組件3.2.1 Spring Framework【框架描述】Spring為編寫企業(yè)應用程序提供了輕量的解決方案,同時仍然支持使用聲明式事務(wù)、 用RMI或web service遠程調(diào)用、以及使用多種方式來將數(shù)據(jù)持久
34、化到數(shù)據(jù)庫。Spring框架包含許多特性,并被很好地組織在下圖所示的六個模塊中。Spring框架架構(gòu)圖【框架引用目的】1. Spring 的 Core 封裝包Spring 的 Core 封裝包是框架的最基礎(chǔ)部分,提供IoC和依賴注入特性。這里的基礎(chǔ)概念是BeanFactory,它提供對Factory模式的經(jīng)典實現(xiàn)來消除對程序性單例模式的需要,并真正地允許我們從程序邏輯中分離出依賴關(guān)系和配置。2. Spring的 AOP 封裝包Spring的 AOP 封裝包提供了符合 AOP Alliance規(guī)范的面向方面的編程(aspect-oriented programming)實現(xiàn),讓你可以定義,例如方
35、法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。而且,利用source-level的元數(shù)據(jù)功能,還可以將各種行為信息合并到你的代碼中。我們主要用于對Java數(shù)據(jù)庫操作的事務(wù)配置、任務(wù)異常監(jiān)控。3. Spring中的 MVC 封裝包Spring中的 MVC 封裝包提供了Web應用的Model-View-Controller(MVC)實現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實現(xiàn),它提供了一種清晰的分離模型,在領(lǐng)域模型代碼和web form之間。3.2.2 Swim Framework【框架描述】Swi
36、m 框架是北海吉海網(wǎng)絡(luò)科技有限公司為了JAVA的數(shù)據(jù)庫快速編程而開發(fā)的一個O/R和sql映射編程框架,它對JDBC進行了非常輕量級的操作封裝,使得JAVA程序員可以方便地使用SQL來操縱數(shù)據(jù)庫,可以應用在任何可以使用JDBC的場合,既可以在JAVA的客戶端使用,也可以在Servlet/JSP的Web應用中使用。SWIM框架技術(shù)架構(gòu)圖基于Spring和Swim的應用架構(gòu)圖【框架引用目的】系統(tǒng)與數(shù)據(jù)庫的交互多而雜,有第北海市地方稅務(wù)局外部數(shù)據(jù)共享應用監(jiān)控管理平臺自身的數(shù)據(jù)庫,有第三方數(shù)據(jù)源的數(shù)據(jù)庫。Swim框架對于JDBC操作是做過許多優(yōu)化的,兼容主流的數(shù)據(jù)庫類型,具有非常高的數(shù)據(jù)操作效率。對于動
37、態(tài)數(shù)據(jù)源的處理也是Swim框架的強項,用于應對連接不同的第三方數(shù)據(jù)源。Swim提供的O/R映射能滿足系統(tǒng)領(lǐng)域邏輯模式的設(shè)計。3.2.3 Hancy遠程數(shù)據(jù)交換中間件【框架描述】Hancy 遠程數(shù)據(jù)交換中間件 ,為北海吉海網(wǎng)絡(luò)科技有限公司研發(fā)的此類中間件的Java版本,在不同的應用系統(tǒng)之間,經(jīng)常會有數(shù)據(jù)交換的現(xiàn)象出現(xiàn),為了讓異構(gòu)信息系統(tǒng)集成技術(shù)平臺實現(xiàn)數(shù)據(jù)的共享和交換,并且實現(xiàn)高效的通信、安全的數(shù)據(jù)傳輸和編程的透明性,Hancy遠程數(shù)據(jù)交換中間件是必不可少的高性能中間件。該中間件包含了數(shù)據(jù)交換的服務(wù)器端組件和客戶端組件,它在底層實現(xiàn)了數(shù)據(jù)加密、壓縮、傳輸?shù)认到y(tǒng)級的功能,對外提供了一系列的數(shù)據(jù)遠程
38、交換接口,開發(fā)人員只需要根據(jù)數(shù)據(jù)交換的需求,調(diào)用相應的編程接口,并把組件和開發(fā)的程序正確的部署在需要交換數(shù)據(jù)的系統(tǒng)中,就可以方便的實現(xiàn)不同地理位置的信息系統(tǒng)之間的數(shù)據(jù)交互和共享?!究蚣芤迷颉?)Hancy采用自定義通信協(xié)議,在二進制流上做了高效的數(shù)據(jù)壓縮。2)Hancy采用基于HTTP協(xié)議之上的應用協(xié)議,為遠程數(shù)據(jù)的交換提供了方便的通道。3)Hancy采用MD5、RSA、Blowfish等多種加密手段,確保數(shù)據(jù)交換的安全。4)Hancy采用類似于數(shù)字證書的客戶端驗證機制,保證數(shù)據(jù)交換的客戶端身份不被偽造。5) Hancy支持多客戶端,服務(wù)器端使用java編程語言實現(xiàn),客戶端可以是任何語言實
39、現(xiàn)的組件,只要遵循協(xié)議就可。6)Hancy提供了web控制臺,可以對服務(wù)器端中間件的一些參數(shù)進行管理,web控制臺的登錄采用了用戶名、密碼、驗證碼和數(shù)字口令碼結(jié)合的方式,采用ssl進行通信,確保web控制臺的安全。3.3 3.3 領(lǐng)域模型和邏輯設(shè)計3.3.1 3.3.1 概述此部分文檔用于說明該平臺相關(guān)領(lǐng)域邏輯在技術(shù)上的設(shè)計,為了方便描述后續(xù)的實現(xiàn)機理,首先介紹領(lǐng)域邏輯層核心的兩個組件:任務(wù)調(diào)度引擎;規(guī)則處理引擎。然后講述核心功能(數(shù)據(jù)導入、數(shù)據(jù)加工、數(shù)據(jù)應用)相關(guān)主要領(lǐng)域邏輯設(shè)計、權(quán)限設(shè)計、數(shù)據(jù)上傳和下發(fā)設(shè)計等。數(shù)據(jù)交換、數(shù)據(jù)加工都涉及到了一個任務(wù)的概念。為了更好地控制、管理這些任務(wù),我們設(shè)
40、計了一套任務(wù)調(diào)度引擎,負責任務(wù)的定時調(diào)度、修改、刪除、宕機后任務(wù)狀態(tài)恢復等。數(shù)據(jù)加工部分引入了一個規(guī)則的概念,我們對規(guī)則的第一印象就是量多、相互獨立。應對不同業(yè)務(wù)需求肯定就需要很多種規(guī)則去控制數(shù)據(jù)匹配的過程,所以系統(tǒng)預定的頂級規(guī)則肯定數(shù)量不少;每種規(guī)則都有自己特有的處理方式,否則也不需要使用多種規(guī)則了,所以系統(tǒng)對每一種規(guī)則都必須有對應的獨立的處理過程。面對這種復雜的處理要求,我們設(shè)計了一套規(guī)則處理引擎,負責對用戶定制的規(guī)則作出解析,映射出相應的處理程序,再配合任務(wù)調(diào)度引擎,就能靈活的在平臺中執(zhí)行復雜的匹配任務(wù)。3.3.2 3.3.2 任務(wù)調(diào)度引擎 概述任務(wù)調(diào)度引擎
41、工作原理圖本系統(tǒng)為實現(xiàn)自動化的數(shù)據(jù)采集、匹配,則必然涉及到這個任務(wù)可能每天或每周星期二晚上11:30,或許僅僅每個月的最后一天執(zhí)行。一個自動執(zhí)行而無須干預的任務(wù)在執(zhí)行過程中如果發(fā)生一個嚴重錯誤,應用能夠知到其執(zhí)行失敗并嘗試重新執(zhí)行。為了解決這些難題,本系統(tǒng)特引入了任務(wù)調(diào)度引擎工具的設(shè)計,底層開發(fā)語言為JAVA,與整個應用無縫連接。整體的工作原理如上圖所示,為了便于理解,圖中主要展現(xiàn)了幾個重要的模塊。整個引擎引入以下幾個概念:1.任務(wù)適配器 2.任務(wù)管理器 3.任務(wù)驅(qū)動核心 4.任務(wù)線程池。下面我們就分別討論他們的作用。 任務(wù)適配器任務(wù)適配器是整個任務(wù)調(diào)度引擎的耳朵
42、,是任務(wù)調(diào)度引擎的入口。在設(shè)計上采用了策略模式。一旦有任務(wù)模型請求連接,立即抽取、校驗任務(wù)的執(zhí)行配置信息,獲取到任務(wù)實例,需要執(zhí)行的任務(wù)腳本方法名。通過一系列預處理,通知任務(wù)管理器做下一步的處理。 任務(wù)管理器任務(wù)管理器是整個任務(wù)調(diào)度引擎的大腦,由他來初始化未完成的任務(wù)、裝載任務(wù)腳本、監(jiān)控任務(wù)線程池、發(fā)出異常警告。初始化未完成的任務(wù):在服務(wù)器宕機或者服務(wù)器重啟的情況下,JAVA進程關(guān)閉,服務(wù)器內(nèi)存中所有的任務(wù)線程肯定都會丟失。當下一次平臺啟動后為了繼續(xù)之前的任務(wù),任務(wù)管理器就提供了一個初始化的功能,從數(shù)據(jù)庫讀取出未完成的任務(wù)信息,自動化地啟動所有任務(wù)。裝載任務(wù)腳本:
43、 由任務(wù)適配器傳遞過來的任務(wù)模型提供了相應的需要執(zhí)行的任務(wù)腳本,這些腳本定義了具體的任務(wù)內(nèi)容,任務(wù)管理器就負責把腳本裝備進任務(wù)驅(qū)動核心,由任務(wù)驅(qū)動核心去驅(qū)動一個新的任務(wù)線程。監(jiān)控任務(wù)線程池:任務(wù)線程一旦開啟就必須有一個良好的管理機制,以便于平臺更好的控制任務(wù)。這個控制的過程對于用戶是不可見的,由系統(tǒng)去處理。但是會暴露響應的控制接口給用戶,主要功能設(shè)定在交換項目的監(jiān)控功能中,后文會具體介紹。發(fā)出異常警告:當任務(wù)的執(zhí)行遇到問題,比如第三方數(shù)據(jù)源的意外關(guān)閉,網(wǎng)閘的重啟等意外情況導致的不能執(zhí)行數(shù)據(jù)采集等情況,任務(wù)管理器馬上會給平臺一個警告信息,通知平臺做出相應的處理,比如生成異常日志文件,Web操作界
44、面的通知,Email的通知等等機制。 任務(wù)驅(qū)動核心任務(wù)驅(qū)動核心接收到任務(wù)管理器的指令后,會根據(jù)要求生成一條線程或使一條空閑的線程,去執(zhí)行任務(wù)腳本。它擁有多個任務(wù)開啟端口,以滿足各種執(zhí)行方式的任務(wù)執(zhí)行,并且是可擴展的,比如這個任務(wù)是周期執(zhí)行還是延遲執(zhí)行,是任務(wù)管理器識別用戶任務(wù)定制信息后,向任務(wù)驅(qū)動核心命令需要從哪個端口開啟任務(wù)線程。 任務(wù)線程池任務(wù)線程池是整個任務(wù)調(diào)度引擎的任務(wù)清單,上面記載了任務(wù)的來源、執(zhí)行信息等等,并且為每一個任務(wù)提供了一個開展作業(yè)的場地。每一個任務(wù)都將會開啟一個線程去執(zhí)行,所有的線程組就是我們這里所指的任務(wù)線程池
45、,任務(wù)線程池在概念上分為內(nèi)存線程池和外存線程池。內(nèi)存線程池指的是在服務(wù)器內(nèi)存中的一組隊列數(shù)據(jù)結(jié)構(gòu),包含了任務(wù)線程的先關(guān)信息,便于平臺程序監(jiān)控;外存線程池指的是持久化到數(shù)據(jù)庫的任務(wù)執(zhí)行信息,只有形態(tài)上與內(nèi)存線程池有差別,在邏輯上他們是保持一致的。外存線程池可以用來保證在斷電或JAVA進程殺死的情況下保存任務(wù)內(nèi)存信息,以便于系統(tǒng)重啟時任務(wù)執(zhí)行狀態(tài)的恢復。3.3.3 3.3.3 規(guī)則處理引擎 概述數(shù)據(jù)規(guī)則處理引擎是整個數(shù)據(jù)匹配加工的核心架構(gòu)。主要由三個部分組成:規(guī)則解析器、規(guī)則分發(fā)器、規(guī)則處理器。規(guī)則解析器:負責把操作員在界面配置的信息,轉(zhuǎn)化成程序可識別的數(shù)據(jù)描述語言格
46、式;負責把規(guī)則描述數(shù)據(jù)格式(xml或json格式)轉(zhuǎn)化成操作員可視別的規(guī)則參數(shù)配置界面。規(guī)則分發(fā)器:檢查交換項目規(guī)則列表的處理器類型,識別出該規(guī)則組應該由哪個規(guī)則處理器執(zhí)行,動態(tài)加載對應規(guī)則處理器,調(diào)用并執(zhí)行。規(guī)則處理器:是負責數(shù)據(jù)匹配加工的實際數(shù)據(jù)操作程序。解析規(guī)則描述數(shù)據(jù),針對規(guī)則描述的不同,程序自動識別匹配加工條件,完成數(shù)據(jù)匹配加工處理。 處理流程圖規(guī)則分發(fā)器規(guī)則處理流程圖 設(shè)計原則從系統(tǒng)平臺的穩(wěn)定、效率、安全、可靠、可維護性的角度出發(fā),設(shè)計了一套規(guī)則設(shè)置和規(guī)則處理在功能上完全獨立、在業(yè)務(wù)邏輯上相聯(lián)系的機制 “數(shù)據(jù)規(guī)則處理引擎”
47、。這套機制的主要特點主要體現(xiàn)在:1. 系統(tǒng)平臺對操作員開放的只有規(guī)則設(shè)置功能和任務(wù)時間的設(shè)置。所有的加工匹配規(guī)則都有程序自動識別規(guī)則處理,減少由于人為操作造成的錯誤。2. 操作員對交換項目的設(shè)置完成后,只需填寫任務(wù)引擎的開啟時間和周期,由“任務(wù)調(diào)度引擎”(詳細說明見任務(wù)調(diào)度引擎說明部分)去調(diào)用規(guī)則處理引擎,無需等待,不耽誤操作員進行平臺其他功能的操作。3. 采用松耦合的設(shè)計原則,在以后的項目維護過程中,規(guī)則處理器的實現(xiàn)修改不會影響到前臺操作員的操作,同樣有新規(guī)則需求擴充時,規(guī)則解析器和規(guī)則處理器都采用策略匹配設(shè)計原則,新增規(guī)則時,只需針對新規(guī)則添加新的解析器和處理器,不需要對原有代碼結(jié)構(gòu)做任何
48、調(diào)整。 規(guī)則解析器規(guī)則解析器示意圖 為了能讓程序去識別規(guī)則,系統(tǒng)必須對每個規(guī)則有個預定義的數(shù)據(jù)描述格式。規(guī)則解析器由兩個解析部分組成:正向解析:是程序把操作員填寫輸入的各種參數(shù),根據(jù)當前設(shè)置的規(guī)則類型,按照預定義的數(shù)據(jù)描述格式,把參數(shù)插入到數(shù)據(jù)格式中,形成規(guī)則處理器能識別的規(guī)則數(shù)據(jù)描述。反向解析:是程序根據(jù)規(guī)則數(shù)據(jù)描述和預定義的數(shù)據(jù)描述格式,掃描出規(guī)則的各種參數(shù),并把這些參數(shù)重新填寫到用戶界面中,讓操作員可以直觀的看懂規(guī)則內(nèi)容。操作員在頁面上設(shè)置的規(guī)則有各種各樣的參數(shù)包括表名、字段、字段值等,這些參數(shù)只有單獨的含義,程序是無法通過這些參數(shù)自動識別并轉(zhuǎn)化成數(shù)據(jù)加工的
49、數(shù)據(jù)庫條件的,所以我們需要把這些參數(shù)先轉(zhuǎn)換成程序可識別的一種描述語言。針對規(guī)則定義一個規(guī)則描述格式,參數(shù)值預留。在程序獲取用戶輸入?yún)?shù)后,把參數(shù)自動填寫進預留位置,形成程序可識別的規(guī)則描述?,F(xiàn)在比較流行有的有XML和JSON兩種數(shù)據(jù)描述格式。 規(guī)則分發(fā)器規(guī)則分發(fā)器示意圖此功能主要提供根據(jù)規(guī)則或規(guī)則組的處理器類型,分別動態(tài)去調(diào)用相符合的規(guī)則處理器去處理這條規(guī)則或規(guī)則組。每個交換項目的規(guī)則或規(guī)則組數(shù)量和類型都不會相同,為了靈活適應這種變化,規(guī)則分發(fā)器提供了一個統(tǒng)一的入口??梢越邮苋我鈹?shù)量和任意類型的規(guī)則或規(guī)則組。在規(guī)則分發(fā)器內(nèi)部去遍歷傳入的規(guī)則組列表,根據(jù)規(guī)則組的處理
50、類型,動態(tài)創(chuàng)建規(guī)則處理器的實例,來處理這條規(guī)則組。 規(guī)則處理器此功能主要負責去識別規(guī)則的描述語言格式動態(tài)生成sql并完成數(shù)據(jù)處理部分的功能。規(guī)則處理器都是由規(guī)則分發(fā)器負責實例化,不同類型的規(guī)則或規(guī)則組都有自己專屬的規(guī)則處理器。所有的規(guī)則處理器都繼承自同一個父類,每個規(guī)則處理器都有自己特定的實現(xiàn)功能。例如新建最終數(shù)據(jù)表結(jié)構(gòu)規(guī)則處理器,根據(jù)新建最終數(shù)據(jù)表規(guī)則描述去動態(tài)建立最終數(shù)據(jù)表;數(shù)據(jù)匹配處理器,根據(jù)匹配規(guī)則組動態(tài)生成sql select、update、insert語句,然后再根據(jù)這些sql語句去查詢數(shù)據(jù)進行匹配。3.3.4 3.3.4 系統(tǒng)核心功能設(shè)計概述系統(tǒng)最核
51、心的功能主要分為三個部分:數(shù)據(jù)導入,數(shù)據(jù)加工,數(shù)據(jù)應用。具體流程如下圖所示:系統(tǒng)核心功能圖系統(tǒng)通過這三個部分,可以達到數(shù)據(jù)進的來,能加工,出的去的過程。下面針對每個環(huán)節(jié)作出更加詳細的描述。3.3.5 3.3.5 數(shù)據(jù)導入設(shè)計 概述【導入方式分類】導入方式分類圖導入方式根據(jù)數(shù)據(jù)來源的不同可以分為三種:數(shù)據(jù)庫直連;FTP自動導入;界面手工導入。其中數(shù)據(jù)庫直連和FTP自動導入屬于自動導入,只需人為設(shè)置一次,之后的周期性任務(wù)都可由系統(tǒng)自動完成?!緦肓鞒獭克蓄愋偷膶肓鞒倘缦聢D所示:數(shù)據(jù)導入流程圖首先操作人員選擇是何種類型的導入方式,定義導入?yún)?shù),不同的導入方式需要以不
52、同的參數(shù)設(shè)置,后續(xù)內(nèi)容會詳細描述。所有的參數(shù)都定制完成后系統(tǒng)會生成一條數(shù)據(jù)導入任務(wù)。任務(wù)調(diào)度引擎的任務(wù)適配器會監(jiān)測到此條任務(wù),此時任務(wù)管理器發(fā)出指令利用任務(wù)驅(qū)動核心驅(qū)動此條任務(wù),并且推入任務(wù)線程池。系統(tǒng)會對任務(wù)進行管理和監(jiān)控。在任務(wù)執(zhí)行的過程中若出現(xiàn)異常(比如第三方數(shù)據(jù)源突然連接不上,交換平臺本身服務(wù)器環(huán)境異常等)操作人員在監(jiān)控中心會得到相應的反饋信息,給出后續(xù)操作的建議。關(guān)于任務(wù)調(diào)度引擎以及其內(nèi)部組件的概念在3.3.2節(jié)中已經(jīng)給出詳細的解釋。執(zhí)行的任務(wù):根據(jù)導入?yún)?shù)的設(shè)置,后臺自動建表,該表稱作原始數(shù)據(jù)表。執(zhí)行數(shù)據(jù)導入,將導入的數(shù)據(jù)存儲在原始數(shù)據(jù)表中。對于一個定制的導入,只對應一張原始數(shù)據(jù)表
53、,如果三方數(shù)據(jù)源涉及多張表達的情況,則需定制多個導入,或者將多張表在導入環(huán)節(jié)處理成一張表。導入界面的設(shè)計采用向?qū)Х绞剑杂袛?shù)據(jù)庫知識的操作人員即可準確地定制數(shù)據(jù)交換項,完成導入工作。 數(shù)據(jù)庫直接導入數(shù)據(jù)庫直連方式支持oracle,sybase,sqlserver,mysql等常見數(shù)據(jù)庫,如選擇oracle,系統(tǒng)將提供ip,端口,sid,user,password等相關(guān)項目的設(shè)置,設(shè)置完成后提供連接測試功能,保證數(shù)據(jù)庫能順利連通。數(shù)據(jù)庫連通后指定數(shù)據(jù)庫直連導入類型,導入類型又可分為三種類型:表方式、視圖方式、存儲過程方式。數(shù)據(jù)庫直連導入類型分類圖操作人員需要錄入如下
54、信息作為數(shù)據(jù)交換項的屬性:l IP,端口號,數(shù)據(jù)庫類型,表名(視圖名,存儲過程名)l 導入頻率(天、周、月等)l 導入數(shù)據(jù)的字段名和類型(默認顯示源的字段名稱和類型,如果有數(shù)據(jù)交換定義標準則自動根據(jù)字段含義進行比對按標準進行名稱和類型的設(shè)置,操作人員可以修改)數(shù)據(jù)庫直連導入工作原理圖 FTP導入FTP導入的方式在外部表現(xiàn)上有兩種:1.FTP服務(wù)器為外部服務(wù)器;2.FTP服務(wù)器為三方數(shù)據(jù)交換內(nèi)部FTP服務(wù)器。在系統(tǒng)內(nèi)部實現(xiàn)上是一樣的,都是通過連接FTP服務(wù)器,下載相關(guān)數(shù)據(jù)。這邊主要要說的是支持的文件類型,系統(tǒng)預設(shè)是如下三種,后續(xù)可以擴展,EXCEL、CSV、TXT。
55、FTP方式支持的文件類型圖操作人員需要錄入如下信息作為數(shù)據(jù)交換項的屬性:l IP,端口號,目錄l 導入頻率(天、周、月、年等)l 文本格式(表頭、數(shù)據(jù)字段名稱和類型、分隔符等)FTP導入工作原理圖 界面人工上傳創(chuàng)建界面人工上傳方式的數(shù)據(jù)交換項后,操作人員可以通過系統(tǒng)提供的web界面上傳數(shù)據(jù)。支持的文件類型和FTP方式的一致,系統(tǒng)預設(shè)是如下三種,后續(xù)可以擴展,EXCEL、CSV、TXT。界面人工上傳方式支持的文件類型圖操作人員需要錄入如下信息作為數(shù)據(jù)交換項的屬性:l 文本格式(表頭、數(shù)據(jù)字段名稱和類型、分隔符等)以下為界面分工上傳方式的工作原理圖:界面人工上傳導入工
56、作原理圖3.3.6 3.3.6 數(shù)據(jù)加工設(shè)計 自動匹配設(shè)計.1 .1 概述數(shù)據(jù)加工流程示意圖一個完整的自動匹配流程由兩部分組合完成:前臺配置、后臺數(shù)據(jù)處理。 前臺配置:有操作員負責完成,針對交換項目逐步按步驟完成匹配數(shù)據(jù)源設(shè)置最終表結(jié)構(gòu)定義匹配加工規(guī)則定義任務(wù)時間保存 。 輸入匹配數(shù)據(jù)源表名 加載匹配數(shù)據(jù)源和原始數(shù)據(jù)表結(jié)構(gòu)信息 表結(jié)構(gòu)信息臨時保存以便設(shè)置規(guī)則時調(diào)用 對照表是指經(jīng)過加工以后,數(shù)據(jù)的最終存儲表。 勾選匹配數(shù)據(jù)表和原始數(shù)據(jù)表需要導入進最終數(shù)據(jù)表的有效字段。 對勾選的字段進行統(tǒng)一規(guī)范化重定義。 配置界面由規(guī)則類型規(guī)定。 規(guī)則參數(shù)
57、:匹配表字段名、匹配表字段值、原始表字段名、原始表字段值、字段關(guān)系、截取下標 設(shè)置匹配執(zhí)行時間和周期后臺數(shù)據(jù)處理:由任務(wù)引擎自動完成,檢測并觸發(fā)任務(wù)執(zhí)行,創(chuàng)建規(guī)則處理引擎,傳入規(guī)則組列表,規(guī)則處理引擎自動識別解析器類型,依次執(zhí)行規(guī)則組,并記錄相關(guān)日志信息。 .2 .2 設(shè)計原則數(shù)據(jù)加工設(shè)計原則示意圖靈活性:三方原始數(shù)據(jù)的不確定,數(shù)據(jù)結(jié)構(gòu)未知,匹配條件交換平臺無法預知,自動匹配設(shè)計要能夠處理各種各樣的數(shù)據(jù)進行比對。通用性:提取整個匹配流程中所有交換項目數(shù)據(jù)處理過程共同的地方:數(shù)據(jù)源設(shè)置、最終表結(jié)構(gòu)定義、規(guī)則定義、任務(wù)時間設(shè)置,變成操作員可配置。安全可靠性:操作員只需要配置參數(shù)就可完成整個自動匹配流程,核心的數(shù)據(jù)匹配處理由系統(tǒng)分析配置去執(zhí)行。核心的數(shù)據(jù)處理對于操作員來說是一個“黑盒”。如果配置參數(shù)有誤,這個“黑盒”程序會自動阻止后續(xù)任務(wù)執(zhí)行,并返回錯誤信息給操作員。系統(tǒng)可擴展性:規(guī)則解析變化,數(shù)據(jù)存放位置變化等等對操作員來說,沒有任何的影響,操作員只需關(guān)心配置參數(shù)的設(shè)置是否正確。其他調(diào)整都在程序內(nèi)部調(diào)整。時效性:匹配數(shù)據(jù)是一個大量數(shù)據(jù)操作的過程,數(shù)據(jù)量越大,所需要的時間越長,操作員不可能一直等待數(shù)據(jù)匹配的完成。操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 2 Lesson 8教學設(shè)計 -2024-2025學年冀教版八年級英語下冊
- 城市高架施工組織設(shè)計
- 《軸對稱圖形的再認識》教學設(shè)計-2023-2024學年四年級下冊數(shù)學青島版
- 6《我的家庭貢獻與責任》第二課時(教學設(shè)計)部編版道德與法治四年級上冊
- 公共政策傳播的有效性及其影響分析試題及答案
- 2025至2030年中國氈圈行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國正戊酸正戊酯行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國橡筋織帶市場現(xiàn)狀分析及前景預測報告
- 2025至2030年中國模具專用脫模劑行業(yè)發(fā)展研究報告
- 2025至2030年中國棕白3色穿“心”毛衣熊市場分析及競爭策略研究報告
- 漢譯巴利三藏相應部5-大篇
- 2022年青海大學醫(yī)學院附屬藏醫(yī)院醫(yī)護人員招聘筆試模擬試題及答案解析
- 英語四級仔細閱讀講解及技巧
- 城市地理學-第八章城市空間分布體系
- 3,5-二甲基吡唑生產(chǎn)工藝規(guī)程
- 拆除工程安全的應急預案工程應急預案
- 貴州省促進養(yǎng)老托育服務(wù)高質(zhì)量發(fā)展實施方案
- 托利多電子秤校秤步驟
- 四線制方向電路
- 食堂干貨類食材臨時采購需求書
評論
0/150
提交評論