Многоуровневый против Distibuted? - PullRequest
2 голосов
/ 22 августа 2010

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

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

Ответы [ 3 ]

5 голосов
/ 23 августа 2010

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

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

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

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

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

1 голос
/ 23 августа 2010

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

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

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

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

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

0 голосов
/ 22 августа 2010

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

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

...