第三方數(shù)據(jù)交換平臺方案v114_第1頁
第三方數(shù)據(jù)交換平臺方案v114_第2頁
第三方數(shù)據(jù)交換平臺方案v114_第3頁
第三方數(shù)據(jù)交換平臺方案v114_第4頁
第三方數(shù)據(jù)交換平臺方案v114_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、江蘇省第三方數(shù)據(jù)交換平臺設(shè)計說明書文件編號TH-DEP-TD-01文件狀態(tài)口草稿正式發(fā)布正在修改當(dāng)前版本1.1擬制黨輝、蔣炸、朱曙楷、 顧小明日 期2012-08-03審核黨輝日 期2012-08-06批準(zhǔn)周志敏日 期2012-08-09修訂歷史記錄A -增加M -修iT D -刪除變更版本號日期變更類型(A*M*D )修改人摘要V1.0A黨輝、蔣煒根據(jù)原始需求文檔和2012年3月若干討論會意見形成初步技術(shù)方案V1.1A朱曙楷、顧小明根據(jù)2012年7月24日演示討論會及 后續(xù)討論會意見對文檔進行內(nèi)容增加V1.13M黨輝修改和校訂目錄1. 引言 71.1 編寫目的71.2 背景 71.3 術(shù)語與

2、縮寫解釋71.4 參考資料82. 概要設(shè)計82.1 平臺設(shè)計與定位82.1.1 概述 82.1.2 與現(xiàn)有系統(tǒng)的關(guān)系102.2 硬件與網(wǎng)絡(luò)122.2.1 核心硬件和網(wǎng)絡(luò)122.2.2 外圍硬件與網(wǎng)絡(luò)132.2.3 網(wǎng)絡(luò)互聯(lián)的安全132.2.4 節(jié)點部署說明142.2.5 軟件系統(tǒng)152.3 核心軟件系統(tǒng)結(jié)構(gòu)162.3.1 第三方數(shù)據(jù)源172.3.2 數(shù)據(jù)接口層182.3.3 傳輸控制層192.3.4 數(shù)據(jù)處理層202.3.5 交換數(shù)據(jù)庫212.3.6 數(shù)據(jù)展現(xiàn)界面212.3.7 數(shù)據(jù)應(yīng)用接口212.3.8 上下級系統(tǒng)數(shù)據(jù)共享222.3.9 數(shù)據(jù)交換標(biāo)準(zhǔn)222.4 核心軟件系統(tǒng)設(shè)計原則242.4

3、.1 自動化數(shù)據(jù)交換242.4.2 可定制數(shù)據(jù)交換242.4.3 多重方式數(shù)據(jù)的展現(xiàn)與利用252.4.4 數(shù)據(jù)全生命周期管理252.4.5 數(shù)據(jù)字段業(yè)務(wù)標(biāo)準(zhǔn)262.5 數(shù)據(jù)存儲設(shè)計262.6 數(shù)據(jù)流管理設(shè)計273. 技術(shù)架構(gòu)設(shè)計283.1 概述 283.2 基礎(chǔ)組件293.2.1 Spring Framework293.2.2 Swim Framework303.2.3 Piston遠(yuǎn)程數(shù)據(jù)交換中間件323.3 領(lǐng)域模型和邏輯設(shè)計343.3.1 概述 343.3.2 任務(wù)調(diào)度引擎343.3.3 規(guī)則處理引擎373.3.4 系統(tǒng)核心功能設(shè)計概述423.3.5 數(shù)據(jù)導(dǎo)入設(shè)計433.3.6 數(shù)據(jù)加工

4、設(shè)計513.3.7 數(shù)據(jù)應(yīng)用設(shè)計573.3.8 數(shù)據(jù)上傳和下發(fā)設(shè)計633.3.9 任務(wù)監(jiān)控管理中心設(shè)計703.3.10 系統(tǒng)權(quán)限設(shè)計713.3.11 數(shù)據(jù)權(quán)限設(shè)計733.3.12 數(shù)據(jù)標(biāo)準(zhǔn)設(shè)計743.3.13 現(xiàn)有系統(tǒng)集成設(shè)計763.3.14 數(shù)據(jù)使用反饋設(shè)計774. 系統(tǒng)功能設(shè)計794.1 概述 794.2 數(shù)據(jù)交換部分804.2.1 數(shù)據(jù)交換流程814.2.2 交換項目設(shè)置814.2.3 交換項目調(diào)度874.2.4 交換項目的監(jiān)控874.2.5 數(shù)據(jù)交換的一些原則894.3 數(shù)據(jù)加工部分894.3.1 數(shù)據(jù)加工流程904.3.2 自動匹配914.3.3 手工匹配964.3.4 手工撤銷匹配

5、974.3.5 數(shù)據(jù)匹配綜合管理984.4 數(shù)據(jù)應(yīng)用部分994.4.1 數(shù)據(jù)字典查詢1004.4.2 交換項目情況查詢1014.4.3 按交換項目的簡單數(shù)據(jù)查詢1014.4.4 單戶明細(xì)信息查詢1024.4.5 數(shù)據(jù)輸出接口1024.4.6 對于異地數(shù)據(jù)交換的說明1034.4.7 成果展示1034.4.8 數(shù)據(jù)利用反饋展現(xiàn)1044.5 數(shù)據(jù)上傳下發(fā)1054.5.1 數(shù)據(jù)上傳1054.5.2 數(shù)據(jù)下發(fā)1064.5.3 系統(tǒng)全景圖查詢1064.6 系統(tǒng)設(shè)置和管理部分1074.6.1 層級管理1074.6.2 崗位設(shè)置1084.6.3 權(quán)限管理1094.6.4 代碼表設(shè)置1094.6.5 交換項目設(shè)

6、置備份和恢復(fù)1091.1 編寫目的根據(jù)江蘇地稅第三方數(shù)據(jù)交換平臺系統(tǒng)需求思路以及多次需求和技術(shù)討 論會,特別是3月份和7月份演示討論會后,依據(jù)省局領(lǐng)導(dǎo)的意見,形成該三方 數(shù)據(jù)交換平臺的技術(shù)設(shè)計說明書。該文檔把三方數(shù)據(jù)交互平臺的技術(shù)和功能方面 的設(shè)計,通過文字和圖表明確的表述出來,以供領(lǐng)導(dǎo)審閱。同時,也依據(jù)該設(shè)計 文檔,進行下一步的設(shè)計和開發(fā)工作。1.2 背景根據(jù)省局關(guān)于委托常州地方稅務(wù)局開發(fā)“第三方數(shù)據(jù)交換平臺項目”的通知的要求,立足于全省地稅系統(tǒng)應(yīng)用和管理的實際情況,開發(fā)建設(shè)具有通用性、適應(yīng)性強的數(shù)據(jù)交換平臺。該平臺是支撐稅源專業(yè)改革新模式的重要數(shù)據(jù)平臺, 為風(fēng)險管理平臺和日常稅源監(jiān)控及稅收

