基本介紹
- 中文名:公共倉庫元模型
- 外文名:CommonWarehouseMetamodel
- 外文縮寫:CWM
簡介
MOF(MetaObjectFacility):元對象設施,是OMG關於元模型和元資料庫的標準;用來定義元數據並將其表示為CORBA對象的技術。提供在異構環境下對元資料庫的訪問接口。
XMI(XMLMetadataInterchange):XML元數據交換,是OMG關於元數據交換的標準;提供基於檔案數據流的元數據交換接口和機制。這三個標準是OMG數據倉庫元模型CWM體系結構的核心,CWM元模型直接繼承UML元模型用於數據倉庫元模型和模型的描述,CWM中的類和關聯都直接或間接繼承了UML中類的語法和語義。MOF為構建模型和元模型提供了可擴展的框架,並提供了存取元數據的程式接口(IDL/Java)【2】【3】。而利用XMI則可以將元數據轉換為標準的XML數據流或檔案的格式【4】,以便進行交換,這大大增強了CWM的通用性。
CWM為在數據倉庫領域套用MDA方法提供了有力的支持。在數據倉庫領域,CWM是定義PIM的語言,其形式是UML;PIM及PSM通常以XML文檔作為物理載體,而XMI規範保證這些XML文檔具有可理解性和可移植性;MOF保證了PIM可以順利的轉換為PSM,並由PSM轉換成代碼模型。
起源
目標
CWM主要的設計原則有以下幾個方面:
對UML中概念的重用:UML1.3是整個CWM的設計基礎,CWM在任何可能的地方對UML中的概念進行重用,所有的CWM對象類型都直接或間接地繼承於UML,因此也繼承了它們的屬性和方法。這樣可以節省很多重複工作,並且使CWM更容易理解,所有熟悉UML的用戶都可以有一個比較高的起點;
模組化:CWM元模型被分成許多包,以便它們分別實現並減少複雜度。具體的組成結構見下;
通用化:CWM元模型獨立於任何具體的數據倉庫工具,但同時,它儘量多地包含了基於特定工具實現的有代表性且通用的數據倉庫特點。也就是說,只有那些多種工具共享的信息才會被CWM元模型包含進來。
組件
CWMUML類圖:CWM元模型用一套UML圖來圖形化的表示CWM元模型。
CWMXML檔案:用XML形式描述的CWM,MOF1.3版本兼容。
CWMDTD:CWM文檔類型定義(DTD)用來對CWM文檔進行有效性驗證。
CWMIDL:OMG定義了一組接口定義語言(IDL)檔案,讀取元數據。 圖:OMG提供的CWM相關組件
模型
數據分析方面:這些元模型能描述數據轉換、在線上處理分析(OLAP)、數據挖掘、結果信息可視 化等。
數據倉庫管理方面:這些元模型能描述數據倉庫流程和操作結果。
CWM元模型描述了數據倉庫的組成元素,用戶可以按照這些元模型開發相應的組件,比如ETL、OLAP和數據挖掘等。並為了降低複雜度和達到重用,按照上述參考方面,CWM元模型採用如下分層的方式組織包,如圖:cwm 圖:CWM元模型的包結構
如圖中所示,CWM元模型主要包括四層:基礎包Foundation,資源包Resource,分析包Analysis和管理包Management。
CWM對象模型包提供了創建和描繪CWM所有其它包中的元模型類的基礎結構。對象模型包是一個UML子集,它僅僅包含創建和描述CWM類所需要的特徵。
基礎包主要定義了為CWM其它包所共享的一些基本概念和結構,它包含的子包有: BusinessInformationpackage:由面向業務的通用信息的類和相應關聯組成,比如負責人信息類等;
DataTypespackage:定義了其它包用以創建自己所需的數據類型的元模型組件;
Expressionspackage:定義了CWM其它包定義表達式樹所需的元模型組件;
KeysandIndexespackage:定義了描述關鍵字和索引的共享元模型;
SoftwareDeploymentpackage:描述一個軟體在數據倉庫中如何被使用的元模型;
TypeMappingpackage:支持不同系統之間數據類型的映射的元模型;
資源包主要定義了一些描述常用的數據源/目標的元模型,它包含的子包有:
Relationalpackage:描述通過關係型接口訪問的資料庫的數據模型和元模型,比如RDBMS,ODBC,JDBC等;
Recordpackage:描述記錄的基本概念和結構的元模型,這裡記錄的概念很廣泛,它可以描述任何結構化的信息,比如資料庫的一條記錄、文檔等;
Multidimensionalpackage:描述多維型資料庫的元模型;
XMLpackage:描述用XML表示的數據源和數據目標;
分析包主要定義了一些描述數據倉庫工具的元模型,它包含的子包有: Transformationpackage:定義數據倉庫中抽取轉換規則的元模型,它包含對各種類型數據源之間的轉換規則的描述;
OLAPpackage:對OLAP工具和套用進行描述,並定義了它到實際系統的映射;
DataMiningpackage:對數據挖掘工具和套用進行描述;
InformationVisualizationpackage:定義了問題領域中有關信息發布或者信息可視化的元模型;
BusinessNomenclaturepackage:對業務數據進行描述,比如業務術語及其適用範圍等;
管理包主要定義了一些描述數據倉庫運行和調度信息的元模型,它包含的子包有:
WarehouseProcesspackage:描述數據倉庫中抽取轉換規則的執行過程,也就是各個轉換規則的觸發條件;
WarehouseOperationpackage:描述數據倉庫日常運行情況的元模型;
作用
首先,CWM可以成為MDA存貯,交換數據的格式標準。CWM規範了數據倉庫的各種數據源,包括關係資料庫,記錄型數據,XML文檔,甚至包含面向對象的數據。這部分規範幾乎覆蓋了所有的數據源,同樣適用與其他領域。而且,CWM元模型是用MOF建模的,可作為MDA變換的源和目標。如使用CWM來定義數據源,有利於實現標準的,可重用的MDA變換。另外,如利用CWM來輔助MDA開發,可以有效解決元數據管理問題,提高投資回報。
其次,CWM的轉換包(Transformation)可以用於定義標準的MDA變換。CWM的轉換包定義了數據倉庫中ETL過程的元數據。與倉庫過程包(WarehouseProcess)和倉庫操作包(WarehouseOperation)結合,可以完成數據倉庫ETL過程的調度、維護、管理,這些同樣可以套用與這個MDA環境。CWM轉換不依賴於任何具體的轉換工具和實現技術,擁有良好的平台獨立性,而且支持多種數據源,適用於類型廣泛的映射。CWM轉換包中使用了某些手段,確保了轉換的精確性和擴展性。CWM轉換可以看作擴展性框架,用戶可以通過定義過程性表達式語言或復用已經定義好的語言來擴展該框架。MDA的開發者完全可以利用CWM轉換良好的形式化規約,以及CWM在數據轉換方面所積累的豐富經驗,來定義標準的MDA變換。
參考
2 ObjectManagementGroup.MetaObjectFacility(MOF)SpecificationVersion1.4.2002
3 JavaCommunityProcess.JSR040JavaMetadataInterchange(JMI)SpecificationVersion1.0.2002
4 ObjectManagementGroup.XMLMetadataInterchange(XMI)SpecificationVersion2.0.2003