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

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

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

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

results, size):/* Добавить ответ к содержимому буфера: */put_msg(root. sizeof(res). res):/•^ Освободить память, выделенную под запрос: */free(req):/* Освободить память, выделенную под результаты: */free(results):3.4. Перенос кода189}void 1nvoke_adapter(long old. message ^request) {put_msg(thread[oid]. sizeof (request), request);}Теперь реа7П1зация процедуры invoke^adapter несложна. Вызываемый потоквыполнения (в нашем примере — демультиплексор) добавляет свой запрос наобращение к буферу потока, ассоциированному с объектом, к которому был за­прошен доступ. Позднее демультиплексор может извлечь результаты из свое­го собственного буфера и вернуть их клиенту, который и заказывал обращениек объекту.Важно отметить, что реализация адаптера не зависит от объектов, обращенияк которым он обрабатывает.

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

Хотя на рис. 3.7 показан специальный компонент, кото­рый занимается распределением поступивших запросов соответствующим адап­терам (демультиплексор), он не обязателен. Для этой цели мы вполне могли быиспользовать адаптер объектов. Как мы увидим в главе 9, подобный подход реа­лизован в технологии CORBA.3.4. Перенос кодаДо сих пор мы в основном обсуждали распределенные системы, в которых взаи­модействие ограничивалось передачей данных.

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

Чтобы вестипредметный разговор, в конце этого раздела мы рассмотрим систему D'Agentsдля мобильных агентов. Отметим, что вопросы безопасности, связанные с пере­носом кода, вынесены в главу 8.3 . 4 . 1 . Подходы к переносу кодаПеред тем как рассматривать различные варианты переноса кода, обсудим спер­ва, зачем подобный перенос может понадобиться.190Глава 3.

ПроцессыПричины для переноса кодаТрадиционно перенос кода в распределенных системах происходит в форме пере­носа процессов {process migration)у в случае которых процесс целиком переноситсяс одной машины на другую. Перенос работающего процесса на другую машину —дорогостоящая и сложная задача, и для ее выполнения должна быть веская при­чина. Такой причиной всегда была производительность. Основная идея состоит втом, что производительность может возрасти при переносе процессов с сильнозагруженной на слабо загруженную машину. Загрузка обычно выражается в по­нятиях длины очереди к процессору РШИ загрузки процессора, используются так­же и другие индикаторы производительности.Алгоритм распределения загрузки, на базе которого принимаются решения,включающие распределение и перераспределение задач в соответствии с имею­щимся набором процессоров, играет важную роль в системах интенсивных вы­числений.

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

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

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

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

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

3.8. Подобная модель динамически перено­симого из удаленного хранилища кода требует стандартизации протокола за­грузки и инициализации кода. Кроме того, необходимо, чтобы загружаемый кодможно было выполнять на машине клиента. Различные решения этой проблемыбудут рассмотрены ниже и в последующих главах.КлиентСоответствующийслужбе клиентский2. Взаимодействиеклиента и сервераСервер1. Извлечение кода клиентомкодХранилище кодаРис. 3.8. Принцип динамического конфигурирования клиента для связи с сервером.Сначала клиент извлекает необходимое программное обеспечение,а затем обращается к серверуВажное преимущество подобной модели динамической дозагрузки клиент­ского программного обеспечения состоит в том, что клиенту для общения с серве­ром нет необходимости иметь полный комплект предварительно устанавливае­мого программного обеспечения.

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

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

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

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