999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

可復(fù)用MOF元建模框架的研究

2007-01-01 00:00:00蘭慶國劉淑芬張欣佳

摘要:在MDA場景下,元模型是實(shí)現(xiàn)平臺(tái)無關(guān)模型和平臺(tái)相關(guān)模型轉(zhuǎn)換的核心。提出通過元層模型和模型層模型的DownUp機(jī)制給出可復(fù)用的MOF元建模框架。元建模框架由MOF BootStrap模型自舉,并且內(nèi)置MOF Model,此框架可在任意多層元建模中復(fù)用。此外,給出了模型工程模型和模型遷移剪枝算法,并提出了采用模型工程統(tǒng)一對象空間實(shí)現(xiàn)模型實(shí)例復(fù)用的方法。此框架的研究對于指導(dǎo)具體建模工具的實(shí)現(xiàn)有重要意義。

關(guān)鍵詞:MOF; 元建模; 框架; 復(fù)用

中圖法分類號(hào):TP311.5文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1001-3695(2007)01-0094-03

1背景簡介

計(jì)算機(jī)網(wǎng)絡(luò)將人們使用的數(shù)據(jù)資源和應(yīng)用程序連接起來,這使得人們更加向往不受地域限制透明地進(jìn)行應(yīng)用程序間的數(shù)據(jù)交換。但是,不同系統(tǒng)間不一致的元數(shù)據(jù)已經(jīng)成為數(shù)據(jù)交換的主要限制。許多應(yīng)用程序使用了元數(shù)據(jù)的私有模型,元數(shù)據(jù)模型間的不同阻止了跨越應(yīng)用程序界限的數(shù)據(jù)交換,解決元數(shù)據(jù)模型間的不同將能促進(jìn)需要交換數(shù)據(jù)的應(yīng)用程序間的集成。MOF(MetaObject Facility)是OMG的一個(gè)標(biāo)準(zhǔn),它提供了一個(gè)元數(shù)據(jù)的管理框架和一套元數(shù)據(jù)服務(wù),使得模型與元數(shù)據(jù)的互操作和開發(fā)成為可能。OMG有許多標(biāo)準(zhǔn),如UML,MOF,CWM,SPEM,XMI和各種UML Profile[1]。為了進(jìn)行數(shù)據(jù)交換和元數(shù)據(jù)管理都使用了MOF和MOF的派生技術(shù),如JMI(Java Metadata Interface)[2]。MOF的重要貢獻(xiàn)是提供了OMG的MDA核心規(guī)范,它是建立在已經(jīng)制定的UML規(guī)范基礎(chǔ)上,引入了元模型和元數(shù)據(jù)PIM(Platform Independency Model)的概念和從PIM到PSM (Platform Specific Model)的映射。

典型的MOF元建模框架分為四層,如圖1所示。元模型層從M0向上編號(hào),M1層為

M0的模型,又稱為M0的元數(shù)據(jù)層或描述M0的語言;M2層為M1層的模型,為模型的模型,又稱為元模型層;最頂層為MOF模型層,MOF模型由MOF內(nèi)含的一個(gè)核心層自我描述,不需要?jiǎng)e的模型對MOF進(jìn)行描述,所以MOF層為最頂層。

圖1典型MOF四層模型

圖1四層模型的概念是元層描述的實(shí)例,分層建模的關(guān)鍵是Classifier和Instance或Class和Object,從一個(gè)Instance導(dǎo)覽到它的Metaobject(Classifier)的能力。這個(gè)基本概念能被用于處理任何數(shù)目的元層次,就是說,元層不僅限于四層,可能多于四層,也可能少于四層。目前大多數(shù)系統(tǒng)用了小數(shù)目的元層次,如兩層的通用反射系統(tǒng) Class/Object,三層的關(guān)系數(shù)據(jù)庫系統(tǒng)SysTable/Table/Row, 四層的MOF/UML/User Model/userObject。隨著語言驅(qū)動(dòng)開發(fā)[3]和面向語言開發(fā)[4]的提出,我們更加需要不同的元模型語言來描述不同階段的抽象模型。

