BIEE如何同SOA集成

OTN的這篇文章描述了BIEE如何SOA集成,對於在BIEE中使用到Webservice的朋友很有幫助

集成 Oracle 業務智能企業增強版和 SOA

作者:Mark Rittman 和 Joel Crisp
探討 Oracle SOA 套件與 Oracle 業務智能企業增強版的集成可能性。

到目前爲止,您可能已經瞭解到面向服務的體系結構 (SOA) 是一種設計方法,開發人員可以通過這一方法將各分散應用程序提供的鬆散耦合的獨立服務構建爲業務應用程序和業務流程。通過將您的應用程序基礎架構基於支持 SOA 的產品(如 Oracle 融合中間件、Oracle JDeveloper 和 Oracle 數據庫 11g)上,您可以開發重用機構中現有功能的應用程序,快速適應不斷變化的優先業務事項,爲用戶提供具吸引力的 Web 2.0 風格界面,這些界面是使用事件、服務、業務規則和應用程序邏輯的框架構建而成。
同樣,業務智能 (BI) 爲希望更好地瞭解其運營和財務績效的機構提供衆多的好處。互動式信息板和圖形報表可快速提供關於企業績效的信息,偵測和提醒程序可讓您快速關注到出現的問題和商機。最終它們將轉化爲企業的競爭優勢。更爲重要的是,Oracle 業務智能企業增強版等工具提供的業務元數據層在您企業的整個數據集上創建了一個語義模型,這將幫助您制定兼顧全局的決策,通盤考慮業務的衆多因素。
但是,如果能將 SOA 和 BI 合而爲一,使您的業務流程可以利用 BI 工具提供的語義業務模型,並將整個企業的信息納入業務規則中,那將如何呢?如果您的業務流程可以基於某一位財務分析員建立的財務模型來估算合同的未來價值,那會怎麼樣呢?如果您的應用程序可以利用 Oracle 下一代互動式信息板工具的圖形和信息板功能,使您能夠在 Java 應用程序中嵌入圖形、表和其他 BI 表示,那又將如何呢?
在本文中,我們將探討 Oracle 融合中間件產品系列的兩個重要產品(Oracle SOA 套件和 Oracle 業務智能企業增強版)的集成可能性。我們將特別討論 Oracle 業務智能企業增強版的一個新 Web 服務 API 示例(在 OTN 上提供),它有望簡化 BI 技術與業務流程和應用程序的集成過程。
面向服務的領域

我們都知道,SOA 對應用程序構架師的主要吸引力在於,它提供了利用機構中的現有應用程序功能快速創建新業務流程的機會。利用 SOA,可以通過採用 Web 服務這一主要集成方式輕鬆地集成不同的業務流程。
典型的 SOA 包含以下幾個要素:


  • 業務流程 — 聲明式流程,通常使用 BPEL 創建,可編排服務,並可從應用程序、警報和其他流程中調用。
  • 業務規則 — 聲明式業務策略,具體形式爲單獨的規則庫,可從應用程序和業務流程中訪問。
  • 業務事件 — 包含應用程序和業務流程生成的聲明式事件定義、變換和例程。
  • 業務活動監控 — 提供業務流程和活動效率的“即時”監控

所有這些元素都由 Oracle SOA 套件提供,它是 Oracle 融合中間件的一部分,該套件提供了 Oracle BPEL Process Manager、Oracle Business Rules、Oracle Enterprise Service Bus 和 Oracle Web Services Manager 等工具。

