2015-07-02 96 views

回答

0

在遇到類似問題時遇到這些參考文獻。希望能幫助到你。

  • http://spf13.com/post/soap-vs-rest

    WS-AtomicTransaction的 需要ACID事務的業務的,你會需要SOAP。雖然REST支持事務處理,但它不是全面的且不符合ACID標準。幸運的是,ACID交易 在互聯網上幾乎從未有意義。 REST受HTTP 本身的限制,它不能提供跨分佈式事務資源的兩階段提交,但SOAP可以。互聯網應用一般不需要 需要這種級別的交易可靠性,企業應用 有時會這樣做。

  • https://msdn.microsoft.com/en-us/magazine/dd942839.aspx

    什麼交易?

    這裏是另一個區域,其中SOAP和WS- *對 顯式支持「高級」功能,而REST沒有。 WS-Atomic Transactions 支持基於SOAP的服務的分佈式兩階段提交事務語義。 REST不支持分佈式事務。 一般而言,如果您想要某個 REST式系統中的事務,您可以創建一個新資源。 (創建新資源 每當遇到RESTful系統的問題時通常會解決大多數問題。)您可以擁有一個名爲Transaction的資源。當您的客戶需要做一些交易(例如在兩個銀行賬戶之間轉賬 )時,客戶創建一個交易資源 ,通過執行POST指定受影響的所有正確資源(在我的示例中爲 兩個銀行賬戶)到交易工廠的URI。 客戶端然後可以通過向事務 URI發送PUT並通過向URI發送DELETE來關閉事務來執行更新。

    這當然需要手工編碼和在你的系統明確 一些控制量,而WS-原子事務系統 更自動,因爲(在Windows通訊 基礎的情況下),它是依賴於你的運行時的管道。

    如果您的系統絕對需要不同系統的原子事務語義,那麼WS-Atomic事務可能是不錯的選擇。 以這種方式使用分佈式事務可能會也可能不會是智能 ,因爲它會增加兩個系統之間的耦合,並且如果您不控制兩端的代碼,則會產生潛在的問題 。 但最重要的是使用正確的工具進行正確的 工作(一旦你找出正確的工作是什麼)。爲了保護REST,我認爲可以公平地說,考慮到今天的分佈式,面向服務的體系結構,使用分佈式事務將兩個端點緊密地耦合到 可能不是最好的設計。另一方面,在某些情況下需要這種類型的功能,如果需要,還可以使用 ,使用SOAP和WS-Atomic事務。

+0

感謝pramod對您的幫助 – ganeshbevara1984