6.并發(fā)控制服務
支持對象資源進行 加鎖、解鎖。
鎖必須依賴于 事務的語境 或 其他語境才能獲得。
讀鎖、寫鎖、升級鎖。
讀鎖允許多個客戶同時執(zhí)行讀操作,寫鎖允許一個客戶寫操作,升級鎖是可以升級為寫鎖的讀鎖 支持互斥讀。
每個受保護的資源都擁有一個鎖集合。鎖集合 不是事務型 就是非事務型,并可與其他鎖集合建立關(guān)聯(lián)。
8.生命周期服務
支持 創(chuàng)建、復制、移動、刪除 CORBA對象,及其相關(guān)的對象組。
包含關(guān)系支持嵌套復制。
11.外部化服務
支持對象網(wǎng) 和 對象流 之間的雙向映射。對象網(wǎng)外部化后 再內(nèi)部化 意味著創(chuàng)建該對象網(wǎng)副本。
外部化服務并不保證引用的完整性,僅保留同時外部化的對象之間的引用。
對象必須實現(xiàn) Streamable 接口才能被外部化。
12.屬性服務
允許將任意的屬性與對象關(guān)聯(lián)起來,被關(guān)聯(lián)的對象必須實現(xiàn) ProperySet接口。
13.對象查詢服務
依靠屬性定位對象。
15.時間服務
擁有眾多異步時鐘的分布式系統(tǒng) 固有的誤差問題。
10.1.3 CORBA 構(gòu)件模型
CORBA 對象適配器主要的作用 就是在一個 ORB 和 真正接收調(diào)用并且返回結(jié)果的 對象之間 進行交互。
10.2 SUN 公司的方式
Java 構(gòu)件技術(shù)的概述
Java中,編譯器會檢查 Applet 代碼的安全性,通過了編譯器檢查的 Applet 代碼不會帶來安全隱患。
由于編譯得到的字節(jié)碼仍然可能被人修改,代碼在裝載時刻會被再次檢查(稱為“校驗”)。
運行環(huán)境(Runtime Environment,RE)、軟件開發(fā)工具包(Software Development Kit,SDK)、參考實現(xiàn)。
運行環(huán)境是 Java 虛擬機 和 必須具有的 J2SE API 的實現(xiàn)。
10.3 Microsoft 的方式
微軟選擇的是最簡單的路線,他沒有提出一整套標準;相反,他不斷對已有的應用和平臺基礎(chǔ)進行再工程,這就可以獲益于以前的成功技術(shù)。
語言無關(guān)性,作為 CLR 的一條主要原則。
10.3.1 第一個基礎(chǔ)關(guān)聯(lián)模型——COM
COM 所定義的一個基礎(chǔ)實體是接口。在二進制層面上,一個接口被表示為指向一個接口節(jié)點的指針。
接口節(jié)點 唯一被指定的部分是 置于其內(nèi)部第一個域的 另一個指針,這個指針指向一個過程變量表(或者說,函數(shù)指針表)。
每個 COM 對象都有 IUnknown接口,通常置于 COM對象圖的頂端。
他的“真實”名字是他的 IID,即 00000000-0000-0000-C000-000000000046 為了方便,所有接口也有一個 可讀名。
根據(jù)習慣,可讀接口名以字母I開頭。與 IID 不同,可讀接口名 并不保證是唯一的。因此,編程中的接口引用均使用 IID。
IUnknown 接口的首要用途是在 最抽象的情況下 標志 COM對象,此時 COM對象 沒有任何特殊功能。
IUnknown 接口 只提供對任何 COM接口都必須的三個強制性方法。QueryInterface、AddRef、Release,后兩個強制性方法被用來控制對象的生命周期。
類型 HRESULT 被大多數(shù) COM接口的方法用來表示調(diào)用成功或失敗。 QueryInterface表明查詢的接口是否被支持。
每個 COM對象都會進行引用計數(shù),引用計數(shù)變量被共享使用的情況下,COM對象 不能釋放接口節(jié)點。
一般這樣做沒有問題,也是通常的做法。
某些情況下占用很多資源,可以使用獨立的引用計數(shù)變量,以便節(jié)點可以盡早釋放。這種根據(jù)需要創(chuàng)建和刪除接口節(jié)點的技術(shù)有時被稱作“快速裝卸接口(Tear-Off Interface)”
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |