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