内容来源:希赛
视频:B站
注:[系统分析师]考试中,系统设计部分,略重点内容
1、系统设计概述
1、网络设计
2、代码设计
3、输入输出设计
4、处理流程设计
5、数据存储设计
6、用户界面设计
7、安全性和可靠性设计
1、网络设计
2、代码设计
3、输入输出设计
4、处理流程设计
5、数据存储设计
6、用户界面设计
7、安全性和可靠性设计
# 系统设计方法
1、结构化设计方法
2、面向对象设计方法
# 系统设计的主要内容
1、概要设计:把系统拆分,系统-子系统-模块-子模块
拆分后,模块之间如何衔接,模块间的交互
= 架构设计(注:结构化设计和架构设计的联系?不同时期的名词!)
2、详细设计:对应单个模块的内部设计
补充:两种设计方法的对比!
2、处理流程设计
补充:业务流程分析方法
补充:业务流程建模方法
Question:业务流程建模是要做什么?
Ans:通过对企业内部各项业务活动的分析、抽象和表达,以图形化的方式展现出企业的业务流程。其主要目的在于提供一个有效的可视化工具,帮助企业更好地理解、分析和管理自身的业务流程,从而实现流程的优化和改进。
# 业务流程建模 - BPM 了解即可
1、标杆瞄准
2、IDEF
3、DEMO
4、Petri网
5、业务流程建模语言
6、基于服务的BPM
只会考选择
2.1 流程设计概述
1、流程
流程的概念包括: 1)流程定义 和 2)流程实例。
- 流程定义:对业务过程的形式化表示,定义了过程运行中的活动和所涉及的各种信息。
- 流程实例:也称为工作,是一个流程定义的运行实例,即一次具体的流程操作,如:一次在线测试过程,一次在线支付过程等。
流程设计人员,可以通过流程定义工具来定义流程。流程定义工具可以是独立的软件,也可以是工作流管理系统的一部分。
2、工作流
简单来讲,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组活动(或任务)及它们之间的相互顺序关系,还包括流程和活动的启动和终止条件,以及对每个活动的描述。
工作流管理是人与计算机共同工作的自动化协调、控制和通信,在信息化的业务过程中,通过在网络上运行相应的软件,使所有活动都处于受控状态。在工作流管理下,可以对工作进行监控,并可以进行工作的指派。
# 上面两段话比较官方,配合个实例来理解
在线教育平台系统中的开通课程流程:
对应需要传递的信息就是课程申请单,
员工填写好课程申请单后可将其发送给上级主管审批,
上级主管审批后可转交培训部门备案,
培训部门成功备案后可转交财务部门,以便核算辅导老师的工资。
整个流程包括多个活动,不同的用户执行不同的活动,
每个活动均有其起始和终止条件
3、活动及其所有者
活动是流程定义中的一个基本要素。
一次活动可以改变流程处理数据的内容、流程的状态,并可能将流程推动到其他活动中去。活动可以由人来完成,也可以是系统自动进行处理(如:通过时间等自动触发的活动)。每个活动均有输入、处理和输出。
活动的所有者是流程的参与者之一(人或其他系统),ta们有权决定该活动是否结束,当活动结束时,可以将活动推动到其他活动中,可能是下一个活动,也可能是前一个活动。
活动的所有者是有权整体控制流程实例执行过程的参与者。通常活动的所有者是流程的发起人,ta们对流程的各项活动都很关注,而且可以整体控制流程实例的执行。如:开通课程流程中中创建课程申请单的员工。
4、工作项
工作项代表 流程实例 中 活动的参与者将要执行的工作。
如:开通课程流程中,某员工创建的一张课程申请单即为一个工作项。
工作流管理系统包括若干工作项,一个参与者也可以对应多个工作项。
通常,在系统实现时,不同的工作项有不同的编号,可以通过编号来快速定位到某一个工作项。
2.2 工作流管理系统-WFMS
工作流管理系统(WorkFlow Management System)通过软件 定义、创建工作流并管理其执行。它运行在一个或多个 工作流引擎 上,这些引擎解释 对过程的定义与工作流参与者的相互作用,并根据需要调用其他IT工具或应用。
如:将考勤管理、内部信息交流、工作日报或周报等工作流管理模块集成在一个软件中,即可得到WFMS,这类WFMS即OA系统。
2.2.1 WFMS的基本功能
WFMS将业务流程中 工作如何组织与协调 的 规则抽象出来,在WFMS的协助下,开发人员遵循一定的变成接口和约定,就可以开发出更具灵活性的事务处理系统,用户无需重新开发即可更改工作流程,以适应业务流程的变更。
WFMS的基本功能具体体现在以下几个方面:
- 对工作流进行建模:即定义工作流。包括具体的活动和规则等。所创建的模型是同时可以被人和计算机所"理解"的,工作流对应现实世界的业务处理过程,不能改变真实业务的处理逻辑;
- 工作流执行:遵循工作流模型来创建和执行实际的工作流,即通过WFMS可以执行多个工作项;
- 业务流程的管理和分析:监控和管理执行中的业务(工作流)。例如:进度完成情况和数据所处的状态、工作分配与均衡情况等。
2.2.2 WFMS的组成
# 工作流参考模型(workflow reference model),包含六个基本模块
1、工作流执行服务
2、工作流引擎
3、流程定义工具
4、客户端应用
5、调用应用
6、管理监控应用
这六个模块,被认为是WFMS最基本的组成部分。
2.3 流程设计工具
在处理流程设计过程中,为了更清晰的表达过程规则说明,陆续出现了一些用于表示处理流程的工具,这些工具包括三类:
- 图形工具:程序流程图、IPO图、盒图、问题分析图、判定树
- 表格工具:判定表
- 语言工具:过程设计语言
总述
2.3.1 程序流程图-PFD
# 要规范!
# PFD中只能包括五种基本控制结构,任何复杂的PFD都应由这5种基本控制结构组合或嵌套而成
1、顺序
2、选择
3、多分支选择
4、当型循环 do-while
5、直到型循环 do-until
2.3.2 IPO图
由IBM公司发起并逐步完善的一种流程描述工具。
系统分析阶段产生的数据流图DFD 经转换和优化后 形成的系统模块结构图的过程中将产生大量的模块,分析与设计人员应为每个模块写一份说明,即可用IPO图来对每个模块进行表述。
IPO图用来描述每个模块的输入、输出和数据加工。
2.3.3 N-S图(盒图)
使用方框代替传统的PFD。
类似PFD,也包括五种控制结构,分别是顺序型、选择型、WHILE循环型、UNTIL循环型和多分支选择型,任何一个N-S图都是这五种基本控制结构的相互组合与嵌套的结果。
在N-S图中,过程的作用域明确,它没有箭头,不能随意转移控制;
而且,容易表示嵌套和层次关系;
并具有强烈的结构化特征。
但是当问题复杂时,N-S图可能很大。
2.3.4 问题分析图-PAD
PAD(Problem Analyse Diagram)是继PFD和N-S图之后,又一种描述详细设计的工具,也是一种支持 结构化程序设计 的图形工具。
PAD也是支持五种基本控制结构,并允许递归使用。
PAD的执行顺序是从最左边的主干线的上端节点开始,自上向下依次执行。每遇到判断或循环,就自左向右进入下一层,从表示下一层的纵线上端开始执行,直到该纵线的下端,再返回上一层的纵线转入处,如此继续。
PAD具有清晰的逻辑结构,标准化的图形等优点,更重要的是,它引导设计人员使用结构化程序设计方法,从而提高程序的质量。
2.3.5 过程设计语言
过程设计语言(Process Design Language)也称结构化语言或伪代码
PDL用于描述模块中算法和加工逻辑的具体细节,以便在开发人员之间比较精确的进行交流。语法规则一般分为外层语法和内层语法,外层语法描述结构,内层语法描述操作。
PDL仅仅是对算法或加工逻辑 的一种描述,不可执行。
2.3.6 判定表
对于具有多个相互联系的条件和可能产生多种结果的问题,用结构化语言描述,则显的不够直观和紧凑,此时,可以使用判定表(Decision Table)来描述。
判定表采用表格形式来表达逻辑判断问题,表格划分为四部分
- 左上部分为 条件说明;
- 左下部分为 行动说明;
- 右上部分为 各种条件的组合情况说明;
- 右下部分为 各条件组合情况下相应的活动
C1~C3为条件;
A1~A4为行动;
1-8为不同条件的组合;
T为条件满足,F为条件不满足;
Y为该条件组合下的行动。
2.3.7 判定树
也是用来表示逻辑判断问题的一种常用的图形工具。
常用 树 来表达不同条件下的不同处理流程,比语言、表格的方式更直观。
判定树的左侧(称为树根)为加工名,中间是各种条件,所有的行动都列于最右侧。
***
业务流程重组 BPR
BPR是对企业的业务流程进行根本性的再思考和彻底性的再设计,从而获得诸如成本、质量、服务和速度等方面的业绩来衡量的显著性的成就。
# 业务流程重组BPR遵循的原则
1、以流程为中心
2、以客户为导向的原则
3、以人为本的原则
业务流程管理 BPM
不改什么,就是规范化
3、结构化设计-SD
结构化设计是一种面向数据流的方法,它以SRS和SA阶段产生的数据流图和数据字典等文档为基础,是一个自顶向下的、逐步求精和模块化的过程。
SD方法的基本思想是将软件设计成由 相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段。
其中概要设计的主要任务是确定软件系统的结构,对系统进行模块划分,确定每个模块的功能、接口和模块之间的调用的关系;详细设计的主要任务是为每个模块设计实现的细节。
3.1 模块结构
1、信息隐蔽和抽象
信息的隐蔽原则要求采用封装技术,将程序模块的实现细节隐藏起来,对于不需要这些信息的其他模块来说是不能访问的,使模块接口尽量简单。按照信息隐蔽的原则,系统中的模块应该设计为"黑盒",模块外部只能使用模块接口说明中给出的信息,例如:操作和数据类型。
模块之间相互独立,既易于实现,也易于理解和维护。
抽象原则要求抽取事物最基本的特性和行为,忽略非本质的细节,采用分层次抽象的方式可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程管理。通常,抽象层次包括 过程抽象、数据抽象和控制抽象。
2、模块化
在SD方法中,模块是实现功能的基本单位,一般具有功能、逻辑和状态三个基本属性:
- 功能:描述该模块"做什么"。
- 逻辑:描述模块内部"怎么做"
- 状态:该模块使用时的环境和条件。
在描述一个模块时,必须按模块的外部特性和内部特性分别描述。
- 外部特性:指模块的模块名、参数表和给程序乃至整个系统造成的影响;
- 内部特性:指完成模块功能的程序代码和仅供该模块内部使用的数据。
对于模块的外部环境,如调用该模块的上级模块,只需要了解这个模块的外部特性就足够。
软件设计阶段,通常是先确定模块的外部特性,然后再确定它的内部特性。
模块划分的原则:
- 模块大小要适中:过大导致系统分解不充分,内部可能包括不同类型的功能;过小导致系统的复杂度增加,模块之间调用过于频繁。一般控制到1-2页纸之内,或代码行数为50-200行之间。
- 模块的扇入和扇出要合理:扇出指调用下级模块;扇入指调用上级模块。一般来讲,顶层模块扇出比较 大,中间模块扇出比较小,底层模块有大扇入。要多扇入,少扇出—多调用上级的(复用),少调用下级(复杂度),一般为3-4,不应该超过7。
- 深度和宽度适当:深度表示软件结构中模块的层数,如果层数过多,肯可能有些模块设计的过于简单;宽度是软件结构同一个层次上的模块总数的最大值。一般来讲,宽度越大系统越复杂,对宽度影响最大的因素就是模块的扇出。
3、耦合
耦合表示模块之间联系的程度。
- 紧密耦合:表示模块之间的联系非常强;
- 松散耦合:表示模块之间的联系比较弱;
- 非耦合:表示模块之间没有任何联系,是完全独立的。
对于模块之间耦合的强度,主要依赖于 一个模块对另一模块的调用、一个模块对另一个模块传递的数据量、一个模块施加到另一个模块的控制的多少,以及模块之间接口的复杂程度。
4、内聚
内聚表示模块内部各成分之间的联系程度,是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做目标单一的一件事情。
内聚高,使得模块的可理解性和维护性大大增强。
5、模块类型
3.2 系统结构图-SC
系统结构图(Structure Chart)也称模块结构图。它是软件概要设计阶段的工具,反映系统功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即反映了系统的总体结构。
在系统分析阶段,系统分析师采用SA方法获得由DFD、数据字典和加工说明等组成的系统逻辑模型;在系统设计阶段,系统分析师,可以根据一些规则,从DFD中导出系统初始SC。
常用的SC主要有三种:
- 变换型
- 事务型
- 混合型
3.2.1 SC的组成
SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等4各部分。
- 模块:用矩形表示,框中标注模块的名字,对于已定义或已开发的模块,可以使用双纵边矩形框表示。
- 模块之间的调用关系:上下布局,箭头相连,指向被调用的模块。
- 模块之间的通信:用 调用关系的长箭头 旁边的短箭头表示,注明传递的内容。
- 辅助控制符号:当模块A有条件的调用模块B时,箭头的起点标菱形;模块A反复调用模块C,在调用关系的连线上增加一环状箭头
3.2.2 变换型SC
3.2.3 事务型SC
3.2.4 混合型SC
有时间完善,就是变换型和事物型的整合。
4、面向对象设计-OOD
OOD是OOA方法的延续,基本思想包括 抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。
在OOD中,数据结构和在数据结构上定义的操作算法封装在一个对象中。
由于现实世界中的事物都可以抽象出对象的集合,所以OOD方法是一种更接近现实世界、更自然的系统设计方法。
4.1 设计软件类
1、实体类
2、控制类
3、边界类
4.2 对象持久化与数据库
在面向对象开发方法中,对象只能存在于内存中,而内存不能永久保存数据,如果要永久保存对象的状态,需要进行对象的持久化,对象持久化是把内存中的对象保存到数据库或可永久保存的存储设备中。
在多层软件设计和开发中,为降低系统的耦合度,一般会引入持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联,持久层的设计实现了数据处理层内部的业务逻辑和数据逻辑的解耦。
目前,关系数据库仍旧是使用最为广泛的数据库,如DB2、Oracle、SQL Server等,关系数据库存放的是关系数据,即用二维表格表示的数据,它是非面向对象的。
对象和关系数据 其实是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。
内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,将对象持久化到关系数据库中,需要进行对象/关系的映射(Object/Relation Mapping,ORM),这是一项非常重要且繁琐耗时的工作。
主流的持久化框架技术
- CMP:容器管理持久化 Container-Managed Persistence,基于EJB技术
- Hibernate:是ORM的解决方案
- iBatis:是ORM的解决方案,小巧,易上手
- JDO:Java Data Object Java数据对象
4.3 面向对象设计的原则
4.4 设计模式
4.4.0 设计模式概述
1、软件模式与设计模式
软件模式是将模式的一般概念用于软件开发领域,即软件开发的总体指导思路或参照样板。
软件模式包括 设计模式、架构模式、分析模式和过程模式等,软件生存周期的各个阶段都存在着被认同的模式。在软件模式领域,目前研究最为深入的是设计模式。
设计模式是一套被反复使用、多数人知晓的、经过分类编目、代码设计经验的总结,使用设计模式的目的是为了提高代码的可重用性,让代码更容易被他人理解,保证代码的可靠性。
2、设计模式的关键元素
设计模式包括模式的名称、问题、目的、解决方案、效果、实例代码和相关合计模式等基本要素,其中的关键4个有:
- 模式名称
- 问题
- 解决方案
- 效果
4.4.2 设计模式分类
# 记住三句话
1、创建型模式:处理创建对象
2、结构型模式:处理类和对象的组合
3、行为型模式:描述类或者对象的交互行为
简而言之:
创建型模式:就是处理对象的创建,怎么创建对象
结构型模式:就是类和对象如何组合,怎么搭配,怎么组合到一起
行为型模式:就是类和对象之间能做啥,能有啥操作
考点:1.某种设计模式的应用场景 2.设计模式的分类
主要是分 三类
# 1.创建型模式
这类模式处理对象的创建,试图根据实际情况使用合适的方式创建对象。它们通过以某种方式控制对象的创建来解决问题。创建型模式主要由两个主导思想构成:一是将系统使用的具体类封装起来,二是隐藏这些具体类的实例创建和结合的方式。具体包括单例模式、工厂方法模式、抽象工厂模式、建造者模式(构建器模式)以及原型模式。
# 2.结构型模式
这类模式关注类和对象的组合。它们采用继承、聚合等方式组合类与对象,形成一个更大的结构,以达到某种设计目的。具体包括适配器模式、装饰者模式、代理模式、门面模式(外观模式)、桥梁模式、组合模式以及享元模式。
# 3.行为型模式
这类模式涉及对象和类之间的交互及职责分配。它们不仅描述对象和类的模式,还描述它们之间的通信模式。具体包括策略模式、模版方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式以及解释器模式。
4.4.2.1 创建型模式
核心在: 对象怎么创建
4.4.2.2 结构型模式
关注类和对象的组合
4.4.2.3 行为型模式
偏动态一些
**
面向对象设计(Object-Oriented Design,OOD)是一种软件设计方法,
它以对象和类为基础,通过抽象、封装、继承和多态等概念来描述和组织系统的结构和行为。
下面是常见的面向对象设计过程:
1、需求分析:
2、系统设计:在系统设计阶段,设计者需要综合各种因素来制定系统的整体架构。
这包括确定系统的模块组织结构、模块之间的关系和交互方式。
面向对象设计中,设计者通常会根据需求分析的结果,将系统分解为一系列相互协作的对象和类,确定它们的属性、方法和关系。
3、类设计:在类设计阶段,设计者根据系统需求和系统设计的目标,将对象和类进一步细化,并详细定义它们的属性和方法。
这包括确定类的成员变量、方法以及它们之间的关系(如继承关系、关联关系、聚合关系等)。
类设计要求设计者具备良好的抽象能力和领域知识,以便能够准确地捕捉系统的实体和行为。
4、行为设计:在行为设计阶段,设计者将关注对象和类的行为(方法)的具体实现。
这包括定义方法的算法、流程和逻辑,以及确定方法之间的调用关系和协作方式。
行为设计涉及到应用适当的设计模式和算法来实现系统的功能和需求。
5、界面设计:界面设计是面向对象设计过程中的重要一步,它关注用户与系统之间的交互界面。
设计者需要创建易于使用、直观和美观的用户界面,以提供良好的用户体验。
界面设计涉及到定义用户界面元素、布局、交互方式和视觉风格等。
6、测试和验证:在设计过程的各个阶段,测试和验证是必不可少的。
设计者需要编写测试用例和测试脚本,以验证设计的正确性和功能的有效性。
通过测试和验证,可以及早发现和修复设计中的问题,确保设计的质量和可靠性。
7、迭代和优化:面向对象设计是一个迭代的过程,设计者需要不断地从用户反馈和系统运行情况中汲取经验,进行迭代和优化。
随着设计的不断演进,设计者可以改善系统的可维护性、可扩展性和性能。
面向对象设计是模型驱动和用例驱动的,整个设计过程将OOA阶段产生的需求模型作为输入,并生成供 构建阶段使用的设计模型作为输出。
# 基本思想
面向对象方法将现实世界的事物视为对象,每个对象都有其属性和方法。
通过使用类和对象的概念来模拟现实世界中的问题,类是对对象的抽象,定义了对象的属性和方法。
# 特点
(1)封装:将对象的属性和方法封装到一个独立的实体中(类),隐藏内部实现细节,只通过特定的接口与外界交互,增强数据的安全性和模块化。
(2)继承:从现有类派生新类的方式,新类继承了原始类的属性和方法,可以添加或覆盖它们,提供代码重用和层次化的类结构。
(3)多态:同一消息可以调用不同对象的不同方法,使得代码更具灵活性和可扩展性。
# 实施步骤:
通常包括
1)定义类和对象、
2)确定类之间的关系、
3)设计类的属性和方法、
4)实现类的功能等。
补充多态说明[考题]
1.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫多态;
2.多态有几种不同的形式。
3.一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态称为 包含多态;
4.同一个算子在不同的表达式中可能有不同的操作意义,称为 过载多态;
5.编译程序根据上下文判断算子的操作意义,称为:算子鉴别
4、用户界面设计
非重点,考的话,就此页
# 人机界面设计的三大原则
1、置于用户控制之下
2、减少用户的记忆负担
3、保持界面的一致性
# 1、置于用户的控制之下
以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式;
提供灵活的交互;
允许用户交互可以被中断和取消;
当技能级别增加时 可以使交互流水化 并 允许定制交互
使用户隔离内部技术细节;
设计应允许用户和出现在屏幕上的对象直接交互
# 2、减少用户的记忆负担
减少对短期记忆的要求;
建议有意义的缺省;
定义直觉性的捷径;
界面的视觉布局 应该 基于真实世界的隐喻;
以不断进展的方式揭示信息。
# 3、保持界面的一致性
允许用户当当前任务放入有意义的语境;
在应用系列内保持一致性
如 过去的交互模型 已建立起了用户期望,除非有迫不得已的理由,不要去改变它。
下述非重点—
一、 "4+1"视图
“4+1视图” 多用于软件分析和设计
# 了解即可
# 核心:用例视图
# 考点:每个视图对应的角色、以及是做什么的
1、逻辑视图 - Logical View 系统[分析/设计]人员
- 从系统的功能角度描述系统内部如何实现其功能
- 显示 系统的组件、类、接口以及它们之间的关系
- 反映软件系统的功能情况,一般用【类图】
2、实现视图/开发视图 - Implementation View / Development View 程序员
- 关注软件开发环境下实际模块的组织
- 一个良好的开发视图应能够找到所有代码和二进制交付件,并显示它们与逻辑架构元素的关系。
3、部署视图 - Deployment View / Physical View 系统和网络工程师
- 也称:物理视图、拓扑试图
- 关注软件到硬件的映射以及系统的分布式特性
4、进程视图 Process View / Behavioral View 系统集成人员
- 也称:行为视图、过程视图
- 关注系统各个组件和模块之间的通信时序、数据的输入输出
- 描述程序执行时的【并发】状态,以及如何协同工作实现功能。
- 一般用【时序图和流程图】
5、用例视图 Use Case View / Scenario View 最终用户
- "核心视图"
- 从外部参与者的视角描述系统的功能。
- 显示系统的参与者与系统功能用例之间的关系。
- 反映系统的最终用户需求和交互设计。
- 是其他四个视图的冗余,用于整合和展示系统的整体功能。
原题
在RUP[统一过程开发]中采用4+1视图模型来描述软件系统的体系结构,4+1视图包括:逻辑视图、实现视图、进程视图、部署视图和用例视图。
1、分析人员和测试人员关系的是系统的行为,因此会侧重于用例视图;
2、最终用户关系的是系统的功能,因此会侧重于逻辑视图;
3、程序员关心的是系统的配置、装配等问题,因此会侧重于实现视图;
4、系统集成人员关系的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重进程视图;
5、系统工程师关心的是系统的发布、安装、拓扑结构等问题,因此会更侧重 部署视图。
二、Web应用设计
2.1 web技术与演变
2.1.1 web应用技术分类
2.1.2 单台机器到数据库与web服务器分离
2.1.3 应用服务器集群
2.2 负载均衡技术
2.2.1 应用层负载均衡技术
1、http重定向:HTTP重定向就是应用层的请求转发。
用户的请求其实已经到了https重定向负载均衡器,服务器根据算法要求用户重定向。
用户收到重定向请求后,再次请求真正的集群。
特点:实现简单,但是性能较差。
2、反向代理服务器:在用户的请求到这反向代理服务器时(已经到达网站机房),
由方向搭理服务器根据算法转发到具体的服务器。
常用的apache、nginx都可以充当方向代理服务器。
特点:部署简单、但搭理服务器可能成为性能的瓶颈。
2.2.2 传输层负载均衡技术
2.2.3 数据库读写分离化
2.2.4 用缓存缓解库读取压力
2.3 CDN
2.4 Web结构
2.4.1 MVC
MVC=Model View controller
模型、视图、控制器
2.4.2 MVP
2.4.3 MVVM
2.4.4 REST(表述性状态传递)
2.4.5 微服务
2.5 缓存技术
2.6 XML和JSON
2.7 web应用服务器
2.8 其他