JBoss BRMS最佳实践– BPM流程初始化层的提示
介紹
首先,我們需要仔細(xì)研究景觀(guān),然后像洋蔥一樣剝開(kāi)圖層,仔細(xì)研究如何提供可擴(kuò)展的BPM項(xiàng)目。 圖1顯示了我們需要集中注意力的幾個(gè)組件層:
- 流程初始化層
- 流程實(shí)施層
- 流程資料庫(kù)
- 業(yè)務(wù)用戶(hù)和開(kāi)發(fā)人員的工具
- 控制臺(tái),報(bào)告和BAM儀表板
- 流程交互層
|
本文將介紹流程初始化層,在此我將向您介紹一些最佳實(shí)踐,圍繞您,您的客戶(hù)以及如何啟動(dòng)流程。
在流程存儲(chǔ)庫(kù),工具,業(yè)務(wù)用戶(hù)和設(shè)計(jì)流程的開(kāi)發(fā)人員的幫助下,流程實(shí)現(xiàn)層是維護(hù)流程的地方。 在這里,您還將找到各種實(shí)現(xiàn)細(xì)節(jié),例如特定領(lǐng)域的擴(kuò)展,以涵蓋我們項(xiàng)目中特定節(jié)點(diǎn)的類(lèi)型。 稍后將介紹該層的最佳實(shí)踐。
控制臺(tái),報(bào)告和BAM儀表板組件是項(xiàng)目中使用的擴(kuò)展工具,用于提供可用于影響業(yè)務(wù)決策的業(yè)務(wù)價(jià)值或信息。 稍后將介紹該領(lǐng)域的最佳做法。
最后,在流程交互層中,您的流程將連接到各種形式的遺留系統(tǒng),后臺(tái)系統(tǒng),服務(wù)層,規(guī)則系統(tǒng)甚至第三方系統(tǒng)和服務(wù)。 該領(lǐng)域的最佳實(shí)踐將在以后的文章中介紹。
|
流程初始化層
看一下如何初始化流程,我想向您提供一些我多年來(lái)在大型企業(yè)中看到的最佳實(shí)踐。
似乎有一個(gè)主要主題是收集啟動(dòng)流程所需的客戶(hù),用戶(hù)或系統(tǒng)數(shù)據(jù),然后通過(guò)startProcess調(diào)用將其注入。 可以通過(guò)BRMS jBPM API調(diào)用,使用RESTful服務(wù)或通過(guò)標(biāo)準(zhǔn)Java Web服務(wù)調(diào)用將其嵌入到您的應(yīng)用程序中。 無(wú)論您如何收集數(shù)據(jù)以初始化流程實(shí)例,都可能要考慮從一開(kāi)始就如何擴(kuò)展初始化設(shè)置。 通常,最初的項(xiàng)目設(shè)置時(shí)對(duì)未來(lái)沒(méi)有太多考慮,因此某些問(wèn)題沒(méi)有被考慮在內(nèi)。
顧客
此處定義的客戶(hù)可以是提供初始過(guò)程啟動(dòng)數(shù)據(jù)的人員,系統(tǒng)或某些用戶(hù)。 在圖2中,我們對(duì)客戶(hù)如何提供過(guò)程數(shù)據(jù)進(jìn)行了高層次的研究,然后將這些過(guò)程數(shù)據(jù)打包成一個(gè)請(qǐng)求,以放入一個(gè)過(guò)程隊(duì)列中。 然后,我們可以從隊(duì)列中確定優(yōu)先級(jí),并讓不同的機(jī)制獲取這些流程請(qǐng)求,并使用提供的請(qǐng)求數(shù)據(jù)啟動(dòng)流程實(shí)例。 我們?cè)诖颂庯@示了EJB,MDB和云,它們表示可以用來(lái)清空進(jìn)程隊(duì)列的任何調(diào)度方式。
Queue列
這些隊(duì)列可以像數(shù)據(jù)庫(kù)表一樣簡(jiǎn)單,也可以像消息隊(duì)列一樣完善。 可以按照項(xiàng)目需要的任何方式進(jìn)行設(shè)置,例如后進(jìn)先出(LIFO)或先進(jìn)先出(FIFO)。 使用消息隊(duì)列的好處是,您可以通過(guò)輪詢(xún)機(jī)制確定它們的優(yōu)先級(jí)。
此設(shè)置的原因有兩個(gè)。 首先,您通過(guò)不直接從客戶(hù)界面啟動(dòng)流程實(shí)例來(lái)確保您保留了客戶(hù)請(qǐng)求。 它將永遠(yuǎn)不會(huì)丟失到流程引擎。 其次,您可以對(duì)可能無(wú)法滿(mǎn)足項(xiàng)目要求的未來(lái)流程進(jìn)行優(yōu)先級(jí)排序,例如必須在客戶(hù)提交后10秒鐘內(nèi)開(kāi)始的新流程請(qǐng)求。 如果將其放在需要花費(fèi)一個(gè)小時(shí)才能處理的隊(duì)列的底部,那么您就遇到了問(wèn)題。 通過(guò)對(duì)隊(duì)列進(jìn)行優(yōu)先級(jí)排序,您可以調(diào)整輪詢(xún)機(jī)制以每次以正確的順序檢查適當(dāng)?shù)年?duì)列。
Java /云
圖2中的Java圖標(biāo)代表您可能想用來(lái)處理進(jìn)程隊(duì)列的任何JEE機(jī)制。 它可以是EJB的,MDB的,您自己編寫(xiě)的調(diào)度程序或您想拿出的任何程序來(lái)拾取流程請(qǐng)求。
云圖標(biāo)旨在表示服務(wù),您的軟件可以使用這些服務(wù)來(lái)實(shí)際調(diào)用最終的startProcess方法,以初始化所請(qǐng)求的流程實(shí)例并將其傳遞給初始數(shù)據(jù)。 將與jBPM API的交互集中到一個(gè)服務(wù)中很重要,這樣可以確保在API更改的情況下進(jìn)行最少的工作,以便將來(lái)進(jìn)行可能的版本遷移,并且如果您希望在將來(lái)的項(xiàng)目中進(jìn)行擴(kuò)展,以擴(kuò)展與jBPM的服務(wù)交互。
結(jié)論
本文簡(jiǎn)要介紹了高級(jí)BPM體系結(jié)構(gòu),并列出了交互的各個(gè)層次。 在較大的企業(yè)BPM體系結(jié)構(gòu)中,交互的第一層是初始化層,以提供對(duì)該層內(nèi)最佳實(shí)踐的一些見(jiàn)解。 討論不是試圖推動(dòng)實(shí)現(xiàn)細(xì)節(jié),而是退后一步,介紹在大型BPM體系結(jié)構(gòu)中反復(fù)遇到的一些基本元素。 它涵蓋了客戶(hù)最初提交的處理請(qǐng)求,處理請(qǐng)求的排隊(duì)以及以一致且可擴(kuò)展的方式處理這些隊(duì)列。 在以后的文章中,流程實(shí)現(xiàn)層,流程交互層,流程存儲(chǔ)庫(kù),工具以及報(bào)告和BAM層中還有更多內(nèi)容需要關(guān)注。
參考: JBoss BRMS最佳實(shí)踐–來(lái)自我們的JCG合作伙伴 Eric D. Schabell的BPM流程初始化層的提示, 有關(guān)中間件,Linux,軟件,騎行和其他新聞的思想…博客。
翻譯自: https://www.javacodegeeks.com/2012/08/jboss-brms-best-practices-tips-for-your.html
總結(jié)
以上是生活随笔為你收集整理的JBoss BRMS最佳实践– BPM流程初始化层的提示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 车改色备案需要什么手续(车改色备案)
- 下一篇: 跨站点脚本(XSS)和预防