国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
CORBA Programming with TAO (基本概念)
一、CORBATAO簡(jiǎn)介

     CORBA是一個(gè)為簡(jiǎn)化跨平臺(tái)應(yīng)用而提出的規(guī)范,它獨(dú)立于網(wǎng)絡(luò)協(xié)議、編程語(yǔ)言和軟硬件平臺(tái),支持異構(gòu)的分布式計(jì)算環(huán)境和不同編程語(yǔ)言間的對(duì)象重用。CORBA可以作為不同平臺(tái)應(yīng)用間信息傳遞的中間件,CORBA通過(guò)引入經(jīng)過(guò)充分驗(yàn)證的有效的框架結(jié)構(gòu)和通信手段,最大限度地簡(jiǎn)化了網(wǎng)絡(luò)通信相關(guān)應(yīng)用的設(shè)計(jì)與開(kāi)發(fā),使得開(kāi)發(fā)人員可以專(zhuān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn),而無(wú)需關(guān)心通信的細(xì)節(jié)。CORBA被稱(chēng)作“軟總線(xiàn)”,

以表明它作為數(shù)據(jù)傳遞通道的基本特性。

    現(xiàn)在存在眾多CORBA實(shí)現(xiàn),既有商用的ORBacusVisiBroker,也有一些優(yōu)秀的開(kāi)源實(shí)現(xiàn),如:TAO、omniORBMICO等。由于各實(shí)現(xiàn)遵從相同的規(guī)范,接口基本一致,所以在熟練應(yīng)用一種CORBA實(shí)現(xiàn)后,轉(zhuǎn)而使用其它實(shí)現(xiàn)時(shí),一般不會(huì)存在太大的障礙。

 

       TAOThe ACE ORB)是美國(guó)華盛頓大學(xué)的Douglas C. Schmidt教授領(lǐng)導(dǎo)開(kāi)發(fā)的一個(gè)實(shí)時(shí)CORBA平臺(tái),它是一個(gè)免費(fèi)的開(kāi)放源碼項(xiàng)目,用C++語(yǔ)言開(kāi)發(fā),符合CORBA2.6規(guī)范。

    支持語(yǔ)言:       C++

    支持平臺(tái):       Win32,常見(jiàn)的各種Unix/Linux,實(shí)時(shí)操作系統(tǒng)如VxWorks等等。在所有的CORBA實(shí)現(xiàn)中,TAO支持的平臺(tái)是最多的。

    支持的服務(wù):    Naming、Event、Notification、Security、Time、Scheduling、Logging、LifecycleTrading、ConcurrencyLifecycle、A/V StreamingLoad balancing等。

    這里將以當(dāng)前最新的ACE-5.5+TAO-1.5+CIAO0.5為例,簡(jiǎn)要介紹如何應(yīng)用TAO進(jìn)行CORBA C++編程,其中部分內(nèi)容(尤其是編譯器配置相關(guān)的內(nèi)容)是Windows平臺(tái)特有的,但

其它大多數(shù)信息在各平臺(tái)上都是相同或者類(lèi)似的。

二、基本概念

      這里不打算深入介紹CORBA相關(guān)的理論基礎(chǔ)(已有很多書(shū)籍、文章討論了這些內(nèi)容),但在進(jìn)入下一主題前,為了便于后續(xù)問(wèn)題的討論,這里簡(jiǎn)要介紹一下CORBA的基本原理,

并對(duì)幾個(gè)重要的基本概念進(jìn)行解釋?zhuān)员阍跊](méi)有相關(guān)知識(shí)的情況下掃清障。

      下圖是CORBA的基本模型:

    圖中除上面那根灰線(xiàn)(有點(diǎn)淺,看不清的請(qǐng)慢慢找)以上的兩個(gè)部分需要開(kāi)發(fā)人員直接介入外,其他部分基本可以由IDL編譯器自動(dòng)生成或由CORBA實(shí)現(xiàn)完成。借助CORBA提供的中間件機(jī)制,

在進(jìn)行方法調(diào)用時(shí),無(wú)需考慮被調(diào)用對(duì)象所在的具體位置,而是像調(diào)用一個(gè)本地模塊的方法一樣“直接”與其通信(因此,有些應(yīng)用中,CORBA也被用于本地進(jìn)程間通信,以降低各模塊間的耦合

度,同時(shí)也便于系統(tǒng)結(jié)構(gòu)的調(diào)整)。

上圖主要包括以下幾個(gè)組成部分:

·        Client        即客戶(hù)程序,Client通過(guò)調(diào)用服務(wù)程序提供的接口實(shí)現(xiàn)特定功能。

·        Object       CORBA Object是一個(gè)語(yǔ)言無(wú)關(guān)的虛擬的實(shí)體,它可以由ORB定位,并可被客戶(hù)程序請(qǐng)求調(diào)用,它最終由某種語(yǔ)言來(lái)具體實(shí)現(xiàn),從而成為應(yīng)用程序的一部分。

·        Servant     即實(shí)例化的Object,Servant是組成服務(wù)程序,具體為Client提供服務(wù)的某個(gè)運(yùn)行中(且被注冊(cè)到OA)的C++/Java(或其他語(yǔ)言)對(duì)象。ObjectServant是一對(duì)多的關(guān)系,

                 一個(gè)Object可以被實(shí)例化多次,注冊(cè)到一個(gè)或多個(gè)OA中為一個(gè)或多個(gè)Client提供服務(wù),各Servant對(duì)應(yīng)不同的IOR多個(gè)IOR具有相同的Type信息,但唯一標(biāo)識(shí)不同),并且,

                 每個(gè)Servant都可以由IOR唯一確定,對(duì)于持久Object,該IOR在兩次啟動(dòng)同一系統(tǒng)時(shí)不會(huì)發(fā)生變化,除非服務(wù)程序所在主機(jī)IP或配置信息等發(fā)生改變,而對(duì)于非持久Object,

                 該IOR在兩次啟動(dòng)同一服務(wù)程序時(shí),總是變化的(因?yàn)槠渲型粋€(gè)時(shí)間戳)。

·        Stub          即樁,或稱(chēng)存根,Stub負(fù)責(zé)“假扮”ServantClient提供一個(gè)本地化的接口,并負(fù)責(zé)與ORB進(jìn)行交互,完成調(diào)用請(qǐng)求的列集(marshaling,即打包)與散集(unmarshaling,即解包)。

                 列集的主要作用是按雙方ORB可以識(shí)別的方式對(duì)需要傳遞的數(shù)據(jù)進(jìn)行格式化,而散集則將收到的數(shù)據(jù)中還原成上層應(yīng)用可以理解的內(nèi)存數(shù)據(jù)形式,對(duì)于遠(yuǎn)端指針,散集時(shí)ORB還負(fù)責(zé)分配相

                 應(yīng)的內(nèi)存空間,并將指針的內(nèi)容復(fù)制到本地內(nèi)存空間以為本地應(yīng)用提供一個(gè)遠(yuǎn)端指針的鏡像,從而保證本地應(yīng)用對(duì)遠(yuǎn)端指針的“透明”訪(fǎng)問(wèn)。

·        Skeleton    Stub對(duì)應(yīng),負(fù)責(zé)調(diào)用參數(shù)在Server端的解包和調(diào)用返回的打包。

·        ORB Core   屏蔽底層通信細(xì)節(jié)的中間件,所有遠(yuǎn)程訪(fǎng)問(wèn)請(qǐng)求在ClientServer端的ORB間被傳遞,使得上層應(yīng)用無(wú)需關(guān)注平臺(tái)、語(yǔ)言、網(wǎng)絡(luò)結(jié)構(gòu)等方面的差異。

·        Object AdapterOA  

                        OAORBServant之間的橋梁,主要負(fù)責(zé):

                    1、產(chǎn)生對(duì)象引用;

                    2、激活Servant或反之;

                    3、將請(qǐng)求分解后傳遞給對(duì)應(yīng)的Servant

                    4、Skeleton配合完成對(duì)Servant提供方法的調(diào)用。

                              OAServant也是一對(duì)多的關(guān)系。

      下面的圖形進(jìn)一步說(shuō)明了ORBOASkeleton、Servant之間的關(guān)系:

三、編譯TAO

    TAO可以從如下地址獲得:

    http://download.ociweb.com/TAO-1.5a/ACE+TAO-1.5a_with_latest_patches.zip

   由于TAO是以源碼包的形式發(fā)布的,因此,獲得TAO源碼包后,需要在開(kāi)發(fā)人員使用的平臺(tái)上編譯TAO。

   下面將單獨(dú)來(lái)介紹如何在Windows平臺(tái)上編譯ACE+TAO+CIAO源碼包。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Common Object Request Broker Architecture
Java IDL: Interoperable Naming Service (INS) ...
親身體驗(yàn)CORBA: 使用java和C++混合編程
解讀COM與CORBA
淺談SOAP
[Domino]如何用java遠(yuǎn)程訪(fǎng)問(wèn)Domino郵箱數(shù)據(jù)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服