Sno*_*111 5 architecture application-design
我尝试在网上搜索有关 5 层架构的详细解释。然而我并没有找到什么好的文章。我了解 3 层和 4 层架构,但是 5 层架构不会出现在我的脑海中。有人可以解释一下并提供一个例子吗?谢谢!
我认为你的意思是5层架构。首先,我们应该先定义 5 层架构,然后再进行 5 层架构。
分层是您在应用程序中实现的逻辑分离。它与 N-Tier 有关系,但我们稍后会讨论它:
1)演示 这是您的应用程序向用户展示的方式。您可以将其视为应用程序的外观和感觉。但它与 UI 层非常相似,当今世界随着 JavaScript(React、Angular 等客户端渲染解决方案)的改进,这种分离可能看起来不准确,但仍然有意义,让我继续:
2) UI 这是解释用户交互的地方。当用户单击提交按钮时会发生什么,数据如何发送到服务器并检索?如果您考虑一下我们以前使用的服务器端渲染,我们都会解释这些并返回用户完全准备好的 HTML 页面,但今天使用客户端渲染,所有这些工作都是在 JavaScript 的帮助下在用户浏览器中完成的。因此,您可以考虑一下,如果使用客户端渲染,现在演示+ UI 是在用户服务器(手机、PC 等)中完成的。如果用户的服务器只负责显示数据,那么现在表示层发生在用户的服务器上,而 UI 层发生在我们的服务器上。
3)业务逻辑这是我们负责数据验证的地方(即使你在客户端做,我们也应该在服务器端做,因为我们从不信任客户端),操作,安全,处理,数据库查找等情况发生。这些职责可以在 UI 端和数据访问之间共享,具体取决于操作的安全范围
4)数据访问 这是您抽象需要在数据库(数据存储级别)上执行的插入、删除等操作的地方。它有点像数据库和您的应用程序之间的接口
5)数据存储 这是数据库服务器所属的。这是数据访问层的实现,它在服务器上插入、删除等数据。
现在,根据您的应用程序的需求,您应该定义您的权衡:
如果您实现低延迟并且不希望被太多用户使用,则可以从 1 层开始。在下面的演示中,请记住,只要出于安全原因,业务逻辑层可以在任何层中完成,您也可以在客户端(演示/UI 层)中拥有一些通用/简单的业务逻辑,这可能会增加您的成本。服务器性能。另外,您可以将 UI 层放在较高/较低的层中,具体取决于使用服务器端还是客户端渲染,但我们在上面讨论了一般想法:
所有层都属于一个物理位置。就像安装在用户数据库上并且不请求任何其他外部系统的游戏一样,它在用户服务器上拥有自己的数据库并在那里实现所有逻辑。
假设您想要集中数据库管理,而所有其他部分仍然可以保留在用户的服务器上,就像他正在手机上玩游戏一样,但数据存储在我们的服务器中。
到目前为止,您具有性能优势。如果您需要支持更多的用户并且需要更多的安全性,那么您需要的不仅仅是可扩展性。
除了微服务(可能是另一个讨论主题)之外,这是最常用的架构之一。展示和UI位于用户的服务器(客户端)上,业务逻辑和数据访问属于应用服务器,数据存储在另一台服务器上。
但现在您的用户的请求正在跳跃更多层,这将增加您的网络延迟。正如之前所说,这是关于权衡的。现在您也开始享受缩放的好处,例如:
因此,根据您的应用程序需求、安全级别、延迟限制、用户数量等。您可以将其拆分为更多层,这就是其名称为 N 层的原因。
专家 C#3006 业务对象 - Rockford Lhotka
软件架构模式 - Mark Richards
小智 0
其中一些东西比其他东西更容易物理分离。表示和数据存储通常是分开的,业务逻辑有时是分开的,但较少见。数据访问和视图模型与业务逻辑层分离会很困难,而且在很大程度上没有意义。
| 归档时间: |
|
| 查看次数: |
5700 次 |
| 最近记录: |