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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論