MOF規(guī)范2.0版本于2003年10推出,目前還沒有真正支持MOF 2.0元建模的工具,EclipseEMF[5]是最接近MOF 2的EMOF元建模工具,但是它僅支持上面典型四層結(jié)構(gòu)的M2和M1層建模。其他工具如GME[6],MetaEdit[7],DOME[8]等采用了私有的元模型進(jìn)行元建模,也是僅僅處理M2和M1的元層建模。關(guān)于可復(fù)用MOF元建模的研究,在實(shí)踐方面,目前沒有完全支持MOF 2的工具;在理論的研究方面,雖然OMG提供了規(guī)范,但是還沒有人進(jìn)行可復(fù)用MOF框架實(shí)踐方面的指導(dǎo)研究。本文提出元建模的DownUp元建模框架、模型工程、模型對象復(fù)用、模型遷移剪枝算法,為元建模實(shí)踐提供了理論指導(dǎo)。

2可復(fù)用的元建模框架

2.1原理

早在1979年的文獻(xiàn) [9]中描述的Gold Braid架構(gòu)就強(qiáng)調(diào)了元模型、模型和實(shí)例都是以實(shí)例化為基礎(chǔ)的相對概念之間的關(guān)系。Gold Braid架構(gòu)強(qiáng)調(diào)了類和對象間的關(guān)系,一個(gè)類可以被實(shí)例化建立一個(gè)對象,這個(gè)對象是這個(gè)類的實(shí)例;也可以是一個(gè)對象的子類,即一個(gè)類能被另外一個(gè)類(元類)實(shí)例化,但是Gold Braid只是闡述了同構(gòu)關(guān)系框架的基本原則,并不涉及如何構(gòu)建可復(fù)用的元建模框架。可復(fù)用的MOF元建模框架基于這個(gè)基本原則,以統(tǒng)一的方式構(gòu)建滿足任意層次的模型元建模框架,此框架的結(jié)構(gòu)如圖2所示。這個(gè)框架采用元層和模型層的DownUp機(jī)制,實(shí)現(xiàn)了元層描述模型層和模型層上升注冊到元層并進(jìn)一步采用框架描述新的模型層。

圖2可復(fù)用的元建模框架DownUp原理

兩級(jí)DownUp原理如下:

在元層,初始模型為MOF Model,通過Down過程實(shí)例化MOF Model,生成MOF模型實(shí)例模型n(如UML MetaModel),模型n如果能夠繼續(xù)建模下一層模型實(shí)例,必須通過Up過程把模型n升級(jí)并注冊到元層形成元模型n,然后通過元模型n描述模型n-1。依此類推,可進(jìn)行無層次限制元建模。

2.2BootStrap模型和初始化模型

可復(fù)用的MOF元建模結(jié)構(gòu)的初始模型為MOF模型,MOF模型是自我描述的,MOF模型需要其核心模型Down實(shí)例化后形成MOF模型,我們稱這個(gè)核心模型為可復(fù)用MOF建模框架的BootStrap模型。這個(gè)模型應(yīng)該足夠簡單,它不需要任何模型去描述它,可復(fù)用架構(gòu)的所有模型元素都是其直接或間接的實(shí)例。MOF 2.0規(guī)范沒有這個(gè)模型,本文給出了這個(gè)模型,如圖3所示,BootStrap模型僅含有一個(gè)模型元素Element。BootStrap模型實(shí)例化了MOF模型的EMOF和CMOF,從而MOF模型實(shí)現(xiàn)了真正的自描述。BootStrap模型的存在,使得可復(fù)用的元建模框架能夠以統(tǒng)一的方式實(shí)現(xiàn)元層模型和模型層模型的建模,完善了MOF模型的自描述理論。

2.3模型工程模型

