Многоуровневый против Distibuted?

Многоуровневые и / или распределенные приложения, имеют ли они одинаковое значение?

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

3 ответа

Решение

Возможно, эти два предложения интуитивно передают различие между распределенным и многоуровневым:

  • Распределенный: Вы дублируете обработку среди узлов
  • Многоуровневый: вы разделяете обработку между уровнями

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам