天天看點

restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

restful內建規範

為了建構一個簡單而有效的Web用戶端,許多公司都采用了代表性狀态轉移(REST)架構來替代基于WSDL的Web服務。 結果,通過其REST API內建外部系統的需求增加了。

在IBM Process Designer中,可以使用内置的Web服務內建來發現基于WSDL的Web服務并輕松地對其進行內建。 但是,RESTful Web服務(REST服務)沒有WSDL,是以不能使用Web服務內建來使用REST服務。 有很多建議的方法可以使用Dojo Toolkit在Process Designer中內建REST服務,這需要一定程度的知識來編寫腳本。

IBM Business Process Manager(BPM)标準旨在為典型的業務流程管理項目提供快速的價值實作時間,而IBM BPM Advanced提供了一套完整的業務流程管理功能,包括廣泛的企業範圍服務內建。 是以,您的整體面向服務的體系結構(SOA)解決方案應在進階層中實作系統內建邏輯,而您的業務應用程式a應專注于傳遞業務價值。

本文的目的是通過使用服務元件體系結構(SCA)HTTP綁定将系統內建層與業務層分開,以介紹IBM Business Process Manager V8.0.1 Advanced中的RESTful Web服務內建。

業務場景

為了改善目前流程,一家企業決定建構一個SOA解決方案,該解決方案使用BPM V8.0.1 Advanced內建其所有現有系統。 一些限制是:

  • 每個系統都必須遵守公司範圍内的資料架構,該架構非常複雜并且具有層次結構。
  • 這些系統之一隻能通過其REST API來調用。
  • 資源有限的快速發展周期。

SOA參考體系結構(SOA RA)(圖1)讨論了為企業設計SOA解決方案時需要考慮的九個關鍵類和職責。

圖1. SOA參考架構
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

SOA原則是将業務層與技術服務層分離。 在使用IBM Business Process Manager Advanced将業務流程和企業服務連結在一起的文章中,作者讨論了BPM Advanced中業務和技術服務的分離。

基于SOA原理,本文中的解決方案将業務流程作為IBM Process Designer中的業務流程定義(BPD)實施。 REST服務內建服務作為SCA應用程式作為進階內建服務(AIS)公開給BPD。

圖2.高層架構
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

IBM Integration Designer提供了開發環境,以實作提供REST內建的SCA應用程式。 因為SCA是中間件層,是以它提供了處理高度複雜的XML模式的能力,如果不進行自定義轉換,它可能會在Process Designer中引發錯誤。 在調用REST API之前,可以将BPD使用的業務對象映射到SCA中的标準架構格式。

可以使用IBM Integration Designer的内置功能來實作該解決方案,進而消除了對定制編碼的需求。

實施解決方案的步驟概述

端到端解決方案的開發涉及以下步驟:

  1. 建立一個工具箱
  2. 在Integration Designer中實施AIS:
    1. 導入标準架構并定義接口
    2. 建立一個SCA導出 ,它将在Process Designer中作為AIS公開
    3. 建立SCA HTTP導入以調用外部REST API
    4. 實作中介流元件(MFC)并将業務對象映射到公司架構
    5. 單元測試SCA應用程式
  3. 通過AIS調用REST服務
  4. 在流程應用程式中調用AIS

建立一個工具箱

系統內建實作應可在多個流程應用程式中使用,以實作可重用性。 是以,應該在工具箱中定義AIS。

  1. 啟動Integration Designer并通過單擊“ 打開透視圖”圖示連接配接到Process Center,然後選擇Process Center 。
    圖3.切換到Process Center透視圖
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  2. 輸入Process Center URL,使用者名和密碼,然後單擊“ 登入”進行連接配接。
    圖4. Process Center登入
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  3. 選擇“ 工具箱”頁籤,然後單擊“ 建立新工具箱” 。
  4. 提供要使用的工具箱名稱和首字母縮寫詞,然後單擊“ 建立” 。
    圖5.建立一個新的工具箱
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  5. 選擇“ 在工作空間中打開”以在“業務內建”透視圖中打開工具箱。
  6. 在“工作區中的打開流程應用程式或工具包”對話框中,單擊“ 确定” 。 該工具會在

    REST_AIS_TK

    自動建立兩個新項目,如圖6所示:

    REST_AIS_TK_Implementation

    REST_AIS_TK_Library

    圖6.在工作區中打開
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

