Распределенные программы могут быть

Содержание

Распределенные вычисления – это способ объединения нескольких компьютеров для решения общей проблемы. Он превращает компьютерную сеть в мощный единый компьютер, который предоставляет широкомасштабные ресурсы для решения сложных задач.

Например, распределенные вычисления могут шифровать большие объемы данных; решать физические или химические уравнения со многими переменными и выводить высококачественную трехмерную видеоанимацию. Распределенные системы, распределенное программирование и распределенные алгоритмы – это еще несколько терминов, относящихся к распределенным вычислениям.

Каковы преимущества распределенных вычислений?

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

Возможности масштабирования

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

Распределенная система, которая работает везде и на всём / Олег Филиппов (WiseAdvice)

Доступность

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

Согласованность

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

Прозрачность

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

Эффективность

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

Каковы примеры использования распределенных вычислений?

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

Здравоохранение и медико‑биологические разработки

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

Высоконагруженные приложения. Глава 8 проблемы распределенных систем.

  • Ускорение проектирования медицинских препаратов на основе структуры путем визуализации молекулярных моделей в трех измерениях.
  • Сокращение сроков обработки геномных данных для раннего обнаружения рака, муковисцидоза и болезни Альцгеймера.
  • Разработка интеллектуальных систем, которые помогают докторам ставить диагнозы пациентам, обрабатывая крупные объемы сложных изображений, например МРТ, рентгеновских снимков и КТ.

Инженерные исследования

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

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

Финансовые сервисы

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

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

Энергетика и экология

Компаниям из энергетической отрасли необходимо анализировать большие объемы данных для улучшения операций и перехода к устойчивому развитию и безопасным для климата решениям. Они используют распределенные системы для анализа крупных потоков данных, поступающих от множества датчиков и других интеллектуальных устройств. Ниже перечислены некоторые задачи, которые они могут выполнять:

  • потоковая передача и консолидация сейсмических данных для структурного проектирования электростанций;
  • мониторинг нефтяных скважин в режиме реального времени для активного управления рисками.

Какие существуют типы распределенной вычислительной архитектуры?

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

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

Клиент-серверная архитектура

Клиент-серверная архитектура – это самый распространенный способ организации распределенной системы. Компьютеры выполняют две роли: клиенты и серверы.

Клиенты

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

Серверы

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

Преимущества и ограничения

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

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

Трехуровневая архитектура

В трехуровневых распределенных системах клиентские компьютеры остаются на первом уровне доступа. С другой стороны, серверные компьютеры делятся еще на две категории.

Серверы приложений

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

Серверы баз данных

Серверы баз данных – это третий уровень, на котором осуществляется хранение данных и управление ими. Они отвечают за получение данных и их целостность.

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

N-уровневая архитектура

N-уровневые модели состоят из нескольких различных клиент-серверных систем, которые взаимодействуют между собой для решения одной и той же проблемы. Большинство современных распределенных систем используют n-уровневую архитектуру, в которой разные корпоративные приложения совместно работают за кулисами как одна система.

Пиринговая архитектура

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

Как работают распределенные вычисления?

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

Слабая взаимозависимость

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

Сильная взаимозависимость

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

Что такое параллельные вычисления?

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

Параллельные вычисления и распределенные вычисления

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

Что такое сетевые распределенные вычисления?

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

Сетевые распределенные вычисления и распределенные вычисления

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

Что такое высокопроизводительные вычисления AWS?

С помощью Высокопроизводительных вычислений AWS (HPC) вы можете ускорить внедрение инноваций благодаря высокой скорости сети и практически неограниченной инфраструктуре распределенных вычислений. Например, вы можете воспользоваться указанными ниже сервисами.

  • Amazon Elastic Cloud Compute (EC2) для поддержки практически любой рабочей нагрузки за счет безопасного компьютерного пространства с возможностью изменения размера.
  • Пакет AWS для масштабирования сотен тысяч вычислительных задач с целью их обработки различными вычислительными сервисами AWS.
  • AWS ParallelCluster для быстрого создания сред высокопроизводительных вычислений и кластеров.

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

Источник: aws.amazon.com

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

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

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

Читайте также:
Разветвляющийся алгоритм подразумевает последовательное выполнение всех элементов программы

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

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

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

Контрольные вопросы

№ п.п. Вопрос Ответ
Компьютерная сеть – это: Комплекс взаимосвязанных и согласовано функционирующих программных и аппаратных компонентов
Многослойная модель – это:
Первый слой многослойной модели – это: Аппаратный слой стандартизованных компьютерных платформ
Второй слой многослойной модели – это: коммуникационное оборудование
Третий слой многослойной модели – это: Операционные системы, образующую программную платформу сети
Четвертый слой многослойной модели – это: Сетевые приложения, сетевые базы данных, почтовые системы, средства архивирования данных, системы автоматизации коллективной работы
Коммуникационные устройства – это: Кабельные системы, повторители, мосты, коммутаторы, маршрутизаторы, модульные концентраторы
Мультипроцессорные компьютеры – это: Специализированные компьютеры параллельной обработки данных, образованные процессорными матрицами, функционирующие под управлением общей операционной системы и использующие общую оперативную память
Многомашинная система –это: Вычислительный комплекс параллельной обработки данных, содержащий несколько компьютеров, каждый из которых работает под управлением собственной операционной системы. Каждый компьютер комплекса включает специальные программные средства управления ресурсами и аппаратные средства связи компьютеров, которые обеспечивают работу всех компьютеров комплекса как единого целого
Вычислительная сеть – это: Набор независимых компьютеров, функционирующих под управлением собственной операционной системы и обменивающихся информацией посредством сетевых адаптеров через протяженные каналы связи.
Сетевая программа сервер – это: Постоянно активный (резидентный) программный модуль, находящийся в режиме ожидания запросов на доступ к ресурсам своего компьютера
Сетевая программа клиент – это: Программный модуль, формирующий запрос на доступ к удаленным ресурсам
Система Клиент – Сервер – это: Комплекс распределенных служебных программных модулей, обеспечивающих совместный доступ пользователей к определённому типу ресурсов
Сервис – это: Интерфейс между потребителем услуг и поставщиком услуг
Служба – это: Компонент, реализующий набор услуг
Компьютер – Сервер – это: Компьютер, который предоставляет свои ресурсы другим компьютерам
Компьютер – Клиент – это: Компьютер, использующий ресурсы других компьютеров
Сетевые службы всегда представляют собой: Распределенные служебные программы
Распределённая программа – это: Программа, состоящая из нескольких взаимодействующих программных модулей, выполняемых на разных компьютерах
Сетевое приложение – это: Распределенная пользовательская программа

Дата добавления: 2015-08-09 ; просмотров: 254 | Нарушение авторских прав

| следующая страница ==>
Многомашинные системы | ISBN 5-94723-180-8

mybiblioteka.su — 2015-2023 год. (0.012 сек.)

Источник: mybiblioteka.su

Что такое распределенные системы? Краткое введение

bestprogrammer.ru

Что такое распределенные системы

Изучение

На чтение 7 мин Просмотров 10.3к. Опубликовано 21.04.2021

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

Распределенные проекты могут показаться сложными и сложными для создания, но в 2021 году они становятся все более важными для обеспечения экспоненциального масштабирования. Начиная сборку, важно оставить место для базовой, высокодоступной и масштабируемой распределенной системы.

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

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

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

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

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

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

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

Как правило, существует три типа распределенных вычислительных систем со следующими целями:

  • Распределенные информационные системы: распределяйте информацию по разным серверам с помощью нескольких моделей связи.
  • Распределенные всеобъемлющие системы: используйте встроенные компьютерные устройства (например, мониторы ЭКГ, датчики, мобильные устройства)
  • А также распределенные вычислительные системы: компьютеры в сети обмениваются данными посредством передачи сообщений.
Читайте также:
Технопро программа для написания техпроцесса отзывы

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

Децентрализованные и распределенные

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

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

Преимущества распределенной системы

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

  • Масштабирование: распределенная система позволяет масштабироваться по горизонтали, чтобы вы могли учитывать больший трафик.
  • Модульный рост: практически нет ограничений на масштабирование.
  • Отказоустойчивость: распределенные системы более отказоустойчивы, чем отдельная машина.
  • Рентабельность: начальная стоимость выше, чем у традиционной системы, но благодаря своей масштабируемости они быстро становятся более рентабельными.
  • Низкая задержка: пользователи могут иметь узел в нескольких местах, поэтому трафик попадет в узел в шкафу.
  • Эффективность: распределенные системы разбивают сложные данные на более мелкие части.
  • Параллелизм: распределенные системы могут быть разработаны для параллелизма, когда несколько процессоров разделяют сложную задачу на части.

Масштабируемость — самое большое преимущество распределенных систем

Масштабируемость — самое большое преимущество распределенных систем. Горизонтальное масштабирование означает добавление дополнительных серверов в пул ресурсов. Вертикальное масштабирование означает масштабирование за счет увеличения мощности (ЦП, ОЗУ, хранилища и т. Д.) На ваших существующих серверах.

Горизонтальное масштабирование легче динамически масштабировать, а вертикальное масштабирование ограничено мощностью одного сервера.

Хорошими примерами горизонтального масштабирования являются Cassandra и MongoDB. Они упрощают горизонтальное масштабирование за счет добавления дополнительных машин. Примером вертикального масштабирования является MySQL, когда вы масштабируете, переключаясь с меньших компьютеров на большие.

Проблемы проектирования с распределенными системами

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

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

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

Точно так же ошибки труднее обнаружить в системах, которые разбросаны по разным местам.

Облако против распределенных систем

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

Распределенные вычисления направлены на создание совместного использования ресурсов и обеспечение размера и географической масштабируемости. Облачные вычисления — это предоставление среды по запросу с использованием прозрачности, мониторинга и безопасности.

По сравнению с распределенными системами облачные вычисления имеют следующие преимущества:

  • Экономически эффективным
  • Доступ к мировому рынку
  • Инкапсулированное управление изменениями
  • Доступ к хранилищу, серверам и базам данных в Интернете

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

Такие приоритеты, как балансировка нагрузки, репликация, автоматическое масштабирование и автоматическое резервное копирование. Могут быть упрощены с помощью облачных вычислений. Инструменты создания облака, такие как Docker, Amazon Web Services (AWS), Google Cloud Services или Azure, позволяют быстро создавать такие системы, и многие команды предпочитают создавать распределенные системы вместе с этими технологиями.

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

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

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

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

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

Источник: bestprogrammer.ru

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