音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

淺談XML異構(gòu)數(shù)據(jù)訪問中間件的設(shè)計(jì)方案

出處:維庫電子市場網(wǎng) 發(fā)布于:2023-06-26 13:48:42

  隨著信息化建設(shè)的不斷深入,不少企業(yè)與組織建立了各種應(yīng)用系統(tǒng)。由于這些系統(tǒng)是在不同階段開發(fā)的,每個(gè)系統(tǒng)都有自己的運(yùn)行環(huán)境和數(shù)據(jù)存儲方式,這些數(shù)據(jù)的格式不統(tǒng)一,各個(gè)應(yīng)用系統(tǒng)彼此封閉,數(shù)據(jù)難以交換和共享。利用中間件(Middleware)技術(shù)集成各種異構(gòu)數(shù)據(jù)時(shí),不用改變原始數(shù)據(jù)的存儲和管理方式,可集中為異構(gòu)數(shù)據(jù)源提供一個(gè)統(tǒng)一的高層檢索服務(wù),是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)集成的理想解決方案。

異構(gòu)數(shù)據(jù)訪問中間件系統(tǒng)的就是要解決異構(gòu)數(shù)據(jù)源的分布性、自制性和異構(gòu)性。隨著分布式計(jì)算技術(shù)(如CORBA、XML等)的迅猛發(fā)展,使得原來的系統(tǒng)可以通過它們進(jìn)行封裝,隱藏內(nèi)部結(jié)構(gòu),采用公共數(shù)據(jù)模型將局部共享數(shù)據(jù)進(jìn)行封裝,對外提供公共訪問接口。異構(gòu)數(shù)據(jù)系統(tǒng)是相關(guān)的多個(gè)數(shù)據(jù)庫系統(tǒng)的集合,可以實(shí)現(xiàn)數(shù)據(jù)的共享和透明訪問,每個(gè)數(shù)據(jù)庫系統(tǒng)在加入異構(gòu)數(shù)據(jù)庫系統(tǒng)之前本身就已經(jīng)存在,擁有自己的DBMS。異構(gòu)數(shù)據(jù)庫的各個(gè)組成部分具有自身的自治性,實(shí)現(xiàn)數(shù)據(jù)共享的同時(shí),每個(gè)數(shù)據(jù)庫系統(tǒng)仍保有自己的應(yīng)用特性、完整性控制和安全性控制。

  1  XML全局?jǐn)?shù)據(jù)模式

異構(gòu)數(shù)據(jù)訪問中間件必須提供一種全局?jǐn)?shù)據(jù)模式來統(tǒng)一異構(gòu)源數(shù)據(jù)模式。異構(gòu)數(shù)據(jù)集成的全局模式必須滿足:①能夠描述各種數(shù)據(jù)格式,無論其為結(jié)構(gòu)化還是半結(jié)構(gòu)化,無論它是支持所有的查詢語言還是簡單的文本查詢;②易于發(fā)布和進(jìn)行數(shù)據(jù)交換,集成后的數(shù)據(jù)可以方便地以多種格式發(fā)布和便于應(yīng)用交換數(shù)據(jù)。

早期異構(gòu)數(shù)據(jù)的集成系統(tǒng)通常采用關(guān)系或?qū)ο蟮臄?shù)據(jù)模式作為全局模式。然而,它們并不能滿足網(wǎng)絡(luò)時(shí)代的Intranet/Internet應(yīng)用所提出的高標(biāo)準(zhǔn)。隨著可擴(kuò)展標(biāo)記語言XML及其相關(guān)技術(shù)的發(fā)展,XML不僅成為了應(yīng)用間交換數(shù)據(jù)的一種標(biāo)準(zhǔn),也是萬維網(wǎng)重要的信息交換標(biāo)準(zhǔn)和表示技術(shù)之一。XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡單易于掌握和使用。

XML是一種具有很強(qiáng)的數(shù)據(jù)描述能力的標(biāo)記語言,它次提供了一種信息交換模式,此格式是可編輯、易理解并且可表示任何類型的結(jié)構(gòu)化或半結(jié)構(gòu)化的信息。XML 提供了豐富的數(shù)據(jù)構(gòu)造和解析方法,能夠適應(yīng)多樣并且不斷變化的網(wǎng)絡(luò)應(yīng)用環(huán)境,被廣泛用于異構(gòu)系統(tǒng)間的數(shù)據(jù)交換和互操作應(yīng)用中。XML與Access,Oracle和SQL Server等數(shù)據(jù)庫不同,數(shù)據(jù)庫提供了更強(qiáng)有力的數(shù)據(jù)存儲和分析能力,例如:數(shù)據(jù)索引、排序、查找、相關(guān)一致性等,XML僅僅是展示數(shù)據(jù)。事實(shí)上XML與其他數(shù)據(jù)表現(xiàn)形式的不同是:它極其簡單。這是一個(gè)看上去有點(diǎn)瑣細(xì)的優(yōu)點(diǎn),但正是這點(diǎn)使XML與眾不同。

 2  系統(tǒng)框架

中間件是一種支持分布式應(yīng)用的重要組件,它是一種獨(dú)立的系統(tǒng)軟件和服務(wù)程序。分布式應(yīng)用借助中間件在不同的技術(shù)間共享資源,為應(yīng)用提供統(tǒng)一的編程模型,處理異構(gòu)、分布問題和管理計(jì)算資源及網(wǎng)絡(luò)通信。

大多數(shù)基于 XML 的數(shù)據(jù)集成系統(tǒng)框架采用Mediator/Wrapper架構(gòu),該架構(gòu)的缺點(diǎn)是查詢效率不高。這是由于底層數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)模式、存儲方法、查詢能力差別很大。數(shù)據(jù)訪問中間件的設(shè)計(jì)是非常復(fù)雜的,包裝器同時(shí)要兼顧數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)清洗等任務(wù),并且這還僅是在查詢時(shí)觸發(fā)的處理。

基于XML的異構(gòu)數(shù)據(jù)訪問中間件模型XHDAM的系統(tǒng)結(jié)構(gòu)。XHDAM從分布式對象操作和異構(gòu)數(shù)據(jù)集成二個(gè)方面解決系統(tǒng)互操作問題。首先,XHDAM基于CORBA技術(shù),CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu),通用對象請求代理體系結(jié)構(gòu))是由OMG組織制訂的一種標(biāo)準(zhǔn)的面向?qū)ο髴?yīng)用程 序體系規(guī)范。或者說 CORBA體系結(jié)構(gòu)是對象管理組織(OMG)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;OMG組織是一個(gè)國際性的非盈利組織,其職責(zé)是為應(yīng)用開發(fā)提供一個(gè)公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術(shù)的發(fā)展。CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu),通用對象請求代理體系結(jié)構(gòu))是由OMG組織制訂的一種標(biāo)準(zhǔn)的面向?qū)ο髴?yīng)用程 序體系規(guī)范?;蛘哒f CORBA體系結(jié)構(gòu)是對象管理組織(OMG)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;OMG組織是一個(gè)國際性的非盈利組織,其職責(zé)是為應(yīng)用開發(fā)提供一個(gè)公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術(shù)的發(fā)展。通過CORBA提供的ORB(Object Request Broker)實(shí)現(xiàn)分布計(jì)算環(huán)境中對象操作支持,使不同的應(yīng)用系統(tǒng)能夠方便地與XHDAM交互,達(dá)到不同應(yīng)用系統(tǒng)之間交互的目的,從而實(shí)現(xiàn)系統(tǒng)的透明性。


(1)客戶端:向CORBA服務(wù)器發(fā)出訪問請求??蛻舳酥惶峁┙y(tǒng)一的訪問界面,不處理業(yè)務(wù)邏輯關(guān)系和集成管理任務(wù)。

(2)CORBA公共服務(wù):提供CORBA的標(biāo)準(zhǔn)服務(wù),包括名字服務(wù)、事件服務(wù)、安全服務(wù)等。

(3)查詢處理器:當(dāng)客戶請求時(shí),分解全局查詢到局部查詢;當(dāng)查詢結(jié)束時(shí),負(fù)責(zé)將局部查詢結(jié)果匯總返回給客戶端。另外還負(fù)責(zé)局部查詢的優(yōu)化,提高查詢效率。

(4)目錄服務(wù):是XML存儲庫的一個(gè)摘要,包含XML存儲庫的靜態(tài)和動(dòng)態(tài)信息。XML數(shù)據(jù)目錄服務(wù)可以自動(dòng)、智能地建立目錄服務(wù),并對信息自動(dòng)搜索、自動(dòng)分類、自動(dòng)傳輸。

(5)事務(wù)服務(wù):負(fù)責(zé)全局模式和局部模式之間的集成與分解關(guān)系,如全局事務(wù)到局部子事務(wù)的處理,全局查詢到局部子查詢的處理。

(6)包裝器:是一種目的語言資料類型的物件,可包裝來源語言的物件。當(dāng)在 JavaScript 中設(shè)計(jì)程式的時(shí)候,你可以使用包裝器物件存取 Java 物件的方法和欄位;呼叫或存取包裝器里的方法或?qū)傩裕靡栽?Java 物件上產(chǎn)生呼叫。對 Java 而言,JavaScript 物件是被包裝在類別為JSObject 的實(shí)體之中,并傳送給 Java。當(dāng) JavaScript 物件傳送給 Java 的時(shí)候,執(zhí)行時(shí)期引撉會建立類型為 JSObject 的 Java 包裝器;當(dāng) JSObject 從 Java 傳送到 JavaScript 的時(shí)候,執(zhí)行時(shí)期引撉會解開包裝,還原為原本的 JavaScript 物件類型。JSObject 類別提供了可呼叫 JavaScript 方法和檢查 JavaScript 屬性的介面。負(fù)責(zé)解決異構(gòu)數(shù)據(jù)源的包裝問題,將分散在各處的數(shù)據(jù)源按照XML模板進(jìn)行包裝。開始,包裝器性將數(shù)據(jù)源中的所有數(shù)據(jù)轉(zhuǎn)換到存儲庫中。當(dāng)有新數(shù)據(jù)源追加到源數(shù)據(jù)庫時(shí),就通過觸發(fā)器觸發(fā)包裝程序?qū)⒃磾?shù)據(jù)庫中的新數(shù)據(jù)包裝成XML數(shù)據(jù)加入存儲庫??蛻舳藢?shù)據(jù)的訪問是通過查詢處理器訪問XML存儲庫實(shí)現(xiàn)的。

3  XML模板和包裝器的設(shè)計(jì)與實(shí)現(xiàn)

為了提供對XML 的支持,各大數(shù)據(jù)庫廠商紛紛對各自的數(shù)據(jù)庫產(chǎn)品進(jìn)行了擴(kuò)展,提供了基于模板的查詢。但各數(shù)據(jù)庫管理系統(tǒng)支持的查詢模板語法差異很大,不能互用。因此,訪問多個(gè)異構(gòu)數(shù)據(jù)源時(shí)需要為不同類型的數(shù)據(jù)庫提供多個(gè)符合其相應(yīng)語法的模板文件,這就增加了項(xiàng)目開發(fā)的復(fù)雜度。

3.1 XTemplate模板設(shè)計(jì)

XTemplate是一個(gè)適用于PHP的模板引擎。它允許把HTML代碼與PHP代碼分開存儲。XTemplate包含了許多有用的功能。比如:嵌套的程序塊,各種類型的插值變量。其代碼非常簡潔并且是優(yōu)化的。Xtemplate是sugarCRM使用的模版技術(shù),使用起來相對簡單?!Template使用了多種標(biāo)簽和特殊操作符支持模板,使得模板在應(yīng)付復(fù)雜的數(shù)據(jù)結(jié)構(gòu)時(shí)尤為健壯。這里所列出概括的幾項(xiàng)功能,欲了解完整的細(xì)節(jié)和使用方法,請參閱XTemplate API文檔。自動(dòng)數(shù)組填充和作用域切換,可在子模板作用域內(nèi)訪問父級對象,可訪問數(shù)組索引,支持?jǐn)?shù)據(jù)值的簡單匹配,自動(dòng)渲染浮點(diǎn)型數(shù)組(不包含非對象的值),可執(zhí)行模板中直接寫好的任意語句,支持模板的配置屬性,可通過配置項(xiàng)對象自定義模板方法,可用于服務(wù)端的JavaScript模板。

為了訪問不同的數(shù)據(jù)源,需要在模板文件中定義數(shù)據(jù)源的連接屬性。其中:數(shù)據(jù)庫連接屬性包括servernAME、dbparm、database、logid、logpass、autocommit;代碼SQL語句屬性為xviewsqlcode;視圖名稱屬性為xviewname;視圖SQL語句屬性為xviewsql。表達(dá)式中的Eq和Attvalue含義分別來自XML元語言[xml25]和[xml10]。

[1]ServernameAttr∷=′xviewsqlcode′ Eq AttValue

[2]DbparmAttrr∷=′xviewsqlcode′ Eq AttValue

[3]DatabaseAttr∷=′xviewsqlcode′ Eq AttValue

[4]LogidAttr∷=′xviewsqlcode′ Eq AttValue

[5]LogpassAttr∷=′xviewsqlcode′ Eq AttValue

[6]AutocommitAttr∷=′xviewsqlcode′ Eq AttValue

[7]XviewnameAttr∷=′xviewname′ Eq AttValue

[8]XviewsqlAttr∷=′xviewsql′ Eq AttValue

[9]XviewsqlcodeAttr∷=′xviewsqlcode′ Eq AttValue

XTemplate 對XML元語言中的起始標(biāo)簽Stag[xml40]作了如下擴(kuò)展,其中Name、S、Attribute分別來自[xml15]、[xml3]和[xml41]:

Stag∷=′<′ Name (S XviewnameAttr | S XviewsqlAttr | S XviewsqlcodeAttr | S Attribute)*? ′>′

,XTemplate 模板文件定義如下,其中prolog、element分別來自[xml39]和[xml22]:

xtemplatefile∷=prolog ′ [element] ′′

使用XTemplate定義的模板文件是格式正確(Well-formed)的XML文檔,且具有根元素,可用來提供數(shù)據(jù)源連接參數(shù)servername、dbms、dbparm、database、logid、logpass、autocommit。

具有xviewname屬性和xviewsql屬性的子元素稱為視圖模板元素,因?yàn)槠涮峁┝吮碚鲾?shù)據(jù)集的名稱和SQL語句的二個(gè)屬性。xviewname屬性提供視圖名稱,xviewsql屬性提供視圖SELECT語句。SELECT語句中可以用:p_xviewname:p_columnname的形式傳遞父視圖的列名給子視圖,以反映視圖間的連接關(guān)系。

如果子元素和屬性的值對應(yīng)于數(shù)據(jù)源中的列名,且需要在解析執(zhí)行時(shí)用檢索結(jié)果動(dòng)態(tài)替換,則稱其為列元素和列屬性。列元素可以用xviewsqlcode 屬性指定以實(shí)際值替換代碼值。


使用XTemplate 定義的一個(gè)模板文件如下:

oracle;UID=scott;PWD=tiger′″>

<員工列表>

<員工 xviewname=″員工″ xviewsql=″SELECT ENO,ENAME,SAL FROM  WHERE ENO=′E1′ or ENO=′E2′″>

<編號>ENO

<姓名>ENAME

<薪水>SAL


使用XTemplate解析程序處理上述模板返回XML文檔如下:

<員工列表>

<員工 員工序號=″1″>

<編號>E1

<姓名>J.Doe

<薪水>4000

<員工 員工序號=″2″>

<編號>E2

<姓名>M.Smith

<薪水>3400

使用XTemplate書寫的模板文件獨(dú)立于具體的數(shù)據(jù)庫管理系統(tǒng),無需數(shù)據(jù)庫管理系統(tǒng)內(nèi)置的功能模塊解析執(zhí)行,而是由獨(dú)立于具體數(shù)據(jù)庫管理系統(tǒng)的軟件模塊解析執(zhí)行并返回XML查詢結(jié)果。

XTemplate定義模板文件可以使沒有內(nèi)置XML查詢功能的數(shù)據(jù)庫管理系統(tǒng)獲得對XML查詢的支持。采用XTemplate之后,結(jié)構(gòu)化的數(shù)據(jù)源需要解釋執(zhí)行的是XTemplate 解析執(zhí)行軟件傳遞來的SQL語句,這是結(jié)構(gòu)化的數(shù)據(jù)源通常會提供的標(biāo)準(zhǔn)功能。

 3.2 包裝器的設(shè)計(jì)與實(shí)現(xiàn)

