2008-09-23 308 views

回答

211

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

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

来源:罗克福德Lhotka,Should all apps be n-tier?

37

阅读斯科特Hanselman的在这个问题上一篇:http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

但请记住,在“斯科特世界”(这是希望你的世界也:))一“层”是部署单元,而“层”是代码中责任的逻辑分离。你可能会说你有一个“三层”系统,但是可以在一台笔记本电脑上运行它。你可能会说你有一个“3层”系统,但只有与数据库交谈的ASP.NET页面。精准的力量,朋友。

4

我使用图层来描述我的解决方案组件中的架构师或技术堆栈。通常在涉及网络或进程间通信时,我使用层来逻辑分组这些组件。

11

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

24

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

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

的aboove三个层驻留在他们自己的项目,可以是3个项目或甚至更。当我们编译项目时,我们会得到相应的图层DLL。所以我们现在有3个DLL。

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

如果我们选择在单独的机器上部署每个DLL,那么我们有3层和3层。

所以,图层是逻辑上的分离,层是物理分离。我们也可以说,层是层的物理部署。

+0

我从你的回答中了解到,我们可以在三台不同的服务器上部署3层(DLL)。对 ? 你能告诉我如何给表示层上的业务逻辑层提供参考? – 2013-01-09 07:22:50

+0

@MazharKhan您可能想要使用服务将业务层功能展示给表示层 – 2014-05-30 01:59:04

4

是的,亲爱的朋友们说得对。 图层是应用程序的逻辑分区,而层是系统的物理分区 层分区取决于图层分区。就像应用程序在单机上执行一样,但是它遵循3层架构,所以我们可以说层架构可以存在于层架构中。 简单来说,3层架构可以在单机上实现,那么我们可以说它是1层架构。如果我们在单独的机器上实现每个层,那么它的3层体系结构称为 。一个图层也可以运行多个层次。 在层架构相关组件之间轻松沟通。
就像我们按照下面的架构给出

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

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

==>安全

==>管理

==>可扩展性

其他需要像开发应用后,我们需要更改dbms或修改业务逻辑等,那么它是必须的。

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

因为每层的物理实现提供了更好的效率,没有层架构我们不能实现层架构。单独的机器实现单独的 层,单独的层实现一个或多个层,这就是我们使用它的原因。为了容错的目的,它使用
。 ==>易于维护。

简单的例子

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

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

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

如果我们将银行对贷款用途则第一门卫开门与我们后微笑 去那介绍说 我们去经理机舱后贷款的所有方案,并通过贷款人近。 之后,最后我们去收银台柜台取款。 这些是银行的层次体系结构。

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

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

完全一样的层和层的概念。

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

    层是逻辑单元,如何组织的代码。例如:演示(视图),控制器,模型,存储库,数据访问。

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

    图层是组成应用程序或服务的软件组件的逻辑分组。它们有助于区分组件执行的不同类型的任务,从而更容易创建支持组件重用的设计。每个逻辑层包含许多组成子层的离散组件类型,每个子层执行特定类型的任务。

双层模式代表客户端和服务器。

在这种情况下,客户端和服务器可能位于同一台计算机上,或者可能位于两台不同的计算机上。下图显示了一个常见的Web应用程序场景,其中客户端与位于客户端层的Web服务器进行交互。此层包含表示层逻辑和任何必需的业务层逻辑。 Web应用程序与托管包含数据层逻辑的数据库层的单独计算机进行通信。图层和层级的

Layers vs Tiers

优点:

  • 分层有助于应用程序部署在不同的方式,当作品您最大限度地提高代码的可维护性,优化 的方式, 和在必须制定某些技术或设计决定的地点之间提供清晰的划分。

  • 配售您在不同的物理层的层可以帮助提高性能 通过跨多个服务器分布负载。它还可以通过将更敏感的组件和层 分隔到不同的网络或互联网与内联网上来帮助提高安全性。

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

0

图层是概念实体,用于从逻辑的角度分离软件系统的功能;当你实现这个系统时,你使用不同的方法来组织这些图层;在这种情况下,我们不把它们称为层,而是称为层。

19

为什么总是试图使用复杂的单词?

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

= 物理机,服务器。

阿层托管一个或多个层。层的


实施例:

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

一级:

您的代码托管在服务器上=您的代码托管在一层。

您的代码在2台服务器上托管=您的代码托管在2层。例如,一台机器托管网站本身(表示层),另一台机器更安全地托管所有更安全敏感的代码(真正的业务代码 - 业务层,数据库访问层等)。


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

2

是一个应用程序中的related-functionality[code]逻辑分离,层与层之间的通信是明确的,松耦合。 [表示逻辑,应用逻辑,数据访问逻辑]

Tierslayers在个体计算机(处理)[其中获得对个体的服务器托管]物理分离。

enter image description here

正如图中所示:

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 

Tier优点:
更高的安全性
可扩展性:随着企业的成长,您最高可以扩展你的DB-T使用DB-Clustering无需触及其他层。
可维护性:网页设计师可以更改视图代码,而无需触摸其他层上的其他层。
轻松升级或加强[例:您可以添加额外的应用程序代码,升级存储区域,甚至加入了像手机,平板电脑,PC独立图谋多次表示层]

0

一个层是一个逻辑软件模块具有自己的核心逻辑和界限。

阿层是一个或多个层,的物理容器诸如服务器 通过网络或同一虚拟机的多个实例,在 负载平衡的方式工作。

3

我喜欢从Microsoft Application Architecture Guide 2以下描述

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

0

1。在3层体系结构中,DAL(Databse层),BLL(Bissiness层)和UIL(UI层)可以在同一台机器上工作,在3层架构中客户机在一台机器上,应用服务器托管在另一台机器上,数据库服务器驻留在另一台机器上。

2.Layer架构将提高可读性和可重用性,最大限度地减少由于在其他层的变化影响应用程序的改变。虽然3层架构具有3层+可扩展性的所有优点,因为应用将部署在不同的机器上,因此负载将在各层之间共享,并且可扩展性将会增加。

相关问题