国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Java的通用批處理作業(yè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2014-09-24 12:03李代偉李蕖
軟件工程 2014年7期

李代偉+李蕖

摘要:為了解決當(dāng)前業(yè)務(wù)數(shù)據(jù)處理中客戶群龐大、業(yè)務(wù)數(shù)據(jù)大、人工操作繁雜、重復(fù)性高等問題,針對(duì)現(xiàn)有核心系統(tǒng)構(gòu)架并非針對(duì)完全連線化的設(shè)計(jì),提出了同一Job內(nèi)批次作業(yè)平行處理的通用批處理作業(yè)系統(tǒng)框架模型,采用斷點(diǎn)續(xù)接、參數(shù)化和模塊化設(shè)計(jì)等實(shí)現(xiàn)了該系統(tǒng)。研究結(jié)果表明:通過調(diào)節(jié)參數(shù),Batch循環(huán)流程控制,以滿足氣象、電信等不同業(yè)務(wù)的需要,系統(tǒng)能為其提供業(yè)務(wù)數(shù)據(jù)的快捷處理手段,提高了操作效率,減少了人工誤操作率,達(dá)到了通用批處理作業(yè)的效果。

關(guān)鍵詞:批處理作業(yè);Batch循環(huán)流程控制;斷點(diǎn)續(xù)接

中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A

Design and Implementation of Java-based Universal Batch Job System

LI Daiwei,LI Qu

(Chengdu University of Information Technology,Chengdu 610225,China)

Abstract:In order to solve the current business data processing,with a huge customer base and a mass of business data,complicated manual operation,higher repeatability problems.For existing core system architecture is not directed entirely connection design,the paper proposes a batch job system framework model,which has batch operations in the same general purpose parallel processing job,using breakpoint access mechanisms,parametric and modular design.The results show that: by adjusting parameter,batch loop flow control,to meet the needs of meteorology and telecommunications,etc.The system can provide means of fast processing business data,improve the operational efficiency,reduce labor misuse rate,reaching a common batch job effects.

Keywords:batch job;batch process control loop;resume broken process

1 引言(Introduction)

在當(dāng)前計(jì)算機(jī)和網(wǎng)絡(luò)高速發(fā)展的時(shí)代,現(xiàn)代企事業(yè)單位規(guī)模不斷壯大,眾多企事業(yè)都擁有數(shù)以萬計(jì)的客戶群,涉及龐大的業(yè)務(wù)數(shù)據(jù),尤其是氣象、電信、銀行、保險(xiǎn)等,人們開始充分利用現(xiàn)有資源進(jìn)行信息的高度集成處理,使用批處理模式使整個(gè)流程作業(yè)變得簡(jiǎn)單化、規(guī)律化、集成化,逐漸脫離原先人工處理效率低下的局限性,從而大大增強(qiáng)了系統(tǒng)數(shù)據(jù)處理的能力。

傳統(tǒng)的線程和資源鎖并發(fā)編程,復(fù)雜、容易出錯(cuò)、無法橫向擴(kuò)展。目前,雖然Spring Batch是一款優(yōu)秀的、開源的大數(shù)據(jù)量并行處理框架,通過它也可構(gòu)建出輕量級(jí)的健壯的并行處理應(yīng)用[1];但卻沒有一個(gè)關(guān)于Java批處理架構(gòu)的工業(yè)標(biāo)準(zhǔn),商業(yè)化的批處理似乎處在一個(gè)嚴(yán)峻的狀態(tài):錯(cuò)誤的架構(gòu)風(fēng)格和能力。盡管SOA日益增長(zhǎng),但仍需一種高強(qiáng)度的批處理架構(gòu)來最有效地自動(dòng)處理大容量的數(shù)據(jù)或事務(wù)卻無需人工干預(yù);批處理,作為絕大多數(shù)IT項(xiàng)目的組成部分,當(dāng)前卻處在一個(gè)沒有商業(yè)或開源Java框架來為其提供健壯的企業(yè)解決方案的尷尬境地;在企業(yè)應(yīng)用里,批處理通常用來處理每天數(shù)以億計(jì)的事務(wù)處理,且這些處理任務(wù)非??量?。

因此,盡管缺乏批處理標(biāo)準(zhǔn),但構(gòu)建一個(gè)基于Java的通用批處理作業(yè)系統(tǒng)處理海量的業(yè)務(wù)數(shù)據(jù),提高業(yè)務(wù)工作效率是非常有必要的,也具有很大推廣應(yīng)用價(jià)值。

2 系統(tǒng)總體架構(gòu)設(shè)計(jì)(Overall system architecture

design)

Batch處理系統(tǒng)是由服務(wù)器統(tǒng)一管理,所有業(yè)務(wù)邏輯都集中在此Batch處理系統(tǒng)中,各類用戶負(fù)責(zé)數(shù)據(jù)的錄入和查詢,用戶分布廣泛,數(shù)據(jù)集中處理,因此在設(shè)計(jì)時(shí)充分考慮多種體系結(jié)構(gòu)的優(yōu)缺點(diǎn),系統(tǒng)采用三層C/S體系結(jié)構(gòu)進(jìn)行架構(gòu)設(shè)計(jì)。

模塊化就是把一個(gè)復(fù)雜的系統(tǒng)分解為若干個(gè)規(guī)模較小、功能較簡(jiǎn)單的、相對(duì)獨(dú)立、更易于建立和修改的模塊,分別加以設(shè)計(jì)實(shí)現(xiàn),各模塊在一定關(guān)系的約束下共同構(gòu)成一個(gè)統(tǒng)一的整體,完成系統(tǒng)的功能[2]。采用模塊化設(shè)計(jì)思想,系統(tǒng)功能分為七大模塊:用戶交互界面、系統(tǒng)流程控制管理模塊、系統(tǒng)配置文件管理模塊、Batch流程處理模塊、日志管理模塊、數(shù)據(jù)庫管理模塊、文件控制模塊。

由于關(guān)系數(shù)據(jù)庫中包含多個(gè)數(shù)據(jù)表信息,含有數(shù)據(jù)定義、查詢、更新、控制等。Oracle是關(guān)系數(shù)據(jù)庫中使用最為廣泛的一種,采用標(biāo)準(zhǔn)SQL語言,數(shù)據(jù)類型支持大至4GB的二進(jìn)制數(shù)據(jù),為數(shù)據(jù)庫的面向存儲(chǔ)提供了強(qiáng)大的數(shù)據(jù)支持、安全措施、數(shù)據(jù)互操作性、動(dòng)態(tài)的數(shù)據(jù)存儲(chǔ)機(jī)制??紤]到Batch處理的客觀條件,系統(tǒng)開發(fā)采用了Oracle。當(dāng)然,此框架系統(tǒng)是一個(gè)系統(tǒng)運(yùn)行框架,可根據(jù)需要簡(jiǎn)單、方便地設(shè)置數(shù)據(jù)庫類型,比如MySQL、MS SQL等。系統(tǒng)總體架構(gòu)設(shè)計(jì)如圖1所示。

