青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181, 文章 - 2, 評論 - 85, 引用 - 0
數據加載中……

6月1日-----IBM WebSphere 開發者技術期刊: 使用服務組件體系結構(SCA)構建 SOA 解決方案——第 3 部分

在本系列的第 1 部分,我們引入了服務組件體系結構作為編程模型來構建和組裝集成解決方案,簡要介紹了什么是 SCA,以及一些相關術語的定義。在第 2 部分,我們討論了引用和限定符,并說明了如何將各種組件連接到一起以創建 SCA 模塊。在第 3 部分,我們將深入了解構建 SCA 模塊的主要好處之一,即能以各種組件為基礎垂直構建集成解決方案。

隨著系統不斷發展而變得更為復雜,有必要將各種解決方案進行水平集成;組織中的不同部門可能需要構建自己的解決方案并稍后將其集成到一起,或者可能不同的業務合作伙伴將需要通過 Internet 集成其解決方案。圖 1 顯示了一個此類水平集成的示例:


圖 1. 集成系統
圖 1. 集成系統

我們在第 1 部分中定義了 SCA 導入和導出,但我們將在本文中對其進行更為深入的研究,并繼續構建我們的精簡示例。具體來說,將重點討論使用 SCA 綁定的 SCA 導入和導出。SCA 綁定允許一個模塊中的 SCA 組件使用 SCA 編程模型與另一個模塊中的 SCA 組件通信。

在本文中,我們還將升級到 IBM WebSphere Integration Developer V6.0.1,該版本允許構建特定的集成解決方案,以將 IBM WebSphere Process Server V6.0.1 或 IBM WebSphere Enterprise Service Bus V6.0.1 解決方案結合使用。在這個新版本中,我們還添加了對構建各種企業服務總線(Enterprise Service Bus,ESB)中介的支持。(WebSphere ESB 運行時是 WebSphere Process Server 的子集;有關更多信息,請參閱參考資料。)







導入與導出回顧

正如在第 1 部分中提到的,用于進行模塊到模塊和模塊到外部服務調用的機制分別稱為導入導出。導入和導出是從模塊角度而言,而模塊是一個執行特定業務功能的自包含組件包:

  • 當模塊希望為其他實體(外部服務或其他模塊)提供調用業務功能的能力時,它將導出此功能。導出還提供通過各種不同的傳輸協議提供此服務的能力。導出與模塊內的特定組件關聯。

  • 當模塊希望利用其他實體(外部服務或模塊)的功能時,該模塊將導入此功能。導入還提供通過各種傳輸協議與服務提供者交換的能力。

圖 2 顯示了一個使用導入和導出的 SCA 組裝。該圖表明,導出是外部的入口點,而導入則允許您調用模塊外的功能。


圖 2. SCA 導入和導出
圖 2. SCA 導入和導出

當通過導入和導入調用 SCA 組件時,參數將按值傳遞,即參數將從一個結構中復制到另一個結構。圖 3 顯示了兩個彼此進行通信的 SCA 模塊,并說明了 SCA 導入如何與 SCA 導出匹配。


圖 3. SCA 導入和導出
圖 3. SCA 導入和導出

將 SCA 組件粘附到一起的連接機制抽象出了大部分基礎結構級的代碼。例如,可以將連接機制定義為同步或異步的,操作可以為單向的或為請求-響應型,或者可以定義組件間的事務處理行為。SCA 將為您處理基礎結構細節。

導入和導出可以與其他技術綁定,如 JMS、Enterprise JavaBeans (EJB) 或 Web 服務,如圖 4 所示。通過綁定到這些技術,可以通過使用 SCA 編程模型來讓 Web 服務客戶機調用 SCA 模塊,或者讓 SCA 模塊調用現有 EJB 模塊(由于 EJB 導入是由 Java? 接口定義的,所以使用 EJB 導入有一些限制;因此,BPEL 之類——要求合作伙伴支持 WSDL——無法調用 EJB 導入。詳見后文)。


圖 4. 與其他技術的導入與導出
圖 4. 與其他技術的導入與導出






導入/導出綁定

