WebSphere Adapter V6.1 在 WPS ND 環境中進行 EIS 整合

CloudSpace發表於2009-04-01
WebSphere Adapter 是 IBM 對 JCA 標準的實現,用於企業資訊系統(EIS)間的業務整合,在 SOA 解決方案中扮演著重要角色。通過閱讀本文,讀者可以瞭解如何在 WPS ND 環境中使用 WebSphere Adapter V6.1 進行 EIS 整合,如何使用 WebSphere Adapters 6.1 for Siebel 和 WebSphere Adapters 6.1 for FlatFile 開發業務整合示例場景,以及如何在該場景中運用WebSphere Adapter V6.1 支援節點級部署的新特性。

引言

WebSphere Adapter V6.1 是目前介面卡的最新版本,它支援部署在多種 Broker 執行時環境中,包括 WebSphere Process Server(WPS),WebSphere Application Server(WAS), WebSphere Message Broker(WMB) 以及 WebSphere Transformation Extender 等。WebSphere Adapter 應用程式同樣可以部署、執行在 WPS/WAS ND 分散式叢集環境中。Adapters 使用者能夠享受到通過伺服器叢集實現的可擴充套件性、負載均衡和高可用性。

從 V6.1 開始,WebSphere Adapter 正式支援在 WPS/WAS 上的兩種部署方式,包括應用程式級部署 (Application Level Deployment) 和節點級部署 (Node Level Deployment)。這個新特性使使用者配置的介面卡可以與多個不同的應用程式進行互動,增強了介面卡的可重用性。

本文根據實際業務整合應用經驗,選擇 WPS ND 環境作為介面卡的執行時,主要描述了 WebSphere Adapter V6.1 應用程式的開發過程,介面卡應用程式的節點級部署,以及整合介面卡應用程式與 WPS 叢集環境協作的方法。文章提供了一個示例場景的完整描述及開發過程,以此說明:

  1. WebSphere Adapter V6.1 如何與 WPS ND V6.1 環境整合協作;
  2. 不同WebSphere Adapter 應用程式如何在多個 WebSphere 節點之間進行互動;
  3. WebSphere Adapter V6.1 如何支援在 WPS 上的節點級部署。

本文假設讀者具有一定的 WebSphere 介面卡應用程式開發經驗和 WID 和 WPS ND 環境基礎。

WebSphere Adapter V6.1 和示例場景介紹

WebSphere Adapter V6.1 主要包括兩類,即 Technology Adapters 和 Application Adapters。前者提供通過某種技術、標準對特定資料的訪問連線,目前包括 WebSphere Adapters for FlatFile,FTP,Email 和 JDBC;後者能夠連線到某種特定 EIS 並且提供利用 EIS 中的資料和服務的能力,目前包括 WebSphere Adapter for SAP Software, WebSphere Adapter for Oracle E-Business Suite, WebSphere Adapter for Siebel Business Applications, WebSphere Adapter for PeopleSoft Enterprise 和 WebSphere Adapter for JD Edwards Enterprise One。

在 WebSphere Adapter 應用程式開發、部署和執行過程中,需要有開發環境和執行時環境支援。在 V6.0.2 中,使用者使用 WID 開發 WebSphere Adapter 應用程式,並將其部署、執行在 WPS 或者 WESB 上。V6.1 除了 WPS、WESB 外,還支援 WAS,WMB 和 WebSphere Transformation Extender。相應地,介面卡應用程式的開發環境增加了 Rational Application Developer,WebSphere Message Broker Toolkit 和 WTX Design Studio。隨著多種開發環境和執行時環境的支援,WebSphere Adapter 在使用者的業務整合任務和 SOA 解決方案中得到越來越廣泛的應用。

入站

進行入站操作時,EIS資料發生任何改變都會生成相應事件,介面卡通過主動 poll 或者被動 push,發現事件後查詢相應 EIS 資料,將其傳送到特定目的端。

出站

進行出站操作時,應用程式通過介面卡對 EIS 資料執行 CRUD 等操作,或者呼叫 EIS 提供的對外介面與服務。

在 WPS ND 環境中進行 EIS 整合示例場景介紹

WebSphere Adapter 支援兩種互動方式,即入站(inbound)和出站(outbound)。利用多種介面卡進行不同資訊系統之間的資料同步,是一個常見的業務整合場景。如圖1所示,介面卡 A 用於輪詢監聽系統 A ,當系統 A 資料發生改變,介面卡 A 執行入站操作,查詢系統 A 資料,並觸發中介元件。中介元件處理資料後,呼叫介面卡 B 的相應出站操作,最終出站程式改變系統 B 中的對應資料,完成系統 A 和 B 之間的異構資料同步。


圖 1. 利用 WebSphere Adapter 進行 EIS 間資料同步

WebSphere Adapter 應用程式與其他應用程式一樣,除了可以在獨立式應用伺服器(Standalone Application Server)中部署、執行和管理,也能夠在分散式伺服器環境中工作。事實上,通過配置,工作在伺服器叢集中的介面卡應用程式能夠使企業使用者的業務整合實現具有更可靠、更強大的服務質量保證。

下面介紹如何使用 WebSphere Adapter V6.1 在 WPS ND 環境中進行 EIS 整合的示例場景。隨後,我們將構建示例 WPS 叢集環境,開發一個端到端的 WebSphere Adapter V6.1 應用程式,並將其部署、執行在不同 WPS 節點上。圖 2 展示了這個示例業務整合場景的完整架構。


圖2. 示例業務整合場景架構

該示例通過開發、部署執行在 WPS ND 環境中的 WebSphere Adapter 應用程式,實現客戶業務資料從遠端 Siebel 資訊系統到本地檔案系統的轉換與同步。這裡用到了的 WebSphere Adapter for Siebel V6.1 和 WebSphere Adapter for FlatFile V6.1。

在示例場景中,Siebel 介面卡入站程式被部署在 WPS 節點 A 上,用於監聽終端 Siebel 系統。當遠端 Siebel 系統中增加一條資料記錄,將產生相應的事件;執行在應用伺服器 A 中的Siebel 入站應用程式輪詢得到該事件;介面卡根據該事件查詢 Siebel 資料並轉化成特定格式的 Siebel 資料物件;監聽 Siebel 介面卡的訊息驅動 Bean(MDB)用此業務物件(BO)呼叫中介處理模組(Mediation Module)。我們直接利用 Java 元件實現中介處理邏輯。(在真實業務整合環境中,更常見的用法是使用介面對映和資料對映,本文將不涉及這方面的內容)。中介模組也被裝載入應用伺服器 A,它將傳入的 Siebel 業務物件轉換為符合 FlatFile 介面卡特定格式的業務物件,並呼叫執行於應用伺服器 B 中的 FlatFile 出站應用程式包含的 Create 操作,最終 FlatFile 介面卡會在 B 檔案系統中建立包含 Siebel 資料內容的結果檔案。

這裡要注意的是,Siebel 入站應用程式中包含了 Siebel 介面卡元件,而 FlatFile 出站應用程式中並沒有包含任何介面卡,FlatFile 介面卡被獨立安裝在節點 B 中。按照 WebSphere Adapter 部署方案,前者屬於應用程式級部署(Application level Deployment),而後者屬於節點級部署(Node level Deployment)。根據 EAR Classloader 機制,採用應用程式級部署,介面卡只能被其所屬的應用程式呼叫,其他應用程式無法利用其服務;而採用節點級部署,介面卡由專門的 Classloader 裝載,可以被同一節點中的多個應用程式呼叫,不同應用程式可以提供各自的配置方案來建立各自的介面卡執行例項,連線不同的 EIS。


示例 WPS ND 架構介紹