圖1 系統(tǒng)總體架構(gòu)

Fig.1 Overall system architecture

3核心模塊軟件設(shè)計(jì)(Core Module Software

Design)

根據(jù)面向?qū)ο笤O(shè)計(jì)和模塊化的設(shè)計(jì)思想,將系統(tǒng)劃分的七大模塊中:用戶交互界面模塊依賴于系統(tǒng)流程控制管理模塊,為用戶提供可視化交互界面;系統(tǒng)配置文件管理模塊、Batch流程處理模塊、日志管理模塊、數(shù)據(jù)庫管理模塊、文件控制模塊作為獨(dú)立模塊存在,相互之間不存在直接依賴關(guān)系,其業(yè)務(wù)邏輯關(guān)系由系統(tǒng)流程控制管理模塊負(fù)責(zé)維護(hù)。其中,系統(tǒng)配置文件管理模塊、Batch流程處理模塊、文件控制模塊(輸入和輸出處理)為系統(tǒng)三大核心模塊。

3.1 系統(tǒng)配置文件管理模塊

通過用戶交互界面,選擇需要運(yùn)行的Job,系統(tǒng)驅(qū)動(dòng)模塊將讀取系統(tǒng)輸入模塊中所有的配置文件,并傳入系統(tǒng)執(zhí)行模塊,在系統(tǒng)執(zhí)行過程中會(huì)產(chǎn)生相應(yīng)的系統(tǒng)活動(dòng)日志和系統(tǒng)控制日志等日志文件,并且同時(shí)將其處理結(jié)果輸出到系統(tǒng)定義的輸出文件或數(shù)據(jù)庫。系統(tǒng)配置文件管理模塊結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)配置文件管理模塊結(jié)構(gòu)圖

Fig.2System configuration file management

module structure diagram

3.2 Batch流程處理模塊

3.2.1 單次循環(huán)Batch流程處理框架模型

當(dāng)所有系統(tǒng)配置文件都準(zhǔn)備好并運(yùn)行一個(gè)指定的Batch處理程序后,系統(tǒng)框架將按照如圖3所示的流程加載系統(tǒng)配置文件。通過Loadini()讀取系統(tǒng)配置參數(shù),然后傳入CheckFiles()檢查所讀取參數(shù)的合法性,接著CheckOutFiles()檢查系統(tǒng)輸出文件類型及其合法性,當(dāng)檢查都合法后,調(diào)用CheckDB()連接數(shù)據(jù)庫,之后,SetupCheckPoing()檢查系統(tǒng)斷點(diǎn)續(xù)接的屬性,然后系統(tǒng)正式進(jìn)入系統(tǒng)執(zhí)行模塊Start(),當(dāng)所有執(zhí)行完成后,通過WriteTraier()輸入系統(tǒng)完成信息,最后調(diào)用Shutdown()結(jié)束整個(gè)流程。

endprint

圖3單次循環(huán)Batch流程處理框架

Fig.3 A single cycle process of batch

processing framework

3.2.2循環(huán)Batch流程處理框架模型

通用批處理作業(yè)系統(tǒng)是對(duì)用戶數(shù)據(jù)進(jìn)行大批量的一次性處理,以完成其人工操作的繁瑣性和復(fù)雜性,并且提高其人工操作的低效率。其主要功能是對(duì)程序循環(huán)流程的控制和對(duì)系統(tǒng)斷點(diǎn)續(xù)接的控制機(jī)制,其中核心功能是對(duì)系統(tǒng)循環(huán)流程的控制和處理。系統(tǒng)循環(huán)Batch流程處理框架模型如圖4所示。

圖4系統(tǒng)循環(huán)Batch流程處理框架

Fig.4System circulation process of batch

processing framework

為提高批處理效率,通過多線程并行執(zhí)行多個(gè)相互獨(dú)立的Step[3],設(shè)計(jì)了同一Job內(nèi)批次作業(yè)平行處理模型,如圖5所示。

圖5 同一Job內(nèi)批次作業(yè)平行處理模型

Fig.5 The batch operation parallel processing

model within the same Job

3.3 文件控制模塊

3.3.1 文件輸入處理

文件輸入處理均為ini文件,包括:系統(tǒng)環(huán)境控制文件、系統(tǒng)配置文件、單個(gè)Batch處理配置文件。

(1)系統(tǒng)環(huán)境控制文件(Ta_BatchEnvironment.ini)

系統(tǒng)環(huán)境控制文件是系統(tǒng)的核心文件,主要是連接數(shù)據(jù)庫的內(nèi)容,其格式如下:

OPOMDB=[UID=orscm],[PWD=orscmdd],[DB=thin:@10.5.7.108:1521:ORUT23]

OPOMDB=[UID=root],[PWD=],[DB=localhost:3306/ ComBatchJob]

其中:數(shù)據(jù)庫名稱OPOMDB必須與單個(gè)Batch處理輸入文件中數(shù)據(jù)庫名稱一致。

(2)系統(tǒng)配置文件(Ta_BatchBI.ini)

系統(tǒng)配置文件包括系統(tǒng)的輸入輸出文件的物理路徑,其主要內(nèi)容如下所示:

系統(tǒng)輸出數(shù)據(jù)文件夾,若系統(tǒng)輸出為文件類型輸出,則輸出在此文件夾。

SYS_OUTPUT_DIR=D:\CommBatchJob\output

系統(tǒng)輸入數(shù)據(jù)文件夾,若系統(tǒng)輸入為文件輸入,則輸入文件存放在此文件夾。

SYS_INPUT_DIR=D:\CommBatchJob\input

系統(tǒng)參數(shù)控制文件夾:根據(jù)輸入配置文件中參數(shù)來判斷系統(tǒng)下次啟動(dòng)后數(shù)據(jù)的處理起始位置。

SYS_RESTART_DIR=D:\CommBatchJob\control\restart

系統(tǒng)錯(cuò)誤文件夾:程序中產(chǎn)生的錯(cuò)誤信息存放在此文件夾。

SYS_ERROR_DIR=D:\CommBatchJob\error

系統(tǒng)數(shù)據(jù)統(tǒng)計(jì)結(jié)果集:在程序最后統(tǒng)計(jì)此次batch處理共處理了多少數(shù)據(jù)。

SYS_ACTREP_CENT_DIR=D:\CommBatchJob\cnt_rpt

(3)單個(gè)Batch處理配置文件(Ta_Batch_.ini)

單個(gè)Batch處理配置文件是核心配置文件,程序所有控制參數(shù)都在此配置文件中。例如:

文件輸入控制屬性。若輸入數(shù)據(jù)采用文件輸入,則此處為文件的路徑和名稱;否則為空。

SYS_IN_DIR="[a=${SYS_INPUT_DIR}/OPMCAR101D/*]"

SYS_IN_FILE=""

SYS_IN_ARBDB=""

文件輸出控制屬性。若輸出方式采用文件輸出,則此處為文件的路徑和名稱;否則為空。

SYS_OUT_ARBDB=""

SYS_OUT_ORADB=""

SYS_DEST_DIR="[a=${SYS_OUTPUT_DIR}/OPMIOP101D{o}]"

單次數(shù)據(jù)庫提交處理數(shù)據(jù)最大量設(shè)置。Batch處理會(huì)涉及大量的數(shù)據(jù)處理,若內(nèi)存中存放太多沒有提交的數(shù)據(jù),則數(shù)據(jù)庫會(huì)出現(xiàn)內(nèi)存溢出現(xiàn)象,這里設(shè)置提交的最大量,例如設(shè)為100,則每處理完成100條數(shù)據(jù),則向數(shù)據(jù)庫commit一次。

SYS_COMMIT_FREQ="100"

數(shù)據(jù)庫提交超時(shí)時(shí)間設(shè)置,單位:秒。

SYS_COMMIT_TIMEOUT="10"

重新運(yùn)行處理標(biāo)志設(shè)置。這是一個(gè)相當(dāng)重要的程序控制屬性,缺省為N。若設(shè)置為Y,則程序在下次重新運(yùn)行程序時(shí),會(huì)從上次中斷處接著處理。

SYS_RESTART_FLAG="N"

3.3.2 文件輸出處理

(1)處理結(jié)果輸出

用戶需要得到的處理輸出包括文件輸出或存入數(shù)據(jù)庫。如果系統(tǒng)輸入方式為文件輸出,則輸出文件的命名方式為:當(dāng)前運(yùn)行程序的Job Id加上輸入配置的seq文件。在通常情況下,需要得到的數(shù)據(jù)文件輸出為文本文件,但在某些特殊需求下,需把文本文件手工地提取為excel文件。為此,系統(tǒng)提供了相應(yīng)的接口供用戶使用,以便用戶直接得到處理完好的excel文檔。

(2)系統(tǒng)日志

系統(tǒng)日志輸出部分主要包括:系統(tǒng)控制log文件、系統(tǒng)錯(cuò)誤或異常log文件等。

(3)程序參數(shù)設(shè)定

程序在此框架下運(yùn)行,需設(shè)置兩個(gè)重要的系統(tǒng)參數(shù):Program參數(shù)和VM參數(shù)。若程序需要調(diào)用服務(wù)器端的EJB,則需在VM參數(shù)中設(shè)置服務(wù)器端參數(shù),如IP地址、端口等。

4關(guān)鍵技術(shù)及其實(shí)現(xiàn)(Key technology and its

implementation)

4.1 支持多類型數(shù)據(jù)庫操作

在執(zhí)行數(shù)據(jù)庫操作時(shí),在系統(tǒng)ini配置文件的application query中配置數(shù)據(jù)庫類型,這樣可以在不修改代碼情況下,直接配置設(shè)置文件,提高系統(tǒng)的靈活性。實(shí)現(xiàn)關(guān)鍵技術(shù)代碼如下:

paraSqlOpGetSI = "SELECT A.ACCT_ID,B.MASTER_ACCT_ID FROM OP_SVC_INST A, OP_ACCT B WHERE A.ACCT_ID = B.ACCT_ID AND A.SVC_INST_ID = ?"

opGetSI = opomCon.prepareStatement(apc.getAppsParam(paraSqlOpGetSI));

PreparedStatement sqlSelectnwinst = opomCon.prepareStatement(opGetSI);

sqlSelectnwinst.setString(1,SVC_INST_ID);

ResultSet rs = sqlSelectnwinst.executeQuery( );

4.2 Batch循環(huán)流程控制

系統(tǒng)啟動(dòng)后是否接著上次未處理完處繼續(xù)處理還是從頭開始處理,并循環(huán)處理所有數(shù)據(jù),直至全部處理完成,這就需要對(duì)批處理作業(yè)進(jìn)行循環(huán)流程控制。實(shí)現(xiàn)關(guān)鍵技術(shù)代碼如下:

if(restarted && !restarted_ok){

dbRow = chkpnt.getCurrentDbRow( );

if(dbRow == null) dbRow = chkpnt.getNextDbRow( );

restarted_ok = true;

} elsedbRow = chkpnt.getNextDbRow( );

if (dbRow != null) {

apps.startSource( );

while((rsRow = dbRow.getNextRSRow()) != null){

if(dbRow.keyBased)apps.process(rsRow);

elseapps.process(map);

dbRow.cnt++;

chkpnt.checkPoint( );

}

apps.endSource( );

}

5 實(shí)驗(yàn)結(jié)果分析(Experimental results)

利用該系統(tǒng)先后對(duì)某氣象局、電信營(yíng)業(yè)廳的一些歷史業(yè)務(wù)數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)分析,并與這些歷史數(shù)據(jù)以前的實(shí)際處理情況進(jìn)行對(duì)比,結(jié)果如表1所示。

表1實(shí)驗(yàn)分析結(jié)果數(shù)據(jù)

Tab.1Experimental data analysis results

數(shù)據(jù)所屬行業(yè) 數(shù)據(jù)處理方式 數(shù)據(jù)量(條) 處理時(shí)間(秒) 斷點(diǎn)續(xù)接能力(%) 異常(錯(cuò)誤)

中斷數(shù)據(jù)(條)

氣象 通用批處理作業(yè)系統(tǒng) 251345 683 99 28

原有處理系統(tǒng) 251345 915 90 37

電信 通用批處理作業(yè)系統(tǒng) 85420 296 98 12

原有處理系統(tǒng) 85420 410 92 19

從表1可以看出,該系統(tǒng)可明顯縮短業(yè)務(wù)數(shù)據(jù)處理時(shí)間,處理速度大概提高了1.34倍,斷點(diǎn)續(xù)接能力也有所提高,減少了因異常(或錯(cuò)誤)而中斷數(shù)據(jù)處理的幾率。從而表明:該系統(tǒng)在批處理方面要比原有系統(tǒng)更準(zhǔn)確,也提高了效率。

6 結(jié)論(Conclusion)

