架构
架构一般来说意味着:
- 从最高层将系统分解成多个部分。
- 一旦作出就很难改变的决定。
Ralph Johnson说:
架构是一种主观
的东西,是项目专家开发人员对系统设计的一种共同理解
。通常,共同理解是指系统包含哪些主要组件以及这些组件相互之间如何交互。Martin认为架构模式中最重要就是分层
。
企业应用程序
企
业应用程序通常也被称为"信息系统(Information Systems)"或”数据处理系统(Data
Processing)"。企业应用程序的例子包括:薪水帐册、病人记录、船运跟踪、费用分析、信用等级、保险、供应链、会计、客户服务和外贸。不是企业
应用程序的例子包括:汽车燃油喷射(automobile fuel
injection),字处理器、选举控制器、化学工厂控制器、电话交换机、操作系统、编译器和游戏。
企业应用程序的特点:
- 企业应用程序通常包含持久化
的数据。
- 企业应用程序通常包含大量数据
,一个中型系统的数据量超过1G,大约包含万条记录。
- 用户通常并发地
访问数据。
- 企业应用程序通常包含很多用户接口屏幕(user interface screen)。包含上百个不同的屏幕是很常见的。
- 企业应用程序通常需要和别的企业应用程序进行集成。
- 通常有复杂的业务逻辑(business logic)。业务逻辑通常是非逻辑的(illogic),它们经常变化而且看起来十分古怪。
企业应用程序的类型
不同类型的企业应用程序需要使用不同的方式来开发,要对“总是要这样做”的规则保持警惕。三种不同的企业应用程序举例:
- B2C在线零售店,用户浏览商品,将它们放入购物篮,然后购买。此类系统需要处理大量用户,这就要求高效利用资源并且应用需要是可伸缩的,这样通过添加硬件就能够增加负载量。此类系统的领域逻辑相当直观且明显,需要支持尽可能广泛的浏览器。
- 一个能使租赁协议的处理自动化的系统(a system that automates the processing of leasing agreements)。比起B2C在线零售店,这个系统的用户量要少得多,但是业务逻辑却要复杂得多。用户界面也要更复杂。
- 为一个小公司做的简单费用跟踪系统。这个系统只有少量的用户和简单的业务逻辑。它的主要挑战是快速的构建并及时听取反馈。
对于这三种应用程序不能够使用同一种架构。
性能(Performance)
做性能优化之前和之后一定要测量。
术语:
- 响应时间(response time)
。系统处理外部请求所花费的时间,比如说按一个按钮。
- 响应性(responsiveness)
。描述系统以多快的速度对请求进行响应,这和响应时间不同。比如说,当点击"复制"按钮到出现进度条这段时间是响应性,而到文件复制结束时是响应时间。
- 潜伏时间(Latency)
。
指接收到任何形式响应所需的最短时间。对本地程序,潜伏时间非常短,对于远程程序,潜伏时间至少是请求在网络上传输的时间。和响应性不同,它是用户感知到
响应所用的时间,潜伏时间是指服务器端(一般来说是计算机)接收到响应所用的时间。作为应用程序开发者,我们没有办法改善潜伏时间。
- 吞吐量(Throughput)
。在给定的时间内完成的工作量。如果是计算文件复制的时间,吞吐量可能用字节每秒(bytes per second)来衡量。对企业应用程序,吞吐量一般用事务数每秒来衡量(transactions per second, tps)。
- 负载(Load)
。用于系统处于多大的压力,例如可用有多少用户连接到系统来衡量系统负载。负载一般作为其它测量量的上下文,例如可以说,10个用户时请求响应时间是0.5秒而20个用户时响应时间是2秒。
- 负载敏感性(Load Sensitivity)
。表壳响应时间怎样随着系统负载变化。假设系统A对10到20个用户的响应时间是0.5秒,系统B对10个用户的响应时间是0.2秒,对20个用户的响应时间上升到2秒。我们说系统A比系统B有较低的负载敏感性。
- 效率(Efficeincy)
。用性能除以资源。系统A有2个CPU,其吞吐量是30tps,系统B有3个CPU,吞吐量是40tps,那么我们说系统A比系统B更有效率。
- 容量(Capacity)
。表示系统最大能够承受的有效负载或吞吐量。
- 伸缩性(Scalability)
。描述添加资源(通常是硬件)如何影响性能。一个可伸缩的系统可能通过添加硬件来获得更好的性能,例如通过加一台服务器可以加倍吞吐量。给单台服务器增加动力(如添加更多的CPU)是垂直伸缩性
。添加更多服务器是水平伸缩性
。
性能一般是指负载或吞吐量。当构建企业应用程序时,硬件伸缩性通常比系统容量甚至系统效率更重要,因为这时可以通过添加硬件来提高系统性能。
分享到:
相关推荐
读书笔记:企业应用架构模式读书笔记
读书笔记:企业应用架构模式
读书笔记:企业应用架构模式课程资料
在企业级应用开发中,架构模式是解决常见问题的有效手段,它们可以帮助我们设计出可扩展、易维护的系统。本文将深入探讨两个关键概念:分层架构和并发处理,这些都是构建大型复杂系统不可或缺的部分。 首先,让我们...
读书笔记:企业应用架构模式案例 作业提交系统
读书笔记:《企业应用架构模式》思维导图
读书笔记:用户存放自己编写的《企业应用架构模式》中的代码示例
他们需要从众多的系统方法和工具中筛选出有效与无效的,并通过实际项目总结自己的架构模式,深入了解行业特点。 计算机基础是架构师必备的知识之一,涉及到硬件和软件的组成,以及系统软件和应用软件的区分。操作...
读书笔记:以一个面向企业应用架构模式开发一个类简书的项目。共勉学习进步成长。
在计算机基础知识部分,学习笔记介绍了计算机系统的组成,包括硬件和软件。软件又分为系统软件和应用软件,其中系统软件是为应用软件提供运行平台的核心软件。操作系统作为计算机系统的核心,负责管理各种软硬件资源...
例如,常见的架构模式有分层架构、微服务架构、事件驱动架构等,每种模式都有其适用场景和优缺点。 二、系统设计原则 在设计系统架构时,应遵循一些基本原则,如模块化、抽象、信息隐藏、开放封闭原则等。这些原则...
他们需要从这些方法中筛选出有效的实践,总结行业规律,并形成自己的架构模式。这并不是短时间内通过短期培训就能达成的,厂商的培训和认证更多的是为了推广市场和产品,而非培养真正的架构师。 在《计算机网络基础...
IT架构是指企业的信息技术架构设计,包括应用架构、数据架构、技术架构等方面。IT架构的设计是企业数字化转型的关键,IT架构的好坏直接影响着企业的信息化程度和生产力。 业务架构 业务架构是指企业的业务流程和...
1. 架构模式:常见的如分层架构、微服务架构、事件驱动架构等,及其适用场景。 2. 可扩展性设计:如何通过负载均衡、分布式缓存、数据库分片等技术来保证系统的可扩展性。 3. 安全性设计:包括身份验证、授权、加密...
- **确定软件架构**: 选择合适的软件架构模式,如客户端-服务器、微服务等。 - **确定关键要素**: 明确项目的成功因素,比如性能指标、安全性要求等。 - **确定计算体系**: 选择适合项目的计算平台或技术栈,如...
- 总结个人架构模式。 - 深入行业,提炼规律。 - 商业培训和认证虽然有助于技能提升,但最终目标是培养市场的忠诚用户而非真正的架构师。 ### 计算机网络基础知识 #### 1. 计算机系统的组成 - **软件分类**: -...
读书笔记:《Java应用架构设计模块化模式与OSGi》源代码
5. **电源管理**:STM32支持多种低功耗模式,如STOP、STANDBY等,应用笔记会介绍如何合理配置电源管理模式,以延长电池寿命或适应不同应用场景。 6. **RTOS(实时操作系统)**:对于复杂项目,可能需要使用RTOS,如...