![]() |
| |||||||||||||||
| ||||||||||||||||
|
| 企业数据架构建模 | ||||||
这篇文章描述了一种基于统一建模语言(Unified Modeling Language,UML)的新方法,作者相信该方法可以达到企业数据架构建模的真正要求。 不同于书本和培训课程中所提的单例模式,真正的企业具有非常复杂的数据架构。大多数数据将会存于大型遗留或包系统中,数据结构的细节对于这些系统来说可能是不可见的。其他数据将存于电子表格和个人数据库(例如 Microsoft Access)中,且可能对于 IT 部门或高级业务数据管理员来说是不可见的。一些关键数据可能存于由服务供应商或业务合作伙伴维系的外部系统中。随着您对复杂数据架构的探究,就会逐渐接受两个现实:
这些条件有几个重要的结果。例如,当计划,如客户关系管理(Customer Relationship Management,CRM)和业务智能(Business Intelligence)需要通过各种各样的来源来合并数据时,差的副本也许会使得业务或技术问题恶化。一些组织在端到端流程中利用各种遗留系统。业务或 IT 都可能会进行改变以简化业务流程,流水化数据流并减少复制。尽管建模为解决这些难题带来好处,但是传统的建模方法不能解决这些难题。它们会建立要么过于详细以至于无法使用的模型,要么建立不够详细的模型,并且他们没有着重于企业数据架构和各种组件整合的难题。 我们相信用企业级观点来创建强有力的、简单并有效的数据结构模型是很重要的 —— 一组被称为“企业数据架构”的模型。本文描述了一种新的基于统一建模语言(UML)的方法,我们相信该方法可以满足企业数据架构建模的真正需求。 注意:该方法后面的一些步骤介绍了可能在开始时有些难懂的技术。不要担心!您不必每次都使用所有的技术,早些的步骤用其方式提供好处。最重要的是开发帮助解决您问题的模型。 数据架构是什么?
在介绍数据架构的含义之前,先考虑一下它不是什么是很有帮助的。如图 2 所示,数据架构不是一组单个系统的详细模型,因为它们不能传送用来满足以上需求的所需要的“大图片”信息。而且它不仅仅是业务流程和系统范围的顶级模型,因为它们没有包含足够的细节以回答实际的问题。 图 2 是“数据架构图”,它说明了范围和数据架构环境。企业的主要数据领域映射到其中一个轴,各种类型的模型映射到另一个轴,范围从高度着重业务的模型到详细的系统架构。完整的数据架构的范围呈现为跨图表中央的带状。
组成数据架构的模型将在下面的部分进行更加详细的介绍。水平分组是按照企业到企业区分的,上面的那些代表典型的集合。在右侧边缘的带不是“图”的部分,但显示了模型如何映射到标准的基于 UML 方法(如 Rational Unified Process, 或 RUP)的三级透视图上。 除了利用该模型来阐述数据架构工作的范围,您还可以利用它来建立知识的当前状态和正在进行或计划着的活动的范围的映象。简单地在适当的交点绘制现有的或计划着的建模工作。您还可以通过颜色来指示模型的状态或有效性,这是很有用的。 数据架构图描述了“什么”组成了数据架构。支持它的数据策略和计划阐述了“为什么。”单个的模型说明数据是什么、在哪里,以及什么时候由谁如何改变的。 哪些模型构成了数据架构? 高级数据模型
因为这些是数据模型,所以它们不会包含类方法,尽管若业务对象有责任管理其他结构的话,对这些方法进行概括是适合的。 模型应包含所有业务意义的属性和定义数据结构的内容(例如,控制多样性业务规则的输入)。 设想一个假设的汽车租赁公司。图 3 显示了实例 HLDM 的部分内容,说明了业务实体“vehicle”如何拥有两个变量 —— car 和 van,以及任意一个车辆(vehicle)怎样隶属于一个或多个租赁业务(rental)。
出于本文的原因,我们的实例非常地简化,但这些实例仍旧可以说明那些技术如何能够应用于带有真实世界复杂度的实例中。而且我们还在命名类及属性方面放松 UML 的约定,以使其更具可读性 —— 例如,“Registration Mark”包含一个空格。 实现概述 此处的关键是着重于“可见的”系统的数据结构 —— 例如,由用户接口暴露出的数据结构、报告及数据接口。这也许和物理的数据结构不同,但不重要。高度可定制的包可能内含复杂的元模型,但所关心的内容是依照业务的系统实例化。出于历史原因,旧的遗留系统也许会具有不可思议的物理结构,而且外部服务的实现细节可能会完全地隐藏在接口后面,但在这两种情况下,您的关注点将会在可视化结构上 —— 逻辑系统实体和他们的属性。 图 4 显示了简单汽车租赁 HLDM 是如何由三个系统进行实现的:CarFleet(内部队伍管理系统)、 VanCare(用于支持篷车队外包维护的外部系统)和 RentalSystem(主要的租赁控制系统)。
对于本模型,UML 实现关系是关键。颜色和物理布局可以带来好的效果和一致的命名方案,如这个显示出的图应该能标识出逻辑系统实体及其宿主系统。 在概念上的实体的和真实的实体的结构或含义有所不同的地方,当可以直接将关系进行映射(如图 4 所示)之前,一般化和聚集关系是用来分解类结构的。甚至当 HLDM 作为元模型并且实现模型是具体的时候该方法也可以使用,反之亦然。 来源及使用者模型 除了关注点在识别角色、起源及每个数据项的发展上意外,模型类似于实现概述,利用下面的构造型:
在需要对不同属性用不同方式进行处理的地方(例如,一个实现对类的一些属性是原版的,另一个类对其他属性是原版的),高级数据模型应通过两个或多个分离的类对那些属性进行建模。来源及使用者模型(图 5)能够清楚地说明不同的责任及他们的来源。
迁移及转换模型
如果这看起来有一点复杂,那么记得无需一直使用该技术,如果您喜欢,可以使用简单的文本注释而不用 OCL。 扩充我们的汽车租赁实例,假设我们想通过 EAI 来保持 RentalSystem 中列出的 Hire Unit 保持最新,提取、合并,并转换两个源列表。图 6 中的“将来”的模型描述了物理接口和转换规则,包括 EAI 消息中数据的正则结构。
CarFleet 有一个由两个主要表格组成的基于数据的接口,Vancare 有一个程序化的接口(例如,对象模型或 Web 服务),Rental System 也一样,包含一个接收更新的 公共标准
元模型
使用并开发数据架构 虽然我们对数据架构的阐述是按照“自顶向下”的,但是数据架构通常按照“由中间开始”进行开发,从特定系统接口的数据需求和合理化实行开始,并不按照严格的自顶向下的流程和信息需求分析。这种方式允许数据架构开发以满足不带有难于管理的依赖性的具体的战术战略需求,并向基于分离的自顶向下和自底向上建模运行的数据分析提供交叉校验。 数据架构业务对整个企业从来不是“完整的”。虽然如此,它提供了一种一致的方法和用于建模活动的环境。然而,随着数据架构的成熟化,采取一些工作来“填补空白”是适合的。 模型,尤其是来源及使用者模型,将通过确定目标数据是否包含于单个系统,由良好定义的接口和流程进行维护,或在一些(潜在地不一致的)源中间进行扩展,来支持目标业务流程的验证。1 改进数据架构:数据策略
您还需要帮助改进并编制业务流程以改进数据管理。 数据策略需要建立在清晰的意见一致的原则之上,例如以下部分:
结束语 参考资料 使用 UML 进行企业建模是一个新兴领域。此处描述的技术是很新的,这是首次对它们进行公开介绍。然而,我们发现以下内容是关于在架构或业务级使用 UML 建模的问题的有用的介绍,包括: Hans-Erik Eriksson 和 Magnus Penker, Business Modeling with UML: Business Patterns at Work。 Wiley, 2000 年。 Chris Marshall, Enterprise Modeling with UML: Designing Successful Software Through Business Analysis。 Addison Wesley, 2000 年。 Paul Allen,Realizing e-Business with Components。 Addison Wesley, 2001 年。 注释
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|