2012-03-20 70 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

相關問題