Skip to main content

Posts

Showing posts from February, 2014

Red Hat JBoss Fuse/A-MQ - Fabric 建立與設定。

因為一些關係,這幾天花了一些些時間看JBoss Fuse, 然後那個Data Grid 只好往後延了~科科 (現在排隊的TODO 清單實在是太多了..,有人要來幫我的忙嗎?不然我都沒空去逛街,都快變成黃臉婆了.. )!

基本上Fuse 的架構病不複雜,Fuse 的底層並不是大家熟悉的EE, JBoss Fuse 基本上就是等於一個ESB. JBoss Fuse 為了最輕量化,所以底層使用OSGI 模組化的Container,而不是Java EE 這種大的,整包的Container.

Fuse 的架構比較特別的是它上面有個叫做Fabric的元件。特別對它研究了一下。 之後再慢慢補上Camel 還有 A-MQ 的部分。

Fabric 是啥鬼?Fabric 是拿來管理用的。所以也適用A-MQ. 根據定義,這時,首先到腦子裡的,就是為啥要管理,有什麼好管理的呢?在Fuse 上,你可以啓動Camel 和 A-MQ 的instance, 想當然爾,就會有很多"設定",因為Fabric 統一管理了上面的設定,所以它就可以幫助橫向擴展的部署你的Fuse 或是 A-MQ 的Container(容器)了,像是遠端安裝,開啓,分配Container(容器) 的設定,負載平衡(Load balance),容錯(Failover)甚至可以讓你做到程式版本上線rollout. 所以一個Fabric就是一個管理範圍的定義。



以上的設定,就以註冊的方式被納入管理,Fabric 是透過Apache 的ZooKeeper 做到可以再分散的環境記錄所有叢集跟分散的設定內容,讓你可以橫跨網路去部署跟建置整個環境。它在Fuse 與 A-MQ 裡面就叫做Registry.



以上講的註冊只是儲存資料內容,那由誰去負責提供這些資料出去給整個Fabric 管理範圍裡面的Container 容器呢?就是 Fabric 伺服器 (server) ,每個Fabric 伺服器都有自己獨立的一套註冊的內容,他們之間會自動互相的同步修改的內容,一個Fabric 管理範圍,通常Fabric 伺服器都是要單數的,因為Fabric 計算是用 quorum-based 的計算公式方式。通常在一個正式環境,Fabric server 的數量最少最少都要三台來備援。


以上所有的設定啊,管理什麼的,都是為了真正可執行…

題外話- 在Mac OS X 上面切換不同 Java 版本

因為最近同時要看好多不同的版本的JBoss BPMS, EAP, Fuse 等等... 發現就會碰到Java SE 7 的BUG,等不及Orcale 修復了,所以不得不切回 Java SE 6, 但是有時,又需要切回 Java SE 7 去測試校能等等..

我那個在Ubuntu 工作有強力系統潔癖的工程師老公,看到我切來切去,就回我一句,你不會弄好幾個VM 然後裝我們家的Ubuntu 分不同的VM去測就好了喔~ 這樣你的OS 才不會一團亂啊...!
但是,這不是VM 的問題啊~ 我喜歡在Mac 的環境下工作咩,不然我花大錢買Mac 是幹嘛?錢多喔!! 所以,他的建議馬上就被我丟到垃圾桶去了。

這裡註記一下怎麼切換,所以我下次才不會忘記。我不知道這是不是最正確的做法拉,可以提供參考。

要知道現在的電腦裡有哪些版本的Java 請打

/usr/libexec/java_home -V




如果你想用某幾個版本的Java SE, 不用我教你吧,請自己去Oracle 的官網上下載。下載安裝之後,如果你以為這樣就結束了,那就不用有這篇了吧~

所以,要看目前的Runtime 請直接打 (這應該大家都會吧 ... )
java -version

他就會顯示目前你的default Java 執行環境。
要把default 的java 連結改過去,
先到 /usr/bin 下面,看一下java 的連結在哪裡,

cd /usr/bin/
ls -ln java







發現還是在舊的,所以請砍掉這兩個連結,

sudo rm -f java
sudo rm -f javac

直接連結到剛剛安裝的Java SE 版本路徑下
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.x.x_x.jdk/Contents/Home/bin/java java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.x.x_x.jdk/Contents/Home/bin/javac javac



這樣再去執行
java -version 就會發現已經改好了。


還沒完~如果你跟我一樣有設定JAVA_HOME的話,記得去把位置改一下

vi ~/.bash_profile 

裡面把JAVA_HOME的位置改掉就好囉!

export JAVA_HOME…

Red Hat JBoss BPM Suite - 使用SSH 操作 GIT 專案

原作: Red Hat JBoss BPM Suite - access GIT project using SSH
===============================================================================

自從上週Red Hat JBoss BRMS 與 Red Hat JBoss BPM Suite v6 專案正式發表後,這是我最常被問到的問題。

