Подтвердить что ты не робот

Разница между тремя уровнями против n-уровня

Я натолкнулся на следующее предложение:

Поскольку индустрия перешла от трех модель уровня к моделям n-уровня, несоответствие реляционного импеданса объекта стало более распространенным.

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

4b9b3361

Ответ 1

Цитата, похоже, находится на этой странице codeproject. Также кажется, что довольно неплохо объяснять n-уровень, чтобы включить такие вещи, как веб-службы, javascript, рабочие процессы и т.д. Все, что не обязательно включает в себя 3-уровневые модели.

Ответ 2

В разработке мы понимаем уровень как абстракцию уровня ответственности.

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

В этом смысле так называемые модели с тремя уровнями или n-уровневые модели - это просто разные реализации этих понятий.

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

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

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

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

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

В конце концов, что важно понятие абстрагирования ответственности среди разных слоев и централизация всех связанных операций из семантического представления в одном и том же месте.

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

Ответ 3

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

3-ярус означает, что торт имеет 3 слоя. Обычно это данные внизу, затем логический уровень приложения (PHP/ruby ​​/etc), а затем уровень представления вверху (html)

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

Похоже, что это имеет больший смысл при использовании больших или веб-приложений.

Обычно я получаю приложение на 5 уровней. Каждый уровень может взаимодействовать только с одним над ним или под ним. Это может обеспечить фантастическую расширяемость и стандартизацию в вашем приложении.

Уровень клиента

Веб-браузер


Уровень презентации

Render HTML - Coldfusion/Flash/Ruby/PHP и т.д.


Уровень бизнес-логики

Запустите процессы и вычисления по мере необходимости - Coldfusion/Flash/Ruby/PHP и т.д.


Уровень интеграции данных

(Запросы с моего языка разработки, хранимых процедур и т.д.)


Уровень данных

(База данных - MySQL и т.д.)

Ответ 4

n-уровень означает, что n - любое число - при n = 3, то оно совпадает с n-тиром.

Обычное определение 3-го уровня - это представление, логика и данные (в любом порядке), и да, SOA может путать неофита, потому что иногда он сидит в уровне данных, иногда в логическом уровне, а иногда и в логическом, и в уровне данных,

Весь предмет... субъективен. Если вам нужны несколько уровней, тогда назовите его n-уровневым - если вы знаете, что n = 7, тогда назовите его 7-уровневым или n-уровневым.

Ответ 5

Эй, я даже не могу получить определение 3 уровня. Иногда они скидывают javascript на клиенте, а иногда javascript на клиенте и клиентский веб-браузер считаются другим. Таким образом, страница ASP, которая ведет переговоры с базой данных, может быть 3 уровня, если вы предполагаете, что база данных = уровень 3, веб-сервер = уровень 2, клиентский веб-браузер = уровень 1. И еще раз веб-сервер = уровень 1, промежуточное ПО = уровень 2, база данных = уровень 3. Это действительно зависит от того, кто пишет определение/книгу.

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

Ответ 6

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

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

Ответ 9

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