За последние несколько лет облака стали ведущей парадигмой предоставления разнообразных онлайн-сервисов  —  благодаря облакам операторы крупномасштабных приложений с распределенным потоком операций могут пользоваться масштабируемыми вычислительными ресурсами по мере необходимости, причем практически без стартовых капиталовложений и с умеренными эксплуатационными расходами  [1–4].  Несмотря на множество исследований, посвященных решению всевозможных проблем облаков, задача эффективного обнаружения облачных сервисов остается нерешенной [2, 4], хотя ее актуальность очевидна. Во-первых, предлагаемые сегодня облачные сервисы  делятся  как  минимум  на три вида: программа как сервис, платформа и инфраструктура в виде сервиса (SaaS, PaaS и IaaS). Во-вторых, отсутствуют единые стандарты описания и публикации облачных сервисов, хотя для традиционных веб-сервисов аналогичные стандарты  имеются —  в  частности,  Web Services Description Language (WSDL), предназначенный для экспозиции интерфейсов, и язык Universal Description Discovery & Integration (UDDI), позволяющий публиковать сервисы в реестрах. Но в большинстве общедоступных облачных сервисов стандарты описания не используются [2], что делает их обнаружение проблематичным. Что касается официальных описаний, то в Dropbox, к примеру, вообще не называют свой сервис «облачным», тогда как некоторые компании, не имеющие отношения к облачным вычислениям (например, cloud9carwash), наоборот, спекулируют словом «облако» в наименовании или описании своих услуг.

  Итак, как понять, что тот или иной сервис в WWW является облачным? Сколько облачных сервисов сейчас доступно в WWW и кто их предоставляет (не мнополизируют ли поставку таких сервисов крупные операторы вроде Microsoft, IBM, Amazon, Google и т. п.)? Какие типы провайдеров облачных сервисов существуют? Откуда географически предоставляются облачные сервисы? Насколько широко в облаках применяются традиционные подходы сервисных компьютерных систем? Насколько потребители доверяют облачным сервисам? Существует ли общедоступный срез данных по облачным сервисам, которым можно было бы воспользоваться в посвященных им исследованиях? Для ответа на эти вопросы был создан специальный движок — обходчик облачных сервисов (Cloud Services Crawler Engine, CSCE), который проанализировал около 6 тыс. реальных облачных сервисов, обнаруженных во Всемирной паутине.

CSCE собирает информацию об облачных сервисах с помощью поисковых систем. На рис. 1 показана архитектура CSCE, состоящая из шести уровней.

Рис. 1. CSCE: а — архитектура; б — онтология
Рис. 1. CSCE: а — архитектура; б — онтология

 

Уровень провайдеров облачных сервисов (сверху справа) — это перечень операторов, рекламирующих свои сервисы в Интернете. Они доступны через веб-порталы и индексируются всеми поисковыми системами. Существуют также сайты, например Cloud Hosting Reviews и Cloud Storage Reviews, которые дают пользователям возможность оставлять отзывы о сервисах. Примерный перечень провайдеров, индексируемых поисковыми сервисами, служит начальными входными данными для CSCE.

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

Сборщик указателей, работающий на соответствующем уровне, собирает URL возможных облачных сервисов. Пользуясь средствами поисковых систем, он отыскивает проиндексированные веб-страницы, документы в формате WSDL и Web Application Description Language (WADL, аналог WSDL, применяемый для описания веб-сервисов, доступных по принципу REST) и рекламные ссылки. При поиске сборщик в качестве ключевых слов использует понятия из онтологии облачных сервисов («облачный сервис», IaaS, PaaS, SaaS и т. д.), передавая собранные указатели уровню фильтрации облачных сервисов для проверки действительности.

На следующем уровне происходит фильтрация собранных указателей. Вначале верификатор облачных сервисов определяет, активен ли указатель. Неактивные сохраняются в отдельной базе для повторной проверки (некоторые из них могут быть временно недоступными) вместе с кодом ошибки. Активные указатели передаются валидатору, который проверяет действительность сервисов, пользуясь понятиями из онтологии. Например, если на веб-странице по ссылке есть понятия, относящиеся к облачным сервисам, такие как IaaS, «хранение», «инфраструктура» и т. п., указатель считается действительным. Если же там присутствуют иные понятия, к примеру «новость», «статья», «доклад» или «погода», указатель признается недействительным: предполагается, что это просто новостной сайт, публикующий статьи об облачных сервисах. Недействительные указатели сохраняются еще в одной базе, а действительные классифицируются (отмечаются как относящиеся к IaaS, PaaS или SaaS) и передаются на следующий уровень. На нем, в свою очередь, извлекается информация об активных действительных облачных сервисах: название, адрес и описание. Эти данные сохраняются в соответствующих базах для последующего статистического анализа.