Batch處理系統(tǒng)由服務(wù)器進(jìn)行統(tǒng)一管理,集中了所有業(yè)務(wù)邏輯處理,各類用戶負(fù)責(zé)數(shù)據(jù)的錄入和查詢,用戶分布廣泛,數(shù)據(jù)集中處理,因此在設(shè)計(jì)時(shí)選擇了三層模式進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。和類似系統(tǒng)比較,本系統(tǒng)具有如下優(yōu)勢(shì):第一,具有斷點(diǎn)續(xù)接機(jī)制:當(dāng)批處理遇到一些可恢復(fù)性錯(cuò)誤時(shí),比如輸入數(shù)據(jù)不平等,批處理中斷運(yùn)行,并給出詳細(xì)的錯(cuò)誤提示和運(yùn)行日志,便于維護(hù)人員查找,同時(shí)提供斷點(diǎn)續(xù)接功能,使批處理能在斷點(diǎn)處繼續(xù)運(yùn)行。第二,具備完善的控制機(jī)制:應(yīng)用平臺(tái)在各項(xiàng)操作之間提供順序控制,能有效避免人工誤操作帶來的影響。通過調(diào)節(jié)參數(shù),對(duì)系統(tǒng)運(yùn)行參數(shù)進(jìn)行設(shè)置,以滿足不同業(yè)務(wù)的需要。第三,采用參數(shù)化和模塊化的設(shè)計(jì)思想:系統(tǒng)的各種控制都以參數(shù)形式實(shí)現(xiàn),通過管理和配置可以滿足不同業(yè)務(wù)需要;系統(tǒng)分成一些基本處理單元,每一處理單元形成一個(gè)模塊,這種模塊化的設(shè)計(jì)使得應(yīng)用系統(tǒng)機(jī)構(gòu)清晰、維護(hù)方便、具有良好的可擴(kuò)展性。

因此,本文闡述的通用批處理作業(yè)系統(tǒng)在快速處理海量的業(yè)務(wù)數(shù)據(jù)、提高業(yè)務(wù)工作效率方面具有較廣意義的普適性和通用性。

參考文獻(xiàn)(References)

[1] 池建強(qiáng).基于Spring Batch的大數(shù)據(jù)量并行處理[EB/OL].http://wenku.it168.com/d_000687949.shtml,2012-12-13.

[2] 張海藩.軟件工程導(dǎo)論(第6版)[M].北京:清華大學(xué)出版社,2013.

[3] 陳亞.基于中間件技術(shù)的數(shù)據(jù)批處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008,4(34):1567-1568;1570.

作者簡(jiǎn)介:

李代偉(1976-),男,碩士,講師.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù),云計(jì)算與大數(shù)據(jù)處理.

李蕖(1971-), 女, 碩士, 副教授.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù).

endprint

if (dbRow != null) {

apps.startSource( );

while((rsRow = dbRow.getNextRSRow()) != null){

if(dbRow.keyBased)apps.process(rsRow);

elseapps.process(map);

dbRow.cnt++;

chkpnt.checkPoint( );

}

apps.endSource( );

}

5 實(shí)驗(yàn)結(jié)果分析(Experimental results)

利用該系統(tǒng)先后對(duì)某氣象局、電信營(yíng)業(yè)廳的一些歷史業(yè)務(wù)數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)分析,并與這些歷史數(shù)據(jù)以前的實(shí)際處理情況進(jìn)行對(duì)比,結(jié)果如表1所示。

表1實(shí)驗(yàn)分析結(jié)果數(shù)據(jù)

Tab.1Experimental data analysis results

數(shù)據(jù)所屬行業(yè) 數(shù)據(jù)處理方式 數(shù)據(jù)量(條) 處理時(shí)間(秒) 斷點(diǎn)續(xù)接能力(%) 異常(錯(cuò)誤)

中斷數(shù)據(jù)(條)

氣象 通用批處理作業(yè)系統(tǒng) 251345 683 99 28

原有處理系統(tǒng) 251345 915 90 37

電信 通用批處理作業(yè)系統(tǒng) 85420 296 98 12