如果現有的工具包定義了要在多個流程應用程式中使用的通用業務對象,則可以将依賴項添加到工具包中,以便可以在實作中使用它們。

圖7.通用業務對象工具包
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

您必須先在流程設計器中添加依賴項,然後傳回到內建設計器以在工作區中打開工具箱。 在另一個工具箱中定義的業務對象是不可修改的,但是您可以在實作中使用它們。

<Toolkit_name>_Library

中定義的業務對象在Process Designer中可見(在本示例中為

REST_AIS_TK_Library

)。 如果行業标準架構或公司架構包含Process Designer不支援的XML構造,則必須定義一個單獨的庫,該庫對于Process Designer是不可見的。

注意 :如果沒有要使用的預定義架構,請忽略以下步驟1到13,然後跳到“ 定義接口”部分。

  1. 選擇File => New => Library ,然後提供庫名稱,例如

    Schema_Library

  2. 單擊下一步 。 應該選擇“ 選擇流程應用程式或工具箱”複選框。 確定流程應用程式或工具箱名稱正确(例如

    REST_AIS_TK

    )。
  3. 點選完成 。
  4. 右鍵單擊新建立的庫,然後從清單中選擇“ 導入 ”。
  5. 展開業務內建,然後選擇WSDL和XSD 。
    圖8.導入現有的模式檔案
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  6. 單擊下一步 。
  7. 如果您具有模式的本地副本,請選擇本地WSDL或XSD檔案,或者選擇兩者 ,然後單擊下一步 。
  8. 導航到架構檔案的位置,然後單擊“ 完成” 。 這将基于描述資料類型的XML模式生成業務對象。
    圖9.從XML模式派生的業務對象
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  9. 在“問題”視圖中可能會出現一些錯誤。 右鍵單擊Schema_Library并選擇Properties 。
  10. 展開“ 業務內建”,然後選擇“ 庫鏡像” 。 確定未選中“将庫與Process Center關聯後立即對其進行鏡像”複選框。
    圖10.庫鏡像屬性
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
    注意 :通過不鏡像該庫,可以對Process Designer隐藏任何複雜性。 有關更多詳細資訊,請參閱文章“ 一起使用IBM Integration Designer和IBM Process Designer時的最佳實踐 ”中的“最佳實踐:保護工具包中的鏡像工件”。
  11. 在“業務內建”視圖中,展開REST_AIS_TK_Implementation并輕按兩下“ 依賴關系”以打開依賴關系編輯器。
    圖11. SCA子產品依賴性
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  12. 單擊添加,然後添加Schema_Library 。
  13. 單擊Ctrl + S儲存更改。 這允許

    REST_AIS_TK_Implementation

    子產品使用從架構生成的業務對象。

定義接口

該設計使用SCA HTTP導入來調用目标REST服務。 第一步是為SCA導入和SCA導出元件定義接口。 與基于WSDL的Web服務不同,REST服務沒有接口。 您将在本節中定義的接口用于SCA元件。

SCA導出成為Process Designer中的AIS服務。 為了設定BPD和AIS之間的服務合同,導出元件必須具有一個接口,以定義BPD要使用的輸入和輸出消息。

圖12. SCA組裝圖示例
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

