Skip to main content

Posts

Showing posts from July, 2013

JBoss FSW - SwitchYard 先睹為快

因為要參加這次JavaTwo 2013的大會,本來想說隨便拿個講過的東西,再講一次就可以了,可是這樣好像沒有什麼誠意,所以,我就很天才的決定把在國外也還沒有正式發佈的 JBoss SOA 6 拿出來講。讓台灣的大家也可以看到最新的東西,而不是每次都要等米國出了N個月後,才慢慢有人翻譯。

可是真是何苦啊~這樣我就要開始研究這個還沒有正式發表的平台咧~
既然我都研究了,就寫著唄~

(注意,因為所有的內容都是非正式版的,所以跟之後的正式版一定會有出入,目前測試結果,Eclipse 整合上還有些問題,所以還會有一些莫名其妙的小bug~ )

SOA 6 裡面分成三大塊元件,


工具的部分,包含JBoss Developer Studio 的開發工具plugin, 還有本身結合JUnit 的測試工具,可以用來測試SOA的單個元件。
SwitchYard 是 SOA 主要設計,執行的平台,簡單來說,就是個ESB (Enterprise Service Bus 企業服務匯流排). 裡面還結合了Apache Camel 來做規則的routing(路由),與整合引擎。
負載監控,監控不只是Runtime在跑的時候的,還有設計時候的版本監控等。
SwitchYard 的畫面,
Composite(組合) - 定義單一一個應用程式的界限 。就是上圖最大塊的藍色部分,每一大塊組合就是一個單一的應用程式。
Component(元件) - 放置應用程式邏輯的容器。

Implementation(實作) - 把 智慧邏輯/行動邏輯 加到元件裡,裡面可以用很多不同的應用,例如說Java的程式,如果是Routing 的部分可以用Camel 去做,Camel 可以用java 或xml 的方式。 也可以直接呼叫 JBPM 跟 Drools 的 rule. (甚至可以幫你管理Knowledgebase),也可以是Web Service的 BPEL 呼叫 
Component Service(元件服務) - 將元件實作的服務內容揭露給其他應用程式裡面的服務使用,通常都會在component(元件) 裡面左邊的綠色小箭頭。


Composite Service(組合服務)- 是由元件服務升級上去的,揭露給應用程式外的其他程式使用


Service Bindings(服務綁定) - 設定外部的consumers如何…

JBoss BRMS - 製作自動BPM流程

在閱讀這張之前,請先安裝好JBoss BRMS 5.3.x,因為先前寫過,就不再重複。
有需要的朋友,可以到先前安裝的文章, 安裝BRMS 到 EAP 6.x

JBoss BRMS 裡面的流程,是由JBoss 社群裡面的jBPM專案組成的。這一版的jBPM前身是Drools Project 裡面的Drools Flow出來。跟jBPM 3 是完全不同的核心。 好拉,講古就講到這裡。 來看一下 JBoss BRMS 的 jBPM吧。。

首先。先來看看JBoss BRMS 裡面跟jBPM相關的有三大塊,


BPM 引擎, 負責建立每個執行的Session, 與呼叫外部任務(包含人工作業),在BRMS 裡面會出現的方式,一, 包在你程式裡面的引擎(jbpm的jar檔),二, BRMS裡面內建提供的Business Central Web 系統。任務伺服器 Task Server, 負責人工作業的產生,管理Task 的LifeCycle. BRMS裡面的一個WAR檔。需要資料去儲存目前Task的狀態。流程定義儲存庫,定義的部分在BRMS裡面可以靠,一,JBoss Developer Studio 拉選,二,使用BRMS裡面的 JBoss BRMS 控制台。可以儲存於檔案,或是資料庫。



這次我們先建立最簡單的流程,後面我在陸續,更細部的介紹。先把一個流程跑起來再說。
因為只是個小小的流程,所以這次暫時不會跟Task Server 有聯結。日後會陸續介紹。

首先,登入我們的JBoss BRMS 的控制台,

1. 建立一個Package
首先請登入JBoss BRMS 的 控制台 http://jboss-brms
到左邊的Knowlege Base下,選擇新增Package, 叫做com.demo



2. 建立一個BPMN2.0

於 Create New 的地方選擇 New BPMN2 Porcess, 下個畫面輸入myfirstBP, 記得把Package 選在剛剛建立的那個com.demo上喔。


3. 拉一個會說Hello World 跟 Goodbye World 的小流程。

請到左邊的選單中把Start Event拖到中間的空白頁上。

把滑鼠滑倒start node的上面後,會出現一些小圖,選擇空白方筐
滑鼠點選剛剛建立的Task, 設定這個新增的node 是Scrip…