Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
785.92 Кб
Скачать

Конспект лекций модуля № 1 "Введение" дисциплины "Распределенные программные системы и технологии" Тема 1. Определение и характеристики распределенных программных систем

1.1. Определение и задачи распределенных систем

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

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

Распределенные системы решают следующие задачи:

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

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

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

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

Из определения видно, что распределенная система должна для пользователя представлять собой единое целое, т.е. она должна скрыть тот факт, что процессы и ресурсы физически распределены по множеству компьютеров. Такое свойство называется прозрачностью (transparent).

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

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

Прозрачность местоположения (location transparency) призвана скрыть от пользователя, где именно физически расположен в системе нужный ему ресурс. Важную роль в реализации прозрачности местоположения играет именование. Так, прозрачность местоположения может быть достигнута путем присвоения ресурсам только логических имен, то есть таких имен, в которых не содержится закодированных сведений о местоположении ресурса. Примером такого имени может быть URL: http://~wiv.prenhall.com/index.html, в котором не содержится никакой информации о реальном местоположении главного web-сервера издательства Prentice Hall. URL также не дает никакой информации о том, находился ли файл index.html в указанном месте постоянно или оказался там недавно.

Прозрачность переноса (migration transparency) скрывает смену местоположения ресурсов в сети и не влияет на доступ к ним со стороны пользователей РПС

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

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

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

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

Прозрачность отказов (failure transparency) означает, что пользователя никогда не уведомляют о том, что ресурс (о котором он мог никогда и не слышать) не в состоянии правильно работать и что система далее восстановилась после этого повреждения. Маскировка сбоев - это одна из сложнейших проблем в распределенных системах и столь же необходимая их часть. Основная трудность состоит в маскировке проблем, возникающих в связи с невозможностью отличить неработоспособные ресурсы от ресурсов с очень медленным доступом. Так, контактируя с перегруженным web-сервером, браузер выжидает положенное время, а затем сообщает о недоступности страницы. При этом пользователь не должен думать, что сервер и правда не работает.

Прозрачность сохранности (persistence transparency) маскирует реальную (диск) или виртуальную (оперативная память) сохранность ресурсов. Так, например, многие объектно-ориентированные базы данных предоставляют возможность непосредственного вызова методов для сохраненных объектов. За сценой в этот момент происходит следующее: сервер баз данных сначала копирует состояние объекта с диска в оперативную память, затем выполняет операцию и, наконец, записывает состояние на устройство длительного хранения. Пользователь, однако, остается в неведении о том, что сервер перемещает данные между оперативной памятью и диском. Сохранность играет важную роль в распределенных системах, однако не менее важна она и для обычных (не распределенных) систем.

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

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