企业架构到底是什么?

开发 后端
Jason Bloomberg最近在博客中问道:“为什么没有人做企业架构(Enterprise Architecture)呢?”他说:

Jason Bloomberg最近在博客中问道:“为什么没有人做企业架构(Enterprise Architecture)呢?”他说:

解决方案架构师应该在实施解决方案之前完成解决方案的架构设计。Java架构师和.NET架构师做得事情应该先于编程人员。你不能先实施架构再设计架构,只能先设计再实施……可是,企业架构(Enterprise Architecture)却往往从现有企业开始……当今企业架构师的角色主要面对当前企业,修补其中的问题。好吧,也许不全是这样,但却要做某种程度的改进。将企业架构从当前的“糟糕的”状态扭转到“***的”状态,在这一状态下事情会变得更好。

Bloomberg认为,虽然解决现有企业的问题既重要又高尚,但是这并非企业架构的工作:

架构不是解决问题,而是为设计活动建立一套***实践。

所以,在他看来,没有人在真正地做企业做架构。企业在不断成长,

每个企业家都知道这个基本道理。当企业***坐下来,为新的商业投资制定方案时,如果组织(organization)大到可堪称企业(enterprise),他们也许永远也不敢对它做全面的架构设计,因为这里面有太多未知的东西。相反,他们却喜欢建立一个不断成长的框架。播散种子,为之浇灌、除草及施肥。如果运气好的话,沿着这条路走下去,也许能收获一个不错的、健康的、不断发展的企业架构。但是最终的架构看上去可能与最初设想的样子相去甚远。

Bloomberg继续说到,这与企业架构(Enterprise Architecture)的概念有很大差异,企业架构要定义并建立一组***实践,通过它们去实现企业预期的最终目标。问题是:

发展企业……意味着它会像任何生物体的生长一样,没有确定的最终状态。一粒橡果最终将会长成橡树是确定的,但是这棵橡树到底长成什么样子,确实无法计划的。相反,橡果的DNA决定了会长出橡树这一基本属性,但是其他的东西就取决于后天的变化了。这类变化确定了复杂系统的特征:系统具有各种变化的属性,但这些属性综合起来却不同于任何部分的属性。就像生物界的机体依赖于变化一样,企业的发展同样依赖它。

Bloomberg认为,改变企业架构的目标是没有意义的,相反应该引入一些新原则:

也许,应该为架构的变化确定***实践了。毕竟,如果我们可以对传统系统做架构,为何不能对复杂系统做呢?……我们到底能否找到实际做企业架构的方法?毕竟,企业架构需要的是复杂的、系统的方法。***,还得看“能不能那样做企业架构(Enterprise Architecture)”。

JP Morgenthal在这篇帖子的评论中说道,问题不在于企业架构的原则,而在于企业架构(Enterprise Architecture)这个词本身:

……企业架构这个词如果换成多维度架构(multi-dimension architecture)可能更好。后者更好地抓住了该活动的本质,而且没有将它限定在某个特定的范围内——范围视任务的大小而定。我一贯认为业务与多维度架构保持着紧密联系。人们设计的解决方案包括业务流程、工作流、应用、用户体验、网络连通、灾备/恢复等;但是,思考系统的任何一个部分可能对其他部分造成的影响时,还有哪些东西呢?对我而言,这才是最初创造企业架构(Enterprise Architecture)这个差劲词汇的本意所在。

我们是可以评论企业架构这个词是好或是坏,但是,而现在当人们已经接受了这个叫法的时候去改它,显然不是一个好建议。其结果只能是带来更多的迷惑和论战。根据IEEE标准1471-2000对于软件密集型的系统架构的描述,IEEE建议:

架构是对系统、系统的内部组件、组件之间的关系、与外部环境间的关系、指导其设计和发展的原则等方面的基本组织。

此定义丝毫没有谈到最终状态——它所关心的是人们改进和发展系统时所遵循的原则,这与Bloomberg和Morgenthal所提出的定义非常相近。不过,根据该定义,为了使企业符合合适的架构原则,而对他尽心修补和改进即是架构。

【编辑推荐】

  1. 老程序员10年技术生涯的思考 从C++到Java
  2. 程序员如何在"小公司成长"和"大公司学习"
  3. 程序员工资禁忌 你可知道?
  4. 一个10年程序员职业发展、总结和困境
  5. 告别程序员生涯,一点感慨
责任编辑:金贺 来源: 博客园
相关推荐

2020-10-14 06:22:14

UWB技术感知

2020-09-27 06:53:57

MavenCDNwrapper

2010-11-01 01:25:36

Windows NT

2020-09-22 08:22:28

快充

2013-06-09 09:47:31

.NetPDBPDB文件

2019-10-30 10:13:15

区块链技术支付宝

2021-09-03 09:12:09

Linux中断软件

2020-08-04 14:20:20

数据湖Hadoop数据仓库

2010-04-22 14:14:29

Live-USB

2021-01-21 21:24:34

DevOps开发工具

2021-07-07 05:07:15

JDKIterator迭代器

2021-09-01 23:29:37

Golang语言gRPC

2023-07-12 15:32:49

人工智能AI

2021-02-05 10:03:31

区块链技术智能

2024-02-04 00:01:00

云原生技术容器

2022-10-08 00:00:00

Spring数据库项目

2020-03-05 10:28:19

MySQLMRR磁盘读

2009-06-09 22:11:44

JavaScriptObject

2023-03-26 12:27:30

2021-05-18 19:18:50

前端工程化工程
点赞
收藏

51CTO技术栈公众号