什么是“图层”和“层级”的区别?(What's the difference between

2019-06-17 19:11发布

什么是“图层”和“层级”的区别?

Answer 1:

逻辑仅仅是组织代码的方式。 典型的层包括表示,业务和数据 - 一样的传统的3层模型。 但是,当我们谈论层,我们只谈论的代码逻辑组织。 绝不是暗示,这些层可能在不同的计算机或在一台计算机上,甚至在一台计算机上一个进程不同的进程中运行。 我们要做的是在讨论组织代码为一组特定的功能定义的层的一种方式。

然而,物理大约只有代码运行在那里。 具体来说,层是一层一层地部署并在层运行的地方。 换句话说,层是层的物理部署。

来源:罗克福德Lhotka, 如果所有的应用程序是n层?



Answer 2:

阅读关于这个问题斯科特Hanselman的帖子: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

但请记住,在“斯科特世界”(这是希望你的世界也:))一“层”是部署单元,而一个“层”内码责任的逻辑分离。 你可能会说你有一个“三梯队”系统,但对一台笔记本电脑上运行它。 你可能会说你有一个“3层”系统,但仅具有跟数据库的ASP.NET页面。 有权力的精度,朋友。



Answer 3:

层指的代码逻辑分离 - 。 逻辑层帮助你组织你的代码更好。 例如,应用程序可以具有以下的层。

1)表示层或UI层2)业务层或业务逻辑层3)数据访问层或数据层

该aboove三层居住在自己的项目,可能是3个项目,甚至更多。 当我们编译的项目中,我们得到了相应的处理层的DLL。 因此,我们有3个DLL现在。

取决于我们如何部署应用程序,我们可以有1〜3层。 正如我们现在有3个DLL的,如果我们部署的所有DLL的同一台机器上,那么我们只有1个物理层,但3个逻辑层。

如果我们选择部署一个单独的机器上的每个DLL,然后我们有3层和3层。

所以,层是一个逻辑分离和层级是一个物理分离。 我们也可以说,是层级层的物理部署。



Answer 4:

为什么总是试图用复杂的话吗?

= 您的代码的一部分 ,如果应用程序是一个蛋糕,这是一个切片。

一个级别 = 物理机 ,一台服务器。

阿层托管一个或多个层。


层的实施例:

  • 表示层=通常所有的代码相关的用户界面
  • 数据访问层=关系到你的数据库访问的所有代码

一级:

您的代码托管在服务器上=你的代码是在一线主持。

你的代码是在2个服务器托管=您的代码托管在2层。

例如,一台机器托管网站本身(表示层),另一台机器更安全托管更加安全敏感的代码(真正的商业代码 - 业务层,数据访问层等)。


有落实分层的架构这么多的好处。 这是棘手和正确实施分层应用需要时间。 如果你有一些,看看这篇文章从微软: http://msdn.microsoft.com/en-gb/library/ee658109.aspx



Answer 5:

我找到了一个定义,指出层是一个合乎逻辑的分离层是物理分离。



Answer 6:

  1. 用简单的英语中, Tier是指“各自在一系列的行或一个结构的水平放置在另一个的上面一个”,而Layer是指“一个片,量或材料的厚度,通常的几个中的一个,覆盖表面或身体”。
  2. 层是一个物理单元 ,在码/进程中运行。 例如:客户端,应用服务器,数据库服务器;

    层是一个逻辑单元 ,如何组织的代码。 如:呈现(视图),控制器,型号,仓库,数据访问。

  3. 层级代表的各台计算机和系统设计的演示,业务,服务和数据功能的物理分离。

    层是软件组件,使应用程序或服务的逻辑分组。 他们帮助不同类型的组件执行的任务进行区分,从而更容易创建一个支持成分的可重用的设计。 每个逻辑层包含多个分组为子层分立元件的类型,与每个子层执行特定类型的任务。

两层模式表示客户端和服务器。

在这种情况下,客户端和服务器可以存在于同一台机器上,也可以位于两个不同的机器上。 下面的图,说明了在客户端与位于客户端层Web服务器交互的常见的Web应用场景。 这一层包含了表示层逻辑和任何所需的业务层逻辑。 Web应用程序与承载数据库层,它包含了数据层逻辑一个单独的机器进行通信。

图层和层级的优点:

  • 分层有助于最大限度地代码的可维护性,优化的方式,以不同的方式部署在应用程序的工作原理,并提供某些地方的技术或设计决策必须做出位置之间的明确划分。

  • 把你的图层在不同的物理层可以通过跨多个服务器分布负载提升性能。 它还可以与安全通过分离更敏感元件和层到不同的网络或Internet与Intranet上的帮助。

A 1层应用程序可以是3层的应用程序。



Answer 7:

我使用层来形容我的解决方案的组件内的建筑师或技术堆栈。 我用层进行逻辑分组的那些组件通常当网络或进程间通信参与。



Answer 8:

是我亲爱的朋友们正确说。 层是应用的逻辑分区,而层是系统层分区的物理分区是取决于层分区。 就像一个应用程序中执行单独的机器上,但它遵循的3层架构,因此我们可以说,层架构可以在一个三层体系结构来存在。 在简单的术语3层架构可以在单一机器设备那么我们可以说,它是1层结构。 如果我们实行单独的机器上每一层则其所谓的3层架构。 层也可以能跑几个层次。 在层结构相关的部分容易地传达给对方。
就像我们按照下面给出的架构

  1. 表示层
  2. 业务逻辑层
  3. 数据访问层

一个客户端可以交互,以“表现层”,但他们访问下面层的(如商业逻辑层的公共组件)的公共组件“业务逻辑层”由于安全原因。
Q *为什么我们使用层架构? 因为如果我们执行层的建筑那么我们提高我们的应用程序的效率喜欢

==>安全

==>管理

==>可扩展性

其他需要像开发应用后,我们需要改变DBMS或修改业务逻辑等,则有必要对所有。

Q *为什么我们使用三层架构?

因为物理实现每一层的给出了一个更好的效率,而不层架构我们无法实现三层架构。 单独的机器来实现单独的层和分离层是实现一个或多个层,这就是为什么我们使用它。
它采用了容错的目的。 ==>易于维护。

简单的例子

就像某家银行中室开,在哪些类别的员工:

  1. 门卫
  2. 一个人的现金
  3. 一个人谁是负责引进银行方案
  4. 经理

他们都是系统的相关组件。

如果我们将银行贷款用途则第一门卫打开与微笑门,我们去那介绍贷款的所有计划,我们去经理舱后,并通过贷款人近了。 之后,我们终于进入到收银柜台拿贷款。 这些都是银行的层结构。

什么层次? 银行的分行在城里开,之后在另一个城镇,后在另一个但什么是每个分支的基本要求

  1. 门卫
  2. 一个人的现金
  3. 一个人谁是负责引进银行方案
  4. 经理

恰好层和层的相同的概念。



Answer 9:

我想从下面的描述微软应用架构指南2

层描述的在应用程序中的功能和组件的逻辑分组; 而层级描述的功能性在不同的服务器,计算机,网络,或远程位置的物理分布和组件。 虽然这两个层和层使用同一组的名称(表示,业务,服务和数据),请记住,只有层级意味着物理分离。



Answer 10:

的逻辑分离related-functionality[code]的应用程序内,层之间的通信是显式的,松散耦合。 [表示逻辑,应用逻辑,数据访问逻辑]

是物理分离layers中的单个计算机(处理)[其中获得托管在单个服务器。

如示图:

1-Tier & 3-Layers « App Logic  with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer  « Browser View[php], App Logic[jsp], DataStorage

N- 层的优点:
更好的安全性
可扩展性 :随着企业的成长,您可以扩展您的数据库层与DB-聚类出接触其他层。
可维护性 :网页设计师可以改变查看代码,用了感人的其他层的其他层。
轻松升级或增强[例:您可以添加额外的应用程序代码,升级存储区域,甚至添加多个表示层的独立图谋像手机,平板电脑,计算机]



Answer 11:

层是概念实体,并且被用于从分离的逻辑上看软件系统的功能; 当你实现了你的系统使用不同的方法组织这些层; 在这种情况下,我们称他们并不像层,但由于层级。



Answer 12:

当你谈论演示,服务,数据,网络层,你所谈论的层。 当你“单独进行部署”,请您谈谈层。

层次是所有关于部署。 以这种方式,我们这里有有角创建一个前端的应用程序,它有一个后端为的MongoDB和前端和后端之间交互的中间层。 所以,当这个前端应用,数据库应用,中间层是所有单独部署,我们说这是一个3层应用程序。

优势:如果我们需要扩展我们在未来的后端,我们只需要独立地扩展后端,而且也没有必要扩大前端。



Answer 13:

从技术上层可以是一种对代码运行所需的最小的环境。

例如,假设一个3层的应用程序可以运行在

  1. 3台物理机器没有操作系统。
  2. 1个物理机与没有OS 3个的虚拟机。

    (这是一个3-(硬件)层的应用程序)

  3. 1个物理机3个的虚拟机用3种不同/相同的操作系统

    (这是一个3-(OS)层的应用程序)

  4. 1物理机1个虚拟机1个OS但3 AppServers

    (这是一个3-(应用服务器)层的应用程序)

  5. 1物理机1个虚拟机1周的OS与1的AppServer但3 DBMS

    (这是一个3-(DBMS)层的应用程序)

  6. 1个物理机与1个OS用1个AppServers和1个​​DBMS但3个Excel工作簿1个的虚拟机。

    (这是一个3-(应用服务器)层的应用程序)

Excel工作簿是VBA代码运行所需的最低环境。

那些3点的工作簿可以坐在单个物理计算机或多个上。

我注意到,在实践中的人时,他们说,在应用说明中,“一线”是指“OS层”。

也就是说,如果一个应用程序上3个独立的OS那么它的一个3层的应用程序运行。

因此,描述一个应用一个迂腐正确的方法是

“1至3层能够,在2个层级运行”应用程序。

:)


层只是类型的代码在相对于职责withing该应用(例如表示,数据,安全等)的功能分离



文章来源: What's the difference between “Layers” and “Tiers”?