CWM
公共仓库元模型的缩写
CWM(CommonWarehouseMetamodel公共仓库元模型)是OMG组织在数据仓库系统中定义了一套完整的元模型体系结构,用于数据仓库构建和应用的元数据建模
简介
公共仓库元模型指定的接口,可用于启用交换仓库之间元数据仓库和业务智能工具、仓库平台、应用的元数据建模和仓库元数据存储在分布式异构环境CWM元模型由一系列子元模型构成,包括:资源数据元模型用于为对象型的、关系型的、记录型的、多维的和XML等数据源建模;数据分析元模型用于为数据转换、联机处理分析(OLAP)、数据挖掘、结果信息可视化等分析处理结果建模;仓库管理元模型用于为数据仓库处理流程和操作功能进行建模。CWM主要基于以下三个工业标准【1】:
UML(UnifiedModelingLanguage):统一建模语言,是OMG的一个建模标准;
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转换成代码模型。
起源
成立于1995年的元数据联盟 Meta Data Coalition(简称:MDC)组织是一个由50个厂商和最终用户组成的非赢利组织,包含CANCR、SAS、Microsoft等,致力于为元数据交换提供解决方案。
在1999年,元数据联盟开发了技术中立厂商无关的数据仓库标准——开放信息模型(OIM),并由微软公司提交。同时 OMG 组织在开发另一套技术中立厂商无关的通用公共仓库元模型(CWM)。在一段时间内,存在着两个标准。为了推动标准并使业界广泛认同,MDC 成员决定合并进 OMG,并由 OMG 发布同一套标准 CWM,MDC 不再研究自己独立的标准。同时 CWM 从 OIM 中借鉴和学习了很多设计,致力于解决数据仓库和商业智能的元数据问题。OMG 成立于1989年,其的目标是建立一种行业标准和对象管理规范来为实际软件开发提供一个通用的构架。OMG 在2000年采用了 CWM。旨在推动数据仓库、智能商务和知识管理方面元数据的共享和交换。和 OMG 合作提出 CWM 规范的公司有:IBM,UnisysNCR,HyperionSolutions,Oracle,UBSAG,GenesisDevelopment,DimensionEDI。还有一些公司明确表示支持CWM,包括:Deere&Company,SunHP,DataAccessTechnologies,InLineSoftware,Aonix,Hitachi,Ltd。
目标
CWM规范的最初目标是:使处于分布式、异构环境下的数据仓库元数据和商业智能元数据能方便地在不同的数据仓库工具、数据仓库平台和元数据仓库之间进行交换。CWM覆盖设计、建立和管理数据仓库应用的整个生命周期,并支持生命周期管理。CWM是迄今为止将MDA方法用于具体应用领域(数据仓库和商业智能领域)的最完美的例子。随着MDA方法论的不断完善和CWM规范的逐渐成熟,CWM的作用不再局限于数据仓库领域。CWM支持模型驱动的方法进行元数据交换,根据CWM元模型规范构造共享元数据的统一模型,这些统一模型是具体产品无关的,以XML文档的格式存储和交换【3】。
CWM主要的设计原则有以下几个方面:
 对UML中概念的重用:UML1.3是整个CWM的设计基础,CWM在任何可能的地方对UML中的概念进行重用,所有的CWM对象类型都直接或间接地继承于UML,因此也继承了它们的属性和方法。这样可以节省很多重复工作,并且使CWM更容易理解,所有熟悉UML的用户都可以有一个比较高的起点;
 模块化:CWM元模型被分成许多包,以便它们分别实现并减少复杂度。具体的组成结构见下;
 通用化:CWM元模型独立于任何具体的数据仓库工具,但同时,它尽量多地包含了基于特定工具实现的有代表性且通用的数据仓库特点。也就是说,只有那些多种工具共享的信息才会被CWM元模型包含进来。
组件
OMG组织不但发布了 CWM 规范,描述了一套完整的数据仓库元模型对象及对象定义,同时 OMG 组织还发布了与 CWM 紧密相关的其他四个组件,如图所示。四个组件分别为:
 CWMUML类图:CWM元模型用一套 UML 图来图形化的表示CWM元模型。
 CWMXML文件:用 XML 形式描述的 CWM,MOF1.3 版本兼容。
 CWMDTD:CWM 文档类型定义(DTD)用来对 CWM 文档进行有效性验证。
 CWMIDL:OMG 定义了一组接口定义语言(IDL)文件,读取元数据。
模型
CWM 完整地描述了数据仓库元数据交换的语法和语义以及用于异质平台之间的元数据交换机制。CWM 元模型由一些子元模型构成,这些子元模型在如下主要数据仓库构建方面描述出通用数据仓库的元数据:
【数据源方面】这些元模型能描述面向对象的、关系型的、记录型的、多维的和XML的源数据。在面向对象数据源方面,CWM依赖并重用UML的基础。
【数据分析方面】这些元模型能描述数据转换、联机处理分析(OLAP)、数据挖掘、结果信息可视 化等。
【数据仓库管理方面】这些元模型能描述数据仓库流程和操作结果。
CWM 元模型描述了数据仓库的组成元素,用户可以按照这些元模型开发相应的组件,比如 ETL、OLAP 和数据挖掘等。
为了降低复杂度和达到重用,按照上述参考方面,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规范了数据仓库系统内的所有数据源,并可以支持数据仓库的整个生命周期。CWM为整个数据仓库领域指明了发展的方向。然而,如果仅仅是某个领域的元模型,CWM还不足以作为MDA的核心构成部分之一。实际上,CWM对于整个MDA框架有重大的潜在价值,接下来将详细介绍CWM在数据仓库领域之外的作用。
首先,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变换。
参考信息
1 ObjectManagementGroup.CommonWarehouseMetamodel(CWM)SpecificationVersion1.0.2001
2 ObjectManagementGroup.MetaObjectFacility(MOF)SpecificationVersion1.4.2002
3 JavaCommunityProcess.JSR040JavaMetadataInterchange(JMI)SpecificationVersion1.0.2002
4 ObjectManagementGroup.XMLMetadataInterchange(XMI)SpecificationVersion2.0.2003
参考资料
公共仓库元模型.公共仓库元模型.
最新修订时间:2023-10-25 21:21
目录
概述
简介
参考资料