有人可以解释5层架构吗?

时间:2019-09-11 05:02:32

标签: architecture application-design

我尝试研究网络,以对5层架构进行很好的解释。但是,我找不到任何好的文章。我了解3层和4层体系结构,但是5层不会出现。有人可以解释一下并提供示例吗? 谢谢!

3 个答案:

答案 0 :(得分:1)

我认为您的意思是5层架构。首先,我们应该先定义5层架构,然后再进行5层移植。

5层架构

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

5-layer

1)演示 这就是您的应用程序向用户显示的方式。您可以考虑一下它是该应用程序的外观。但这与UI层非常相似,当今世界随着JavaScript的改进(客户端渲染解决方案,如React,Angular等),这种分离似乎并不精确,但仍然有意义,让我继续:

2)用户界面 这是解释用户交互的地方。当用户单击“提交”按钮时,数据将如何发送到服务器并进行检索,会发生什么?如果您考虑使用较旧的服务器端渲染,我们都将对其进行解释,并返回给用户完整的HTML页面,但如今,通过客户端渲染,所有这些工作都是在JavaScript的帮助下在用户浏览器中完成的。因此,现在您可以考虑一下,如果使用客户端渲染,则Presentation + UI在用户服务器(电话,PC等)中完成。如果用户的服务器仅负责显示数据,那么Presentation层将在此处进行,而UI层将在我们的服务器中进行。

3)业务逻辑 这是我们负责数据验证的地方(即使您在客户端进行验证,我们也应该在服务器端进行验证,因为我们从不信任客户端),操作,安全性,处理,数据库查找等都需要这样做。地点。可以根据操作的安全范围在UI端和数据访问之间共享这些职责

4) 在这里您可以抽象化要在数据库(数据存储级别)上执行的插入,删除等操作。它有点像数据库和您的应用程序之间的接口

5)数据存储 这是数据库服务器所属的。这是数据访问层的实现,该层可以从心理上在服务器上插入,删除等数据。

5层架构

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

  • 您想实现什么?
  • 您想扩展多少?
  • 您可以接受的延迟时间是多少?

如果您实现了低延迟,并且您不打算被太多的用户使用,则可以从1层开始。在下面的演示中,请记住,只要出于安全考虑,就可以在任何层中完成业务逻辑层,在客户端(表示/ UI层)中也可以有一些常规/简单的业务逻辑,这可能会增加您的工作量。服务器性能。另外,您可以根据使用服务器端或客户端渲染的方式将UI层放在较高/较低的层中,但是我们在上面讨论了总体思路:

1级

1-tier

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

2层

让我们说您要进行中央数据库管理,而所有其他部分仍可以保留在用户的服务器上,就像hes在手机上玩游戏,但数据存储在我们的服务器中。

2-tier

到目前为止,您具有性能优势。如果您需要比可扩展性更多的用户,并且需要更多的安全性。

3层

除了微服务(可能是另一个讨论主题)之外,这是最常用的体系结构之一。演示文稿和UI位于用户的服务器(客户端)上,业务逻辑和数据访问属于应用程序服务器,而数据存储位于另一个服务器中。

3-tier

但是现在您用户的请求正在跳更多层,这将增加您的网络延迟。如前所述,是权衡取舍。同样,您现在也开始受益于扩展,例如:

3-tier-scaled

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

参考

  • 专家C#3006业务对象-Rockford Lhotka

  • 软件体系结构模式-Mark Richards

答案 1 :(得分:0)

  1. 演示层(浏览器或其他Presentation应用程序)
  2. 层(视图模型)
  3. 业务逻辑/域逻辑(服务/域层)
  4. 数据访问层(数据库访问逻辑等)
  5. 数据存储层(数据库引擎或类似引擎)

其中一些东西在物理上比其他东西容易分离。表示和数据存储通常是分开的,业务逻辑有时是分开的,但是很少。与业务逻辑层分开,数据访问和视图模型将很困难并且毫无意义。

答案 2 :(得分:0)

我目前正在学习《数据库系统基础知识》一书(皮尔森出版的第七版,通过搜索引擎可以作为免费的pdf电子书获得。)关于DBMS客​​户端服务器的书面论述为2/3 / n-层架构。看看这本书,您可以获得有关单/多层体系结构之间差异的更多信息。

由于电信网络的使用迅速增长,3 / n层体系结构模型已经越来越流行。对于分布式云服务平台解决方案(对于那些必须处理大数据的公司而言),四层和五层Architechutre解决方案已经普及。

大型公司(例如,社交媒体公司Facebook)可以使用与老式集中式dbms解决方案相对的分散解决方案,并且他们可以代表他们在每个级别上提高安全性,以确保它们在安全方面更为安全。最终用户(参数化或天真的Facebook用户)。

如果我要担任大型技术公司的总裁或首席执行官,我想将所有问题都放在同一个篮子里并不是一个好主意。选择解决方案中的层次越多,要解决的安全问题就越多,要解决的问题也就越多,如果您不是牛津大学A级成绩的主谋,那么必须聘用更多的IT专业人才-毕业于“一切” 。没有人真的不是!

我不确定最好,最大的网络托管公司是否在为客户使用分散的分散式数据库服务器,但是在万维网成立之初,它们的实力却与WWW在后来的Wild West中一样弱1990年代,没有法律,而且安全性也很差(相当于2020年的早期Tor-Network和Darknet)。

原始问题的结论: Nicname“ cmlonder”给出了很好的答案,阅读了我的答案中提到的书籍章节,并使用de-centarilez多层解决方案使您的公司的IT体系结构具有较高的安全性。如果您做不到,那就不要创办自己的技术公司。