使用 WebSphere Message Broker 的 WebSphere Transformation Extender 外掛
簡介: 本文通過示例向您展示如何設計一個 WebSphere Transformation Extender 轉換對映,並將其整合到 WebSphere Message Broker 訊息流中。
Integration Server 的 IBM® WebSphere® Transformation Extender(以下稱為 WebSphere TX)通過在處理節點中嵌入 WebSphere TX 引擎擴充套件了 WebSphere Message Broker(以下稱為 Message Broker)的轉換訊息能力。您可以使用 Message Broker Toolkit 中的 WebSphere TX 外掛節點,輕鬆配置一個呼叫 WebSphere TX 對映的訊息流來執行復雜的資料轉換和驗證任務,這樣您就得到了一個資料轉換和業務連通性的整合解決方案。以下是 WebSphere Message Broker 的 WebSphere Transformation Extender 外掛的幾點優勢:
- WebSphere TX 引擎向更廣泛的訊息格式和協議提供功能強大的轉換和驗證功能。
- 讓您在廣泛的行業標準(包括金融服務、醫療保健、保險、EDI 等等)中利用 WebSphere TX Industry Pack 提供的預定義資料格式。
- 給 Message Broker 使用者一個使用者友好的、無需編碼的 WebSphere TX Type Designer 和 Map Designer 介面,使其可以較為容易地配置和視覺化複雜資料型別和對映。
- 將格式轉換複雜性與業務流邏輯分開,從而增強開發團隊工作效率。讓熟悉業務邏輯的成員可以將注意力集中在設計 Message Broker 訊息流上,而資料格式專家可將注意力集中在 WebSphere TX 節點的格式對映上。
要使用本文中的樣例,您需要將以下產品安裝在您的 Windows 機器上:
- WebSphere MQ V7.0.1 或更高版本。
- WebSphere Message Broker V7.0 或更高版本。
- WebSphere Message Broker Toolkit V7.0 或更高版本。
- WebSphere Transformation Extender Design Studio V8.3 或更高版本。
- WebSphere Transformation Extender for Integration Servers V8.3 或更高版本。
本節將向您展示如何建立 WebSphere TX 型別樹和對映,使 WebSphere TX Design Studio 可以將 CSV 輸入資料轉換成 XML 輸出資料:
John Smith,222-2222,25 park st.,Heaven City,Univor State,222 |
清單 2. XML 輸出資料樣例
|
- 開啟 Message Broker 工具箱,然後選擇一個新目錄作為您的工作空間。工具箱開啟之後,從右上角切換至 Transformation Extender Development 透檢視:
圖 1. Transformation Extender Development 透檢視
- 建立一個 WebSphere TX 專案:
- 從選單欄選擇 File => New => Project。
- 選擇 Transformation Extender => Extender Project => Next。
- 在專案名稱中輸入 dwSample,然後單擊 Finish。
- 通過匯入 XSD 建立輸出 XML 型別樹:
- 在 Extender Navigator 中右鍵單擊 Type Trees,然後選擇 Import => XML Schema。
- 在彈出視窗中瀏覽並選擇提供的 xsd 檔案 AB.xsd,然後單擊 Next。
- 保留所有的預設設定(western / Xerces / None),然後單擊 Next。
圖 2. XML Schema Importer 對話方塊
- 選擇 dwSample 作為父資料夾,輸入資料夾名 “AddressBook.mtt”,然後單擊 Next。
- Importer 開始驗證架構,應該會顯示零個警告或錯誤,並顯示訊息 “Type tree created successfully”。單擊 Finish 完成 XML 架構匯入。
- 在彈出的資訊提示中,選擇 Yes 開啟型別樹。
- 在選單欄中,選擇 Tree => Analyze => Structure and logic 來分析型別樹。您將在 Analyze Results 檢視中看到零個警告和錯誤,如果看到警告,忽略它們。
圖 3. AddressBook 型別樹分析結果
- 儲存型別樹。
- 在 Extender Navigator 檢視中右鍵單擊 Type trees 並選擇 New => Type tree。然後選擇 dwSample 作為父資料夾,輸入檔名 addressCSV,然後單擊 Finish:
圖 4. 從 Extender Navigator 檢視中選擇型別樹
- 向型別樹新增條目:
- 在最新建立的 addressCSV 型別樹上,右鍵單擊 Root 並選擇 Add => Yes。
- 在 Extender 屬性皮膚中,在 Name 欄位輸入 “name”,在 Class 欄位選擇 Item,在 Item subclass 欄位選擇 Text,如下所示:
圖 5. 姓名項屬性配置
- 重複以上步驟,增加其餘五個條目,電話、街道、城市、國家和郵政編碼。所有這些屬於 Item 類和 Text Item 子類。您的型別樹看起來應該是這樣的:
圖 6. addressCSV 型別樹
- 向型別樹新增組:在型別樹編輯皮膚上,右鍵單擊 Root 並選擇 Add => Yes。在 Extender 屬性皮膚中,輸入以下所示屬性:
- 在 Name 欄位輸入 rec,在 Class 欄位中選擇 group。
- 在 Group subclass 欄位之下的 Format 欄位中選擇 Explicit。
- 在 Component Syntax 欄位中選擇 Delimited。
- 在 Group subclass => Format => Component syntax 之下的 Value 欄位中輸入 “,”(逗號)。
圖 7. rec 組屬性配置
- 在 Type 樹編輯皮膚中雙擊 rec,調出一個空的元件皮膚:
圖 8. rec 組的空元件皮膚
- 將其餘條目按下列順序從型別樹拖放到元件皮膚:姓名、電話、街道、城市、國家、郵政編碼:
圖 9. 將條目拖放到 rec 組的元件皮膚
- 儲存元件皮膚。
- 在選單欄,選擇 Tree => Analyze => Structure and logic 來分析型別樹,您在 Analyze 結果檢視中應該看到零個警告和錯誤:
圖 10. addressCSV 型別樹分析結果
- 儲存型別樹。
- 在 Extender 導航器中右鍵單擊 Map files 並選擇 New => Map source。在彈出對話方塊中選擇 dwSample 作為父資料夾,輸入 addressMap 作為 File name,然後單擊 Finish。
- 在 Outline 皮膚中右鍵單擊 addressMap,然後在 Map 名稱欄位選擇 New、input csv2xml 並單擊 OK:
圖 11. 建立一個新對映
- 右鍵單擊 Input cards 並選擇 New。在 New 輸入卡對話方塊中,輸入如下所示屬性並單擊 OK:
- 在 CardName 欄位輸入 “csv”。
- 在 TypeTree 欄位選擇 addressCSV.mtt。
- 在 Type 欄位選擇 rec。
- 在 FilePath 欄位輸入 “input.csv”。
圖 12. Input Card 配置
- 右鍵單擊 Output cards 並選擇 New。在 New 輸出卡對話方塊,輸入如下所示屬性並單擊 OK:
- 在 CardName 欄位輸入 xml。
- 在 TypeTree 欄位選擇 AddressBook.mtt。
- 在 Type 欄位選擇 Doc。
- 在 FilePath 欄位輸入 output.xml.
圖 13. Output Card 配置
- 在 Map Editing 皮膚上,執行以下操作:
- 將名稱、電話、街道、城市、國家和郵政編碼欄位從輸入卡拖放到輸出卡相應的欄位。
- 在輸出卡上選擇 version 欄位,輸入 ="1.0",然後按下 Enter (您必須按住 Enter 直止生效)。
- 在 encoding 欄位和 standalone 欄位輸入 =NONE(全部大寫)。
圖 14. 對映規則配置
- 儲存對映。
- 在選單欄選擇 Map => Build 來建立對映。
- 直接將提供的檔案 input.csv 放在專案工作空間下面。
- 在選單欄選擇 Map => Run 來執行對映。您可以看到成功完成對映的對話方塊:
圖 15. 成功完成對映
- 驗證 XML 輸出結果:在選單欄選擇 Map => View run results。在彈出視窗中,檢視 #1 XML:
圖 16. 檢視 XML 輸出結果
檔案內容應同上述清單 2 中的 XML 內容一樣。
用 WebSphere TX 外掛節點建立一個 Message Broker 流
既然您已經建立了 WebSphere TX 型別樹和對映,接下來就要在 Message Broker 訊息流中配置和執行 WebSphere TX 對映。您將配置一個流,從 MQ 輸入佇列中取出 CSV 格式訊息,用 WebSphere TX 對映來將訊息流轉換為 XML,然後放在 MQ 輸出佇列中。
MQ 配置 | Queue Manager | MYMQ |
Input Queue | Q.IN | |
Output Queue | Q.OUT | |
Broker 配置 | Broker Name | MYBROKER |
---|
本節將向您展示如何使用命令建立 MQ 元素和代理。您也可以使用 Broker View Toolkit 建立代理。
- 開啟 Windows Services 對話方塊:選擇 Start => Run 並輸入 services.msc。確保 IBM MQSeries 服務如開始所示。
圖 17. 啟動 IBM MQSeries 服務
- 開啟 Message Broker 命令控制檯:選擇 Start => All Programs => WebSphere Message Broker V7。執行以下命令建立一個名為 MYBROKER 的代理。該命令也建立名一個為 MYQM 的佇列管理器。執行命令之前確保使用者名稱隸屬於 msm 和 mqbrkrs。
清單3. 建立一個代理和相應的佇列管理器的命令樣例
mqsicreatebroker MYBROKER -i
-a -q MYQM mqsistart MYBROKER
- 在同一個 Message Broker 命令控制檯,在 MYQM 佇列管理器中使用以下命令建立命名為 Q.IN 和 Q.OUT 的非永久性輸入和輸出佇列。
清單4. 建立 MQ 輸入和輸出佇列的命令樣例
runmqsc MYQM def ql(Q.IN) MAXDEPTH(10000) DEFPSIST(NO) def ql(Q.OUT) MAXDEPTH(10000) DEFPSIST(NO) end
圖 18. 建立 MQ 佇列命令
2. 使用 Message Broker Toolkit 建立一個訊息流
您需要建立一個使用 WebSphere TX 對映 csv2xml 的 Message Broker 訊息流:
- 開啟 Message Broker V7 Toolkit 並使用與建立 WebSphere TX 對映相同的工作空間。工具箱開啟後,從右上端切換到 Broker Application Development 透檢視,如前面 圖 1 所示。
- 在選單欄選擇 File => New => Project,然後選擇 Message Broker => Message flow project => Next。輸入專案名稱 dwFlow 並單擊 Finish。
- 右鍵單擊 dwFlow 專案並選擇 New => Message Flow,輸入訊息流名稱 my_wtx_flow 並單擊 Finish。
- 在 my_wtx_flow 訊息流編輯器畫布中,從 WebSphere MQ 類別下的選項板中拖放一個 MQInput 節點。在 Basic 選項卡之下的 Node 屬性部分輸入 Q.IN 作為 Queue 名,並使其餘欄位保留預設設定。
- 從 WebSphere TX 類別之下的選項板拖放一個 WebSphere TX Map 節點到畫布,並編輯 Node 屬性,如下所示:
- 在 Basic 選項卡中選擇 Use map from project 並單擊 Browse 來選擇 addressMap.mms之下的 csv2xml compiled map。在 Basic 選項卡中,您有兩個選擇來引用 WebSphere TX 對映。其中一個是 Use map from project,它引用一個已經包含在現有工作空間中的 WebSphere TX 已編譯的對映。另一個是 Use external map,它通過使用 Map server location 欄位指定的絕對路徑引用 WebSphere TX 已編譯的對映。在本例中選擇 Use map from project 。
圖19. WebSphere TX 外掛節點基本配置
- 如果您有不止一個輸入卡,您可以在 Card number to wire 欄位中指定想從 MQ 佇列上獲取訊息的卡片數量。然而在本例中,您只有一個輸入卡和一個輸出卡,因次您可以讓選項卡中的其餘部分保留預設設定。
- 在 Basic 選項卡中選擇 Use map from project 並單擊 Browse 來選擇 addressMap.mms之下的 csv2xml compiled map。在 Basic 選項卡中,您有兩個選擇來引用 WebSphere TX 對映。其中一個是 Use map from project,它引用一個已經包含在現有工作空間中的 WebSphere TX 已編譯的對映。另一個是 Use external map,它通過使用 Map server location 欄位指定的絕對路徑引用 WebSphere TX 已編譯的對映。在本例中選擇 Use map from project 。
- 將 MQOutput 節點從 WebSphere MQ 類別下的選項板拖放到畫布。在 Basic 選項卡之下的 Node 屬性中,輸入 Queue manager name 屬性 MYQM ,輸入 Queue name 屬性 Q.OUT。在高階選項卡中,將 Message 內容從 Pass all 改變為 Default,將輸出訊息的訊息頭 PUTTIME 設定為訊息發出時間。
圖 20. MQOutput 節點高階配置
- 從選項板選擇 connection 元素來連線三個節點。單擊 MQInput node => Out,然後單擊 WebSphere TX Map node 來在 MQInput 節點和 WebSphere TXMap 節點之間建立一個連線。然後選擇 WebSphere TX Map => out1 並單擊 MQOutput node 來在 WebSphere TXMap 節點和 MQOutput 節點之間建立第二個連線,一旦工作流部署到代理,MQInput 節點中的訊息將被傳遞給 WebSphere TX Map 節點,ebSphere TX Map 節點的輸出將輸入 MQOutput 節點。
圖21. Message Broker 流畫布
- 儲存流:按下 Ctrl + S。
- 構建用於部署到代理的 BAR 檔案:
- 在左邊的資源樹中右鍵單擊 dwFlow 專案並選擇 New => Message Broker Archive,在 Name 欄位輸入 mybar。
- 在 Prepare 選項卡上,選擇 my_wtx_flow.msgflow 並在底部單擊 Build broker archive 來構建存檔檔案。您將在彈出對話方塊中看到操作成功完成。
圖 22. 建立代理存檔
- 在 Manage 選型卡上,單擊位於第一列的 my_wtx_flow.cmf。您可以修改 Additional instances 欄位來管理由流建立的執行緒的數量。預設情況下,代理啟動一個執行緒來處理每個流,但是如果您在 Additional instances 中輸入的不是零,代理將啟動超過一個執行緒來處理每個流,這在多核環境中可能會提高效能。
圖 23. 代理存檔配置
- 儲存代理存檔檔案:按下 Ctrl + S。
- 在現有的 Message Broker V7 Toolkit 中,從 File 選單選擇 Window => Show view => Brokers。
- 在 Brokers 檢視中,您能看見 MYBROKER,這是您在第一步中建立並附加到代理節點的:
圖 24. 代理檢視
- 右鍵單擊 MYBROKER 並選擇 New Execution Group。在彈出對話方塊中輸入新的執行組名 EG1。單擊 OK 之後,可能需要一段時間才能在 MYBROKER 下建立 EG1。
- 部署 BAR 檔案:將 mybar.bar 拖放到 EG1:
圖25. 部署 BAR 檔案
- my_wtx_flow 應該被部署在 MYBROKER 上執行。您能看到一個帶有綠色向上箭頭的流,這意味著該流是向上的且正在執行:
圖 26. my_wtx_flow 成功啟動
- 開啟 MQ Explorer,展開 Queue managers 資料夾並選擇 MYQM => Queues。
- 屬於 MYQM 的所有佇列都顯示在右邊皮膚中。右鍵單擊 Q.IN 並選擇 Put Test Message:
圖27. 從 MQ Explorer 發出測試訊息
清單 5. 訊息內容樣例
John Smith,222-2222,25 park st.,Heaven City,Univor State,222
圖28. 輸入測試訊息內容
- 當流啟動時,我們剛剛放進輸入佇列的訊息由流來處理,轉換成 XML,並放入到輸出佇列 Q.OUT。您可以在 MQ Explorer中檢視:在右上角單擊 Refresh,您將看到 Q.OUT 的當前佇列深度變為 1,這意味著這個佇列中只有一條訊息:
圖29. 從 MQ Explorer 驗證輸出訊息
- 您可以驗證訊息內容:右鍵單擊 Q.OUT 並選擇 Browse messages。您應該能從 Message data 欄位看到 XML 格式的訊息內容。忽略 XML 內容中的方形符號 —— 它們代表換行符。
圖30. 從 Message Browser 驗證輸出訊息內容
- 如果您看見如上所示的 XML 訊息資料,意味著工作流已被部署且正在成功執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-672122/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WebSphere Message Broker -JavaCompute元件的使用WebJava元件
- 使用 DB2 pureXML 和 WebSphere Transformation Extender 處理 SEPA 支付DB2XMLWebORM
- WebSphere Message Broker HttpInput 節點WebHTTP
- 將WBE與WebSphere Message Broker 一起使用Web
- WebSphere Message Broker V6.1 中的新增功能Web
- WebSphere Message Broker 中使用者出口跟蹤訊息Web
- WebSphere Message Broker V7 上的影響分析Web
- WebSphere Service Registry and Repository 外掛的功能及使用Web
- WebSphere CloudBurst 與 Rational Automation Framework for WebSphereWebCloudFramework
- 使用WebSphere Integration Developer和WebSphere Process Server的二進位制Jar檔案WebDeveloperServerJAR
- 自定義 WebSphere Business Monitor 業務空間的外觀Web
- WebSphere 反向投資者: 解決 WebSphere Application Server 的配置衝突WebAPPServer
- MyEclipse WebSphere開發教程:WebSphere 8安裝指南(二)EclipseWeb
- MyEclipse WebSphere開發教程:WebSphere 7安裝指南(一)EclipseWeb
- MyEclipse WebSphere開發教程:WebSphere 7安裝指南(四)EclipseWeb
- MyEclipse WebSphere開發教程:WebSphere 8安裝指南(一)EclipseWeb
- MyEclipse WebSphere開發教程:WebSphere 7安裝指南(三)EclipseWeb
- MyEclipse WebSphere開發教程:WebSphere 7安裝指南(二)EclipseWeb
- 使用 WebSphere Portlet Factory 構建SOA 前端Web前端
- 使用c#操作IBM WebSphere MQC#IBMWebMQ
- WebSphere Application ServerWebAPPServer
- websphere & jbuilder8.0WebUI
- 使用 WebSphere Business Modeler 進行業務建模Web行業
- Websphere版本檢視(UNIX)Web
- ibm websphere簡介IBMWeb
- WebSphere Portlet效能優化Web優化
- Websphere (WAS) Work Load ManagementWeb
- MQ和WEBSPHERE整合 (轉)MQWeb
- 整合MQ和WEBSPHERE (轉)MQWeb
- WebSphere在Myeclipse中的整合WebEclipse
- JSP的環境引擎--websphereJSWeb
- 如何編寫一個 Pulsar Broker Interceptor 外掛
- 讓IBM WebSphere Portal可以使用中文IDIBMWeb
- 使用 Java API 處理 WebSphere MQ 大訊息JavaAPIWebMQ
- 使用 WebSphere BPM 套件實現多模組監測Web套件
- 使用 WebSphere Business Modeler 實現業務流程的直接部署Web
- WebSphere Adapter和WebSphere Process Server為SAP構建RESTful整合,第1 部分WebAPTServerREST
- 為WebSphere sMash做好準備Web