把软件架构演进体现在栈上

日期:2016-7-11作者:Tom Nolle翻译:boix 来源:TechTarget中国 英文

【TechTarget中国原创】

曾几何时,企业架构师要为了得到承认和支持而抗争,但这种时候正在过去。大多数企业现在已经意识到实现业务流程中敏捷性和效率需要业务目标、人力资源以及信息技术的结合。

EA的角色已经拓展,从关注于将业务流程映射为抽象转到映射为工作、工作流以及工作者的生产力。重要的一步是将软件架构设计引入EA里面,为了做到这一点,需要意识到软件架构演进的关键要素是工作流概念的转移,然后在EA规划当中进入事件驱动的概念,再按照领域将事件映射为IT服务,并将IT服务映射为软件架构、实践以及产品。

在典型的EA方法论中,架构师聚焦业务流程为建模的最后时刻。这种办法跟面向服务架构、服务总线以及工作流处理可以很好地对应,后者直到最近都还是软件架构设计的中流砥柱。但互联网和云计算的引入侵蚀了IT对“工作流”愿景的支持。今天,优选的方案是把软件考虑成一组临时搭配的微服务组合,这样可以服务于每一个员工的产品需求。在这种软件模型下,软件激活的驱动力不是线性流,而是事件。

尽管“业务流程”就是“业务流程流”的概念与事件结构或者说微服务架构存在脱节似乎十分明显,但却没有充分反映到大多数的企业架构方法论上面。EA的业务流程输出往往是前置到业务流程流里面,在把EA需求转化为IT需求时往往倾向于工作流思维。事后再把对基于云和微服务的现代软件架构演进和设计方案的理解放到今天的EA方法论里面不是不可能,但很难以一种一致且有组织的方式来做到。要做到这一点,开发者需要拒绝把业务流程视为EA的最后一环的观念,相反要聚焦到业务事件上面。

理解业务事件

在逻辑上企业已经是事务驱动的了,这意味着它们要对外部事情,如下订单来做出响应,然后产生其他东西来驱动合作伙伴活动,如下达发货通知等。这些都是业务事件,也是一切业务活动的常见驱动,从这些来看,它们是EA的一个合理的关注点。但是今天的EA更多的是描述流程而不是事件,而这种流程描述会把EA跟可能已经过时的软件架构设计绑定到一起。

业务事件是企业的驱动力或者是一个企业对另一个企业的输出,对它的描述要依据它在业务上代表着什么而不是用它来做什么来定义。它是事件树的起点而不是转发流。每一个事件或者事务都会催生出一系列必要的内部事件和事务。比方说订单可能会缠身“存货检查”事件和“信用检查”事件。这些都可以表示为初始事件的分支,跟往往描述事情顺序的传统EA流不一样的是,事件树仅聚焦于关键关系上。

可视化为事件树“森林”的业务能够为软件架构设计提供有用的洞察。比方说,许多主要事件都会自然而然地滋生出一批相关的二级事件—信用检查、客户订单管理甚至CRM这些都是相关的二级事件。这些关联事件在业务功能的层面上组成了领域,反过来也会成为固化的企业架构与软件架构的连接点。事件驱动EA把架构从对工作流的依赖中解放了出来,而领域则在独立事件分析和软件方案之间建立了连接。

区分领域责任

大多数领域相关的EA讨论聚焦在不同类型的领域上—比方说,安全、信息、IT基础设施以及网络等,许多组织在IT侧也都有这些领域的体现。这意味着把EA跟软件架构绑定是功能性和架构性IT域的联合。功能性领域专家应该放到EA组织内,从属于总体EA,而架构性领域专家则应该是IT组织本身的一部分。

功能性领域需求之汇总应该形成对软件架构设计的泛化模型的要求,然后提供给结构性领域专家选择。大多数情况下都会选出一个泛化的架构给软件,其中包括一些调优以及每一个功能领域的功能相关的映射。这意味着软件架构设计可以形象地看作是“两种类型的领域”的集体回忆来商定总体框架,然后再由每一位功能领域专家和结构领域专家开会确定设计。在经过最后的团队评审之后,领域映射的最后一步就是转化为软件设计和技术选择。

挑选你的流程

这一方案可以用各种办法实现当前IT模型的演进。方法之一是让领域专家检查传统IT方案与新策略的差异来对过程提供指导。由于你原来的EA各种可能是以业务流程为终结的,所以那些流程可以被视为功能性领域,而架构性领域专家然后就可以根据每一个功能性领域的新方案来调整步骤。这种做法适合于较早建立的事件树在EA模型旧的业务流程终结点之间存在最少的交叉时使用。

如果新的EA模型会将IT变革为一组广泛分布的服务时,最好的办法是看看每一个旧的业务流程,从中找出哪个映射到新的事件树最容易。也就是说要找到包含一组事件单集的流程。这些流程可以转化为事件驱动模型,所得结果将会用来做出可用于选择后续EA业务流程目标的服务的详细清单。

这种软件架构演进最关键的一点是不要掉进过去的陷阱里面。EA软件架构设计的影响极其重大,因为它改变了员工可以利用的工具。事件和服务驱动方案的灵活性依赖于对当前的IT流程解耦,而不是不经意间延续下去。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Tom Nolle
Tom Nolle

关于作者:Tom Nolle是CIMI公司的总裁,这家公司成立于1982年,是致力于电信和数据通信的战略顾问公司。Tom Nolle是IEEE、ACM、Telemanagement Forum和IPsphere Forum的一员,著作有关于Netwatcher方面的书籍。

SOA性能>更多

  • 案例管理如何强化SOA环境

    保持SOA环境平滑运行牵涉到大量移动部件的管理:API、微服务、移动性以及日益火爆的物联网。在这基础上,还会涉及安全、隐私、监管合规性等问题。

  • 把软件架构演进体现在栈上

    曾几何时,企业架构师要为了得到承认和支持而抗争,但这种时候正在过去。大多数企业现在已经意识到实现业务流程中敏捷性和效率需要业务目标、人力资源以及信息技术的结合。

  • SOA治理模型核心:人

    治理在IT领域非常关键,但是很多时候企业的做法往往太过单向,企业SOA治理模型往往忽视了所有部分当中最关键的组件:人。

  • 架构安全模型开发方式探索

    维护一个强大的安全模型,以及相关合规和管控的需求越来越重要,特别是在如今黑客和入侵几乎每天都会发生的情况下。

相关推荐

  • 架构安全模型开发方式探索

    维护一个强大的安全模型,以及相关合规和管控的需求越来越重要,特别是在如今黑客和入侵几乎每天都会发生的情况下。

  • 你了解应用集成架构吗?

    业务流程越来越多得要求在很多任务,甚至很多应用之间共享更多的信息。应用集成架构是一种IT流程,确保数据或者某个功能能够从一个应用移动到另一个应用。

  • 选择遗留资产现代化供应商应该考虑哪些因素

    遗留资产现代化并非一件容易的事情,这就是为什么在某些情况下,组织也许会选择第三方服务供应商的原因。

  • 领域驱动设计实现之路

    在DDD中,代码就是设计本身,你不再需要那些繁文缛节的并且永远也无法得到实时更新的设计文档。编码者与领域专家再也不需要翻译才能理解对方所表达的意思。

技术手册>更多

  • HTML5现状分析指南

    HTML 5是超文本标记语言(HTML)的下一个修订版 ,超文本标记语言是用来描述网页内容和外观的标准编程语言。HTML5是近十年来Web标准最巨大的飞跃。和以前的版本不同,HTML 5并非仅仅用来表示Web内容,它的使命是将Web带入一个成熟的应用平台,在这个平台上,视频、音频、图象、动画以及同电脑的交互都被标准化。尽管HTML 5的实现还有很长的路要走,但HTML 5正在改变Web。下面我们将分三部分来分析一下HTML5。

  • SOA测试全面指导

    在SOA环境中,测试团队超越了传统的以应用程序为中心的功能和性能测试。SOA需要整合地测试界面和服务,这些界面和服务有助于组合利用不同的系统、平台以及相关安全标准。要测试这些应用程序时,就提出了独特挑战。那么如何应对这些挑战呢?下面我们来具体看一下。

  • 企业敏捷开发实践

    敏捷却是一把双刃剑,这一方法并不是适合所有人,当然也不会适合所有的项目。敏捷要求有合适的团队,合适的业务经理理念,当然也要有适合的项目。没有一种方法是适合一切的,所以本文讲了六种方法来确定你的云项目是否已经足够敏捷性,或者确定你的组织是否足够敏捷。

  • 解围应用集成困境指南

    集成是个很老的话题,很多时候在谈及新技术的时候,我们会避而不谈,但集成问题却一直贯穿在企业之中。应用集成就是建立一个统一的综合应用,也即将截然不同的、基于各种不同平台、用不同方案建立的应用软件和系统有机地集成到一个无缝的、并列的、易于访问的单一系统中,并使它们就像一个整体一样,进行业务处理和信息共享。要实现这样的效果并不简单,在这本手册中,我们会为您拨开一些迷雾,更好的解决应用集成所面临的问题。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算