Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 27

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 27 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 272019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 27)

2.14. Этапы написания клиента и сервера согласно DOE RPCВ системе клиент-сервер клеем, соединяющим все в единую систему, являет­ся описание интерфейса, которое создается с помощью языка определения ин­терфейсов {Interface Definition Language, IDL). Он позволяет описать процедурыв виде, очень похожем на прототипы функций в ANSI С. Файлы IDL могут так­же содержать определения типов, описания констант и другую информацию, не­обходимую для правильного маршалинга параметров и демаршалинга результа­тов, В идеале описание интерфейсов содержит также формальное определениедействий, осуществляемых процедурой, но это выходит за рамки современ­ных возможностей программирования, так что определение интерфейса включа­ет в себя только его синтаксис, но не семантику.

В лучшем случае программистможет лишь добавить комментарии, описывающие, что делает та или иная функ­ция.Важнейшим элементом каждого файла IDL является глобальный уникаль­ный идентификатор описываемого интерфейса. Клиент пересылает этот иденти­фикатор в первом сообщении RPC, а сервер проверяет его правильность. В этомслучае если клиент по ошибке пытается выполнить привязку не к тому серверу2.2. Удаленный вызов процедур109или к старой версией правильного сервера, сервер обнаружит ошибку и привяз­ки не произойдет.Описания интерфейсов и уникальные идентификаторы в DCE в значитель­ной степени взаимозависимы. Как показано на ppic. 2.14, первым шагом при на­писании приложения клиент-сервер является запуск программы Uuidgen, от ко­торой мы хотим создания прототипа файла IDL, содержащего идентификаторинтерфейса, гараитрфованно не использовавшийся ни в одном интерфейсе, со­зданном при помощи программы Uuidgen.

Уникальность обеспечивается путемкодирования идентификатора машины и времени созданрш. Идентификатор пред­ставляет собой 128-битное число, представляемое в файле IDL в шестнадцатеричном формате в виде строки ASCII.Следующим шагом является редактрфование файла IDL, задание в нем именудаленных процедур и их параметров. Несмотря на то что RPC не является пол­ностью прозрачной системой (например, клиент и сервер не могут совместно ис­пользовать глобальные переменные), правила IDL делают описание неподдер­живаемых конструкций невозможным.После того как файл IDL будет закончен, для его обработки вызывается ком­пилятор IDL. В результате работы компилятора мы получаем три файла:4- заголовочный файл (то есть interface.h, в терминологии С);> файл клиентской заглушки;^ файл серверной заглушки.Заголовочный файл содержит уникальный идентификатор, определения ти­пов, констант и описания функций.

Он может быть включен (с помощью дирек­тивы #1 л elude) в код сервера и клиента. Клиентская заглушка клиента содержитте процедуры, которые будет непосредственно вызывать клиентская программа.Эти процедуры отвечают за подбор параметров и упаковку их в исходящие сообщенР1я с последующими обращениями к системе для их отправки. Клиентскаязаглушка также занимается распаковкой ответов, приходящих от сервера, и пе­редачей значений, содержащихся в этих ответах, клиенту. Серверная заглушкасодержит процедуры, вызываемые системой на машине сервера по приходе нанее сообщений. Они, в свою очередь, вызывают процедуры сервера, непосредст­венно выполняющие необходимую работу.Следующим шагом программиста является написание кода клиента и сервера.После этого они оба, а также обе заглушки, компилируются. Полученные объ­ектные файлы клиента и клиентской заглушки компонуются с библиотекамивремени выполнения, что дает в результате исполняемый файл клиента.

Такимже точно образом из файлов сервера и серверной заглушки после компиляции икомпоновки получается исполняемый файл сервера. Во время исполнения кли­ент и сервер будут запущены, и приложение начнет свою работу.Привязка клиента к серверуЧтобы позволить клиенту вызывать сервер, необходимо, чтобы сервер был заре­гистрирован и готов к приему входящих вызовов. Регистрация сервера дает кли-110Глава 2. Связьенту возможность реально обнаружить сервер и выполнить привязку к нему.

Об­наружение сервера происходит в два этапа.1. Обнаружение машины сервера.2. Обнаружение сервера (то есть нужный процесс) на этой машине.Второй шаг немного непонятен. В общем случае для того, чтобы связатьсяс сервером, клиенту нужно знать конечную точку (endpoint) машины сервера, ко­торой он может посылать сообщения. Конечная точка (более известная под на­званием порт) используется операцрюнноР! системой сервера для получениявходящих сообщений от различных внешних процессов. В DCE на каждой из сер­верных машин процессом, известным под названием DCE-демон (DCE daemon)^поддерживается таблица пар сервер — конечная точка. Перед тем как сервер ста­нет доступным для входящих запросов, он должен запросить у операционнойсистемы конечную точку. Далее сервер регистрирует эту конечную точку у DCEдемона.

DCE-демон записывает эту информацию (включая и протоколы, по ко­торым может осуществляться обмен информацией с сервером) в таблицу конеч­ных точек для последующего использования.Сервер также регистрирует (с помощью службы каталогов) предоставленныесерверной машине сетевой адрес и имя, под которым сервер будет доступен. За­тем происходит привязка клиента к серверу, как показано на рис. 2.15.Машина службы каталоговСерверслужбыкаталоговМашина клиентаКлиент3Машина сервераСерверО,DCBдемонТаблицаконечныхточекРис. 2.15.

Привязка клиента к серверу в DCEКак показано на рисунке, привязка выполняется в несколько этапов.1. Регистрация конечной точки.2. Регистрация службы.3. Поиск сервера службы каталогов.4. Запрос конечной точки.5. Выполнение вызова RPC.Предположим, клиенту требуется привязка к серверу видеоинформации, ло­кально доступному под именем /local/multimedia/video/movies. Он передает это2.3. Обращение к удаленным объектам111имя серверу службы каталогов. Последний возвращает сетевой адрес маши­ны, на которой работает сервер видеоданных. После этого клиент обращаетсяк DCE-демону этой машины (имеющему общеизвестную конечную точку) и про­сит его найти в его таблице конечных точек конечную точку сервера видеоин­формации. Теперь, вооружившись полученными данными, мы можем выполнитьвызов RPC.

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

Библиотека времени выполнения передает сообщение сервернойзаглушке, которая выполняет демаршалинг параметров и вызывает сервер. Ответотправляется назад по тому же маршруту.DCE предоставляет программистам некоторые семантические возможности.По умолчанию поддерживается одноразовая операция (at-most-once operation), всоответствие с которой ни один вызов не может осуществляться более одногораза, даже в случае краха системы. На практике это означает, что если сервер в хо­де вызова RPC «рухнул», а затем был быстро восстановлен, клиент не долженповторять операцрпо, поскольку она, возможно, уже выполнена.С другой стороны, можно пометить (в файле IDL) удаленную процедуру какидемпотентпую (idempotent), в этом случае не возбраняются многочисленные пов­торы запросов. Так, например, чтение некоторого блока из файла можно повто­рять снова и снова, пока оно не будет успешно закончено.

Если выполнениеидемпотентного блока из-за сбоя сервера срывается, клиент может подождатьперезагрузки сервера и сделать новую попытку. Также имеется и другая (редкоиспользуемая) семантика, включающая в себя широковещательные рассылкивызовов RPC всем машинам текущей локальной сети. Мы вернемся к семантикеRPC в главе 7 при рассмотрении работы RPC в условиях сбоев.2.3. Обращение к удаленным объектамОбъектно-ориентированная технология показала свое значение при разработкенераспределенных приложений. Одним из наиболее важных свойств объекта яв­ляется то, что он скрывает свое внутреннее строение от внешнего мира посредст­вом строго определенного интерфейса.

Такой подход позволяет легко заменятьили изменять объекты, оставляя интерфейс неизменным.По мере того как механизм RPC постепенно становился фактическим стан­дартом осуществления взаимодействия в распределенных системах, люди начали112Глава 2. Связьпонимать, что принципы RPC могут быть равно применены и к объектам. В этомразделе мы распространим идею RFC на обращения к удаленным объектами рассмотрим, как подобный подход может повысить прозрачность распределенияпо сравнению с вызовами RPC.

Мы сосредоточимся на относительно простыхудаленных объектах. В главе 10 мы коснемся нескольких объектных распреде­ленных систем, включая CORBA и DCOM, каждая из которых поддерживает бо­лее серьезную, совершенную объектную модель, чем та, которую мы будем рас­сматривать сейчас.2 . 3 . 1 . Распределенные объектыКлючевая особенность объекта состоит в том, что он инкапсулирует данные, на­зываемые состоянием {state), и операции над этими данными, называемые л/^шодами {methods).

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6513
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее