【华为数据之道学习笔记】4-3信息架构建设核心要素:基于业务对象进行设计和落地

news2024/9/20 16:39:11

4.3.1 按业务对象进行架构设计

        业务对象是指业务领域中重要的人、事、物对象。业务对象承载了业务运作和管理涉及的重要信息,是信息架构中最重要的管理要素。
        业务对象同时还是业务和IT的关键连接点,也是实现IA(信息架构)、BA(业务架构)、AA(应用架构)、TA(技术架构)集成的关键要素。
        以一个简化的交易场景为例,要完成一个交易,实现商业价值的兑现,企业内的某个子公司,需要与法人客户签订客户合同,在客户合同中,要明确交易的产品。在这个场景中,子公司、法人客户、客户合同、产品是企业需要管理和控制的核心对象,要作为业务对象进行管理。
        在进行信息架构设计时,架构师、业务代表、数据Owner通常会对业务对象的判定存在理解上的偏差,从而产生争议。数据治理部门需要制定一套确定性的规则,通过确定性的规则促进形成稳定的架构。
        华为通过以下四条原则来判定业务对象。
原则一:业务对象是指企业运作和管理中不可缺少的重要人、事、物
        企业在设计业务对象时,围绕支持企业运作和管理的重要的人、事、物去识别。通常,一个业务对象会有相应的管理流程、管理组织,以及支持运作的IT系统。比如“客户”这个对象,企业通常会建立类似客户管理部这样的组织,会采购或者开发CRM客户管理系统来支撑客户管理,会建立客户信息管理的一系列流程和规范来确保客户信
息的准确、合理、合规。为了避免管理上的冲突,业务对象通常在企业内只能有一个唯一的数据Owner,由数据Owner制定相关的架构、标准和管理规则,用于监控和提升数据质量。
原则二:业务对象有唯一身份标识信息
        企业要对业务对象进行管理,需要对所有业务对象的实例进行编码,确保每个对象的实例在企业范围内都有唯一的标识。比如员工,企业需要为每个员工分配一个唯一的工号,如果工号出现重复,则可能引起管理上的混乱,比如工资错发,任务指令接收不到等。又比如产品,企业需要给每一种产品分配精确的分类编号,确保在研发组织
内部、制造工厂、物流运输、销售回款各个部门和阶段,相同的产品使用唯一相同的编号,不同的产品绝不出现相同编号。企业的研发、生产、销售、核算各环节均采用产品的唯一编码进行标识和处理。
原则三:业务对象相对独立并有属性描述
        业务对象需要通过大量属性来描述其各个方面的性质和特征,因此属性必定依附于某个业务对象而不可独立存在。比如“名称”是个属性,单纯地记录“名称”这个属性,无任何业务含义,因为“客户”有“名称”属性,“供应商”也有“名称”属性,“员工”也有“名称”属性。业务对象可以独立地存储、传输、使用,业务对象之间可以有关联、依赖关系,但不应有包含或从属关系。
        以“销售订单”为例,“销售订单”通常包含两个方面的信息。一方面是销售订单中所销售产品的公共信息,比如归属的订单编号、订单名称、订单总价等,这类信息集中起来形成一个叫“订单头”的逻辑数据实体。另一方面是销售订单中某个产品的个性化信息,一个销售订单通常会销售多种产品,每种产品的价格和数量可能不一样,这些信息需要用另一个逻辑数据实体来记录,并用一个“订单编码”属性来表示这些明细的销售产品归属于该销售订单里,同时不同产品按不同“订单行号”展示。而“订单行号”是无法独立存在的,企业能够确保所有“订单编码”不会重复,但无法确保所有“订单行号”不会重复,并且这也没有必要,因为任何订单行都是隶属于某个订单的。因此从这个例子可以看出,订单行是无法作为一个独立的业务对象而存在的,必须归属于“销售订单”这个业务对象。
