SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Building Scalable Cloud Connected
Mobile Apps using Windows Azure
Jahufar Sadique (99X)
What is Windows Azure Mobile
Services?
• A set of services build on Azure that provides backend ‘plumbing’ to
your mobile apps.
• Focus on building apps and not backend logic
– Data (dynamic schema)
– Authentication (Federated identities such as Facebook, Google,
Twitter, Windows Live)
– Server Logic (via Mobile Services Server Scripts)
– Push Notifications (GCM, APNS, WNS)
• Monitoring/Analytics/Logging infrastructure
• Client SDKs supported for Android, iOS, Windows Phone and
HTML/Javascript
Getting Started
• The service is not free
• ..but comes with a 3 month free trial (subject
to credit card verification)
• What you get:
http://www.windowsazure.com/en-
us/pricing/free-trial/
• DEMO: Azure Dashboard
• DEMO: Creating a new mobile service
• DEMO: Download the SDK and setup project
Mobile Service: Data
• Backend is Windows Azure SQL Database
• Dynamic schema – create your model in code,
and the fields are mapped by magic
• Throttling and failures are automatically
handled.
• NO RELATIONS (i.e. no foreign keys, cascade
logic etc)
DEMO
Creating a simple list of users
Authentication
• Authenticate against: Facebook, Google,
Twitter, Windows Live
• Table level permissions for CRUD operations:
– Everyone (default)
– Only authenticated users
– Only scripts and admins
DEMO
Securing the list of users
Server Scripts
• Similar to a trigger
• Allows you to build custom business logic when
something happens to your data
• Available operations: insert, update, read, delete (del)
e.g.:
function insert (id, user, request) {
request.execute();
}
Server Scripts: Continued
Insert: function insert(item, user, request) { }
Update: function update(item, user, request) { }
Delete: function del(id, user, request) { }
Read: function read(query, user, request) { }
•Script functions always take 3 arguments:
– 2nd
arg is always “user” (represents a user)
– 3rd
arg is always “request” (used to send responses).
– 1st
arg changes according to operation
Scripts: Continued
• Example:
function insert(item, user, request) {
if (item.userId !== user.userId) {
request.respond(statusCodes.FORBIDDEN, ‘Access Denied.');
} else {
request.execute();
}
}
* Complete script reference can be found at:
http://msdn.microsoft.com/en-us/library/windowsazure/jj554226.aspx
Push Notifications
• Allows direct push to devices
• Supported push services:
– GCM (API key required)
– APNS (Certificate required)
– WNS (Client secret & Package SID required)
N.B: For Windows Phone/WNS: 500 notifications/per user/per day.
Implementing Push Notifications
(in 5 easy steps)
Code walkthrough
Push Notifications: Step 1
Register App for Notifications
• GCM is the native push system for Android
• Register your app and enable GCM using
Google API console
(https://code.google.com/apis/console/)
Push Notifications: Step 2
Configure Mobile Services
• Copy generated API key from Google API
Services
• Select ‘Push’ from Azure Console and paste
key
Push Notifications: Step 3
Integrate push library to your app
• Copy gcm.jar to libs
• Add permissions
<permission android:name=“com.test.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name=“com.test.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
• Add reciever/services
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name=“com.test" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
Push Notifications: Step 4
Register your device & handle pushes
• Assuming you have ‘deviceId’ field on your data model:
String deviceId = GCMRegistrar.getRegistrationId(this);
Users.deviceId = deviceId;
//save here
• When a push arrives, onMessage fires:
protected void onMessage(Context context, Intent intent) {
//notify user etc.
}
http://developer.android.com/google/gcm/gs.html
Push Notifications: Step 5
Getting the server to notify
function insert(item, user, request) {
request.execute({ success: function() {
request.respond();
push.gcm.send(Users.deviceId, item.text);
}
}
Diagnostics, Logging and Scale
• Diagnostics:
– CPU Time
– Memory consumptions
– API calls/time taken per request
• Logging
– With server scripts via console.x (console.info,
console.error etc)
• Scale
– Scale up or down by spinning up new VMs or by
scaling up VM size
More Services
• Scheduler
– Schedule server scripts on demand or on interval
– Examples:
• Purge old data,
• Poll/aggregate data from other sources
• Schedule pushes to be sent at a certain time
• SendGrid (3rd
party service)
– Email-As-A-Service
• Pusher (3rd
party service)
– Enhanced push services (among other things)
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

AnDevCon - A Primer to Sync Adapters
AnDevCon - A Primer to Sync AdaptersAnDevCon - A Primer to Sync Adapters
AnDevCon - A Primer to Sync AdaptersKiana Tennyson
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsQuontra Solutions
 
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 Cutting edge HTML5 API you can use today (by Bohdan Rusinka) Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)Binary Studio
 
Creating data with the test data builder pattern
Creating data with the test data builder patternCreating data with the test data builder pattern
Creating data with the test data builder patternAlan Parkinson
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinAmazon Web Services
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesAmazon Web Services
 
Building a document e-signing workflow with Azure Durable Functions
Building a document e-signing workflow with Azure Durable FunctionsBuilding a document e-signing workflow with Azure Durable Functions
Building a document e-signing workflow with Azure Durable FunctionsJoonas Westlin
 
O365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerO365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerNCCOMMS
 
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)Amazon Web Services Korea
 
Sitecore experience platform session 1
Sitecore experience platform   session 1Sitecore experience platform   session 1
Sitecore experience platform session 1Anindita Bhattacharya
 
13 asp.net session19
13 asp.net session1913 asp.net session19
13 asp.net session19Vivek chan
 
Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)Clarence Ngoh
 
Azure Saturday: External Collaboration With Azure AD B2B
Azure Saturday:  External Collaboration With Azure AD B2BAzure Saturday:  External Collaboration With Azure AD B2B
Azure Saturday: External Collaboration With Azure AD B2BSjoukje Zaal
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSDanilo Poccia
 
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...Amazon Web Services
 
Angular JS, steal the idea
Angular JS, steal the ideaAngular JS, steal the idea
Angular JS, steal the ideaScott Lee
 
Introduction to React and MobX
Introduction to React and MobXIntroduction to React and MobX
Introduction to React and MobXAnjali Chawla
 
Lamdba micro service using Amazon Api Gateway
Lamdba micro service using Amazon Api GatewayLamdba micro service using Amazon Api Gateway
Lamdba micro service using Amazon Api GatewayMike Becker
 

Was ist angesagt? (20)

AnDevCon - A Primer to Sync Adapters
AnDevCon - A Primer to Sync AdaptersAnDevCon - A Primer to Sync Adapters
AnDevCon - A Primer to Sync Adapters
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra Solutions
 
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 Cutting edge HTML5 API you can use today (by Bohdan Rusinka) Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 
Creating data with the test data builder pattern
Creating data with the test data builder patternCreating data with the test data builder pattern
Creating data with the test data builder pattern
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit Diublin
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
Building a document e-signing workflow with Azure Durable Functions
Building a document e-signing workflow with Azure Durable FunctionsBuilding a document e-signing workflow with Azure Durable Functions
Building a document e-signing workflow with Azure Durable Functions
 
O365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerO365con14 - a developer jam with yammer
O365con14 - a developer jam with yammer
 
Angular Data Binding
Angular Data BindingAngular Data Binding
Angular Data Binding
 
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 2. SNS 연동과 Lambda로 메시지 처리하기 (김무현 솔루션즈 아키텍트)
 
Sitecore experience platform session 1
Sitecore experience platform   session 1Sitecore experience platform   session 1
Sitecore experience platform session 1
 
13 asp.net session19
13 asp.net session1913 asp.net session19
13 asp.net session19
 
Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)Having Fun Building Web Applications (Day 1 Slides)
Having Fun Building Web Applications (Day 1 Slides)
 