面向服務的體系結構的一個關鍵在于能夠公開采用大量綁定選項的服務,以及能夠使用行業規范調用服務。正如所指出的,WebSphere Process Server 和 WebSphere ESB 提供了一系列不同的綁定類型來幫助滿足此類需求。綁定類型使用 Assembly Editor 與導出和導入關聯。目前有五種主要的綁定類型:

  1. SCA——用于模塊間的 SCA 調用的綁定類型。該綁定類型是配置最簡單的類型,可提供模塊間的無縫集成。

  2. Web 服務——可提供調用外部 Web 服務和將模塊內的功能作為 Web 服務公開的功能。缺省情況下,Web 服務將使用 doc-lit 包裝樣式,可以與 HTTP 和 JMS 協議一起使用。Web 服務綁定功能是從基礎 WebSphere Application Server 基本 Web 服務引擎派生的,受到相同的限制。

  3. 企業信息系統(Enterprise Information Systems,EIS)——提供通過 WebSphere JCA Adapter 集成到現有 EIS 系統的功能。此綁定類型的可用配置將根據目標不同而有所改變(SAP、JDBC Adapter 等等)。企業數據發現服務通常與每個適配器一起提供,以幫助創建業務對象和導入與導出綁定。

  4. Java Messaging Service——提供與使用 JMS 作為消息傳遞協議的端點進行集成的功能。在這種情況下,導入和導出使用數據綁定來幫助解析正確的業務對象/操作組合。

  5. 無狀態會話 Bean——提供使用 Java 接口與無狀態會話 Bean 集成的功能。此功能只有在將 Java 引用連接到 Java 接口時才可用。在 WebSphere Integration Developer 中,使用 WSDL 引用的組件不允許連接到無狀態會話 Bean 提供的 Java 接口。在此情況下,要求使用具有 WSDL 接口和 Java 引用的中間組件。

在本文中,我們將更深入地討論 SCA 綁定的情況。本系列的后續文章將對其他導入/導出綁定進行更為深入的分析。







SCA 綁定

SCA 綁定提供了一致的方法來在 WebSphere Process Server 或 WebSphere ESB 環境中跨模塊邊界進行通信。將基于客戶機模塊使用的調用模式自動選擇 SCA 綁定所使用的基礎協議。

SCA 提供四種調用模式。

  • 同步——客戶機發出請求,并等待響應。
  • 異步單向——客戶機發出請求,不等待響應。
  • 異步延遲響應——客戶機發出請求,客戶機將在稍后請求響應。
  • 異步回調——客戶機發出請求,目標將調用使用響應調用客戶機實現的服務。

WebSphere Process Server 或 WebSphere ESB SCA 運行時將確定何時使用基礎系統集成總線(對于異步調用模式)或 RMI/IIOP(對于同步調用模式)。

SCA 綁定是由導出驅動的。在 SCA 模塊安裝到 WebSphere Process Server 的過程中,將創建必要的支持構件:

  • 對于異步調用,將在 SCA.SYSTEM.<cell name>.Bus 中創建計算單元范圍內的服務集成總線(Service Integration Bus,SIBus)目的地。
  • 對于同步通信,將創建一個指向模塊會話 Bean 的計算單元范圍內的名稱空間綁定;模塊會話 Bean 是無狀態會話 Bean,供模塊用于各種目的,如作為工作邊界、安全配置等的單元。

導入和導出文件一起工作,其中導入文件包含關于導出的重要信息,可幫助任意數量的客戶機導入目標服務。

SCA 運行時通過使用 .import 文件中的信息和調用模式(sync 或 async),可確定是使用 SIBus 目的地還是 WebSphere 名稱空間綁定。

將創建一系列 SIBus(請參閱參考資料)目的地來支持 WebSphere Process Server 和 WebSphere ESB 提供的各種異步調用類型;將為模塊、組件、導入和導出創建目的地。每個目的地和轉發路由路徑將確保將消息路由到正確的目標服務。圖 5 顯示了 SIBus 目的地的一個示例。


圖 5. SIBus 目的地
圖 5. SIBus 目的地

此外,將為模塊中的每個 SCA 導出創建一個名稱空間綁定,如圖 6 中所示。此綁定將在計算單元范圍內創建,并遵循以下命名模式:

sca_ + <Module Name> + _export_ + <ExportName>。


圖 6. 名稱空間綁定
圖 6. 名稱空間綁定

在給定這兩組構件范圍的情況下,SCA 導出綁定在整個計算單元內都可見。客戶端模塊和目標模塊可以放置在計算單元內的任何 WebSphere Process Server 或 WebSphere ESB 服務器上,且仍然能夠進行通信。







導出限定符

使用 SCA 綁定的導入是 SCA 組件在另一個模塊中的邏輯表示。因此,可以采用與圖 7 所示相同的方法在指向導出的引用上定義限定符。


圖 7. 添加限定符
圖 7. 添加限定符

導出并不包含任何限定符;相反,將要在導出的組件上放置限定符,詳見第 2 部分中的說明。







庫項目

跨越模塊邊界,必須考慮共享協定這一事實。應用程序通過接口進行通信,彼此傳遞數據對象。這意味著接口和業務對象應對模塊可見,或位于與模塊相同的位置。為了減少在每個模板中重復定義相同的接口和數據對象,WebSphere Integration Developer 包括了一個特殊的 SCA 庫模塊,可以將其添加到 SCA 模塊,就像 Java JAR 文件可以為 EAR 文件中獨立的 JAR 一樣。(事實上,WebSphere Integration Developer 就是這樣處理庫的。)這就允許您在單個位置中定義接口和業務對象,然后讓所有模塊對其進行共享。稍后我們將給出一個 SCA 庫示例。

我們的示例應用程序

我們將繼續使用在整個系列中使用的 Credit Approval 應用程序。在本文中,我們將演示如何通過將 Credit History 和 Credit Agency 模塊外部化來使各個模塊分離,以了解如何配置導出和導入。為了進行說明,我們還將演示如何在模塊間共享 SCA 庫。

為了運行此示例,您將需要正確安裝 WebSphere Integration Developer V6.0.1(該版本支持 WebSphere ESB)并在您的計算機上運行(請參閱參考資料),還要獲取本文所附的下載材料,其中包含兩個 SCA 模塊(Credit Agency 和 Credit History 模塊)和一個具有共享接口及業務對象的 SCA 庫。

  1. 設置工作區。

    1. 啟動 WebSphere Integration Developer。打開新工作區并關閉歡迎屏幕。

    2. 您將需要導入所下載的 Project Interchange。為了導入 Project Interchange,在 Business Integration 視圖內單擊右鍵,然后選擇 Import,如圖 8 所示。


      圖 8. Eclipse 導入向導
      圖 8. Eclipse 導入向導
    3. 選擇 Project Interchange,然后選擇 Next (圖 9)。


      圖 9. 導入 Project Interchange
      圖 9. 導入 Project Interchange
    4. 選擇下載文件 <Download_root>/SCAArticlePart3.zip,然后單擊 Select All,并單擊 Finish (圖 10)。


      圖 10. Select All
      圖 10. Select All
  2. 檢查我們剛剛導入的構件:

    1. 從 Business Integration 透視圖中展開 CreditApprovalLibrary。正如前面提到的,SCA 庫可以用于方便地保存模塊間共享的業務對象和接口。圖 11 顯示了 Business Integration 視圖中的 CreditApprovalLibrary。


      圖 11. CreditApprovalLibrary
      圖 11. CreditApprovalLibrary

      通過在 Business Integration 透視圖內上下文有關的菜單中選擇 New => Library,可以方便地創建 Library 項目。在此例中,我們已經提供了接口和數據對象。

    2. 展開 CreditAgencySCAModuleCreditHistory 模塊。

    3. 為每個模塊打開 Assembly Editor。在前面的第 2 部分中的示例中,我們在單個模塊中包含了多個組件。在此示例中,我們將對實現進行分離,以模擬多個獨立的解決方案。通常,SCA 具有包含多個組件的完整解決方案。對于本文,我們假定這些為不同開發組(不同的管理人員、日程安排和項目規劃)開發的完整解決方案。圖 12 顯示了 Business Integration 視圖中的 SCA 模塊。


      圖 12. SCA 模塊
      圖 12. SCA 模塊
    4. 這兩個 SCA 模塊都依賴于 SCA 庫模塊;這個依賴關系可以在 Dependency Editor 看到。分別右鍵單擊每個 SCA 模塊,并選擇 Open Dependency Editor(圖 13)。


      圖 13. 打開 Dependency Editor
      圖 13. 打開 Dependency Editor
    5. 檢查每個模塊對應的 Dependency Editor,以確保在兩個模塊間共享了 CreditApprovalLibrary,如果是這樣,CreditApprovalLibrary 將顯示為圖 14 所示的情況。


      圖 14. CreditApprovalLibrary
      圖 14. CreditApprovalLibrary
    6. 關閉編輯器。






創建 SCA 導出

接下來,我們將為每個模塊創建 SCA 導出,以便可以從其他 SCA 模塊調用此模塊。

  1. 為 CreditAgencySCAModule 創建導出:

    1. 在 WebSphere Integration Developer 中,打開 CreditAgencySCAModule Assembly Editor。在 Business Integration 視圖中展開 CreditAgencySCAModule,并雙擊 CreditAgencySCAModule Assembly Editor 圖標,如下面的圖 15 中所示。


      圖 15. 打開 Assembly Editor
      圖 15. 打開 Assembly Editor
    2. 要創建導出,請右鍵單擊 CreditApproval 組件,并選擇 Export =>SCA Binding(圖 16)。


      圖 16. 創建具有 SCA 綁定的 SCA 導出
      圖 16. 創建具有 SCA 綁定的 SCA 導出
    3. 將自動為 CreditAgency 組件創建具有 SCA 綁定的導出,如圖 17 中所示。


      圖 17. SCA 導出
      圖 17. SCA 導出
    4. 在 Assembly Editor 中選中此導出的同時查看 Properties 視圖,以檢查導出的各個屬性。您將會在 Details 選項卡中看到操作的 SCA 詳細信息,如圖 18 中所示。


      圖 18. SCA 導出詳細信息
      圖 18. SCA 導出詳細信息
    5. 切換到 Qualifiers 選項卡(圖 19)。您會發現無法添加任何限定符。這是因為導出將使用其所指向的組件的限定符。


      圖 19. 導出沒有限定符
      圖 19. 導出沒有限定符
    6. 保存并關閉 Assembly Editor。

  2. 采用類似的方法為 CreditHistorySCAModule 創建導出:

    1. 和前面一樣,為 CreditHistorySCAModule 打開 Assembly Editor。

    2. 和前面一樣,生成具有 SCA 綁定的導出(圖 20)。


      圖 20. SCA 導出
      圖 20. SCA 導出
    3. 保存并關閉編輯器。







創建 Credit Approval 模塊

現在我們將創建要通過導入調用其他兩個模塊的 CreditApprovalModule。

  1. 首先,創建一個新的 SCA 模塊:

    1. 在 Business Integration 視圖中單擊右鍵,然后選擇 New => Module

    2. 將該模塊命名為 CreditApprovalSCAModule(圖 21)。確保選中 Use Default,然后單擊 Finish。


      圖 21. 新建 SCA 模塊
      圖 21. 新建 SCA 模塊
    3. 右鍵單擊新創建的 CreditApprovalSCAModule,并選擇 Open Dependency Editor(圖 22)。


      圖 22. 打開 Dependency Editor
      圖 22. 打開 Dependency Editor
    4. 由于 CreditApproval 模塊將調用其他兩個模塊,因此需要共享在其間傳遞的接口和業務對象。請記住,我們要使用庫來存儲這些接口和業務對象。在 Dependency Editor 中的 Libraries 節中選擇 Add,如圖 23 所示。


      圖 23. 向 SCA 模塊添加庫
      圖 23. 向 SCA 模塊添加庫
    5. 選擇 CreditApprovalLibrary,然后單擊 OK

  2. 現在將創建一個調用組件。出于演示目的,我們將使用基于 Java 的簡單組件;在以后的文章中,我們將展示調用各種組件和模塊的 BPEL 流。

    1. 雙擊 CreditApprovalSCAModule Assembly 圖標,以打開 CreditApprovalSCAModule Assembly Editor(圖 24)。


      圖 24. 打開 SCA Assembly Editor
      圖 24. 打開 SCA Assembly Editor
    2. 將 SCA 組件 組件圖標(圖 25)拖放到 Assembly Editor 上。


      圖 25. 將 SCA 組件拖放到 Assembly Editor 上
      圖 25. 將 SCA 組件拖放到 Assembly Editor 上
    3. 單擊文本,并鍵入名稱,從而將組件重命名為 CreditApproval,如圖 26 中所示。


      圖 26. 更改組件名稱
      圖 26. 更改組件名稱
  3. 接下來,我們將向該組件添加接口。我們將接口存儲在庫項目中。

    1. 在組件上單擊 Interface 圖標(圖 27 的圓圈內),然后從菜單中選擇 CreditRequest


      圖 27. 向 SCA 組件添加接口
      圖 27. 向 SCA 組件添加接口
    2. 單擊 OK。

