当前位置:
文档之家› 4-2 SaaS与云端软件部署
4-2 SaaS与云端软件部署
2-3 SaaS与云端软件部署
▪ 软件实体之间的关系:
输入数据
请求按钮
输出数据 表示层
业务处理请求和业务处 理所需的全部输入数据
业务处理开始 数据存取请求
全部处理结束
业务处理结束 业务处理程序
SQL 请求开始
DBMS 执行SQL SQL 请求结束
数据层
数据登录/更新/读取的 请求
数据登录/更新/读取的 结果
▪ Level 4 (Scalable, Configurable, Multi-Tenant-Efficient) – 针对level 3中可能出现的资源伸缩性问题,增加了负载平衡功 能。 – 在多台服务器上部署多个实例,顾客请求被分配到不同实例上。 – 提供商可根据需求大小,动态调整资源,而无需改变软件本身。
▪ 可以看作是C/S结构的扩展。 ▪ 优势:移动,可以做到anytime & anywhere使用软件的功能。
▪ 客户端程序的体现形式:各类App
M/C结构
2-3 SaaS与云端软件部署
M/C结构
2-3 SaaS与云端软件部署
M/C结构
2-3 SaaS与云端软件部署
软件工程
3 主流软件形态:SaaS
2-3 SaaS与云端软件部署
从package-based software到SaaS的四个阶段
▪ Level 2 (Configurable) 可配置 – 通过配置,一套相同的软件系统可以适应不同顾客的需求; – 运行时,该系统为不同顾客产生不同的运行实例;
2-3 SaaS与云端软件部署
从package-based software到SaaS的四个阶段
全;
查询和浏览工作站 修改和维护工作站
C/S+B/S混合模式
2-3 SaaS与云端软件部署
▪ 遵循“查改有别”的原则:
– 不管用户处于企业内外什么位置(局域网或Internet),凡是需 要对数据进行更新操作的(Add, Delete, Update),都需要使 用C/S结构;
– 如果只是执行一般的查询与浏览操作(Read/Query),则使 用B/S结构。
软件架构
2-3 SaaS与云端软件部署
▪ 软件越来越复杂,组成部分越来越多 – 多个源文件 – 多种类型的文件:用户界面、算法、数据层程序、配置文件、 etc
▪ 不是单纯的代码,还涉及到所依赖的硬件和网络环境 – 物理位置:单机、服务器、手机端、可穿戴硬件、etc – 网络支持:有线网络、3G/4G、WiFi等
▪ SaaS与传统B/S的本质区别:多租户共享Server和软件实例。
2-3 SaaS与云端软件部署
从package-based software(基础软件包)到SaaS的四个阶段
▪ Level 1 (Ad-Hoc/Custom) 定制开发 – 将传统的软件系统迁移为基于网络的应用; – 每个用户具有自己的一套独立系统(DB、app、code),在提 供商的硬件环境下运行自己的实例。
▪ 多个软件实体之间如何组织起来? ▪ 软件和硬件之间的关系如何?
此即“软件架构”(Software Architecture)所关注的内容。
软件架构
2-3 SaaS与云端软件部署
软件架构(software architecture)是一系列相关的 抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件体系结构是构建 计算机软件实践的基础。
业务处理开始 数据存取请求 业务处理结束 数据存取程序
一个例子:客户端/服务器结构(C/S)
2-3 SaaS与云端软件部署
▪ 硬件和网络环境之间的关系:
打印机
PWR OK
WIC0 ACT/CH0 ACT/CH1
WIC0 ACT/CH0 ACT/CH1
ET H ACT COL
调制解调器
数据库服务器
Power/TX Link/Rx
▪ 为简化起见,可将其中某些部分合并:
– 边界类与控制类的合并:在用户界面中直接嵌 入业务逻辑;
– 控制类与实体类的合并:控制类中包含所有的 业务逻辑,直接与持久化存储打交道。
– 合三为一,不分层。
▪ 需根据系统的NFR需求,做出最佳的选择。
2-3 SaaS与云端软件部署
SaaS多租户技术
▪ 多租户技术(multitenancy technology) 或称多重租赁技术,是 一种软件架构技术,实 现如何于多用户的环境 下共用相同的系统或程 序组件,并且仍可确保 各用户间数据的隔离性。
软件架构描述的对象是直接构成系统的抽象组件。 各个组件之间的连接则明确和相对细致地描述组件 之间的通讯。在实现阶段,这些抽象组件被细化为 实际的组件,比如具体某个类或者对象。在面向对 象领域中,组件之间的连接通常用接口来实现。
软件架构
2-3 SaaS与云端软件部署
一个例子:客户端/服务器结构(C/S)
▪ B/S将服务集中在一起管理,统一服务于客户端,从而具备了 良好的容错能力和负载平衡能力。
C/S+B/S混合模式
2-3 SaaS与云端软件部署
▪ 为了克服C/S与B/S各自的缺点,发挥各自的优点,在实际应 用中,通常将二者结合起来;
▪ 遵循“内外有别”的原则:
企业外部 企业内部
– 企业内部用户通过局域网直接 访问数据库服务器
SasS的层次划分
2-3 SaaS与云端软件部署
表示层
1 接收用户输入的数据 与指令、展示数据的 处理结果; 2 本身并不维护数据, 也不包含业务逻辑;
数据/指令 数据
控制层
1 统一维护一组对象; 2 根据界面层发来的指令,调度这 些对象的行为; 3 除了调度之外,本身也可能包含 业务逻辑(处理对象集合的逻辑); 4 亦可直接访问DB;
– 表现层:浏览器
– 逻辑层:
• Web服务器
• 应用服务器
客户端 浏览器
– 数据层:数据库服务器
▪ B/S与三层C/S结构的区别:
客户端
– C/S:表现层仍部署在客户端; 浏览器
– B/S:客户端除了浏览器之外 无任何程序需要部署。
Web服务器
数 据 库 数据库 服 务 器
B/S结构
客户端
表现层
▪ Level 3 (Configurable, Multi-Tenant-Efficient) 高性能的多 租户架构 – 在前一阶段的基础上增加了“多租户”特性; – 因而,多个顾客可以同时使用一个程序实例。 – 优点:服务资源共享,利用效率高。
2-3 SaaS与云端软件部署
从package-based software到SaaS的四个阶段
– 客户机(前端,front-end):业务逻辑、与服务器通讯的接口; – 服务器(后端:back-end):与客户机通讯的接口、业务逻辑、
数据管理。
▪ 一般的,
– 客户机为完成特定的工作向服务器发出请求;
– 服务器处理客户机的请求并返回结果。
客户机
Data(数据) 服务器
客户机/服务器的层次性
▪ “客户机-服务器”结构的发展历程:
数据库服务器1 用户1
ห้องสมุดไป่ตู้
应用服务器
数据库服务器2
Internet Intranet
用户2
...
...
用户n
三层C/S结构
2-3 SaaS与云端软件部署
输入数据
请求按钮
输出数据 表示层
业务处理请求和 业务处理所需的
全部输入数据
全部处理结束
SQL 请求开始
DBMS 执行SQL SQL 请求结束
数据层
数据登录/更新 /读取的请求
网页脚本 页面
表现层
浏览器
Web服务器
2-3 SaaS与云端软件部署
应用层
数据层
应用服务器层 数据库访问层 应用服务器
数据库 数据服务器
B/S结构
2-3 SaaS与云端软件部署
B/S结构
2-3 SaaS与云端软件部署
▪ 基于B/S体系结构的软件,系统安装、修改和维护全在服务器 端解决,系统维护成本低:
软件工程
软件工程 第二章 敏捷开发过程
4-2 SaaS与云端软件部署
初佃辉 2022年3月23日
主要内容
1 软件架构初探 2 C/S、B/S、M/S 3 主流软件形态:SaaS 4 SaaS的部署环境:云平台
2-3 SaaS与云端软件部署
软件工程
1 软件架构初探:超越程序和代码
C/S、B/S、M/C
• C/S结构;
修改和维护 工作站
• 交互性增强;
• 数据查询与修改的响应速度高;查询和浏览
工作站
– 企业外部用户通过Internet访问
Web服务器/应用服务器
B/S结构
数据
库服
务器
Web服务器 Internet
C/S结构
内部局域网
• B/S结构;
Internet
• 用户不直接访问数据,数据安 用户
逻辑层
对象(数据+业务逻辑)
数据的持久化
持久化层 数据的持久存储(DB/file)
有关分层的补充说明
▪ 表示层、控制层、逻辑层、持久化层、数据层: 这种划分是否一定有必要?——NO
▪ 这种划分的目的是为了“清晰分工”、“职责 明确”,但同时也增加了系统运行时的性能代 价;——为完成一项功能需要在多层之间多次 调用
– 两层C/S
– 三层C/S
– 多层C/S
客户界面
2-3 SaaS与云端软件部署
数据库 服务器
客户界面
业务逻辑 服务器
数据库 服务器
客户界面