jboss启动初始页面_JBoss BRMS最佳实践– BPM流程初始化层的提示
jboss啟動初始頁面
我過去發布過一些有關遷移策略的文章,仔細研究了流程層,并提供了一些有關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層中還有更多內容需要看。
流程實施層
這一層的重點是業務流程設計,流程中自定義操作的實現以及流程使用方式的擴展。 在流程設計和執行中采用標準BPMN2消除了BPM體系結構這一層的許多麻煩。 流程引擎被迫遵守并支持BPMN2標準,這意味著您在流程設計過程中只能做些限制。
知識會議
在JBoss BRMS BPM組件中,有一個有趣的事情是構建高度可擴展的流程體系結構。 這是知識會話(KS)的概念,特別是有狀態知識會話(SKS)的概念。 創建它的目的是為了保存您的過程信息,包括數據和過程規范實例。
當運行基于規則的應用程序時,通常的過程是運行單個KS(注意,不是有狀態的!),并且所有規則和數據都將利用該單個KS。 對于一個SKS和流程,我們希望每個流程實例都使用一個SKS。 我們可以將此功能捆綁到單個服務中,以允許并發并簡化流程實例生命周期管理。 在此服務中,您還可以根據需要嵌入最終的同步或異步業務活動監視(BAM)事件生成器。
本文簡要介紹了高級BPM架構,并列出了交互的各個層次。 對實現層進行了檢查,以提供對該層內最佳實踐的一些見解。 SKS的主要重點是我們建議如何在單個服務中使用,管理流程實例生命周期的方法。 在此之上,建議這是卸載BAM事件的一個很好的切入點。 在以后的文章中,流程交互層,流程存儲庫,工具,報告和BAM層中,還有更多內容需要關注。
流程交互層
訪問業務邏輯,后端系統,后臺系統,用戶界面,其他應用程序,第三方服務或您的業務流程需要使用什么來完成工作,一個好的策略可以帶來很多好處。 許多企業正在將這些交互與面向服務的體系結構(SOA)中的服務層隔離,該體系結構提供了靈活性,并且可以很好地擴展可能遇到的所有各種工作負載。 在這里看一下BPM層,我們只想提及其中的一些后端系統,作為如何在企業中優化流程項目的示例。
人工任務
JBoss BRMS BPM體系結構包括一個單獨的人工任務(HT)服務器,該服務器作為實現WS-HT規范的服務運行。 可插拔沒有什么可以通過在服務中公開WS-HT任務生命周期來阻止您在企業中托管另一臺服務器的。 然后,應使用同步調用模型,該模型可以大大簡化默認情況下利用HornetQ消息傳遞系統的標準產品實現。
報告中
您可以實施以提供出色的報告可伸縮性的第二項服務,我們稱為業務活動監視(BAM)服務。 您將使用此服務來集中BAM事件,并使用它來將這些事件推送到可靠且快速的JMS隊列中。 然后,可以使用一臺單獨的機器來托管這些JMS BAM隊列,在不增加BPM引擎本身負載的情況下處理消息,寫入一個單獨的BAM數據庫,通過批量寫入進行優化,并且使用BAM信息的任何客戶端都不會再次放入BPM引擎本身的任何負載。
結論
本文簡要介紹了高級BPM架構,并列出了交互的各個層次。 對交互層進行了檢查,以提供對該層內最佳實踐的一些見解。 您可以創建幾種服務來集中圍繞人工任務和報告的活動。 通過集中人工任務交互,您可以為企業提供標準和可擴展的解決方案。 借助BAM服務,您可以將工作卸載到體系結構中的單獨實體,從而保證這些事件的傳遞以及就流程報告活動而言的一致性能。 在以后的文章中,流程交互層,流程存儲庫,工具,報告和BAM層中,還有更多內容需要關注。
中文譯本由Christina Lin提供。
參考: JBoss BRMS最佳實踐– BPM流程初始化層的技巧 , JBoss BRMS最佳實踐– BPM流程實施層的技巧 , JBoss BRMS最佳實踐–來自我們的JCG合作伙伴 Eric D. Schabell的有關 BPM流程交互層的技巧, 有關中間件,Linux,軟件,自行車和其他新聞的思想 。
翻譯自: https://www.javacodegeeks.com/2012/12/jboss-brms-best-practices-tips-for-your-bpm-process-initialization-layer.html
jboss啟動初始頁面
總結
以上是生活随笔為你收集整理的jboss启动初始页面_JBoss BRMS最佳实践– BPM流程初始化层的提示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 被ddos攻击过的网站(被ddos攻击过
- 下一篇: 记住要重置线程上下文类加载器