我們剛剛創建了一個 SCA 組件。該組件將通過導入調用其他兩個模塊。







創建導入

我們已經完成了導出的創建,現在就可以開始創建 SCA 導入了。我們需要為要調用的每個導出創建一個 SCA 導入。在我們的示例中,我們將進行以下工作:

  • 調用 CreditAgency 和 CreditHistory 模塊。
  • 更新 CreditHistory 導入的限定符,以在異步調用組件時正確地處理事務處理行為。
  • 假定 History 請求需要花一定的時間進行調用,那么我們將異步發出 History 請求。
  • 在請求之后,同步調用 CreditAgency 模塊。
  • 獲取信用分數后,以延遲方式獲取 History Response。
  1. 首先,為 CreditAgency 調用創建導入:

    1. 從面板上將 import 圖標拖放到 Assembly Editor 上(圖 28)。


      圖 28. 將導入拖放到 Assembly Editor 上
      圖 28. 將導入拖放到 Assembly Editor 上
    2. 單擊文本并鍵入 CreditAgencyImport,從而重命名導入,如圖 29 中所示。


      圖 29. 重命名導入
      圖 29. 重命名導入
  2. 接下來,我們將添加相應的接口。在此情況下,導入的接口必須與 CreditAgencySCAModule 中對應的導出的導入匹配。

    單擊 Import 上方的 Interface 圖標(圖 30 的圓圈內),然后選擇 CreditAgency 接口。


    圖 30. 向 SCA 導入添加導入
    圖 30. 向 SCA 導入添加導入
  3. 添加相應的綁定,在此例中,添加 SCA 綁定:

    1. 右鍵單擊導入,并選擇 Generate Binding => SCA Binding(圖 31)。


      圖 31. 向導入添加 SCA 綁定
      圖 31. 向導入添加 SCA 綁定
    2. 在 Assembly Editor 中突出顯示導入,轉到 Properties 視圖,并選擇 Binding 部分(圖 32)。單擊 Browse。


      圖 32. 瀏覽導出
      圖 32. 瀏覽導出
    3. 選擇 CreditAgencyExport(圖 33)。


      圖 33. 選擇導出
      圖 33. 選擇導出
  4. 接下來,我們需要將 CreditApproval 組件連接到 CreditAgencyImport。

    1. 在 Assembly Editor 中選擇 CreditApproval 組件,并將一個 wire 拖放到 CreditAgencyImport。


      圖 34. 將 SCA 組件連接到 SCA 導入
      圖 34. 將 SCA 組件連接到 SCA 導入
    2. 在對話框中單擊 OK,以在 CreditApproval 組件上創建引用(圖 35)。(在第 2 部分中對引用進行了討論。)


      圖 35. 確認引用創建
      圖 35. 確認引用創建
    3. 保存編輯器,并使其保持為打開狀態。下面的圖顯示了已連接的組件的最終結果。


      圖 36. 已連接的 SCA 模塊
      圖 36. 已連接的 SCA 模塊
  5. 接下來,我們將為 CreditHistoryModule 創建導入。

    1. 和前面一樣,將另一個 import 拖放到 Assembly Editor 并將其命名為 CreditHistoryImport。

    2. 向導入添加 CreditHistory 接口,如圖 37 中所示。


      圖 37. 添加 Credit History 接口
      圖 37. 添加 Credit History 接口
    3. 生成 SCA 綁定,并將 CreditApproval 連接到 CreditHistoryImport。圖 38 顯示了最終的結果。


      圖 38. 最終結果
      圖 38. 最終結果

請記住,我們假定 Credit History 組件的處理時間會稍微長一些,因此首先將觸發異步請求以獲取 History,并在稍后檢索響應。在 CreditHistory 運行的同時,我們將從 CreditAgency 模塊獲取 Credit Score。然后我們將從 CreditHistory 捕獲響應。我們可以為“服務”使用正確的 SCA API 來對 Credit History 模塊進行異步調用。在這種情況下,我們希望使用前面描述的延遲響應調用模式。







