Upload
apigee
View
736
Download
3
Embed Size (px)
Citation preview
5
(m) obileB ackend a saS ervice
Datastore
Performance Mgmt
Push Notifications
Connections /Social
Location
Users
Building engaging experiences, powered by APIs
6
Modern apps are built around the user’s context
ü Inherently Mobile
ü Social
ü Location Aware
ü Proactive and Interactive
ü Push Notifications
ü Agile and Iterative
User
Building Systems of Engagement with Edge API BaaS
7
Systems of Record
Apigee Edge: Intelligent API Platform
Systems of Engagement
Consumer Apps Partner Apps Employee Apps Insights
CRM ERP Data �Warehouse Data LakeDatabase
App Developers
Apigee Edge Services
App
Developer Services
Security Transformations Optimization
Identity & Social Location Push & Real-time
Data Shaping
Persistence
Analytics Services
Account Management Support Monetization
Onboarding Authentication Documentation Community
Monitoring
API Services
API TeamDeveloper
Backend
Users Apps APIs Systems Developers
Graph Data Persistence: Entities & Connections• Entities
– Objects / Documents representing an Entity
• Collections– Logical grouping of Entities
• Connections / Entity Relationships– Graph Data Structure– /{collection}/{entityA}/{verb}/{collection}/{entityB}– /Users/me/likes/Products/iPhone6– /Recipes/Bread/includes/Ingredients/Flour
15
UserA
ProductA
UserB
UserC
Likes>><<Liking
• De-normalization and model the data based on the way you expect to use it. Use connections to reflect relationships (which may or may not be based on “keys”)
• SDKs for seven languages can simplify app development, or just use “curl”, Apache HTTP Client, or your favorite browser tool.
Designing for Apigee Edge API BaaS
16
Device
Device
Device
Device
Notification�Preferences User
Application
Notification�Preferences User
Consent
API-Driven Data Access w/ Query• REST Semantics
– GET, PUT, POST, DELETE • Filtering:
– GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title contains 'ta*'
– GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title contains 'tale
– GET http://api.usergrid.com/MyOrg/MyApp/books?ql=select * where title = 'A Tale of Two Cities'
• Limit– GET http://api.usergrid.com/MyOrg/MyApp/users?limit=5&ql=status = 'active’
• Cursors– GET http://api.usergrid.com/MyOrg/MyApp/users?ql=select * where name =
’John*'&limit=50&cursor=LTIxNDg0NDUxNDpnR2tBQVFFQWdITUFDWFJ2YlM1emJXbDBhQUNBZFFBUUQyMVZneExfRWVLRlV3TG9Hc1doZXdDQWRRQVFIYVdjb0JwREVlS1VCd0xvR3NWT0JRQQ
17
API BaaS – Users, Roles & Security• Organization administrator
accounts
• Registration & Login for your app
• End user credentials
• Organization-level client ID and shared secret
• Application-level client ID and shared secret
• Hierarchical Groups
• Fine-Grained User/Group/Role/Permission model
19
Location Queries
• Latitude / Longitude attributes on all Entities• Radius search:
– /stores?ql=location within 500 of 40.042016, -86.900749
• Combine with Push Notifications for targeted campaigns– /devices;ql=“location within 32186.9 of 34.427514,-118.535013”/notifications
24
88% of emails are never opened 84% of Facebook posts are never viewed 71% of tweets are never read 98% of SMS/MMS messages are opened and read
Push Notifications• Notification Providers
• Narrowcast / Broadcast– One User’s device– All Devices– All Devices in a Geo– Only iOS / Android
Flexible Notification TargetingPush Notification to 20 Miles of a store location
POST https://api.usergrid.com/jeffreyawest/sandbox/devices;ql=“location within 32186.9 of 34.427514,-118.535013”/notifications
Push Notifications to a group of usersPOST https://api.usergrid.com/jeffreyawest/sandbox/groups/capos/notifications
Push Notifications to a group of users in a certain locationPOST https://api.usergrid.com/jeffreyawest/sandbox/groups/capos/users;ql=/devices;ql=“location within 32186.9 of 034.427514,-118.535013”/notifications
26
Integrated Application Performance Management
• Visualize Errors in Real-Time, slice-n-dice by Version / Device / OS / Carrier
• Detect and diagnose App Crashes• Research Performance Problems
28
• Visualize and track Network Performance by Carrier
• Track API Latency
Remote Application & SDK Configuration
• Optimize app configuration settings without App Store update
• Push critical configuration fixes in production to fix bugs and improve performance
• Configure SDK Settings for each application– Log Capture– Log Level– Device Data Capture– Location Data Capture– Configure Sampling
29
Beta & A / B Testing Configurations• Specify distinct device IDs enabled for
Beta Testing Configurations– Enable configuration profiles for specific
devices
30
• Incrementally roll out new configurations with A / B testing
• Manage Testing Configurations applied to a select percentage of Devices/Users