7、分析提供了強大的第三方信息庫。該平臺的開發(fā)立足于第三方信息進得來、 管得住、整合得好,為風(fēng)險平臺的后期數(shù)據(jù)應(yīng) 用及其它業(yè)務(wù)需求提供可靠的信息源,為稅源專業(yè)化改革的深化推進提供重要的 支撐平臺。1.3 術(shù)語與縮寫解釋縮寫、術(shù)語解釋ETLExtract,transform and load.抽取、轉(zhuǎn)換與裝載。數(shù)據(jù)處理的二個環(huán)節(jié):MVCModel,view and controller.一種系統(tǒng)設(shè)計的常用模式:模型、視圖、控制器。IOCInversion of control.控制反轉(zhuǎn),面向?qū)ο笤O(shè)計的一種模式。AOPAspect Oriented Programming.面向切面編程,軟件設(shè)計的一種

8、方法。RPCRemote procedure call.遠(yuǎn)程過程調(diào)用,一種協(xié)議和程序調(diào)用方式,使得遠(yuǎn)程程序的調(diào)用跟本地程序調(diào)用在調(diào)用者角度沒有差異。1.4 參考資料江蘇地稅第三方數(shù)據(jù)交換平臺系統(tǒng)需求思路2 .概要設(shè)計2.1 平臺設(shè)計與定位2.1.1 概述從核心數(shù)據(jù)處理功能來講,三方數(shù)據(jù)交換平臺設(shè)計實現(xiàn)為一個數(shù)據(jù) ETL (Extract Transform Load)平臺,該平臺首先從定義好的第三方數(shù)據(jù)源抽取( Extract)數(shù) 據(jù),然后經(jīng)過轉(zhuǎn)換(Transform)處理進入平臺系統(tǒng),最后通過一定的技術(shù)手段 裝載(Load)為可以直接應(yīng)用的數(shù)據(jù),如下圖所示。數(shù)據(jù)ETL過程圖三方數(shù)據(jù)交換平臺是

9、一個專注于數(shù)據(jù)處理的技術(shù)平臺,它將提供豐富的數(shù)據(jù)導(dǎo)入、處理和應(yīng)用方式,充分考慮多種應(yīng)用場合,實現(xiàn)方便的定制功能,使得操 作人員在數(shù)據(jù)處理層面上有多種多樣的選擇方式,可以根據(jù)不同數(shù)據(jù)來源和去向 定制各異的數(shù)據(jù)導(dǎo)入、加工與應(yīng)用規(guī)則。三方數(shù)據(jù)交換平臺也是一個相對獨立的系統(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)的可使用性。卜面的三方數(shù)據(jù)交換平臺示意圖 比較直觀的顯示了上

10、述內(nèi)容數(shù)據(jù)流4控制流三方數(shù)據(jù)交換平臺示意圖通俗來講,三方數(shù)據(jù)交換平臺可以視作一個數(shù)據(jù)加工廠和數(shù)據(jù)流橋梁。原始 的三方數(shù)據(jù)相當(dāng)于原料,原料進工廠(數(shù)據(jù)導(dǎo)入)以后,經(jīng)過加工過程(數(shù)據(jù)加 工),成為可以發(fā)售的產(chǎn)品(可以應(yīng)用的數(shù)據(jù))。除了數(shù)據(jù)工廠作用以外,它還是 數(shù)據(jù)流環(huán)節(jié)中的一個橋梁,通過這個橋梁,數(shù)據(jù)可以在不同的應(yīng)用系統(tǒng)之間進行 流動。2.1.2 與現(xiàn)有信息系統(tǒng)的關(guān)系三方數(shù)據(jù)交換平臺建設(shè)的初衷不是一個孤立的系統(tǒng),它是為了加工處理數(shù) 據(jù),進而為其他系統(tǒng)服務(wù)的。在現(xiàn)階段,可以預(yù)見的跟它有數(shù)據(jù)關(guān)系的系統(tǒng)包括 政府公共信息網(wǎng)、省地等級別的相關(guān)數(shù)據(jù)系統(tǒng)(國稅、工商、供電、供水、社保、 國土等等)以及地稅內(nèi)部

11、現(xiàn)存的信息系統(tǒng),包括大集中系統(tǒng)、風(fēng)險管理平臺等。三方數(shù)據(jù)交換平臺系統(tǒng)在這樣一種關(guān)系網(wǎng)絡(luò)中, 處于中間地位,通過該平臺的建設(shè),打通數(shù)據(jù)在現(xiàn)有的這些系統(tǒng)之間的流動路徑, 使得原本孤立的這些信息孤島能夠連成一片,實現(xiàn)信息數(shù)據(jù)的共享和應(yīng)用。它是各個系統(tǒng)之間的紐帶,為建設(shè) 綜合治稅這樣的大概念平臺打下了堅實的基礎(chǔ)。地稅現(xiàn)有信息系統(tǒng) (大集中、風(fēng)險平 臺等)綜合治稅平臺三方數(shù)據(jù)交換平臺關(guān)系示意圖因為現(xiàn)存的系統(tǒng)各種各樣,對外的接口也不盡然相同,所以為了盡可能多的適應(yīng)當(dāng)前系統(tǒng),在對當(dāng)前系統(tǒng)對外接口不做過多的改變的前提下 (事實上,要對現(xiàn)有系統(tǒng)接口做修改在很多情況下沒有太大的可行性),三方數(shù)據(jù)交換平臺將會提供多

12、種形式的數(shù)據(jù)輸入接口和輸出接口,這在后續(xù)將會詳細(xì)講述。因為當(dāng)前需要接入的系統(tǒng)就很多,業(yè)務(wù)規(guī)則也千差萬別,未來也可能有更多所以三方數(shù)據(jù)交換平臺不可能一開始就設(shè)計好與其它系統(tǒng)之間的業(yè)務(wù)關(guān)系, 否則接入一個新的系統(tǒng),平臺就要做相應(yīng)修改,這個工作量是不可想象的。 所以, 三方數(shù)據(jù)交換平臺設(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)的角度來看,三方數(shù)據(jù)交換平臺僅僅提供了數(shù)據(jù)的輸入和輸出接口。從三方數(shù)據(jù)交換平臺內(nèi)部來看,它提供了多種多樣的數(shù)

