工作流僅如其下的業(yè)務流程一樣好
<name></name>Margie Virdell
電子商務 設計師, IBM Developer Relations
2003 年 3 月
<abstract-extended></abstract-extended>首先,我們需要考慮一個問題。想想那個造出第一個輪子的洞穴人。第一個輪子是創(chuàng)造、發(fā)明、是值得慶祝的理由。而制造第二個、第三個、第四個、第五個等輪子的制作則只是勞動。從穴居時代,到亨利福特開始通過裝配線生產(chǎn)福特汽車,直到今日,我們一直都在想辦法來更好地、更快地、更可靠地,同時花費更少的金錢來完成工作。對于達到這些目標,業(yè)務流程是一種非常好的方法。本文將討論業(yè)務流程、它們與現(xiàn)今的工作流和 Web 服務的關系,還有我們面臨的挑戰(zhàn)。
業(yè)務流程:是的,它們值得投資
業(yè)務流程可以被定義為一個具有各種不同功能的活動相連的一組有相互關系的任務。業(yè)務流程有起點和終點,而且它們都是可重復的。這個定義并不能反映出產(chǎn)生一個有用的業(yè)務流程所需的思考、明確性、細節(jié)和付出的時間。有用的業(yè)務流程為企業(yè)創(chuàng)造并節(jié)省金錢。
更重要的是,為企業(yè)創(chuàng)建業(yè)務流程的價值在于那些流程所代表的智力資產(chǎn)。企業(yè)生產(chǎn)出的配件有價值,這無可非議;此外,如何制造這些配件的知識也同樣有價值。您可以在業(yè)務流程中獲取這些知識、添加新的知識并予以改進。配件制作流程的作用域是很重要的,因為執(zhí)行所有這些步驟將確保合格的配件;步驟多了或少了或與此不同將使得成本增加或質量降低,甚至兩種結果都有。
定義業(yè)務流程并對其作出文檔所花費的時間和努力是完全值得的。只讓配件制造主任了解企業(yè)的配件制造知識,然后讓他每晚走出工廠大門,這就有危險了。只要定義了配件制造業(yè)務流程,配件制造工人可以隨時來去,而且任何配件制造工人都可以隨時取代另一個人的工作,這是因為工廠里的所有配件制造工人都理解并遵循業(yè)務流程。我們可以學習、改變、評估然后再次改變配件制造業(yè)務流程,因為該流程對于每個人都是可見的,而非局限于配件制造主任。
工作流:誰?什么?何時?
工作流軟件并不創(chuàng)建業(yè)務流程,但是,當您在設計業(yè)務流程定義和添加要求的業(yè)務規(guī)則定義時,把工作流應用到業(yè)務流程時當然集中了該流程的細節(jié)。工作流可以被看作是業(yè)務流程中的
誰?什么?何時?
這幾個問題的答案的實現(xiàn)。
誰?
誰是業(yè)務流程流所涉及的參與者?他們擔任什么角色?他們是如何被組織的?分組是靈活而動態(tài)的?還是更為固定而靜態(tài)的?不僅是人,更多實體可以成為工作流參與者。組織、應用程序、員工、Web 服務和其他工作流可以是
誰
這個問題的答案。把參與者抽象為角色將使一個工作流更為健壯。舉例來說,您不必冒著在工作流中產(chǎn)生瓶頸的危險來指定員工 A 或員工 B 必須做某項任務,或者忍受每次有人調任或晉級時都必須修改特定員工名單時令人頭痛的維護工作,您可以允許任何具有管理員(Supervisor)角色的人來執(zhí)行該任務,這樣會減小產(chǎn)生瓶頸的風險,還能降低維護成本。
什么?
參與者要做哪些工作?他們?nèi)绾蝸碜鏊麄兊墓ぷ鳎克麄円鷾适裁词虑閱??他們?zhí)行事務嗎?他們創(chuàng)建文檔嗎?跟蹤庫存嗎?向供應商詢價嗎?開展商業(yè)活動嗎?把信息傳遞給其他參與者嗎?有些工作流是完全自動的,而有些則由必須通過人來執(zhí)行的手工任務組成。更為常見的是,工作流是這兩種類型的結合。例如,向供應商詢價可以是一組由人來執(zhí)行的人工任務之一,但也可以變?yōu)橐粋€對 Web 服務的編程調用,該服務根據(jù)供應商和向其提供的物品信息返回價格。
何時?
參與者如何知道工作何時開始?工作何時完成?參與者以什么順序進行他們的任務?他們是以串行還是平行方式工作?如果只是有時工作,那么是在什么情況下?每個任務要持續(xù)多長時間?是否有確定的截止期限?如果任務沒有成功完成,是否要重新再來?當一個業(yè)務流程中包含目前由人僅在白天完成的任務,而對這些任務的檢查結果是把它們變?yōu)樽詣拥亍⒃谌魏螘r間執(zhí)行,這樣人就被解脫出來,可以去完成其他任務,而后來變?yōu)樽詣訄?zhí)行任務不必等待某人去執(zhí)行。
您了解工作流語言嗎?
現(xiàn)在,讓我們來了解一些常見的工作流術語(請參見
表 1
),大部分取自 WfMC 的工作流參考模型(Workflow Reference Model)(請參見
參考資料
來獲取更多信息)。
表 1:工作流術語和定義
工作流
|
很簡單,它就是工作從開始到完成的過程。工作流由流程邏輯和路線規(guī)則組成。流程邏輯定義了任務的順序和必須遵循的路線規(guī)則,還有截止期限以及由工作流引擎實現(xiàn)的其他業(yè)務規(guī)則。
|
流程定義
|
一個圖形流程定義或流程圖,代表工作流的流程邏輯元素以及各元素之間的關系。
|
流程實例
|
一個流程實例,通常稱為工作,是一個流程定義的運行實例。
|
工作流管理系統(tǒng)
|
一個軟件應用程序,它存儲流程定義并通過其工作流引擎組件來根據(jù)這些流程定義運行工作。工作流引擎是運行時執(zhí)行模塊。
|
流程定義工具
|
一個用來創(chuàng)建和更改流程定義的軟件工具。該工具可以是一個業(yè)務流程管理軟件的組件、一個獨立的應用程序或者一個工作流管理系統(tǒng)的組件。流程定義工具提供了重用已存儲工作流元素甚至所有子流程的能力,這使工作流應用程序開發(fā)者生產(chǎn)力更高,因為他們在構建工作流并在工作流中集成其他應用程序時避免了再次發(fā)明這些輪子(應用程序)。
|
參與者
|
以下類型之一:資源集、特定資源、組織單元、角色(一個人在組織內(nèi)部的作用)、人或系統(tǒng)(自動代理)。它可以回答業(yè)務流程中“誰?”這個問題。
|
活動
|
組成流程定義中的一個邏輯步驟的任務。可以是自動的或人工的。自動指在流程操作過程中定義腳本和觸發(fā)器的能力。流程定義中的特定活動可以作為無人參與的任務來運行,自動化可以在手工或人力驅動的任務中執(zhí)行業(yè)務規(guī)則。常見的一種自動活動就是截止期限管理,如果某個工作項在預定的截止期限之前未能完成,該管理可以自動發(fā)送一條提醒消息或觸發(fā)一個延期程序。
|
活動所有者
|
活動所有者是有權宣布一個活動結束,然后推進工作到流程中的下一個活動的參與者。
|
工作所有者
|
工作所有者是有權整體控制流程實例執(zhí)行過程的參與者。
|
工作項
|
代表流程實例中活動的參與者將要執(zhí)行的工作。
|
工作流的根
軟件中的工作流方向來源于兩個起源不同的觀點:
基于人的業(yè)務流程
和
基于規(guī)則的自動化流程
;兩者之間的互補性一直在增強。
基于人的工作流軟件的根在工作組工具(workgroup tool)和群件(groupware)中。在工作組工具應用程序(辦公室套件,如 Lotus SmartSuite、Microsoft Office 和 Star Office,還有一些更為專用的工具,如 Autodesk 和 Autocad)中,小組協(xié)作和隱式工作流一直就是明顯的特征。群件是旨在讓小組或群體中的人能更容易地協(xié)作并幫助他們使工作流更為平穩(wěn)而高效的軟件。對于從工作組工具和群件發(fā)展而來并且現(xiàn)在正顯式地捕獲和管理著工作流的基于人的工作流軟件,其未來在于增強 Web 服務功能,同時增強 JSP 和 portlet 支持,從而使它們朝越來越集成到 Java 環(huán)境中的方向發(fā)展。
如 Web 應用程序編制(Web application orchestration)中所述,在規(guī)則引擎應用程序和靜態(tài)的、一步一步的、基于規(guī)則的生產(chǎn)和制造流程中均可以見到工作流自動化應用程序的根。這種工作流現(xiàn)在也在朝支持基于人的工作流的方向發(fā)展。
兩種觀點的融合意味著工作流軟件具有靈活地處理各種不可預料的情形的能力是非常重要的。Web 服務工作流的編制和編排是目前正在進行的標準定義工作的重要部分。
我們在這里仍然可以看到兩種觀點。編制將順序和節(jié)拍分別強制施加在一組 Web 服務及其輸出上,從而產(chǎn)生期望的流程結果,這正如一個音樂指揮者把順序和節(jié)拍分別強制施加在一組演奏者和他們奏出的音樂上,從而產(chǎn)生期望的音樂效果。演奏者奏出的音樂中如果有走調或錯誤將使指揮者很不高興,但這不會改變演奏過程的順序和節(jié)拍。Web 服務的編制反映了工作流的自動化根。
相對比,從同樣的比喻角度而言,編排比編制更為復雜,編排定義的是處理一組 Web 服務之間的各種不可預測的交互的行為。一群舞蹈者和一個交響樂團的演奏者都以相互合作的方式各司其職地演出,與此同時,舞蹈者按編藕玫畝髟諼杼ㄉ顯碩?,彼凑f納硤寤嵯嗷ビ跋?。某个舞祫傔动醉d謀湫位虺齟砘嵋鵪淥璧剛叩畝鞣⑸謀?,诊傆着就会钢\湮璧副硌荼舊懟eb 服務的編排反映了工作流的基于人的根。
工作流和企業(yè)應用程序集成
工作流軟件應該完成以下四個主要功能(這些功能是企業(yè)應用程序集成(Enterprise Application Integration,EAI)的一部分):充當垂直應用程序的組件;與應用程序集成軟件很好地一起工作;成為協(xié)作應用程序的"粘合劑";適應 Web 服務體系結構。
作為垂直應用程序的組件
(用于諸如銀行業(yè)和保險業(yè)這樣的企業(yè)行業(yè)),工作流應用程序應該通過跨組織共享的直觀的圖形工具來增強開發(fā)和業(yè)務范圍之間的交互。對于像制造業(yè)這樣的行業(yè),工作流應用程序應該增強生產(chǎn)的靈活性并使生產(chǎn)系統(tǒng)負載均衡。在流程和組織發(fā)生改變時,工作流應用程序應該能夠很容易更新工作流。最后一點,但并非最不重要的是,工作流應用程序應該通過對業(yè)務流程進行標準化和監(jiān)督幫助企業(yè)遵守政府和組織條例。
為了
與應用程序集成軟件
API
很好地合作
,工作流應用程序應該提供靈活的 Java 支持,這種支持將使工作流應用程序能夠與 Web 應用程序和其他 IT 應用程序集成,同時應該支持與現(xiàn)有企業(yè)應用程序的集成。舉例來說,工作流應用程序應該能夠支持外部主機工作流系統(tǒng)中嵌入的工作流。
從前面提到的兩種觀點來看,
工作流應用程序應該成為合作應用程序的“粘合劑”
。合作應用程序通常指由其他需要執(zhí)行任務的應用程序/Web 服務構建的應用程序以及管理所有的交互作用和數(shù)據(jù)流的應用程序。合作應用程序也可以指基于人的業(yè)務流程的自動化和流水線化,這樣工作流的相關人員作為個人來說生產(chǎn)力更高,而在小組中顯得更為重要。
工作流應用程序應該適用于 Web 服務結構體系
。工作流可以作為 Web 服務來提供。舉例來說,工作流 Web 服務可以被提交報價請求的外部供應商調用。創(chuàng)建請求后,工作流應用程序可以自動創(chuàng)建并添加以前存儲在文檔管理系統(tǒng)中與提交者建立的合約的鏈接,然后根據(jù)這些以前的合約以及目前市場情況生成一些推薦報價,再把提交發(fā)送到合適的人(們)。當要去滿足該請求的人收到提交時,他能夠得到作出一個有充分信息根據(jù)的決定所需的一切信息,知道應該向供應商提供什么樣的報價。工作流也可以控制一組構成應用程序的 Web 服務流。
讓您的工作流調用我的工作流
在一個由 Web 服務構建而成的合作應用程序里,應用程序中的業(yè)務流程的確是一組任務,這些任務的參與者是 Web 服務,而工作流控制極為重要,完全不同的工作流之間的交互也不可避免。然而,在您的工作流可以調用我的工作流并被其理解(互操作)之前,我們需要一個標準去描述公共流程、組合、專用工作流和其他常見的工作流構件。盡管現(xiàn)在已經(jīng)有了一些被提議的工作流標準,但這種工作流互操作性還未被人們確定。人們編寫了其他一些這種建議和文檔。
表 2
顯示了近年來產(chǎn)生的各種工作流規(guī)范和定義。在本文末尾也有一個關于這些標準的參考資料列表。
表 2:工作流規(guī)范
Wf-XML
|
工作流管理聯(lián)盟(Workflow Management Coalition,WfMC)中的 Wf-XML 和工作流參考模型(Workflow Reference Model):Wf-XML 是一種基于 XML 的工作流互操作性信息的編碼。工作流參考模型是一種底層工作流系統(tǒng)體系結構的描述。目前 Wf-XML 沒有與 SOAP 和 WSDL 綁定。
|
WSFL
|
IBM Web 服務流語言(IBM Web Services Flow Language):指定了 Web 服務組合的兩種類型 1)一個被認為是流模型(flowModel)的可執(zhí)行業(yè)務流程,和 2)一個被認為是統(tǒng)一模型(globalModel)的業(yè)務合作。與 SOAP、UDDI 和 WSDL 兼容。
|
XLANG
|
Microsoft 的 XLANG:用于 BizTalk 的業(yè)務模型語言,該語言是可運行 EAI 的 .NET 組件。BizTalk 編制(BizTalk Orchestration)是工作流引擎,BizTalk 編制設計器(BizTalk Orchestration Designer)是基于 XLANG 的可視化業(yè)務流程模型工具。
|
BPEL4WS
|
用于 Web 服務的業(yè)務流程執(zhí)行語言(Business Process Execution Language for Web Services)是用于 Web 服務編制、工作流和組合的 WSFL 和 XLANG 的協(xié)作合并。該語言還尚未被提交到 IT 標準組織。
|
ebXML BPSS
|
電子商務過渡工作組(eBusiness Transition Working Group)繼承了業(yè)務流程規(guī)范方案(Business Process Specification Schema(BPSS))的 ebXML 層中的工作流對話和編制,ebXML 定義了許多基于 XML 的電子商務的協(xié)議和層。
|
WSCI
|
Sun/BEA/Intalio/SAP 聯(lián)盟的 Web 服務編排接口(Web Services Choreography Interface)“是一種基于 XML 的接口描述語言,該語言描述了參與和其他服務的編排交互作用的 Web 服務所交換的信息流?!?
|
WSCL
|
W3C 的 Web 服務對話語言(W3C's Web Services Conversation Language):Hewlett-Packard 向 W3C 的提交,該提交允許定義 Web 服務的抽象接口(也就是,Web 服務支持的企業(yè)級對話或公共流程),以及交換的 XML 文檔及其文檔的排序。
|
PIPs
|
RosettaNet 的伙伴接口流程(Partner Interface Process ):定義了貿(mào)易伙伴與指定的系統(tǒng)到系統(tǒng)(system-to-system)的基于 XML 的對話之間的業(yè)務流程。許多 PIP 被用來定義各種伙伴情況。
|
JDF
|
CIP4 的工作定義格式(Job Definition Format)是一種即將使用的用于圖形藝術(Graphics Arts)工業(yè)的工作流工業(yè)標準,該標準用于簡化不同應用程序和系統(tǒng)之間的信息交換。
|
我們到了這種程度嗎?
為何
存在
這么多被提議的工作流標準?有些標準之間是直接競爭的關系,的確如此,但很多標準是從工作流那種類似于洋蔥的層中的其他標準開始定義,而這些標準在層的邊緣融合在一起。基本流程的定義與流程之間如何合作的定義融合在一起。該定義的邊界與編制等融合在一起??紤]混合自動和人工活動的所有可能...那么,這是一個很復雜的洋蔥。
“工作流標準”是一個矛盾修飾法嗎?
矛盾修飾法是一個各部分看上去彼此抵觸的短語?!皹藴省币辉~表明了共性、簡化,并且是一個構建其他人可以理解的有用的東西的基礎。工作流通常是復雜而多樣的。當我們開始把工作流排列在一起時,復雜性和可能的變化將變得龐大。
把可能把"工作流"濃縮為一個公共的"標準"或一系列標準嗎?同時這些標準要足夠復雜才能有效。很多人這么想并且現(xiàn)在正在從事這方面的工作。該標準將不會如某些人所希望的那樣完整;沒有標準會是這樣(這就是標準的擴展發(fā)明的原因)。也許那將是絆腳石;我們現(xiàn)在需要讓工作流標準充分地成長發(fā)展。
我們正在等待廣泛傳播的 Web 服務實現(xiàn)...
|
目前普遍使用的成熟而完善的業(yè)務流程管理產(chǎn)生了可以轉換為復雜而完善的工作流的業(yè)務流程。工作流行為和互操作性的標準化試圖一次性讓所有方面標準化,但對于整個過程來說已經(jīng)晚了。也許標準的主體和它們的成員應該將力量集中在完成基礎的、核心的工作流標準,而不應被外層過多地分散力量。標準工作應該由中心"流"出來。
參考資料
關于作者
Margie S. Virdell 是一名位于德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting 的電子商務設計師,為 IBM 商業(yè)伙伴提供教育、授權和咨詢。她從德克薩斯州威爾克絲-巴里的 Midwestern State University 獲得歷史學士學位和計算機科學碩士學位,并且在 IBM 工作了 15 年,她大部分時間都花在軟件開發(fā)上。當她不在思考電子商務的下一步時,她通常更多地學習超大黑洞和超級火山。您可以通過
virdell@us.ibm.com
聯(lián)系 Margie。
|
|