建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記怡情娛:如何實現 SCA 的異常處理機制

?

小序

當前 Service Component Architecture(SCA)和 Service Data Object(SDO)是構建 Service Oriented Architecture(SOA)系統的兩大年夜布局支柱,同時基于 SCA 的辦事調用是實現企業營業流程的緊張包管。然則,這種辦事調用弗成能總會成功完成并返回必要的結果,它的散播式和異構的天性使得它分外輕易掉敗。這種掉敗可所以由辦事本身引起的,如輸入參數驗證掉敗,或只是辦事實現的一個 bug,或通信問題等等。那么若何在 SCA 下有效地、合理地構建非常處置懲罰機制對前進系統的穩定性和靠得住性是至關緊張的。

SCA 1.0 規范在 SCA 編程模型下定義了兩種非常,分手是 ServiceRuntimeException(SRE)用來封裝 SCA 組件之間和組件內部發生的系統非常,ServiceBusinessException(SBE)用來封裝營業邏輯非常。此中 SBE 可以承載數據工具,這樣就能給開拓者的非常處置懲罰規劃供給可決策的非常數據。

SCA1.0 的先容

SCA 是一個可履行的模型,用于將不合的辦事集成到一個營業辦理規劃。它簡化了實現營業辦事的組件編程模型,這些組件可以應用不合編程說話實現,比如 Java、C++、BPEL 等等。SCA 帶來的一些益處主要為:

松耦合

組件間的集成不必要知道彼此是基于何種編程說話實現的。在同步、異步環境下,組件都可以被方便的調用。

可擴展性

組件可被簡單的被調換。既有的辦事可被用來創建新的辦理規劃(自下而上),也可營業建模和開拓(自上而下)。

臨盆率

SCA 可讓你專心于闡發營業邏輯,而不必要過多的去擔心系統架構。SCA 簡化了所有開拓者的應用體驗(包括 J2EE 和集成開拓者)。

SCA 1.0 規范中定義了 SCA Domain(SCA 域)、Composite(和記怡情娛辦事組件復合體)、Component(辦事組件)、Binding(綁定)、Reference(引用)、 Service(辦事)、Property(屬性)等觀點如圖 1 所示

圖 1. SCA 屬性的定義

Component 是 SCA 中的基礎組成元素和基礎構建單位,也是我們詳細實現營業邏輯的地方。我們可以把它當作是構建我們利用的積木。我們可以異常輕易地把傳統的 POJO,無狀態會話 BEAN 等包裝成 SCA 中的 Component。多個 Component 組合在一路就構成了 Composite,我們可以當作是各個辦事組件構成的利用系統或是利用系統的子系統。而多個 Composite 組合在一路就構成了 SCA Domain。 SCA Composite 的主要接口規范是基于 WSDL(Web Service Description Language)的,別的為了給 Java 編程職員供給一個對照直接的接口,SCA 部分組件也供給了 Java 接口。是以,應用 Composite 的客戶端可以選擇應用 WSDL 接口或 Java 接口。

SCA 經由過程 Binding 的觀點可以為 Web Service、SCA、JCA、JMS 等辦事調用供給的進口,這個進口叫 Service(辦事),而 Composite 本身可能也必要調用其余辦事,這個調用出口叫 Reference(引用)。無論是接口照樣引用,其調用規范都是 WSDL 或 Java 接口。

綁定(Binding)的先容

Binding 是 SCA 中異常緊張的觀點,它使整合 SCA 封裝的異構辦事組件成為可能。到今朝為止,Web Service Binding、JCA Binding 和 JMS Binding 1.0 規范已經宣布,具體文檔信息可以從 OSOA 網站得到。下面我們簡單先容一下這三個綁定:

圖片看不清楚?請點擊這里查看原圖(大年夜圖)。

SCA 中,數據工具的載體是 Service Data Object(SDO)。SDO 是一個開放標準數據模型編程 API,容許開拓職員在較高的級別方便地操作數據。我們可以把有效的非常信息封裝成一個 SDO 或者是嵌套的 SDO,這樣調用者經由過程 SDO 的描述就可以準確的掏出必要的非常信息。(SDO 的具體應用要領和 API 的調用請參和記怡情娛閱 SDO2.1 規范。)

下面我們經由過程一個例子來懂得一下 SCA 的非常處置懲罰是若何實現的。

實現 SCA 非常處置懲罰的例子-TestErrorHandling

我們在構建和測試 TestErrorHandling 這個利用法度榜樣時刻,會用到 Websphere Integration Developer(WID)和 Websphere Process Server(WPS)。

WID 是基于 RAD(Rational Application Developer)的開拓情況,不僅供給了一個使可視的組件與后端實現相分離的層次布局,而且對本地和遠程 EIS(企業信息系統)上作為組件的營業流程的開拓、調試、裝置、支配等各類功能供給了可視化編輯器,這使得各個組件和它們的實現相分離。開拓職員無需深入懂得各個組件的實現便能應用 WID 開拓各類集成利用法度榜樣。

