使用 WebSphere Adapter 和 WebSphere Business Events 完成 SAP 系統的業務事件監聽
通過對業務事件的監控和分析,使業務決策人員能夠及時做出業務判斷,使問題能夠被盡早 發現,從而減少可能帶來的損失。本文首先介紹該解決方案的總體架構,以及所涉及到的產品 的基本概念,然後分步介紹如何實現這個解決方案,包括開發、部署、運行全過程。
業務需求及解決方案概述
當前企業的業務需求變化越來越快,如何在確保降低風險的同時增加潛在客戶資源,如何洞 察客戶行動,以便在正確的時間由正確的人采取正確的行動,這些都成為企業可能面臨的難題 。於此同時,企業應用中存在的潛在問題,如產品質量下降,客戶流失等如何能夠被及時發現 ;如何對企業業務趨勢進行跟蹤與分析,以便及時處理企業成長中的種種問題等。
WebSphere Adapter 和 WebSphere Business Events 產品的集成為解決上述問題提供了一 套完整的解決方案。通過使用 WebSphere Business Events 對業務事件的監控,業務決策者就 能夠及時洞察客戶動向並采取正確舉措,通過對企業業務趨勢的監控可以及時掌控企業所處階 段,預測和分析可能存在的潛在問題,及時制定相應的對策來規避風險。
本文將通過一個具體應用場景——網上支付系統,來描述如何實現對企業信息系統入站信息 的監聽、分析和整理,並最終將其展現給業務決策人員。
在該場景中,當客戶通過 Web 站點提交支付請求之後,相應的請求記錄將會在 SAP 系統中 被創建。WebSphere Adapter 可以監聽到 SAP 系統中的變化,並根據這些變化的數據構建業務 事件,然後交給 WebSphere Business Events 來進行分析和整理,最終以用戶自定義圖表的方 式顯示在 Business Space(業務空間)中。圖 1 展示了該應用場景的總體架構。
圖 1. 集成解決方案總體架構圖
如圖所示,用戶通過上層 Jave EE Application 對 SAP 系統進行數據更新的同時, WebSphere Adapter 能夠監聽 SAP EIS 相應事件更新,負責將來自 SAP 系統的業務對象構建 成符合 Common Base Event(CBE) 規范的事件,然後將包含有效業務數據的事件發送到 WebSphere Business Events 的 Common Event Infrastructure(CEI) 組件上,CEI 根據內置 的轉發規則再將該事件轉發到對應的監控模型的專屬隊列上,最終通過 Business Space(業務 空間)展現給用戶。
整個架構的設計和執行有以下兩個重要步驟:
1. 首先,用戶需要通過使用 Rational Application Developer(RAD)J2C 工具開發一個 SAP 適配器入站應用,在其中定義自己感興趣的 SAP 系統中的業務數據,將其作為監聽對象。
2. 其次,通過 WebSphere Business Events 創建業務事件處理流程,定義用戶感興趣的業 務事件和活動,最後使用 Business Space 將監控數據以圖表的方式進行分析和顯示。
圖 2. 集成解決方案事件流向圖
集成解決方案事件流向圖描繪了 WebSphere 應用服務器中的事件流向。SAP 適配器入站程 序監聽到 SAP 企業信息系統的入站事件之後,首先將入站事件通過消息驅動 Bean 傳送給會話 Bean 進行處理,同時 SAP 適配器入站程序捕獲入站事件中的企業元數據,將它轉換成 CBE 事 件,然後發送到 WebSphere Business Events 的 CEI 上,並交由相應的業務事件處理流程進 行分析和處理。
集成方案的相關產品介紹
WebSphere Business Events
WebSphere Business Events (WBE) 是專門用作 IT 基礎結構中的事件管理層。它是一個充 分集成的技術平台,提供了設計、運行和監視復雜業務流程的功能。同時,WBE 由一組無縫集 成組件組成(每個組件使用的所有元素的定義以 XML 格式存儲在一個統一安全元數據存儲庫中 )。IT 開發人員無需對現有系統進行重新設計及部署,通過 WBE 即可進行對現有系統的無縫 連接。圖 3 描述了 WebSphere Business Events 的產品體系結構。
圖 3. WebSpherer Business Events 體系結構圖
WebSphere Business Events V6.2 為用戶提供了全新友好的界面以及功能,可以在不改變 現有系統部署的前提下實現對業務事件的處理和監控,以最小代價完成同企業原有系統的無縫 連接。本文的解決方案主要用到了 WebSphere Business Events 提供的以下功能:
Design Data 工具:通過友好的業務用戶界面定義外部數據源(數據源)、業務對象模型( 中間對象)和將以實時方式交互的業務系統(接觸點、事件和操作)。
Design 工具:定義業務事件邏輯,該邏輯協調接觸點之間的業務流程,還支持創建用於為 業務流程建模的圖形事件流程。
WBE 運行時:從 JMS 消息隊列中獲取事件,然後針對交互集中定義的連接器業務事件邏輯 求出這些事件的值,並將操作放置在消息隊列中。操作連接器從該隊列中選取事件並將事件傳 遞到相關聯的接觸點,以便進行適當的操作。
儀表板:擁有簡單可視的操作界面,可以輕松通過圖表和布局查看 WebSphre Business Events Runtime 活動。
WebSphere Adapters
WebSphere Adapters (WA)是 IBM 為用戶提供的一種數據與企業應用程序整合的工具,它包 含一系列帶有向導功能的“通用技術”和“業務應用程序”適配器,其服務能夠快速輕松地支 持遺留應用程序、ERP、HR、CRM 與供應鏈系統。
圖 4. WebSphere Adapters 工作流程圖
它主要包含兩個方向的操作:出站應用以及入站應用。本文的解決方案主要用到了其中的入 站應用。進行入站操作時,企業信息系統的數據發生任何改變都會通過觸發器生成相應事件, WebSphere Adapters 通過主動 poll 模式或者被動 push 模式發現事件,然後查詢相應企業信 息系統數據,並將其發送到特定目的端。
Rational Application Developer
Rational Application Developer(RAD)是 IBM 在 Eclipse 之上建立的一個開發公開的、 可擴展的集成開發環境 (IDE),它使你能夠快速設計、開發、分析、測試、概要分析和部署 Web、Web 服務、門戶、Java 和 Java EE 應用程序。RAD 中提供了專門的 J2C Tooling 向導 程序,整合 WebSphere Adapters,幫助用戶完成業務元數據發現過程,同時生成應用程序所需 要的元數據實體 Bean,消息驅動 Bean,會話狀態 Bean 以及用於元數據捕獲的程序。下面的 章節中,我們會介紹如何使用這個向導來完成 SAP 適配器入站應用的創建過程。
安裝集成開發環境
在上一節中,我們已經對本文所述的應用場景中涉及到的產品進行了簡單介紹。下面列出了 在這個場景中,所需產品的具體版本信息:
Rational Application Developer 7.5.3
WebSphere Application Server 6.1.0.25
WebSphere Adapters 6.2.0.2
WebSphere Business Events 6.2.1
這些所需的軟件都可以通過 IBM 提供的 Installation Manger(IM) 來安裝。本文僅列出安 裝過程中的一些重要步驟以及在安裝過程中需要注意的地方。各個產品的詳細安裝步驟請參考 各自產品信息中心上的幫助文檔(參見參考資源)。
為了搭建開發和運行時環境,首先需要安裝 Installation Manager,然後依次完成下面的 步驟:
安裝 WebSphere Adapters 6.2 以及 RAD 7.5.3 的開發環境
選擇安裝組件“Java EE Connector(J2C) tools”、“WebSphere Adapters”和“Tools for WebSphere Application Server V6.1”
安裝 RAD 7.5.3 的測試環境
選擇相應版本 WebSphere Application Server V6.1.0.25
安裝 WBE 6.2.1 的開發及測試環境
選擇安裝 WebSphere Business Events v6.2.1
SAP 適配器入站應用的開發
下面將介紹如何通過使用 RAD 的 J2C 向導程序完成 SAP 企業元數據發現過程。WebSphere SAP adapter 在這個過程中負責發現 SAP 系統的元數據。通過選擇用戶所感興趣的業務數據, 它可以方便地生成用於描述和操作這些數據的業務對象以及服務接口。這裡主要介紹了使用 RAD 的 J2C 工具運行 EMD Wizard 過程的主要操作,詳細信息請參照 WebSphere Adapter用戶 指南。
1)點擊運行 RAD 7.5.3
2) 在菜單項中點擊 File -> New -> Other,會出現如下的面板,選擇 J2C-> J2C Bean,點擊 Next。此時就進入到了元數據發現過程的向導程序。
3) 在 Resource Adapter 選擇頁中選擇 SAP-> IBM Websphere Adapter for SAP Software with transaction support (IBM: 6.2.0.2),點擊下一步。
4)在 Connector Import 頁面中,修改目標服務器屬性,將其改為 WebSphere Adapter Server 6.1。
5)在 Connecter Setting 頁面中,指定 SAP Adapter 所需 jar 包和 dll 文件的文件位 置,點擊下一步。這些文件是訪問 SAP 系統所需的一些由 SAP 提供的第三方庫文件,可以在 SAP 的官方網站上下載到。
6)在 Adapter Style 頁面中,選擇 inbound,並勾選“Enable Inbound Event Monitor” ,點擊下一步。在 Event and JMS configuration 頁面中,Event type 選擇“WebSphere Business Events”。 由於對企業信息系統事件的監聽目前只支持入站事件,因此只有 Inbound 選項下面會有一個多選框讓用戶選擇是否要使用監聽功能。
圖 5. 配置業務事件類型
7)在 Discovery Configuration 頁面中,填寫連接 SAP 系統所需的連接信息,如主機名 ,客戶號,用戶名,密碼等,並選擇 SAP 的接口名稱:BAPI 接口。
圖 6. 填寫 SAP 企業信息系統的連接信息
8)在 Object Discovery and Selection 頁面中,在 RFC 下選擇 “BAPI_CUSTOMER_GETDETAIL”作為需要導入的 Object。
9)在 Configuration Composite Properties 頁面中,選擇相應的 Operation 和 RFC type, 並填寫用於存放生成 BO 的文件夾。在此例中,我們選擇了“create”的操作,RFC type 選擇”Synchronous RFC”,BO 文件夾名為”SAPBO”。
10) 在 J2C Bean Creation and Deployment Configuration 頁面中,填寫如下信息:EJB 工程名,包名,無狀態會話 EJB 的本地業務接口名,無狀態會話 EJB 名,消息驅動 EJB 名, 並創建新的 JNDI 名。然後點擊“New”按鈕為資源連接器創建相應的 JNDI 名字並配置其屬性 。在彈出的新面板中,填寫所需的信息,如 JNDI 名,RFC program ID 等,並確認相應的 SAP 系統連接信息無誤。
圖 7. 創建資源適配器的 JNDI
11)在建好 JNDI 後,點擊完成。
12)在 Enterprise Explorer 中,選擇生成的 Session Bean 文件” SAPInBAPIinterfSB.java”,單擊右鍵,選擇”Source – > Generate Event Mapping”。 在指定的 BO 文件夾下將生成兩個文件 EventBOTypeMapping.xml 和 EventBOTypeMapping.xsd 。這兩個文件記錄了基本的事件信息,在下面的業務事件處理應用開發中將作為主要的配置輸 入。
至此,我們已經完成 SAP 適配器入站應用的開發,並生成了相應的 Mapping 文件。下一節 將介紹根據生成的 Mapping 文件進行業務事件處理流程的開發。
業務事件處理應用的開發
這一節將簡單介紹如何利用 WebSphere Business Events 開發業務事件處理流程。業務事 件處理流程根據導入的 Mapping 文件定義相應的業務系統,包括業務數據源、業務對象和活動 等,然後再定義出相應的業務處理邏輯。這樣在運行時,數據就可以被讀取到並按照處理邏輯 進行分析和整理。
1)打開 WebSphere Business Events – > Design Data, 新建一個工程。點擊 File -> New Project。
2)創建接觸點。在左側的 Touchpoints 區域,單擊右鍵插入一個接觸點,選擇”Insert Touchpoint..”,在彈出窗口中填寫接觸點名稱。
3)給接觸點定義事件。在接觸點上單擊右鍵,選擇”Insert Event” -> “Like Schema” -> “From WebSphere Adapter”。選擇在 SAP 適配器入站應用開發中生成的 EventBOTypeMapping.xml 文件。
4)通過編輯事件對象定義需要進行監控的事件對象。比如在該對象上單擊右鍵選擇” Delete Event Object”可以刪除該事件對象;編輯事件對象的域,比如在該域上單擊右鍵選擇 ”Delete”可以刪除該域。如圖 12 所示,為定義好的事
件”emitCreateAfterImageSapBapiCustomerGetdetailWrapper”.
圖 8. 定義事件對象
5) 配置事件屬性。在事件上單擊右鍵,選擇”Event Properties..”,在 Connection 頁 選擇”Message Queue Connection”進行事件的連接配置。
6)在彈出的”Message Queue Event Connection”窗口中,選定 Format 為”Custom XML (XSL input)”。點擊”Configure..” -> “New” -> “File”選擇准備好的 .xsl 文 件。
圖 9. 配置事件連接屬性
這裡的 .xsl 文件是用來將 WBE Runtime 服務器創建的 XML 信息包轉換成接觸點支持的一 種格式。該解決方案中使用的 .xsl 文件請參見附件。
7) 配置 Queue 部分,選擇 Type 為”JMS Topic”,指定 Queue 名稱,並配置相應的 Provider 信息,如下圖。點擊”OK”完成事件屬性的配置。
8) 生成中間對象。將定義好的事件對象拖拽到”Intermediate Objects”區域,系統將自 動生成對應的中間對象。
9)給接觸點創建活動。在接觸點上單擊右鍵,選擇”Insert Action” -> “Blank”, 在彈出窗口中填寫活動名稱。
10)將中間對象拖拽到活動中來,生成對應的活動對象。
圖 10. 創建活動對象
11)配置活動屬性。在活動上單擊右鍵,選擇”Action Properties”,在彈出窗口中點擊 ”Connection”頁,選擇連接類型”File System Connection”,這樣活動生成的信息文件將 存儲到指定的文件系統中。
圖 11. 配置活動屬性
12) 在彈出的”File Action Connection”窗口中可以配置詳細的活動連接信息。點擊” Configure..”配置詳細的 Server 信息。
13)點擊 OK 完成整個活動屬性配置後,點擊”File -> Save Project”保存整個項目 。
至此,我們已經為事件監控定義好了業務數據源(接觸點),事件對象,業務對象(中間對 象)以及業務交互(活動)。接下來需要在 Design 工具中進一步定義業務事件處理邏輯。
14)打開 WebSphere Business Events -> Design,點擊”File -> Open”打開在 Design Data 中保存的項目文件。點擊”Create -> Interaction Set”創建一個業務處理 邏輯。
圖 12. 創建業務事件處理邏輯
15)定義業務處理的邏輯關系。通過單擊可以方便的選擇邏輯處理的事件,需要采用的活動 ,邏輯處理的時間設定等。
到這裡,我們已經完成了對於整個業務方案的開發,包括使用 WebSphere Adapter 完成的 企業數據處理過程和使用 WebSphere Business Events 開發的整個業務事件處理流程。前者負 責監聽 SAP 系統中的入站事件進行正常的企業信息處理,同時將他們轉換成 CBE 格式的事件 發送到 CEI 上;而後者負責將 CEI 轉發到自己隊列中的事件讀取出來並進行相應的分析處理 。下面,就需要將這兩個應用都部署到服務器上,完成業務事件的實時監控、分析和處理。
應用程序的部署
這一節主要介紹如何將業務方案部署在應用服務器上,包括 SAP 適配器入站應用和業務事 件處理應用的部署。
首先部署 SAP 適配器入站應用。利用 RAD 集成測試環境的導出功能將 SAP 適配器入站應 用導出成一個 EAR 文件,啟動 WebSphere Business Events 中集成的 Application Server 並打開應用服務器的控制台,展開”Applications – > Enterprise Applications”,在 右側的頁面中選擇”Install”然後將路徑指定到剛剛導出的 EAR 文件,就可以完成它的部署 。通過檢查應用的狀態來確定是否部署成功。
接下來部署業務事件處理應用。在 WebSphere Business Events -> Design 中點擊” Tools -> Repositories..”,在彈出窗口中點擊”Login”設置 WBE 實時連接信息。
圖 13. 配置 WBE 連接信息
登陸成功後選中 Project 頁中列出的所有文件並點擊”Add in”,將業務事件處理應用部 署到應用服務器上。
打開應用服務器控制台,在”Applications -> Enterprise Applications”中可以看到 wberuntime 應用已經被部署,重啟該應用可以使新的部署生效。
最後,啟動 WebSphere Business Events -> Connectors,建立 WBE 與應用服務器的實 時連接。
此時業務方案已經成功部署到應用服務其上並成功啟動了。之後我們就可以通過 SAP 系統 提供的用戶圖形界面來觸發該業務方案,並通過 WebSphere Business Events 將對 SAP 適配 器監聽到的事件進行分析和處理的結果成功展示出來。
應用的運行以及結果展示
在上一節中我們已經成功開發了 SAP 系統的業務事件監聽方案模塊。此節將通過 GUI 工具 來觸發 SAP 系統中的事件,該事件將會被 WebSphere SAP Adapter 捕捉到,並經過一定的處 理再發送到服務器的 CEI 組件中。業務事件處理流程負責讀取和處理這些事件,並通過展示板 將最終展現出來。
這裡,我們將主要介紹如何將這些事件在 Business Space 中展現。Business Space 是一 個通用的可定制的基於 Web 的展示工具。用戶可以定制各種內置的小器具 (widget) 來定義展 示內容和風格。圖 24 就是 Business Space 的一個主界面。
圖 14. Business Space 主界面
首先我們需要在 WebSphere Business Events -> Properties 中配置兩個屬性值以記錄 歷史記錄,這樣才能通過用戶定義的圖表來實時監視事件、操作和數據。打開 WebSphere Business Events -> Properties, 點擊”Full Configurator -> Server”, 在”Minor section: History Settings”下確定下列兩個屬性值為”true”,然後保存退出:
as.director.server.history.enableRecording -> true
as.director.server.history.enableModule -> true
查看在”WebSphere Business Events -> Design Data”中配置活動連接信息時指定的 文件夾目錄,應該列出了監控事件產生的所有事件監控實例。
接下來,有了這些數據內容我們就可以在 Business Space 中定制不同的展示風格,用圖表 進行數據顯示和分析。首先在 Business Space 中添加並配置 Instance Widget, 才能獲取到 事件信息。單擊”Add Widgets”,從右側拖拽”Business Events Chart Manager”。然後點 擊”Add Chart”,選擇不同的圖表類型並配置所需要的參數。如圖 27 就是用儀表方式展示的 監控圖。可以看出,當前的總支付交易數為 4.
圖 15. 數據分析圖表
在這裡,我們只是使用 Business Space 生成了一個簡單的儀表圖作為示例,對於 Business Space 提供的其他顯示功能比如餅圖,柱狀圖,多維數據顯示圖等詳細信息,請參見 Business Space 信息中心。
結束語
本文主要介紹了如何通過 WebSphere Adapters, WebSphere Business Events 以及 Rational Application Developer 的集成,來實現對外部企業信息系統的業務事件進行監聽, 包括該解決方案的開發、部署和運行全過程,並對其中涉及的產品分別作了簡單介紹。這個解 決方案能夠提升企業的業務監控能力,從而幫助企業更快更准確地做出業務決策,避免風險的 發生。
來源:
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1004_songxy_ sap/