在可復(fù)用MOF元建模框架的Down和Up建立模型過程中,為了維護(hù)元層和模型層之間的關(guān)系以及模型層模型元素實(shí)例在Up并注冊到元層后能被重用,我們引入模型工程模型的概念。模型工程模型為描述模型工程的模型,如圖4所示。工程模型由模型和模型關(guān)系以及統(tǒng)一對象空間組成。Model包括元層模型和模型層模型,ModelAssociation表達(dá)元層模型和模型層的Down和Up關(guān)系;統(tǒng)一對象空間(UniObjectSpace)為系統(tǒng)所有實(shí)例化元素的統(tǒng)一命名空間,任何模型注冊到元層就是注冊到模型工程的統(tǒng)一對象命名空間,通過統(tǒng)一對象命名空間實(shí)現(xiàn)模型層模型元素對象的復(fù)用,UniObjectSpace在2.5模型Up中被詳細(xì)說明。通過模型工程模型可以進(jìn)行同一工程模型的元層和實(shí)例化層的連續(xù)反射和實(shí)例化追蹤。在Model中,缺省模型為MOF BootStrap(isBootStrap 為 True)和MOF Model (isSystem 為 True),缺省的ModelAssociation的對象鏈為(MOF BootStrap (Up)MOF Model(Down)),它的isSystem為True,從MOF Model新建立的MetaUML的ModelAssociation的對象鏈為(MOF Model(Up)MetaUML(Down)),isSysetm 為False。

圖3MOF BootStrap模型及自描述原理

圖4模型工程模型

2.4元模型的Down

元模型的Down主要是指通過元模型描述模型的技術(shù),也就是如何用元模型來描述如UML元模型、UML模型、領(lǐng)域特定語言、領(lǐng)域模型等模型。在可復(fù)用MOF元建模框架中,元層模型Down到模型層模型主要包括以下四種方式:

(1)直接實(shí)例化元模型

直接實(shí)例化元模型為模型層的實(shí)例,這種是最簡單的方式,如實(shí)例化MOF::Class為MetaUML::Class和MetaUML::Attribute。

(2)Profile元模型,然后實(shí)例化

Profile是元模型元素的構(gòu)造型(Stereotype)集合,構(gòu)造型為特定的元模型元素賦予了特定方面的方言,這一方言使得用戶更易于交流(如Interface接口被構(gòu)造型為EJB的Home接口)。通過Profile實(shí)例化的模型是DSL(Domain Specific Language)建模,它是MDA環(huán)境下的一種主要方式。Profile擴(kuò)展元模型機(jī)制主要特點(diǎn)就是不允許編輯修改現(xiàn)存的元模型(但是允許添加新的約束來具體化Profile),也不允許添加新的模型元素(如構(gòu)造元模型元素間新的關(guān)系),所以又被稱為輕型模型擴(kuò)展(Lightweight Extension)[10]。

(3)繼承元模型,添加新的屬性實(shí)例化

繼承現(xiàn)有的元模型然后實(shí)例化,是在元模型元素屬性不滿足具體建模需求時(shí),通過繼承元模型添加需要的屬性后實(shí)例化,如StateMachineModel::StateMachine繼承 MOF::Class,并添加startState屬性。這種方式擴(kuò)展的特點(diǎn)是需要修改元模型層模型后進(jìn)行擴(kuò)展,所以這種方式又被稱為重型擴(kuò)展(Heavyweight Extension)。

(4)標(biāo)記元模型,實(shí)例化

一個(gè)標(biāo)記表達(dá)了一個(gè)獨(dú)立的信息塊,它能被關(guān)聯(lián)給任意數(shù)目的模型元素,一個(gè)模型元素能被關(guān)聯(lián)許多標(biāo)記。一個(gè)標(biāo)記采用字符串名稱—值對(NameValue)的方式描述。具體模型處理時(shí)可以忽略或使用這些標(biāo)記,這樣可以提供給建模一個(gè)靈活的需求,在沒有重定義元模型的情況下,提供了元模型元素的動(dòng)態(tài)擴(kuò)展。