原有處理系統(tǒng) 85420 410 92 19

從表1可以看出,該系統(tǒng)可明顯縮短業(yè)務(wù)數(shù)據(jù)處理時(shí)間,處理速度大概提高了1.34倍,斷點(diǎn)續(xù)接能力也有所提高,減少了因異常(或錯(cuò)誤)而中斷數(shù)據(jù)處理的幾率。從而表明:該系統(tǒng)在批處理方面要比原有系統(tǒng)更準(zhǔn)確,也提高了效率。

6 結(jié)論(Conclusion)

Batch處理系統(tǒng)由服務(wù)器進(jìn)行統(tǒng)一管理,集中了所有業(yè)務(wù)邏輯處理,各類用戶負(fù)責(zé)數(shù)據(jù)的錄入和查詢,用戶分布廣泛,數(shù)據(jù)集中處理,因此在設(shè)計(jì)時(shí)選擇了三層模式進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。和類似系統(tǒng)比較,本系統(tǒng)具有如下優(yōu)勢(shì):第一,具有斷點(diǎn)續(xù)接機(jī)制:當(dāng)批處理遇到一些可恢復(fù)性錯(cuò)誤時(shí),比如輸入數(shù)據(jù)不平等,批處理中斷運(yùn)行,并給出詳細(xì)的錯(cuò)誤提示和運(yùn)行日志,便于維護(hù)人員查找,同時(shí)提供斷點(diǎn)續(xù)接功能,使批處理能在斷點(diǎn)處繼續(xù)運(yùn)行。第二,具備完善的控制機(jī)制:應(yīng)用平臺(tái)在各項(xiàng)操作之間提供順序控制,能有效避免人工誤操作帶來的影響。通過調(diào)節(jié)參數(shù),對(duì)系統(tǒng)運(yùn)行參數(shù)進(jìn)行設(shè)置,以滿足不同業(yè)務(wù)的需要。第三,采用參數(shù)化和模塊化的設(shè)計(jì)思想:系統(tǒng)的各種控制都以參數(shù)形式實(shí)現(xiàn),通過管理和配置可以滿足不同業(yè)務(wù)需要;系統(tǒng)分成一些基本處理單元,每一處理單元形成一個(gè)模塊,這種模塊化的設(shè)計(jì)使得應(yīng)用系統(tǒng)機(jī)構(gòu)清晰、維護(hù)方便、具有良好的可擴(kuò)展性。

因此,本文闡述的通用批處理作業(yè)系統(tǒng)在快速處理海量的業(yè)務(wù)數(shù)據(jù)、提高業(yè)務(wù)工作效率方面具有較廣意義的普適性和通用性。

參考文獻(xiàn)(References)

[1] 池建強(qiáng).基于Spring Batch的大數(shù)據(jù)量并行處理[EB/OL].http://wenku.it168.com/d_000687949.shtml,2012-12-13.

[2] 張海藩.軟件工程導(dǎo)論(第6版)[M].北京:清華大學(xué)出版社,2013.

[3] 陳亞.基于中間件技術(shù)的數(shù)據(jù)批處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008,4(34):1567-1568;1570.

作者簡(jiǎn)介:

李代偉(1976-),男,碩士,講師.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù),云計(jì)算與大數(shù)據(jù)處理.

李蕖(1971-), 女, 碩士, 副教授.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù).

endprint

if (dbRow != null) {

apps.startSource( );

while((rsRow = dbRow.getNextRSRow()) != null){

if(dbRow.keyBased)apps.process(rsRow);

elseapps.process(map);

dbRow.cnt++;

chkpnt.checkPoint( );

}

apps.endSource( );

}

5 實(shí)驗(yàn)結(jié)果分析(Experimental results)

利用該系統(tǒng)先后對(duì)某氣象局、電信營(yíng)業(yè)廳的一些歷史業(yè)務(wù)數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)分析,并與這些歷史數(shù)據(jù)以前的實(shí)際處理情況進(jìn)行對(duì)比,結(jié)果如表1所示。