示例中的 WPS ND 環境拓撲如圖 3 所示,一個 WPS 單元(Cell)包含兩個節點(Node A 和B)和一個部署管理器(Dmgr)分別安裝在兩臺 AIX 機器上,每個節點中建立一個應用伺服器概要檔案(Application Server Profile)。在節點 A 上建立叢集。節點 A、B 由部署管理器 Dmgr 統一管理。

關於 WPS 的安裝,請參考叢集環境的搭建相關的文章。下面主要介紹介面卡應用程式在上述 WPS ND 環境中的的配置和執行。


圖3. 示例 WPS ND 環境拓撲
 

WebSphere Adapter V6.1 業務整合示例場景開發、測試

開發示例場景中的應用模組

我們使用 WID V6.1 來開發所有應用程式,包括 Siebel 介面卡入站模組,FlatFile 介面卡出站模組,和中介處理模組。利用匯入(import)和匯出(export)元件,通過 SCA 繫結服務連線這些模組。SCA 繫結的作用域覆蓋了同一單元中的所有節點,因此我們可以將多個出站、入站及中介模組分別部署在不同伺服器上。下面將分別介紹如何開發這些應用模組,以及如何配置、執行、測試本文中的示例場景。

開發 Siebel 介面卡入站應用程式

開啟 WID V6.1,切換到 J2EE 檢視,從“匯入 RAR 檔案嚮導” 中安裝 “WebSphere Adapter for Siebel 6.1”。如圖 4 所示,保證選擇 “WebSphere Process Server v6.1” 作為目標執行時。


圖4 匯入 Adapter 檔案

在 WID V6.1 中生成一個新的模組專案,命名為 “SiebelInboundModule”,在該專案上右擊,選擇 “New”->“External Service”,開啟 “External Service”嚮導。執行介面卡服務發現嚮導,生成業務物件資料和介面卡服務的相關定義、配置檔案。

選擇 “Adapter”,下一步;

在介面卡列表裡,選擇剛才安裝的介面卡 “CWYEB_SiebelAdapter”,下一步;

選擇執行 Siebel 介面卡所需的依賴檔案,如圖 5 所示。


圖5 匯入 Siebel Adapter 依賴檔案

下一步選擇 “Inbound”。

接下來在服務發現配置頁面,填寫連線 Siebel 系統的必要資訊,如圖 6 所示。保證選擇 “Siebel Business Object” 作為 Siebel 物件發現型別。點下一步,將開始連線目標 Siebel 系統。


圖6 配置 Siebel EIS 連線資訊

如果連線成功,則可以看到 “Object Discovery and Selection” 頁面。

在圖 7 所示頁面,開啟 “Edit Query” 對話方塊,輸入 Siebel 系統資料查詢條件,例如“Account*”。點選 “Run Query”,查詢 Siebel 系統資料,查詢結果將在 “Discovered objects” 中列出。從中選擇目標資料物件 “Account” 並新增到 “Selected objects” 中。下一步。


圖7 選擇 Siebel 資料物件

保留 “Configure Composite Properties” 頁面的預設配置,下一步。

在 “Service Generation and Deployment Configuration” 頁面中,不要選擇 “Specify a Java Authentication and Authorization Service (JAAS) alias security credential”。點選 “Advance”,在 “connection properties”中直接指定連線認證資訊。檢查所有連線資訊都是正確的。下一步。

在 “Service Location Properties” 頁中選擇 “SiebelInboundModule” 模組儲存所有生成的檔案。

保留其他預設配置,完成介面卡服務發現。

開啟 “SiebelInboundModule” 編輯視窗,可以看到生成的 “SiebelInboundInterface” 元件。

新增一個 Java 元件,命名為 “InvokeXNodesOutboundComponent”,並用連線將其連線到“SiebelInboundInterface” 元件,如圖 8 所示。


圖8 Siebel 入站應用

開發 FlatFile 介面卡出站應用程式

我們同樣使用 WID V6.1 中的 “External Service” 嚮導生成 FlatFile 介面卡出站應用程式。