生成實現

  1. 我們現在將為 CreditApproval 組件創建一個實現。在我們的示例中,將使用一個簡單的 Java 組件。

    1. 在 Assembly Editor 中,右鍵單擊 CreditApproval 組件,并選擇 Generate Implementation => Java。


      圖 39. 生成 Java 實現
      圖 39. 生成 Java 實現
    2. 暫時將該類放在缺省包中(圖 40)。


      圖 40. 缺省包
      圖 40. 缺省包
    3. 如果希望在稍后添加本地 Java 客戶機,請在 Implement As... 對話框中選擇 Yes,以創建一個匹配的 Java 接口(圖 41)。


      圖 41. 為本地 Java 客戶機創建 Java 接口
      圖 41. 為本地 Java 客戶機創建 Java 接口
  2. 現在我們將編寫實現的代碼。

    1. 應在 Java 編輯器中打開實現類。正如您在 Java 編輯器中看到的,WebSphere Integration Developer 添加了方便的 Helper,以通過檢查模塊組裝來獲取合作伙伴。如果我們首先生成 Java 類,則這些方法將不存在。

      																				
      																						public CreditAgency locateService_CreditAgencyPartner() {
      	return (CreditAgency) ServiceManager.INSTANCE
      			.locateService("CreditAgencyPartner");
      }
      
      public CreditHistory locateService_CreditHistoryPartner() {
      	return (CreditHistory) ServiceManager.INSTANCE
      			.locateService("CreditHistoryPartner");
      }
      																				
      																		

    2. 將下面的代碼(在 <download_root>/SCAArticleSeries3/codeSnippet1.txt 中)粘貼到 calulateCreditScore 方法內。異步調用模式以粗體突出顯示。

      																				
      																						ServiceManager serviceManager = new ServiceManager();
      
      // create credit rating return data object using the BO factory
      BOFactory bof =
      (BOFactory)serviceManager.locateService("com/ibm/websphere/bo/BOFactory"
      );
      DataObject creditRating = bof.create("http://CreditApproval",
      "CreditRating");
      creditRating.setString("customerId",
      creditApp.getString("customerId"));
      
      // create and call credit history service using async deferred response invocation
      // pattern.
      
      
      																						
      																								
      																										CreditHistoryAsync cha = (CreditHistoryAsync)
      serviceManager.locateService("CreditHistoryPartner");
      																								
      
      Ticket tix = cha.getCreditLimitAsync(creditApp);
      
      CreditAgency creditAgency = (CreditAgency) locateService_CreditAgencyPartner();
      		Integer creditScore = creditAgency.getCreditScore(creditApp);
      
      Double creditLimit = cha.getCreditLimitResponse(tix, Service.WAIT);
      
      creditRating.setInt("creditScore", creditScore.intValue());
      creditRating.setDouble("creditLimit", creditLimit.doubleValue());
      return creditRating;
      																				
      																		

    3. 因為缺少導入,因此在 Eclipse Editor 中應報告一些編譯錯誤(假定啟動了自動生成功能)。在 Java 編輯器中任意位置單擊右鍵,并選擇 Source => Organize Imports,如圖 42 中所示。


      圖 42. Organize imports
      圖 42. Organize imports
    4. 將 BOFactory 接口解析到 com.ibm.websphere.bo,如圖 43 中所示。


      圖 43. 解析 BOFactory
      圖 43. 解析 BOFactory
    5. 將 Service 接口解析到 com.ibm.websphere.sca,如圖 44 中所示。


      圖 44. 將服務導入解析到 com.ibm.websphere.sca
      圖 44. 將服務導入解析到 com.ibm.websphere.sca
    6. 保存 Assembly Editor。







測試解決方案