13、據(jù)處理規(guī)則,通過這些規(guī)則的靈活定制,實現(xiàn)了數(shù)據(jù)的業(yè)務(wù)處理。2.2 硬件與網(wǎng)絡(luò)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)的部署可以分為多個級次,每一級次都是由一個到多個節(jié)點組成。例如,在省、市兩級進行部署,省、市分別為部署在本地的數(shù)據(jù)交換

14、平臺軟件系統(tǒng)準(zhǔn)備合適的硬件平臺和網(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 外圍硬件與網(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ò),需要在幾個不同的方面加以說明。首先,在通信的發(fā)起上,分為主動和被動方式。主動方式是指核心網(wǎng)絡(luò)主動去訪問

15、第三方數(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 網(wǎng)絡(luò)互聯(lián)的安全因為數(shù)據(jù)交互牽涉到大量的保密數(shù)據(jù)的交換,所以在硬件互聯(lián)層面上,安全性也是非常核心的一環(huán)。在本

16、系統(tǒng)設(shè)計和部署的時候,將嚴(yán)格按照地稅和相關(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 節(jié)點部署說明如下圖所示,該數(shù)據(jù)交換平臺系統(tǒng)在宏觀上由部署在不同地理位置的多個節(jié)點組成,這些節(jié)點位于不同的層級,一個層級對應(yīng)有一個到多個節(jié)點。 所謂節(jié)點 也就是在一定的地理位置實際部署的軟硬件系統(tǒng)。層級分為省級和地市級,所有 在地域行政級別相同的節(jié)點屬于同一個層級,例如南京市與常州市的市級

17、部署節(jié) 點它都屬于市一級的三方數(shù)據(jù)交換平臺系統(tǒng)。節(jié)點部署只是一個宏觀的概念,在 實際部署中,對于要部署幾層、多少節(jié)點,這個根據(jù)省局的安排和當(dāng)?shù)貙嶋H業(yè)務(wù)情況來進行。比如說一個區(qū)(縣)可以選擇部署和不部署這樣的數(shù)據(jù)交換平臺系二級節(jié)點m基于節(jié)點的網(wǎng)絡(luò)部署圖統(tǒng)。 在不部署平臺系統(tǒng)的情況下,它可以直接訪問上級機構(gòu)部署的節(jié)點,實現(xiàn)數(shù)據(jù)的交換和數(shù)據(jù)利用。當(dāng)然這需要有一些前提條件:首先網(wǎng)絡(luò)要互聯(lián);另外還需在上級機構(gòu)的系統(tǒng)里進行用戶設(shè)置和訪問權(quán)限的設(shè)置。2.2.5 軟件系統(tǒng)軟件系統(tǒng)的主要包括操作系統(tǒng)平臺、數(shù)據(jù)庫管理系統(tǒng)、Web 及應(yīng)用服務(wù)器軟件,以及需要接下來設(shè)計和開發(fā)完成數(shù)據(jù)導(dǎo)入、處理、應(yīng)用的核心軟件系統(tǒng)。這

18、些軟件系統(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應(yīng)用服務(wù)器以及所需要的Ftp 服務(wù)器。以上的軟件只需部署安裝,按照系統(tǒng)實際運行所需進行相應(yīng)的配置即可。真正完成數(shù)據(jù)交換的核心軟件需要接下來開發(fā)完成。從宏觀角度來看,它主要由后臺數(shù)據(jù)自動化處理組件和Web 操作控制系統(tǒng)及數(shù)據(jù)展現(xiàn)應(yīng)用系統(tǒng)組成。后臺數(shù)據(jù)自動化處理組件將會被設(shè)計成后

19、臺自動運行的模式,通過提前定義好的標(biāo)準(zhǔn)接口以及標(biāo)準(zhǔn)業(yè)務(wù)處理規(guī)則,完成數(shù)據(jù)交換、處理以及生成可應(yīng)用數(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)應(yīng)用 系統(tǒng),主要是把獲取和處理好的數(shù)據(jù),以各種形式展現(xiàn)出來,提供不同方式的展 現(xiàn)形式,支持固定和可定制的信息查詢。另外還提供可編程或非編程方式的數(shù)據(jù) 訪問接口。2.3 核心軟件系統(tǒng)結(jié)構(gòu)上級數(shù)據(jù)交換系統(tǒng)型據(jù)應(yīng)用接口數(shù)據(jù)

20、展現(xiàn)界面交換數(shù)據(jù)庫數(shù)據(jù)處理層傳輸控制層數(shù)據(jù)按口層下級數(shù)據(jù)交換系統(tǒng)核心軟件系統(tǒng)結(jié)構(gòu)圖如上圖所示,以模塊化分層的方式表述了數(shù)據(jù)交換系統(tǒng)的軟件架構(gòu),從大的方面來講,主要包含第三方數(shù)據(jù)源、數(shù)據(jù)接口層、傳輸控制層、數(shù)據(jù)處理層、交換數(shù)據(jù)庫、數(shù)據(jù)應(yīng)用接口和數(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 第三方數(shù)據(jù)源第三方數(shù)據(jù)源是整個系統(tǒng)所要交換數(shù)據(jù)的原始采集地,由于各個數(shù)據(jù)源的情況差別很大,存

21、在很大的不確定性,所以就要求系統(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ò)接口層提供可以訪問的FTP 服務(wù)器, 本

22、系統(tǒng)根據(jù)事先的約定,來完成 FTP服務(wù)器的定時訪問,獲取到固定格式的文本數(shù)據(jù)。手工文本方式是指通過其它渠道,以人工方式獲取到的固定格式的第三方數(shù)據(jù),它文本方式存儲。在這一層面,需要確定通信和數(shù)據(jù)采集的一些基本協(xié)議。例如,所要采集數(shù)據(jù)的格式、頻率等。數(shù)據(jù)接口層三方數(shù)據(jù)源*控制流“A數(shù)據(jù)流2.3.2 數(shù)據(jù)接口層數(shù)據(jù)接口層和第三方數(shù)據(jù)源示意圖本層主要負(fù)責(zé)對外接口,提供數(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ù)器提供給第三方機

23、構(gòu),使其可以按照訪問協(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)入功能,可以實現(xiàn)格式化數(shù)據(jù)的導(dǎo)入。除了這些對外的功能性接口以外,本層還負(fù)責(zé)數(shù)據(jù)安全傳輸、數(shù)據(jù)有效性檢操作桎制,缺信息漢學(xué)檢樂原始款據(jù)庫數(shù)據(jù)接口層測等。2.3.3 傳輸控制層傳輸控制層示意圖傳輸控制層是實現(xiàn)自動化數(shù)據(jù)采集的關(guān)鍵,它根據(jù)事先定義好的協(xié)議,去自動處理用戶定制的數(shù)據(jù)采集任務(wù),同時處理數(shù)據(jù)采集中產(chǎn)生的異常情況,并進行反饋和預(yù)警。自動數(shù)據(jù)采集采用監(jiān)聽任務(wù)腳本的方式去進行處理。首先,用戶通過W

24、EB界面去進行數(shù)據(jù)采集任務(wù)的定制,定制完成以后,會在后臺形成一定格式的任務(wù)腳本的描述。其次, 傳輸控制層得監(jiān)聽模塊如果獲取到了新增或修改過的任務(wù)描述腳本, 則對腳本進行解析,按照腳本描述的規(guī)則,去驅(qū)動相應(yīng)的程序模塊進行通信,完成數(shù)據(jù)的自動化采集。另外,傳輸控制層還會反饋一些預(yù)警信息,比如定制的數(shù)據(jù)采集任務(wù)沒有完成或者采集過程中發(fā)生了異常,傳輸控制層都會對此過程進行記錄,通過WEB界面把預(yù)警信息反饋給用戶。2.3.4 數(shù)據(jù)處理層數(shù)據(jù)處理層示意圖數(shù)據(jù)處理層實現(xiàn)了原始采集數(shù)據(jù)的存儲以及數(shù)據(jù)的預(yù)處理等環(huán)節(jié)。原始數(shù)據(jù)以數(shù)據(jù)的原始結(jié)構(gòu)進行保存,并記錄操作時間,操作人員等信息。數(shù)據(jù)的處理包括宏觀數(shù)據(jù)和微觀數(shù)

25、據(jù)的處理,宏觀數(shù)據(jù)直接處理存儲,微觀數(shù)據(jù)則要和納稅戶信息進行有效的關(guān)聯(lián),使其和地稅戶管建立對照表,進行自動匹配以及手工匹配。自動匹配建立在關(guān)聯(lián)字段信息一致性上,根據(jù)一定規(guī)則進行匹配,通過程序遍歷, 來自動生成匹配數(shù)據(jù)自動裝載到對照表中,包含的字段有稅務(wù)管理碼、納稅人名稱、第三方唯一標(biāo)識碼、企業(yè)名稱、主關(guān)聯(lián)字段、次關(guān)聯(lián)字段等。如果部分關(guān)聯(lián)信息一致或沒有一致的關(guān)聯(lián)信息,則需要提供界面去進行手工匹配,手工操作后,該部分?jǐn)?shù)據(jù)也自動進入對照表。數(shù)據(jù)處理層除了需要制定完備的數(shù)據(jù)匹配規(guī)則以外,還需進行多重邏輯校驗,實現(xiàn)一定的容錯性,以最大可能來反映數(shù)據(jù)的準(zhǔn)確性。2.3.5 交換數(shù)據(jù)庫交換數(shù)據(jù)庫是交換系統(tǒng)所有

26、數(shù)據(jù)的存儲地,包括系統(tǒng)初始化數(shù)據(jù)、系統(tǒng)管理數(shù)據(jù)、原始采集數(shù)據(jù)、預(yù)處理后的正式交換數(shù)據(jù)等。根據(jù)需求,數(shù)據(jù)庫進行良好的設(shè)計。2.3.6 數(shù)據(jù)展現(xiàn)界面本層主要實現(xiàn)數(shù)據(jù)的展現(xiàn),包括各種查詢分析功能。主要有固定查詢、自主定制組合查詢、信息交換統(tǒng)計查詢、單戶明細(xì)信息查詢、適用稅種查詢分析、交換數(shù)據(jù)質(zhì)量跟蹤監(jiān)控情況查詢、可利用數(shù)據(jù)信息查詢等內(nèi)容。2.3.7 數(shù)據(jù)應(yīng)用接口本層提供編程與非編程數(shù)據(jù)接口,使得交換系統(tǒng)的最終數(shù)據(jù),可以為其它系統(tǒng)和部門所用。根據(jù)實際的需求情況,可考慮提供各種訪問途徑,例如:數(shù)據(jù)庫直接訪問方式、FTP 文本數(shù)據(jù)共享、可編程遠(yuǎn)程接口、人工導(dǎo)出文本等。2.3.8 上下級系統(tǒng)數(shù)據(jù)共享本系統(tǒng)除

27、了第三方數(shù)據(jù)交換功能以外,在級別上有省、市、縣(區(qū))三個級別, 所以數(shù)據(jù)除了從本層第三方數(shù)據(jù)源進入本層交換系統(tǒng)以外,還可能存在數(shù)據(jù)的跨級別訪問。比如,上級部門的交換數(shù)據(jù)可提供給下級部門進行展現(xiàn)和應(yīng)用,而下級部門的數(shù)據(jù)交換情況,也可以提供給上級部門查看,比如提供數(shù)據(jù)交換總覽圖這樣的功能,使得上級部門可以直接獲知數(shù)據(jù)交換系統(tǒng)各個地方的部署實施情況等。上下級數(shù)據(jù)的共享可以考慮兩種方式,一種是直接操作上級或下級的交換平臺系統(tǒng), 另外一種是提供數(shù)據(jù)的上傳或下發(fā),根據(jù)用戶的實際需要,會同時提供兩種方式。2.3.9 數(shù)據(jù)交換標(biāo)準(zhǔn)因為本系統(tǒng)可能會涉及到眾多的第三方數(shù)據(jù)源,可能包含海量數(shù)據(jù)的交換處理與存儲,而且

28、數(shù)據(jù)的交換和處理環(huán)節(jié)也很多,所以為了更好的對數(shù)據(jù)進行交換和處理, 使得數(shù)據(jù)最終能得到有效的利用,我們就需要制定各個環(huán)節(jié)的標(biāo)準(zhǔn)、規(guī)范和協(xié)議。而標(biāo)準(zhǔn)、規(guī)范、協(xié)議也是自動化數(shù)據(jù)處理的一個前提,否則很多環(huán)節(jié)必須通過人工干預(yù)才能進行。首先關(guān)于數(shù)據(jù)源的標(biāo)準(zhǔn)化,也就是本系統(tǒng)都支持哪些類型的數(shù)據(jù)源,某種特定的數(shù)據(jù)源都必須要提供哪些參數(shù)。比如, 如果支持?jǐn)?shù)據(jù)庫直連方式,那么就需要確定 IP 地址、端口、數(shù)據(jù)庫、表(視圖,存儲過程等)、字段等參數(shù),在用戶進行數(shù)據(jù)采集任務(wù)定制的時候,如果選定了這種方式,那么上述所列的參數(shù)就必須提供。其次是數(shù)據(jù)格式的標(biāo)準(zhǔn)化。只有采集到標(biāo)準(zhǔn)格式的數(shù)據(jù),才能被后續(xù)環(huán)節(jié)所自動化處理。在進行

