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

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

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

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

Сервербез фиксации состояния {stateless sewer) не сохраняет информацию о состояниисвоих клиентов и может менять свое собственное состояние, не информируя обэтом своих клиентов [55]. Web-сервер, например, это сервер без фиксации со­стояния. Он просто отвечает на входящие HTTP-запросы, которые могут требо­вать загрузки файла как на сервер, так и (гораздо чаще) с сервера.

После выпол­нения запроса web-сервер забывает о клиенте. Кроме того, набор файлов,которыми управляет web-сервер (возможно, в комбинации с файловым серве­ром), может быть изменен без уведомления клиентов об этом действии.В противоположность этому, сервер с фиксацией состояния (stateful server)хранит и обрабатывает информацию о своих клиентах. Типичным примеромтакого сервера является файловый сервер, позволяющий клиенту создавать ло­кальные копии файлов, скажем, для повышения производительности операцийобновления. Подобный сервер поддерживает таблицу, содержащую записи пар(клиент, файл).

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

Рост производительности по сравне­нию с серверами без фиксации состояния часто является основным преимущест­вом и основной причиной разработки серверов с фиксацией состояния. Однакоданный пример также иллюстрирует основной недостаток таких серверов. В слу­чае сбоя сервера он вынужден восстанавливать свою таблицу с записями пар(клиент, файл), в противном случае не будет никакой гарантии в том, что работапроисходит с последней обновленной версией файла. Как правило, серверы с фик­сацией состояния нуждаются в восстановлении своего состояния в том виде,в котором оно было до сбоя. Как мы увидим в главе 7, необходимость обеспечитьвосстановление после сбоя сильно усложняет программу. В случае архитектурыбез фиксации состояния вообще нет необходимости принимать какие-то специ­альные меры по восстановлению серверов после сбоя. Они просто перезапуска­ются и работают, ожидая запросов клиента.При разработке сервера выбор между архитектурой с фиксацией и без фикса­ции состояния не отражается на службе, которую этот сервер должен предостав­лять.

Так, например, поскольку до выполнения чтения или записи файлы в лю­бом случае должны открываться, сервер без фиксации состояния должен тем илииным способом воспроизвести открытие файла. Стандартное решение, котороемы более детально обсудим в главе 10, состоит в том, чтобы сервер, обрабатываязапрос на запись в файл или чтение из файла, открывал нужный файл, выполнялоперацию чтения или записи и немедленно его закрывал.В других случаях сервер может пожелать хранить записи о поведении клиен­тов, чтобы более эффективно обрабатывать их запросы. Так, например, web-сер­веры иногда предоставляют клиентам возможность немедленно отправиться на3.3. Серверы183любимые страницы. Это можно сделать только в том случае, если сервер будетхранить информацию о клиенте.

Традиционное решение состоит в том, чтобыпозволить клиенту отсылать дополнительную информацию о его предыдущих се­ансах работы с сервером. Эта информация часто прозрачно сохраняется браузе­ром клиента в виде файлов cookie — маленьких фрагментов данных, содержащихинформацию о клиенте, важную для сервера. Файлы cookie никогда не исполня­ются браузером, они просто хранятся.При первом обращении клиента к серверу последний пересылает файл cookieвместе с запрошенными web-страницами браузеру, а браузер сохраняет этот файлcookie. Каждый раз в дальнейшем при обращении клиента к серверу файлыcookie пересылаются браузером на сервер вместе с текстом запроса. В теории этотподход работает прекрасно, на деле же файлы cookie для безопасного храненияотсылаются браузером назад на сервер часто совершению скрытно от пользователя.Такая вот «великая» секретность.

В отличие от бабушкиного печенья (cookie —печенье), эти cookie, как правило, следует оставлять там, где их «испекли».3.3.2. Серверы объектовПосле того как мы рассмотрели основные моменты, относящиеся к проектирова­нию серверов, обсудим особый тип серверов, который становится все важнее.Сервер объектов {object sewer) — это сервер, ориентированный на поддержку рас­пределенных объектов. Важная разница между стандартным сервером объектови другими (более традиционными) серверами состоит в том, что сам по себе сер­вер объектов не предоставляет конкретной службы. Конкретные службы реали­зуются объектами, расположенными на сервере.

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

Кроме того, существует разница и в способе обращениясервера объектов к его объектам. Например, в многопоточном сервере объектовотдельный поток выполнения может быть назначен каждому объекту или каждо­му запросу на обращение к объекту. Эту и другие тонкости мы сейчас и обсудим.Альтернативы обращению к объектамДля любого объекта, к которому происходит обращение, сервер объектов должензнать, какой код выполнять, с какими данными работать, запускать ли отдельныйпоток выполнения для поддержки обращения и т. д. Простейший подход — счи­тать, что все объекты выглядят одинаково и обращение к ним может произво­диться единообразно.

Именно так работает среда DCE. К сожалению, подобномуподходу обычно не хватает гибкости, и он часто накладывает на разработчиковраспределенных объектов неоправданные ограничения.184Глава 3. ПроцессыБолее правильный подход со стороны сервера — поддерживать различныеправила обработки объектов. Рассмотрим, например, нерезидентные объекты.Напомним, что нерезидентным называется объект, существующий только во вре­мя существования сервера, а возможно, и еще более короткий срок.

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

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

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

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

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

Независимо от того, назначается поток выполнения каж­дому объекту или каждому методу, нужно решить, создавать каждый поток позапросу или поддерживать на сервере пул потоков. Оптимального решения «навсе случаи жизни» здесь быть не может.3.3. Серверы185Адаптер объектовПравила обращения к объекту обычно называют политикой активизации {activa­tion policies), чтобы подчеркнуть тот факт, что во многих случаях объект, передтем как к нему можно будет обратргться, должен быть перемещен в адресное про­странство сервера (то есть активизирован).Нам нужен механизм группирования объектов в соответствии с политикойактивизации каждого из них. Этот механизм называют адаптером объектов (ob­ject adapter), или упаковщиком объектов (object wrapper), но чаще всего его суще­ствование скрыто в наборе средств построения сервера объектов.

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

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

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