智能用戶端相關Application Block結構功能分析(一)

來源:互聯網
上載者:User
為了能夠讓使用者更好的享受分布式程式帶來的方便,也為了讓程式員們能夠編寫出更好的分布式程式,微軟綜合胖用戶端和瘦客戶款提出了智能用戶端的概念,這種新的技術給使用者帶來的將是一種全新的體驗,可以說是綜合了原來的兩種用戶端形式的優點,而避免了缺點,在將來應該可以大行其道的。
為了實現智能用戶端這種形式,微軟為我們程式員提供了一套Application Block來協助我們,所有的Application Block都是完全公開的,我們不僅可以通過在解決方案中直接引入工程來使用它們,而且所有的原始碼都可以查看和修改(儘管微軟不提倡修改原始碼,對於不同的地方我們完全可以直接繼承過來使用,畢竟是物件導向的程式嗎),就連結構的設計,我們都可以找到,這種完全的公開無疑對我們大有好處,不僅能夠讓我們嘗到了程式模組複用的甜頭,而且還能夠從中學習到很多優秀的思想。
現在就根據自己在學習的過程中學到的東西,以及自己在編程中的一些經驗對支援智能用戶端的Application Blocks的結構和功能進行簡單的分析,與大家共用,共同進步。
首先我們可以看到,微軟提出的多個Application Blocks每個都能夠完成一種特定的功能,但是又不是完全獨立的,相互之間都有著緊密的聯絡,這些聯絡使得他們在一起能夠構成智能用戶端這個系統,能夠發揮出單個的Application Block或者簡單相加所不具備的功能,這應該是系統論的一個觀點把。
其次,在Application Blocks的設計和實現的過程中,大量的使用了設計模式,真的應了那句“沒有不使用模式的程式”的話,這為我們更好的理解設計模式也有很大的好處。因該說,設計模式是一個好東西,但是想用好卻真的是不容易,在下面我們可以從設計圖中看到在Application Blocks中是怎樣使用設計模式的。
下面我們首先來看一下在智能用戶端的實現過程中,使用了哪些Application Block,他們的功能都是怎樣的。
主要使用的Application Block
1、Data Access Application Block:負責資料存取方面的操作,在這個模組之中微軟試圖實現分散式資料庫的至少是本機對應透明性,因為它使用一個介面來實現了對不同資料庫的操作,也就是說,不管在資料層使用的是Oracle也好,是sql Server 也好還是DB2,我們無需對每一種資料庫進行具體的編程,只需要通過這個Application Block進行函數值的傳遞,那麼相應方法以及Sql語句的格式的選擇都是由這個Block自動完成的。這樣就避免我們在分布式的程式中需要針對不同的資料庫類型而編寫不同的程式了。
2、Offline Application Block:負責處理在離線的時候的業務。因為在智能用戶端的使用過程中,我們不可避免的會遇到離線的狀態。這種操作方式在B/S模式下是一種災難,因為我們無法從服務端擷取相關的資料,也不能夠把我們的操作結果反饋到伺服器上,這樣就使得我們的工作無法正常進行。而在這個Application Block中,我們可以實現完美的離線功能。對於此,我們必定會想到資料的完整性以及一致性的問題,對於這個問題,有兩種的處理方式,一種是對於一個檔案或者資料表,只允許一個使用者或者一個終端操作,一旦擷取下來就要對檔案或者資料表鎖定。另外的一種方法是不進行鎖定,允許多個使用者同時進行修改。前者的安全性可以得到很好的保證,但是靈活性是非常低的,尤其是一旦一個使用者對一個檔案或者資料表在開始了操作之後,臨時有事離開,就會導致這個檔案很長的一段時間裡面其他使用者都無法使用。後者的靈活性很高,但是就必須採取一些措施來保證資料的完整和安全。權衡這兩種,微軟還是採用了後面的一種,多個使用者可以對一個資料同時進行修改,但是在最終的處理的時候微軟在這個Block中提供了很好的處理方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.