Azure Saturday: External Collaboration With Azure AD B2B
Azure Saturday:  External Collaboration With Azure AD B2BAzure Saturday:  External Collaboration With Azure AD B2B
Azure Saturday: External Collaboration With Azure AD B2B
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWS
 
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...
Serverless Patterns: “No server is easier to manage than no server” - AWS Sec...
 
Angular JS, steal the idea
Angular JS, steal the ideaAngular JS, steal the idea
Angular JS, steal the idea
 
Introduction to React and MobX
Introduction to React and MobXIntroduction to React and MobX
Introduction to React and MobX
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
 
Lamdba micro service using Amazon Api Gateway
Lamdba micro service using Amazon Api GatewayLamdba micro service using Amazon Api Gateway
Lamdba micro service using Amazon Api Gateway
 

Andere mochten auch

005_studentsharepointcamp_planyourfuturewithsharepoint
005_studentsharepointcamp_planyourfuturewithsharepoint005_studentsharepointcamp_planyourfuturewithsharepoint
005_studentsharepointcamp_planyourfuturewithsharepoint99X Technology
 
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-0399X Technology
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker99X Technology
 
004_studentsharepointcamp_enterprise application_demo
004_studentsharepointcamp_enterprise application_demo004_studentsharepointcamp_enterprise application_demo
004_studentsharepointcamp_enterprise application_demo99X Technology
 
