JBoss BRMS最佳實踐– BPM流程初始化層的提示

我過去發布過一些有關遷移策略的文章,仔細研究了流程層,并提供了一些有關jBPM的最佳實踐 ,它們都涉及到BPM策略的非常具體的部分。 我想重新討論最佳實踐的主題,然后在智能集成企業級別上,我們討論使用JBoss BRMS對您的業務流程進行控制。

介紹

首先,我們需要仔細研究景觀,然后像洋蔥一樣剝開圖層,仔細研究如何提供可擴展的BPM項目。 圖1顯示了我們需要集中注意力的幾個組件層:

  • 流程初始化層
  • 流程實施層
  • 流程資料庫
  • 業務用戶和開發人員的工具
  • 控制臺,報告和BAM儀表板
  • 流程交互層
圖1:企業BPM格局。

本文將介紹流程初始化層,在此我將向您介紹一些最佳實踐,圍繞您,您的客戶以及如何啟動流程。

在流程存儲庫,工具,業務用戶和設計流程的開發人員的幫助下,流程實現層是維護流程的地方。 在這里,您還將找到各種實現細節,例如特定領域的擴展,以涵蓋我們項目中特定節點的類型。 稍后將介紹該層的最佳實踐。

控制臺,報告和BAM儀表板組件是項目中使用的擴展工具,用于提供可用于影響業務決策的業務價值或信息。 稍后將介紹該領域的最佳做法。


最后,在流程交互層中,您的流程將連接到各種形式的遺留系統,后臺系統,服務層,規則系統甚至第三方系統和服務。 該領域的最佳實踐將在以后的文章中介紹。

圖2:入門。


流程初始化層

看一下如何初始化流程,我想向您提供一些我多年來在大型企業中看到的最佳實踐。

似乎有一個主要主題是收集啟動流程所需的客戶,用戶或系統數據,然后通過startProcess調用將其注入。 可以通過BRMS jBPM API調用,使用RESTful服務或通過標準Java Web服務調用將其嵌入到您的應用程序中。 無論您如何收集數據以初始化流程實例,都可能要考慮從一開始就如何擴展初始化設置。 通常,最初的項目設置時對未來沒有太多考慮,因此某些問題沒有被考慮在內。

顧客

此處定義的客戶可以是提供初始過程啟動數據的人員,系統或某些用戶。 在圖2中,我們對客戶如何提供過程數據進行了高層次的研究,然后將這些過程數據打包成一個請求,以放入一個過程隊列中。 然后,我們可以從隊列中確定優先級,并讓不同的機制獲取這些流程請求,并使用提供的請求數據啟動流程實例。 我們在此處顯示了EJB,MDB和云,它們表示可以用來清空進程隊列的任何調度方式。

Queue列

這些隊列可以像數據庫表一樣簡單,也可以像消息隊列一樣完善。 可以按照項目需要的任何方式進行設置,例如后進先出(LIFO)或先進先出(FIFO)。 使用消息隊列的好處是,您可以通過輪詢機制確定它們的優先級。

此設置的原因有兩個。 首先,您通過不直接從客戶界面啟動流程實例來確保您保留了客戶請求。 它將永遠不會丟失到流程引擎。 其次,您可以對可能無法滿足項目要求的未來流程進行優先級排序,例如必須在客戶提交后10秒鐘內開始的新流程請求。 如果將其放在需要花費一個小時才能處理的隊列的底部,那么您就遇到了問題。 通過對隊列進行優先級排序,您可以調整輪詢機制以每次以正確的順序檢查適當的隊列。

Java /云

圖2中的Java圖標代表您可能想用來處理進程隊列的任何JEE機制。 它可以是EJB的,MDB的,您自己編寫的調度程序或您想拿出的任何程序來拾取流程請求。

云圖標旨在表示服務,您的軟件可以使用這些服務來實際調用最終的startProcess方法,以初始化所請求的流程實例并將其傳遞給初始數據。 將與jBPM API的交互集中到一個服務中很重要,這樣可以確保在API更改的情況下進行最少的工作,以便將來進行可能的版本遷移,并且如果您希望在將來的項目中進行擴展,以擴展與jBPM的服務交互。