結合使用 Oracle SOA 套件和 Oracle 應用服務器以及 Oracle 融合中間件的其他重要組成部分,您可以開發基於標準、鬆散耦合的業務應用程序和流程,它們可以輕鬆地與企業內外的應用程序進行集成。
添加強大的分析功能
除了 Oracle SOA 套件,Oracle 融合中間件的另一個重要部分是 Oracle 業務智能套件企業增強版。Oracle 業務智能企業增強版是 Oracle 最新一代的 BI 和分析工具,它提供了互動式信息板、報表和圖形、警報、高品質發佈品和您所有數據的元數據層,通過這一元數據層,可使創建報表就像從數據字典中選擇業務術語一樣簡單。
從應用程序開發人員的角度來看,絕佳之處在於 Oracle 業務智能企業增強版完全支持 Web 服務並提供有 SOAP API,這使它可以連接至 BI 元數據層、運行報表、使用業務術語檢索數據、執行分析查詢以及執行稱爲“iBot”的 BI 工作流任務。由於典型的 BI 元數據層可覆蓋機構的多個主題區,採用集成、經清理的數據;包含計算和關鍵績效指標 (KPI);由專爲快速檢索數據而調整的數據庫支持,這爲有意在業務流程和應用程序中添加分析功能的開發人員提供了一個令人感興趣的機會。
例如,在編排一個業務流程時,您希望引用業務流程中多個業務領域的數據,集合來自銷售、營銷和人力資源和庫存部門的數據。在定義業務規則或計算通過向長期客戶退費是否可讓企業長遠受益時,您可能希望引用盈利或客戶服務 KPI。所有這些都要求企業 BI 應用程序中獲有信息,通過 Oracle 業務智能企業增強版的 Web 服務界面,可以輕鬆地將這些系統的饋送信息合併到基於 SOA 的應用程序中。
集成帶來的另一機會是,可以解決單獨 BI 應用程序由來以久的缺點。企業中大多數據員工在完成日常工作時需要使用業務線應用程序,如 HR、庫存管理、銷售自動化或庫存管理應用程序,他們沒有時間或必需的培訓來使用不同的報表和分析工具。在使用查詢工具來分析業務時,他們面臨着在查詢工具和業務線工具之間進行“上下文切換”,這將對他們造成一定的影響,最好的情況是降低工作效率,最差的情況是造成洞察與利用洞察採取相應措施間的脫節。
但是,如果您能通過可以訪問集成數據和 KPI 的應用程序,或通過直接與 BI 警報和工作流集成,或者只是通過將 BI 工具生成的信息板和圖形報表嵌入應用程序的方式,將 BI 洞察直接構建到業務線應用程序中,就可以將 BI 直接嵌入應用程序並注入企業中的每個業務流程中。
Oracle 業務智能企業增強版簡介

Oracle 業務智能企業增強版是 Oracle 最新一代的 BI 和分析工具,它提供了互動式信息板、報表、高品質輸出、警報、集成(與其他廣泛的關係和在線分析處理 (OLAP) 數據源集成)以及元數據層(提供所有企業數據的業務數據字典)。Oracle 業務智能企業增強版是 Oracle 融合中間件的一部分,可從 OTN 下載,它提供了一個完整的平臺,從而爲企業各類用戶提供報表、警報、圖形和基於角色的信息板。

Oracle 業務智能企業增強版包括一系列產品,它基於四個服務器產品和基於 Microsoft Windows 的管理工具:


  • Oracle BI Server — 連接到一系列關係和 OLAP 數據源,通過業務元數據層提供到集成數據集的訪問,包括計算、聚合和 KPI
  • Oracle BI Presentation Server — 通過 ODBC 連接到 Oracle BI Server,通過一致、動態的 HTML 界面提供交互式信息板、報表和數據可視化
  • Oracle BI Delivers — 與 Oracle BI Presentation Server 協同工作,規劃報表並創建根據警報和用戶定義的閾值執行動作的工作流
  • Oracle BI Publisher — 使用源自關係數據庫、Oracle BI Answers 請求、Oracle BI Discoverer 工作表和 Oracle 業務智能企業版元數據層的數據提供“董事會級”報表

