E=mс2bedded Pro

 

 

 

Лазерная гравировка и резка фанеры, материалов из древесины, стекла

LaseroPolis.ru

 

 

Светодиодное

освещение

LUXOPOLIS.RU

Светодиодные лампочки G4/G9

12V 2W 300lm

 

Изготовление визиток

в виде печатных плат

http://vizitkanaplate.ucoz.ru/

 

 

 

Контакты:

E-mail: embedded_pro@mail.ru

 

 

 

AppNotes:

Сотовая связь

Отправка коротких SMS  в формате PDU

Отправка длинных SMS  в формате PDU

Получение и декодирование SMS

Распределённые вычислительные сети

Обзор распределённых вычислительных сетей

Принципы построения распределённых вычислительных сетей

Встраиваемые решения

Обзор встраиваемых операционных систем

Обзор микропроцессоров ARM Cortex-A

BSP QNX Neutrino для платы phyFLEX-iMX6 от PHYTEC

 

Главная  / Обзор распределённых вычислительных сетей

 

Обзор распределённых вычислительных сетей

15 августа 2014 г.

 

Преамбула.

Данный обзор построен в виде пояснительной записки. Обзор содержит описание поставленной задачи, исходные данные, анализ вариантов решения задачи и вывод.

 

Содержание:

1.    Формулировка задачи

2.    Определение основных понятий

3.    Исходные данные

4.    Анализ вариантов решения

5.    Анализ стандартных вариантов реализации распределённых вычислительных сетей

5.1.  Одноранговые сети P2P

5.2.  Грид сети

5.3.  Технология «Облачных вычислений»

6.    Вывод

 

Приложение А. Структурная схема построения распределённых вычислительных сетей

 

 


1. Формулировка задачи.

Определить структуру объекта разработки.

 

2. Определение основных понятий.

Объект разработки (ОР) – система, являющаяся целью разработки.

Субъекты разработки – отдельные приборы или их совокупность, протоколы, системы, линии связи и т.д., взаимодействующие тем или иным образом с объектом разработки и не являющиеся целью разработки.

 

3. Исходные данные.

ОР должен отвечать следующим требованиям:

1. Обладать достаточной вычислительной мощностью для решения целевой задачи.

2. Сложность аппаратной реализации ОР не должна превышать заданных значений.

3. ОР должен обеспечивать взаимодействие с субъектами разработки, которые не являются целью решения поставленной задачи и могут быть разнесены в пространстве. Максимальное расстояние между субъектами разработки и ОР не должно превышать заданных значений.

4. При изменении количественного и качественного состава субъектов разработки, принципиальные состав и структура ОР не должны изменяться, т.е. принципы построения структуры ОР должны быть достаточны для взаимодействия с различным числом субъектов разработки и не должны меняться при изменении или добавлении свойств субъектов разработки.

К содержанию

4. Анализ вариантов решения.

Существует два варианта решения поставленной задачи:

1. ОР представляет собой единое целое с достаточным для решения задачи запасом по вычислительной мощности и обладает достаточным количеством каналов связи с субъектами разработки.

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

Основным преимуществом первого варианта решения поставленной задачи, когда ОР представляет собой единое целое, является отсутствие необходимости организации взаимодействия различных частей системы. Взаимодействие частей ОР, входящих в состав самого ОР, решается средствами, представляющими собой, по сути, единое целое. Т.е. аппаратно всё взаимодействие происходит в рамках одной материнской платы, а программно - в рамках одной операционной системы.

Основной же недостаток первого варианта решения задачи заключается в сложности, а зачастую и в невозможности предварительного определения количественного и качественного состава субъектов разработки. Это приводит к тому, что ОР должен изначально обладать избыточностью по своим составным и мощностным характеристикам.

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

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

Качественные же изменения субъектов разработки приведут лишь к добавлению к линейке уже существующих элементов системы ещё одного типа элементов, а не к доработке или полной переработке всего ОР.

