01組件技術(shù)介紹_第1頁(yè)
01組件技術(shù)介紹_第2頁(yè)
01組件技術(shù)介紹_第3頁(yè)
01組件技術(shù)介紹_第4頁(yè)
01組件技術(shù)介紹_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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、組件技術(shù),潘愛(ài)民 北京大學(xué)計(jì)算機(jī)研究所 2003-9-12 ,內(nèi)容,關(guān)于本課程 軟件技術(shù)的發(fā)展 當(dāng)前軟件狀況 COM和CORBA簡(jiǎn)介 本課程的內(nèi)容和安排 (optional)基礎(chǔ):C+ Overview,關(guān)于本課程,歷史: 2001年上半年 請(qǐng)參考 2002年下半年 請(qǐng)參考 這學(xué)期的變化和調(diào)整 保留COM和Pattern部分,增加一些新的內(nèi)容 動(dòng)機(jī): 加強(qiáng)基礎(chǔ) 展示先進(jìn)的軟件技術(shù) 提高軟件設(shè)計(jì)能力 課程的風(fēng)格,計(jì)算機(jī)科學(xué)的本質(zhì),計(jì)算機(jī)的定義 馮-諾伊曼定義:define a computer as a device that accepts data, processes data, stor

2、es data, and produces output. 指令流處理方式 本質(zhì): 動(dòng)態(tài) 計(jì)算 靜態(tài) 存儲(chǔ),軟件領(lǐng)域的發(fā)展,程序設(shè)計(jì)方法的發(fā)展 軟件需求的變化 軟件環(huán)境的變化 軟件開發(fā)模式的變化,程序設(shè)計(jì)方法的發(fā)展,功能分解法 計(jì)算任務(wù) 結(jié)構(gòu)化程序設(shè)計(jì) 以數(shù)據(jù)為中心 面向?qū)ο蟪绦蛟O(shè)計(jì) 以對(duì)象為中心 組件程序設(shè)計(jì) 以組件為中心,綜 合 使 用,軟件需求的變化,計(jì)算,實(shí)用,管理(MIS),分布式系統(tǒng),軟件環(huán)境的變化,單任務(wù),多任務(wù),文字界面,圖形界面,單線程,多線程,平臺(tái)相關(guān),跨平臺(tái),單機(jī)(本地),網(wǎng)絡(luò)(分布式),單一語(yǔ)言,多種語(yǔ)言,軟件開發(fā)模式,機(jī)器碼,高級(jí)語(yǔ)言 和腳本代碼,OS + Compi

3、ler + Editor,OS + Compilers + IDEs + Libraries + Wizards + Components + other inforstructures + 經(jīng)驗(yàn),發(fā)展變化的結(jié)果,軟件學(xué)科的形成 不變因素: 計(jì)算機(jī)的基本運(yùn)作模式 探求新的計(jì)算模型 量子計(jì)算 軟件學(xué)科怎么辦? 生物信息學(xué)(?),回顧軟件學(xué)科10多年來(lái)的變化,軟件的產(chǎn)生過(guò)程: 原始代碼-編譯-Link-終代碼、腳本 混合 軟件的分發(fā)過(guò)程: 文檔、說(shuō)明書、自動(dòng)安裝工具、培訓(xùn)、升級(jí) 軟件工程: 需求-分析-設(shè)計(jì)-code-test-使用 對(duì)象技術(shù)和組件技術(shù)的不斷普及,與大環(huán)境發(fā)展相結(jié)合,對(duì)象技術(shù),用一

4、種新的思路來(lái)看待問(wèn)題 10多年的發(fā)展證明了OO符合軟件的規(guī)律 對(duì)象技術(shù)的發(fā)展需要開發(fā)工具和開發(fā)語(yǔ)言的支持 三大特性:封裝性、繼承性、多態(tài)性 兩種思想 Object-Based Object-Oriented,組件技術(shù),組件技術(shù)適合于現(xiàn)代的軟件環(huán)境 軟件更新快、規(guī)模大、強(qiáng)調(diào)協(xié)作等 組件的概念、軟件IC 組件的可獨(dú)立發(fā)布性要求“接口與實(shí)現(xiàn)分離” 組件infrastructure,組件體系 COM、CORBA(和Java)、.NET 中間件(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ù)書籍

