BaaS (Backend-as-a-Service)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:29, 31 октября 2016.
(перенаправлено с «Бэкенд как услуга»)

Backend as a Service (с англ. «бэкенд как услуга», BaaS) — модель, позволяющая разработчикам веб-приложений и мобильных приложений связать их приложения с серверным облачным хранилищем и API, выставляемыми серверными приложениями, а также предоставляющая такие функции, как управление пользователями, извещающие уведомления, интеграция со службами социальных сетей. Поэтому другое название термина — mBaaS, мобильный бэкенд как услуга. Перечисленные выше услуги предоставляются посредством использования пользовательских комплектов для разработки программного обеспечения (SDK) и интерфейсов прикладного программирования (API). BaaS — сравнительно недавняя разработка в области облачных вычислений, большинство таких стартапов возникло в 2011 году и позже. Хотя отрасль только зарождается, всё говорит о том, что эти услуги становятся весьма популярными у потребителей предприятий.[1]

Назначение

Веб-приложения требуют схожий с мобильными приложениями набор функций бэкенда, в том числе извещающие уведомления, интеграцию с социальными сетями и облачные хранилища. Каждая из этих услуг обладает собственным API, что индивидуально встраивается в приложение, — времязатратный и трудоёмкий для разработчиков процесс. Поставщики BaaS выстраивают мост между фронтендом приложения и различными облачными бэкендами с помощью единого API и SDK.

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

Идея BaaS в том, что вместо того, чтобы самим разрабатывать и в дальнейшем поддерживать серверные сервисы, можно воспользоваться готовыми, набор которых вместе формируют необходимый универсальный кросс-платформенный бэкенд для любого проекта. Соответственно, не нужно взаимодействовать с сервером приложения, базой данных, клиент-серверной библиотекой, хостингом, необязательно писать административную панель, продумывать дизайн своего API.[2]

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

Несмотря на сходство с другими облачно-вычислительными средствами разработки, таких как ПО как услуга (SaaS), инфраструктура как услуга (IaaS), платформа как услуга (PaaS), BaaS отличается от них тем, что непосредственно касается облачно-вычислительных требований разработчиков как веб-, так и мобильных приложений, предоставляя единые средства подключения их приложений к облачным сервисам.

Поставщики услуг

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

У BaaS-поставщиков много целей, позволяющих SDK и API, что работают для разработки приложений на различных платформ, вроде iOS, Android, Blackberyy, Windows Phone, HTML5 и других.

Бизнес-модель

BaaS-поставщики получают доход от своих услуг различными способами, часто используя бес-платную модель. Согласно ей, клиент получает определённое количество бесплатных активных пользователей или API вызовов в месяц, а платит за каждого пользователя или вызов свыше объявленного предела. Как вариант, клиенты могут платить ежемесячно за расширенный пакет вызовов или активных пользователей. Также бывают планы введения фиксированной оплаты, устаканивающие цены. Как, например, Kumulos. Некоторые из поставщиков предлагают неограниченные API-вызовы в рамках их бесплатного предложения. В то время как BaaS обычно предлагает коммерческие услуги, опции Open Source совершенно доступны.

Список MBaaS-поставщиков

  • AnyPresence
  • Kinvey
  • Kony
  • Kumulos
  • Odesso
  • Soul

Платформа Backendless

Для лучшего понимания термина рассмотрим BaaS-платформу Backendless. Это платформа «бэкенд как услуга», которая предоставляет готовую облачную серверную инфраструктуру для всех типов приложений. Это позволяет разработчикам, стартапам и крупным компаниям выигрывать время и деньги, отказавшись от разработки своего сервера, и сфокусироваться на функциональности приложений, их продвижении и пользователях (улучшении UX). API платформы доступны через встроенные SDK для следующих клиентских окружений: JavaScript, Android, iOS, Windows Phone, Flex/AIR. Все API также доступны через REST. Чтобы приступить к работе с приложением, необходимо зарегистрироваться или зайти сразу в веб-консоль разработчика через авторизацию Facebook, скачать SDK с примерами, прописать ключи для каждого SDK и написать вызов к API: после этого предоставляется доступ к собственному облачному бэкенду. Далее описаны API платформы Backendless[2]:

  • User Management API (управление пользователями) обеспечивает для приложения регистрацию и логин пользователей, восстановление пароля или обновления учётной записи кросс-платформенно. Сервис по управлению пользователями отвечает за две основные функции — регистрацию пользователей, а также их авторизацию. Больше не нужно писать проверки, существует ли пользователь, поддерживать сессии, отправлять электронные сообщения при разных событиях, создавать управление доступом для пользователей. Для этой задачи существует множество бизнес-правил, что позволяет гибко настроить управление пользователями так, чтобы удовлетворить все потребности.
  • Data Service API (реляционные данные) обеспечивает хранение данных пользователей. Приложения могут хранить, обновлять, удалять данные и осуществлять поисковые запросы. С услугой можно работать, не обладая знаниями о базах. Платформа позволяет создавать свои таблицы и связи между ними при помощи API. На клиенте достаточно создать структуру данных, при вызове метода SDK сервер создаст нужные таблицы и свяжет их между собой. Иной способ: можно создать это с помощью интуитивного пользовательского интерфейса через веб-консоль.
  • Publish/Subscribe Messaging API (обмен сообщениями) — клиентские приложения могут обмениваться сообщениями в режиме реального времени путём создания Издателей (Publishers) и Подписчиков (Subscribers). Сообщением могут быть любые произвольные (дискретные) данные. Эта функция полезна при разработке игр, чатов и приложений, требующих трансляцию данных (data broadcast) или p2p-доставку. Отсылка извещающих уведомлений и встроенных сообщений мобильным пользователям. Примеры применения: чат, синхронизация клиентских приложений, уведомление пользователей о чём-либо.
  • Push Notifications API (уведомления) — это подраздел сообщений, но со встроенной интеграцией доставки сообщений мобильному устройству как извещающие уведомления. Поддерживаются для iOS, Android и Windows Phone.
  • Geolocation API (геолокация) — приложения могут регистрировать географические координаты (геоточки) с дополнительными метаданными на сервере и впоследствии осуществлять поисковые запросы для других точек по метаданным в пределах заданного радиуса или квадрата. Возможные примеры применения в повседневной жизни:
    • родители — сервис автоматической привязки фото мест, где находятся их дети.
    • службы доставки и курьеры — фотографии объектов адресатов;
    • автомобилисты — состояние дорог и точной погоды в окрестностях;
    • туристы — достопримечательности в округе;
    • авто-путешественники — список ближайших ресторанов/отелей с меню и ценами, свободными местами;
    • указание расположения друзей, если они находятся поблизости;
    • пользователь делает посты с указанием категории, например, «рестораны» (и добавляет фото интерьера ресторана) или романтическое место (добавляет фото какого-то пейзажного места), после чего любой другой пользователь может отфильтровать просмотр только романтических мест вокруг него;
    • приложение, что будет знать местоположение пользователя с заданным радиусом. Другие сообщают какую-то ситуацию или событие, и если в данный час эта ситуация попадает в заданный радиус, пользователь получает уведомление (информацию о пробках или посте ГАИ на дороге, происшествиях).
  • Media Services API (медиа-потоки) — набор услуг, обеспечивающих «проигрывание по запросу» и живое потоковое видео и аудио. Приложения могут публиковать потоки с видеокамеры и микрофона для записи или прямого эфира. Записанное медиа (видео или аудио) и прямой эфир можно воспроизводить на других клиентах. Медиа-сервис позволяет передавать видео или аудио с клиентского приложения на сервер и воспроизводить этот поток на других устройствах. Также можно воспроизводить медиафайлы, загруженные с помощью файл-сервиса. Примеры применения: видеоконференция, видеочат, прямая видеотрансляция одновременно со и на всех устройствах (с телефона, планшета, камеры ПК), запись видео или аудио сразу на сервер, прямая аудиотрансляция (радио, музыка).
  • File Service API (хранилище файлов) поддерживает загрузку, общий доступ и скачивание файлов или блоков данных. Файлы / данные могут связываться с постоянными записями данных из сервиса реляционных данных, сообщениями и геоточками. Услуга управления файлами даёт возможность загружать и получать доступ к файлам через консоль или клиентские SDK. Примеры применения: хранение и управление файлами, воспроизведение загруженного видео, обновление файлов без необходимости обновлять приложение.

Преимущества

  • Версионность с общими данными / таблицами между версиями. Создав приложение, можно сделать официальный релиз, попутно работая над другой версией этого же приложения.
  • Воспроизведение аудио и видео в прямом эфире: можно подключить видеочат, прямую трансляцию, музыку, радио, клипы и другое.
  • Фильтрация сообщений — работает фильтрация сообщений по определённым подтемам. Можно задать фильтр в SQL-виде (так называемый селектор).
  • Поддержка flex/air-клиентов — присутствует SDK для ActionScript. С помощью Flash приложение легко будет выглядеть на любом устройстве одинаково.
  • Коробочное решение — можно получить свой служебный Backendless из коробки. Крупные производственные клиенты могут развернуть платформу на собственных серверах только для себя.
  • Гибкое ценообразование и выгодный бес-платный план — в бес-плату входят: API-вызовы безлимитно, 2 Гб дискового пространства, 200 000 publish/subscribe messages, 200 000 push notifications. Платить придётся исключительно за то, что будет непосредственно использоваться.
  • API и веб-консоль тщательно выполнены под разработчиков ради простоты и удобства работы.
  • Автомасштабируемость — платформа размещена на инфраструктуре Amazon и автоматически масштабируется при возникающих нагрузках: по месту и по используемой памяти. В случае превышения критического предела при обработке запросов запускаются дополнительные виртуальные машины.

Источники

  1. Wikipedia [Электронный ресурс]: Mobile backend as a service — материал из Википедии — свободной энциклопедии: Версия 746832235, сохранённая в 20:58 UTC 29 октября 2016 / Авторы Википедии // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2016. — Режим доступа: https://en.wikipedia.org/w/index.php?title=Mobile_backend_as_a_service&oldid=746832235
  2. 2,0 2,1 Хабрахабр [Электронный ресурс]: Свой облачный бэкенд в одну строчку кода. Обзор BaaS платформы «Backendless» / Дата обращения: 30.10.2016. — Режим доступа: https://habrahabr.ru/company/backendless/blog/180367/

Ссылки

  • Хабрахабр [Электронный ресурс]: Поверхностный обзор javascript-enabled BaaS платформ / Дата обращения: 30.10.2016. — Режим доступа: https://habrahabr.ru/post/150729/
  • Backend as a Service Platform [Электронный ресурс]: Backendless / Дата обращения: 30.10.2016. — Режим доступа: http://backendless.com/
  • Хабрахабр [Электронный ресурс]: История одного mBaaS (cloud backend) сервиса на примере QuickBlox / Дата обращения: 30.10.2016. — Режим доступа: https://habrahabr.ru/post/163699/