CORBA對象生命周期的論文
根據(jù)伺服對象的狀態(tài)把它們進行分類后,現(xiàn)在基于內(nèi)存管理來定義Corba對象的分類。顯然,這個討論和伺服對象的生命周期密切相關(guān)。這里側(cè)重于分類,所以只是簡單地討論一下內(nèi)存管理問題,并在下面引入一通用管理模式。
1. 靜態(tài)Corba對象
靜態(tài)對象是在系統(tǒng)整個生命時期中存在的Corba對象。通常,這些對象是組件入口點例如, Corba命名服務(wù)必須提供一根命名上下文,用來創(chuàng)建新的命名層次。這個根命名上下文可歸類為靜態(tài)的,因為它始終存在。從內(nèi)存管理的角度來看,靜態(tài)對象的實現(xiàn)是很簡單的。通常,靜態(tài)對象可通過在服務(wù)器主線中實例化伺服對象來實現(xiàn),并把它直接綁定到相關(guān)的Corba對象(即早期綁定)。
2. 瞬態(tài)Corba對象
瞬態(tài)Corba對象并不和任何持久的狀態(tài)相關(guān)聯(lián)-它確實是瞬態(tài)的。通常,瞬態(tài)Corba對象綁定到有狀態(tài)伺服對象,即對象的狀態(tài)僅由伺服對象包含。不幸的是,這意味著瞬態(tài)Corba對象的生命周期緊密綁定到伺服對象的生命周期:瞬態(tài)Corba對象的創(chuàng)建必然導(dǎo)致伺服對象的立即激活,以實現(xiàn)對象。另一方面,伺服對象的銷毀會立即導(dǎo)致相關(guān)Corba對象的刪除,因為所有的狀態(tài)都隨著伺服對象而消失。
瞬態(tài)對象的一個恰當(dāng)例子是迭代器,它使用戶能反復(fù)查看查詢的結(jié)果集合。迭代器對象并不和任何持久的狀態(tài)綁定,因為查詢結(jié)果通常是瞬態(tài)的。為瞬態(tài)Corba對象找出好的內(nèi)存管理策略會是很困難的。
3. 持久Corba對象
最后,持久Corba對象和其他持久狀態(tài)相關(guān)聯(lián),并由數(shù)據(jù)管理系統(tǒng)來維護。這使用戶可以為這些對象的實現(xiàn)應(yīng)用十分靈活的內(nèi)存管理策略,因為我們可以使用后期綁定來動態(tài)激活和凍結(jié)伺服對象。
4. 伺服對象池模式
對Corba對象實現(xiàn)的分類,說明了從內(nèi)存管理的`角度來看,不同的對象有不同的需求。伺服對象池模式為伺服對象管理定義了一個通用的框架。它的基本思想是包含一個池管理器,來管理激活伺服對象所在的池。每個伺服對象和一驅(qū)逐策略相關(guān)聯(lián)。該策略描述了伺服對象何時被逐出。池管理器有兩個角色:保持器和驅(qū)逐器。保持器保證對象在需要時存在。例如,瞬態(tài)對象不能重新創(chuàng)建,所以它必須保持到客戶機對它的請求完成。驅(qū)逐器必須保證伺服對象是經(jīng)常被逐出的,以避免不必要的資源消耗。
【CORBA對象生命周期的論文】相關(guān)文章: