【发布时间】:2011-03-30 16:12:35
【问题描述】:
我正在寻找服务器端软件的架构模式,尤其是 Web 应用程序,这些模式在现实世界中有充分的理由使用。以下是我能想到的一些:
- 单服务器:应用程序的所有部分都运行在同一台服务器上(数据库、应用程序、监听端口 80 的网络服务器等)
- 简单的 2 层:数据库在单个服务器“DB”上运行,所有其他部分在“appserver”层中,可以包含任意数量的服务器。这些层通过 ODBC 等进行通信。
- 其中的变体(有多少?我们可以列举它们吗?)包括单主/多从数据库服务器和多主数据库服务器
- 三层:数据库运行在一层,业务对象和逻辑运行在第二层,表示层在第三层,其中1和2通过ODBC通信,2和3通过某种形式的远程调用(例如 RMI)
- 我似乎从一些演示中回忆起,eBay 曾经有一个架构,其中应用层生成 XML,然后在单独的层中将其转换为 HTML。这是常见的还是奇怪的?
- 一堆网络应用程序使用 memcachedb 或类似的东西来加快速度。一组缓存服务器可以说是另一层吗?
你能帮我列举一些这些模式,或者指出一些已经描述过的地方吗?
【问题讨论】:
-
这个问题急需一个社区 wiki 答案,顺便说一句。
-
让我们看看我们能在这里收集到什么,如果有足够的牛肉我们就这样做......
标签: deployment design-patterns n-tier-architecture