同樣,具有HTTP綁定的SCA導入是一個SCA工件,它必須具有接口,盡管目标REST服務未定義與其關聯的WSDL。 此接口用作SCA元件之間的協定。 是以,您應該設定有意義的接口名稱及其操作。 請注意,輸入和輸出消息類型必須與目标REST服務期望的類型完全比對。 如果您已有定義輸入和輸出類型的XML模式,則操作的輸入和輸出類型必須是在Schema_Library步驟中導入的模式類型。

  1. 在“業務內建”視圖中的REST_AIS_TK_Implementation下,右鍵單擊Interfaces并選擇New => Interface 。
    圖13.建立一個新界面
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  2. 輸入新接口的名稱,然後單擊“ 完成” 。
  3. 單擊添加請求響應操作圖示以添加要調用的REST服務的定義。
    圖14.添加請求-響應操作
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
    注意 :此示例使用從導入現有XML架構派生的業務對象:

    getCompanyInfoReq

    getCompanyInfoResponse

  4. 根據公司模式指定輸入和輸出的資料類型。
  5. 選擇“ 更改裝訂樣式以記錄未包裝的文字”以更改裝訂樣式。
    圖15.更改WSDL綁定樣式
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  6. 在“更改綁定樣式”對話框中單擊“ 是 ”以繼續更改。 綁定樣式應該已經從文檔文字包裹式變為非 文字 文檔包裹式 。
  7. 單擊Ctrl + S進行儲存。

調用REST服務時,必須完全按照目标服務的預期來構造請求。 是以,您不想使用文檔文字包裝選項,該選項将元素包裝為相應的操作名稱。 而是使用文檔文字非包裝綁定,以使生成的XML不會包含多餘的标記,這會導緻運作時錯誤。

  1. 在Business Integration視圖,REST_AIS_TK_Library下用滑鼠右鍵單擊接口來建立AIS的一個接口。
  2. 添加請求-響應操作。 請記住,該界面在Process Designer中可見。 是以,操作的名稱應該簡單明了。
  3. 如果要處理Process Designer不支援的複雜模式,則必須定義一個簡化的業務對象。 右鍵單擊Type下的字元串 ,然後選擇New定義新的業務對象。
    圖16.添加一個新的業務對象
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

如果有一個工具包包含要在流程應用程式和工具包中使用的通用業務對象,則可以将該工具包作為依賴項添加到AIS工具包中。 這使您可以使用在流程設計器中定義的業務對象。

例如,标準架構可能具有如圖17所示的複雜結構。

圖17. XML模式生成的業務對象示例
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

您可能希望使用可被Process Designer中的BPD使用的簡單類型來簡化業務對象,以便Coach可以輕松顯示資料。 例如,無法在Process Designer中正确解析具有

xs:enumeration

xs:choice

的XML模式。 相反,您可能想在Coach中添加輸入檢查,并使業務對象保持簡單,如圖18所示。

圖18.業務對象示例
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

注意 :如果您已認證依賴關系将公共業務對象添加到項目中,如圖7所示,則可以單擊“ 浏覽”選擇一個現有業務對象,而不是建立一個新的業務對象。

REST_AIS_TK_Implementation

下定義的接口在Process Designer中不可見; 是以,您可以使用不受支援的資料類型和架構。 但是,在

REST_AIS_TK_Library

下定義的接口和業務對象在Process Designer中可見。 是以,您應該設計接口和業務對象,以使業務流程開發人員可以清楚地使用它們。

圖19.業務內建視圖
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  1. 單擊Ctrl + S進行儲存。

建立SCA導出

在上一節中,您定義了一個界面來解釋您的AIS服務。 在本部分中,您将使用接口建立具有SCA綁定的Export元件,該元件将成為Process Designer中的AIS服務。

  1. 在REST_AIS_TK_Implementation下 ,輕按兩下組裝圖以打開組裝圖編輯器。
  2. 在REST_AIS_TK_Library => Interfaces下選擇接口 ,并将其拖放到裝配圖上。
  3. 選擇“ 無綁定導出”,然後單擊“ 确定” 。
    圖20.建立一個SCA導出
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  4. 在裝配圖中,右鍵單擊新建立的導出元件,然後選擇Generate Binding => SCA Binding 。
  5. 選擇導出元件後,在“ 屬性”視圖中單擊“ 綁定”頁籤。 確定已選中使操作對IBM Process Designer可見的複選框。
  6. 單擊Ctrl + S進行儲存。

注意 :當您釋出完成的SCA實作時,此SCA導出元件将在Process Designer中作為AIS服務公開,如圖21所示。

圖21.在Process Designer中将SCA導出為AIS
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

建立SCA HTTP導入

為了調用外部REST服務,您需要使用HTTP綁定實作SCA導入。

  1. 在REST_AIS_TK_Implementation下 ,輕按兩下組裝圖以打開組裝圖編輯器。
  2. 在REST_AIS_TK_Implementation => Interfaces下選擇新建立的接口 ,然後将其拖放到裝配圖畫布上的任何位置。
  3. 在“元件建立”對話框中,選擇“ 無綁定導入”,然後單擊“ 确定” 。
  4. 右鍵單擊生成的導入元件,然後選擇Generate Binding => HTTP Binding 。
  5. 輸入要內建的REST服務的端點URL,然後單擊确定 。 SCA導入上的圖示應更改。
  6. 在程式集編輯器中,選擇SCA導入,然後選擇“ 屬性”視圖,以進一步修改HTTP綁定詳細資訊。
    圖22.帶有HTTP綁定的SCA導入
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  7. 如果HTTP方法不是

    GET

    ,請從其下拉清單中選擇适當的動詞。
  8. 單擊“ 屬性”視圖中的“ 方法綁定”頁籤。
  9. 選擇REST服務的方法名稱,并確定正确設定方法綁定屬性。 ( 注 :如果HTTP方法設定為

    POST

    在方法綁定頁籤,但該方法被設定為

    GET

    在Binding頁籤,這将在運作時使用HTTP方法是

    POST

    上重寫所述的具體方法設定的屬性值。綁定級别屬性值。)
    圖23.設定HTTP方法綁定
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  10. 單擊Ctrl + S進行儲存。

如果目标REST服務在受保護的伺服器上運作,則需要在流程伺服器上配置SSL安全證書。

  1. 在管理控制台中,選擇安全性=> SSL證書和密鑰管理 。
    圖24. SSL證書和密鑰管理
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  2. 如果使用獨立伺服器,則應具有

    NodeDefaultSSLSettings

    。 在群集環境中,您還應該具有

    CellDefaultSSLSettings

    。 對于獨立伺服器,請選擇NodeDefaultSSLSettings ; 否則,請選擇CellDefaultSSLSettings以在單元級别配置SSL證書。
  3. 選擇密鑰庫和證書 。
  4. 選擇NodeDefaultTrustStore作為獨立伺服器,選擇CellDefaultTrustStore作為叢集環境。
  5. 如果尚未完成,請選擇“ 簽署者證書”以添加證書。
    圖25.配置簽名者證書
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  6. 傳回裝配圖,選擇HTTP導入,然後在“ 屬性”視圖中将SSL配置名稱設定為适當的密鑰存儲名稱。
    圖26. HTTP綁定屬性
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
    注意 :對于獨立伺服器,它應該是

    NodeDefaultTrustStore

    ;對于叢集環境,它應該是

    CellDefaultTrustStore

  7. 單擊Ctrl + S進行儲存。

實作中介流元件(MFC)