5、(?) 缺乏良好的教育環(huán)境和工業(yè)環(huán)境,基礎(chǔ),編譯過(guò)程,程序產(chǎn)生的過(guò)程 回歸“馮-諾伊曼”模型 C+之必要性: 最能反映對(duì)象技術(shù)、組件技術(shù)的核心概念 存在的問(wèn)題: 缺乏好的書籍 現(xiàn)在不缺了 國(guó)內(nèi)的應(yīng)用領(lǐng)域不夠廣泛,概念:類、對(duì)象,類是定義,它封裝了狀態(tài)和操作 對(duì)象是實(shí)例,它反映了具體的事物,對(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,不同層次的代碼reus

6、e,例子: 類庫(kù)、中間件,概念:接口與實(shí)現(xiàn)分離,Interface and implementation 對(duì)象技術(shù)和組件技術(shù)都強(qiáng)調(diào) 實(shí)際上, 計(jì)算機(jī)定義的本身也強(qiáng)調(diào)了這一點(diǎn),接口是對(duì)象或者組件的通信協(xié)議 實(shí)現(xiàn)是對(duì)象或者組件的內(nèi)部細(xì)節(jié),接口的發(fā)布 客戶只關(guān)心接口,概念:decouple,去耦 盡可能地消除軟件之間或者軟件的不同部分之間的聯(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è)詞:ove

7、rload vs. override,在組件技術(shù)中,通過(guò)接口來(lái)體現(xiàn),概念:module,模塊 不同層次上有不同的定義,在Windows和Linux中,指可獨(dú)立裝載的二進(jìn)制代碼單元,有些操作與模塊相關(guān),概念:模板(template),函數(shù)模板和類模板 抽象層次更高 泛型技術(shù)(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,概念:軟件層次思想,垂直層次 多層結(jié)構(gòu)屬于水平分層 層次之間采用“接口與實(shí)現(xiàn)”分離的原則 網(wǎng)絡(luò)協(xié)議棧

8、是一個(gè)很好的例子 理解層次的思想有助于理解整個(gè)系統(tǒng)或者整個(gè)應(yīng)用 對(duì)于計(jì)算機(jī)而言,層次是邏輯的,它是計(jì)算機(jī)軟件領(lǐng)域中的發(fā)展空間 層次使得軟件更加有序、有組織、有條理 層次的代價(jià):效率、體積龐大 overlay,概念:虛擬機(jī),虛擬機(jī)技術(shù)本身是層次思想的一種體現(xiàn)形式 一種典型的overlay,概念:其他,現(xiàn)代軟件的發(fā)展形成了很多重要的概念 掌握這些概念對(duì)于提高自己的軟件理解水平非常重要 防止混淆和濫用概念,軟件形式,單機(jī)軟件 整體發(fā)布 Client/Server軟件 簡(jiǎn)單的網(wǎng)絡(luò)應(yīng)用 分布式軟件 -Service,軟件發(fā)展面臨的問(wèn)題,軟件的復(fù)雜度增加 代碼開發(fā)管理 軟件升級(jí)和更新 牽一而發(fā)動(dòng)全身? 分

9、布式軟件的發(fā)布和配置 用戶需要培訓(xùn),程序員和設(shè)計(jì)人員更需要 Internet軟件 Service的安全性 *Agent和Worm,軟件發(fā)展面臨的問(wèn)題(續(xù)),Custom-made versus standard software 如何平衡? 依賴于全才開發(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)

10、軟件的可能 標(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ì) 接口不變性 接口可擴(kuò)展性 對(duì)基礎(chǔ)設(shè)施的依賴 COM、CORBA、. 內(nèi)部獨(dú)立設(shè)計(jì)、獨(dú)立開發(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+的特征

11、相似,如vtable 程序與程序之間的通信建立在此基礎(chǔ)上 COM規(guī)范 平臺(tái)無(wú)關(guān) 定義了大量的標(biāo)準(zhǔn)接口用于各種用途 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è)接

12、口,COM對(duì)象特性: 身份確定 封裝 可重用,COM:組件,COM對(duì)象的載體 包含多個(gè)COM對(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

13、對(duì)象,對(duì)象的創(chuàng)建過(guò)程,COM:COM對(duì)象管理,客戶使用規(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è)施 Transacti

14、on Security OLE DB Web 集成Active Directory 管理功能,CORBA,OMG,800多家廠商聯(lián)合制定的標(biāo)準(zhǔn) 91年 1.0,主要是C語(yǔ)言映射 95年 2.0,加入IIOP 最新版本3.0 CORBA規(guī)范 制訂了互操作規(guī)范,上層標(biāo)準(zhǔn)協(xié)議 一系列映射到多種語(yǔ)言的規(guī)范 各種服務(wù)相關(guān)的規(guī)范 CORBA實(shí)現(xiàn):ORB,CORBA體系結(jié)構(gòu),CORBA:跨平臺(tái)、跨語(yǔ)言,典型的語(yǔ)言:C+語(yǔ)言、Java語(yǔ)言、Smalltalk 多種平臺(tái) 關(guān)鍵:IOR(Interoperable Object reference) ORB實(shí)現(xiàn),部分ORB實(shí)現(xiàn),商業(yè)ORB Orbix,IONA公司

15、 Visibroker,Inprise公司,4.0版完全支持2.3規(guī)范Netscape communicator瀏覽器嵌入Visibroker 自由ORB ORBit,遵循CORBA 2.2規(guī)范,支持C語(yǔ)言,性能較高 mico,GNU,OpenSource TAO,美國(guó)華盛頓大學(xué)分布式對(duì)象計(jì)算研究小組 omniORB,AT&T劍橋?qū)嶒?yàn)室 國(guó)產(chǎn)ORB 國(guó)防科大的嵌入式CORBA(eBus) 東南大學(xué)的ORBUS,CORBA:客戶,客戶通過(guò)stub或者CORBA庫(kù)與對(duì)象或者ORB進(jìn)行通信,CORBA:對(duì)象,對(duì)象與OA進(jìn)行通信,CORBA:C+映射開發(fā)過(guò)程,編寫IDL IDL-C+ 利用生成的stu

16、b類編寫客戶 利用生成的impl類編寫服務(wù)器對(duì)象 以字符串形式傳遞OR,CORBA:核心,CORBA IDL 支持多繼承 支持結(jié)構(gòu)化數(shù)據(jù)類型 字符串形式的OR POA CORBA對(duì)象的環(huán)境context 策略設(shè)置,CORBA:核心(續(xù)),GIOP(General Inter-ORB Protocol) 互操作協(xié)議框架 IIOP(Internet Inter-ORB Protocol) IOR CORBA對(duì)象的標(biāo)識(shí) 實(shí)現(xiàn)倉(cāng)庫(kù)、接口倉(cāng)庫(kù) 未標(biāo)準(zhǔn)化,CORBA:服務(wù),命名服務(wù) 層次命名 綁定 Trading Service 功能更強(qiáng)、使用更靈活的對(duì)象查詢服務(wù) 事件服務(wù) 事件發(fā)送方和接受方之間的decouple,課程內(nèi)容(一),基礎(chǔ):COM/DCOM/COM+ COM接口和IDL COM對(duì)象和COM實(shí)現(xiàn) COM重用性和COM跨進(jìn)程實(shí)現(xiàn) 自動(dòng)化和腳本技術(shù) COM開發(fā) COM連接點(diǎn)、命名和綁定技術(shù)

溫馨提示

  • 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. 人人文庫(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)論