摘 要:計算機出現前“事務處理”已經在日常生活以及生產過程當中廣泛應用。“事務”的本意是交易,指的是雙方的貨物以及金錢交易。交易過程涉及到兩個部分,一部分是把商品給顧客,另一方面是收取貨款。這些操作是不可分割的一個整體。這一理念在引入數據庫系統之后,成為確保數據一致性以及完整性的事務機制,并且在企業軟件開發當中得到重視。本文簡要介紹事務處理的概念以及計算機當中的事務處理,并在此基礎上分析基于.Net平臺軟件開發當中的事務應用。
關鍵詞:.Net平臺;軟件開發;事務應用;數據庫
隨著計算機技術的持續發展,各種數據共享、交流以及協作在企業的桑葉活動當中應用日益廣泛,數據量規模不斷擴大體現了關系的復雜性。所以確保數據的一致性以及完整性有重要的價值。
一、事務處理概述
事務處理指的是綁定一塊的數據一同處理的過程,要好在處理環節,這一集合當中的任何步驟發生問題,都會導致事務處理失敗,并且集合當中各個步驟都需要恢復到開始的狀態。各種事務處理都需要符合ACID的特性[ 1 ]。其中原子性(A)指的是事務處理所謂有無命題,啟動之后事務要么放棄要么提交。一致性(C)指的是事務處理的全部進程都無法違背規則。這些規則明確規定數據之間的一致性。隔離性(I)指的是多個不同的事務在處理過程當中的并發控制,也就是要避免事務之間的影響。持久性(D)指的是完成事務處理之后結果需要得到持續。
在軟件開發當中常用的是分布式事務的處理。所謂分布式的事務處理指的是分布在不同或者是相同計算機當中,針對各種數據源類型提供的事務處理。分布式的事務處理當中往往應用操作系統當中的COM+技術[ 2 ]。其中NET framework屬于微軟公司開發的新平臺,一方面能夠為COM+提供支持,另一方面還能夠通過應用COM4-來實現復雜的事務處理提交,從而提高了COM+應用的效率。COM4-提供了非常完善的處理模型,確保軟件開發人員可以將精力集中到系統應用邏輯,而不需要過度留意具體的細節。這一技術融合分布式的事務處理以及組件編程等方面的優點,借助于聲明組件的屬性完成事務的自動處理。用戶僅僅需要在類定義時聲明事務處理所需要支持的各種屬性[ 3 ]。COM4-能夠根據屬性來分派事務處理的行為,并且基于組件來配置具體的屬性,然后代表組件來進行交互,最終自動處理或者是終止事務。在COM4-當中NET的執行類叫做服務部件。這些類間接或者是直接從定義在System Enter當中,并且在命名空間當中定義屬性,解釋COM+當中組件的配置以及涉及到的服務。
二、基于.Net平臺軟件開發中事務的應用
第一,數據庫SQL的事務。數據庫SQL的事務是可以說是.NET平臺軟件開發過程當中應用最為廣泛的事務,稍微具備開發經驗的軟件工作人員都會在儲存的過程當中層間編寫涉及事務SQL代碼。不管是SQL Senrer或者是Oralcle均提供了原生的事務支持。不同類型的數據庫系統在事務實現的語法方面都比較接近,比如Oracle當中的Commit等語句能夠用來提交事務或者是實現事務的回滾。不過不同數據庫當中隔離事務的級別以及具體的實現途徑還存在一定的區別。在應用事務的過程當中需要高度謹慎。例如在SQL Server軟件開發的過程當中,隔離事務的級別缺省主要是為了Read committed[ 4 ]。因為這種級別的事務經過隔離之后,僅僅可以讀取其他事務提交的結果,要不然就只能繼續等待。在事務調用遭到發現之后,就會鎖定記錄或者是鎖定數據表。這樣一來其他的會話就不能讀取或者是修改數據表當中的記錄,直到當前的事務順利完成。不過Oracle隔離事務的級別同SQL的Server具體途徑有著非常明顯的區別。Oracle當中有著專門用來回滾的空間,能夠儲存修改數據之前的具體數值。因為存在這種機制,使得Oracle事務當中的讀取操作并不會給更新帶來不利影響,各種更新修改也不會影響到讀取。通過應用這種隔離級,讀取操作無需等待事務更新完成,更新操作也不會受讀取的影響而重大un,這是使用Orack進行事務處理的典型優勢。
第二,ADO.Net的事務。ADO.Net的事務處理是微軟公司在.Net平臺下提供一種處理機制,具體實現的途徑也較為便捷,借助于構建connection的對象來實現事務的控制,通過調用的方法來實現事務的啟動。在啟動失誤之后,使用Commit的方法來實現事務的回滾。在此基礎上,通過應用數據庫SQL來實現事務控制,將SQL納入到后續的事務當中。ADO.Net應用于事務控制當中主要是基于特定數據庫的連接。不過這一事務控制的應用受數據庫的局限。在分布式的環境當中,軟件開發人員應當考慮對多個不同的服務以及資源進行協調統一[ 5 ]。
第三,system.Transactions的事務。在最初.Net1.0的框架當中,應用開發人員基本上是使用ADO.Net來實現對數據庫事務的控制。Net2.0以及后續的版本當中有了新型的事務編程方法,也就是system.Transactions的事務。需要注意的是,Transaction當中引人自動處理機制。通常條件下,在開始事務的時候,默認事務管理器是輕量級,不過在事務執行的過程當中,要是涉及對不同數據庫的的訪問,就會不斷提高級別。
綜上所述,應用.NET的對象來開發事務的時候,雖然涉及到各種數據的連接、修改、查詢以及刪除等操作技巧,不過更需要強調的是在操作數據的時候如果確保數據庫保持完整,也就是為了確保數據庫的一致性,應當將操作當作整體執行。NET平臺開發總事務的應用有著對象簡單、通信量少以及訪問速度快等優點,已經成為處理企業數據的重要途徑,也是實現遠程開發的發展方向。
參考文獻:
[1] 張梅.淺析MVC設計模式在ASP.NET平臺中的應用[J].移動信息,2015,3(9):48.
[2] 趙婉芳.基于.NET組件技術的網絡應用軟件系統研究[J].數字技術與應用,2016,2(7):55.
[3] 姜翠.MVC設計模式在ASP.NET平臺中的應用探究[J].太原城市職業技術學院學報,2016,1(4):183-185.
[4] 田寧.淺談.NET企業級應用軟件開發[J].科研,2016,3(8):192.
[5] 歐陽駿,田津.基于C#.NET平臺的OPC客戶端的開發及其應用[J].工業b,2016,2(7):233-234.
作者簡介:
潘毅(1974-),男,四川人,本科,副教授,研究方向:計算機軟件、網絡。