與這些服務器應用程序協同工作的是 Oracle BI Administration,它是一個基於 Microsoft Windows 的工具,用於管理元數據層、安全性、緩存和其他 Oracle BI Server 特性。
Web 服務集成
Oracle 業務智能企業版最令人感興趣的特性之一是 Oracle BI Presentation Server 提供的 SOAP 接口。該接口提供了一些 Web 服務方法,可使用 Oracle JDeveloper 10g 等工具從業務流程和應用程序中調用它們。
Oracle 業務智能企業增強版 10.1.3.3 中的 SOAP 接口提供以下服務:


  • XmlViewService — 將報表結果作爲 XML 格式的結果集返回,與 Microsoft XML 結果集格式兼容。這是通過 SOA 公開 OBI:EE 內容的重要服務,而且還是一個狀態服務,可使用同一會話密鑰對其進行多次調用。
  • SAWSessionService — 管理 OBI:EE 表示服務(以前稱爲 SAW)Web 服務會話。在使用其他服務前,應當調用這一服務,以創建可供其他服務使用的會話密鑰。
  • SecurityService — 允許在 OBI:EE Presentation Server 目錄中讀取和設置訪問控制列表 (ACL)。
  • IBotService — 允許立即執行 OBI:EE iBot。
  • WebCatalogService — 在 OBI:EE Presentation Server 目錄中公開報表、過濾器和 iBot。
  • ReplicationService — 未用於 OBI:EE 10.1.3.2,這是一箇舊式接口。
  • MetadataService — 公開 OBI:EE Analytics Server 元數據模型。
  • ReportEditingService — 允許從其他報表和過濾器中組合報表。
  • HtmlViewService — 允許通過執行報表來生成 HTML 代碼段。注意,這一服務可立即返回包含對完成的報表進行輪詢的腳本的 HTML 代碼段,隨後將把它代入得到的 HTML 中。這一服務僅限於門戶使用。
  • JobManagementService — 允許控制 OBI:EE iBot 和 OBI:EE 計劃程序執行的其他計劃作業。

儘管這些“細粒度”的 Web 服務向調用程序公開了許多 Oracle 業務智能企業增強版功能,但在“原始”狀態下使用它們將十分耗費時間,因爲您要管理認證、跨多步實現連接信息的持久、檢索數據,以及在一個相當低的級別操作結果。爲了簡化這一過程,該 Web 服務功能的幕後開發團隊在 OTN 上提供了一些示例代碼,名爲 Easy BI Bridge。
EasyBI Bridge

爲了簡化 Oracle 業務智能企業增強版 SOAP 接口的使用,Easy BI Bridge 是一個“粗粒度的”Java Web 服務示例,它公開了整個 Oracle 業務智能企業增強版 Web 服務功能中有限的一部分。
Easy BI 服務僅公開了四個易於理解的方法,而不是原有 Oracle 業務智能企業增強版 SOAP 接口公開的衆多低級方法。除了提供一組簡化的服務外,它還管理 Oracle BI Presentation Server 和調用應用程序間要求的登入/登出過程,從而減少訪問該功能所需的工作。但是要注意的是,儘管代碼可以簡化這些服務的使用,但它只是示例代碼,簡化是在隱hide了許多功能和降低性能的情況下才實現的。
安裝 Easy BI Bridge
Easy BI Bridge 和本文中的示例需要以下版本的 Oracle 軟件,現在可從 OTN 上下載它們:


  • Oracle 業務智能企業增強版 10.1.3.3
  • Oracle JDeveloper Studio Edition 10.1.3.3
  • Oracle 應用服務器 SOA 套件 10.1.3.1.0

此外,本文中的示例還使用以下版本的 Oracle 數據庫:


  • Oracle 數據庫 10.2.0.3 企業版

此處下載 Easy BI Bridge 的源代碼。使用保留全路徑名的選項將 ZIP 文件展開至“d:/workspace”目錄。(注:本教程假設您使用的是 Microsoft Windows,但 Easy BI Bridge 服務也在可其他操作系統下工作。)
Easy BI Bridge 內幕
Oracle JDeveloper 項目包含三個關鍵組件:


  • Java Web 服務 BusinessIntelligence,BPEL 流程將使用它。該服務符合 SOAP 1.1。
  • 一組生成的 Java 代理,它們使用 OBI:EE Web 服務 IBotService、SAWSessionServiceXMLViewService。這些代理是使用 Oracle JDeveloper 生成的。
  • Java 類 EasyBIBridge.java,它包含兩者間的“連接”代碼。

