SlideShare une entreprise Scribd logo
1  sur  38
Leveraging the
 Azure cloud for   Dennis      Marcel
                   Vroegop     de Vries
                               Regional Director
your mobile apps   DotNed
                   @dvroegop   @marcelv



      #ISMOB
Thank you!




             Workshop Mobile Development - Introduction
context   Mobile




 Case     Cloud
Context
Trend 1: Mobile
Market research
   # of mobile devices sold now exceeds # of PC’s!




Source:http://www.businessinsider.com/
Market research
   In a few years the number of mobile devices
   will dwarf the
   number of PC’s




Source:http://www.businessinsider.com/
Application types
Application types

Native look & feel             --          --                  ++
Camera Access                  --          +-                  ++
GPS                            ++          ++                  ++
Secure service communication   JSON/REST   JSON/REST           JSON/SOAP
Access to calendar             --          --                  ++
Twitter integration            +-          +-                  +
Distribution                   ++          AppStore presence   AppStore presence
All apps have one thing in common
 They need data!
 Where do you get it from and where do you
 store it?
 – From the device and only on the device?
    • Perhaps 1% of the cases
 – 99% of the apps build need some way to connect
   to backend services
This imposes an important question
 Where does your data live
 How can I connect to the data
 – In your corporate network?
 – Using corporate identity?
 – Using a VPN?
 Almost all classic solutions to today’s business
 apps don’t apply to mobile
 – I connect from anywhere
How do you cope with success?
 So you create an app to draw a doodle and let
 other guess what it is, big deal right?
 – Where do you store the drawing
 – Where do you manage sessions
 – Where do you keep user scores
 – ….
 So you need a backend with services
But how many users will you have?
 Mom and Dad for sure, perhaps your brother,
 sister and their friends, nothing to get excited
 about
 – So where would you host your services?
 – Some old Linux server in your basement?
 What if I prepare for success
 – Need to buy a server farm, big upfront expenses
Now imagine success
 9 Years it took for AOL to hit 1 million users
 9 Months it took for Facebook to reach 1 million users
 9 Days it took for Draw Something to reach 1 million
 users
 – 37 million
   Total downloads of the app
 – 3 billion
   Total drawings users have created since the game was
   released seven weeks ago
 – 2,000
   Drawings created every second
How the cloud creates a level
playing field
Typical Scenario
Cloud implications on architecture
Cloud introduces a new phenomenon
– Pay as you go cost model
This can have major implications on your architecture
– Which cloud specific features do I use
Hard questions
– Pay based on I/O or Compute cycles
    • How many I/O’s to storage of my service?
    • Algorithms can make a difference!
– How much data am I going to store
    • Price differences based on storage models
Windows Azure as your backend
 Very easy to leverage the pay as you go model
 Leverage all the knowledge you already have
 – Building web application
 – Build Soap Services
 – Building Rest Services
 Just publish to azure and you are done
Azure programming model
 Important is that we can scale out our
 application
 – A.k.a. stateless services
 Azure load balances virtual machines for you
 – Nodes are not sticky!
Data communication with mobile
 Be aware that your data transfer can incur
 costs for the device owner
 – Metered networks
 Be aware of latency
 – Good for 1 call get much data
 – Bad for do many small calls with little data
What protocol to use?
•   SOAP
    – Most convenient in terms of programming and productivity
    – Proxy generation based on wsdl
    – Simple an familiar model
•   JSON
    – Better in terms of bandwidth usage
    – Harder in terms of productivity
           • Need to hand code the proxy
•   OData
    – Bandwidth wise almost similar to SOAP, since it uses Atom XML as carrier
    – Same productivity issues as JSON
    – Better for the universal client like Excel, not mobile
Your RAD services options today
 ASP.NET Web API
 – XML/JSON/OData/…
 WCF Data Services
 – JSON/OData
 WCF RIA Services
 – JSON/OData/SOAP
 All share a common programming model, just
 different origin
 All part of .NET FW and there to stay