首先,新建模組專案 “FlatFileOutboundModule”,匯入 FlatFile 介面卡 RAR 檔案,在 “IBM WebSphere Adapter for Flat Files (IBM: 6.1)” 目錄下選擇 “CWYFF_FlatFile” 後,選擇執行 “Outbound” 流程。

在 “Service Configuration Properties” 頁中,可以選擇將介面卡和出站應用模組一同部署,或將介面卡單獨部署在節點上,以此決定介面卡僅被這一個應用程式使用,或是被同一節點中的多個應用程式使用。我們選擇第二種方法,來演示 WebSphere 介面卡 V6.1 如何支援 WebSphere 節點級部署。

圖9中,選擇 “On Server for use by multiple applications” 後,“Connection properties” 下拉框變為可選。其中的兩個選項用來決定如何為介面卡配置連線屬性值。一種方法是直接在介面卡服務發現過程中配置,另一種是通過 WebSphere Process Server 中的連線工廠配置。如果選擇後者,連線工廠必須存在、配置於特定 WPS 節點中,並能夠通過有效的 JNDI 名在伺服器執行時中找到。

選擇 “Use properties below”,在 “Connection Properties” 下,為 “Output directory” 屬性選擇正確的檔案系統輸出路徑。下一步;


圖9 配置 FlatFile 出站服務屬性

在 “Add Operation” 頁面,新增 “Create” 操作。如圖 10 。


圖10 選擇 FlatFile 出站操作

如下圖 11 所示,修改 “Operation Name” 為 “createFlatFile”。

為 “Create” 操作的輸入資料建立一個新的 “Data binding configuration”,點選 “New”,開啟“Binding Resource Configuration” 對話方塊。


圖11 配置 FlatFile 出站操作

如圖 12 所示,填入必要的配置資訊,命名資料繫結配置為“FlatFileOutboundDataBindingConfiguration”。


圖12 建立 FlatFile 出站應用資料繫結

選擇 “Data binding”,下一步;


圖13 選擇資料繫結作為配置型別

本示例中,FlatFile 出站應用不需要進行檔案內容解析,所以這裡也不必生成 DataHandler。點選 “Finish” 結束。如果使用者需要使用特定格式的檔案,例如 XML 檔案,那麼就要在圖 14 所示 “Data Binding Properties” 頁面中選擇或生成特定的 DataHandler 類來進行解析。


圖14 配置資料繫結

返回到 “Add Operation” 頁面。

在為 “Create” 操作的輸出資料設定 “Data binding configurations” 時,可以重用剛才生成的資料繫結配置 “FlatFileOutboundDataBindingConfiguration”,如圖 15 所示。


圖15資料繫結配置

點選 “Finish”,結束 “Create” 操作的配置。

通過同樣的步驟,也可以新增其他操作,例如 “Update”, “List” 和 “Delete”等,如圖 16 所示。


圖16 新增多種出站操作

下一步,檢查其餘配置資訊無誤後,完成並關閉介面卡服務發現嚮導。

完成 FlatFile 介面卡出站服務發現後,在 FlatFileOutboundModule 中生成了所有資料物件和服務釋出所需檔案。我們將在 WPS 節點級部署 FlatFile 介面卡,因此 CWYFF_FlatFile.rar 檔案不必包含在 FlatFile 出站應用程式之中。

開啟 FlatFileOutboundModule 中的 “Dependencies” 配置,找到 “J2EE(With EJB,Connector,etc)” 標籤,選擇 “CWYFF_FlatFile”,並保證 “Deploy with Module” 選項沒有被選中。

切換到 J2EE 檢視,開啟 “FlatFileOutboundInterface.import” 檔案的原始檔,比較 WebSphere Adapter 資訊與清單1中的示例程式碼是否一致。示例程式碼中的粗體部分所顯示的配置資訊用來為出站應用程式指定其所依賴的 FlatFile 介面卡。程式碼中也包含了 Connection Factory 屬性。如果在執行介面卡服務發現程式時選擇 “Use JNDI lookup name configured on server”,那麼出現在這裡的屬性值就是當時所指定的 JNDI 名。