Достаточно гибко в данной системе решается вопрос пространственной разнесённости субъектов разработки. При необходимости размещения субъекта разработки в удалённом от элементов системы месте, вместо того, чтобы обеспечивать недопустимо длинный канал связи, к системе добавляется ещё один элемент, линия связи с которым от добавляемого субъекта удовлетворяет предъявляемым к ней требованиям.

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

1. Быть устойчивой к внезапному, а зачастую аварийному изменению своего структурного состава.

2. Обладать запасом производительности и достаточной для реализации обмена информацией пропускной способностью канала связи между элементами системы.

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

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

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

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

К содержанию

 

 

5. Анализ стандартных вариантов реализации РВС.

Существует три технологии реализации РВС, достаточно сложившиеся к настоящему моменту (см. схему приложения А):

1. Одноранговая сеть, или иначе peer-to-peer (P2P, пиринговая сеть).

2. Грид-технология построения сети (Grid).

3. "Облачная" технология вычислений (Cloud computing).

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

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

Развитием технологии грид стал набор технологий под общим названием "Облачные вычисления". На данный момент нет устоявшегося определения данному типу технологий. Ясно одно: "Облачные вычисления" являются результатом глобализации грид-технологий и предоставляют своим пользователям возможности, ранее недоступные в системах P2P и грид. Являясь эволюционно-революционным шагом далее от технологий грид, "Облачное" пространство состоит не просто из набора серверов, обрабатывающих запросы пользователей, но предоставляет пользователям целый набор платформ, к которым они могут подключаться по мере необходимости и использовать только необходимую на данный момент часть этой платформы. Под платформой понимаются приложения, поставляемые в качестве услуг через Интернет, аппаратные средства и программные системы в центрах обработки данных, объединённых между собой. Причём все эти платформы предоставляются пользователям по принципу "оплата-по-мере-использования" (pay-as-you-go), делая акцент именно на коммерциализации использования ресурсов сети.

К содержанию

 

5.1. Одноранговые сети P2P.

Сегодня каждая из технологий построения РВС занимает свою нишу в пользовательском пространстве.

Технология P2P используется в основном файлообменными сетями, к которым относятся BitTorrent, Gnutella, eDonkey2000, и сетями IP телефонии, как например Skype.

Технология P2P применяется также и для распределённых вычислений. Они позволяют в сравнительно короткие сроки выполнять достаточно большой объём работы, при выполнении которого на отдельном суперкомпьютере потребовалось бы времени в тысячи раз больше - годы, а в некоторых случаях, столетия выполнения в зависимости от сложности задачи. Такая производительность достигается благодаря тому, что некоторая глобальная задача разбивается на большое количество блоков, которые одновременно выполняются сотнями тысяч компьютеров, принимающих участие в проекте. Один из примеров такого использования пиринговых сетей демонстрирует компания Sony в игровых приставках Sony PlayStation 3. Процессор Cell, детище триумвирата Sony-Toshiba-IBM (консорциум STI), представляет собой многоядерный асимметричный микропроцессор. Всего Cell насчитывает 9 ядер, но лишь одно из них является полноценным — это ядро основано на архитектуре IBM Power и носит название PPE (Power Processing Element). Восемь остальных ядер называются SPE (Synergistic Processing Elements), и представляют собой весьма урезанную вариацию основного ядра процессора. Однако, на специально подготовленном для SPE коде, процессор Cell демонстрирует потрясающую производительность, сопоставимую с производительностью целых вычислительных кластеров на традиционных микропроцессорах.

Все ядра процессора Cell через сверхвысокоскоростную шину Element Interconnect Bus могут независимо общаться друг с другом, с памятью (через встроенный контроллер Rambus XDRAM) и с устройствами, подключенными к Rambus FlexIO (через встроенный контроллер FlexIO), которые так же являются узлами сети, построенной по принципу P2P.

Но это ещё не всё. При нехватке мощностей PlayStation 3 настроена на привлечение всех доступных вычислительных ресурсов - от таких же консолей, с которыми установлена связь, до доступных бытовых устройств.