在這種情況下,目标REST服務使用Process Designer不支援的資料類型。 是以,您需要轉換傳入的資料并将其映射到模式生成的業務對象。 MFC提供了一個内置的映射元件,可以輕松完成任務。

  1. 在REST_AIS_TK_Implementation裝配圖中,在調闆的Components下選擇Mediation Flow ,并将其拖放到裝配圖上。
    圖27.添加中介流
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  2. 根據需要重命名中介流元件。
  3. 将CompanyInfoAISExport1連接配接到新建立的中介流元件(在此示例中為REST_Mediation)。 在彈出對話框中,單擊“ 确定”以将比對的界面添加到中介流中。
  4. 将REST_Mediation連接配接到REST_CompanyInfoImport1。 在彈出對話框中,單擊“ 确定”以添加要在中介流元件上建立的比對引用。
  5. 單擊Ctrl + S進行儲存。
  6. 輕按兩下

    REST_Mediation

    并單擊“ 是”以實施。
  7. 單擊“ 确定”以在預設檔案夾中生成該實作( 注 :如果要在某個檔案夾中建立中介流實作,請單擊“ 建立檔案夾”以定義特定的目标檔案夾。)
  8. 在中介流編輯器中,選擇操作,然後單擊空白中介流 。
    圖28.實作調解流程
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  9. 在Transformation下 ,選擇HTTP Header Setter并将其拖放到編輯器中。
  10. 将操作輸入連接配接到HTTP Header Setter。
    圖29. HTTP Header Setter中介原語
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  11. 選中HTTP Header Setter原語後,單擊Properties視圖中的Details頁籤。
  12. 單擊“ 添加”以設定HTTP标頭值,然後從“ 标頭名稱”中選擇“ 媒體類型” ,然後在“ 值”字段中輸入

    application/xml

    圖30.設定HTTP标頭值
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  13. 點選完成 。
  14. 同樣,将标題值設定為Accept和Content-Type 。
    圖31. HTTP Header Setter詳細資訊
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  15. 在右窗格中,展開“ 引用”,然後選擇目标REST服務操作并将其拖放到編輯器中。
  16. 将HTTP Header Setter原語連接配接到新添加的Service Invoke原語,然後選擇使用Mapping原語轉換消息 。
  17. 輕按兩下新建立的Mapping原語,并在New XML Map向導中接受預設值,然後單擊Finish 。 根據需要實施映射,以正确構造目标REST服務的輸入。
  18. 同樣,将“服務調用”原語的out端子連接配接到“輸入響應”。 在彈出對話框中,選擇“使用映射原語轉換消息” 。
  19. 輕按兩下新建立的Mapping原語,并在New XML Map向導中接受預設值,然後單擊Finish 。
    圖32.映射示例
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  20. 實作原語以正确地将服務響應映射到AIS接口的簡化輸出。
    圖33.調解流程示例
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  21. 單擊Ctrl + S進行儲存。
  22. 傳回到REST_AIS_TK_Implementation組裝圖,然後選擇中介流元件。
  23. 在“ 屬性”視圖中,選擇“ 詳細資訊”頁籤,并将中介接口的“ 首選”互動樣式設定為“ 同步” 。 ( 注意 :預設情況下,中介的首選互動樣式為Any 。)
    圖34.首選的互動樣式
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  24. 選擇導出CompanyInfoAISExport1并確定将首選互動樣式設定為Synchronous 。 另外,請確定選中了“ 綁定”頁籤中的“ 使操作對IBM Process Designer可見” 。

    為了使您的SCA服務可以在Process Designer中作為AIS使用,以便BPD可以使用它,首選的互動樣式必須為Synchronous (不是Any或Asynchronous ),以便控件可以傳回給調用BPD。 否則, 可以與服務一起使用嗎? 在Process Designer中,AIS元件的狀态顯示為“ 否”,而不是“ 是” 。

    圖35. Process Designer中的AIS定義
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

測試SCA實施

在将SCA實施釋出到Process Center之前,請確定在本地伺服器上對服務進行單元測試。

圖36.伺服器視圖
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  1. 在裝配圖中,右鍵單擊

    ComponentInfoAISExport1

    并選擇Test Component 。
  2. 在初始請求參數部分下輸入測試資料
  3. 單擊繼續以運作測試。
    圖37.內建測試用戶端
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  4. 在“ 部署位置”向導中,選擇本地測試伺服器,然後單擊“ 完成” 。
    圖38.選擇部署位置
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  5. 在“使用者登入-預設子產品測試”對話框中,輸入适當的使用者ID和密碼進行連接配接,然後單擊“ 确定” 。 在開始執行測試之前,這會自動将應用程式部署到伺服器。

如果測試成功完成,則準備将流程應用程式連接配接到Process Designer中的進階內建。 否則,進行必要的修複,然後右鍵單擊“ 調用”,然後選擇“ 重新運作”以再次進行測試。

