架构的理解分为俩点
一是最高层次的系统分解
二是系统中不易改变的决定。
如果你发现某些决定并不像你想象的那么难以改变,那么它就不再和架构相关了。
企业应用的困惑
企业应用在某些方面比电信软件简单的多,多线程问题没有那么困难,无需关注硬件设备与软件的集成。
但是。在某些方面,企业应用又比电信软件复杂的多,企业应用一般涉及大量复杂的数据,
而且必须处理多种"不合逻辑“的业务规则。
企业应用的特点
1,一般涉及持久化数据。
2,一般都涉及大量的数据。
3,一般不涉及很多人同时访问数据。
4,涉及大量操作数据的用户界面。
5,企业应用很少独立存在,通常需要与散布在企业周围的其他企业应用集成。
企业应用的种类
设计中最具挑战性的是了解哪些候选的设计方法以及各种不同设计方法之间的优劣比较。进行候选的空间很大,
我们这里只考虑三方面。
第一:B2C网上零售。
其解决方案不但要考虑到资源利用的有效性,还要考虑到系统的可伸缩性,以便在用户规模增大时能够通过
增加硬件的办法加以解决。该系统的业务逻辑可以非常简单,获取订单,进行简单的价格计算和发货计算,
因此用户界面可以选择通用的WEB界面,以支持各种不同的浏览器。
第二:租约合同自动处理系统。
它的用户会非常少(不会超过1000个),但是他的业务逻辑缺比较复杂。处理提早解约和延迟付款这样的事件。
签订合同时验证各种数据,在UI上也很复杂,要求HTML界面能够提供丰富的功能和复杂的屏幕。
用户交互的复杂性还会带来事物行为的复杂性,一个复杂的数据库设计方案中可能会涉及200多个表和资产评估和
计价的软件包。
第三:开支跟踪系统
这样的系统用户很少,功能简单,涉及的表也比较少。这样带来的挑战有
一方面要快速开发,另一方面为他以后的发展考虑,也许后续他会集成到工资系统。
以上三个企业应用的例子都有难点,而且难点各不相同,当然也不能有一个适合这三个的通用架构。
选择架构时,必须很清楚地了解面临的问题。在理解的基础上来选择合适的设计。
关于性能的考虑
建议尽量减少远程调用。
配置上的最大变化会使得某些性能优化失效。
响应时间:系统完成一次外部请求处理所需的时间。
响应性:不同于请求处理,他是系统响应请求的速度有多快。
吞吐率:给定时间内能够处理多大的请求量。
模式
每个个模式描述了我们周围不断重复发生的问题以及该问题的核心解决方案。
模式的结构
模式就是为了设计者们之间提供的一组词汇,因此如果我告诉你WEB服务器是前端控制器和转换视图构建的。
而你又了解这些模式,那么你对我的WEB服务器构架就会非常清楚。
分享到:
相关推荐
三层架构是一种常见的软件设计...源代码的分享有助于开发者学习和理解如何在实践中应用三层架构,提高自己的编程技能。通过分析和研究这些源码,你可以深入理解每一层的实现细节,进一步提升在企业级应用开发中的能力。
理解 .Net 的三层架构并熟练运用,有助于开发出高效、易于维护的软件系统。但需要注意的是,三层架构并不适用于所有项目,小型或简单应用可能不需要如此复杂的结构。选择架构模式时,应根据项目规模、团队协作需求...
深入理解OpenWRT架构 OpenWRT是一款基于Linux的嵌入式操作系统,主要应用于路由器、交换机、网关等网络设备。OpenWRT架构可以分为多个部分,包括安装、配置、编译、镜像生成等步骤。 安装准备 在安装OpenWRT之前...
首先,我们要理解什么是架构设计。架构设计是系统开发的早期阶段,它定义了系统的主要组件、它们之间的关系、接口和交互方式。这个过程包括选择适当的技术栈、确定系统架构模式,并确保这些设计决策符合业务需求和...
为了更好地理解和描述软件架构,需要使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合。 "4+1" 视图模型是软件架构中的一种常用模型,由 Philippe Kruchten 提出,该模型...
首先,我们要理解什么是软件架构。软件架构是软件系统的高层次结构,它描述了主要的组成部分(如模块或服务)及其相互作用。它为开发团队提供了一个共享的理解,明确了系统的整体结构和关键决策,以便于后续的设计、...
《架构师(第1期).pdf》作为系列的起始篇,其内容无疑为读者打下了坚实的基础。它首先定义了架构师的角色,让读者明确架构师不仅仅是技术团队的一员,更是连接业务战略和技术实施的关键桥梁。在这一期中,读者可以...
"Sensor架构理解与实现" Android系统中的Sensor架构是指安卓系统中对传感器的支持和实现。 Sensor架构包括Linux驱动、HAL层、框架层和应用层四个部分。 HAL层是 Sensor架构的核心,负责传感器的抽象和标准化。 1. ...
1. 系统架构设计师是设计和管理软件架构的关键人物,负责非功能性需求的确认和评估,并给出开发规范和核心技术细节。 2. 他们既要关注技术实现,也要处理组织协调,是技术和管理的桥梁。 3. 架构设计师需要与系统...
1. **系统架构**:系统架构是整个IT解决方案的基础,它定义了系统的主要组件、它们之间的关系以及如何协同工作。架构师需要考虑硬件、操作系统、中间件和外部接口等多个层面,以确保系统的性能、可靠性、安全性和可...
业务架构设计的目的在于确保企业所有人员对业务有一个共同理解,将宏观的企业战略进行分解,从战略范畴落实到战术范畴,通过运营支撑业务目标达成。 业务架构设计的原则包括: 1. 战略驱动:业务架构要符合XXX电网...
微服务架构的实践需要开发者转变思维逻辑,不仅关注技术层面,还要理解服务的业务逻辑和服务拆分原则,发展跨组织的团队协作,培养具备微服务架构思维的核心人员,并采用适当的部署和开发模式。其中,Docker作为一种...
1. 微服务架构设计的出现是为了解决传统单块架构应用程序的不足之处。 2. 微服务架构设计的出现是为了让软件开发更加灵活、快速和高效。 3. 微服务架构设计的出现是为了让软件系统更加可靠、可维护和可扩展。 ...
总的来说,“4+1视图模型”提供了一种全面而灵活的方法来描述和管理软件架构,它强调了不同利益相关者的视角,使软件设计更加透明,更易于理解和维护。这种方法已被广泛应用于复杂系统的架构设计中,对于提升软件...
1. **MySQL架构**:包括服务器层、存储引擎层、客户端/网络层等,理解它们如何协同工作以处理数据请求。 2. **SQL语言**:包括DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言)...
1. 架构定义:理解软件架构的含义,包括主要组件、接口和关系,以及它们如何协同工作。 2. 基本架构模式:学习常见的架构模式,如分层架构、微服务架构、客户端-服务器架构等。 3. 架构风格:探讨不同的架构风格,如...
在实验中,我们首先需要理解 CS 架构的概念,然后阅读有关资料,了解 C/S 架构的实现原理和应用场景。接着,我们需要设计和实现一个简单的基于 SDI 或 MDI 界面的 CS 架构的“学生成绩管理系统”,该系统包括课程...
架构设计是软件开发的重要组成部分,它可以帮助开发团队更好地理解系统的需求和设计,并确保系统的整体性和可维护性。架构设计可以帮助开发团队避免一些常见的问题,如设计随意、人走码凉等问题。 问题二:如何应对...
《测试架构师修炼之道:从测试工程师到测试架构师1》这本书,就是为了指引那些期望在测试领域不断进步的工程师们,提供了一个清晰的成长蓝图。 ### 测试的核心——测试策略 测试工作并不仅仅是对业务的熟悉或者...