WCF 第五章 行为 实现事务(操作行为)
有兩個場景一般用作事務的參考。多步驟商業過程是典型跨度分,天,月的長時間運行過程。它們可以涉及多個組織和基于人的工作流。短期運行事務是那些在幾秒鐘完成并很少有外部依賴的商業操作。盡管它們都有定義的很好的接口和確定的工作流,它們是根本不同的事物。WCF支持短期運行的事務。它通過借助.NET和Windows基礎結構來實現運行在只有微軟環境平臺的事務同時通過使用WS-*標準事務來支持跨平臺。
? 多步驟商業過程一般需要同時連接自動化過程和手動工作流。它們可能需要不長時間(比如,處理一個訂單)或者幾個月(比如,獲得一個回扣)。如果一個多步驟過程(比如,計劃一次商業旅行)半途而費,前期步驟(比如,飛機票預訂)可以通過取消步驟(取消機票預訂)來補償。這些事務由一個消息代理或者企業服務比如BizTalk Server 支持。
? 短期運行的事務離散業務功能封裝。它們一般需要花費幾秒鐘完成。商業功能可以在一個高的層次暴露來聚合或者從多個源更新消息。商業功能也可以在一個低的層次(更新客戶地址)暴露來更新僅僅一個數據源。在這些情況,所有的事務內的數據更新必須成功或者失敗因為為了維護商業功能的完整它們是以原子提交的。如果一個事務內的組件更新失敗,服務必須將之前成功的更新撤銷為失敗以便于數據得以保留到它們在操作開始前的狀態。
? 這個行為通常被了解為一個ACID事務。在這個主題上有很多文章,但是簡要說來ACID事務就是:
??? 原子。 所有事務內的更新都是成功的,或者它們都被回滾了。任何部分更新都不允許。例如,在一個銀行轉賬操作中,如果取錢操作成功了但是存錢失敗了,那么取錢操作會回滾以便于總錢數不會多出也不是少。
??? 一致性。 在操作結束以后,根據商業規則所有的數據都是合法的。例如,在一個銀行轉賬事務中,接收方和發送方的賬戶必須是合法的賬戶否則事務將會終止。
??? 隔離。 當操作執行時,在事務外不可以看見任何部分結果。例如,當一個銀行轉賬操作正在執行時,其他用戶在轉賬過程中不會看到賬戶余額。
??? 持續。 當事務執行后,數據必須在一種不被系統失效影響的方式。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的WCF 第五章 行为 实现事务(操作行为)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Extjs的OPOA
- 下一篇: iOS中有两种支持机制:Notifica