三层系统如何在Java中运行?

问题描述 投票:2回答:3

三层系统如何在Java中运行?

有人可以用一些简单的例子向我解释这个吗?

java applet system
3个回答
11
投票

这是基本思想,实际上可以从第一原则中或多或少地得出,即Parnas规则模块应该隐藏一个秘密:

  • “前端”层拥有进行可见演示的秘密
  • “中间层”掌握着管理系统行为的秘密
  • “后端”掌握着如何持久保存数据的秘密。

在基于Java的系统中,这意味着

Front end

有一个Web服务器,演示文稿由HTML,CSS和Javascript构成。有几种技术,但最以Java为中心的是Java Server Pages,它可以从带有嵌入式Java的脚本中有效地生成HTML。在更高级别上管理JSP的一种众所周知的方法称为Struts

有许多工具可以简化这一过程;也许最常见的是Spring。 (Spring提供了一些更适用于中间层的东西。)

现在非常罕见的另一个选择是拥有一个在客户端计算机上运行的Java应用程序前端。

Middle Tier

中间层用于为前端提供可用形式的数据。在Java世界中,这通常通过“应用程序服务器”来完成,该“应用程序服务器”向前端呈现“对象”。真正的核心解决方案叫做Enterprise Java Beans(EJB),但对于除了最大的系统之外的任何一个都是如此。现在更经常使用像Hibernate这样的持久层,它为中间层的其余部分提供Java数据访问对象。 (要了解有关此内容的更多信息,您需要查看所谓的“对象和关系数据库的阻抗不匹配问题。”)

Back End

3层系统中通常的后端是现成的数据库,尽管可以想象它可以是从Hadoop和BigTable到使用Java序列化将状态存储为文本文件的东西。后端负责保持该状态,以便它可以持续存在并且可以再次找到。像Hibernate这样的工具本质上存在,为数据库提供了更清晰,更通用的接口,但Java从第一个(好的,几乎是第一个,Java 1.1)开始使用JDBC接口来使数据库可用。

n tier Systems

在大型系统中,这种细分可以进一步细分。例如,“前端”可以看作两层:浏览器中的表示层和服务器中的表示支持层。在这种类型的细分中,服务器端可能会管理会话和身份验证。同样,您可以将中间层和后端之间的接口视为一个层本身,即“阻抗匹配层”。现在,Hibernate获得了自己的层。

另一方面,系统具有基于HTML的表示层或实现为直接与数据库后端通信的Java客户端应用程序并不罕见,在这种情况下,您有一个“双层系统”。

Java is not the reason

这里要注意的最后一点是,Java不是2,3或5(或更多 - 浏览器本身是层?)层的原因或基础。相反,它是一个架构决策,因为您希望将可能一起更改的部件绑定到相同的组件中。在现实生活中,业务相当稳定;一旦你融入了领域模型,它就没有太大变化。当演示文稿发生变化时,域模型通常不会 - 因此将其分离为表示层。另一方面,您可以选择不同的数据库实现,而无需更改业务模型(域moel)或演示文稿 - 因此请将其设置为单独的层。这导致了一个更强大的系统,因为改变并不意味着整个系统中的代码中断。

这种期望的稳健性是多层系统的原因。


1
投票

这是一个非常模糊的问题。有一个相当古老但相当可读的article from JavaWorld提供了一个例子。谷歌搜索java multi tier architecture发现了其他一些文章。你甚至可以在单词tutorial中输入一组不同的文章。 :)


1
投票

我知道这是一个老问题,但我认为显示JAVA现在的位置,微服务,这将改变整体N层结构将是有帮助的。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.