Rambler.iOS #2: Практика применения BaaS в мобильных сервисах
-
Upload
rambler-ios -
Category
Technology
-
view
360 -
download
2
Transcript of Rambler.iOS #2: Практика применения BaaS в мобильных сервисах
![Page 1: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/1.jpg)
BaaS (MBaaS) Практики использования
![Page 2: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/2.jpg)
Много их
• Parse • Built.io • Kinvey • …
![Page 3: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/3.jpg)
Возможности
• 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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/4.jpg)
Все их хотят
• Facebook приобрел Parse, • PayPal купил StackMob, • Salesforce запустил Salesforce Platform Mobile
Services, • AWS выпустил пакет своих собственных мобильных утилит,
• Pivotal запустил Pivotal CF Mobile Services, • RedHat приобрел FeedHenry.
![Page 5: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/5.jpg)
Экосистема
BaaS MEAP PaaS Mobile Services Framework
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/6.jpg)
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/7.jpg)
Где применяются?
• Стартапы • Хакатоны • Инди-девелоперы • Интеграция с энтерпрайз
![Page 8: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/8.jpg)
Еще один мессенджер
• 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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/9.jpg)
Модель
• User • ChatUser • ChatFriend • ChatRoom
![Page 10: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/10.jpg)
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/11.jpg)
ChatUser -> ChatFriend + ACL
![Page 12: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/12.jpg)
Кейс №1: Плохой API
• App version Backend version
• Downgrade app?? • Downgrade backend??
![Page 13: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/13.jpg)
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/14.jpg)
На сервере
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/15.jpg)
Кейс №2: логгирование в приложении
• App crashes • Analytics • Server logs • App logs???
![Page 16: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/16.jpg)
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/17.jpg)
Кейс №4: Проверка App Licensing
• Google Play • AppStore • File hosting • Torrents
![Page 18: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/18.jpg)
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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/19.jpg)
Проверка подписи
![Page 20: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/20.jpg)
Проверка данных приложения
![Page 21: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/21.jpg)
Кейс №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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/22.jpg)
Кейс №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 в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/23.jpg)
Parse Notification center
Server
Parse
APNS GCM
Device 1 Device 2 Device N
![Page 24: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/24.jpg)
Проблемы MBaaS
• ~= Vendor Lock-in • Flexibility? • High Latency (Non dedicated) • RIP of BaaS (Stackmob)
![Page 25: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/25.jpg)
Dedicated BaaS
![Page 26: Rambler.iOS #2: Практика применения BaaS в мобильных сервисах](https://reader034.fdocuments.in/reader034/viewer/2022050922/55a700d11a28abfd5e8b4803/html5/thumbnails/26.jpg)
Вопросы?
• 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/