CORBA物件生命週期之實現和記憶體管理
CORBA物件生命週期之實現和記憶體管理[@more@]
根據伺服物件的狀態把它們進行分類後,現在基於記憶體管理來定義Corba物件的分類。顯然,這個討論和伺服物件的生命週期密切相關。這裡側重於分類,所以只是簡單地討論一下記憶體管理問題,並在下面引入一通用管理模式。
1. 靜態Corba物件
靜態物件是在系統整個生命時期中存在的Corba物件。通常,這些物件是元件入口點例如, Corba命名服務必須提供一根命名上下文,用來建立新的命名層次。這個根命名上下文可歸類為靜態的,因為它始終存在。從記憶體管理的角度來看,靜態物件的實現是很簡單的。通常,靜態物件可透過在伺服器主線中例項化伺服物件來實現,並把它直接繫結到相關的Corba物件(即早期繫結)。
2. 瞬態Corba物件
瞬態Corba物件並不和任何持久的狀態相關聯-它確實是瞬態的。通常,瞬態Corba物件繫結到有狀態伺服物件,即物件的狀態僅由伺服物件包含。不幸的是,這意味著瞬態Corba物件的生命週期緊密繫結到伺服物件的生命週期:瞬態Corba物件的建立必然導致伺服物件的立即啟用,以實現物件。另一方面,伺服物件的銷燬會立即導致相關Corba物件的刪除,因為所有的狀態都隨著伺服物件而消失。
瞬態物件的一個恰當例子是迭代器,它使使用者能反覆檢視查詢的結果集合。迭代器物件並不和任何持久的狀態繫結,因為查詢結果通常是瞬態的。為瞬態Corba物件找出好的記憶體管理策略會是很困難的。
3. 持久Corba物件
最後,持久Corba物件和其他持久狀態相關聯,並由資料管理系統來維護。這使使用者可以為這些物件的實現應用十分靈活的記憶體管理策略,因為我們可以使用後期繫結來動態啟用和凍結伺服物件。
4. 伺服物件池模式
對Corba物件實現的分類,說明了從記憶體管理的角度來看,不同的物件有不同的需求。伺服物件池模式為伺服物件管理定義了一個通用的框架。它的基本思想是包含一個池管理器,來管理啟用伺服物件所在的池。每個伺服物件和一驅逐策略相關聯。該策略描述了伺服物件何時被逐出。池管理器有兩個角色:保持器和驅逐器。保持器保證物件在需要時存在。例如,瞬態物件不能重新建立,所以它必須保持到客戶機對它的請求完成。驅逐器必須保證伺服物件是經常被逐出的,以避免不必要的資源消耗。
根據伺服物件的狀態把它們進行分類後,現在基於記憶體管理來定義Corba物件的分類。顯然,這個討論和伺服物件的生命週期密切相關。這裡側重於分類,所以只是簡單地討論一下記憶體管理問題,並在下面引入一通用管理模式。
1. 靜態Corba物件
靜態物件是在系統整個生命時期中存在的Corba物件。通常,這些物件是元件入口點例如, Corba命名服務必須提供一根命名上下文,用來建立新的命名層次。這個根命名上下文可歸類為靜態的,因為它始終存在。從記憶體管理的角度來看,靜態物件的實現是很簡單的。通常,靜態物件可透過在伺服器主線中例項化伺服物件來實現,並把它直接繫結到相關的Corba物件(即早期繫結)。
2. 瞬態Corba物件
瞬態Corba物件並不和任何持久的狀態相關聯-它確實是瞬態的。通常,瞬態Corba物件繫結到有狀態伺服物件,即物件的狀態僅由伺服物件包含。不幸的是,這意味著瞬態Corba物件的生命週期緊密繫結到伺服物件的生命週期:瞬態Corba物件的建立必然導致伺服物件的立即啟用,以實現物件。另一方面,伺服物件的銷燬會立即導致相關Corba物件的刪除,因為所有的狀態都隨著伺服物件而消失。
瞬態物件的一個恰當例子是迭代器,它使使用者能反覆檢視查詢的結果集合。迭代器物件並不和任何持久的狀態繫結,因為查詢結果通常是瞬態的。為瞬態Corba物件找出好的記憶體管理策略會是很困難的。
3. 持久Corba物件
最後,持久Corba物件和其他持久狀態相關聯,並由資料管理系統來維護。這使使用者可以為這些物件的實現應用十分靈活的記憶體管理策略,因為我們可以使用後期繫結來動態啟用和凍結伺服物件。
4. 伺服物件池模式
對Corba物件實現的分類,說明了從記憶體管理的角度來看,不同的物件有不同的需求。伺服物件池模式為伺服物件管理定義了一個通用的框架。它的基本思想是包含一個池管理器,來管理啟用伺服物件所在的池。每個伺服物件和一驅逐策略相關聯。該策略描述了伺服物件何時被逐出。池管理器有兩個角色:保持器和驅逐器。保持器保證物件在需要時存在。例如,瞬態物件不能重新建立,所以它必須保持到客戶機對它的請求完成。驅逐器必須保證伺服物件是經常被逐出的,以避免不必要的資源消耗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring生命週期管理之總結Spring
- 品牌生命週期和產品生命週期之間的關係
- Flutter - 生命週期監聽和管理Flutter
- 記憶體管理兩部曲之實體記憶體管理記憶體
- Java 物件的生命週期Java物件
- Tomcat生命週期管理Tomcat
- 記憶體管理Release和Retain實現原理記憶體AI
- 元件生命週期管理和通訊方案元件
- Choerodon豬齒魚實踐之應用生命週期管理
- Java 中物件的生命週期Java物件
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- [JAVA] Java物件導向之final、abstract抽象、和變數生命週期Java物件抽象變數
- 詳解 Vue 生命週期實現Vue
- ElasticSearch-生命週期管理Elasticsearch
- [Java基礎]物件的生命週期Java物件
- JavaScript實現自定義的生命週期JavaScript
- AntDB記憶體管理之記憶體上下文之記憶體上下文機制是怎麼實現的記憶體
- vue系列之生命週期Vue
- react之元件生命週期React元件
- Android之各生命週期Android
- react生命週期筆記React筆記
- JSP筆記-生命週期JS筆記
- 記憶體管理篇——實體記憶體的管理記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 從幾個例項來記憶Activity的生命週期
- npm scripts的生命週期管理NPM
- Elasticsearch索引生命週期管理方案Elasticsearch索引
- 【2】軟體生命週期
- 軟體工程生命週期軟體工程
- SAP專家培訓之NetweaverABAP記憶體管理和記憶體調優最佳實踐記憶體
- React 渲染 和 生命週期React
- EntityFramework 學習【Entity Lifecycle 實體生命週期】Framework
- C++記憶體管理:簡易記憶體池的實現C++記憶體
- Objective-C記憶體管理:物件Object記憶體物件
- 實測Vue生命週期Vue
- Angular生命週期實踐Angular
- React-生命週期雜記React
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- SAP專家培訓之Netweaver ABAP記憶體管理和記憶體調優最佳實踐記憶體