如何用jbpm做出一個狀態視覺化動態可編輯的工作流平臺-1
什麼是JBPM
在我們決定學習JBPM之前,還是先來看看這頭騾子是個什麼東西,以下是百度百科上的解釋:
JBPM,全稱是Java Business Process Management(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴充套件的可執行流程語言框架。jBPM是公開原始碼專案,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)協議。
看完這個,你能準確的理解JBPM是個什麼鳥嗎?!我覺得有點難。還是再問問百度,搜一下其他關於JBPM的部落格,給的例子都是JBPM4.0以前的了,知道4.0是什麼時候釋出的嗎?2010年,但現在JBPM的最新版本已經是jbpm v6.4, 釋出於2016年4月份,這6年的跨度中,這個開原始碼專案已經作了改頭換面的修改,變化之大你難以想象。這也促成了我打算寫這一系列關於jbpm和bpmn的文章,因為大家得趕上潮流嘛,我打算以這個版本(6.4)作為例子給大家講解jbpm。
好,那什麼是jbpm, 把它的英文全稱翻譯過來是很容易理解的,java業務流程管理。但這裡的jbpm是特指的,RedHat公司下面的一個JBoss開源專案,它提供了一套元件,能夠讓你快速靈活的開發出一套工作流管理系統。
什麼是BPMN
那我們要coding出一套工作流管理系統,只有JBPM就夠了嗎?不夠!我們在瞭解jbpm的時候不能把它和bpmn分開。什麼是bpmn? 它的全稱是Business process model and notation。這傢伙是一套類似於UML和xml的流程設計語言,既能像UML一樣以視覺化的方式編輯路程,也能像XML一樣編輯,而JBPM包含了一套完整的基於Java的BPMN API,通過讀取bpmn2檔案裡面定義的流程內容,進而實現狀態機控制,業務排程和資料庫管理等。具體我們還是看看百度娘給我們的解釋:
BPMN是由BPMI(The Business Process Management Initiative)開發的一套標準:業務流程建模符號(BPMN - Business Process Modeling Notation)。在 BPMI Notation Working Group超過2年的努力,於2004年5月對外發布了BPMN 1.0 規範。後BPMI併入到OMG組織,OMG於2011年推出BPMN2.0標準,對BPMN進行了重新定義(Business Process Model and Notation)。BPMN的主要目標是提供一些被所有業務使用者容易理解的符號,從建立流程輪廓的業務分析到這些流程的實現,直到終端使用者的管理監控。BPMN也支援提供一個內部的模型可以生成可執行的BPEL4WS。因此BPMN的出現,彌補了從業務流程設計到流程開發的間隙。
BPMN定義了一個業務流程圖(Business Process Diagram),該業務流程圖基於一個流程圖(flowcharting),該流程圖被設計用於建立業務流程操作的圖形化模型。而一個業務流程模型(Business Process Model),指一個由的圖形物件(graphical objects)組成的網狀圖,圖形物件包括活動(acticities)和用於定義這些活動執行順序的流程控制器(flow controls)。
我們為什麼使用JBPM
說了這麼多沒用的,我們還是回到開發者的視角,如果我們有很多工作流需要管理,維護,和監控,我們該怎麼做?我想以下是我們使用JBPM有幾大理由(到底有幾大我也說不清,只能簡單談談我的看法):
- 要管理工作流,我們必須要有工作流管理系統,但我們應該不會阿甘到想自己開發一套包含有狀態機,有流程控制,流程監管,有資料庫的系統,並且開發出自己的工作流設計語言。
- JBPM能很好的的解釋BPMN設計的工作流,JBPM+BPMN是業界標準,我們必須選用。
- JBPM是一個開源專案,雖然介面不穩定,但至少一直在進化,也有完備的文件,背靠開源專案,找幫手不愁.