研究背景及范圍
??? 目前,工業(yè)社會中信息處理的內涵和外延正在快速擴展,由計算機處理已經(jīng)成為大勢所趨。一方面,組織和技術的發(fā)展之間相輔相成,從而使得信息和通訊技術的快速發(fā)展,直接導致了對組織結構及組織中的工作的巨大沖擊;另一方面,由此導致的激烈的市場競爭迫切地要求所有企業(yè)采用更加有效率的方法來處理他們的業(yè)務過程。這些都為工作流" title="工作流">工作流應用的建立和發(fā)展提供了相應的社會需求和必要條件。
??? 在這些新技術中,由面向對象技術發(fā)展而來的分布式組件技術逐漸成為主流。而近些年來日漸強大的J2EE平臺,正日益成為分布式組件技術的最佳實現(xiàn)載體,其靈活的架構和極佳的分布式計算性能,使得企業(yè)應用可以和相關中間件平臺有機的結合在一起。在這種趨勢下,基于J2EE平臺實現(xiàn)的通用工作流中間件平臺,無疑會使得用戶構造企業(yè)流程解決方案時更加快捷和方便。
??? 根據(jù)工作流流程本身的特點、系統(tǒng)建模的方式、所使用的底層支撐技術,以及工作流流程的執(zhí)行方式等的不同,可以將工作流管理系統(tǒng)" title="管理系統(tǒng)">管理系統(tǒng)分為很多種類,這其中比較常用的分類標準是基于工作流應用領域的分類,在這種分類模式下,工作流可以被分為管理型(Administrative)、特殊型(Ad-Hoc)、協(xié)作型(Collaborative)和產(chǎn)品型(Production)四種類型,其中:管理型工作流主要面向那些流程比較規(guī)范、重復性強的應用場景;特殊型工作流主要應用在因參與者不同或受其他客觀條件所導致的單體流程差異較大的應用場景;協(xié)作型工作流主要應用在主流的群件平臺上,往往需要就某一步驟進行多次循環(huán),直到達成一致意見才能繼續(xù)流轉;產(chǎn)品型工作流是工作流管理系統(tǒng)的最高層次,經(jīng)常被應用在面向關鍵業(yè)務領域的流程實現(xiàn)上面,它與管理型工作流的最主要區(qū)別體現(xiàn)在:產(chǎn)品型工作流具有更好的擴展形、伸縮性、復雜性和高效性等方面。
??? 綜上所述,產(chǎn)品型工作流代表了工作流的高級水平(請見圖3中左圖),而且由于其功能上的相對完善,所以特別適合于封裝成中間件的形式,應用在面向關鍵業(yè)務領域的企業(yè)流程實現(xiàn)方面。本文所討論的架構及應用也主要圍繞產(chǎn)品型工作流展開,圖3中右圖的陰影部分為其在商業(yè)價值和任務復雜度等指標體系中的準確定位。