Ещё одна область использования сетей P2P это пиринговые финансовые сети. В таких сетях разрабатываются и обкатываются модели децентрализованных денежных систем. Основная идея в том, что современные деньги - несовершенный механизм расчётов, зависящий от воли высокопоставленных чиновников, а децентрализованные деньги, основанные на P2P технологиях, в теории являются более справедливым средством взаимных расчетов пользователей. В качестве примеров таких сетей можно привести платёжные системы Bitcoin и Litecoin.

Стоит отметить уникальную «живучесть» некоторых пиринговых сетей. Не поддерживаемые своими создателями, такие сети продолжают функционировать за счёт того, что клиент-серверная платформа этих сетей установлена и работает на компьютерах сотен тысяч пользователей по всему миру. В связи с тем, что эти сети в основном используются для распространения нелегального контента, то было много попыток прекратить работу подобного рода сетей, но все они заканчивались ничем. Закрытие одного или нескольких узлов такой сети не приводит к уничтожению самой структуры, а лишь наоборот является предпосылкой для подключения новых узлов.

К содержанию

 

5.2. Грид сети.

Грид сети активно используются в проектах распределённых вычислений. В мире сейчас насчитывается не менее сотни активных проектов, основанных на технологии грид, некоторые из которых имеют богатую историю: так, с 1996 года идет поиск простых чисел Мерсена "GIMPS" ("Great Internet Mersenne Prime Search"), а в 1999 году начался проект "SETI@home", где на основе расшифровки данных радиотелескопов SETI изучается вопрос, есть ли жизнь во Вселенной. Работает проект "distributed.net", объединяющий в себе решение двух распределённых задач: расшифровка алгоритма шифрования RC5 "Bovine RC5" и поиск оптимальных линеек Голомба "OGR" ("Optimal Golomb Rulers"). Список можно продолжать дальше: разработка лекарств, совершенствование Большого Адронного Коллайдера, изучение трехмерной структуры белка, решение многочисленных математических проблем и гипотез и т.д.

Развитие подобного рода грид сетей распределённых вычислений было бы не возможно без использования определённых технологий, обеспечивающих создание и поддержку распределённых сетей. Такие технологии реализуются с помощью различных архитектур и стандартов, обеспечивающих поддержку общих принципов работы с объектами распределённой вычислительной сети. Основными представителями подобного рода архитектур и стандартов являются объектные методы распределенной обработки CORBA, JINI, DCOM. Однако, каждое из этих средств решает далеко не все проблемы обработки распределённых вычислений, а часть их оказалась чрезмерно ориентированной на конкретные приложения (к примеру протокол HTTP).

Но наличие лишь архитектуры как самостоятельной единицы не может само по себе обеспечить развитие того или иного проекта. Поэтому в середине 90-х годов XX века были разработаны инфраструктуры, предназначенные для реализации распределённых грид вычислений. Одной из таких сред является система GLOBUS, предоставляющая возможность приложениям работать с распределенными разнородными вычислительными ресурсами как с единой виртуальной машиной, независимо от географического расположения пользователей или ресурсов.

В противовес к GLOBUS примерно в то же время была разработана система UNICORE (Uniform Interface to Computing Resources - единый интерфейс к вычислительным ресурсам). К настоящему моменту система представляет собой комплексное решение, ориентированное на обеспечение прозрачного безопасного доступа к ресурсам распределённой вычислительной грид сети.

Приведённые примеры грид сетей носят глобальный характер. Однако, наряду с распределёнными вычислительными сетями "глобального" типа можно выделить так же ряд грид сетей "локального" типа, т.е. использующие для своей работы в основном локальные сети. Одной из программных сред, реализующих принцип распределённых вычислений в локальных сетях, является пакет программ MATLAB, а именно его серверная часть MATLAB Distributed Computing Server, предназначенная для  организации распределенных вычислений в среде MATLAB. Совместно с клиентской частью Parallel Computing Toolbox, эти два продукта позволяют разрабатывать распределенные приложения, передавать их на сервер и управлять их исполнением в сетях с распределенными вычислительными ресурсами.

