Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 15
Текст из файла (страница 15)
Документы содержат ссылки, связывающие текущий документ с други-1.4. Концепции программных решений63ми. Если следовать по ссылке, то документ, с которым связана эта ссылка, будетизвлечен из места его хранения и выведен на экран пользователя. Концепция документа не ограничивается исключительно текстовой информацией. Например,в Web поддерживаются аудио- и видеодокументы, а также различные виды документов на основе интерактивной графики.Позже мы еще вернемся к парадигмам промежуточного уровня.Службы промежуточного уровняСуществует некоторое количество стандартных для систем промежуточногоуровня служб.
Все программное обеспечение промежуточного уровня неизменнодолжно тем или иным образом реализовывать прозрачность доступа путем предоставления высокоуровневых средств связи {communication facilities), скрывающих низкоуровневую пересылку сообщений по компьютерной сети. Интерфейспрограммирования транспортного уровня, предоставляемый сетевой операционной системой, полностью заменяется другими средствами. Способ, которым поддерживается связь, в значительной степени зависит от модели распределения,предлагаемой программным обеспечением промежуточного уровня пользователям и приложениям. Мы уже упоминали удаленный вызов процедур и обращение к распределенным объектам. Кроме того, многие системы промежуточногоуровня предоставляют средства для прозрачного доступа к удаленным данным,такие как распределенные файловые системы или распределенные базы данных.Прозрачная доставка документов, реализуемая в Web, — это еще один примеркоммуникаций высокого уровня (однонаправленных).Важная служба, общая для всех систем промежуточного уровня, — это именование {naming).
Службы именования сравнимы с телефонными книгами илисправочниками типа «Желтых страниц». Они позволяют совместно использоватьи искать сущности (как в каталогах). Хотя присвоение имен на первый взглядкажется простым делом, при масштабировании возникают серьезные трудности.Проблема состоит в том, что для эффективного поиска имени в большой системеместоположение разыскиваемой сущности должно считаться фиксированным.Такое допущение, в частности, принято в среде World Wide Web, в которой любой документ поименован посредством URL.
URL содержит имя сервера, на котором находится документ с данным URL-адресом. Таким образом, если документ переносится на другой сервер, его URL перестает работать.Многие системы промежуточного уровня предоставляют специальные средства хранения данных, также именуемые средствами сохранности {persistence).В своей простейшей форме сохранность обеспечивается распределенными файловыми системами, но более совершенное программное обеспечение промежуточного уровня содержит интегрированные базы данных или предоставляет средства для связи приложений с базами данных.Если хранение данных играет важную роль для оболочки, то обычно предоставляются и средства для распределенных транзакций {distributed transactions).Важным свойством транзакций является возможность множества операций чтения и записи в ходе одной атомарной операции. Под атомарностью мы понимаемтот факт, что транзакция может быть либо успешной (когда все операцрш записи64Глава 1.
Введениезавершаются успешно), либо неудачной, что оставляет все задействованные данные не измененными. Распределенные транзакции работают с данными, которые, возможно, разбросаны по нескольким машинам.Предоставление таких служб, как распределенные транзакции, особенно важно в свете того, что маскировка сбоев для распределенных систем нередко затруднена.
К сожалению, транзакции легче масштабировать на нескольких географически удаленных машинах, чем на множестве локальных.Ну и, наконец, практически все системы промежуточного уровня, используемые не только для экспериментов, предоставляют средства обеспечения защиты{secuiity). По сравнению с сетевыми операционными системами проблема защиты в системах промежуточного уровня состоит в том, что они распределены.Промежуточный уровень в принципе не может «надеяться» на то, что базовыелокальные операционные системы будут адекватно обеспечивать защиту всейсети. Соответственно, защита отчасти ложится на программное обеспечение промежуточного уровня.
В сочетании с требованием расширяемости защита превращается в одни из наиболее трудно реализуемых в распределенных системахслужб.Промежуточный уровень и открытостьСовременные распределенные системы обычно создаются в виде систем промежуточного уровня для нескольких платформ. При этом приложения создаютсядля конкретной распределенной системы и не зависят от платформы (операционной системы). К сожалению, эта независимость часто заменяется жесткой зависимостью от конкретной системы промежуточного уровня. Проблема заключается в том, что системы промежуточного уровня часто значительно менее открыты,чем утверждается.Как мы обсуждали ранее, истинно открытая распределенная система определяется полнотой (завершенностью) ее интерфейса.
Полнота означает реальноеналичие всех необходимых для создания систем описаний. Неполнота описанияинтерфейса приводит к тому, что разработчики систем вынуждены добавлятьсвои собственные интер>фейсы. Таким образом, мы можем прийти к ситуации,когда разными командами разработчиков в соответствии с одним и тем же стандартом создаются разные системы промежуточного уровня и приложения, написанные под одну из систем, не могут быть перенесены под другую без значительных усилий.Не менее неприятна ситуация, когда неполнота приводит к невозможностисовместной работы двух реализаций, несмотря на то, что они поддерживают абсолютно одинаковый набор интерфейсов, но различные базовые протоколы. Так,если две реализации основаны на несовместимых коммуникационных протоколах, поддерживаемых сетевой операционной системой, маловероятно, что удастся с легкостью добиться их совместной работы. Необходимо, чтобы и протоколы промежуточного уровня, и его интерфейсы были одинаковы, как показанона рис.
1.17.Еще один пример. Для гарантии совместной работы различных реализацийнеобходимо, чтобы к сущностям разных систем можно было одинаково обра-1.4. Концепции программных решений65щаться. Если к сущностям в одной системе обращение идет через URL, а в другой системе — через сетевой адрес, понятно, что перекрестные обращения приведут к проблемам. В подобных случаях определения интерфейсов должны точнопредписывать вид ссылок.ПриложениеПриложениеОдинаковыепрограммныеинтерфейсы1М1\-^^^ШшШШШШ!г\Программное L'обеспечениепромежуточногоуровняГОбщийпротоколMiiliiiililiiiiilHJ ПрограммноеобеспечениепромежуточногоуровняСетеваяоперационнаясистемаСетеваяоперационнаясистема|Рис. 1.17.
В открытых распределенных системах должны быть одинаковыми как протоколы,используемые промежуточными уровнями каждой из систем, так и интерфейсы,предоставляемые приложениямСравнение системКраткое сравнение распределенных операционных систем, сетевых операционных сргстем и распределенных систем промежуточного уровня приводится втабл. 1.5.Таблица 1.5.
Сравнение распределенных операционных систем,сетевых операционных систем и распределенных системпромежуточного уровняХарактеристикаРаспределенная операционнаясистемаСетеваяоперационнаясистемаРаспределенная системапромежуточного уровнямультипроцессорнаямультикомпьютернаяСтепеньпрозрачностиОчень высокаяВысокаяНизкаяВысокаяИдентичностьоперационнойсистемы на всехузлахПоддерживаетсяПоддерживаетсяНе поддерживаетсяНе поддерживаетсяЧисло копий ОС1NNNКоммуникациина основеСовместноиспользуемойпамятиГлобальное,централизованноеСообщенийФайловВ зависимостиот моделиГлобальное,распределенноеОтдельнона узлеОтдельнона узлеУправлениересурсамипродолжение-S^66Глава 1.
ВведениеТаблица 1.5 (продолжение)ХарактеристикаРаспределенная операционнаясистемамультикомпьютернаяСетеваяоперационнаясистемаРаспределенная системапромежуточного уровняМасштабируемостьмультипроцессорнаяОтсутствуетУмереннаяДаРазличнаяОткрытостьЗакрытаяЗакрытаяОткрытаяОткрытаяЧто касается прозрачности, ясно, что распределенные операционные системыработают лучше, чем сетевые. В мультипроцессорных системах нам нужно скрывать только общее число процессоров, а это относительно несложно.
Сложнеескрыть физическое распределение памяти, поэтому не просто создать мультикомпьютерную операционную систему с полностью прозрачным распределением.Распределенные системы часто повышают прозрачность путем использованияспециальных моделей распределения и связи. Так, например, распределенныефайловые системы обычно хорошо скрывают местоположение файлов и доступк ним. Однако они несколько теряют в общности, и пользователи, решршшие выразить все, что можно, в рамках конкретной модели, могут получить взамен проблемы с некоторыми приложениями.Распределенные операционные системы гомогенны, то есть каждый узел имеетсобственную операционную систему (ядро).
В мультипроцессорных системахнет необходимости копировать данные — таблицы и пр., поскольку все они находятся в общей памяти и могут использоваться совместно. В этом случае всясвязь также осуществляется через общую память, в то время как в мультикомпьютерных системах требуются сообщения. Мы обсуждали, что в сетевых операционных системах связь чаще всего базируется на файлах. Так, например, в Интернете большая часть обмена осуществляется путем передачи файлов. Кроме того,однако, интенсивно используется обмен сообщениями высокого уровня в видесистем электронной почты и досок объявлений.
Связь в распределенных системах промежуточного уровня зависит от модели, на которой основана система.Ресурсы в сетевых операционных системах и распределенных системах промежуточного уровня управляются на каждом узле, что делает масштабированиеэтих систем относительно простым. Однако практика показывает, что реализация в распределенных системах программного обеспечения промежуточногоуровня часто приводит к ограниченности масштабирования. Распределенныеоперационные системы осуществляют глобальное управление ресурсами, что усложняет их масштабирование. В связи с централизованным подходом (когда вседанные находятся в общей памяти) в мультипроцессорных системах они такжемасштабируются с трудом.И, наконец, сетевые операционные системы и распределенные системы промежуточного уровня выигрывают с точки зрения открытости.