backendless baas. dinosaurus for jeeconf 2013
DESCRIPTION
Do not be a JEE dinosaur! Use Backend as a Service for your server side needs and focus on the code that matters.TRANSCRIPT
Не будьте J2EE динозавром.
Cфокусируйтесь на коде, который имеет значение!
Иван Лаппо
2
Устройств стало много, очень много
Ваше серверное
приложение
Ваше серверное
приложение
И уже есть умные и подключенные к Интернету очки, часы, датчики, тв, авто…
3
Пишем серверное приложение
+JAVA
4
Снова пишем регистрацию
5
Каждый раз одно и то же…
6
Деплоим
7
Пришли первые 100 пользователей
8
Клиентские приложения
Ваш сервер
9
Помимо разработки…
БД
CacheCache
10
Неэффективная трата времени
Сервер VS Клиент
11
Сумма в тысячах USD
12
Как можно оптимизировать этот процесс?
13
Способы автоматизации
+
генерировать нужный код автоматически
предоставлятьрезультаты повторяющегося кода в
виде сервисов
14
• Платформа для создания приложений
• Не требуется разработка серверной части
• Клиентские API (нативные СДК)
• Консоль разработчика
• Автоматическое масштабирование
• Облачное хранилище
• CDN (Content delivery network)
BaaS это…
15
BaaS провайдеры
16
Функции BaaS
17
User Service
Сервисы BaaS
• Регистрация• Логин• Разграничение прав и ролей• Управление• Настройка параметров сессии
18
{
}
Backendless.UserService.login(
”i.am.bond",
asyncCallback );
Управление юзерами (пример кода)
19
Data service
Сервисы Baas
• CRUD• Разграничение прав и ролей• Управление• Гибкое получение данных• Импорт, экспорт
20
{
}
Person person = new Person( "Bob", 35, "[email protected]");
Backendless.Persistence.of( Person ).save( person, asyncCallback );
Дата сервис (пример кода)
21
Geolocation
Сервисы Baas
• Создание точек• Разграничение прав и ролей• Управление• Метаданные• Поиск по региону
22
{
}
Backendless.Geo.getPoints(
new BackendlessGeoQuery(
"city", ”Kiev" ),
asyncCallback );
Геолокация (пример кода)
23
Messaging Service
Сервисы Baas
• Отправка сообщений• Поддержка различных устройств• Управление• Безопасность• Сабтопики, селекторы
24
{
}
Backendless.Messaging
.subscribe( ”myChannel",
methodCallback,
subscriptionCallback );
Месседжинг сервис (пример кода)
25
PushNotifications
Сервисы Baas
• Один пуш на все устройства• Управление
26
{
}
Backendless.Messaging
.publish( "Hello!",
new DeliveryOptions(
PushBroadcastMask
.ANDROID ));
Push уведомления (пример кода)
27
File Service
Сервисы Baas
• Upload + Download• Поддержка VCS• Управление
28
{
}
Backendless.Files.upload(
file, path, asyncCallback );
Файл сервис(пример кода)
29
Media Service
Сервисы Baas
• Streaming• Разграничение прав и ролей• Управление• Импорт, экспорт
30
{
}
Backendless.MediaService
.publishLiveAndRecord(
”myVideoChannel", ”funny Dance"),
responder );
Медиа сервис (пример кода)
31
TodoMVC + jQuery
32
Publish / Subscribe месседжинг
33
Бэкенд для Андроида за 5 минут
• Настраиваем сервисы
• Генерируем каркас клиентского приложения
• Создаем UI
• Пользуемся
34
• Поддержка серверного кода
• Кодогенерация
• Версионность на уровне приложения
• Аналитика
• Локальная энтерпрайз версия
• Поддержка клиентских SDK
REST
Ключевые конкурентные фишки
35
• Слабый контроль над реализацией
• Трудности в расширении стека технологий
• Сложно мигрировать между провайдерами
Недостатки BaaS
36
Двигатели BaaS
• Высокая конкуренция на рынке приложений
• Низкий порог вхождения
• Широкий функционал
• Отказоустойчивость
• Масштабируемость
• Гибкое ценообразование (за используемые ресурсы)
Бесплатный план Backendless API вызовы безлимитно 2 GB дискового пространства 200,000 push уведомлений 200,000 publish/subscribe messages
37
Ландшафт на сегодня
• 2 года - возраст рынка
• 30+ вендоров (нет явных лидеров)
• Значительный разброс по предлагаемому функционалу и поддерживаемым окружениям
• BaaS используют 50,000 + разработчиков в мире
• Рост пользователей BaaS 25,000+ в год
• Прямые заявленные инвестиции в сектор более $150 млн. (растет)
38
Завтра…
BaaS потенциальный стандарт для разработки• Прототипов
• Мобильных приложений
• Кроссплатформенных приложений
• Энтерпрайз приложений
Вывод: работать станет веселее
39
Код который имеет значение
Код написание
которого сложно
автоматизировать
Будущее нельзя изменить, но к нему можно подготовиться