Versioning and Traffic Splitting • Static Content Serving and Caching • Local Developer Tools • European Zones for Locality and Compliance • Google FrontEnds protect against DOS attacks • Integrated Auth for Google Accounts App Engine Features
awesomeness FROM lots_of_data GROUP BY strategy +-------------+----------------+ | strategy | awesomeness | +-------------+----------------+ | "Forty-two" | 1000000.01 | +-------------+----------------+ 1 row in result set (10.2 s) Scanned 100GB A brief history of BigQuery
Backends • Add annotations to client interface application code or generate Endpoint classes from Models. • Discoverable, Restful APIs implemented on top of Google’s API Infrastructure Cloud Endpoints: APIs made easy • Tools available for generating Client Libraries for Android, iOS and JavaScript • Built-In Authentication Support
Notifications (using Sockets API)* ◦ Google Cloud Messaging (using GCM Server) • GCM Messages ◦ Send-to-sync (collapsible) ◦ Send with Payload (Non-Collapsible) • Examples ◦ Notification of new emails on Server ◦ Send game invites from friends ◦ Display ‘toasts’ with important messages Push Notifications Apple Push Notifications Service *See Orchestrating iOS Push Notifications on Google Cloud Platform (http://goo.gl/GpmyMz)
project in your Android IDE. Locate the Consts.java file and set the PROJECT_ID to the Project ID of the project in which you created the Mobile Backend Starter Android Client project Build and run the project. You have a cloud enabled Android application!
sends message to GCM 2. Google enqueues the message and stores it if device is offline 3. Once device is online, Google sends message(s) to the device 4. Android processes message via Intent Broadcast, waking up the app to process it.
(package name from manifest) Registration ID (issued by GCM to each device) [email protected] AIzzSmq78hIOlwUU4nq8dD (Server API key) Registration ID (issued by GCM to each device) Listen to whom? Who wants to listen? Who’s talking? Identifies an instance of app on the server Speaking to whom? cool-beanbag-383.appspot.com (Application URL) “cool-beanbag-383” (Project ID)
googleusercontent.com (Web Client ID) com.google.cloud.backend.android (Android package) 10:94:27:04:4d:9f:f6:6e:bc:15:61: d9:ee:3d:7f:9f:73:b1:71:05 (SHA1 fingerprint) 624491884055- 102e3nt459n26fv9mc4vsd7p2l.apps. googleusercontent.com (Web Client ID) Same developer, no need for consent screen Produced by combining package and SHA1 fingerprint Google Cloud Endpoints Application Signature Google Authentication for Android
cloudBackendMessaging.createCloudMessage(“DevFest”); ce.put(“chatMessage”, <chat message about how great GDG DevFest is>); cloudBackendMessaging.sendCloudMessage(ce); Send Message