基於業務組件模型的工作流模塊設計 摘要 當前基於 BPLE 的業務流程管理(BPM)以及基於 XPDL 的工作流(WF)都有成熟的理論和相應的產品支持,特別是在國內,工作流(WF)的應用十分廣泛。本文從流程入手,結合業務流程管理、工作流、績效管理、個人門戶等概念,將業務流程管理和工作流結合起來 ,搭 ...
基於業務組件模型的工作流模塊設計
摘要
當前基於 BPLE 的業務流程管理(BPM)以及基於 XPDL 的工作流(WF)都有成熟的理論和相應的產品支持,特別是在國內,工作流(WF)的應用十分廣泛。本文從流程入手,結合業務流程管理、工作流、績效管理、個人門戶等概念,將業務流程管理和工作流結合起來 ,搭建企業級的跨系統的流程整合架構。
什麼是流程
在面向服務體系架構(Service Oriented Architecture,SOA)中,流程是一個很重要的概念,其中業務流程管理包含了人工任務等,結合《面向服務體系架構(SOA)和數據倉庫(DW)的思考》(以下簡稱《SOA 和 DW》)以及《面向服務體系架構(SOA)和業務組件(BC)的思考》(以下簡稱《SOA 和 BC》)中關於共用庫、業務組件的設計,本文進一步給出了關於如何進行工作流管理組件的設計方法和實現。
流程和作業
流程(Process)是產生某一結果的一系列作業,是多個人員、多個作業按照一定的規則的有序組合,它關心的是誰做了什麼事,產生了什麼結果,傳遞了什麼信息給誰。流程一定是體現企業價值的,沒有價值的流程是沒有意義的,因此每個流程都有其特定的績效目標。在信息系統中,流程由若幹作業(Operation)按照一定的規則組合而成,可以用業務流程圖來描述,其目標通過績效指標體現。作業是為了實現一個可定義的目標而進行的一系列活動,是業務流程的基本單元。在信息系統中,作業的前端表現為若幹界面,後端由若幹個服務按照一定的規則組合成一個個功能單元。
在本文中,流程是指企業運作的所有工作流程,企業的所有的活動都可以看作是一個個流程,流程是由若幹個作業組成的,在 IT 技術上流程稱為工作流,作業稱為流程節點。
流程規範 XPDL 和 BPEL
在 IT 技術中,關於流程最早是以 WfMC 為代表的“業務流程開發商”, 工作流管理聯盟(WfMC)於 1993 年成立,他們主要擁護以 XPDL 作為描述語言來描述業務流程;之後是以
OASIS(Organization for the Advancement of Structured Information Standards,結構化信息標準促進組織)組織為代表的,被 IBM,MicroSoft,BEA 所擁護的 BPEL/BPEL4WS
規範;之後向來以規範著稱的 OMG 組織也不甘示弱,聯合 BPMI 組織,獨闢蹊徑以 Notation Specification 為入口,首先推出了 BPMN 規範,進而推出了 BPDM(Business Process Definition Metamodel BPDM)。
2003 年 4 月 BPEL 規範提交給了 OASIS 更名為 WSBPEL(Web Services Business Process Execution Language)規範。此規範描述如何處理輸入的消息,它不是一個關於業務流程規格化定義的規範。簡單的說,可以將它看作 XML 形式的編程語言,提供將 WSDL-Services 組合成控制流的能力。由於 BPLE 對於人工活動支持不好,為此進一步擴展為 BPEL4People(WS-BPEL Extension for People),從只能編排 Web 服務,擴展為同時支持對 Web 服務和基於角色的人工活動進行編排。
業務流程管理(BPM)和工作流管理(WFM)
業務流程管理(Business Process Management BPM),一般的定義為一套達成企業各種業務環節整合的全面管理模式。BPM 實現了人員、設備、桌面應用系統、企業級後臺應用等內容的優化組合,從而實現跨應用、跨部門、跨合作伙伴與客戶的企業運作。
根據 WfMC 的定義,工作流(Work Flow)為自動運作的業務過程部分或整體,表現為參與者對文件、信息或任務按照規程採取行動,並令其在參與者之間傳遞。簡單地說,工作流就是一系列相互銜接、自動進行的業務活動或任務。
工作流管理(Workflow Management, WFM)是人與電腦共同工作的自動化協調、控制和通訊,在電腦化的業務過程上,通過在網路上運行軟體,使所有命令的執行都處於受控狀態。在工作流管理下,工作量可以被監督,分派工作到不同的用戶達成平衡。
在本文中業務流程管理(BPM),是指基於 BPEL 標準的業務流程整合,主要實現系統和系統之間的整合;工作流(WF)是指人工活動的業務流程,基於 XPDL 標準或者 BPEL4People 標準,實現人機交互的整合,目的是實現系統內部以及跨系統的流程審批。關於業務流程(BPM),當前有很多成熟的產品,不做過多介紹,本文以工作流管理(WFM)為基礎,基於《SOA 和 BC》的方法進行設計,給出了工作流管理組件的設計模型。工作流和績效、個人門戶、即時溝通等緊密相關,比如每個崗位流程節點彙總在一起,在前端展示為個性化門戶,即時溝通平臺實現人員之間實時溝通。
業務流程建模符號(BPMN)
業務流程建模符號(Business Process Modeling Notation,BPMN)由 BPMI(The Business Process Management Initiative)開發是一套標準叫業務流程建模符號,於 2004 年 5 月對外發佈了 BPMN 1.0 規範。BPMN 的主要目標是提供一些被所有業務用戶容易理解的符號,從創建流程輪廓的業務分析到這些流程的實現,直到最終用戶的管理監控。BPMN 也支持提供一個內部的模型可以生成可執行的 BPEL4WS。BPMN 定義了一個業務流程圖(Business Process Diagram),該業務流程圖基於一個流程圖(Flowcharting),該流程圖被設計用於創建業務流程操作的圖形化模型。而一個業務流程模型 (Business Process Model),指一個由的圖形對象(graphical objects)組成的網狀圖,圖形對象包括活動(acticities)和用於定義這些活動執行順序的流程式控制制器(flow controls)
在本文中業務流程管理(BPM),是指基於 BPEL 標準的業務流程整合,主要實現系統和系統之間的整合;工作流(WF)是指人工活動的業務流程,基於 XPDL 標準或者 BPEL4People 標準,主要實現人機之間交互的整合,目的是實現系統內部以及跨系統的審批。關於業務流程(BPM),當前有很多成熟的產品,不做過多介紹,本文以工作流管理(WFM)為主,進行設計,同時考慮到 BPMN 未來將會得到更多的使用,採用 BPMN 來進行畫圖。工作流是和績效緊密相關,每個崗位流程節點彙總在一起,在前端展示為個性化門戶,除了工作流的溝通之外還有消息平臺實現人員之間的協同
工作流管理(WFM)組件設計
企業可以看作是企業實體對象,包括組織、人員、產品等在不同的環境和條件下的不斷的運轉的過程,實體對象和運轉過程映射到信息系統中,分別對應著數據(可以用 ER 圖描述)和業務流程(可以用流程圖、業務邏輯和業務規則描述)。數據和業務流程能夠全面反映實體對象及其運動的狀態。在現實社會中,實體對象的運動體現為一系列活動,在信息系統中 ,活動表現為一個流程節點,實體對象通過一系列的業務活動直至最終完成任務,在信息系統中體現為數據狀態的不斷變化,直到數據最終完成。
在《SOA 和 BC》一文中提到了關於基於 OSGi 的模塊化的設計思路,工作流管理作為其中的一個公共組件的模塊,如果是提升到企業級的公共服務平臺中,則是獨立的工作流管理業務組件,可以實現跨系統的工作流整合,以下結合《SOA 和 BC》的思路,進一步細化工作流管理模塊(或工作流管理業務組件)的設計思路。
工作流組件的松耦合設計
傳統的辦公自動化或者協同辦公系統,要實現基於工作流的流轉,需要有兩個基本的功能:工作流引擎和自定義表單,有了這兩個基本功能就可以在一個系統中實現流程的流轉。但是如果要實現整合企業所有的應用(不管是什麼平臺、哪個開發商),要將所有的業務全部整合到一個工作流平臺中,就需要工作流組件提供一個松耦合的連接方式,將所有的應用整合在一塊,保證現有的系統都能整合到統一的一個工作流中,從而實現統一企業的工作流,全面對企業流程進行監控。
結合《SOA 和 BC》的思路,將工作流組件作為一個獨立的公共組件,為了更好的實現和其它業務組件以及公共組件內部的不同模塊之間的松耦合,工作流組件對外以 Web 服務的方式對外提供介面,通過 ESB 和業務組件進行調用。同時為了保證性能,可以將工作流引擎內嵌到業務組件中,通過類匯流排(API)進行調用。這樣既可以實現和內部業務組件之間的結合,也可以實現和應用外部的系統進行流程整合。從業務組件劃分角度來看,工作流模塊可以作為獨立的業務組件,從方便管理角度來看,將其和其它的功能模塊合併在一起,是公共組件的一個部分。
圖 1. 公共組件模型-工作流模塊
[註]
表單自定義功能是界面管理模塊的重要功能之一。
本文中的工作流管理組件實際上是公共組件的一個部分。
工作流組件和其他業務組件通過 Web 服務方式調用可以採用非同步和同步傳輸兩種模式。同步傳輸主要適用於兩個系統必須同時提交的業務場景,採用同步傳輸需要等待另外一個系統的反饋信息,對提交 Web 服務的系統有性能的影響;非同步傳輸的方式主要適用於可以非同步提交 Web 服務的業務場景,保證了提交 Web 服務系統的性能,非同步提交的方式需要考慮接受服務的系統出現宕機或者網路故障的情況下還可以準確無誤的將 Web 服務傳遞到接收系統。非同步傳輸一般通過消息中間件完成。
關於松偶合的 Web 服務的調用順序在《SOA 和 BC》文中建議儘量採用觸發的方式進行調用,基於這種調用方式,業務組件對外只提供查詢或者寫入服務,而不會直接通過寫代碼調用服務,實現業務組件的松偶合,這種調用方式同樣適應於工作流組件中。比如客戶註冊流程,一開始實在 CRM 系統完成的,但是如果隨著業務的發展,客戶註冊採用網上註冊,原來 CRM 系統客戶註冊流程的任務啟動就會發生變化,如果是採用的觸發的方式,僅僅修改流程的編排即可(需要由業務流程管理(BPM)實現),而不需要修改 CRM 的程式。在工作流組件中,最好的一個實現方式就是由工作流組件進行流程的發起,如圖 2-1 啟動流程所示。
圖 2. 工作流組件的松偶合調用
為了實現松偶合,業務組件和工作流組件之間不進行業務數據交互,傳遞的僅僅是任務信息 。業務組件對外提供獲取信息或者寫入信息的 Web 服務,和普通的業務組件之間的 Web 服務沒有什麼區別,讀取信息和寫入信息是標準的業務服務,保證了為工作流使用的 Web 服務具有通用性。如果需要和工作流整合,僅僅提供一個特殊的 Web 服務“通知完成”將任務的完成狀況或者任務的基本信息等傳遞到工作流組件,任務的基本信息主要是為了痕跡化管理,將修改的信息做一個記錄,便於未來的審計。通過這種模式實現業務數據和流程數據分離,工作流組件和業務組件不進行業務數據的交互,簡化了工作流整合的難度。工作流組件則提供啟動流程、修改流程狀態,啟動下一環節以及保存任務基本信息等 Web 服務。
為了使流程平臺具有良好的擴展性,如果工作流組件需要業務數據,比如需要根據業務數據進行判斷業務流轉,也是以 Web 服務的方式有業務組件提供一個標準的服務,通過 BPEL 實現,比如為了進行痕跡化,則需要對進行審批的內容進行保存,通過 BPLE 調用查詢服務將數據保存到流程資料庫中,其調用跟工作流引擎沒有關係。實現跨系統的流程流轉,也是通過 BPEL 的編排,通過調用業務 Web 服務實現。
工作流組件組成及和業務組件關係
作為公共組件的工作流模塊主要包含三個主要功能:工作流引擎、待辦任務管理、工作流可視化管理。工作流引擎是基礎模塊,可以為所有的系統提供工作流引擎,實現工作流流轉的邏輯控制;待辦任務管理主要實現人機交互,提供一個統一管理的待辦任務管理,整合公共的工作流引擎以及企業已經存在的工作流引擎(如 OA)以及普通業務系統的任務(如沒有工作流引擎的 ERP),形成一個統一的待辦任務管理;工作流可視化管理,主要用於工作流的可視化展示,用於除了用於工作流定義外,可以實現流程監控、業務績效指標監控、流程導航等功能。
SDP軟體快速開發平臺(從.net到java)
SDP 支持:(.NET、JAVE)平臺
相容:IE6、FireFox、Chrome、Safari、Opera
SDP軟體快速開發平臺適用對象:軟體開發商、最終用戶、程式開發員
各類軟體定製開發 APP/微信平臺/CRM/OA/ERP/MES/數據採集/教育教學系列/會員系列
特點
01)快速開發系統,直接生成代碼,節約人工,節約成本
02)可視化設計,操作簡單易用,更新、維護、部署操作簡單方便
03)支持多人多項目協同開發,提高協同工作效率
04)減少程式員代碼量,只需極少的JS代碼就能實現複雜業務功能
05)可以根據客戶需求、快速開發出DEMO版,尤其是在大型項目調研對接過程,針對文檔性資料不夠直觀,通過快速生成的DEMO版(其實就是後續正式的程式)讓用戶非常直觀的看到軟體項目最終的效果,對項目的調研起到事半功倍的效果,後續只要再次針對業務進行複雜業務邏輯的處理就可以完成項目的開發,基本上項目調研完成,軟體項目基本上定型開發就已經完成,效率和效果得到空前提高。
06)SDP節省開發成本,開發速度快,從而滿足企業快速發展變化而帶來的系統變化的需要。一般普通的剛畢業的程式員只要簡單培訓,就能開發出項目頁面,只需要會簡單的JS程式,就能很快完成業務單據的正常的保存、修改、 刪除、列表、輸出、查詢等功能;經過多次檢驗,一般一個稍微熟悉一點的開發人員一天基本上能開發幾十個業務表單及功能,效率得到空前提高;
07)SDP對開發人員要求不高,只需清楚企業管理需求,就可很快速將需求實現。 開發人員需懂一定SQL語法,一般一周即可培訓好。當然這隻是說針對普通的業務來說的,如果是非常複雜的業務邏輯更新,則還是需要技術高點的人 來寫DLL類庫來執行更新,所以公司可將開發人員技術等級劃分後,合理的分配任務,就能實現此目標。
08)SDP擴展性,適應性強,降低了企業重覆購買軟體的風險。 企業可在此平臺上開發各種系統,集成在一起,充分利用。
09)SDP設計器可以支持多個項目配置,針對不同的項目登錄時選擇不同配置即可進入不同系統,實現一套平臺操作多個應用。所有系統操作方法相同,每上一個新系統時無需重新培訓。
10)SDP實現每實施一個新系統或升級一個舊系統時,能快速部署更新,大大減輕了實施和維護人員的工作量。
11)SDP為開發人員開發好了大量基礎性模塊,開發人員無需重覆開發,如組織 管理、人事管理、個人事務、新聞管理、系統管理、許可權管理等。如需修 改,直接修改對應的文件就可以完成新的需求
12)SDP提供了郵件發送功能,只需在WEB端配置一下郵件伺服器就可以實現郵件發送;同時提供的內部消息和新聞通知功能基本滿足日常的需求。 13)SDP平臺開發生成的項目,是純HTML源碼文件,用戶可以輕鬆閱讀修改。(軟體項目是B/S架構)
14)通過可視化的頁面設計,輕鬆實現複雜業務頁面的功能設計
15)通過流程圖設計模塊,快速製作業務工作流。
16)通過報表設計工具,可以製作出符合邏輯的中國式複雜報表(包括圖表、列印、輸出等)
SDP開發平臺推出了V3.5版本,增加了JAVA版的項目開發功能,讓使用JAVA開發的公司也能使用上開發平臺。實現JAVA .NET 雙版本的格局。下一步我們將繼續努力推出手機APP的開發功能,最終實現 .NET JAVA APP 融合一體的綜合開發平臺。
可視化流程設計及監控:涵蓋了從流程定義、發佈、管理配置、執行、監控到結果分析的完整的生命周期管理。
多層多級複雜許可權控制:複雜許可權控制,實現橫向、縱向數據許可權控制,可精確控制到頁面單元格元素控制項,全局統籌掌控易如反掌。
讓你的員工更高效的工作:適用於通用領域和特定領域的業務系統,實現框架重用、組件 重用、業務邏輯重用和程式員組裝動作重用。
高性能架構,強大的支撐體系:涵蓋了Web應用項目的基礎架構及通用功能,包括工作流引擎、報表引擎、組織架構、許可權管理、流程管控、任務管理。
源自多年運營經驗:ERP、供應鏈、人力資源、協同辦公、項目管理、設備管理跨系統整合等各種應用案例實戰保障。
中國式複雜報表分析:獨創的中國式報表,支持分組、交叉、條碼、主從、套打、分欄、 圖表混排等多種展現方式。