寧波諾丁漢大學總復習資料課件_第1頁
寧波諾丁漢大學總復習資料課件_第2頁
寧波諾丁漢大學總復習資料課件_第3頁
寧波諾丁漢大學總復習資料課件_第4頁
寧波諾丁漢大學總復習資料課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

寧波諾丁漢大學總復習資料寧波諾丁漢大學總復習資料寧波諾丁漢大學總復習資料22中間件(Middleware)是一種軟件,處于系統(tǒng)軟件(操作系統(tǒng)和網(wǎng)絡軟件)與應用軟件之間,它能使應用軟件之間進行跨網(wǎng)絡的協(xié)同工作(也就是互操作),這時允許各應用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其它應用服務”各不相同。34提供了合作對象透明設施T1:有了它,合作一方不必知道合作的另一方為誰和它在何處,只要說明自己需要怎樣的服務,T1就能為其物色到一個合適的合作方。提供了下層設備透明設施T2:有了它,合作一方不必關(guān)心合作的另一方所用的節(jié)點設備(機器和操作系統(tǒng))與本節(jié)點的差異。

5按照IDC的分類方法,中間件分為:遠程過程調(diào)用中間件分布式對象中間件數(shù)據(jù)庫訪問中間件事務處理中間件消息中間件6數(shù)據(jù)庫訪問中間件7連接應用程序和數(shù)據(jù)庫的軟件,允許通過單一的、定義良好的接口訪問網(wǎng)絡中來自不同廠商的數(shù)據(jù)庫產(chǎn)品(1)通用網(wǎng)關(guān)接口CGI(駐留在WebServer上)(2)專用API:DLL形式NSAPI(Netscape)ISAPI(Microsoft)(3)通用數(shù)據(jù)庫接口JDBC(SUN)

ODBC(Microsoft)8(4)數(shù)據(jù)庫引擎

Borland公司開發(fā),類似于ODBC,支持與數(shù)據(jù)庫的直接連接,效率較ODBC高(5)數(shù)據(jù)庫網(wǎng)關(guān)用于分布式應用環(huán)境,無需在客戶機進行各種配置,如安裝各種ODBC驅(qū)動、設置ODBC數(shù)據(jù)源等,使用網(wǎng)關(guān)來統(tǒng)一管理不同數(shù)據(jù)庫的訪問相關(guān)產(chǎn)品:EDA/SQL、RDA、DRDA

9事務處理中間件(TransactionProcessingMiddleware,TPM)10又稱分布式事務處理中間件。專門針對聯(lián)機交易處理系統(tǒng)而設計。事務是對共享的系統(tǒng)資源所完成的一件工作,它通常是由一些列操作所組成。事務必須具有ACID(Atomicity,Consistency,Isolation和Durability)屬性。11本地事務的管理由數(shù)據(jù)庫系統(tǒng)來完成。聯(lián)機交易處理系統(tǒng)需要處理大量的分布式事務。分布式事務涉及到多個數(shù)據(jù)庫,且允許這些數(shù)據(jù)庫異構(gòu),如在不同的銀行間進行資金轉(zhuǎn)賬。分布式事務需要處理大量并發(fā)進程,涉及到操作系統(tǒng)、文件系統(tǒng)、編程語言、數(shù)據(jù)通訊、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)管理及應用軟件,是一個相當艱巨的任務。通過事務處理中間件簡化應用開發(fā)。由它來負責處理聯(lián)機交易過程中分布式交易的完整性、并發(fā)控制、負載均衡以及出錯恢復等。12X/OpenDTP模型包括3個組成部分:應用程序(ApplicationProgram,簡稱AP)是事務的使用者,它是開始(Begin)、提交(Commit)和回滾(Rollback)事務的發(fā)出者。它規(guī)定一個事務的界限,并給出事務所包含的操作。資源管理器(ResourceManager,簡稱RM):提供對共享資源的訪問,數(shù)據(jù)庫管理系統(tǒng)(DBMS)或文件訪問系統(tǒng)都可以成為RM。事務管理器(TransactionManager,簡稱TM):是AP與RM之間的協(xié)調(diào)員,它給每個事務分配標示符,監(jiān)視其進展,保證事務處理的順利進行,并負責事務在失敗情況下的恢復。1314分布式事務涉及到多個結(jié)點的數(shù)據(jù)的更新,任何一個結(jié)點或結(jié)點間通信的失效都可能導致分布式事務的失敗。因此,為了保證事務的完整性,分布式事務通常采用兩階段提交協(xié)議(TwoPhaseCommitmentProtocol,簡稱2PC)來提交。15階段1(準備階段)

TM詢問所有的RM是否已準備提交。階段2(提交階段)

TM檢查所有RM的回答,只要有一個RM給出否定的回答,TM指示所有的RM進行回滾。否則,TM指示所有的RM進行提交。16常見的TPM產(chǎn)品有Microsoft的MTSSUN的JTSOMG的OTS東方通的TongEasy17消息中間件(Message-OrientedMiddleware,MOM)

18動機:RPC調(diào)用的缺點(1)客戶端與服務器端需要同時在線;(2)客戶端需要知道服務器端的調(diào)用接口,若調(diào)用接口發(fā)生改變,客戶端需要做相應變化,如通過ODBC連接訪問數(shù)據(jù)庫,客戶端需要知道遠程數(shù)據(jù)庫的類型,若類型發(fā)生改變,還需要重新裝載相應的驅(qū)動程序。19(3)操作過程中需要一直保持與服務器端的連接,直到操作結(jié)束。因而,(a)一旦連接中斷,就意味著操作失敗或數(shù)據(jù)丟失;(b)通常判斷連接中斷的時間較長,若信道的可靠性較差,容易造成連接中斷,那么應用效率將嚴重低下;(c)服務器端在執(zhí)行操作的過程中,并不涉及網(wǎng)上數(shù)據(jù)傳輸,但連接的保持占用信道,容易造成網(wǎng)絡堵塞。20這個問題可用消息中間件來解決,應用間通過傳遞消息來進行協(xié)作,是一種異步通信模式主要功能是在不同的網(wǎng)絡協(xié)議、不同的操作系統(tǒng)和不同的應用程序之間提供可靠的和可恢復的(若發(fā)生意外)消息傳送。這時應用并不需要消息即時即刻傳遞到達對方。21工作原理:應用之間以一系列消息的方式進行通信。在消息傳遞過程中,為了避免消息被丟失,消息被保存在消息隊列中。應用把消息發(fā)送到與接收者有關(guān)的隊列中。消息傳遞機制保證將消息傳送到目的地且只傳送一次。在消息傳遞過程中,應用之間不必建立聯(lián)系,發(fā)送者僅需將消息放入到與接收者有關(guān)的隊列中,而不必關(guān)心接收者是否在線。接收者僅需從自己的隊列中提取消息即可。22常見的MOM產(chǎn)品有IBM的MQSeriesMicrosoft的MSMQ東方通的TongLink/Q23寧波諾丁漢大學總復習資料1對象(Object)是具有一些狀態(tài)和行為的實體,其內(nèi)部實現(xiàn)是不可見的。對象的狀態(tài)反映對象所處的情形,通常由對象的屬性值來表示;對象的行為定義對象如何運作和反應,通常表示為對象的接口(Interface)、函數(shù)(Function)或方法(Method)。

類(Class)是一系列相近對象的一般性定義,它提供了對象屬性和行為的規(guī)范。

24寧波諾丁漢大學總復習資料1繼承(Inheritance)是基于原有對象創(chuàng)建新對象的代碼重用機制,它定義了一個類共享一個或多個其它類的結(jié)構(gòu)和行為的關(guān)系。封裝(Encapsulation)就是隱藏對象的具體實現(xiàn)細節(jié),只能通過所定義的界面來訪問和操作對象的數(shù)據(jù)。25寧波諾丁漢大學總復習資料1抽象(Abstract)是指從一組不同的實體中提取出公共特性(抽象類)的過程。抽象類部分定義了類的數(shù)據(jù)結(jié)構(gòu)和行為,且這些數(shù)據(jù)結(jié)構(gòu)和行為通常無具體的實現(xiàn)。而完整的數(shù)據(jù)結(jié)構(gòu)和行為以及它們的具體實現(xiàn)則由其子類進一步確定。因此,抽象類通常不能被實例化為一個對象。26寧波諾丁漢大學總復習資料1多態(tài)(Polymorphism)是指對同一界面或行為可以有多種不同的實現(xiàn)的能力。使用單一的消息可以調(diào)用不同的行為。例如由形狀類派生出的矩形和圓形類,都具有“繪制”方法。調(diào)用矩形對象的繪制方法將畫出一個矩形,而調(diào)用圓形對象的繪制方法將畫出一個圓形,同樣是“繪制”方法,不同的類有不同的實現(xiàn)。 27寧波諾丁漢大學總復習資料1以上幾個概念既是對面向?qū)ο蟮亩x,也是對象的特性。從面向?qū)ο蟮木幊陶Z言來看,面向?qū)ο缶褪菍ο蟆㈩惡屠^承的組合;從面向?qū)ο蟮南到y(tǒng)特性來看,面向?qū)ο髴ǚ庋b、抽象和多態(tài)。 28設計面向?qū)ο筌浖杩紤]:如何找到相關(guān)的對象并以適當粒度將它們歸類定義類的接口和繼承層次建立對象之間的基本關(guān)系設計既要對當前的問題具有針對性,又要求對將來的問題有通用性。對上述問題的一個有效解決途徑是使用設計模式29“模式描述了一個在我們周圍不斷重復發(fā)生的問題以及該問題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重復勞動”30表設計模式空間目的創(chuàng)建型結(jié)構(gòu)型行為型范圍類FactoryMethodAdapterInterpreterTemplateMethod對象AbstractFactoryBuilderPrototypeSingletonAdapterBridgeCompositeDecoratorFa?adeFlyweightProxyChainofResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor31模式分類準則:1.目的準則:模式用來完成什么工作的創(chuàng)建型,結(jié)構(gòu)型,行為型(1)創(chuàng)建型模式與對象的創(chuàng)建有關(guān)(2)結(jié)構(gòu)型模式處理類或?qū)ο蟮慕M合(3)行為型模式對類或?qū)ο笤鯓咏换ズ头峙渎氊熯M行描述322.范圍準則:指定模式主要是用于類還是用于對象

類模式用于處理類和子類之間的關(guān)系,這些關(guān)系通過繼承建立,是靜態(tài)的,在編譯時刻便確定下來了。

對象模式處理對象間的關(guān)系,這些關(guān)系在運行時刻是可以變化的,更具動態(tài)性33可復用的面向?qū)ο笤O計的兩個原則

34第一個原則:

針對接口編程,而不是針對實現(xiàn)編程35類繼承與接口繼承

類繼承是一個通過復用父類功能而擴展應用功能的基本機制。

接口繼承描述了一個對象什么時候能被用來替代另一個對象。當繼承被恰當使用時,所有從抽象類導出的類將共享該抽象類的接口。這時,所有的子類都能響應抽象類接口中的請求。支持多態(tài)機制。36根據(jù)抽象類中定義的接口來操縱對象有以下兩個好處:(1)客戶無須知道他們使用對象的特定類型,只須對象有客戶所期望的接口(2)客戶無須知道他們使用的對象是用什么類來實現(xiàn)的,他們只須知道定義接口的抽象類

這極大地減少了對象實現(xiàn)之間的相互依賴性。37第二個原則:優(yōu)先使用對象組合,而不是類繼承

38類繼承通過繼承的方式來復用并擴展父類功能。通過生成子類的復用稱為白箱復用(white-boxreuse)。在此方式中,父類的內(nèi)部細節(jié)對子類可見。新的更復雜的功能可以通過組合對象來獲得,且被組合的對象通過彼此間良好定義的接口來進行協(xié)作。這種復用風格稱為黑箱復用(black-boxreuse)。在對象組合方式中,對象的內(nèi)部細節(jié)不可見。39組合的優(yōu)點:(1)組合是通過獲得對其他對象的引用而在運行時刻動態(tài)定義的(2)對象只通過接口訪問,不破壞封裝性(3)只要類型一致,運行時刻可用一個對象來替代另一個對象(4)因為對象的實現(xiàn)是基于接口寫的,所以實現(xiàn)上存在較少的依賴關(guān)系(5)優(yōu)先使用組合有助于保持每個類的封裝性,且讓每個類集中在單個任務上40FactoryMethod

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論