現在可以測試我們的解決方案了。集成模塊時,每個模塊首先應進行相應的單元測試。在本文中,我們將假定各個開發團隊(CreditHistory 和 CreditAgency)都已對其組件進行了相應的測試。

  1. 將所有三個模塊都添加到 WebSphere Process Server:

    1. 在 WebSphere Integration Developer 中,轉到 Servers 視圖,右鍵單擊 WebSphere Process Server,并選擇 Add/Romove Project(圖 45)。


      圖 45. 向 WebSphere Process Server 添加或刪除項目
      圖 45. 向 WebSphere Process Server 添加或刪除項目
    2. 選擇 Add All,以將全部 SCA 模塊添加到服務器(圖 46)。


      圖 46. 添加所有模塊
      圖 46. 添加所有模塊
    3. 單擊 Finish。

  2. 通過 WebSphere Integration Developer 組件測試工具啟動服務器。

    1. 從 CreditApproval 模塊的 Assembly Editor 中,右鍵單擊 CreditApproval 組件,并選擇 Test Component,如圖 47 所示。
      圖 47. 啟動 Test Component 功能
      圖 47. 啟動 Test Component 功能
    2. 轉到 Configurations 選項卡并刪除兩個模擬器,如圖 48 中所示。如果合作伙伴不可用,可以使用模擬器來進行模擬,由于我們有實際的組件,因此不需要模擬器。


      圖 48. 刪除模擬器
      圖 48. 刪除模擬器
    3. 回到 Events 頁,在 Initial 響應參數中輸入一些輸入數據,如圖 49 中所示,然后單擊 Continue。


      圖 49. 運行組件測試
      圖 49. 運行組件測試
    4. 在 Deployment Location 對話框中,選擇 WebSphere Process Server v6.0。(圖 50)


      圖 50. 選擇 WebSphere Process Server 運行時
      圖 50. 選擇 WebSphere Process Server 運行時
  3. 現在我們將對調用路徑和結果進行檢查。

    1. 回到 Events 選項卡。從調用路徑中選擇最后一個 Return,以創建結果,如圖 51 中所示。


      圖 51. 選擇 Return
      圖 51. 選擇 Return
    2. 應該看到與圖 52 類似的結果。


      圖 52. 結果
      圖 52. 結果
    3. 如果分析調用順序,將會發現采用了異步調用:我們沒有采用“請求-響應-請求-響應”的模式,而是使用了“異步請求-請求-響應-異步響應”模式。(圖 53)


      圖 53. 異步調用路徑
      圖 53. 異步調用路徑
    4. 不保存,直接關閉測試編輯器并停止服務器。







結束語

通過導入和導出,我們可以將解決方案以面向服務的方式對外公開。在本文中,您了解了如何使用 SCA 導入和導出集成 SCA 解決方案。第 4 部分,我們將討論如何使用其他某些綁定(如 Web 服務和 JMS)與其他解決方案進行集成。