上面四種方式是創(chuàng)建新的建模語言的主要方法,這四種方法還可以聯(lián)合使用以進(jìn)行模型擴(kuò)展,如重型擴(kuò)展+輕型擴(kuò)展策略、Profile+標(biāo)記策略等。

MOF 2規(guī)范不直接支持Profile的機(jī)制,所以基于第一級(jí)建模方式不能使用Profile機(jī)制(可以通過重型擴(kuò)展建立Profile元模型,如UML元模型,在新的模型中使用Profile,如UML模型),可以采用其他三種方式進(jìn)行模型層的實(shí)例化。

2.5模型層模型的Up

元模型的Up過程將模型層模型提升為元層模型,將模型層元素對象注冊到統(tǒng)一對象空間。一個(gè)模型工程中的不同元層模型和模型層模型都有著實(shí)例化和被描述的關(guān)系,統(tǒng)一對象空間保存模型工程中所有模型對象以及它們的實(shí)例化關(guān)系。

統(tǒng)一對象名稱空間在模型對象維度屏蔽了模型元素名稱,給可復(fù)用元建模框架的MOF Capabilities[11]帶來的語義歧義和通過復(fù)用MOF的元對象設(shè)施Capabilities構(gòu)造無限制元層的模型。通過模型擴(kuò)展機(jī)制Down一個(gè)模型,如果這個(gè)模型需要作為另一個(gè)模型的元模型,就需要模型的Up機(jī)制注冊到相應(yīng)的元模型層。如圖5所示,在模型對象空間的緯度,所有元層或模型層的對象元素都是模型實(shí)例維,而所有的模型對象均注冊到模型工程的統(tǒng)一對象空間。新建模型選擇元模型及元模型對象均通過統(tǒng)一對象空間訪問,而元層的對象約束來自于各層模型實(shí)例維的相關(guān)約束。采用統(tǒng)一對象空間和模型實(shí)例空間維使得元建模框架自身也是復(fù)用已有建模實(shí)例和相關(guān)模型的Capabilities。

圖5模型對象到元層的注冊原理

Down過程是模型維的視角,是模型到模型的擴(kuò)展;Up過程是對象維的視角,是對象到對象的分類和集中,是各種模型對象到統(tǒng)一對象空間的注冊。

3模型遷移同步剪枝算法

在DownUp的元建模框架中,統(tǒng)一的元層和模型層結(jié)構(gòu)是框架可復(fù)用的基礎(chǔ)。只有保持元層和模型層模型的一致性才能復(fù)用DownUp元建模框架。但是,在Down過程產(chǎn)生的模型被編輯后,基于這個(gè)模型Up后的元模型也將隨之發(fā)生改變,而基于修改前元模型實(shí)例化的模型元信息將會(huì)出現(xiàn)不一致,進(jìn)而下一層模型的元信息也是不一致的,這就需要編輯后的模型在Up注冊時(shí)執(zhí)行一個(gè)模型遷移算法,我們把它稱為DownUp的模型遷移同步剪枝算法。模型遷移剪枝算法的結(jié)果是給出實(shí)例化模型擴(kuò)展關(guān)系中一致的模型。例如圖1所示的模型,如果M2層的Attribute模型元素被刪除,那么Attribute和Class的聚合關(guān)系也將被刪掉,通過執(zhí)行模型遷移同步剪枝算法,M1層的Name和Client的Name的關(guān)系鏈將被修剪掉,同時(shí),運(yùn)行時(shí)模型M0的Client對象不會(huì)有名字aClient,這樣保證了UML元建模和UML建模過程中模型的一致性。由于模型遷移同步剪枝算法在模型遷移過程中保證了元層模型和模型層模型的一致性,進(jìn)而能夠在元層和模型層間以統(tǒng)一的、無層次限制的和一致的方式進(jìn)行元建模。

