2012-03-20 50 views
1

我正在开发一个基于web的应用程序,其主要目标是从数据库获取数据,在UI上显示它,接收用户输入并将它们写回数据库。该应用程序不会做任何工业强度算法研究,但将在高峰时间(下面描述)接收非常高的点击次数,这将在一天中改变...确定一个n层应用程序中的层数

这些图层是你典型的演示文稿,业务,数据。数据库由数据库服务器负责。业务层将包含通过tcp访问数据库服务器的DAL组件。我必须将这些层分成层次的选择是:

  1. 的表现层和业务层可以是保持同一 层。

  2. 独立层上的表示层本身和独立层上的业务层 本身。

在选择2的情况下,业务层将由表示层使用WCF服务通过http或tcp访问。

我在业务层看不到任何繁重的处理,所以我倾向于上面的选项1。我也觉得出于同样的原因,增加一个新层只会引入网络延迟。但是,就可扩展性而言,如果我需要扩展或扩展,这是更好的方法吗?此应用程序需要能够支持每小时600万用户。每个用户会话中都会有合理数量的数据,存储用户的偏好和其他详细信息。我将使用页面级缓存以及..

感谢您的时间...

回答

2

我真的真的不是在谈论简单的CRUD Web应用程序时喜欢这个词“n层架构”。选择一个像MVC这样的设计模式,然后去做。完全忘掉这些层。

您的应用程序不够大或不够流行,无法单独缩放各个组件。很可能,您的应用程序将成为单个VS解决方案(甚至可能是项目中的单个应用程序)。如果我所说的任何内容似乎有点意思,我表示歉意,但我几乎把我在同一个桶里建立的所有东西都计算在内。此外,如果我所说的任何事情在您的具体项目中完全不正确,我再次道歉,并且谦虚地接受降价。它确实听起来像你在想这个。建立它并看看。

您正在建立一个输入,显示和数据访问的网站。启动一个新的ASP.NET MVC解决方案,并去镇上。

+0

嗨乔希,我更新了我的问题...不需要歉意:)我只是想另一种意见,为什么我应该真的有一个“应用层”在不同的服务器上... – user20358 2012-03-20 12:59:22

+0

@ user20358我的答案仍然是相同。想想如何构建stackoverflow。你预计是否有类似的流量?每小时从哪里获得6M用户?扩展更多的服务器,而不是更多的组件。像redis一样使用缓存。在某些情况下,您可能需要n层,例如集成不同组件。但是如果你从头开始构建所有东西,我认为它不太可能。 – 2012-03-20 13:03:05

+0

是的,我期待着类似的,如果不是更多的......没有详细介绍这个应用程序(我已经为这个项目签署了一个非公开的东西),这个数字是由客户给我们的。虽然它是一个具有合理数量的业务层处理的垃圾邮件应用程序,但它同时并不太强烈。 – user20358 2012-03-20 13:08:12

相关问题