原则四:业务对象可实例化
        在现实世界中,业务对象有大量的实例存在,并可感知、可获取。以员工为例,就算是规模很小的企业,通常至少会有经理、业务员、会计等不同岗位的人员,每个员工的信息都可以视为一个实例;而“员工入职类型”是对员工入职信息的一种分类,其本身是无法实例化的,因此“员工入职类型”这一基础数据应从属于员工业务对象
下,而不能独立存在,员工业务对象Owner也应该同时负责“员工入职类型”数据的生命周期管理。

4.3.2 按业务对象进行架构落地

        信息架构向IT侧落地的主要交付件是数据模型。数据模型本身有相对比较成熟的方法体系支撑,不同企业之间可能名称存在差异,但本质差别不大。华为公司将数据模型分为三层: 概念数据模型、逻辑 数据模型、物理数据模型
  • 概念数据模型是通过业务对象及业务对象之间的关系,从宏观角 度分析和设计的企业核心数据结构。
  • 逻辑数据模型是利用逻辑数据实体及实体之间的关系,准确描述业务规则的逻辑实体关系。
  • 物理数据模型是按照一定规则和方法,将逻辑数据模型中定义的逻辑数据实体、属性、属性约束、关系等内容,如实转换为数据库软件能识别的物理数据实体关系。
        为了确保架构在落地过程中“不走形”,要控制好两个关键点:
  • 一个是概念模型与逻辑模型的一致性,主要通过逻辑数据实体的设计管理来实现;
  • 另一个是逻辑模型与物理模型的一致性,主要通过一体化建模管理来实现。
1. 逻辑数据实体设计
        逻辑数据实体本质上是对描述业务对象的众多属性的归类,业务对象无法直接指导IT系统的物理实现,也无法基于业务对象来审视物理设计是否满足业务需求,因此需要通过逻辑数据实体及相应的逻辑数据模型来指导IT系统层面的数据设计。在设计逻辑数据实体时,可参考如下几条主要规则。
        1)逻辑数据实体不能脱离业务对象独立存在,因此某个逻辑数据实体一定是用来描述一个特定的业务对象的,业务对象与逻辑数据实体的关系是一对一或一对多,不允许多对一的情况出现。
        2)描述业务对象不同业务特征的密切相关的一组属性集合,可以设计为一个逻辑数据实体。
        3)逻辑数据实体设计要遵循第三范式。在设计一个业务对象的逻辑数据实体时,每个逻辑数据实体的属性不要重复定义,不应包含其他逻辑数据实体中的非关键字类型的属性。
        4)提供数据服务或跨业务领域使用的基础数据,要单独设计逻辑数据实体。描述业务对象的若干属性,如果能够组合起来形成独特价值的数据服务,满足下游的数据消费需求,可以设计成一个逻辑数据实体。
        5)两个业务对象间的关系也可以设计成关系型逻辑数据实体,在数据资产目录中,可按业务发生的时间先后顺序,归属于后出现的业务对象。
2. 一体化建模管理
        华为公司过去长期存在信息架构与IT开发实施“两张皮”的现象,数据人员和IT开发实施人员缺乏统一和协同,数据架构遵从无法进行实质、有效管理,信息架构资产和产品实现的物理表割裂、不匹配,同时各种数据模型资产缺失。
        针对应用系统设计应遵从信息架构设计的政策要求,在相关项目、产品的流程中,缺乏显性化的且有实操指导的角色和活动。信息架构设计大多集中在变革项目层的设计输出和领域层的例行刷新,未与系统落地有效拉通。IT产品聚焦在版本交付,产品级的数据模型与数据字典缺少有效看护和及时维护。
        为了解决这个问题,华为推行了一体化模型设计(如图所示),不仅在工具上实现了一体化设计和开发,而且在机制上形成了信息架构设计与IT开发实施的有效协同。通过一体化设计不仅确保了元数据验证、发布和注册的一致性,而且实现了产品数据模型管理和资产可视。同时,由于促成了产品元数据的持续运营,进而能够持续对物理模型进行规范,如整改、清理各类作废表等。
        基于良好的一体化建模架构,不仅可以打通设计和物理实现,而且能够对设计、发布、管理运营等完整生命周期进行融合管理,包括:
  • 产品逻辑模型和物理模型一体化设计,元数据管理和数据模型管理融合;
  • 构建数据标准池,实体属性只能从数据标准池选择;
  • 产品元数据和数据库自动比对和验证;
  • 产品元数据发布认证和信息资产打通;
  • 基于交易侧产品元数据自助入湖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1308554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ IDEA 自带HTTP Client接口插件上传文件示例

如何使用IntelliJ IDEA自带的HTTP Client接口插件进行文件上传的示例。在这个示例中,我们将关注Controller代码、HTTP请求文件(xxx.http),以及文件的上传和处理。 Controller代码 首先,让我们看一下处理文件上传的Co…

持续集成交付CICD:Jenkins使用GitLab共享库实现自动上传前后端项目Nexus制品

目录 一、实验 1.GitLab本地导入前后端项目 2.Jenkins新建前后端项目流水线 3.Sonarqube录入质量阈与质量配置 4.修改GitLab共享库代码 5.Jenkins手动构建前后端项目流水线 6.Nexus查看制品上传情况 7.优化代码获取RELEASE分支 8.优化Jenkins流水线项目名称 一、实验 …

SpringBoot对PDF进行模板内容填充、电子签名合并

1. 依赖引入–这里只包含额外引入的包 原有项目包不含括在内 <!-- pdf编辑相关--> <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version> </dependency><de…

【ARM Trace32(劳特巴赫) 使用介绍 6 -- 通用寄存器查看与修改】

请阅读【Trace32 ARM 专栏导读】 文章目录 通用寄存器查看与修改Rester 命令语法Register.InitRegister.RELOAD高亮显示Register变化的值多核寄存器显示设置寄存器的值修改 通用寄存器查看与修改 在使用Trace32进行调试时&#xff0c;有时候需要查看并修改通用寄存器、PC指针、…

拼接不同文件夹中同名图片的方法

有时候为了方便对比不同文件夹中同名图片&#xff0c;需要拼接在一起&#xff0c;这里提供一个拼接方法&#xff0c;当然不同命文件也可以实现拼接&#xff0c;稍微改改就能实现 如下图&#xff0c;在文件夹中有五个文件夹中的图片需要拼接&#xff0c;拼接后的图片存放在img_…

TSINGSEE青犀基于opencv的安全帽/反光衣/工作服AI检测算法自动识别及应用

安全帽/反光衣/工作服自动识别检测算法可以通过opencvyolo网络对现场画面中人员穿戴着装进行实时分析检测&#xff0c;判断人员是否穿着反光衣/安全帽。在应用场景中&#xff0c;安全帽/反光衣/工作服检测应用十分重要&#xff0c;通过对人员的规范着装进行实时监测与预警&…

diag_service的GLINK_IST是怎么来的

背景 平台&#xff1a;SA8155,QA 1.2.1 8155上集成了很多IP核&#xff0c;其中有不少的IP本质上是arm M核或者R核&#xff0c;这些模块在开发或者使用过程中也是需要监控和诊断的&#xff0c;但是他们并没有外部的调试接口&#xff0c;高通设计了整套诊断框架通过APSS&#x…

GBASE南大通用携手宇信科技打造“一表通”全链路解决方案

什么是“一表通”&#xff1f; “一表通”是国家金融监督管理总局为发挥统计监督效能、完善银行保险监管统计制度、推进监管数据标准化建设、打破数据壁垒&#xff0c;而制定的新型监管数据统计规范。相较于以往的报送接口&#xff0c;“一表通”提高了对报送时效性、校验准确性…

【Linux服务器Java环境搭建】09 在CentOS系统中安装和配置clickhouse数据库

一、安装环境 CentOS7 二、官网安装参考文档 官网安装参考文档 不同系统请参考如下建议 从RPM软件包安装&#xff1a; 建议在CentOS、RedHat和所有其他基于rpm的Linux发行版上使用官方预编译的rpm软件包从DEB软件包安装&#xff1a; 建议在Debian或Ubuntu上使用官方预编译…

深圳移动与大富科技助力深圳人工智能教育高质量发展

12月12日&#xff0c;中国移动通信集团广东有限公司深圳分公司(以下简称“深圳移动”) 与大富科技&#xff08;安徽&#xff09;股份有限公司&#xff08;以下简称“大富科技”&#xff09;在中国移动深圳信息大厦签署“战略合作框架协议”&#xff0c;共同推进人工智能教育、I…

物联网与低代码:构建智能化的连接世界

物联网&#xff08;IoT&#xff09;是指通过互联网将各种物理设备、传感器、车辆等连接起来&#xff0c;从而实现数据交互和智能化控制的技术领域。而低代码开发平台则是一种快速构建应用程序的方法&#xff0c;通过简化开发过程&#xff0c;使开发人员能够更迅速地实现创意和创…

数据结构学习 快速幂

看了这一篇很好的文章&#xff1a;快速幂&#xff0c;学习了一下快速幂。如果你看到这篇文章想要学习快速幂&#xff0c;我建议你直接去看这篇文章吧&#xff0c;下面的都是我个人的笔记和碎碎念。 重拾我的考研线性代数&#xff0c;非常有趣呢&#xff01; 基本的快速幂&…

Flutter之Android Studio No connected devices found

看图1. 是有显示有Redmi虚拟机的。 看图2. 没有Redmi虚拟机可选择&#xff0c;继续往下看解决方案。 看图3.点开项目结构设置SDK确定。 看图4.它来了

基于JavaWeb+SSM+Vue实习记录微信小程序系统的设计和实现

基于JavaWebSSMVue实习记录微信小程序系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 目 录 摘 要 III Abstract 1 1 系统概述 1 1.1 概述 2 1.2课题意义 3 1.3 主要内…

thinkphp 中 关联查询 like 查询失效

controller: public function goodsList(){if (request()->isGet()) {//表单验证//调用发布$where [];$goodname $this->request->param(goodname, );if(!empty($goodname)){$where[] [name,like,$goodname];}return $this->logic->goodsList($where, $this-…

【EXCEL】vlookup,index/match查找函数

区别&#xff1a; 1.Vlookup函数只能查找列数据&#xff0c;即纵向查找&#xff0c;而IndexMatch函数&#xff0c;既可以纵向查找&#xff0c;也可以横向查找&#xff1b; 2、Vlookup函数查找的依据(第一个参数)必须位于数据源的第一列&#xff0c;IndexMatch函数组合则无此限制…

​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)

​Linux Ubuntu环境下使用docker构建spark运行环境&#xff08;超级详细&#xff09; 这篇文章深入研究了在Linux Ubuntu环境下使用Docker构建Spark运行环境的详细步骤。首先&#xff0c;文章介绍了Spark的基本概念以及在大数据处理中的关键作用&#xff0c;为读者提供了对Spa…

设计模式——观察者模式(Observer Pattern)

概述 观察者模式是使用频率最高的设计模式之一&#xff0c;它用于建立一种对象与对象之间的依赖关系&#xff0c;一个对象发生改变时将自动通知其他对象&#xff0c;其他对象将相应作出反应。在观察者模式中&#xff0c;发生改变的对象称为观察目标&#xff0c;而被通知的对象称…

广西岑溪市火灾通报:1人死亡 AI科技助力预防悲剧

近日&#xff0c;广西岑溪市玉梧大道紫坭工业园一厂房发生一起令人心痛的火灾事件&#xff0c;造成1人不幸丧生。这起悲剧再次提醒我们&#xff0c;火灾的防范工作是多么的重要。在这样的背景下&#xff0c;我想分享一个能够有效预防类似悲剧的技术——北京富维图像公司开发的F…

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)

一、说明 AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命周期发生变化时触发相应回调的能力&#xff0c;包括onAbilityCreate、onWindowStageCreate、onWindowStageActive、onWindowStageInactive、onWindowStageDestroy、onAbilityDestroy、onAbilityFo…