剪枝算法是個(gè)遞歸過程,它不斷修剪下一層模型,直到?jīng)]有下一層模型為止,此算法在模型修改重新注冊時(shí)被激活。剪枝算法處理流程如下:

(1)取出被修改模型的所有直接下層模型,如果下層模型為空,轉(zhuǎn)(4)。

(2)對每一個(gè)下層模型,遍歷模型的每個(gè)模型元素類型是否出現(xiàn)本層模型元素,如果沒有出現(xiàn),則刪除下層模型元素及相關(guān)關(guān)系,轉(zhuǎn)(1),否則轉(zhuǎn)(3)。

(3)判斷此模型元素關(guān)系是否有修改或刪除,如果有,則刪除下層模型元素相關(guān)關(guān)系,轉(zhuǎn)(1);否則,如果還有下層模型,轉(zhuǎn)(2),否則轉(zhuǎn)(1)。

(4)退出。

下面是通過擴(kuò)展OCL(Object Constraint Language)[12]實(shí)現(xiàn)的模型剪枝算法:

Context ModelProject

@Operation pruningModel(modifiedModel: MOF::Package)

Letelements: Set(MOF::Package)=Self.directedDownModels

In 

if elements>isEmpty() then return 

else

elements>select(not oclIsKindOf(MOF::Relationship))>

collect(e: MOF::Package| 

if not modifiedModel>include(e.element) then

e.eraseElementAndRelationship(e.element)

self.pruningModel(e)

end

elements>select(oclIsKindOf(MOF::Relationship))>

collect(e: MOF::Package| 

if not modifiedModel>include(e.element) then

e.eraseRelationship(e.element)

self.pruningModel(e)

end

end

end

@Context Package

@Operation eraseElementAndRelationship(e: MOF::Element)

self.eraseAllRelationship(self>select(p: MOF::Element| p =e)>relationships)

self.eraseElement(e)

end

end

將該算法應(yīng)用于圖1的模型中,如果在M2層刪除Attri ̄bute模型元素,那么通過剪枝算法,在M1層中Name屬性將被剪掉,M0層的對象名字也會(huì)被剪掉。通過模型同步剪枝算法,保證了上下層模型的一致性。

4結(jié)論和進(jìn)一步工作

可復(fù)用的MOF元建模框架采用DownUp機(jī)制進(jìn)行元建模,復(fù)用了元建模框架,通過給出MOF的BootStrap模型完善了MOF自我描述理論。在模型的Up過程中,通過引入模型工程統(tǒng)一對象空間實(shí)現(xiàn)模型實(shí)例復(fù)用,最后擴(kuò)展OCL實(shí)現(xiàn)了與平臺(tái)無關(guān)的模型遷移同步剪枝算法。進(jìn)一步的工作將在可復(fù)用MOF元建模框架的研究基礎(chǔ)上實(shí)現(xiàn)可復(fù)用MOF元建模工具。

參考文獻(xiàn):

[1]OMG Group. MOF,UML,CWM,SPEM,XMI,UML Profile[EB/OL]. http://www.omg.org/mda/specs.htm,2005.

[2]Sun. JMI[EB/OL].http://java.sun.com/products/jmi/index.jsp, 2005.

[3]Tony Clark, Andy Evans, Paul Sammut, et al. Applied MetaMode ̄ling:A Foundation for Language Driven Development[M].Xactium Inc.,20-04.

[4]Eclipse.EclipseEMF[EB/OL].http://www.eclipse.org/emf/,2005.

[5]Jetbrains.LOP[EB/OL]. http://www.onboard.jetbrains.com/is1/articles/04/10/lop/index.html,2005.

[6]Vanderbilt University. GME [EB/OL] . http://www.isis.vanderbilt.edu/Projects/gme/,2005.

[7]MetaEdit[EB/OL]. http://www.moonglow.com/METAEDIT/,2005.

[8]DOME Research Group[EB/OL]. http://www.src.honeywell.com/dome/,2005.

[9]D R Hofstadter. Goedel, Escher, Bach:An Eternal Golden Braid [M]. New York: Vintage Books,1979.

[10]David S Frankel. Applying MDA to Enterprise Computing [M]. John Wiley Sons, Inc.,2003.

[11]OMG. MOF Specification[EB/OL]. http://www.omg.org/cgibin/apps/doc?ptc/0310-04.pdf,2005.

[12]Jos Warmer, Anneke Kleppe. Object Constraint Language:The Getting Your Models Ready for MDA (2nd edition)[M]. Addison Wesley, 2003.

作者簡介:

蘭慶國(1972),男,講師,博士研究生,主要研究方向?yàn)槟P万?qū)動(dòng)開發(fā)、通信網(wǎng)絡(luò)管理;

