【问题标题】:two tier and three tier practical implementation两层和三层实际实现
【发布时间】:2013-06-30 06:05:47
【问题描述】:

我正在创建一个小型数据库应用程序。在这些应用程序中,我使用 java swing 并使用 Hibernate 访问数据库。 昨天我朋友问我你用的是两层还是三层的架构? 我的回答是我不知道。 然后我在谷歌上搜索并找到了一些答案,这些答案的链接如下。

3 Tier Architecture vs 2 Tier Architecture

Explain the different tiers of 2 tier & 3 tier architecture?

我读了这两个链接,所以我不太了解。

但仍然无法知道它们是如何实际实现的,我的意思是用编程语言说。

我仍然无法理解它是什么?是如何实施的?你能给我一个实际的例子吗?

【问题讨论】:

  • 还有一件事是,我如何决定或判断我现在使用的是哪一层,我的意思是说两层还是三层?

标签: database architecture


【解决方案1】:

在您的应用程序中,您有一个基于 Swing 的 GUI 和一个到 DB 的连接。 当用户通过 GUI 进行一些更改时,它会立即反映在 DB 上(即更新/插入/删除等)。 因此,您有一个 2 层架构(GUI + DB)。

现在假设当用户通过 GUI 进行一些更改时,您不是直接转到 DB,而是将适当的请求发送到处理您的请求的某个服务器(例如 Web 服务器),然后在 DB 上执行适当的操作。 在这种情况下,您有一个 3 层架构(GUI + Server + DB)

【讨论】:

  • 所以现在我可以说我使用的是 2 层架构。谢谢。但是我指定的另一件事是我使用休眠作为中间,然后它也是两层?
  • Hibernate 只是使用 DB 的一种方式。它不会影响架构。
【解决方案2】:

根据您与 Grisha 的讨论,您似乎需要考虑层和层之间的区别。

应用程序中的层是分离的逻辑单元。例如,您可能有用户界面层、业务逻辑层、服务层、数据访问层。每一层都应该有代码来实现应用程序的那个部分/单元。

层代表分离/部署的物理单位。如果所有层(用户界面层、业务逻辑层、服务层、数据访问层)都部署在同一台服务器机器上,那么您只有一层。

如果数据库托管在单独的机器上,而所有其他层都托管在另一台服务器上,那么您有两层。

通常随着用户数量(或应用程序负载)的增加,单个服务器无法高效执行,因此我们需要尽可能添加更多层或需要用户更强大的服务器。

所以层数可以小于或等于您拥有的层数。您可以仅在设计阶段告诉层数,因为应用程序的架构已确定,但层数可以在您计划部署后确认。

请查看“设计的可扩展性选项”部分@http://www.codeproject.com/Articles/70061/Architecture-Guide-ASP-NET-MVC-Framework-N-tier-En

如果您有任何进一步的问题,请随时讨论。谢谢

【讨论】:

  • 所以,根据您的回答,如果我说我的数据库应用程序将在单台机器上实现,所以它是一层。我说的对吗?
  • 是的,如果数据库应用程序将在单台机器上实现,并且同一台机器将托管应用程序的其他部分......那么它是一层......你是对的!
  • 如果我有两台机器,一台机器将拥有完整的数据库应用程序,而另一台机器将只有一种应用程序形式?
  • 那么它将是两层......因为您将在一台机器上拥有用户界面层(一种形式的应用程序),而在另一台机器上拥有应用程序的其余部分。
猜你喜欢
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
相关资源
最近更新 更多