《計算機(jī)軟件組件技術(shù)的發(fā)展》由會員分享,可在線閱讀,更多相關(guān)《計算機(jī)軟件組件技術(shù)的發(fā)展(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,組件技術(shù),計算機(jī)科學(xué)的本質(zhì),計算機(jī)的定義,馮-諾伊曼定義:,define a computer as a device that accepts data,processes data,stores data,and produces output.,指令流處理方式,本質(zhì):,動態(tài) 計算,靜態(tài) 存儲,軟件領(lǐng)域的發(fā)展,程序設(shè)計方法的發(fā)展,軟件需求的變化,軟件環(huán)境的變化,軟件開發(fā)模式的變化,程序設(shè)計方法的發(fā)展,功能分解法,計算任務(wù),結(jié)構(gòu)化程序設(shè)計,以數(shù)據(jù)為中心,面向?qū)ο蟪绦蛟O(shè)計,以對象為中心,組件程序設(shè)計,以組
2、件為中心,綜,合,使,用,軟件需求的變化,計算,實用,管理,(,MIS),分布式系統(tǒng),軟件環(huán)境的變化,單任務(wù),多任務(wù),文字界面,圖形界面,單線程,多線程,平臺相關(guān),跨平臺,單機(jī),(,本地,),網(wǎng)絡(luò),(,分布式,),單一語言,多種語言,軟件開發(fā)模式,機(jī)器碼,高級語言,和腳本代碼,OS+Compiler+Editor,OS+Compilers+,IDEs,+Libraries+Wizards,+Components,+other,inforstructures,+,經(jīng)驗,發(fā)展變化的結(jié)果,軟件學(xué)科的形成,不變因素:,計算機(jī)的基本運(yùn)作模式,探求新的計算模型,量子計算 軟件學(xué)科怎么辦?,生物信息學(xué)(?)
3、,回顧軟件學(xué)科,10,多年來的變化,軟件的產(chǎn)生過程:,原始代碼,-,編譯,-,Link-,終代碼、腳本,混合,軟件的分發(fā)過程:,文檔、說明書、自動安裝工具、培訓(xùn)、升級,軟件工程:,需求,-,分析,-,設(shè)計,-,code-test-,使用,對象技術(shù)和組件技術(shù)的不斷普及,與大環(huán)境發(fā)展相結(jié)合,對象技術(shù),用一種新的思路來看待問題,10,多年的發(fā)展證明了,OO,符合軟件的規(guī)律,對象技術(shù)的發(fā)展需要開發(fā)工具和開發(fā)語言的支持,三大特性:封裝性、繼承性、多態(tài)性,兩種思想,Object-Based,Object-Oriented,組件技術(shù),組件技術(shù)適合于現(xiàn)代的軟件環(huán)境,軟件更新快、規(guī)模大、強(qiáng)調(diào)協(xié)作等,組件的概念、
4、軟件,IC,組件的可獨立發(fā)布性要求“接口與實現(xiàn)分離”,組件,infrastructure,,組件體系,COM,、,CORBA,(和,Java,),中間件,(,middleware),市場,國內(nèi)的狀況,在對象技術(shù)和組件技術(shù)方面,國內(nèi)落后,問題:,好的技術(shù)沒能及時引進(jìn)來(怎么引進(jìn)來,?),缺乏好的教材、技術(shù)雜志、技術(shù)書籍(?),缺乏良好的教育環(huán)境和工業(yè)環(huán)境,基礎(chǔ),編譯過程,程序產(chǎn)生的過程,回歸“馮-諾伊曼”模型,C+,之必要性:,最能反映對象技術(shù)、組件技術(shù)的核心概念,存在的問題:,缺乏好的書籍(?),國內(nèi)的應(yīng)用領(lǐng)域不夠廣泛(?),概念:類、對象,類是定義,它封裝了狀態(tài)和操作,對象是實例,它反映了具
5、體的事物,對象由類來定義,一個對象可以與多個具有繼承關(guān)系的類相聯(lián)系,概念:組件,定義:可獨立發(fā)布的二進(jìn)制單元,有的地方稱作“,package”,容易混淆:,服務(wù)器,(,server),、對象,例如:,COM,組件、,Java Applet,概念:,reuse,(重用、復(fù)用),軟件設(shè)計的目標(biāo),不同形式的,reuse,不同層次的,reuse,例子:,類庫、中間件,概念:接口與實現(xiàn)分離,Interface and implementation,對象技術(shù)和組件技術(shù)都強(qiáng)調(diào),接口是對象或者組件的通信協(xié)議,實現(xiàn)是對象或者組件的內(nèi)部細(xì)節(jié),接口的發(fā)布,客戶只關(guān)心接口,概念:,decouple,去耦,盡可能地消除
6、軟件之間或者軟件的不同部分之間的聯(lián)系,是軟件設(shè)計的重要手段,也是目標(biāo),不同層次上的,decouple,概念:多態(tài)性,(,polymorphism),對象技術(shù)中的重要概念,以一致的方式來看待不同的事物,在,C+,中,通過繼承和虛成員函數(shù)來實現(xiàn),運(yùn)行時刻綁定:,runtime binding,區(qū)分兩個詞:,overload vs.override,在組件技術(shù)中,通過接口來體現(xiàn),概念:,module,模塊,不同層次上有不同的定義,在,Windows,和,Linux,中,指可獨立裝載的二進(jìn)制代碼單元,有些操作與模塊相關(guān),概念:模板,(,template),函數(shù)模板和類模板,抽象層次更高,泛型技術(shù),(,
7、generic programming),已納入,C+,標(biāo)準(zhǔn)之中,例子:,STL,、,ATL,概念:,C/S,和多層結(jié)構(gòu),這是指軟件的結(jié)構(gòu),C/S,是基礎(chǔ),多層結(jié)構(gòu)具有較好的靈活性和可擴(kuò)展性,多層結(jié)構(gòu)與基于組件的系統(tǒng)相結(jié)合,變種:,B/S,概念:其他,現(xiàn)代軟件的發(fā)展形成了很多重要的概念,掌握這些概念對于提高自己的軟件理解水平非常重要,防止混淆和濫用概念,軟件形式,單機(jī)軟件,整體發(fā)布,Client/Server,軟件,簡單的網(wǎng)絡(luò)應(yīng)用,分布式軟件,軟件發(fā)展面臨的問題,軟件的復(fù)雜度增加,代碼開發(fā)管理,軟件升級和更新,牽一而發(fā)動全身?,分布式軟件的發(fā)布和配置,用戶需要培訓(xùn),程序員和設(shè)計人員更需要,軟件
8、發(fā)展面臨的問題(續(xù)),Custom-made versus standard software,如何平衡?,依賴于全才開發(fā)人員,軟件層次劃分,軟件的可擴(kuò)展性,用戶可定制、腳本支持,與標(biāo)準(zhǔn)接軌,如,Web B/S,軟件發(fā)展趨勢,組件軟件、軟件組件,中間件市場已經(jīng)形成,軟件基礎(chǔ)設(shè)施的重要性,經(jīng)驗和成果的重用,軟件的可重用性要求,重用粒度不同,API,的多樣化,軟件方案(,solution),consulting,市場,組件軟件,部分升級,補(bǔ)丁,縮短軟件的更新周期,增加了異構(gòu)軟件的可能,標(biāo)準(zhǔn)接口、標(biāo)準(zhǔn)規(guī)范、標(biāo)準(zhǔn)協(xié)議,動態(tài)組合,提高軟件生產(chǎn)力,符合現(xiàn)代軟件的發(fā)展要求,軟件組件,關(guān)鍵:接口設(shè)計,接口不變
9、性,接口可擴(kuò)展性,對基礎(chǔ)設(shè)施的依賴,COM、CORBA、.,內(nèi)部獨立設(shè)計、獨立開發(fā),獨立發(fā)布、獨立測試,基礎(chǔ)設(shè)施:組件體系,COM(Component Object Model),93年發(fā)布,脫胎于,MS,的,OLE,規(guī)范+實現(xiàn),CORBA(Common Object Request Broker Architecture),91,年第1版,,OMG(Object Management Group),規(guī)范+實現(xiàn),COM:,組件對象模型,建立在二進(jìn)制層次上的標(biāo)準(zhǔn),許多概念與,C+,的特征相似,如,vtable,程序與程序之間的通信建立在此基礎(chǔ)上,COM規(guī)范,平臺無關(guān),定義了大量的標(biāo)準(zhǔn)接口用于各種
10、用途,COM實現(xiàn),平臺相關(guān),Windows實現(xiàn)了規(guī)范要求以及許多輔助功能,COM,特性,語言無關(guān),規(guī)范和實現(xiàn)都是語言無關(guān)的,進(jìn)程透明 位置透明,inproc server、out-of-proc server,可重用性,多線程特性,可擴(kuò)展性,COM:,接口,COM,接口,IID:128,位整數(shù),接口定義語言COM IDL,對應(yīng)于C+中由純虛函數(shù)組成的類,單繼承,基接口:IUnknown,COM接口特性:,接口不變性,繼承性,多態(tài)性運(yùn)行時刻的多態(tài)性,COM:,對象,COM,對象,CLSID,實現(xiàn)多個接口,COM對象特性:,身份確定,封裝,可重用,COM:,組件,COM,對象的載體,包含多個,CO
11、M,對象,進(jìn)程內(nèi)組件,DLL,Export Entrys,進(jìn)程外組件,IPC:RPC/LPC,COM:,進(jìn)程內(nèi)組件,Inproc,server,Export Entrys,COM:,進(jìn)程外組件,Out-of-proc server,COM:,遠(yuǎn)程組件,remote server,COM:,組件信息發(fā)布,注冊表,發(fā)布組件的信息、對象的信息、接口的信息等,注冊工具和配置工具,Regsvr32,.,exe,.,reg,自注冊-,RegServer,DCOMCNFG,.,EXE,MTS Explorer、,活動目錄,COM:,創(chuàng)建,COM,對象,對象的創(chuàng)建過程,(略),COM:COM,對象管理,客戶使
12、用規(guī)則,控制對象生命周期,COM,實現(xiàn)優(yōu)化,各種輔助手段,組件類別,component category,MTS,和,COM+,COM:COM,體系,基本的功能,擴(kuò)展功能,連接點,結(jié)構(gòu)化存儲,名字服務(wù),自動化,其他,COM+,COM:COM+,建立在,COM,的基礎(chǔ)上,,COM,的自然延伸,Services,事件服務(wù),隊列服務(wù),事務(wù)服務(wù),負(fù)載平衡,其他,COM:,應(yīng)用,OLE,ActiveX control,腳本功能擴(kuò)展,OLE DB,ADSI,ASP,其他,COM:,分布式應(yīng)用,COM/COM+,為基于,Windows,的分布式應(yīng)用提供了基礎(chǔ)設(shè)施,Transaction,Security,OLE DB,Web,集成,Active Directory,管理功能,