29、數(shù)據(jù)采集之前,必須要確定數(shù)據(jù)以什么樣的載體存在,在載體中以什么樣一種格式存在。比如以數(shù)據(jù)庫直連方式,那么數(shù)據(jù)應(yīng)該就是以數(shù)據(jù)庫表的方式存在。如果是以文本方式,那么就必須確定是什么樣的文本格式:自定義文本格式、csv、 excel 等。這個還可以繼續(xù)延伸下去,比如自定義格式是怎樣的自定義規(guī)則,數(shù)據(jù)字段間以什么樣方式分隔,數(shù)據(jù)字段的名字采用什么樣的存儲方式等等。最后, 是數(shù)據(jù)源和數(shù)據(jù)存儲的標(biāo)準(zhǔn)化。因為采集的原始數(shù)據(jù)可能是多樣性的,而這樣的原始數(shù)據(jù)是不能為后續(xù)的系統(tǒng)例如風(fēng)險評估系統(tǒng)來應(yīng)用的,所以在數(shù)據(jù)的預(yù)處理階段必須遵循數(shù)據(jù)源和數(shù)據(jù)存儲的標(biāo)準(zhǔn)化,使得處理過的正式數(shù)據(jù)可以被其它第三方系統(tǒng)所識別,從而成為

30、真正可以利用的數(shù)據(jù)。系統(tǒng)將根據(jù)稅務(wù)系統(tǒng)制定的數(shù)據(jù)源或數(shù)據(jù)存儲標(biāo)準(zhǔn),去建立數(shù)據(jù)源,包括表的命名、字段的命名、字段的類型、字段的含義。因為當(dāng)前階段標(biāo)準(zhǔn)化工作還在進行中,所以系統(tǒng)的設(shè)計上要考慮多種方式的標(biāo)準(zhǔn)化接入?,F(xiàn)階段可以預(yù)見到的有:標(biāo)準(zhǔn)以文檔的方式提供; 標(biāo)準(zhǔn)以可編程接口提供。在數(shù)據(jù)源建立或數(shù)據(jù)存儲建立的時候,根據(jù)一定的關(guān)鍵字去查詢該標(biāo)準(zhǔn),如果有匹配的標(biāo)準(zhǔn)定義,則遵循標(biāo)準(zhǔn)執(zhí)行。如果沒有標(biāo)準(zhǔn),則可以自定義構(gòu)建。另外,還需要制定詳盡的數(shù)據(jù)比對規(guī)則,只有這樣,才能最大程度的進行數(shù)據(jù)的自動化匹配,進行有效數(shù)據(jù)的篩選與存儲。當(dāng)然,還有很多的處理環(huán)節(jié)需要標(biāo)準(zhǔn)化,這將會在后續(xù)的詳細(xì)設(shè)計中一一實現(xiàn)。2.4 核心