INTERMEZZO DENNIS
Securing your services




              Securing your services
Securing your service using ACS
 All services technology can leverage security
 from ASP.NET
 But do we want to maintain yet another
 membership database with user information?
 – Another user name and password to maintain for
   the end user
 – So 2005 
 Can’t we outsource identity management?
Introducing Azure ACS
•   Let’s use the same identity most users already have
    – Live ID, Google ID, Facebook, Yahoo, etc.
•   Don’t want to write integration with each one of these
    services yourselves
•   Azure Access Control Service (ACS) does this for you
    – You integrate with ACS and ACS will handle integration
      with other parties
    – Can add any WS-Federation compliant STS like a corporate
      ADFS
ACS terminology
•   STS
     – Security Token Provider
     – Any party that can issue an authentication token
•   Identity provider
     – Party that maintains the user identity, this is Windows Live, Google, Yahoo, Etc.
•   Relying Party
     – This is the party relying on another identity provider to hand over a set of claims about who
       that identity is
          •   Windows live -> Unique id
          •   Google -> Email Address
          •   …
•   In our case we use ACS as our identity provider, who will delegate that to another
    IP
     – So IP token we get is always coming from ACS and we don’t need to worry about all other
       parties
Authentication experience


   Identity
   Providers
   Configured
   in ACS
Overview authentication steps
                                                    Identity     Realm               Your
    Phone App                    ACS
                                                    Provider      page              Service
         GetIdentityProviders()



         Request to login page                           Login           Depending on ACS
                                                                         config for SWT or
                                           IDP Token                     SAML you get a
                                                                         header or a cookie
                                       Map claims

                   ACS Token
                                                                    Cookie
                                                                    (containing ACS
                                                                    token)

         Request (with cookie)
Intercepting the cookie from login
 Used the Azure phone toolkit, to use the standard
 login control
 Extend it to work with cookies
 – Add a default.aspx page to your site that can return
   the cookie as text
 – Catch that from the page by enabling the web
   browser control to accept JavaScript notify calls
 – In default.aspx page, you add script notify call to hand
   over the cookie data
 All subsequent SOAP calls use the cookie
Intercepting the cookie
                                    Get IDP’s           ACS


                                JSON set of IDP’s

                                    Browse to IDP
                                                         IDP
                                                         (e.g. windows Live)
                               Redirect to ACS + token

                              Redirect to ACS + token
                                                         ACS

                              Redirect to return URL
  Return cookie               + SAML token cookie
  using script
  invoke                    Go to login page
                  My Site
Changing the client to use SWT
 When using rest, you can add a custom header to
 your request
 string headerValue = string.Format("WRAP access_token="{0}"", token);
 client.Headers.Add("Authorization", headerValue);


 When using WCF & SOAP, you need to add a custom
 header to the request
 using (var ctx = new OperationContextScope(proxy.InnerChannel))
 {
   HttpRequestMessageProperty httpRequestProperty = new
 HttpRequestMessageProperty();
   httpRequestProperty.Headers[HttpRequestHeader.Authorization] =
                                       String.Format("WRAP access_token="{0}"",
 token);
 OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name]
 = httpRequestProperty;
 }
Changing the client to use SAML
 You need to add a cookie to each service request, for JSON:
 CookieCollection coll =
 App.AuthenticationCookieContainer;
 WebClient webrequest = new WebClient();
 String cookiestring ="" ;
 foreach (Cookie cookie in coll){
   if (count++ > 0){cookiestring += "; ";}
    cookiestring += cookie.Name + "=" + cookie.Value;
 }
 webrequest.Headers[HttpRequestHeader.Cookie] =
 cookiestring;

 For SOAP using WCF stack
 EventsServices.EventsDomainServicesoapClient proxy = new
 EventsServices.EventsDomainServicesoapClient();
 proxy.CookieContainer =
 App.AuthenticationCookieContainer;
DEMO

AUTHENTICATING USING ACS
Announcing…..
 http://www.meetup.com/Dutch-Mobile-NET-
 Developers-Group
