工作流管理技術通過提供一種新的機制協助企業進行更有效的生產與流通管理以及決策支持。本文主要研究工作流管理技術在電子商務中的應用,提出了基於WEB和J2EE平台的工作流系統體系結構設計方案,分析了工作流引擎的實現方法。
一、引言
工作流的概念是為提高工作效率的研究而產生的,最初被應用於辦公自動化和生產組織領域,通過將文檔、信息或任務按照預先定義好的規則在參與者之間進行傳遞,其目的是通過將工作分解成任務、角色,按照一定的規則和過程來執行這些任務並對它們進行監控。工作流管理是CSCW(Computer Support CoOperative Work)研究領域的一個重要分支,它已經被實踐證明能夠大大提高管理過程的效率、降低生產成本、提高企業生產經營管理水平。
企業的電子商務活動中,大量業務工作都是由兩個或兩個以上的員工共同參與合作來完成的,這一系列相關的活動以及活動按照一定規則的變化過程就構成了電子商務業務流程,例如銷售訂單管理流程、行政申請流程、財務審批流程、客戶服務流程及人事處理流程等。在電子商務中,能否更快地對客戶需求做出反應,在市場需求變化時對商務流程做出及時調整,是企業提升競爭力的有效手段。開發商務工作流程管理系統是企業解決上述難題的有效辦法。
二、基於J2EE與Web的工作流系統體系結構
J2EE提供了企業級的計算模型和運行環境,使用EJB Server作為商業組件的部署環境,在EJB Server容器中提供了分布式計算環境中組件需要的所有服務(JTS、JMAPI、JMS、JNDI等)。實現商業邏輯的EJB組件可以更高效的運行在應用服務器中,支持多種客戶端的訪問。J2EE使企業級應用具有安全性、可擴展性和可靠性,使用J2EE作為工作流的開發平台符合電子商務建設的應用需求。
電子商務平台中工作流系統的實現采用的是三層體系結構,基於J2EE和WEB的工作流系統,核心服務采用EJB實現。三層分別是客戶應用層、商務邏輯層、數據層。
1.應用層
是工作流平台的用戶應用部分,采用Html技術,用戶通過Web浏覽器參與業務流程處理。客戶端只提供用戶桌面程序界面,客戶端程序負責管理所有與工作流引擎的溝通,並為用戶提供針對企業具體業務內容所定制的任務清單。客戶登錄工作流網站並進行身份驗證之後會進入不同的界面進行各自的工作。在企業內部,客戶應用層中的用戶可分為四種類型:工作流設計人員、系統管理員、高層領導者和普通用戶,他們分別通過Web界面完成特定的工作。
2.商務邏輯層
邏輯層的實現主要利用EJB技術,它接受Web層發來的請求數據,並依此進行相應的動作,完成事先定義的任務,並且把下一步的要求回送給Web層。邏輯層包括工作流引擎、Web服務器、App服務器、電子商務業務組件。工作流引擎以組件形式封裝,用戶可以調用其中的接口。Web組件運行在Web服務器上,主要負責與客戶的交互。系統通過Web服務器的JSP/Html/XML/Applet等收集客戶端發來的信息和數據,並通過Servlet調用EJB服務器中的EJB組件進行處理並將結果返回到Web頁面。應用組件、EJB組件運行在App服務器上,負責發布和管理EJB組件、管理組件的生命周期、連接數據庫、並發操作、分布式事物處理等。
工作流執行服務組件是工作流管理系統的重要組成部分,搭建在J2EE應用服務器之中。執行服務組件包含工作流執行服務器,由工作流引擎實現,組件還提供用戶客戶端應用程序模板和工作列表查詢工具,為上層MIS調用提供API。在技術實現上,主要采用JSP、Servlet、EJB,整體采用B/S、C/S混合結構,客戶端工作流相關信息查詢采用B/S,具體業務邏輯通過RMI機制或Soap機制調用放在服務器端的EJB組件來完成。
對於B/S部分,采用MVC模式,在該模式中Servlet作為Controller角色,負責處理請求與頁面流轉,EJB充當Model角色,封裝業務邏輯與數據,JSP充當VIEw角色,它是數據表現層,生成用戶顯示界面。具體實現步驟是:當JSP頁面收到客戶端發來的消息後,根據需要,由Servlet控制業務流轉,把實際處理工作交給JavaBean來做,JavaBean根據需要調用合適的組件完成相應的工作,Bean可以利用RMI機制調用本地App組件,也可以直接調用自動應用組件和企業原有應用組件,還可以通過SOAP機制調用遠程服務組件。
3.數據層
它是工作流平台的數據基礎,由工作流模型數據庫、工作流實例數據庫和工作流組織數據庫組成,主要負責對工作流系統中的模型數據、實例數據和組織數據進行存儲、組織與維護。邏輯層與數據層DBMS的連接是通過JDBC來完成的,可以對大部分商用關系數據庫提供支持。
基於工作流技術的電子商務系統的功能模塊包括銷售管理、庫存管理、采購管理、訂單管理、人事管理、客戶管理、系統管理、用戶管理。系統中的用戶:系統管理員、企業職員、客戶、供應商等分別登錄到相應的Web頁面,進行相關的工作。工作流管理是系統的核心部分,其實質是工作流引擎,它提供了工作流系統在過程定義、任務分派、系統運行、監控執行等服務。
三、工作流引擎的設計
1.工作流引擎實現方法
工作流引擎采用EJB組件技術實現,封裝了相應的業務邏輯,工作流引擎的運行主要就是對象之間的交互和接口對對象的調用,以及它們對數據庫進行的各種讀寫操作。根據引擎提供的功能,引擎由四個方面的管理功能組成:工作流模板管理、過程實例管理、活動實例管理、用戶角色管理。主要的實體Bean包括:過程實例Bean、活動實例Bean、角色Bean、部門Bean、職員Bean、規則Bean、團隊Bean、任務項Bean。
(1)工作流模板管理Bean
包括的方法有:模板創建、刪除模板、模板實例化、保存到數據庫。
(2)過程實例管理Bean
包括的方法有:初始化過程實例、啟動過程實例、掛起過程實例、終止過程實例、刪除過程實例、重啟過程實例。
(3)活動實例管理Bean
包括的方法有:開始活動實例、掛起活動實例、重啟活動實例、終止活動實例、獲得活動實例列表、取消活動實例。
(4)用戶角色管理Bean
包括的方法有:添加用戶、設置用戶角色、刪除用戶、添加角色、刪除角色。
2.工作流過程實例管理
采用XML語言來表示電子商務過程模型,過程模型主要由這些實體組成:過程、活動、路由規則、工作流相關應用。例如在電子商務訂單確認過程模型中:首先,企業銷售部門對訂單上的數據進行驗證,對填寫錯誤的訂單轉到退出,對填寫正確的訂單進行處理;然後,根據客戶選擇的不同支付方式,當使用信用卡支付時,把客戶信用卡信息發送給信用卡服務器進行審批,確認支付額是否被認可;最後,發送訂單確認信息給客戶。
在工作流過程實例啟動時,工作流引擎把XML定義實例化後,經過XML解析器的解析,生成過程、活動、流轉路由等對象,再保存於數據庫相應的表中。過程模型中的實體被封裝成對象,包括:活動結點(Activity)、過程(Process)、路由節點(Rule)、工作流相關應用(WorkflowApp)。對象的基本屬性包括ID、名稱等,並且具有共同的方法:(1)ContverttoXML():將模型元素的屬性轉換為XML格式的數據,以便於保存為XML文件;(2)SavetoDB():此方法將模型中元素的信息保存到數據庫中特定的表中。
工作流過程實例的執行可以看作是一個狀態變遷,其狀態有:初始化、運行、激活、掛起、結束、停止。工作流引擎調度中心根據不同的條件,例如,啟動過程、執行任務、結束任務以及其他事件的發生,會導致工作流過程實例從一個狀態轉換到另一種狀態。
3.任務管理
任務管理主要根據調度中心的指示完成諸如任務創建、任務狀態的轉換以及相關數據的維護等工作。每次結束任務的外部請求將觸發調度中心調用任務管理為後繼活動(如果存在的話)創建新的實例,其狀態為“待處理”;同時,其它不同的外部請求也將觸發任務管理實施任務狀態的切換。任務的主要狀態有:初始、處理、暫停、正在處理、完成。
(1)任務隊列
一個活動可以具有多個實例,每個實例稱為一個任務。在電子商務系統中一個任務對應於企業具體的業務步驟。
(2)任務派發
任務派發處理只針對人工交互活動,是指按照何種准則將任務分配給具體人員來執行。任務派發的方式是按角色指定和按人員指定兩種。
(3)任務狀態控制方法
工作流引擎對任務狀態的控制主要來源於任務的啟動規則和後繼規則實現。啟動規則是通過相任務的直接前趨任務來表示的,啟動規則包括順序、與連接、或連接、用戶自定義四種規則。調度中心在將任務切換到待處理狀態之前先進行相關的啟動規則檢查,只有滿足啟動條件的任務才可以進行狀態的切換。任務的後繼規則是指當前任務結束後該啟動哪些後繼任務,後繼規則包含順序、或分支、與分支、用戶自定義四種規則。
四、總結
工作流管理技術通過過程建模和過程管理的核心技術開發的企業電子商務系統能迅速實現企業業務重組,使電子商務活動以信息流為基礎,可以全面提高企業協作能力。在本文所做研究的基礎上,筆者認為可以從以下幾個方面進行深入研究:對具有適應的柔性工作流的研究工作、以及如何保證動態建模方法動態路由的正確性還有待進一步充實和擴展,對工作流系統的容錯能力、數據保護、數據恢復和異常處理策略方面還有待進一步的研究。