??? 在明確了具體的研究目標后,接下來我們將結合對產(chǎn)品型工作流模型的分析過程,來建立起一個合理的產(chǎn)品架構,以便為結合J2EE技術來最終實現(xiàn)工作流中間件做準備。
?
架構設計
1.?架構設計的原則
??? 在系統(tǒng)的設計與實現(xiàn)過程中始終以保證系統(tǒng)具備如下性能為架構設計的基本原則:
1)?可用性(Availability)是指當系統(tǒng)啟動并運行后,能夠根據(jù)請求回饋正確的反應。
2)?容錯性(Fault Detection)是指系統(tǒng)對非正常的輸入信息或中間信息主動進行錯誤規(guī)避的能力,在工作流中主要體現(xiàn)在對流程狀態(tài)的檢測、消息隊列的檢測和錯誤識別上面。
3)?客戶端" title="客戶端">客戶端的可恢復能力(Client Recovery)是指系統(tǒng)斷連接后的恢復能力、消息隊列的客戶端持久化水平和對消息狀態(tài)的繼承能力。
4)?服務器端的可恢復能力(Server Recovery)是指系統(tǒng)能否有效的保留系統(tǒng)的關鍵數(shù)據(jù)和實體對象的關鍵狀態(tài),以及對事務的處理能力上面。
5)?伸縮性(Scalability)是指系統(tǒng)可以滿足系統(tǒng)根據(jù)業(yè)務變化的需要,動態(tài)調整系統(tǒng)處理能力的要求。
2.?工作流中間件的架構設計
??? 工作流應用系統(tǒng)" title="應用系統(tǒng)">應用系統(tǒng)通常由三部分組成的:工作流客戶端、工作流服務器和介于二者之間的消息傳輸機制(請見圖1)。其中傳輸層和服務器端又可以進一步進行細分,這種細分的好處就是可以使得工作流應用系統(tǒng)可以適應從2層到n層的多種靈活部署方式。每種部署方式都有各自不同的應用特征和性能指標要求,如何合理劃分服務器和消息隊列之間、服務器和數(shù)據(jù)庫之間的操作界面并沒有唯一確定的答案,完全要看具體的應用特點和應用部署條件。
??? 在上述大的分層原則下,我們進一步對產(chǎn)品型工作流中間件進行了細化(如下圖所示),這種細化進一步落實了構成每層功能的若干子功能組件。從大的層次劃分上來看:
??? .Client端借助于相應的消息傳遞機制(消息中間件或函數(shù)調用等),統(tǒng)一通過相應的編程接口(API)來調用Server端的相應服務,同時Client也可以借助于相應的Program Execution Agent來參與完成相應節(jié)點的客戶端應用程序調用任務;
?
?????????? 圖1:工作流應用系統(tǒng)的基本架構
?? ?Server端由若干個功能完全獨立的服務組成,每個服務器都完成有特定的任務,如:Workflow Execution Service用于處理流程實例、驅動節(jié)點路由(Activity Navigation);n Program Execution Service用于輔助WES完成與應用程序的交互等。在下面內容中還將繼續(xù)介紹其具體細節(jié)。
????.從圖2可以看到,WFMS是通過Message Layer來訪問CM,而不是直接通過消息傳遞系統(tǒng)來完成上述任務,這是為了屏蔽不同的消息傳遞系統(tǒng)實現(xiàn),從而保證整個WFMS的消息接口保持一致,以保證各個功能模塊的功能擴展,增強接口的穩(wěn)定性。
???.從圖2可以看到,整個WFMS的可用性(Availability)和可靠性(Reliability)是由RDBMS的可用性和可靠性決定的,一個高效、穩(wěn)定的DBMS對于整個系統(tǒng)的貢獻是十分巨大的?;赗DBMS實現(xiàn)的WFMS一個另外的好處就是:當系統(tǒng)開發(fā)時很多預料不到的功能點,可以由用戶基于RDBMS結構來直接進行定制,當然其前提是要了解整個WFMS的運行機理,以避免由RDBMS數(shù)據(jù)操作失誤所帶來的系統(tǒng)故障。
????綜上所述,一個工作流中間件的價值主要在于是否有一個強壯、穩(wěn)定的工作流服務器,也即是我們常說的“工作流引擎”。引擎中的各服務互相配合,協(xié)同一致地完成每一項工作任務,各服務之間的動態(tài)交互關系請見圖3。
????????? 圖2:工作流中間件的分層架構?
.工作流執(zhí)行服務(Workflow Execution Service)
工作流執(zhí)行服務是系統(tǒng)的核心部分,主要負責流程實例的運轉和對象的狀態(tài)轉換,支持群集運算。
.管理/監(jiān)控服務(Admin Service)
負責對各服務的監(jiān)控,管理各服務的狀態(tài),可自動對異常狀況進行報告。
.定時服務(Scheduling Service)
定時服務根據(jù)系統(tǒng)的配置,周期性的啟動或調度相應的系統(tǒng)進程來完成某些特殊的任務。如間隔一定的時間,檢測流程中是否有已經(jīng)超時的節(jié)點、更新應用服務的注冊信息、與業(yè)務系統(tǒng)交換數(shù)據(jù)等等。?
?
?????????????????? 圖3? 各服務之間的動態(tài)交互關系
.歸檔服務(Archive Service)
歸檔服務是將已完成的流程實例及其日志記錄從當前運行庫導出的過程。用戶也可以選擇導出‘某時刻以前啟動的所有流程實例’。歸檔服務通過保證引擎數(shù)據(jù)庫工作在一個健康的記錄數(shù)內,來保障數(shù)據(jù)安全和引擎的運行效率。
.網(wǎng)關服務(Gateway Service)
網(wǎng)關服務是對消息傳遞系統(tǒng)的補充。我們知道,不是所有發(fā)生在工作流管理系統(tǒng)和其他外部系統(tǒng)之間的通信都可以借助于消息隊列來完成的,對于某些如電子郵件這樣的系統(tǒng)間數(shù)據(jù),需要有相應的服務來將其“翻譯”成工作流管理系統(tǒng)內部可以傳遞和處理的格式,網(wǎng)關服務就是用來完成這一功能的。
.清理服務(Cleanup Server)
功能與歸檔服務類似,不同點主要體現(xiàn)在兩方面:一方面是處理的結果,歸檔服務將系統(tǒng)數(shù)據(jù)導出成持久化文件或轉移到別的數(shù)據(jù)庫中,以便進行數(shù)據(jù)備份和統(tǒng)計,而清理服務只是將一些系統(tǒng)內的無效數(shù)據(jù)(如一些中間狀態(tài)結果)直接刪除;另一方面,清理服務還要根據(jù)一定的規(guī)則,對一些被意外遭到破壞的數(shù)據(jù)進行恢復,以保證WFMS的正常運行。
.日志服務(Log Server)
日志是工作流運行時相關信息的記錄,記錄信息包括兩部分:對象日志和事件日志。
一個基于J2EE技術的產(chǎn)品型工作流實現(xiàn)案例
前面對產(chǎn)品型工作流的架構進行了扼要的分析,從中我們初步了解了類似的工作流產(chǎn)品的基本組成和特點,基于該架構可以有多種技術實現(xiàn)方案,在對包括.Net和J2EE等技術進行綜合比對后,我們發(fā)現(xiàn)J2EE平臺的開發(fā)性和規(guī)范性更加有利于工作流中間件的實現(xiàn)。下面就結合東軟的產(chǎn)品型工作流中間件——NEUSoft UniFlowTM 來具體介紹一下如何有效、合理地利用J2EE的技術優(yōu)勢,來實現(xiàn)完善的產(chǎn)品型工作流中間件。
.數(shù)據(jù)訪問服務(Data Access Service)中廣泛使用了基于JDBC的數(shù)據(jù)庫連接池技術:應用請求建立數(shù)據(jù)庫連接是一個比較耗時的工作,為了支持并發(fā)用戶訪問,UniFlow接口采用了基于JDBC的數(shù)據(jù)庫連接池技術。數(shù)據(jù)庫連接池同時建立了多個可供接口使用得數(shù)據(jù)庫連接,當有應用請求數(shù)據(jù)庫連接的時候,可以直接從連接池中取得數(shù)據(jù)庫連接進行使用,以減少應用建立數(shù)據(jù)庫連接的耗時。連接池克服了數(shù)據(jù)庫連接上的瓶頸,使多個請求可以并發(fā)訪問數(shù)據(jù)庫的資源,充分利用數(shù)據(jù)庫支持多連接的功能,提高了工作流系統(tǒng)" title="工作流系統(tǒng)">工作流系統(tǒng)的運行效率。
.基于Java RMI的負載均衡技術和組件通信技術:由前述可知,一個完整的工作流應用平臺是由若干子服務構成的,因而各子服務之間的交互手段就顯得比較重要。在本產(chǎn)品中,我們選用Java RMI作為標準通信技術,各組件通過RMI來和中央任務派發(fā)服務進行交互,并由該服務完成負載監(jiān)控、任務分配、多引擎任務調度等復雜功能。Java RMI協(xié)議穩(wěn)定、高效的處理性能保障了上述功能的實現(xiàn)。
.基于Web Service技術的多渠道(Multi-Channel)接入實現(xiàn):工作流的管理監(jiān)控工具和辦理客戶端提供了web辦理方式,它使得用戶管理工作流系統(tǒng)、辦理工作流任務已經(jīng)不再局限于局域網(wǎng)內部,可以在Internet上的任意一處訪問工作流系統(tǒng)。在UniFlow工作流管理系統(tǒng)中,主要重點結合servlet技術、xml技術、soap技術和jsp技術來實現(xiàn)上述功能。
.規(guī)則解析技術:在工作流中存在著眾多的業(yè)務規(guī)則,UniFlow在解析這些業(yè)務規(guī)則時充分利用了Java語言中的正則表達式、腳本框架等技術,保證了規(guī)則的動態(tài)添加和高效解析,從而實現(xiàn)了基于規(guī)則的條件路由、任務辦理等功能。
.Java圖形技術:工作流的圖形化流程定義工具、組織機構定義工具使用了計算機圖形學中的一些關鍵技術,如圖形的繪制(主要是二維圖形)、圖形的布局、分層和規(guī)避(避免圖形的重疊和線的交叉)等等。所有的工具都可以借助于Java Web Start技術實現(xiàn)基于Internet的自動下載和版本更新。
.中間件技術:作為孤立的工作流中間件,是無法勝任復雜的工作流應用系統(tǒng)的,其必須和包括消息中間件、事務中間件等在內的眾多中間件進行交互。J2EE的一個巨大貢獻就是,從規(guī)范的角度定義了相關中間件的交互接口,如JMS規(guī)范、JTA規(guī)范、JCA規(guī)范等等,這使得工作流中間件只要實現(xiàn)相關的規(guī)范接口就可以了,不必為每個中間件供應商進行單獨定制。尤其是JMS規(guī)范,實現(xiàn)了工作流引擎間以及工作流內部各遠程服務間消息傳遞的透明。
小結
??? 工作流是當前發(fā)展比較快的中間件技術,尤其是產(chǎn)品型工作流有著廣泛的市場需求,J2EE平臺強大功能特性以及標準化的接口,為工作流應用平臺的實現(xiàn)提供了巨大的技術便利,通過結合二者的優(yōu)勢而實現(xiàn)出的基于J2EE平臺的工作流應用解決方案,可以為包括電子政務、電子商務在內的很多高端工作流應用提供更加便捷的開發(fā)、部署和維護手段。本文在重點討論了產(chǎn)品型工作流中間件系統(tǒng)架構的基礎上,分析了如何合理采用J2EE技術來實現(xiàn)該架構模型,并在最后結合一個具體的實現(xiàn)案例來進一步驗證了方案的可行性。
??? 隨著工作流理論模型的日臻完善,以及J2EE標準的不斷升級,結合二者優(yōu)勢的工作流應用平臺也會更加顯示出其不可替代的優(yōu)勢。