MATLAB Distributed Computing Server также поддерживает типовые интерфейсы планировщиков, что позволяет интегрировать средства распределенных вычислений с продуктами других фирм-разработчиков, как например Platform LSF и Windows Compute Cluster Server (CCS), которые призваны обеспечивать высокотехнологичным приложениям, которые требуют кластерных вычислений, среду для реализации кластерных пространств.

До недавнего времени ещё одним примером построения «локальной» РВС могли служить распределённые системы управления, или DCS (Distributed Control System). Такие системы отличаются наличием распределённой системы ввода-вывода и децентрализацией обработки данных и предназначены для управления непрерывным или гибридным технологическим процессом. Сегодня же DCS вышли из «локального» поля и стали приобретать черты «облачных» сервисов. Одна из составляющих распределённых систем управления, а именно та её часть, которая носит обобщённое название SCADA, в своих современных реализациях четвёртого поколения предоставляет пользователям возможности, активно использующие «облачные» технологии. Системы SCADA (Supervisory Control And Data Acquisition) предназначены для обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления.

Примером построения систем управления по принципу организации DCS с использованием SCADA компонентов может служить система EPICS (Experimental Physics and Industrial Control System). Это программная среда для разработки и запуска распределённых систем управления для научных и экспериментальных установок, таких, как ускорители частиц, телескопы и других больших установок. Среда EPICS создана с целью разработки больших систем, которые часто включают в себя большое число объединенных в сеть компьютеров и обеспечивает распределенное управление и передачу данных.

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

Нельзя не упомянуть, что файлообменные функции в грид сетях так же доступны, как и в сетях P2P. Основу файлообменной технологии составляет протокол сетевого доступа к файловым системам Network File System (NFS), разработанный Sum Microsystems и основанный на правилах вызова удалённых процедур ONC RPC (Open Network Computing Remote Procedure Call). Проткол NFS позволяет подключать (монтировать) удалённые файловые системы через сеть.

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

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

Нужно отметить так же важную особенность протокола NFS версии 4: спецификация Parallel NFS (pNFS). Данная спецификация предоставляет механизм параллельного доступа NFS-клиента к данным множества распределенных NFS-серверов. Наличие такого механизма в стандарте сетевой файловой системы помогает строить распределённые "облачные" хранилища и информационные системы.

Забегая вперёд, стоит отметить, что прослеживается некоторая тенденция использования РВС. Очевидно, что, во-первых, РВС успешно применяются там, где решение какой-либо вычислительной задачи силами только одной ЭВМ неприменимо и требуется участие более чем одной вычислительной станции, и во-вторых, РВС используются для распределённого хранения и обмена массивами информации. Таким образом, можно выделить как минимум два ресурса, которые можно подвергнуть распределению: массивы хранения данных и машинное время. Понимание этого будет востребовано при разработке концепции построения структуры ОР как распределённой системы.

К содержанию

 

5.3. Технология «Облачных вычислений».

В продолжение темы использования распределённых вычислений рассмотрим технологии "Облачных вычислений". Хотя "Облачные вычисления" вышли из технологий грид, для "Облаков" нельзя выделить какую-то конкретную область их применения. Обладая целым набором платформ, к которым пользователи подключаются по мере необходимости, "Облачные" технологии предоставляют три уровня использования своих аппаратно-вычислительных ресурсов:

 

1. Инфраструктура как сервис (Infrastructure as a Service: IaaS);

2. Платформа как сервис (Platform as a Service: PaaS);

3. Программное обеспечение как сервис (Software as a Service: SaaS).

 

Каждый из уровней "облачной" технологии предоставляет пользователям доступные на данном уровне ресурсы в качестве подключаемых по мере необходимости сервисов. Все ресурсы предоставляются по принципу «оплата по мере использования».

Самым простым для понимания является уровень "Программное обеспечение как сервис" (SaaS), который представляет собой программное обеспечение, предоставляемое и управляемое удаленно одним или несколькими поставщиками. SaaS – это наиболее заметный слой облачных вычислений, так как именно он представляет реальную ценность для конечного пользователя и обеспечивает решение его задач.

