Corba的模塊模型概況

字號:

介紹:
    分布式計算中間件,如Corba,快速發(fā)展,當(dāng)激烈的和全球的競爭使以傳統(tǒng)方式開發(fā)和維護(hù)復(fù)雜的系統(tǒng)越來越困難的時候。Corba 可以讓你調(diào)用在分布是對象上的操作,而不用關(guān)心它的應(yīng)用底層的環(huán)境。傳統(tǒng)的Corbar定義了一個軟總線框架,制定了有標(biāo)準(zhǔn)接口的對象服務(wù),利用Corba我們可以集成和組合大型,復(fù)雜的分布式應(yīng)用系統(tǒng)。
    但傳統(tǒng)的Corba有它的缺點:
    No standard way to deploy object implementations:
    沒有標(biāo)準(zhǔn)的配置對象應(yīng)用的方式。如:沒有標(biāo)準(zhǔn)的方式分布對象應(yīng)用,在它們的執(zhí)行上下文安裝,或在特定的ORB激活應(yīng)用。因此,系統(tǒng)設(shè)計者必須用ad hoc策略去實例化在系統(tǒng)中的對象。進(jìn)一步說,因為對象可能要互相依靠,實例化可能在一個大型的系統(tǒng)變得復(fù)雜。
    ??Lack of support for common programming idioms for CORBA servers:
    Corba 的說明提供了豐富的應(yīng)用服務(wù)的特性。在某些的應(yīng)用域,僅僅有限的特性被應(yīng)用。結(jié)果,通過能自動產(chǎn)生應(yīng)用普通應(yīng)用實例Corba代碼的工具能支持必須的特性,是期望的。如:在Corba 2.2說明中,介紹了POA,它是一個引導(dǎo)客戶端的請求到具體的對象應(yīng)用的機(jī)制。POA提供了標(biāo)準(zhǔn)的API去登記對象應(yīng)用,去活,或激活對象應(yīng)用。POA是靈活的Corba編程模型模塊,并且提供了大量的規(guī)則配置它的行為。然而,重要一類應(yīng)用僅僅用其中的一部分,但是服務(wù)開發(fā)者不得不去學(xué)習(xí)如何配置許多的規(guī)則,為了得到想要的行為。
    ??Difficulty extending object functionalities:
    傳統(tǒng)的Corba對象模型,對象僅能通過繼承來擴(kuò)展它的應(yīng)用。為了支持新的新的界面,應(yīng)用開發(fā)者必須:1 定義新的,從要求的界面繼承,的IDL界面; 2 應(yīng)用新的界面;3 分配應(yīng)用到服務(wù)器端。然而,多重繼承在Corba Idl 是易碎的,因為重載在IDL是不可以的,因為像C的語言缺乏重載。
    因此,以上的介紹限制了應(yīng)用。進(jìn)一步說,應(yīng)用可以需要暴露相同的IDL界面多次,為了允許開發(fā)者多個應(yīng)用或多個服務(wù)的實例,通過一個入口點。相反,多重繼承使暴露相同的界面多次或決定哪一個是提供給客戶端最原始界面,提供成為不可能。
    ??Availability of CORBA Object Services is not defined a priori:
    Corba說明沒用要求在運行時,哪一個對象服務(wù)是提供的。結(jié)果,對象開發(fā)者必須用 ad hoc 策略去配置和激活這些服務(wù)。
    ??No standard object lifecycle management:
    雖然Corba對象服務(wù)定義了生命周期服務(wù),但它并不是要求的。因此,客戶端要明顯內(nèi)容去管理對象的生命周期,以 ad hoc 方式。進(jìn)一步說,通過生命周期服務(wù)控制的Corba對象的開發(fā)者必須明白這個事實,和必須定義附加的界面去控制對象生命周期。定義這些的界面使單調(diào)的過程,應(yīng)該自動進(jìn)行,但較早的Corba說明缺乏。
    CORBA說明的不足,早先的和包括在VERSION 2.3的,以上列出的,經(jīng)常導(dǎo)致緊密的結(jié)合度,和難于設(shè)計,重用的,展開的,維護(hù)的和擴(kuò)展的 ad-hoc 對象應(yīng)用。
    為了彌補(bǔ)以上的不足,OMG接受了CORBA Component Model(CCM)作為CORBA 3的一部分。CCM擴(kuò)展了傳統(tǒng)的CORBA對象模型,通過定義允許應(yīng)用開發(fā)者去應(yīng)用,管理,配置,和展開集成了Corba服務(wù)的模塊的特性和服務(wù),如容忍度,安全事務(wù)和事件服務(wù),在一個標(biāo)準(zhǔn)的環(huán)境。CCM標(biāo)準(zhǔn)不僅提高了服務(wù)器軟件重用性,也為動態(tài)的Corba應(yīng)用配置提供了巨大的靈活性。 隨著Corba的應(yīng)用增加,CCM表現(xiàn)了出適合可升級的,應(yīng)用要求嚴(yán)格的client/server應(yīng)用。這章,我們描述CCM定義的主要的特性和服務(wù),并圖示CCM結(jié)構(gòu)的好處。
    模塊開發(fā)者定義模塊應(yīng)用支持的IDL界面;下一步,利用CCM提供的工具應(yīng)用模塊。結(jié)果的模塊應(yīng)用被打包進(jìn)動態(tài)連接苦。最后,CCM提供的分配機(jī)制用于分配模塊,在模塊服務(wù)器上(component server)。模塊服務(wù)器是通過處理過程主管應(yīng)用,通過相關(guān)的DLL。因此,在模塊服務(wù)器上,模塊執(zhí)行和提供,去處理客戶端的請求。一個好處是,CCM標(biāo)準(zhǔn)了開發(fā)的流程,下面,我們在CCM中的描述模塊,從客戶端的觀點和模塊開發(fā)者的觀點,而且,我們描述了為支持CCM,ORB的擴(kuò)展。