`
alfred.w
  • 浏览: 91950 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

体系架构的生命期

阅读更多

体系架构的生命期:对业务的影响以及如何构建更持久的体系架构

作者 Sadek Drobi 译者 张兵 发布于 2008年10月6日 上午1时16分

社区
Architecture
主题
商业 ,
企业架构
标签
设计准则

什么是体系架构的生命期?应该考虑到何种程度?它对业务可能有何影响?为了回答这些问题,Dan Pritchett引入了“体系架构保质期” 的 概念,他将其定义为“开始设计新的系统时,一组模式和技术的适用期限”。他认为体系架构保质期能持续5年左右,经过两到三代以后,任何体系架构至少会有部 分的改变。否则,该体系架构就会很陈旧,而且在适应业务需求发展时会引起成本的增加。基于此,Pritchett认为“体系架构通常有10到15年的有效 期”。为了支持自己的论点,他给出了自1990年以来发生的技术、体系架构演进的一系列例证。

Pritchett主张,如果没有在体系架构生命期结束的时候更新体系架构,可能会对业务有重大的影响。但他也承认,改变主要的体系架构会导致可观的成本,尤其是“你在供应链里已经拥有了坚实的客户基础,以及超值的业务特性”。正如争论:是否应该避免架构重写? 中涉及的几个作者所强调的一样,改变甚至是破坏性的。不过Pritchett认为,不采用新的模式和技术会带来更大的成本。这些技术和模式通常有助于提高开发者的效率、降低部署的成本。拒绝利用这一潜在的竞争优势相当于让竞争对手占尽先机,对业务来说这可是致命的:

被忽略的是,新的模式和平台无论如何都能用来破坏你的业务。如果你拥有成功的业务,许多人也会想分一杯羹。技术就成了他们追赶你业务的工具。他们会以更低的成本或者更具竞争力的特性提供和你一样的服务,这引起的破坏可要远甚于内部体系架构改变所引起的破坏。

在他第一篇文章的续作中,Pritchett提出随着新模式和技术的涌现,主要体系架构改变的必然性上存在一些细微的差别。他曾经讲过,体系架构的 生命期依赖于其轻松扩展以适应演进业务需求的能力,他将这一点转换为技术术语,解释为“随着不断风行的新技术而被更新”的能力。“遵循优良构件设计的标准 体系架构原则,保持组件间最大限度的松耦合度”能强化这一能力,使得这些构件可以相互独立地实现和演进。基于识别的一些常见错误,Pritchett提取 出了一 些要构建更持久的体系架构可采纳的原则

1. 接口协议和实现策略之间的解耦。这将增加“构件在可选实现技术之间移植的灵活性”。Pritchett建议,构件之间定义像XML或JSON之类的、基于文本的接口可以达到这个目的。

2. 注重关注点分离,即使两个关注点的初始大小差别很大。这可以避免如下情形:为现有构件增加一个新特性,随着该新特性逐渐发展,你最终等于把两个组件实现成一个严重耦合、相互纠缠、难于解耦的组件,特别是当“解耦后无法保持客户已经习惯的旧有行为”,更加难以解耦。

3. 避免无意识的供应商依赖,这种依赖需要深入理解供应商的产品、它们对体系架构及其含义的影响。

4. 最小化持久化绑定,避免数据库依赖。对实体的关键访问路径应该仅通过主键,其它访问路径则应该在资源层进行分离,以便将来在其它形式的持久化中能处理这些可选路径。

遵循以上尽可能降低耦合度的规则可以让我们构建灵活的体系架构,这样的体系架构更容易与新技术和新模式集成,从而降低改变的成本、延长体系架构的生命期。

分享到:
评论

相关推荐

    Net Remoting体系架构

    以下是对.NET Remoting体系架构的详细说明: 1. **Remoting边界**:Remoting边界是指.NET Remoting中的进程和应用程序域的分隔。在Windows操作系统中,每个应用程序通常运行在一个独立的进程内,而.NET Framework...

    IT系统架构师知识体系课件_ITIL之家(www.itilzj.com)_share.pptx

    IT 系统架构师知识体系课件 IT 系统架构是指整个软件系统的结构和组织方式,包括软件组件、外部可见特性和元素之间的...系统架构师需要了解项目生命期和软件生命周期模型,以便更好地理解和掌握系统架构的设计和实现。

    基于架构的软件设计方法

    在一个软件项目设计之初,首先进行体系架构设计已经成为广大软件开发人员的共识。但大多数项目只是停留在整个软件项目的大的体系架构设计层次,渐深则一般采用基于组件(CBD),基于设计模式等方法进行更细粒度的软件设计...

    金税三期工程数据架构蓝图设计方案.pdf

    在金税三期工程中,数据架构的设计尤为关键,它涉及到数据的分布、交换与共享、元数据、数据治理以及数据标准等核心内容。以下是对金税三期工程数据架构蓝图设计方案中所包含知识点的详细介绍: 1. 数据分布:数据...

    图灵Java高级互联网架构师第6期源码框架专题笔记.zip

    图灵Java高级互联网架构师第6期源码框架专题笔记,内容包含: 01-Spring底层核心原理解析-周瑜 02-手写模拟Spring底层原理-周瑜 03-Spring之底层架构核心概念解析-周瑜 04-Spring之Bean生命周期源码解析上-周瑜 05-...

    工程全生命周期BIM体系建设案例(27页,内容丰富).pdf

    【工程全生命周期BIM体系建设案例】是针对佛山市城市轨道交通2号线一期工程的BIM(建筑信息模型)系统构建的一个详细案例。此项目旨在通过BIM技术整合工程的全过程,从规划(BOT)、交通导向开发(TOD)、工程采购...

    智能制造系统架构研究.pdf

    产品生命周期是指产品从市场引入到退出市场的全过程,包括介绍期、成长期、成熟期和衰退期。在智能制造系统中,这一维度强调产品的全生命周期管理,即从概念设计、工程设计、制造到使用直至报废的全过程。通过...

    30种java技术框架图

    EJB容器为EJB组件提供了生命期管理、事务管理、安全性等服务。 对初学者而言,掌握这些Java技术框架的架构是十分有益的,可以帮助他们更快速地理解Java编程的各个方面,从而在后续的学习和开发工作中游刃有余。文档...

    设备管理体系培训资料

    设备的生命周期通常分为两个阶段:第一周期涉及设备的研发、设计和制造,第二周期涵盖设备的选购、安装直至报废,这一周期是企业设备管理的核心。 一个完善的设备管理体系包含三个关键部分: 1. **组织体系**:明确...

    面向投资的项目管理云架构.pptx

    面向投资的项目管理云架构是一种基于...综上所述,面向投资的项目管理云架构通过技术创新,提供了覆盖投资项目全生命周期的解决方案,助力企业实现投融建管营一体化管理,提高决策效率,降低风险,提升项目成功率。

    ABP中文文档.rar

    1.3.2 生命期事件 8 1.3.3 模块依赖 9 1.3.4 自定义的模块方法 10 1.4 启动配置 11 1.4.1 配置ABP 11 1.4.2 配置模块 13 1.4.3 为一个模块创建配置 13 2 ABP公共结构 16 2.1 ABP依赖注入 16 2.1.1 传统方式...

    UML软件体系结构教案.rar

    聚集和组成是两种特殊的关联,分别表示整体与部分的关系,其中组成是强类型的聚集,意味着部分和整体具有相同的生命期。 关系是UML中的另一关键概念,它描述了类和对象之间的交互方式。关联、依赖、泛化和实现是四...

    手机淘宝Android架构实践.pdf

    这些都表明0TMCS是一个强大而灵活的架构体系。 在包构建层面,0TMCS采用了定制的打包过程,结合宿主应用的资源和插件资源生成最终的APK,同时进行了混淆优化和多版本统一管理,确保了代码的安全性和可维护性。 总...

    消防安全管理体系.pdf

    1. **组织架构**:消防安全管理体系通常由多个层次的管理和执行机构构成。在郑州市轨道交通二号线一期土建施工02工区项目经理部,安全生产管理委员会和消防工作小组是两个关键组织。项目经理和副经理担任消防应急...

    2022年智慧解决方案案例第6期:智慧燃气解决方案.pptx

    智慧燃气解决方案的体系架构通常包括感知层、网络层、平台层和应用层: 1. 感知层:由各类传感器和物联网设备组成,负责数据采集。 2. 网络层:将感知层的数据传输到云端或本地服务器,可能涉及多种通信技术。 3. ...

    基于企业生命周期的人力资源管理创新论文.doc

    而在国内学者的研究中,企业生命周期被简化为创业期、成长期、成熟期和衰退期四个阶段。这一理论强调企业在不同阶段有着不同的特性和战略需求。 【创业期的人力资源管理】 创业期是企业成立初期,面临诸多不确定性...

    软件体系结构复习思考题ppt课件.ppt

    14. **生命周期模型**:软件体系结构的生命期模型关注体系结构的创建、评估、实现、演化等阶段,与传统的软件生命周期模型相比,更加强调早期的架构决策。 15. **层次化系统结构与消息传递结构**:层次化结构将系统...

    数据治理平台与数据运营体系建设方案PPT.pptx

    广义是指对数据的全生命周期进行管理,包含数据采集、清洗、转换等传统数据集成和存储环节的工作,同时还包含数据资产目录、数据标准、质量、安全、数据开发、数据服务与应用等,整个数据生命期而开展的业务、技术和...

Global site tag (gtag.js) - Google Analytics