`

参加BEA的架构设计师最佳实践培训

 
阅读更多

上个星期公司有幸请到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系统。BEA架构不仅解决了传统架构中存在的许多...

    BEA tuxedo官方培训源代码

    BEA Tuxedo的架构基于微内核设计,由一系列服务组成,包括通信服务、事务管理服务、安全性服务等。这些服务为上层应用程序提供基础支持,使开发者能够专注于业务逻辑而不是底层基础设施。 2. **源代码学习要点** ...

    BEA工程师现场培训

    - **WebLogic架构**:讲解WebLogic Server的架构设计,如集群、域、管理服务器和托管服务器的概念。 2. **安装与配置** - **系统需求**:了解安装WebLogic所需的硬件和软件环境。 - **安装过程**:详述WebLogic ...

    BEA TUXEDO 简易培训教程

    【BEA TUXEDO 简易培训教程】 BEA TUXEDO 是一款强大的分布式应用程序开发和管理系统,尤其适合构建和管理三层结构的客户/服务器型关键任务应用。这款中间件产品允许开发人员创建跨越多种硬件平台、数据库和操作...

    SOA最佳实践之深入浅出SOA域模型

    ### 深入浅出SOA域模型:BEA最佳实践解析 #### 一、SOA概念与背景 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计复杂应用和服务的方式,它强调组件之间的松耦合以及通过标准化协议进行通信的...

    BEA内部资料

    它不仅支持开发过程中最佳实践的运用,还能帮助IT架构与业务目标保持一致,从而驱动与SOA相关的决策,优化基础架构需求和投资优先级。 ### 6. 日程与服务层次 BEA的日程安排围绕SOA的实施展开,分为多个服务层次,...

    BEA推出架构集成和SOA管理方面的服务方案

    此外,BEA还提供了一系列附加服务,如SOA发现探讨、评估、转型规划、培训需求分析、SOA概念和设计原则的教育,以及SOA企业架构师认证。这些服务旨在为客户提供全面的SOA支持,从最初的发现和评估阶段到后期的规划、...

    bea.rar_BEA

    此外,"bea学习文档"这个压缩文件可能包含了关于这些主题的详细教程、案例研究和最佳实践。通过阅读这些文档,初学者可以了解到如何安装和配置BEA产品,如何编写和部署应用程序,以及如何解决常见的问题。这些文档...

    bea portal培训

    通过本次培训,学员不仅能够掌握BEA Portal的基本概念和使用技巧,还能了解其背后的架构原理和开发标准,为后续的深入学习打下坚实的基础。同时,提供的学习资料也为学员指明了进一步探索的方向。

    bea_tuxedo_quick_start

    10. **最佳实践**:提供一些使用 Tuxedo 的经验法则,以提高系统性能和稳定性。 这个文档可能是新用户了解和使用 BEA Tuxedo 的关键资源,通过它,读者可以快速理解 Tuxedo 的工作原理,并能够在实际项目中运用所学...

    BEA 内部培训教材(EJB)

    ### BEA内部培训教材(EJB)知识点概览 #### 一、BEA WebLogic Server 8.1: J2EE编程与EJBs **BEA WebLogic Server**是一款高性能的应用服务器,支持J2EE(Java 2 Enterprise Edition)标准。在本章节中,我们将深入...

    BEA+TUXEDO 安装

    【BEA TUXEDO 安装】 BEA TUXEDO 是一款强大的分布式事务处理中间件,主要用于构建高可用性和高性能的企业级应用系统。它提供了面向事务的应用程序编程接口(ATMI),允许开发者创建可靠的、跨平台的分布式应用程序...

    BEA WebLogic Portal 8.1产品介绍

    BEA WebLogic Server 是一种多功能、基于标准的应用服务器,...由于 BEA WebLogic Server 具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。

    BEA WebLogic Server8.1大全 源码

     学习EJB的最佳实践和设计策略。  使用JUnit、JProbe和JMeter测试、调试和优化WebLogic应用程序。  利用XML.Web服务,jCOM、JCo、CORBA和Tuxedo应用程序.将WebLogic集成到企业系统中。  管理WebLogic应用程序...

    BEA TUXEDO简易培训教程

    【BEA TUXEDO简易培训教程】 BEA TUXEDO是一款强大的分布式应用程序开发和管理系统,主要用于构建和管理在企业级和互联网环境中的三层结构客户/服务器型关键任务应用。它强调分布式事务处理和应用通信,具备在多种...

    BEA Tuxedo应用程序

    类型缓冲区是BEA Tuxedo系统中通信的核心组件,通过`tpalloc()`, `tprealloc()`, 和`tpfree()`等ATMI函数管理内存,确保数据在不同网络、协议、CPU架构和操作系统之间的统一处理。这种标准化的处理方式极大地方便了...

    bea tuxedo+ weblogic编程简介

    BEA Tuxedo+ WebLogic 编程简介 BEA Tuxedo 是一个基于事务的中间件平台,旨在提供高性能、可靠性和可扩展性的分布式应用程序解决方案。结合 WebLogic 服务器,BEA Tuxedo 可以提供一个强大的企业级应用程序平台。...

    BEA TUXEDO培训和指导.doc

    BEA TUXEDO是一款强大的分布式应用程序开发和管理系统,主要用于构建和管理在企业级和互联网环境中的三层客户/服务器架构的关键任务应用。它集成了分布式事务处理和应用通信功能,允许开发人员创建跨多平台、数据库...

    bea jdbc 内部培训资料

    总结起来,JDBC是Java与数据库交互的基础,而BEA(现在是Oracle的一部分)的内部培训资料强调了不同类型的JDBC驱动、JDBC在WebLogic中的使用,特别是连接池和DataSource的管理,这些都是在Java环境中高效访问数据库...

Global site tag (gtag.js) - Google Analytics