2013年8月5日 星期一

JBoss ESB Sample - Math Service by Mutil Service

因應需求會有多個 Service 運作後再傳送至 JMS-Topic 再由多個接收端(Application System)接收訊息,因此規劃如下圖的架構,當 JMS Client 傳入二個數字後,會對這二個數字做 +、X 法的運算,只要有 Application System 須要知道運算結果即可接收 Result-Topic 的訊息來獲得運算式的結果。
  • Math Service:這一層為 Mutil Service ,因應需求可再擴充 Service ,此 Sample 只定義二個 Service 來示範;這裡是採用JBoss SOA Web Service - Math Sample 裡的+、-、X、/ 運算。
  • Input-Topic:配合 Mutil Service 因此採用Topic ,相較於採用 Queue 因考慮到 Mutil Service 擴充時可避免還要新增 Input 這一層。
  • Notify Service:ESB Service 的輸出,這個 Sample 共有三種輸出,Log 類型 Console-Log、File-Log,JMS 類型 Result-Topic 也是主要的輸出方式配合會有多個系統獲取運算結果的需求。

準備執行環境

預設JBoss SOA/ESB 5.0 及 MySQL Server 5.1 已配置這裡不再贅述,如要更換 SOA/ESB 配置的 Database 可參考另一篇:JBoss SOA/ESB DataSource Configuration using MySql
  • JBoss SOA Server 5.0.2.GA+
  • JBoss ESB Server 4.10+
  • MySQL Server 5.1
  • Apache Ant 1.8.2+

%JBOSS_HOME%設定為 JBoss SOA 的路徑jboss-soa-5.0\jboss-as,須跟JBoss EAP做區別。
這個 Mutil Service Sample 會參考 JBoss SOA - Quickstarts 的相關案例,關於 Quickstarts 的佈署可參考 JBoss ESB Sample quickstarts - HelloWorldQuickstarts相關的案例說明如下,需要進一步了解可先參考。
  • jms_topic:主要架構,以 Topic 為對外接口,並有 Mutil Service 接收 Topic 訊息。
  • helloworld_topic_notifier:以 Topic 為輸出。
  • webservice_consumer1:Action 如何呼叫 Web Service。