[優(yōu)秀畢業(yè)設(shè)計精品] 分布式軟件X系統(tǒng)體系結(jié)構(gòu)設(shè)計.doc_第1頁
[優(yōu)秀畢業(yè)設(shè)計精品] 分布式軟件X系統(tǒng)體系結(jié)構(gòu)設(shè)計.doc_第2頁
[優(yōu)秀畢業(yè)設(shè)計精品] 分布式軟件X系統(tǒng)體系結(jié)構(gòu)設(shè)計.doc_第3頁
[優(yōu)秀畢業(yè)設(shè)計精品] 分布式軟件X系統(tǒng)體系結(jié)構(gòu)設(shè)計.doc_第4頁
[優(yōu)秀畢業(yè)設(shè)計精品] 分布式軟件X系統(tǒng)體系結(jié)構(gòu)設(shè)計.doc_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-1-分布式軟件體系結(jié)構(gòu)編寫目標:面向計算機專業(yè)高年級本科生與研究生的教程。可供從事基于Internet/Intranet的分布式軟件開發(fā)人員參考使用。要求讀者:已掌握面向?qū)ο蟪绦蛟O(shè)計方法與一門面向?qū)ο蟪绦蛟O(shè)計語言(Java最佳)。具備軟件工程的基本知識??傮w構(gòu)思:強調(diào)理論與實踐相結(jié)合:理論上以CORBA2.4為模型,實踐中以VisiBrokerforJava4.0為工具。強調(diào)深度與廣度相結(jié)合:重點介紹CORBA的同時,兼顧DCOM與EJB兩種模型,最后總結(jié)對比這三種典型體系結(jié)構(gòu)的特點。主要內(nèi)容:分布式計算的基本概念:從C/S過渡到分布式體系結(jié)構(gòu)、OMA體系結(jié)構(gòu)、CORBA基本概念。分布式應用程序的開發(fā):分布式應用程序框架、用IDL編寫對象接口、編寫服務程序與客戶程序、部署應用程序。分布式計算更深入的課題:探討分布式應用程序的可靠性、伸縮性、安全性、性能等課題可能提出的問題以及解決途徑。不同體系結(jié)構(gòu)的比較:總結(jié)CORBA、DCOM、EJB、XML等特點。配合教學需要的內(nèi)容:在前言部分提供教學進度供參考,每一章后均配有課后練習思考題和上機實習題。-2-引言分布式計算是當前軟件開發(fā)技術(shù)的一個重要發(fā)展方向。C.A.R.Hoare指出:“分布式計算是一個具有重大理論與實踐意義的迷人課題,其迷人之處在于理論與實踐的同步發(fā)展,一方面實踐推動了理論,另一方面理論又指導著實踐。”本書為讀者介紹分布式計算領(lǐng)域的基本概念、開發(fā)過程、規(guī)范標準等內(nèi)容。分布式計算有兩種典型的應用途徑。第一種應用途徑是將分布式軟件系統(tǒng)看作直接反映了現(xiàn)實世界中的分布性,例如當今許多業(yè)務處理流程通常呈現(xiàn)一種分布式運作方式,負責加工或制造的工廠可能位于珠江三角洲一帶,而負責銷售與市場營銷的部門則可能分別位于北京、上海和廣州,這時負責業(yè)務流程的軟件系統(tǒng)也可作相應的分布式處理。第二種應用途徑主要用于改進某些應用程序的運行性能,使它們比單進程的集中式實現(xiàn)更具有效率,此時軟件系統(tǒng)的分布性并不是現(xiàn)實世界中分布性的映射,而是為充分利用額外的計算資源而人為引入的。在計算機硬件技術(shù)與網(wǎng)絡通信技術(shù)的支持下,應用需求驅(qū)使計算機軟件的規(guī)模與復雜度不斷增長。面對這種情況,對整個軟件系統(tǒng)的體系結(jié)構(gòu)進行分析與設(shè)計就遠遠重要于對算法與數(shù)據(jù)結(jié)構(gòu)的選擇。軟件體系結(jié)構(gòu)關(guān)心的正是整個軟件系統(tǒng)的結(jié)構(gòu),它決定了一個軟件系統(tǒng)由什么樣的組件組成,以及這些組件之間的交互關(guān)系如何。典型的軟件體系結(jié)構(gòu)風格有設(shè)計圖形用戶界面常用的事件驅(qū)動風格、操作系統(tǒng)常用的層次化設(shè)計、設(shè)計編譯程序常用的管道與過濾器風格、許多應用程序都會使用的面向?qū)ο箫L格等。分布式軟件系統(tǒng)通?;诳蛻魴C服務器風格,其中客戶程序提出信息或服務的請示,而服務程序提供這些信息或服務??蛻魴C服務器計算模型的發(fā)展大約經(jīng)歷了三個里程碑:局域網(wǎng)文件服務器、數(shù)據(jù)庫服務器以及分布式對象。由于當前面向?qū)ο蠹夹g(shù)幾乎已滲透到軟件開發(fā)的每一個角落,先進的分布式軟件開發(fā)方法當然離不開與面向?qū)ο蠹夹g(shù)的結(jié)合,因而分布式軟件體系結(jié)構(gòu)通常是客戶機服務器風格與面向?qū)ο箫L格的有效組合,典型的例子有OMG的公共對象請求代理體系結(jié)構(gòu)(CORBA)、Microsoft的分布式組件對象模型(DCOM)、SunMicrosystems的企業(yè)JavaBeans(EJB)等。在這些模型中,CORBA以其規(guī)范的嚴格性、供應商的無關(guān)性和其他許多先進的分布式計算特性成為我們教學的首選。在理論教學方面,我們可參考OMG發(fā)布的一系列規(guī)范和關(guān)于CORBA的豐富讀物;在課程實驗方面,我們既可下載使用IONAOrbix、InpriseVisiBroker等商品化CORBA產(chǎn)品的30或60天試用版,也可使用OmniORB、TAO等免費CORBA產(chǎn)品。相對于其他分布式計算模型而言,CORBA在理論更為嚴格與完善,即使讀者采用的開發(fā)平臺未必是CORBA兼容的,CORBA中提出的許多問題也應加以考慮,并可借鑒CORBA提出的問題解決方案。本書從軟件體系結(jié)構(gòu)的角度介紹分布式軟件系統(tǒng)分析與設(shè)計的基本概念,描述了分布式軟件的開發(fā)與布署過程,并探討分布式軟件的可靠性、性能、可伸縮性等高級概念。本書的主要內(nèi)容分為四個部分。第一部分“基本概念”介紹分布式計算中的基本概念與基本原理,從客戶機服務器計算模型過渡到真正的分布式計算模型,并掌握OMA與CORBA的基本概念。為避免為傳統(tǒng)集中式軟件的開發(fā)人員一次性引入太多分布式對象計算的新概念,我們需要一個過渡性介紹以實現(xiàn)循序漸進的教學目標,JavaRMI以其簡單性與實用性自然進入我們的視野。-3-第二部分“開發(fā)過程”首先利用一個完整而簡單的分布式應用例子程序介紹一個典型CORBA應用程序的開發(fā)過程,然后詳細討論如何利用接口定義語言(OMGIDL)編寫對象接口,如何編寫服務端程序與客戶端程序,以及如何部署最終的應用程序。第三部分“高級課題”探討分布式應用程序中的高級課題,提出可能產(chǎn)生的問題以及這些問題的可能解決途徑,包括分布式環(huán)境下對象查找、如何提高分布式應用程序的可靠性、如何提高服務端程序的可伸縮性等。第四部分“其他與展望”通過簡介與對比其他分布式體系結(jié)構(gòu)(如DCOM、EJB、XML等)拓寬讀者在分布式計算領(lǐng)域的知識面,探討分布式計算進一步的發(fā)展方向。本書可供從事基于InternetIntranet的分布式軟件開發(fā)人員參考使用,也可作為計算機專業(yè)高年級本科生與研究生學習分布式計算課程的教材。本書假設(shè)讀者已掌握面向?qū)ο蟪绦蛟O(shè)計方法與Java語言,并具備面向?qū)ο筌浖こ痰幕局R。如果選用本書作為授課教材,對具有面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)并熟練掌握C+和Java語言的學生宜講授60課內(nèi)學時,安排課外實驗36學時,教學進度安排可參考如下(括號中分別標明了課內(nèi)學時數(shù)與課外實驗學時數(shù)):第1章(66)、第2章(40)、第3章(46)、第4章(40)、第5章(86)、第6章(66)、第7章(20)、第8章(20)、第9章(40)、第10章(60)、第11章(66)、第12章(46),第四部分的第13至15章(40)。對于不熟悉Java語言和Web應用的學生宜講授80課內(nèi)學時,安排課外實驗40學時。本書課后練習中規(guī)模較大或復雜性較高的題目以星號“*”標出,這些題目適合作為課程設(shè)計的選題。在即將由ACMIEEE-CS修訂發(fā)布的計算教學大綱2001(CC2001)中,“以網(wǎng)絡為中心的計算(NC)”已成為14個知識領(lǐng)域之一,其中包含客戶機服務器計算、開發(fā)Web應用、通信與網(wǎng)絡、分布式對象系統(tǒng)、協(xié)作技術(shù)與群件等專題。本書內(nèi)容覆蓋了該知識領(lǐng)域的許多專題。本書中所有例子程序均使用Inprise公司的VisiBrokerforJava4.0和WebGain公司的VisualCafEnterpriseEdition4.0平臺開發(fā),這些例子很容易移植到其他開發(fā)平臺。讀者可從我們的教學網(wǎng)站下載這些例子程序的全部源代碼。分布式軟件系統(tǒng)是軟件開發(fā)的一個新興領(lǐng)域,并且各種分布式計算模型還在不斷地迅速發(fā)展。由于作者水平有限,書中謬誤之處在所難免,懇請廣大讀者不吝批評指正。-4-第一部分基本概念第1章客戶機服務器體系結(jié)構(gòu)本章利用Java語言的遠程方法調(diào)用RMI與數(shù)據(jù)庫接口JDBC開發(fā)一個簡單的電話計費查詢分布式應用程序,通過這個完整的例子幫助讀者復習客戶機服務器體系結(jié)構(gòu)的基本概念,并分析與探討該應用程序需要進一步考慮與改進的不足之處,從而引出分布式軟件體系結(jié)構(gòu)要解決的問題。1.1軟件設(shè)計的基本概念1.1.1隱式地vs顯式地隱式地(implicitly)與顯式地(explicitily)是軟件開發(fā)技術(shù)中經(jīng)常出現(xiàn)的兩個修飾術(shù)語,用于表示程序設(shè)計語言、編程工具或軟件開發(fā)環(huán)境等對軟件開發(fā)人員的兩種不同支持方式。例如一個采用面向?qū)ο蠓椒ㄍ瓿傻脑O(shè)計同樣也可以利用C語言實現(xiàn),然而C語言對面向?qū)ο笤O(shè)計的支持是一種隱式的方式,面向?qū)ο笤O(shè)計的許多概念在C語言中無法直接地表達出來,顯然這種隱式支持遠遠比不上C+、Java、Ada、Eiffel、Smalltalk等面向?qū)ο蟪绦蛟O(shè)計語言提供的顯式支持。軟件開發(fā)人員獲得顯式支持的本質(zhì)可看作是將許多原來必須由程序員動手實現(xiàn)的任務交由更底層的編譯程序、開發(fā)工具或運行環(huán)境完成。例如在數(shù)據(jù)庫管理系統(tǒng)的幫助下,應用程序員開發(fā)數(shù)據(jù)處理應用程序時減輕了許多數(shù)據(jù)定義、查詢、完整性、安全性等方面的負擔。程序設(shè)計技術(shù)或軟件開發(fā)技術(shù)的發(fā)展方向之一是不斷為軟件開發(fā)人員提供更完善、更有效的顯式支持。例如在C語言或Pascal語言中無法顯式地描述一個求平方根函數(shù)square_root()中可能引發(fā)的異常(譬如計算對象是一個負數(shù)),而C+語言或Java語言允許在函數(shù)原型中顯式地將函數(shù)體可能引發(fā)的異常表達出來,這種顯式表達使得編譯程序可幫助程序員檢查該函數(shù)體中是否真的可能引發(fā)這些異常,以及約束使用這些函數(shù)的程序必須處理哪些異常。此外,將異常作為函數(shù)原型的一部分也有助于使用函數(shù)的程序員更全面地理解這些函數(shù)的語法與語義。又如在面向?qū)ο蟪绦蛟O(shè)計中一個實體除了屬性與行為外,還應包含該實體的屬性與行為應滿足的約束。譬如一個銀行帳戶ACCOUNT除了擁有帳戶標識、存款余額等屬性以及存款、取款、查詢余額等行為之外,還至少必須滿足一個約束,即在帳戶生存期的任一時刻存款余額不得小于0(如果是允許透支的信用卡帳戶,則應將約束修改為透支不得超過某一上限,而透支上限必須是帳戶的一個屬性)。在C+語言或Java語言中,程序員無法將這一約束顯式地表達出來,只能在對象初始化、存款、取款等行為的實現(xiàn)中隱式地表達,使用這些

溫馨提示

  • 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

提交評論