41
индивидуальные технические характеристики узла могут не позволить полностью использовать ресурсы P2P сети (каждый из узлов обладает индивидуальными техническими характеристиками что, возможно, будет ограничивать его роль в P2P-сети и не позволят полностью использовать ее ресурсы: низкий рейтинг в torrent-сетях,
LowID в eDonkey могут значительно ограничить ресурсы сети, до- ступные пользователю);
при работе того или иного узла через брандмауэр может быть значительно снижена пропускная способность передачи данных в связи с необходимостью использования специальных механизмов обхода
участниками одноранговых сетей в основном являются индивидуальные пользователи, а не организации, в связи с чем возни- кают вопросы безопасности предоставления ресурсов: владельцы уз- лов P2P-сети, скорее всего, не знакомы друг с другом лично, предо- ставление ресурсов происходит без предварительной договоренности;
при увеличении числа участников P2P сети может возник- нуть ситуация значительного возрастания нагрузки на сеть (как с цен- трализованной, так и с децентрализованной структурой);
в случае применения сети типа P2P приходится направлять значительные усилия на поддержку стабильного уровня ее произво- дительности, резервное копирование данных, антивирусную защиту, защиту от информационного шума и других злонамеренных действий пользователей.
1.6. Архитектура грид.
Термин «грид» был введен в обращение Яном Фостером в нача- ле 1998 года публикацией книги «Грид. Новая инфраструктура вы- числений»:
Грид – это система, которая координирует распределенные ре- сурсы посредством стандартных, открытых, универсальных протоко- лов и интерфейсов для обеспечения нетривиального качества обслу- живания.
42
Основной идеей, заложенной в концепции грид-вычислений, яв- ляется централизованное удаленное предоставление ресурсов, необ- ходимых для решения различного рода вычислительных задач. В идеологии грид: мы можем запустить любую задачу с любого компь- ютера или мобильного устройств на вычисление, ресурсы же для это- го вычисления должны быть автоматически предоставлены на уда- ленных высокопроизводительных серверах, независимо от типа нашей задачи.
С более практической точки зрения, основная задача, лежащая в основе концепции грид, это согласованное распределение ресурсов и решение задач в условиях динамических, многопрофильных вирту- альных организаций. Распределение ресурсов, в котором заинтересо- ваны разработчики грид, это не обмен файлами, а прямой доступ к компьютерам, программному обеспечению, данным и другим ресур- сам, которые требуются для совместного решения задач и стратегий управления ресурсами, возникающих в промышленности, науке и технике.
Технологии грид включают в себя:
решения по безопасности, поддерживающие управление сертификацией и политиками безопасности, когда вычисления произ- водятся несколькими организациями;
протоколы управления ресурсами и сервисами, поддержи- вающие безопасный удаленный доступ к вычислительным ресурсам и ресурсам данных, а также перераспределение различных ресурсов;
протоколы запроса информации и сервисы, обеспечиваю- щие настройку и мониторинг состояния ресурсов, организаций и сер- висов;
сервисы обработки данных, обеспечивающие поиск и пе- редачу наборов данных между системами хранения данных и прило- жениями.
Выделяют следующие уровни архитектуры грид:
1. Базовый уровень (Fabric) – содержит различные ресурсы, та- кие как компьютеры, устройства хранения, сети, сенсоры и др.
43 2. Связывающий уровень(Connectivity)– определяет коммуни- кационные протоколы и протоколы аутентификации.
3. Ресурсный уровень(Resource)– реализует протоколы взаимо- действия с ресурсами РВС и их управления.
4. Коллективный уровень(Collective)– управление каталогами ресурсов, диагностика, мониторинг;
5. Прикладной уровень (Applications)– инструментарий для ра- боты с грид и пользовательские приложения.
На базовом уровне определяются службы, обеспечивающие непосредственный доступ к ресурсам, использование которых рас- пределено посредством протоколов грид.
Вычислительные ресурсы предоставляют пользователю грид-системы (точнее говоря, задаче пользователя) процессорные мощности. Вычислительными ресурсами могут быть как кластеры, так и отдельные рабочие станции. При всем разнообразии архитектур любая вычислительная система может рассматриваться как потенци- альный вычислительный ресурс грид-системы.
Ресурсы памяти представляют собой пространство для хранения данных. Для доступа к ресурсам памяти также используется программное обеспечение промежуточного уровня, реализующее унифицированный интерфейс
Управления и передачи данных.
Информационные ресурсы и каталоги являются особым видом ресурсов памяти. Они служат для хранения и предоставления метаданных и информации о других ресурсах грид-системы.
Сетевой ресурс является связующим звеном между рас- пределенными ресурсами грид-системы. Основной характеристикой сетевого ресурса является скорость передачи данных.
Связывающий уровень определяет коммуникационные прото- колы и протоколы аутентификации, обеспечивая передачу данных между ресурсами базового уровня. Связывающий уровень грид осно- ван на стеке протоколов TCP/IP:
1. Интернет (IP, ICMP);
2. Транспортные протоколы (TCP, UDP);
44 3. Прикладные протоколы (DNS, OSRF…).
Ресурсный уровень реализует протоколы, обеспечивающие вы- полнение следующих функций:
Согласование политик безопасности использования ресур- са;
Процедура инициации ресурса;
Мониторинг состояния ресурса;
Контроль над ресурсом;
Учет использования ресурса.
Отдельно выделяются 2 типа протоколов ресурсного уровня:
1. Информационные протоколы – используются для получения информации о структуре и состоянии ресурса.
2. Протоколы управления – используются для согласования до- ступа к разделяемым ресурсам, определяя требований и допустимых действий по отношению к ресурсу (например, поддержка резервиро- вания, возможность создания процессов, доступ к данным).
Коллективный уровень отвечает за глобальную интеграцию раз- личных наборов ресурсов и может включать в себя службы каталогов; службы совместного выделения, планирования и распределения ре- сурсов; службы мониторинга и диагностики ресурсов; службы репли- кации данных. На прикладном уровне располагаются пользователь- ские приложения, исполняемые в среде ВО. Они могут использовать ресурсы, находящиеся на любых нижних слоях архитектуры грид.
Стандарты Грид
Ключевым моментом в разработке грид приложений является стандартизация, позволяющая организовать поиск, использование, размещение и мониторинг различных компонентов, составляющих единую виртуальную систему, даже если они предоставляются раз- личными поставщиками услуг или управляются различными органи- зациями.
В 2001 году в качестве базы для создания стандарта архитекту- ры грид приложений была выбрана технология веб-сервисов. Данный
45 выбор был обусловлен двумя основными достоинствами данной тех- нологии. Во-первых, язык описания интерфейсов веб-сервисов WSDL
(Web Service Definition Language) поддерживает стандартные меха- низмы для определения интерфейсов отдельно от их реализации, что в совокупности со специальными механизмами связывания (транс- портным протоколом и форматом кодирования данных) обеспечивает возможность динамического поиска и компоновки сервисов в гетеро- генных средах. Во-вторых, широко распространенная адаптация ме- ханизмов веб-сервисов означает, что инфраструктура, построенная на базе веб-сервисов, может использовать различные утилиты и другие существующие сервисы, такие как различные процессоры WSDL, си- стемы планирования потоков задач и среды для размещения веб- сервисов.
Разработанный стандарт архитектуры грид получил название
OGSA (Open Grid Services Architecture – Открытая архитектура грид- сервисов). Он основывается на понятии грид-сервиса. Грид-сервисом называется сервис, поддерживающий предоставление полной инфор- мации о текущем состоянии (потенциально временного) экземпляра сервиса, а также поддерживающий возможность надежного и без- опасного исполнения, управления временем жизни, рассылки уведом- лений об изменении состояния экземпляра сервиса, управления поли- тикой доступа к ресурсам, управления сертификатами доступа и вир- туализации. Грид-сервис поддерживает следующие стандартные ин- терфейсы.
1. Поиск. Грид - приложениям необходимы механизмы для по- иска доступных сервисов и определения их характеристик.
2. Динамическое создание сервисов. Возможность динамиче- ского создания и управления сервисами – это один из базовых прин- ципов OGSA, требующий наличия сервисов создания новых сервисов.
3. Управление временем жизни. Распределенная система долж- на обеспечивать возможность уничтожения экземпляра грид-сервиса.
4. Уведомление. Для обеспечения работы грид приложения наборы грид сервисов должны иметь возможность асинхронно уве- домлять друг друга о изменениях в их состоянии.
46
1.7. Облачные вычисления
Облачные вычисления привлекают много внимания в последнее время. В средствах массовой информации, в интернете, даже на теле- видении можно встретить восторженные материалы, описывающие все прекрасные возможности, которые может предоставить данная технология.
Термин «Облачные вычисления» появился на свет совсем не- давно. Согласно результатам анализа поисковой системы Google, термин «Облачные вычисления» («Cloud Computing») начал набирать вес в конце 2007 – начале 2008 года. На сегодняшний день уже можно говорить о том, что облачные вычисления прочно вошли в повсе- дневную жизнь каждого пользователя Интернета (хотя многие об этом и не подозревают). По некоторым экспертным оценкам, техно- логия облачных вычислений может в три-пять раз сократить стои- мость бизнес-приложений и более чем в пять раз стоимость приложе- ний для конечных потребителей.
Определение облачных вычислений
С одной стороны, у термина «Облачные вычисления» нет усто- явшегося стандартного определения. С другой стороны множество различных корпораций, ученых и аналитиков дают собственные определения этому термину.
Например, в лаборатории Беркли дают следующее определение облачных вычислений:
«Облачные вычисления– это не только приложения, поставляе- мые в качестве услуг через Интернет, но и аппаратные средства и программные системы в центрах обработки данных, которые обеспе- чивают предоставление этих услуг. Услуги сами по себе уже давно называют «предоставление программного обеспечения как услуги»
(Software-as-a-Service или SaaS). Облаком называется аппаратное и программное обеспечение центра обработки данных. Общественное
47 облако предоставляет ресурсы облака широкому кругу пользователей по принципу «оплата по мере использования» (pay-as-you-go – прин- цип предоставления услуг, при котором пользователь оплачивает только те ресурсы, которые были по факту затрачены на решение по- ставленной задачи). Частное облако – это внутренние центры обра- ботки данных, в коммерческой или иной организации, которые не до- ступны широкому кругу пользователей. Таким образом, облачные вычисления являются суммой SaaS и «коммунальных вычислений»
(Utility Computing– модель вычислительных систем, в которой предо- ставление данных и процессорных мощностей организовано по прин- ципам коммунальных услуг). Люди могут быть пользователями или провайдерами SaaS, либо пользователями или поставщиками комму- нальных вычислений».
Ян Фостер определяет облачные вычисления как «парадигму крупному-штабных распределенных вычислений, основанную на эф- фекте масштаба, в рамках которой пул абстрактных, виртуализиван- ных, динамически масштабируемых вычислительных ресурсов, ре- сурсов хранения, платформ и сервисов предоставляется по запросу внешним пользователям через Интернет».
Еще одно распространенное определение облачных вычислений состоит в следующем.
«Облако – это большой пул легко используемых и легкодоступ- ных виртуализиванных ресурсов (таких как аппаратные комплексы, сервисы и др.). Эти ресурсы могут быть динамически перераспреде- лены (масштабированы) для подстройки под динамически изменяю- щуюся нагрузку, обеспечивая оптимальное использование ресурсов.
Этот пул ресурсов обычно предоставляется по принципу «оплата по мере использования». При этом владелец облака гарантирует каче- ство обслуживания на основе определенных соглашений с пользова- телем».
Все определения иллюстрируют одну простую мысль: феномен облачных вычислений объединяет несколько различных концепций информационных технологий и представляет собой новую парадигму предоставления информационных ресурсов (аппаратных и программ-
48 ных комплексов). Со стороны владельца вычислительных ресурсов облачные вычисления ориентированы на предоставление информаци- онных ресурсов внешним пользователям. Со стороны пользователя, облачные вычисления – это получение информационных ресурсов в виде услуги у внешнего поставщика, оплата за которую производится в зависимости от объема потребленных ресурсов согласно установ- ленному тарифу. Ключевыми характеристиками облачных вычисле- ний являются масштабируемость и виртуализация.
Масштабируемость представляет собой возможность динамиче- ской настройки информационных ресурсов к изменяющейся нагрузке, например к увеличению или уменьшению количества пользователей, изменению необходимой емкости хранилищ данных или вычисли- тельной мощности. Виртуализация, которая также рассматривается как важнейшая технология всех облачных систем, в основном ис- пользуется для обеспечения абстракции и инкапсуляции.
Абстракция позволяет унифицировать «сырые» вычислитель- ные, коммуникационные ресурсы и хранилища информации в виде пула ресурсов и выстроить унифицированный слой ресурсов, кото- рый содержит те же ресурсы, но в абстрагированном виде. Они пред- ставляются пользователям и верхним слоям облачных систем как виртуализиванных серверы, кластеры серверов, файловые системы и
СУБД. Инкапсуляция приложений повышает безопасность, управля- емость и изолированность. Еще одной важной особенностью облач- ных платформ является интеграция аппаратных ресурсов и системно- го ПО с приложениями, которые предоставляются конечному пользо- вателю в виде сервисов.
В соответствии со всем вышесказанным, можно выделить сле- дующие основные черты облачных вычислений:
Облачные вычисления представляют собой новую пара- дигму предоставления вычислительных ресурсов;
Базовые инфраструктурные ресурсы (аппаратные ресурсы, системы хранения данных, системное ПО) и приложения предостав- ляются в виде сервисов. Данные сервисы могут предоставляться неза-
49 висимым поставщиком для внешних пользователей по принципу
«оплата по мере использования»;
Основными особенностями облачных вычислений являют- ся виртуализация и динамическая масштабируемость;
Облачные сервисы могут предоставляться конечному пользователю через веб-браузер или посредством определенного про- граммного интерфейса.
Многослойная архитектура облачных приложений
Все возможные методы классификации облаков можно свести к трехслойной архитектуре облачных систем, состоящей из следующих уровней:
Инфраструктура как сервис (Infrastructure as a Service:
IaaS);
Платформа как сервис (Platform as a Service: PaaS);
Программное обеспечение как сервис (Software as a
Service: SaaS).
Рассмотрим более подробно, что собой представляет каждый из указанных уровней, и каким образом они взаимодействуют друг с другом.
Рис. 1.5. Три слоя облачных вычислений
50
Инфраструктура как сервис (IaaS)
IaaS предлагает информационные ресурсы, такие как вычисли- тельные циклы или ресурсы хранения информации, в виде сервиса.
Вместо предоставления доступа к «сырым» вычислительным устрой- ствам и системам хранения, поставщики IaaS обычно предоставляют виртуализованную инфраструктуру в виде сервиса. Обычно «сырые» ресурсы (процессорные циклы, сетевое оборудование, системы хра- нения) располагают на базовом уровне, над которым посредством виртуализации надстраивают слои сервисов, которые и предоставля- ются конечным пользователям в виде IaaS.
Надо сказать, что еще задолго до появления облачных вычисле- ний инфраструктура была доступна как сервис. Такой подход назы- вался «коммунальные вычисления», и это словосочетание часто при- меняется некоторыми авторами при описании инфраструктурного уровня облачных систем.
В сравнении с ранними попытками организации коммунальных вычислений, подход IaaS предоставляет разработчикам понятный ин- терфейс, к которому легко получить доступ и использовать в соб- ственных приложениях. Данный интерфейс должен легко интегриро- ваться с инфраструктурой потенциальных пользователей и разработ- чиков решений SaaS. Давно замечено, что ресурсы поставщиков ком- мунальных вычислений могут быть эффективно использованы только в том случае, если они используются большим числом потребителей, а этого можно добиться путем организации хорошего программного интерфейса к своим ресурсам.
Платформа как сервис(PaaS)
Платформа – это слой абстракции между программными при- ложениями (SaaS) и виртуализованной инфраструктурой (IaaS). Ос- новной целевой аудиторией PaaS являются разработчики приложе- ний. Разработчики могут писать собственные приложения на основе спецификаций определенной платформы, не заботясь о том, каким