圖39.重新執行測試
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

一旦對SCA實施進行了徹底的測試,請確定該工具箱的狀态未

[changed]

。 如果是這樣,請右鍵單擊并從菜單中選擇“ 重新整理并釋出” ,以将代碼同步到Process Center。

圖40.重新整理并釋出工具箱
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

通過AIS調用REST服務

REST_AIS_TK_Implementation

子產品中定義的SCA導出在Process Designer中成為AIS。 AIS的輸入和輸出與您在“導出”元件的界面中定義的類型一緻。

  1. 啟動Process Designer并在設計器中打開工具箱。
  2. 在實作下 ,輕按兩下CompanyInfoAIS以打開AIS。 確定沒有錯誤或警告。
    圖41.進階內建服務
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  3. 為了確定AIS正常工作,請建立測試工具。 單擊使用者界面旁邊的+号,然後選擇人員服務 。
  4. 單擊“ 變量”頁籤,然後添加儲存AIS輸入和輸出的變量。
    圖42.設定變量
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  5. 傳回到“ 圖”頁籤,并将AIS拖放到圖上。
  6. 選擇AIS後,單擊“ 資料映射”頁籤。
  7. 對于“ 輸入映射” ,單擊“選擇變量”圖示以選擇輸入變量。
  8. 同樣,單擊“選擇變量”圖示以選擇變量以儲存“ 輸出映射”的輸出值。
    圖43.測試裝置
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  9. 添加一個Coach任務以輸入輸入資料,并添加一個Coach任務以顯示調用AIS的輸出。
    圖44.人員服務圖
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  10. 儲存更改
  11. 單擊運作服務以執行測試工具并運作測試以確定測試成功完成。
    圖45.運作服務
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

如果遇到問題,請單擊“ 調試服務”以調試模式運作測試工具。 您可以單步執行服務以查找故障點。

在調用AIS之前,您應該看到

SCAConnector

項類型,如圖46所示。

圖46.調試服務
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

在下一步中,如果看到的是預設的Coach而不是所建構的Coach,則可能是SCA應用程式未正确部署。

圖47.狀态欄
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

從流程應用程式中調用AIS

為了将內建層與業務邏輯分開,AIS在工具箱中實作,以便多個流程應用程式可以利用其服務。 本節示範如何從流程應用程式調用工具箱中定義的AIS。

  1. 為了使該工具包可用于其他工具包和流程應用程式,您需要建立一個快照。 單擊快照圖示以建立工具箱的新快照。

    提示 :Integration Designer使用三位數的版本系統 (<major>。<minor>。<service>)來版本SCA應用程式。 是以,建議您也為快照使用三位數字的版本。

  2. 建立快照後,單擊“進行中心”圖示以傳回首頁。
  3. 單擊“ 流程應用程式”頁籤,然後選擇一個現有流程應用程式,或者通過單擊“ 建立新流程應用程式” ,然後選擇“ 在設計器中打開”來建立新流程應用程式 。
  4. 在TOOLKITS下 ,将依賴項添加到AIS工具箱

    REST_AIS_TK

    圖48.工具包依賴性
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  5. 如果您使用的是新流程應用程式,請通過單擊“ 流程”旁邊的+并選擇“ 業務流程定義”來建立一個新流程。 否則,請打開現有過程。
  6. 在“ 變量”頁籤中,為AIS添加适當的輸入和輸出變量。
  7. 傳回到“ 圖表”頁籤。 在右側窗格中,選擇“ 活動”任務,然後将其拖放到“ 參與者”泳道上。
  8. 在參與者通道中添加第二個活動詢問。
  9. 重命名任務,使其描述任務的目的。
  10. 在TOOLKITS下 ,展開REST_AIS_TK ,然後在Implementation下選擇CompanyInfoAIS并将其拖放到System通道上。
    圖49.将AIS添加為任務
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  11. 連接配接所有任務以完成業務流程。
    圖50.添加人工任務
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  12. 在“ 參與者”通道中右鍵單擊活動任務,然後選擇“ 活動向導” 。
  13. 選擇使用者任務 ,然後單擊下一步 。
  14. 驗證變量,然後單擊完成 。
  15. 輕按兩下使用者任務以實作Coach輸入輸入并顯示輸出。
  16. 在圖中選擇AIS任務CompanyInfoAIS 。
  17. 在“ 屬性”視圖中選擇“ 資料映射” ,然後設定輸入和輸出。
    圖51.業務流程定義
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  18. 儲存更改。

    注意:這是BPD的最簡單示例。 在通常的實踐中,您可以建立包裝器內建服務 ,該服務調用AIS服務,然後将包裝器服務添加到BPD。 如果要建立測試工具或包裝器服務(類似于在

    REST_AIS_TK

    建立的測試工具),則可以将測試工具從工具箱複制到流程應用程式。
    圖52.從工具箱複制服務
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  19. 單擊檢查器切換到流程檢查器 。
  20. 單擊運作過程圖示以測試過程。
    圖53.流程檢查器
    restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中
  21. 運作流程執行個體并驗證端到端流程。

    有關如何使用Inspector運作和調試流程執行個體的更多資訊,請參閱資訊中心 。