Summary
Mobile trend is just taking off
Mobile is nowhere without services
Deliver services at the scale of success with the cloud
New user interface concepts will influence the way we
build apps
Each form factor requires unique interface
Cloud is there to support our massive computing demand
Pay as you go model
 – Game changer for new business models!
Cloud services can ease your development headache
Thank you!                     Dennis         Marcel
                                                    Vroegop        de Vries
                                                    DotNed         Regional Director
                                                    @dvroegop      @marcelv



                      Next session:
                      20:30
Lenni                 Occasionally Connected Systems with Windows Azure
Lobel                 and Windows Phone
Sleek Technologies
@lennilobel

Contenu connexe

Tendances

Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private Cloud
AppZero
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
OpenStack Foundation
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
Amazon Web Services
 

Tendances (20)

현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 - 최권열 AWS 프로토타이핑...
 
더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
초보 개발자도 바로 따라할 수 있는 AWS 미디어 서비스를 이용한 Live/VOD 서비스 구축 – 현륜식 AWS 솔루션즈 아키텍트:: A...
초보 개발자도 바로 따라할 수 있는 AWS 미디어 서비스를 이용한 Live/VOD 서비스 구축 – 현륜식 AWS  솔루션즈 아키텍트:: A...초보 개발자도 바로 따라할 수 있는 AWS 미디어 서비스를 이용한 Live/VOD 서비스 구축 – 현륜식 AWS  솔루션즈 아키텍트:: A...
초보 개발자도 바로 따라할 수 있는 AWS 미디어 서비스를 이용한 Live/VOD 서비스 구축 – 현륜식 AWS 솔루션즈 아키텍트:: A...
 
Amazon Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
 
Survey of International and Thai Cloud Providers and Cloud Software Projects
Survey of International and Thai Cloud Providers and Cloud Software ProjectsSurvey of International and Thai Cloud Providers and Cloud Software Projects
Survey of International and Thai Cloud Providers and Cloud Software Projects
 
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune
 
Getting Started with Cognito User Pools - September Webinar Series
Getting Started with Cognito User Pools - September Webinar SeriesGetting Started with Cognito User Pools - September Webinar Series
Getting Started with Cognito User Pools - September Webinar Series
 
Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private Cloud
 
Codemotion Windows Azure Mobile
Codemotion Windows Azure MobileCodemotion Windows Azure Mobile
Codemotion Windows Azure Mobile
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
 
Delivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsDelivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS Products
 
(MBL401) Social Logins for Mobile Apps with Amazon Cognito | AWS re:Invent 2014
(MBL401) Social Logins for Mobile Apps with Amazon Cognito | AWS re:Invent 2014(MBL401) Social Logins for Mobile Apps with Amazon Cognito | AWS re:Invent 2014
(MBL401) Social Logins for Mobile Apps with Amazon Cognito | AWS re:Invent 2014
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
Best Practices: Microsoft on AWS - Miles Ward - AWS Summit 2012 Australia
Best Practices: Microsoft on AWS - Miles Ward - AWS Summit 2012 AustraliaBest Practices: Microsoft on AWS - Miles Ward - AWS Summit 2012 Australia
Best Practices: Microsoft on AWS - Miles Ward - AWS Summit 2012 Australia
 
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
(GAM402) Deploying a Low-Latency Multiplayer Game Globally: Loadout | AWS re:...
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud Deployment
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
 

En vedette

En vedette (6)

Inside Microsoft Azure
Inside Microsoft AzureInside Microsoft Azure
Inside Microsoft Azure
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Application architecture for cloud
Application architecture for cloudApplication architecture for cloud
Application architecture for cloud
 
Pragmatic Security and Rugged DevOps - SXSW 2015
Pragmatic Security and Rugged DevOps - SXSW 2015Pragmatic Security and Rugged DevOps - SXSW 2015
Pragmatic Security and Rugged DevOps - SXSW 2015
 
