Распределенный: Весь процесс, связанный с задачей вычисления, разбивается на части и присваивается множеству вычислительных узлов. Каждый узел, выполняющий свою часть обработки, не имеет доступа ко всей информации системы, необходимой для достижения глобального оптимизированного результата. Совокупность результатов от нескольких узлов будет сходиться к глобальному оптимальному результату посредством обычно нескольких итераций вычислений, распределенных по нескольким узлам.
Хорошим примером является система маршрутизатора, в которой каждый маршрутизатор имеет только информацию, которую он обменивается со своими соседями. Вначале соседи знали только часть всей сетевой системы. Как только маршрутизатор получает больше информации от своих соседей, он включает новую информацию в свой вид всей системы, а затем распространяет свое мнение на своих соседей. Благодаря многократной итерации этих шагов, каждый отдельно вычисляемый отдельными маршрутизаторами, все маршрутизаторы будут соглашаться на согласованном глобальном представлении всей сетевой системы.
Другим примером может служить система веб-заказа, в которой браузер первоначально получает список товаров общего порядка. В браузере может быть логика отслеживания поведения пользователя и принятия решения о получении с сервера другой категории товаров, но не отправляет все параметры поведения пользователя на сервер. В этом примере с изображением браузер знает что-то, чего не знает serer, и сервер тоже делает это. Таким образом, все приложение будет распределенной системой. В дополнение к этой части распределенного характера аутентификация пользователя может выполняться на одном из серверов, инвентаризация выполняется на другом сервере и резервирование на другом сервере. На каждом из задействованных серверов не было бы всей информации о конкретном примере просмотра и заказа пользователя. Но совокупная работа со всех этих узлов будет отвечать потребностям бизнеса, чтобы продавать больше товаров и удовлетворять большее количество клиентов.
Напротив распределенного является централизованным, поскольку логика вычислений всегда сможет получать информацию обо всем изображении.
С учетом этого представления приложение-клиент -клиент-сервер может рассматриваться как распределенная система, если вы считаете, что клиентская сторона предполагает нетривиальное принятие решений. Или может быть централизованной системой, если вы считаете, что клиент немой.
сервис-ориентированный термин больше о том, как функциональная вычислительная мощность интегрирована в систему. В сервис-ориентированной системе новые возможности могут быть внедрены в систему во время выполнения путем обнаружения новых API-функций или обнаружения новых логических возможностей за неизменным API. Подумайте об этом, вы можете создать приложение, которое изначально не имеет много встроенных возможностей, а затем расширяет его возможности, открывая и внедряя новые возможности для поставщиков услуг. Напротив, традиционная система должна быть построена во время сборки, как правило, в результате связанной с человеком дискуссии-проектно-документационной деятельности. Сервисно-ориентированный дизайн хорошо подходит для распределенной системы.
Что значит «распределенное приложение»? –
Для меня приложение (то же самое, что и программа) построено для одной цели. Затем распределенное приложение включает в себя различные компоненты, которые работают вместе для достижения этой цели. Эти компоненты работают в разных средах (я бы сказал «разные машины», но на одной машине могут быть разные среды). – alleen1