清單1 示例程式碼

  


  
   CWYFF_FlatFile
  

     
        
         /home/OutputDir  
        
    

如圖 17,將 FlatFile 出站服務以 SCA 繫結方式匯出,這樣別的應用模組就可以匯入呼叫生成的 FlatFile 出站應用。在 FlatFileOutboundModule 中新增 “Export” 元件,命名為 “FlatFileOutboundExport”,並連線到 “FlatFileOutboundInterface” 元件。


圖17 FlatFile 出站應用

儲存所有專案。這樣,FlatFile 出站應用模組的開發完成了。

開發中介處理模組

示例場景中,中介處理模組負責將輸入的 Siebel 業務資料物件轉換為 FlatFile 業務資料物件,然後呼叫 FlatFile 出站服務介面,以此實現示例業務邏輯。

該模組開發過程如下:

建立一個新模組專案 “XNodesInvokeOutboundModule”,在其中新增一個 Java 元件,並命名為“XNodesInvokeOutboundComponent”;

將 FlatFile 出站服務匯入中介模組,切換至業務整合檢視,從 FlatFileOutboundModule 選中FlatFileOutboundExport 元件並拖放入 XNodesInvokeOutboundModule 的組裝圖編輯視窗。

在彈出的元件建立視窗中選擇 “Import with SCA Binding” 後,就會生成一個匯入元件,將其改名為 “FlatFileOutboundImport”。 XNodesInvokeOutboundComponent 元件通過連線這個匯入元件來呼叫 FlatFile 出站服務。

在 FlatFileOutboundImport 元件上新增 FlatFileOutboundInterface 介面。從FlatFileOutboundModule 中將介面定義檔案(FlatFileOutboundInterface.wsdl)和所有業務資料定義檔案(.xsd檔案)拷貝複製入 XNodesInvokeOutboundModule 專案。

在 XNodesInvokeOutboundModule 組裝編輯視窗中,右擊 FlatFileOutboundImport 元件,在彈出選單中選擇 “Add Interface”-> “Show WSDL”-> 選擇 “FlatFileOutboundInterface”->OK。

如圖18,在 XNodesInvokeOutboundComponent 和 FlatFileOutboundImport 之間連線,並選用 WSDL 介面描述 Java 元件上的引用。


圖 18 建立中介模組

至此,XNodesInvokeOutboundComponent 元件已經可以呼叫 FlatFileOutboundImport 元件所提供的各種操作。

接下來為 XNodesInvokeOutboundComponent 元件新增介面,並連線匯出元件,以便其他應用能夠匯入、呼叫 XNodesInvokeOutboundComponent 元件包含的方法。

先建立介面 “XNodesInvokeOutboundInterface”,具體屬性和方法定義如圖 19 所示。


圖 19 定義介面

右擊 XNodesInvokeOutboundComponent 元件,選擇 “Add Interface”->”Show WSDL”->“XNodesInvokeOutboundInterface”

在組裝編輯視窗中,新增一個匯出元件,命名為 “XNodesInvokeOutboundExport”,並與XNodesInvokeOutboundComponent 元件用連線連線,並

儲存專案。


圖 20 完成中介模組建立

接下來,編寫 Java 程式碼實現 XNodesInvokeOutboundComponent 內部邏輯(即業務資料物件轉換和 FlatFile 出站服務呼叫)。

右擊 XNodesInvokeOutboundComponent 元件,選擇 “Generate Implementation”,或者雙擊XNodesInvokeOutboundComponent 元件,生成預設 Java 實現程式碼。

按照下載程式碼中的 “XNodesInvokeOutboundComponentImpl.java” 檔案,修改自動生成的 Java 檔案。

我們新增的程式碼很容易理解,主要實現兩個方法:

“public DataObject prepareFlatFileBG()”,實現從 Siebel 入站業務物件到 FlatFileBG 物件的轉換。FlatFileBG 業務物件被用來呼叫 FlatFile 出站服務。