posted on 2006-06-01 16:56 wsdfsdf 閱讀(302) 評論(0)  編輯 收藏 引用 所屬分類: 技術文章

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线不卡免费欧美| 亚洲人成网站在线观看播放| 亚洲免费视频在线观看| 日韩一区二区免费高清| 亚洲另类自拍| 久久精品国产一区二区三区免费看| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲毛片在线观看.| 亚洲免费精彩视频| 久久精品国产一区二区三| 亚洲欧洲日产国产综合网| 国产精品久久久久久福利一牛影视| 午夜精品国产更新| 欧美一区二区三区四区视频| 久久久久久久久久久久久久一区| 91久久国产综合久久| 亚洲国产cao| 性欧美8khd高清极品| 欧美在线免费一级片| 欧美大片一区二区三区| 亚洲精品一区二区三区不| 噜噜噜在线观看免费视频日韩| 农村妇女精品| 久久九九精品99国产精品| 欧美成人dvd在线视频| 欧美专区日韩视频| 一区二区三区欧美亚洲| 欧美影视一区| 亚洲永久在线观看| 久久精品视频亚洲| 亚洲国产精品va在看黑人| 久久亚洲高清| 99精品99| 欧美韩日一区二区三区| 国产亚洲一本大道中文在线| 国产精品女人毛片| 91久久久在线| 久久久免费精品| 久久天天躁狠狠躁夜夜爽蜜月| 中文精品99久久国产香蕉| 久久青青草综合| 亚洲午夜高清视频| 欧美精品一区在线发布| 亚洲丶国产丶欧美一区二区三区| 亚洲先锋成人| 亚洲欧美一区二区三区极速播放| 日韩一级精品| 欧美.www| 91久久在线| 国产欧美精品va在线观看| 在线日韩欧美视频| 国产亚洲一区二区精品| 亚洲日本中文字幕| 国产精品99久久久久久久久| 亚洲无人区一区| 欧美二区在线| 久久蜜桃av一区精品变态类天堂| 久久久精品2019中文字幕神马| 欧美一区二区三区在线观看 | 美日韩精品免费| 男同欧美伦乱| 亚洲福利av| 亚洲人成网站777色婷婷| 久久国产精品亚洲va麻豆| 国产精品久久久久影院亚瑟 | 一区二区高清视频| 亚洲精品影视在线观看| 亚洲日韩第九十九页| 久久人人97超碰国产公开结果 | 亚洲级视频在线观看免费1级| 久久久999精品| 欧美一级黄色网| 欧美成人精品一区| 亚洲国产老妈| 欧美一区二区女人| 模特精品裸拍一区| 久久综合久久综合这里只有精品| 亚洲电影欧美电影有声小说| 亚洲一区视频在线| 亚洲最黄网站| 国产婷婷精品| 亚洲视频播放| 免播放器亚洲| 免费亚洲一区| 国产香蕉久久精品综合网| 久久久av毛片精品| 久久亚洲综合色| av成人免费在线观看| 中文精品视频一区二区在线观看| 国产日韩欧美三级| 亚洲一区二区三区国产| 亚洲一区二区免费| 欧美日韩高清不卡| 欧美一级理论片| 亚洲乱码视频| 国产一区二区三区电影在线观看| 牛人盗摄一区二区三区视频| 欧美精品国产精品| 亚洲一区二区三区免费观看| 欧美精品免费视频| 欧美亚洲一区在线| 欧美大胆成人| 精品1区2区| 亚洲欧洲精品成人久久奇米网 | 欧美18av| 亚洲免费在线看| 国产精品久久午夜| 在线观看中文字幕不卡| 亚洲国产精品久久久久秋霞蜜臀| 欧美亚男人的天堂| 亚洲精品影院在线观看| 久久视频在线看| 欧美一区二区三区四区高清| 欧美视频国产精品| 亚洲美女在线视频| 欧美一区二区三区免费视| 一本色道久久综合亚洲精品不 | 美国三级日本三级久久99| 一本色道久久综合一区 | 国产精品99久久久久久久vr| 欧美搞黄网站| 久久久久久久久综合| 久久精品国产亚洲一区二区三区 | 美女啪啪无遮挡免费久久网站| 欧美日韩视频在线一区二区 | 亚洲伦伦在线| 欧美日韩国产经典色站一区二区三区| 亚洲第一中文字幕在线观看| 亚洲在线网站| 亚洲欧美日韩国产成人精品影院| 日韩一区二区精品葵司在线| 欧美日韩国产色综合一二三四| 99成人在线| 一区二区欧美国产| 99日韩精品| 一区二区三区日韩精品视频| 亚洲精品中文字幕有码专区| 久久综合给合久久狠狠色| 99re66热这里只有精品3直播| 亚洲人永久免费| 亚洲国产天堂久久综合网| 久久免费偷拍视频| 欧美韩国日本一区| 国产精品国产三级国产专播精品人| 亚洲国产精品女人久久久| 亚洲日本成人女熟在线观看| 久久国产手机看片| 欧美精品一卡| 亚洲精品视频啊美女在线直播| 亚洲国产精品久久久久秋霞蜜臀| 影音先锋久久久| 久久天堂国产精品| 在线性视频日韩欧美| 亚洲免费在线播放| 欧美一级专区免费大片| 国产三区精品| 老司机成人在线视频| 最近中文字幕日韩精品| 国产日韩欧美综合精品| 欧美影院视频| 亚洲成人在线免费| 国产精品扒开腿爽爽爽视频| 亚洲专区国产精品| 在线观看成人av| 夜夜爽夜夜爽精品视频| 国产在线视频不卡二| 久久深夜福利免费观看| 亚洲欧美综合精品久久成人| 国产美女精品免费电影| 亚洲美女在线国产| 性视频1819p久久| 亚洲国产精品电影| 国产精品magnet| 亚洲国产一区二区精品专区| 99这里只有精品| 久久久欧美精品| 亚洲免费av电影| 亚洲蜜桃精久久久久久久| 亚洲欧美在线免费观看| 麻豆国产精品一区二区三区 | 在线视频日韩| 亚洲精品一区二| 国产麻豆午夜三级精品| 欧美国产91| 亚洲福利视频在线| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美在线观看一二区| 亚洲欧洲美洲综合色网| 欧美一区二区在线播放| 国产精品国产三级国产普通话三级 | 一区二区三区精密机械公司 | 久久综合网色—综合色88| 一区二区三区欧美在线| 亚洲深夜福利在线| 久久国产欧美| 亚洲在线网站| 欧美日本韩国一区| 久久精品女人天堂| 久久久久.com| 国产视频一区三区|