Что такое N-уровневая архитектура? - PullRequest
186 голосов
/ 23 ноября 2008

В последнее время я видел довольно много сообщений о вакансиях разработчиков, в которых есть предложение, которое выглядит примерно так: «Должен иметь опыт работы с архитектурой N-уровня» или «Должен иметь возможность разрабатывать приложения N-уровня».

Это заставляет меня спросить, что такое архитектура N-уровня? Как можно получить опыт с этим?

Ответы [ 11 ]

0 голосов
/ 22 мая 2019

Мартин Фаулер ясно демонстрирует:

Расслоение является одним из наиболее распространенных методов, которые разработчики программного обеспечения используют для разбить сложную систему программного обеспечения. Вы видите это в машинных архитектурах, где слои спускаются с языка программирования с вызовами операционной системы в драйверы устройств и наборы команд процессора, а также в логические элементы внутри чипов. Сеть имеет FTP-уровень поверх TCP, который находится поверх IP, который включен верхняя часть Ethernet.

Когда вы думаете о системе в терминах слоев, вы представляете основные подсистемы в программном обеспечении расположены в некоторой форме слоеный пирог, где каждый слой опирается на нижний слой. В этой схеме верхний уровень использует различные сервисы определяется нижним уровнем, но нижний уровень не знает о более высоком уровне. Кроме того, каждый слой обычно скрывает свои нижние слои от слоев выше, поэтому Уровень 4 использует службы уровня 3, который использует службы уровня 2, но уровень 4 не знает о слое 2. (Не все многоуровневые архитектуры непрозрачны, как это, но большинство из них - или, скорее, большинство в основном непрозрачные.)

Разбиение системы на слои имеет ряд важных преимуществ.

• Вы можете понять один слой как связное целое, не зная много о других слоях. Вы можете понять, как построить службу FTP поверх TCP, не зная подробностей о том, как работает Ethernet.

• Вы можете заменить слои альтернативными реализациями того же самого основные услуги. Служба FTP может работать без изменений через Ethernet, PPP, или то, что использует кабельная компания.

• Вы минимизируете зависимости между слоями. Если кабельная компания изменится его физическая система передачи, при условии, что они заставляют IP работать, мы не должны изменить наш FTP-сервис.

• Слои создают хорошие места для стандартизации. TCP и IP являются стандартами потому что они определяют, как должны работать их слои.

• После создания слоя его можно использовать для многих служб более высокого уровня. Таким образом, TCP / IP используется FTP, telnet, SSH и HTTP. В противном случае все эти протоколы более высокого уровня должны будут писать свои собственные протоколы более низкого уровня. Из библиотеки Кайла Джеффри Пассарелли

Расслоение является важной техникой, но есть и недостатки.

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

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

...