“图层”和“图层”之间有什么区别?
答案 0 :(得分:234)
逻辑图层仅仅是一种方式 组织你的代码。典型的图层 包括演讲,商业和 数据 - 与传统相同 3层模型。但是当我们说话的时候 关于层,我们只谈论 代码的逻辑组织。没有 方式是暗示这些层 可能在不同的计算机上运行或在 单一的不同过程 计算机甚至是一个过程 在一台计算机上。我们所做的一切 正在讨论一种组织方式 代码定义为一组图层 具体功能。
然而,物理层只是关于 代码运行的地方。特别, 层是层的所在 部署和层运行的位置。在 换句话说,等级是物理的 部署层。
来源:Rockford Lhotka,Should all apps be n-tier?
答案 1 :(得分:41)
阅读Scott Hanselman关于此问题的帖子:http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
请记住,在“斯科特世界”(希望你的世界也是:))中,“层”是部署的一个单元,而“层”是代码内的责任的逻辑分离。您可能会说您拥有“3层”系统,但可以在一台笔记本电脑上运行它。您可能会说您有一个“3层”系统,但只有与数据库通信的ASP.NET页面。朋友们有精确的力量。
答案 2 :(得分:29)
图层是指代码的逻辑分离。逻辑层可以帮助您更好地组织代码。例如,应用程序可以包含以下层。
1)表示层或UI层 2)业务层或业务逻辑层 3)数据访问层或数据层
上三层位于他们自己的项目中,可能是3个项目甚至更多。当我们编译项目时,我们得到相应的图层DLL。所以我们现在有3个DLL。
根据我们部署应用程序的方式,我们可能有1到3层。由于我们现在有3个DLL,如果我们在同一台机器上部署所有DLL,那么我们只有1个物理层但是3个逻辑层。
如果我们选择在单独的机器上部署每个DLL,那么我们有3层和3层。
因此,层是逻辑分离,层是物理分离。我们也可以说,层是层的物理部署。
答案 3 :(得分:22)
为什么总是尝试使用复杂的单词?
图层 = 代码的一部分,如果您的应用程序是蛋糕,这是一个切片。
等级 = 物理机,即服务器。
一个层承载一个或多个层。
图层示例:
层:
您的代码托管在服务器上=您的代码托管在一个层上。
您的代码托管在2台服务器上=您的代码托管在2层。
例如,一台机器托管网站本身(表示层),另一台机器更安全托管所有更安全的敏感代码(真正的业务代码 - 业务层,数据库访问层等)。
实现分层架构有很多好处。这很棘手,正确实现分层应用程序需要时间。如果您有一些,请查看Microsoft的这篇文章:http://msdn.microsoft.com/en-gb/library/ee658109.aspx
答案 4 :(得分:12)
我发现了一个定义,即层是逻辑分离,层是物理分离。
答案 5 :(得分:8)
Tier
指的是“每个结构的一系列行或级别中的每一个都放在另一个之上”,而Layer
指的是“表,数量或厚度”材料,通常是几个中的一个,覆盖表面或主体“。Tier是物理单元,代码/进程在其中运行。例如:客户端,应用服务器,数据库服务器;
Layer是逻辑单元,如何组织代码。例如:演示文稿(视图),控制器,模型,存储库,数据访问。
层表示设计的表示,业务,服务和数据功能在不同的计算机和系统之间的物理分离。
图层是构成应用程序或服务的软件组件的逻辑分组。它们有助于区分组件执行的各种任务,从而更容易创建支持组件可重用性的设计。每个逻辑层包含分组到子层中的多个离散组件类型,每个子层执行特定类型的任务。
双层模式代表客户端和服务器。
在这种情况下,客户端和服务器可能存在于同一台计算机上,也可能位于两台不同的计算机上。下图说明了一种常见的Web应用程序方案,其中客户端与位于客户端层中的Web服务器进行交互。此层包含表示层逻辑和任何所需的业务层逻辑。 Web应用程序与托管数据库层的单独机器通信,该数据库层包含数据层逻辑。
图层和层级的优点:
分层可帮助您最大限度地提高代码的可维护性,进行优化 以不同方式部署应用程序的方式, 并在某些地点之间提供清晰的界限 必须做出技术或设计决定。
将图层放置在不同的物理层上可以帮助提高性能 通过在多个服务器之间分配负载。它也可以帮助 通过隔离更敏感的组件和层来实现安全性
1层应用程序可以是3层应用程序。
答案 6 :(得分:4)
我使用图层来描述我的解决方案组件中的架构师或技术堆栈。我通常在涉及网络或进程间通信时使用层对这些组件进行逻辑分组。
答案 7 :(得分:4)
是的亲爱的朋友们说得对。 Layer是应用程序的逻辑分区,而tier是系统的物理分区 层分区取决于层分区。就像应用程序在单个机器上执行一样,但它遵循3层架构,因此我们可以说层架构可以存在于层架构中。 简单来说,3层架构可以在单机中实现,然后我们可以说它是1层架构。如果我们在单独的机器上实现每个层然后调用它 3层架构。一个层也可以运行多个层。 在层架构相关组件中,可以轻松地相互通信 就像我们按照下面给出的架构一样
客户端可以与“表示层”交互,但由于安全原因,它们访问下层的公共组件(如业务逻辑层的公共组件)到“业务逻辑层”。
问*为什么我们使用层架构?
因为如果我们实现层架构,那么我们就像
==>安全
==>可管理性
==>可扩展性
其他需要,比如在开发应用程序之后,我们需要更改dbms或修改业务逻辑等,然后对所有人都有必要。
问:为什么我们使用层架构?因为每层的物理实现提供了更好的效率,没有层架构我们无法实现层架构。单独的机器实现单独的 层和单独的层实现了一个或多个层,这就是我们使用它的原因 它用于容错的目的。 ==>易于维护。
简单示例
就像在一个房间里开的银行一样,员工在哪个类别:
如果我们去银行贷款,那么首先门卫会微笑地打开门 之后我们去附近介绍所有贷款计划的人 我们去经理舱并通过贷款。 在那之后我们最终去收银台的柜台贷款。 这些是银行的层架构。
等级怎么样? 一个银行的分支在一个城镇开放,之后在另一个城镇开放,之后在另一个城镇开放 但每个分支的基本要求是什么
层和层的概念完全相同。
答案 8 :(得分:4)
我喜欢Microsoft Application Architecture Guide 2
中的以下说明图层描述了应用程序中功能和组件的逻辑分组;而层则描述了功能和组件在不同服务器,计算机,网络或远程位置上的物理分布。虽然层和层都使用相同的名称集(表示,业务,服务和数据),但请记住,只有层意味着物理分离。
答案 9 :(得分:3)
图层 是应用程序中related-functionality[code]
的逻辑分隔,图层之间的通信是明确的,松散耦合。 [表示逻辑,应用程序逻辑,数据访问逻辑]
Tiers 是个人计算机(进程)中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 - Tier优势:
更好的安全性
可扩展性 :随着您的组织的发展,您可以通过DB-Clustering扩展您的DB-Tier,而无需触及其他层。
可维护性 :网页设计师可以更改视图代码,而无需触及其他层上的其他图层。
轻松升级或增强 [例如:您可以添加其他应用程序代码,升级存储区域,甚至可以为移动,平板电脑,PC等单独设备添加多个演示层]
答案 10 :(得分:0)
图层是概念实体,用于从逻辑的角度分离软件系统的功能;在实现系统时,您可以使用不同的方法组织这些图层;在这种情况下,我们不是将它们称为层而是层。
答案 11 :(得分:0)
当您谈论表示层,服务,数据,网络层时,您所谈论的是层。 当您“分别部署”时,您会谈论层次。
层级是关于部署的。 这样做:我们有一个应用程序,该应用程序在Angular中创建了一个前端,它的后端为MongoDB,中间层在前端和后端之间进行交互。因此,当这个前端应用程序,数据库应用程序和中间层都分别部署时,我们说它是3层应用程序。
好处:如果我们将来需要扩展后端,则只需要独立扩展后端即可,而无需扩展前端。
答案 12 :(得分:0)
从技术上讲,层可以是代码运行所需的一种最低环境。
例如假设3层应用可以在
上运行1台物理机,其中3台虚拟机没有操作系统。
(那是一个3(硬件)层的应用程序)
1台具有3个虚拟机的物理机,这些虚拟机具有3个不同/相同的操作系统
(那是一个3-(OS)层的应用程序)
1台物理机和1台虚拟机,1台操作系统,但3台AppServer
(这是一个3-(AppServer)层应用程序)
1台物理机和1台虚拟机,1台操作系统和1台AppServer但3台DBMS
(这是一个3-(DBMS)层应用程序)
1台物理机,1台虚拟机,1台OS,1台AppServer和1台DBMS,但3台Excel工作簿。
(这是一个3-(AppServer)层应用程序)
Excel工作簿是运行VBA代码所需的最低环境。
这3个工作簿可以放在单个或多个物理计算机上。
我注意到,实际上,人们在应用程序描述上下文中说“ Tier”时的意思是“ OS Tier”。
也就是说,如果一个应用程序在3个单独的操作系统上运行,则其3层应用程序。
因此,描述应用程序的正确方法是
“具有1至3层能力,可在2层上运行”应用。
:)
关于应用程序的职责分离(例如演示,数据,安全性等),层只是代码的类型