Pan*_*nos 249
逻辑层只是组织代码的一种方式.典型的层包括演示,业务和数据 - 与传统的3层模型相同.但是当我们谈论层时,我们只讨论代码的逻辑组织.决不意味着这些层可能在不同的计算机上运行,也可能在单个计算机上的不同进程中运行,甚至可能在单个计算机上的单个进程中运行.我们所做的只是讨论一种将代码组织成由特定函数定义的一组层的方法.
然而,物理层只是代码运行的地方.具体而言,层是部署层的位置以及层运行的位置.换句话说,层是层的物理部署.
资料来源:Rockford Lhotka,所有应用程序都应该是n层吗?
Jos*_*osh 42
阅读Scott Hanselman关于该问题的帖子:http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
但请记住,在"斯科特世界"(希望你的世界也是:) :)中,"层"是部署的一个单元,而"层"是代码内的责任的逻辑分离.您可能会说您拥有"3层"系统,但可以在一台笔记本电脑上运行它.您可能会说您有一个"3层"系统,但只有与数据库通信的ASP.NET页面.朋友,精确的力量.
小智 32
图层是指代码的逻辑分离.逻辑层可以帮助您更好地组织代码.例如,应用程序可以具有以下层.
1)表示层或UI层2)业务层或业务逻辑层3)数据访问层或数据层
上面三层位于他们自己的项目中,可能是3个项目甚至更多.当我们编译项目时,我们得到相应的图层DLL.所以我们现在有3个DLL.
根据我们部署应用程序的方式,我们可能有1到3层.由于我们现在有3个DLL,如果我们在同一台机器上部署所有DLL,那么我们只有1个物理层但只有3个逻辑层.
如果我们选择在单独的机器上部署每个DLL,那么我们有3层和3层.
因此,层是逻辑分离,层是物理分离.我们还可以说,层是层的物理部署.
Mat*_*att 27
为什么总是试图使用复杂的单词?
阿层 = 您的代码的一部分,如果应用程序是一个蛋糕,这是一个切片.
阿层 = 物理机,一台服务器.
层承载一个或多个层.
图层示例:
一级:
您的代码托管在服务器上=您的代码托管在一个层上.
您的代码托管在2台服务器上=您的代码托管在2层上.
例如,一台机器托管网站本身(表示层),另一台机器更安全托管所有更安全的敏感代码(真正的业务代码 - 业务层,数据库访问层等).
实现分层架构有很多好处.这很棘手,正确实现分层应用程序需要时间.如果您有一些,请查看Microsoft的这篇文章:http://msdn.microsoft.com/en-gb/library/ee658109.aspx
Yas*_*ash 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
Run Code Online (Sandbox Code Playgroud)
n层优势:
更好的安全
可扩展性 :随着组织的发展,您可以使用 DB-Clustering 扩展您的 DB-Tier,而无需触及其他层。
可维护性 :Web 设计人员可以更改视图代码,而无需触及其他层上的其他层。
轻松升级或增强[例如:您可以添加额外的应用程序代码、升级存储区域,甚至为手机、平板电脑、PC 等独立设备添加多个表示层]
Tier
表示"每个在一系列行或层中的一个结构放在另一个之上",而Layer
指的是"材料的片材,数量或厚度,通常是几个中的一个,覆盖表面或主体".Tier是一个物理单元,代码/进程在其中运行.例如:客户端,应用服务器,数据库服务器;
Layer是一个逻辑单元,如何组织代码.例如:演示文稿(视图),控制器,模型,存储库,数据访问.
层表示设计的表示,业务,服务和数据功能在不同的计算机和系统之间的物理分离.
图层是构成应用程序或服务的软件组件的逻辑分组.它们有助于区分组件执行的各种任务,从而更容易创建支持组件可重用性的设计.每个逻辑层包含分组到子层中的多个离散组件类型,每个子层执行特定类型的任务.
双层模式表示客户端和服务器.
在这种情况下,客户端和服务器可能存在于同一台计算机上,也可能位于两台不同的计算机上.下图说明了一种常见的Web应用程序方案,其中客户端与位于客户端层中的Web服务器进行交互.此层包含表示层逻辑和任何所需的业务层逻辑.Web应用程序与托管数据库层的单独机器通信,该数据库层包含数据层逻辑.
图层和层的优点:
分层可帮助您最大限度地提高代码的可维护性,优化应用程序在以不同方式部署时的工作方式,并在必须进行某些技术或设计决策的位置之间提供清晰的描述.
将图层放在不同的物理层上可以通过在多个服务器之间分配负载来提高性能.它还可以通过将更敏感的组件和层隔离到不同的网络或Internet上而不是内联网来帮助提高安全性.
1层应用程序可以是3层应用程序.
我喜欢Microsoft Application Architecture Guide 2 中的以下描述
层描述了应用程序中功能和组件的逻辑分组;而层则描述了功能和组件在单独的服务器、计算机、网络或远程位置上的物理分布。尽管层和层使用相同的一组名称(表示、业务、服务和数据),但请记住,只有层才表示物理分离。
小智 5
是的,我亲爱的朋友们说的没错。层是应用程序的逻辑分区,而层是系统的物理分区。层分区取决于层分区。就像应用程序在单台机器上执行一样,它遵循三层体系结构,因此可以说层体系结构可以存在于分层体系结构中。简单来说,三层体系结构可以在单机中实现,那么我们可以说它是1层体系结构。如果我们在单独的机器上实现每个层,则称为3层体系结构。一层可能还可以运行多个层。与层体系结构相关的组件可以轻松地彼此通信。
就像我们遵循下面给出的架构
客户端可以与“表示层”进行交互,但是由于安全原因,它们将下一层的公共组件(如业务逻辑层的公共组件)访问到“业务逻辑层”。
问*为什么使用图层体系结构?因为如果我们实施层架构,那么我们可以提高应用程序的效率,例如
==>安全性
==>可管理性
==>可扩展性
其他需求,例如在开发应用程序后,我们需要更改dbms或修改业务逻辑等。这对所有人都是必要的。
问*为什么我们使用层级体系结构?
因为在物理上实现每层都可以提供更好的效率,所以没有层架构,我们就无法实现层架构。单独的机器来实现单独的层,而单独的层是实现一层或多层,这就是我们使用它的原因。
它用于容错的目的。==>易于维护。
简单的例子
就像银行在商会中开张一样,雇员的类别如下:
它们都是系统的相关组件。
如果我们要去银行作贷款用途,那么首先要是一个门卫微笑着打开门,然后我们去找一个介绍所有贷款计划的人附近,然后我们去经理机房并通过贷款。之后,最后我们去收银员柜台借贷。这些是银行的层架构。
那层呢?一家银行的支行在一个城镇中开设,然后在另一个城镇中开设,然后在另一个城镇中开设,但是每个分支机构的基本要求是什么
层和层的概念完全相同。