WPS 是由詳細的營業整合觀點、利用辦事器技巧以及最新的公開標準而成長而來的下一代營業流程整合辦事器。基于現有的公開標準,它實現了簡單的編程模型辦事組件模型 SCA(Service Component Architecture),調用模型,以及支配模型。

在 TestErrorHandling 利用法度榜樣中,如圖 3 所示,我們會構建兩個用 Java 實現的 SCA 辦事組件。一個是 Caller,其接口為 CallerInterface.wsdl,實現為 CallerImpl。另一個是 Callee,其接口為 CalleeInterface.wsdl,實現為 CalleeImpl。同時讓 Caller 組件引用 Callee 組件的 CalleeInterface 接口。當 Caller 組件調用 Callee 組件的時刻,Callee 組件會拋出 SBE,此中 SBE 會攜帶一個 DataObject,Caller 組件會捕捉到 SBE 并且獲得其攜帶的 DataObject。

5.CallerInterface 接口包孕 send 操作,輸入參數是名為 message 的字符串,輸出參數是名為 status 的字符串。CalleeInterface 接口包孕 receive 操作,輸入參數是名為 message 的字符串,輸出參數是名為 status 的字符串,Fault 參數是名為 FaultData 的 FaultBO。可以經由過程點擊接口編輯器上方的 按鈕來添加一個操作, 按鈕來添加一個 Fault。經由過程 分手來添加輸入和輸出參數。如圖 6、圖 7 所示:

圖 6. 定義 Caller 接口

圖 7. 定義 Callee 接口

創建辦事組件。雙擊打開 TestErrorHandling 模塊的圖形化編輯器,然后把 Java 組件圖標 拖拽到編輯器中和記怡情娛即天生一個 Java 辦事組件,并把名稱改為 Caller,同樣再創建另一個 Java 辦事組件,命名為 Callee。如圖 8 所和記怡情娛示:

圖片看不清楚?請點擊這里查看原圖(大年夜圖)。

上圖中高亮處顯示的代碼行便是我們可以給 receive 措施添加營業代碼的地方。我們讓 Callee 的 receive 措施拋出一個 ServiceBusinessException,同時攜帶我們構造的 FaultBO。

代碼清單 1. CalleeImpl.java

public String receive(String message) {

System.out.println("Enter CalleeImpl.receive(String) Method");

ServiceManager serviceManager = new ServiceManager();

BOFactory boFactory =

(BOFactory) serviceManager.locateService("com/ibm/websphere/bo/BOFact和記怡情娛ory");

System.out.println("奸淫奸淫奸淫奸淫 BOFactory created 奸淫奸淫奸淫奸淫");

DataObject faultBO = boFactory.create("http://TestErrorHandling",

"FaultBO");

System.out.println("奸淫奸淫奸淫奸淫 FaultBO created 奸淫奸淫奸淫奸淫");

faultBO.setString("ErrorCode", "1001");

faultBO.setString("ErrorMSG", "Message Incorrect");

try {

@SuppressWarnings("unused")

int i = 1 / 0;

} catch (Exception e) {

ServiceBusinessException sbe = new ServiceBusinessException(faultBO);

throw sbe;

}

System.out.println("Enter CalleeImpl.receive(String) Method");

return "Success";

}

11.雙擊 Caller 組件,天生 Caller 組件實現類的基礎框架 CallerImpl.java。我們讓 Caller 的 send 措施捕獲 ServiceBusinessException,同時獲得 FaultBO。

圖 12. 啟動 Test Module

圖片看不清楚?請點擊這里查看原圖(大年夜圖)。

3.點擊 按鈕,返回參數 status 的值為 Failed。查看 SystemOut.log 文件,Caller 組件獲得了 FaultBO。如圖 13 所示:

圖 13. 運行利用法度榜樣

圖片看不清楚?請點擊這里查看原圖(大年夜圖)。

經由過程這個簡單例子的構建和測試我們可以感到到,對付 SCA 非常處置懲罰機制的實現照樣對照簡單。開拓職員只必要把有效的非常信息構建成 SDO,然后把 SDO 放到 SBE 中拋出就可以了。當然什么樣的信息是有效非常信息,若何安排 SDO 承載非常信息的布局照樣必要開拓職員花費必然光陰來斟酌的。這樣一定會增添架構設計職員和開拓職員的事情量。然則這樣的事情量的增添對付增添客戶友好度,前進產品容錯能力照樣有積極感化的。

JCA Binding 和 Websphere Adapter 對 SCA 非常處置懲罰機制的實現

基于 SCA 1.0 規范對 SCA 非常處置懲罰機制的定義,JCA Binding 和 Websphere Adapter 6.1 版本對其進行了支持。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
湖南快乐10分预测 北京pk10赛车预测qq群 广东时时彩开奖直播网 澳洲幸运10是官方开奖的吗 体彩十一运夺金开奖结果 英雄联盟之谁与争锋 澳洲幸运10赛车计划软件下载 重庆幸运农场在线购买 刮刮卡彩票大奖照片 贵州11选5任三技巧