




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
構(gòu)件化軟件ComponentSoftware2019年8月25感謝你的觀(guān)看1ComponentSoftware2019年8月25感謝你RoadmapPart1:OO基礎(chǔ)OO基本原理DesignbyContract異常處理;并發(fā)對(duì)象;持久對(duì)象Part2:OO設(shè)計(jì)原則和設(shè)計(jì)模式敏捷軟件開(kāi)發(fā)方法OO設(shè)計(jì)原則OO設(shè)計(jì)模式應(yīng)用框架技術(shù)AOP2019年8月25感謝你的觀(guān)看2RoadmapPart1:OO基礎(chǔ)2019年8月25感謝RoadmapPart3:構(gòu)件技術(shù)構(gòu)件化軟件分布對(duì)象服務(wù)計(jì)算2019年8月25感謝你的觀(guān)看3RoadmapPart3:構(gòu)件技術(shù)2019年8月25感謝摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看4摘要引言2019年8月25感謝你的觀(guān)看4摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看5摘要引言2019年8月25感謝你的觀(guān)看5引言2019年8月25感謝你的觀(guān)看6Softwareshouldbecomponentizedbuiltfromprefabricatedcomponents
DouglasMcIlroy'saddressattheNATOconferenceonsoftwareengineeringinGarmisch,Germany,1968titledMassProducedSoftwareComponents.引言2019年8月25感謝你的觀(guān)看6Softwaresho引言軟件問(wèn)題的核心質(zhì)量不高生產(chǎn)率低常常是一對(duì)矛盾能不能向其它成熟產(chǎn)業(yè)學(xué)習(xí)?復(fù)用分工市場(chǎng)競(jìng)爭(zhēng)但軟件有其自身特點(diǎn)2019年8月25感謝你的觀(guān)看7引言軟件問(wèn)題的核心2019年8月25感謝你的觀(guān)看7引言2019年8月25感謝你的觀(guān)看8復(fù)用--不完全一致的使用場(chǎng)景分工--難以完全解除的部件耦合市場(chǎng)競(jìng)爭(zhēng)--不能沿用物質(zhì)產(chǎn)品的盈利模式引言2019年8月25感謝你的觀(guān)看8復(fù)用--不完全一引言基于構(gòu)件的軟件開(kāi)發(fā)一直未曾完全實(shí)現(xiàn)的老想法重用“工業(yè)化”影響因素不僅限于技術(shù)層面2019年8月25感謝你的觀(guān)看9引言基于構(gòu)件的軟件開(kāi)發(fā)2019年8月25感謝你的觀(guān)看9回顧:軟件領(lǐng)域的發(fā)展程序設(shè)計(jì)方法的發(fā)展軟件需求的變化軟件環(huán)境的變化軟件開(kāi)發(fā)模式的變化2019年8月25感謝你的觀(guān)看10回顧:軟件領(lǐng)域的發(fā)展程序設(shè)計(jì)方法的發(fā)展2019年8月25感謝程序設(shè)計(jì)方法的發(fā)展功能分解法——計(jì)算任務(wù)結(jié)構(gòu)化程序設(shè)計(jì)——以數(shù)據(jù)為中心面向?qū)ο蟪绦蛟O(shè)計(jì)——以對(duì)象為中心構(gòu)件(組件)程序設(shè)計(jì)——以構(gòu)件為中心2019年8月25感謝你的觀(guān)看11綜合使用程序設(shè)計(jì)方法的發(fā)展功能分解法——計(jì)算任務(wù)2019年8月2軟件需求的變化計(jì)算2019年8月25感謝你的觀(guān)看12實(shí)用管理(MIS)分布式系統(tǒng)軟件需求的變化計(jì)算2019年8月25感謝你的觀(guān)看12實(shí)用管理軟件環(huán)境的變化單任務(wù)2019年8月25感謝你的觀(guān)看13多任務(wù)文字界面圖形界面單線(xiàn)程多線(xiàn)程平臺(tái)相關(guān)跨平臺(tái)單機(jī)(本地)網(wǎng)絡(luò)(分布式)單一語(yǔ)言多種語(yǔ)言軟件環(huán)境的變化單任務(wù)2019年8月25感謝你的觀(guān)看13多任務(wù)軟件開(kāi)發(fā)模式機(jī)器碼2019年8月25感謝你的觀(guān)看14高級(jí)語(yǔ)言和腳本代碼OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinfrastructures+經(jīng)驗(yàn)軟件開(kāi)發(fā)模式機(jī)器碼2019年8月25感謝你的觀(guān)看14高級(jí)語(yǔ)言發(fā)展變化的結(jié)果軟件學(xué)科的形成不變因素:計(jì)算機(jī)的基本運(yùn)作模式探求新的計(jì)算模型量子計(jì)算?生物信息學(xué)?2019年8月25感謝你的觀(guān)看15發(fā)展變化的結(jié)果軟件學(xué)科的形成2019年8月25感謝你的觀(guān)看1回顧軟件學(xué)科多年來(lái)的變化2019年8月25感謝你的觀(guān)看16軟件的產(chǎn)生過(guò)程:原始代碼編譯
Link終代碼、腳本混合軟件的分發(fā)過(guò)程:文檔、說(shuō)明書(shū)、自動(dòng)安裝工具、培訓(xùn)、升級(jí)軟件工程:需求分析設(shè)計(jì)
codetest使用對(duì)象技術(shù)和構(gòu)件技術(shù)的不斷普及,與大環(huán)境發(fā)展相結(jié)合回顧軟件學(xué)科多年來(lái)的變化2019年8月25感謝你的觀(guān)看16軟對(duì)象技術(shù)2019年8月25感謝你的觀(guān)看17用一種新的思路來(lái)看待問(wèn)題多年的發(fā)展證明了OO符合軟件的規(guī)律對(duì)象技術(shù)的發(fā)展需要開(kāi)發(fā)工具和開(kāi)發(fā)語(yǔ)言的支持三大特性:封裝性、繼承性、多態(tài)性?xún)煞N思想Object-BasedObject-Oriented對(duì)象技術(shù)2019年8月25感謝你的觀(guān)看17用一種新的思路來(lái)看構(gòu)件技術(shù)2019年8月25感謝你的觀(guān)看18構(gòu)件技術(shù)適合于現(xiàn)代的軟件環(huán)境軟件更新快、規(guī)模大、強(qiáng)調(diào)協(xié)作等構(gòu)件的概念、軟件IC構(gòu)件的可獨(dú)立發(fā)布性要求“接口與實(shí)現(xiàn)分離”構(gòu)件infrastructure,構(gòu)件體系COM、CORBA(和Java)、.NET中間件(middleware)市場(chǎng)構(gòu)件技術(shù)2019年8月25感謝你的觀(guān)看18構(gòu)件技術(shù)適合于現(xiàn)代摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看19摘要引言2019年8月25感謝你的觀(guān)看19構(gòu)件參考文獻(xiàn)ClemensSzyperski,DominikGruntz,StephanMurer.ComponentSoftware:BeyondObject-OrientedProgramming,SecondEdition.2019年8月25感謝你的觀(guān)看20構(gòu)件參考文獻(xiàn)2019年8月25感謝你的觀(guān)看20構(gòu)件的特性獨(dú)立部署單元必須能跟它所在的環(huán)境及其它構(gòu)件完全分離,因此必須封裝自己的全部?jī)?nèi)部特征(原子性)作為第三方的組裝單元必須封裝它的實(shí)現(xiàn),并且只通過(guò)良好定義的接口與外部環(huán)境進(jìn)行交互(足夠好的內(nèi)聚性)沒(méi)有(外部的)可見(jiàn)狀態(tài)構(gòu)件不能與自己的拷貝有所區(qū)別,但某些特殊屬性可以沒(méi)有此種限制2019年8月25感謝你的觀(guān)看21構(gòu)件的特性獨(dú)立部署單元必須能跟它所在的環(huán)境及其它構(gòu)件完比較構(gòu)件vs.對(duì)象構(gòu)件的行為可以通過(guò)對(duì)象來(lái)實(shí)現(xiàn)但是構(gòu)件并非一定要包含類(lèi)元素,它甚至可以不包含類(lèi)難以判斷一個(gè)構(gòu)件內(nèi)部是否是“完全面向?qū)ο蟆钡臉?gòu)件vs.模塊模塊化是構(gòu)件技術(shù)產(chǎn)生的前提但對(duì)于構(gòu)件,傳統(tǒng)的模塊化概念和標(biāo)準(zhǔn)是遠(yuǎn)遠(yuǎn)不夠的2019年8月25感謝你的觀(guān)看22一個(gè)實(shí)例單元,具有唯一的標(biāo)志;可能具有外部可見(jiàn)狀態(tài);封裝狀態(tài)和行為包多個(gè)類(lèi)比較構(gòu)件vs.對(duì)象2019年8月25感謝你的觀(guān)看22一個(gè)構(gòu)件分類(lèi):白盒,灰盒,黑盒白盒:提供構(gòu)件的同時(shí)也提供實(shí)現(xiàn)構(gòu)件的全部代碼,應(yīng)用構(gòu)件時(shí)需要對(duì)源代碼進(jìn)行某些修改,然后才能把它集成到系統(tǒng)中實(shí)現(xiàn)一定的目的灰盒:只提供有關(guān)界面部分的源代碼,對(duì)構(gòu)件的內(nèi)核不清楚,只能在接口界面上做一些用戶(hù)化的工作黑盒:完全不提供代碼,只提供構(gòu)件的二進(jìn)制可執(zhí)行形式2019年8月25感謝你的觀(guān)看23構(gòu)件分類(lèi):白盒,灰盒,黑盒白盒:提供構(gòu)件的同時(shí)也提供實(shí)現(xiàn)構(gòu)件COTSCommercialOffTheShelf現(xiàn)成買(mǎi)來(lái)的,即強(qiáng)調(diào)構(gòu)件的預(yù)制性不提供源碼,強(qiáng)調(diào)構(gòu)件的封裝性和透明性強(qiáng)調(diào)可互換性不是為某一個(gè)客戶(hù)定制的,而是某一領(lǐng)域中通用的2019年8月25感謝你的觀(guān)看24COTSCommercialOffTheShelf20軟件構(gòu)件定義ClemensSzyperski,1996:
Asoftwarecomponentisaunitofcompositionwithcontractuallyspecifiedinterfacesandexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparties.
2019年8月25感謝你的觀(guān)看25軟件構(gòu)件定義ClemensSzyperski,1996:
軟件構(gòu)件定義軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口契約和顯式的語(yǔ)境依賴(lài),軟件構(gòu)件可以被獨(dú)立地部署并由第三方任意地組裝技術(shù)因素:獨(dú)立性、合約接口,組裝市場(chǎng)因素:第三方,部署2019年8月25感謝你的觀(guān)看26軟件構(gòu)件定義軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口契約和顯軟件構(gòu)件接口:用戶(hù)與構(gòu)件發(fā)生交互的連接渠道,第3方只能通過(guò)構(gòu)件接口的規(guī)格說(shuō)明理解和復(fù)用構(gòu)件接口規(guī)格說(shuō)明是一種契約,它足夠精確地描述構(gòu)件實(shí)現(xiàn)的功能,同時(shí)不把構(gòu)件限定于唯一的實(shí)現(xiàn)方法e.g.IDL,WSDL2019年8月25感謝你的觀(guān)看27軟件構(gòu)件接口:用戶(hù)與構(gòu)件發(fā)生交互的連接渠道,第3方只能通過(guò)構(gòu)軟件構(gòu)件顯式語(yǔ)境依賴(lài)構(gòu)件的需求:為了使構(gòu)件正常工作,必須說(shuō)明其對(duì)部署環(huán)境的具體要求。這些要求被稱(chēng)為語(yǔ)境依賴(lài),指的是構(gòu)件組裝和部署的語(yǔ)境。包括了定義組裝規(guī)則的構(gòu)件模型和定義構(gòu)件部署、安裝和激活規(guī)則的構(gòu)件平臺(tái)。RequiredInterfaces2019年8月25感謝你的觀(guān)看28軟件構(gòu)件顯式語(yǔ)境依賴(lài)2019年8月25感謝你的觀(guān)看28構(gòu)件的規(guī)?!白畲蠡赜谩辈呗裕褐粚?shí)現(xiàn)核心功能,然后重用其他所有的一切。缺點(diǎn):語(yǔ)境依賴(lài)的爆炸性增長(zhǎng)2019年8月25感謝你的觀(guān)看29最大化重用降低了可用性健壯性簡(jiǎn)潔性0100%重用率增加語(yǔ)境依賴(lài)會(huì)使構(gòu)件因重用而簡(jiǎn)潔,但卻降低其可用性增加自給性可以減少語(yǔ)境依賴(lài),增加可用性,并且使構(gòu)件更加健壯,但卻使構(gòu)件規(guī)模過(guò)大構(gòu)件的規(guī)?!白畲蠡赜谩辈呗裕褐粚?shí)現(xiàn)核心功能,然后重用其他所構(gòu)件基礎(chǔ)設(shè)施構(gòu)件基礎(chǔ)設(shè)施(infrastructure)是異構(gòu)構(gòu)件互操作的標(biāo)準(zhǔn)和通信平臺(tái)構(gòu)件框架(framework)是構(gòu)件實(shí)例即插即用的支撐結(jié)構(gòu),通過(guò)一定的環(huán)境條件和交互規(guī)則,構(gòu)件框架允許一組構(gòu)件形成一個(gè)孤島,獨(dú)立地與外部構(gòu)件或其它框架交互和協(xié)作,構(gòu)件框架及其內(nèi)含的構(gòu)件也可以視為一個(gè)構(gòu)件。OMGCORBA,MicrosoftCOM/DCOM(或.NET),SUNJavaBean/EJB2019年8月25感謝你的觀(guān)看30構(gòu)件基礎(chǔ)設(shè)施構(gòu)件基礎(chǔ)設(shè)施(infrastructure)是異軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(SoftwareArchitecture)是對(duì)系統(tǒng)宏觀(guān)結(jié)構(gòu)的描述,是由一組構(gòu)件(components),連接件(connectors)以及配置(configuration)組成。在較高級(jí)別上抽象出不同系統(tǒng)的共性有助于軟件工程師在設(shè)計(jì)早期正確選擇軟件構(gòu)架便于對(duì)軟件系統(tǒng)的性質(zhì)進(jìn)行描述和分析構(gòu)架本身是可復(fù)用的資產(chǎn),軟件構(gòu)架設(shè)計(jì)的復(fù)用會(huì)促進(jìn)軟件代碼復(fù)用,軟件構(gòu)架為構(gòu)件的組裝提供了框架和語(yǔ)境2019年8月25感謝你的觀(guān)看31軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(SoftwareArchitec摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看32摘要引言2019年8月25感謝你的觀(guān)看32構(gòu)件技術(shù)MS:COM(ComponentObjectModel),COM+,.NetOMG:CORBA(CommonObjectRequestBrokerArchitecture),CCM,OMA,MDASUN:JavaBean,EJB(EnterpriseJavaBean)2019年8月25感謝你的觀(guān)看33構(gòu)件技術(shù)MS:COM(ComponentObjectMCOMCOM是MS平臺(tái)上所有構(gòu)件的基石93年發(fā)布,脫胎于MS的OLE(ObjectLinkingandEmbedding)規(guī)范+實(shí)現(xiàn)96年,DCOM2019年8月25感謝你的觀(guān)看34COMCOM是MS平臺(tái)上所有構(gòu)件的基石2019年8月25感謝COM:構(gòu)件對(duì)象模型2019年8月25感謝你的觀(guān)看35建立在二進(jìn)制層次上的標(biāo)準(zhǔn)許多概念與C++的特征相似,如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:構(gòu)件對(duì)象模型2019年8月25感謝你的觀(guān)看35建立在COM特性2019年8月25感謝你的觀(guān)看36語(yǔ)言無(wú)關(guān)規(guī)范和實(shí)現(xiàn)都是語(yǔ)言無(wú)關(guān)的進(jìn)程透明位置透明inprocserver、out-of-procserver可重用性多線(xiàn)程特性可擴(kuò)展性COM特性2019年8月25感謝你的觀(guān)看36語(yǔ)言無(wú)關(guān)COM:接口2019年8月25感謝你的觀(guān)看37COM接口IID:128位的全局唯一標(biāo)識(shí)符接口定義語(yǔ)言COMIDL對(duì)應(yīng)于C++中由純虛函數(shù)組成的類(lèi)基接口:IUnknownCOM接口特性:接口不變性繼承性多態(tài)性——運(yùn)行時(shí)刻的多態(tài)性COM:接口2019年8月25感謝你的觀(guān)看37COM接口COM:對(duì)象2019年8月25感謝你的觀(guān)看38COM對(duì)象CLSID實(shí)現(xiàn)多個(gè)接口COM對(duì)象特性:身份確定封裝可重用COM:對(duì)象2019年8月25感謝你的觀(guān)看38COM對(duì)象COCOM:構(gòu)件2019年8月25感謝你的觀(guān)看39COM對(duì)象的載體包含多個(gè)COM對(duì)象進(jìn)程內(nèi)構(gòu)件DLLExportEntrys進(jìn)程外構(gòu)件IPC:RPC/LPCCOM:構(gòu)件2019年8月25感謝你的觀(guān)看39COM對(duì)象的載COM:進(jìn)程內(nèi)構(gòu)件2019年8月25感謝你的觀(guān)看40InprocserverExportEntrysCOM:進(jìn)程內(nèi)構(gòu)件2019年8月25感謝你的觀(guān)看40InprCOM:進(jìn)程外構(gòu)件2019年8月25感謝你的觀(guān)看41Out-of-procserverCOM:進(jìn)程外構(gòu)件2019年8月25感謝你的觀(guān)看41Out-COM:遠(yuǎn)程構(gòu)件2019年8月25感謝你的觀(guān)看42remoteserverCOM:遠(yuǎn)程構(gòu)件2019年8月25感謝你的觀(guān)看42remotCOM:構(gòu)件信息發(fā)布2019年8月25感謝你的觀(guān)看43注冊(cè)表發(fā)布構(gòu)件的信息、對(duì)象的信息、接口的信息等注冊(cè)工具和配置工具Regsvr32.exe.reg自注冊(cè)-RegServerDCOMCNFG.EXEMTSExplorer、活動(dòng)目錄COM:構(gòu)件信息發(fā)布2019年8月25感謝你的觀(guān)看43注冊(cè)表COM:創(chuàng)建COM對(duì)象2019年8月25感謝你的觀(guān)看44對(duì)象的創(chuàng)建過(guò)程COM:創(chuàng)建COM對(duì)象2019年8月25感謝你的觀(guān)看44對(duì)象COM:COM對(duì)象管理2019年8月25感謝你的觀(guān)看45客戶(hù)使用規(guī)則,控制對(duì)象生命周期COM實(shí)現(xiàn)優(yōu)化各種輔助手段構(gòu)件類(lèi)別componentcategory類(lèi)別標(biāo)識(shí)符CATIDMTS和COM+COM:COM對(duì)象管理2019年8月25感謝你的觀(guān)看45客戶(hù)COM:COM體系2019年8月25感謝你的觀(guān)看46基本的功能擴(kuò)展功能連接點(diǎn)結(jié)構(gòu)化存儲(chǔ)名字服務(wù)自動(dòng)化其他COM+COM:COM體系2019年8月25感謝你的觀(guān)看46基本的功COM:COM+2019年8月25感謝你的觀(guān)看47建立在COM的基礎(chǔ)上,COM的自然延伸Services事件服務(wù)隊(duì)列服務(wù)事務(wù)服務(wù)負(fù)載平衡其他COM:COM+2019年8月25感謝你的觀(guān)看47建立在COCOM:應(yīng)用2019年8月25感謝你的觀(guān)看48OLEActiveXcontrol腳本功能擴(kuò)展OLEDBADSI(ActiveDirectoryServiceInterfaces)ASP其他COM:應(yīng)用2019年8月25感謝你的觀(guān)看48OLECOM:分布式應(yīng)用2019年8月25感謝你的觀(guān)看49COM/COM+為基于Windows的分布式應(yīng)用提供了基礎(chǔ)設(shè)施TransactionSecurityOLEDBWeb集成ActiveDirectory管理功能COM:分布式應(yīng)用2019年8月25感謝你的觀(guān)看49COM/CORBA2019年8月25感謝你的觀(guān)看50OMG,800多家廠(chǎng)商聯(lián)合制定的標(biāo)準(zhǔn)91年1.0,主要是C語(yǔ)言映射95年2.0,加入IIOP最新版本3.0CORBA規(guī)范制訂了互操作規(guī)范,上層標(biāo)準(zhǔn)協(xié)議一系列映射到多種語(yǔ)言的規(guī)范各種服務(wù)相關(guān)的規(guī)范CORBA實(shí)現(xiàn):ORBCORBA2019年8月25感謝你的觀(guān)看50OMG,800多CORBA體系結(jié)構(gòu)2019年8月25感謝你的觀(guān)看51CORBA體系結(jié)構(gòu)2019年8月25感謝你的觀(guān)看51CORBA:跨平臺(tái)、跨語(yǔ)言2019年8月25感謝你的觀(guān)看52典型的語(yǔ)言:C++語(yǔ)言、Java語(yǔ)言、Smalltalk多種平臺(tái)關(guān)鍵:IOR(InteroperableObjectreference)ORB實(shí)現(xiàn)CORBA:跨平臺(tái)、跨語(yǔ)言2019年8月25感謝你的觀(guān)看52部分ORB實(shí)現(xiàn)商業(yè)ORBOrbix,IONA公司Visibroker,Inprise公司,4.0版完全支持2.3規(guī)范
Netscapecommunicator瀏覽器嵌入Visibroker自由ORBORBit,遵循CORBA2.2規(guī)范,支持C語(yǔ)言,性能較高mico,GNU,OpenSourceTAO,美國(guó)華盛頓大學(xué)分布式對(duì)象計(jì)算研究小組omniORB,AT&T劍橋?qū)嶒?yàn)室國(guó)產(chǎn)ORB國(guó)防科大的嵌入式CORBA(eBus)東南大學(xué)的ORBUS2019年8月25感謝你的觀(guān)看53部分ORB實(shí)現(xiàn)商業(yè)ORB2019年8月25感謝你的觀(guān)看53CORBA:客戶(hù)2019年8月25感謝你的觀(guān)看54客戶(hù)通過(guò)stub或者CORBA庫(kù)與對(duì)象或者ORB進(jìn)行通信CORBA:客戶(hù)2019年8月25感謝你的觀(guān)看54客戶(hù)通過(guò)sCORBA:對(duì)象2019年8月25感謝你的觀(guān)看55對(duì)象與OA進(jìn)行通信CORBA:對(duì)象2019年8月25感謝你的觀(guān)看55對(duì)象與OACORBA:C++映射開(kāi)發(fā)過(guò)程2019年8月25感謝你的觀(guān)看56編寫(xiě)IDLIDLC++利用生成的stub類(lèi)編寫(xiě)客戶(hù)利用生成的impl類(lèi)編寫(xiě)服務(wù)器對(duì)象{以字符串形式傳遞OR}CORBA:C++映射開(kāi)發(fā)過(guò)程2019年8月25感謝你的觀(guān)看CORBA:核心2019年8月25感謝你的觀(guān)看57CORBAIDL支持多繼承支持結(jié)構(gòu)化數(shù)據(jù)類(lèi)型字符串形式的ORPOA(PortableObjectAdapter)CORBA對(duì)象的環(huán)境context策略設(shè)置CORBA:核心2019年8月25感謝你的觀(guān)看57CORBACORBA:核心(續(xù))2019年8月25感謝你的觀(guān)看58GIOP(GeneralInter-ORBProtocol)互操作協(xié)議框架IIOP(InternetInter-ORBProtocol)IORCORBA對(duì)象的標(biāo)識(shí)實(shí)現(xiàn)倉(cāng)庫(kù)、接口倉(cāng)庫(kù)未標(biāo)準(zhǔn)化CORBA:核心(續(xù))2019年8月25感謝你的觀(guān)看58GICORBA:服務(wù)2019年8月25感謝你的觀(guān)看59命名服務(wù)層次命名綁定TradingService功能更強(qiáng)、使用更靈活的對(duì)象查詢(xún)服務(wù)事件服務(wù)事件發(fā)送方和接受方之間的decoupleCORBA:服務(wù)2019年8月25感謝你的觀(guān)看59命名服務(wù)CCM:CorbaComponentModel2019年8月25感謝你的觀(guān)看60CCM:CorbaComponentModel2019EJBJ2EEEJB在J2EE中的位置2019年8月25感謝你的觀(guān)看61EJBJ2EE2019年8月25感謝你的觀(guān)看61EJB2019年8月25感謝你的觀(guān)看62EJB2019年8月25感謝你的觀(guān)看62EJBSessionBeansEntityBeansMessage-drivenbeans2019年8月25感謝你的觀(guān)看63EJBSessionBeans2019年8月25感謝你的觀(guān)摘要引言構(gòu)件構(gòu)件對(duì)象模型構(gòu)件的組合2019年8月25感謝你的觀(guān)看64摘要引言2019年8月25感謝你的觀(guān)看64構(gòu)件的組合ComponentsareforcompositionConnection-orientedcompositionContextualcompositionData-drivencompositionFederationandpeer-to-peer2019年8月25感謝你的觀(guān)看65構(gòu)件的組合ComponentsareforcomposConnection-orientedcompositionWiringoutgoingandincominginterfaces..對(duì)于一個(gè)接口來(lái)說(shuō)非對(duì)稱(chēng)Caller---callee當(dāng)對(duì)于component來(lái)說(shuō)可以同時(shí)充當(dāng)caller和callee(組合時(shí)刻)類(lèi)型檢查2019年8月25感謝你的觀(guān)看66Connection-orientedcompositioComponentInterfacesBehaviorconstraints:對(duì)于一個(gè)提供數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)接口的構(gòu)件loginqueryadddellogoutlogin(query|add|del)*logoutNon-functionalrequirementsVersions2019年8月25感謝你的觀(guān)看67ComponentInterfacesBehaviorcComponentinterfacesCall-backsCall-backprocedureObjectreference2019年8月25感謝你的觀(guān)看68ComponentinterfacesCall-backsContextualcomposition設(shè)想諸如Transaction、Security等非功能特性如何在分布構(gòu)件組裝中得以實(shí)現(xiàn)?幾乎每個(gè)實(shí)際分布構(gòu)件系統(tǒng)都用到由開(kāi)發(fā)者在功能代碼中實(shí)現(xiàn)?太復(fù)雜可否另加?(separationofconcerns)!Howto?自動(dòng)化?2019年8月25感謝你的觀(guān)看69Contextualcomposition設(shè)想諸如TranContextualcomposition:
Domainsandcontexts2019年8月25感謝你的觀(guān)看70c1c3uvwxc2Load-balancingdomain(RsrcID=7)Transactiondomain(TxID=42)跨越語(yǔ)境邊界的調(diào)用被攔截,然后根據(jù)語(yǔ)境屬性或者被預(yù)處理,或者被置后處理,或者被拒絕如果兩個(gè)構(gòu)件共享一組兼容的語(yǔ)境屬性集,則它們可以被看做是處在同一域中Contextualcomposition:
DomainContextualcomposition使用“Containers”EJBcontainersCCMcontainersCLRcontextsandchannels以前的container只支持預(yù)定義的context,但新技術(shù).NET:ThelistofcontextpropertiesisextensibleEJB3.0:使用@AroundInvoke注釋?zhuān)憧梢詫⑷我鈈ean方法作為攔截器方法在任意bean方法之前和之后運(yùn)行(但這個(gè)修改源程序的方式不夠SoC)2019年8月25感謝你的觀(guān)看71Contextualcomposition使用“ContaContextualcomposition實(shí)現(xiàn)原理為每個(gè)context維護(hù)一個(gè)邏輯上共享的信息空間TransactionID;用戶(hù)認(rèn)證信息,等等實(shí)現(xiàn)上在Domain中的各個(gè)構(gòu)件間進(jìn)行交互時(shí)攜帶這些信息;在調(diào)用前后插入Interceptors處理這些信息麻煩的問(wèn)題是這些aspects并不都是“正交”的(意味著Interceptor之間的順序有關(guān)系?。?019年8月25感謝你的觀(guān)看72Contextualcomposition實(shí)現(xiàn)原理20192019年8月25感謝你的觀(guān)看732022/12/14InstituteofComputerSoftwareNanjingUniversity2019年8月25感謝你的觀(guān)看732022/12/12InsDate-drivencompositionEJBmessage-drivenbeansJavaMessageService(JMS)Microsoftmessagequeue(MSMQ)異步,松耦合適合工作流系統(tǒng),較不適合交互系統(tǒng);2019年8月25感謝你的觀(guān)看742022/12/14InstituteofComputerSoftwareNanjingUniversityDate-drivencompositionEJBmesFederationandpeer-to-peerJini即插即用設(shè)備之間無(wú)需驅(qū)動(dòng)程序,就可以互相辨認(rèn)并交換信息資源基于Java分布計(jì)算技術(shù)的解決方案2019年8月25感謝你的觀(guān)看752022/12/14InstituteofComputerSoftwareNanjingUniversityFederationandpeer-to-peerJinPeer-to-Peer第一代 集中的文件列表服務(wù)器,Napster第二代分散的文件列表服務(wù)器,Gnutella,F(xiàn)astTrack第三代提供更高的效率、可靠性和匿名性匿名網(wǎng):Freenet,I2P,GNUnet,Entropy2019年8月25感謝你的觀(guān)看76Peer-to-Peer第一代 2019年8月25感謝你的觀(guān)作業(yè)請(qǐng)列舉構(gòu)件和對(duì)象的相似點(diǎn)和不同點(diǎn)構(gòu)件的組合有幾種方式?2019年8月25感謝你的觀(guān)看77作業(yè)請(qǐng)列舉構(gòu)件和對(duì)象的相似點(diǎn)和不同點(diǎn)2019年8月25感謝你構(gòu)件化軟件ComponentSoftware2019年8月25感謝你的觀(guān)看78ComponentSoftware2019年8月25感謝你RoadmapPart1:OO基礎(chǔ)OO基本原理DesignbyContract異常處理;并發(fā)對(duì)象;持久對(duì)象Part2:OO設(shè)計(jì)原則和設(shè)計(jì)模式敏捷軟件開(kāi)發(fā)方法OO設(shè)計(jì)原則OO設(shè)計(jì)模式應(yīng)用框架技術(shù)AOP2019年8月25感謝你的觀(guān)看79RoadmapPart1:OO基礎(chǔ)2019年8月25感謝RoadmapPart3:構(gòu)件技術(shù)構(gòu)件化軟件分布對(duì)象服務(wù)計(jì)算2019年8月25感謝你的觀(guān)看80RoadmapPart3:構(gòu)件技術(shù)2019年8月25感謝摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看81摘要引言2019年8月25感謝你的觀(guān)看4摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看82摘要引言2019年8月25感謝你的觀(guān)看5引言2019年8月25感謝你的觀(guān)看83Softwareshouldbecomponentizedbuiltfromprefabricatedcomponents
DouglasMcIlroy'saddressattheNATOconferenceonsoftwareengineeringinGarmisch,Germany,1968titledMassProducedSoftwareComponents.引言2019年8月25感謝你的觀(guān)看6Softwaresho引言軟件問(wèn)題的核心質(zhì)量不高生產(chǎn)率低常常是一對(duì)矛盾能不能向其它成熟產(chǎn)業(yè)學(xué)習(xí)?復(fù)用分工市場(chǎng)競(jìng)爭(zhēng)但軟件有其自身特點(diǎn)2019年8月25感謝你的觀(guān)看84引言軟件問(wèn)題的核心2019年8月25感謝你的觀(guān)看7引言2019年8月25感謝你的觀(guān)看85復(fù)用--不完全一致的使用場(chǎng)景分工--難以完全解除的部件耦合市場(chǎng)競(jìng)爭(zhēng)--不能沿用物質(zhì)產(chǎn)品的盈利模式引言2019年8月25感謝你的觀(guān)看8復(fù)用--不完全一引言基于構(gòu)件的軟件開(kāi)發(fā)一直未曾完全實(shí)現(xiàn)的老想法重用“工業(yè)化”影響因素不僅限于技術(shù)層面2019年8月25感謝你的觀(guān)看86引言基于構(gòu)件的軟件開(kāi)發(fā)2019年8月25感謝你的觀(guān)看9回顧:軟件領(lǐng)域的發(fā)展程序設(shè)計(jì)方法的發(fā)展軟件需求的變化軟件環(huán)境的變化軟件開(kāi)發(fā)模式的變化2019年8月25感謝你的觀(guān)看87回顧:軟件領(lǐng)域的發(fā)展程序設(shè)計(jì)方法的發(fā)展2019年8月25感謝程序設(shè)計(jì)方法的發(fā)展功能分解法——計(jì)算任務(wù)結(jié)構(gòu)化程序設(shè)計(jì)——以數(shù)據(jù)為中心面向?qū)ο蟪绦蛟O(shè)計(jì)——以對(duì)象為中心構(gòu)件(組件)程序設(shè)計(jì)——以構(gòu)件為中心2019年8月25感謝你的觀(guān)看88綜合使用程序設(shè)計(jì)方法的發(fā)展功能分解法——計(jì)算任務(wù)2019年8月2軟件需求的變化計(jì)算2019年8月25感謝你的觀(guān)看89實(shí)用管理(MIS)分布式系統(tǒng)軟件需求的變化計(jì)算2019年8月25感謝你的觀(guān)看12實(shí)用管理軟件環(huán)境的變化單任務(wù)2019年8月25感謝你的觀(guān)看90多任務(wù)文字界面圖形界面單線(xiàn)程多線(xiàn)程平臺(tái)相關(guān)跨平臺(tái)單機(jī)(本地)網(wǎng)絡(luò)(分布式)單一語(yǔ)言多種語(yǔ)言軟件環(huán)境的變化單任務(wù)2019年8月25感謝你的觀(guān)看13多任務(wù)軟件開(kāi)發(fā)模式機(jī)器碼2019年8月25感謝你的觀(guān)看91高級(jí)語(yǔ)言和腳本代碼OS+Compiler+EditorOS+Compilers+IDEs+Libraries+Wizards+Components+otherinfrastructures+經(jīng)驗(yàn)軟件開(kāi)發(fā)模式機(jī)器碼2019年8月25感謝你的觀(guān)看14高級(jí)語(yǔ)言發(fā)展變化的結(jié)果軟件學(xué)科的形成不變因素:計(jì)算機(jī)的基本運(yùn)作模式探求新的計(jì)算模型量子計(jì)算?生物信息學(xué)?2019年8月25感謝你的觀(guān)看92發(fā)展變化的結(jié)果軟件學(xué)科的形成2019年8月25感謝你的觀(guān)看1回顧軟件學(xué)科多年來(lái)的變化2019年8月25感謝你的觀(guān)看93軟件的產(chǎn)生過(guò)程:原始代碼編譯
Link終代碼、腳本混合軟件的分發(fā)過(guò)程:文檔、說(shuō)明書(shū)、自動(dòng)安裝工具、培訓(xùn)、升級(jí)軟件工程:需求分析設(shè)計(jì)
codetest使用對(duì)象技術(shù)和構(gòu)件技術(shù)的不斷普及,與大環(huán)境發(fā)展相結(jié)合回顧軟件學(xué)科多年來(lái)的變化2019年8月25感謝你的觀(guān)看16軟對(duì)象技術(shù)2019年8月25感謝你的觀(guān)看94用一種新的思路來(lái)看待問(wèn)題多年的發(fā)展證明了OO符合軟件的規(guī)律對(duì)象技術(shù)的發(fā)展需要開(kāi)發(fā)工具和開(kāi)發(fā)語(yǔ)言的支持三大特性:封裝性、繼承性、多態(tài)性?xún)煞N思想Object-BasedObject-Oriented對(duì)象技術(shù)2019年8月25感謝你的觀(guān)看17用一種新的思路來(lái)看構(gòu)件技術(shù)2019年8月25感謝你的觀(guān)看95構(gòu)件技術(shù)適合于現(xiàn)代的軟件環(huán)境軟件更新快、規(guī)模大、強(qiáng)調(diào)協(xié)作等構(gòu)件的概念、軟件IC構(gòu)件的可獨(dú)立發(fā)布性要求“接口與實(shí)現(xiàn)分離”構(gòu)件infrastructure,構(gòu)件體系COM、CORBA(和Java)、.NET中間件(middleware)市場(chǎng)構(gòu)件技術(shù)2019年8月25感謝你的觀(guān)看18構(gòu)件技術(shù)適合于現(xiàn)代摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看96摘要引言2019年8月25感謝你的觀(guān)看19構(gòu)件參考文獻(xiàn)ClemensSzyperski,DominikGruntz,StephanMurer.ComponentSoftware:BeyondObject-OrientedProgramming,SecondEdition.2019年8月25感謝你的觀(guān)看97構(gòu)件參考文獻(xiàn)2019年8月25感謝你的觀(guān)看20構(gòu)件的特性獨(dú)立部署單元必須能跟它所在的環(huán)境及其它構(gòu)件完全分離,因此必須封裝自己的全部?jī)?nèi)部特征(原子性)作為第三方的組裝單元必須封裝它的實(shí)現(xiàn),并且只通過(guò)良好定義的接口與外部環(huán)境進(jìn)行交互(足夠好的內(nèi)聚性)沒(méi)有(外部的)可見(jiàn)狀態(tài)構(gòu)件不能與自己的拷貝有所區(qū)別,但某些特殊屬性可以沒(méi)有此種限制2019年8月25感謝你的觀(guān)看98構(gòu)件的特性獨(dú)立部署單元必須能跟它所在的環(huán)境及其它構(gòu)件完比較構(gòu)件vs.對(duì)象構(gòu)件的行為可以通過(guò)對(duì)象來(lái)實(shí)現(xiàn)但是構(gòu)件并非一定要包含類(lèi)元素,它甚至可以不包含類(lèi)難以判斷一個(gè)構(gòu)件內(nèi)部是否是“完全面向?qū)ο蟆钡臉?gòu)件vs.模塊模塊化是構(gòu)件技術(shù)產(chǎn)生的前提但對(duì)于構(gòu)件,傳統(tǒng)的模塊化概念和標(biāo)準(zhǔn)是遠(yuǎn)遠(yuǎn)不夠的2019年8月25感謝你的觀(guān)看99一個(gè)實(shí)例單元,具有唯一的標(biāo)志;可能具有外部可見(jiàn)狀態(tài);封裝狀態(tài)和行為包多個(gè)類(lèi)比較構(gòu)件vs.對(duì)象2019年8月25感謝你的觀(guān)看22一個(gè)構(gòu)件分類(lèi):白盒,灰盒,黑盒白盒:提供構(gòu)件的同時(shí)也提供實(shí)現(xiàn)構(gòu)件的全部代碼,應(yīng)用構(gòu)件時(shí)需要對(duì)源代碼進(jìn)行某些修改,然后才能把它集成到系統(tǒng)中實(shí)現(xiàn)一定的目的灰盒:只提供有關(guān)界面部分的源代碼,對(duì)構(gòu)件的內(nèi)核不清楚,只能在接口界面上做一些用戶(hù)化的工作黑盒:完全不提供代碼,只提供構(gòu)件的二進(jìn)制可執(zhí)行形式2019年8月25感謝你的觀(guān)看100構(gòu)件分類(lèi):白盒,灰盒,黑盒白盒:提供構(gòu)件的同時(shí)也提供實(shí)現(xiàn)構(gòu)件COTSCommercialOffTheShelf現(xiàn)成買(mǎi)來(lái)的,即強(qiáng)調(diào)構(gòu)件的預(yù)制性不提供源碼,強(qiáng)調(diào)構(gòu)件的封裝性和透明性強(qiáng)調(diào)可互換性不是為某一個(gè)客戶(hù)定制的,而是某一領(lǐng)域中通用的2019年8月25感謝你的觀(guān)看101COTSCommercialOffTheShelf20軟件構(gòu)件定義ClemensSzyperski,1996:
Asoftwarecomponentisaunitofcompositionwithcontractuallyspecifiedinterfacesandexplicitcontextdependenciesonly.Asoftwarecomponentcanbedeployedindependentlyandissubjecttocompositionbythirdparties.
2019年8月25感謝你的觀(guān)看102軟件構(gòu)件定義ClemensSzyperski,1996:
軟件構(gòu)件定義軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口契約和顯式的語(yǔ)境依賴(lài),軟件構(gòu)件可以被獨(dú)立地部署并由第三方任意地組裝技術(shù)因素:獨(dú)立性、合約接口,組裝市場(chǎng)因素:第三方,部署2019年8月25感謝你的觀(guān)看103軟件構(gòu)件定義軟件構(gòu)件是一種組裝單元,它具有規(guī)范的接口契約和顯軟件構(gòu)件接口:用戶(hù)與構(gòu)件發(fā)生交互的連接渠道,第3方只能通過(guò)構(gòu)件接口的規(guī)格說(shuō)明理解和復(fù)用構(gòu)件接口規(guī)格說(shuō)明是一種契約,它足夠精確地描述構(gòu)件實(shí)現(xiàn)的功能,同時(shí)不把構(gòu)件限定于唯一的實(shí)現(xiàn)方法e.g.IDL,WSDL2019年8月25感謝你的觀(guān)看104軟件構(gòu)件接口:用戶(hù)與構(gòu)件發(fā)生交互的連接渠道,第3方只能通過(guò)構(gòu)軟件構(gòu)件顯式語(yǔ)境依賴(lài)構(gòu)件的需求:為了使構(gòu)件正常工作,必須說(shuō)明其對(duì)部署環(huán)境的具體要求。這些要求被稱(chēng)為語(yǔ)境依賴(lài),指的是構(gòu)件組裝和部署的語(yǔ)境。包括了定義組裝規(guī)則的構(gòu)件模型和定義構(gòu)件部署、安裝和激活規(guī)則的構(gòu)件平臺(tái)。RequiredInterfaces2019年8月25感謝你的觀(guān)看105軟件構(gòu)件顯式語(yǔ)境依賴(lài)2019年8月25感謝你的觀(guān)看28構(gòu)件的規(guī)模“最大化重用”策略:只實(shí)現(xiàn)核心功能,然后重用其他所有的一切。缺點(diǎn):語(yǔ)境依賴(lài)的爆炸性增長(zhǎng)2019年8月25感謝你的觀(guān)看106最大化重用降低了可用性健壯性簡(jiǎn)潔性0100%重用率增加語(yǔ)境依賴(lài)會(huì)使構(gòu)件因重用而簡(jiǎn)潔,但卻降低其可用性增加自給性可以減少語(yǔ)境依賴(lài),增加可用性,并且使構(gòu)件更加健壯,但卻使構(gòu)件規(guī)模過(guò)大構(gòu)件的規(guī)?!白畲蠡赜谩辈呗裕褐粚?shí)現(xiàn)核心功能,然后重用其他所構(gòu)件基礎(chǔ)設(shè)施構(gòu)件基礎(chǔ)設(shè)施(infrastructure)是異構(gòu)構(gòu)件互操作的標(biāo)準(zhǔn)和通信平臺(tái)構(gòu)件框架(framework)是構(gòu)件實(shí)例即插即用的支撐結(jié)構(gòu),通過(guò)一定的環(huán)境條件和交互規(guī)則,構(gòu)件框架允許一組構(gòu)件形成一個(gè)孤島,獨(dú)立地與外部構(gòu)件或其它框架交互和協(xié)作,構(gòu)件框架及其內(nèi)含的構(gòu)件也可以視為一個(gè)構(gòu)件。OMGCORBA,MicrosoftCOM/DCOM(或.NET),SUNJavaBean/EJB2019年8月25感謝你的觀(guān)看107構(gòu)件基礎(chǔ)設(shè)施構(gòu)件基礎(chǔ)設(shè)施(infrastructure)是異軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(SoftwareArchitecture)是對(duì)系統(tǒng)宏觀(guān)結(jié)構(gòu)的描述,是由一組構(gòu)件(components),連接件(connectors)以及配置(configuration)組成。在較高級(jí)別上抽象出不同系統(tǒng)的共性有助于軟件工程師在設(shè)計(jì)早期正確選擇軟件構(gòu)架便于對(duì)軟件系統(tǒng)的性質(zhì)進(jìn)行描述和分析構(gòu)架本身是可復(fù)用的資產(chǎn),軟件構(gòu)架設(shè)計(jì)的復(fù)用會(huì)促進(jìn)軟件代碼復(fù)用,軟件構(gòu)架為構(gòu)件的組裝提供了框架和語(yǔ)境2019年8月25感謝你的觀(guān)看108軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(SoftwareArchitec摘要引言構(gòu)件構(gòu)件技術(shù)構(gòu)件的組合2019年8月25感謝你的觀(guān)看109摘要引言2019年8月25感謝你的觀(guān)看32構(gòu)件技術(shù)MS:COM(ComponentObjectModel),COM+,.NetOMG:CORBA(CommonObjectRequestBrokerArchitecture),CCM,OMA,MDASUN:JavaBean,EJB(EnterpriseJavaBean)2019年8月25感謝你的觀(guān)看110構(gòu)件技術(shù)MS:COM(ComponentObjectMCOMCOM是MS平臺(tái)上所有構(gòu)件的基石93年發(fā)布,脫胎于MS的OLE(ObjectLinkingandEmbedding)規(guī)范+實(shí)現(xiàn)96年,DCOM2019年8月25感謝你的觀(guān)看111COMCOM是MS平臺(tái)上所有構(gòu)件的基石2019年8月25感謝COM:構(gòu)件對(duì)象模型2019年8月25感謝你的觀(guān)看112建立在二進(jìn)制層次上的標(biāo)準(zhǔn)許多概念與C++的特征相似,如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:構(gòu)件對(duì)象模型2019年8月25感謝你的觀(guān)看35建立在COM特性2019年8月25感謝你的觀(guān)看113語(yǔ)言無(wú)關(guān)規(guī)范和實(shí)現(xiàn)都是語(yǔ)言無(wú)關(guān)的進(jìn)程透明位置透明inprocserver、out-of-procserver可重用性多線(xiàn)程特性可擴(kuò)展性COM特性2019年8月25感謝你的觀(guān)看36語(yǔ)言無(wú)關(guān)COM:接口2019年8月25感謝你的觀(guān)看114COM接口IID:128位的全局唯一標(biāo)識(shí)符接口定義語(yǔ)言COMIDL對(duì)應(yīng)于C++中由純虛函數(shù)組成的類(lèi)基接口:IUnknownCOM接口特性:接口不變性繼承性多態(tài)性——運(yùn)行時(shí)刻的多態(tài)性COM:接口2019年8月25感謝你的觀(guān)看37COM接口COM:對(duì)象2019年8月25感謝你的觀(guān)看115COM對(duì)象CLSID實(shí)現(xiàn)多個(gè)接口COM對(duì)象特性:身份確定封裝可重用COM:對(duì)象2019年8月25感謝你的觀(guān)看38COM對(duì)象COCOM:構(gòu)件2019年8月25感謝你的觀(guān)看116COM對(duì)象的載體包含多個(gè)COM對(duì)象進(jìn)程內(nèi)構(gòu)件DLLExportEntrys進(jìn)程外構(gòu)件IPC:RPC/LPCCOM:構(gòu)件2019年8月25感謝你的觀(guān)看39COM對(duì)象的載COM:進(jìn)程內(nèi)構(gòu)件2019年8月25感謝你的觀(guān)看117InprocserverExportEntrysCOM:進(jìn)程內(nèi)構(gòu)件2019年8月25感謝你的觀(guān)看40InprCOM:進(jìn)程外構(gòu)件2019年8月25感謝你的觀(guān)看118Out-of-procserverCOM:進(jìn)程外構(gòu)件2019年8月25感謝你的觀(guān)看41Out-COM:遠(yuǎn)程構(gòu)件2019年8月25感謝你的觀(guān)看119remoteserverCOM:遠(yuǎn)程構(gòu)件2019年8月25感謝你的觀(guān)看42remotCOM:構(gòu)件信息發(fā)布2019年8月25感謝你的觀(guān)看120注冊(cè)表發(fā)布構(gòu)件的信息、對(duì)象的信息、接口的信息等注冊(cè)工具和配置工具Regsvr32.exe.reg自注冊(cè)-RegServerDCOMCNFG.EXEMTSExplorer、活動(dòng)目錄COM:構(gòu)件信息發(fā)布2019年8月25感謝你的觀(guān)看43注冊(cè)表COM:創(chuàng)建COM對(duì)象2019年8月25感謝你的觀(guān)看121對(duì)象的創(chuàng)建過(guò)程COM:創(chuàng)建COM對(duì)象2019年8月25感謝你的觀(guān)看44對(duì)象COM:COM對(duì)象管理2019年8月25感謝你的觀(guān)看122客戶(hù)使用規(guī)則,控制對(duì)象生命周期COM實(shí)現(xiàn)優(yōu)化各種輔助手段構(gòu)件類(lèi)別componentcategory類(lèi)別標(biāo)識(shí)符CATIDMTS和COM+COM:COM對(duì)象管理2019年8月25感謝你的觀(guān)看45客戶(hù)COM:COM體系2019年8月25感謝你的觀(guān)看123基本的功能擴(kuò)展功能連接點(diǎn)結(jié)構(gòu)化存儲(chǔ)名字服務(wù)自動(dòng)化其他COM+COM:COM體系2019年8月25感謝你的觀(guān)看46基本的功COM:COM+2019年8月25感謝你的觀(guān)看124建立在COM的基礎(chǔ)上,COM的自然延伸Services事件服務(wù)隊(duì)列服務(wù)事務(wù)服務(wù)負(fù)載平衡其他COM:COM+2019年8月25感謝你的觀(guān)看47建立在COCOM:應(yīng)用2019年8月25感謝你的觀(guān)看125OLEActiveXcontrol腳本功能擴(kuò)展OLEDBADSI(ActiveDirectoryServiceInterfaces)ASP其他COM:應(yīng)用2019年8月25感謝你的觀(guān)看48OLECOM:分布式應(yīng)用2019年8月25感謝你的觀(guān)看126COM/COM+為基于Windows的分布式應(yīng)用提供了基礎(chǔ)設(shè)施TransactionSecurityOLEDBWeb集成ActiveDirectory管理功能COM:分布式應(yīng)用2019年8月25感謝你的觀(guān)看49COM/CORBA2019年8月25感謝你的觀(guān)看127OMG,800多家廠(chǎng)商聯(lián)合制定的標(biāo)準(zhǔn)91年1.0,主要是C語(yǔ)言映射95年2.0,加入IIOP最新版本3.0CORBA規(guī)范制訂了互操作規(guī)范,上層標(biāo)準(zhǔn)協(xié)議一系列映射到多種語(yǔ)言的規(guī)范各種服務(wù)相關(guān)的規(guī)范CORBA實(shí)現(xiàn):ORBCORBA2019年8月25感謝你的觀(guān)看50OMG,800多CORBA體系結(jié)構(gòu)2019年8月25感謝你的觀(guān)看128CORBA體系結(jié)構(gòu)2019年8月25感謝你的觀(guān)看51CORBA:跨平臺(tái)、跨語(yǔ)言2019年8月25感謝你的觀(guān)看129典型的語(yǔ)言:C++語(yǔ)言、Java語(yǔ)言、Smalltalk多種平臺(tái)關(guān)鍵:IOR(InteroperableObjectreference)ORB實(shí)現(xiàn)CORBA:跨平臺(tái)、跨語(yǔ)言2019年8月25感謝你的觀(guān)看52部分ORB實(shí)現(xiàn)商業(yè)ORBOrbix,IONA公司Visibroker,Inprise公司,4.0版完全支持2.3規(guī)范
Netscapecommunicator瀏覽器嵌入Visibroker自由ORBORBit,遵循CORBA2.2規(guī)范,支持C語(yǔ)言,性能較高mico,GNU,OpenSourceTAO,美國(guó)華盛頓大學(xué)分布式對(duì)象計(jì)算研究小組omniORB,AT&T劍橋?qū)嶒?yàn)室國(guó)產(chǎn)ORB國(guó)防科大的嵌入式CORBA(eBus)東南大學(xué)的ORBUS2019年8月25感謝你的觀(guān)看130部分ORB實(shí)現(xiàn)商業(yè)ORB2019年8月25感謝你的觀(guān)看53CORBA:客戶(hù)2019年8月25感謝你的觀(guān)看131客戶(hù)通過(guò)stub或者CORBA庫(kù)與對(duì)象或者ORB進(jìn)行通信CORBA:客戶(hù)2019年8月25感謝你的觀(guān)看54客戶(hù)通過(guò)sCORBA:對(duì)象2019年8月25感謝你的觀(guān)看132對(duì)象與OA進(jìn)行通信CORBA:對(duì)象2019年8月25感謝你的觀(guān)看55對(duì)象與OACORBA:C++映射開(kāi)發(fā)過(guò)程2019年8月25感謝你的觀(guān)看133編寫(xiě)IDLIDLC++利用生成的stub類(lèi)編寫(xiě)客戶(hù)利用生成的impl類(lèi)編寫(xiě)服務(wù)器對(duì)象{以字符串形式傳遞OR}CORBA:C++映射開(kāi)發(fā)過(guò)程2019年8月25感謝你的觀(guān)看CORBA:核心2019年8月25感謝你的觀(guān)看134CORBAIDL支持多繼承支持結(jié)構(gòu)化數(shù)據(jù)類(lèi)型字符串形式的ORPOA(PortableObjectAdapter)CORBA對(duì)象的環(huán)境context策略設(shè)置CORBA:核心2019年8月25感謝你的觀(guān)看57CORBACORBA:核心(續(xù))2019年8月25感謝你的觀(guān)看135GIOP(GeneralInter-ORBProtocol)互操作協(xié)議框架IIOP(InternetInter-ORBProtocol)IORCORBA對(duì)象的標(biāo)識(shí)實(shí)現(xiàn)倉(cāng)庫(kù)、接口倉(cāng)庫(kù)未標(biāo)準(zhǔn)化CORBA:核心(續(xù))2019年8月25感謝你的觀(guān)看58GICORBA:服務(wù)2019年8月25感謝你的觀(guān)看136命名服務(wù)層次命名綁定TradingService功能更強(qiáng)、使用更靈活的對(duì)象查詢(xún)服務(wù)事件服務(wù)事件發(fā)送方和接受方之間的decoupleCORBA:服務(wù)2019年8月25感謝你的觀(guān)看59命名服務(wù)CCM:CorbaComponentModel2019年8月25感謝你的觀(guān)看137CCM:CorbaComponentModel2019EJBJ2EEEJB在J2EE中的位置2019年8月25感謝你的觀(guān)看138EJBJ2EE2019年8月25感謝你的觀(guān)看61EJB2019年8月25感謝你的觀(guān)看139EJB2019年8月25感謝你的觀(guān)看62EJBSessionBeansEntityBeansMessage-drivenbeans2019年8月25感謝你的觀(guān)看140EJBSessionBeans2019年8月25感謝你的觀(guān)摘要引言構(gòu)件構(gòu)件對(duì)象模型構(gòu)件的組合2019年8月25感謝你的觀(guān)看141摘要引言2019年8月25感謝你的觀(guān)看64構(gòu)件的組合ComponentsareforcompositionConnection-orientedcompositionContextualcompositionData-drivencompositionFederationandpeer-to-peer2019年8月25感謝你的觀(guān)看142構(gòu)件的組合ComponentsareforcomposConnection-orientedcompositionWiringoutgoingandincominginterfaces..對(duì)于一個(gè)接口來(lái)說(shuō)非對(duì)稱(chēng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽新聞出版職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案1套
- 2025年安徽省安慶市單招職業(yè)傾向性考試題庫(kù)含答案
- 土地作價(jià)入股合同范本
- 精簡(jiǎn)房屋出租合同范本
- 馬鞍山職業(yè)技術(shù)學(xué)院《傳熱學(xué)與換熱器》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津?yàn)I海職業(yè)學(xué)院《地下工程監(jiān)測(cè)與檢測(cè)》2023-2024學(xué)年第二學(xué)期期末試卷
- T-ZSA 232-2024 特種巡邏機(jī)器人通.用技術(shù)要求
- T-ZJHQ 0003-2024 高等學(xué)校生活垃圾分類(lèi)工作規(guī)范
- 2025年度電子商務(wù)平臺(tái)數(shù)據(jù)分析與報(bào)告合同模板
- 二零二五年度解除婚約合同范本:婚約解除后的財(cái)產(chǎn)清算、債務(wù)處理及子女監(jiān)護(hù)協(xié)議
- 第三章生產(chǎn)勘探課件
- 2023年安徽高校教師崗前培訓(xùn)結(jié)業(yè)統(tǒng)考試題及參考答案
- 聽(tīng)胎心音操作評(píng)分標(biāo)準(zhǔn)
- 風(fēng)機(jī)齒輪箱的機(jī)構(gòu)和工作原理
- 高效能人士的七個(gè)習(xí)慣 周計(jì)劃表 完美版
- 新生兒疾病診療規(guī)范診療指南診療常規(guī)2022版
- 園林綠化工作總結(jié)及工作計(jì)劃7篇2023年
- 浙江森林撫育工程預(yù)算定額編制說(shuō)明
- 金庸群俠傳x最完整攻略(實(shí)用排版)
- 污水處理廠(chǎng)設(shè)備的維修與保養(yǎng)方案
- 專(zhuān)題13《竹里館》課件(共28張ppt)
評(píng)論
0/150
提交評(píng)論