Containers - (Austin Cloud Meetup April 2016)
Containers - (Austin Cloud Meetup April 2016)Containers - (Austin Cloud Meetup April 2016)
Containers - (Austin Cloud Meetup April 2016)
 
RSA Conference 2016: Who Are You? From Meat to Electrons and Back Again
RSA Conference 2016: Who Are You? From Meat to Electrons and Back AgainRSA Conference 2016: Who Are You? From Meat to Electrons and Back Again
RSA Conference 2016: Who Are You? From Meat to Electrons and Back Again
 

Similaire à Leveraging the azure cloud for your mobile apps

CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
Spiffy
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
deimos
 
Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
QConLondon2008
 
Gluecon oauth-03
Gluecon oauth-03Gluecon oauth-03
Gluecon oauth-03
Paul Madsen
 
Oscon anatomy of_os_cloud_ecosystem
Oscon anatomy of_os_cloud_ecosystemOscon anatomy of_os_cloud_ecosystem
Oscon anatomy of_os_cloud_ecosystem
htdvul
 
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Kai Wähner
 

Similaire à Leveraging the azure cloud for your mobile apps (20)

Net Services
Net ServicesNet Services
Net Services
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
 
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
 
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
 
Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzurePut Your Existing Application On Windows Azure
Put Your Existing Application On Windows Azure
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
Gluecon oauth-03
Gluecon oauth-03Gluecon oauth-03
Gluecon oauth-03
 
DEVNET-1120 Intercloud Fabric - AWS and Azure Account Setup and Utilization
DEVNET-1120	Intercloud Fabric - AWS and Azure Account Setup and UtilizationDEVNET-1120	Intercloud Fabric - AWS and Azure Account Setup and Utilization
DEVNET-1120 Intercloud Fabric - AWS and Azure Account Setup and Utilization
 
Oscon anatomy of_os_cloud_ecosystem
Oscon anatomy of_os_cloud_ecosystemOscon anatomy of_os_cloud_ecosystem
Oscon anatomy of_os_cloud_ecosystem
 
Moving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpacesMoving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpaces
 
AWS Core Services Overview, Immersion Day Huntsville 2019
AWS Core Services Overview, Immersion Day Huntsville 2019AWS Core Services Overview, Immersion Day Huntsville 2019
AWS Core Services Overview, Immersion Day Huntsville 2019
 
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
 
Consuming Web Services in Microsoft Silverlight 3
Consuming Web Services in Microsoft Silverlight 3Consuming Web Services in Microsoft Silverlight 3
Consuming Web Services in Microsoft Silverlight 3
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
 
Building mobile apps on aws
Building mobile apps on awsBuilding mobile apps on aws
Building mobile apps on aws
 
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 

Plus de Marcel de Vries

Best practices for using open source software in the enterprise
Best practices for using open source software in the enterpriseBest practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
Marcel de Vries
 
Using microsoft application insights to implement a build, measure, learn loop
Using microsoft application insights to implement a build, measure, learn loopUsing microsoft application insights to implement a build, measure, learn loop
Using microsoft application insights to implement a build, measure, learn loop
Marcel de Vries
 
Cross platform mobile developement introduction
Cross platform mobile developement   introductionCross platform mobile developement   introduction
Cross platform mobile developement introduction
Marcel de Vries
 

Plus de Marcel de Vries (10)

Best practices for using open source software in the enterprise
Best practices for using open source software in the enterpriseBest practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
 
Architecting systems for continuous delivery
Architecting systems for continuous deliveryArchitecting systems for continuous delivery
Architecting systems for continuous delivery
 
Using microsoft application insights to implement a build, measure, learn loop
Using microsoft application insights to implement a build, measure, learn loopUsing microsoft application insights to implement a build, measure, learn loop
Using microsoft application insights to implement a build, measure, learn loop
 
Continuous delivery with Release Management for visual Studio
Continuous delivery with Release Management for visual StudioContinuous delivery with Release Management for visual Studio
Continuous delivery with Release Management for visual Studio
 