結論

本文簡要介紹了高級BPM體系結構,并列出了交互的各個層次。 在較大的企業BPM體系結構中,交互的第一層是初始化層,以提供對該層內最佳實踐的一些見解。 討論不是試圖推動實現細節,而是退后一步,介紹在大型BPM體系結構中反復遇到的一些基本元素。 它涵蓋了客戶最初提交的處理請求,處理請求的排隊以及以一致且可擴展的方式處理這些隊列。 在以后的文章中,流程實現層,流程交互層,流程存儲庫,工具以及報告和BAM層中還有更多內容需要關注。

參考: JBoss BRMS最佳實踐–來自我們的JCG合作伙伴 Eric D. Schabell的BPM流程初始化層的提示, 有關中間件,Linux,軟件,騎行和其他新聞的思想…博客。


翻譯自: https://www.javacodegeeks.com/2012/08/jboss-brms-best-practices-tips-for-your.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371599.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371599.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371599.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

寒假作業二:匯總隨筆

隨筆一:解題思路隨筆二:自學計劃 轉載于:https://www.cnblogs.com/mercuialC/p/6359997.html

跨站點腳本(XSS)和預防

如OWASP網站(https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))所述,跨站點腳本(XSS)攻擊的變種幾乎是無限的。 在這里,我建議使用基于Servlet篩選器的解決方案來清理HTTP請求。 攻…

NoSQL入門第一天——NoSQL入門與基本概述