Онтология облачных сервисов

Онтология облачных сервисов (Cloud Services Ontology, CSO) снабжает обходчик метаданными, представляет схему семантических связей между понятиями, встречающимися на сайтах облачных сервисов, и позволяет распознать такой сервис, даже если в его названии и описании не используются слова вроде «облако», «инфраструктура», «платформа», «ПО» и т. п. В CSO включены общепринятые понятия из мира облачных вычислений, упоминаемые в стандарте NIST.

Руководствуясь CSO, обходчик может автоматически обнаруживать, проверять действительность и классифицировать облачные сервисы. Для подготовки CSO использовался редактор онтологий с открытым кодом Protege, разработанный в Стэнфордском университете. Руководствуясь понятиями и связями между ними, CSCE собирает вероятные указатели на облачные сервисы и отфильтровывает недействительные. В CSO определены два вида отношений: «является» и «не является». К примеру, сбор указателей с помощью поисковых систем выполняется с использованием понятий, связанных отношением «является» (верхняя часть рис. 1, б). В свою очередь, валидатор для проверки действительности сервисов руководствуется понятиями, связанными отношением «не является» (нижняя часть рис. 1, б). Наряду с этим он пользуется понятиями, связанными отношением «является», чтобы классифицировать действительные облачные сервисы как относящиеся к категориям IaaS, PaaS, SaaS или смешанным.

Статистический анализ и результаты

Собранные данные по облачным сервисам позволили получить ответы на перечисленные в начале статьи вопросы.

Идентификация облачных сервисов

Для оптимизации быстродействия обходчика параллельно использовались три многопоточных экземпляра CSCE, работающих на разных машинах. В таблице приведена статистика по сбору и верификации сервисов. На этапе сбора присутствует значительная доля шума — свыше 80%, что можно объяснить отсутствием стандартов описания и публикации облачных сервисов. Таким образом, сегодня имеется насущная потребность в стандартизации способов обнаружения облачных сервисов и взаимодействия с ними.

Результаты поиска облачных сервисов
Результаты поиска облачных сервисов

 

Стоит отметить, что общее количество неактивных облачных сервисов невелико — только 0,1% от всех возможных указателей. Поисковые службы регулярно проверяют ссылки на доступность и исключают неактивные из своих индексов. Для неактивных сервисов CSCE регистрировал коды ошибок согласно стандарту RFC 2616: чаще всего встречался код 1005, «несуществующий URL», — большинство неактивных облачных сервисов прекратили работу.

Местонахождение и языки

На рис. 2 приведено распределение облачных сервисов по странам происхождения, позволяющее проследить общую картину освоения облачных вычислений в мире. В Северной Америке предоставляется больше всего облачных сервисов — 60,45%, далее идут Европа (23,27%) и Азия (8,7%). Кроме этого, имеется статистика по языкам сервисов (рис. 3, a) — для этого использовался веб-ресурс What Language is This и Java-библиотека с открытым кодом Language Detection Library. Большинство облачных сервисов предоставляются на английском, что согласуется с тем фактом, что основная их часть работает в Северной Америке, Австралии и Европе, однако использование китайского, французского, немецкого и испанского свидетельствует о том, что облака набирают популярность. Можно отметить, что 4,3% облачных сервисов — на арабском языке.

Рис. 2. Местонахождение облачных сервисов
Рис. 2. Местонахождение облачных сервисов

 

Классификация сервис-провайдеров

На рис. 3, б показаны результаты классификации провайдеров по шести категориям. Больше половины провайдеров (51,29%) предоставляют сервисы IaaS, около трети (27,08%) — SaaS, а доля PaaS составляет 7,7%. Остальные предоставляют сервисы больше чем одного типа — к этой категории принадлежат такие игроки, как Microsoft, Amazon и Google.

Рис. 3. Статистика по сервисам: а — языки облачных сервисов; б — классификация сервис-провайдеров; в — пользовательские отзывы о доверии к сервисам; г — облачные сервисы с описанием на WSDL или WADL; д — сервисы, рекламируемые через поисковые системы; е — тип IP-адреса облачных сервисов
Рис. 3. Статистика по сервисам: а — языки облачных сервисов; б — классификация сервис-провайдеров; в — пользовательские отзывы о доверии к сервисам; г — облачные сервисы с описанием на WSDL или WADL; д — сервисы, рекламируемые через поисковые системы; е — тип IP-адреса облачных сервисов

 

Облачные сервисы и QoS

Качество обслуживания (Quality-of-Service, QoS) — один из важнейших атрибутов, на который нужно было бы обращать внимание при обнаружении сервисов. Пользователь или приложение могли бы сортировать найденные облачные сервисы по QoS и выбирать наиболее подходящие. CSCE получал информацию о QoS сервисов, анализируя сайты с откликами потребителей. В первую очередь уделялось внимание уровню доверия пользователей к сервису, учитывая то, что именно нехватка доверия сдерживает внедрение облаков [1, 4]. Большинство (62,26%) доверяют сервисам, которыми пользовались, а 20,06% поставили негативную оценку.

Облачные сервисы и SOC

Технологии сервисных вычислений и веб-сервисов относятся к числу важнейших, благодаря им стали вообще возможны облака [2]. Анализ с помощью CSCE позволил выяснить, насколько часто при публикации облачных сервисов используются языки описания сервисных сред: WSDL и WADL (предназначенные для сервисов SOAP и REST).

Как ни удивительно (рис. 3, в), лишь 1,8% облачных сервисов реализованы с использованием интерфейсных языков, созданных для веб-сервисов. Но CSCE мог и не обнаруживать сервисы, поскольку WSDL-документы не всегда находятся в открытом доступе. Кроме того, большинство веб-сервисов с интерфейсом REST вместо формальных описаний сопровождаются только неформальной документацией. Тем не менее полученный результат свидетельствует о низком уровне использования описаний сервисных конфигураций в облачных вычислениях.

Реклама и IP-адреса

Интересно также, как облачные сервисы себя рекламируют, чтобы их могли найти потенциальные клиенты. Некоторые провайдеры делают это через поисковые системы, выводя баннеры наверху или справа от результатов. На рис. 3, д видно, что платная реклама есть у 10,80% найденных сервисов. Обычно баннеры представляют собой лишь краткие текстовые описания, а подробностей (в том числе о функциональности и данных по QoS) в них нет.

Еще один важный аспект — тип IP-адреса, используемый различными сервисами: IPv4 или IPv6. Это выяснялось с помощью команды nslookup. Как видно на рис. 3, е, в большинстве облачных сервисов используется Ipv4.

***

Проведенный анализ выявил очень ограниченное использование стандартов описания сервисов в облаках, что противоречит общепринятому мнению. Недостаточная стандартизация нынешних облачных решений и сервисов затрудняет их поиск и создает барьеры на пути к их доступности. Сегодня имеется настоятельная потребность в стандартах на языки описания сервисов. В 2012 году ассоциация Distributed Management Task Force опубликовала спецификацию Cloud Infrastructure Management Interface, определяющую взаимодействие между облачными средами и возможность самостоятельного управления пользователем облачной инфраструктурой.

В дальнейшем планируется продолжать изучение взаимосвязей между сервисными средами и облачными вычислениями и искать дополнительные свидетельства использования в них сервисных технологий. В CSCE планируется реализовать более полное извлечение сведений о QoS, чтобы обеспечить возможность ранжирования облачных сервисов.

Литература

  1. M. Armbrust et al. A View of Cloud Computing. Comm. ACM, vol. 53, no. 4, 2010, P. 50–58. 
  2. Y. Wei, M.B. Blake. Service-Oriented Computing and Cloud Computing: Challenges and Opportunities. IEEE Internet Computing, vol. 14, no. 6, 2010, P. 72–75. 
  3. K. Ren et al. Security Challenges for the Public Cloud. IEEE Internet Computing, vol. 16, no. 1, 2012, P. 69–73. 
  4. T.H. Noor et al. Trust Management of Services in Cloud Environments: Obstacles and Solutions. ACM Computing Surveys, vol. 46, no. 1, 2013, article no. 12.

Талал Ноор (tnoor@taibahu.edu.sa) — доцент факультета компьютерных наук Университета Тайба (Саудовская Аравия); Кван Шенг (qsheng@cs.adelaide.edu.au) — руководитель отдела исследований в области передовых веб-технологий факультета компьютерных наук Аделаидского университета; Энн Нгу (angu@txstate.edu) — профессор Техасского университета; Шахрам Дустдар (dustdar@dsg.tuwien.ac.at) — руководитель отдела распределенных систем Института информационных систем Венского технического университета.

Talal Noor, Quan Sheng, Anne H.H. Ngu, Schahram Dustdar, Analysis of Web-Scale Cloud Services. IEEE Internet Computing, July/August 2014, IEEE Computer Society. All rights reserved. Reprinted with permission.