




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PDM系統(tǒng)持久狀態(tài)管理分析飛行器并行工程軟件研發(fā)中心國(guó)防科技大學(xué)航天學(xué)院內(nèi)容提要一、PDM系統(tǒng)的持久狀態(tài)管理二、持久化框架的分析與設(shè)計(jì)三、CORBA的持久狀態(tài)服務(wù)11/27/2023內(nèi)容提要一、PDM系統(tǒng)的持久狀態(tài)管理1、持久化與持久狀態(tài)管理2、PDM系統(tǒng)中需持久化的對(duì)象3、持久狀態(tài)管理的任務(wù)與功能范圍11/27/2023內(nèi)容提要二、持久化框架的分析與設(shè)計(jì)1、框架的概念2、持久化框架概述3、持久化框架概要設(shè)計(jì)11/27/2023內(nèi)容提要三、CORBA的持久狀態(tài)服務(wù)1、概述2、對(duì)象到存儲(chǔ)機(jī)構(gòu)的映射3、數(shù)據(jù)定義4、數(shù)據(jù)訪問(wèn)11/27/2023PDM系統(tǒng)的持久狀態(tài)管理持久化與持久狀態(tài)管理持久化 指的是將信息保存在持久性的存儲(chǔ)介質(zhì)中,如通過(guò)文件、數(shù)據(jù)庫(kù)方式保存在磁盤(pán)內(nèi)。持久狀態(tài)管理 就是管理對(duì)象的持久化,即管理對(duì)象狀態(tài)的持久化。11/27/2023PDM系統(tǒng)的持久狀態(tài)管理PDM系統(tǒng)中需持久化的對(duì)象 PDM系統(tǒng)的服務(wù)需要被持久化,以便永久保存系統(tǒng)及系統(tǒng)所管理的產(chǎn)品的相關(guān)信息。需持久化的信息不但存在于被PDM系統(tǒng)電子倉(cāng)庫(kù)管理的文件內(nèi),還存在于系統(tǒng)運(yùn)行時(shí)產(chǎn)生的許多對(duì)象中,因此這些對(duì)象需要被持久化。需被持久化的對(duì)象主要有:非結(jié)構(gòu)化的產(chǎn)品數(shù)據(jù) 保存在文件中,通過(guò)電子倉(cāng)庫(kù)管理。結(jié)構(gòu)化的產(chǎn)品數(shù)據(jù) 如的產(chǎn)品結(jié)構(gòu)定義、其相關(guān)的產(chǎn)品數(shù)據(jù),以及產(chǎn)品的配置情況等等,這些信息存在于一系列相關(guān)聯(lián)的對(duì)象中,需要持久化。11/27/2023PDM系統(tǒng)的持久狀態(tài)管理組織產(chǎn)品信息的相關(guān)對(duì)象 為了管理產(chǎn)品信息,PDM系統(tǒng)所定義的某些對(duì)象,如各種版本、迭代對(duì)象等。這些對(duì)象可能不直接包含產(chǎn)品數(shù)據(jù),但它們建立了產(chǎn)品數(shù)據(jù)間的結(jié)構(gòu)等關(guān)系,這些用于組織產(chǎn)品數(shù)據(jù)的對(duì)象也應(yīng)為持久的,以便這些關(guān)系能夠重建。與產(chǎn)品及其開(kāi)發(fā)過(guò)程管理相關(guān)的對(duì)象 如人員、組織、權(quán)限對(duì)象,各種資格、有效性、語(yǔ)境對(duì)象等等。這些對(duì)象一經(jīng)建立,通常需要保存下來(lái)供以后使用。PDM系統(tǒng)運(yùn)行控制中的相關(guān)對(duì)象 如用于監(jiān)控系統(tǒng)運(yùn)行狀態(tài)的對(duì)象、日志對(duì)象等等。2.結(jié)構(gòu)化的產(chǎn)品數(shù)據(jù)11/27/2023PDM系統(tǒng)的持久狀態(tài)管理 以上PDM系統(tǒng)中需持久化的信息除了保存在文件中的非結(jié)構(gòu)化產(chǎn)品數(shù)據(jù)之外,都以對(duì)象形式存在,需將它們的信息保存到數(shù)據(jù)庫(kù)中。11/27/2023PDM系統(tǒng)的持久狀態(tài)管理持久狀態(tài)管理的任務(wù)與功能范圍PDM系統(tǒng)的持久狀態(tài)管理模塊實(shí)際上是指系統(tǒng)的持久化框架,它為對(duì)象持久化提供服務(wù),并且它本身是系統(tǒng)實(shí)現(xiàn)持久化的核心和基礎(chǔ),提供了一組完成對(duì)象持久化功能所需類(lèi)的泛化超類(lèi)的集合。PDM系統(tǒng)的持久狀態(tài)管理主要有以下兩方面的任務(wù):提供PDM系統(tǒng)對(duì)象持久化的統(tǒng)一模式 持久狀態(tài)管理為整個(gè)PDM系統(tǒng)對(duì)象的持久化提供一種解決方案或者模式,使得所有需持久化的對(duì)象都能按這種一致的模式來(lái)實(shí)現(xiàn)其狀態(tài)的持久化。統(tǒng)一管理PDM系統(tǒng)對(duì)象狀態(tài)的持久化 持久狀態(tài)管理模塊完成統(tǒng)一管理PDM系統(tǒng)各持久對(duì)象持久化的功能,或者說(shuō)持久狀態(tài)管理模塊為PDM系統(tǒng)的各持久11/27/2023PDM系統(tǒng)的持久狀態(tài)管理 對(duì)象提供持久狀態(tài)管理服務(wù)。這些服務(wù)包括透明的數(shù)據(jù)庫(kù)連接訪問(wèn)、數(shù)據(jù)更新、數(shù)據(jù)創(chuàng)建等,以及自動(dòng)創(chuàng)建存儲(chǔ)PDM系統(tǒng)持久對(duì)象的數(shù)據(jù)庫(kù)模式。 所有按對(duì)象持久化統(tǒng)一模式設(shè)計(jì)的對(duì)象,均可以通過(guò)持久狀態(tài)管理服務(wù)實(shí)現(xiàn)對(duì)象狀態(tài)的持久化。11/27/2023持久化框架的分析與設(shè)計(jì)框架的概念工具箱 預(yù)定義的類(lèi)庫(kù),一組相關(guān)的、可復(fù)用的類(lèi)的集合,提供了通用的功能。強(qiáng)調(diào)的是“代碼復(fù)用”,是面向?qū)ο蟓h(huán)境下的“子程序庫(kù)”。工具箱不強(qiáng)制應(yīng)用采用某個(gè)特定設(shè)計(jì),只是為應(yīng)用提供功能上的幫助??蚣?框架是構(gòu)成一類(lèi)特定軟件可復(fù)用設(shè)計(jì)的一組相互協(xié)作的類(lèi)。框架規(guī)定了應(yīng)用的體系結(jié)構(gòu),定義了整體結(jié)構(gòu)、類(lèi)和對(duì)象的劃分、各部分的主要責(zé)任、類(lèi)和對(duì)象如何協(xié)作、以及控制流程??蚣苡涗浟似鋺?yīng)用領(lǐng)域的公共設(shè)計(jì)決策,使應(yīng)用設(shè)計(jì)者或?qū)崿F(xiàn)者集中精力于應(yīng)用本身的特定細(xì)節(jié)??蚣芨鼜?qiáng)調(diào)“設(shè)計(jì)復(fù)用”,盡管框架也常包含“代碼復(fù)用”。11/27/2023持久化框架的分析與設(shè)計(jì)框架與工具箱的根本區(qū)別“設(shè)計(jì)復(fù)用”導(dǎo)致了應(yīng)用和它所基于的軟件框架之間的反向控制,即遵循好萊塢法則,“不要調(diào)用我們,讓我們來(lái)調(diào)用你”(多態(tài)性和動(dòng)態(tài)綁定)。使用工具箱時(shí),應(yīng)用設(shè)計(jì)者應(yīng)設(shè)計(jì)實(shí)現(xiàn)應(yīng)用軟件的主體并調(diào)用想要復(fù)用的代碼。而使用框架時(shí),應(yīng)用設(shè)計(jì)者應(yīng)該復(fù)用應(yīng)用的主體(框架),寫(xiě)主體調(diào)用的代碼(應(yīng)用本身的特定細(xì)節(jié))。通常為了利用、自定義或擴(kuò)展框架服務(wù),需要框架的使用者去定義已存在的框架類(lèi)的子類(lèi)。對(duì)框架設(shè)計(jì)的要求 必須是適應(yīng)該領(lǐng)域所有應(yīng)用的通用體系結(jié)構(gòu),必須盡可能的靈活、可擴(kuò)充。其主要貢獻(xiàn)就在于它所定義的體系結(jié)構(gòu),對(duì)它的任何實(shí)質(zhì)性修改都會(huì)大大降低它所帶來(lái)的好處。11/27/2023持久化框架的分析與設(shè)計(jì)設(shè)計(jì)模式 面向?qū)ο筌浖脑O(shè)計(jì)經(jīng)驗(yàn)的記錄,描述了面向?qū)ο筌浖O(shè)計(jì)中不斷重復(fù)遇到的問(wèn)題及其解決方案的核心,其目的是提高軟件的可復(fù)用性。設(shè)計(jì)模式是比框架更小的體系結(jié)構(gòu)元素設(shè)計(jì)模式比框架更抽象框架比設(shè)計(jì)模式更加特例化11/27/2023持久化框架的分析與設(shè)計(jì)持久化框架概述持久化對(duì)象 應(yīng)用程序的對(duì)象實(shí)例通常都需要存放在持久化的存儲(chǔ)機(jī)構(gòu)(如關(guān)系數(shù)據(jù)庫(kù)、面向?qū)ο蟮臄?shù)據(jù)庫(kù)或平面文件)中,每次使用時(shí)載入本地內(nèi)存。需要存儲(chǔ)在持久化存儲(chǔ)機(jī)構(gòu)中的對(duì)象稱(chēng)為持久化對(duì)象。持久化對(duì)象服務(wù) 為應(yīng)用程序提供在持久化存儲(chǔ)機(jī)構(gòu)中存放和取回對(duì)象的服務(wù)。各類(lèi)存儲(chǔ)機(jī)構(gòu)對(duì)持久化框架的需求對(duì)象數(shù)據(jù)庫(kù):數(shù)據(jù)表示一致,都是面向?qū)ο蟮?,不需要額外的持久化服務(wù)11/27/2023持久化框架的分析與設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù):面向記錄與面向?qū)ο蟮臄?shù)據(jù)表示不一致,需要特殊的對(duì)象-關(guān)系服務(wù)其它:如平面文件,同樣存在面向?qū)ο笈c非面向?qū)ο蟮臄?shù)據(jù)表示上的不匹配問(wèn)題,也需要特定的持久化服務(wù)持久化框架為持久化對(duì)象提供的服務(wù)在持久化存儲(chǔ)機(jī)構(gòu)中存儲(chǔ)和取回對(duì)象具有可擴(kuò)展性,支持多種存儲(chǔ)機(jī)構(gòu),如關(guān)系數(shù)據(jù)庫(kù)、平面文件等對(duì)已存在的代碼盡量少做修改,避免給對(duì)象增加額外的持久化職責(zé)(超類(lèi)的弊端)在后臺(tái)透明地存在易于使用11/27/2023持久化框架的分析與設(shè)計(jì)持久化框架的關(guān)鍵思想映射:類(lèi)與其永久存儲(chǔ)器(如關(guān)系數(shù)據(jù)庫(kù)中的一個(gè)表)之間,對(duì)象屬性與記錄中的字段之間要建立映射關(guān)系對(duì)象身份:記錄與對(duì)象實(shí)例間建立聯(lián)系,記錄和對(duì)象要有唯一的對(duì)象標(biāo)識(shí)符具體化和非具體化(MaterializationandDematerialization):具體化是把持久化存儲(chǔ)器的非對(duì)象化的數(shù)據(jù)表示(如記錄)轉(zhuǎn)換為對(duì)象的動(dòng)作,而非具體化則相反數(shù)據(jù)庫(kù)代理(Broker):純虛的數(shù)據(jù)庫(kù)代理類(lèi)負(fù)責(zé)具體化和非具體化工作緩存(Cache):數(shù)據(jù)庫(kù)代理緩存具體化了的對(duì)象懶惰隨選具體化(Lazyon-demandMaterialization):并非一次性完成所有對(duì)象的具體化,而是隨時(shí)根據(jù)需求來(lái)完成11/27/2023持久化框架的分析與設(shè)計(jì)智能引用:懶惰隨選具體化通過(guò)使用稱(chēng)為虛擬代理的智能引用機(jī)制實(shí)現(xiàn)復(fù)雜對(duì)象:如何表示和具體化具有復(fù)雜結(jié)構(gòu)的對(duì)象,比如與其它對(duì)象之間存在大量連接的對(duì)象對(duì)象的事務(wù)狀態(tài):根據(jù)對(duì)象的狀態(tài)與當(dāng)前事務(wù)的關(guān)系來(lái)進(jìn)行相應(yīng)處理,如知道某對(duì)象已被更新(弄臟),就可以決定是否需要對(duì)它進(jìn)行保存事務(wù)操作:提交(Commit)和回滾(Rollback)11/27/2023持久化框架的分析與設(shè)計(jì)持久化框架概要設(shè)計(jì)映射 用關(guān)系表來(lái)表示對(duì)象(對(duì)關(guān)系數(shù)據(jù)庫(kù))。為每個(gè)持久化對(duì)象類(lèi)定義一個(gè)表,簡(jiǎn)單數(shù)據(jù)類(lèi)型的對(duì)象屬性被映射為數(shù)據(jù)庫(kù)關(guān)系表的列。(下圖)anObjectdefaultMethod()datetime1/1/199710:002/2/199714:00datetime:anObjectdate=1/1/1997time=10:00:anObjectdate=2/2/1997time=14:00anObject表11/27/2023持久化框架的分析與設(shè)計(jì)
問(wèn)題:關(guān)系模型要求屬性值是原子的,而對(duì)象可以引用其它復(fù)雜對(duì)象作為自己的屬性,這種非原子的屬性簡(jiǎn)單的關(guān)系表不能處理,將留在后面給出解決方案。對(duì)象身份 將對(duì)象記錄一一對(duì)應(yīng)。對(duì)每個(gè)對(duì)象及其記錄分配一個(gè)對(duì)象標(biāo)識(shí)符OID,以區(qū)分不同的記錄和對(duì)象。(注意復(fù)制的對(duì)象與原對(duì)象不同) OID對(duì)某特定類(lèi)型的對(duì)象來(lái)說(shuō)必須是唯一的,最好是選擇全局唯一的標(biāo)識(shí)符,如16位長(zhǎng)的UUID,或微軟的全球唯一標(biāo)識(shí)符GUID。每個(gè)關(guān)系數(shù)據(jù)庫(kù)表都以O(shè)ID作為主鍵,每個(gè)持久對(duì)象都直接或間接地?fù)碛幸粋€(gè)OID。(下圖)11/27/2023持久化框架的分析與設(shè)計(jì) 實(shí)際應(yīng)用中OID不一定放在持久化對(duì)象中,可以放在代理對(duì)象中(Proxy)。anObjectdefaultMethod()OIDdatetime:anObjectOID=xyz23date=1/1/1997time=10:00:anObjectOID=abc456date=2/2/1997time=14:00anObject表OIDdatetimexyz231/1/199710:00abc4562/2/199714:0011/27/2023持久化框架的分析與設(shè)計(jì)數(shù)據(jù)庫(kù)代理 如果持久化對(duì)象類(lèi)負(fù)責(zé)自身的具體化和非具體化:持久化對(duì)象類(lèi)與持久化存儲(chǔ)機(jī)構(gòu)之間存在信息耦合(違背低耦合原則)在一個(gè)毫無(wú)關(guān)系的新的范圍內(nèi)增加對(duì)象的職責(zé)(違背高內(nèi)聚的原則) 數(shù)據(jù)庫(kù)代理模式設(shè)計(jì)一個(gè)類(lèi)來(lái)負(fù)責(zé)具體化、非具體化、對(duì)象緩存等工作,通過(guò)加入中介者的方式支持高內(nèi)聚和低耦合。對(duì)每個(gè)不同的持久化對(duì)象類(lèi)都定義一個(gè)相應(yīng)的代理類(lèi),而且對(duì)不同的存儲(chǔ)機(jī)構(gòu)有不同種類(lèi)的代理。(下圖)11/27/2023持久化框架的分析與設(shè)計(jì)11/27/2023持久化框架的分析與設(shè)計(jì)框架設(shè)計(jì)的核心-模板方法模式關(guān)鍵是好萊塢準(zhǔn)則和反向控制,即父類(lèi)調(diào)用子類(lèi)的方法。在父類(lèi)中定義一個(gè)模板方法,在其中定義算法的基本框架。模板方法調(diào)用其它方法,其中一些是可在子類(lèi)中被覆蓋的操作(純虛)。子類(lèi)通過(guò)覆蓋父類(lèi)的可變方法,在方法中增加了子類(lèi)自己獨(dú)特的行為特征。實(shí)現(xiàn)是基于面向?qū)ο蟪绦蛟O(shè)計(jì)的多態(tài)性和動(dòng)態(tài)綁定機(jī)制。 (下圖)11/27/2023持久化框架的分析與設(shè)計(jì)11/27/2023持久化框架的分析與設(shè)計(jì) 特點(diǎn):在抽象超類(lèi)中使用模板方法,定義了框架的可變和不可變的部分。在緩存中查找和具體化對(duì)象的模式不變,但具體化的細(xì)節(jié)根據(jù)存儲(chǔ)機(jī)構(gòu)類(lèi)型和對(duì)象數(shù)據(jù)結(jié)構(gòu)的不同是可變的可以在框架中定義和添加子類(lèi),定義對(duì)不同細(xì)節(jié)的處理子類(lèi)中對(duì)“基本操作”的定義完成了被繼承了的模板方法 好處:可擴(kuò)展,能適應(yīng)各種情況對(duì)不同情況實(shí)現(xiàn)統(tǒng)一處理,屏蔽了具體細(xì)節(jié)很強(qiáng)的可重用性11/27/2023持久化框架的分析與設(shè)計(jì)緩存管理 為提高性能,應(yīng)當(dāng)緩存已被具體化的對(duì)象。由數(shù)據(jù)庫(kù)代理負(fù)責(zé)維持緩存中的對(duì)象信息。根據(jù)對(duì)象在當(dāng)前事務(wù)語(yǔ)境中所處的狀態(tài)將它們保存在不同的緩存中,代理負(fù)責(zé)維護(hù)6個(gè)緩存:新干凈緩存:新對(duì)象,尚未被更新舊干凈緩存:從數(shù)據(jù)庫(kù)具體化而來(lái)的舊的對(duì)象,尚未被更新新臟緩存:新的對(duì)象,已被更新舊臟緩存:從數(shù)據(jù)庫(kù)具體化而來(lái)的舊的對(duì)象,已被更新新刪除緩存:新的對(duì)象,將要被刪除舊刪除緩存:從數(shù)據(jù)庫(kù)具體化而來(lái)的舊的對(duì)象,將要被刪除 (前圖)11/27/2023持久化框架的分析與設(shè)計(jì)智能引用代理前述方案中,客戶(hù)必須知道對(duì)象OID及特定的Broker,才能具體化服務(wù)對(duì)象,而這些對(duì)客戶(hù)應(yīng)該是透明的??梢酝ㄟ^(guò)對(duì)象的智能引用代理(Proxy)實(shí)現(xiàn)對(duì)象具體化過(guò)程對(duì)客戶(hù)的透明化。智能引用代理是一個(gè)輕量級(jí)的對(duì)象,來(lái)代表可被具體化的對(duì)象,它實(shí)現(xiàn)了與實(shí)際對(duì)象一樣的接口,使用橋模式將接口定義與實(shí)現(xiàn)分離,從客戶(hù)端看來(lái)它彷佛就是實(shí)際的對(duì)象智能引用代理可以將對(duì)象的具體化過(guò)程推遲到對(duì)象真正需要時(shí)再進(jìn)行,稱(chēng)為懶惰隨選具體化。智能引用代理負(fù)責(zé)懶惰隨選具體化過(guò)程,它需要知道實(shí)際的主體對(duì)象及其數(shù)據(jù)庫(kù)代理。把所有對(duì)象的智能引用代理的這種職責(zé)抽象出來(lái),建立一個(gè)泛化的抽象虛擬代理超類(lèi),由它來(lái)保存對(duì)象OID、管理實(shí)際對(duì)象及其數(shù)據(jù)庫(kù)代理。(下圖)11/27/2023持久化框架的分析與設(shè)計(jì)11/27/2023持久化框架的分析與設(shè)計(jì)11/27/2023持久化框架的分析與設(shè)計(jì)虛擬代理和數(shù)據(jù)庫(kù)代理虛擬代理和數(shù)據(jù)庫(kù)代理協(xié)作來(lái)完成對(duì)象的具體化過(guò)程,這一過(guò)程基于由代理所維護(hù)的OID使用工廠方法模式,虛擬代理可以獲得對(duì)象數(shù)據(jù)庫(kù)代理的唯一實(shí)例對(duì)所有對(duì)象的請(qǐng)求都通過(guò)代理Proxy,而不直接引用對(duì)象(下圖)11/27/2023持久化框架的分析與設(shè)計(jì)11/27/2023持久化框架的分析與設(shè)計(jì)復(fù)雜對(duì)象的具體化考慮不但包含簡(jiǎn)單屬性還與其它對(duì)象有關(guān)聯(lián)的對(duì)象。在關(guān)系數(shù)據(jù)庫(kù)中對(duì)象間的關(guān)聯(lián)可用關(guān)系表來(lái)表示。有一對(duì)一、一對(duì)多、多對(duì)多關(guān)聯(lián),都可以建立關(guān)聯(lián)表,記錄關(guān)系中每個(gè)對(duì)象的OID。復(fù)雜對(duì)象具體化時(shí)要考慮具體化的關(guān)系層次,這要根據(jù)系統(tǒng)特點(diǎn)和性能需求綜合考慮。最簡(jiǎn)單的是100%請(qǐng)求式具體化。各層對(duì)象的具體化都是通過(guò)其對(duì)象代理Proxy實(shí)現(xiàn)的。11/27/2023持久化框架的分析與設(shè)計(jì)事務(wù)操作提交commit(執(zhí)行)回滾rollback(恢復(fù)原狀) 對(duì)象的事務(wù)狀態(tài):新干凈、舊干凈、新臟、舊臟、新刪除、舊刪除,分別放在對(duì)應(yīng)的緩存中。 對(duì)象屬性被更改,它就會(huì)變臟,事務(wù)狀態(tài)即更改。對(duì)象事務(wù)狀態(tài)改變時(shí)它將被移動(dòng)到新事務(wù)狀態(tài)對(duì)應(yīng)的緩存中。 根據(jù)對(duì)象的事務(wù)狀態(tài)不同,事務(wù)操作具體執(zhí)行情況不同。11/27/2023CORBA的持久狀態(tài)服務(wù)概述CORBA的持久狀態(tài)服務(wù)(PersistentStateService,簡(jiǎn)稱(chēng)PSS)為使用各種類(lèi)型的數(shù)據(jù)存儲(chǔ)方式如文件、數(shù)據(jù)庫(kù)等提供了統(tǒng)一的API,使得CORBA對(duì)象能夠方便地持久化。其中狀態(tài)即是指持久化對(duì)象的屬性。CORBA對(duì)象通過(guò)外部接口為客戶(hù)提供服務(wù),通過(guò)內(nèi)部接口來(lái)訪問(wèn)數(shù)據(jù)存儲(chǔ)。PSS服務(wù)就是針對(duì)這一內(nèi)部接口的,相當(dāng)于三層C/S模式中的應(yīng)用邏輯層到數(shù)據(jù)層的接口??蛻?hù)僅訪問(wèn)服務(wù)對(duì)象的外部接口,無(wú)法知道服務(wù)對(duì)象是否使用了PSS服務(wù)。(下圖)11/27/2023CORBA的持久狀態(tài)服務(wù)11/27/2023CORBA的持久狀態(tài)服務(wù)對(duì)象到存儲(chǔ)機(jī)構(gòu)的映射實(shí)現(xiàn)對(duì)象的持久化,首先必須將對(duì)象系統(tǒng)的數(shù)據(jù)模式映射到存儲(chǔ)機(jī)構(gòu)的數(shù)據(jù)模式,如面向?qū)ο髷?shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)、文件系統(tǒng)等。PSS服務(wù)中,將持久信息作為storageobjects存儲(chǔ)在storagehomes中,而storagehomes又保存在datastore中。Datastore是一個(gè)管理數(shù)據(jù)的實(shí)體,如數(shù)據(jù)庫(kù)、一系列文件、關(guān)系數(shù)據(jù)庫(kù)的一個(gè)模式等。為了管理storageobject,程序中必須有一個(gè)對(duì)象來(lái)代表它,稱(chēng)為一個(gè)storageobjectinstance。storageobjectinstance與datastore中的storageobject進(jìn)行綁定,從而可以直接與這一storageobject的狀態(tài)關(guān)聯(lián)。與storageobject建立連接后的storageobjectinstance稱(chēng)為storageobjectincarnation(化身)。11/27/2023CORBA的持久狀態(tài)服務(wù)同樣,程序中存在對(duì)應(yīng)于storagehome的storagehomeinstance對(duì)象。storagehomeinstance對(duì)象由catalogs提供。以關(guān)系數(shù)據(jù)庫(kù)來(lái)看,datastore就相當(dāng)于數(shù)據(jù)庫(kù),storagehome相當(dāng)于數(shù)據(jù)庫(kù)中的表,而storageobject對(duì)應(yīng)于數(shù)據(jù)庫(kù)表中的記錄。而storageobject與對(duì)象系統(tǒng)中的持久化對(duì)象相對(duì)應(yīng)。這樣就實(shí)現(xiàn)了對(duì)象數(shù)據(jù)到存儲(chǔ)機(jī)構(gòu)的映射。(下圖)11/27/2023CORBA的持久狀態(tài)服務(wù)11/27/2023CORBA的持久狀態(tài)服務(wù)數(shù)據(jù)定義 CORBA的PSS服務(wù)使用持久狀態(tài)定義語(yǔ)言PSDL來(lái)定義datastore模式及相應(yīng)的storageobjectinstances的應(yīng)用編程接口。也可直接使用編程語(yǔ)言定義,稱(chēng)為T(mén)ransparentPersistence。 PSDL是IDL的一個(gè)超集,遵從IDL的語(yǔ)法,主要增加了一些關(guān)鍵字和四個(gè)新的結(jié)構(gòu):abstractstoragetype、abstractstoragehome、storagetype和storagehome。abstractstoragetype和abstractstoragehomeabstractstoragetype用來(lái)定義storageobject,abstractstoragehome用來(lái)定義storagehome。abstractstoragetype可以具有狀態(tài)成員和操作,而abstractstoragehome只能有操作,沒(méi)有狀態(tài)成員,但可以定義該storagehome的關(guān)鍵字。11/27/2023CORBA的持久狀態(tài)服務(wù)Storageobject的定位、創(chuàng)建等都可通過(guò)定義在存儲(chǔ)(或?qū)⒁鎯?chǔ))該storageobject的storagehome上的操作來(lái)完成。storagetype和storagehomeStoragetype和storagehome分別定義了storageobject和storagehome的實(shí)現(xiàn),它們分別實(shí)現(xiàn)(Implement)了abstractstoragetype和abstractstoragehome。(個(gè)人理解這里的實(shí)現(xiàn)是將通用的數(shù)據(jù)存儲(chǔ)模式進(jìn)一步特化到某種特定的數(shù)據(jù)存儲(chǔ)描述,如文件或關(guān)系數(shù)據(jù)庫(kù)、Oracle或SQLServer)。abstractstoragehome與abstractstoragetype、storagehome與storagetype是相互對(duì)應(yīng)的,每種storagehome只能用來(lái)存儲(chǔ)特定storagetype的storageobject。11/27/2023CORBA的持久狀態(tài)服務(wù)abstractstoragetype和abstractstoragehome允許多重繼承和鉆石
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保技術(shù)開(kāi)發(fā)合同違約賠償及成果轉(zhuǎn)化
- 二零二五年度林業(yè)用地林地買(mǎi)賣(mài)合同范本(含林權(quán)流轉(zhuǎn))
- 二零二五年度大數(shù)據(jù)產(chǎn)業(yè)股權(quán)質(zhì)押融資合同
- 2025年度綠色建筑項(xiàng)目業(yè)績(jī)回報(bào)提成協(xié)議
- 二零二五年度自愿離婚協(xié)議書(shū)附共同債務(wù)承擔(dān)及信用修復(fù)合同
- 二零二五年度影視制片人藝術(shù)指導(dǎo)合同
- 2025年度車(chē)輛事故車(chē)輛損失賠償協(xié)議
- 2025浙江外服招募公立醫(yī)院國(guó)企人員33人筆試參考題庫(kù)附帶答案詳解
- 2025廣西大藤峽水利樞紐開(kāi)發(fā)有限責(zé)任公司春季招聘8人筆試參考題庫(kù)附帶答案詳解
- 交通管理與控制知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋同濟(jì)大學(xué)
- U8UAP開(kāi)發(fā)手冊(cè)資料
- 15J403-1-樓梯欄桿欄板(一)
- 《數(shù)學(xué)課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版(原版)
- DL∕T 5210.4-2018 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第4部分:熱工儀表及控制裝置
- 水利水電工程單元工程施工質(zhì)量驗(yàn)收評(píng)定表及填表說(shuō)明
- MOOC 數(shù)據(jù)庫(kù)系統(tǒng)(上):模型與語(yǔ)言-哈爾濱工業(yè)大學(xué) 中國(guó)大學(xué)慕課答案
- 15j403-1樓梯欄桿標(biāo)準(zhǔn)
- 08SS523建筑小區(qū)塑料排水檢查井
- 服裝購(gòu)銷(xiāo)合同最新版
- 中層干部輪崗交流動(dòng)員會(huì)上的講話
- 二年級(jí)下冊(cè)科學(xué)第二課磁鐵怎樣吸引物體ppt課件
評(píng)論
0/150
提交評(píng)論