“public DataObject invokeFlatFileOutbound(String operation, String filename,String filepath, String content)”,實現遠端呼叫FlatFile出站服務。

修改 Siebel 入站模組,呼叫中介處理服務

此前我們已經建立了 Siebel 入站模組,不過我們尚未實現其中的 Java 元件“InvokeXNodesOutboundComponent”。現在我們來實現它,使入站應用能夠呼叫外部服務,如示例中由中介模組提供的 FlatFile 出站操作呼叫服務。

將中介處理模組的介面定義檔案 XNodesInvokeOutboundInterface.wsdl 拷貝貼上到SiebelInboundModule 模組中。

在業務整合檢視下開啟 SiebelInboundModule 的組裝圖,將 XNodesInvokeOutboundExport 元件從 XNodesInvokeOutboundModule 專案中拖放入 SiebelInboundModule 組裝圖中。選擇“Import with SCA Binding”,將生成的匯入元件改名為 “XNodeInvokeOutboundImport”。 用連線將其與Java元件 InvokeXNodesOutboundComponent 連線起來。保證新增在InvokeXNodesOutboundComponent 元件上的引用命名為 “XNodesInvokeOutboundPartner”。

下面實現 Siebel 入站應用中的 Java 元件 “InvokeXNodesOutboundComponent”,來呼叫中介模組服務。雙擊 “InvokeXNodesOutboundComponent” 元件,可以得到預設 Java 實現程式碼。我們只需要將呼叫遠端服務的程式碼新增到方法 emitCreateAfterImageBOAccountBCAccount(DataObject emitCreateAfterImageBOAccountBCAccountInput) 的實現中。清單2為核心程式碼,完整程式碼請下載參考。這樣使得 Siebel 入站應用在輪詢處理 Siebel 系統內所執行的 Create 操作時能夠呼叫外部服務。


清單2 核心實現程式碼

public void emitCreateAfterImageBOAccountBCAccount(
    DataObject emitCreateAfterImageBOAccountBCAccountInput) {

       try{
           String bg = 
           AdapterBOUtil.serializeDataObject(emitCreateAfterImageBOAccountBCAccountInput);

           DataObject wrapper =
emitCreateAfterImageBOAccountBCAccountInput.getDataObject("BOAccountBCAccount");
String accountId = wrapper.getString("Id");
    String file_name = accountId + ".xml";
     com.ibm.websphere.sca.ServiceManager serviceManager = 
     com.ibm.websphere.sca.ServiceManager.INSTANCE;
     com.ibm.websphere.bo.BOFactory bofactory =
     (com.ibm.websphere.bo.BOFactory)serviceManager.
     locateService("com/ibm/websphere/bo/BOFactory");

     com.ibm.websphere.sca.Service xnodesService =
     (com.ibm.websphere.sca.Service)serviceManager.
     locateService("XNodesInvokeOutboundPartner");	

     com.ibm.websphere.sca.scdl.Reference reference = xnodesService.getReference();
     com.ibm.websphere.sca.scdl.OperationType perationType = 
     reference.getOperationType("invokeFlatFileOutbound");
     commonj.sdo.Type inputType = operationType.getInputType();
     commonj.sdo.DataObject input = bofactory.createByType(inputType);
      input.set(0, "createFlatFile");
      input.set(1, file_name);
      input.set(2, "C:\\temp");
      input.set(3, bg);
      xnodesService.invoke(operationType, input);
       }
      catch (Exception e) 
      {

       e.printStackTrace();
        }
}

儲存專案。

匯出各模組 EAR 檔案

至此,我們已經開發完畢示例場景中的所有應用模組。

現在,將三個應用分別打包匯出為 EAR 檔案,包括:SiebelInboundModuleApp.ear, FlatFileOutboundModuleApp.ear, 和 XNodesInvokeOutboundModuleApp.ear.

在 WPS ND 示例環境中安裝 EAR 應用

