Средства разработки облачных приложений

advertisement
Рахманов Валерий Игоревич, кафедра «Информационные технологии»
ИССЛЕДОВАНИЕ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ И ПЛАТФО РМ ДЛЯ РАЗРАБОТКИ ОБЛАЧНЫХ ПРИЛОЖЕНИЙ
ДЛЯ ЦЕЛЕЙ ОБРАЗОВАНИЯ.
СРЕДСТВА ПРОЕКТИРОВАНИЯ ОБЛАЧНЫХ ПРИЛОЖЕНИЙ
Приложение, предназначенное для размещения в облаке, становится
частью облачной структуры и должно разрабатываться с учетом
дополнительных требований, предъявляемых со стороны облака.
Как и любая программная система облачное приложение проходит
следующие этапы жизненного цикла: разработка, тестирование,
развертывание и сопровождение.
На этапе проектирования, включающего в себя разработку технического
задания, эскизного и технического проектов, необходимо отразить все
те дополнительные требования, которые диктует «облако».
В соответствии с (ГОСТ 34.602-89 Техническое задание на разработку
автоматизированной системы) в разделы технического задания
«Требования к системе» должны быть дополнительно включены
следующие сведения и требования:
 варианты размещения в облаке, например, в облаке полностью
размещаются и код и данные; в облаке размещаются полностью
код, а данные размещаются в локальной сети; частичное
размещение в облаке кода и данных и т.д. и т.п.;
1
 требования к составу образа виртуальной машины (тип ОС, тип
сервера базы данных, диапазон ресурсов процессоров, памяти,
дисков и др.);
 варианты использования моделей выполнения в облаке
(варианты использования виртуальных машин и управления
вычислительной средой);
 способы информационного обмена между пользователем и
приложением, между разработчиком и приложением;
 способы информационного обмена между интегрированными
распределенными приложениями (использование языка XML,
сервисной шины и других средств);
 способность к масштабируемости кода (чем меньше связей между
компонентами приложения, тем лучше приложение будет
масштабироваться);
 способность к масштабируемости данных (во многом
определяется выбором хранилища данных и технологий работы с
данными);
 обеспечение большей степени модульности, чем для локального
варианта в серверной среде (для повышения производительности
и масштабируемости);
 обеспечение повышенной безопасности в облаке;
 и целый ряд других требований.
Эти требования должны быть учтены на стадии проектирования
приложения (выбор типа базы данных, языка программирования,
архитектуры приложения и др.), причем разработка приложения может
происходить как в самом облаке, так и традиционными методами вне
облака с последующим переносом в облако.
2
Поскольку на начальных этапах проектирования необходимо построить
совокупность моделей приложения, то в качестве средств моделирования могут быть использованы различные традиционные CASE средства,
например, Rational Rose, Erwin и др.
СРЕДСТВА РАЗРАБОТКИ ОБЛАЧНЫХ ПРИЛОЖЕНИЙ
В качестве средств разработки программного кода и базы данных используются традиционные средства, включающие в себя, как правило,
интегрированную среду разработки с набором языков, библиотек, API и
других компонентов (например, Visual Studio.NET). При выборе вариантов набора инструментов разработчики облачных приложений должны
учитывать возможности конкретного провайдера. Здесь имеется в виду
предоставление сервиса в виде инфраструктуры PaaS, которая дает программистам средства разработки, необходимые для создания программ
в этой специфической инфраструктуре. Обычно эти инструменты представляют собой наборы библиотек и API, которые дают доступ к вычислительным ресурсам и ресурсам хранения.
Что касается языков программирования, то различные провайдеры и
создатели интегрированных платформ предлагают различные варианты. Так, например, Google App Engine поддерживает Java и Python. Платформа Microsoft Azure позволяет работать с любым языком, который
поддерживает технологию .NET с помощью соответствующих подключаемых модулей Visual Studio.
На более высоком уровне платформы PaaS могут поддерживать технологии программирования, отличающиеся от общепринятых. Например,
технология MapReduce, которая базируется на принципах функционального программирования. Она позволяет передавать данные лишь после
того, как будут определены вычислительные узлы и установлено соот3
ветствие входных и обработанных значений. Лишь после этого объединяются результаты. Предполагается, что такое решение может оказаться более эффективным, чем традиционная обработка баз данных.
На способ создания программ для облака могут повлиять и применяемые провайдерами PaaS модели данных. В настоящее время доминирующей моделью для программирования баз данных является модель
«ключ-значение». Ее называют моделью NoSQL. Очевидно, необходимо
наличие соответствующих инструментов разработки.
В качестве основных представителей услуг в сфере облачных вычислений и обладателей соответствующих средств разработки приложений
можно выделить следующих производителей.
AMAZON ELASTIC COMPUTE CLOUD (EC2).
Amazon является одним из лидеров в сфере облачных вычислений. Ключевыми сервисами платформы являются Amazon EC2 (хостинг виртуальных машин на базе Xen) и S3 (хостинг данных). Помимо этих сервисов,
AWS предоставляет:
Amazon EBS – блочное хранилище данных для виртуальных машин ЕС2;
Amazon CloutFront – CDN для распределенной доставки объектов S3;
Amazon MapReduce – готовая к использованию инсталляция Hadoop;
Amazon SimpleDB – распределенная нереляционная база данных;
Amazon Simple Queue Service – очередь сообщений.
Amazon EC2 основана на принципе предоставления ресурсов по требованию, что обеспечивает гибкий подход к реализации потребностей
пользователей. Центральной идеей EC2 является представление «Все
4
как услуга» и реализована в виде трех основных моделей облачных вычислений: SaaS, PaaS и IaaS.
GOOGLE APP ENGINE.
Облачная инфраструктура Google App Engine занимает значительную
долю на рынке облачных вычислений. Платформа App Engine
гарантирует пользователю высокую надежность, доступность,
масштабируемость и целостность. Также Google предоставляет широкий
спектр средств разработки, обеспечивающих доступный подход к
развертыванию приложений и обеспечения технического
обслуживания. Инструменты обеспечивают масштабирование в объеме
необходимом для одновременной работы постоянно увеличивающегося
количества пользователей.
Google разработал собственную распределенную систему хранения
данных, названную Bigtable. Для достижения целей широкого
применения, масштабируемости, высокой производительности и
высокой доступности, Google разработал SQL-подобный язык запросов
для Bigtable, названный GQL. Также Google предоставил не реляционное
Bigtable API, отличный от SQL API.
App Engine поддерживает две среды разработки: Java и Python, а также
стандартные протоколы и инструменты для разработки web
приложений. Приложения размещаются и выполняются в безопасной
среде, с ограниченным доступом к операционной системе. Такой
ограниченный доступ позволяет App Engine в соответствии со спросом
на ресурсы обработки распределять запросы между несколькими
физическими серверами, а также позволяет запускать и останавливать
сервера.
MICROSOFT AZURE.
5
Windows Azure это открытая платформа облачных вычислений,
встроенная в операционную систему и предназначенная для
«разработки, размещения и управления Azure Service Platform». Microsoft
предоставляет ресурсы центров обработки данных для размещения web
приложений, которые можно легко масштабировать. Windows Azure, как
открытая платформа, поддерживает как собственные разработки Microsoft, так и другие коммерческие языки и среды разработки.
Windows Azure в полной мере реализует две облачные модели платформы как сервиса (PaaS) и инфраструктуры как сервиса (IaaS).
Windows Azure предназначена для всех типов пользователей, от
начинающих разработчиков приложений под web до групп
разработчиков программного обеспечения для корпораций, при этом
обеспечивая масштабируемость и гибкость. С использованием средств
разработки .NET и Visual Studio разработчики могут создавать любые
приложения: приложения для беспроводных устройств, web
приложения и многое другое. Разработчикам доступны и другие языки
программирования, такие как Ruby, PHP и Python, а также среды - Eclipse
и NetBeans.
Microsoft Azure опирается на нескольких базовых сервисах: Live, SQL,
.NET, SharePoint и Dynamic CRM Services. Эти сервисы используются для
обеспечения, разработки, управления, создания и мониторинга сервисов
и коммуникаций между сервисами.
Сервис Live обрабатывает пользовательские данные и ресурсы
приложений, обеспечивает взаимодействие между разработчиками и
web аудиторией.
Сервис SQL расширяет Microsoft SQL Server с целью обеспечения
облачных вычислений возможностями web и распределенных
6
реляционных баз данных. При этом реализуется повышенная
безопасность, доступность, масштабируемость и надежность. Microsoft
SQL Data Services (SDS) - это облачная платформа реляционной базы
данных, построенная с использованием технологий SQL Server.
Сервис .NET ориентирован на разработчиков приложений для облачных
вычислений. Он обеспечивает разработку, размещение, и
масштабирование приложений. Microsoft постоянно работает над
добавлением услуг внутри сервиса .NET. На данный момент доступны:
Access Control, Service Bus и Workflow.
Сервисы SharePoint и Dynamic CRM Services обеспечивают доступ
пользователей к функционалу SharePoint и CRM для совместной работы
и обмена информацией между различными исполнителями.
Разработчики могут использовать возможности, предоставляемые
облачными сервисами SharePoint и CRM для создания соответствующих
приложений.
Сервис Team Foundation Services на платформе Windows Azure предназначен для проведения тестирования, контроля версий, сборки и выполнения совместной работы над проектами по разработке программного
обеспечения. Тем самым реализуется технологии ALM, используемая для
внедрение полноценного процесса управления жизненным циклом приложения.
Платформа Microsoft Azure имеет в своем составе как набор типовых
инструментов разработки приложений (SDK), так и согласованные
между собой другие компоненты, позволяющие говорить о мощной
интегрированной платформе разработки, тестирования, развертывания
и сопровождения облачных приложений.
FORCE.COM
7
Платформа Salesforce Force.com предназначена для быстрого создания
SaaS-решений. Приложение должно быть написано практически с нуля
для того, чтобы исполняться в рамках этой платформы. Разработка ведется на Oracle Apex в оригинальной среде Visualforce. С одной стороны,
платформа использует широко распространенные технологии разработки, что является плюсом этой платформы и должно быть высоко оценено разработчиками, у которых есть опыт создания внутренних (inhouse) приложений. С другой стороны – использование этой платформы
очень сильно привязывает разработчиков к данному решению на
уровне исходного кода и вынуждает применять только конкретные инструменты. И, хотя решение является идеальным для пользователей
Salesforce.com, которые хотят расширить функционал базового облачного сервиса, прочие сценарии могут быть не столь удобны.
СРЕДСТВА РАЗРАБОТКИ ОБЛАЧНЫХ ПРИЛОЖЕНИЙ ДЛЯ ЦЕЛЕЙ
ОБРАЗОВАНИЯ
Корпорация IBM анонсировала новые сервисы облачных вычислений,
предназначенные для поставки передового программного обеспечения,
ресурсов и сервисов вычислительных лабораторий для студентов и
исследователей в школах, колледжах и университетах. IBM SmartCloud
for Education представляет собой набор сервисов облачных вычислений
и предложений, которые позволяют системе образования использовать
возможности прогностической аналитики для получения в реальном
времени важной информации, которая позволяет улучшить
продуктивность студентов и учебного заведения в целом, повысить
эффективность научных исследований и дополнить ограниченные
образовательные ресурсы учебных лабораторий.
8
Как Google, так и Microsoft во многих странах предоставляют
образовательным учреждениям обширный программный пакет, к
которому учащиеся получают доступ наряду с электронной почтой.
Google Apps for Education и Microsoft Live@edu располагают средствами
поддержки коммуникаций в виде программ мгновенного обмена
сообщениями наряду с адресной книгой и планировщиком заданий.
Предоставляются также приложения для создания документов,
позволяющие работать с текстами, электронными таблицами и
презентациями, а также создавать вебсайты. Эти документы могут
редактироваться совместно с другими пользователями. Пользователи
получают значительное пространство для хранения документов всех
типов, которым они могут пользоваться и после окончания
образовательного учреждения.
Образовательные учреждения также начинают использовать
низкоуровневые облачные услуги с целью хранения данных. Это может
оказаться выгодным, если безопасность доступа к данным не является
приоритетом, например, если видео- и аудиоматериалы
предоставляются в качестве открытых образовательных ресурсов.
Другой вариант использования облачных услуг, который начинает
распространяться в сфере образования, это перемещение в «облако»
используемых учреждениями систем управления обучением (LMS, Learning Management Systems). Передача поддержки таких систем как,
например, Blackboard и Moodle, внешним провайдерам имеет смысл для
образовательных учреждений, которые не могут позволить себе
покупку и поддержку дорогостоящего оборудования и программного
обеспечения.
Как пример использования облачных технологий в образовании,
можно назвать электронные дневники и журналы, личные кабинеты
9
для учеников и преподавателей, интерактивная приемная,
тематические форумы и многое другое.
 В качестве «облачных» инструментов выполнения различных
учебных заданий можно использовать следующие компоненты:
 компьютерные программы,
 электронные учебники,
 тренажеры,
 диагностические, тестовые и обучающие системы,
 прикладные и инструментальные программные средства,
 лабораторные комплексы,
 системы на базе мультимедиа-технологии,
 телекоммуникационные системы (например, электронную почту,
телеконференции),
 электронные библиотеки и др.
Microsoft в рамках интегрированной платформы Windows Azure
предлагает для образовательных учреждений платформу Windows Azure
in education, которая позволяет реализовать все типовые задачи
образования. Кроме того, использование этой платформы позволяет
вузам готовить специалистов в сфере облачных вычислений, спрос на
которых растет с каждым годом.
Настоящим подарком для вузов стал выпуск пакета Office 365,
реализующего широкий набор облачных услуг для нужд образования.
Он предоставляет учащимся, преподавателям и другим сотрудникам
образовательных учреждениям возможность бесплатно пользоваться
электронной почтой, создавать веб-сайты, редактировать и хранить
документы в Интернете, обмениваться мгновенными сообщениями и
проводить веб-конференции. Офис позволяет школам модернизировать
10
свою коммуникационную и производственную инфраструктуру по
своему усмотрению.
ТЕНДЕНЦИИ В РАЗРАБОТКЕ СРЕДСТВ СОЗДАНИЯ ОБЛАЧНЫХ
ПРИЛОЖЕНИЙ.
В качестве основных тенденций развития средств разработки облачных
приложений можно выделить следующие:
Применение средств, используемых для веб-разработки, такие как .NET
и другие подобные инструменты (Visual Studio.Net).
Адаптация имеющихся средств разработки приложений к особенностям
разработки облачных сервисов.
Введение стандартов на применяемые инструменты и средства
разработки (например, HTML5) и создание на их основе средств
разработки, инвариантных к платформам поставщиков облачных
сервисов.
Движение от базовых языков и сред разработки (например, Visual Studio.Net) к высокоуровневым платформам (Windows Azure).
Объединение инструментов разработки с инструментами для
тестирования и развертывания сервисов и создание на их основе
интегрированных платформ (Windows Azure).
Постепенный переход инструментов в облака.
Появление, наряду со сложными, и простых инструментов, которые
дадут возможность создавать типовые решения в облачной среде
непрограммистам.
11
ЛИТЕРАТУРА.
1. Максим Кузькин. Особенности разработки в облаках.
2. Наталья Ефимцева. Тестирование облачных сервисов. «Открытые
системы», № 05, 2012.
3. Андрей Колесов. Рынок средств разработки в эпоху ИТ-перемен, PC
Week Review: Средства разработки, ноябрь 2012.
4.
Алекс Эймис, Скотт Педдл, Пань Ся Цзоу, Разработка облачных
приложений с помощью инструментов Rational. 05.10.2012.
5. Шитал Джариа, Ашиш Биллор. Интеграция приложений в
программно-аппаратные облачные решения.08.04.2013.
6. Облачные вычисления в образовании. Аналитическая записка.
UNESKO Institute for information Technologies in Education. Сентябрь
2010.
7. Office 365 для учебных заведений.
8. http://www.e-xecutive.ru/knowledge/announcement/1341745/
9. http://www.ibm.com/ru/cloud/pdf/Dispelling_the_vapor.pdf
10.
http://www.bureausolomatina.ru/node/99
11.
www.cisco.com/go/cloud enablement.
12.
www.cisco.com/en/US/products/ps10437/services_segment_ser
vice_home.html.
12
Download