31、軟件系統(tǒng)設(shè)計原則2.4.1 自動化數(shù)據(jù)交換在數(shù)據(jù)交換平臺的軟件體系內(nèi),處于最核心的部件是數(shù)據(jù)交換控制組件,該組件自動運行在后臺,依據(jù)既定的標(biāo)準(zhǔn)交換協(xié)議對數(shù)據(jù)交換的各個環(huán)節(jié)進行監(jiān)聽, 一旦監(jiān)聽到有需要處理的任務(wù),則在后臺自動化的完成數(shù)據(jù)的處理過程,這一過程不需要人工干預(yù)。如果某一過程的處理中,存在問題,則會自動預(yù)警。例如,原本定義好每天需要有新的交換文本上傳到FTP 進行交換,但是自動化處理過程在自動處理過程中,沒有發(fā)現(xiàn)當(dāng)天需要交換的新文本,則會向系統(tǒng)發(fā)一條預(yù)警通知,該通知會以某種方式,在WEB 操作界面展現(xiàn)出來。2.4.2 可定制數(shù)據(jù)交換軟件系統(tǒng)將實現(xiàn)數(shù)據(jù)交換的可定制化。在 Web 操作控制界

32、面上,具有一定權(quán)限的操作人員,可以根據(jù)數(shù)據(jù)交換的需要,在既定的標(biāo)準(zhǔn)交換協(xié)議框架之內(nèi),實現(xiàn)靈活的的可定制數(shù)據(jù)交換操作。可以定制數(shù)據(jù)源、數(shù)據(jù)采集方式、采集頻率等等。當(dāng)操作人員按照規(guī)則進行了數(shù)據(jù)交換的可定制操作以后,系統(tǒng)會生成一定的 流程描述腳本提供給數(shù)據(jù)交換控制組件來自動運行。2.4.3 多重方式數(shù)據(jù)的展現(xiàn)與利用數(shù)據(jù)交換的最終目的是為了對數(shù)據(jù)進行管理和應(yīng)用。那么,經(jīng)過數(shù)據(jù)的采集與預(yù)處理,得到了可以利用的數(shù)據(jù),我們最終需要以某種方式將數(shù)據(jù)加以展現(xiàn)和利用。本系統(tǒng)中,我們將會以兩種方式來進行數(shù)據(jù)的展現(xiàn)與利用。對于本系統(tǒng)的最終用戶,系統(tǒng)將會提供基于 Web的操作界面,來進行數(shù)據(jù)的查詢與展現(xiàn)。根據(jù)業(yè)務(wù)需求,

33、將會提供固定條件的數(shù)據(jù)查詢與展現(xiàn),以及在一定的業(yè)務(wù)范疇之內(nèi)的可定制的數(shù)據(jù)查詢與展現(xiàn)。當(dāng)然除了提供Web 操作界面提供給最終用戶來進行數(shù)據(jù)的查詢與展現(xiàn),還需提供基于不同方式的數(shù)據(jù)查詢與展現(xiàn)接口以供第三方系統(tǒng)或用戶來對數(shù)據(jù)進行查詢和應(yīng)用。那么根據(jù)需求,我們可以提供可編程數(shù)據(jù)訪問接口、數(shù)據(jù)庫直連、FTP 自動交換以及文本導(dǎo)出等不同方式的接口。這個要在保證數(shù)據(jù)存儲、傳輸?shù)陌踩珬l件下,根據(jù)具體的需求來確定最終采用哪些方式。2.4.4 數(shù)據(jù)全生命周期管理本系統(tǒng)的核心著眼點是數(shù)據(jù)的交換處理和利用,所以對于數(shù)據(jù)的管理是最核心的一環(huán)。基于這一問題,需要設(shè)計完備的數(shù)據(jù)生命周期管理,從數(shù)據(jù)抽取到系統(tǒng)的第一步起,到數(shù)