XML包裝器是整個(gè)模型中的重要組成部分,它將異構(gòu)的數(shù)據(jù)源按照統(tǒng)一的數(shù)據(jù)模型進(jìn)行包裝,在客戶端對數(shù)據(jù)的訪問都是針對統(tǒng)一的數(shù)據(jù)模型標(biāo)準(zhǔn)。


XML包裝器是一個(gè)模板文件解析程序,只要傳入不同的模板文件即可生成對應(yīng)的XML文檔。包裝器工作過程如下:從傳來的模板文件建立DOM對象,取得數(shù)據(jù)庫的連接屬性,進(jìn)而連接數(shù)據(jù)庫;從XTemplate模板文件的xviewsql屬性獲得SELECT語句,在數(shù)據(jù)庫表或視圖中執(zhí)行此查詢語句,建立視圖數(shù)據(jù)集;將數(shù)據(jù)集中的相關(guān)數(shù)據(jù)代入。XML即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡單易于掌握和使用。關(guān)鍵解析算法如下:

//predealdom方法建立視圖,復(fù)制建立的所有元素

Void predealdom(domobject& root) {

//視圖模板元素指有xviewsql屬性的元素

If (root 不是視圖模板元素){

對root所有子元素遞歸調(diào)用predealdom;

}

else {

視圖序號增加;

為root添加xviewindex屬性,值為當(dāng)前視圖序號;

從xviewsql屬性獲得視圖SELECT語句;

if (SELECT語句中有參數(shù)){

查找相應(yīng)祖先視圖取得實(shí)際值代入;

}

根據(jù)SELECT 語句建立視圖數(shù)據(jù)集;

if (不能創(chuàng)建視圖數(shù)據(jù)集){

errmsg=″xviewsql屬性值不是合法的SELECT語句″

return

}

else {

int RowCount=視圖數(shù)據(jù)集行數(shù);

//復(fù)制當(dāng)前節(jié)點(diǎn)RowCount

for (int row=1;row

復(fù)制root節(jié)點(diǎn)加入DOM;//DOM為模板對象

添加xviewindex和xviewrow屬性;

}

對root的所有子元素遞歸調(diào)用predealdom

}

}

//dealdom方法將列元素與列屬性替換為實(shí)際值

Void dealdom(domobject& root) {

If (root 有 xviewindex屬性){

Int index=root元素的xviewindex屬性值;

}

int row=root元素的xviewrow屬性值;

int AttrNums=root屬性數(shù)目;

int ElemNums=root子元素?cái)?shù)目;

for (int i=0;i

取得root元素第i個(gè)屬性a[i];

if (a[i]是列屬性){

查找編號為xviewindex的視圖數(shù)據(jù)集的row行取得實(shí)際值替換;

}

}

for (int j=0;j< ElemNums;j++){

取得root元素第j個(gè)屬性e[j];

if (e[j]是列元素){

查找編號為index的視圖數(shù)據(jù)集的row行取得實(shí)際值替換;

if (e[i]有xviewcodesql屬性{

根據(jù)代碼SQL語句取得實(shí)際值代替代碼值;

}

}

}

對root的所有子元素遞歸調(diào)用dealdom

}

行業(yè)標(biāo)記語言用于校驗(yàn)生成的XML文檔是否合法。如果合法,則允許存入XML存儲庫中;否則應(yīng)當(dāng)修改對應(yīng)的模板文件。

初始建立XML存儲庫時(shí),性將所有歷史數(shù)據(jù)轉(zhuǎn)換裝入XML存儲庫。之后,有數(shù)據(jù)更新時(shí)觸發(fā)轉(zhuǎn)換操作,將相應(yīng)的XML文檔加入到XML存儲庫中。

對于企業(yè)應(yīng)用來說,訪問各種異構(gòu)數(shù)據(jù)源是企業(yè)內(nèi)部發(fā)展的需要,也是企業(yè)信息化建設(shè)的要求。本文提出的基于XML異構(gòu)數(shù)據(jù)訪問中間件解決方案通過預(yù)先實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫到XML數(shù)據(jù)的轉(zhuǎn)換,加快了訪問速度。,給出包裝器和XML模板的詳細(xì)設(shè)計(jì)和說明。

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!