基于Web技術(shù)的工作流管理系統(tǒng)設(shè)計
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
2012-04-12 10:04:40 中國論文下載中心 陳克玲 陳彥德
隨著社會生產(chǎn)的流程化,工作流起著越來越重要的作用。根據(jù)工作流管理聯(lián)盟WfMC(Workflow Management Coalition)的定義,工作流(Workflow)就是自動運作的業(yè)務(wù)過程部分或整體,表現(xiàn)為參與者對文件、信息或任務(wù)按照規(guī)程采取行動,并令其在參與者之間傳遞。本文詳細(xì)介紹了電話業(yè)務(wù)系統(tǒng)中工作流管理系統(tǒng)的分析和建模過程。 1 工作流技術(shù)概述 工作流的概念產(chǎn)生自傳統(tǒng)制造業(yè)的生產(chǎn)組織。“流”反映了一種變化以及變化的過程,是一個較為抽象的概念。針對日常工作中一系列具有相對固定順序的業(yè)務(wù)流程,把這些流程分解成多個任務(wù)、角色,按照一定的規(guī)則來執(zhí)行和監(jiān)控的任務(wù)序列,以達(dá)到提高企業(yè)經(jīng)營效率,降低成本,提高管理水平的目的。 不同的研究者和工作流產(chǎn)品的供應(yīng)商從不同的角度給出了工作流的定義,工作流管理聯(lián)盟WFMC(成立于1993年8月)為了實現(xiàn)不同的工作流產(chǎn)品的互操作,對工作流的相關(guān)概念制定了一系列標(biāo)準(zhǔn)。WFMC給出的工作流定義是:工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,它根據(jù)一系列過程規(guī)則、文檔、信息或任務(wù),能夠在不同的執(zhí)行者之間進(jìn)行傳遞與執(zhí)行。該定義強調(diào)了工作流的執(zhí)行可以“完全自動或者部分自動”,即:工作流反映企業(yè)的經(jīng)營過程,它的執(zhí)行應(yīng)該受到計算機系統(tǒng)的支持。同時需要經(jīng)營過程本身任務(wù)間的執(zhí)行條件、先后順序、邏輯結(jié)構(gòu)、交互信息、人員角色以及需要使用的應(yīng)用程序等要素。 工作流中兩個最基本的元素是活動和活動之間的連接關(guān)系。活動對應(yīng)于企業(yè)經(jīng)營過程中的任務(wù),主要是反映經(jīng)營過程中的執(zhí)行動作或者操作?;顒又g的連接關(guān)系代表了經(jīng)營過程的規(guī)則和業(yè)務(wù)流程。一個工作流就是一個用一組連接關(guān)系組合起來的一組活動所組成的一個反映企業(yè)業(yè)務(wù)過程的模型。執(zhí)行活動和活動之間的連接關(guān)系說明了如何完成企業(yè)的經(jīng)營過程,包括完成經(jīng)營過程需要完成哪些任務(wù)和采用的步驟。 2 基于WEB工作流的提出及其優(yōu)點 WEB的成功和普及以及各種相關(guān)技術(shù)的出現(xiàn),使許多應(yīng)用被移植到WEB平臺上。自從1995年起,工作流產(chǎn)品供應(yīng)商和相關(guān)的研究人員開始將工作流管理系統(tǒng)轉(zhuǎn)移到WEB平臺上。相對于其他的工作流系統(tǒng)(如:基于文件、基于消息等的工作流系統(tǒng))來說,基于WEB的工作流管理系統(tǒng)具有以下幾個優(yōu)點: 系統(tǒng)維護簡單 未來的計算模式,瀏覽器就是桌面,客戶端都是WEB-enabled的?;赪EB的工作流系統(tǒng)中客戶端只需要一個瀏覽器,瀏覽器通過HTTP協(xié)議從WEB服務(wù)器下載客戶端程序到本地執(zhí)行,這樣大大簡化了系統(tǒng)的維護工作。 利用現(xiàn)有的網(wǎng)絡(luò)設(shè)施 只要能訪問WEB就能加入系統(tǒng)參與工作。無須在單獨投資建立通信支持網(wǎng)絡(luò)。非常方便分散的成員參與到系統(tǒng)中來。 更好的用戶界面 由于WEB瀏覽器普遍存在的特性使得基于WEB的工作流系統(tǒng)有一個更好的用戶界面。WEB瀏覽器允許用戶利用任何流行的計算平臺參與工作流過程而無需任何特定的硬件要求。很多不是很熟悉計算機的用戶已經(jīng)習(xí)慣于瀏覽器的簡單易用的界面,他們把瀏覽器當(dāng)作一種簡單可行的工具來參與工作流過程。因此,相比于其他的工作流技術(shù)來說,基于WEB的工作流憑借它的瀏覽器界面接口具有很大的優(yōu)勢。 較好的解決服務(wù)器的瓶頸問題 基于WEB的工作流系統(tǒng)可以將服務(wù)分散到WEB服務(wù)器和各應(yīng)用服務(wù)器,這樣可以較好的實現(xiàn)負(fù)載均衡和協(xié)同開發(fā)。 可以充分利用現(xiàn)有的或?qū)淼募夹g(shù) WEB技術(shù)是當(dāng)前最熱門的技術(shù)之一,新的技術(shù)層出不窮,一些原有的技術(shù)也被整合到WEB技術(shù)中來。 3 系統(tǒng)分析與總體設(shè)計 隨著計算機技術(shù)的飛速發(fā)展,信息化管理已經(jīng)滲透到各行各業(yè),電信局作為國家通信部門,其信息化成為一種必然的趨勢。尤其在Java逐漸成熟成為一種跨平臺的開發(fā)語言后,用Java開發(fā)跨平臺的軟件系統(tǒng)是首選,再以Struts結(jié)構(gòu)將JSP與Java代碼有效的分開,使開發(fā)更加方便。還有由于通信業(yè)務(wù)的特殊性,將工作流技術(shù)應(yīng)用到系統(tǒng)的開發(fā)中。這些技術(shù)的應(yīng)用將是一個十分有意義的課題。本文以某電信局的電話業(yè)務(wù)管理系統(tǒng)為背景。 3.1 系統(tǒng)組織結(jié)構(gòu) 通信要素實行扁平化管理,通信處下設(shè)若干個職能部門,主要有8個通信要素,它們是:通信處、市話辦、測量臺、程控機房、電纜維護隊、單機組、查號臺、計費中心。其中通信處負(fù)責(zé)監(jiān)視所有業(yè)務(wù)的處理,市話辦負(fù)責(zé)監(jiān)視與管理所有業(yè)務(wù)的處理,負(fù)責(zé)整個工作流程的創(chuàng)建、監(jiān)視、中斷。 3.2系統(tǒng)的功能模塊劃分 某電信局電話業(yè)務(wù)管理系統(tǒng)(CSMS)共分為五個功能模塊: 電話管理功能模塊:該功能模塊主要是通過采用工作流自動處理技術(shù),保證了通信管理部門的業(yè)務(wù)處理終端在各種業(yè)務(wù)流程的處理過程中能自動地完成工作狀態(tài)的切換,并且根據(jù)各個終端當(dāng)前的工作狀態(tài)自動提示相關(guān)業(yè)務(wù)的具體內(nèi)容,并在用戶完成必要的操作輸入后自動完成相關(guān)設(shè)備的配置和資料的整理。根據(jù)業(yè)務(wù)類型的不同,該模塊中還包含針對不同業(yè)務(wù)處理流程的功能子模塊。 通信業(yè)務(wù)資料查詢管理功能模塊:該模塊向各個通信要素提供相關(guān)通信設(shè)備資料和電話用戶資料的管理和查詢功能,并且根據(jù)每個通信要素的管理權(quán)限限制用戶管理和查詢資料的范圍,從而保證用戶能夠利用本系統(tǒng)安全、方便、有效地完成對各種通信設(shè)備資源與電話用戶資料的管理。 業(yè)務(wù)量統(tǒng)計查詢功能模塊:流量、電話號碼使用情況等,并能對每天、周、月、年的工作量進(jìn)行統(tǒng)計匯總,而且還可以直接計算出這一段時間內(nèi)處理成功業(yè)務(wù)的比例,從而為通信管理部門及時掌握業(yè)務(wù)處理部門的工作情況提供了有效的工具。指揮管理終端可通過調(diào)閱各要素表報資料和業(yè)務(wù)量登記情況來檢查各要素值勤情況系統(tǒng)使用說明。 消息通知及語音提示功能模塊:為了保證各種電話業(yè)務(wù)流程能夠在工作流周轉(zhuǎn)過程中實現(xiàn)快速有效地處理,系統(tǒng)還提供了消息通知及語音提示功能功能,即在每個業(yè)務(wù)流程到達(dá)處理崗位的同時,彈出消息對話框提示用戶及時地進(jìn)行業(yè)務(wù)的處理,而且還能夠伴隨著語音信息的輸出,從而保證了值勤人員不管是否在系統(tǒng)終端前進(jìn)行操作都能夠及時地接收到業(yè)務(wù)消息的通知,保障了業(yè)務(wù)受理部門能夠及時地進(jìn)行電話業(yè)務(wù)的處理。 通信值勤監(jiān)管功能模塊:該模塊向各個業(yè)務(wù)處理要素提供了值班日記登記的功能,各個通信要素的值班人員可在交接班的時候利用系統(tǒng)提供的值班日記登記、管理功能填寫交接班記錄,在值班的過程中填寫值班記錄。 圖1 系統(tǒng)結(jié)構(gòu)圖 采用工作流技術(shù),將以上各個子系統(tǒng)整合到一起,以便將各環(huán)節(jié)縱橫交錯的信息有效地集成在一起,使一個環(huán)節(jié)產(chǎn)生的結(jié)果能自動傳遞到下一個環(huán)節(jié),為下一環(huán)節(jié)所利用,以保證通信部門及時、準(zhǔn)確的做出決策,同時,反映到用戶操作上,每個用戶所有需要完成的工作反映在一個統(tǒng)一的界面中,用戶根據(jù)輕重緩急有選擇的進(jìn)行業(yè)務(wù)處理。工作流服務(wù)器具有流程監(jiān)控功能,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)在接近預(yù)定時間內(nèi)任務(wù)還沒有完成或發(fā)現(xiàn)任務(wù)已經(jīng)拖延,可以向有關(guān)的業(yè)務(wù)處理人員發(fā)出催辦通知,甚至可以通知該部門的主管,要求予以督促。 3.3 工作流狀態(tài)引擎 由于各個崗位在業(yè)務(wù)處理的過程中會不斷的改變狀態(tài),所以系統(tǒng)需要有一種狀態(tài)通知、調(diào)整的機制,來執(zhí)行實時傳遞與接收業(yè)務(wù)流程管理信息以及變換各個崗位在不同業(yè)務(wù)流程中多個流程實例所處狀態(tài)的功能并調(diào)整對應(yīng)的操作。 因此,我們專門在系統(tǒng)中設(shè)計了“狀態(tài)引擎”模塊來完成以上功能。其中業(yè)務(wù)流程管理信息的實時傳送與接收可以通過網(wǎng)絡(luò)通信來完成,因此在工作流“狀態(tài)引擎”中需要設(shè)計一個實時通信子模塊。為了對工作流狀態(tài)進(jìn)行操作,“狀態(tài)引擎”中需要設(shè)計一個狀態(tài)操作子模塊。 某個崗位完成對某個流程實例的操作后,“狀態(tài)引擎”的狀態(tài)操作子模塊修改本崗位有關(guān)狀態(tài),然后實時通信子模塊發(fā)送信息;接收崗位的“狀態(tài)引擎”的實時通信子模塊接收信息,狀態(tài)操作子模塊根據(jù)接收的信息來調(diào)整本崗位當(dāng)前的狀態(tài)并提示用戶進(jìn)行相應(yīng)操作。 3.4 工作流引擎選擇 本工作流系統(tǒng)應(yīng)用采用Java網(wǎng)站中著名的“Open For Business“開源項目作為工作流引擎,此工作流引擎具有穩(wěn)定、高效率、占用資源小等特性,并且完全按照WMFC的工作流標(biāo)準(zhǔn)接口開發(fā),后期維護簡易,可擴展性好等特點。采用此系統(tǒng)可以方便地對業(yè)務(wù)流程進(jìn)行維護,用戶只要懂得XPDL(XML過程定義語言)并且熟悉系統(tǒng)對用戶和表單的配置,即可根據(jù)業(yè)務(wù)需要自己制定業(yè)務(wù)流程。 OFBIZ工作流主要用到Xml文件進(jìn)行定義: services_ FormName.xml:定義了本應(yīng)用中用到的service,每一個實現(xiàn)工作流的表單定義一個xml文件,運行一個獨立的服務(wù)。 controller.xml: OFBIZ ControlServlet的配置文件,我們主要在其中配置request-map, view-map.FormNameXPDL.xml:工作流流程定義文件。 entitymodel_FormName.xml:實體定義文件,每一個表單需要一個定義,在本工作流中關(guān)聯(lián)到一個數(shù)據(jù)庫表。具體需要定義表名和字段名、字段類型和約束條件等。 entitygroup.xml: OFBIZ的entitygroup定義文件,Entity可以分Group,在實體引擎的配置文件中可以為不同的Group指定不同的數(shù)據(jù)源。 4 工作流模塊實現(xiàn)的關(guān)鍵技術(shù) 分布式數(shù)據(jù)庫技術(shù)是實現(xiàn)工作流的常用方法,也是系統(tǒng)中實現(xiàn)業(yè)務(wù)工作流運轉(zhuǎn)的基礎(chǔ)。我們利用SQLSERVER數(shù)據(jù)庫,在JBUILDER集成開發(fā)環(huán)境上實現(xiàn)了系統(tǒng)中通信業(yè)務(wù)的工作流處理,系統(tǒng)中數(shù)據(jù)庫連接采用了JDBC技術(shù),其主要工作包括以下幾個方面: 4.1 JSP和Servlet技術(shù) JSP技術(shù)能讓W(xué)eb開發(fā)員和網(wǎng)頁設(shè)計員快速地開發(fā)容易維護的動態(tài)Web主頁。 用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行。 JSP有2種結(jié)構(gòu),本系統(tǒng)采用Model2即MVC結(jié)構(gòu)如圖2。MVC是模型、視圖、控制的縮寫,也就是說在使用jsp時,有相應(yīng)的文件去實現(xiàn)相應(yīng)的操作通常jsp只負(fù)責(zé)顯示頁面。業(yè)務(wù)邏輯等由javabean去實現(xiàn)。 圖2 MVC結(jié)構(gòu)圖 Servlet技術(shù)是JSP技術(shù)的前身, JSP技術(shù)其實就是Servlet技術(shù)的一個高層封裝。實際上JSP引擎要把JSP標(biāo)簽、JSP頁中的Java代碼甚至連同靜態(tài)HTML內(nèi)容都轉(zhuǎn)換為大塊的Java代碼。這些代碼塊被JSP引擎組織到用戶看不到的Java Servlet中去,然后Servlet自動把它們編譯成Java字節(jié)碼。這樣,當(dāng)網(wǎng)站的訪問者請求一個JSP頁時,在他不知道的情況下,一個已經(jīng)生成的、預(yù)編譯過的Servlet實際上將完成所有的工作。非常隱蔽而且高效。因為Servlet是編譯過的,所以網(wǎng)頁中的JSP代碼不需要在每次請求該頁時被解釋一遍。JSP引擎只需在Servlet代碼最后被修改后編譯一次,然后這個編譯過的Servlet就可以被執(zhí)行了。由于是JSP引擎自動生成并編譯Servlet,不用程序員動手編譯代碼,所以JSP能帶給你高效的性能和快速的靈活性。 4.2 數(shù)據(jù)庫連接技術(shù) 4.2.1 JDBC技術(shù) JDBC是對各種各樣的關(guān)系型或?qū)ο蟆P(guān)系型數(shù)據(jù)庫進(jìn)行訪問的最主要的API之一,是一個使JAVA程序能與數(shù)據(jù)庫服務(wù)器通信的JAVA應(yīng)用程序接口,它不針對任何特定的數(shù)據(jù)庫。JDBC技術(shù)由兩大部分組成,一部分是訪問數(shù)據(jù)庫的高級接口,即通常所說的JDBC API,包括核心API與擴展API;另一部分是一些由數(shù)據(jù)庫廠家提供的使JAVA程序能夠與數(shù)據(jù)庫連接通信的驅(qū)動程序,JDBC數(shù)據(jù)庫驅(qū)動程序必須針對特定的數(shù)據(jù)庫系統(tǒng)實現(xiàn)JDBC API中定義的方法。使用JDBC API編寫訪問數(shù)據(jù)庫的JSP程序時,調(diào)用的方法實際上是由JDBC數(shù)據(jù)庫驅(qū)動程序?qū)崿F(xiàn)的。JDBC API大部分都是一些JAVA接口,僅僅定義了方法的名字,沒有定義方法的實體。高性能的JDBC數(shù)據(jù)庫驅(qū)動程序?qū)崿F(xiàn)了真正接口,在JAVA應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間搭起了一座橋梁,使得它們之間可以迅捷地交換數(shù)據(jù),提供服務(wù)或者享受服務(wù)。 4.2.2 JDBC數(shù)據(jù)庫連接方式 常用的2種數(shù)據(jù)庫連接方式:JDBC driver和JDBC-ODBC bridge,本系統(tǒng)采用JDBC driver。首先,在服務(wù)器上安裝driver,大多數(shù)數(shù)據(jù)庫都有JDBC driver;然后和數(shù)據(jù)庫建立連接。必須創(chuàng)建一個Connection class的實例,其中包括數(shù)據(jù)庫的信息。 對于一個簡單的數(shù)據(jù)庫應(yīng)用,對數(shù)據(jù)庫的訪問不是很頻繁。這時可以簡單地在需要訪問數(shù)據(jù)庫時,就新創(chuàng)建一個連接,用完后就關(guān)閉它。但是對于一個復(fù)雜的數(shù)據(jù)庫應(yīng)用,頻繁的建立、關(guān)閉連接,會極大的減低系統(tǒng)的性能,因此對于連接的使用成了系統(tǒng)性能的瓶頸。 本系統(tǒng)給出的方法可以有效的解決這個問題。在本方法中提出了一個合理、有效的連接管理策略,避免了對于連接的隨意、無規(guī)則的使用。該策略的核心思想是:連接復(fù)用。通過建立一個數(shù)據(jù)庫連接池以及一套連接使用管理策略,使得一個數(shù)據(jù)庫連接可以得到高效、安全的復(fù)用,避免了數(shù)據(jù)庫連接頻繁建立、關(guān)閉的開銷。另外,由于對JDBC中的原始連接進(jìn)行了封裝,從而方便了數(shù)據(jù)庫應(yīng)用對于連接的使用(特別是對于事務(wù)處理),提高了開發(fā)效率,也正是因為這個封裝層的存在,隔離了應(yīng)用的本身的處理邏輯和具體數(shù)據(jù)庫訪問邏輯,使應(yīng)用本身的復(fù)用成為可能。 本系統(tǒng)的數(shù)據(jù)庫連接池包括一個管理類DBConnectionManager,負(fù)責(zé)提供與多個連接池對象(DBConnectionPool類)之間的接口。每一個連接池對象管理一組JDBC連接對象,每一個連接對象可以被任意數(shù)量的Servlet共享。 類DBConnectionPool提供以下功能: 1) 從連接池獲?。ɑ騽?chuàng)建)可用連接。 2) 把連接返回給連接池。 3) 在系統(tǒng)關(guān)閉時釋放所有資源,關(guān)閉所有連接。 此外, DBConnectionPool類還能夠處理無效連接(原來登記為可用的連接,由于某種原因不再可用,如超時,通訊問題),并能夠限制連接池中的連接總數(shù)不超過某個預(yù)定值。 管理類DBConnectionManager用于管理多個連接池對象,它提供以下功能: 1) 裝載和注冊JDBC驅(qū)動程序。 2) 根據(jù)在屬性文件中定義的屬性創(chuàng)建連接池對象。 3) 實現(xiàn)連接池名字與其實例之間的映射。 4) 跟蹤客戶程序?qū)B接池的引用,保證在最后一個客戶程序結(jié)束時安全地關(guān)閉所有連接池。 5 結(jié)束語 本系統(tǒng)研究了基于工作流管理技術(shù)的電話業(yè)務(wù)系統(tǒng),能夠?qū)⒅T多項工作集成在一起,通過Intranet進(jìn)行電話業(yè)務(wù)處理。采用跨平臺的JSP技術(shù)開發(fā),具有模塊化設(shè)計、實現(xiàn)工作流程自定義、部門功能自定義、采用SQLServer 2000數(shù)據(jù)庫作為后臺支撐。系統(tǒng)具有運行效率高,操作簡單、方便、安全性好、可靠性高等特點,并已得到實際應(yīng)用。 該文章在 2012/4/12 22:05:16 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |