偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

企業(yè)應(yīng)用架構(gòu)模式

開發(fā) 架構(gòu)
本文不會(huì)給大家講多么高深的企業(yè)級應(yīng)用架構(gòu)知識,而是會(huì)從最基本的理念開始講起。希望對大家有些許幫助。

  響應(yīng)性不同于請求處理,它是系統(tǒng)響應(yīng)請求的速度有多快。這個(gè)指標(biāo)在許多系統(tǒng)里非常重要,因?yàn)閷τ谝恍┫到y(tǒng)而言,如果其響應(yīng)太慢,用戶將難以忍受——盡管其響應(yīng)時(shí)間可能不慢。如果能夠在處理真正完成之前就給用戶一些信息表明系統(tǒng)已經(jīng)接到請求,則響應(yīng)性就會(huì)好一些。例如,進(jìn)展條。

  一條關(guān)于依賴性的普遍原則:領(lǐng)域?qū)雍蛿?shù)據(jù)源層絕對不要依賴于表現(xiàn)層。

  領(lǐng)域邏輯的組織可以分為三種主要的模式:事務(wù)腳本、領(lǐng)域模型以及表模塊

  事務(wù)腳本是這樣一個(gè)過程:從表示層獲得輸入、進(jìn)行校驗(yàn)和計(jì)算處理、將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中以及調(diào)用其他系統(tǒng)的操作等。基本的組織方式是讓每個(gè)過程對應(yīng)用戶可能做的一個(gè)動(dòng)作。所以,我們可以將這一模型想像成一個(gè)動(dòng)作或業(yè)務(wù)事務(wù)的腳本。每一個(gè)動(dòng)作是由一個(gè)過程來驅(qū)動(dòng)。

  在領(lǐng)域模型中,不再是由一個(gè)過程來控制用戶某一動(dòng)作的邏輯,而是由每一個(gè)對象都承擔(dān)一部分相關(guān)邏輯。

  在許多方面,表模塊是事務(wù)腳本和領(lǐng)域模型的一個(gè)中間地帶。它圍繞表而非直接圍繞過程來組織領(lǐng)域邏輯,提供了更多的結(jié)構(gòu),而且更容易發(fā)現(xiàn)和移除冗余代碼。但是,你無法應(yīng)用許多在領(lǐng)域模型中可以使用的組織細(xì)粒度邏輯結(jié)構(gòu)的技術(shù),例如繼承、策略和其他面向?qū)ο蟮脑O(shè)計(jì)模式。

  通常,序列化LOB(大對象Large OBject)對于用來組成應(yīng)用程序部分的相對獨(dú)立對象群而言是***的。但如果過多使用它,最終會(huì)把數(shù)據(jù)庫弄得和事務(wù)文件系統(tǒng)差不多。

  對于任何繼承結(jié)構(gòu),一般都有三種選擇??梢詾橐粋€(gè)層次中的所有類建立一個(gè)表,即單表繼承;也可以為每個(gè)具體類建立一個(gè)表,即具體表繼承;或者為這個(gè)層次中每一個(gè)類建立一個(gè)表:類表繼承。

  這三種方法有利有弊。單表繼承浪費(fèi)空間,但避免了連接操作;具體表繼承在超類改變時(shí)不得不改變所有表,但它也避免了連接操作,允許從一個(gè)表取得一個(gè)對象;類表繼承需要多個(gè)連接操作來載入一個(gè)對象,這樣通常損失了性能,但它是類和表之間最簡單的關(guān)系。

  如果機(jī)器處在屏幕流的控制下,那么你就需要應(yīng)用控制器;如果這臺機(jī)器是在用戶的控制下,你就不要應(yīng)用控制器。

  在視圖方面,可以考慮三種模式:轉(zhuǎn)換視圖模板視圖兩步視圖。

  對任何并發(fā)程序的本質(zhì)來說,僅僅考慮正確性是不夠的,還必須考慮靈活性(即有多少并發(fā)活動(dòng)可以同時(shí)進(jìn)行)。人們常常需要犧牲一些正確性以獲取更多的靈活性,這取決于失敗的嚴(yán)重性和可能性以及人們對并發(fā)處理數(shù)據(jù)的需求。

  并發(fā)問題有兩個(gè)非常重要的解決方案:一個(gè)是隔離(isolation),一個(gè)是不變性(immutability)。

  在樂觀鎖和悲觀鎖之間進(jìn)行選擇的標(biāo)準(zhǔn)是:沖突的頻率與嚴(yán)重性。如果沖突很少,或者沖突的后果不會(huì)很嚴(yán)重,那么通常情況下應(yīng)該選擇樂觀鎖,因?yàn)樗艿玫礁玫牟l(fā)性,而且更容易實(shí)現(xiàn)。但是,如果沖突的結(jié)果對于用戶來說是痛苦的,那么就需要使用悲觀鎖策略。

  超時(shí)控制和檢測機(jī)制處理已經(jīng)出現(xiàn)的死鎖,而其他的方法則盡力防止死鎖的發(fā)生。

  跨越多個(gè)請求的事務(wù)稱為長事務(wù)。

  在請求開始時(shí)啟動(dòng)事務(wù),在請求結(jié)束時(shí)提交事務(wù),這是請求事務(wù)。

  另一種方法是盡可能晚打開事務(wù)。使用延遲事務(wù)時(shí),應(yīng)在事務(wù)外完成讀取數(shù)據(jù)的操作,只在修改數(shù)據(jù)的時(shí)候啟動(dòng)事務(wù)。然而,這可能會(huì)導(dǎo)致不一致讀問題。

  當(dāng)可以并發(fā)執(zhí)行并且結(jié)果與以某種順序依次執(zhí)行的結(jié)果相同時(shí),事務(wù)就是可串行化的(serializable)。

  如果系統(tǒng)中有很多用戶,應(yīng)該考慮使用集群來提高吞吐率。會(huì)話遷移(session migration) 允許一次會(huì)話從一臺服務(wù)器轉(zhuǎn)移到另一臺服務(wù)器,從而可以由一臺服務(wù)器處理一個(gè)請求,其他服務(wù)器處理其他的請求。與其相反的方式是服務(wù)器親和(server affinity),它要求某次特定會(huì)話的所有請求只能由同一臺服務(wù)器處理。

  分布對象設(shè)計(jì)***定律:不要分布使用對象。

  這種情況下,怎樣有效利用多處理器資源呢?大多數(shù)情況下是使用集群系統(tǒng)。在每一個(gè)處理器上都部署所有的對象并在其他幾個(gè)節(jié)點(diǎn)上復(fù)制它們。這樣一來,每個(gè)處理器上的對象只需用到本地調(diào)用,從而運(yùn)行更快。還可以使用細(xì)粒度接口來設(shè)計(jì)對象,從而得到更簡單的編程模型和更好的可維護(hù)性。

  轉(zhuǎn)載自: 博客園 - 愛拼才會(huì)贏 - benjamin超人http://www.cnblogs.com/BenjaminYao/

【編輯推薦】

  1. 上網(wǎng)搶不到火車票,你該罵誰?
  2. 牛人分享網(wǎng)上訂火車票的小技巧:Firefox+Firebug
  3. 大型JavaScript應(yīng)用程序架構(gòu)模式
  4. 京東今天還在用.NET架構(gòu)的原因是什么?
  5. 系統(tǒng)架構(gòu)師談企業(yè)應(yīng)用架構(gòu)之服務(wù)層
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2012-10-08 11:16:36

企業(yè)應(yīng)用架構(gòu)標(biāo)識映射

2024-06-04 00:00:04

2012-10-08 11:18:38

企業(yè)應(yīng)用架構(gòu)工作單元模式

2015-05-04 14:07:54

2022-07-27 20:37:45

主流企業(yè)架構(gòu)

2011-12-23 10:01:29

2023-06-16 13:34:00

軟件架構(gòu)模式

2024-02-05 08:11:30

架構(gòu)模式單體

2024-09-02 10:07:52

2024-03-26 13:35:19

模型架構(gòu)框架

2023-07-27 06:51:46

Android架構(gòu)模式

2020-12-29 19:15:04

架構(gòu)模式代碼分布式

2022-06-14 11:01:37

架構(gòu)模式開發(fā)

2022-04-02 23:32:42

數(shù)據(jù)網(wǎng)格架構(gòu)

2021-07-02 06:54:45

軟件架構(gòu)模式

2018-05-24 11:38:17

2020-02-24 21:23:41

跨平臺想法嘗試

2024-09-18 09:04:33

架構(gòu)模式查詢

2023-09-11 11:18:44

軟件開發(fā)架構(gòu)

2020-10-08 18:20:54

前端后端架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號