表1實(shí)驗(yàn)分析結(jié)果數(shù)據(jù)

Tab.1Experimental data analysis results

數(shù)據(jù)所屬行業(yè) 數(shù)據(jù)處理方式 數(shù)據(jù)量(條) 處理時(shí)間(秒) 斷點(diǎn)續(xù)接能力(%) 異常(錯(cuò)誤)

中斷數(shù)據(jù)(條)

氣象 通用批處理作業(yè)系統(tǒng) 251345 683 99 28

原有處理系統(tǒng) 251345 915 90 37

電信 通用批處理作業(yè)系統(tǒng) 85420 296 98 12

原有處理系統(tǒng) 85420 410 92 19

從表1可以看出,該系統(tǒng)可明顯縮短業(yè)務(wù)數(shù)據(jù)處理時(shí)間,處理速度大概提高了1.34倍,斷點(diǎn)續(xù)接能力也有所提高,減少了因異常(或錯(cuò)誤)而中斷數(shù)據(jù)處理的幾率。從而表明:該系統(tǒng)在批處理方面要比原有系統(tǒng)更準(zhǔn)確,也提高了效率。

6 結(jié)論(Conclusion)

Batch處理系統(tǒng)由服務(wù)器進(jìn)行統(tǒng)一管理,集中了所有業(yè)務(wù)邏輯處理,各類用戶負(fù)責(zé)數(shù)據(jù)的錄入和查詢,用戶分布廣泛,數(shù)據(jù)集中處理,因此在設(shè)計(jì)時(shí)選擇了三層模式進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。和類似系統(tǒng)比較,本系統(tǒng)具有如下優(yōu)勢(shì):第一,具有斷點(diǎn)續(xù)接機(jī)制:當(dāng)批處理遇到一些可恢復(fù)性錯(cuò)誤時(shí),比如輸入數(shù)據(jù)不平等,批處理中斷運(yùn)行,并給出詳細(xì)的錯(cuò)誤提示和運(yùn)行日志,便于維護(hù)人員查找,同時(shí)提供斷點(diǎn)續(xù)接功能,使批處理能在斷點(diǎn)處繼續(xù)運(yùn)行。第二,具備完善的控制機(jī)制:應(yīng)用平臺(tái)在各項(xiàng)操作之間提供順序控制,能有效避免人工誤操作帶來的影響。通過調(diào)節(jié)參數(shù),對(duì)系統(tǒng)運(yùn)行參數(shù)進(jìn)行設(shè)置,以滿足不同業(yè)務(wù)的需要。第三,采用參數(shù)化和模塊化的設(shè)計(jì)思想:系統(tǒng)的各種控制都以參數(shù)形式實(shí)現(xiàn),通過管理和配置可以滿足不同業(yè)務(wù)需要;系統(tǒng)分成一些基本處理單元,每一處理單元形成一個(gè)模塊,這種模塊化的設(shè)計(jì)使得應(yīng)用系統(tǒng)機(jī)構(gòu)清晰、維護(hù)方便、具有良好的可擴(kuò)展性。

因此,本文闡述的通用批處理作業(yè)系統(tǒng)在快速處理海量的業(yè)務(wù)數(shù)據(jù)、提高業(yè)務(wù)工作效率方面具有較廣意義的普適性和通用性。

參考文獻(xiàn)(References)

[1] 池建強(qiáng).基于Spring Batch的大數(shù)據(jù)量并行處理[EB/OL].http://wenku.it168.com/d_000687949.shtml,2012-12-13.

[2] 張海藩.軟件工程導(dǎo)論(第6版)[M].北京:清華大學(xué)出版社,2013.

[3] 陳亞.基于中間件技術(shù)的數(shù)據(jù)批處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008,4(34):1567-1568;1570.

作者簡(jiǎn)介:

李代偉(1976-),男,碩士,講師.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù),云計(jì)算與大數(shù)據(jù)處理.

李蕖(1971-), 女, 碩士, 副教授.研究領(lǐng)域:軟件工程,計(jì)算機(jī)應(yīng)用技術(shù).

endprint