架构设计逻辑层 vs 物理层

摘要:
层和层都是层,但它们有不同的含义。层是指软件系统中的物理软件和硬件,具体部署在服务器上,而层是指完成软件系统中特定功能的逻辑模块和逻辑概念。层是逻辑组织代码的形式。我们的逻辑分层部署和操作环境可以位于一个或多个服务器上。由于物理环境的多样性,逻辑分层部署也是多样化的。经典的三层架构:表示层、业务层和数据访问层。它们可能在同一物理位置运行。

    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. 安全性

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

免责声明:文章转载自《架构设计逻辑层 vs 物理层》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Opentracing 链路追踪JS Guid生成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

华为实施微服务架构的五大军规

前言 随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC框架、分布式服务框架,最后就是当今非常流行的微服务架构。 微服务化架构并非银弹,它的实施本身就会面临很多陷阱和挑战,涉及到设计、开发、测试、部署、运行和运维等各个方面,一...

SOA架构设计分析

  SOA(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。   SOA可以满足企业软件架构的需要,大大增加了企业对于IT系统更改的灵活性,它为企业软件架构的搭建定义了一种新方法,使得一些大企业或不在同一地区的开发团队...

随笔聊架构

一、架构的定义 所谓一千个架构师中有一千种“最好的架构”模式。 “架构”是我们这行业种一个很常见的词,表明其必然也是经历了很长的岁月打磨所形成的一个词。架构的这个词出现的意义是什么?为了解决什么问题?只有把这2个问题想明白了,才能设计出一个良好的项目架构。 我认为 架构类似于画房屋设计图,在刚开始我们盖一层楼的小房子的时候,拍拍脑门想一下,脑子里有个大概的...

为什么在做微服务设计的时候需要DDD?

记得之前在规划和设计微服务架构的时候,一个同事给我我一个至今依然记忆深刻的提示:你的设计蓝图里为什么没有看到DDD的影子呢? 随着对充血模型的领域认知的加深,我越来越觉得DDD的重要性,但是DDD内容繁多,是不是要深入去了解呢,我觉得不必入坑太深,个人浅见,它最核心的一点就是针对贫血模型的不足而设计,把原先传统的贫血模型里的业务逻辑拎出来,融入到Domai...

Tier和Layer

在实际开发工作中。我们经常听到“架构设计”和“架构师”这种名词,它并不新奇和神奇,可是却非常少有人对“架构”有全面的了解和认识。更谈不上掌握了。事实上,也仅仅有极少数人能成为或者被冠以“架构师”这种title。为此。笔者总结了实践中对架构的一些理解,希望能够补充非常多人对此认识上的不足,纠正一些误解。 架构的分类 对于“架构”来讲。理论上划分了5种架...

ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本

为什么需要ARM64架构的OpenJDK8的Docker镜像 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(也可能是其他ARM环境,如华为的泰山ARM服务器),需要JDK8镜像作为基础镜像。 OpenJDK的官方Dockerfile 去OpenJDK的docker镜像官网查找找,地址是:...