С точки зрения пользователя, основным достоинством SaaS является ценовое преимущество перед «классическим» ПО. Оплата SaaS осуществляется по мере использования ресурса, что означает отсутствие необходимости инвестиций в собственную аппаратную и программную инфраструктуру. Ярким примером SaaS является комплекс Google Apps, включающий в себя такие системы как Google Mail и Google Docs.

В дополнение к списку примеров организации облачного пространства в виде SaaS можно отметить, что данный документ был подготовлен при помощи "облачного" сервиса корпорации Microsoft, который носит название OfficeWebApps и предоставляет возможность пользователям сервиса работать в таких программных продуктах, как MS Word, MS Excel, MS PowerPoint не загружая их на свой компьютер. Ещё один сервис от  Microsoft это SkyDrive, "облачная" файлообменная система, интегрированная с OfficeWebApps и позволяющая пользователям хранить и обмениваться гигабайтными объёмами информации.

Из отечественных продуктов, реализующих принцип "Программное обеспечение как сервис", стоит отметить проект MathCloud, посвящённый исследованию способов построения и применения распределённых сервис-ориентированных сред для поддержки научных исследований. Проект MathCloud использует REST-архитектуру (Representational State Transfer) построения распределённой среды, которая, в противовес архитектуре RPC, реализует пользовательский интерфейс со средой, осуществляя обмен данными в виде небольшого количества стандартных форматов (например, HTML или XML).

Уровень "Платформа как сервис" (PaaS) это набор ресурсов, предоставляемых пользователю в качестве базы для построения своих приложений. Данный уровень находится между слоями "Инфраструктура как сервис" (IaaS) и "Программное обеспечение как сервис" (SaaS). Основными потребителями PaaS являются разработчики приложений, которые могут писать собственные приложения на основе спецификаций определенной платформы, не заботясь о том, каким образом организовать взаимодействие с нижележащей инфраструктурой (IaaS). Разработчики загружают свой программный код на платформу, которая обеспечивает автоматическое масштабирование приложения в зависимости от нагрузки. Ярким примером реализации подхода PaaS является платформа Google App Enginge, обеспечивающая исполнение пользовательских приложений на инфраструктуре Google. Слой PaaS основывается на стандартизованном интерфейсе, предоставляемом слоем IaaS, который виртуализирует базовые вычислительные ресурсы и предоставляет стандартный интерфейс для разработки приложений, функционирующих на слое SaaS.

Самым верхним уровнем "Облачной" технологии является представление инфраструктуры в качестве сервиса IaaS. Данный уровень предлагает информационные ресурсы, такие как вычислительные циклы или ресурсы хранения информации, в виде сервиса. Ярким примером такого подхода является облако компании AmazonAmazon Web Services, состоящее из Elastic Compute Cloud (EC2), предоставляющего информационные ресурсы в виде сервисов и Simple Storage Service (S3) для хранения информации. Другим примером такого подхода может являться сервис JoyNet, обеспечивающий хостинг высоко масштабируемых веб-сайтов и веб-приложений.

Вместо предоставления доступа к «сырым» вычислительным устройствам и системам хранения, поставщики IaaS обычно предоставляют виртуализованную инфраструктуру в виде сервиса. Обычно «сырые» ресурсы (процессорные циклы, сетевое оборудование, системы хранения) располагают на базовом уровне, над которым посредством виртуализации надстраивают слои сервисов, которые и предоставляются конечным пользователям в виде IaaS.

К содержанию

 

5.4. Вывод

Наиболее оправданным вариантом решения поставленной задачи является построение ОР в виде распределённой вычислительной сети.

Целесообразность применения РВС не зависит от масштаба объекта, для функционирования которого предполагается использование распределённых вычислений. Как было показано выше, на принципах построения РВС могут быть реализованы как микропроцессор, так и глобальная среда, объединяющая в себе миллионы пользователей и терабайты информации.

 

Приложение А. Структурная схема построения распределённых вычислительных сетей

К содержанию

 

 

Главная  / Обзор распределённых вычислительных сетей