34、據(jù)最終的展現(xiàn)和應(yīng)用。每個環(huán)節(jié),都會提供相應(yīng)的管理功能和操作界面,供具有權(quán)限的操作人員去對數(shù)據(jù)進行控制和處理。另外,對于數(shù)據(jù)每個環(huán)節(jié)的操作和管理,系統(tǒng)都會提供詳盡日志,以供后期分析查詢使用,提供數(shù)據(jù)交換成果的統(tǒng)計與分析功能。2.4.5 數(shù)據(jù)字段業(yè)務(wù)標(biāo)準(zhǔn)本系統(tǒng)自動化成分很高,自動建表,索引,存儲過程等工作都是由系統(tǒng)腳本自動生成。例如在創(chuàng)建數(shù)據(jù)交換項的時候,數(shù)據(jù)進入系統(tǒng)采用的數(shù)據(jù)字段都是要滿足數(shù)據(jù)標(biāo)準(zhǔn)平臺的標(biāo)準(zhǔn)的,新字段要通過數(shù)據(jù)標(biāo)準(zhǔn)平臺審核。2.5 數(shù)據(jù)存儲設(shè)計在本系統(tǒng)中,數(shù)據(jù)存儲的設(shè)計包括兩方面的內(nèi)容,首先是數(shù)據(jù)庫的部署設(shè)計,其次是數(shù)據(jù)庫表的設(shè)計。因為本系統(tǒng)跨地域、跨部門、跨業(yè)務(wù),跨上下級關(guān)系,

35、所以要實現(xiàn)數(shù)據(jù)的采集處理和共享,決定了本系統(tǒng)是一個分布式系統(tǒng)。數(shù)據(jù)庫的部署也必須分地區(qū),分層次, 各個地方部署各自的數(shù)據(jù)庫進行交換數(shù)據(jù)的存儲。省級的交換數(shù)據(jù)存儲在省級的數(shù)據(jù)庫服務(wù)器中,市級的交換數(shù)據(jù)存儲在市級的數(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)中存在各地各個級別的數(shù)據(jù), 所以要設(shè)計合理的數(shù)據(jù)關(guān)聯(lián)關(guān)系,設(shè)定一

36、定的訪問控制標(biāo)志,以保證數(shù)據(jù)的安全共享與訪問。因為本系統(tǒng)涉及到海量數(shù)據(jù)的處理,所以要充分發(fā)揮分布式存儲和運算技術(shù),利用Oracle 數(shù)據(jù)庫管理技術(shù)為中心的各項技術(shù)手段,來實現(xiàn)數(shù)據(jù)的安全存 儲,高效處理。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)進行擴展應(yīng)用。這在前邊基本上已經(jīng)過闡述。另一個方向是數(shù)據(jù)的縱向流動,也就是處于行政關(guān)系的上下級單位間數(shù)據(jù)存儲之間的數(shù)據(jù)流動。

37、主要是上級部門的交換數(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ù)挑戰(zhàn)。另外由于增加了下級(上級) 訪問, 那么一方面數(shù)據(jù)庫

38、訪問壓力會增大,另外一方面遠(yuǎn)程數(shù)據(jù)訪問的效率如何,也不得而知。第二種方式的好處是數(shù)據(jù)本地存儲,這對數(shù)據(jù)的訪問效率以及減輕上級(下級) 部門數(shù)據(jù)庫的壓力是有很大好處的。但是, 這一方式就帶來了海量數(shù)據(jù)的遠(yuǎn)程傳輸控制問題,怎樣保證數(shù)據(jù)能夠高效安全的傳輸?shù)较录墸ㄉ霞墸┎块T,這是需要首要解決的技術(shù)問題。在實際系統(tǒng)的設(shè)計和部署中,根據(jù)上下級所要交互的數(shù)據(jù)的類型、規(guī)模等因素,同時提供這兩種方式的數(shù)據(jù)共享和交換方式,用戶可針對不同情況,酌情選擇使用。3 .技術(shù)架構(gòu)設(shè)計3.1 概述HTML CSS Jquery&JavaScriptAjaxvelocity任務(wù)調(diào)度引擎規(guī)則處理引擎Java beanJava事務(wù)

39、腳本Srping FrameworkSwim FrameworkPiston FrameworkJEE平臺JVM數(shù)據(jù)庫(Oracle)系統(tǒng)架構(gòu)示意圖系統(tǒng)以Java和數(shù)據(jù)庫技術(shù)為依托,采用JEE相關(guān)技術(shù),以MVC模式為核心,采用分層思想,構(gòu)建健壯、靈活的Web應(yīng)用程序。在數(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)建具有良好用戶體驗的 GUI3.2 基

40、礎(chǔ)組件3.2.1 Spring Framework【框架描述】Spring為編寫企業(yè)應(yīng)用程序提供了輕量的解決方案,同時仍然支持使用聲明式事務(wù)、用RMI或web service遠(yuǎn)程調(diào)用、以及使用多種方式來將數(shù)據(jù)持久化 到數(shù)據(jù)庫。Spring框架包含許多特性,并被很好地組織在下圖所示的六個模塊中。ORMHtotrnakr JPATopUflkJDC OJB 田3JMX JMSJCAEJEb EmailWebJEEsp-mgWebMVCFirameMiOric lintecjralicnEtikitsWebVcirk1邨回JSFRirih Via的 SupportJSF6VelocityPDF山印R

41、uporLSpring Pol&i MVCSpring框架架構(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),讓你可以定義,例如方法攔截器 (method-interceptorS)和

42、切點(pointcuts),從邏輯上講,從而減弱代碼的 功能耦合,清晰的被分離開。而且,利用source-level的元數(shù)據(jù)功能,還可以將各種行為信息合并到你的代碼中。我們主要用于對Java數(shù)據(jù)庫操作的事務(wù)配置、任務(wù)異常監(jiān)控。3. Spring中的MVC封裝包Spring 中的 MVC 封裝包提供了 Web 應(yīng)用的 Model-View-Controller (MVC)實現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實現(xiàn),它提 供了一種清晰的分離模型,在領(lǐng)域模型代碼和web form之間。3.2.2 Swim Framework【框架描述】Swim框架是江蘇同和軟件技術(shù)有限公司為了JAV

