Что такое распределенная программа

Определение — что означает распределенное приложение?

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

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

Techopedia объясняет распределенное приложение

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

Распределенные системы: начало

Что такое распределенное приложение? - определение из техопедии

Приложение работает медленно? время уточнять

Приложение работает медленно? время уточнять

Нативное приложение или мобильное веб-приложение?

Нативное приложение или мобильное веб-приложение?

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

Для этого есть приложение — в твоей машине

Для этого есть приложение - в твоей машине

Автомобильные приложения, которые часто называют информационно-развлекательными, существуют уже несколько лет. По большей части, предложения были скромными, с приложениями для потоковой передачи музыки, новостей и разговорного радио, а также приложениями GPS .

Источник: ru.theastrologypage.com

Распределенные программы

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

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

Читайте также:
Как обновить системные программы

002 Git Распределенная система

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

Большинство приложений, используемых в локальных сетях в середине 80-х гг., являлись обычными, нераспределенными приложениями. И это понятно — они были написаны для автономных компьютеров, а потом просто перенесены в сетевую среду. Создание же распределенных приложений, хотя и сулило много преимуществ (уменьшение сетевого трафика, специализация компьютеров), оказалось делом совсем не простым. Нужно было решать множество дополнительных проблем — на сколько частей разбить приложение, какие функции возложить на каждую часть, как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу и т. д. Поэтому до сих пор только небольшая часть приложений является распределенными, хотя очевидно, что именно за этим классом приложений будущее, так как они в полной мере могут использовать потенциальные возможности сетей по распараллеливанию вычислений [9, 10, 11, 22].

Источник: studref.com

Мир распределенных систем

Это содержимое представляет собой отрывок из электронной книги Dapr для разработчиков .NET, доступной в документации по .NET или в виде бесплатного pdf-файла, который можно читать в автономном режиме.

Эскиз обложки электронной книги Dapr для разработчиков .NET.

Просто спросите любого «крутого ребенка»: Современные, распределенные системы в, и монолитные приложения вне!

Но это не просто «классные дети». Прогрессивные ИТ-руководители, корпоративные архитекторы и проницательный разработчики повторяют эти же мысли при изучении и оценке современных распределенных приложений. Многие купили. Они разрабатывают новые и переплатформируют существующие корпоративные приложения в соответствии с принципами, шаблонами и методиками распределенных приложений микрослужб.

Но, эта эволюция вызывает много вопросов.

  • Что такое распределенное приложение?
  • Почему они набирают популярность?
  • Каковы затраты?
  • И, что важно, каковы компромиссы?

Для начала давайте перемотаем и посмотрим на последние 15 лет. В течение этого периода мы обычно создавали приложения как единую монолитную единицу. На рисунке 1-1 показана архитектура.

Монолитная архитектура.

Рис. 1-1. Монолитная архитектура.

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

Читайте также:
Какие программы лучше не устанавливать на компьютер

Во многих отношениях монолитными приложениями являются straightforward . Они просты в:

  • Сборка
  • Тестирование
  • Развернуть
  • Диагностика
  • Вертикальное масштабирование (увеличение масштаба)

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

Со временем, вы можете достичь точки, когда вы начинаете терять контроль .

  • Монолит стал настолько сложным, что ни один человек не понимает его.
  • Вы боитесь внесения изменений, как каждый приносит непреднамеренные и дорогостоящие побочные эффекты.
  • Реализация новых функций и исправлений занимает много времени и становится ресурсоемкой.
  • Даже для самого небольшого изменения требуется полное развертывание всего приложения — дорогое и рискованное.
  • Один нестабильный компонент может завершить работу всей системы.
  • Добавление новых технологий и платформ не является вариантом.
  • Внедрение гибких методологий доставки является сложной задачей.
  • Архитектурная эрозия устанавливается в, как база кода ухудшается с бесконечными «особыми случаями».
  • В конце концов консультанты приходят и говорят вам, чтобы переписать его.

Ит-специалисты называют это условие the Fear Cycle . Если вы работаете в технологическом бизнесе в течение какого-либо периода времени, хороший шанс, что вы испытали это. Это напряженно и исчерпает ваш ИТ-бюджет. Вместо создания новых и инновационных решений большая часть бюджета тратится на обслуживание устаревших приложений.

Вместо страха предприятиям требуется speed and agility . Они ищут архитектурный стиль, с помощью которого они могут быстро реагировать на рыночные условия. Они должны мгновенно обновлять и масштабировать по отдельности небольшие области динамического приложения.

Ранняя попытка добиться скорости и гибкости была предпринята в виде архитектуры, ориентированной на службы, или SOA . В этой модели потребители служб и поставщики услуг совместно работали с помощью компонентов обмена сообщениями ПО промежуточного слоя, которые часто называют корпоративной служебной шиной или ESB . На рисунке 1-2 показана архитектура.

SOA.

Рис. 1-2. Архитектура SOA.

С помощью SOA централизованные поставщики услуг, зарегистрированные в ESB. Бизнес-логика будет встроена в ESB для интеграции поставщиков и потребителей. Затем потребители услуг могут найти этих поставщиков и связаться с ними с помощью ESB.

Несмотря на обещания SOA, реализация этого подхода часто усложняет и вызывает узкие места. Затраты на обслуживание стали высокими, а ПО промежуточного слоя ESB дорогостоящим. Службы, как правило, большие. Они часто совместно используют зависимости и хранилище данных. В конце концов, SOA часто приводили к «распределенной монолитной» структуре с централизованными службами, которые были устойчивы к изменениям.

Читайте также:
Какие программы утверждаются министерством

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

Распределенная архитектура.

Рис. 1-3. Распределенная архитектура.

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

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

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

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

  • Как распределенные службы могут обнаруживать друг друга и взаимодействовать синхронно?
  • Как они могут реализовать асинхронный обмен сообщениями?
  • Как они могут хранить контекстную информацию в транзакции?
  • Как они могут стать устойчивыми к сбоям?
  • Как они могут масштабироваться в соответствии с колебаниями спроса?
  • Как они отслеживаются и наблюдаются?

Для каждой из этих проблем часто доступно несколько продуктов. Однако защита приложения от различий в продуктах и обеспечение поддержки и переносимости кода становятся сложной задачей.

Эта книга знакомит с Дапром. Dapr — это распределенная среда выполнения приложения. Он непосредственно решает многие проблемы, обнаруженные вместе с распределенными приложениями. Заглядывая в будущее, Dapr может оказать глубокое влияние на разработку распределенных приложений.

Сводка

В этой главе мы обсудили внедрение распределенных приложений. Мы противопоставили монолитный системный подход с распределенными службами. Мы указали на многие распространенные проблемы при рассмотрении распределенного подхода.

Теперь сядьте, расслабьтесь и давайте познакомим вас с новым миром Дапра.

Источник: learn.microsoft.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru