信息系统架构

信息系统架构包括了对于应用架构和数据架构。这里不再介绍具体的方法论,而是考虑如何在设计信息系统架构时有效地避免复杂性。在应用系统层面将通过分层和配置的方式来简化应用系统,从而可以获得简单的架构。在数据架构层面将通过分层主数据的思想来考虑我们如何来管理主数据。

 应用架构

来看一个业务应用场景。企业从生产/采购计划开始,到生产/采购管理,以及现场制造的执行。可以将应用系统划分为两种模式,如图6所示:

图6 生产/采购应用系统划分

左:同一个系统,不同的模块;右:根据层次,分为两个系统

乍一看,好像统一的应用系统比较理想。但需要站在业务的角度重新思考:

1)计划和管理的紧急度和执行不同。有些企业的计划是月度或者周间计划,有些是每日的计划。但是生产执行的系统其要求的程度是分钟级别。

2)计算模式不同。生产/采购计划含有大量的批处理,主要利用的是计算处理能力。而生产/物流的执行涉及到大量的信息采集和信号控制,因此需要快速的交互能力。

3)对于不同响应级别的系统,其系统需要的高可用和运维级别差异较大。如生产/物流执行系统需要实时热备,而计划和管理对于一般制造业而言,具备小时级别的恢复能力就可以了。

而这里没有把计划和管理分开基于两个模块的交互信息多,而且其响应级别差异不大,因此将其放在同一系统中。在汽车行业内,计划/管理一般作为MRP系统,而执行一般作为MES系统。

谈完了系统的分层问题,下面再谈谈关于实现和配置的复杂性问题。图7是一个具体的例子,其中类型是应用的类型,实现指具体的系统实现,配置是指对应用系统配置完成具体的业务功能。图中上半部分指对于生产线的信息采集和发送类型的应用,经过多年的发展,形成了一个非常复杂的系统群。这导致了架构复杂,数据重复,管理运维困难,升级困难等问题。

图7 信息采集应用系统

而经过分析,发现这些应用系统的基本功能有许多共同之处,发现系统的类型可以归结为信息收集和发送。通过设定不同设备接口的配置,可以实现配置实现对生产现场的信息采集以及控制。因此简化后的应用系统如图7中的下图所示。造成这种复杂性的原因是系统在建设时缺少统一的规划,尤其是缺少未来系统增多时的灵活扩展的考虑。最终造成了出现了大量的烟囱。

 数据架构

在业务架构进行合理划分以及应用系统进行有效分层后,许多时候就将一些数据应该存在的范围定义下来了。但是企业内部存一些许多系统都会使用到的数据,这些数据称之为主数据。有的解决方案看起来很美,如下图:

图8 主数据的管理和使用

但是,对于许多企业而言,这种做法不见得是最有效的,有时可能就是一个灾难。而且由于涉及到数据的管理流程更多,主数据管理又需要独立的系统,因此有必要考虑一种简单的主数据管理方式。首先考虑HR系统,真的有必要把HR系统的主数据独立于HR的应用系统放在主数据系统中吗?同样对于生产的车型信息放在主数据中管理也带来了较大的复杂性。因为这些系统只提供数据,而且它们的变化速度很慢,外部的系统也不会修改他们的数据。他们只要定期将变化点发送到相关系统即可。因此借助ESB的概念,利用ESB来定期更新其他系统的数据即可,如图9所示。

图9 有效利用整合工具来管理主数据

此外的一种数据,比如对于银行或者汽车企业的顾客信息。由于其来源广,信息的真实性以及信息变化后的更新都有较高的要求,可以借鉴主数据管理的流程。但是需要说明的是,可以将同顾客信息紧密相连的应用进行改造,使得它们变成天然一体的应用系统。对于其他需要用到顾客信息的系统可以利用ESB获取顾客信息以及顾客信息的变化。

《理想的数据架构的研究和实现》给出的层次模型我比较认可,见图10。但对于主数据而言,其实现模型值得商榷。从业务架构、应用架构和数据架构综合考虑才能够确定是否需要集中的MDM。至少,对于许多已经具有许多系统的企业而言,根据业务和应用系统将主数据的管理分散在不同系统中是个明智的选择。当然也不能忘记,有些数据虽然不列为公司层次的主数据。但是它们在应用系统中仍然得到大量的使用,可以借鉴主数据的管理思路来有效地管理它们,实现在应用系统层面的集中管理。从而使得应用系统简单和高效。

图10 理想的数据架构

对于交易型系统而言,尽可能做到数据量最小化,这将使得交易系统的性能优良。此外,也使得运维便利。但是数据架构的这些内容最好最到对于用户透明,通过Portal可以让用户的体验就像在一个系统中一样。

浅析信息系统架构的应用架构与数据架构相关推荐

  1. 系统架构师(java)和大数据架构师

    架构师不是一个职业工种,而是一种能力,而且架构师也分很多种,不同领域的架构师是不一样的.比如互联网架构师和物联网架构师,没有什么可对比的. 架构要考虑什么 1.考虑系统能做什么,不能做什么,就是常说的 ...

  2. 阿里P8架构师谈:大数据架构设计(文章合集)

    架构师进阶有一块很重要的内容,就是需要掌握大数据的架构设计,主要涵括: MySQL等关系式数据库,需要掌握数据库的索引.慢SQL.以及长事务的优化等. 需要掌握非关系式数据库(NoSQL)的选型,以及 ...

  3. 【企业架构设计实战】大数据架构最佳实践

    目录 数据架构概述 什么是数据? 什么是数据架构

  4. 【企业架构设计实战】大数据架构设计

    目录 数据架构概述 什么是数据? 什么是数据架构

  5. 阿里前大数据架构师:如何快速的成长为一名优秀大数据架构师

    什么是大数据架构师: 围绕大数据系平台系统级的研发人员, 熟练Hadoop.Spark.Storm等主流大数据平台的核心框架.深入掌握如何编写MapReduce的作业及作业流的管理完成对数据的计算,并 ...

  6. 终于有人把数据架构讲明白了

    01 数据架构的起源 追根溯源是一个数据人的底层思维逻辑,因此,我们先说一说数据架构的起源(来源也行,一个意思). 其实,我们现在IT行业经常说的软件架构.系统架构.XX架构的核心思想都是从建筑行业学 ...

  7. 我们需要什么样的数据架构?

    作者 | Stephanie shen 编译 | 火火酱,责编丨Carol 出品 | AI科技大本营(ID:rgznai100) 在大数据和数据科学的新时代,对企业而言,一定要有与业务流程保持一致的中 ...

  8. 数据中台已成气候!大数据架构师如何站上风口?

    你被大数据杀过熟吗?当今企业对数据的重视度越来越高,在大数据系统架构设计层面,大数据架构师需要完成技术决策.技术选型,还需要根据不同时期的业务场景,不断优化和演进软件架构,最终攻克技术难点.化解技术风 ...

  9. 大数据架构+Lamba+Kappa+Unifield

    大数据架构+Lamba+Kappa+Unifield 前端+主数据服务(MDS)+后端 Tomcat  HBase ElasticSearch Pig Oozie Node.js JQuery 数据分 ...

  10. 常用的几种大数据架构剖析

    https://insights.thoughtworks.cn/common-big-data-infrastructure/ 数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的 ...

最新文章

  1. Android:JNI 与 NDK到底是什么
  2. 人工智能十年回顾:CNN、AlphaGo、GAN……它们曾这样改变世界
  3. c语言基础知识_结构体访问,共同体,枚举类型
  4. Redis 使用 Lua 脚本进行原子操作
  5. Java基础04 编译与反编译
  6. 方法:如何解决NetShareEnum返回ERROR_NO_UNICODE_TRANSLATION(1113)的问题
  7. 触发器及其应用实验报告总结_2020年中考总复习: 光现象、透镜及其应用知识点总结...
  8. zabbix 安装和基础监控
  9. 五子棋算杀c语言,什么是五子棋的做杀
  10. pic单片机c语言程序设计实例精粹 pdf,PIC单片机C语言程序设计.pdf
  11. linux如何查看python的版本_Python基础知识:如何检查 Python 版本
  12. “磁碟机”病毒肆虐 数万电脑中招
  13. HDS VSP G系列存储管理平台MPC安装
  14. 网友自制 MIUI 13 海报被疯传
  15. WINCC的SQL应用,无需修改任何源码
  16. 一个单点登录系统设计
  17. 《计算机基础知识》读后感300字,计算机应用基础读后感
  18. C#特性——Description
  19. 射频与麦克斯韦方程组
  20. 新版云盘网盘网站PHP源码+对接云存储/附教程

热门文章

  1. 计算机具有理性和逻辑思维吗,我们的理性和逻辑思维能力真的有那么重要吗?...
  2. 公司注册的种类及英文缩写
  3. 二叉树的几个基本性质
  4. C#支付宝当面付扫码支付开发,包括demo代码的修改和蚂蚁金服开发平台的配置
  5. char int word long的大小
  6. oracle批次处理数据_如何加速Oracle大批量数据处理
  7. 【详细】Oracle数据库安装教程--Oracle DataBase 19c
  8. python基础教程:face++与python实现人脸识别签到(考勤)功能
  9. 电脑无法连接WiFi,一直显示无法连接此网络
  10. 扇贝python课程打卡_坚持打卡1000天,谈谈我对扇贝单词的看法