分层 分割(优秀)
来源:互联网 发布:多益网络充值中心 编辑:程序博客网 时间:2024/06/05 23:04
2.1.1 分层
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。
分层结构在计算机世界中无处不在,网络的7层通信协议是一种分层结构;计算机硬件、操作系统、应用软件也可以看作是一种分层结构。在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层,如表2.1所示。
表2.1 网站分层架构
应用层
负责具体业务和视图展示,如网站
首页及搜索输入和结果展示
服务层
为应用层提供服务支持,如用户管理
服务,购物车服务等
数据层
提供数据存储访问服务,如数据库、
缓存、文件、搜索引擎等
通过分层,可以更好地将一个庞大的软件系统切分成不同的部分,便于分工合作开发和维护;各层之间具有一定的独立性,只要维持调用接口不变,各层可以根据具体问题独立演化发展而不需要其他层必须做出相应调整。
但是分层架构也有一些挑战,就是必须合理规划层次边界和接口,在开发过程中,严格遵循分层架构的约束,禁止跨层次的调用(应用层直接调用数据层)及逆向调用(数据层调用服务层,或者服务层调用应用层)。
在实践中,大的分层结构内部还可以继续分层,如应用层可以再细分为视图层(美工负责)和业务逻辑层(工程师负责);服务层也可以细分为数据接口层(适配各种输入和输出的数据格式)和逻辑处理层。
分层架构是逻辑上的,在物理部署上,三层结构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,使网站拥有更多的计算资源以应对越来越多的用户访问。
所以虽然分层架构模式最初的目的是规划软件清晰的逻辑结构便于开发维护,但在网站的发展过程中,分层结构对网站支持高并发向分布式方向发展至关重要。因此在网站规模还很小的时候就应该采用分层的架构,这样将来网站做大时才能有更好地应对。
2.1.2 分割
如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。
网站越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。
大型网站分割的粒度可能会很小。比如在应用层,将不同业务进行分割,例如将购物、论坛、搜索、广告分割成不同的应用,由独立的团队负责,部署在不同的服务器上;在同一个应用内部,如果规模庞大业务复杂,会继续进行分割,比如购物业务,可以进一步分割成机票酒店业务、3C业务,小商品业务等更细小的粒度。而即使在这个粒度上,还是可以继续分割成首页、搜索列表、商品详情等模块,这些模块不管在逻辑上还是物理部署上,都可以是独立的。同样在服务层也可以根据需要将服务分割成合适的模块。
- 分层 分割(优秀)
- DELPHI中优秀的字符串分割函数
- Delphi中优秀的字符串分割函数
- Dephi 中优秀的字符串分割函数
- Delphi中优秀的字符串分割函数
- 图像分割OWT-UCM Hierarchical Segmentation 算法代码应用并提取分层分割结果
- 代码分层(模块化)
- (转)社会分层
- 分层
- 分层
- 分层
- 分层
- 分层
- 分层
- 分层
- 分层
- 分层
- GUI分层技术(分层窗体、Layered Window)
- Hibernate中的merge方法详解
- mysql允许远程访问 root
- 异常捕捉
- leetcode笔记:Single Number II
- c语言复杂数据类型
- 分层 分割(优秀)
- 用Java语言编写一个金字塔程序
- 动画演示10个超有趣的Linux命令
- CSS基础知识
- C++11 引用叠加规则和模板参数类型推导规则
- UML——交互图
- android 的service
- .net做伪静态后提示只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web
- android webView 不能上网 无法打开网页的问题