如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭

Layer 和Tier都是层,但是他们所表现的含义不同,Tier指的是软件系统中物理上的软件和硬件,具体指部署在某服务器上,而Layer(逻辑层)指软件系统中完成特定功能的逻辑模块,逻辑概念。

Layer是逻辑上 组织代码的形式。比如逻辑分层中表现层,服务层,业务层,领域层,他们是软件功能来划分的。并不指代部署在那台具体的服务器上或者,物理位置。

Tier这指代码运行部署的具体位置,是一个物理层次上的划为,Tier就是指逻辑层Layer具体的运行位置。所以逻辑层可以部署或者迁移在不同物理层,一个物理层可以部署运行多个逻辑层。

从Layer和Tier就会延伸到逻辑架构和物理架构。我们一个逻辑分层(N-Layer)的部署运行环境可以在一台或者是多台服务器,由于物理环境的多样性,逻辑层次的部署也具有多样性。这就需要我们必须了解物理架构和逻辑架构。

大多数情况下我们所说的N层应用系统指的是物理模型,具体模块的分布物理位置。客户端,服务层,逻辑层,数据库服务器,与我们的逻辑模型之间并不是一对一的关系。逻辑上的分层架构与物理位置上的服务器数量和网络边界多少无关,逻辑架构层次只与我们的功能划分相关,是按照功能划分。经典的3-Layer架构:表现层,业务层,数据访问层,他们可能运行在同一物理位置上。也可以是3台计算机上,这并不是逻辑架构所关注的。逻辑层次和物理分层数量关系为:逻辑层数必须不小于物理层数,因为一个物理层可以部署一个或者多个逻辑层次,逻辑层次只能迁移在不同的物理环境。

逻辑层次的架构能帮助我们解决逻辑耦合,达到灵活配置,迁移。

一个良好的逻辑分层可以带来:

  1. 逻辑组织代码

  2. 易于维护

  3. 代码更好的重用

  4. 更好的团队开发体验

  5. 代码逻辑的清晰度

一个良好的物理架构可以带来:

  1. 性能的提升

  2. 可伸缩性

  3. 容错性

  4. 安全性

逻辑层次越多会影响程序运行的性能,但代码层次的低耦合,松散化,是需要架构师的权衡的,我觉得一般应用程序的瓶颈并不在这里。

如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭

转载于:https://www.cnblogs.com/wyxhd2008/p/3703926.html

架构设计--逻辑层 vs 物理层相关推荐

  1. 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园

    我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园

  2. 系统架构师-基础到企业应用架构-业务逻辑层

    一.上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具 体实现方式简单的分为面向过程与面向对象的开 ...

  3. 三层架构 业务逻辑层 workflow

    三层架构: 用户界面层 user interface layer 业务逻辑层 business logic layer 数据访问层 data access layer 系统的主要功能和业务逻辑都在业务 ...

  4. 优惠券卡包应用数据库字段设计/系统架构设计/缓存层设计方案

  5. 架构设计-数据访问层简述

    在前面简单描述了下服务层,SOA面向服务架构,架构设计-业务逻辑层,以及一些面面向设计原则理解和软件架构设计箴言.这篇博客我们将继续进入我们的下一层:数据访问层.无论你用的是什么开发模式或者是业务模式 ...

  6. 产品经理如何基于需求迭代产品(下篇3):产品的整体设计之逻辑层和交互层...

    上一篇:产品经理如何基于需求迭代产品(下篇2):产品的整体设计之业务层和系统层 整体设计 逻辑层:实体建模.角色结构.逻辑流程 逻辑层顾名思义,就是逻辑上的东西,是系统和业务的内在逻辑.逻辑明确才能开 ...

  7. 产品经理如何基于需求迭代产品(下篇3):产品的整体设计之逻辑层和交互层

    作者简介: 周文熙老师,携程商业产品经理,多年工作经验, 公众号:vency不二 掘金专栏:https://juejin.im/user/58cb4b612f301e007e3cc287/posts ...

  8. 桥接模式的应用之三层架构中的业务逻辑层(BLL)与数据访问层(DAL)的解耦

    各层的作用 ①用户界面层:只负责显示和采集用户操作. ②业务逻辑层:负责UI和DAL层之间的数据交换,是系统架构中体现核心价值的部分.它关注点主要集中在业务规则的制定.业务流程的实现和业务需求的有关系 ...

  9. MYSQL性能调优及架构设计学习笔记-基础篇MYSQL架构组成

    为什么80%的码农都做不了架构师?>>>    目录 小结 MYSQL物理文件组成 MYSQL系统架构 MYSQL自带工具使用介绍 小结 本章主要从逻辑层与物理层两个方面介绍了MYS ...

最新文章

  1. python 删除 csv 文件的行
  2. ubuntu的学习教程(常用操作)
  3. vagrant box php开发环境配置 -- 重新打包发布vagrant box
  4. c++中两个类互相引用的问题
  5. 应用计算机基础1答案,2017年计算机应用基础习题及答案
  6. iOS开发点击UIButton实现UIView的旋转
  7. LetCode-算法-整数反转
  8. Oracle 安全性一
  9. PHP中的Array类型其实是Hashtable
  10. flashBuilder安装Subclipse与XMLBuddy插件
  11. linux系统函数 utime,utime函数
  12. sqlserver 迁移
  13. 201521123070 《JAVA程序设计》第8周学习总结
  14. Tech Insight携阿里云Link物联网平台助力实现“IoT全栈开发”
  15. php书店网站模板源代码_网上书店整套html模板
  16. segy地震数据的读取python_SEGY地震数据格式分析与读写
  17. 如何手动彻底消除U盘使用痕迹
  18. jquery实现注册表单验证
  19. java开发app_使用java制作app教程
  20. 从零开始学习node.js

热门文章

  1. python不规则切片_python的切片(slice)机制
  2. voronoi图编程构造_可视化编程真的有那么糟糕?
  3. 目标检测(五)--R-CNN
  4. 系统学习深度学习(十四)--权重初始化Xavier
  5. 系统学习深度学习(七)--主流深度学习开源框架对比
  6. 决策树(一)--ID3
  7. 国产系统linux硬盘分区,Linux系统硬盘分区方案推荐
  8. echo输出不重复行到文件 shell_Shell脚本echo指令使用小技巧
  9. c语言程序设计删除,C程序设计语言练习1-23 编写一个删除C语言程序中所有的注释语句...
  10. 理解RDD的Partition