2015-04-20 3 views
4

У меня есть веб-приложение, которое развертывается следующим образом на веб-хостинга:Является ли следующее разделение рассмотренным как двухуровневая, так и трехуровневая архитектура?

  1. кодекса (без разделения BLL, DAL и т.д.), загруженные на веб-хостинг
  2. базы данных (MSSQL резервного копирования файлов), загружаемых в сети хостинг базы данных

Рассматривается ли это двухуровневая архитектура или трехуровневая архитектура?

Я видел другое объяснение от различных источников

  1. Если код и базы данных находятся на одном сервере, то это 2-х уровневая. Если код и база данных находятся на другом сервере, то это 3-х уровневый.
  2. Веб-приложение с базой данных имеет минимум 3-уровневую архитектуру
  3. Это двухуровневая архитектура.

Определение 2 яруса по этому источнику
В архитектуре 2-уровневой, веб-сервер отвечает на запросы на веб-страницы и сервер базы данных обеспечивает хранение данных Backend
Определение многоуровневых по этот источник
в архитектуре 3-уровневой, веб-сервер связан с средним уровнем слоя, который обычно включает в себя ряд серверов приложений, которые выполняют конкретные задачи, а также к бэкэнд слою существующих корпоративных систем

Надеюсь, что кто-то может это прояснить.

ответ

1

Это действительно зависит от того, что вы понимаете под термином «ярусы» в своем вопросе.

От инфраструктурной/физической точки зрения в большинстве веб-приложений, которые вы будете иметь 3 слоя:

  • Client (browser) <--> Application Server <--> Database

В отличие от большинства настольных приложений, которые состоят из 2-х уровней:

  • Client <--> Database

Обратите внимание, что этим определением веб-сайт не является всегда 3 уровня - у вас может не быть стойкости на простом сайте, который просто вычисляет сложный интерес, например.

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

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

См. Это wikipedia article, это еще раз прояснит ситуацию.

Обновление: Также выясняется, что вопрос this thread.

+1

Итак, могу ли я заключить, что с точки зрения инфраструктуры любой веб-сайт с базой данных имеет не менее 3-х уровневой архитектуры, а статический веб-сайт, который только отображает информацию, представляет собой двухуровневую архитектуру. – vincentsty

+0

Что касается расслоения (логическая точка зрения), то сам MVC по умолчанию является трехслойной архитектурой. например: принимая пример ASP.NET MVC, по умолчанию он имеет модель, представление и контроллер, но он все еще находится в одном проекте. что означает, что невозможно развернуть модель, просмотр и контроллер отдельно на другом веб-сервере. Потому что я читал в источнике, что утверждают, что расслоение считается только действительным, если сам код (bll, dal) записывается в том смысле, что его можно развернуть на другой сервер. – vincentsty

+0

Ваш первый комментарий правильный - n-level - это физические уровни, разделенные сетью в большинстве случаев. Что касается второго, вы можете посмотреть на MVC как на слои (если вы посмотрите на каждый тип компонентов Controllers/Views/Models в качестве объекта) или аналогичные компоненты. MVC - всего лишь шаблон дизайна. Он не связан с количеством ярусов. Вы упомянули о разделении кода в своем вопросе - вот почему я коснулся темы MVC в своем ответе. Это важное различие между физическими уровнями и логическими компонентами/слоями. –

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