提示和技巧

Process Inspector無法單步執行實作AIS的SCA應用程式。 為此,在Integration Designer中,右鍵單擊工具箱,然後選擇Test => Attach to Toolkit 。

圖54.附加到工具箱
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

單擊繼續圖示以打開一個對話框,提示您将測試用戶端連接配接到哪個伺服器。

圖55.啟動測試用戶端跟蹤
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

在這種情況下,請選擇Process Center而不是本地Process Server,因為Process Application在Process Center的回放伺服器上運作。

圖56.選擇伺服器
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

一旦資料傳遞到SCA實作,您就可以在測試用戶端中跟蹤事件。

運作時管理

與AIS實作相關聯的SCA應用程式被部署為WebSphere企業應用程式,您可以直接從WebSphere Integrated Solutions Console或管理控制台進行管理。

當您在Process Designer中單擊“運作服務”或“運作流程”時,必要的SCA工件會自動安裝到Process Center上的播放伺服器上。 在管理控制台中,選擇應用程式=> SCA子產品。 SCA子產品名稱是

<toolkit name>_Implementation

與在Integration Designer中一樣。

圖57. WebSphere Integrated Solutions Console
restful內建規範_将RESTful Web服務內建到IBM Business Process Manager中的業務應用程式中

目前工作流程應用程式或工具箱的應用程式名稱為

<acronym>>-Tip-<module name>

。 如果部署快照的特定版本,則“

Tip

将替換為快照版本。

圖57顯示了REST_AIS_TK_Implementation子產品的三個執行個體:

  • 在執行REST_AIS_TK工具包中的測試工具期間,将安裝

    REST-Tip_REST_AIS_TK_ImplementationApp

  • 在執行REST測試應用程式流程應用程式期間,将安裝

    TEST-Tip_REST_AIS_TK_ImplementationApp

  • 在REST測試應用程式流程應用程式快照的部署過程中,将安裝

    TEST-1.0.0_REST_AIS_TK_ImplementationApp

結論

本文為您提供了将REST服務內建到IBM Business Process Manager V8.0.1 Advanced中的分步示例。 由于REST服務沒有WSDL,是以如果沒有自定義編碼,則不能使用Process Designer中的内置Web服務內建來使用REST服務。 此外,使用高度複雜的XML模式可能會導緻在沒有伺服器腳本的情況下解析錯誤。 SOA原則是将業務層與技術服務層分離。 是以,應将業務流程與低層服務分開,以內建外部REST服務,并通過AIS使用服務。 這将業務邏輯與中間件功能分開,并使解決方案更加健壯和可重用。

翻譯自: https://www.ibm.com/developerworks/bpm/library/techarticles/1312_hyakuna/1312_hyakuna.html

restful內建規範