一、課程大綱 二、入門概述 1.為什么用NoSQL 單機MySQL的年代: 一個網站的訪問量一般都不大,用單個數據庫完全可以輕松應付。      我們來看看數據存儲的瓶頸是什么?        1.數據量的總大小 一個機器放不下時。(現…

隨機森林特征個數mtry matlab,基于隨機森林的特征選擇算法

2.1 算法描述本文提出了一種基于隨機森林的Wrapper特征選擇方法RFFS,利用隨機森林算法的變量重要性度量對特征進行排序,然后采用序列后向搜索方法,每次從特征集合中去掉一個最不重要(重要性得分最小)的特征,逐次進行迭代,并計算分類正確率,最終得到變量個數最少、分類正確率最高…

matlab循環讀取變量,Matlab for 多個變量循環能不能這樣啊 ,求教高手!!!!

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓for a0.003:0.0005:1; b0.002:0.0005:0.9; c0.001:0.0005:0.8;d0.0005:0.0005:0.7;E1a* E_Bone;E2b* E_Bone;E3c* E_Bone;E4d* E_Bone;G1a* G_Bone;G2b* G_Bone;G3c* G_Bone;G4d* G_Bone;%% Integration for cortical bone partsIn…

UVA - 10384 The Wall Pusher(推門游戲)(IDA*)

題意:從起點出發,可向東南西北4個方向走,如果前面沒有墻則可走;如果前面只有一堵墻,則可將墻向前推一格,其余情況不可推動,且不能推動游戲區域邊界上的墻。問走出迷宮的最少步數,輸出…

JavaOne 2012:JavaOne技術主題演講

Mark Reinhold從JavaOne 2012技術主題演講開始。 他說,今年的版本將有所不同,因為它將使用大致相同的示例來說明Java的各個方面,而不是對Java的每個組件進行單獨的單獨介紹。 JavaFX團隊的Richard Bair和Jasper Potts (并與FXExpe…

C語言結構體及函數傳遞數組參數演示樣例

C語言結構體及函數傳遞數組參數演示樣例 注:makeSphere()函數返回Sphere結構體,main函數中。調用makeSphere()函數,傳遞的第一個參數為數組,傳遞的數組作為指針。posted on 2017-07-30 18:42 mthoutai 閱讀(...) 評論(...) 編輯 收…

Maven內部版本號插件–用法示例

假設我們需要向一些工件(jar,war等)添加內部版本號。 在這里,我想演示buildnumber-maven-plugin的用法。 這篇文章基于: http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html http://www.site.lalitbhatt…

Python魔法方法(magic method)細解幾個常用魔法方法(下)

接上文,再介紹最后幾個常用的魔法方法。 關于__dict__: 先上個例子: class Test(object):fly Truedef __init__(self, age):self.age age __dict__魔法方法可以被稱為系統,他是存儲各分層屬性的魔法方法。__dict__中,鍵為屬性名…

AIX下RAC搭建 Oracle10G(六)dbca建庫

AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(六)dbca建庫 環境 節點 節點1 節點2 小機型號 IBM P-series 630 IBM P-series 630 主機名 AIX203 AIX204 交換機 SAN光纖交換機 存儲 SAN T3存儲 大綱流程例如以下: 第一部分&#xff1…

php string slice,substring()與str.slice()區別

當接收的參數是負數時,slice會將它字符串的長度與對應的負數相加,結果作為參數;substr則僅僅是將第一個參數與字符串長度相加后的結果作為第一個參數;substring則干脆將負參數都直接轉換為0。測試代碼如下:var test h…

JavaOne 2012:掌握Java部署

在吃完一次JavaClass 2012午餐會的意大利經典組合后,我前往希爾頓帝國宴會廳B觀看了演示“掌握Java部署”。 來自Oracle的發言人是Mark Howe和Igor Nekrestyano Howe表示,部署團隊的目標是幫助Java開發人員將其應用程序部署到所選平臺。 他首先討論了“功…

數組刪除奇數編號的數據求最后的元素

//abcd...s 這19個字符循環106次成一個長度2014的字符串&#xff0c;然后刪除第奇數個&#xff0c;得到小串&#xff0c;再刪&#xff0c;最后的字符是&#xff1f; #define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> #include<windows.h> #include<string.…

php 提高吞吐量,如何提高網站的吞吐量

吞吐量定義百科吞吐量是指對網絡、設備、端口、虛電路或其他設施&#xff0c;單位時間內成功地傳送數據的數量(以比特、字節、分組等測量)。以上的定義比較寬泛&#xff0c;定義到網站或者接口的吞吐量是這樣的&#xff1a;吞吐量是指系統在單位時間內處理請求的數量。這里有一…

ubuntu下如何查找某個文件的路徑

1.whereis 文件名 特點:快速,但是是模糊查找,例如 找 #whereis mysql 它會把mysql,mysql.ini,mysql.*所在的目錄都找出來. 2.find / -name 文件名 特點:準確,但速度慢,消耗資源大,例如我想找到PHP.ini的準確位置,就需要用 #find / -name php.ini 3.locate 文件名 強力推薦的方…

事件的學習

1.鼠標單擊事件( onclick &#xff09;: onclick是鼠標單擊事件&#xff0c;當在網頁上單擊鼠標時&#xff0c;就會發生該事件。同時onclick事件調用的程序塊就會被執行&#xff0c;通常與按鈕一起使用。 <!DOCTYPE HTML> <html> <head> <meta http-equiv…

使用您自己的規則在Eclipse中自定義PMD

PMD是非常好的Java代碼掃描程序&#xff0c;可幫助您避免潛在的編程問題。 它可以輕松擴展以滿足您的需求&#xff0c;并且本文將為您帶來與JPA的Enumerated注釋用法相關的自定義PMD規則的簡單示例。 在繼續閱讀之前&#xff0c;您應該檢查我以前的文章之一-JPA-Enumerated def…

切換oracle用戶impdp,Oracle 12c pdb使用expdp/impdp導入導出

12c推出了可插拔數據庫&#xff0c;在一個容器cdb中以多租戶的形式同時存在多個數據庫pdb。在為pdb做數據泵導入導出時和傳統的數據庫有少許不同。1&#xff0c;需要為pdb添加tansnames2&#xff0c;導入導出時需要在userid參數內指定其tansnames的值&#xff0c;比如 useridus…

搭建mysql集群,使用Percona XtraDB Cluster搭建

Percona XtraDB Cluster提供的特性有&#xff1a;1.同步復制&#xff0c;事務要么在所有節點提交或不提交。2.多主復制&#xff0c;可以在任意節點進行寫操作。3.在從服務器上并行應用事件&#xff0c;真正意義上的并行復制。4.節點自動配置。5.數據一致性&#xff0c;不再是異…