軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件
《軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件(60頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件1第第1 1章章 軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)方法( (三)軟件開(kāi)發(fā)技術(shù)三)軟件開(kāi)發(fā)技術(shù)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2 2|83|83頁(yè)頁(yè)問(wèn)題的提出什么是構(gòu)件、中間件?什么是構(gòu)件、中間件?什么是什么是CORBA、DOM和和JEB?什么是軟件復(fù)用?什么是軟件復(fù)用?什么是什么是C/S?B/S?C/S和和B/S的區(qū)別?的區(qū)別?下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3 3|83|83頁(yè)頁(yè)1 1了解目前主要的軟件開(kāi)發(fā)技術(shù)了解目前主要的軟件開(kāi)發(fā)技術(shù)2 2了解構(gòu)件技術(shù)了解構(gòu)件技術(shù)3 3了解軟件復(fù)用技術(shù)了解軟件復(fù)用技
2、術(shù)4 4了解了解CORBACORBA、DCOMDCOM和和J2EEJ2EE技術(shù)技術(shù)5 5了解了解C/SC/S和和B/SB/S技術(shù)及開(kāi)發(fā)基礎(chǔ)技術(shù)及開(kāi)發(fā)基礎(chǔ)下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4 4|83|83頁(yè)頁(yè)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)技術(shù)構(gòu)件技術(shù)構(gòu)件技術(shù)軟件復(fù)用技術(shù)軟件復(fù)用技術(shù)C/S技術(shù)技術(shù)B/S技術(shù)技術(shù)下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第5 5|83|83頁(yè)頁(yè)構(gòu)件技術(shù)構(gòu)件技術(shù)軟件產(chǎn)業(yè)和軟件工程技術(shù)正面臨著新的挑戰(zhàn)。軟件產(chǎn)業(yè)和軟件工程技術(shù)正面臨著新的挑戰(zhàn)。而傳統(tǒng)的軟件設(shè)計(jì)思想根本無(wú)法應(yīng)對(duì)。在這一而傳統(tǒng)的軟件設(shè)計(jì)思想根本無(wú)法應(yīng)對(duì)。在這一背景下,構(gòu)件技術(shù)應(yīng)運(yùn)而生。背景下
3、,構(gòu)件技術(shù)應(yīng)運(yùn)而生。構(gòu)件技術(shù)是基于構(gòu)件技術(shù)是基于OO技術(shù)上的更高級(jí)的抽象。它技術(shù)上的更高級(jí)的抽象。它把底層的對(duì)象集合打成包,組成功能把底層的對(duì)象集合打成包,組成功能“插件插件”?;跇?gòu)件技術(shù)的軟件生產(chǎn)就是把已存在的構(gòu)件基于構(gòu)件技術(shù)的軟件生產(chǎn)就是把已存在的構(gòu)件組裝(集成)到當(dāng)前軟件系統(tǒng)的框架結(jié)構(gòu)中,組裝(集成)到當(dāng)前軟件系統(tǒng)的框架結(jié)構(gòu)中,從而生產(chǎn)出新的軟件產(chǎn)品。從而生產(chǎn)出新的軟件產(chǎn)品。可以預(yù)見(jiàn),構(gòu)件技術(shù)是軟件產(chǎn)業(yè)化革命的必然可以預(yù)見(jiàn),構(gòu)件技術(shù)是軟件產(chǎn)業(yè)化革命的必然發(fā)展趨勢(shì)。發(fā)展趨勢(shì)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第6 6|83|83頁(yè)頁(yè)構(gòu)件技術(shù)概述構(gòu)件技術(shù)概述OO技術(shù)是在技術(shù)
4、是在“數(shù)據(jù)十算法數(shù)據(jù)十算法”的基礎(chǔ)上提升了對(duì)事物的的基礎(chǔ)上提升了對(duì)事物的認(rèn)識(shí)方法。而構(gòu)件技術(shù)則在認(rèn)識(shí)方法。而構(gòu)件技術(shù)則在“對(duì)象對(duì)象+算法算法”的基礎(chǔ)上將的基礎(chǔ)上將認(rèn)識(shí)事物的角度從對(duì)象個(gè)體本身提升到個(gè)體在群體中的認(rèn)識(shí)事物的角度從對(duì)象個(gè)體本身提升到個(gè)體在群體中的作用。這個(gè)認(rèn)識(shí)的提高具有本質(zhì)的不同。作用。這個(gè)認(rèn)識(shí)的提高具有本質(zhì)的不同。從抽象程度來(lái)看,從抽象程度來(lái)看,OO技術(shù)已達(dá)到了類(lèi)級(jí)重用(代碼重技術(shù)已達(dá)到了類(lèi)級(jí)重用(代碼重用),它以類(lèi)為封裝的單位。而構(gòu)件是對(duì)一組類(lèi)的組合用),它以類(lèi)為封裝的單位。而構(gòu)件是對(duì)一組類(lèi)的組合進(jìn)行封裝,可以將底層的多個(gè)邏輯組合成高層次上的粒進(jìn)行封裝,可以將底層的多個(gè)邏輯組合
5、成高層次上的粒度更大的新構(gòu)件,甚至直接封裝到一個(gè)系統(tǒng),使模塊的度更大的新構(gòu)件,甚至直接封裝到一個(gè)系統(tǒng),使模塊的重用從代碼級(jí)、對(duì)象級(jí)、架構(gòu)級(jí)到系統(tǒng)級(jí)都可能實(shí)現(xiàn)。重用從代碼級(jí)、對(duì)象級(jí)、架構(gòu)級(jí)到系統(tǒng)級(jí)都可能實(shí)現(xiàn)。顯然,構(gòu)件技術(shù)將抽象的程度提到了一個(gè)更高的層次。顯然,構(gòu)件技術(shù)將抽象的程度提到了一個(gè)更高的層次。這種思想正在改變著軟件的開(kāi)發(fā)方法和人們的思維方式。這種思想正在改變著軟件的開(kāi)發(fā)方法和人們的思維方式。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第7 7|83|83頁(yè)頁(yè)構(gòu)件的屬性構(gòu)件的屬性構(gòu)件是可獨(dú)立配置的單元,因此構(gòu)件必須自構(gòu)件是可獨(dú)立配置的單元,因此構(gòu)件必須自包容。包容。構(gòu)件強(qiáng)調(diào)與環(huán)境和
6、其他構(gòu)件的分離,因此構(gòu)構(gòu)件強(qiáng)調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實(shí)現(xiàn)是嚴(yán)格封裝的,外界沒(méi)機(jī)會(huì)或沒(méi)必件的實(shí)現(xiàn)是嚴(yán)格封裝的,外界沒(méi)機(jī)會(huì)或沒(méi)必要知道構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。要知道構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。構(gòu)件可以在適當(dāng)?shù)沫h(huán)境中被復(fù)合使用,因此構(gòu)件可以在適當(dāng)?shù)沫h(huán)境中被復(fù)合使用,因此構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境交互。交互??梢钥闯?,構(gòu)件沿襲了對(duì)象的封裝特性,但可以看出,構(gòu)件沿襲了對(duì)象的封裝特性,但同時(shí)并不局限于一個(gè)對(duì)象,其內(nèi)部可以封裝同時(shí)并不局限于一個(gè)對(duì)象,其內(nèi)部可以封裝一個(gè)或多個(gè)類(lèi)、原型對(duì)象甚至過(guò)程,結(jié)構(gòu)是一個(gè)或多個(gè)類(lèi)、原型對(duì)象甚至過(guò)程,結(jié)構(gòu)是靈活的。靈活的。下一
7、頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第8 8|83|83頁(yè)頁(yè)構(gòu)件的使用構(gòu)件的使用每個(gè)構(gòu)件都需要先注冊(cè)才能使用。構(gòu)件是通過(guò)它們的接口每個(gè)構(gòu)件都需要先注冊(cè)才能使用。構(gòu)件是通過(guò)它們的接口特征來(lái)標(biāo)識(shí)的,它們所提供的服務(wù)與訪問(wèn)方式是接口特征特征來(lái)標(biāo)識(shí)的,它們所提供的服務(wù)與訪問(wèn)方式是接口特征的一部分內(nèi)容。要考慮的因素包括:的一部分內(nèi)容。要考慮的因素包括:應(yīng)用編程接口(應(yīng)用編程接口(API)。)。構(gòu)件所需的開(kāi)發(fā)和集成。構(gòu)件所需的開(kāi)發(fā)和集成。運(yùn)行需求,例如資源的使用(內(nèi)存和硬盤(pán)),時(shí)間或速度運(yùn)行需求,例如資源的使用(內(nèi)存和硬盤(pán)),時(shí)間或速度以及網(wǎng)絡(luò)協(xié)議。以及網(wǎng)絡(luò)協(xié)議。服務(wù)需求,例如操作系統(tǒng)的接口,或
8、需要其他構(gòu)件的支持服務(wù)需求,例如操作系統(tǒng)的接口,或需要其他構(gòu)件的支持等。等。安全特征,例如訪問(wèn)控制和身份驗(yàn)證協(xié)議等。安全特征,例如訪問(wèn)控制和身份驗(yàn)證協(xié)議等。嵌入式設(shè)計(jì)假定,有特定的數(shù)值嵌入式設(shè)計(jì)假定,有特定的數(shù)值/非數(shù)值算法使用。非數(shù)值算法使用。異常處理。異常處理。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第9 9|83|83頁(yè)頁(yè)實(shí)現(xiàn)構(gòu)件技術(shù)的必備條件實(shí)現(xiàn)構(gòu)件技術(shù)的必備條件有標(biāo)準(zhǔn)軟件體系結(jié)構(gòu),保證構(gòu)件間通信協(xié)議統(tǒng)一,有標(biāo)準(zhǔn)軟件體系結(jié)構(gòu),保證構(gòu)件間通信協(xié)議統(tǒng)一,實(shí)現(xiàn)同步和異步操作控制,突破本地空間限制,實(shí)現(xiàn)同步和異步操作控制,突破本地空間限制,充分利用網(wǎng)絡(luò)環(huán)境。充分利用網(wǎng)絡(luò)環(huán)境。構(gòu)件有標(biāo)
9、準(zhǔn)接口,保證系統(tǒng)可分解成多個(gè)功能獨(dú)構(gòu)件有標(biāo)準(zhǔn)接口,保證系統(tǒng)可分解成多個(gè)功能獨(dú)立的單元,用構(gòu)件組裝而成。立的單元,用構(gòu)件組裝而成。構(gòu)件獨(dú)立于編程語(yǔ)言。構(gòu)件獨(dú)立于編程語(yǔ)言。構(gòu)件提供版本兼容,來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的擴(kuò)展和更構(gòu)件提供版本兼容,來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的擴(kuò)展和更新。新。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第10 10|83|83頁(yè)頁(yè)構(gòu)件設(shè)計(jì)構(gòu)件設(shè)計(jì)因?yàn)闃?gòu)件依賴于平臺(tái)環(huán)境,所以設(shè)計(jì)時(shí)有特殊要求:因?yàn)闃?gòu)件依賴于平臺(tái)環(huán)境,所以設(shè)計(jì)時(shí)有特殊要求: 以接口為核心,使用開(kāi)放標(biāo)準(zhǔn)以接口為核心,使用開(kāi)放標(biāo)準(zhǔn)。 統(tǒng)一的開(kāi)放標(biāo)準(zhǔn)有,統(tǒng)一的開(kāi)放標(biāo)準(zhǔn)有,CORBA、DCOM、EJB等。等。 構(gòu)件語(yǔ)義的描述要形式化
10、構(gòu)件語(yǔ)義的描述要形式化。在不同標(biāo)準(zhǔn)中,它們都有自。在不同標(biāo)準(zhǔn)中,它們都有自己的形式化語(yǔ)義規(guī)定。如在己的形式化語(yǔ)義規(guī)定。如在EJB中有會(huì)話中有會(huì)話Bean和實(shí)體和實(shí)體Bean事務(wù)描述符等。事務(wù)描述符等。 提煉封裝構(gòu)件過(guò)程要嚴(yán)格記錄提煉封裝構(gòu)件過(guò)程要嚴(yán)格記錄。由于構(gòu)件允許第三方使。由于構(gòu)件允許第三方使用,所以要保證第三方用戶能正確理解構(gòu)件設(shè)計(jì)思想,用,所以要保證第三方用戶能正確理解構(gòu)件設(shè)計(jì)思想,就必須記錄每次提煉的變化。通常,要用版本來(lái)管理。就必須記錄每次提煉的變化。通常,要用版本來(lái)管理。 設(shè)計(jì)模式也可以重用設(shè)計(jì)模式也可以重用?;跇?gòu)件的系統(tǒng)開(kāi)發(fā)的優(yōu)點(diǎn)之一。基于構(gòu)件的系統(tǒng)開(kāi)發(fā)的優(yōu)點(diǎn)之一是重用,它的
11、目標(biāo)是代碼、設(shè)計(jì)、解決方案都能重用。是重用,它的目標(biāo)是代碼、設(shè)計(jì)、解決方案都能重用。 利用開(kāi)發(fā)工具利用開(kāi)發(fā)工具。利用開(kāi)發(fā)工具創(chuàng)建構(gòu)件和應(yīng)用軟件。工。利用開(kāi)發(fā)工具創(chuàng)建構(gòu)件和應(yīng)用軟件。工具如具如Jbuilder、EJBMaker等。等。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第11 11|83|83頁(yè)頁(yè)中間件中間件構(gòu)件是依賴于平臺(tái)環(huán)境的。那么在分布式異構(gòu)構(gòu)件是依賴于平臺(tái)環(huán)境的。那么在分布式異構(gòu)環(huán)境中如何應(yīng)用構(gòu)件呢?環(huán)境中如何應(yīng)用構(gòu)件呢?中間件就是基于跨環(huán)境的構(gòu)件應(yīng)用而發(fā)展起來(lái)中間件就是基于跨環(huán)境的構(gòu)件應(yīng)用而發(fā)展起來(lái)的。中間件是介于應(yīng)用層和網(wǎng)絡(luò)層之間的一個(gè)的。中間件是介于應(yīng)用層和網(wǎng)絡(luò)層之間
12、的一個(gè)功能層次,是使應(yīng)用系統(tǒng)獨(dú)立于由異構(gòu)操作環(huán)功能層次,是使應(yīng)用系統(tǒng)獨(dú)立于由異構(gòu)操作環(huán)境(操作系統(tǒng)、硬件平臺(tái)及通信協(xié)議等)組成境(操作系統(tǒng)、硬件平臺(tái)及通信協(xié)議等)組成的開(kāi)發(fā)環(huán)境。的開(kāi)發(fā)環(huán)境。中間件擴(kuò)展了客戶中間件擴(kuò)展了客戶/服務(wù)器結(jié)構(gòu),形成了一個(gè)服務(wù)器結(jié)構(gòu),形成了一個(gè)包括客戶、中間件和服務(wù)器在內(nèi)的三層次結(jié)構(gòu)包括客戶、中間件和服務(wù)器在內(nèi)的三層次結(jié)構(gòu)及多層次結(jié)構(gòu),為開(kāi)發(fā)可靠的、可擴(kuò)展的、復(fù)及多層次結(jié)構(gòu),為開(kāi)發(fā)可靠的、可擴(kuò)展的、復(fù)雜的事物密集型應(yīng)用提供了有力的支持。雜的事物密集型應(yīng)用提供了有力的支持。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第12 12|83|83頁(yè)頁(yè)構(gòu)件和中間件構(gòu)件和中間
13、件中間件是構(gòu)件技術(shù)的一種實(shí)現(xiàn),是構(gòu)件存在的基礎(chǔ),它的中間件是構(gòu)件技術(shù)的一種實(shí)現(xiàn),是構(gòu)件存在的基礎(chǔ),它的本質(zhì)是對(duì)分布式應(yīng)用的抽象,應(yīng)用是在中間件提供的環(huán)境本質(zhì)是對(duì)分布式應(yīng)用的抽象,應(yīng)用是在中間件提供的環(huán)境中以構(gòu)件的形式存在。中以構(gòu)件的形式存在?;谥虚g件開(kāi)發(fā)的應(yīng)用是面向需求的構(gòu)件應(yīng)用;構(gòu)件專門(mén)基于中間件開(kāi)發(fā)的應(yīng)用是面向需求的構(gòu)件應(yīng)用;構(gòu)件專門(mén)用于處理應(yīng)用的業(yè)務(wù)邏輯,而中間件負(fù)責(zé)解決與業(yè)務(wù)無(wú)直用于處理應(yīng)用的業(yè)務(wù)邏輯,而中間件負(fù)責(zé)解決與業(yè)務(wù)無(wú)直接關(guān)系的分布式應(yīng)用中的支撐環(huán)境問(wèn)題(例如,通信、互接關(guān)系的分布式應(yīng)用中的支撐環(huán)境問(wèn)題(例如,通信、互操作、可靠性、容錯(cuò)性等)。操作、可靠性、容錯(cuò)性等)。構(gòu)件的
14、封裝、設(shè)計(jì)與實(shí)現(xiàn)隔離,構(gòu)件間的交互通過(guò)規(guī)范定構(gòu)件的封裝、設(shè)計(jì)與實(shí)現(xiàn)隔離,構(gòu)件間的交互通過(guò)規(guī)范定義的接口進(jìn)行;中間件在分布式交互模式上都規(guī)定了接口義的接口進(jìn)行;中間件在分布式交互模式上都規(guī)定了接口機(jī)制,可以解決構(gòu)件間的交互問(wèn)題。機(jī)制,可以解決構(gòu)件間的交互問(wèn)題。中間件將應(yīng)用構(gòu)件與系統(tǒng)資源隔離,使得構(gòu)件開(kāi)發(fā)者不用中間件將應(yīng)用構(gòu)件與系統(tǒng)資源隔離,使得構(gòu)件開(kāi)發(fā)者不用考慮下層的系統(tǒng)平臺(tái)。考慮下層的系統(tǒng)平臺(tái)。中間件提供了構(gòu)件封裝、構(gòu)件交互規(guī)則、構(gòu)件與環(huán)境隔離中間件提供了構(gòu)件封裝、構(gòu)件交互規(guī)則、構(gòu)件與環(huán)境隔離等機(jī)制,為軟件重用提供了解決方案。等機(jī)制,為軟件重用提供了解決方案。中間件可實(shí)現(xiàn)互操作。中間件可實(shí)現(xiàn)互
15、操作。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第13 13|83|83頁(yè)頁(yè)中間件分類(lèi)中間件分類(lèi) 基于遠(yuǎn)程過(guò)程調(diào)用基于遠(yuǎn)程過(guò)程調(diào)用RPC(Remote Procedure Call)的中間件,被調(diào)用的對(duì)象可以在分布系統(tǒng)中的任何物理的中間件,被調(diào)用的對(duì)象可以在分布系統(tǒng)中的任何物理平臺(tái)上。平臺(tái)上。SunSoft的的ONC+屬于這種中間件。屬于這種中間件。 面向消息的中間件面向消息的中間件,支持基于消息機(jī)制的進(jìn)程間通信方,支持基于消息機(jī)制的進(jìn)程間通信方式。例如,式。例如,SunSoft的的ToolTalk。 基于對(duì)象請(qǐng)求代理基于對(duì)象請(qǐng)求代理ORB(Object Request Brokers
16、)的中間件,消息通過(guò)的中間件,消息通過(guò)ORB進(jìn)行路由選擇,進(jìn)行路由選擇,ORB同時(shí)處同時(shí)處理集成和安全方面的問(wèn)題。如理集成和安全方面的問(wèn)題。如Microsoft的的COM、OMG的的CORBA等。等。 數(shù)據(jù)庫(kù)中間件數(shù)據(jù)庫(kù)中間件,支持對(duì)異構(gòu)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的透明訪,支持對(duì)異構(gòu)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的透明訪問(wèn)。例如問(wèn)。例如Sybase的的Open Server、Oracle的的SQL Connect和和BEA公司的公司的WebLogic等。等。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第14 14|83|83頁(yè)頁(yè)中間件面臨的問(wèn)題中間件面臨的問(wèn)題中間件提供的服務(wù)不是萬(wàn)能的,它所應(yīng)遵循的一中間件提供
17、的服務(wù)不是萬(wàn)能的,它所應(yīng)遵循的一些原則離實(shí)際還有很大距離。表現(xiàn)在:些原則離實(shí)際還有很大距離。表現(xiàn)在:多數(shù)流行的中間件服務(wù)使用專有的多數(shù)流行的中間件服務(wù)使用專有的API和專有的和專有的協(xié)議,使得應(yīng)用建立于單一廠家的產(chǎn)品,來(lái)自不協(xié)議,使得應(yīng)用建立于單一廠家的產(chǎn)品,來(lái)自不同廠家的實(shí)現(xiàn)很難互操作。同廠家的實(shí)現(xiàn)很難互操作。有些中間件服務(wù)只提供一些平臺(tái)的實(shí)現(xiàn),從而限有些中間件服務(wù)只提供一些平臺(tái)的實(shí)現(xiàn),從而限制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。應(yīng)用開(kāi)發(fā)者在這些中間件服務(wù)上建立自己的應(yīng)用應(yīng)用開(kāi)發(fā)者在這些中間件服務(wù)上建立自己的應(yīng)用還要承擔(dān)相當(dāng)大的風(fēng)險(xiǎn),隨著技術(shù)的發(fā)展他們往還要承擔(dān)相當(dāng)大的
18、風(fēng)險(xiǎn),隨著技術(shù)的發(fā)展他們往往還需要重寫(xiě)自己的系統(tǒng)。往還需要重寫(xiě)自己的系統(tǒng)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第15 15|83|83頁(yè)頁(yè)J2EEJ2EE技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介 Java平臺(tái)的第一個(gè)參考實(shí)現(xiàn)是平臺(tái)的第一個(gè)參考實(shí)現(xiàn)是 JDK(Java Development Kit),但),但 JDK并不支持服務(wù)器端構(gòu)件開(kāi)發(fā)。為了提供服務(wù)并不支持服務(wù)器端構(gòu)件開(kāi)發(fā)。為了提供服務(wù)器端部署的企業(yè)級(jí)服務(wù),器端部署的企業(yè)級(jí)服務(wù),Sun公司開(kāi)發(fā)了一些公司開(kāi)發(fā)了一些Enterprise API。但是早期的這些應(yīng)用服務(wù)器暴露了。但是早期的這些應(yīng)用服務(wù)器暴露了Enterprise API的許多問(wèn)題。為了解
19、決的許多問(wèn)題。為了解決Enterprise API的問(wèn)題,的問(wèn)題,Sun公司公司提出了三個(gè)不同的提出了三個(gè)不同的Java平臺(tái):平臺(tái):J2ME(Java 2 Platform,Micro Edition)是可用于)是可用于Java設(shè)備(如設(shè)備(如Palm Pilots、呼機(jī)、手表等)開(kāi)發(fā)平臺(tái)。、呼機(jī)、手表等)開(kāi)發(fā)平臺(tái)。J2SE(Java 2 Platform,Standard Edition)支持標(biāo)準(zhǔn))支持標(biāo)準(zhǔn)JDK編程,包含基本的編程,包含基本的Java語(yǔ)言支持、語(yǔ)言支持、JFC庫(kù)及其對(duì)庫(kù)及其對(duì)applet和和application的支持。的支持。J2EE(Java 2 Platform,En
20、terprise Edition)是一個(gè))是一個(gè)基于基于Java的完整的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)平臺(tái),它與的完整的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)平臺(tái),它與Java Enterprise API有機(jī)地結(jié)合、適合服務(wù)器端構(gòu)件體系結(jié)構(gòu)有機(jī)地結(jié)合、適合服務(wù)器端構(gòu)件體系結(jié)構(gòu)的開(kāi)發(fā)。的開(kāi)發(fā)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第16 16|83|83頁(yè)頁(yè)J2EE的核心技術(shù)的核心技術(shù) 下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第17 17|83|83頁(yè)頁(yè)J2EE的核心技術(shù)的核心技術(shù)EJB是是J2EE規(guī)約中最重要的部分。規(guī)約中最重要的部分。EJB提供了讓客戶端使提供了讓客戶端使用遠(yuǎn)程分布式對(duì)象的框架,規(guī)定了用遠(yuǎn)程
21、分布式對(duì)象的框架,規(guī)定了EJB構(gòu)件如何與構(gòu)件如何與EJB容容器進(jìn)行交互等服務(wù)。器進(jìn)行交互等服務(wù)。RMI-IIOP用于實(shí)現(xiàn)用于實(shí)現(xiàn)Java和和CORBA應(yīng)用之間互操作。應(yīng)用之間互操作。Java 名字及目錄接口名字及目錄接口JNDI提供命名服務(wù)和目錄服務(wù),它提供命名服務(wù)和目錄服務(wù),它是客戶端代碼連接是客戶端代碼連接EJB構(gòu)件所必需的關(guān)鍵技術(shù)。構(gòu)件所必需的關(guān)鍵技術(shù)。數(shù)據(jù)庫(kù)訪問(wèn)接口數(shù)據(jù)庫(kù)訪問(wèn)接口JDBC同同ODBC一樣,允許程序員使用相一樣,允許程序員使用相同的接口訪問(wèn)不同的數(shù)據(jù)庫(kù),同的接口訪問(wèn)不同的數(shù)據(jù)庫(kù),JDBC還具有跨平臺(tái)訪問(wèn)各還具有跨平臺(tái)訪問(wèn)各種數(shù)據(jù)庫(kù)的功能。種數(shù)據(jù)庫(kù)的功能。消息服務(wù)消息服務(wù)J
22、MS是一套與消息驅(qū)動(dòng)的中間件通信的是一套與消息驅(qū)動(dòng)的中間件通信的API。Java Server Papes(JSP)可以使不懂)可以使不懂Java的人也能用的人也能用Java編寫(xiě)動(dòng)態(tài)網(wǎng)頁(yè)。編寫(xiě)動(dòng)態(tài)網(wǎng)頁(yè)。Java 接口定義語(yǔ)言接口定義語(yǔ)言IDL通過(guò)建立遠(yuǎn)程接口支持通過(guò)建立遠(yuǎn)程接口支持Java和和CORBA應(yīng)用的通信。應(yīng)用的通信。Java Mail 基于基于Java的電子郵件的電子郵件API。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第18 18|83|83頁(yè)頁(yè)EJB技術(shù)技術(shù)EJB(Enterprise Java Beans)不是一種)不是一種“產(chǎn)品產(chǎn)品”,而,而是為開(kāi)發(fā)和使用基于事務(wù)和分
23、布對(duì)象應(yīng)用的服務(wù)器端構(gòu)件是為開(kāi)發(fā)和使用基于事務(wù)和分布對(duì)象應(yīng)用的服務(wù)器端構(gòu)件而定義的一種技術(shù)規(guī)約。而定義的一種技術(shù)規(guī)約。EJB體系結(jié)構(gòu)相對(duì)于體系結(jié)構(gòu)相對(duì)于CORBA而言,而言,其最大的特點(diǎn)是簡(jiǎn)單性,可幫助軟件開(kāi)發(fā)人員快速地構(gòu)建其最大的特點(diǎn)是簡(jiǎn)單性,可幫助軟件開(kāi)發(fā)人員快速地構(gòu)建分布式應(yīng)用系統(tǒng)。分布式應(yīng)用系統(tǒng)。在在EJB組件模型中,一個(gè)組件本身只需執(zhí)行那些與企業(yè)應(yīng)組件模型中,一個(gè)組件本身只需執(zhí)行那些與企業(yè)應(yīng)用的業(yè)務(wù)邏輯密切相關(guān)的代碼,而將組件的生存周期管理、用的業(yè)務(wù)邏輯密切相關(guān)的代碼,而將組件的生存周期管理、命名與查找、并發(fā)控制、安全性、持久性、事物處理等服命名與查找、并發(fā)控制、安全性、持久性、事物
24、處理等服務(wù)交由組件的運(yùn)行環(huán)境去執(zhí)行。務(wù)交由組件的運(yùn)行環(huán)境去執(zhí)行。EJB的目標(biāo)是為服務(wù)器端構(gòu)件系統(tǒng)定義一個(gè)技術(shù)規(guī)范,該的目標(biāo)是為服務(wù)器端構(gòu)件系統(tǒng)定義一個(gè)技術(shù)規(guī)范,該規(guī)范能提供一個(gè)標(biāo)準(zhǔn)的、分布的、基于規(guī)范能提供一個(gè)標(biāo)準(zhǔn)的、分布的、基于OO的體系結(jié)構(gòu);的體系結(jié)構(gòu);能屏蔽復(fù)雜的系統(tǒng)級(jí)功能需求;能兼容能屏蔽復(fù)雜的系統(tǒng)級(jí)功能需求;能兼容CORBA標(biāo)準(zhǔn);具標(biāo)準(zhǔn);具有與非有與非Java應(yīng)用之間的互操作能力。應(yīng)用之間的互操作能力。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第19 19|83|83頁(yè)頁(yè)EJB組件的分類(lèi)組件的分類(lèi)EJB組件模型將組件模型將EJB組件劃分為兩大類(lèi):組件劃分為兩大類(lèi):實(shí)體組件實(shí)體
25、組件會(huì)話組件會(huì)話組件消息驅(qū)動(dòng)組件(消息驅(qū)動(dòng)組件( EJB2.0 還包括第三類(lèi)還包括第三類(lèi) )組件模型對(duì)組件類(lèi)型的劃分實(shí)際上是將在應(yīng)組件模型對(duì)組件類(lèi)型的劃分實(shí)際上是將在應(yīng)用實(shí)踐中證明行之有效的設(shè)計(jì)模式固化在組用實(shí)踐中證明行之有效的設(shè)計(jì)模式固化在組件模型中,為開(kāi)發(fā)人員提供一種簡(jiǎn)單、有效件模型中,為開(kāi)發(fā)人員提供一種簡(jiǎn)單、有效的組件開(kāi)發(fā)與部署途徑。的組件開(kāi)發(fā)與部署途徑。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2020|83|83頁(yè)頁(yè)EJB的特點(diǎn)包括:的特點(diǎn)包括:清晰的體系結(jié)構(gòu)清晰的體系結(jié)構(gòu):支持多層應(yīng)用體系結(jié)構(gòu)和基于構(gòu)件開(kāi)發(fā)。:支持多層應(yīng)用體系結(jié)構(gòu)和基于構(gòu)件開(kāi)發(fā)。簡(jiǎn)化的編程模型簡(jiǎn)化的編程模
26、型:EJB構(gòu)件的開(kāi)發(fā)者只需關(guān)注于業(yè)務(wù)服務(wù)構(gòu)件的開(kāi)發(fā)者只需關(guān)注于業(yè)務(wù)服務(wù)實(shí)現(xiàn),復(fù)雜的任務(wù)比如生命周期管理、持久性、事務(wù)處理、實(shí)現(xiàn),復(fù)雜的任務(wù)比如生命周期管理、持久性、事務(wù)處理、安全、一致性及資源管理等等都是由安全、一致性及資源管理等等都是由EJB容器負(fù)責(zé)。容器負(fù)責(zé)。通用的編程模型通用的編程模型:提供各種服務(wù)的高層:提供各種服務(wù)的高層API,Java是其編是其編程語(yǔ)言。程語(yǔ)言。易移植性易移植性:可以部署到任何兼容的:可以部署到任何兼容的EJB容器中。容器中。支持事務(wù)處理支持事務(wù)處理:可通過(guò)在代碼外的描述來(lái)定義事務(wù)處理。:可通過(guò)在代碼外的描述來(lái)定義事務(wù)處理??蓴U(kuò)展性可擴(kuò)展性:可以根據(jù)應(yīng)用的增長(zhǎng)而擴(kuò)展
27、,:可以根據(jù)應(yīng)用的增長(zhǎng)而擴(kuò)展,EJB服務(wù)器往往服務(wù)器往往還提供了負(fù)載平衡。還提供了負(fù)載平衡。安全性安全性:由:由EJB服務(wù)器提供資源的訪問(wèn)權(quán)限控制。服務(wù)器提供資源的訪問(wèn)權(quán)限控制。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第21 21|83|83頁(yè)頁(yè)COM+技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介COM(構(gòu)件對(duì)象模型)(構(gòu)件對(duì)象模型)是是Microsoft提出的第一個(gè)構(gòu)件模提出的第一個(gè)構(gòu)件模型。它起源于型。它起源于OLE,當(dāng)時(shí)的,當(dāng)時(shí)的OLE使用使用DDE(動(dòng)態(tài)數(shù)據(jù)交換動(dòng)態(tài)數(shù)據(jù)交換)機(jī)制來(lái)支持程序之間的通信,由于機(jī)制來(lái)支持程序之間的通信,由于DDE建立在建立在Windows消息機(jī)制基礎(chǔ)上,穩(wěn)定性和效率都很差,由
28、此誕生了消息機(jī)制基礎(chǔ)上,穩(wěn)定性和效率都很差,由此誕生了COM。DCOM(分布構(gòu)件對(duì)象模型)(分布構(gòu)件對(duì)象模型)是是COM技術(shù)在分布式環(huán)境技術(shù)在分布式環(huán)境中的延伸(中的延伸(COM僅支持同一臺(tái)計(jì)算機(jī)上構(gòu)件之間的互操僅支持同一臺(tái)計(jì)算機(jī)上構(gòu)件之間的互操作)。作)。DCOM用網(wǎng)絡(luò)協(xié)議來(lái)代替本地進(jìn)程之間的通信,并用網(wǎng)絡(luò)協(xié)議來(lái)代替本地進(jìn)程之間的通信,并針對(duì)分布環(huán)境提供了一些新的特性,如網(wǎng)絡(luò)安全性、跨平針對(duì)分布環(huán)境提供了一些新的特性,如網(wǎng)絡(luò)安全性、跨平臺(tái)調(diào)用等。臺(tái)調(diào)用等。MTS( Microsoft 事務(wù)服務(wù)器)事務(wù)服務(wù)器)是為滿足企業(yè)應(yīng)用而提是為滿足企業(yè)應(yīng)用而提供的基礎(chǔ)設(shè)施。供的基礎(chǔ)設(shè)施。MTS可以為分布
29、式企業(yè)應(yīng)用提供服務(wù)器端可以為分布式企業(yè)應(yīng)用提供服務(wù)器端的構(gòu)件運(yùn)行和部署環(huán)境,它把企業(yè)應(yīng)用系統(tǒng)的客戶程序、的構(gòu)件運(yùn)行和部署環(huán)境,它把企業(yè)應(yīng)用系統(tǒng)的客戶程序、應(yīng)用構(gòu)件和各種資源有機(jī)結(jié)合起來(lái)(而應(yīng)用構(gòu)件和各種資源有機(jī)結(jié)合起來(lái)(而COMDCOM無(wú)無(wú)法有效地實(shí)現(xiàn))。法有效地實(shí)現(xiàn))。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2222|83|83頁(yè)頁(yè)Windows DNA為了使為了使Windows真正成為企業(yè)應(yīng)用平臺(tái),真正成為企業(yè)應(yīng)用平臺(tái),Microsof公司又公司又推出了推出了Windows DNA(分布式互聯(lián)網(wǎng)應(yīng)用體系結(jié)構(gòu))。它(分布式互聯(lián)網(wǎng)應(yīng)用體系結(jié)構(gòu))。它是一個(gè)完整的、多層的新一代企業(yè)應(yīng)用
30、體系結(jié)構(gòu),也是一個(gè)是一個(gè)完整的、多層的新一代企業(yè)應(yīng)用體系結(jié)構(gòu),也是一個(gè)服務(wù)器端的開(kāi)發(fā)平臺(tái),它包含以下主要產(chǎn)品:服務(wù)器端的開(kāi)發(fā)平臺(tái),它包含以下主要產(chǎn)品:Windows NT2000:操作系統(tǒng)。:操作系統(tǒng)。DCOM:支持分布式構(gòu)件的核心技術(shù)。:支持分布式構(gòu)件的核心技術(shù)。MSMQ:消息隊(duì)列產(chǎn)品,支持構(gòu)件間的異步通信。:消息隊(duì)列產(chǎn)品,支持構(gòu)件間的異步通信。MTS:管理構(gòu)件的應(yīng)用服務(wù)器。:管理構(gòu)件的應(yīng)用服務(wù)器。Microsoft Wolfpack:支持集群服務(wù)器的軟件。:支持集群服務(wù)器的軟件。Microsoft SQL Server:一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。:一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。Microsof
31、t IIS:Web服務(wù)器。服務(wù)器。Microsoft Management Console:部署和管理工具。:部署和管理工具。工具、數(shù)據(jù)庫(kù)、操作系統(tǒng)、編程模型和應(yīng)用服務(wù)等。工具、數(shù)據(jù)庫(kù)、操作系統(tǒng)、編程模型和應(yīng)用服務(wù)等。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2323|83|83頁(yè)頁(yè)COM+為了把為了把COM、DCOM和和MTS統(tǒng)一起來(lái),形成真正統(tǒng)一起來(lái),形成真正適合于企業(yè)級(jí)應(yīng)用的構(gòu)件技術(shù),誕生了適合于企業(yè)級(jí)應(yīng)用的構(gòu)件技術(shù),誕生了COM+。COM+是一種中間件技術(shù)的規(guī)約,其要點(diǎn)是提供是一種中間件技術(shù)的規(guī)約,其要點(diǎn)是提供建立在操作系統(tǒng)上的、支持分布式企業(yè)級(jí)應(yīng)用的建立在操作系統(tǒng)上的、支持
32、分布式企業(yè)級(jí)應(yīng)用的“服務(wù)服務(wù)”。COM+與與Windows DNA一起,使得一起,使得用戶可以采用用戶可以采用Microsof公司的技術(shù)開(kāi)發(fā)服務(wù)器端公司的技術(shù)開(kāi)發(fā)服務(wù)器端的構(gòu)件。的構(gòu)件。COM+的核心是改進(jìn)的的核心是改進(jìn)的COM/DCOM和和MTS的集的集成,但是成,但是COM+增加了一些非常重要的構(gòu)件服務(wù),增加了一些非常重要的構(gòu)件服務(wù),比如負(fù)載平衡、駐留內(nèi)存數(shù)據(jù)庫(kù)、事件模型、隊(duì)比如負(fù)載平衡、駐留內(nèi)存數(shù)據(jù)庫(kù)、事件模型、隊(duì)列服務(wù)等。列服務(wù)等。COM+還支持所謂的申述式編程模型,還支持所謂的申述式編程模型,它允許開(kāi)發(fā)人員以較通用的方式開(kāi)發(fā)構(gòu)件,而一它允許開(kāi)發(fā)人員以較通用的方式開(kāi)發(fā)構(gòu)件,而一些細(xì)節(jié)則
33、留到部署時(shí)再確定。些細(xì)節(jié)則留到部署時(shí)再確定。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2424|83|83頁(yè)頁(yè)COM+主要特點(diǎn)主要特點(diǎn)真正的異步通信真正的異步通信。COM+底層提供了隊(duì)列構(gòu)件服務(wù),底層提供了隊(duì)列構(gòu)件服務(wù),允許客戶和構(gòu)件進(jìn)行異步通信。允許客戶和構(gòu)件進(jìn)行異步通信。事件服務(wù)事件服務(wù)。新事件機(jī)制利用系統(tǒng)服務(wù)簡(jiǎn)化了事件模。新事件機(jī)制利用系統(tǒng)服務(wù)簡(jiǎn)化了事件模型,避免了型,避免了COM可連接對(duì)象機(jī)制的瑣碎細(xì)節(jié),使事可連接對(duì)象機(jī)制的瑣碎細(xì)節(jié),使事件源和事件接收方實(shí)現(xiàn)事件功能更加靈活。件源和事件接收方實(shí)現(xiàn)事件功能更加靈活。靈活性靈活性。動(dòng)態(tài)負(fù)載平衡以及駐留內(nèi)存數(shù)據(jù)庫(kù)、對(duì)象。動(dòng)態(tài)負(fù)載平衡
34、以及駐留內(nèi)存數(shù)據(jù)庫(kù)、對(duì)象池等系統(tǒng)服務(wù)為池等系統(tǒng)服務(wù)為COM+的靈活性提供了技術(shù)基礎(chǔ)。的靈活性提供了技術(shù)基礎(chǔ)??晒芾砗涂刹渴鹦钥晒芾砗涂刹渴鹦?。COM+申述式編程模型和構(gòu)件申述式編程模型和構(gòu)件管理環(huán)境支持應(yīng)用系統(tǒng)在開(kāi)發(fā)完成后的管理和部署。管理環(huán)境支持應(yīng)用系統(tǒng)在開(kāi)發(fā)完成后的管理和部署。易于開(kāi)發(fā)易于開(kāi)發(fā)。COM+開(kāi)發(fā)模型比以前的開(kāi)發(fā)模型比以前的COM構(gòu)件開(kāi)發(fā)構(gòu)件開(kāi)發(fā)更為簡(jiǎn)化。更為簡(jiǎn)化。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2525|83|83頁(yè)頁(yè)COM+COM+的基本結(jié)構(gòu)的基本結(jié)構(gòu) COM+COM+目錄目錄負(fù)載平衡負(fù)載平衡駐留內(nèi)存數(shù)據(jù)庫(kù)駐留內(nèi)存數(shù)據(jù)庫(kù)對(duì)象池對(duì)象池新的事件模型新的事件模型
35、構(gòu)件管理和部署構(gòu)件管理和部署JITJIT激活激活MTSMTS事務(wù)支持事務(wù)支持資源分發(fā)管理資源分發(fā)管理安全模式安全模式易于管理易于管理遠(yuǎn)程支持遠(yuǎn)程支持 DCOMDCOM分布式構(gòu)件服務(wù)分布式構(gòu)件服務(wù)COM+COM+ COM COM基于接口的編程模式基于接口的編程模式基本的構(gòu)件服務(wù)基本的構(gòu)件服務(wù)下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2626|83|83頁(yè)頁(yè)CORBA技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介CORBA(Common Object Request Broker Architecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)),公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是是OMG制定制定的、體系結(jié)構(gòu)最完整、最清晰、跨越平臺(tái)最多
36、的分布對(duì)象的、體系結(jié)構(gòu)最完整、最清晰、跨越平臺(tái)最多的分布對(duì)象模型。通過(guò)模型。通過(guò)CORBA接口定義語(yǔ)言接口定義語(yǔ)言IDL 定義接口,使用不同定義接口,使用不同編程語(yǔ)言、不同編譯器實(shí)現(xiàn)的構(gòu)件,可以通過(guò)編程語(yǔ)言、不同編譯器實(shí)現(xiàn)的構(gòu)件,可以通過(guò)對(duì)象請(qǐng)求代對(duì)象請(qǐng)求代理理ORB進(jìn)行連接,形成一個(gè)跨平臺(tái)的應(yīng)用。進(jìn)行連接,形成一個(gè)跨平臺(tái)的應(yīng)用。CORBA一般有兩層意思:一是指對(duì)象管理組織一般有兩層意思:一是指對(duì)象管理組織OMG提出提出的分布式對(duì)象體系結(jié)構(gòu)標(biāo)準(zhǔn);另一層意思是按這種體系結(jié)的分布式對(duì)象體系結(jié)構(gòu)標(biāo)準(zhǔn);另一層意思是按這種體系結(jié)構(gòu)開(kāi)發(fā)的中間件產(chǎn)品。構(gòu)開(kāi)發(fā)的中間件產(chǎn)品。CORBA作為一種應(yīng)用級(jí)的互聯(lián)標(biāo)準(zhǔn)作
37、為一種應(yīng)用級(jí)的互聯(lián)標(biāo)準(zhǔn)得到了廣泛的認(rèn)同和應(yīng)用。得到了廣泛的認(rèn)同和應(yīng)用。CORBA是一套規(guī)約,而不是一個(gè)產(chǎn)品,開(kāi)發(fā)商可以開(kāi)發(fā)不是一套規(guī)約,而不是一個(gè)產(chǎn)品,開(kāi)發(fā)商可以開(kāi)發(fā)不同的產(chǎn)品來(lái)實(shí)現(xiàn)同的產(chǎn)品來(lái)實(shí)現(xiàn) CORBA規(guī)約。例如,規(guī)約。例如,IBM公司的公司的ComponentBroker等。等。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2727|83|83頁(yè)頁(yè)OMGOMG是一個(gè)開(kāi)放標(biāo)準(zhǔn)的非盈利組織,其目標(biāo)是制是一個(gè)開(kāi)放標(biāo)準(zhǔn)的非盈利組織,其目標(biāo)是制定行業(yè)標(biāo)準(zhǔn)和對(duì)象管理標(biāo)準(zhǔn),為應(yīng)用開(kāi)發(fā)提供一定行業(yè)標(biāo)準(zhǔn)和對(duì)象管理標(biāo)準(zhǔn),為應(yīng)用開(kāi)發(fā)提供一個(gè)公共框架,推動(dòng)構(gòu)件市場(chǎng)的發(fā)展。個(gè)公共框架,推動(dòng)構(gòu)件市場(chǎng)的發(fā)展。
38、OMG成立于成立于1989年,目前已擁有會(huì)員近千個(gè),包括許多研究年,目前已擁有會(huì)員近千個(gè),包括許多研究機(jī)構(gòu)、大學(xué)和大公司,如機(jī)構(gòu)、大學(xué)和大公司,如IBM,HP等。等。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2828|83|83頁(yè)頁(yè)CORBA的發(fā)展的發(fā)展CORBA規(guī)約的第一代主要集中在為分布式對(duì)象定義一個(gè)基礎(chǔ),規(guī)約的第一代主要集中在為分布式對(duì)象定義一個(gè)基礎(chǔ),其核心是其核心是ORB和和IDL。CORBA 2.0增加了增加了ORB互操作性規(guī)約互操作性規(guī)約,主要是基于,主要是基于TCPIP的的IIOP協(xié)議(因特網(wǎng)協(xié)議(因特網(wǎng)ORB互聯(lián)協(xié)議)。互聯(lián)協(xié)議)。1995年。年。CORBA 2.1增
39、加了增加了COM/CORBA互操作規(guī)范互操作規(guī)范。1997年。年。CORBA 2.2增添了易移植的增添了易移植的對(duì)象適配器對(duì)象適配器POA和和 IDL到到 Java語(yǔ)言的映射規(guī)約。與此同時(shí),語(yǔ)言的映射規(guī)約。與此同時(shí),對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu)OMA中增加中增加了領(lǐng)域接口。了領(lǐng)域接口。1998年。年。CORBA 3.0增加了增加了CORBA構(gòu)件模型構(gòu)件模型CCM(與(與COM+和和EJB核心概念相似),提供容器(為構(gòu)件提供運(yùn)行環(huán)境)作為構(gòu)核心概念相似),提供容器(為構(gòu)件提供運(yùn)行環(huán)境)作為構(gòu)件的運(yùn)行環(huán)境,而諸如事務(wù)處理、安全處理、事件處理等公件的運(yùn)行環(huán)境,而諸如事務(wù)處理、安全處理、事件處理等
40、公共服務(wù)都是通過(guò)公共共服務(wù)都是通過(guò)公共 API訪問(wèn)。訪問(wèn)。2001年。年。但是,目前還沒(méi)有成熟的、完全實(shí)現(xiàn)但是,目前還沒(méi)有成熟的、完全實(shí)現(xiàn)CORBA 3.0規(guī)約的產(chǎn)品。規(guī)約的產(chǎn)品。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第2929|83|83頁(yè)頁(yè)CORBA的主要特征的主要特征在在CORBA環(huán)境下應(yīng)用系統(tǒng)間的互聯(lián)是以對(duì)象或程環(huán)境下應(yīng)用系統(tǒng)間的互聯(lián)是以對(duì)象或程序的調(diào)用方式進(jìn)行的,實(shí)現(xiàn)系統(tǒng)間實(shí)時(shí)互操作。序的調(diào)用方式進(jìn)行的,實(shí)現(xiàn)系統(tǒng)間實(shí)時(shí)互操作。原則上,一個(gè)系統(tǒng)內(nèi)部能夠完成的操作,在系統(tǒng)原則上,一個(gè)系統(tǒng)內(nèi)部能夠完成的操作,在系統(tǒng)之間通過(guò)之間通過(guò)CORBA都可以實(shí)現(xiàn)。都可以實(shí)現(xiàn)。CORBA的的
41、OO的特點(diǎn)還保證了各對(duì)象的封裝性和的特點(diǎn)還保證了各對(duì)象的封裝性和內(nèi)部細(xì)節(jié)的隱蔽性。這不僅可以簡(jiǎn)化各種功能的內(nèi)部細(xì)節(jié)的隱蔽性。這不僅可以簡(jiǎn)化各種功能的使用,還提高了系統(tǒng)的安全性。使用,還提高了系統(tǒng)的安全性。CORBA比較適合于分層結(jié)構(gòu)的應(yīng)用集成,這一技比較適合于分層結(jié)構(gòu)的應(yīng)用集成,這一技術(shù)比較適合于互聯(lián)網(wǎng)應(yīng)用系統(tǒng)核心業(yè)務(wù)邏輯的應(yīng)術(shù)比較適合于互聯(lián)網(wǎng)應(yīng)用系統(tǒng)核心業(yè)務(wù)邏輯的應(yīng)用程序的集成。此外,由于目前應(yīng)用服務(wù)器大多用程序的集成。此外,由于目前應(yīng)用服務(wù)器大多提供提供CORBA接口,這樣利用接口,這樣利用CORBA技術(shù)完成應(yīng)技術(shù)完成應(yīng)用程序和平臺(tái)之間的無(wú)縫連接也比較容易。用程序和平臺(tái)之間的無(wú)縫連接也比較
42、容易。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3030|83|83頁(yè)頁(yè)OMA基準(zhǔn)模型基準(zhǔn)模型CORBA的基準(zhǔn)模型是的基準(zhǔn)模型是OMA。該模型描述了分布式。該模型描述了分布式對(duì)象系統(tǒng)的基本成分,有四個(gè)主要層次:對(duì)象系統(tǒng)的基本成分,有四個(gè)主要層次:對(duì)象服務(wù)對(duì)象服務(wù)是一組系統(tǒng)級(jí)的對(duì)象,為實(shí)現(xiàn)和管理對(duì)是一組系統(tǒng)級(jí)的對(duì)象,為實(shí)現(xiàn)和管理對(duì)象提供了基本的功能,包括名字、生存周期服務(wù)、象提供了基本的功能,包括名字、生存周期服務(wù)、事務(wù)服務(wù)、安全服務(wù)等。事務(wù)服務(wù)、安全服務(wù)等。對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORB是核心,它提供了一種機(jī)制,是核心,它提供了一種機(jī)制,使得對(duì)象可以透明地發(fā)送請(qǐng)求和接受響應(yīng)。使得對(duì)象
43、可以透明地發(fā)送請(qǐng)求和接受響應(yīng)。ORB與對(duì)象服務(wù)相結(jié)合,確保符合與對(duì)象服務(wù)相結(jié)合,確保符合CORBA基準(zhǔn)的應(yīng)基準(zhǔn)的應(yīng)用構(gòu)件之間有效的通信。用構(gòu)件之間有效的通信。公共設(shè)施公共設(shè)施是適用于眾多應(yīng)用領(lǐng)域的通用構(gòu)件,例是適用于眾多應(yīng)用領(lǐng)域的通用構(gòu)件,例如信息管理、系統(tǒng)管理、任務(wù)管理和用戶界面等。如信息管理、系統(tǒng)管理、任務(wù)管理和用戶界面等。應(yīng)用對(duì)象應(yīng)用對(duì)象是專用于特定領(lǐng)域的應(yīng)用構(gòu)件,是專用于特定領(lǐng)域的應(yīng)用構(gòu)件,OMG沒(méi)有為它制定標(biāo)準(zhǔn)。沒(méi)有為它制定標(biāo)準(zhǔn)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第31 31|83|83頁(yè)頁(yè)接口定義語(yǔ)言接口定義語(yǔ)言IDLOMG IDL是是CORBA的重要組成部分,是一
44、種嚴(yán)格定義的的重要組成部分,是一種嚴(yán)格定義的接口定義語(yǔ)言。用接口定義語(yǔ)言。用OMG IDL編寫(xiě)的接口定義能完整地定義編寫(xiě)的接口定義能完整地定義接口,并完備地說(shuō)明每個(gè)操作的參數(shù)。接口,并完備地說(shuō)明每個(gè)操作的參數(shù)。OMG IDL已被已被ISO ORB采納,自采納,自1991年公布以來(lái),基本上沒(méi)有改變。年公布以來(lái),基本上沒(méi)有改變。OMG IDL是獨(dú)立于具體編程語(yǔ)言的,一個(gè)是獨(dú)立于具體編程語(yǔ)言的,一個(gè)IDL文件可以向文件可以向多種編程語(yǔ)言映射。多種編程語(yǔ)言映射。CORBA包含包含IDL向具體編程語(yǔ)言的映向具體編程語(yǔ)言的映射規(guī)約,例如,射規(guī)約,例如,IDL到到C,C+,Java等的映射。等的映射。OMG
45、 IDL是獨(dú)立于平臺(tái)的,由是獨(dú)立于平臺(tái)的,由IDL定義的接口可以在不同定義的接口可以在不同的的ORB和平臺(tái)上一致地表達(dá)。和平臺(tái)上一致地表達(dá)。OMG IDL是一個(gè)純規(guī)約,不涉及實(shí)現(xiàn)問(wèn)題,是一個(gè)純規(guī)約,不涉及實(shí)現(xiàn)問(wèn)題,IDL定義的接定義的接口不對(duì)對(duì)象實(shí)現(xiàn)進(jìn)行任何約束??诓粚?duì)對(duì)象實(shí)現(xiàn)進(jìn)行任何約束。IDL將客戶從對(duì)象實(shí)現(xiàn)細(xì)將客戶從對(duì)象實(shí)現(xiàn)細(xì)節(jié)中清晰地分離出來(lái),從而更利于軟件復(fù)用,因此被廣泛節(jié)中清晰地分離出來(lái),從而更利于軟件復(fù)用,因此被廣泛接受。接受。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3232|83|83頁(yè)頁(yè)軟件復(fù)用技術(shù)軟件復(fù)用技術(shù)軟件復(fù)用是指在軟件開(kāi)發(fā)過(guò)程中重復(fù)使用相同或相似軟軟件復(fù)
46、用是指在軟件開(kāi)發(fā)過(guò)程中重復(fù)使用相同或相似軟件元素的過(guò)程。軟件復(fù)用是在軟件開(kāi)發(fā)中避免重復(fù)勞動(dòng)件元素的過(guò)程。軟件復(fù)用是在軟件開(kāi)發(fā)中避免重復(fù)勞動(dòng)的解決方案,它使得應(yīng)用系統(tǒng)的開(kāi)發(fā)不再采用一切從零的解決方案,它使得應(yīng)用系統(tǒng)的開(kāi)發(fā)不再采用一切從零開(kāi)始的模式,而是以已有的工作模式為基礎(chǔ),充分利用開(kāi)始的模式,而是以已有的工作模式為基礎(chǔ),充分利用過(guò)去應(yīng)用系統(tǒng)開(kāi)發(fā)中積累的知識(shí)和經(jīng)驗(yàn),從而將開(kāi)發(fā)的過(guò)去應(yīng)用系統(tǒng)開(kāi)發(fā)中積累的知識(shí)和經(jīng)驗(yàn),從而將開(kāi)發(fā)的重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分。重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分。為了能夠在軟件開(kāi)發(fā)過(guò)程中重用已有的復(fù)用件,必須不為了能夠在軟件開(kāi)發(fā)過(guò)程中重用已有的復(fù)用件,必須不斷地進(jìn)行復(fù)用件的積
47、累,并將它們組織成復(fù)用件庫(kù)。因斷地進(jìn)行復(fù)用件的積累,并將它們組織成復(fù)用件庫(kù)。因此,軟件復(fù)用不僅要解決如何檢索所需的復(fù)用件,還要此,軟件復(fù)用不僅要解決如何檢索所需的復(fù)用件,還要解決如何選取復(fù)用件、如何組織復(fù)用件庫(kù)等問(wèn)題。這類(lèi)解決如何選取復(fù)用件、如何組織復(fù)用件庫(kù)等問(wèn)題。這類(lèi)項(xiàng)目通常稱為軟件復(fù)用項(xiàng)目。項(xiàng)目通常稱為軟件復(fù)用項(xiàng)目。軟件重用過(guò)程可借助于支持軟件重用的軟件重用過(guò)程可借助于支持軟件重用的CASE工具,其主工具,其主要任務(wù)是:用某種組織結(jié)構(gòu)實(shí)現(xiàn)復(fù)用件庫(kù)的存儲(chǔ),提供要任務(wù)是:用某種組織結(jié)構(gòu)實(shí)現(xiàn)復(fù)用件庫(kù)的存儲(chǔ),提供友好的人機(jī)界面,幫助用戶瀏覽、檢索和修改復(fù)用件庫(kù),友好的人機(jī)界面,幫助用戶瀏覽、檢索和
48、修改復(fù)用件庫(kù),并且對(duì)用戶感興趣的復(fù)用件進(jìn)行解釋。并且對(duì)用戶感興趣的復(fù)用件進(jìn)行解釋。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3333|83|83頁(yè)頁(yè)軟件復(fù)用方式分類(lèi)軟件復(fù)用方式分類(lèi) 依據(jù)復(fù)用的對(duì)象分類(lèi);可以分為:依據(jù)復(fù)用的對(duì)象分類(lèi);可以分為:產(chǎn)品復(fù)用產(chǎn)品復(fù)用指復(fù)用已有的軟件構(gòu)件,通過(guò)構(gòu)件集指復(fù)用已有的軟件構(gòu)件,通過(guò)構(gòu)件集成得到新系統(tǒng)。產(chǎn)品復(fù)用是目前現(xiàn)實(shí)的、主流成得到新系統(tǒng)。產(chǎn)品復(fù)用是目前現(xiàn)實(shí)的、主流的途徑。的途徑。過(guò)程復(fù)用過(guò)程復(fù)用指復(fù)用已有的軟件開(kāi)發(fā)過(guò)程,過(guò)程復(fù)指復(fù)用已有的軟件開(kāi)發(fā)過(guò)程,過(guò)程復(fù)用依賴于軟件自動(dòng)化技術(shù)的發(fā)展。用依賴于軟件自動(dòng)化技術(shù)的發(fā)展。 依據(jù)對(duì)可復(fù)用信息進(jìn)行復(fù)用的方式
49、分類(lèi),可分為:依據(jù)對(duì)可復(fù)用信息進(jìn)行復(fù)用的方式分類(lèi),可分為:白盒復(fù)用白盒復(fù)用 指已有構(gòu)件并不能完全符合用戶要求,指已有構(gòu)件并不能完全符合用戶要求,需要根據(jù)用戶需求進(jìn)行適應(yīng)性修改后才能使用。需要根據(jù)用戶需求進(jìn)行適應(yīng)性修改后才能使用。黑盒復(fù)用黑盒復(fù)用 指對(duì)已有構(gòu)件不需作任何修改,通過(guò)指對(duì)已有構(gòu)件不需作任何修改,通過(guò)構(gòu)件組裝的方式直接進(jìn)行復(fù)用。這是目前的研構(gòu)件組裝的方式直接進(jìn)行復(fù)用。這是目前的研究熱點(diǎn),也是將來(lái)的發(fā)展趨勢(shì)。究熱點(diǎn),也是將來(lái)的發(fā)展趨勢(shì)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3434|83|83頁(yè)頁(yè)可復(fù)用的復(fù)用件可復(fù)用的復(fù)用件Caper Jones定義了可候選的十種復(fù)用件:定
50、義了可候選的十種復(fù)用件: 項(xiàng)目計(jì)劃項(xiàng)目計(jì)劃:計(jì)劃的基本結(jié)構(gòu)和內(nèi)容(如,:計(jì)劃的基本結(jié)構(gòu)和內(nèi)容(如,SQA計(jì)劃)。計(jì)劃)。 成本估計(jì)成本估計(jì):有可能復(fù)用對(duì)某個(gè)功能的成本估計(jì)。:有可能復(fù)用對(duì)某個(gè)功能的成本估計(jì)。 體系結(jié)構(gòu)體系結(jié)構(gòu):可能創(chuàng)建一組類(lèi)屬的體系結(jié)構(gòu)模板(例如,事務(wù)處理體系:可能創(chuàng)建一組類(lèi)屬的體系結(jié)構(gòu)模板(例如,事務(wù)處理體系結(jié)構(gòu)),并將模板作為可復(fù)用的設(shè)計(jì)框架。結(jié)構(gòu)),并將模板作為可復(fù)用的設(shè)計(jì)框架。 需求模型和規(guī)約需求模型和規(guī)約:類(lèi)和對(duì)象的模型和規(guī)約是可復(fù)用的,用傳統(tǒng)軟件工:類(lèi)和對(duì)象的模型和規(guī)約是可復(fù)用的,用傳統(tǒng)軟件工程方法開(kāi)發(fā)的分析模型(例如,數(shù)據(jù)流圖)也是可復(fù)用的。程方法開(kāi)發(fā)的分析模型(
51、例如,數(shù)據(jù)流圖)也是可復(fù)用的。 設(shè)計(jì)設(shè)計(jì):用傳統(tǒng)方法開(kāi)發(fā)的體系結(jié)構(gòu)、數(shù)據(jù)、接口和過(guò)程化設(shè)計(jì)是復(fù)用:用傳統(tǒng)方法開(kāi)發(fā)的體系結(jié)構(gòu)、數(shù)據(jù)、接口和過(guò)程化設(shè)計(jì)是復(fù)用的候選者,更常見(jiàn)的是,系統(tǒng)和對(duì)象設(shè)計(jì)是可復(fù)用的。的候選者,更常見(jiàn)的是,系統(tǒng)和對(duì)象設(shè)計(jì)是可復(fù)用的。 源代碼源代碼:驗(yàn)證過(guò)的程序構(gòu)件(用兼容的程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的)。:驗(yàn)證過(guò)的程序構(gòu)件(用兼容的程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的)。 用戶和技術(shù)文檔用戶和技術(shù)文檔:對(duì)特定的不同應(yīng)用,可復(fù)用大部分用戶和技術(shù)文檔。:對(duì)特定的不同應(yīng)用,可復(fù)用大部分用戶和技術(shù)文檔。 用戶界面用戶界面:可能是最廣泛被復(fù)用的(例如:可能是最廣泛被復(fù)用的(例如GUI)。)。 數(shù)據(jù)數(shù)據(jù):包括:內(nèi)部表
52、、列表和記錄結(jié)構(gòu),以及文件和完整的數(shù)據(jù)庫(kù)。:包括:內(nèi)部表、列表和記錄結(jié)構(gòu),以及文件和完整的數(shù)據(jù)庫(kù)。 測(cè)試用例測(cè)試用例:一旦設(shè)計(jì)或代碼構(gòu)件將被復(fù)用,相關(guān)的測(cè)試用例也可復(fù)用。:一旦設(shè)計(jì)或代碼構(gòu)件將被復(fù)用,相關(guān)的測(cè)試用例也可復(fù)用。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3535|83|83頁(yè)頁(yè)建立復(fù)用途徑的一些建議建立復(fù)用途徑的一些建議 建立內(nèi)部的軟件復(fù)用計(jì)劃。這樣一個(gè)計(jì)劃可以幫助組織建立內(nèi)部的軟件復(fù)用計(jì)劃。這樣一個(gè)計(jì)劃可以幫助組織控制軟件的質(zhì)量和成本??刂栖浖馁|(zhì)量和成本。 要求將軟件復(fù)用作為任何技術(shù)和管理培訓(xùn)的內(nèi)容。對(duì)要求將軟件復(fù)用作為任何技術(shù)和管理培訓(xùn)的內(nèi)容。對(duì)OO的培訓(xùn)尤其應(yīng)該如
53、此。的培訓(xùn)尤其應(yīng)該如此。 按照內(nèi)部的軟件復(fù)用計(jì)劃,尋求對(duì)軟件復(fù)用有積極貢獻(xiàn)按照內(nèi)部的軟件復(fù)用計(jì)劃,尋求對(duì)軟件復(fù)用有積極貢獻(xiàn)的工具和庫(kù)。的工具和庫(kù)。 鼓勵(lì)采用已被證明為可以促進(jìn)軟件復(fù)用的方法和工具。鼓勵(lì)采用已被證明為可以促進(jìn)軟件復(fù)用的方法和工具。 跟蹤并測(cè)度軟件復(fù)用以及軟件復(fù)用的影響;應(yīng)客觀評(píng)價(jià),跟蹤并測(cè)度軟件復(fù)用以及軟件復(fù)用的影響;應(yīng)客觀評(píng)價(jià),而不是主觀臆測(cè)。而不是主觀臆測(cè)。 管理上必須積極地鼓勵(lì)軟件的復(fù)用。管理上必須積極地鼓勵(lì)軟件的復(fù)用。 認(rèn)識(shí)除認(rèn)識(shí)除“模塊模塊”外,工具、測(cè)試數(shù)據(jù)、設(shè)計(jì)、計(jì)劃、環(huán)外,工具、測(cè)試數(shù)據(jù)、設(shè)計(jì)、計(jì)劃、環(huán)境及其他軟件均可復(fù)用。境及其他軟件均可復(fù)用。 最重要的是認(rèn)識(shí)到
54、軟件復(fù)用不是最重要的是認(rèn)識(shí)到軟件復(fù)用不是“平常的業(yè)務(wù)平常的業(yè)務(wù)”,大多,大多數(shù)技術(shù)和管理人員是不接受軟件復(fù)用的概念的。數(shù)技術(shù)和管理人員是不接受軟件復(fù)用的概念的。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3636|83|83頁(yè)頁(yè)軟件復(fù)用面臨的問(wèn)題軟件復(fù)用面臨的問(wèn)題 管理問(wèn)題。沒(méi)有相應(yīng)的鼓勵(lì)機(jī)制等。管理問(wèn)題。沒(méi)有相應(yīng)的鼓勵(lì)機(jī)制等。 復(fù)用的障礙。復(fù)用的障礙。 技術(shù)方面的問(wèn)題技術(shù)方面的問(wèn)題 法律問(wèn)題法律問(wèn)題顯然,很多其他相關(guān)問(wèn)題對(duì)復(fù)用也有影響,政顯然,很多其他相關(guān)問(wèn)題對(duì)復(fù)用也有影響,政治的、文化的、財(cái)政的、市場(chǎng)的、以及產(chǎn)品化治的、文化的、財(cái)政的、市場(chǎng)的、以及產(chǎn)品化等方面的問(wèn)題也必須考慮。等方
55、面的問(wèn)題也必須考慮。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3737|83|83頁(yè)頁(yè)復(fù)用的障礙復(fù)用的障礙自負(fù);太多的開(kāi)發(fā)人員認(rèn)為不是他們親自編寫(xiě)自負(fù);太多的開(kāi)發(fā)人員認(rèn)為不是他們親自編寫(xiě)的程序不可能是好程序;的程序不可能是好程序;檢索問(wèn)題。如何從龐大的復(fù)用件庫(kù)中所需要的檢索問(wèn)題。如何從龐大的復(fù)用件庫(kù)中所需要的復(fù)用件;復(fù)用件;幾乎沒(méi)有相應(yīng)的復(fù)用培訓(xùn);幾乎沒(méi)有相應(yīng)的復(fù)用培訓(xùn);復(fù)用代價(jià)昂貴。有人估計(jì),僅使一個(gè)構(gòu)件可復(fù)復(fù)用代價(jià)昂貴。有人估計(jì),僅使一個(gè)構(gòu)件可復(fù)用,就將至少增加用,就將至少增加60%的成本;的成本;雖然存在軟件復(fù)用的雖然存在軟件復(fù)用的CASE工具或構(gòu)件,但大工具或構(gòu)件,但大多數(shù)軟
56、件開(kāi)發(fā)者并不使用它們;多數(shù)軟件開(kāi)發(fā)者并不使用它們;經(jīng)濟(jì)利益方面。一些開(kāi)發(fā)人員盡力避免編寫(xiě)那經(jīng)濟(jì)利益方面。一些開(kāi)發(fā)人員盡力避免編寫(xiě)那些太通用的例程,唯恐使自己失業(yè)。些太通用的例程,唯恐使自己失業(yè)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3838|83|83頁(yè)頁(yè)技術(shù)方面的問(wèn)題技術(shù)方面的問(wèn)題采用軟件復(fù)用可以降低開(kāi)發(fā)成本,但如果其原采用軟件復(fù)用可以降低開(kāi)發(fā)成本,但如果其原件存在的某些問(wèn)題代碼,可能會(huì)導(dǎo)致其他采用件存在的某些問(wèn)題代碼,可能會(huì)導(dǎo)致其他采用該代碼的系統(tǒng)具有相同的問(wèn)題代碼;這種情況該代碼的系統(tǒng)具有相同的問(wèn)題代碼;這種情況稱之為繼承性缺陷。稱之為繼承性缺陷。因此當(dāng)原件的問(wèn)題代碼被修改
57、后,往往無(wú)法自因此當(dāng)原件的問(wèn)題代碼被修改后,往往無(wú)法自動(dòng)更新實(shí)用軟件中相應(yīng)的代碼;最終導(dǎo)致實(shí)用動(dòng)更新實(shí)用軟件中相應(yīng)的代碼;最終導(dǎo)致實(shí)用軟件中的問(wèn)題代碼依舊存在。這種非但沒(méi)有降軟件中的問(wèn)題代碼依舊存在。這種非但沒(méi)有降低開(kāi)發(fā)成本,反而增加維護(hù)消耗的復(fù)用技術(shù)顯低開(kāi)發(fā)成本,反而增加維護(hù)消耗的復(fù)用技術(shù)顯然是失敗的。然是失敗的。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第3939|83|83頁(yè)頁(yè)法律問(wèn)題法律問(wèn)題合同軟件帶來(lái)的法律問(wèn)題。有些軟件合合同軟件帶來(lái)的法律問(wèn)題。有些軟件合同規(guī)定軟件產(chǎn)品是屬于客戶的。因此,同規(guī)定軟件產(chǎn)品是屬于客戶的。因此,當(dāng)軟件開(kāi)發(fā)人員為另一個(gè)客戶開(kāi)發(fā)一個(gè)當(dāng)軟件開(kāi)發(fā)人員為另一
58、個(gè)客戶開(kāi)發(fā)一個(gè)新產(chǎn)品時(shí),如果他復(fù)用了另一個(gè)客戶產(chǎn)新產(chǎn)品時(shí),如果他復(fù)用了另一個(gè)客戶產(chǎn)品中的一個(gè)構(gòu)件,在本質(zhì)上是侵犯第一品中的一個(gè)構(gòu)件,在本質(zhì)上是侵犯第一個(gè)客戶的版權(quán)。個(gè)客戶的版權(quán)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4040|83|83頁(yè)頁(yè)C/S技術(shù)技術(shù)客戶機(jī)客戶機(jī)/服務(wù)器系統(tǒng)也稱服務(wù)器系統(tǒng)也稱C/S(Client/Server)系系統(tǒng),它是基于局域網(wǎng)廣域網(wǎng)的系統(tǒng)。統(tǒng),它是基于局域網(wǎng)廣域網(wǎng)的系統(tǒng)。在在C/S中存在著服務(wù)器和客戶端。為了充分利用中存在著服務(wù)器和客戶端。為了充分利用客戶機(jī)的計(jì)算能力,計(jì)算和事務(wù)處理在服務(wù)器和客戶機(jī)的計(jì)算能力,計(jì)算和事務(wù)處理在服務(wù)器和客戶機(jī)之間分配。客戶
59、機(jī)之間分配。服務(wù)器承擔(dān)數(shù)據(jù)的集中管理、通信和客戶管理的服務(wù)器承擔(dān)數(shù)據(jù)的集中管理、通信和客戶管理的任務(wù),因?yàn)閿?shù)據(jù)在服務(wù)器端,對(duì)數(shù)據(jù)的處理和計(jì)任務(wù),因?yàn)閿?shù)據(jù)在服務(wù)器端,對(duì)數(shù)據(jù)的處理和計(jì)算都在服務(wù)器端執(zhí)行。算都在服務(wù)器端執(zhí)行。而人機(jī)界面和一些需要實(shí)時(shí)響應(yīng)的事件或人機(jī)交而人機(jī)界面和一些需要實(shí)時(shí)響應(yīng)的事件或人機(jī)交互的處理等在客戶端進(jìn)行,這些程序都運(yùn)行在客互的處理等在客戶端進(jìn)行,這些程序都運(yùn)行在客戶端。戶端。C/S系統(tǒng)往往需要數(shù)據(jù)庫(kù)服務(wù)器。系統(tǒng)往往需要數(shù)據(jù)庫(kù)服務(wù)器。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第41 41|83|83頁(yè)頁(yè)C/S系統(tǒng)體系結(jié)構(gòu)特征系統(tǒng)體系結(jié)構(gòu)特征計(jì)算和處理分布在服務(wù)器和客
60、戶機(jī)計(jì)算和處理分布在服務(wù)器和客戶機(jī)之間。之間。數(shù)據(jù)管理集中在服務(wù)器端。數(shù)據(jù)管理集中在服務(wù)器端。軟件駐留在服務(wù)器和客戶機(jī)。軟件駐留在服務(wù)器和客戶機(jī)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4242|83|83頁(yè)頁(yè)C/S應(yīng)用系統(tǒng)的特征應(yīng)用系統(tǒng)的特征分布數(shù)據(jù)分布數(shù)據(jù)。出于安全性和負(fù)載平衡的考慮,數(shù)據(jù)庫(kù)可以。出于安全性和負(fù)載平衡的考慮,數(shù)據(jù)庫(kù)可以分布在多個(gè)數(shù)據(jù)庫(kù)服務(wù)器上。分布在多個(gè)數(shù)據(jù)庫(kù)服務(wù)器上。分布過(guò)程分布過(guò)程。不同的過(guò)程(事務(wù)處理、數(shù)據(jù)庫(kù)連接等)可。不同的過(guò)程(事務(wù)處理、數(shù)據(jù)庫(kù)連接等)可以在不同服務(wù)器上進(jìn)行。以在不同服務(wù)器上進(jìn)行??蛻魹橹行目蛻魹橹行?。把需要在客戶端執(zhí)行的程序和定制的程
61、序。把需要在客戶端執(zhí)行的程序和定制的程序放在客戶端,以使客戶快速得到響應(yīng)。把對(duì)數(shù)據(jù)進(jìn)行處放在客戶端,以使客戶快速得到響應(yīng)。把對(duì)數(shù)據(jù)進(jìn)行處理的過(guò)程放在數(shù)據(jù)庫(kù)服務(wù)器端,以加快數(shù)據(jù)處理速度。理的過(guò)程放在數(shù)據(jù)庫(kù)服務(wù)器端,以加快數(shù)據(jù)處理速度。異構(gòu)硬件和軟件異構(gòu)硬件和軟件。在。在C/S體系結(jié)構(gòu)中很容易加入多層結(jié)體系結(jié)構(gòu)中很容易加入多層結(jié)構(gòu),屏蔽不同的硬件和軟件。例如,加入應(yīng)用服務(wù)器可構(gòu),屏蔽不同的硬件和軟件。例如,加入應(yīng)用服務(wù)器可以基于不同的操作系統(tǒng)和計(jì)算機(jī)主機(jī),同樣客戶端安裝以基于不同的操作系統(tǒng)和計(jì)算機(jī)主機(jī),同樣客戶端安裝的中間件可以基于不同的客戶端系統(tǒng),例如,的中間件可以基于不同的客戶端系統(tǒng),例如,L
62、inux,Windows。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4343|83|83頁(yè)頁(yè)C/S技術(shù)目標(biāo)技術(shù)目標(biāo)集成處理資源。把客戶端、服務(wù)器端的處理能力充分利用,集成處理資源。把客戶端、服務(wù)器端的處理能力充分利用,集成在一起完成系統(tǒng)的功能要求。集成在一起完成系統(tǒng)的功能要求。降低開(kāi)發(fā)資源要求。在客戶端和服務(wù)器端運(yùn)行的程序分別存降低開(kāi)發(fā)資源要求。在客戶端和服務(wù)器端運(yùn)行的程序分別存放,使得程序調(diào)試方便,開(kāi)發(fā)比較簡(jiǎn)單,需要的資源也減少。放,使得程序調(diào)試方便,開(kāi)發(fā)比較簡(jiǎn)單,需要的資源也減少。在傳統(tǒng)的數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)中(基于主機(jī)在傳統(tǒng)的數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)中(基于主機(jī)-多終端),數(shù)多終端),
63、數(shù)據(jù)庫(kù)是應(yīng)用程序據(jù)庫(kù)是應(yīng)用程序“私有的私有的”。雖然它也可以將數(shù)據(jù)文件放置。雖然它也可以將數(shù)據(jù)文件放置在某臺(tái)機(jī)器上供不同的用戶共同訪問(wèn),但所有的操作、規(guī)則,在某臺(tái)機(jī)器上供不同的用戶共同訪問(wèn),但所有的操作、規(guī)則,都是在一個(gè)包羅萬(wàn)象的應(yīng)用程序內(nèi)部實(shí)現(xiàn)的。應(yīng)用程序因此都是在一個(gè)包羅萬(wàn)象的應(yīng)用程序內(nèi)部實(shí)現(xiàn)的。應(yīng)用程序因此具有最大的復(fù)雜性。具有最大的復(fù)雜性。降低硬件和軟件的要求。在降低硬件和軟件的要求。在 C/S系統(tǒng)中,客戶機(jī)既有部分處系統(tǒng)中,客戶機(jī)既有部分處理能力,價(jià)格相對(duì)較低,可以降低系統(tǒng)軟硬件成本。理能力,價(jià)格相對(duì)較低,可以降低系統(tǒng)軟硬件成本。降低系統(tǒng)維護(hù)成本。因?yàn)樵诜?wù)器端的處理和計(jì)算程序只需降
64、低系統(tǒng)維護(hù)成本。因?yàn)樵诜?wù)器端的處理和計(jì)算程序只需在服務(wù)器端維護(hù),與客戶機(jī)無(wú)關(guān),而客戶端程序比較簡(jiǎn)單,在服務(wù)器端維護(hù),與客戶機(jī)無(wú)關(guān),而客戶端程序比較簡(jiǎn)單,所以系統(tǒng)維護(hù)較方便,成本較低。所以系統(tǒng)維護(hù)較方便,成本較低??蓴U(kuò)充能力強(qiáng)??蓴U(kuò)充能力強(qiáng)。C/S應(yīng)用很容易擴(kuò)充,只要應(yīng)用很容易擴(kuò)充,只要C/S聯(lián)入網(wǎng)絡(luò)即聯(lián)入網(wǎng)絡(luò)即可。服務(wù)器有負(fù)載平衡的能力就可以允許不斷增加并發(fā)客戶???。服務(wù)器有負(fù)載平衡的能力就可以允許不斷增加并發(fā)客戶。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4444|83|83頁(yè)頁(yè)C/S系統(tǒng)構(gòu)成系統(tǒng)構(gòu)成C/S結(jié)構(gòu)發(fā)展經(jīng)歷了兩個(gè)階段:兩層結(jié)構(gòu)和三結(jié)構(gòu)發(fā)展經(jīng)歷了兩個(gè)階段:兩層結(jié)構(gòu)和三(
65、多)層結(jié)構(gòu)。(多)層結(jié)構(gòu)。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4545|83|83頁(yè)頁(yè)兩層結(jié)構(gòu)兩層結(jié)構(gòu)C/S系統(tǒng)系統(tǒng)第一層是客戶端軟件,由應(yīng)用程序和相應(yīng)的數(shù)據(jù)庫(kù)鏈接程第一層是客戶端軟件,由應(yīng)用程序和相應(yīng)的數(shù)據(jù)庫(kù)鏈接程序組成,企業(yè)的業(yè)務(wù)過(guò)程都在程序中表現(xiàn)。序組成,企業(yè)的業(yè)務(wù)過(guò)程都在程序中表現(xiàn)。第二層包括數(shù)據(jù)庫(kù)服務(wù)器,根據(jù)客戶端軟件的請(qǐng)求進(jìn)行數(shù)第二層包括數(shù)據(jù)庫(kù)服務(wù)器,根據(jù)客戶端軟件的請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)操作,然后將結(jié)果傳送給客戶端軟件。據(jù)庫(kù)操作,然后將結(jié)果傳送給客戶端軟件。兩層應(yīng)用軟件的開(kāi)發(fā)工作主要集中在客戶端,客戶端軟件兩層應(yīng)用軟件的開(kāi)發(fā)工作主要集中在客戶端,客戶端軟件不但要完成用戶界
66、面和數(shù)據(jù)顯示的工作,還要完成一部分不但要完成用戶界面和數(shù)據(jù)顯示的工作,還要完成一部分對(duì)商業(yè)和應(yīng)用邏輯的處理工作。對(duì)商業(yè)和應(yīng)用邏輯的處理工作。兩層結(jié)構(gòu)的兩層結(jié)構(gòu)的C/S系統(tǒng)僅能在各自的客戶機(jī)和數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)僅能在各自的客戶機(jī)和數(shù)據(jù)庫(kù)服務(wù)器之間使用,分割了界面和數(shù)據(jù),使得客戶機(jī)要管理復(fù)雜的之間使用,分割了界面和數(shù)據(jù),使得客戶機(jī)要管理復(fù)雜的軟件,導(dǎo)致軟件,導(dǎo)致“肥胖肥胖”客戶機(jī)的產(chǎn)生??蛻魴C(jī)的產(chǎn)生。兩層兩層 C/S系統(tǒng)不能進(jìn)行有效的擴(kuò)展,使這些系統(tǒng)不能支持系統(tǒng)不能進(jìn)行有效的擴(kuò)展,使這些系統(tǒng)不能支持大量用戶的訪問(wèn)和高容量事務(wù)處理的應(yīng)用。大量用戶的訪問(wèn)和高容量事務(wù)處理的應(yīng)用。下一頁(yè)上一頁(yè)停止放映軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)技術(shù)課件第第4646|83|83頁(yè)頁(yè)三(多)層結(jié)構(gòu)三(多)層結(jié)構(gòu)C/S系統(tǒng)系統(tǒng)客戶機(jī)上只安裝具有用戶界面和簡(jiǎn)單的數(shù)據(jù)處理客戶機(jī)上只安裝具有用戶界面和簡(jiǎn)單的數(shù)據(jù)處理功能的應(yīng)用程序,負(fù)責(zé)處理與用戶的交互和與應(yīng)功能的應(yīng)用程序,負(fù)責(zé)處理與用戶的交互和與應(yīng)用服務(wù)器的交互。用服務(wù)器的交互。而將商業(yè)和應(yīng)用邏輯的處理功能移到中間層而將商業(yè)和應(yīng)用邏輯的處理功能移到中間層應(yīng)用服務(wù)器上。應(yīng)用服務(wù)器負(fù)責(zé)處理
- 溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版