УДК 004
БЫСТРОЕ СОЗДАНИЕ REST API СЕРВИСА НА ОСНОВЕ ОБЛАЧНЫХ ТЕХНОЛОГИЙ AZURE
Ю.Р. Акинин, А.В. Барабанов, Н.И. Гребенникова
В данной статье рассмотрен пример быстрого создания REST API сервиса на основе облачных технологий Microsoft Azure. Отличительной особенностью решения являются простота использования, инсталляции и поддержки, а также гибкость и масштабируемость
Ключевые слова: Rest API, облачные технологии Azure, Azure Mobile Services
1. Введение
1.1. Необходимость использования клиент-серверной архитектуры построения приложений
В современной практике разработки комплексного программного обеспечения зачастую востребована необходимость организации совместной работы различных частей системы, физически удаленных друг от друга, но соединенных посредствам каналов связи . Одним из вариантов решения такой задачи является разработка централизованной системы, обладающей одним или несколькими управляющими/обслуживающими звеньями (серверами) и множеством рабочих звеньев (клиентов). Логика приложения распределена между сервером и клиентами, хранение данных осуществляется преимущественно на сервере, обмен информацией происходит по сети. Существуют и другие варианты решения данной задачи, но наиболее традиционной и часто используемой остается «клиент-серверный» подход. Одним из преимуществ такого подхода является то, что клиенты могут быть независимыми от аппаратных характеристик или программных параметров и могут являться кросс-платформенными, а также способны по необходимости получать от сервера недостающую вычислительную мощность, необходимое хранилище для данных и другие, так называемые «распределенные ресурсы». В рамках данной статьи рассматривается ситуация, в которой сервер должен совмещать в себе функции хранилища данных, обработчика данных, а также
«провайдера» необходимых данных для приложений-клиентов — данную
функциональность зачастую объединяют в понятие «межплатформенный сервис». Это
Акинин Юрий Романович - ВГТУ, аспирант, e-mail: yury@geekycorp. com
Барабанов Александр Владимирович - ВГТУ, канд. техн. наук, ст. преподаватель, e-mail: [email protected] Гребенникова Наталия Ивановна - ВГТУ, канд. техн. наук, доцент, e-mail: [email protected]
задача очень часто возникает перед разработчиками. Ключевой особенностью одного из решений является скорость разработки.
1.2. Основы Rest API
Одной из основных частей межплатформенного сервиса является
реализация «программного интерфейса приложения» (API) - это набор правил и спецификаций к программному обеспечению, которые позволяют сервисам предоставлять существующие ресурсы для других приложений-клиентов, имплементирующих (реализующих) это API [1]. Одним из распространенных подходов к проектированию и реализации сервиса API является REST подход (Representational State Transfer), отличительной особенностью которого
является то, что данные должны передаваться в виде небольшого количества стандартных форматов (ATOM, XML, JSON). Количество методов и сложность протокола строго ограничены (сетевым протоколом для реализации REST преимущественно является HTTP). Разработчикам программного обеспечения данный подход дает ряд преимуществ - простоту и скорость в реализации комплексного клиент-серверного решения, высокую масштабируемость системы, но также и некоторые ограничения при реализации систем высокой сложности с большим количеством методов и сложным протоколом. Но для решения нашей задачи REST является оптимальным.
2. Облачные технологии Windows Azure. Особенности, преимущества
Windows Azure — название платформы «облачных сервисов» от Microsoft, с помощью которой можно размещать в «облачных» датацентрах Microsoft и неограниченно масштабировать свои приложения. Платформа Windows Azure предоставляет возможность разработки и выполнения приложений, хранения данных на серверах, расположенных в распределенных датацентрах [2].
Не будем рассматривать все плюсы и минусы облачных технологий, делать сравнения с другими существующими облачными сервисами, а рассмотрим некоторые преимущества при решении нашей задачи:
— нет необходимости в приобретении дорогостоящего оборудования (сервера);
— доступ по сети Интернет из любого места;
— к расчету стоимости принимаются только фактически использованные ресурсы и вычислительные мощности;
— платформа работает как сервис и
предоставляет набор готовых компонентов за несколько кликов мыши. Пользователь может сосредоточиться на решении «собственных» задач и не тратить время на
администрирование.
3. Azure Mobile Services
3.1. Введение Azure Mobile Services
Одним из сервисов, предоставляемых Windows Azure, является Azure Mobile Services, основной задачей которого является создание «бэкэнда» для мобильных устройств за считанные минуты. При подключении данного сервиса открывается доступ для загрузки исходных кодов клиентского модуля интеграции с данным сервисом. Исходные коды на данный момент доступны для платформ Windows 8, Windows Phone 8 и iOS, основной особенностью данных клиентских модулей является поддержка протокола OData, который позволяет выполнять операции с ресурсами, используя в качестве запросов HTTP-команды, и получать ответы в
форматах Atom, JSON или XML, что является отличительной особенностью REST-подхода. В основе Windows Mobile Services лежит REST API, и Microsoft предоставляет возможность использовать данную функциональность «из
Для взаимодействия с сервисом API используется ряд стандартных HTTP/1.1 запросов. Помимо основных операций реализованы готовые механизмы авторизации клиентов. Так как данный сервис реализует протокол OData, открывается ряд возможностей по использованию фильтрации, сортировки и управлению выборкой данных на уровне
коробки» при создании Azure Mobile Services.
[3]
3.2. Создание и настройка REST API на основе Azure Mobile Services
Создание Azure Mobile Services происходит в несколько этапов.
1) Необходимо создать пустую базу данных MS SQL, используя административную панель Windows Azure.
2) Создается Mobile Service, в качестве базы данных для хранения информации выбирается база, созданная на шаге 1. Данный шаг осуществляется при использовании административной панели Windows Azure.
3) На уровне Mobile Service создаются таблицы данных, которые должны быть доступны на нашем REST API. При этом также применяется административная панель созданного мобильного сервиса. При создании таблиц в мобильном сервисе данные таблицы будут автоматически созданы в используемой базе данных.
4) Создание необходимой структуры
данных, описание полей и типов. Данный шаг осуществляется посредством
администрирования базы данных MS SQL в соответствии с требованиями разрабатываемой вами системы.
В результате за короткий промежуток времени получаем REST API сервис, готовый к работе.
4. Описание сетевого взаимодействия c REST
API
4.1. Возможности REST API на основе Azure Mobile Service
Данный API реализует базовый
функционал, позволяющий совершать группы операций с сущностями бизнес логики (табл.1).
Таблица 1
запроса при использовании стандартов, описанных в спецификациях OData.
4.2. Примеры операций с данными
Для получения данных используется стандартный HTTP GET запрос. <service_name> - название вашего мобильного сервиса, <table_name> - имя таблицы в базе данных. В данном случае запросы будут выглядеть следующим образом:
Query records operation Операции чтения данных таблиц
Insert record operation Операции создания новой записи в таблице
Update record operation Операции обновления существующей записи
Delete record operation Операция удаления записи из таблиц
Таблица 2
Запрос на получение всех записей из таблицы______________________________
HTTP Verb Request URI HTTP Version
GET https://<service_name>.azure-mobile.net/tables/<table_name> HTTP/І.І
Таблица 3
Запрос на создание записи в таблице:___________________________________
HTTP Verb Request URI HTTP Version
POST https://<service_name>.azure-mobile.net/tables/<table_name> HTTP/І.І
Таблица 4
Запрос на обновление существующей записи в таблице_____________________
HTTP Verb Request URI HTTP Version
PATCH https://<service_name>.azure-mobile.net/tables/<table_name>/<item_id> HTTP/І.І
где <йеш_1ё> - идентификатор существующей записи
Таблица 5
________________________________________Запрос на удаление:_________________________________________
HTTP Verb Request URI HTTP Version
DELETE https://<service_name>.azure-mobile.net/tables/<table_name>/<item_id> HTTP/І.І
В случае создания и обновления записи важным замечанием является то, что помимо использования соответствующего типа HTTP запроса и корректного Request URI необходимо в теле HTTP запроса (Request Body) передавать необходимые данные в формате JSON. Для всех типов запросов в заголовке необходимо использовать соответствующие записи для авторизации доступа к данным, а также определения формата данных Content-Type — application/json.
5. Заключение
Основным результатом данной работы явился полнофункциональный REST API-сервис, реализованный за минимальное время и с полной готовностью к работе. Программист не тратит время на разработку, интеграцию и
инсталляцию сервиса на сервер, а также администрирование физического сервера, обеспечение безопасности, масштабируемости системы, что дает возможность сосредоточиться на решении пользовательских и научных задач, обеспечив их преимуществами серверных технологий по хранению, обработке и обмена данными. Поэтому данных подход является наиболее интересным для студентов, аспирантов и молодых ученых.
Литература
1. What is an API? Your guide to the Internet Business Revolution. // стр. 4 // 3scale USA
440 N Wolfe Rd, Sunnyvale, CA 94085, USA // 2012
2. https://www.windowsazure.com/en-us/
3. http://msdn.microsoft.com/en-us/library /windowsazure/jj 710108.aspx
Воронежский государственный технический университет
QUICK CREATION OF REST API SERVICE BASED ON AZURE CLOUD TECHNOLOGIES
Yu.R. Akinin, A.V. Barabanov, N.I. Grebennikova
In this topic you can see an example of creating REST API service for student's and junior scientist's purposes. It is based on Microsoft Azure cloud services and has wide capabilities: simple installation, integration and support, flexibility and scalability
Key words: Rest API, Azure cloud services, Azure Mobile Services