Building Enterprise Ready Mobile Apps: A Developer Deep Dive

  • 1,529 views
Uploaded on

Session presented at the Software Architect Conference in London OCt 2013

Session presented at the Software Architect Conference in London OCt 2013

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,529
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
81
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • {}

Transcript

  • 1. Building Enterprise-Ready Mobile Apps in the Real World: A Deep Dive Jesus Rodriguez, KidoZen
  • 2. About Me • • • • • • • • • • Hackerpreneur Co-Founder KidoZen, Inc Co-Founder Tellago, Inc Advisor to software companies(Microsoft, Oracle….) Microsoft MVP, Oracle ACE Board member Speaker, Author http://weblogs.asp.net/gsusx http://jrodthoughts.com http://kidozencom
  • 3. About Today • A quick view of enterprise mobile development • Consumer vs. enterprise mobile apps • Enterprise mobile development patterns and techniques
  • 4. About Today • Is about real world solutions, no theoretical exercise • Is about architecture best practices, not product pitches
  • 5. A Quick Story of Building Enterprise Mobile Solutions
  • 6. Mobility is Hot
  • 7. And Obvious
  • 8. We Can Build Apps I want an app!
  • 9. And Be Rock Stars
  • 10. After All….
  • 11. We Have Great Mobile Development Stacks
  • 12. Let’s Build Mobile Solutions
  • 13. Not so fast…
  • 14. Just a few things to consider…
  • 15. Storing Data
  • 16. Mobile identity management
  • 17. Cross platform push notifications
  • 18. Integration with cloud services
  • 19. Integration with enterprise systems
  • 20. Integration with SaaS technologies
  • 21. Consistent management experience
  • 22. MDM, MAM integration
  • 23. Manage and secure mobile business data
  • 24. How to efficiently distribute and test my enterprise mobile app
  • 25. What should I used to monitor the performance of my enterprise mobile apps?
  • 26. Well…..That Sucks
  • 27. As it turns out, building enterprise ready mobile apps is a bit more complex than just building mobile apps
  • 28. Consumer vs. Enterprise Apps Consumer Apps Enterprise Apps
  • 29. Do you need an enterprise mobile strategy?
  • 30. Ways to think about an enterprise mobile strategy • The excuse my idiot CIO used to delay the mobile project • The 300 page document we are paying <name your favorite analyst firm here> for • The latest buzzword our executives care about • A series of technology and architecture building blocks and processes used to enable the implementation of enterprises mobile solutions
  • 31. The Building Blocks of an Agile Enterprise Mobility Strategy
  • 32. A Few Helpful Mobile Tech Trends • • • • Mobile device management Enterprise app stores Enterprise mobile backend as a service Mobile test clouds
  • 33. Mobile Device Management • Problem: How to I manage and control mobile devices in my organization? • Manage and secure connected devices • Apply security and access control policies at the device level • Cloud or on-premise deployments • Interesting players: Airwatch, Good, Mobile Iron, Citrix Xen Mobile, Mocana…..
  • 34. Mobile Application Management • Problem: I would like to manage the enterprise mobile apps distribute in my enterprise • Enterprise app stores • Manage and control distribution of enterprise mobile applications • Natural evolution for MDM technologies • Interesting players: Apperian, Airwatch, Citrix Xen-Mobile
  • 35. Mobile Frontend Development • Problem: What do we use to build mobile apps? • Native, hybrid and mobile-web models • Built-once, deploy anywhere models: hybridinterpreted, cross-compiled • Interesting players: Appcelerator, PhoneGap, Sencha, Xamarin….
  • 36. Mobile Backend Infrastructure • Problem: How do I integrate my mobile apps with my enterprise systems? • Mobile middleware platforms • Horizontal mobile capabilities • Cloud and on-premise deployments • Interesting players: KidoZen, FeedHenry, IBM Worklight
  • 37. Mobile Testing • Problem: How do I test and distribute my enterprise mobile applications? • Unit, functional and end-user testing • Carrier, networks and device testing • Manual and automated • Interesting players: uTest, Perfecto Mobile
  • 38. Mobile App Performance Monitoring • Problem: Can I know how my mobile app is working? • Performance, usage and app crash monitoring • Consumer and enterprise based • Cloud deployments • Interesting players: Crittercism, NewRelic for mobile apps
  • 39. Building Enterprise Ready Mobile Apps: A Problem Solution Approach
  • 40. Problem: All my enterprise mobile apps need to store data and my DBA hates me
  • 41. Solution: Leverage an per appisolated storage model
  • 42. Per App Isolated Storage My Cloud Mobile Services Storage Storage Service Storage Storage String theObject = "{JSON PayLoad}"; _application.getObjectSet("name").Save(theObject);
  • 43. Problem: I would like users to authenticate to the mobile app using their corporate credentials but my mobile developers can’t spell Active Directory
  • 44. Solution: Use a mobile-first identity federation pattern
  • 45. Mobile-First AD Authentication My Cloud Services Auth Service u Tr st NSString * uN=@"John Doe" NSString * psw=@"secret" Identity * userIdentity = [application Login:@"ADFS“ user:uN andPassword:psw]; Corp Network Active Directory
  • 46. Problem: AD authentication is great! But is there a way that my users don’t have to re-authenticate with each mobile app?
  • 47. Solution: Implement a token reusability pattern
  • 48. Mobile-First SSO MBaaS Auth Service u Tr st NSString * uN=@"John Doe" NSString * psw=@"secret" Identity * userIdentity = [application Login:@"ADFS“ user:uN andPassword:psw]; App1 App2 Token Cache Corp Network Active Directory
  • 49. Problem: Can I enable multi-factor authentication across my different mobile apps
  • 50. Solution: Extend your mobile authentication service with multi-factor capabilities
  • 51. Mobile-First SSO My Cloud Services Auth Service Multi-Auth Service(App1: yes, App2: no u Tr st NSString * uN=@"John Doe" NSString * psw=@"secret" Identity * userIdentity = [application Login:@"ADFS“ user:uN andPassword:psw]; App1 App2 Token Cache Corp Network Active Directory
  • 52. Problem: Can I enable push notifications across different devices?
  • 53. Solution: Use a push notifications brokered service
  • 54. Mobile Push Notifications Broker My Cloud Services Push Notification Service Var channel= _application.pubSub.Subscribe(“channel name”); channel.Send({message});
  • 55. Problem: How to efficiently exchange data between my enterprise mobile apps
  • 56. Solution: Implement an inter-app publish subscribe pattern
  • 57. Inter-App Messaging Passing Pattern App1 _application.pubSub.Publish(“channel name”); application.pubSub.Publish(“channel name”); Shared Shared Memory App2 _application.pubSub.Subscribe(“channel name”); _application.pubSub.Subscribe(“channel name”); Mobile Mobile DB DB
  • 58. Problem: How can I integrate my enterprise mobile apps with my line of business systems
  • 59. Solution: Implement a mobile line of business connector pattern
  • 60. Mobile LOB Connector My Cloud Services SF.com Connector Enterprise System Service Var mySAP= App.Services(‘SP’).Login({credentials}); Var mySF= App.Services(‘SF’).Login({credentials}); mySAP.Invoke(‘GetItems’, {parameters}); mySF.Invoke(‘GetLeads’, {parameters}); Corp Network SAP Connector
  • 61. Problem: My enterprise systems are having performance issues handling mobile consumers
  • 62. Solution: Implement a mobile first data cache
  • 63. Mobile LOB Connector with Data Caching My Cloud Services SF.com Connector Enterprise System Service Mobile Data Cache Var mySAP= App.Services(‘SP’).Login({credentials}); Var mySF= App.Services(‘SF’).Login({credentials}); mySAP.Invoke(‘GetItems’, {parameters}); mySF.Invoke(‘GetLeads’, {parameters}); Corp Network SAP Connector
  • 64. Problem: The performance of my mobile apps varies according to the user location
  • 65. Solution: Implement a locationaware traffic optimization model
  • 66. GEO-Aware Mobile Infrastructure My Mobile Services GEO Traffic Manager Data Center 1 Data Center 1 Mobile Services Mobile Services Enterprise App Center Enterprise App Center Mobile Web Server Mobile Web Server App Storage Replication App Storage
  • 67. Problem: I would like to exchange data between my apps deployed across different devices
  • 68. Solution: Implement a mobile-first publish subscribe model
  • 69. Mobile-First Event-Based Messaging My Cloud Services Channel Mobile Event Service _application.pubSub.Publish( “channel name”, {message}); Channel _application.pubSub.Subscribe( “channel name”);
  • 70. Problem: I would like to secure the business data sets used by my enterprise mobile apps
  • 71. Solution: Implement a mobile-first data access policies
  • 72. Mobile Data Management My Cloud Services SF.com Connector Enterprise System Service Var mySAP= App.Services(‘SP’).Login({credentials}); Var mySF= App.Services(‘SF’).Login({credentials}); mySAP.Invoke(‘GetItems’, {parameters}); mySF.Invoke(‘GetLeads’, {parameters}); • Is the mobile user accessing the data from a valid location • Is the IOS device jailbroken? • Does the data need to be encrypted? • Does the data source requires dual factor verification Corp Network SAP Connector
  • 73. Problem: How can I protect the business data stored in the device?
  • 74. Solution: Encrypt the data using a temporary trusted key based on the user’s identity
  • 75. Protecting In-Device Mobile Business Data My Cloud Services SF.com Connector Enterprise System Service Auth Service Var mySAP= App.Services(‘SP’).Login({credentials}); Var mySF= App.Services(‘SF’).Login({credentials}); mySAP.Invoke(‘GetItems’, {parameters}); mySF.Invoke(‘GetLeads’, {parameters}); Encrypted Data Encrypted Data Cache Cache Corp Network SAP Connector
  • 76. Problem: How can I efficiently test my enterprise mobile apps
  • 77. Solution: Consider leveraging a mobile test cloud to test across different carriers, networks and devices
  • 78. Mobile Test Cloud Mobile Test Cloud Test Cases App1 Target Carriers Target Networks Target Devices App1
  • 79. Problem: How can my enterprise apps recover from unexpected errors?
  • 80. Solution: Leverage a mobile crash logging service
  • 81. Mobile Logging Service My Cloud Mobile Services Logs Logging Service App1 Crash Log Collector Logs Logs
  • 82. Problem: I have a lot of mobile-web applications but my MDM tools only work with native apps
  • 83. Solution: Consider an on-demand hybrid solution
  • 84. On-Demand Hybrid App Building Mobile Web App1 PhoneGap Build Hybrid App MDM Platform
  • 85. Other Enterprise Mobile Best Practices • • • • • • Enterprise App Stores Cross platform implementations Continuous integration Over the air deployment Compliance Mobile HTML5 Hosting
  • 86. Summary • The are fundamental differences between consumer and enterprise mobile apps • An agile enterprise mobile strategy is about establishing the right technology building blocks to enable the implementation of mobile apps within an organization • Establishing the right patterns in areas such as mobile frontend dev, backend integration, testing, monitoring, security, etc is essential to enable agility in mobile app development • Backend integration is the number 1 challenge of enterprise mobile infrastructures
  • 87. Thanks jr@kidozen.com http://www.kidozen.com http://jrodthoughts.com http://twitter.com/#!/jrodthoughts http://weblogs.asp.net/gsusx