Skip to main content

JBoss BRMS - 最佳化流程交會層(Process Interaction 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 流程實作層,可以看一下之前的 part II , 討論有關Stateful Knowledge Session,以及如何優化專案。



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

最後,Process Interaction Layer 流程交會層,這一層你的流程將會實際地去連接不同的legacy系統,辦公室系統,服務層,商業邏輯系統,或是一些其他第三方的系統與服務。這次主要就是討論這一層的架構。

Process Interaction Layer 流程交會層



制定一個好的策略去執行,讀取各個商業邏輯,後端系統,後勤系統,使用者介面,其他應用程式,第三方的服務或是隨便什麼你的商業流程需要用到的東東,有說不盡的好處。很多企業把以上的交會交流中心都放在服務層,利用服務導向的架構(SOA, Service Oriented Architecture) ,所以可以讓不同的系統再整合時擁有很好的彈性以及擴充性。回到商業流程管理的層面,我們稍微看一下其中的幾個後端系統,作為提供如何優化企業流程的範例。

Human tasks 人工作業任務 

JBoss BRMS 商業流程管理(BPM)架構包含了獨立的人工作業任務 (HT) 伺服器,實作WS-HT 這個標準的服務。 因為是可以插拔的方式加入的,所以你可以隨心所欲的在企業中把人工作業任務(WS-HT task)整個的生命週期包在服務中發佈到其他的伺服器上。然後使非同步呼叫的model (invocation model ), 這樣你在實作,與JBoss標準內建JBoss HornetQ 訊息系統的時候,會簡單很多。

Reporting 報表

第二個可以實作的服務叫做Business Activity Monitoring (BAM) 商業活動監控服務,讓報表可以有更大的擴展性。你可以用這個服務去集中化所有商業活動的事件,然後把這些事件都送到更穩定以及快速的JMS 的queue 。另外一台機器用來安裝 JMS BAM的 queue, 或是處理送進來的訊息,這樣就不會影響商業流程(BPM)引擎的效能了。或是另外使用BAM資料庫,跑Batch 或是執行其他用戶端程式去讀去BAM資料,借以優化系統的效能,相同的這樣野不會影響商業流程(BPM)引擎。


Conclusion 結論

以上大概把商業流程管理(BPM)的架構說明了一下,還有解說了不同階層之間的關係與互動。這裡也提供了Process Interaction Layer 流程交會層 的一些最佳化的小技巧。這裡有許多服務可以建立讓你人工作業流程以及報表的任務都集中化。 集中化你的人工作業流程,你可以有更標準以及更可以擴展的企業系統。BAM 服務你可以在自己的架構上把系統的負載分流到另外的地方,因不管有沒有在執行報表,就會保證你的事件會正確送達,同時也可以確保本身流程處理的效能。接下來還會有更多的文章討論流程交會層(Process Interaction Layer ),流程儲存庫(Process Repository ),工具還有報表BAM層喔。



Part 1Part 2Part 3



Comments

Popular posts from this blog

JBoss EAP 6 - 效能調校 (一) DataSource 的 Connection Pool

效能沒有什麼Best Practice, 反正能調整的就那些。 通常,一個程式的效能大概有70-80% 都跟程式怎麼寫的其實比較有關係。

最近我最疼愛的小貓Puji 因為膀胱結石開刀的時候過世了,心情很差請原諒我的口氣沒有很好,也沒有心情寫部落格。

Puji R.I.P.

=======================正文=======================

這個題目很多人叫我寫,可是這題目好大,這分明就是整死我咩~
所以我會分幾段慢慢寫。

JBoss 的 SubsystemDatasource WebWeb Service EJB Hibernate JMSJCAJVM 調校OS (作業系統)

先來看一下 DataSource Subsystem, DataSource 的部分主要是針對Connection Pool 做調校。

通常,程式都會需要跟資料庫界接,電腦在本機,尤其是在記憶體的運算很快,但是一旦要外部的資源連接,就是會非常的耗資源。所以現在的應用程式伺服器都會有個Pool 放一些先連接好的 資料庫connection,當程式有需要的時候就可以馬上提供,而不用花那些多餘的資源去連接資料庫。

這就是為什麼要針對Connection Pool 去做調校。

以下會討論到的參數,都是跟效能比較有關係,Datasource 還有很多參數,像是檢核connection 是否正確的,我都不會提到。如果你追求的是非常快速的效能,那我建議你一個檢核都不要加。當然,這樣就會為伺服器上面執行的程式帶來風險。這就是你要在效能與正確,安全性上面的取捨了。 (套句我朋友說的話,不可能又要馬兒好,又要馬兒不吃草的..)

最重要的調校參數就是 Connection 的 Pool 數量。(也就是那個Pool 裡面要放幾條的connection.) 這個參數是每一個應用程式都不一樣的。

min-pool-size 

Connection Pool 最少會存留的connection 數量

max-pool-size 

Connection Pool 最多可以開啓的 connection 數量

prefill

事先將connection pool 裡面建立好min-pool-size 的connection.

我的建議是觀察一下平常程式要用到的量設定為 min-pool-size 。
加上…

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 …

Red Hat JBoss Fuse - Getting Started with Fuse Integration Service 2.0 Tech preview

I just realized that I did not do a getting started for Fuse Integration Service 2.0 Tech preview before I did the pipeline demo, thanks for those of you who reminded me! :)

To get started with FIS 2.0, for people who has just getting to know the technology, here is how I interpret it. Basically, it's divide into two aspect,

1. Integration development, FIS uses Apache Camel as the core technology that creates, orchestrate, compose microservices into a super lightweight thin integration layer, and become the API provider and service orchestrator through exposing RESTful or messaging service endpoints. And you can choose to either package and run it with Spring-Boot or Karaf.


2. Application Deployment and Management, FIS takes advantages of OpenShift platform, and allows you to separately deploy the micro-integration service among distributed environment, at the same time takes care of the failover, high availability, load balancing and service lookup problem for you.


So, now we know …