岳 杰 付江龍 楊 陽(yáng) 陳素軍
(河北建筑工程學(xué)院,河北 張家口 075000)
Sotower平臺(tái)下文檔處理器的設(shè)計(jì)
岳 杰 付江龍 楊 陽(yáng) 陳素軍
(河北建筑工程學(xué)院,河北 張家口 075000)
為幫助企業(yè)自動(dòng)、高效地管理作業(yè)指導(dǎo)書,規(guī)范作業(yè)操作流程,本文利用Sotower平臺(tái)以及JACOB實(shí)現(xiàn)作業(yè)指導(dǎo)書自動(dòng)生成和在線預(yù)覽.基本實(shí)現(xiàn)了一個(gè)具有文檔合并、表格繪制與內(nèi)容自動(dòng)生成、文檔格式設(shè)置、文檔目錄生成以及網(wǎng)頁(yè)預(yù)覽等功能的系統(tǒng).本文還提出了系統(tǒng)性能優(yōu)化的方案,提高了該系統(tǒng)的可用性.
文檔處理;在線預(yù)覽;JACOB;Sotower
標(biāo)準(zhǔn)化作業(yè)水平是企業(yè)國(guó)際競(jìng)爭(zhēng)力的重要依據(jù).通過作業(yè)程序標(biāo)準(zhǔn)化,員工可以按照標(biāo)準(zhǔn)來規(guī)范自己的作業(yè)方法,使其工作效率大大提高,并且使其從安排工作到工作結(jié)束這一期間始終處于可控狀態(tài)[1],這樣企業(yè)的現(xiàn)代化管理能力將大大提升.
隨著標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書的深化應(yīng)用,新的問題出現(xiàn)了,由于員工的崗位經(jīng)常發(fā)生變動(dòng),其在系統(tǒng)中所擁有的權(quán)限也將隨之發(fā)生變化,而每個(gè)人的作業(yè)指導(dǎo)書又因?yàn)椴僮鳈?quán)限的差異而不同,所以權(quán)限的變更或者系統(tǒng)功能點(diǎn)的升級(jí)將帶來大量的作業(yè)指導(dǎo)書的更新維護(hù)工作;以前作業(yè)指導(dǎo)書的生成是通過業(yè)務(wù)人員手動(dòng)給每個(gè)用戶編寫,所以急切需要尋找一種新的方式來解決面向個(gè)人作業(yè)指導(dǎo)書的動(dòng)態(tài)編寫和匯總問題,從而避免重復(fù)勞動(dòng),減輕作業(yè)指導(dǎo)書的維護(hù)量[2].本文將針對(duì)這個(gè)問題,實(shí)現(xiàn)作業(yè)指導(dǎo)書的生成系統(tǒng).本系統(tǒng)講部署在weblogic上,利用JACOB組件進(jìn)行編程[3,4].
具體研究?jī)?nèi)容如下:
(1)WORD操作.在本系統(tǒng)中,文檔基本都是WPS文本文檔或者DOC文檔,在程序處理過程中,由于這一類文檔是經(jīng)過加密處理的,需要通過第三方組件進(jìn)行操作.此過程中需要對(duì)WORD文檔或者WPS文檔進(jìn)行合并操作,處理文檔中的表格.具體表現(xiàn)為:
1)文字與文件的合并,文件之間的合并,文件與表格的合并;
2)表格的建立,表格對(duì)應(yīng)區(qū)域文字的操作,表格內(nèi)合并單元格;
3)文字多形式表現(xiàn),包括文字大小,居中,顏色等表現(xiàn)形式.
(2)效率提升.在本系統(tǒng)中,用戶眾多,各個(gè)文檔數(shù)量比較大.必須提升文檔處理效率,使系統(tǒng)具有可用性.因此,需要優(yōu)化算法,著力于用戶體驗(yàn),完善系統(tǒng)功能.本系統(tǒng)處理效率,將具體體現(xiàn)在用戶操作是否及時(shí)得到處理,作業(yè)指導(dǎo)書合并、分類選取是否能快速,WORD格式文件轉(zhuǎn)換為PDF格式文件能否能快速等方面上.該系統(tǒng)的效率的提升主要從以下幾個(gè)方面著手:
1)降低WORD文檔處理算法復(fù)雜度,尤其要減少構(gòu)造函數(shù)調(diào)用和減少循環(huán)使用.
2)研究一個(gè)高效處理大批文檔的算法,做到一次處理,多次利用.
3)對(duì)于復(fù)雜程序處理過程,程序以及機(jī)器的處理能力不能符合用戶要求,可以尋求其他算法,如文檔提前合并處理.
異常處理.本系統(tǒng)處理數(shù)據(jù)量較大,且數(shù)據(jù)形式較多,易發(fā)生異常.因此,必須考慮到多種異常處理.異常處理的好壞直接關(guān)系到系統(tǒng)能否正常使用,而且完善異常處理還可以提高系統(tǒng)的處理效率.
4)多線程調(diào)度.本系統(tǒng)支持多用戶同時(shí)操作,因此必須考慮到多線程的調(diào)度,以免發(fā)生數(shù)據(jù)的臟讀.
2.1 設(shè)計(jì)原則
(1)簡(jiǎn)易性原則.
本系統(tǒng)要求用戶操作簡(jiǎn)易,主體的功能要實(shí)現(xiàn)自動(dòng)化.對(duì)于每個(gè)用戶的作業(yè)指導(dǎo)書,能夠自動(dòng)化生成.
(2)資源復(fù)用性原則.
本系統(tǒng)要求最大限度利用已有作業(yè)指導(dǎo)書,將其很好的添加到本系統(tǒng)中,避免重復(fù)性的工作.
(3)個(gè)性化原則.
本系統(tǒng)要求每個(gè)用戶有自己的作業(yè)指導(dǎo)書.由于每個(gè)用戶所在部門、所在職位都有所不同,因此其作業(yè)指導(dǎo)書也不相同.本系統(tǒng)生成的作業(yè)指導(dǎo)書,要能夠體現(xiàn)作業(yè)指導(dǎo)書的個(gè)性化.
2.2 技術(shù)架構(gòu)
系統(tǒng)采用了目前最流行的J2EE三層架構(gòu)(如圖1所示),即通過引入中間層,將復(fù)雜的商業(yè)邏輯從傳統(tǒng)的兩層結(jié)構(gòu)(Client-Server)應(yīng)用模型中分離出來,并提供了可伸縮、易于訪問、易于管理的方法,可以將多種應(yīng)用服務(wù)分別封裝部署于應(yīng)用服務(wù)器,同時(shí)增強(qiáng)了應(yīng)用程序可用性、安全性和可擴(kuò)展性,使用戶在管理上所花費(fèi)的時(shí)間最小化,從而實(shí)現(xiàn)了便捷、高效、安全、穩(wěn)定的企業(yè)級(jí)系統(tǒng)應(yīng)用[5].
圖1 三層技術(shù)架構(gòu)
2.3 軟件流程設(shè)計(jì)
(1)查看作業(yè)指導(dǎo)書目錄.
圖2 預(yù)覽作業(yè)指導(dǎo)書目錄時(shí)序圖
查看作業(yè)指導(dǎo)書目錄時(shí)序圖如圖2所示.用戶登錄系統(tǒng)后,點(diǎn)擊我的作業(yè)指導(dǎo)書模塊,然后選擇作業(yè)指導(dǎo)書預(yù)覽,點(diǎn)擊該按鈕后,在網(wǎng)頁(yè)右側(cè)的部分將會(huì)出現(xiàn)該用戶的作業(yè)指導(dǎo)書目錄的預(yù)覽.
(2)導(dǎo)出作業(yè)指導(dǎo)書.
導(dǎo)出全部作業(yè)指導(dǎo)書時(shí)序圖如圖3所示.用戶登錄系統(tǒng)后,點(diǎn)擊我的作業(yè)指導(dǎo)書模塊,然后選擇右側(cè)導(dǎo)出全部作業(yè)指導(dǎo)書按鈕,此時(shí)頁(yè)面會(huì)彈出一個(gè)對(duì)話框,選擇下載格式之后,將會(huì)下載該用戶的全部的作業(yè)指導(dǎo)書合成的一本作業(yè)指導(dǎo)書,指導(dǎo)書的格式是用戶自己選擇的格式.
圖3 全部導(dǎo)出作業(yè)指導(dǎo)書時(shí)序圖
2.4 前后臺(tái)之間的信息通訊設(shè)計(jì)
(1)信息傳遞設(shè)計(jì).
本程序要使的用戶點(diǎn)擊前臺(tái)之后,能將所點(diǎn)擊的信息傳送到后臺(tái)代碼處理.稱之為第一次前臺(tái)往后臺(tái)傳遞的信息.之后,后臺(tái)要根據(jù)前臺(tái)傳來的信息,通過查詢數(shù)據(jù)庫(kù),得到該用戶的業(yè)務(wù)系統(tǒng)信息以及業(yè)務(wù)系統(tǒng)最深層功能點(diǎn)所對(duì)應(yīng)的作業(yè)指導(dǎo)書信息.然后,后臺(tái)的程序?qū)⑻幚砗玫倪@兩個(gè)信息,傳至能夠處理文檔的類中,然后文檔處理的類依據(jù)傳來的信息,建立一個(gè)新的文檔,該文檔是把后臺(tái)傳來的各個(gè)功能點(diǎn)作業(yè)指導(dǎo)書依據(jù)后臺(tái)傳來的業(yè)務(wù)層級(jí)結(jié)構(gòu)合并而成的.
(2)字符串設(shè)計(jì):
在后臺(tái)傳遞信息的過程中,后臺(tái)處理后得到的該用戶的業(yè)務(wù)系統(tǒng)層級(jí)結(jié)構(gòu)信息是以字符串形式給出的.具體的規(guī)則為用“#”隔開,系統(tǒng)之間用“####”,系統(tǒng)后是“#”,文件夾后是“&&”流程后是“#”,功能點(diǎn)后是“##”.
例如:系統(tǒng)1#文件夾1&&流程1#功能點(diǎn)1##功能點(diǎn)2####系統(tǒng)2#文件夾2&&流程2#功能點(diǎn)3##.
上述字符串格式的含義如下:
1)用“####”分割字符串,可以對(duì)每個(gè)業(yè)務(wù)系統(tǒng)處理,并且知道該用戶共有幾個(gè)業(yè)務(wù)系統(tǒng).
2)把一個(gè)系統(tǒng)的字符串用“##”分割,可以對(duì)每個(gè)功能點(diǎn)進(jìn)行處理并可以知道該用戶有多少個(gè)功能點(diǎn).
3)對(duì)于用“##”分割之后的單一業(yè)務(wù)系統(tǒng)的字符串.如果再用“#”進(jìn)行分割,根據(jù)其數(shù)組大小可以知道該字符串代表功能點(diǎn)還是流程或者系統(tǒng).長(zhǎng)度是1,就是功能點(diǎn),長(zhǎng)度是2是模塊,長(zhǎng)度是3是系統(tǒng).
(3)指導(dǎo)書集合設(shè)計(jì).
為了能夠很準(zhǔn)確地合并某個(gè)用戶的相關(guān)文檔,我這里采取了傳遞第二個(gè)信息的方法.第二個(gè)信息是一個(gè)有順序的每個(gè)功能點(diǎn)對(duì)應(yīng)的作業(yè)指導(dǎo)書以及任務(wù)單.如果該功能點(diǎn)還沒有添加文檔,也會(huì)用“無”代替.總體而言,這個(gè)集合中的文檔路徑,是與第一個(gè)信息,集業(yè)務(wù)系統(tǒng)層級(jí)結(jié)構(gòu)一一對(duì)應(yīng)的.這樣保證了合并的文檔的準(zhǔn)確性.
2.5 性能優(yōu)化設(shè)計(jì)
由于JACOB控件高效地處理文檔比較困難,所以按照正常的方法,本系統(tǒng)的處理速度就不能滿足用戶需要的速度.因此我們?yōu)榱私鉀Q這個(gè)問題,設(shè)計(jì)算法是,在服務(wù)器處于低使用率的時(shí)候讓系統(tǒng)自動(dòng)導(dǎo)出作業(yè)指導(dǎo)書.我們利用時(shí)間觸發(fā)器,分析需要合并文檔的用戶id,然后利用id這個(gè)信息傳到后臺(tái),進(jìn)行文檔的合并.這樣用戶在使用過程中,不會(huì)認(rèn)為系統(tǒng)的處理速度慢.
2.6 外部接口設(shè)計(jì)
用戶提出,希望此系統(tǒng)能與其他系統(tǒng)之間有接口,并且能夠?qū)崿F(xiàn)某個(gè)特殊用戶查看其他用戶的作業(yè)指導(dǎo)書.我們?cè)O(shè)計(jì)的算法是:以用戶的id為一個(gè)信息,該信息由前臺(tái)傳到后臺(tái),后臺(tái)對(duì)傳來的id進(jìn)行判定,然后依據(jù)id,合并與其對(duì)應(yīng)的作業(yè)指導(dǎo)書.而對(duì)于與其他系統(tǒng)之間的接口,我們依然以用戶id作為一個(gè)重要的傳遞信息,然后提供本系統(tǒng)方法,使得別的系統(tǒng)通過調(diào)用本系統(tǒng)的方法,并依據(jù)傳遞的id,就可使用本系統(tǒng)的相關(guān)功能.
此項(xiàng)目解決了用戶的文檔的按順序按系統(tǒng)結(jié)構(gòu)合成的問題,實(shí)現(xiàn)了用戶作業(yè)指導(dǎo)書在線預(yù)覽并下載以及按不同方式下載的功能.而且在合成的效果上,實(shí)現(xiàn)了文檔文本的結(jié)構(gòu)化,利于用戶閱讀.在解決合成效率較低的問題上,我們也利用服務(wù)器空閑的時(shí)機(jī),合成用戶的文檔,使得用戶在使用本系統(tǒng)時(shí),能體現(xiàn)用戶體驗(yàn)友好的原則.
與此同時(shí),開發(fā)此系統(tǒng)的過程中,也出現(xiàn)了幾個(gè)問題,有待后期解決.
(1)JACOB控件只能在windows平臺(tái)使用,而如今,大型的系統(tǒng)服務(wù)器大多使用UNIX,使得我們的系統(tǒng)在操作平臺(tái)的兼容性比較低,后續(xù)工作中,我們應(yīng)該研究如何在UNIX系統(tǒng)中處理文檔.
(2)在文件又word格式或者wps格式轉(zhuǎn)換為pdf格式的文件以及swf格式文件的過程中,運(yùn)行速度較慢,影響用戶的體驗(yàn).后續(xù)工作中,我們要研究文檔的格式轉(zhuǎn)換的高效方法.
[1]張?jiān)葡?標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書及其在供電企業(yè)的運(yùn)用[J].市場(chǎng)周刊:理論研究2012,(3)
[2]王曉.標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書系統(tǒng)的分析和設(shè)計(jì)[D].2007
[3]金保華等.基于JACOB的Java通用WordWriter組件設(shè)計(jì)[J].鄭州輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版)2011,26(3)
[4]王春明等.基于JACOB的Word文檔自動(dòng)生成技術(shù)研究[J].南通職業(yè)大學(xué)學(xué)報(bào).2012,26(1)
[5]陸榮幸等.J2EE平臺(tái)上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究.2003,20(3)
On the Design of Document Processor by Using Sotower Platform
YUEJie,F(xiàn)UJiang-long,YANGYang,CHENSu-jun
(Hebei University of Architecture,Zhangjiakou,Hebei,075000,China)
In order to help enterprises to manage work instructions automatically and efficiently,by using Sotower platform and JACOB,online preview and generating work instructions are realized in this paper.Merging document,drawing tables and generating content,formatting,generating document directory and previewing page can be realized in this system.A method to promote the system performance is also proposed,which can improve the availability of the system.
document processing;online preview;JACOB;Sotower
2016-06-23
岳杰(1979),男,副教授,從事計(jì)算機(jī)科學(xué)與技術(shù)研究.
TP 3
A