接下來將所有 EAR 包,安裝部署在我們的 WPS ND 示例環境中。按照前面章節所述,我們將把 SiebelInboundModuleApp.ear 和 XNodesInvokeOutboundModuleApp.ear 安裝在節點 A 伺服器 A 中,並採用應用程式級部署(Application level Deployment);把 FlatFileOutboundModuleApp.ear 安裝在節點 B 伺服器 B 中,並採用節點級部署(Node level Deployment)。

在示例 WPS ND 環境的管理器控制檯中,開啟 “Applications”->”Install Application”。

SiebelInboundModuleApp.ear

在安裝首頁,選擇 SiebelInboundModuleApp.ear 在檔案系統中的存放位置。

選擇 “Show me all installation options and parameters” 選項,下一步。

在下一頁中選擇 “Override existing bindings” ,下一步。

之後將有10步完成安裝過程。

步驟1,接受所有預設配置;

步驟2,如圖21,選中兩個模組(SiebelInboundModuleEJB 和 IBM WebShpere Adapter for Siebel Business Applications),然後在上方 “Clusters and Servers” 列表裡選中之前配置的叢集選項,點選應用。這樣,這兩個模組都將被部署到叢集中(請確認在搭建示例環境時,已經在節點 A 伺服器 A 上配置了該叢集)。


圖 21 配置入站應用及部署目標環境

接受剩餘步驟中的所有預設配置,結束安裝過程。

儲存安裝結果,並在所有節點間進行同步。

在管理控制檯下,開啟 “Applications“->”Enterprise Applications”,可以看到SiebelInboundModuleApp 已經被安裝了。

安裝 XNodesInvokeOutboundModuleApp.ear

XNodesInvokeOutboundModuleApp 應用將被安裝在同一個叢集上。

具體步驟與安裝 SiebelInboundModuleApp.ear 時一樣。

安裝完成後,儲存並同步結果。在管理控制檯,“Applications->Enterprise Applications” 頁面,可以看到 XnodesInvokeOutboundModuleApp 也已安裝成功。

安裝 FlatFileOutboundModuleApp.ear

為了驗證 WebSphere Adapter 應用程式是如何在 WPS 節點之間進行互動的,我們將 FlatFile出站應用部署在節點 B 伺服器 B 中。同時,對 FlatFileOutboundModuleApp.ear 採用 WPS 節點級部署(Node Level Deployment)。

開啟部署管理器控制檯,進入 “Applications->Install Application”,找到FlatFileOutboundModuleApp.ear 的存放位置, 選擇 “Show me all installation options and parameters”。

在下一頁,選擇 “Override existing bindings”。

之後將有9步完成安裝過程。

接受步驟一中的預設配置,

在步驟二中,選中所有模組(這裡只有 FlatFileOutboundMoudleEJB 模組,而沒有 FlatFile 介面卡模組。之後,FlatFile 介面卡將被獨立安裝在節點上),選擇你安裝的節點 B 中的伺服器 B,點選應用。

接下來接受預設配置至結束安裝過程。

完成安裝後,儲存安裝結果,並在所有節點間進行同步。

返回管理控制檯,進入 “Applications->Enterprise Applications” 頁面,看到FlatFileOutboundModuleApp 已經安裝好了。以上三個應用程式都處於停止狀態。

WebSphere Adapter V6.1 對Node level Deployment 新特性的支援

WebSphere Adapter V6.1 可以支援在 WPS ND 環境中的兩種部署方式,應用級部署和節點級部署。而 V6.0.2 在官方說明中僅支援應用級部署。


圖 22 應用級部署和節點級部署

如果採用應用級部署,上圖所示 WPS 節點 A,資源介面卡內嵌在應用程式中,與應用(EAR) 一起部署在 WPS 伺服器上。這樣部署的介面卡只能與包含它的應用程式進行互動,而不能被其他應用訪問。如果採用節點級部署,如圖26所示 WPS 節點 B,資源介面卡將被獨立地安裝在某個 WPS 節點上,而不會和訪問它的任何應用 (EAR) 一起安裝。介面卡並不內嵌在應用程式中,任何入站/出站應用都可以通過介面卡的名字在 WPS 節點中進行查詢、建立關聯。因此,節點級部署的介面卡可以與不同的應用程式進行互動。

