В чем разница между слоями и слоями? - PullRequest
194 голосов
/ 23 сентября 2008

В чем разница между "Слоями" и "Ярусами"?

Ответы [ 13 ]

235 голосов
/ 23 сентября 2008

Логические слои - это просто способ организация вашего кода. Типичные слои включают презентацию, бизнес и Данные - такие же, как традиционные 3-х уровневая модель. Но когда мы говорим о слоях, мы говорим только о логическая организация кода. В нет Кстати, подразумевается, что эти слои может работать на разных компьютерах или в разные процессы на одном компьютер или даже в одном процессе на одном компьютере. Все что мы делаем обсуждает способ организации код в набор слоев, определенных специфическая функция.

Физические ярусы однако, только о где код работает. В частности, ярусы - это места, где слои развернуты и где слои работают. В Другими словами, ярусы являются физическим развертывание слоев.

Источник: Rockford Lhotka, Должны ли все приложения быть n-уровневыми?

41 голосов
/ 23 сентября 2008

Прочтите сообщение Скотта Хансельмана по этому вопросу: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

Помните, однако, что в «мире Скотта» (который, как мы надеемся, также ваш мир :)) «Ярус» - это единица развертывания, а «Слой» - это логическое разделение ответственности внутри кода. Вы можете сказать, что у вас есть «трехуровневая» система, но запускайте ее на одном ноутбуке. Вы можете сказать, что у вас «трехслойная» система, но есть только страницы ASP.NET, которые общаются с базой данных. Сила в точности, друзья.

29 голосов
/ 03 июня 2011

Слои относятся к логическому разделению кода. Логические слои помогают вам лучше организовать ваш код. Например, приложение может иметь следующие слои.

1) Уровень представления или уровень пользовательского интерфейса 2) Бизнес уровень или уровень бизнес логики 3) Уровень доступа к данным или уровень данных

Эти три слоя находятся в собственных проектах, может быть 3 или даже больше. Когда мы компилируем проекты, мы получаем DLL соответствующего слоя. Итак, сейчас у нас есть 3 DLL.

В зависимости от того, как мы развернем наше приложение, у нас может быть от 1 до 3 уровней. Поскольку теперь у нас есть 3 библиотеки DLL, если мы развернем все библиотеки DLL на одном компьютере, то у нас будет только 1 физический уровень, но 3 логических уровня.

Если мы решим развернуть каждую DLL на отдельном компьютере, то у нас будет 3 уровня и 3 уровня.

Итак, слои - это логическое разделение, а уровни - это физическое разделение. Можно также сказать, что ярусы - это физическое развертывание слоев.

23 голосов
/ 06 мая 2015

Почему всегда пытаетесь использовать сложные слова?

A layer = часть вашего кода , если ваше приложение - торт, это кусочек.

A уровень = физическая машина , сервер.

Уровень содержит один или несколько слоев.


Пример слоев:

  • Уровень представления = обычно весь код, связанный с пользовательским интерфейсом
  • Уровень доступа к данным = весь код, связанный с доступом к вашей базе данных

Уровень:

Ваш код размещен на сервере = Ваш код размещен на уровне.

Ваш код размещен на 2 серверах = Ваш код размещен на 2 уровнях.

Например, одна машина, на которой размещен сам веб-сайт (уровень презентации), другая машина с большей степенью защиты, на которой размещен более чувствительный к безопасности код (реальный бизнес-код - бизнес-уровень, уровень доступа к базе данных и т. Д.).


Существует много преимуществ для реализации многоуровневой архитектуры. Это сложно и для правильной реализации многоуровневого приложения требуется время. Если у вас есть, посмотрите на этот пост от Microsoft: http://msdn.microsoft.com/en-gb/library/ee658109.aspx

12 голосов
/ 23 сентября 2008

Я нашел определение, в котором говорится, что слои - это логическое разделение, а уровни - физическое разделение.

8 голосов
/ 19 декабря 2013
  1. В простом английском языке Tier относится к «каждому в серии строк или уровней структуры, расположенной один над другим», тогда как Layer относится к «листу, количеству или толщине материала, обычно один из нескольких, покрывающих поверхность или тело ".
  2. Уровень - это физическая единица , в которой выполняется код / ​​процесс. Например: клиент, сервер приложений, сервер базы данных;

    Слой - это логическая единица , как организовать код. Например: презентация (просмотр), контроллер, модели, хранилище, доступ к данным.

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

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

Двухуровневый шаблон представляет клиента и сервер.

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

Layers vs Tiers

