有幸请到BEA的架构设计师刘杰给公司做了一次为期2天的架构最佳实践培训。个人印象来说,这次培训含金量比较高,讲师有非常多年的实际架构设计经验,且目前一直在做架构。讲的东西都是贴切实际,带来很多经验,和一些新的概念。下面是我在课堂上做的一些笔记,主要记录了一些新的概念和老师的一些经验。
关于软件架构的定义:
一系列重要决策的集合、多个结构的组成
软件架构视图必不可少,是因为各类涉众需要从各自的角度去理解和使用架构
软件架构四要素
1. 图示化元素与元素之间的关系
2. 有明确的图例,定义和说明元素
3. 元素明确的接口和行为规范
4. 设计原理和决策
软件架构的图要根据行业背景不同,画别人能理解的图。
4+1 Vies Model
逻辑视图(Logical View)、开发视图(Development View)、运行时机构图(Process View)、物理视图或部署图(Physical View),这些图像都需要放到实际的场景(Scenarios)中去验证,没有在实际的场景中验证的都是一些很虚的东西。
软件架构的目的:
是为了按照设计师的思想执行,是最初设计的决策体系、是风险承担者、相互交流的手段、是系统可重用、可传递的规则。
一个架构师一定要清晰的表达架构的目的,如果不能清晰的表达出来,就等于没有做架构一样。
架构的三个境界
1. 要做出架构
2. 表达架构的意思
3. 能使别人理解,并遵循架构。
常见的架构视图类型
功能视图、开发视图、进程视图(Run Times时期)、部署图、场景图、数据视图(大数据量、大并发量)、实现视图
数据模型(领域模型)很重要,由架构师负责设计全局的领域模型,一般来说数量大概在50-100个左右。
数据模型的选择会影响最终系统灵活性,数据模型设计好了,系统的扩展性、灵活度会高一些。
软件架构的试图中,对具有风险性的、用户最关心的图需要重点分析。
软件架构的驱动因素
过去我们的软件架构中都是由软件的功能和技术做为整个软件架构的驱动,但是到了后期会出现一系列问题,有些问题是之前未考虑到的,有些或是其他原因,目前软件架构要在功能、质量属性、约束三个方面做为软件架构的驱动力。也就是做架构的时候要在功能、质量属性、约束这三个方面考虑,而不是传统的只考虑功能和技术。比如一个MP3播放器,爱国者的和APPLE的都是能播出MP3,也就是功能是实现了,但是价格为什么相差那么大呢,也就说我们考虑架构不单是要考虑功能、还有质量属性,还有约束条件,东西做出来了,使用的人不会用,那也是白搭。软件的使用中受到那些约束环境,如行业标准、政策、遗留系统、环境条件、用户水平、组织结构等,这些都是在架构设计时候需要考虑的东西。
功能 - 关键业务场景
质量属性 - 开发时的质量属性、运行时的质量属性、商业质量属性
约束 - 客户需求以及业务相关约束、用户以及使用环境相关约束、开发组织以及开发环境相关约束。
架构师的考核能力,可以列举一系列坏的设计(坏症状)出来,然后一条条照套。
分享到:
相关推荐
### 创新的服务基础架构(BEA架构) #### 概述 创新的服务基础架构,即BEA架构,是一种旨在简化企业IT系统并提高其灵活性的新一代架构方案。它通过提供一个独立于具体技术实现的抽象层,使得IT系统能够更好地与...
3. **架构服务**:BEA为客户提供了BEA客户架构师和卓越计划中心,这些服务大约持续6个月,提供一支专门的架构师团队,协助客户规划并执行企业级的SOA路线图,确保SOA设计的高效性和可扩展性。 此外,BEA还提供了一...
这些内部培训材料通常包含了BEA专家的经验分享和最佳实践,有助于读者快速理解和掌握实际工作中的挑战和解决方案。通过案例研究和实战演练,读者可以深入理解如何在复杂的企业环境中有效地运用BEA技术。 综上所述...
它不仅支持开发过程中最佳实践的运用,还能帮助IT架构与业务目标保持一致,从而驱动与SOA相关的决策,优化基础架构需求和投资优先级。 ### 6. 日程与服务层次 BEA的日程安排围绕SOA的实施展开,分为多个服务层次,...
根据给定文件的信息,我们可以梳理出一系列针对J2EE架构师的重要知识点,这些知识点主要来源于推荐书籍的内容概要。下面将详细阐述这些书籍所涵盖的关键技术领域及其在J2EE开发中的应用。 ### Java基础理论 - **...
此外,"bea学习文档"这个压缩文件可能包含了关于这些主题的详细教程、案例研究和最佳实践。通过阅读这些文档,初学者可以了解到如何安装和配置BEA产品,如何编写和部署应用程序,以及如何解决常见的问题。这些文档...
BEA的《SOA最佳实践之深入浅出SOA域模型》白皮书是理解和实施SOA不可或缺的资源。它不仅提供了SOA的基础理论和概念,还分享了实用的建模方法、治理策略以及一系列成功的实践案例。对于任何希望利用SOA改进其IT基础...
此书由Jeff Davies,BEA的资深SOA架构师,以及Ashish Krishna和David Schorow共同编著,Jayaram Kasi,BEA Systems的技术程序管理总监,为其作序。 ### 一、SOA概念解析 面向服务架构(SOA)是一种设计方法论,...
10. **最佳实践**:提供一些使用 Tuxedo 的经验法则,以提高系统性能和稳定性。 这个文档可能是新用户了解和使用 BEA Tuxedo 的关键资源,通过它,读者可以快速理解 Tuxedo 的工作原理,并能够在实际项目中运用所学...
【BEA TUXEDO 安装】 BEA TUXEDO 是一款强大的分布式事务处理中间件,主要用于构建高可用性和高性能的企业级应用系统。它提供了面向事务的应用程序编程接口(ATMI),允许开发者创建可靠的、跨平台的分布式应用程序...
《Bea Tuxedo 系统设计、配置及优化》是一本深入探讨Bea Tuxedo这一企业级应用服务器的专著。Tuxedo作为一款强大的分布式事务处理系统,广泛应用于金融、电信等行业,它的高性能、高可靠性和可扩展性是其核心优势。...
### BEA Tuxedo应用程序深度解析 #### 一、BEA Tuxedo应用程序概览 BEA Tuxedo,作为一款高性能的事务处理中间件,主要用于构建大型企业级应用,尤其是那些对性能、稳定性和安全性有极高要求的场景。Tuxedo支持...
BEA WebLogic Server 是一种多功能、基于标准的应用服务器,...由于 BEA WebLogic Server 具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
BEA Tuxedo+ WebLogic 编程简介 BEA Tuxedo 是一个基于事务的中间件平台,旨在提供高性能、可靠性和可扩展性的分布式应用程序解决方案。结合 WebLogic 服务器,BEA Tuxedo 可以提供一个强大的企业级应用程序平台。...
BEA Tuxedo是一款高性能的企业级交易处理系统,它提供了服务导向架构(SOA)的基础设施,用于构建分布式应用系统。Tuxedo以其高效、可靠的事务处理能力而著名,尤其适合金融、电信等对性能和稳定性要求极高的行业。 ...
### BEA软件产品白皮书知识点详析 #### BEA WebLogic Enterprise Platform - **概述**:BEA作为全球领先的应用基础件提供商,其WebLogic Enterprise Platform被广泛应用于构建、集成和扩展企业应用系统,特别是在...
《SOA权威指南:通过BEA AquaLogic Service Bus实现》是一部深入探讨面向服务架构(SOA)的专业书籍,由BEA高级SOA架构师Jeff Davies与Ashish Krishna、David Schorow共同撰写...本书不仅为读者提供了SOA的...
### BEA Tuxedo简介及发展历程 #### 一、BEA Tuxedo背景介绍 BEA Tuxedo是一款由BEA Systems公司开发的中间件产品,主要应用于高性能分布式事务处理领域。BEA Tuxedo的历史可以追溯到Unix操作系统的发展过程中,它...