1.基本概念系统架构=业务架构+软件架构业务架构从业务需求的角度,明确物理结构图和逻辑结构图,划分各个子模块。确定为什么要划分,各个子模块之间如何交互,每个子模块有哪些接口。软件架构讨论的是使用什么样的技术,如何分层,使用什么好的技术特性,采用这些技术特性会给我们的工作带来什么好处,为什么要从技术角度去做。2.架构目标1.可靠性系统可靠性一般是指系统在规定时间内、规定工作条件下完成规定功能的能力/概率。软件错误是在软件开发的每个阶段都会出现的人为错误。错误的要求。例如,用户提出的需求不完整,用户需求的变化没有及时消化,软件开发者和用户对需求的理解不一致等等,都是设计错误。如处理结构和算法错误,没有考虑特殊情况和错误处理等。编码错误。如语法错误、变量初始化错误等。测试错误。如数据准备错误、测试用例错误等。文档错误。如文档不完整、文档相关内容不一致、文档版本不一致、不完整等。2、安全计算机系统安全包括两部分:一是保证系统的正常运行,避免各种无意的错误和破坏;二是防止系统和数据被非法使用或破坏。由于应用系统可能涉及资金、客户信息等重要敏感数据,因此需要采取有效措施保证应用系统的安全。禁止原则必须是尽可能多的原则原则3.可扩展性软件必须能够在用户使用率和用户数量迅速增加时保持合理的性能。只有这样,才能适应用户市场扩大的可能性。4.可扩展性当新技术出现时,软件系统应该允许引入新技术来扩展现有系统的功能和性能。5、同一套软件可以定制,可以根据不同的客户群体和市场需求的变化进行调整。6、可维护性一个软件系统的维护包括两个方面:一是消除已有的错误,二是将新的软件需求反映到已有系统中。易于维护的系统可以有效降低技术支持成本。7、客户体验软件系统必须简单易用。8.市场时机软件用户将面临同行竞争,软件供应商也将面临同行竞争。以最快的阅读速度争夺市场机会非常重要。3.常见的软件架构模式1.分层模式这种模式用于构建一个可以分解为多组子任务的程序,每个子任务都在一定的抽象层中,每一层都向上一层提供服务。一般信息系统中最常见的4层体系如下表示层(也叫UI层)应用层(也叫服务层)业务逻辑层(也叫领域层)数据访问层(也叫持久层)应用场景通用桌面程序电子商务web程序TCP/IP协议栈2.客户端-服务器模式这种模式也称为C/S模式,它由两部分组成:单个服务器和多个客户端。服务器组件向多个客户端组件提供服务。客户端向服务器请求服务,服务器向这些客户端提供相应的服务。此外,服务器端继续侦听客户端请求。应用场景在线应用,如电子邮件、文件共享、银行软件升级系统等3.主从模式这种模式由两部分组成:主节点和多个子节点。主节点组件向多个独立的从节点组件调度任务,并根据从节点返回的结果计算最终结果。应用场景数据库复制,主数据库作为权威源同步到数据库到计算系统连接的外围设备(主从驱动)负载均衡系统(个人理解)4.管道-过滤器模式这种模式是用于构建生产和处理数据流的系统。每个处理步骤都封装在一个过滤器组件中。待处理数据通过管道传输到管道中,管道可用于缓冲或同步。应用场景Compiler,ConnectedFilters执行词义分析、句法分析、语义分析和代码生成生物数据主体工作流程Gstreamer、DirectMusic5。代理模式该模式用于构建组件解耦的分布式系统。这些组件通过远程调用相互交互。代理组件负责多个组件的通信协调,服务端将它们的功能(服务和特性)暴露给代理;客户端从代理获取服务,代理将客户端重定向到注册的服务库中合适的服务。应用场景消息队列软件,如ApacheActiveMQ、ApacheKafka、RabbitMQ和JBossMessaging6。点对点模式这种模式下的每个独立组件称为对等体。一个对等点可以作为客户端从其他对等点获取服务,也可以作为服务器向其他对等点提供服务。对等点可以充当客户端或服务器,或两者兼而有之,并在不同时间切换角色。应用场景文件共享网络,如Gnutella、G2、eMule、迅雷多媒体协议,如P2PTV和PDTP私有媒体程序,如Spotify7。事件总线模式该模式主要处理事件,有4个主要组件:事件源、事件监听器、通道和事件总线。事件源向事件总线上的通道发布消息,监听器订阅通道并了解在订阅的通道中发布的消息。应用场景Android开发通知服务DBus模型-视图-控制器模式该模式也称为MVC模式,将交互程序分为3部分:模型-包含核心功能和数据,视图-向用户显示信息(多个视图可以是defined),Controller-处理用户输入。它通过将用户信息的内部呈现和呈现与其呈现和接收的方式分离、解耦组件并允许高效的代码重用来实现这一点。应用场景主流编程语言的万维网程序架构web框架,如Django和Rails,最经典的是MFC9。黑板模式这种模式对于没有确定性解决策略的问题非常有用。Blackboard架构由三个主要组件组成:Blackboard-包含地址空间中对象的结构化全局内存,知识源-具有自我表示的专用模块,以及控制组件-选择、配置和执行模块。所有组件都可以访问黑板,并可以生成新的数据对象并将它们添加到黑板中。在黑板中,可以根据已有知识源的匹配规则,找到某类数据。应用场景语音识别车辆识别与跟踪蛋白质结构识别声纳信号解释10.解释器模式该模式用于设计解释用特定语言编写的程序的组件。该组件主要规定如何评价程序代码行,即所谓用某种语言编写的语句或表达式,基本点是对语言符号进行分类。应用场景数据库查询语言,如SQL,用于描述通信协议的语言4.中英文对照表可维护的客户体验CustomerExperienceMarketTimingTimetoMarket五.ReferenceLink软件架构概述10种常见的软件架构模式你知道吗知道什么是系统架构吗?应用系统设计安全原则系统架构=业务架构+软件架构
