首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释一下5层架构吗?

有人能解释一下5层架构吗?
EN

Stack Overflow用户
提问于 2019-09-11 13:02:33
回答 3查看 2.6K关注 0票数 4

我尝试在web上搜索5层架构的一个很好的解释。然而,我没有找到任何好的文章。我理解3层和4层架构,但是5层不会在我的脑海中。有没有人能解释一下,或许能举个例子?谢谢!

EN

回答 3

Stack Overflow用户

发布于 2019-09-12 18:22:25

我想你的意思是5层架构。首先,在移动到5层之前,我们应该定义5层架构。

5层架构

分层是您在应用程序中实现的逻辑分离。它与N-Tier有关系,但我们将在稍后讨论它:

1)演示这是应用程序向用户显示的方式。你可以认为它是应用程序的一个外观和感觉。但它非常类似于UI层,今天的世界随着JavaScript的改进(客户端渲染解决方案,如React,Angular等)这种划分可能看起来不准确,但仍然有意义,让我继续:

2) UI这是解释用户交互的地方。当用户单击submit按钮时会发生什么,数据是如何发送到服务器和检索的?如果你想想我们以前使用的服务器端渲染,我们都是解释这些并返回用户完全准备好的超文本标记语言页面,但现在客户端渲染所有这些工作都是在JavaScript的帮助下在用户浏览器中完成的。因此,您可以考虑现在演示+ UI是在用户服务器(电话、pc等)中完成的。如果使用客户端渲染。如果用户的服务器只负责显示数据,那么表示层就在那里,而UI层就在我们的服务器中。

3)业务逻辑这是我们负责数据验证的地方(即使你在客户端做,我们也应该在服务器端做,因为我们从来不信任客户端),操作,安全,处理,数据库查找等发生。这些职责可以在UI端和数据访问之间分担,具体取决于操作的安全范围

4)数据访问这是您需要在DataBase (数据存储级别)上执行的插入、删除等操作的抽象位置。它类似于DataBases和您应用程序之间的接口

5)数据存储这是数据库服务器的归属地。这是数据访问层的实现,它在心理上插入、删除服务器上的数据等。

5层架构

现在,根据您的应用程序的需求,您应该定义您的权衡:

  • 您希望实现什么目标?
  • 您希望扩展到多大程度?
  • 您可以接受的延迟是多少?

如果你实现了低延迟,并且你的目标不是被太多的用户使用,你可以从1层开始。在下面的演示中,请记住,只要您出于安全考虑,业务逻辑层可以在任何层中完成,您也可以在客户端(表示层/UI层)中使用一些通用/简单的业务逻辑,这可能会提高服务器的性能。此外,你可以根据服务器端或客户端的渲染将UI层放在更高/更低的层,但我们在上面讨论了一般的想法:

1层

所有层都属于一个物理位置。就像安装在用户数据库上的游戏一样,它不需要任何其他外部系统,它在用户的服务器上有自己的数据库和在那里实现的所有逻辑。

2层

假设你想要集中管理数据库,而所有其他部分可以保持在用户的服务器上,就像他在手机上玩游戏,但数据存储在我们的服务器上。

到目前为止,您拥有性能优势。如果您需要支持更多的用户,并且需要比所需的更多的安全性,请使用scalability.

3层

除了微服务(也许是另一个讨论主题),这是使用最多的架构之一。表示和UI在用户的服务器(客户端)上,业务逻辑和数据访问属于应用服务器,数据存储在另一台服务器上。

但是现在你的用户请求正在跳跃更多的层,这将增加你的网络延迟。正如之前所说的那样,它是关于权衡的。现在你也开始有了伸缩的好处,比如:

因此,根据您的应用程序需求、安全级别、延迟限制、用户数量等,您可以将其拆分为更多层,这就是其名称为N-Tier的原因。

参考文献

Rockford Lhotka

  • Software架构模式-
  • Expert C#3006业务对象- Mark Richards
票数 5
EN

Stack Overflow用户

发布于 2019-09-11 23:29:26

  1. 表示层(浏览器或其他表示应用程序)

存储层(查看逻辑/域逻辑(服务/域层)

  1. 数据访问层(数据库访问逻辑等)
  2. 数据存储层(数据库引擎或类似应用程序)

其中一些东西在物理上可以比其他东西更容易分离。表示和数据存储通常是分开的,业务逻辑有时也是分开的,但很少会分开。数据访问和视图模型很难脱离业务逻辑层,而且在很大程度上毫无意义。

票数 0
EN

Stack Overflow用户

发布于 2020-01-13 01:55:44

我目前正在学习“数据库系统基础”这本书(由Pearson出版的第七版,通过搜索引擎免费提供pdf电子书)。有一个关于数据库管理系统客户端-服务器,2/3/n层-architecture的书面章节。看看这本书,你可以得到更多关于单层/多层架构之间的区别的信息。

由于电信网络使用的快速增长,3/n -tier体系结构模型变得更加流行。因为分散的云服务平台解决方案(对于那些必须处理大数据的公司)已经引起了4层和5层架构解决方案的流行。

大公司(例如,社交媒体公司Facebook)可以使用与老式的集中式数据库管理系统-solution相反的去中心化解决方案,他们可以代表自己调整每个级别的安全性,以便最终用户(参数化或幼稚的Facebook用户)更安全。

如果我是大型科技公司的总裁或首席执行官,我会说,把所有的球都放在一个篮子里不是一个好主意。解决方案中的层越多,与安全相关的问题就越多,需要解决的问题就越多,如果你不是牛津大学的A级策划人-graduated,你就必须雇用更多的it专业人员。没有人真的不是这样的!

我不确定最好的和最大的虚拟主机公司是否正在为他们的客户使用分布式的、非集中化的数据库服务器,但在万维网的早期,它们就像1990年代后期的WWW一样脆弱,十年没有法律,安全性也很弱(相当于2020年的早期tor-network和现在的darknet )。

对原始问题的结论: Nicname "cmlonder“给出了很好的答案,请阅读我的答案中提到的书中的章节,并使用de-centarilez多层解决方案使您的公司IT架构高度安全。如果你不能做到这一点,就不要开始自己的科技企业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57882404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档