Release management with tfs 2013
Release management with tfs 2013Release management with tfs 2013
Release management with tfs 2013
 
Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...
 
Release management with tfs 2013
Release management with tfs 2013Release management with tfs 2013
Release management with tfs 2013
 
Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#
 
Cross platform mobile developement introduction
Cross platform mobile developement   introductionCross platform mobile developement   introduction
Cross platform mobile developement introduction
 
Mobile en cloud wat is de impact op ons huidige it ecosysteem
Mobile en cloud wat is de impact op ons huidige it ecosysteemMobile en cloud wat is de impact op ons huidige it ecosysteem
Mobile en cloud wat is de impact op ons huidige it ecosysteem
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
+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...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Leveraging the azure cloud for your mobile apps

  • 1. Leveraging the Azure cloud for Dennis Marcel Vroegop de Vries Regional Director your mobile apps DotNed @dvroegop @marcelv #ISMOB
  • 2. Thank you! Workshop Mobile Development - Introduction
  • 3. context Mobile Case Cloud
  • 6. Market research # of mobile devices sold now exceeds # of PC’s! Source:http://www.businessinsider.com/
  • 7. Market research In a few years the number of mobile devices will dwarf the number of PC’s Source:http://www.businessinsider.com/
  • 8.
  • 10. Application types Native look & feel -- -- ++ Camera Access -- +- ++ GPS ++ ++ ++ Secure service communication JSON/REST JSON/REST JSON/SOAP Access to calendar -- -- ++ Twitter integration +- +- + Distribution ++ AppStore presence AppStore presence
  • 11. All apps have one thing in common They need data! Where do you get it from and where do you store it? – From the device and only on the device? • Perhaps 1% of the cases – 99% of the apps build need some way to connect to backend services
  • 12. This imposes an important question Where does your data live How can I connect to the data – In your corporate network? – Using corporate identity? – Using a VPN? Almost all classic solutions to today’s business apps don’t apply to mobile – I connect from anywhere
  • 13. How do you cope with success? So you create an app to draw a doodle and let other guess what it is, big deal right? – Where do you store the drawing – Where do you manage sessions – Where do you keep user scores – …. So you need a backend with services
  • 14. But how many users will you have? Mom and Dad for sure, perhaps your brother, sister and their friends, nothing to get excited about – So where would you host your services? – Some old Linux server in your basement? What if I prepare for success – Need to buy a server farm, big upfront expenses
  • 15. Now imagine success 9 Years it took for AOL to hit 1 million users 9 Months it took for Facebook to reach 1 million users 9 Days it took for Draw Something to reach 1 million users – 37 million Total downloads of the app – 3 billion Total drawings users have created since the game was released seven weeks ago – 2,000 Drawings created every second
  • 16. How the cloud creates a level playing field
  • 18. Cloud implications on architecture Cloud introduces a new phenomenon – Pay as you go cost model This can have major implications on your architecture – Which cloud specific features do I use Hard questions – Pay based on I/O or Compute cycles • How many I/O’s to storage of my service? • Algorithms can make a difference! – How much data am I going to store • Price differences based on storage models
  • 19. Windows Azure as your backend Very easy to leverage the pay as you go model Leverage all the knowledge you already have – Building web application – Build Soap Services – Building Rest Services Just publish to azure and you are done
  • 20. Azure programming model Important is that we can scale out our application – A.k.a. stateless services Azure load balances virtual machines for you – Nodes are not sticky!
  • 21. Data communication with mobile Be aware that your data transfer can incur costs for the device owner – Metered networks Be aware of latency – Good for 1 call get much data – Bad for do many small calls with little data
  • 22. What protocol to use? • SOAP – Most convenient in terms of programming and productivity – Proxy generation based on wsdl – Simple an familiar model • JSON – Better in terms of bandwidth usage – Harder in terms of productivity • Need to hand code the proxy • OData – Bandwidth wise almost similar to SOAP, since it uses Atom XML as carrier – Same productivity issues as JSON – Better for the universal client like Excel, not mobile
  • 23. Your RAD services options today ASP.NET Web API – XML/JSON/OData/… WCF Data Services – JSON/OData WCF RIA Services – JSON/OData/SOAP All share a common programming model, just different origin All part of .NET FW and there to stay
  • 25. Securing your services Securing your services
  • 26. Securing your service using ACS All services technology can leverage security from ASP.NET But do we want to maintain yet another membership database with user information? – Another user name and password to maintain for the end user – So 2005  Can’t we outsource identity management?
  • 27. Introducing Azure ACS • Let’s use the same identity most users already have – Live ID, Google ID, Facebook, Yahoo, etc. • Don’t want to write integration with each one of these services yourselves • Azure Access Control Service (ACS) does this for you – You integrate with ACS and ACS will handle integration with other parties – Can add any WS-Federation compliant STS like a corporate ADFS
  • 28. ACS terminology • STS – Security Token Provider – Any party that can issue an authentication token • Identity provider – Party that maintains the user identity, this is Windows Live, Google, Yahoo, Etc. • Relying Party – This is the party relying on another identity provider to hand over a set of claims about who that identity is • Windows live -> Unique id • Google -> Email Address • … • In our case we use ACS as our identity provider, who will delegate that to another IP – So IP token we get is always coming from ACS and we don’t need to worry about all other parties
  • 29. Authentication experience Identity Providers Configured in ACS
  • 30. Overview authentication steps Identity Realm Your Phone App ACS Provider page Service GetIdentityProviders() Request to login page Login Depending on ACS config for SWT or IDP Token SAML you get a header or a cookie Map claims ACS Token Cookie (containing ACS token) Request (with cookie)
  • 31. Intercepting the cookie from login Used the Azure phone toolkit, to use the standard login control Extend it to work with cookies – Add a default.aspx page to your site that can return the cookie as text – Catch that from the page by enabling the web browser control to accept JavaScript notify calls – In default.aspx page, you add script notify call to hand over the cookie data All subsequent SOAP calls use the cookie
  • 32. Intercepting the cookie Get IDP’s ACS JSON set of IDP’s Browse to IDP IDP (e.g. windows Live) Redirect to ACS + token Redirect to ACS + token ACS Redirect to return URL Return cookie + SAML token cookie using script invoke Go to login page My Site
  • 33. Changing the client to use SWT When using rest, you can add a custom header to your request string headerValue = string.Format("WRAP access_token="{0}"", token); client.Headers.Add("Authorization", headerValue); When using WCF & SOAP, you need to add a custom header to the request using (var ctx = new OperationContextScope(proxy.InnerChannel)) { HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[HttpRequestHeader.Authorization] = String.Format("WRAP access_token="{0}"", token); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; }
  • 34. Changing the client to use SAML You need to add a cookie to each service request, for JSON: CookieCollection coll = App.AuthenticationCookieContainer; WebClient webrequest = new WebClient(); String cookiestring ="" ; foreach (Cookie cookie in coll){ if (count++ > 0){cookiestring += "; ";} cookiestring += cookie.Name + "=" + cookie.Value; } webrequest.Headers[HttpRequestHeader.Cookie] = cookiestring; For SOAP using WCF stack EventsServices.EventsDomainServicesoapClient proxy = new EventsServices.EventsDomainServicesoapClient(); proxy.CookieContainer = App.AuthenticationCookieContainer;
  • 37. Summary Mobile trend is just taking off Mobile is nowhere without services Deliver services at the scale of success with the cloud New user interface concepts will influence the way we build apps Each form factor requires unique interface Cloud is there to support our massive computing demand Pay as you go model – Game changer for new business models! Cloud services can ease your development headache
  • 38. Thank you! Dennis Marcel Vroegop de Vries DotNed Regional Director @dvroegop @marcelv Next session: 20:30 Lenni Occasionally Connected Systems with Windows Azure Lobel and Windows Phone Sleek Technologies @lennilobel