除了這些組件外,還有一些支持文件:


  • BridgeNamespaceContext.java 提供通過 Microsoft Rowset URN 初始化的 XML NamespaceContext。
  • RequestSpecificationRequestParameter 是包含用於 BusinessIntelligence Web 服務調用的參數的值類。

Java 包命名空間爲 oracle.bi.soa,它還包括生成的 OBI:EE Web 服務代理的命名空間 oracle.bi.soa.proxy。
BusinessIntelligence Web 服務公開以下方法:


  • evaluateCondition(RequestSpecification) — 執行 OBI:EE 報表,如果報表結果中有任何行,則返回 true
  • executeRequest(RequestSpecification) — 執行 OBI:EE 報表,並返回包含報表結果的 XML 行集
  • getDataValue(RequestSpecification) — 執行 OBI:EE 報表,並從報表結果的左上角單元格中返回一個值。這是一個方便的方法,可用於輕鬆訪問報表結果,如 KPI。
  • invokeiBot(RequestSpecification) — 計劃 iBot 以立即執行並返回。

爲求簡化,這些方法都使用同一 RequestSpecification 結構,它包含對 Oracle BI Presentation Server 中報表路徑的引用,以及一系列可選的報表參數。
要爲您的環境配置 Easy BI Bridge,啓動 Oracle JDeveloper 並選擇 File/Open...瀏覽至代碼的解壓縮目錄,打開文件 BISOABridge.jws
Oracle JDeveloper 將打開項目,如以下屏幕截圖所示。在項目中,找到 EasyBIBridge.java 源文件,雙擊打開它。

在文件中,找到 public class EasyBIBridge,修改 biServer、administratoradminPW 的值,以反映 Oracle 業務智能企業增強版安裝的值。在該示例代碼中,始終使用 Oracle BI Server 管理員帳戶連接 Web 服務。注意該示例代碼,它只應在可信環境中使用,僅限於演示目的。
保存您作出的更改,然後右擊 WebServices.deploy 文件並選擇 Deploy to EAR file。隨後,Oracle JDeveloper 將 Easy BI Service 重新編譯並部署到 EAR 文件,然後將這一文件部署到 Oracle 應用服務器 10.1.3.1.0 的本地安裝中。
要安裝本文引用的數據和 Oracle BI Server 庫,按下載中提供的說明安裝數據,並使用提供的 OTN_SOA_BI.rpd 庫文件提供已構建好的業務模型,您能在這一模型上建立所需的請求。
將 BI 功能添加到訂購演示

現在您已經成功安裝了 Easy BI Bridge,可以使用它提供的特性將 BI 功能添加到您的業務應用程序和流程中。爲了演示如何添加,您將使用 Oracle SOA Suite Order Bookings 演示中提供的一個現有業務流程,對它進行修改以利用 Oracle 業務智能企業增強版提供的功能。這樣做,您將瞭解現有流程如何使用 Oracle 融合中間的分析功能,並瞭解結合使用 Easy BI Bridge 與 Oracle JDeveloper 10g 提供的 Web 服務和 PPEL 功能是多麼簡單。
下圖概述了 Order Bookings 演示,它展示了 Oracle SOA 套件 10.1.3.1.0 的功能,演示始於通過 Web 服務接受訂單。然後通過 Enterprise Service Bus 將訂單傳送給 BPEL 流程,然後註冊訂單,然後通過 DBAdapter 從數據庫檢索用戶信息。檢索完客戶信息後,將調用信用檢查服務以驗證客戶的狀態,然後根據客戶的狀態和訂單的價值來完成訂單或不完成。