在我們的示例中,FlatFile 介面卡將被獨立地部署在 WPS 節點 B 上,FlatFile 出站應用(沒有包含介面卡模組)被安裝在節點 B 伺服器 B 中。以下介紹如何實現介面卡的節點級部署。

在WPS ND 示例環境中執行節點級部署

開啟部署管理器的管理控制檯,進入 “Resources->Resource Adapters”, 選擇 “Install RAR”.

在安裝介面卡頁面,瀏覽到 FlatFile 介面卡檔案 CWYFF_FlatFile.rar 的存放位置,

在 “Scope” 屬性處選擇之前所安裝的節點 B,如圖 23 所示 “aix135Node02”,作為安裝FlatFile 介面卡的目標節點。這使得介面卡 CWYFF_FlatFile.rar 被拷貝安裝在節點 B 上,而所有部署在節點 B 伺服器上的應用程式都可以訪問該介面卡了。


圖 23 選擇安裝 FlatFile Adapter 的節點

下一步保持其他預設屬性設定,確認介面卡的名字為 “IBM WebSphere Adapter for Flat Files”的正確性和唯一性,所有需要訪問該介面卡的應用程式都將根據介面卡名在節點 B 中查詢。

我們開發的是 FlatFile 出站應用,所以選擇編輯 “Additional Properties”->“J2C connection factories”。進入連線工廠的自定義屬性列表,檢查、確認所有屬性設定正確。

儲存所有改動,並同步節點。

這樣,WebSphere Adapter V6.1 for FlatFile 就安裝在了 WPS 節點上。

測試示例

至此,我們完成了整個示例場景的所有開發、配置、部署工作。接下來,啟動所有應用,驗證場景的執行結果。

開啟管理控制檯,進入 “Applications->Enterprise Applications”,選擇已經安裝好的三個應用(FlatFileOutboundModuleApp, SiebelInboundModuleApp, XNodesInvokeOutboundModuleApp),點選 “Start”。確認所有應用都正常啟動,如圖24所示。


圖 24 啟動示例場景應用

在 Siebel 系統中生成一條 “Account” 資料記錄,Siebel 內建的觸發器會因此在事件表中插入一條事件記錄。

執行在叢集(配置在節點 A 伺服器 A 上)中的 Siebel 入站應用程式會輪詢、得到這條事件記錄,並從 Siebel 系統中提取相關業務資料,然後呼叫 XNodesInvokeOutbound 服務,將Siebel 業務資料物件傳遞到中介處理模組,中介處理流程會將 Siebel 業務資料轉換為 FlatFile業務資料物件格式,進一步查詢到、呼叫節點 B 上伺服器 B 中部署的 FlatFile 出站服務。最後,FlatFile 出站應用被呼叫,並根據傳入的業務資料物件,在節點 B 伺服器 B 所在的檔案系統中生成檔案。該檔案是以 Siebel 事件 ID 命名的 XML 檔案,其內容包括了 Siebel 入站業務物件資料。

開啟 SystemOut.log 檔案,可以看到整個業務流程的執行過程,詳細內容請參照下載檔案。

如果你在控制檯看到的輸出內容與示例相同,說明你已經成功地開發、配置、測試了本文描述的整合場景。

結論

藉助於 WebSphere Adapters 6.1 for Siebel 和 WebSphere Adapters 6.1 for FlatFile,我們完成了Siebel 企業資訊系統與遠端檔案系統的整合。本文通過示例場景介紹了 WebSphere Adapter V6.1 的新功能,並描述了利用介面卡在 WPS ND 環境中進行業務整合的示例開發、配置和測試過程,希望能對讀者有所幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-582736/,如需轉載,請註明出處,否則將追究法律責任。

相關文章