Добавлен: 29.06.2023
Просмотров: 122
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Определение и понятие распределенных систем
1.1 Предпосылки создания распределенных систем
1.2 Определение распределенных вычислений и распределенных систем
1.3 Терминология и схема работы распределенных систем
1.4 Классификация распределенных систем
1.5 Механизм реализации распределенной обработки данных
Глава 2. Основные задачи распределенной системы
Глава 3. Развитие распределенных систем
3.1 Первое поколение распределенных систем
3.2 Второе поколение распределенных систем
Чтобы иметь возможность восстановить предыдущее состояние системы, необходимо, чтобы нужная для восстановления информация хранилась в надежном месте и могла выдерживать отказы и повреждения системы. Устойчивые хранилища очень важны при восстановлении распределенных систем. В роли хранилища может быть оперативная память, стирающаяся при отключении питания или перезагрузках машины, а также дисковые хранилища, переживающие ошибки процессора, но неспособные выжить при поломке головок диска. И, наконец, существуют так называемые устойчивые хранилища, которые могут быть реализованы в виде пары стандартных дисков [1, стр. 447].
2.5 Безопасность
Информационную систему можно назвать защищенной, или безопасной, если обеспечены ее конфиденциальность, доступность и целостность. Требования безопасности могут меняться в зависимости от назначения информационной системы, характера используемых данных и типа возможных угроз [10, стр. 829].
По мере роста числа подключений и степени совместного использования ресурсов все более и более важными становятся вопросы безопасности. В современной практике системы имеют слабую защиту от подслушивания или вторжения по линиям связи. Связанная с этим проблема состоит в том, что рост подключений ведет к росту нежелательного общения, такого как получаемые по электронной почте бессмысленные письма, так называемый спам [1, стр. 26].
В распределенную систему должны быть встроены механизмы защиты, при помощи которых можно будет реализовать различные правила защиты.
Во-первых, распределенная система должна иметь защищенные каналы связи между пользователями. Поскольку компоненты распределенной системы удалены друг от друга, система подвержена удаленным атакам, когда нарушитель может прослушивать или модифицировать передаваемую информацию [17, стр. 39]. Защищенные каналы оберегают отправителя и получателя от перехвата, модификации и подделки сообщения. Защита сообщений от перехвата выполняется путем гарантированной конфиденциальности: защищенные каналы гарантируют, что сообщения в них не могут быть подсмотрены злоумышленниками. Защита сообщений от модификации или поделки производится при помощи протоколов взаимной аутентификации и целостности сообщений.
Во-вторых, распределенная система нуждается в контроле доступа, или авторизации. Авторизация касается защиты ресурсов, чтобы только процессы, имеющие соответствующие права доступа, могли получать доступ к соответствующим ресурсам и использовать их. После аутентификации процесса всегда производится контроль доступа. Каждый из ресурсов может поддерживать собственный список доступа, в котором перечисляются права доступа всех пользователей или процессов. Кроме того, процесс может иметь сертификат, точно устанавливающий его права на определенный набор ресурсов [1, стр. 493].
В-третьих, очень важно иметь механизм управления защитой. Здесь есть два важных аспекта — управление ключами и управление авторизацией. Управление ключами включает распространение криптографических ключей, в котором значительную роль играют сертификаты, выдаваемые доверенным третьим лицом. В деле управления авторизацией важны сертификаты атрибутов и делегирование. [1, стр. 536].
Выводы по 2 главе:
Перед распределенной системой стоит множество задач, которые делают ее создание осмысленным процессом. Системе необходимо обеспечивать доступ к удаленным ресурсам, причем делая это в неявной форме, используя прозрачность системы. Распределенная система должна реализовывать открытые спецификации на интерфейсы, что позволяет поддерживать расширяемость системы. При правильном проектировании распределенная система будет являться хорошо масштабируемой.
Также, для распределенной системы важно, чтобы она обладала свойствами отказоустойчивости и защищенности. Такая система будет функционировать при наличие отказов, и посылать значимую информацию по сети безопасно и эффективно.
Глава 3. Развитие распределенных систем
Фактически многие современные программы, которые мы используем, являются распределенными программами. В повседневной жизни мы пользуемся электронной почтой, веб-браузерами, которые используют распределенные вычисления в некоторой форме.
Однако чаще в таких приложениях используется самая простая разновидность распределенных вычислений: вычисления в архитектуре клиент-сервер. Эта организация системы предполагает наличие двух типов машин – клиентские машины реализуют интерфейсы пользователей и сервер, или центральный процессор, обслуживающий множество удаленных клиентов и реализующий уровни обработки и данных. Клиенты и сервер взаимодействуют, обмениваясь сообщениями и, как правило, следуя форме взаимодействий типа запрос-ответ [11, стр. 20].
Рассмотри пример работы веб-браузера. Чтобы отобразить веб-страницу по запросу пользователя, браузер посылает запрос веб-серверу, чтобы и получить от него ответ с информацией для отображения. Разумно ожидать, что пользователь сможет продолжить работу в сети даже при отказе запрашиваемого веб-сервера путем подключения к другому веб-серверу. И наоборот, если откажут некоторые клиентские машины, серверный процесс должен продолжать передавать информацию другим клиентам. Задача такого взаимного сотрудничества при наличае отказов как раз характеризует отказоустойчивость системы.
Распределенные системы, с которыми мы сталкиваемся, можно разделить на естественно распределенные и искусственно распределенные. Естественно распределенные системы реализуются в приложениях, в которых требуется совместное использование или распределение ресурсов между несколькими сотрудничающими процессами. Примерами таких приложений служат многопользовательские коллективные системы, системы управления технологическими процессами, коллективные редакторы, распределенные базы данных и распределенные системы хранения [11, стр. 22, 23].
Примером могут служить и кластеры из обыкновенных рабочих станций (COW), соединенные локальной вычислительной сетью. При этом все оборудование такой распределенной системы может находиться в одном или нескольких соседних зданиях. Подобные кластеры COW становятся все популярнее из-за относительно низкой стоимости входящих в нее компонентов с одной стороны и неплохой производительности – с другой. Например, ядро поисковой системы компании Google построено по архитектуре COW [6, стр. 32].
К искусственно распределенным системам можно отнести такие системы, которые не имеют естественных предпосылок к распределению ресурсов. В этом случае распределение является следствием технического решения с целью удовлетворить такие требования, как отказоустойчивость, балансировка нагрузки или обеспечение быстрого доступа при большом числе клиентов [11, стр. 25].
3.1 Первое поколение распределенных систем
Первые проекты по распределенным вычислениям, появившиеся в начале 1990-х годов, основывались на объединении вычислительных возможностей суперкомпьютеров. Основной целью данных проектов было предоставление вычислительных ресурсов для определенного ряда высокопроизводительных приложений. Первыми экспериментальными системами по объединению распределенных станций стали проекты FAFNER и I-WAY. Эти проекты стали базовыми, для всей отрасли распределенных вычислений в дальнейшем [5, стр. 16].
Проект FAFNER (англ. Factoring via Network enabled recursion) был создан для умножения простых чисел криптографических задач, путем разложения больших чисел на небольшие фрагменты на основе мощностей географически-распределенных вычислительных систем [18, стр. 63]. Данная система использовала сетевую файловую систему, поддерживала анонимную регистрацию участников. Данная система доказала свою надежность и качественность, заняв первое место по производительности в конкурсе, проводимом в рамках конференции Supercomputing’95 [5, стр. 17].
Проект I-WAY создавался с целью объединения ресурсов суперкомпьютерных центров и передовых средств визуализации в единое целое. Данные и компьютерные ресурсы были распределены по 17-и локациям в США и объединены 10-ю сетями, с различной пропускной способностью. Для данного проекта была создана аппаратная инфраструктура, специальное ППО и планировщик ресурсов (CRB) [18, стр. 63]. Уже в то время решались задачи создания хорошо управляемой распределенной системы.
3.2 Второе поколение распределенных систем
В конце 1990-х прорывом в области распределенных систем стало создание концепции GRID (Global Resource Information Distribution). Эта концепция позволяла обеспечивать гибкое и безопасное распределение ресурсов.
Были выделены три основных требования, которым должны соответствовать распределенная система для того чтобы называться GRID.
1. Масштабируемость. Среда может состоять из сколь угодно большого числа ресурсов, обладающих различными характеристиками.
2.Отказоустойчивость. Ошибки в работе нескольких не должны влиять на полученные результаты.
Применение технологии GRID позволило объединить крупные комплексы обработки и хранения данных, обеспечивая их доступность для различных пользователей, включая правительственные и научные организации [5, стр. 18, 19].
Для реализации предложенных концепций в 1997 году был запущен проект Globus, направленный на разработку и предоставление инфраструктуры для GRID-вычислений. Интерес представляют средства защиты, использованные в данном проекте. В первую очередь Globus нуждается в механизмах аутентификации и объявления пользователя в удаленных доменах[1, стр. 463]. Данный проект был поддержан многими производителями программного обеспечения, такими как IBM, Sun, HP, Intel [18, стр. 64].
В отличие от проекта Globus, проект Legion основывался на объектно-ориентированном подходе. Legion предлагает модель уда ленных объектов. Основной целью проекта было предоставление пользователям единой интегрированной инфраструктуры распределенной системы, независимо от масштаба, географического положения, языка или операционной системы [5, стр. 19].
В середине 1990-х годов одним из наиболее распространенных методов построения распределенных объектных систем являлась архитектура CORBA (Common Object Request Broker Architecture — общая архитектура брокера объектных запросов). Подобные спецификации разра ботаны группой управления объектами {Object Management Group, OMG). Основной целью OMG при разработке CORBA было создание распределенной системы, способной преодолеть большинство проблем межоперационной совместимости при интеграции сетевых приложений. CORBA обеспечивает отказоустойчивость при помощи службы репликации, в основании которой лежит базовая служба надежной групповой рассылки. CORBA предлагает полностью защищенную архитектуру, которая позволяет обеспечить индивидуальную защиту каждого объекта [1, стр. 540, 621].
3.3 Современные распределенные системы
На сегодняшний день, распределенные системы отходят от традиционных понятий высокопроизводительных распределенных вычислений в сторону развития виртуального сотрудничества и виртуальных организаций. Виртуальная организация – это ряд людей и/или организаций, объединенных общими правилами коллективного доступа к определенным вычислительным ресурсам. Методы представления доступа к вычислительным ресурсам становятся сервисно-ориентированными, что позволяет гибко использовать одни и те же вычислительные ресурсы различными потребителями [5, стр. 21].
Растет масштаб распределения сетей, поэтому требуется расширение области автоматизированного управления ресурсами. Такие системы берут на себя задачи управления предоставляемой системой, участвуют в обработке ошибок и восстановлении вычислительного процесса.
Дальнейшим развитием в области построения распределенных систем явилась разработка третьего поколения GRID. В начале 2000-х годов бизнес-сообщество занялось разработкой следующего поколения спецификаций, призванных решить проблемы ранних стандартов распределенных объектных технологий посредством веб-сервисов и сервис-ориентированной архитектуры (Service-Oriented Architecture – SOA) [18, стр. 65]. Это привело к созданию новых коммуникационных протоколов, в частности SOAP (Simple Object Access Protocol),основанный на XML протокол взаимодействия веб-сервисов. Протокол SOAP предназначен для организации взаимодействия удаленных систем при помощи асинхронного обмена XML-отформатированными документами, состоящими из трех частей: конверта (обертки), заголовка и тела. SOAP формирует базовый слой стека протоколов веб-сервисов, обеспечивая инфраструктуру обмена сообщениями между ними [5, стр. 93].
На сегодняшний день, сервис-ориентированный подход является стандартом при разработке распределенных вычислительных систем.
Выводы по 3 главе:
Распределенные системы встречаются во многих приложениях, которые мы часто используем.
Разрабатываются и внедряются новые концепции построения распределенных систем, расширяется круг решаемых ими задач, упрощается процесс организации, разрабатываются более простые методы использования ресурсов конечными пользователями.