姜 峰,劉偉卓
(1.黑龍江省科學(xué)院,哈爾濱 150001;2.黑龍江省科技成果轉(zhuǎn)化中心,哈爾濱 150028)
?
基于工作流的管理系統(tǒng)關(guān)鍵技術(shù)的研究
姜峰1,劉偉卓2
(1.黑龍江省科學(xué)院,哈爾濱 150001;2.黑龍江省科技成果轉(zhuǎn)化中心,哈爾濱 150028)
摘要:工作流技術(shù)是具體行業(yè)相關(guān)業(yè)務(wù)領(lǐng)域的執(zhí)行流程,主要描述了業(yè)務(wù)執(zhí)行過程中各個要素及要素之間的關(guān)系,是構(gòu)建流程應(yīng)用和辦公自動化管理的基礎(chǔ)平臺,工作流技術(shù)可以有效應(yīng)用于公文流轉(zhuǎn)、行政審批等電子政務(wù)系統(tǒng)中,提升政務(wù)辦公系統(tǒng)的運行效率和競爭力。本文詳細介紹了系統(tǒng)設(shè)計過程中所應(yīng)用到的各項技術(shù),包括工作流技術(shù)、J2EE技術(shù)及MVC開發(fā)架構(gòu)。
關(guān)鍵詞:工作流技術(shù);J2EE技術(shù);MVC開發(fā)架構(gòu)
什么是工作流呢?工作流管理聯(lián)盟WFMC給出了定義:全部或者部分,由計算機支持或自動處理的業(yè)務(wù)過程。它根據(jù)一系列過程規(guī)則,文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行[1-2]。
所謂基于工作流的管理系統(tǒng)實際屬于一個軟件系統(tǒng),需要完成工作流的定義和管理,同時在計算機中預(yù)先定義完善的工作流邏輯機制,以此推動整體工作流程應(yīng)用實例的執(zhí)行。
工作流管理聯(lián)盟(WFMC)早在1995年就提出了工作流技術(shù)開展的依據(jù)參考體系結(jié)構(gòu)模型(Workflow reference model)。工作流參考模型主要功能是標(biāo)識了軟件系統(tǒng)的基本組件和交互接口。通過定義各組件間的交互接口,實現(xiàn)不同業(yè)務(wù)之間的參數(shù)調(diào)用。參考模型中的組件主要包含工作流執(zhí)行服務(wù)、工作流引擎、流程定義工具、客戶端應(yīng)用、調(diào)用應(yīng)用、管理監(jiān)控工具。此外,還包含相對的五個交互接口??梢哉f工作流參考模型對于后來人們對工作流技術(shù)的學(xué)習(xí)和討論起到了很大的影響作用。
因為有了工作流參考模型的引用,使得工作流技術(shù)在研討和應(yīng)用過程中有了一個規(guī)范的術(shù)語用表。為依托于工作流技術(shù)下開發(fā)的軟件系統(tǒng)提供了有效的參照,同時對工作流管理系統(tǒng)的關(guān)鍵系統(tǒng)軟件部件提供了準確的功能描述,定義交互接口,且描述具有較強的個體性,獨立于特定產(chǎn)口、特定技術(shù)而實現(xiàn),大大推動了信息流程在交換過程中的標(biāo)準化,使得不同產(chǎn)品之間相互的業(yè)務(wù)操作成為可能[3]。
工作流參考模型中,核心組件是工作流執(zhí)行服務(wù),用來提供流程實例的運行環(huán)境,一般情況下,由一個或多個工作流引擎組成,作用是解釋分析流程定義、構(gòu)建流程、管理流程定義,以及創(chuàng)建、管理和執(zhí)行流程應(yīng)用實例等。而工作流引擎主要是為流程應(yīng)用實例的有效開展提供良好的運行環(huán)境,并對流程應(yīng)用實例的軟件服務(wù)進行解釋[4]。
流程定義工具的作用主要是與工作流執(zhí)行服務(wù)間進行交互。通過管理流程定義工具,可以方便用戶利用圖形化的表示方法把復(fù)雜的流程定義加以顯示,從而進行相關(guān)的操作。
管理監(jiān)控工具可以有效提高工作流執(zhí)行的安全性。對工作流在組織機構(gòu)中使用的相關(guān)數(shù)據(jù)和流程執(zhí)行的過程進行安全監(jiān)控,防止非授權(quán)操作或誤操作的發(fā)生。
客戶端應(yīng)用主要作用是通過發(fā)出請求與工作流執(zhí)行服務(wù)開展有效的應(yīng)用交互。其實際目的就是調(diào)用工作流執(zhí)行服務(wù)。而工作流引擎組件以任務(wù)列表的方式進行規(guī)范。客戶端應(yīng)用為了完成一個流程應(yīng)用實例的執(zhí)行,會在不同的工作流執(zhí)行服務(wù)間交互作用。
各組件之間的調(diào)用需要提供相應(yīng)的接口信息。以下是對參考模型中各接口含義的解釋:
接口1:表示工作流程定義工具與工作流服務(wù)之間的接口。主要作用是定義交互的工作流,規(guī)范數(shù)據(jù)的表示格式和API定義。
接口2:表示工作流服務(wù)和客戶應(yīng)用程序之間的接口。制定了所有客戶端應(yīng)用和工作流服務(wù)之間的調(diào)用形式,規(guī)范具體訪問流程,提供工作流客戶端應(yīng)用對工作流引擎和工作列表的訪問途徑。
接口3:主要功能是提供不同應(yīng)用程序和工作流引擎之間的調(diào)用接口。
接口4:主要功能是對不同工作流管理系統(tǒng)之間的相互調(diào)用操作提供有效的接口信息。
接口5:主要作用是提高工作流程安全性,為管理監(jiān)控工作流程的執(zhí)行提供有效的監(jiān)控管理機制。
電子商務(wù)和電子信息技術(shù)迅猛發(fā)展,廣泛應(yīng)用于當(dāng)今社會,各行各業(yè)都在努力為自己的企業(yè)尋找一種低成本、低風(fēng)險、高效率、高收益率的信息技術(shù)產(chǎn)物,以為企業(yè)的日常生產(chǎn)經(jīng)營創(chuàng)造利益。J2EE就是技術(shù)發(fā)展下的一個很好的平臺,它應(yīng)用其自身的應(yīng)用組件及運行環(huán)境構(gòu)造了一種可伸縮的企業(yè)應(yīng)用模式,應(yīng)用更加靈活方便,可變化性、適應(yīng)性強,從而大大節(jié)約了成本。
J2EE是基于Java2平臺對企業(yè)解決方案中存在的開發(fā)、實施和管理等體系結(jié)構(gòu)問題進行簡化。此技術(shù)的宗旨在于最大程度地降低企業(yè)開發(fā)者投放市場時間的體系結(jié)構(gòu),它以Java平臺或Java2平臺標(biāo)準版為技術(shù)核心,延續(xù)了上述兩個平臺已有的優(yōu)點,如:“編寫一次、隨處運行”的特性,方便存取數(shù)據(jù)庫的JDBC API、CORBA技術(shù)及能夠在Internet應(yīng)用中保護數(shù)據(jù)的安全模式等,在此基礎(chǔ)之上進行分析,找到不足之處,加以提高[5]。
為了滿足低投入、高可靠性、高靈活性、高延展性的特點,J2EE體系結(jié)構(gòu)通過提供中間層集成框架來解決。它提供一個統(tǒng)一的開發(fā)平臺,以此降低開發(fā)多層應(yīng)用的費用和復(fù)雜性,對現(xiàn)有應(yīng)用程序提供強大支持,并支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強了安全機制,提高了性能。
J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)它們所在的層分布在不同的機器上,解決兩層模式(client/server)的弊端,更加方便了業(yè)務(wù)邏輯和界面邏輯。
J2EE具有很強的環(huán)境適應(yīng)及變化能力,因為基于此平臺的產(chǎn)品都支持本平臺的服務(wù),所以公司僅設(shè)計一套編碼良好、符合J2EE要求的程序,隨后在最終部署實施的時候,按照應(yīng)用環(huán)境的需求做出正確的決策。這樣一來,當(dāng)最后一層平臺的功能性、伸縮性或可用性不能滿足市場需求時,用戶可以做出其他選擇。如果J2EE應(yīng)用程序設(shè)計良好,能夠符合標(biāo)準,隨著時間的推移,可以更換最底層組件、中間件、操作系統(tǒng)或硬件進行改進,而不需要改變復(fù)雜的應(yīng)用程序,大大縮短了時間,提高了效率。
通過結(jié)構(gòu)圖可以看出,整體平臺分成兩部分客戶端和服務(wù)器端。在客戶端的機器上,主要就是瀏覽器客戶端。在服務(wù)器端有Web層組件及業(yè)務(wù)層組件,還有企業(yè)信息系統(tǒng)層的具體應(yīng)用軟件。
采用這種結(jié)構(gòu)使程序開發(fā)的過程更加方便簡單。將業(yè)務(wù)邏輯都封裝成可以重復(fù)調(diào)用的組件,采用服務(wù)器技術(shù)將所有組件集成在后臺的服務(wù)中,這樣就減少了在系統(tǒng)開發(fā)上所消耗的財力和人力,提高了業(yè)務(wù)需求在開發(fā)過程中的執(zhí)行效率。
另一個開發(fā)工具是JBuilder,它是Borland公司開發(fā)的一個功能強大的可視化Java開發(fā)工具。它的服務(wù)對象是使用Java進行程序開發(fā)的程序員。它將Java程序員從煩瑣復(fù)雜的界面設(shè)計和代碼錄入中解脫出來,快速、高效地建立各種Java應(yīng)用程序,包括小應(yīng)用程序、需要與網(wǎng)絡(luò)數(shù)據(jù)庫連接的應(yīng)用程序、Web應(yīng)用程序及企業(yè)級分布式應(yīng)用程序等。JSP開發(fā)語言的誕生使動態(tài)的Web應(yīng)用程序與Java程序在與服務(wù)器端進行數(shù)據(jù)交互時更加方便快捷,可以通過Servlet打開整體的界面環(huán)境,實現(xiàn)Java Sevlet的重新編譯,利用JSP技術(shù)可以很好地解決這個問題。
可以說,原Sun公司開發(fā)出來的這種JSP語言程序很好地與Java開發(fā)環(huán)境進行了對接。利用這種方法實現(xiàn)了基于Web頁面的應(yīng)用程序開發(fā)方式,提供了豐富的開發(fā)資源。對網(wǎng)絡(luò)應(yīng)用服務(wù)的開發(fā)者來說,無疑是一種強有力的支持和推動。
MVC全稱Model-View-Controller的縮寫,意思是模型/視圖/控制器,采用一個三層的結(jié)構(gòu)按照輸入、處理、輸出流程方式進行分離處理。MVC的模式起源于Smalltalk的軟件設(shè)計模式,在當(dāng)今的軟件行業(yè)市場已經(jīng)得到了很廣泛的應(yīng)用。這種分層開發(fā)的模式優(yōu)點就是降低了軟件在開發(fā)過程中的復(fù)雜性,通過模型、視圖、控制器三個類別來處理軟件開發(fā)過程中某一層次中所遇到的問題。人們已經(jīng)把MVC這種架構(gòu)看成一種典范,采用這種設(shè)計結(jié)構(gòu),更加明確系統(tǒng)開發(fā)過程中各部分的主要功能,從而提高開發(fā)效率。
模型(Model)模塊主要負責(zé)數(shù)據(jù)業(yè)務(wù)和數(shù)據(jù)信息的執(zhí)行處理。其中包括業(yè)務(wù)數(shù)據(jù)存儲和讀取、加工和綜合處理等。
視圖(View)模塊主要是指軟件開發(fā)過程中對于操作界面的設(shè)計,也是用戶與數(shù)據(jù)交互的接口。
控制器(Controller)模塊主要負責(zé)模型和視圖間的操作管理,實現(xiàn)數(shù)據(jù)流程的控制,完成雙向的執(zhí)行動作。其中一個動作是將用戶在界面上的操作過程具體映射到模型上,從而實現(xiàn)數(shù)據(jù)業(yè)務(wù)在邏輯層面上的交互。另外一個動作則是將模型模塊處理完成的數(shù)據(jù)快速返回到用戶界面進行輸出??刂破髂K也可以看成是Model和View的中間橋梁。
MVC的開始模型使開發(fā)應(yīng)用程序的結(jié)構(gòu)更加明確,三層模型的架構(gòu)同時也強化了代碼的穩(wěn)定性。代碼可以按照邏輯部分、界面操作部分和應(yīng)用數(shù)據(jù)的過程控制進行分隔處理。這種類似于分布式開發(fā)程序的過程更加提高了軟件的開發(fā)效率,按照不同的工作人員化分,視圖一般都是前臺開發(fā)人員來完成的。而模型的定義、業(yè)務(wù)流程都是由邏輯程序開發(fā)人員完成的??刂破魇怯韶撠?zé)整體數(shù)據(jù)流控制的軟件開發(fā)程序員實現(xiàn)的。在軟件開發(fā)的過程中,一般會采用一種架構(gòu),具體針對于不同的應(yīng)用系統(tǒng)和不同的用戶需求,調(diào)整模型和視圖的變化。這種方法使用代碼在編寫的過程中更加規(guī)范,不易產(chǎn)生混亂。
筆者畢業(yè)設(shè)計項目的開始也是基于這種MVC的架構(gòu),系統(tǒng)在設(shè)計開發(fā)過程中可以獨立進行各模塊的設(shè)計,加速項目的開發(fā)進度。三層結(jié)構(gòu)分別面向系統(tǒng)的表示層、邏輯業(yè)務(wù)層和數(shù)據(jù)接口層。政務(wù)部門公文流轉(zhuǎn)系統(tǒng)的開發(fā)與設(shè)計就是其中一項。在邏輯層面上相互分離,同時對編寫的代碼也具有很好的重用性。
主要介紹了系統(tǒng)在開發(fā)過程主要采用的開發(fā)平臺和技術(shù)架構(gòu)。描述了軟件開發(fā)過程中工作流技術(shù)的應(yīng)用和相關(guān)定義規(guī)范。對于J2EE開發(fā)平臺做了詳細的闡述,也論述了本系統(tǒng)在開發(fā)過程中所利用到的開發(fā)模型MVC架構(gòu),充分展現(xiàn)了系統(tǒng)開發(fā)的技術(shù)可行性。
參考文獻:
[1]胡惠明.南昌民營科技電子政務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[D].昆明:云南大學(xué),2009.
[2]湯曉莉.辦公自動化及電子政務(wù)理論論析[J].電腦知識與技術(shù),2011,7 (32):122-123.
[3]黃偉斌,朱小遠.基于AOP的工作在信息管理系統(tǒng)中的應(yīng)用[J].計算機與數(shù)字工程,2012,40(2):87-89.
[4]吳昊,譚長庚.工作流管理系統(tǒng)及其建模研究[J].現(xiàn)代計算機,2011,20 (2):23-29.
[5]林強東.基于JBPM的工作技術(shù)在銀行票據(jù)交換系統(tǒng)中的應(yīng)用[J].中國金融電腦,2011,(11) :63-65.
中圖分類號:TP315
文獻標(biāo)志碼:A
文章編號:1674-8646(2016)10-0035-03
收稿日期:2016-04-26
Research on management system key technologiesbased onworkflow
JIANG Feng1, LIU Wei-zhuo2
(1. Heilongjiang Academy of Sciences, Harbin 150001, China;2. Heilongjiang the Center of Scientific and Technological Achievements, Harbin 150028, China)
Abstract:Workflow technology is theexecution flow of specific industry-related business areas, mainly describes the relationship between the various elements,it is the foundation platformto build process application and office automation management,workflow technology can be effectively applied to e-government system like document transmission,administrative examination and approval,and improve operational efficiency and competitiveness of the government administration system.This paper describes various technologies in the process of system design,including workflow technology, J2EE technology and MVC development framework.
Key words:Workflow technology; J2EE technology; MVC development framework