Skip to main content

JBoss BRMS - 最佳化流程實作層(Process Implementation Layer)的小技巧

Eric 曾經寫過一些Migration 策略,也較仔細地看過各個流程層面的應用,和提供jBPM 的最佳化建議。以上都是在談論BPM 中特定部分的策略。現在,重新的從一個智能化,整合的企業級系統角度來看,要如何可以更完善的使用JBoss BRMS 去更控制管理你的商業流程呢。


Introduction 簡介
首先,要先把整個BPM 的專案從大的架構往下看,可以大概把整個專案區分成一層一層,像洋蔥一樣不同的層面。從比較仔細的角度去看要怎麼樣建立一個可以有彈性,日後很好維護與擴展的專案。下面的圖一就是表示在一個專案中,可以細分的不同元件的層次,
  • Process Initialization Layer 流程初始層
  • Process Implementation Layer 流程實作層
  • Process Repository 流程儲存庫
  • Tooling for business users & developers 開發人員與普通使用者的工具
  • Console, reporting & BAM dashboards 控制台,報表與 BAM 儀表板
  • Process Interaction Layer 流程交會層

流程初始層 Process Initialization Layer 的部分,提供你,你的顧客之間如何初始化流程的的最佳化的建制方式請參考連結

Process Implementation Layer 流程實作層,是維護流程的位置。普通的使用者與開發的苦命人員可以利用流程儲存庫,工具去設計這些流程。 在這裡你還可以看到實作類,比較細節的內容,像是一些在專案裡面為了要應付特別的node而產生的專業領域的延伸程式。

控制台,報表與 BAM 儀表板元件也是延伸的工具,在專案中通常是用來輔助商業的使用者,提供有商業價值的資訊,讓他們可以利用這些資料下出正確的商業決策。這個之後再來談。

最後,Process Interaction Layer 流程交會層,這一層你的流程將會實際地去連接不同的legacy系統,辦公室系統,服務層,商業邏輯系統,或是一些其他第三方的系統與服務。請期待它的Best Practice

Process Implementation Layer 流程實作層


這一層專注在你的商業流程設計,客制的在流程中的action, 還有因應你的需求所衍生擴展出來的流程。 藉由採用標準的BPMN 2 去設計和執行流程讓在商業流程管理的架構上免去很多在這一層會遇到的鳥事。強迫流程引擎使用以及支援BPMN2 這個標準讓你在設計流程時,必須遵循一定的規則,才不會導致流程變得雜亂無章,無法管理。


Knowledge Sessions (這個我不想翻,因為我找不到合用的中文)

在JBoss BRMS 商業流程管理(BPM)的元件中,有一個特別有趣讓流程的架構以及它的擴展度可以變的非常有彈性。這就是 Knowledge Session (KS)的概念,特別是Stateful(有狀態的) Knowledge Session (SKS).。這個專門用來儲存你的流程資料,像是執行的data 以及一個專門執行你的流程特定的instance. 

當執行一個以商業規則為架構(rule-base)的應用程式,通常都是跑一個單一的 KS (注意,不是stateful 的呦!),在那個單一個KS裡去利用你的rule 去跑你的data (資料)。 如果是 SKS 與流程,那每個instance 都要有一個獨立的SKS了。 我們可以把這些功能包成一包,放到一個服務裡面,這樣才可以達到concurrent (同時很多個並行)的效果,讓流程instance 的生命週期管理更簡單。 在這個service 裡面,你可以順便看需求去內建一個同步或是非同步的商業活動管理(BAM) 的事件產生器。




Conclusion 結論

以上大概把商業流程管理(BPM)的架構說明了一下,還有解說了不同階層之間的關係與互動。我們稍微看了一下流程實作層 (Process Implementation Layer) 的最佳化小技巧。主要是SKS, 我們建議不要只是用,而是在單一服務下管理流程instance的生命週期。在這個之外,這裡是一個幫你的分流 BAM event 的負載很好的一個起始點。接下來還會有更多的文章討論流程交會層(Process Interaction Layer ),流程儲存庫(Process Repository ),工具還有報表BAM層喔。敬請期待。

Part 1Part 2, Part 3


Comments

Popular posts from this blog

Fuse Integration Service - Setup JBDS and create first quickstart application

Before we go and start creating our first application, I want to show you how to setup your JBoss Developer Studio, create a small application from the quickstart example and then running it on Fuse Integration Service.

I am using JBoss Developer Studio version 9, you can find it here.
After download the

jboss-devstudio-9.0.0.GA-installer-eap.jar
double-click it, and start installing with default values.

After successful installation, we will need install the plugins for Fuse, on JBoss Central view, select software update, select enable early access.


And select JBoss Fuse Development for the plugin,


Click on install, and we are all set to go!

First thing first, we want to create a Fuse project to deploy on the base of Fuse Integration Service, which is OpenShift. If you have not installed it, please go back to my previous post for instructions. So on your JBDS, right click and start creating the project. Select new, maven project, if you have installed the plugin correctly, you should …

RHTE - Supercharge your integration services

Red Hat Tech Exchange has taken place in Vietnam, Ho Chi Minh city two weeks ago, it is a great event held by Red Hat in Asia Pacific Region. It is open to all Red Hat partners who are interested in learning what Red Hat is doing recently, see what the trend of the open source world, basically it is a great event to share your knowledge and experience, to meet other enthusiastic people.

I am very fortunate to talk in this great event, to talk about the things I have been working on and even discuss it with many. Also got lots of great ideas too. So here are the slide.

My first talk was with Thomas Qvarnström about how to handle large size data in JBoss Fuse and how JBoss Data Grid can help in the situation.

Here is the agenda of the talk, we will be talk about this in the up coming webinar on 24th Sept.

Integration often involves storing, retrieving, and transforming data. Using a traditional database in your integration is likely to becomes a bottleneck that is expensive and hard to …

Red Hat JBoss Fuse/A-MQ - Fuse and A-MQ Version 6.3 GA is released!

Fuse and A-MQ 6.3 GA has just went out. Maybe, you would think this is just only a minor version release why should I care? Hold your thoughts on that! Because they have done a lot of improvements and also added many new features into this release.

Besides various bug fixes and making sure Fuse Fabric is much more stable. There are two major change in this version update:

New Tooling in JBoss Developer Studio (JBDS) 9.1 GA. Newer Apache Camel version – Camel v2.17. I was really impressed by the work put in to make developing Camel application much simpler. First is the installation of tooling itself. Now it has a all-in-one installer so you don't need to worry about which plugins you need to check. See the videos below to see the new "Getting Started" of Fuse 6.3.



And If you notice from the above video, the presentation of camel route in JBDS has also updated. It fixed some of the miss representation of logic and making it easier to read.

Old Camel Route
New Camel Route
On …