Social Physics in a Corporate Environment
Social Physics in a Corporate Environment Social Physics in a Corporate Environment
Social Physics in a Corporate Environment 99X Technology
 
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...99X Technology
 
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo99X Technology
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers99X Technology
 
Cloud aware product engineering
Cloud aware product engineeringCloud aware product engineering
Cloud aware product engineering99X Technology
 

Andere mochten auch (11)

005_studentsharepointcamp_planyourfuturewithsharepoint
005_studentsharepointcamp_planyourfuturewithsharepoint005_studentsharepointcamp_planyourfuturewithsharepoint
005_studentsharepointcamp_planyourfuturewithsharepoint
 
Microservices
MicroservicesMicroservices
Microservices
 
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
 
Know your Ride!
Know your Ride!Know your Ride!
Know your Ride!
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
 
004_studentsharepointcamp_enterprise application_demo
004_studentsharepointcamp_enterprise application_demo004_studentsharepointcamp_enterprise application_demo
004_studentsharepointcamp_enterprise application_demo
 
Social Physics in a Corporate Environment
Social Physics in a Corporate Environment Social Physics in a Corporate Environment
Social Physics in a Corporate Environment
 
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
 
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers
 
Cloud aware product engineering
Cloud aware product engineeringCloud aware product engineering
Cloud aware product engineering
 

Ähnlich wie Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Apps using Windows Azure

What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)Google
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerMichael Collier
 
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션Amazon Web Services Korea
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureKen Cenerelli
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesAymeric Weinbach
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesGaston Cruz
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...wesley chun
 
SRV421 Deep Dive with AWS Mobile Services
SRV421 Deep Dive with AWS Mobile ServicesSRV421 Deep Dive with AWS Mobile Services
SRV421 Deep Dive with AWS Mobile ServicesAmazon Web Services
 
Build a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS LambdaBuild a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS LambdaTheFamily
 
Android Cloud to Device Messaging Framework at GTUG Stockholm
Android Cloud to Device Messaging Framework at GTUG StockholmAndroid Cloud to Device Messaging Framework at GTUG Stockholm
Android Cloud to Device Messaging Framework at GTUG StockholmJohan Nilsson
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformMicrosoft 365 Developer
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB
 
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morePower your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morewesley chun
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Amazon Web Services
 

Ähnlich wie Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Apps using Windows Azure (20)

What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect Partner
 
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos Tabulares
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
 
SRV421 Deep Dive with AWS Mobile Services
SRV421 Deep Dive with AWS Mobile ServicesSRV421 Deep Dive with AWS Mobile Services
SRV421 Deep Dive with AWS Mobile Services
 
Build a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS LambdaBuild a mobile app serverless with AWS Lambda
Build a mobile app serverless with AWS Lambda
 
Android Cloud to Device Messaging Framework at GTUG Stockholm
Android Cloud to Device Messaging Framework at GTUG StockholmAndroid Cloud to Device Messaging Framework at GTUG Stockholm
Android Cloud to Device Messaging Framework at GTUG Stockholm
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platform
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
 
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morePower your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
Securing Serverless Workloads with Cognito and API Gateway Part II - AWS Secu...
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 

Mehr von 99X Technology

How to develop an AppSec culture in your project
How to develop an AppSec culture in your project How to develop an AppSec culture in your project
How to develop an AppSec culture in your project 99X Technology
 
Starting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X TechnologyStarting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X Technology99X Technology
 
Webinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X TechnologyWebinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X Technology99X Technology
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler99X Technology
 
Gearing Startups for Success through Product Engineering
Gearing Startups for Success through Product EngineeringGearing Startups for Success through Product Engineering
Gearing Startups for Success through Product Engineering99X Technology
 
Kick Starting Test Automation
Kick Starting Test AutomationKick Starting Test Automation
Kick Starting Test Automation99X Technology
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation99X Technology
 

Mehr von 99X Technology (8)

How to develop an AppSec culture in your project
How to develop an AppSec culture in your project How to develop an AppSec culture in your project
How to develop an AppSec culture in your project
 
Starting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X TechnologyStarting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X Technology
 
Webinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X TechnologyWebinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X Technology
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler
 
Gearing Startups for Success through Product Engineering
Gearing Startups for Success through Product EngineeringGearing Startups for Success through Product Engineering
Gearing Startups for Success through Product Engineering
 
Kick Starting Test Automation
Kick Starting Test AutomationKick Starting Test Automation
Kick Starting Test Automation
 
