challenges in enterprise mobility development 2

41
Gustavo Machado [email protected] KidoZen, Inc. Challenges in Enterprise Mobile Development

Upload: kidozen

Post on 18-Dec-2014

2.225 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Challenges in enterprise mobility development 2

Gustavo [email protected]

KidoZen, Inc.

Challenges in EnterpriseMobile Development

Page 2: Challenges in enterprise mobility development 2

About Me

● Passionate about Technology and Devices● Developer● http://machadogj.com● Speaker● VP of Engineer at KidoZen

Page 3: Challenges in enterprise mobility development 2

Agenda

● Security● Backend Services● Integration● Front End

Page 4: Challenges in enterprise mobility development 2

Enterprise Mobile DevelopmentWhy is it different?

Multiple Applications

BYOD

Existing Infrastructure

Outside the confines of your Intranet

Third Parties

Page 5: Challenges in enterprise mobility development 2

Security

● Authentication● Authorization● Mobile Context

Page 6: Challenges in enterprise mobility development 2

Security – Auth Dilemma

AD

CompanyB

Page 7: Challenges in enterprise mobility development 2

Security – Auth

AD

App A

App B

AD

App C

AD

AD

LIB

LIB

LIB

Page 8: Challenges in enterprise mobility development 2

Security – Auth part 1DRAWBACKS

BENEFITS

● Bug fixes / Deployments● Configuration● Not extremely secure (credentials)

● Simplicity and...

Page 9: Challenges in enterprise mobility development 2

Security – Auth part 2

AD

App A

lib

STSCredentials

TRUSTToken

Token

App B

lib

Token

Page 10: Challenges in enterprise mobility development 2

Security – Auth part 2TOKENS

PROTOCOLS

● JWT (JSON)● SWT (form-encoded)● SAML (XML)

● WS-* (WS-Trust, WS-Federation)● OAuth 2.0● SAML 2.0 (SSO)

Page 11: Challenges in enterprise mobility development 2

Security – Auth part 2DRAWBACKS

BENEFITS

● Adds Complexity● Building STS can be challenging

● Centralizes● Standardizes● Interoperability

Page 12: Challenges in enterprise mobility development 2

Security – Auth part 3

AD

App A

lib

STS

Credentials

WS-FedSAML

SAML

??STS

Company B

OAuthCrede

ntials

JWT

JWT

Page 13: Challenges in enterprise mobility development 2

Security – Auth part 3

AD

FedProvider

STS

WS-Fed

??STS

Company B

OAuth

Credential

s

??

Credentia

l

s ??

??

JWT

App A

libJWT

Page 14: Challenges in enterprise mobility development 2

Security – Auth part 3DRAWBACKS

BENEFITS

● Adds Complexity● Building a Fed Service IS challenging

● Centralizes● Standardizes● Interoperability● Existing Federation Services

Page 15: Challenges in enterprise mobility development 2

Security - Authorization

● Claims based– user.claims.ofType('action').contains('approve')

● Role based– user.isInRole('manager')

● Resource based– Allow GET /my/resource

Page 16: Challenges in enterprise mobility development 2

Security - Context

● Passive (web)

● Active (native)

● Passive (native) App A

lib

STSCredentials

TRUSTToken

Token

Page 17: Challenges in enterprise mobility development 2

Security - Solutions

● Windows Azure WAAD / ACS (Fed Provider)● ADFS (Fed Service)● Ping Identity (Fed Provider)● Apperian (MAM - policies)● Citrix MDX (MDM - policies)

Page 18: Challenges in enterprise mobility development 2

Backend Services

● Storage● Messaging● Mobile

Page 19: Challenges in enterprise mobility development 2

BS - Storage

● Configuration● Logging● Caching● Data● Files

Page 20: Challenges in enterprise mobility development 2

BS - Messaging

● Queues (long running processes)● Pub Sub (real-time)● Email

Page 21: Challenges in enterprise mobility development 2

BS - Mobile

● SMS● Native Push Notifications

– APNS (iOS)– C2DM (Android)– MPNS (WP)

● Media Processing

Page 22: Challenges in enterprise mobility development 2

BS – Offline Sync

Everything needs to be done regardless of network access.

Page 23: Challenges in enterprise mobility development 2

Backend Services - Solutions

● Twilio (SMS)● SendGrid (Email)● Urban Airship (Push Notifications)● Loggly, Splunk (Logging)● MBaaS

– KidoZen– Feedhenry– Kony– AnyPresence

Page 24: Challenges in enterprise mobility development 2

Integration

● Cloud Services– SaaS Providers

● On Premise– LoB Applications– Web Services

Page 25: Challenges in enterprise mobility development 2

Integration – Cloud Services

SaaS Provider

Impersonating User Service Account

Service

cred

entia

ls

Page 26: Challenges in enterprise mobility development 2

Integration – Cloud Services

● Use SDKs– It's documentation– It's dependencies

● Versioning● Adds complexity to the client app● Might require a custom service

– Securely store service accounts– Enforce Authorization rules

Page 27: Challenges in enterprise mobility development 2

Integration – On Premise

DMZ

SystemA

Behind Firewall

SystemB

ServiceB

Service /

Adapter

ServiceBus

Company

Page 28: Challenges in enterprise mobility development 2

Integration – Solutions

● Azure Service Bus● KidoZen Enterprise APIs

Page 29: Challenges in enterprise mobility development 2

Front End

● Web App● Native● Hybrid● Cross Compile

Page 30: Challenges in enterprise mobility development 2

Front End – Web App

Page 31: Challenges in enterprise mobility development 2

Front End – Web App

● jQuery Mobile● jqTouch● Sencha UI● Kendo UI● Bootstrap 3.0 (responsive)

Page 32: Challenges in enterprise mobility development 2

Front End - NativeXcode - Objective-C Android Studio - Java

Visual Studio - C#

Page 33: Challenges in enterprise mobility development 2

Front End - Native

● Full access to native capabilities● Best Performance

Page 34: Challenges in enterprise mobility development 2

Front End - Hybrid

HTML5 + jsBuild Native App

WebView

APP

Libs

● Native Application Package● Access through App Stores● Access to Native capabilities● Not the best performance

Page 35: Challenges in enterprise mobility development 2

Front End - Hybrid

Page 36: Challenges in enterprise mobility development 2

Front End – Cross Compile

Single Codebase Compile

● Access to Native capabilities● Native performance

Native AppsInterpreted

Page 37: Challenges in enterprise mobility development 2

Front End – Cross Compile

Xamarin

Page 38: Challenges in enterprise mobility development 2

Front End - Summary

● Web Applications for simple apps and fast development.

● Native Apps for full Native Performance● Hybrid for maximum code reuse● Cross Compile for significant code reuse and

Native performance

Page 39: Challenges in enterprise mobility development 2

Other Challenging Stuff

● Analytics● Security Policies (dual-factor auth, geo, anti-

jailbroken)● Testing – Unit Testing, Automated UI Testing,

Usability Testing.

Page 40: Challenges in enterprise mobility development 2

Summary

● Federate Security● Generalize as many Backend Services as

possible● Publishing services to the internet is not the

only way, we have service bus too.● There's a front end approach (or more) for

every scenario.● Building Mobile Apps for Enterprises is HARD.

Page 41: Challenges in enterprise mobility development 2

Thanks!

[email protected]● @machadogj● http://machadogj.com