劉淑芬(1950),女,教授,博導(dǎo),主要研究方向?yàn)榫W(wǎng)絡(luò)技術(shù)、系統(tǒng)結(jié)構(gòu);張欣佳(1978),男,博士研究生,主要研究方向?yàn)榫W(wǎng)絡(luò)技術(shù)。

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

主站蜘蛛池模板: 色综合成人| 久久国产V一级毛多内射| 久久精品无码一区二区国产区| 日韩国产 在线| 国产凹凸视频在线观看| 蜜芽国产尤物av尤物在线看| 国产91小视频| 99精品国产电影| 日韩大片免费观看视频播放| 国产喷水视频| 成人第一页| 国产成人精品男人的天堂| 伊人国产无码高清视频| AV在线天堂进入| 久久精品国产91久久综合麻豆自制| 欧美福利在线播放| 成年女人a毛片免费视频| 国产小视频网站| 国产手机在线观看| 青青青伊人色综合久久| 国产一区二区三区在线观看视频| 国产精品久久久久久久久kt| 乱系列中文字幕在线视频| 老司机aⅴ在线精品导航| 四虎精品免费久久| 亚洲无码精彩视频在线观看| 亚洲第一福利视频导航| 免费日韩在线视频| 婷婷午夜天| 野花国产精品入口| 亚洲欧美人成电影在线观看| 高清欧美性猛交XXXX黑人猛交| 国产精品久久久精品三级| 国产日韩欧美黄色片免费观看| 日本不卡视频在线| 亚洲国模精品一区| 在线观看免费人成视频色快速| 国产高清自拍视频| 92午夜福利影院一区二区三区| 久久国产成人精品国产成人亚洲| 欧美一级一级做性视频| 伊人激情久久综合中文字幕| 亚洲有无码中文网| 国产人成在线视频| 99999久久久久久亚洲| 日韩一区二区在线电影| 久久精品91麻豆| 喷潮白浆直流在线播放| 久久精品视频一| 国产一区免费在线观看| 久久一日本道色综合久久| 亚洲中文字幕97久久精品少妇| 国产区精品高清在线观看| 成人午夜免费观看| 一级毛片免费的| 国产va视频| 大香网伊人久久综合网2020| 亚洲精品国产自在现线最新| 动漫精品啪啪一区二区三区| 国产精品v欧美| 亚洲欧洲日产无码AV| 欧美日本在线观看| 欧美一区二区福利视频| 日本一区二区三区精品视频| 奇米影视狠狠精品7777| 亚洲黄色视频在线观看一区| 免费国产高清精品一区在线| 国产精品自拍露脸视频| 最新国产你懂的在线网址| 免费毛片视频| 视频一区亚洲| 亚洲成a∧人片在线观看无码| 国产欧美在线观看视频| 精品综合久久久久久97超人该| 中文一级毛片| 亚洲人成人无码www| 香蕉久久永久视频| 91久久天天躁狠狠躁夜夜| 全色黄大色大片免费久久老太| 一级全免费视频播放| 国产簧片免费在线播放| 九九久久精品国产av片囯产区|