43、A的數(shù)據(jù)庫快速編程而開發(fā)的一個O/R和sql映射編程框架,它對JDBC進行了非常輕量級的操 作封裝,使得JAVA程序員可以方便地使用SQL來操縱數(shù)據(jù)庫,可以應(yīng)用在 任何可以使用JDBC的場合,既可以在JAVA的客戶端使用,也可以在Servlet/JSP的Web應(yīng)用中使用。SQL Mapper5wim Abstract LayerSpring JDBC TemplateJDBCJAVA Database ConnectionSWIM框架技術(shù)架構(gòu)圖版旁層蜃務(wù)1三利器層服務(wù)2服莠N|數(shù)據(jù)訪向等口基于Spring和Swim的應(yīng)用架構(gòu)圖【框架引用目的】系統(tǒng)與數(shù)據(jù)庫的交互多而雜,有第三方數(shù)據(jù)交換平臺自身的

44、數(shù)據(jù)庫,有第三方數(shù)據(jù)源的數(shù)據(jù)庫Swim框架對于JDBC操作是做過許多優(yōu)化的,兼容主流的數(shù)據(jù)庫類型,具有非常高的數(shù)據(jù)操作效率。對于動態(tài)數(shù)據(jù)源的處理也是 Swim框架的強項,用于應(yīng)對連接不同的第三方數(shù)據(jù)源。Swim提供的O/R映射能滿足系統(tǒng)領(lǐng)域邏輯模式的設(shè)計。3.2.3 Piston遠(yuǎn)程數(shù)據(jù)交換中間件【框架描述】Piston遠(yuǎn)程數(shù)據(jù)交換中間件,為江蘇同和軟件技術(shù)有限公司研發(fā)的此類 中間件的Java版本,在不同的應(yīng)用系統(tǒng)之間,經(jīng)常會有數(shù)據(jù)交換的現(xiàn)象出現(xiàn), 為了讓異構(gòu)信息系統(tǒng)集成技術(shù)平臺實現(xiàn)數(shù)據(jù)的共享和交換,并且實現(xiàn)高效的通信、安全的數(shù)據(jù)傳輸和編程的透明性,Piston遠(yuǎn)程數(shù)據(jù)交換中間件是必不可少的高

45、性能中間件Piston工作原理示意圖該中間件包含了數(shù)據(jù)交換的服務(wù)器端組件和客戶端組件,它在底層實現(xiàn)了數(shù)據(jù)加密、壓縮、傳輸?shù)认到y(tǒng)級的功能,對外提供了一系列的數(shù)據(jù)遠(yuǎn)程交換接口,開發(fā)人員只需要根據(jù)數(shù)據(jù)交換的需求,調(diào)用相應(yīng)的編程接口,并把組件和開發(fā)的程序正確的部署在需要交換數(shù)據(jù)的系統(tǒng)中,就可以方便的實現(xiàn)不同地理位置的信息系統(tǒng)之間的數(shù)據(jù)交互和共享?!究蚣芤迷颉?) Piston采用自定義通信協(xié)議,在二進制流上做了高效的數(shù)據(jù)壓縮。2) Piston 采用基于HTTP 協(xié)議之上的應(yīng)用協(xié)議,為遠(yuǎn)程數(shù)據(jù)的交換提供了方便的通道。3) Piston 采用 MD5、 RSA、 Blowfish 等多種加密手段,確

46、保數(shù)據(jù)交換的安全。4) Piston 采用類似于數(shù)字證書的客戶端驗證機制,保證數(shù)據(jù)交換的客戶端身份不被偽造。5) Piston支持多客戶端,服務(wù)器端使用java編程語言實現(xiàn),客戶端可以是 任何語言實現(xiàn)的組件,只要遵循協(xié)議就可。6) Piston提供了 web控制臺,可以對服務(wù)器端中間件的一些參數(shù)進行管理, web 控制臺的登錄采用了用戶名、密碼、驗證碼和數(shù)字口令碼結(jié)合的方式,采用 ssl 進行通信,確保web 控制臺的安全。3.3 領(lǐng)域模型和邏輯設(shè)計3.3.1 概述此部分文檔用于說明該平臺相關(guān)領(lǐng)域邏輯在技術(shù)上的設(shè)計,為了方便描述后續(xù)的實現(xiàn)機理,首先介紹領(lǐng)域邏輯層核心的兩個組件:任務(wù)調(diào)度引擎;規(guī)

47、則處理引擎。然后講述核心功能(數(shù)據(jù)導(dǎo)入、數(shù)據(jù)加工、數(shù)據(jù)應(yīng)用)相關(guān)主要領(lǐng)域邏輯設(shè)計、權(quán)限設(shè)計、數(shù)據(jù)上傳和下發(fā)設(shè)計等。數(shù)據(jù)交換、數(shù)據(jù)加工都涉及到了一個任務(wù)的概念。為了更好地控制、管理這些任務(wù),我們設(shè)計了一套任務(wù)調(diào)度引擎,負(fù)責(zé)任務(wù)的定時調(diào)度、修改、刪除、宕機后任務(wù)狀態(tài)恢復(fù)等。數(shù)據(jù)加工部分引入了一個規(guī)則的概念,我們對規(guī)則的第一印象就是量多、相互獨立。 應(yīng)對不同業(yè)務(wù)需求肯定就需要很多種規(guī)則去控制數(shù)據(jù)匹配的過程,所以系統(tǒng)預(yù)定的頂級規(guī)則肯定數(shù)量不少;每種規(guī)則都有自己特有的處理方式,否則也不需要使用多種規(guī)則了,所以系統(tǒng)對每一種規(guī)則都必須有對應(yīng)的獨立的處理過程。 面對這種復(fù)雜的處理要求,我們設(shè)計了一套規(guī)則處理引

48、擎, 負(fù)責(zé)對用戶定制的規(guī)則作出解析,映射出相應(yīng)的處理程序,再配合任務(wù)調(diào)度引擎,就能靈活的在平臺中執(zhí)行復(fù)雜的匹配任務(wù)。3.3.2 任務(wù)調(diào)度引擎 概述任務(wù)實例|任基實冽任務(wù)調(diào)度引擎裝載任務(wù)模型2開啟任務(wù)I fi一型冽嵌財任務(wù)調(diào)度引擎工作原理圖本系統(tǒng)為實現(xiàn)自動化的數(shù)據(jù)采集、匹配,則必然涉及到這個任務(wù)可能每天或每周星期二晚上11: 30,或許僅僅每個月的最后一天執(zhí)行。一個自動執(zhí)行而無 須干預(yù)的任務(wù)在執(zhí)行過程中如果發(fā)生一個嚴(yán)重錯誤,應(yīng)用能夠知到其執(zhí)行失敗并 嘗試重新執(zhí)行。為了解決這些難題,本系統(tǒng)特引入了任務(wù)調(diào)度引擎工具的設(shè)計,底層開發(fā)語言為JAVA,與整個應(yīng)用無縫連接。整體的工作原理如上圖

49、所示,為了便于理解, 圖中主要展現(xiàn)了幾個重要的模塊。 整個引擎引入以下幾個概念:1.任務(wù)適配器2. 任務(wù)管理器3.任務(wù)驅(qū)動核心4.任務(wù)線程池。下面我們就分別討論他們的作用。 任務(wù)適配器任務(wù)適配器是整個任務(wù)調(diào)度引擎的耳朵,是任務(wù)調(diào)度引擎的入口。在設(shè)計上采用了策略模式。一旦有任務(wù)模型請求連接,立即抽取、校驗任務(wù)的執(zhí)行配置信息,獲取到任務(wù)實例,需要執(zhí)行的任務(wù)腳本方法名。通過一系列預(yù)處理,通知任務(wù)管理器做下一步的處理。 任務(wù)管理器任務(wù)管理器是整個任務(wù)調(diào)度引擎的大腦,由他來初始化未完成的任務(wù)、裝載任務(wù)腳本、監(jiān)控任務(wù)線程池、發(fā)出異常警告。初始化未完成的任務(wù):在服務(wù)器宕機或者服務(wù)

50、器重啟的情況下,JAVA 進程關(guān)閉, 服務(wù)器內(nèi)存中所有的任務(wù)線程肯定都會丟失。當(dāng)下一次平臺啟動后為了繼續(xù)之前的任務(wù),任務(wù)管理器就提供了一個初始化的功能,從數(shù)據(jù)庫讀取出未完成的任務(wù)信息,自動化地啟動所有任務(wù)。裝載任務(wù)腳本:由任務(wù)適配器傳遞過來的任務(wù)模型提供了相應(yīng)的需要執(zhí)行的任務(wù)腳本,這些腳本定義了具體的任務(wù)內(nèi)容,任務(wù)管理器就負(fù)責(zé)把腳本裝備進任務(wù)驅(qū)動核心,由任務(wù)驅(qū)動核心去驅(qū)動一個新的任務(wù)線程。監(jiān)控任務(wù)線程池:任務(wù)線程一旦開啟就必須有一個良好的管理機制,以便于平臺更好的控制任務(wù)。這個控制的過程對于用戶是不可見的,由系統(tǒng)去處理。但是會暴露響應(yīng)的控制接口給用戶,主要功能設(shè)定在交換項目的監(jiān)控功能中,后文會

51、具體介紹。發(fā)出異常警告:當(dāng)任務(wù)的執(zhí)行遇到問題,比如第三方數(shù)據(jù)源的意外關(guān)閉,網(wǎng)閘的重啟等意外情況導(dǎo)致的不能執(zhí)行數(shù)據(jù)采集等情況,任務(wù)管理器馬上會給平臺一個警告信息,通知平臺做出相應(yīng)的處理,比如生成異常日志文件,Web 操作界面的通知,Email 的通知等等機制。 任務(wù)驅(qū)動核心任務(wù)驅(qū)動核心接收到任務(wù)管理器的指令后,會根據(jù)要求生成一條線程或使一條空閑的線程,去執(zhí)行任務(wù)腳本。它擁有多個任務(wù)開啟端口,以滿足各種執(zhí)行方式的任務(wù)執(zhí)行,并且是可擴展的,比如這個任務(wù)是周期執(zhí)行還是延遲執(zhí)行,是任務(wù)管理器識別用戶任務(wù)定制信息后,向任務(wù)驅(qū)動核心命令需要從哪個端口開啟任務(wù)線程。 任務(wù)線程池任務(wù)

52、線程池是整個任務(wù)調(diào)度引擎的任務(wù)清單,上面記載了任務(wù)的來源、執(zhí)行信息等等,并且為每一個任務(wù)提供了一個開展作業(yè)的場地。每一個任務(wù)都將會開啟一個線程去執(zhí)行,所有的線程組就是我們這里所指的任務(wù)線程池,任務(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)的恢復(fù)。3.3.3 規(guī)則處理引擎 概述數(shù)據(jù)規(guī)則處理引

53、擎是整個數(shù)據(jù)匹配加工的核心架構(gòu)。主要由三個部分組成:規(guī)則解析器、規(guī)則分發(fā)器、規(guī)則處理器。規(guī)則解析器:負(fù)責(zé)把操作員在界面配置的信息,轉(zhuǎn)化成程序可識別的數(shù)據(jù)描述語言格式;負(fù)責(zé)把規(guī)則描述數(shù)據(jù)格式(xml或json格式)轉(zhuǎn)化成操作員可視別 的規(guī)則參數(shù)配置界面。規(guī)則分發(fā)器:檢查交換項目規(guī)則列表的處理器類型,識別出該規(guī)則組應(yīng)該由哪個規(guī)則處理器執(zhí)行,動態(tài)加載對應(yīng)規(guī)則處理器,調(diào)用并執(zhí)行。規(guī)則處理器:是負(fù)責(zé)數(shù)據(jù)匹配加工的實際數(shù)據(jù)操作程序。 解析規(guī)則描述數(shù)據(jù), 針對規(guī)則描述的不同,程序自動識別匹配加工條件,完成數(shù)據(jù)匹配加工處理。 處理流程圖規(guī)則解析器規(guī)則組1規(guī)則組2、超則設(shè)置界面(操作員)./規(guī)則分發(fā)器新建最終表規(guī)則處理器數(shù)據(jù)匹配規(guī)則解析器字段截取解析器字段翻譯解析規(guī)則處理流程圖補充字段解析nrt計算字段解析器 設(shè)計原則從系統(tǒng)平臺的穩(wěn)定、效率、安全、可靠、可維護性的角度出發(fā),設(shè)計了一套 規(guī)則設(shè)置和規(guī)則處理在功能上完全獨立、在業(yè)務(wù)邏輯上相聯(lián)系的機制一一“數(shù)據(jù) 規(guī)則處理引擎”。這套機制的主要特點主要體現(xiàn)在:1 .系統(tǒng)平臺對操作員開放的只有規(guī)則設(shè)置功能和任務(wù)時間的設(shè)置。所有的 加工匹配規(guī)則都有程序自動識別規(guī)則處理,減少由于人為操作造成的錯 誤。2 .操作員對交換項目的設(shè)置完成后,只需填寫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論