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