А.И. Халилов. Структурно-базовая технология и облачные вычисления
УДК 004.09 А.И. Халилов, Дагестанский научно-исследовательский
и технологический институт информатики, профессор,
доктор технических наук, E-mail: [email protected]
СТРУКТУРНО-БАЗОВАЯ ТЕХНОЛОГИЯ И ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ
Данная статья посвящена рассмотрению особенностей, недостатков, проблем и путей дальнейшего совершенствования облачных систем. Рассмотрены также методы и средства структурно-базовой технологии создания систем коллективного пользования с точки зрения возможности их использования в облачных системах.
Ключевые слова: облачные вычисления, структурно-базовая технология, сервисное обслуживание, виртуальность, масштабирование.
This article examines the characteristics, flaws, problems and ways to further improve the cloud systems. Also considered ways and means of structurally-underlying technology shared systems in terms of their use in the cloud.
Keywords: cloud computing, structurally-underlying technology, service, virtuality, scaling.
Концепция «облачных вычислений» зародилась в (1960 г.) благодаря предположению Джона Маккар-ти, что когда-нибудь компьютерные вычисления будут производиться с помощью «общенародных утилит». Следующими шагами к концептуализации облачных вычислений считаются появление CRM-системы, предоставляющей услуги по подписке, в виде веб-сайта (1999), начало предоставления услуг по доступу к вычислительным ресурсам через Интернет книжным магазином Amazon (2002), формулировка идеи вычислительной эластичности и запуск в августе 2006 года проекта Elastic Computing Cloud
(ECC), оглашение терминов cloud и cloud computing в одном из выступлений главы Google Эрика Шмидта практически одновременно с запуском ECC[1] , запуск в 2009 году приложений Google Apps [2]. Идеология облачных вычислений в целом получила популярность в 2007 году. В 2009-2011 годы были сформулированы несколько важных обобщений представлений об облачных вычислениях, в том числе идея частных облачных вычислений, актуальная для их применения внутри организаций, идеи о различных моделях обслуживания (SaaS, PaaS, IaaS). В 2011 году Национальный институт стандартов
и технологий США (ШБТ) сформировал определение, как обобщение трактовок и вариаций облачных вычислений в едином понятии [3]. 1Т-специалисты дают предпочтение преимущественно этому определению. Оно сформулировано как рекомендации в следующем виде в виде: Облачные вычисления — это модель обеспечения повсеместного и удобного сетевого доступа по требованию к вычислительными ресурсным пулам, которые могут быть быстро предоставлены или выпущены с минимальными усилиями по управлению и взаимодействию с поставщиком услуг. Под облачной инфраструктурой понимается набор аппаратного и программного обеспечения, имеющего пять основных свойств облачных вычислений. Облачная инфраструктура рассматривается как содержащая и физический уровень (аппаратные ресурсы -серверы, системы хранения и сетевые компоненты) и уровень абстракции (программное обеспечение, развернутого на физическом уровне) и обеспечивающая все основные свойства облаков
С этим определением связаны описание атрибутов (гибкие, предоставляемые по запросу пулы ресурсов и измеряемые услуги), моделей служб (инфраструктура как услуга -1ааБ, платформа как услуга - РааБ, программное обеспечение как услуга -
БааБ) и подходов к развертыванию (частное, гибридное и общедоступное облако), составляющих в совокупности понятие «облачные вычисления».
Из приведенного выше определения следуют основные свойства облачных систем такие, как самообслуживание по требованию, широкий сетевой доступ, объединение ресурсов в пулы, мгновенная эластичность, измеряемый сервис.
К достоинствам облачных вычислений относят: снижение требований к вычислительной мощности компьютера (обязательно только наличие доступа в интернет), отказоустойчивость, безопасность, высокая скорость обработки данных, снижение совокупной стоимости владения, экономия дискового пространства (и данные, и программы хранятся в интернете).
В качестве недостатков облачных вычислений рассматривают зависимость сохранности пользовательских данных от компаний, предоставляющих услугу облачных вычислений, появление новых («облачных») монополистов и др.
Многие специалисты подвергают сомнению более высокую степень безопасности облачных систем по сравнению с традиционными информационными системами. Об этом же (даже о снижении безопасности) говорят также указанные выше недостатки.
В ноябре 2011 г. в Лондоне состоялась конференция «Virtualisation and Cloud Security Conference», на которой аналитики IDC обменялись мнениями об облачных системах (вычислениях) [4]. В частности они выразили обеспокоенность состоянием безопасности в облачных системах. Они выразили мнение, что в публичных и гибридных системах недостаточность защиты информации представляет серьёзную проблему и требуется разработка новой стратегии безопасности данных, связанной с особенностями облачных систем, что наиболее безопасная виртуальная среда - это частная облачная система, и призвали участников конференции в большей степени уделять внимание этому виду систем.
По мнению европейских экспертов облако - это динамично расширяемая информационная система, при необходимости представляющая потребителям IT-сервисы с заданными характеристиками и позволяющая контролировать качество представления услуг согласно заложенным метрикам. При этом отмечаются три класса основополагающих характеристик облачных систем: базовые, технологические и экономические.
К базовым характеристикам относятся эластичность (способность к масштабированию по горизонтали и вертикали), отказоустойчивость (обычно связана с избыточностью ре-
сурсов, но минимизируется использованием виртуализации), обеспечение заданного контролируемого качества сервиса (высокая доступность, время реакции, производительность и др.), динамичность.
Технологическими аспектами считаются виртуализация (отвлечение от физического оборудования, эластичная масштабируемость при одновременном упрощении обслуживания и повышения отказоустойчивости инфраструктуры), управление хранением данных (эффективность и скорость доступа, увеличение объёма), безопасность.
Экономическими аспектами облачных систем являются: оплата только за используемые ресурсы, сокращение совокупной стоимости владения, высокое значение ROI, переход части капитальных расходов в операционные, а также экологические аспекты современных IT-технологий.
Проблема номер один для ИТ-облаков — это отсутствие понятного представления, что же это такое и что в них нового. Одни считают, что "облака" - это просто новое название давно знакомых вещей, а другие не знают, в чем суть идей облачных вычислений. Очень многие отождествляют облака с аутсорсингом или с любыми онлайновыми сервисами.
Облачная инфраструктура -это ИТ-инфраструктура, облада-
ющая некоторыми определенными свойствами. Ключевым моментом тут является не способ доступа к ИТ-ресурсам, а организация ИТ-инфраструктуры.
Облачные вычисления - это не решение и не проект, а концепция (модель) построения и использования ИТ-ресурсов. Конкретные решения и проекты могут лишь удовлетворять в той или иной мере этой модели, но сами по себе "облачными вычислениями" быть не могут.
Достаточно четкое определение появилось в самом начале "облачной эры" и с тех пор детализировалось, но по сути осталось неизменным. Это определение было зафиксировано в Википедии в начале 2009 г. в следующем виде:
«Cloud Computing - это стиль разработки и использования компьютерных технологий (вычислений), при котором динамично масштабируемые ресурсы предоставляются через Интернет как сервис».
В процессе активных обсуждений вопросов использования облачных технологий отмечаются не только их преимущества, но и недостатки, нерешённые проблемы, пути дальнейшего развития и др.
Как самая важная проблема отмечается недостаточная автоматизация управления облачной инфраструктурой, необходимость нового подхода, новых методик контроля и
автоматизации её функций и единых стандартов построения.
Использование закрытых решений и стандартов является препятствием для перехода от одного облачного провайдера к другому. В частных облаках это ограничивает множество используемых в них программных продуктов.
Не решены такие вопросы, как масштабирование по горизонтали и вертикали при одновременном сохранении высокой производительности и автоматического взаимодействия подсистем внутри облака. Не определён в должной мере механизм одновременного доступа к данным многих пользователей облака с сохранением их консистентности и обеспечением необходимой скорости и надёжности обмена данными между распределёнными хранилищами и различными облачными системами.
Недостатки защиты информации в публичных облачных системах представляют серьезную проблему. Большинство инцидентов со взломом происходит именно в публичных облаках. В ближайшем будущем единственным выходом для обеспечения безопасной виртуальной среды останется создание частной облачной системы. Частные облака, в отличие от публичных или гибридных систем, больше всего похожи на виртуали-зованные инфраструктуры, которые ИТ-отделы крупных корпораций
уже научились реализовывать и над которыми они могут сохранять полный контроль.
Новые проблемы могут возникнуть в случае интеграции нескольких облачных приложений от разных поставщиков.
Все данные пользователя, размещённые в том или ином облаке, находятся в практически свободном доступе. Помимо доступа к такой информации взломщик сможет получить возможность контролировать и работу компьютера.
Можно отметить, что ни одна из существующих реализаций не удовлетворяет всем требованиям к полноценной облачной системе. В качестве рекомендаций для дальнейшего развития облачных технологий специалистами и аналитиками высказываются ряд предложений. В частности:
- разработка и использование открытых стандартов для взаимодействия как между компонентами внутри облака, так и между различными облаками (рассматривается как один из ключевых факторов развития 1Т-систем), а также для интеграции программных продуктов различных вендоров в общую систему и миграции пользователей между различными облачными провайдерами (здесь важно как использование имеющегося многообразного промежуточного программного обеспечения [5], так и разработка недостающего для полно-
ценной реализации функций облачных систем),
- обеспечение изоляции виртуальных машин и процессов различных пользователей на всех уровнях системы, а также защищённость систем различных пользователей от ошибок в соседних системах,
- разработка единого API для создания программ, работающих в облачной среде, и удобного интерфейса с облаком. В данном случае можно было бы шире использовать уже имеющиеся разработки (в частности, опыт построения Grid-систем). Краткая информация ещё об одной разработке, которая может быть использована при создании облачных систем, представлена ниже,
- разработка принципиально новых концепций обеспечения безопасности облачных систем,
- разработка комплексных экономических моделей использования IT-услуг и методологий поиска компромиссных решений для получения максимальной выгоды при минимальных рисках,
- решение юридических проблем функционирования облачных систем с учётом законов разных стран и действий в конфликтных ситуациях,
- решение технических проблем, в частности: разработка систем управления с реализацией эластичного масштабирования, создание универсальных сред разработки облачных
приложений, развитие моделей IaaS и PaaS, рост рынка комплексных IT-сервисов, построение экономических моделей сервис-ориентированных инфраструктур и др.
На развитие облачных вычислений сильное влияние оказала технология Grid-вычислений. Границы Grid и Cloud - достаточно размыты. Кроме Grid-систем имеются многочисленные наработки, которые образовали критическую массу технологий создания и использования IT-систем и их инфраструктур, осмысление и обобщение которых обусловило появление технологии облачных вычислений. Ниже приведено краткое описание технологии создания систем коллективного пользования параллельного действия (СКППД) с элементами искусственного интеллекта, которая названа структурно-базовой технологией (СБТ) [6].
Не являясь сама по себе облачной инфраструктурой, СБТ содержит ряд концепций, технологий, методов и других средств, необходимых для полноценной реализации основополагающих свойств облачных систем. Они были разработаны и реализованы в различных прикладных системах [5-11] значительно раньше появления понятия «облачные вычисления» [1-4].
Широкие архитектурные возможности, разнообразие состава пользователей и решаемых задач, с
одной стороны, применение пользователями различных по техническим характеристикам инструментальных и операционных программных средств, с другой, обуславливают наличие в реальных системах коллективного пользования (СКП) трёх взаимодействующих компонентов: [о]-множество инструментальных программных средств СКП; [М] -множество предметных областей; [О] -множество операционных сред, в которых [о] функционируют над [М].
В целях повышения эффективности и технологичности СКП необходимо решить задачу минимизации множества (о) (унификация) при максимуме размерности [М] (адаптируемость к М) и инвариантности по отношению к О. В такой постановке актуализируется проблема оптимальной организации вычислительного процесса, обеспечивающей гибкую и динамичную дисциплину обслуживания.
Речь идет о системе, структура которой в общем случае многоуровневая, многопроцессорная, неоднородная. Состав и характеристики задач и пользователей заранее не определены. Задачи могут быть широкого спектра: от сложных итерационных расчетов, когда в работе участвуют много компонентов системы с различных уровней иерархии, до простых запросов к БД. Очевидно, такая СКП должна обладать рядом
специфических свойств: гибкостью и высокой адаптируемостью, надежностью, быстротой реакции.
Технический комплекс СКП может включать различные ЭВМ, объединенные в многопроцессорные вычислительные системы, а сетевая архитектура должна обеспечивать распределенную обработку информации, а также интерактивность не только между пользователем и системой, но и между элементами системы, т. е. она должна обладать свойством коммуникабельности.
Если для отдельной вычислительной установки имеет место проблема повышения ее производительности за счёт совершенствования алгоритмов, программ, структур данных и других элементов, то для СКП этого недостаточно. Здесь большую роль играют организация вычислительного процесса, определение и динамическое поддержание оптимального режима функционирования вычислительного комплекса в целом с учётом многих внутренних и внешних параметров. СКП должна оперативно реагировать на изменение значений этих параметров, т. е. быть параметрической.
Разнообразие состава пользователей предполагает возможность наличия среди них людей самой различной компьютерной квалификации. Система должна их всех обслужить на высоком уровне, предоставить воз-
можность вложить свой интеллект в создаваемый продукт, наилучшим образом использовать знания пользователя, умение, навыки, опыт, т. е. СКП должна обладать достаточно высокой интеллектуальностью.
Таким образом, для решения проблемы коллективного использования программно-технических и информационных ресурсов требуется создание интерактивных систем коллективного пользования параллельного действия (ИСКППД), объединяющих в рамках единой технологии научно-технические результаты решения перечисленных выше проблем и обладающих свойствами параметрич-ности, коммуникабельности и интеллектуальности.
Методология создания СКП предполагает интеграцию в соответствии с единой технологической концепцией таких понятий, как принципы структуризации системы [7], метод последовательного углубления [8], методы и средства конструирования диалоговых систем [9], представления данных [10] и знаний, диалоговой мультиобработки, моделирования [11].
В связи с тем что в основе этой технологии лежат принципы структуризации системы в целом и её компонентов и концепции построения БД, она получила название структурно-базовой (СБТ).
В этой технологии нашли развитие идеи структурного проектирования и
программирования и методы декомпозиции организационных структур в направлении максимального выделения управляющих процессов, их унификации и универсализации алгоритмов, выделения в модели предметной области БД объекта, БД среды, базы отношений и базы правил изменения этих отношений. Такой подход является принципиально новым и представляет (в сочетании с методами и средствами конструирования схем диалогов) основу для создания баз знаний (БЗ) и основанных на них интеллектуальных систем для широкого применения.
Основным методом анализа, исходной структуризации и динамической реструктуризация как системы в целом, так и её структурных и технологических элементов (управляющей системы, модели предметной области, БД, системы мультиобработки, диалоговых схем и др.) является метод последовательного углубления (МПУ), базирующийся на ряде известных методов и алгоритмов обработки деревьев и отличающийся от них общностью, универсальностью и простотой механизма функционирования. МПУ рассматривает анализируемую структуру как частично упорядоченное иерархическое множество А, на котором определено некоторое отношение порядка 5 из множества А допустимых на этом множестве отношений. Анализ А
производится на истинность некоторого предиката реР=[рг]. Предикат р0 называют управляющим, р. (г =1, 2, ..., т) - функциональными. В каждом конкретном случае ро выбирает рг, истинность которого проверяется. В случае истинности рг выполняется некоторая процедура д. 0=1, 2, ..., к) из множества процедур Q=[qo). Процедура д0 управляющая и обеспечивает выбор д, соответствующего р..
Концепции построения БД распространены посредством фреймовой технологии на функциональное программное обеспечение системы, чем обусловлена возможность формирования баз программ и систем управления ими по аналогии с БД и СУБД. Введены понятие мультибазы данных (МБД) применительно к БД СКП параллельного действия, определение реляционной МБД, обобщенные операции манипулирования ею. Средства создания диалоговых систем (ДС), благодаря широкому использованию фреймовой технологии, отличаются универсальностью управления, простотой адаптации к различным предметным областям, а также возможностью создания распределенных иерархических БД и БЗ путем сочетания упомянутых принципов структуризации, МПУ и диалоговых средств.
При разработке архитектуры диалогового процесса принята основная гипотеза о существовании некоторой
фиксированной последовательности действий, выполняемых управляющим модулем этого процесса в узлах графа, описывающего схему диалога. Такая последовательность действий не зависит от специфики предметной области, что является предпосылкой для создания универсального (в некотором смысле) управляющего модуля диалогового процесса. Этот модуль управляет ходом диалогового процесса в соответствии со структурой конкретной схемы диалога. Для каждого приложения составляется схема диалога, реализуемого под управлением диалогового монитора (ДМ). В качестве инструментария используется специальный комплекс программ разработчика ДС. Для создания схемы задается её дескриптор с общей информацией о схеме диалога и её параметрах (уникальное имя схемы, номера начального и конечного состояний, размеры общей области параметров схемы, текст комментария) и дескрипторы состояний, содержащие информацию о действиях, выполняемых в этом состоянии.
Возможны следующие типы состояний: управляющее - и, информационное - I, информационно-управляющее - С, форматное - Г , вычислительное - V , макросостояние - М. В этих состояниях выполняются функции формирования монитором в буфере экрана допустимых ответов (И, Г), выделения «окон» для
ввода данных пользователем и задания запросов с синтаксисом для ответа (Г), выдачи буфера экрана, сформированного функциональным модулем предыдущего состояния, приема ответа и его обработки (I блокировки обменов с терминалами и вычисления (V), выдачи информационных сообщений (I , V), перехода к новой схеме диалога (М), инициации общесистемных функций (протоколирование диалога, вызов каталогизированных ответов для нескольких связанных состояний, получение справок о допустимых ответах о состоянии и о схеме диалога в целом) и др.
Информация о структуре схем диалога представляет собой один из компонентов модели предметной области, хранится в специальных файлах и сопровождается по единой технологии с проблемными данными.
Инструментарий создания схем диалога предоставляет возможность проектирования параллельного процесса и непосредственного участия пользователя в оптимизации программы (параллельного вычислительного процесса), применяя свои знания о естественном параллелизме данных и процедур их обработки в своей предметной области и различные стратегии распараллеливания вплоть до выделения максимального параллелизма. При этом уместно говорить о системе диалоговой мультиобработки, состоящей из трёх ос-
новных блоков: распараллеливатель, оптимизатор и исполнитель.
Применение метода последовательного углубления, методов оптимизации, метода весовых функций и других средств, представленных в СБТ, обеспечивает возможность получения оптимальных по различным критериям параллельных программ -от максимально параллельной до строго последовательной.
Используемый в СБТ подход к моделированию СКП содержит принципиально новые элементы. Они заключаются в расширении применения известных методов моделирования технических характеристик и режимов функционирования системы до моделирования их в сочетании с планово-экономическими и другими характеристиками и оптимизации последних на основе использования БД и БЗ о функциональных процессах, пользователях, среде и условиях функционирования СКП, а также нормативной базы технологических операций.
Не являясь сама по себе облачной инфраструктурой, СБТ содержит ряд концепций, технологий, методов и других средств (методы последовательного углубления и весовых функций, свойства коммуникабельности и параметричности, особенности конструирования диалоговых систем, средства представления данных, знаний и моделирования, средства
интеллектуализации информационных систем, методология создания систем коллективного пользования в целом), необходимых для полноценной реализации основополагающих свойств облачных систем. Они были разработаны и реализованы в различных прикладных системах [5-11] значительно раньше появления понятия «облачные вычисления» [1-4].
Как следует из вышеприведенного краткого изложения, концепция СКП в существенной мере совпадает с концепцией облачной системы учитывая при этом. Технология, методы и средства создания СКП, разработанные значительно раньше появления понятия «облачные вычисления», на наш взгляд, могли бы быть эффективно использованы при создании, развитии и использовании облачных технологий.- это именно то, что необходимо для решения многих из перечисленных выше проблем облачных вычислений, начиная с главной проблемы - управления системой (кроме безопасности, являющейся специфической проблемой со своими средствами и особенностями решения).
Список литературы:
1. Cloud Computing Group. Who invented the term CloComputing? (англ.). Google Groups (20 October 2011).
2. Gillam, Lee. Cloud Computing: Principles, Systems and Applications / Nick
Antonopoulos, Lee Gillam. - L.: Springer, 2010. - 379 p.
3. Mell, Peter and Grance, Timothy. The NIST Definition of Cloud Computing. Recommendations of the National Institute of Standards and Technology. NIST (20 October 2011).
4. Gens, Frank. IDC's New IT Cloud Services Forecast: 2009-2013 (англ.). IDC (5 October 2009).
5. Халилов М.А. Классификация и тенденции развития промежуточного программного обеспечения / Материалы науч. семинара «Проблемы информатики и информатизации». - Махачкала.: - ИПЦ ДГУ. - 2010. - С. 51-61.
6. Халилов А.И. Структурно-базовая технология создания систем коллективного пользования : Монография : изд. 2-е. -Махачкала: ИД «МавраевЪ». - 2011.- 133 с.
7. Халилов А.И. Системные взаимодействия в АСУ территориальными звенья-
ми // Препринт РДЭНТП, Киев, 1980. -19 с.
8. Халилов А.И. Метод последовательного углубления и некоторые его применения // Теория и практика системного программирования. Сб. науч. тр. ИК АН УССР. - Киев, 1976. - С. 180-191.
9. Халилов А.И, Шилкин А.И. Об одном подходе к проектированию диалоговых систем коллективного пользования // Автоматизированные системы научных исследований коллективного пользования. Сб. науч. тр.- М., 1984.- С. 38-44.
10. Халилов А.И. Некоторые вопросы организации баз данных в сложных системах автоматизированного управления // Кибернетика.1981. - № 3. - С. 40-45.
11. Халилов А.И., Лосевичев В.И., Шут-ков И.М. О моделировании управляющей компоненты в одной системе коллективного пользования // Модели и системы обработки информации. Сб. науч. тр.-Киев, 1988. - № 7. - С. 97-104.