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