2012-03-20 3 views
1

Я разрабатываю веб-приложение, основной задачей которого является получение данных из базы данных, отображение их в пользовательском интерфейсе, ввод пользовательских входов и запись их обратно в базу данных. Приложение не будет выполнять хруст алгоритма промышленной прочности, но будет получать очень большое количество ударов в пиковые времена (описанные ниже), которые будут меняться через день ...Определение количества ярусов в n-уровневом приложении

Эти слои являются типичными Презентация, бизнес, данные. Уровень данных берется сервером базы данных. Бизнес-уровень будет содержать компонент DAL для доступа к серверу базы данных по tcp. Выбор я должен разделить эти слои в ярусов:

  1. презентации и бизнес-слои могут быть либо сохранены на том же уровне .

  2. Презентационный слой на отдельном уровне сам по себе и бизнес слой на отдельном уровне сам по себе.

В случае выбора 2 на уровне бизнес-уровня будет отображаться уровень представления с использованием службы WCF через http или tcp.

Я не вижу, чтобы на бизнес-уровне выполнялась большая обработка, поэтому я склоняюсь к варианту 1 выше. Я также чувствую по той же причине, добавив новый уровень, только представит сетевую задержку. Однако с точки зрения масштабируемости в случае, если мне нужно масштабировать или масштабировать, что лучше сделать? Это приложение должно будет поддерживать до 6 миллионов пользователей в час. В каждом пользовательском сеансе будет достаточный объем данных, в котором хранятся предпочтения пользователя и другие данные. Я буду использовать кэширование на уровне страницы, а также ..

Спасибо за ваше время ...

ответ

2

Я действительно не нравится термин «н-уровневой архитектурой», когда речь идет о простых CRUD веб-приложений. Выберите шаблон дизайна, такой как MVC, и пойдите для него. Забудьте об уровнях в целом.

Ваше приложение не будет достаточно большим или достаточно популярным, чтобы беспокоиться о масштабировании отдельных компонентов отдельно. По всей вероятности, ваше приложение будет единственным решением VS (и, возможно, даже одним Приложением в проекте). Если что-то из того, что я сказал, кажется немного скупым, я извиняюсь, но я считаю почти все, что я построил в том же ведре. Кроме того, если что-либо, о чем я сказал, совершенно неверно в вашем конкретном проекте, я снова прошу прощения и смиренно принимаю downvotes. На самом деле это звучит так, будто ты уже об этом думаешь. Постройте его и посмотрите.

Вы создаете веб-сайт с вводом, отображением и доступом к данным. Запустите новое решение ASP.NET MVC и отправляйтесь в город.

+0

Привет, Джош, я обновил свой вопрос ... не нужно быть извиняющимся :) Мне просто нужно другое мнение о том, почему у меня действительно должен быть «Application layer» на другом сервере ... – user20358

+0

@ user20358 мой ответ остается одна и та же. Подумайте о том, как создается stackoverflow. Вы ожидаете подобного трафика? Откуда у вас 6M пользователей в час? Масштабирование с большим количеством серверов, не более компонентов. Используйте кеширование как redis. Существуют некоторые обстоятельства, при которых вам может понадобиться n-уровень, например, интеграция разрозненных компонентов. Но если вы все строите с нуля, я считаю это маловероятным. –

+0

Да, я ожидаю подобное, если не больше ..., не вдаваясь в подробности о приложении (я подписал идею не раскрытия для этого проекта), эта цифра дается нам клиентом. в то время как это грубое приложение с разумным объемом обработки бизнес-уровня, оно в то же время не слишком интенсивное. – user20358

Смежные вопросы