+ All Categories
Home > Technology > Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Date post: 16-Jul-2015
Category:
Upload: rambler-ios
View: 357 times
Download: 2 times
Share this document with a friend
26
BaaS (MBaaS) Практики использования
Transcript
Page 1: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

BaaS (MBaaS) Практики использования

Page 2: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Много их

•  Parse • Built.io • Kinvey • …

Page 3: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Возможности

•  Remote + Local Data storage + synchronization •  User Management •  Social Features •  Push notifications •  Cloud code •  On-device encryption •  REST API + 3rd party services •  Geo Data

Page 4: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Все их хотят

•  Facebook приобрел Parse, •  PayPal купил StackMob, •  Salesforce запустил Salesforce Platform Mobile

Services, •  AWS выпустил пакет своих собственных мобильных утилит,

•  Pivotal запустил Pivotal CF Mobile Services, •  RedHat приобрел FeedHenry.

Page 5: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Экосистема

BaaS MEAP PaaS Mobile Services Framework

Facebook

Twitter

Foursquare

Flurry

Heroku

OpenShift

GAE

Azure

AWS

Parse

Kii

Kinvey

Backendless

Android

iOS

Windows

HTML5

Xamarin

Unity

IBM MobileFirst

Kony

Verivo

Page 6: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

PaaS vs BaaS vs Meap

•  Flexible vs. Proprietary •  Self-Service vs. Services Based • Cloud Service Subscription vs. On-Premise

License

+PaaS

Page 7: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Где применяются?

• Стартапы • Хакатоны • Инди-девелоперы • Интеграция с энтерпрайз

Page 8: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Еще один мессенджер

•  Groups of users (Chat rooms) •  Send messages to users subscribed to a topic •  Notify the app of new chat messages •  Query for objects on the cloud (messages,

photos, etc.) Log in with Facebook account

Page 9: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Модель

• User • ChatUser • ChatFriend • ChatRoom

Page 10: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Register the App

Add & Setup SDK

Check user (token)

Create Facebook App

Configure Facebook Settings (Facebook App ID)

Create ChatUser + find friends

Page 11: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

ChatUser -> ChatFriend + ACL

Page 12: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Кейс №1: Плохой API

•  App version Backend version

•  Downgrade app?? •  Downgrade backend??

Page 13: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

HashMap<String, Boolean> data = new HashMap<>(); data.put("app_version", 1); ParseCloud.callFunctionInBackground("checkVersion", new HashMap<String, Object>(), new FunctionCallback<String>() { @Override public void done(String result, ParseException e) { if (e == null) { boolean isOk = Boolean.parseBoolean(result); if(!isOk){ // show popup and exit } } } });

На клиенте

Page 14: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

На сервере

Parse.Cloud.define("checkVersion", function(request, response) { var query = new Parse.Query(request.params. app_version); // check?

response.success(true);

});

Page 15: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Кейс №2: логгирование в приложении

• App crashes • Analytics •  Server logs • App logs???

Page 16: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

ParseObject

•  class ParseObject •  class CustomLogObject extends ParseObject CustomLogObject myLog = new CustomLogObject(APP_TAGS); myLog.put(TIME_TAG, time());

myLog.put(USER_TAG, API.email); myLog.saveEventually();

Page 17: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Кейс №4: Проверка App Licensing

• Google Play • AppStore •  File hosting •  Torrents

Page 18: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Google Play App Licensing + BaaS

APP

GOOGLE PLAY CLIENT

LICENSE VALIDATOR

RAW DATA

SIGNED DATA + SIGNATURE

RAW DATA + SIGNED DATA + SIGNATURE

•  STRICT POLICY •  SERVER MANAGED

POLICY

Page 19: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Проверка подписи

Page 20: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Проверка данных приложения

Page 21: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Кейс №5: Вебхуки

•  Pre-processing for requests •  Post-processing for responses 1) Baas Our Prod Server 2) Our Prod server BaaS

Page 22: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Кейс №6: Загрузка данных по требованию

APP SERVER

APP SERVER

APP SERVER

APP SERVER

APP SERVER data

data

data

data

data

OR APP SERVER data

data

data data data data data

Page 23: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Parse Notification center

Server

Parse

APNS GCM

Device 1 Device 2 Device N

Page 24: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Проблемы MBaaS

•  ~= Vendor Lock-in • Flexibility? • High Latency (Non dedicated) • RIP of BaaS (Stackmob)

Page 25: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Dedicated BaaS

Page 26: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах

Вопросы?

•  http://searchsoa.techtarget.com/feature/Backend-as-a-Service-FAQs

•  https://s3.amazonaws.com/kinvey-fb-lp/docs/BaaS+vs+MEAP+201406.pdf

•  https://parse.com/docs/


Recommended