国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

分布式編程模式中的租約、事務(wù)和分布式事件機(jī)制

2019-11-18 14:50:04
字體:
供稿:網(wǎng)友

  Jini 技術(shù)面向網(wǎng)絡(luò)及分布式計(jì)算的特性決定了Jini技術(shù)必然與傳統(tǒng)的單機(jī)系統(tǒng)在許多方面有概念上和實(shí)際應(yīng)用中的差別。如網(wǎng)絡(luò)的延遲、失敗,或者設(shè)備的忽然撤出,將導(dǎo)致信息的無序和丟失;資源的獲得、保存、維護(hù)和回收情況更為復(fù)雜;不同實(shí)體之間通訊和協(xié)調(diào)工作的可靠性及效率并不像單機(jī)系統(tǒng)中那樣較為輕易地獲得保證。因而在 Jini 中以 java 為基礎(chǔ)加入了分布式編程模式,非凡是引入了租約、分布式事務(wù)和分布式事件。

  租約

  租約的基本概念是資源只能被使用一段時(shí)間,這由租約的持有者(lease holder)和租約的授權(quán)者(lease grantor)協(xié)商決定。

  租約接口的目標(biāo)是為分布式系統(tǒng)和應(yīng)用程序提供一種非凡的編程風(fēng)格。這種編程風(fēng)格是當(dāng)某對(duì)象首次對(duì)該資源訪問時(shí),由這兩個(gè)對(duì)象先協(xié)商,最后授權(quán)對(duì)資源進(jìn)行某段時(shí)間的使用。

  在非分布式系統(tǒng)中,資源或服務(wù)將被授權(quán)直到被明確釋放或放棄,這種編程模式在分布式系統(tǒng)中注定要失敗,原因是不能保證放棄對(duì)資源或系統(tǒng)的使用是肯定成功的,這將導(dǎo)致系統(tǒng)的這部分資源永遠(yuǎn)不會(huì)被釋放。

  為避免此類問題而引入了租約的概念。在租約中被租用的資源或服務(wù)的授權(quán)是基于時(shí)間的。一旦租借時(shí)間期滿,服務(wù)就將結(jié)束,資源將被釋放。租約的期限在第一次授權(quán)時(shí)決定,由租約的授權(quán)者和接收者采用request/response方式協(xié)商。租約可以在期滿前續(xù)約或取消。期滿時(shí),雙方認(rèn)為服務(wù)或資源已回收。

  租約概念的引入也可以用于解決分布式系統(tǒng)面臨的另一個(gè)問題。連續(xù)開機(jī)的分布式系統(tǒng)趨向于積累過時(shí)和不必要的信息,解決這種問題的常規(guī)方法是把清理無用資源作為一項(xiàng)系統(tǒng)治理員的任務(wù)。然而,當(dāng)這種資源被租用時(shí),就不會(huì)發(fā)生過時(shí)信息的積累,也不再需要以手工方法清除。租用的信息或資源僅在租約續(xù)約時(shí)才保存在系統(tǒng)中。因此被遺忘的信息經(jīng)過有限時(shí)間后將被刪除。

  Jini系統(tǒng)中定義了一組接口以及相關(guān)的約定和協(xié)議,目的是使不同Java虛擬機(jī)通過協(xié)商產(chǎn)生各種資源的使用租約。可形成租約的協(xié)議有多種,可以分為對(duì)某個(gè)對(duì)象的訪問(引用)協(xié)議、對(duì)未來采取行動(dòng)(事件通知)的協(xié)議和提供長久儲(chǔ)存的協(xié)議等。租約機(jī)制要和并發(fā)機(jī)制相結(jié)合,即某資源可以有多個(gè)并發(fā)的租約持有者。

  租約的特性包括:授權(quán)者確保持有者能在一段時(shí)間內(nèi)對(duì)資源進(jìn)行訪問;在租約期限內(nèi),租約持有者可以取消租約,授權(quán)者將清除相關(guān)的資源;持有者可以要求續(xù)約,續(xù)約期限由雙方協(xié)商決定;若租約到期,授權(quán)者將釋放相關(guān)資源,與取消租約的不同之處在于,授權(quán)者與持有者之間不需要通訊。

  事務(wù)

  事務(wù)式的行為在分布式計(jì)算中尤其重要,它提供了使一個(gè)或多個(gè)遠(yuǎn)程參加者對(duì)一系列操作的結(jié)果保持一致的方法。Jini系統(tǒng)將實(shí)現(xiàn)事務(wù)語義交由事務(wù)中的個(gè)體對(duì)象處理。系統(tǒng)首先要提供的是對(duì)象之間確認(rèn)事務(wù)時(shí)用來交換信息的合作機(jī)制,目標(biāo)是提供最小的協(xié)議和接口的集合,用以讓對(duì)象實(shí)現(xiàn)事務(wù)語義。

  Jini描述的完成協(xié)議由分布式系統(tǒng)的兩階段提交協(xié)議組成。兩階段提交協(xié)議定義了分布式對(duì)象資源的通訊模式,這個(gè)協(xié)議需要一個(gè)治理者來保證操作集決議的一致性,即保證所有的參加者最終知道它們是應(yīng)提交操作還是放棄操作。

  事務(wù)由一個(gè)治理者創(chuàng)建和監(jiān)督,每個(gè)事務(wù)由一個(gè)標(biāo)識(shí)來代表,它對(duì)于事務(wù)的治理者是唯一的。客戶通過一個(gè)對(duì)治理者的請求來創(chuàng)建事務(wù),通常使用語義工廠類,如Transactionfactory來創(chuàng)建一個(gè)語義對(duì)象。在對(duì)一個(gè)服務(wù)實(shí)行操作時(shí),這個(gè)語義對(duì)象就將作為一個(gè)參數(shù)傳遞。假如服務(wù)同意接受這個(gè)事務(wù)并治理它的操作,它必須作為一個(gè)參加者加入到這個(gè)事務(wù)中去。

  假如一個(gè)事務(wù)成功提交,那么所有在事務(wù)之下進(jìn)行的操作都將完成。放棄事務(wù)意味著所有在事務(wù)之下進(jìn)行的操作都如同完全沒有發(fā)生過一樣。提交事務(wù)需要每個(gè)參加者“表決”,表決可選擇“就緒”(預(yù)備提交)、“未改變”(只讀),或者“放棄”(事務(wù)應(yīng)被放棄)。

  兩階段提交協(xié)議的設(shè)計(jì)目標(biāo)是使對(duì)象能夠提供ACID屬性。缺省的事務(wù)語義定義了保留這些屬性的一個(gè)方法。ACID屬性是:

  ·Atomicity(原子化):所有在一個(gè)事務(wù)下的操作全部發(fā)生或者一個(gè)也不發(fā)生。

  ·Consistency(一致性):事務(wù)的完成必須使系統(tǒng)保持在一致的狀態(tài)。事務(wù)只是一個(gè)使保證一致性成為可能的工具,而它本身并不是一致性的保證者。

  ·Isolation(隔離性):正在執(zhí)行的事務(wù)不應(yīng)彼此影響。一個(gè)事務(wù)的參加者應(yīng)該只能看到自己事務(wù)中操作的中間狀態(tài),而不是其它事務(wù)的中間狀態(tài)。

  ·Durability(耐用性):事務(wù)提交的結(jié)果應(yīng)像事務(wù)提交的對(duì)象實(shí)體一樣持久,但這個(gè)保證只能由對(duì)象來完成。

  依靠于參加者來實(shí)現(xiàn)ACID屬性是兩階段提交協(xié)議與傳統(tǒng)事務(wù)處理系統(tǒng)的最大不同之處。兩階段提交協(xié)議的定義使用了三個(gè)主要類型:

  ·Transactionmanager——事務(wù)治理者創(chuàng)建新的事務(wù)并協(xié)調(diào)參加者的動(dòng)作。

  ·NestableTransactionManager——一些事務(wù)治理者能夠支持嵌套的事務(wù)。

  ·TransactionParticipant——當(dāng)操作是在一個(gè)事務(wù)之下進(jìn)行的,參加者必須加入事務(wù),給治理者提供一個(gè)對(duì) TransactonParticipant對(duì)象的引用,以便用來表決。

分布式事件

  1.分布式事件及通知

  分布式事件系統(tǒng)有一些與單機(jī)系統(tǒng)不同的特點(diǎn)和需要。由于存在網(wǎng)絡(luò)延遲和失敗的可能性,遠(yuǎn)程對(duì)象事件的通知的順序可能因客戶的不同而異,或者根本沒有到達(dá)。一個(gè)通知到達(dá)的時(shí)間可能會(huì)很長,也可能會(huì)有這種情況,接收通知的對(duì)象一方不總是希望立即得到通知,而是在接收一方?jīng)Q定的一個(gè)確定時(shí)間得到。甚至可能發(fā)生注冊愛好的對(duì)象并不是事件通知應(yīng)發(fā)送的對(duì)象。

  分布式通知的中心概念是在產(chǎn)生通知的對(duì)象和希望接收通知的其他對(duì)象之間加入第三方對(duì)象。它們可以從對(duì)象上卸下通知,實(shí)現(xiàn)多種傳遞保證,存儲(chǔ)通知,并進(jìn)行通知的過濾和重新路由。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 颍上县| 梓潼县| 邢台市| 师宗县| 隆昌县| 吴桥县| 呈贡县| 武邑县| 海门市| 淮南市| 衡阳县| 祁门县| 九江县| 黑水县| 永善县| 曲阳县| 称多县| 湘阴县| 弥勒县| 遵化市| 靖安县| 读书| 南宁市| 突泉县| 金溪县| 衡山县| 新安县| 临泽县| 饶阳县| 阿克苏市| 交城县| 屯留县| 安顺市| 彰化市| 大埔区| 云霄县| 武山县| 横峰县| 分宜县| 太湖县| 富裕县|