The Adra Story
The Adra StoryThe Adra Story
The Adra Story
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation
 

Kürzlich hochgeladen

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Apps using Windows Azure

  • 1. Building Scalable Cloud Connected Mobile Apps using Windows Azure Jahufar Sadique (99X)
  • 2. What is Windows Azure Mobile Services? • A set of services build on Azure that provides backend ‘plumbing’ to your mobile apps. • Focus on building apps and not backend logic – Data (dynamic schema) – Authentication (Federated identities such as Facebook, Google, Twitter, Windows Live) – Server Logic (via Mobile Services Server Scripts) – Push Notifications (GCM, APNS, WNS) • Monitoring/Analytics/Logging infrastructure • Client SDKs supported for Android, iOS, Windows Phone and HTML/Javascript
  • 3. Getting Started • The service is not free • ..but comes with a 3 month free trial (subject to credit card verification) • What you get: http://www.windowsazure.com/en- us/pricing/free-trial/
  • 4. • DEMO: Azure Dashboard • DEMO: Creating a new mobile service • DEMO: Download the SDK and setup project
  • 5. Mobile Service: Data • Backend is Windows Azure SQL Database • Dynamic schema – create your model in code, and the fields are mapped by magic • Throttling and failures are automatically handled. • NO RELATIONS (i.e. no foreign keys, cascade logic etc)
  • 6. DEMO Creating a simple list of users
  • 7. Authentication • Authenticate against: Facebook, Google, Twitter, Windows Live • Table level permissions for CRUD operations: – Everyone (default) – Only authenticated users – Only scripts and admins
  • 9. Server Scripts • Similar to a trigger • Allows you to build custom business logic when something happens to your data • Available operations: insert, update, read, delete (del) e.g.: function insert (id, user, request) { request.execute(); }
  • 10. Server Scripts: Continued Insert: function insert(item, user, request) { } Update: function update(item, user, request) { } Delete: function del(id, user, request) { } Read: function read(query, user, request) { } •Script functions always take 3 arguments: – 2nd arg is always “user” (represents a user) – 3rd arg is always “request” (used to send responses). – 1st arg changes according to operation
  • 11. Scripts: Continued • Example: function insert(item, user, request) { if (item.userId !== user.userId) { request.respond(statusCodes.FORBIDDEN, ‘Access Denied.'); } else { request.execute(); } } * Complete script reference can be found at: http://msdn.microsoft.com/en-us/library/windowsazure/jj554226.aspx
  • 12. Push Notifications • Allows direct push to devices • Supported push services: – GCM (API key required) – APNS (Certificate required) – WNS (Client secret & Package SID required) N.B: For Windows Phone/WNS: 500 notifications/per user/per day.
  • 13. Implementing Push Notifications (in 5 easy steps) Code walkthrough
  • 14. Push Notifications: Step 1 Register App for Notifications • GCM is the native push system for Android • Register your app and enable GCM using Google API console (https://code.google.com/apis/console/)
  • 15. Push Notifications: Step 2 Configure Mobile Services • Copy generated API key from Google API Services • Select ‘Push’ from Azure Console and paste key
  • 16. Push Notifications: Step 3 Integrate push library to your app • Copy gcm.jar to libs • Add permissions <permission android:name=“com.test.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name=“com.test.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> • Add reciever/services <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name=“com.test" /> </intent-filter> </receiver> <service android:name=".GCMIntentService" />
  • 17. Push Notifications: Step 4 Register your device & handle pushes • Assuming you have ‘deviceId’ field on your data model: String deviceId = GCMRegistrar.getRegistrationId(this); Users.deviceId = deviceId; //save here • When a push arrives, onMessage fires: protected void onMessage(Context context, Intent intent) { //notify user etc. } http://developer.android.com/google/gcm/gs.html
  • 18. Push Notifications: Step 5 Getting the server to notify function insert(item, user, request) { request.execute({ success: function() { request.respond(); push.gcm.send(Users.deviceId, item.text); } }
  • 19. Diagnostics, Logging and Scale • Diagnostics: – CPU Time – Memory consumptions – API calls/time taken per request • Logging – With server scripts via console.x (console.info, console.error etc) • Scale – Scale up or down by spinning up new VMs or by scaling up VM size
  • 20. More Services • Scheduler – Schedule server scripts on demand or on interval – Examples: • Purge old data, • Poll/aggregate data from other sources • Schedule pushes to be sent at a certain time • SendGrid (3rd party service) – Email-As-A-Service • Pusher (3rd party service) – Enhanced push services (among other things)