如果您還未這樣做,請下載和安裝 Order Bookings SOA 套件演示,針對您的環境對它進行配置,完成最初的下訂單流程和然後使用 Oracle BPEL 控制檯完成工作流程。本文中的示例假定您對 Order Bookings 演示和 Oracle JDeveloper 中的 BPEL 功能有一個基本瞭解,並且您已經使用 Oracle Answers(Oracle 業務智能企業增強版 10.1.3.2 或 10.1.3.3. 提供的報表編寫組件)創建了請求。
在本文使用的兩個示例中,首先您要將檢索客戶信息的數據庫現有調用替換爲對 Oracle 業務智能企業增強版的請求以針對同一客戶返回報表,但這次針對一個包含 KPI 和客戶分析的集成公司數據倉庫運行。其次,您將把對外部信用檢查代理的現有調用替換爲另一個對 Oracle 業務智能企業增強版的調用,這次對條件進行評估,以決定客戶是否有效或是欺騙性的。儘管這些是很小的示例,但它們將演示通過使用 Oracle BI Answers 創建的請求從 Oracle 業務智能通用企業信息模型檢索數據的過程,並將引導您沿着正確的方向將分析功能加入您自己的應用程序和流程中。
安裝 Oracle SOA 套件 10.1.3.1.0 之後,安裝和配置 Order Bookings 演示,使用 Applications 選項卡找到 SOAOrderBooking 項和其中的 SOAOrderBooking.bpel 文件。雙擊文件打開 Order Bookings BPEL 主流程。

BPEL 流程始於自客戶端的調用,將訂單的詳細信息插入數據庫。然後使用一些服務(這些服務顯示 BPEL 流程左右側的“泳道”)從數據庫檢索客戶的詳細信息,然後使用外部信用檢查服務檢查驗證客戶的信用度。
根據信用檢查服務的結果,將拒絕這一訂單,或根據客戶的狀態和訂單的價值,將訂單傳送至業務規則即刻對它進行處理,或將它轉交給操作員以進行審覈。

在這一,您要將對 DBAdapter 的調用替換 executeRequest Easy BI 服務的調用,把對 CreditValidatingService 的調用替換爲 evaluateCondition Easy BI 服務的調用。
執行 Oracle BI Answers 請求
您的第一個任務是打開 Order Bookings BPEL 流程,然後通過將 Easy BI Bridge 註冊一個合作伙伴服務,以使其可用。要達到這一目的,在 Oracle JDeveloper 中打開 Component Palette,使用下拉菜單選擇 Services 視圖,拖拽合作伙伴服務到 BPEL 流程中的右泳道。使用 Create Partner Link 對話框,將合作伙伴服務命名爲 BusinessIntelligence,按下 Browse WSDL Files from Local File System... 按鈕從先前安裝的 Easy BI Bridge 示例代碼中選擇文件
/bisoabridge/public_html/WEB-INF/wsdl/BusinessIntelligence.wsdl。
接受所有提示,然後選擇 BusinessIntelligence_Role 作爲合作伙伴角色。單擊 OK 保存 Partner Link 定義。現在,您已經註冊了 Easy BI Bridge,並將其服務提供給您的 BPEL 流程。

現在已加入了合作伙伴鏈接,返回到 Component Palette,使用下拉菜單選擇 Process Activities。活動列表代表您的業務流程可以採取的動作,您現在應當選擇“Invoke”活動,指示業務流程使用特定的 Web 服務。
將 Invoke 活動拖放至您的業務流程,置於現有的 GetCustInfo Invoke 活動後面。稍後,在您確定對 Oracle Business Intelligence Enterprise Edition 的調用如預期工作前,您將移除 GetCustInfo Invoke 活動,以及它之前的初始化其參數的 Assign 活動。

添加新 Invoke 活動後,將它連接至 BusinessIntelligence 合作伙伴連接,然後選擇 ExecuteRequest 服務,如以下屏幕截圖所示:

將 Invoke 活動命名爲 GetCustInfoFromBI,使用Edit Invoke 對話框提供的 Magic Wand 按鈕,使用默認名字創建全局輸入輸出變量。最 OK 保存活動。您馬上將使用這些輸入輸出變量向 Answers 請求傳送值或回傳值。
添加完新活動後,您的業務流程將類似以下內容:

下一步是向活動傳送要執行的 Oracle BI Answers 請求的名稱,和請求所要求的參數的值和名字。在完成它前,您首先需要在 Oracle BI Answers 中爲要執行的活動創建報表。這一報表將把客戶 ID 作爲參數,在 Microsoft XML 結果集格式返回客戶的詳細信息,您稍後將對格式進行轉換,以匹配其他業務流程中使用的變量。
使用 Oracle BI Answers,創建返回一個簡單欄列表的請求,如以下屏幕截圖所示。

下一步,在 CUSTID 欄上創建過濾器,過濾器使用一個 Presentation Server 變量,默認值爲 10。最後將 Web Catalog 的 Shared 區域中的報表保存到新目錄 EasyBI 中。
現在,返回到 Order Bookings BPEL 流程,使用 Process Activities 列表添加新 Assign 活動,置於剛添加的 Invoke 活動前。這一活動將分配 Invoke 活動所需的變量,並設定請求名稱、參數名稱和參數值。一旦添加了 Assign 活動,雙擊它打開編輯,調用活動 AssignRequestForBI,使用 Copy From 分配以下變量:

From To
類型 類型
表達式 '/Shared/Easy BI/Customer Details' 流程變量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:reportPath
表達式 'CUSTID' 流程變量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:params/ns32:name
ProcessVariable InputVariable/payload//client:SOAOrderBookingProcessRequest
/ns4:PurchaseOrder/ns4:CustID
流程變量 GetCustInfoFromBI_executeRequest_InputVariable
/ns32:executeRequestElement/ns32:params/ns32:value

複製了所有變量值後,Edit Invoke 活動對話框如下所示:

單擊 OK 保存 Assign 活動詳細信息。
下面,將第二個 Assign 活動添加至 BPEL 項目,置於 GetCustInfoFromBI Invoke 活動後,將其命名爲 DecodeCustInfo,如以下屏幕截圖所示。

雙擊 DecodeCustInfo Assign 活動,打開活動對話框。
現在,單擊 Copy Operation 選項卡,在對話框的左邊,選擇 Expression 作爲類型,然後使用 Expression Editor 按鈕首次添加以下表達式:
ora:parseEscapedXML()將鼠標置於括號之間,使用變量選擇程序選擇 Oracle BI Answers 請求輸出的 executeRequestResponseElement 部分,如下所示:

單擊 OK 保存表達式,返回至 Copy Operation 對話框。
Copy OperationTo 端,在變量中右擊, 右擊 Process Variables 節點,選擇 Create Variable。命名變量 DecodedResults,選擇 Element 作爲變更類型。

您現在要創建的變量是定製類型的,rowsets.xsd 文件中定義了模式該類型的模式,作爲 Easy BI Bridge 項目的一部分提供。這一模式包含一系列元素類型,如
<xsd:element name="rowset1" type="rowset1t"/><xsd:complexType name="rowset1t"><xsd:sequence><xsd:element name="Row">  <xsd:complexType><xsd:sequence><xsd:element name="Column0" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:sequence></xsd:complexType>要將模式導入 Order Bookings 項目,選擇變量瀏覽器中 Element 域旁邊的 Flashlight 徽標,打開 Type Chooser,如以下屏幕截圖所示:

Type Chooser 對話框顯示時,單擊類似於帶綠箭頭的結構圖的徽標,導入新模式。

現在瀏覽 Easy BI 項目中 rowsets.xsd 文件,路徑爲 /bisoabridge/public_html/rowsets.xsd,然後單擊 OK 導入它。在名稱爲 Imported Schemas 的 Type Explorer 樹型結構中出現一個新節點。展開這一樹形結構查看所有元素。
您使用的 XML Schema 有一些元素,其數量對應於請求輸出中列的數量。因爲您使用的報表,當 Type Chooser 對話框顯示時選擇 rowset7 元素。

單擊 OK,然後再單擊 OK,選擇 BusinessIntelligence 合作伙伴鏈接保存 XSD Schema 文件。現在,將 Copy Operation 對話框的 To 部分設置爲這個新變量提供的 rowset7 元素。完成這一步後,對話框應如以下屏幕截圖所示:

單擊 OK 保存 Assign 活動詳細信息。現在您已經獲取了 Oracle BI Answers 的輸出,並將它複製入使用 XML Schema 的“普通”變量中,最後一步是將其從這一變量中複製入處理客戶訂單的其他 BPEL 流程使用的現有的流程變量中。
這裏將不創建另一個 Assign 活動跨每個變量元素依次複製,而是使用 Transform. 活動,使用 XSL 轉換圖一步轉換所有元素。
要完成這一步,使用 Component Palette 將 Transform. 活動添加至您添加的最後一個 Assign 活動後,將活動命名爲 TransformDecodedtoCVariable。
您的 BPEL 流程應如以下屏幕截圖所示:

現在您要提供 DecodedResults XML 行集中的元素如何轉化爲正確的流程變量元素的詳細信息。要實現這一目標,雙擊 Transform. 活動顯示 Transform 對話框,在 Source and Target 區域中,選擇 DecodedResults 作爲源,選擇 CustomerServiceResponse 作爲目標。

然後,按下 Create Mapping 按鈕將兩個變量映射到一起。
注意您先前創建的請求中的各列的定義,將結果集中的每一列映射到轉換中的目標元素。比如,Answers 請求中的列 0 包含 CUSTID,因此它映射到目標區域中的 tns:custid 元素。

返回到原始 Answers 請求中查看剩下的行集元素的意義,將這些元素映射到轉換目標中的相應元素。
一旦您完成轉換映射後,保存所作工作,保存獲得的 .xsl 文件。
部署更新的 BPEL 流程
現在,您已經做好準備,可以部署和測試修改後的 BPEL 流程了。目前來說,從數據庫檢索客戶詳細信息的原始步驟仍然在業務流程中,但如確定活動如預期運行時,您將移除這一步。注意以下步驟假定您以前安裝和部署了全部 Order Bookings 演示,且通過經由演示 Web 接口提交了一個訂單,確定已正確安裝和部署 Order Bookings BPEL 流程。如未完成這此步驟,請先完成再繼續下一步。
在 Oracle JDeveloper 中,找到 System Navigator 窗格和 SOAOrderBooking.jpr 文件夾。在這一文件夾中,查找 build.xml 文件,右鍵單擊它然後選擇 Run Ant。使用 Properties 選項卡,確保安裝 Order Bookings 演示時選擇的屬性文件仍然處於選中狀態,然後單擊 OK 構建並安裝更新的 Order Bookings BPEL 流程。

查看 Apache ANT 日誌確定已成功完成構建和部署(您應當在日誌末尾看到 BUILD SUCCESSFUL 項),然後啓動 Order Bookings Web 客戶端和 Oracle BPEL Console,以確定更新後的業務流程正常工作。
使用 Web 客戶端,以 [email protected] 身份登入,下一個 Treo 650 Phone/PDA 訂單,價格爲 US$650,該訂單將傳送入 Order Bookings 業務流程,無需人員審批。一旦訂單提交後,打開 Oracle BPEL Console 和找到經修改的 SOA Order Bookings BPEL 流程的最後一個實例。如果所有都已正確設置,您應當查看經更新的業務流程,以及爲查看客戶數據對 Answers 報表的調用。

如單擊 BPEL 流程的新活動,您可以檢查每一活動所使用的數據。比如,單擊 DecodeCustInfo Assign 活動,查看載入您先前所創建變量中的 Answers 請求結果。

成功完成第一階段後,將進入第二階段,使用 Easy BI Bridge 提供的另一個方法,這一次評估條件。
評估 BI 條件
在原 BPEL 流程檢索客戶數據後,立即調用信用檢查服務驗證客戶信用卡的有效性。現在將它替換爲 Answers 請求,如果判斷客戶值得信任,則返回行,如果客戶是欺騙性的,則不返回。使用這個方法,您將能夠替換 Order Bookings BPEL 流程中現有的驗證服務調用,但稍後需要使用同一交換邏輯來接受或拒絕訂單。
返回至 Oracle JDeveloper,首先刪除 AssignRequest 和 GetCustInfo 活動,您現在已經用 BI 功能調用替換了這些活動。您的 BPEL 流程應如以下屏幕截圖所示:

現在轉至 Oracle BI Answers,並創建一個報表以返回給定的有效客戶的行。在本示例中,本文下載中提供了一個數據集,Customer Attributes 邏輯表包含一個 Fraud Alert 列,用於確定客戶的有效性。在實際情況中,您的 Answers 報表可以使用整個企業的數據,加上 BI 分析創建的量度和分析來確定客戶的狀態,但在本例中,您將使用一個返回 Y 或 N 值的簡單列。創建一個該值的過濾器,如以下屏幕截圖所示,然後使用 Presentation Server 來創建 Customer ID 參數,並將請求保存到業務流程所使用的其他請求所在的同一 Web Catalog 目錄中。

返回至 Oracle JDeveloper,使用 Component Palette 將新的 Invoke 活動添加到 InvokeCreditService 活動後面,將其鏈接至 BusinessIntelligence 合作伙伴服務,然後調用活動 InvokeCreditServiceFromBI。選擇 evaluateCondition 服務,使用 Magic Wand 按鈕,使用默認名稱創建兩個變量。

使用與前面相同的步驟,添加 Assign 活動至該新 Invoke 活動前,分配客戶 ID、演示變量名稱、InvokeCreditServiceFromBI 輸入變量的報表名稱。

以下屏幕截圖展示了經修改後的 BPEL 流程。再次保留 Assign 和 Invoke 活動原位不同,直至經檢查確定新邏輯正常工作後。

如果在請求調用後您立即查看活動,您會發現它是一個切換活動,如果您單擊 <case> 條目邊上的 Edit 鏈接,將檢查現有現有對信用驗證服務的調用所返回的值。

如果您單擊條件表達式右手邊的 Edit 鏈接,您可以修改條件轉而使用 evaluateCondition Invoke 活動返回的值,再一次檢查它是否爲 false,如請求沒有返回行則表示爲 false。

現在,保存和重新部署業務流程,作爲不能通過驗證測試的客戶提交訂單,然後使用 BPEL Control 應用程序進行檢查(經修改的流程已經正確納入了更改)。對於不能通過評估(即,欺騙性)的客戶,Answers Web 服務將返回“false”響應,這一過程將失敗,如以下 BPEL Console 輸出所示:

單擊新 InvokeCreditServiceFromBI Invoke 活動,顯示已完成條件的評估,返回“false”響應。

您已經完成了這一練習。您可以返回到 Oracle JDeveloper,移除對信用檢查服務的引用,進一步添加對 Oracle BI Answers 請求的調用,檢索數據集和單個數據元素,評估其他條件,或甚至使用 invokeIbot 服務分發報表或檢查警告。
總結

在本文中,您已瞭解了 Oracle 業務智能企業增強版提供的 Web 服務 SOAP 接口帶來的一些可能性。通過使用 Easy BI Bridge 示例代碼加快應用程序開發,您修改了現有的業務流程以從數據倉庫檢索客戶數據,並使用了數據倉庫中的數據基於 Oracle BI Answers 請求的結果來評估條件。
以這一方法使用基於標準的接口,您的應用程序和業務流程可以利用 Oracle BI 工具的數據集成、分析和元數據功能,這一方法對調用應用程序是透明的,並且可使用熟悉的工具,如 Oracle JDeveloper。要了解 Easy BI Bridge 示例代碼和 Oracle 業務智能企業增強版提供的 SOAP 接口的進一步信息,請參見 Easy BI Bridge 下載中的文檔和 OTN 上提供的產品文檔。
Mark Rittman 是 Oracle ACE 主管以及 Rittman Mead Consulting 的創建人之一,Rittman Mead Consulting 是位於英國的一家提供專業 BI 和數據倉庫解決方案的公司,同時還是 Oracle 合作伙伴。他是 Oracle User Group Business Intelligence & Reporting Tools SIG 的主席以及 ODTUG BI&DW SIG 的聯席主席,並擁有博客 www.rittmanmead.com/blog
Joel Crisp 是 Oracle 在 Oracle 業務智能套件產品方面的首席工程師。他是 British Computer Society (BCS) 的特許 IT 專家,曾就職於美國的 Trilogy 公司,並擔任過 Sun Microsystems Professional Services 的 Java 架構師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章