Преимущества слоев и ярусов:

  • Расслоение помогает вам максимально повысить удобство сопровождения кода, оптимизировать способ, которым приложение работает, когда развернуто по-разному, и обеспечить четкое разграничение между местами, где определенные Технологические или проектные решения должны быть приняты.

  • Размещение слоев на отдельных физических уровнях может повысить производительность распределяя нагрузку между несколькими серверами. Это также может помочь с безопасностью путем разделения более чувствительных компонентов и слоев в разные сети или в Интернете по сравнению с интранетом.

Одноуровневое приложение может быть трехуровневым.

4 голосов
/ 05 июля 2017

Мне нравится приведенное ниже описание из Microsoft Application Architecture Guide 2

Слои описывают логические группы функций и компонентов в приложении; тогда как уровни описывают физическое распределение функциональности и компонентов на отдельных серверах, компьютерах, в сетях или удаленных местах. Хотя оба уровня и уровни используют один и тот же набор имен (презентация, бизнес, службы и данные), помните, что только уровни подразумевают физическое разделение.

4 голосов
/ 11 марта 2013

Да, мои дорогие друзья сказали правильно. Уровень - это логический раздел приложения, тогда как уровень - это физический раздел системы. Уровень раздела зависит от уровня слоя. Точно так же, как приложение выполняется на одной машине, но оно следует трехуровневой архитектуре, поэтому мы можем сказать, что архитектура уровней может существовать в многоуровневой архитектуре. В простом термине 3-уровневая архитектура может быть реализована на одной машине, тогда мы можем сказать, что это 1-уровневая архитектура. Если мы реализуем каждый слой на отдельной машине, то он называется 3 уровня архитектуры. Слой также может работать на нескольких уровнях. В архитектуре слоя связанные компоненты легко общаться друг с другом.
Так же, как мы следуем приведенной ниже архитектуре

  1. презентационный слой
  2. слой бизнес-логики
  3. слой доступа к данным

Клиент может взаимодействовать с «уровнем представления», но он имеет доступ к общедоступному компоненту нижнего уровня (например, общедоступному компоненту уровня бизнес-логики) к «уровню бизнес-логики» по соображениям безопасности.
Q * почему мы используем слоистую архитектуру? потому что если мы реализуем архитектуру уровня, то мы повышаем эффективность наших приложений, как

==> Безопасность

==> Управляемость

==> масштабируемость

другие потребности, например, после разработки приложения нам нужно изменить dbms или бизнес-логику и т. Д., Тогда это необходимо всем.

Q * почему мы используем многоуровневую архитектуру?

потому что физически реализация каждого уровня дает лучшую эффективность, без архитектуры уровня мы не можем реализовать архитектуру уровня. отдельная машина для реализации отдельного Уровень и отдельный уровень - это реализация одного или нескольких уровней, поэтому мы используем его.
он использует в целях отказоустойчивости. ==> прост в обслуживании.

Простой пример

Так же, как банк, открытый в палате, в каких категориях сотрудник:

  1. сторож
  2. человек за наличные
  3. лицо, ответственное за внедрение банковской схемы
  4. Менеджер

все они являются связанными компонентами системы.

Если мы идем в банк с целью получения кредита, то сначала сторож откроет дверь с улыбкой после этого мы идем к человеку, который после этого знакомит со всей схемой кредита Заходим в кабину менеджера и сдаем кредит. После этого, наконец, мы идем к кассе взять кредит. Это слоистая архитектура банка.

А как насчет уровня? Открытие филиала банка в городе, после этого в другом городе, после этого в другом но каково основное требование каждой ветви

  1. сторож
  2. человек за наличные
  3. лицо, ответственное за внедрение банковской схемы
  4. Менеджер

точно такая же концепция слоя и уровня.

4 голосов
/ 23 сентября 2008

Я использую слои для описания архитектурного или технологического стека в компоненте моих решений. Я использую уровни для логической группировки этих компонентов, как правило, когда используется сетевое или межпроцессное взаимодействие.

3 голосов
/ 13 марта 2016

Слои являются логическим разделением related-functionality[code] в приложении. Связь между уровнями является явной и слабо связанной. [Логика представления, логика приложения, логика доступа к данным]

Уровни являются физическим разделением layers [которое размещается на отдельных серверах] на отдельном компьютере (процесс).

enter image description here

Как показано на схеме:

1-Tier & 3-Layers « App Logic  with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer  « Browser View[php], App Logic[jsp], DataStorage

n- Уровень Преимущества:
Лучшая безопасность
Масштабируемость : По мере роста вашей организации вы можете расширить свой уровень DB с помощью кластеризации DB, не затрагивая другие уровни.
Ремонтопригодность : веб-дизайнер может изменить код просмотра, не касаясь других слоев на других уровнях.
Легко Обновление или Улучшение [Пример: Вы можете добавить дополнительный код приложения, обновить область хранения или даже добавить несколько слоев презентации для отдельных устройств, таких как мобильные устройства, планшеты, ПК]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...