本文會用JBoss BPM Suite 當作主要的範例,JBoss BRMS 做法上也是一樣的。 所以下面的解答適用在兩個產品上。

因為這次開發跟部署的儲存庫底層都改成GIT了。

如果我們仔細點看一下JBoss BPM Suite 的架構,可以看到聯結商業使用者和開發團隊的儲存庫就是一個GIT 的儲存庫。

一般的流程會有一個商業分析師使用 JBoss BPM Suite 網路的GUI 工具中的 Model designers (模型設計), process designers (流程設計), 和不同的 rule designer (規則設計) 設計內容,並將其整合成一個專案。開發者在以上的工作做完或是在同時的時候開發應用程式,並同時幫忙商業分析師。

以前我們在測試跟使用Beta版的時候,我們用的是沒有安全機制的 GIT 通訊協定, 所以你可以不用認證就將內容clone 跟 push 到儲存庫裡。所以看起來會像下面的 Generic Loan Demo範例,複製一個只能讀的專案到本地端。






$ git clone git://localhost/bpms-generic-loan Cloning into 'bpms-generic-loan'... remote: Counting objects: 266, done remote: Finding sources: 100% (266/266) remote: Getting sizes: 100% (213/213) remote: Compressing objects: 51% (110/212) remote: Total 266 (delta 22), reused 133 (delta 19) Receiving objects: 100% (266/266), 47.97 KiB…

JBoss Data Grid - 獨立的HotRod Server

新年快樂!差點被日本的大雪困住,但是還好平安回到台灣來了。
是說我在日本看到這個很酷的茶,有買一罐來喝~老實說... 真的很普通..
(我是在早上去築地市場吃壽司的那個車站買的.)


我還是喜歡Starbucks 的 星冰樂+Java Chip .. 什麼都要給他Java 一下就對了.. 哈哈
======================================================

這次的範例跟先前其實差不了多少,只是之前是使用JBoss Data Grid Server。JDG 其實是很有彈性的,它可以內嵌在伺服器裡面像是JBoss EAP 本身就內建了Infinispan,可以很像之前獨立幫你寫好的Server,也可以獨立寫一支程式去啓動(看你的需求再把它放到Server上)。

這次的範例的Cache 存取就簡單一點了。

1. 老樣子,先建立一個Maven的Project,


選擇Create a simple project.


輸入你的Group,Artifact ID,Version 還有Name... 
Group ID: org.christina.blogdemoArtifact ID: hotRodServerSamplePackaging: JAR Name: HotRodServerSample
按下完成。左方就會出現以下的專案。



2. 在寫程式之前,先去到Red Hat 網站下載把maven 的程式庫下載下來,

下載之後,請將檔案解壓縮到你的電腦的某處,(神奇的 Windows 使用者們,路徑請不要放有空格,特殊符號像是 _,-, 下喔...)
3. 設定POM, 我們要先把檔案指到我們剛剛安裝好的Maven程式庫,並且把需要用到的程式庫設定上去。pom.xml 內容如下: 4.0.0org.christina.blogdemohotRodServerSample0.0.1-SNAPSHOTHotRodServerSampleUTF-86.0.0.CR11.71.7org.infinispaninfinispan-core${version.org.infinispan}org.infinispaninfinispan-server-hotrod${version.org.infinispan}org.infinispaninfin…

JBoss Developer Studio 7 - 如何安裝 SOA 工具 (BRMS 範例)

新年快樂,剛剛放假回來趕快翻譯一篇。
今年最大的希望就是身體健康!!
強烈建議大家有空去看一下Eric 的 Blog, 有想要快點翻譯的可以先MSG我囉.. 

原文網址:JBoss Developer Studio 7 - how to setup SOA Tools (BRMS example)
=============================================================================
這篇是更新文,你可以在文章的最下方找到原先的文章
JBoss Developer Studio (JBDS) Integration(整合) & BPM 工具的正式版終於問世了。 

現在被集中整理在你的JBDS 7.1中間的那個JBoss Central標籤中。 圖1 中你可以看到,如果你按下JBoss Central 中最底下的Software/Update 標籤,你就可以找到所有產品的工具. 選擇你想要的工具旁的複選小框框即可。


所以下面所有紅帽的產品,你已經不用像以前一樣,一個一個的下載囉。
JBoss Business Rules Management System (BRMS),JBoss BPM SuiteJBoss FuseJBoss A-MQJBoss Data Virtualization (JDV)JBoss Fuse Service Works (FSW)
原先的文章還是可以用,但是需要你自己多花一些功夫手動去做,所以,建議用上面那個方法吧。

======================================================================
原文: 11 April 2013
繼續 "如何安裝與設定JBoss BRMS / SOA 產品工具在你的JBoss Dev Studio (JBDS) " 系列  這裡提供的是目前最新的JBDS version 7 (譯著: 現在是7.1了) 

以下的Plugin 與更新網站提供的 BRMS 與 SOA t工具是還在開發中的元件,所以這點要注意一下。