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

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

14 ответов


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

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

Источник: Рокфорд Модржаны, должны ли все приложения быть n-уровня?


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

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


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

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

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

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

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

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


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

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

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

на уровне размещается один или несколько слоев.


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

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

уровень:

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

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

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


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


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


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

    слой логический блок, как организовать код. Например: представление (Вид), Контроллер, модели, репозиторий, доступ к данным.

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

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

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

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

Layers vs Tiers

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

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

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

1-Ярусный приложение может быть 3-слоя приложения.


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


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

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

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

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

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

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

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

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

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

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

как раз как банк открытый в камере, в которой категории сотрудник:

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

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

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

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

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

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


Мне нравится приведенное ниже описание от Руководство По Архитектуре Приложений Microsoft 2

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


слои логическое разделение 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 -уровня плюсы:
Улучшенная Безопасность
масштабируемость : по мере роста вашей организации вы можете масштабировать свой уровень БД с помощью кластеризации БД, не касаясь других уровней.
ремонтопригодность : веб-дизайнер может изменить вид-код, не касаясь других слоев на других уровнях.
Легко обновление или повысить [например: вы можете добавить дополнительный код приложения, обновить область хранения или даже добавить несколько слоев презентации для отдельных устройств, таких как мобильный, планшет, ПК]


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


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

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


1.В 3 слоя архитектуры даль(слой данных), БРЛ(Bissiness слой) и ИЮОЖ(пользовательского слоя) сможет работать на той же машине, где, как в 3-уровневая архитектура клиент на одной машине, сервер приложений хранится в другом компьютере и сервер базы данных находится в другой машине.

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


когда вы говорите о презентации, сервисе, данных, сетевом слое, вы говорите о слоях. Когда вы "развертываете их отдельно", вы говорите об уровнях.

уровни-это все о развертывании. Возьмите это так: у нас есть приложение, которое имеет интерфейс, созданный в Angular, он имеет бэкэнд как Mongo db и средний слой, который взаимодействует между интерфейсом и бэкэндом. Итак, когда это интерфейсное приложение, приложение базы данных и средний уровень развернуты отдельно мы говорим, что это приложение 3 уровня.

преимущество: если нам нужно масштабировать наш бэкэнд в будущем, мы можем только масштабировать бэкэнд самостоятельно и нет необходимости масштабировать интерфейс.